
* feat: switch between basic shapes * add tab for testing * style tweaks * only show hint when a new node is created * fix panel state * refactor * combine captures into one * keep original font size * switch multi * switch different types altogether * use tab only * fix font size atom * do not switch from active tool change * prefer generic when mixed * provide an optional direction when shape switching * adjust panel bg & shadow * redraw to correctly position text * remove redundant code * only tab to switch if focusing on app container * limit which linear elements can be switched * add shape switch to command palette * remove hint * cache initial panel position * bend line to elbow if needed * remove debug logic * clean switch of arrows using app state * safe conversion between line, sharp, curved, and elbow * cache linear when panel shows up * type safe element conversion * rename type * respect initial type when switching between linears * fix elbow segment indexing * use latest linear * merge converted elbow points if too close * focus on panel after click * set roudness to null to fix drag points offset for elbows * remove Mutable * add arrowBoundToElement check * make it dependent on one signle state * unmount when not showing * simpler types, tidy up code * can change linear when it's linear + non-generic * fix popup component lifecycle * move constant to CLASSES * DRY out type detection * file & variable renaming * refactor * throw in not-prod instead * simplify * semi-fix bindings on `generic` type conversion --------- Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
19 lines
522 B
TypeScript
19 lines
522 B
TypeScript
// eslint-disable-next-line no-restricted-imports
|
|
import {
|
|
atom,
|
|
createStore,
|
|
type PrimitiveAtom,
|
|
type WritableAtom,
|
|
} from "jotai";
|
|
import { createIsolation } from "jotai-scope";
|
|
|
|
const jotai = createIsolation();
|
|
|
|
export { atom, PrimitiveAtom, WritableAtom };
|
|
export const { useAtom, useSetAtom, useAtomValue, useStore } = jotai;
|
|
export const EditorJotaiProvider: ReturnType<
|
|
typeof createIsolation
|
|
>["Provider"] = jotai.Provider;
|
|
|
|
export const editorJotaiStore: ReturnType<typeof createStore> = createStore();
|