@inkbar/vue 0.2.0 → 0.3.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 CHANGED
@@ -69,6 +69,7 @@ const annotations = ref<Annotation[]>([])
69
69
  v-model:annotations="annotations"
70
70
  >
71
71
  <InkToolbar>
72
+ <InkToolButton tool="view" />
72
73
  <InkToolButton tool="select" />
73
74
  <InkToolButton tool="highlight" />
74
75
  <InkToolButton tool="redact-area" />
@@ -119,11 +120,30 @@ Inside `InkRoot`, `useHistory()` returns the same object. Its `batch(fn)` runs `
119
120
 
120
121
  `InkNotePopover` opens the thread of the activated note. A new note has no text yet, so the form first writes the note's own text (labelled "Comment"); after that it adds replies.
121
122
 
122
- A root note with no text and no replies is removed when its popover closes, or when activation moves to another annotation, so abandoned notes do not stay on the page. Locked notes are never removed. If you add notes yourself (`add({ type: 'note', ... })`), give them `contents`, or they will be removed the first time someone opens and closes them.
123
+ A root note with no text and no replies is removed when its popover closes, or when activation moves to another annotation, so abandoned notes do not stay on the page. Locked notes are never removed. If you add notes yourself (`add({ type: 'text', ... })`), give them `contents`, or they will be removed the first time someone opens and closes them.
124
+
125
+ ## Custom rendering
126
+
127
+ Slots let you render parts yourself. `InkViewport` has `loading`, `empty`, `error`, `annotation` and `page-error` slots. `InkNotePopover` and `InkSuggestionCard` have a scoped default slot that receives the popover's props, and the default slot of `InkToolButton` receives `{ active, label }`. The props are typed as `AnnotationSlotProps`, `NotePopoverSlotProps` and `SuggestionCardSlotProps`, the same types the React and Svelte packages export.
128
+
129
+ `InkRoot`, `InkToolbar`, `InkToolButton`, `InkUndo`, `InkRedo`, `InkPrevPage`, `InkNextPage`, `InkZoomIn` and `InkZoomOut` take `as-child` to render your own element in place of theirs, such as a button from your design system. Put that element in the default slot. The control keeps its behaviour and accessible name.
123
130
 
124
131
  ## Keyboard
125
132
 
126
- The scroll element takes focus. With the highlight or redact tool active, `Enter` turns the text selection into a mark; with the note tool, `Enter` places a note in the middle of the current page and opens it. On a focused annotation, `Enter` or `Space` selects and activates it (a note opens its thread and a suggested redaction its card; other types are only selected), `ArrowUp` and `ArrowDown` move between annotations, `Shift` + arrow moves it by 1 pt (add `Alt` for 10 pt), `Ctrl` or `Cmd` + `Shift` + arrow resizes an area mark, and `Delete` removes it. The full table is in the [`@inkbar/core` README](https://github.com/inkbar/inkbar/tree/main/packages/core#tools-and-keyboard).
133
+ The scroll area takes focus. From there:
134
+
135
+ - With the `highlight` or `redact-area` tool active, `Enter` turns the text selection into a mark.
136
+ - With the `note` tool active, `Enter` places a note at the centre of the current page and opens it.
137
+
138
+ On a focused annotation:
139
+
140
+ - `Enter` or `Space` selects and activates it. A note opens its thread and a suggested redaction its card; other types are only selected.
141
+ - `ArrowUp` and `ArrowDown` move to the previous or next annotation on the page.
142
+ - `Shift` + arrow moves it by 1 pt, or by 10 pt with `Alt` as well.
143
+ - `Ctrl` or `Cmd` + `Shift` + arrow resizes an area redaction, text box or shape.
144
+ - `Delete` or `Backspace` removes it.
145
+
146
+ The full table, with the zoom and page keys, is in the [`@inkbar/core` README](https://github.com/inkbar/inkbar/tree/main/packages/core#tools-and-keyboard).
127
147
 
128
148
  ## Styling
129
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"InkNotePopover.js","names":["_sfc_main","InkNotePopover_vue_vue_type_script_setup_true_lang_default","InkNotePopover_default"],"sources":["../../src/components/InkNotePopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/*\n * The thread for the activated note, anchored to the note's overlay element. Activating a\n * reply opens the whole thread from its root. Closing (Close, Escape, a press outside) clears `activated`.\n *\n * A new note has no text. While its root is empty (and unlocked) the default form writes the\n * root's own `contents`, labelled \"Comment\", and the thread list stays hidden until there is\n * something in it; after that the form adds replies. Closing a root that is still empty and\n * has no replies removes it, so an abandoned note does not stay on the page.\n */\nimport { isAbandonedNote, threadOf, threadRoot } from '@inkbar/core'\nimport { PopoverContent, PopoverPortal, PopoverRoot } from 'reka-ui'\nimport { computed, ref, watch } from 'vue'\n\nimport { useAnnotations } from '../composables/useAnnotations'\nimport { injectInkContext } from '../context'\n\nimport { useAnnotationElement } from './annotation-element'\nimport { keepOpenOnAnnotation, useFocusReturn } from './popover-focus'\n\nimport type { Annotation, NoteAnnotation } from '@inkbar/core'\nimport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\nexport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\ndefineSlots<{ default?(props: NotePopoverSlotProps): unknown }>()\n\nconst ctx = injectInkContext()\nconst { annotations, add, update, remove } = useAnnotations()\n\nconst find = (id: string | undefined) =>\n id ? annotations.value.find((a) => a.id === id) : undefined\n\nconst note = computed<NoteAnnotation | null>(() => {\n const a = find(ctx.activated.value ?? undefined)\n return a?.type === 'note' ? threadRoot(annotations.value, a) : null\n})\nconst anchor = useAnnotationElement(\n ctx,\n computed(() => note.value?.id ?? null)\n)\nconst focusReturn = useFocusReturn(ctx)\nconst open = computed(() => note.value !== null && anchor.value !== null)\nconst thread = computed<Annotation[]>(() =>\n note.value ? threadOf(annotations.value, note.value) : []\n)\n\n/** True while the default form writes the root note's own text rather than a reply. */\nconst editingRoot = computed(() => {\n const root = note.value\n return root !== null && !root.locked && !root.contents?.trim()\n})\n\nconst draft = ref('')\nconst noteId = () => note.value?.id\n// Synchronous, so a render for another note never shows the old draft.\nwatch(noteId, () => (draft.value = ''), { flush: 'sync' })\nwatch(noteId, (_next, previous) => {\n // Activation moved on from a note that never got any text: drop it.\n if (previous !== undefined) dropIfEmpty(previous)\n})\n\n/**\n * Notes this popover wrote text or a reply for. In controlled mode the write is a proposal\n * the host may not have applied yet, so the applied list still shows the note empty; these\n * are never dropped as abandoned.\n */\nconst written = new Set<string>()\n/** Notes this popover has already asked to remove, so a slow host is asked once. */\nconst dropped = new Set<string>()\n\n/** Removes an unlocked root note with no text and no replies. True when it did. */\nfunction dropIfEmpty(id: string): boolean {\n if (dropped.has(id) || written.has(id) || !isAbandonedNote(annotations.value, id))\n return false\n dropped.add(id)\n remove(id)\n return true\n}\n\nfunction reply(text: string): void {\n const root = note.value\n const contents = text.trim()\n if (!root || !contents) return\n written.add(root.id)\n add({ type: 'note', page: root.page, rect: root.rect, contents, inReplyTo: root.id })\n draft.value = ''\n}\nfunction close(): void {\n const root = note.value\n if (root && find(root.id) && isEmptyRoot(root)) {\n focusReturn.beforeRemove(anchor.value)\n dropIfEmpty(root.id)\n }\n ctx.setActivated(null)\n}\nfunction isEmptyRoot(root: NoteAnnotation): boolean {\n return (\n !written.has(root.id) &&\n !root.locked &&\n !root.contents?.trim() &&\n thread.value.length === 1\n )\n}\nfunction submit(): void {\n const text = draft.value.trim()\n if (!text) return\n if (editingRoot.value) {\n updateContents(text)\n draft.value = ''\n } else reply(text)\n}\n/** Locked notes cannot be removed: removing one does nothing and keeps the popover. */\nfunction removeThread(): void {\n const root = note.value\n if (!root || root.locked) return\n focusReturn.beforeRemove(anchor.value)\n // Under a slow controlled host the note stays listed for a while; it is not asked for again.\n dropped.add(root.id)\n remove(root.id)\n ctx.setActivated(null)\n}\nfunction updateContents(contents: string): void {\n if (!note.value || note.value.locked) return\n if (contents.trim()) written.add(note.value.id)\n update(note.value.id, { contents })\n}\nfunction onOpenChange(next: boolean): void {\n if (!next) close()\n}\n</script>\n\n<template>\n <PopoverRoot :open=\"open\" @update:open=\"onOpenChange\">\n <PopoverPortal>\n <PopoverContent\n v-if=\"note && anchor\"\n :reference=\"anchor\"\n class=\"ink-note-popover\"\n data-ink-note-popover\n side=\"right\"\n :side-offset=\"8\"\n :collision-padding=\"8\"\n v-bind=\"{ 'aria-label': 'Note thread' }\"\n @interact-outside=\"keepOpenOnAnnotation\"\n @close-auto-focus=\"focusReturn.onCloseAutoFocus($event, anchor)\"\n >\n <slot\n :note=\"note\"\n :replies=\"thread.slice(1)\"\n :reply=\"reply\"\n :update=\"updateContents\"\n :remove=\"removeThread\"\n :close=\"close\"\n >\n <ol v-if=\"!editingRoot || thread.length > 1\" class=\"ink-thread\" data-ink-thread>\n <li\n v-for=\"item in thread\"\n :key=\"item.id\"\n class=\"ink-thread-item\"\n data-ink-thread-item\n :data-reply=\"item.inReplyTo ? '' : undefined\"\n >\n <span class=\"ink-thread-author\">{{ item.author ?? 'Anonymous' }}</span>\n <time class=\"ink-thread-time\" :datetime=\"item.createdAt\">\n {{ new Date(item.createdAt).toLocaleString() }}\n </time>\n <p class=\"ink-thread-text\">{{ item.contents }}</p>\n </li>\n </ol>\n <form class=\"ink-thread-reply\" data-ink-thread-reply @submit.prevent=\"submit\">\n <textarea\n v-model=\"draft\"\n :aria-label=\"editingRoot ? 'Comment' : 'Reply'\"\n rows=\"2\"\n :placeholder=\"editingRoot ? 'Comment' : 'Reply'\"\n />\n <div class=\"ink-thread-actions\">\n <button type=\"submit\" :disabled=\"!draft.trim()\">\n {{ editingRoot ? 'Comment' : 'Reply' }}\n </button>\n <button v-if=\"!note.locked\" type=\"button\" @click=\"removeThread\">\n Delete\n </button>\n <button type=\"button\" @click=\"close\">Close</button>\n </div>\n </form>\n </slot>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"InkNotePopover.js","names":["_sfc_main","InkNotePopover_vue_vue_type_script_setup_true_lang_default","InkNotePopover_default"],"sources":["../../src/components/InkNotePopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/*\n * The thread for the activated note, anchored to the note's overlay element. Activating a\n * reply opens the whole thread from its root. Closing (Close, Escape, a press outside) clears `activated`.\n *\n * A new note has no text. While its root is empty (and unlocked) the default form writes the\n * root's own `contents`, labelled \"Comment\", and the thread list stays hidden until there is\n * something in it; after that the form adds replies. Closing a root that is still empty and\n * has no replies removes it, so an abandoned note does not stay on the page.\n */\nimport { isAbandonedNote, threadOf, threadRoot } from '@inkbar/core'\nimport { PopoverContent, PopoverPortal, PopoverRoot } from 'reka-ui'\nimport { computed, ref, watch } from 'vue'\n\nimport { useAnnotations } from '../composables/useAnnotations'\nimport { injectInkContext } from '../context'\n\nimport { useAnnotationElement } from './annotation-element'\nimport { keepOpenOnAnnotation, useFocusReturn } from './popover-focus'\n\nimport type { Annotation, NoteAnnotation } from '@inkbar/core'\nimport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\nexport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\ndefineSlots<{ default?(props: NotePopoverSlotProps): unknown }>()\n\nconst ctx = injectInkContext()\nconst { annotations, add, update, remove } = useAnnotations()\n\nconst find = (id: string | undefined) =>\n id ? annotations.value.find((a) => a.id === id) : undefined\n\nconst note = computed<NoteAnnotation | null>(() => {\n const a = find(ctx.activated.value ?? undefined)\n return a?.type === 'text' ? threadRoot(annotations.value, a) : null\n})\nconst anchor = useAnnotationElement(\n ctx,\n computed(() => note.value?.id ?? null)\n)\nconst focusReturn = useFocusReturn(ctx)\nconst open = computed(() => note.value !== null && anchor.value !== null)\nconst thread = computed<Annotation[]>(() =>\n note.value ? threadOf(annotations.value, note.value) : []\n)\n\n/** True while the default form writes the root note's own text rather than a reply. */\nconst editingRoot = computed(() => {\n const root = note.value\n return root !== null && !root.locked && !root.contents?.trim()\n})\n\nconst draft = ref('')\nconst noteId = () => note.value?.id\n// Synchronous, so a render for another note never shows the old draft.\nwatch(noteId, () => (draft.value = ''), { flush: 'sync' })\nwatch(noteId, (_next, previous) => {\n // Activation moved on from a note that never got any text: drop it.\n if (previous !== undefined) dropIfEmpty(previous)\n})\n\n/**\n * Notes this popover wrote text or a reply for. In controlled mode the write is a proposal\n * the host may not have applied yet, so the applied list still shows the note empty; these\n * are never dropped as abandoned.\n */\nconst written = new Set<string>()\n/** Notes this popover has already asked to remove, so a slow host is asked once. */\nconst dropped = new Set<string>()\n\n/** Removes an unlocked root note with no text and no replies. True when it did. */\nfunction dropIfEmpty(id: string): boolean {\n if (dropped.has(id) || written.has(id) || !isAbandonedNote(annotations.value, id))\n return false\n dropped.add(id)\n remove(id)\n return true\n}\n\nfunction reply(text: string): void {\n const root = note.value\n const contents = text.trim()\n if (!root || !contents) return\n written.add(root.id)\n add({ type: 'text', page: root.page, rect: root.rect, contents, inReplyTo: root.id })\n draft.value = ''\n}\nfunction close(): void {\n const root = note.value\n if (root && find(root.id) && isEmptyRoot(root)) {\n focusReturn.beforeRemove(anchor.value)\n dropIfEmpty(root.id)\n }\n ctx.setActivated(null)\n}\nfunction isEmptyRoot(root: NoteAnnotation): boolean {\n return (\n !written.has(root.id) &&\n !root.locked &&\n !root.contents?.trim() &&\n thread.value.length === 1\n )\n}\nfunction submit(): void {\n const text = draft.value.trim()\n if (!text) return\n if (editingRoot.value) {\n updateContents(text)\n draft.value = ''\n } else reply(text)\n}\n/** Locked notes cannot be removed: removing one does nothing and keeps the popover. */\nfunction removeThread(): void {\n const root = note.value\n if (!root || root.locked) return\n focusReturn.beforeRemove(anchor.value)\n // Under a slow controlled host the note stays listed for a while; it is not asked for again.\n dropped.add(root.id)\n remove(root.id)\n ctx.setActivated(null)\n}\nfunction updateContents(contents: string): void {\n if (!note.value || note.value.locked) return\n if (contents.trim()) written.add(note.value.id)\n update(note.value.id, { contents })\n}\nfunction onOpenChange(next: boolean): void {\n if (!next) close()\n}\n</script>\n\n<template>\n <PopoverRoot :open=\"open\" @update:open=\"onOpenChange\">\n <PopoverPortal>\n <PopoverContent\n v-if=\"note && anchor\"\n :reference=\"anchor\"\n class=\"ink-note-popover\"\n data-ink-note-popover\n side=\"right\"\n :side-offset=\"8\"\n :collision-padding=\"8\"\n v-bind=\"{ 'aria-label': 'Note thread' }\"\n @interact-outside=\"keepOpenOnAnnotation\"\n @close-auto-focus=\"focusReturn.onCloseAutoFocus($event, anchor)\"\n >\n <slot\n :note=\"note\"\n :replies=\"thread.slice(1)\"\n :reply=\"reply\"\n :update=\"updateContents\"\n :remove=\"removeThread\"\n :close=\"close\"\n >\n <ol v-if=\"!editingRoot || thread.length > 1\" class=\"ink-thread\" data-ink-thread>\n <li\n v-for=\"item in thread\"\n :key=\"item.id\"\n class=\"ink-thread-item\"\n data-ink-thread-item\n :data-reply=\"item.inReplyTo ? '' : undefined\"\n >\n <span class=\"ink-thread-author\">{{ item.author ?? 'Anonymous' }}</span>\n <time class=\"ink-thread-time\" :datetime=\"item.createdAt\">\n {{ new Date(item.createdAt).toLocaleString() }}\n </time>\n <p class=\"ink-thread-text\">{{ item.contents }}</p>\n </li>\n </ol>\n <form class=\"ink-thread-reply\" data-ink-thread-reply @submit.prevent=\"submit\">\n <textarea\n v-model=\"draft\"\n :aria-label=\"editingRoot ? 'Comment' : 'Reply'\"\n rows=\"2\"\n :placeholder=\"editingRoot ? 'Comment' : 'Reply'\"\n />\n <div class=\"ink-thread-actions\">\n <button type=\"submit\" :disabled=\"!draft.trim()\">\n {{ editingRoot ? 'Comment' : 'Reply' }}\n </button>\n <button v-if=\"!note.locked\" type=\"button\" @click=\"removeThread\">\n Delete\n </button>\n <button type=\"button\" @click=\"close\">Close</button>\n </div>\n </form>\n </slot>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n</template>\n"],"mappings":""}
@@ -15,7 +15,7 @@ var ie = {
15
15
  setup(f) {
16
16
  let N = e(), { annotations: P, add: F, update: I, remove: L } = t(), R = (e) => e ? P.value.find((t) => t.id === e) : void 0, z = o(() => {
17
17
  let e = R(N.activated.value ?? void 0);
18
- return e?.type === "note" ? ee(P.value, e) : null;
18
+ return e?.type === "text" ? ee(P.value, e) : null;
19
19
  }), B = n(N, o(() => z.value?.id ?? null)), V = i(N), H = o(() => z.value !== null && B.value !== null), U = o(() => z.value ? E(P.value, z.value) : []), W = o(() => {
20
20
  let e = z.value;
21
21
  return e !== null && !e.locked && !e.contents?.trim();
@@ -30,7 +30,7 @@ var ie = {
30
30
  function X(e) {
31
31
  let t = z.value, n = e.trim();
32
32
  t && n && (q.add(t.id), F({
33
- type: "note",
33
+ type: "text",
34
34
  page: t.page,
35
35
  rect: t.rect,
36
36
  contents: n,
@@ -1 +1 @@
1
- {"version":3,"file":"InkNotePopover.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","_withCtx","_createVNode","_mergeProps","_renderSlot","_createElementBlock","_Fragment","_renderList","_createElementVNode","_toDisplayString","_createCommentVNode","_withModifiers","_withDirectives","_vModelText","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","InkNotePopover_vue_vue_type_script_setup_true_lang_default","ctx","injectInkContext","useAnnotations","find","id","annotations","a","note","computed","threadRoot","anchor","useAnnotationElement","focusReturn","useFocusReturn","open","thread","threadOf","editingRoot","root","draft","ref","noteId","watch","previous","dropIfEmpty","written","dropped","isAbandonedNote","remove","reply","contents","text","add","close","isEmptyRoot","submit","updateContents","removeThread","update","onOpenChange","next","openBlock","createBlock","unref","PopoverRoot","withCtx","createVNode","PopoverPortal","PopoverContent","mergeProps","keepOpenOnAnnotation","_cache","$event","renderSlot","_ctx","createElementBlock","Fragment","renderList","item","createElementVNode","toDisplayString","createCommentVNode","withModifiers","withDirectives","vModelText"],"sources":["../../src/components/InkNotePopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/*\n * The thread for the activated note, anchored to the note's overlay element. Activating a\n * reply opens the whole thread from its root. Closing (Close, Escape, a press outside) clears `activated`.\n *\n * A new note has no text. While its root is empty (and unlocked) the default form writes the\n * root's own `contents`, labelled \"Comment\", and the thread list stays hidden until there is\n * something in it; after that the form adds replies. Closing a root that is still empty and\n * has no replies removes it, so an abandoned note does not stay on the page.\n */\nimport { isAbandonedNote, threadOf, threadRoot } from '@inkbar/core'\nimport { PopoverContent, PopoverPortal, PopoverRoot } from 'reka-ui'\nimport { computed, ref, watch } from 'vue'\n\nimport { useAnnotations } from '../composables/useAnnotations'\nimport { injectInkContext } from '../context'\n\nimport { useAnnotationElement } from './annotation-element'\nimport { keepOpenOnAnnotation, useFocusReturn } from './popover-focus'\n\nimport type { Annotation, NoteAnnotation } from '@inkbar/core'\nimport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\nexport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\ndefineSlots<{ default?(props: NotePopoverSlotProps): unknown }>()\n\nconst ctx = injectInkContext()\nconst { annotations, add, update, remove } = useAnnotations()\n\nconst find = (id: string | undefined) =>\n id ? annotations.value.find((a) => a.id === id) : undefined\n\nconst note = computed<NoteAnnotation | null>(() => {\n const a = find(ctx.activated.value ?? undefined)\n return a?.type === 'note' ? threadRoot(annotations.value, a) : null\n})\nconst anchor = useAnnotationElement(\n ctx,\n computed(() => note.value?.id ?? null)\n)\nconst focusReturn = useFocusReturn(ctx)\nconst open = computed(() => note.value !== null && anchor.value !== null)\nconst thread = computed<Annotation[]>(() =>\n note.value ? threadOf(annotations.value, note.value) : []\n)\n\n/** True while the default form writes the root note's own text rather than a reply. */\nconst editingRoot = computed(() => {\n const root = note.value\n return root !== null && !root.locked && !root.contents?.trim()\n})\n\nconst draft = ref('')\nconst noteId = () => note.value?.id\n// Synchronous, so a render for another note never shows the old draft.\nwatch(noteId, () => (draft.value = ''), { flush: 'sync' })\nwatch(noteId, (_next, previous) => {\n // Activation moved on from a note that never got any text: drop it.\n if (previous !== undefined) dropIfEmpty(previous)\n})\n\n/**\n * Notes this popover wrote text or a reply for. In controlled mode the write is a proposal\n * the host may not have applied yet, so the applied list still shows the note empty; these\n * are never dropped as abandoned.\n */\nconst written = new Set<string>()\n/** Notes this popover has already asked to remove, so a slow host is asked once. */\nconst dropped = new Set<string>()\n\n/** Removes an unlocked root note with no text and no replies. True when it did. */\nfunction dropIfEmpty(id: string): boolean {\n if (dropped.has(id) || written.has(id) || !isAbandonedNote(annotations.value, id))\n return false\n dropped.add(id)\n remove(id)\n return true\n}\n\nfunction reply(text: string): void {\n const root = note.value\n const contents = text.trim()\n if (!root || !contents) return\n written.add(root.id)\n add({ type: 'note', page: root.page, rect: root.rect, contents, inReplyTo: root.id })\n draft.value = ''\n}\nfunction close(): void {\n const root = note.value\n if (root && find(root.id) && isEmptyRoot(root)) {\n focusReturn.beforeRemove(anchor.value)\n dropIfEmpty(root.id)\n }\n ctx.setActivated(null)\n}\nfunction isEmptyRoot(root: NoteAnnotation): boolean {\n return (\n !written.has(root.id) &&\n !root.locked &&\n !root.contents?.trim() &&\n thread.value.length === 1\n )\n}\nfunction submit(): void {\n const text = draft.value.trim()\n if (!text) return\n if (editingRoot.value) {\n updateContents(text)\n draft.value = ''\n } else reply(text)\n}\n/** Locked notes cannot be removed: removing one does nothing and keeps the popover. */\nfunction removeThread(): void {\n const root = note.value\n if (!root || root.locked) return\n focusReturn.beforeRemove(anchor.value)\n // Under a slow controlled host the note stays listed for a while; it is not asked for again.\n dropped.add(root.id)\n remove(root.id)\n ctx.setActivated(null)\n}\nfunction updateContents(contents: string): void {\n if (!note.value || note.value.locked) return\n if (contents.trim()) written.add(note.value.id)\n update(note.value.id, { contents })\n}\nfunction onOpenChange(next: boolean): void {\n if (!next) close()\n}\n</script>\n\n<template>\n <PopoverRoot :open=\"open\" @update:open=\"onOpenChange\">\n <PopoverPortal>\n <PopoverContent\n v-if=\"note && anchor\"\n :reference=\"anchor\"\n class=\"ink-note-popover\"\n data-ink-note-popover\n side=\"right\"\n :side-offset=\"8\"\n :collision-padding=\"8\"\n v-bind=\"{ 'aria-label': 'Note thread' }\"\n @interact-outside=\"keepOpenOnAnnotation\"\n @close-auto-focus=\"focusReturn.onCloseAutoFocus($event, anchor)\"\n >\n <slot\n :note=\"note\"\n :replies=\"thread.slice(1)\"\n :reply=\"reply\"\n :update=\"updateContents\"\n :remove=\"removeThread\"\n :close=\"close\"\n >\n <ol v-if=\"!editingRoot || thread.length > 1\" class=\"ink-thread\" data-ink-thread>\n <li\n v-for=\"item in thread\"\n :key=\"item.id\"\n class=\"ink-thread-item\"\n data-ink-thread-item\n :data-reply=\"item.inReplyTo ? '' : undefined\"\n >\n <span class=\"ink-thread-author\">{{ item.author ?? 'Anonymous' }}</span>\n <time class=\"ink-thread-time\" :datetime=\"item.createdAt\">\n {{ new Date(item.createdAt).toLocaleString() }}\n </time>\n <p class=\"ink-thread-text\">{{ item.contents }}</p>\n </li>\n </ol>\n <form class=\"ink-thread-reply\" data-ink-thread-reply @submit.prevent=\"submit\">\n <textarea\n v-model=\"draft\"\n :aria-label=\"editingRoot ? 'Comment' : 'Reply'\"\n rows=\"2\"\n :placeholder=\"editingRoot ? 'Comment' : 'Reply'\"\n />\n <div class=\"ink-thread-actions\">\n <button type=\"submit\" :disabled=\"!draft.trim()\">\n {{ editingRoot ? 'Comment' : 'Reply' }}\n </button>\n <button v-if=\"!note.locked\" type=\"button\" @click=\"removeThread\">\n Delete\n </button>\n <button type=\"button\" @click=\"close\">Close</button>\n </div>\n </form>\n </slot>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"InkNotePopover.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","_unref","_withCtx","_createVNode","_mergeProps","_renderSlot","_createElementBlock","_Fragment","_renderList","_createElementVNode","_toDisplayString","_createCommentVNode","_withModifiers","_withDirectives","_vModelText","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","InkNotePopover_vue_vue_type_script_setup_true_lang_default","ctx","injectInkContext","useAnnotations","find","id","annotations","a","note","computed","threadRoot","anchor","useAnnotationElement","focusReturn","useFocusReturn","open","thread","threadOf","editingRoot","root","draft","ref","noteId","watch","previous","dropIfEmpty","written","dropped","isAbandonedNote","remove","reply","contents","text","add","close","isEmptyRoot","submit","updateContents","removeThread","update","onOpenChange","next","openBlock","createBlock","unref","PopoverRoot","withCtx","createVNode","PopoverPortal","PopoverContent","mergeProps","keepOpenOnAnnotation","_cache","$event","renderSlot","_ctx","createElementBlock","Fragment","renderList","item","createElementVNode","toDisplayString","createCommentVNode","withModifiers","withDirectives","vModelText"],"sources":["../../src/components/InkNotePopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/*\n * The thread for the activated note, anchored to the note's overlay element. Activating a\n * reply opens the whole thread from its root. Closing (Close, Escape, a press outside) clears `activated`.\n *\n * A new note has no text. While its root is empty (and unlocked) the default form writes the\n * root's own `contents`, labelled \"Comment\", and the thread list stays hidden until there is\n * something in it; after that the form adds replies. Closing a root that is still empty and\n * has no replies removes it, so an abandoned note does not stay on the page.\n */\nimport { isAbandonedNote, threadOf, threadRoot } from '@inkbar/core'\nimport { PopoverContent, PopoverPortal, PopoverRoot } from 'reka-ui'\nimport { computed, ref, watch } from 'vue'\n\nimport { useAnnotations } from '../composables/useAnnotations'\nimport { injectInkContext } from '../context'\n\nimport { useAnnotationElement } from './annotation-element'\nimport { keepOpenOnAnnotation, useFocusReturn } from './popover-focus'\n\nimport type { Annotation, NoteAnnotation } from '@inkbar/core'\nimport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\nexport type { NotePopoverSlotProps } from '@inkbar/core/dom'\n\ndefineSlots<{ default?(props: NotePopoverSlotProps): unknown }>()\n\nconst ctx = injectInkContext()\nconst { annotations, add, update, remove } = useAnnotations()\n\nconst find = (id: string | undefined) =>\n id ? annotations.value.find((a) => a.id === id) : undefined\n\nconst note = computed<NoteAnnotation | null>(() => {\n const a = find(ctx.activated.value ?? undefined)\n return a?.type === 'text' ? threadRoot(annotations.value, a) : null\n})\nconst anchor = useAnnotationElement(\n ctx,\n computed(() => note.value?.id ?? null)\n)\nconst focusReturn = useFocusReturn(ctx)\nconst open = computed(() => note.value !== null && anchor.value !== null)\nconst thread = computed<Annotation[]>(() =>\n note.value ? threadOf(annotations.value, note.value) : []\n)\n\n/** True while the default form writes the root note's own text rather than a reply. */\nconst editingRoot = computed(() => {\n const root = note.value\n return root !== null && !root.locked && !root.contents?.trim()\n})\n\nconst draft = ref('')\nconst noteId = () => note.value?.id\n// Synchronous, so a render for another note never shows the old draft.\nwatch(noteId, () => (draft.value = ''), { flush: 'sync' })\nwatch(noteId, (_next, previous) => {\n // Activation moved on from a note that never got any text: drop it.\n if (previous !== undefined) dropIfEmpty(previous)\n})\n\n/**\n * Notes this popover wrote text or a reply for. In controlled mode the write is a proposal\n * the host may not have applied yet, so the applied list still shows the note empty; these\n * are never dropped as abandoned.\n */\nconst written = new Set<string>()\n/** Notes this popover has already asked to remove, so a slow host is asked once. */\nconst dropped = new Set<string>()\n\n/** Removes an unlocked root note with no text and no replies. True when it did. */\nfunction dropIfEmpty(id: string): boolean {\n if (dropped.has(id) || written.has(id) || !isAbandonedNote(annotations.value, id))\n return false\n dropped.add(id)\n remove(id)\n return true\n}\n\nfunction reply(text: string): void {\n const root = note.value\n const contents = text.trim()\n if (!root || !contents) return\n written.add(root.id)\n add({ type: 'text', page: root.page, rect: root.rect, contents, inReplyTo: root.id })\n draft.value = ''\n}\nfunction close(): void {\n const root = note.value\n if (root && find(root.id) && isEmptyRoot(root)) {\n focusReturn.beforeRemove(anchor.value)\n dropIfEmpty(root.id)\n }\n ctx.setActivated(null)\n}\nfunction isEmptyRoot(root: NoteAnnotation): boolean {\n return (\n !written.has(root.id) &&\n !root.locked &&\n !root.contents?.trim() &&\n thread.value.length === 1\n )\n}\nfunction submit(): void {\n const text = draft.value.trim()\n if (!text) return\n if (editingRoot.value) {\n updateContents(text)\n draft.value = ''\n } else reply(text)\n}\n/** Locked notes cannot be removed: removing one does nothing and keeps the popover. */\nfunction removeThread(): void {\n const root = note.value\n if (!root || root.locked) return\n focusReturn.beforeRemove(anchor.value)\n // Under a slow controlled host the note stays listed for a while; it is not asked for again.\n dropped.add(root.id)\n remove(root.id)\n ctx.setActivated(null)\n}\nfunction updateContents(contents: string): void {\n if (!note.value || note.value.locked) return\n if (contents.trim()) written.add(note.value.id)\n update(note.value.id, { contents })\n}\nfunction onOpenChange(next: boolean): void {\n if (!next) close()\n}\n</script>\n\n<template>\n <PopoverRoot :open=\"open\" @update:open=\"onOpenChange\">\n <PopoverPortal>\n <PopoverContent\n v-if=\"note && anchor\"\n :reference=\"anchor\"\n class=\"ink-note-popover\"\n data-ink-note-popover\n side=\"right\"\n :side-offset=\"8\"\n :collision-padding=\"8\"\n v-bind=\"{ 'aria-label': 'Note thread' }\"\n @interact-outside=\"keepOpenOnAnnotation\"\n @close-auto-focus=\"focusReturn.onCloseAutoFocus($event, anchor)\"\n >\n <slot\n :note=\"note\"\n :replies=\"thread.slice(1)\"\n :reply=\"reply\"\n :update=\"updateContents\"\n :remove=\"removeThread\"\n :close=\"close\"\n >\n <ol v-if=\"!editingRoot || thread.length > 1\" class=\"ink-thread\" data-ink-thread>\n <li\n v-for=\"item in thread\"\n :key=\"item.id\"\n class=\"ink-thread-item\"\n data-ink-thread-item\n :data-reply=\"item.inReplyTo ? '' : undefined\"\n >\n <span class=\"ink-thread-author\">{{ item.author ?? 'Anonymous' }}</span>\n <time class=\"ink-thread-time\" :datetime=\"item.createdAt\">\n {{ new Date(item.createdAt).toLocaleString() }}\n </time>\n <p class=\"ink-thread-text\">{{ item.contents }}</p>\n </li>\n </ol>\n <form class=\"ink-thread-reply\" data-ink-thread-reply @submit.prevent=\"submit\">\n <textarea\n v-model=\"draft\"\n :aria-label=\"editingRoot ? 'Comment' : 'Reply'\"\n rows=\"2\"\n :placeholder=\"editingRoot ? 'Comment' : 'Reply'\"\n />\n <div class=\"ink-thread-actions\">\n <button type=\"submit\" :disabled=\"!draft.trim()\">\n {{ editingRoot ? 'Comment' : 'Reply' }}\n </button>\n <button v-if=\"!note.locked\" type=\"button\" @click=\"removeThread\">\n Delete\n </button>\n <button type=\"button\" @click=\"close\">Close</button>\n </div>\n </form>\n </slot>\n </PopoverContent>\n </PopoverPortal>\n </PopoverRoot>\n</template>\n"],"mappings":"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"}
@@ -84,8 +84,8 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
84
84
  createdAt: string;
85
85
  modifiedAt: string;
86
86
  source: "session" | "pdf";
87
- type: "note";
88
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
87
+ type: "text";
88
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
89
89
  author?: string | undefined;
90
90
  contents?: string | undefined;
91
91
  inReplyTo?: string | undefined;
@@ -105,13 +105,12 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
105
105
  createdAt: string;
106
106
  modifiedAt: string;
107
107
  source: "session" | "pdf";
108
- type: "freeText";
109
- text: string;
108
+ type: "freetext";
109
+ contents: string;
110
110
  fontSize: number;
111
111
  fontFamily: string;
112
112
  align: "left" | "center" | "right";
113
113
  author?: string | undefined;
114
- contents?: string | undefined;
115
114
  inReplyTo?: string | undefined;
116
115
  locked?: boolean | undefined;
117
116
  custom?: Record<string, unknown> | undefined;
@@ -134,13 +133,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
134
133
  modifiedAt: string;
135
134
  source: "session" | "pdf";
136
135
  type: "square" | "circle";
137
- strokeWidth: number;
136
+ width: number;
138
137
  author?: string | undefined;
139
138
  contents?: string | undefined;
140
139
  inReplyTo?: string | undefined;
141
140
  locked?: boolean | undefined;
142
141
  custom?: Record<string, unknown> | undefined;
143
- fill?: string | undefined;
142
+ interiorColor?: string | undefined;
144
143
  } | {
145
144
  id: string;
146
145
  page: number;
@@ -164,13 +163,14 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
164
163
  x: number;
165
164
  y: number;
166
165
  };
167
- strokeWidth: number;
166
+ width: number;
168
167
  author?: string | undefined;
169
168
  contents?: string | undefined;
170
169
  inReplyTo?: string | undefined;
171
170
  locked?: boolean | undefined;
172
171
  custom?: Record<string, unknown> | undefined;
173
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
172
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
173
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
174
174
  } | {
175
175
  id: string;
176
176
  page: number;
@@ -190,13 +190,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
190
190
  x: number;
191
191
  y: number;
192
192
  }[];
193
- strokeWidth: number;
193
+ width: number;
194
194
  author?: string | undefined;
195
195
  contents?: string | undefined;
196
196
  inReplyTo?: string | undefined;
197
197
  locked?: boolean | undefined;
198
198
  custom?: Record<string, unknown> | undefined;
199
- fill?: string | undefined;
199
+ interiorColor?: string | undefined;
200
200
  } | {
201
201
  id: string;
202
202
  page: number;
@@ -212,11 +212,11 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
212
212
  modifiedAt: string;
213
213
  source: "session" | "pdf";
214
214
  type: "ink";
215
- paths: {
215
+ inklist: {
216
216
  x: number;
217
217
  y: number;
218
218
  }[][];
219
- strokeWidth: number;
219
+ width: number;
220
220
  author?: string | undefined;
221
221
  contents?: string | undefined;
222
222
  inReplyTo?: string | undefined;
@@ -238,7 +238,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
238
238
  source: "session" | "pdf";
239
239
  type: "redact";
240
240
  origin: "user" | "suggested";
241
- fill: string;
241
+ interiorColor: string;
242
242
  author?: string | undefined;
243
243
  contents?: string | undefined;
244
244
  inReplyTo?: string | undefined;
@@ -331,8 +331,8 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
331
331
  createdAt: string;
332
332
  modifiedAt: string;
333
333
  source: "session" | "pdf";
334
- type: "note";
335
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
334
+ type: "text";
335
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
336
336
  author?: string | undefined;
337
337
  contents?: string | undefined;
338
338
  inReplyTo?: string | undefined;
@@ -352,13 +352,12 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
352
352
  createdAt: string;
353
353
  modifiedAt: string;
354
354
  source: "session" | "pdf";
355
- type: "freeText";
356
- text: string;
355
+ type: "freetext";
356
+ contents: string;
357
357
  fontSize: number;
358
358
  fontFamily: string;
359
359
  align: "left" | "center" | "right";
360
360
  author?: string | undefined;
361
- contents?: string | undefined;
362
361
  inReplyTo?: string | undefined;
363
362
  locked?: boolean | undefined;
364
363
  custom?: Record<string, unknown> | undefined;
@@ -381,13 +380,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
381
380
  modifiedAt: string;
382
381
  source: "session" | "pdf";
383
382
  type: "square" | "circle";
384
- strokeWidth: number;
383
+ width: number;
385
384
  author?: string | undefined;
386
385
  contents?: string | undefined;
387
386
  inReplyTo?: string | undefined;
388
387
  locked?: boolean | undefined;
389
388
  custom?: Record<string, unknown> | undefined;
390
- fill?: string | undefined;
389
+ interiorColor?: string | undefined;
391
390
  } | {
392
391
  id: string;
393
392
  page: number;
@@ -411,13 +410,14 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
411
410
  x: number;
412
411
  y: number;
413
412
  };
414
- strokeWidth: number;
413
+ width: number;
415
414
  author?: string | undefined;
416
415
  contents?: string | undefined;
417
416
  inReplyTo?: string | undefined;
418
417
  locked?: boolean | undefined;
419
418
  custom?: Record<string, unknown> | undefined;
420
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
419
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
420
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
421
421
  } | {
422
422
  id: string;
423
423
  page: number;
@@ -437,13 +437,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
437
437
  x: number;
438
438
  y: number;
439
439
  }[];
440
- strokeWidth: number;
440
+ width: number;
441
441
  author?: string | undefined;
442
442
  contents?: string | undefined;
443
443
  inReplyTo?: string | undefined;
444
444
  locked?: boolean | undefined;
445
445
  custom?: Record<string, unknown> | undefined;
446
- fill?: string | undefined;
446
+ interiorColor?: string | undefined;
447
447
  } | {
448
448
  id: string;
449
449
  page: number;
@@ -459,11 +459,11 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
459
459
  modifiedAt: string;
460
460
  source: "session" | "pdf";
461
461
  type: "ink";
462
- paths: {
462
+ inklist: {
463
463
  x: number;
464
464
  y: number;
465
465
  }[][];
466
- strokeWidth: number;
466
+ width: number;
467
467
  author?: string | undefined;
468
468
  contents?: string | undefined;
469
469
  inReplyTo?: string | undefined;
@@ -485,7 +485,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
485
485
  source: "session" | "pdf";
486
486
  type: "redact";
487
487
  origin: "user" | "suggested";
488
- fill: string;
488
+ interiorColor: string;
489
489
  author?: string | undefined;
490
490
  contents?: string | undefined;
491
491
  inReplyTo?: string | undefined;
@@ -581,8 +581,8 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
581
581
  createdAt: string;
582
582
  modifiedAt: string;
583
583
  source: "session" | "pdf";
584
- type: "note";
585
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
584
+ type: "text";
585
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
586
586
  author?: string | undefined;
587
587
  contents?: string | undefined;
588
588
  inReplyTo?: string | undefined;
@@ -602,13 +602,12 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
602
602
  createdAt: string;
603
603
  modifiedAt: string;
604
604
  source: "session" | "pdf";
605
- type: "freeText";
606
- text: string;
605
+ type: "freetext";
606
+ contents: string;
607
607
  fontSize: number;
608
608
  fontFamily: string;
609
609
  align: "left" | "center" | "right";
610
610
  author?: string | undefined;
611
- contents?: string | undefined;
612
611
  inReplyTo?: string | undefined;
613
612
  locked?: boolean | undefined;
614
613
  custom?: Record<string, unknown> | undefined;
@@ -631,13 +630,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
631
630
  modifiedAt: string;
632
631
  source: "session" | "pdf";
633
632
  type: "square" | "circle";
634
- strokeWidth: number;
633
+ width: number;
635
634
  author?: string | undefined;
636
635
  contents?: string | undefined;
637
636
  inReplyTo?: string | undefined;
638
637
  locked?: boolean | undefined;
639
638
  custom?: Record<string, unknown> | undefined;
640
- fill?: string | undefined;
639
+ interiorColor?: string | undefined;
641
640
  } | {
642
641
  id: string;
643
642
  page: number;
@@ -661,13 +660,14 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
661
660
  x: number;
662
661
  y: number;
663
662
  };
664
- strokeWidth: number;
663
+ width: number;
665
664
  author?: string | undefined;
666
665
  contents?: string | undefined;
667
666
  inReplyTo?: string | undefined;
668
667
  locked?: boolean | undefined;
669
668
  custom?: Record<string, unknown> | undefined;
670
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
669
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
670
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
671
671
  } | {
672
672
  id: string;
673
673
  page: number;
@@ -687,13 +687,13 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
687
687
  x: number;
688
688
  y: number;
689
689
  }[];
690
- strokeWidth: number;
690
+ width: number;
691
691
  author?: string | undefined;
692
692
  contents?: string | undefined;
693
693
  inReplyTo?: string | undefined;
694
694
  locked?: boolean | undefined;
695
695
  custom?: Record<string, unknown> | undefined;
696
- fill?: string | undefined;
696
+ interiorColor?: string | undefined;
697
697
  } | {
698
698
  id: string;
699
699
  page: number;
@@ -709,11 +709,11 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
709
709
  modifiedAt: string;
710
710
  source: "session" | "pdf";
711
711
  type: "ink";
712
- paths: {
712
+ inklist: {
713
713
  x: number;
714
714
  y: number;
715
715
  }[][];
716
- strokeWidth: number;
716
+ width: number;
717
717
  author?: string | undefined;
718
718
  contents?: string | undefined;
719
719
  inReplyTo?: string | undefined;
@@ -735,7 +735,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
735
735
  source: "session" | "pdf";
736
736
  type: "redact";
737
737
  origin: "user" | "suggested";
738
- fill: string;
738
+ interiorColor: string;
739
739
  author?: string | undefined;
740
740
  contents?: string | undefined;
741
741
  inReplyTo?: string | undefined;
@@ -52,8 +52,8 @@ export declare function useAnnotations(): {
52
52
  createdAt: string;
53
53
  modifiedAt: string;
54
54
  source: "session" | "pdf";
55
- type: "note";
56
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
55
+ type: "text";
56
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
57
57
  author?: string | undefined;
58
58
  contents?: string | undefined;
59
59
  inReplyTo?: string | undefined;
@@ -73,13 +73,12 @@ export declare function useAnnotations(): {
73
73
  createdAt: string;
74
74
  modifiedAt: string;
75
75
  source: "session" | "pdf";
76
- type: "freeText";
77
- text: string;
76
+ type: "freetext";
77
+ contents: string;
78
78
  fontSize: number;
79
79
  fontFamily: string;
80
80
  align: "left" | "center" | "right";
81
81
  author?: string | undefined;
82
- contents?: string | undefined;
83
82
  inReplyTo?: string | undefined;
84
83
  locked?: boolean | undefined;
85
84
  custom?: Record<string, unknown> | undefined;
@@ -102,13 +101,13 @@ export declare function useAnnotations(): {
102
101
  modifiedAt: string;
103
102
  source: "session" | "pdf";
104
103
  type: "square" | "circle";
105
- strokeWidth: number;
104
+ width: number;
106
105
  author?: string | undefined;
107
106
  contents?: string | undefined;
108
107
  inReplyTo?: string | undefined;
109
108
  locked?: boolean | undefined;
110
109
  custom?: Record<string, unknown> | undefined;
111
- fill?: string | undefined;
110
+ interiorColor?: string | undefined;
112
111
  } | {
113
112
  id: string;
114
113
  page: number;
@@ -132,13 +131,14 @@ export declare function useAnnotations(): {
132
131
  x: number;
133
132
  y: number;
134
133
  };
135
- strokeWidth: number;
134
+ width: number;
136
135
  author?: string | undefined;
137
136
  contents?: string | undefined;
138
137
  inReplyTo?: string | undefined;
139
138
  locked?: boolean | undefined;
140
139
  custom?: Record<string, unknown> | undefined;
141
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
140
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
141
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
142
142
  } | {
143
143
  id: string;
144
144
  page: number;
@@ -158,13 +158,13 @@ export declare function useAnnotations(): {
158
158
  x: number;
159
159
  y: number;
160
160
  }[];
161
- strokeWidth: number;
161
+ width: number;
162
162
  author?: string | undefined;
163
163
  contents?: string | undefined;
164
164
  inReplyTo?: string | undefined;
165
165
  locked?: boolean | undefined;
166
166
  custom?: Record<string, unknown> | undefined;
167
- fill?: string | undefined;
167
+ interiorColor?: string | undefined;
168
168
  } | {
169
169
  id: string;
170
170
  page: number;
@@ -180,11 +180,11 @@ export declare function useAnnotations(): {
180
180
  modifiedAt: string;
181
181
  source: "session" | "pdf";
182
182
  type: "ink";
183
- paths: {
183
+ inklist: {
184
184
  x: number;
185
185
  y: number;
186
186
  }[][];
187
- strokeWidth: number;
187
+ width: number;
188
188
  author?: string | undefined;
189
189
  contents?: string | undefined;
190
190
  inReplyTo?: string | undefined;
@@ -206,7 +206,7 @@ export declare function useAnnotations(): {
206
206
  source: "session" | "pdf";
207
207
  type: "redact";
208
208
  origin: "user" | "suggested";
209
- fill: string;
209
+ interiorColor: string;
210
210
  author?: string | undefined;
211
211
  contents?: string | undefined;
212
212
  inReplyTo?: string | undefined;
@@ -290,8 +290,8 @@ export declare function useAnnotations(): {
290
290
  createdAt: string;
291
291
  modifiedAt: string;
292
292
  source: "session" | "pdf";
293
- type: "note";
294
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
293
+ type: "text";
294
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
295
295
  author?: string | undefined;
296
296
  contents?: string | undefined;
297
297
  inReplyTo?: string | undefined;
@@ -311,13 +311,12 @@ export declare function useAnnotations(): {
311
311
  createdAt: string;
312
312
  modifiedAt: string;
313
313
  source: "session" | "pdf";
314
- type: "freeText";
315
- text: string;
314
+ type: "freetext";
315
+ contents: string;
316
316
  fontSize: number;
317
317
  fontFamily: string;
318
318
  align: "left" | "center" | "right";
319
319
  author?: string | undefined;
320
- contents?: string | undefined;
321
320
  inReplyTo?: string | undefined;
322
321
  locked?: boolean | undefined;
323
322
  custom?: Record<string, unknown> | undefined;
@@ -340,13 +339,13 @@ export declare function useAnnotations(): {
340
339
  modifiedAt: string;
341
340
  source: "session" | "pdf";
342
341
  type: "square" | "circle";
343
- strokeWidth: number;
342
+ width: number;
344
343
  author?: string | undefined;
345
344
  contents?: string | undefined;
346
345
  inReplyTo?: string | undefined;
347
346
  locked?: boolean | undefined;
348
347
  custom?: Record<string, unknown> | undefined;
349
- fill?: string | undefined;
348
+ interiorColor?: string | undefined;
350
349
  } | {
351
350
  id: string;
352
351
  page: number;
@@ -370,13 +369,14 @@ export declare function useAnnotations(): {
370
369
  x: number;
371
370
  y: number;
372
371
  };
373
- strokeWidth: number;
372
+ width: number;
374
373
  author?: string | undefined;
375
374
  contents?: string | undefined;
376
375
  inReplyTo?: string | undefined;
377
376
  locked?: boolean | undefined;
378
377
  custom?: Record<string, unknown> | undefined;
379
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
378
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
379
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
380
380
  } | {
381
381
  id: string;
382
382
  page: number;
@@ -396,13 +396,13 @@ export declare function useAnnotations(): {
396
396
  x: number;
397
397
  y: number;
398
398
  }[];
399
- strokeWidth: number;
399
+ width: number;
400
400
  author?: string | undefined;
401
401
  contents?: string | undefined;
402
402
  inReplyTo?: string | undefined;
403
403
  locked?: boolean | undefined;
404
404
  custom?: Record<string, unknown> | undefined;
405
- fill?: string | undefined;
405
+ interiorColor?: string | undefined;
406
406
  } | {
407
407
  id: string;
408
408
  page: number;
@@ -418,11 +418,11 @@ export declare function useAnnotations(): {
418
418
  modifiedAt: string;
419
419
  source: "session" | "pdf";
420
420
  type: "ink";
421
- paths: {
421
+ inklist: {
422
422
  x: number;
423
423
  y: number;
424
424
  }[][];
425
- strokeWidth: number;
425
+ width: number;
426
426
  author?: string | undefined;
427
427
  contents?: string | undefined;
428
428
  inReplyTo?: string | undefined;
@@ -444,7 +444,7 @@ export declare function useAnnotations(): {
444
444
  source: "session" | "pdf";
445
445
  type: "redact";
446
446
  origin: "user" | "suggested";
447
- fill: string;
447
+ interiorColor: string;
448
448
  author?: string | undefined;
449
449
  contents?: string | undefined;
450
450
  inReplyTo?: string | undefined;
@@ -530,8 +530,8 @@ export declare function useAnnotations(): {
530
530
  createdAt: string;
531
531
  modifiedAt: string;
532
532
  source: "session" | "pdf";
533
- type: "note";
534
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
533
+ type: "text";
534
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
535
535
  author?: string | undefined;
536
536
  contents?: string | undefined;
537
537
  inReplyTo?: string | undefined;
@@ -551,13 +551,12 @@ export declare function useAnnotations(): {
551
551
  createdAt: string;
552
552
  modifiedAt: string;
553
553
  source: "session" | "pdf";
554
- type: "freeText";
555
- text: string;
554
+ type: "freetext";
555
+ contents: string;
556
556
  fontSize: number;
557
557
  fontFamily: string;
558
558
  align: "left" | "center" | "right";
559
559
  author?: string | undefined;
560
- contents?: string | undefined;
561
560
  inReplyTo?: string | undefined;
562
561
  locked?: boolean | undefined;
563
562
  custom?: Record<string, unknown> | undefined;
@@ -580,13 +579,13 @@ export declare function useAnnotations(): {
580
579
  modifiedAt: string;
581
580
  source: "session" | "pdf";
582
581
  type: "square" | "circle";
583
- strokeWidth: number;
582
+ width: number;
584
583
  author?: string | undefined;
585
584
  contents?: string | undefined;
586
585
  inReplyTo?: string | undefined;
587
586
  locked?: boolean | undefined;
588
587
  custom?: Record<string, unknown> | undefined;
589
- fill?: string | undefined;
588
+ interiorColor?: string | undefined;
590
589
  } | {
591
590
  id: string;
592
591
  page: number;
@@ -610,13 +609,14 @@ export declare function useAnnotations(): {
610
609
  x: number;
611
610
  y: number;
612
611
  };
613
- strokeWidth: number;
612
+ width: number;
614
613
  author?: string | undefined;
615
614
  contents?: string | undefined;
616
615
  inReplyTo?: string | undefined;
617
616
  locked?: boolean | undefined;
618
617
  custom?: Record<string, unknown> | undefined;
619
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
618
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
619
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
620
620
  } | {
621
621
  id: string;
622
622
  page: number;
@@ -636,13 +636,13 @@ export declare function useAnnotations(): {
636
636
  x: number;
637
637
  y: number;
638
638
  }[];
639
- strokeWidth: number;
639
+ width: number;
640
640
  author?: string | undefined;
641
641
  contents?: string | undefined;
642
642
  inReplyTo?: string | undefined;
643
643
  locked?: boolean | undefined;
644
644
  custom?: Record<string, unknown> | undefined;
645
- fill?: string | undefined;
645
+ interiorColor?: string | undefined;
646
646
  } | {
647
647
  id: string;
648
648
  page: number;
@@ -658,11 +658,11 @@ export declare function useAnnotations(): {
658
658
  modifiedAt: string;
659
659
  source: "session" | "pdf";
660
660
  type: "ink";
661
- paths: {
661
+ inklist: {
662
662
  x: number;
663
663
  y: number;
664
664
  }[][];
665
- strokeWidth: number;
665
+ width: number;
666
666
  author?: string | undefined;
667
667
  contents?: string | undefined;
668
668
  inReplyTo?: string | undefined;
@@ -684,7 +684,7 @@ export declare function useAnnotations(): {
684
684
  source: "session" | "pdf";
685
685
  type: "redact";
686
686
  origin: "user" | "suggested";
687
- fill: string;
687
+ interiorColor: string;
688
688
  author?: string | undefined;
689
689
  contents?: string | undefined;
690
690
  inReplyTo?: string | undefined;
@@ -769,8 +769,8 @@ export declare function useAnnotations(): {
769
769
  createdAt: string;
770
770
  modifiedAt: string;
771
771
  source: "session" | "pdf";
772
- type: "note";
773
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
772
+ type: "text";
773
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
774
774
  author?: string | undefined;
775
775
  contents?: string | undefined;
776
776
  inReplyTo?: string | undefined;
@@ -790,13 +790,12 @@ export declare function useAnnotations(): {
790
790
  createdAt: string;
791
791
  modifiedAt: string;
792
792
  source: "session" | "pdf";
793
- type: "freeText";
794
- text: string;
793
+ type: "freetext";
794
+ contents: string;
795
795
  fontSize: number;
796
796
  fontFamily: string;
797
797
  align: "left" | "center" | "right";
798
798
  author?: string | undefined;
799
- contents?: string | undefined;
800
799
  inReplyTo?: string | undefined;
801
800
  locked?: boolean | undefined;
802
801
  custom?: Record<string, unknown> | undefined;
@@ -819,13 +818,13 @@ export declare function useAnnotations(): {
819
818
  modifiedAt: string;
820
819
  source: "session" | "pdf";
821
820
  type: "square" | "circle";
822
- strokeWidth: number;
821
+ width: number;
823
822
  author?: string | undefined;
824
823
  contents?: string | undefined;
825
824
  inReplyTo?: string | undefined;
826
825
  locked?: boolean | undefined;
827
826
  custom?: Record<string, unknown> | undefined;
828
- fill?: string | undefined;
827
+ interiorColor?: string | undefined;
829
828
  } | {
830
829
  id: string;
831
830
  page: number;
@@ -849,13 +848,14 @@ export declare function useAnnotations(): {
849
848
  x: number;
850
849
  y: number;
851
850
  };
852
- strokeWidth: number;
851
+ width: number;
853
852
  author?: string | undefined;
854
853
  contents?: string | undefined;
855
854
  inReplyTo?: string | undefined;
856
855
  locked?: boolean | undefined;
857
856
  custom?: Record<string, unknown> | undefined;
858
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
857
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
858
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
859
859
  } | {
860
860
  id: string;
861
861
  page: number;
@@ -875,13 +875,13 @@ export declare function useAnnotations(): {
875
875
  x: number;
876
876
  y: number;
877
877
  }[];
878
- strokeWidth: number;
878
+ width: number;
879
879
  author?: string | undefined;
880
880
  contents?: string | undefined;
881
881
  inReplyTo?: string | undefined;
882
882
  locked?: boolean | undefined;
883
883
  custom?: Record<string, unknown> | undefined;
884
- fill?: string | undefined;
884
+ interiorColor?: string | undefined;
885
885
  } | {
886
886
  id: string;
887
887
  page: number;
@@ -897,11 +897,11 @@ export declare function useAnnotations(): {
897
897
  modifiedAt: string;
898
898
  source: "session" | "pdf";
899
899
  type: "ink";
900
- paths: {
900
+ inklist: {
901
901
  x: number;
902
902
  y: number;
903
903
  }[][];
904
- strokeWidth: number;
904
+ width: number;
905
905
  author?: string | undefined;
906
906
  contents?: string | undefined;
907
907
  inReplyTo?: string | undefined;
@@ -923,7 +923,7 @@ export declare function useAnnotations(): {
923
923
  source: "session" | "pdf";
924
924
  type: "redact";
925
925
  origin: "user" | "suggested";
926
- fill: string;
926
+ interiorColor: string;
927
927
  author?: string | undefined;
928
928
  contents?: string | undefined;
929
929
  inReplyTo?: string | undefined;
@@ -1008,8 +1008,8 @@ export declare function useAnnotations(): {
1008
1008
  createdAt: string;
1009
1009
  modifiedAt: string;
1010
1010
  source: "session" | "pdf";
1011
- type: "note";
1012
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
1011
+ type: "text";
1012
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
1013
1013
  author?: string | undefined;
1014
1014
  contents?: string | undefined;
1015
1015
  inReplyTo?: string | undefined;
@@ -1029,13 +1029,12 @@ export declare function useAnnotations(): {
1029
1029
  createdAt: string;
1030
1030
  modifiedAt: string;
1031
1031
  source: "session" | "pdf";
1032
- type: "freeText";
1033
- text: string;
1032
+ type: "freetext";
1033
+ contents: string;
1034
1034
  fontSize: number;
1035
1035
  fontFamily: string;
1036
1036
  align: "left" | "center" | "right";
1037
1037
  author?: string | undefined;
1038
- contents?: string | undefined;
1039
1038
  inReplyTo?: string | undefined;
1040
1039
  locked?: boolean | undefined;
1041
1040
  custom?: Record<string, unknown> | undefined;
@@ -1058,13 +1057,13 @@ export declare function useAnnotations(): {
1058
1057
  modifiedAt: string;
1059
1058
  source: "session" | "pdf";
1060
1059
  type: "square" | "circle";
1061
- strokeWidth: number;
1060
+ width: number;
1062
1061
  author?: string | undefined;
1063
1062
  contents?: string | undefined;
1064
1063
  inReplyTo?: string | undefined;
1065
1064
  locked?: boolean | undefined;
1066
1065
  custom?: Record<string, unknown> | undefined;
1067
- fill?: string | undefined;
1066
+ interiorColor?: string | undefined;
1068
1067
  } | {
1069
1068
  id: string;
1070
1069
  page: number;
@@ -1088,13 +1087,14 @@ export declare function useAnnotations(): {
1088
1087
  x: number;
1089
1088
  y: number;
1090
1089
  };
1091
- strokeWidth: number;
1090
+ width: number;
1092
1091
  author?: string | undefined;
1093
1092
  contents?: string | undefined;
1094
1093
  inReplyTo?: string | undefined;
1095
1094
  locked?: boolean | undefined;
1096
1095
  custom?: Record<string, unknown> | undefined;
1097
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
1096
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1097
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1098
1098
  } | {
1099
1099
  id: string;
1100
1100
  page: number;
@@ -1114,13 +1114,13 @@ export declare function useAnnotations(): {
1114
1114
  x: number;
1115
1115
  y: number;
1116
1116
  }[];
1117
- strokeWidth: number;
1117
+ width: number;
1118
1118
  author?: string | undefined;
1119
1119
  contents?: string | undefined;
1120
1120
  inReplyTo?: string | undefined;
1121
1121
  locked?: boolean | undefined;
1122
1122
  custom?: Record<string, unknown> | undefined;
1123
- fill?: string | undefined;
1123
+ interiorColor?: string | undefined;
1124
1124
  } | {
1125
1125
  id: string;
1126
1126
  page: number;
@@ -1136,11 +1136,11 @@ export declare function useAnnotations(): {
1136
1136
  modifiedAt: string;
1137
1137
  source: "session" | "pdf";
1138
1138
  type: "ink";
1139
- paths: {
1139
+ inklist: {
1140
1140
  x: number;
1141
1141
  y: number;
1142
1142
  }[][];
1143
- strokeWidth: number;
1143
+ width: number;
1144
1144
  author?: string | undefined;
1145
1145
  contents?: string | undefined;
1146
1146
  inReplyTo?: string | undefined;
@@ -1162,7 +1162,7 @@ export declare function useAnnotations(): {
1162
1162
  source: "session" | "pdf";
1163
1163
  type: "redact";
1164
1164
  origin: "user" | "suggested";
1165
- fill: string;
1165
+ interiorColor: string;
1166
1166
  author?: string | undefined;
1167
1167
  contents?: string | undefined;
1168
1168
  inReplyTo?: string | undefined;
@@ -1247,8 +1247,8 @@ export declare function useAnnotations(): {
1247
1247
  createdAt: string;
1248
1248
  modifiedAt: string;
1249
1249
  source: "session" | "pdf";
1250
- type: "note";
1251
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
1250
+ type: "text";
1251
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
1252
1252
  author?: string | undefined;
1253
1253
  contents?: string | undefined;
1254
1254
  inReplyTo?: string | undefined;
@@ -1268,13 +1268,12 @@ export declare function useAnnotations(): {
1268
1268
  createdAt: string;
1269
1269
  modifiedAt: string;
1270
1270
  source: "session" | "pdf";
1271
- type: "freeText";
1272
- text: string;
1271
+ type: "freetext";
1272
+ contents: string;
1273
1273
  fontSize: number;
1274
1274
  fontFamily: string;
1275
1275
  align: "left" | "center" | "right";
1276
1276
  author?: string | undefined;
1277
- contents?: string | undefined;
1278
1277
  inReplyTo?: string | undefined;
1279
1278
  locked?: boolean | undefined;
1280
1279
  custom?: Record<string, unknown> | undefined;
@@ -1297,13 +1296,13 @@ export declare function useAnnotations(): {
1297
1296
  modifiedAt: string;
1298
1297
  source: "session" | "pdf";
1299
1298
  type: "square" | "circle";
1300
- strokeWidth: number;
1299
+ width: number;
1301
1300
  author?: string | undefined;
1302
1301
  contents?: string | undefined;
1303
1302
  inReplyTo?: string | undefined;
1304
1303
  locked?: boolean | undefined;
1305
1304
  custom?: Record<string, unknown> | undefined;
1306
- fill?: string | undefined;
1305
+ interiorColor?: string | undefined;
1307
1306
  } | {
1308
1307
  id: string;
1309
1308
  page: number;
@@ -1327,13 +1326,14 @@ export declare function useAnnotations(): {
1327
1326
  x: number;
1328
1327
  y: number;
1329
1328
  };
1330
- strokeWidth: number;
1329
+ width: number;
1331
1330
  author?: string | undefined;
1332
1331
  contents?: string | undefined;
1333
1332
  inReplyTo?: string | undefined;
1334
1333
  locked?: boolean | undefined;
1335
1334
  custom?: Record<string, unknown> | undefined;
1336
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
1335
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1336
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1337
1337
  } | {
1338
1338
  id: string;
1339
1339
  page: number;
@@ -1353,13 +1353,13 @@ export declare function useAnnotations(): {
1353
1353
  x: number;
1354
1354
  y: number;
1355
1355
  }[];
1356
- strokeWidth: number;
1356
+ width: number;
1357
1357
  author?: string | undefined;
1358
1358
  contents?: string | undefined;
1359
1359
  inReplyTo?: string | undefined;
1360
1360
  locked?: boolean | undefined;
1361
1361
  custom?: Record<string, unknown> | undefined;
1362
- fill?: string | undefined;
1362
+ interiorColor?: string | undefined;
1363
1363
  } | {
1364
1364
  id: string;
1365
1365
  page: number;
@@ -1375,11 +1375,11 @@ export declare function useAnnotations(): {
1375
1375
  modifiedAt: string;
1376
1376
  source: "session" | "pdf";
1377
1377
  type: "ink";
1378
- paths: {
1378
+ inklist: {
1379
1379
  x: number;
1380
1380
  y: number;
1381
1381
  }[][];
1382
- strokeWidth: number;
1382
+ width: number;
1383
1383
  author?: string | undefined;
1384
1384
  contents?: string | undefined;
1385
1385
  inReplyTo?: string | undefined;
@@ -1401,7 +1401,7 @@ export declare function useAnnotations(): {
1401
1401
  source: "session" | "pdf";
1402
1402
  type: "redact";
1403
1403
  origin: "user" | "suggested";
1404
- fill: string;
1404
+ interiorColor: string;
1405
1405
  author?: string | undefined;
1406
1406
  contents?: string | undefined;
1407
1407
  inReplyTo?: string | undefined;
@@ -1489,8 +1489,8 @@ export declare function useAnnotations(): {
1489
1489
  createdAt: string;
1490
1490
  modifiedAt: string;
1491
1491
  source: "session" | "pdf";
1492
- type: "note";
1493
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
1492
+ type: "text";
1493
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
1494
1494
  author?: string | undefined;
1495
1495
  contents?: string | undefined;
1496
1496
  inReplyTo?: string | undefined;
@@ -1510,13 +1510,12 @@ export declare function useAnnotations(): {
1510
1510
  createdAt: string;
1511
1511
  modifiedAt: string;
1512
1512
  source: "session" | "pdf";
1513
- type: "freeText";
1514
- text: string;
1513
+ type: "freetext";
1514
+ contents: string;
1515
1515
  fontSize: number;
1516
1516
  fontFamily: string;
1517
1517
  align: "left" | "center" | "right";
1518
1518
  author?: string | undefined;
1519
- contents?: string | undefined;
1520
1519
  inReplyTo?: string | undefined;
1521
1520
  locked?: boolean | undefined;
1522
1521
  custom?: Record<string, unknown> | undefined;
@@ -1539,13 +1538,13 @@ export declare function useAnnotations(): {
1539
1538
  modifiedAt: string;
1540
1539
  source: "session" | "pdf";
1541
1540
  type: "square" | "circle";
1542
- strokeWidth: number;
1541
+ width: number;
1543
1542
  author?: string | undefined;
1544
1543
  contents?: string | undefined;
1545
1544
  inReplyTo?: string | undefined;
1546
1545
  locked?: boolean | undefined;
1547
1546
  custom?: Record<string, unknown> | undefined;
1548
- fill?: string | undefined;
1547
+ interiorColor?: string | undefined;
1549
1548
  } | {
1550
1549
  id: string;
1551
1550
  page: number;
@@ -1569,13 +1568,14 @@ export declare function useAnnotations(): {
1569
1568
  x: number;
1570
1569
  y: number;
1571
1570
  };
1572
- strokeWidth: number;
1571
+ width: number;
1573
1572
  author?: string | undefined;
1574
1573
  contents?: string | undefined;
1575
1574
  inReplyTo?: string | undefined;
1576
1575
  locked?: boolean | undefined;
1577
1576
  custom?: Record<string, unknown> | undefined;
1578
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
1577
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1578
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1579
1579
  } | {
1580
1580
  id: string;
1581
1581
  page: number;
@@ -1595,13 +1595,13 @@ export declare function useAnnotations(): {
1595
1595
  x: number;
1596
1596
  y: number;
1597
1597
  }[];
1598
- strokeWidth: number;
1598
+ width: number;
1599
1599
  author?: string | undefined;
1600
1600
  contents?: string | undefined;
1601
1601
  inReplyTo?: string | undefined;
1602
1602
  locked?: boolean | undefined;
1603
1603
  custom?: Record<string, unknown> | undefined;
1604
- fill?: string | undefined;
1604
+ interiorColor?: string | undefined;
1605
1605
  } | {
1606
1606
  id: string;
1607
1607
  page: number;
@@ -1617,11 +1617,11 @@ export declare function useAnnotations(): {
1617
1617
  modifiedAt: string;
1618
1618
  source: "session" | "pdf";
1619
1619
  type: "ink";
1620
- paths: {
1620
+ inklist: {
1621
1621
  x: number;
1622
1622
  y: number;
1623
1623
  }[][];
1624
- strokeWidth: number;
1624
+ width: number;
1625
1625
  author?: string | undefined;
1626
1626
  contents?: string | undefined;
1627
1627
  inReplyTo?: string | undefined;
@@ -1643,7 +1643,7 @@ export declare function useAnnotations(): {
1643
1643
  source: "session" | "pdf";
1644
1644
  type: "redact";
1645
1645
  origin: "user" | "suggested";
1646
- fill: string;
1646
+ interiorColor: string;
1647
1647
  author?: string | undefined;
1648
1648
  contents?: string | undefined;
1649
1649
  inReplyTo?: string | undefined;
@@ -1729,8 +1729,8 @@ export declare function useAnnotations(): {
1729
1729
  createdAt: string;
1730
1730
  modifiedAt: string;
1731
1731
  source: "session" | "pdf";
1732
- type: "note";
1733
- icon: "note" | "comment" | "help" | "insert" | "key" | "paragraph";
1732
+ type: "text";
1733
+ icon: "comment" | "note" | "help" | "insert" | "key" | "paragraph";
1734
1734
  author?: string | undefined;
1735
1735
  contents?: string | undefined;
1736
1736
  inReplyTo?: string | undefined;
@@ -1750,13 +1750,12 @@ export declare function useAnnotations(): {
1750
1750
  createdAt: string;
1751
1751
  modifiedAt: string;
1752
1752
  source: "session" | "pdf";
1753
- type: "freeText";
1754
- text: string;
1753
+ type: "freetext";
1754
+ contents: string;
1755
1755
  fontSize: number;
1756
1756
  fontFamily: string;
1757
1757
  align: "left" | "center" | "right";
1758
1758
  author?: string | undefined;
1759
- contents?: string | undefined;
1760
1759
  inReplyTo?: string | undefined;
1761
1760
  locked?: boolean | undefined;
1762
1761
  custom?: Record<string, unknown> | undefined;
@@ -1779,13 +1778,13 @@ export declare function useAnnotations(): {
1779
1778
  modifiedAt: string;
1780
1779
  source: "session" | "pdf";
1781
1780
  type: "square" | "circle";
1782
- strokeWidth: number;
1781
+ width: number;
1783
1782
  author?: string | undefined;
1784
1783
  contents?: string | undefined;
1785
1784
  inReplyTo?: string | undefined;
1786
1785
  locked?: boolean | undefined;
1787
1786
  custom?: Record<string, unknown> | undefined;
1788
- fill?: string | undefined;
1787
+ interiorColor?: string | undefined;
1789
1788
  } | {
1790
1789
  id: string;
1791
1790
  page: number;
@@ -1809,13 +1808,14 @@ export declare function useAnnotations(): {
1809
1808
  x: number;
1810
1809
  y: number;
1811
1810
  };
1812
- strokeWidth: number;
1811
+ width: number;
1813
1812
  author?: string | undefined;
1814
1813
  contents?: string | undefined;
1815
1814
  inReplyTo?: string | undefined;
1816
1815
  locked?: boolean | undefined;
1817
1816
  custom?: Record<string, unknown> | undefined;
1818
- endings?: ["square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash", "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash"] | undefined;
1817
+ head?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1818
+ tail?: "square" | "circle" | "none" | "openArrow" | "closedArrow" | "diamond" | "butt" | "slash" | undefined;
1819
1819
  } | {
1820
1820
  id: string;
1821
1821
  page: number;
@@ -1835,13 +1835,13 @@ export declare function useAnnotations(): {
1835
1835
  x: number;
1836
1836
  y: number;
1837
1837
  }[];
1838
- strokeWidth: number;
1838
+ width: number;
1839
1839
  author?: string | undefined;
1840
1840
  contents?: string | undefined;
1841
1841
  inReplyTo?: string | undefined;
1842
1842
  locked?: boolean | undefined;
1843
1843
  custom?: Record<string, unknown> | undefined;
1844
- fill?: string | undefined;
1844
+ interiorColor?: string | undefined;
1845
1845
  } | {
1846
1846
  id: string;
1847
1847
  page: number;
@@ -1857,11 +1857,11 @@ export declare function useAnnotations(): {
1857
1857
  modifiedAt: string;
1858
1858
  source: "session" | "pdf";
1859
1859
  type: "ink";
1860
- paths: {
1860
+ inklist: {
1861
1861
  x: number;
1862
1862
  y: number;
1863
1863
  }[][];
1864
- strokeWidth: number;
1864
+ width: number;
1865
1865
  author?: string | undefined;
1866
1866
  contents?: string | undefined;
1867
1867
  inReplyTo?: string | undefined;
@@ -1883,7 +1883,7 @@ export declare function useAnnotations(): {
1883
1883
  source: "session" | "pdf";
1884
1884
  type: "redact";
1885
1885
  origin: "user" | "suggested";
1886
- fill: string;
1886
+ interiorColor: string;
1887
1887
  author?: string | undefined;
1888
1888
  contents?: string | undefined;
1889
1889
  inReplyTo?: string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkbar/vue",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Vue 3 components and composables for Inkbar, the browser PDF viewer and editor.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://inkbar.dev",
@@ -24,17 +24,17 @@
24
24
  "./package.json": "./package.json"
25
25
  },
26
26
  "dependencies": {
27
- "@inkbar/icons": "^0.2.0",
27
+ "@inkbar/icons": "^0.3.0",
28
28
  "reka-ui": "^2.11.0"
29
29
  },
30
30
  "peerDependencies": {
31
- "@inkbar/core": "^0.2.0",
31
+ "@inkbar/core": "^0.3.0",
32
32
  "vue": "^3.5.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@inkbar/core": "0.2.0",
35
+ "@inkbar/core": "0.3.0",
36
36
  "@inkbar/fixtures": "0.0.0",
37
- "@inkbar/theme": "0.2.0",
37
+ "@inkbar/theme": "0.3.0",
38
38
  "@playwright/experimental-ct-vue": "1.62.1",
39
39
  "@playwright/test": "1.62.1",
40
40
  "@vitejs/plugin-vue": "^6.0.10",