@inkbar/react 0.6.0 → 0.8.0
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/README.md +13 -0
- package/dist/index.d.mts +98 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1561 -993
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -139,6 +139,12 @@ Inside `InkRoot`, `useHistory()` returns the same object. Its `batch(fn)` runs `
|
|
|
139
139
|
|
|
140
140
|
`key` identifies the document. Reuse the same key when only the signed URL changes and the document is not reloaded.
|
|
141
141
|
|
|
142
|
+
## Forms
|
|
143
|
+
|
|
144
|
+
`InkViewport` fills the PDF's form fields and runs the form's scripts. `useForm()` returns the fields, their values, and `set` and `reset`. Pass `fields` with `onFieldsChange` to hold the values in your own state. The form never submits, opens a link, sends mail or prints: `onFormAction` hands each request to you. `formHighlight={false}` turns off the field tint, and a change applies to the open document in place.
|
|
145
|
+
|
|
146
|
+
The [forms guide](https://inkbar.dev/docs/guides/forms/) covers controlled fields, form actions, scripts, signature fields and saving values as Gloss.
|
|
147
|
+
|
|
142
148
|
## Thread popover
|
|
143
149
|
|
|
144
150
|
`InkThreadPopover` opens the comment thread of the activated note or text markup (a highlight, underline, strikeout or squiggly). A new note or highlight has no text yet, so the form first writes its own `contents` (labelled "Comment"); after that it adds replies. A highlight with a comment shows a small marker at its end. Replies show in the thread only; the page draws just the note or highlight they answer.
|
|
@@ -169,6 +175,12 @@ A plugin from `definePlugin` (in `@inkbar/core/dom`) adds commands, tools, decor
|
|
|
169
175
|
|
|
170
176
|
Plugin stores undo with annotations. In controlled mode with `history`, each undo step also snapshots the plugin stores, so accepting something and undoing it restores both.
|
|
171
177
|
|
|
178
|
+
## Search
|
|
179
|
+
|
|
180
|
+
`InkFindBar` is the find bar and `InkSearchButton` opens it. Place the bar anywhere inside `InkRoot`, once `InkViewport` is there; Ctrl/Cmd+F opens it while it is mounted. `useSearch()` returns the search `state` and its actions (`open`, `setQuery`, `setMatchCase`, `next`, `previous`, `close`) for your own control. See the [`@inkbar/core` README](https://github.com/inkbar/inkbar/tree/main/packages/core#search) for the API.
|
|
181
|
+
|
|
182
|
+
The bar handles Escape itself and stops it there, so an `onKeyDown` you pass to `InkFindBar` never sees Escape.
|
|
183
|
+
|
|
172
184
|
## Custom rendering
|
|
173
185
|
|
|
174
186
|
Slots are render props. `InkViewport` takes `loading`, `empty`, `error`, `renderAnnotation` and `renderPageError`; `InkThreadPopover` takes a function as `children`; `InkToolButton` takes a node or a function of `{ active, label }`; `InkCommand` a node or a function of `{ label, busy }`. The props each receives are typed as `AnnotationSlotProps` and `ThreadPopoverSlotProps`, the same types the Vue package exports.
|
|
@@ -182,6 +194,7 @@ The scroll area takes focus. From there:
|
|
|
182
194
|
- With the `highlight` or `redact-area` tool active, `Enter` turns the text selection into a mark.
|
|
183
195
|
- With the `note` tool active, `Enter` places a note at the centre of the current page and opens it.
|
|
184
196
|
- With the `signature` tool active, `Enter` places the chosen signature at the centre of the current page.
|
|
197
|
+
- `Ctrl` or `Cmd` + `Z` undoes. `Ctrl` or `Cmd` + `Shift` + `Z`, or `Ctrl` + `Y`, redoes. `Ctrl` and `Cmd` both work on every platform. The keys do what `InkUndo` and `InkRedo` do, from anywhere in `InkRoot`, toolbars included, and act only while that button is enabled. In a text field or editable content the keys stay with the element, so a field keeps its own text undo. In a `<select>` they are left to the browser, which does nothing with them.
|
|
185
198
|
|
|
186
199
|
On a focused annotation:
|
|
187
200
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentPropsWithoutRef, ReactNode, Ref } from "react";
|
|
2
|
-
import { Annotation, AnnotationChange, AnnotationDefaults, AnnotationDocument, AnnotationInput, AnnotationPatch, CurrentStyle, DocumentSource, ImportOptions, InkDocument, InkError, InkStatus, PageInfo, PdfAssets, PluginHistory, Readable, SignatureLibrary, SignatureStore, SignatureTemplate, StyleGroup, StyleKey, StyleProps, Writable } from "@inkbar/core";
|
|
3
|
-
import { AnnotationDecoration, AnnotationSlotProps, AnnotationSlotProps as AnnotationSlotProps$1, AnnotationState, ColorProperty, DecorateAnnotation, DecorateAnnotation as DecorateAnnotation$1, InkPlugin, InkPlugin as InkPlugin$1, LayoutMode, PageMount, PluginHost, ThreadPopoverSlotProps, ThreadPopoverSlotProps as ThreadPopoverSlotProps$1, Tool, ToolController, ToolId, ToolOptions, ToolStyle, ViewRotation, Viewport, ZoomValue } from "@inkbar/core/dom";
|
|
4
|
-
import { Select } from "radix-ui";
|
|
2
|
+
import { Annotation, AnnotationChange, AnnotationDefaults, AnnotationDocument, AnnotationInput, AnnotationPatch, CurrentStyle, DocumentSource, FieldValues, FieldsChange, FormAction, FormField, FormSetResult, ImportOptions, InkDocument, InkError, InkStatus, PageInfo, PdfAssets, PluginHistory, Readable, SignatureLibrary, SignatureStore, SignatureTemplate, StyleGroup, StyleKey, StyleProps, Writable } from "@inkbar/core";
|
|
3
|
+
import { AnnotationDecoration, AnnotationSlotProps, AnnotationSlotProps as AnnotationSlotProps$1, AnnotationState, ColorProperty, DecorateAnnotation, DecorateAnnotation as DecorateAnnotation$1, InkPlugin, InkPlugin as InkPlugin$1, LayoutMode, PageMount, PluginHost, SearchController, SearchState, ThreadPopoverSlotProps, ThreadPopoverSlotProps as ThreadPopoverSlotProps$1, Tool, ToolController, ToolId, ToolOptions, ToolStyle, ViewRotation, ViewerSearch, Viewport, ZoomValue } from "@inkbar/core/dom";
|
|
4
|
+
import { Select, Toolbar } from "radix-ui";
|
|
5
5
|
import { IconNode } from "@inkbar/icons";
|
|
6
6
|
//#region src/context.d.ts
|
|
7
7
|
/**
|
|
@@ -35,6 +35,12 @@ interface InkContext {
|
|
|
35
35
|
* InkCommand places its commands.
|
|
36
36
|
*/
|
|
37
37
|
pluginHost: PluginHost | null;
|
|
38
|
+
/**
|
|
39
|
+
* The search controller from the same set-up as `pluginHost`: shared by the find bar, the
|
|
40
|
+
* search button, the engine's highlights and the plugins. `null` before the root has
|
|
41
|
+
* mounted, and on the server.
|
|
42
|
+
*/
|
|
43
|
+
search: SearchController | null;
|
|
38
44
|
/** InkViewport's scroll element while it is mounted: the plugins' `root`. */
|
|
39
45
|
viewportEl: Writable<HTMLElement | null>;
|
|
40
46
|
/** Set by InkViewport once it has built its viewport and tool controller. */
|
|
@@ -81,6 +87,12 @@ interface InkContext {
|
|
|
81
87
|
history: InkHistory;
|
|
82
88
|
rootEl: HTMLElement | null;
|
|
83
89
|
setViewport: (viewport: Viewport | null, tools: ToolController | null) => void;
|
|
90
|
+
/** InkRoot's `formHighlight`; InkViewport reads it when it builds the viewer. */
|
|
91
|
+
formHighlight: boolean | undefined;
|
|
92
|
+
/** Calls InkRoot's `onFormAction`, one microtask later. */
|
|
93
|
+
reportFormAction: (action: FormAction) => void;
|
|
94
|
+
/** Calls InkRoot's `onError`, for failures after the document opened (a refused signing). */
|
|
95
|
+
reportError: (error: InkError) => void;
|
|
84
96
|
}
|
|
85
97
|
/**
|
|
86
98
|
* The context for hooks: throws a readable error when called outside a component rendered
|
|
@@ -2605,6 +2617,17 @@ export declare function useZoom(): {
|
|
|
2605
2617
|
zoomOut: () => void | undefined;
|
|
2606
2618
|
};
|
|
2607
2619
|
//#endregion
|
|
2620
|
+
//#region src/hooks/useSearch.d.ts
|
|
2621
|
+
/**
|
|
2622
|
+
* The document search for hosts building their own control: the state, and the actions the
|
|
2623
|
+
* find bar uses. Search is set up once InkRoot has mounted, so until then (and on the server)
|
|
2624
|
+
* the state is closed and the actions do nothing. `open()` runs the search and draws the
|
|
2625
|
+
* highlights even when no find bar is mounted.
|
|
2626
|
+
*/
|
|
2627
|
+
export declare function useSearch(): {
|
|
2628
|
+
state: SearchState;
|
|
2629
|
+
} & Omit<ViewerSearch, 'state'>;
|
|
2630
|
+
//#endregion
|
|
2608
2631
|
//#region src/hooks/usePage.d.ts
|
|
2609
2632
|
export declare function usePage(): {
|
|
2610
2633
|
/** 0-based. */
|
|
@@ -2653,6 +2676,23 @@ interface CommandHandle {
|
|
|
2653
2676
|
*/
|
|
2654
2677
|
export declare function useCommand(id: string): CommandHandle;
|
|
2655
2678
|
//#endregion
|
|
2679
|
+
//#region src/hooks/useForm.d.ts
|
|
2680
|
+
interface FormHandle {
|
|
2681
|
+
/** The open document's form fields; empty while none is open or it has none. */
|
|
2682
|
+
fields: readonly FormField[];
|
|
2683
|
+
/** What the fields hold now, keyed by full name. */
|
|
2684
|
+
values: FieldValues;
|
|
2685
|
+
/**
|
|
2686
|
+
* Commits values as a person would: scripts run, and the call is one undo step. Returns the
|
|
2687
|
+
* names applied and rejected, or `undefined` while no document is open.
|
|
2688
|
+
*/
|
|
2689
|
+
set: (values: FieldValues) => FormSetResult | undefined;
|
|
2690
|
+
/** Restores the PDF's default values of `names`, or of every field. */
|
|
2691
|
+
reset: (names?: string[]) => void;
|
|
2692
|
+
}
|
|
2693
|
+
/** The open document's form: its fields, their values, and `set` and `reset`. */
|
|
2694
|
+
export declare function useForm(): FormHandle;
|
|
2695
|
+
//#endregion
|
|
2656
2696
|
//#region src/components/InkRoot.d.ts
|
|
2657
2697
|
interface InkRootHandle {
|
|
2658
2698
|
readonly document: InkDocument | null;
|
|
@@ -2675,6 +2715,21 @@ interface InkRootProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'
|
|
|
2675
2715
|
annotations?: Annotation[] | undefined;
|
|
2676
2716
|
onAnnotationsChange?: ((next: Annotation[]) => void) | undefined;
|
|
2677
2717
|
onChange?: ((change: AnnotationChange) => void) | undefined;
|
|
2718
|
+
/**
|
|
2719
|
+
* Pass (with `onFieldsChange`) to put the form's field values under the host's control. A
|
|
2720
|
+
* commit shows at once and is reported after; the host's push wins. The mode is fixed when
|
|
2721
|
+
* a document opens, as for `annotations`.
|
|
2722
|
+
*/
|
|
2723
|
+
fields?: FieldValues | undefined;
|
|
2724
|
+
/**
|
|
2725
|
+
* Committed field values, in full, with what changed them, one microtask after the commit.
|
|
2726
|
+
* Called only while the fields are controlled.
|
|
2727
|
+
*/
|
|
2728
|
+
onFieldsChange?: ((next: FieldValues, change: FieldsChange) => void) | undefined;
|
|
2729
|
+
/** The form asked to submit, open a link, send mail, print or prompt. Inkbar does none. */
|
|
2730
|
+
onFormAction?: ((action: FormAction) => void) | undefined;
|
|
2731
|
+
/** Tints fillable form fields. Default true. A change applies to the open document in place. */
|
|
2732
|
+
formHighlight?: boolean | undefined;
|
|
2678
2733
|
tool?: ToolId | undefined;
|
|
2679
2734
|
onToolChange?: ((tool: ToolId) => void) | undefined;
|
|
2680
2735
|
/**
|
|
@@ -2716,6 +2771,12 @@ interface InkRootProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'
|
|
|
2716
2771
|
history?: boolean | undefined;
|
|
2717
2772
|
asChild?: boolean | undefined;
|
|
2718
2773
|
onReady?: ((doc: InkDocument) => void) | undefined;
|
|
2774
|
+
/**
|
|
2775
|
+
* Opening failed, or later: a form script failed (`FormScriptError`; the form stays
|
|
2776
|
+
* fillable), or a signature field refused its signing (`FieldSigned`, `FieldReadOnly`).
|
|
2777
|
+
* A later error arrives one microtask after it happened, as `onFieldsChange` does; one from
|
|
2778
|
+
* while the document opened arrives after `onReady`.
|
|
2779
|
+
*/
|
|
2719
2780
|
onError?: ((error: InkError) => void) | undefined;
|
|
2720
2781
|
onActivate?: ((id: string) => void) | undefined;
|
|
2721
2782
|
children?: ReactNode | ((props: {
|
|
@@ -2724,7 +2785,7 @@ interface InkRootProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'
|
|
|
2724
2785
|
}) => ReactNode);
|
|
2725
2786
|
ref?: Ref<InkRootHandle>;
|
|
2726
2787
|
}
|
|
2727
|
-
export declare function InkRoot({ src, assets, password, defaults, annotations, onAnnotationsChange, onChange, tool, onToolChange, tools: hostTools, plugins: pluginsProp, decorateAnnotation, fonts: fontsProp, signatures: signatureStore, signatureFonts: signatureFontsProp, page, onPageChange, zoom, onZoomChange, history, asChild, onReady, onError, onActivate, children, ref, ...rest }: InkRootProps): import("react").JSX.Element;
|
|
2788
|
+
export declare function InkRoot({ src, assets, password, defaults, annotations, onAnnotationsChange, onChange, fields, onFieldsChange, onFormAction, formHighlight, tool, onToolChange, tools: hostTools, plugins: pluginsProp, decorateAnnotation, fonts: fontsProp, signatures: signatureStore, signatureFonts: signatureFontsProp, page, onPageChange, zoom, onZoomChange, history, asChild, onReady, onError, onActivate, children, ref, ...rest }: InkRootProps): import("react").JSX.Element;
|
|
2728
2789
|
//#endregion
|
|
2729
2790
|
//#region src/components/InkViewport.d.ts
|
|
2730
2791
|
interface InkViewportProps extends ComponentPropsWithoutRef<'div'> {
|
|
@@ -2835,6 +2896,31 @@ export declare function InkUndo({ asChild, className, children, disabled, onClic
|
|
|
2835
2896
|
//#region src/components/InkRedo.d.ts
|
|
2836
2897
|
export declare function InkRedo({ asChild, className, children, disabled, onClick, ...rest }: InkHistoryButtonProps): import("react").JSX.Element;
|
|
2837
2898
|
//#endregion
|
|
2899
|
+
//#region src/components/InkSearchButton.d.ts
|
|
2900
|
+
type InkSearchButtonProps = ComponentPropsWithoutRef<typeof Toolbar.Button>;
|
|
2901
|
+
/**
|
|
2902
|
+
* Opens the find bar; pressed while it is open. Pressing it again focuses the field. Place it
|
|
2903
|
+
* in a toolbar next to `InkFindBar`, which it needs for the field to focus. Disabled until a
|
|
2904
|
+
* document is open.
|
|
2905
|
+
*/
|
|
2906
|
+
export declare function InkSearchButton({ asChild, className, children, disabled, onClick, ...rest }: InkSearchButtonProps): import("react").JSX.Element;
|
|
2907
|
+
//#endregion
|
|
2908
|
+
//#region src/components/InkFindBar.d.ts
|
|
2909
|
+
type InkFindBarProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'>;
|
|
2910
|
+
/**
|
|
2911
|
+
* The find bar: a field, the match count, previous and next, a match-case toggle and close,
|
|
2912
|
+
* a view of the root's search state. Place it anywhere inside `InkRoot`: it portals itself
|
|
2913
|
+
* into `[data-ink-viewport-root]`, the positioned ancestor the theme floats it from over the
|
|
2914
|
+
* top-right of the pages (as `InkThreadPopover` anchors to the root's overlay rather than
|
|
2915
|
+
* where it is written). It renders nothing until `InkViewport` has mounted, and is hidden
|
|
2916
|
+
* while the search is closed. While it is mounted it registers with the search controller,
|
|
2917
|
+
* which is what lets Ctrl/Cmd+F open it.
|
|
2918
|
+
*
|
|
2919
|
+
* Enter in the field steps to the next match, Shift+Enter to the previous, Escape closes.
|
|
2920
|
+
* Closing returns focus to where it was before the bar opened, else to the document.
|
|
2921
|
+
*/
|
|
2922
|
+
export declare function InkFindBar({ className, ...rest }: InkFindBarProps): import("react").ReactPortal | null;
|
|
2923
|
+
//#endregion
|
|
2838
2924
|
//#region src/components/zoom-button.d.ts
|
|
2839
2925
|
/** Props of `InkZoomIn` and `InkZoomOut`: a toolbar button that may render as its child. */
|
|
2840
2926
|
interface InkZoomButtonProps extends ComponentPropsWithoutRef<'button'> {
|
|
@@ -2916,13 +3002,18 @@ interface InkSignatureDialogProps {
|
|
|
2916
3002
|
onOpenChange: (open: boolean) => void;
|
|
2917
3003
|
/** The fonts the Type tab offers. Default: InkRoot's `signatureFonts`. */
|
|
2918
3004
|
fonts?: readonly string[] | undefined;
|
|
2919
|
-
/**
|
|
3005
|
+
/**
|
|
3006
|
+
* Whether saving selects the new signature for the `signature` tool. Default true. False
|
|
3007
|
+
* leaves the tool alone, for a dialog that signs a field with it through `onSave`.
|
|
3008
|
+
*/
|
|
3009
|
+
select?: boolean | undefined;
|
|
3010
|
+
/** Called with the new template once it is saved (and selected, with `select`). */
|
|
2920
3011
|
onSave?: ((template: SignatureTemplate) => void) | undefined;
|
|
2921
3012
|
/** Where focus goes on close; by default, back to what had it before. */
|
|
2922
3013
|
onCloseAutoFocus?: ((event: Event) => void) | undefined;
|
|
2923
3014
|
className?: string | undefined;
|
|
2924
3015
|
}
|
|
2925
|
-
export declare function InkSignatureDialog({ open, onOpenChange, fonts, onSave, onCloseAutoFocus, className }: InkSignatureDialogProps): import("react").JSX.Element;
|
|
3016
|
+
export declare function InkSignatureDialog({ open, onOpenChange, fonts, select, onSave, onCloseAutoFocus, className }: InkSignatureDialogProps): import("react").JSX.Element;
|
|
2926
3017
|
//#endregion
|
|
2927
3018
|
//#region src/components/InkHighlightMenu.d.ts
|
|
2928
3019
|
interface InkHighlightMenuProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
|
|
@@ -2949,5 +3040,5 @@ interface InkThreadPopoverProps {
|
|
|
2949
3040
|
}
|
|
2950
3041
|
export declare function InkThreadPopover({ children }: InkThreadPopoverProps): import("react").JSX.Element;
|
|
2951
3042
|
//#endregion
|
|
2952
|
-
export type { AnnotationDecoration, AnnotationSlotProps, AnnotationState, CommandHandle, DecorateAnnotation, InkAnnotationProps, InkColorMenuProps, InkCommandProps, InkContext, InkHighlightMenuProps, InkHistory, InkHistoryButtonProps, InkIconProps, InkLineStyleMenuProps, InkPageButtonProps, InkPageInputProps, InkPageProps, InkPlugin, InkRootHandle, InkRootProps, InkShapeMenuProps, InkSignatureDialogProps, InkSignatureMenuProps, InkStatus, InkTextStyleMenuProps, InkThreadPopoverProps, InkToolButtonProps, InkToolbarProps, InkToolbarSeparatorProps, InkViewportProps, InkZoomButtonProps, InkZoomSelectProps, ScopedToolStyleHandle, ThreadPopoverSlotProps, ToolStyleHandle };
|
|
3043
|
+
export type { AnnotationDecoration, AnnotationSlotProps, AnnotationState, CommandHandle, DecorateAnnotation, FormHandle, InkAnnotationProps, InkColorMenuProps, InkCommandProps, InkContext, InkFindBarProps, InkHighlightMenuProps, InkHistory, InkHistoryButtonProps, InkIconProps, InkLineStyleMenuProps, InkPageButtonProps, InkPageInputProps, InkPageProps, InkPlugin, InkRootHandle, InkRootProps, InkSearchButtonProps, InkShapeMenuProps, InkSignatureDialogProps, InkSignatureMenuProps, InkStatus, InkTextStyleMenuProps, InkThreadPopoverProps, InkToolButtonProps, InkToolbarProps, InkToolbarSeparatorProps, InkViewportProps, InkZoomButtonProps, InkZoomSelectProps, ScopedToolStyleHandle, ThreadPopoverSlotProps, ToolStyleHandle };
|
|
2953
3044
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":["DecorateAnnotation","InkPlugin","DecorateAnnotation","AnnotationSlotProps","AnnotationSlotProps","AnnotationSlotProps","ThreadPopoverSlotProps"],"sources":["../src/context.ts","../src/use-readable.ts","../src/hooks/useDocument.ts","../src/hooks/useAnnotations.ts","../src/hooks/useTool.ts","../src/hooks/useToolStyle.ts","../src/hooks/useToolOptions.ts","../src/hooks/useSelection.ts","../src/hooks/useZoom.ts","../src/hooks/usePage.ts","../src/hooks/useHistory.ts","../src/hooks/useEmbedded.ts","../src/hooks/useCommand.ts","../src/components/InkRoot.tsx","../src/components/InkViewport.tsx","../src/components/InkPage.tsx","../src/components/InkAnnotation.tsx","../src/components/InkToolbar.tsx","../src/components/InkIcon.tsx","../src/components/InkToolButton.tsx","../src/components/InkCommand.tsx","../src/components/InkToolbarSeparator.tsx","../src/components/history-button.ts","../src/components/InkUndo.tsx","../src/components/InkRedo.tsx","../src/components/zoom-button.ts","../src/components/InkZoomIn.tsx","../src/components/InkZoomOut.tsx","../src/components/InkZoomSelect.tsx","../src/components/InkPageInput.tsx","../src/components/InkPageCount.tsx","../src/components/page-button.ts","../src/components/InkPrevPage.tsx","../src/components/InkNextPage.tsx","../src/components/InkColorMenu.tsx","../src/components/InkShapeMenu.tsx","../src/components/InkSignatureMenu.tsx","../src/components/InkSignatureDialog.tsx","../src/components/InkHighlightMenu.tsx","../src/components/InkTextStyleMenu.tsx","../src/components/InkLineStyleMenu.tsx","../src/components/InkThreadPopover.tsx"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["DecorateAnnotation","InkPlugin","DecorateAnnotation","AnnotationSlotProps","AnnotationSlotProps","AnnotationSlotProps","ThreadPopoverSlotProps"],"sources":["../src/context.ts","../src/use-readable.ts","../src/hooks/useDocument.ts","../src/hooks/useAnnotations.ts","../src/hooks/useTool.ts","../src/hooks/useToolStyle.ts","../src/hooks/useToolOptions.ts","../src/hooks/useSelection.ts","../src/hooks/useZoom.ts","../src/hooks/useSearch.ts","../src/hooks/usePage.ts","../src/hooks/useHistory.ts","../src/hooks/useEmbedded.ts","../src/hooks/useCommand.ts","../src/hooks/useForm.ts","../src/components/InkRoot.tsx","../src/components/InkViewport.tsx","../src/components/InkPage.tsx","../src/components/InkAnnotation.tsx","../src/components/InkToolbar.tsx","../src/components/InkIcon.tsx","../src/components/InkToolButton.tsx","../src/components/InkCommand.tsx","../src/components/InkToolbarSeparator.tsx","../src/components/history-button.ts","../src/components/InkUndo.tsx","../src/components/InkRedo.tsx","../src/components/InkSearchButton.tsx","../src/components/InkFindBar.tsx","../src/components/zoom-button.ts","../src/components/InkZoomIn.tsx","../src/components/InkZoomOut.tsx","../src/components/InkZoomSelect.tsx","../src/components/InkPageInput.tsx","../src/components/InkPageCount.tsx","../src/components/page-button.ts","../src/components/InkPrevPage.tsx","../src/components/InkNextPage.tsx","../src/components/InkColorMenu.tsx","../src/components/InkShapeMenu.tsx","../src/components/InkSignatureMenu.tsx","../src/components/InkSignatureDialog.tsx","../src/components/InkHighlightMenu.tsx","../src/components/InkTextStyleMenu.tsx","../src/components/InkLineStyleMenu.tsx","../src/components/InkThreadPopover.tsx"],"mappings":";;;;;;;;;;UAgCiB,mBAAmB;EAClC;EACA;EACA;EACA;EACA;;;;;;;EAOA,QAAQ;;UAGO;EACf,QAAQ;EACR,UAAU;;EAEV,QAAQ;EACR,sBAAsB;EACtB;;;;;;EAMA,YAAY;;;;;;EAMZ,QAAQ;;EAER,YAAY,SAAS;;EAErB,UAAU;EACV,OAAO;;EAEP,MAAM;EACN,UAAU,IAAI;;EAEd,WAAW;;;;;EAKX,oBAAoBA;;;;;EAKpB,6BAA6B;;EAE7B;;EAEA,aAAa;;EAEb,YAAY;;EAEZ;;EAEA,WAAW;;EAEX,WAAW;EACX;EACA,aAAa,GAAG;EAChB,aAAa;;EAEb;;;;;;EAMA,eAAe;EACf,SAAS;EACT,QAAQ;EACR,cAAc,UAAU,iBAAiB,OAAO;;EAEhD;;EAEA,mBAAmB,QAAQ;;EAE3B,cAAc,OAAO;;;;;;wBASP,cAAc,mBAAmB;;;;;;;;wBCnHjC,YAAY,GAAG,UAAU,SAAS,uBAAuB,UAAU,IAAI;;;wBCHvE;;;;;;;;EAYgB,oBAAA,MAAA,6BAA2B,OAAS,yCAAa;;;;wBCbjE;EAcG,MAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACA,SAAA,YAAM,OAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACf,SAAA;EACC,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASC,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|