@excalidraw/excalidraw 0.15.2-7bf4de5 → 0.15.2-a065ec6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excalidraw/excalidraw",
3
- "version": "0.15.2-7bf4de5",
3
+ "version": "0.15.2-a065ec6",
4
4
  "main": "main.js",
5
5
  "types": "types/packages/excalidraw/index.d.ts",
6
6
  "files": [
package/types/colors.d.ts CHANGED
@@ -58,3 +58,4 @@ export declare const DEFAULT_ELEMENT_BACKGROUND_COLOR_PALETTE: {
58
58
  readonly bronze: ColorTuple;
59
59
  };
60
60
  export declare const getAllColorsSpecificShade: (index: 0 | 1 | 2 | 3 | 4) => readonly [string, string, string, string, string, string, string, string, string, string];
61
+ export declare const rgbToHex: (r: number, g: number, b: number) => string;
@@ -1,24 +1,4 @@
1
- export declare const activeConfirmDialogAtom: import("jotai").Atom<"clearCanvas" | null> & {
2
- write: (get: {
3
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
4
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
5
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
6
- } & {
7
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
8
- unstable_promise: true;
9
- }): Value_3 | Promise<Value_3>;
10
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
11
- unstable_promise: true;
12
- }): Value_4 | Promise<Value_4>;
13
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
14
- unstable_promise: true;
15
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
16
- }, set: {
17
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
18
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
19
- }, update: "clearCanvas" | ((prev: "clearCanvas" | null) => "clearCanvas" | null) | null) => void;
20
- onMount?: (<S extends (update: "clearCanvas" | ((prev: "clearCanvas" | null) => "clearCanvas" | null) | null) => void>(setAtom: S) => void | (() => void)) | undefined;
21
- } & {
1
+ export declare const activeConfirmDialogAtom: import("jotai").PrimitiveAtom<"clearCanvas" | null> & {
22
2
  init: "clearCanvas" | null;
23
3
  };
24
4
  export declare const ActiveConfirmDialog: () => JSX.Element | null;
@@ -52,10 +52,10 @@ declare class App extends React.Component<AppProps, AppState> {
52
52
  hitLinkElement?: NonDeletedExcalidrawElement;
53
53
  lastPointerDown: React.PointerEvent<HTMLCanvasElement> | null;
54
54
  lastPointerUp: React.PointerEvent<HTMLElement> | PointerEvent | null;
55
- lastScenePointer: {
55
+ lastViewportPosition: {
56
56
  x: number;
57
57
  y: number;
58
- } | null;
58
+ };
59
59
  constructor(props: AppProps);
60
60
  private renderCanvas;
61
61
  render(): JSX.Element;
@@ -64,6 +64,7 @@ declare class App extends React.Component<AppProps, AppState> {
64
64
  getSceneElements: () => readonly NonDeletedExcalidrawElement[];
65
65
  onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
66
66
  onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: readonly NonDeletedExcalidrawElement[]) => Promise<void>;
67
+ private openEyeDropper;
67
68
  private syncActionResult;
68
69
  private onBlur;
69
70
  private onUnload;
@@ -1,5 +1,5 @@
1
1
  interface ColorInputProps {
2
- color: string | null;
2
+ color: string;
3
3
  onChange: (color: string) => void;
4
4
  label: string;
5
5
  }
@@ -4,9 +4,9 @@ import { ColorPickerType } from "./colorPickerUtils";
4
4
  import { ColorTuple, ColorPaletteCustom } from "../../colors";
5
5
  import "./ColorPicker.scss";
6
6
  export declare const getColor: (color: string) => string | null;
7
- export interface ColorPickerProps {
7
+ interface ColorPickerProps {
8
8
  type: ColorPickerType;
9
- color: string | null;
9
+ color: string;
10
10
  onChange: (color: string) => void;
11
11
  label: string;
12
12
  elements: readonly ExcalidrawElement[];
@@ -16,3 +16,4 @@ export interface ColorPickerProps {
16
16
  updateData: (formData?: any) => void;
17
17
  }
18
18
  export declare const ColorPicker: ({ type, color, onChange, label, elements, palette, topPicks, updateData, appState, }: ColorPickerProps) => JSX.Element;
19
+ export {};
@@ -1,6 +1,6 @@
1
1
  interface CustomColorListProps {
2
2
  colors: string[];
3
- color: string | null;
3
+ color: string;
4
4
  onChange: (color: string) => void;
5
5
  label: string;
6
6
  }
@@ -3,7 +3,7 @@ import { ExcalidrawElement } from "../../element/types";
3
3
  import { ColorPickerType } from "./colorPickerUtils";
4
4
  import { ColorPaletteCustom } from "../../colors";
5
5
  interface PickerProps {
6
- color: string | null;
6
+ color: string;
7
7
  onChange: (color: string) => void;
8
8
  label: string;
9
9
  type: ColorPickerType;
@@ -11,6 +11,8 @@ interface PickerProps {
11
11
  palette: ColorPaletteCustom;
12
12
  updateData: (formData?: any) => void;
13
13
  children?: React.ReactNode;
14
+ onEyeDropperToggle: (force?: boolean) => void;
15
+ onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;
14
16
  }
15
- export declare const Picker: ({ color, onChange, label, type, elements, palette, updateData, children, }: PickerProps) => JSX.Element;
17
+ export declare const Picker: ({ color, onChange, label, type, elements, palette, updateData, children, onEyeDropperToggle, onEscape, }: PickerProps) => JSX.Element;
16
18
  export {};
@@ -1,7 +1,7 @@
1
1
  import { ColorPaletteCustom } from "../../colors";
2
2
  interface PickerColorListProps {
3
3
  palette: ColorPaletteCustom;
4
- color: string | null;
4
+ color: string;
5
5
  onChange: (color: string) => void;
6
6
  label: string;
7
7
  activeShade: number;
@@ -1,6 +1,6 @@
1
1
  import { ColorPaletteCustom } from "../../colors";
2
2
  interface ShadeListProps {
3
- hex: string | null;
3
+ hex: string;
4
4
  onChange: (color: string) => void;
5
5
  palette: ColorPaletteCustom;
6
6
  }
@@ -2,7 +2,7 @@ import { ColorPickerType } from "./colorPickerUtils";
2
2
  interface TopPicksProps {
3
3
  onChange: (color: string) => void;
4
4
  type: ColorPickerType;
5
- activeColor: string | null;
5
+ activeColor: string;
6
6
  topPicks?: readonly string[];
7
7
  }
8
8
  export declare const TopPicks: ({ onChange, type, activeColor, topPicks, }: TopPicksProps) => JSX.Element | null;
@@ -1,40 +1,20 @@
1
1
  import { ExcalidrawElement } from "../../element/types";
2
2
  import { ColorPickerColor, ColorPaletteCustom } from "../../colors";
3
- export declare const getColorNameAndShadeFromHex: ({ palette, hex, }: {
3
+ export declare const getColorNameAndShadeFromColor: ({ palette, color, }: {
4
4
  palette: ColorPaletteCustom;
5
- hex: string;
5
+ color: string;
6
6
  }) => {
7
7
  colorName: ColorPickerColor;
8
8
  shade: number | null;
9
9
  } | null;
10
10
  export declare const colorPickerHotkeyBindings: string[];
11
11
  export declare const isCustomColor: ({ color, palette, }: {
12
- color: string | null;
12
+ color: string;
13
13
  palette: ColorPaletteCustom;
14
14
  }) => boolean;
15
15
  export declare const getMostUsedCustomColors: (elements: readonly ExcalidrawElement[], type: "elementBackground" | "elementStroke", palette: ColorPaletteCustom) => string[];
16
16
  export type ActiveColorPickerSectionAtomType = "custom" | "baseColors" | "shades" | "hex" | null;
17
- export declare const activeColorPickerSectionAtom: import("jotai").Atom<ActiveColorPickerSectionAtomType> & {
18
- write: (get: {
19
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
20
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
21
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
22
- } & {
23
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
24
- unstable_promise: true;
25
- }): Value_3 | Promise<Value_3>;
26
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
27
- unstable_promise: true;
28
- }): Value_4 | Promise<Value_4>;
29
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
30
- unstable_promise: true;
31
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
32
- }, set: {
33
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
34
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
35
- }, update: ActiveColorPickerSectionAtomType | ((prev: ActiveColorPickerSectionAtomType) => ActiveColorPickerSectionAtomType)) => void;
36
- onMount?: (<S extends (update: ActiveColorPickerSectionAtomType | ((prev: ActiveColorPickerSectionAtomType) => ActiveColorPickerSectionAtomType)) => void>(setAtom: S) => void | (() => void)) | undefined;
37
- } & {
17
+ export declare const activeColorPickerSectionAtom: import("jotai").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
38
18
  init: ActiveColorPickerSectionAtomType;
39
19
  };
40
20
  export declare const getContrastYIQ: (bgHex: string, isCustomColor: boolean) => "white" | "black";
@@ -2,15 +2,20 @@
2
2
  import { ColorPaletteCustom } from "../../colors";
3
3
  import { ActiveColorPickerSectionAtomType } from "./colorPickerUtils";
4
4
  interface ColorPickerKeyNavHandlerProps {
5
- e: React.KeyboardEvent;
5
+ event: React.KeyboardEvent;
6
6
  activeColorPickerSection: ActiveColorPickerSectionAtomType;
7
7
  palette: ColorPaletteCustom;
8
- hex: string | null;
8
+ color: string;
9
9
  onChange: (color: string) => void;
10
10
  customColors: string[];
11
11
  setActiveColorPickerSection: (update: React.SetStateAction<ActiveColorPickerSectionAtomType>) => void;
12
12
  updateData: (formData?: any) => void;
13
13
  activeShade: number;
14
+ onEyeDropperToggle: (force?: boolean) => void;
15
+ onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;
14
16
  }
15
- export declare const colorPickerKeyNavHandler: ({ e, activeColorPickerSection, palette, hex, onChange, customColors, setActiveColorPickerSection, updateData, activeShade, }: ColorPickerKeyNavHandlerProps) => void;
17
+ /**
18
+ * @returns true if the event was handled
19
+ */
20
+ export declare const colorPickerKeyNavHandler: ({ event, activeColorPickerSection, palette, color, onChange, customColors, setActiveColorPickerSection, updateData, activeShade, onEyeDropperToggle, onEscape, }: ColorPickerKeyNavHandlerProps) => boolean;
16
21
  export {};
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import "./Dialog.scss";
3
- import { AppState } from "../types";
4
3
  export interface DialogProps {
5
4
  children: React.ReactNode;
6
5
  className?: string;
@@ -8,7 +7,6 @@ export interface DialogProps {
8
7
  onCloseRequest(): void;
9
8
  title: React.ReactNode | false;
10
9
  autofocus?: boolean;
11
- theme?: AppState["theme"];
12
10
  closeOnClickOutside?: boolean;
13
11
  }
14
12
  export declare const Dialog: (props: DialogProps) => JSX.Element;
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import "./EyeDropper.scss";
3
+ type EyeDropperProperties = {
4
+ keepOpenOnAlt: boolean;
5
+ swapPreviewOnAlt?: boolean;
6
+ onSelect?: (color: string, event: PointerEvent) => void;
7
+ previewType?: "strokeColor" | "backgroundColor";
8
+ };
9
+ export declare const activeEyeDropperAtom: import("jotai").PrimitiveAtom<EyeDropperProperties | null> & {
10
+ init: EyeDropperProperties | null;
11
+ };
12
+ export declare const EyeDropper: React.FC<{
13
+ onCancel: () => void;
14
+ onSelect: Required<EyeDropperProperties>["onSelect"];
15
+ swapPreviewOnAlt?: EyeDropperProperties["swapPreviewOnAlt"];
16
+ previewType?: EyeDropperProperties["previewType"];
17
+ }>;
18
+ export {};
@@ -2,27 +2,7 @@ import React from "react";
2
2
  import Library from "../data/library";
3
3
  import { LibraryItems, LibraryItem, ExcalidrawProps, UIAppState } from "../types";
4
4
  import "./LibraryMenu.scss";
5
- export declare const isLibraryMenuOpenAtom: import("jotai").Atom<boolean> & {
6
- write: (get: {
7
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
8
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
9
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
10
- } & {
11
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
12
- unstable_promise: true;
13
- }): Value_3 | Promise<Value_3>;
14
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
15
- unstable_promise: true;
16
- }): Value_4 | Promise<Value_4>;
17
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
18
- unstable_promise: true;
19
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
20
- }, set: {
21
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
22
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
23
- }, update: boolean | ((prev: boolean) => boolean)) => void;
24
- onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
25
- } & {
5
+ export declare const isLibraryMenuOpenAtom: import("jotai").PrimitiveAtom<boolean> & {
26
6
  init: boolean;
27
7
  };
28
8
  export declare const LibraryMenuContent: ({ onInsertLibraryItems, pendingElements, onAddToLibrary, setAppState, libraryReturnUrl, library, id, theme, selectedItems, onSelectItems, }: {
@@ -8,27 +8,7 @@ import "./Sidebar.scss";
8
8
  *
9
9
  * Since we can only render one Sidebar at a time, we can use a simple flag.
10
10
  */
11
- export declare const isSidebarDockedAtom: import("jotai").Atom<boolean> & {
12
- write: (get: {
13
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
14
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
15
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
16
- } & {
17
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
18
- unstable_promise: true;
19
- }): Value_3 | Promise<Value_3>;
20
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
21
- unstable_promise: true;
22
- }): Value_4 | Promise<Value_4>;
23
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
24
- unstable_promise: true;
25
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
26
- }, set: {
27
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
28
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
29
- }, update: boolean | ((prev: boolean) => boolean)) => void;
30
- onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
31
- } & {
11
+ export declare const isSidebarDockedAtom: import("jotai").PrimitiveAtom<boolean> & {
32
12
  init: boolean;
33
13
  };
34
14
  export declare const SidebarInner: React.ForwardRefExoticComponent<Pick<{
@@ -144,4 +144,5 @@ export declare const helpIcon: JSX.Element;
144
144
  export declare const playerPlayIcon: JSX.Element;
145
145
  export declare const playerStopFilledIcon: JSX.Element;
146
146
  export declare const tablerCheckIcon: JSX.Element;
147
+ export declare const eyeDropperIcon: JSX.Element;
147
148
  export {};
@@ -47,6 +47,7 @@ export declare enum EVENT {
47
47
  GESTURE_START = "gesturestart",
48
48
  GESTURE_CHANGE = "gesturechange",
49
49
  POINTER_MOVE = "pointermove",
50
+ POINTER_DOWN = "pointerdown",
50
51
  POINTER_UP = "pointerup",
51
52
  STATE_CHANGE = "statechange",
52
53
  WHEEL = "wheel",
@@ -1,55 +1,11 @@
1
1
  import { LibraryItems, ExcalidrawImperativeAPI, LibraryItemsSource } from "../types";
2
2
  import type App from "../components/App";
3
3
  import { ExcalidrawElement } from "../element/types";
4
- export declare const libraryItemsAtom: import("jotai").Atom<{
4
+ export declare const libraryItemsAtom: import("jotai").PrimitiveAtom<{
5
5
  status: "loading" | "loaded";
6
6
  isInitialized: boolean;
7
7
  libraryItems: LibraryItems;
8
8
  }> & {
9
- write: (get: {
10
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
11
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
12
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
13
- } & {
14
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
15
- unstable_promise: true;
16
- }): Value_3 | Promise<Value_3>;
17
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
18
- unstable_promise: true;
19
- }): Value_4 | Promise<Value_4>;
20
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
21
- unstable_promise: true;
22
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
23
- }, set: {
24
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
25
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
26
- }, update: {
27
- status: "loading" | "loaded";
28
- isInitialized: boolean;
29
- libraryItems: LibraryItems;
30
- } | ((prev: {
31
- status: "loading" | "loaded";
32
- isInitialized: boolean;
33
- libraryItems: LibraryItems;
34
- }) => {
35
- status: "loading" | "loaded";
36
- isInitialized: boolean;
37
- libraryItems: LibraryItems;
38
- })) => void;
39
- onMount?: (<S extends (update: {
40
- status: "loading" | "loaded";
41
- isInitialized: boolean;
42
- libraryItems: LibraryItems;
43
- } | ((prev: {
44
- status: "loading" | "loaded";
45
- isInitialized: boolean;
46
- libraryItems: LibraryItems;
47
- }) => {
48
- status: "loading" | "loaded";
49
- isInitialized: boolean;
50
- libraryItems: LibraryItems;
51
- })) => void>(setAtom: S) => void | (() => void)) | undefined;
52
- } & {
53
9
  init: {
54
10
  status: "loading" | "loaded";
55
11
  isInitialized: boolean;
@@ -0,0 +1,4 @@
1
+ export declare const useCreatePortalContainer: (opts?: {
2
+ className?: string;
3
+ parentSelector?: string;
4
+ }) => HTMLDivElement | null;
@@ -1,26 +1,6 @@
1
1
  import { LibraryItem } from "../types";
2
2
  export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
3
- export declare const libraryItemSvgsCache: import("jotai").Atom<SvgCache> & {
4
- write: (get: {
5
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
6
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
7
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
8
- } & {
9
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
10
- unstable_promise: true;
11
- }): Value_3 | Promise<Value_3>;
12
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
13
- unstable_promise: true;
14
- }): Value_4 | Promise<Value_4>;
15
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
16
- unstable_promise: true;
17
- }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
18
- }, set: {
19
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
20
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
21
- }, update: SvgCache | ((prev: SvgCache) => SvgCache)) => void;
22
- onMount?: (<S extends (update: SvgCache | ((prev: SvgCache) => SvgCache)) => void>(setAtom: S) => void | (() => void)) | undefined;
23
- } & {
3
+ export declare const libraryItemSvgsCache: import("jotai").PrimitiveAtom<SvgCache> & {
24
4
  init: SvgCache;
25
5
  };
26
6
  export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache) => SVGSVGElement | undefined;
@@ -1,2 +1,20 @@
1
1
  /// <reference types="react" />
2
- export declare const useOutsideClick: (handler: (event: Event) => void) => import("react").MutableRefObject<null>;
2
+ export declare function useOutsideClick<T extends HTMLElement>(ref: React.RefObject<T>,
3
+ /** if performance is of concern, memoize the callback */
4
+ callback: (event: Event) => void,
5
+ /**
6
+ * Optional callback which is called on every click.
7
+ *
8
+ * Should return `true` if click should be considered as inside the container,
9
+ * and `false` if it falls outside and should call the `callback`.
10
+ *
11
+ * Returning `true` overrides the default behavior and `callback` won't be
12
+ * called.
13
+ *
14
+ * Returning `undefined` will fallback to the default behavior.
15
+ */
16
+ isInside?: (event: Event & {
17
+ target: HTMLElement;
18
+ },
19
+ /** the element of the passed ref */
20
+ container: T) => boolean | undefined): void;
package/types/jotai.d.ts CHANGED
@@ -1,122 +1,34 @@
1
1
  import { PrimitiveAtom } from "jotai";
2
2
  export declare const jotaiScope: unique symbol;
3
3
  export declare const jotaiStore: {
4
- get: <Value>(atom: import("jotai").Atom<Value>) => (Value extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value) | undefined;
5
- asyncGet: <Value_1>(atom: import("jotai").Atom<Value_1>) => Promise<Value_1 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_1>;
4
+ get: <Value>(atom: import("jotai").Atom<Value>) => Awaited<Value> | undefined;
5
+ asyncGet: <Value_1>(atom: import("jotai").Atom<Value_1>) => Promise<Awaited<Value_1>>;
6
6
  set: <Value_2, Update, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_2, Update, Result>, update: Update) => Result;
7
- sub: (atom: {
8
- toString: () => string;
9
- debugLabel?: string | undefined;
10
- read: (get: {
11
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
12
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
13
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
14
- }) => unknown;
15
- }, callback: () => void) => () => void;
7
+ sub: (atom: import("jotai").Atom<unknown>, callback: () => void) => () => void;
16
8
  SECRET_INTERNAL_store: {
17
- r: <Value_6>(readingAtom: import("jotai").Atom<Value_6>, version?: import("jotai/core/store").VersionObject | undefined) => import("jotai/core/store").AtomState<Value_6>;
9
+ r: <Value_3>(readingAtom: import("jotai").Atom<Value_3>, version?: import("jotai/core/store").VersionObject | undefined) => import("jotai/core/store").AtomState<Value_3>;
18
10
  w: <Value_1_1, Update_1, Result_1 extends void | Promise<void>>(writingAtom: import("jotai").WritableAtom<Value_1_1, Update_1, Result_1>, update: Update_1, version?: import("jotai/core/store").VersionObject | undefined) => Result_1;
19
- c: (_atom: {
20
- toString: () => string;
21
- debugLabel?: string | undefined;
22
- read: (get: {
23
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
24
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
25
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
26
- }) => unknown;
27
- } | null, version?: import("jotai/core/store").VersionObject | undefined) => void;
28
- s: (atom: {
29
- toString: () => string;
30
- debugLabel?: string | undefined;
31
- read: (get: {
32
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
33
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
34
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
35
- }) => unknown;
36
- }, callback: (version?: import("jotai/core/store").VersionObject | undefined) => void) => () => void;
37
- h: (values: Iterable<readonly [{
38
- toString: () => string;
39
- debugLabel?: string | undefined;
40
- read: (get: {
41
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
42
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
43
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
44
- }) => unknown;
45
- }, unknown]>, version?: import("jotai/core/store").VersionObject | undefined) => void;
11
+ c: (_atom: import("jotai").Atom<unknown> | null, version?: import("jotai/core/store").VersionObject | undefined) => void;
12
+ s: (atom: import("jotai").Atom<unknown>, callback: (version?: import("jotai/core/store").VersionObject | undefined) => void, version?: import("jotai/core/store").VersionObject | undefined) => () => void;
13
+ h: (values: Iterable<readonly [import("jotai").Atom<unknown>, unknown]>, version?: import("jotai/core/store").VersionObject | undefined) => void;
46
14
  n: (l: () => void) => () => void;
47
- l: () => IterableIterator<{
48
- toString: () => string;
49
- debugLabel?: string | undefined;
50
- read: (get: {
51
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
52
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
53
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
54
- }) => unknown;
55
- }>;
56
- a: (a: {
57
- toString: () => string;
58
- debugLabel?: string | undefined;
59
- read: (get: {
60
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
61
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
62
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
63
- }) => unknown;
64
- }) => import("jotai/core/store").AtomState<unknown> | undefined;
65
- m: (a: {
66
- toString: () => string;
67
- debugLabel?: string | undefined;
68
- read: (get: {
69
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
70
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
71
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
72
- }) => unknown;
73
- }) => {
15
+ l: () => IterableIterator<import("jotai").Atom<unknown>>;
16
+ a: (a: import("jotai").Atom<unknown>) => import("jotai/core/store").AtomState<unknown> | undefined;
17
+ m: (a: import("jotai").Atom<unknown>) => {
74
18
  l: Set<(version?: import("jotai/core/store").VersionObject | undefined) => void>;
75
- t: Set<{
76
- toString: () => string;
77
- debugLabel?: string | undefined;
78
- read: (get: {
79
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
80
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
81
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
82
- }) => unknown;
83
- }>;
19
+ t: Set<import("jotai").Atom<unknown>>;
84
20
  u?: (() => void) | undefined;
85
21
  } | undefined;
86
22
  } | {
87
- r: <Value_7>(readingAtom: import("jotai").Atom<Value_7>, version?: import("jotai/core/store").VersionObject | undefined) => import("jotai/core/store").AtomState<Value_7>;
23
+ r: <Value_4>(readingAtom: import("jotai").Atom<Value_4>, version?: import("jotai/core/store").VersionObject | undefined) => import("jotai/core/store").AtomState<Value_4>;
88
24
  w: <Value_1_2, Update_2, Result_2 extends void | Promise<void>>(writingAtom: import("jotai").WritableAtom<Value_1_2, Update_2, Result_2>, update: Update_2, version?: import("jotai/core/store").VersionObject | undefined) => Result_2;
89
- c: (_atom: {
90
- toString: () => string;
91
- debugLabel?: string | undefined;
92
- read: (get: {
93
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
94
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
95
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
96
- }) => unknown;
97
- } | null, version?: import("jotai/core/store").VersionObject | undefined) => void;
98
- s: (atom: {
99
- toString: () => string;
100
- debugLabel?: string | undefined;
101
- read: (get: {
102
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
103
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
104
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
105
- }) => unknown;
106
- }, callback: (version?: import("jotai/core/store").VersionObject | undefined) => void) => () => void;
107
- h: (values: Iterable<readonly [{
108
- toString: () => string;
109
- debugLabel?: string | undefined;
110
- read: (get: {
111
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>): Value_3;
112
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>): Value_4;
113
- <Value_5>(atom: import("jotai").Atom<Value_5>): Value_5 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? V_1 extends Promise<infer V_1> ? any : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : V_1 : Value_5;
114
- }) => unknown;
115
- }, unknown]>, version?: import("jotai/core/store").VersionObject | undefined) => void;
25
+ c: (_atom: import("jotai").Atom<unknown> | null, version?: import("jotai/core/store").VersionObject | undefined) => void;
26
+ s: (atom: import("jotai").Atom<unknown>, callback: (version?: import("jotai/core/store").VersionObject | undefined) => void, version?: import("jotai/core/store").VersionObject | undefined) => () => void;
27
+ h: (values: Iterable<readonly [import("jotai").Atom<unknown>, unknown]>, version?: import("jotai/core/store").VersionObject | undefined) => void;
116
28
  n?: undefined;
117
29
  l?: undefined;
118
30
  a?: undefined;
119
31
  m?: undefined;
120
32
  };
121
33
  };
122
- export declare const useAtomWithInitialValue: <T extends unknown, A extends PrimitiveAtom<T>>(atom: A, initialValue: T | (() => T)) => readonly [T extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : T, import("jotai/core/atom").SetAtom<T | ((prev: T) => T), void>];
34
+ export declare const useAtomWithInitialValue: <T extends unknown, A extends PrimitiveAtom<T>>(atom: A, initialValue: T | (() => T)) => readonly [Awaited<T>, import("jotai/core/atom").SetAtom<T | ((prev: T) => T), void>];
package/types/types.d.ts CHANGED
@@ -328,6 +328,7 @@ export type AppClassProperties = {
328
328
  id: App["id"];
329
329
  onInsertElements: App["onInsertElements"];
330
330
  onExportImage: App["onExportImage"];
331
+ lastViewportPosition: App["lastViewportPosition"];
331
332
  };
332
333
  export type PointerDownState = Readonly<{
333
334
  origin: Readonly<{