@inkbar/vue 0.8.0 → 0.10.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.
Files changed (144) hide show
  1. package/README.md +70 -4
  2. package/dist/components/InkDownloadButton.js +7 -0
  3. package/dist/components/InkDownloadButton.js.map +1 -0
  4. package/dist/components/InkDownloadButton.vue.d.ts +21 -0
  5. package/dist/components/InkDownloadButton.vue.d.ts.map +1 -0
  6. package/dist/components/InkDownloadButton.vue_vue_type_script_setup_true_lang.js +42 -0
  7. package/dist/components/InkDownloadButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  8. package/dist/components/InkFindBar.js.map +1 -1
  9. package/dist/components/InkFindBar.vue.d.ts.map +1 -1
  10. package/dist/components/InkFindBar.vue_vue_type_script_setup_true_lang.js +48 -48
  11. package/dist/components/InkFindBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  12. package/dist/components/InkHighlightMenu.js.map +1 -1
  13. package/dist/components/InkHighlightMenu.vue.d.ts.map +1 -1
  14. package/dist/components/InkHighlightMenu.vue_vue_type_script_setup_true_lang.js +67 -65
  15. package/dist/components/InkHighlightMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  16. package/dist/components/InkPanel.js +7 -0
  17. package/dist/components/InkPanel.js.map +1 -0
  18. package/dist/components/InkPanel.vue.d.ts +21 -0
  19. package/dist/components/InkPanel.vue.d.ts.map +1 -0
  20. package/dist/components/InkPanel.vue_vue_type_script_setup_true_lang.js +48 -0
  21. package/dist/components/InkPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  22. package/dist/components/InkPrintButton.js +7 -0
  23. package/dist/components/InkPrintButton.js.map +1 -0
  24. package/dist/components/InkPrintButton.vue.d.ts +19 -0
  25. package/dist/components/InkPrintButton.vue.d.ts.map +1 -0
  26. package/dist/components/InkPrintButton.vue_vue_type_script_setup_true_lang.js +39 -0
  27. package/dist/components/InkPrintButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  28. package/dist/components/InkRecordList.js +7 -0
  29. package/dist/components/InkRecordList.js.map +1 -0
  30. package/dist/components/InkRecordList.vue.d.ts +35 -0
  31. package/dist/components/InkRecordList.vue.d.ts.map +1 -0
  32. package/dist/components/InkRecordList.vue_vue_type_script_setup_true_lang.js +41 -0
  33. package/dist/components/InkRecordList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  34. package/dist/components/InkRoot.js.map +1 -1
  35. package/dist/components/InkRoot.vue.d.ts +48 -4
  36. package/dist/components/InkRoot.vue.d.ts.map +1 -1
  37. package/dist/components/InkRoot.vue_vue_type_script_setup_true_lang.js +177 -164
  38. package/dist/components/InkRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
  39. package/dist/components/InkSearchResults.js +7 -0
  40. package/dist/components/InkSearchResults.js.map +1 -0
  41. package/dist/components/InkSearchResults.vue.d.ts +9 -0
  42. package/dist/components/InkSearchResults.vue.d.ts.map +1 -0
  43. package/dist/components/InkSearchResults.vue_vue_type_script_setup_true_lang.js +52 -0
  44. package/dist/components/InkSearchResults.vue_vue_type_script_setup_true_lang.js.map +1 -0
  45. package/dist/components/InkShapeMenu.js.map +1 -1
  46. package/dist/components/InkShapeMenu.vue.d.ts.map +1 -1
  47. package/dist/components/InkShapeMenu.vue_vue_type_script_setup_true_lang.js +58 -56
  48. package/dist/components/InkShapeMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  49. package/dist/components/InkSidebar.js +7 -0
  50. package/dist/components/InkSidebar.js.map +1 -0
  51. package/dist/components/InkSidebar.vue.d.ts +34 -0
  52. package/dist/components/InkSidebar.vue.d.ts.map +1 -0
  53. package/dist/components/InkSidebar.vue_vue_type_script_setup_true_lang.js +95 -0
  54. package/dist/components/InkSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  55. package/dist/components/InkSignatureDialog.js.map +1 -1
  56. package/dist/components/InkSignatureDialog.vue.d.ts +3 -2
  57. package/dist/components/InkSignatureDialog.vue.d.ts.map +1 -1
  58. package/dist/components/InkSignatureDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  59. package/dist/components/InkSignatureMenu.js.map +1 -1
  60. package/dist/components/InkSignatureMenu.vue.d.ts.map +1 -1
  61. package/dist/components/InkSignatureMenu.vue_vue_type_script_setup_true_lang.js +77 -75
  62. package/dist/components/InkSignatureMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  63. package/dist/components/InkThumbnail.js +7 -0
  64. package/dist/components/InkThumbnail.js.map +1 -0
  65. package/dist/components/InkThumbnail.vue.d.ts +18 -0
  66. package/dist/components/InkThumbnail.vue.d.ts.map +1 -0
  67. package/dist/components/InkThumbnail.vue_vue_type_script_setup_true_lang.js +49 -0
  68. package/dist/components/InkThumbnail.vue_vue_type_script_setup_true_lang.js.map +1 -0
  69. package/dist/components/InkThumbnails.js +7 -0
  70. package/dist/components/InkThumbnails.js.map +1 -0
  71. package/dist/components/InkThumbnails.vue.d.ts +27 -0
  72. package/dist/components/InkThumbnails.vue.d.ts.map +1 -0
  73. package/dist/components/InkThumbnails.vue_vue_type_script_setup_true_lang.js +107 -0
  74. package/dist/components/InkThumbnails.vue_vue_type_script_setup_true_lang.js.map +1 -0
  75. package/dist/components/InkToolButton.js.map +1 -1
  76. package/dist/components/InkToolButton.vue.d.ts.map +1 -1
  77. package/dist/components/InkToolButton.vue_vue_type_script_setup_true_lang.js +39 -36
  78. package/dist/components/InkToolButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/components/InkToolbarButton.js +7 -0
  80. package/dist/components/InkToolbarButton.js.map +1 -0
  81. package/dist/components/InkToolbarButton.vue.d.ts +22 -0
  82. package/dist/components/InkToolbarButton.vue.d.ts.map +1 -0
  83. package/dist/components/InkToolbarButton.vue_vue_type_script_setup_true_lang.js +32 -0
  84. package/dist/components/InkToolbarButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  85. package/dist/components/InkViewport.js.map +1 -1
  86. package/dist/components/InkViewport.vue.d.ts.map +1 -1
  87. package/dist/components/InkViewport.vue_vue_type_script_setup_true_lang.js +37 -36
  88. package/dist/components/InkViewport.vue_vue_type_script_setup_true_lang.js.map +1 -1
  89. package/dist/components/InkZoomSelect.js.map +1 -1
  90. package/dist/components/InkZoomSelect.vue.d.ts.map +1 -1
  91. package/dist/components/InkZoomSelect.vue_vue_type_script_setup_true_lang.js +1 -1
  92. package/dist/components/InkZoomSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  93. package/dist/components/RecordCards.js +7 -0
  94. package/dist/components/RecordCards.js.map +1 -0
  95. package/dist/components/RecordCards.vue.d.ts +25 -0
  96. package/dist/components/RecordCards.vue.d.ts.map +1 -0
  97. package/dist/components/RecordCards.vue_vue_type_script_setup_true_lang.js +120 -0
  98. package/dist/components/RecordCards.vue_vue_type_script_setup_true_lang.js.map +1 -0
  99. package/dist/components/SidebarTrigger.js +7 -0
  100. package/dist/components/SidebarTrigger.js.map +1 -0
  101. package/dist/components/SidebarTrigger.vue.d.ts +9 -0
  102. package/dist/components/SidebarTrigger.vue.d.ts.map +1 -0
  103. package/dist/components/SidebarTrigger.vue_vue_type_script_setup_true_lang.js +33 -0
  104. package/dist/components/SidebarTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  105. package/dist/components/SignatureForm.js.map +1 -1
  106. package/dist/components/SignatureForm.vue.d.ts.map +1 -1
  107. package/dist/components/SignatureForm.vue_vue_type_script_setup_true_lang.js +56 -55
  108. package/dist/components/SignatureForm.vue_vue_type_script_setup_true_lang.js.map +1 -1
  109. package/dist/components/sidebar-context.d.ts +21 -0
  110. package/dist/components/sidebar-context.d.ts.map +1 -0
  111. package/dist/components/sidebar-context.js +7 -0
  112. package/dist/components/sidebar-context.js.map +1 -0
  113. package/dist/composables/useAnnotations.d.ts +91 -0
  114. package/dist/composables/useAnnotations.d.ts.map +1 -1
  115. package/dist/composables/useRecordSelection.d.ts +12 -0
  116. package/dist/composables/useRecordSelection.d.ts.map +1 -0
  117. package/dist/composables/useRecordSelection.js +15 -0
  118. package/dist/composables/useRecordSelection.js.map +1 -0
  119. package/dist/composables/useRecords.d.ts +14 -0
  120. package/dist/composables/useRecords.d.ts.map +1 -0
  121. package/dist/composables/useRecords.js +16 -0
  122. package/dist/composables/useRecords.js.map +1 -0
  123. package/dist/composables/useRegisteredTool.d.ts +21 -0
  124. package/dist/composables/useRegisteredTool.d.ts.map +1 -0
  125. package/dist/composables/useRegisteredTool.js +25 -0
  126. package/dist/composables/useRegisteredTool.js.map +1 -0
  127. package/dist/composables/useSearch.d.ts.map +1 -1
  128. package/dist/composables/useSearch.js +1 -0
  129. package/dist/composables/useSearch.js.map +1 -1
  130. package/dist/composables/useToolOptions.d.ts +8 -0
  131. package/dist/composables/useToolOptions.d.ts.map +1 -1
  132. package/dist/composables/useToolOptions.js +10 -5
  133. package/dist/composables/useToolOptions.js.map +1 -1
  134. package/dist/context.d.ts +5 -0
  135. package/dist/context.d.ts.map +1 -1
  136. package/dist/context.js.map +1 -1
  137. package/dist/index.d.ts +12 -0
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +40 -29
  140. package/dist/to-readable.d.ts +7 -0
  141. package/dist/to-readable.d.ts.map +1 -0
  142. package/dist/to-readable.js +11 -0
  143. package/dist/to-readable.js.map +1 -0
  144. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureForm.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_createElementVNode","_unref","_renderList","_toDisplayString","_normalizeStyle","_createCommentVNode","_createVNode","_withCtx","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","SignatureForm_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","ctx","useInkContext","useTool","useToolOptions","draft","createSignatureDraft","IDLE","s","useReadable","uid","useId","padHost","useTemplateRef","detach","onMounted","onBeforeUnmount","save","t","setOptions","setTool","tabId","tab","panelId","shown","computed","SIGNATURE_LABELS","onTabKeydown","handleTabKeys","onRadioKeydown","handleRadioKeys","onName","onFile","openBlock","createElementBlock","Fragment","createElementVNode","unref","renderList","SIGNATURE_TABS","toDisplayString","_cache","font","normalizeStyle","fontFamilyValue","createCommentVNode","createVNode","DialogClose","withCtx"],"sources":["../../src/components/SignatureForm.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/*\n * The body of `InkSignatureDialog`, mounted while it is open: one draft per opening. Draw,\n * Type and Image tabs, then Cancel and Save.\n */\nimport {\n createSignatureDraft,\n fontFamilyValue,\n handleRadioKeys,\n handleTabKeys,\n SIGNATURE_LABELS,\n SIGNATURE_TABS,\n type SignatureDraftState,\n type SignatureTab,\n} from '@inkbar/core/dom'\nimport { DialogClose } from 'reka-ui'\nimport { computed, onBeforeUnmount, onMounted, useId, useTemplateRef } from 'vue'\n\nimport { useTool } from '../composables/useTool'\nimport { useToolOptions } from '../composables/useToolOptions'\nimport { useInkContext } from '../context'\nimport { useReadable } from '../use-readable'\n\nimport type { SignatureOptions, SignatureTemplate } from '@inkbar/core'\n\nconst props = withDefaults(\n defineProps<{ fonts?: readonly string[] | undefined; select?: boolean }>(),\n { fonts: undefined, select: true }\n)\nconst emit = defineEmits<{ saved: [template: SignatureTemplate]; close: [] }>()\n\nconst ctx = useInkContext('InkSignatureDialog')\nconst { setTool } = useTool()\nconst { setOptions } = useToolOptions<SignatureOptions>('signature')\nconst draft = createSignatureDraft({ fonts: props.fonts ?? ctx.signatureFonts.value })\nconst IDLE: SignatureDraftState = draft.state.get()\nconst s = useReadable(draft.state, IDLE)\nconst uid = useId()\nconst padHost = useTemplateRef<HTMLDivElement>('pad')\n\nlet detach: (() => void) | undefined\nonMounted(() => {\n if (padHost.value) detach = draft.attachPad(padHost.value)\n})\nonBeforeUnmount(() => {\n detach?.()\n draft.destroy()\n})\n\nfunction save(): void {\n draft.save(ctx.signatures.value).then(\n (t) => {\n if (!t) return\n if (props.select) {\n setOptions({ templateId: t.id })\n setTool('signature')\n }\n emit('saved', t)\n emit('close')\n },\n () => {\n // The host's store refused it: the dialog stays open to try again.\n }\n )\n}\n\nconst tabId = (tab: SignatureTab) => `${uid}-tab-${tab}`\nconst panelId = (tab: SignatureTab) => `${uid}-panel-${tab}`\nconst shown = computed(() => s.value.name.trim() || SIGNATURE_LABELS.namePlaceholder)\nconst onTabKeydown = (e: KeyboardEvent) =>\n handleTabKeys(e, e.currentTarget as HTMLElement)\nconst onRadioKeydown = (e: KeyboardEvent) =>\n handleRadioKeys(e, e.currentTarget as HTMLElement)\nconst onName = (e: Event) => draft.setName((e.target as HTMLInputElement).value)\nconst onFile = (e: Event) =>\n void draft.chooseFile((e.target as HTMLInputElement).files?.[0])\n</script>\n\n<template>\n <div\n role=\"tablist\"\n :aria-label=\"SIGNATURE_LABELS.tabs\"\n class=\"ink-tabs\"\n @keydown=\"onTabKeydown\"\n >\n <button\n v-for=\"tab in SIGNATURE_TABS\"\n :id=\"tabId(tab)\"\n :key=\"tab\"\n type=\"button\"\n role=\"tab\"\n :aria-controls=\"panelId(tab)\"\n :aria-selected=\"s.tab === tab\"\n :tabindex=\"s.tab === tab ? 0 : -1\"\n class=\"ink-tab\"\n :data-key=\"tab\"\n :data-state=\"s.tab === tab ? 'active' : 'inactive'\"\n @click=\"draft.setTab(tab)\"\n >\n {{ SIGNATURE_LABELS[tab] }}\n </button>\n </div>\n <div\n :id=\"panelId('draw')\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId('draw')\"\n class=\"ink-tab-panel\"\n data-key=\"draw\"\n :hidden=\"s.tab !== 'draw'\"\n >\n <div\n ref=\"pad\"\n class=\"ink-signature-pad-host\"\n data-ink-signature-pad-host\n role=\"img\"\n :aria-label=\"SIGNATURE_LABELS.pad\"\n />\n <div class=\"ink-dialog-row\">\n <button\n type=\"button\"\n class=\"ink-button\"\n data-ink-signature-clear\n :disabled=\"s.padEmpty\"\n @click=\"draft.clearPad()\"\n >\n {{ SIGNATURE_LABELS.clear }}\n </button>\n </div>\n </div>\n <div\n :id=\"panelId('type')\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId('type')\"\n class=\"ink-tab-panel\"\n data-key=\"type\"\n :hidden=\"s.tab !== 'type'\"\n >\n <label class=\"ink-field\">\n <span>{{ SIGNATURE_LABELS.name }}</span>\n <input\n type=\"text\"\n class=\"ink-input\"\n data-ink-signature-name\n autocomplete=\"name\"\n :placeholder=\"SIGNATURE_LABELS.namePlaceholder\"\n :value=\"s.name\"\n @input=\"onName\"\n />\n </label>\n <div\n role=\"radiogroup\"\n :aria-label=\"SIGNATURE_LABELS.fonts\"\n class=\"ink-signature-fonts\"\n @keydown=\"onRadioKeydown\"\n >\n <button\n v-for=\"font in draft.fonts\"\n :key=\"font\"\n type=\"button\"\n role=\"radio\"\n :aria-checked=\"s.font === font\"\n :aria-label=\"font\"\n :tabindex=\"s.font === font ? 0 : -1\"\n class=\"ink-signature-font\"\n :data-key=\"font\"\n :data-state=\"s.font === font ? 'checked' : 'unchecked'\"\n @click=\"draft.setFont(font)\"\n >\n <!-- The font is the option itself, so it is set here, not left to the theme. -->\n <span\n class=\"ink-signature-font-sample\"\n :style=\"{ fontFamily: fontFamilyValue(font) }\"\n >\n {{ shown }}\n </span>\n </button>\n </div>\n </div>\n <div\n :id=\"panelId('image')\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId('image')\"\n class=\"ink-tab-panel\"\n data-key=\"image\"\n :hidden=\"s.tab !== 'image'\"\n >\n <label class=\"ink-field\">\n <span>{{ SIGNATURE_LABELS.file }}</span>\n <input\n type=\"file\"\n accept=\"image/png,image/jpeg\"\n class=\"ink-input\"\n data-ink-signature-file\n @change=\"onFile\"\n />\n </label>\n <img\n v-if=\"s.image?.kind === 'image'\"\n class=\"ink-signature-image\"\n :src=\"s.image.imagedata\"\n alt=\"\"\n />\n <p v-if=\"s.imageError\" class=\"ink-field-error\" role=\"alert\">{{ s.imageError }}</p>\n </div>\n <p\n v-if=\"s.saveError\"\n class=\"ink-field-error\"\n role=\"alert\"\n data-ink-signature-save-error\n >\n {{ s.saveError }}\n </p>\n <div class=\"ink-dialog-actions\">\n <DialogClose as-child>\n <button type=\"button\" class=\"ink-button\" data-ink-signature-cancel>\n {{ SIGNATURE_LABELS.cancel }}\n </button>\n </DialogClose>\n <button\n type=\"button\"\n class=\"ink-button\"\n data-variant=\"primary\"\n data-ink-signature-save\n :disabled=\"!s.canSave\"\n @click=\"save\"\n >\n {{ SIGNATURE_LABELS.save }}\n </button>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"SignatureForm.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_Fragment","_createElementVNode","_unref","_renderList","_toDisplayString","_normalizeStyle","_createCommentVNode","_createVNode","_withCtx","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","SignatureForm_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","ctx","useInkContext","useTool","hasSignatureTool","useHasTool","useToolOptionsWhile","draft","createSignatureDraft","IDLE","s","useReadable","uid","useId","padHost","useTemplateRef","detach","onMounted","onBeforeUnmount","save","t","setOptions","setTool","tabId","tab","panelId","shown","computed","SIGNATURE_LABELS","onTabKeydown","handleTabKeys","onRadioKeydown","handleRadioKeys","onName","onFile","openBlock","createElementBlock","Fragment","createElementVNode","unref","renderList","SIGNATURE_TABS","toDisplayString","_cache","font","normalizeStyle","fontFamilyValue","createCommentVNode","createVNode","DialogClose","withCtx"],"sources":["../../src/components/SignatureForm.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/*\n * The body of `InkSignatureDialog`, mounted while it is open: one draft per opening. Draw,\n * Type and Image tabs, then Cancel and Save.\n */\nimport {\n createSignatureDraft,\n fontFamilyValue,\n handleRadioKeys,\n handleTabKeys,\n SIGNATURE_LABELS,\n SIGNATURE_TABS,\n type SignatureDraftState,\n type SignatureTab,\n} from '@inkbar/core/dom'\nimport { DialogClose } from 'reka-ui'\nimport { computed, onBeforeUnmount, onMounted, useId, useTemplateRef } from 'vue'\n\nimport { useHasTool } from '../composables/useRegisteredTool'\nimport { useTool } from '../composables/useTool'\nimport { useToolOptionsWhile } from '../composables/useToolOptions'\nimport { useInkContext } from '../context'\nimport { useReadable } from '../use-readable'\n\nimport type { SignatureOptions, SignatureTemplate } from '@inkbar/core'\n\nconst props = withDefaults(\n defineProps<{ fonts?: readonly string[] | undefined; select?: boolean }>(),\n { fonts: undefined, select: true }\n)\nconst emit = defineEmits<{ saved: [template: SignatureTemplate]; close: [] }>()\n\nconst ctx = useInkContext('InkSignatureDialog')\nconst { setTool } = useTool()\n// Without the signature tool, Save only stores the template, as signing a form field needs.\nconst hasSignatureTool = useHasTool(ctx, 'signature')\nconst { setOptions } = useToolOptionsWhile<SignatureOptions>(\n 'signature',\n hasSignatureTool\n)\nconst draft = createSignatureDraft({ fonts: props.fonts ?? ctx.signatureFonts.value })\nconst IDLE: SignatureDraftState = draft.state.get()\nconst s = useReadable(draft.state, IDLE)\nconst uid = useId()\nconst padHost = useTemplateRef<HTMLDivElement>('pad')\n\nlet detach: (() => void) | undefined\nonMounted(() => {\n if (padHost.value) detach = draft.attachPad(padHost.value)\n})\nonBeforeUnmount(() => {\n detach?.()\n draft.destroy()\n})\n\nfunction save(): void {\n draft.save(ctx.signatures.value).then(\n (t) => {\n if (!t) return\n if (props.select && hasSignatureTool.value) {\n setOptions({ templateId: t.id })\n setTool('signature')\n }\n emit('saved', t)\n emit('close')\n },\n () => {\n // The host's store refused it: the dialog stays open to try again.\n }\n )\n}\n\nconst tabId = (tab: SignatureTab) => `${uid}-tab-${tab}`\nconst panelId = (tab: SignatureTab) => `${uid}-panel-${tab}`\nconst shown = computed(() => s.value.name.trim() || SIGNATURE_LABELS.namePlaceholder)\nconst onTabKeydown = (e: KeyboardEvent) =>\n handleTabKeys(e, e.currentTarget as HTMLElement)\nconst onRadioKeydown = (e: KeyboardEvent) =>\n handleRadioKeys(e, e.currentTarget as HTMLElement)\nconst onName = (e: Event) => draft.setName((e.target as HTMLInputElement).value)\nconst onFile = (e: Event) =>\n void draft.chooseFile((e.target as HTMLInputElement).files?.[0])\n</script>\n\n<template>\n <div\n role=\"tablist\"\n :aria-label=\"SIGNATURE_LABELS.tabs\"\n class=\"ink-tabs\"\n @keydown=\"onTabKeydown\"\n >\n <button\n v-for=\"tab in SIGNATURE_TABS\"\n :id=\"tabId(tab)\"\n :key=\"tab\"\n type=\"button\"\n role=\"tab\"\n :aria-controls=\"panelId(tab)\"\n :aria-selected=\"s.tab === tab\"\n :tabindex=\"s.tab === tab ? 0 : -1\"\n class=\"ink-tab\"\n :data-key=\"tab\"\n :data-state=\"s.tab === tab ? 'active' : 'inactive'\"\n @click=\"draft.setTab(tab)\"\n >\n {{ SIGNATURE_LABELS[tab] }}\n </button>\n </div>\n <div\n :id=\"panelId('draw')\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId('draw')\"\n class=\"ink-tab-panel\"\n data-key=\"draw\"\n :hidden=\"s.tab !== 'draw'\"\n >\n <div\n ref=\"pad\"\n class=\"ink-signature-pad-host\"\n data-ink-signature-pad-host\n role=\"img\"\n :aria-label=\"SIGNATURE_LABELS.pad\"\n />\n <div class=\"ink-dialog-row\">\n <button\n type=\"button\"\n class=\"ink-button\"\n data-ink-signature-clear\n :disabled=\"s.padEmpty\"\n @click=\"draft.clearPad()\"\n >\n {{ SIGNATURE_LABELS.clear }}\n </button>\n </div>\n </div>\n <div\n :id=\"panelId('type')\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId('type')\"\n class=\"ink-tab-panel\"\n data-key=\"type\"\n :hidden=\"s.tab !== 'type'\"\n >\n <label class=\"ink-field\">\n <span>{{ SIGNATURE_LABELS.name }}</span>\n <input\n type=\"text\"\n class=\"ink-input\"\n data-ink-signature-name\n autocomplete=\"name\"\n :placeholder=\"SIGNATURE_LABELS.namePlaceholder\"\n :value=\"s.name\"\n @input=\"onName\"\n />\n </label>\n <div\n role=\"radiogroup\"\n :aria-label=\"SIGNATURE_LABELS.fonts\"\n class=\"ink-signature-fonts\"\n @keydown=\"onRadioKeydown\"\n >\n <button\n v-for=\"font in draft.fonts\"\n :key=\"font\"\n type=\"button\"\n role=\"radio\"\n :aria-checked=\"s.font === font\"\n :aria-label=\"font\"\n :tabindex=\"s.font === font ? 0 : -1\"\n class=\"ink-signature-font\"\n :data-key=\"font\"\n :data-state=\"s.font === font ? 'checked' : 'unchecked'\"\n @click=\"draft.setFont(font)\"\n >\n <!-- The font is the option itself, so it is set here, not left to the theme. -->\n <span\n class=\"ink-signature-font-sample\"\n :style=\"{ fontFamily: fontFamilyValue(font) }\"\n >\n {{ shown }}\n </span>\n </button>\n </div>\n </div>\n <div\n :id=\"panelId('image')\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId('image')\"\n class=\"ink-tab-panel\"\n data-key=\"image\"\n :hidden=\"s.tab !== 'image'\"\n >\n <label class=\"ink-field\">\n <span>{{ SIGNATURE_LABELS.file }}</span>\n <input\n type=\"file\"\n accept=\"image/png,image/jpeg\"\n class=\"ink-input\"\n data-ink-signature-file\n @change=\"onFile\"\n />\n </label>\n <img\n v-if=\"s.image?.kind === 'image'\"\n class=\"ink-signature-image\"\n :src=\"s.image.imagedata\"\n alt=\"\"\n />\n <p v-if=\"s.imageError\" class=\"ink-field-error\" role=\"alert\">{{ s.imageError }}</p>\n </div>\n <p\n v-if=\"s.saveError\"\n class=\"ink-field-error\"\n role=\"alert\"\n data-ink-signature-save-error\n >\n {{ s.saveError }}\n </p>\n <div class=\"ink-dialog-actions\">\n <DialogClose as-child>\n <button type=\"button\" class=\"ink-button\" data-ink-signature-cancel>\n {{ SIGNATURE_LABELS.cancel }}\n </button>\n </DialogClose>\n <button\n type=\"button\"\n class=\"ink-button\"\n data-variant=\"primary\"\n data-ink-signature-save\n :disabled=\"!s.canSave\"\n @click=\"save\"\n >\n {{ SIGNATURE_LABELS.save }}\n </button>\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { SidebarController, SidebarPanelInfo, SidebarState } from '@inkbar/core/dom';
2
+ import { Ref } from 'vue';
3
+ /** A panel as `InkPanel` registers it. */
4
+ export interface SidebarPanelEntry {
5
+ /** The panel's props; read inside a computed, so changes reach the sidebar. */
6
+ info(): SidebarPanelInfo;
7
+ /** The panel's element once mounted, to keep the panels in DOM order. */
8
+ element(): HTMLElement | null;
9
+ }
10
+ /** What `InkSidebar` gives its panels. */
11
+ export interface SidebarContext {
12
+ controller: SidebarController;
13
+ /** The controller's state: read it to re-render when the attributes change. */
14
+ state: Readonly<Ref<SidebarState>>;
15
+ /** Adds a panel at the end; returns the function that removes it. */
16
+ register(entry: SidebarPanelEntry): () => void;
17
+ /** Puts the registered panels in the order of their elements in the DOM. */
18
+ arrange(): void;
19
+ }
20
+ export declare const injectSidebarContext: <T extends SidebarContext | null | undefined = SidebarContext>(fallback?: T | undefined) => T extends null ? SidebarContext | null : SidebarContext, provideSidebarContext: (contextValue: SidebarContext) => SidebarContext;
21
+ //# sourceMappingURL=sidebar-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-context.d.ts","sourceRoot":"","sources":["../../src/components/sidebar-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACzF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,IAAI,IAAI,gBAAgB,CAAA;IACxB,yEAAyE;IACzE,OAAO,IAAI,WAAW,GAAG,IAAI,CAAA;CAC9B;AAED,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,+EAA+E;IAC/E,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;IAClC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAA;IAC9C,4EAA4E;IAC5E,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,eAAO,MAAO,oBAAoB,uJAAE,qBAAqB,kDACZ,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { createContext as e } from "reka-ui";
2
+ //#region src/components/sidebar-context.ts
3
+ var [t, n] = e("InkSidebar");
4
+ //#endregion
5
+ export { t as injectSidebarContext, n as provideSidebarContext };
6
+
7
+ //# sourceMappingURL=sidebar-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-context.js","names":["injectSidebarContext","provideSidebarContext","createContext"],"sources":["../../src/components/sidebar-context.ts"],"sourcesContent":["import { createContext } from 'reka-ui'\n\nimport type { SidebarController, SidebarPanelInfo, SidebarState } from '@inkbar/core/dom'\nimport type { Ref } from 'vue'\n\n/** A panel as `InkPanel` registers it. */\nexport interface SidebarPanelEntry {\n /** The panel's props; read inside a computed, so changes reach the sidebar. */\n info(): SidebarPanelInfo\n /** The panel's element once mounted, to keep the panels in DOM order. */\n element(): HTMLElement | null\n}\n\n/** What `InkSidebar` gives its panels. */\nexport interface SidebarContext {\n controller: SidebarController\n /** The controller's state: read it to re-render when the attributes change. */\n state: Readonly<Ref<SidebarState>>\n /** Adds a panel at the end; returns the function that removes it. */\n register(entry: SidebarPanelEntry): () => void\n /** Puts the registered panels in the order of their elements in the DOM. */\n arrange(): void\n}\n\nexport const [injectSidebarContext, provideSidebarContext] =\n createContext<SidebarContext>('InkSidebar')\n"],"mappings":";;AAwBA,IAAa,CAACA,GAAsBC,KAClCC,EAA8B,YAAY"}