@embedpdf/vue 0.0.0-stage → 3.0.0-next.16

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 (417) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +258 -2
  3. package/dist/Anchored.vue_vue_type_script_setup_true_lang-BEImlFso.cjs +124 -0
  4. package/dist/Anchored.vue_vue_type_script_setup_true_lang-BEImlFso.cjs.map +1 -0
  5. package/dist/Anchored.vue_vue_type_script_setup_true_lang-Brhh5jyF.js +125 -0
  6. package/dist/Anchored.vue_vue_type_script_setup_true_lang-Brhh5jyF.js.map +1 -0
  7. package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-BwtHXw73.cjs +20 -0
  8. package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-BwtHXw73.cjs.map +1 -0
  9. package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-Ulkr3a6R.js +21 -0
  10. package/dist/AnchoredScope.vue_vue_type_script_setup_true_lang-Ulkr3a6R.js.map +1 -0
  11. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-C-7yeEGh.js +192 -0
  12. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-C-7yeEGh.js.map +1 -0
  13. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-czzeUzPl.cjs +191 -0
  14. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-czzeUzPl.cjs.map +1 -0
  15. package/dist/FormLayer.vue_vue_type_script_setup_true_lang-BA0_VwFc.cjs +682 -0
  16. package/dist/FormLayer.vue_vue_type_script_setup_true_lang-BA0_VwFc.cjs.map +1 -0
  17. package/dist/FormLayer.vue_vue_type_script_setup_true_lang-DUqft-xs.js +683 -0
  18. package/dist/FormLayer.vue_vue_type_script_setup_true_lang-DUqft-xs.js.map +1 -0
  19. package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-C5-eQD34.cjs +174 -0
  20. package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-C5-eQD34.cjs.map +1 -0
  21. package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-EzLaOP3g.js +175 -0
  22. package/dist/LinkLayer.vue_vue_type_script_setup_true_lang-EzLaOP3g.js.map +1 -0
  23. package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-CJt3vdBW.js +33 -0
  24. package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-CJt3vdBW.js.map +1 -0
  25. package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-Cw29c8Oa.cjs +32 -0
  26. package/dist/PagePointerSource.vue_vue_type_script_setup_true_lang-Cw29c8Oa.cjs.map +1 -0
  27. package/dist/PageView.vue_vue_type_script_setup_true_lang-CjrpumX2.cjs +151 -0
  28. package/dist/PageView.vue_vue_type_script_setup_true_lang-CjrpumX2.cjs.map +1 -0
  29. package/dist/PageView.vue_vue_type_script_setup_true_lang-O4AFc0_R.js +152 -0
  30. package/dist/PageView.vue_vue_type_script_setup_true_lang-O4AFc0_R.js.map +1 -0
  31. package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-DrOORC1H.cjs +480 -0
  32. package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-DrOORC1H.cjs.map +1 -0
  33. package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-HbCryx1B.js +481 -0
  34. package/dist/Scrollbar.vue_vue_type_script_setup_true_lang-HbCryx1B.js.map +1 -0
  35. package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-BlLIPH1B.js +118 -0
  36. package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-BlLIPH1B.js.map +1 -0
  37. package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-CQozZCvB.cjs +117 -0
  38. package/dist/SearchLayer.vue_vue_type_script_setup_true_lang-CQozZCvB.cjs.map +1 -0
  39. package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C4TUDuyu.js +302 -0
  40. package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C4TUDuyu.js.map +1 -0
  41. package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C8T9q6Kb.cjs +301 -0
  42. package/dist/SelectionClipboard.vue_vue_type_script_setup_true_lang-C8T9q6Kb.cjs.map +1 -0
  43. package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-D_c-wINF.cjs +38 -0
  44. package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-D_c-wINF.cjs.map +1 -0
  45. package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-fOTs4aqv.js +39 -0
  46. package/dist/SvgShapes.vue_vue_type_script_setup_true_lang-fOTs4aqv.js.map +1 -0
  47. package/dist/actions.cjs +42 -0
  48. package/dist/actions.cjs.map +1 -0
  49. package/dist/actions.d.cts +41 -0
  50. package/dist/actions.d.ts +41 -0
  51. package/dist/actions.js +37 -0
  52. package/dist/actions.js.map +1 -0
  53. package/dist/anchored/Anchored.vue.d.cts +40 -0
  54. package/dist/anchored/Anchored.vue.d.ts +40 -0
  55. package/dist/anchored/AnchoredScope.vue.d.cts +17 -0
  56. package/dist/anchored/AnchoredScope.vue.d.ts +17 -0
  57. package/dist/anchored/PlacedAnchored.vue.d.cts +19 -0
  58. package/dist/anchored/PlacedAnchored.vue.d.ts +19 -0
  59. package/dist/anchored/projector.d.cts +32 -0
  60. package/dist/anchored/projector.d.ts +32 -0
  61. package/dist/anchored.cjs +13 -0
  62. package/dist/anchored.cjs.map +1 -0
  63. package/dist/anchored.d.cts +15 -0
  64. package/dist/anchored.d.ts +15 -0
  65. package/dist/anchored.js +13 -0
  66. package/dist/anchored.js.map +1 -0
  67. package/dist/annotation/AnnotationChrome.vue.d.cts +20 -0
  68. package/dist/annotation/AnnotationChrome.vue.d.ts +20 -0
  69. package/dist/annotation/AnnotationDraftMenu.vue.d.cts +26 -0
  70. package/dist/annotation/AnnotationDraftMenu.vue.d.ts +26 -0
  71. package/dist/annotation/AnnotationFrame.vue.d.cts +25 -0
  72. package/dist/annotation/AnnotationFrame.vue.d.ts +25 -0
  73. package/dist/annotation/AnnotationLayer.vue.d.cts +23 -0
  74. package/dist/annotation/AnnotationLayer.vue.d.ts +23 -0
  75. package/dist/annotation/AnnotationLook.vue.d.cts +21 -0
  76. package/dist/annotation/AnnotationLook.vue.d.ts +21 -0
  77. package/dist/annotation/AnnotationMenu.vue.d.cts +23 -0
  78. package/dist/annotation/AnnotationMenu.vue.d.ts +23 -0
  79. package/dist/annotation/AnnotationRotationBadge.vue.d.cts +26 -0
  80. package/dist/annotation/AnnotationRotationBadge.vue.d.ts +26 -0
  81. package/dist/annotation/AnnotationScene.vue.d.cts +7 -0
  82. package/dist/annotation/AnnotationScene.vue.d.ts +7 -0
  83. package/dist/annotation/FreeTextBox.vue.d.cts +9 -0
  84. package/dist/annotation/FreeTextBox.vue.d.ts +9 -0
  85. package/dist/annotation/NativeDrawing.vue.d.cts +10 -0
  86. package/dist/annotation/NativeDrawing.vue.d.ts +10 -0
  87. package/dist/annotation/StampGhost.vue.d.cts +7 -0
  88. package/dist/annotation/StampGhost.vue.d.ts +7 -0
  89. package/dist/annotation/composables.d.cts +76 -0
  90. package/dist/annotation/composables.d.ts +76 -0
  91. package/dist/annotation/state.d.cts +19 -0
  92. package/dist/annotation/state.d.ts +19 -0
  93. package/dist/annotation/text-box.d.cts +28 -0
  94. package/dist/annotation/text-box.d.ts +28 -0
  95. package/dist/annotation/types.d.cts +154 -0
  96. package/dist/annotation/types.d.ts +154 -0
  97. package/dist/annotation.cjs +29 -0
  98. package/dist/annotation.cjs.map +1 -0
  99. package/dist/annotation.d.cts +35 -0
  100. package/dist/annotation.d.ts +35 -0
  101. package/dist/annotation.js +23 -0
  102. package/dist/annotation.js.map +1 -0
  103. package/dist/attachment.cjs +22 -0
  104. package/dist/attachment.cjs.map +1 -0
  105. package/dist/attachment.d.cts +34 -0
  106. package/dist/attachment.d.ts +34 -0
  107. package/dist/attachment.js +17 -0
  108. package/dist/attachment.js.map +1 -0
  109. package/dist/capabilities-C7YzgPCX.js +164 -0
  110. package/dist/capabilities-C7YzgPCX.js.map +1 -0
  111. package/dist/capabilities-DVNJmgy7.cjs +163 -0
  112. package/dist/capabilities-DVNJmgy7.cjs.map +1 -0
  113. package/dist/commands.cjs +81 -0
  114. package/dist/commands.cjs.map +1 -0
  115. package/dist/commands.d.cts +61 -0
  116. package/dist/commands.d.ts +61 -0
  117. package/dist/commands.js +76 -0
  118. package/dist/commands.js.map +1 -0
  119. package/dist/composables-BGBsNDf9.cjs +25 -0
  120. package/dist/composables-BGBsNDf9.cjs.map +1 -0
  121. package/dist/composables-Bi6QvJpj.cjs +978 -0
  122. package/dist/composables-Bi6QvJpj.cjs.map +1 -0
  123. package/dist/composables-DK3lwh38.js +979 -0
  124. package/dist/composables-DK3lwh38.js.map +1 -0
  125. package/dist/composables-DwsZdg06.js +26 -0
  126. package/dist/composables-DwsZdg06.js.map +1 -0
  127. package/dist/dev-CtMlvxjZ.js +17 -0
  128. package/dist/dev-CtMlvxjZ.js.map +1 -0
  129. package/dist/dev-eeIS2B4c.cjs +16 -0
  130. package/dist/dev-eeIS2B4c.cjs.map +1 -0
  131. package/dist/dev.d.cts +11 -0
  132. package/dist/dev.d.ts +11 -0
  133. package/dist/documents-DUu5H4yH.js +34 -0
  134. package/dist/documents-DUu5H4yH.js.map +1 -0
  135. package/dist/documents-TQ1fMdWI.cjs +33 -0
  136. package/dist/documents-TQ1fMdWI.cjs.map +1 -0
  137. package/dist/form/ButtonControl.vue.d.cts +11 -0
  138. package/dist/form/ButtonControl.vue.d.ts +11 -0
  139. package/dist/form/ComboControl.vue.d.cts +11 -0
  140. package/dist/form/ComboControl.vue.d.ts +11 -0
  141. package/dist/form/FieldPictures.vue.d.cts +3 -0
  142. package/dist/form/FieldPictures.vue.d.ts +3 -0
  143. package/dist/form/FormFocusRing.vue.d.cts +8 -0
  144. package/dist/form/FormFocusRing.vue.d.ts +8 -0
  145. package/dist/form/FormLayer.vue.d.cts +3 -0
  146. package/dist/form/FormLayer.vue.d.ts +3 -0
  147. package/dist/form/ListControl.vue.d.cts +11 -0
  148. package/dist/form/ListControl.vue.d.ts +11 -0
  149. package/dist/form/NativeListBox.vue.d.cts +27 -0
  150. package/dist/form/NativeListBox.vue.d.ts +27 -0
  151. package/dist/form/SignatureControl.vue.d.cts +11 -0
  152. package/dist/form/SignatureControl.vue.d.ts +11 -0
  153. package/dist/form/TextControl.vue.d.cts +11 -0
  154. package/dist/form/TextControl.vue.d.ts +11 -0
  155. package/dist/form/ToggleControl.vue.d.cts +11 -0
  156. package/dist/form/ToggleControl.vue.d.ts +11 -0
  157. package/dist/form/composables.d.cts +52 -0
  158. package/dist/form/composables.d.ts +52 -0
  159. package/dist/form/widget-box.d.cts +34 -0
  160. package/dist/form/widget-box.d.ts +34 -0
  161. package/dist/form.cjs +17 -0
  162. package/dist/form.cjs.map +1 -0
  163. package/dist/form.d.cts +12 -0
  164. package/dist/form.d.ts +12 -0
  165. package/dist/form.js +11 -0
  166. package/dist/form.js.map +1 -0
  167. package/dist/history.cjs +22 -0
  168. package/dist/history.cjs.map +1 -0
  169. package/dist/history.d.cts +31 -0
  170. package/dist/history.d.ts +31 -0
  171. package/dist/history.js +17 -0
  172. package/dist/history.js.map +1 -0
  173. package/dist/i18n.cjs +29 -0
  174. package/dist/i18n.cjs.map +1 -0
  175. package/dist/i18n.d.cts +36 -0
  176. package/dist/i18n.d.ts +36 -0
  177. package/dist/i18n.js +24 -0
  178. package/dist/i18n.js.map +1 -0
  179. package/dist/index.cjs +414 -0
  180. package/dist/index.cjs.map +1 -0
  181. package/dist/index.d.cts +32 -0
  182. package/dist/index.d.ts +32 -0
  183. package/dist/index.js +234 -0
  184. package/dist/index.js.map +1 -0
  185. package/dist/interaction/PagePointerSource.vue.d.cts +3 -0
  186. package/dist/interaction/PagePointerSource.vue.d.ts +3 -0
  187. package/dist/interaction.cjs +63 -0
  188. package/dist/interaction.cjs.map +1 -0
  189. package/dist/interaction.d.cts +40 -0
  190. package/dist/interaction.d.ts +40 -0
  191. package/dist/interaction.js +47 -0
  192. package/dist/interaction.js.map +1 -0
  193. package/dist/link/LinkAnchor.vue.d.cts +9 -0
  194. package/dist/link/LinkAnchor.vue.d.ts +9 -0
  195. package/dist/link/LinkLayer.vue.d.cts +22 -0
  196. package/dist/link/LinkLayer.vue.d.ts +22 -0
  197. package/dist/link/composables.d.cts +29 -0
  198. package/dist/link/composables.d.ts +29 -0
  199. package/dist/link.cjs +14 -0
  200. package/dist/link.cjs.map +1 -0
  201. package/dist/link.d.cts +11 -0
  202. package/dist/link.d.ts +11 -0
  203. package/dist/link.js +8 -0
  204. package/dist/link.js.map +1 -0
  205. package/dist/measurement.cjs +43 -0
  206. package/dist/measurement.cjs.map +1 -0
  207. package/dist/measurement.d.cts +51 -0
  208. package/dist/measurement.d.ts +51 -0
  209. package/dist/measurement.js +38 -0
  210. package/dist/measurement.js.map +1 -0
  211. package/dist/metadata.cjs +22 -0
  212. package/dist/metadata.cjs.map +1 -0
  213. package/dist/metadata.d.cts +31 -0
  214. package/dist/metadata.d.ts +31 -0
  215. package/dist/metadata.js +17 -0
  216. package/dist/metadata.js.map +1 -0
  217. package/dist/outline.cjs +22 -0
  218. package/dist/outline.cjs.map +1 -0
  219. package/dist/outline.d.cts +36 -0
  220. package/dist/outline.d.ts +36 -0
  221. package/dist/outline.js +17 -0
  222. package/dist/outline.js.map +1 -0
  223. package/dist/page-D9XIuLSj.js +16 -0
  224. package/dist/page-D9XIuLSj.js.map +1 -0
  225. package/dist/page-Doy4_Sdz.cjs +15 -0
  226. package/dist/page-Doy4_Sdz.cjs.map +1 -0
  227. package/dist/page-edit.cjs +18 -0
  228. package/dist/page-edit.cjs.map +1 -0
  229. package/dist/page-edit.d.cts +28 -0
  230. package/dist/page-edit.d.ts +28 -0
  231. package/dist/page-edit.js +13 -0
  232. package/dist/page-edit.js.map +1 -0
  233. package/dist/page-layers-c-CJYAUO.cjs +30 -0
  234. package/dist/page-layers-c-CJYAUO.cjs.map +1 -0
  235. package/dist/page-layers-rlh4-1qr.js +31 -0
  236. package/dist/page-layers-rlh4-1qr.js.map +1 -0
  237. package/dist/page-layers.d.cts +21 -0
  238. package/dist/page-layers.d.ts +21 -0
  239. package/dist/page-view/PageView.vue.d.cts +42 -0
  240. package/dist/page-view/PageView.vue.d.ts +42 -0
  241. package/dist/page-view.cjs +5 -0
  242. package/dist/page-view.cjs.map +1 -0
  243. package/dist/page-view.d.cts +10 -0
  244. package/dist/page-view.d.ts +10 -0
  245. package/dist/page-view.js +5 -0
  246. package/dist/page-view.js.map +1 -0
  247. package/dist/projector-CDZn1kh1.js +32 -0
  248. package/dist/projector-CDZn1kh1.js.map +1 -0
  249. package/dist/projector-Cf7879sx.cjs +31 -0
  250. package/dist/projector-Cf7879sx.cjs.map +1 -0
  251. package/dist/redaction.cjs +34 -0
  252. package/dist/redaction.cjs.map +1 -0
  253. package/dist/redaction.d.cts +44 -0
  254. package/dist/redaction.d.ts +44 -0
  255. package/dist/redaction.js +29 -0
  256. package/dist/redaction.js.map +1 -0
  257. package/dist/render/RenderLayer.vue.d.cts +23 -0
  258. package/dist/render/RenderLayer.vue.d.ts +23 -0
  259. package/dist/render/TileImage.vue.d.cts +13 -0
  260. package/dist/render/TileImage.vue.d.ts +13 -0
  261. package/dist/render/TilePlane.vue.d.cts +7 -0
  262. package/dist/render/TilePlane.vue.d.ts +7 -0
  263. package/dist/render.cjs +262 -0
  264. package/dist/render.cjs.map +1 -0
  265. package/dist/render.d.cts +16 -0
  266. package/dist/render.d.ts +16 -0
  267. package/dist/render.js +257 -0
  268. package/dist/render.js.map +1 -0
  269. package/dist/runtime/DocumentGate.vue.d.cts +24 -0
  270. package/dist/runtime/DocumentGate.vue.d.ts +24 -0
  271. package/dist/runtime/DocumentScope.vue.d.cts +16 -0
  272. package/dist/runtime/DocumentScope.vue.d.ts +16 -0
  273. package/dist/runtime/KernelProvider.vue.d.cts +17 -0
  274. package/dist/runtime/KernelProvider.vue.d.ts +17 -0
  275. package/dist/runtime/SvgShapes.vue.d.cts +7 -0
  276. package/dist/runtime/SvgShapes.vue.d.ts +7 -0
  277. package/dist/runtime/Viewer.vue.d.cts +57 -0
  278. package/dist/runtime/Viewer.vue.d.ts +57 -0
  279. package/dist/runtime/capabilities.d.cts +52 -0
  280. package/dist/runtime/capabilities.d.ts +52 -0
  281. package/dist/runtime/documents.d.cts +42 -0
  282. package/dist/runtime/documents.d.ts +42 -0
  283. package/dist/runtime/kernel.d.cts +36 -0
  284. package/dist/runtime/kernel.d.ts +36 -0
  285. package/dist/runtime/page.d.cts +15 -0
  286. package/dist/runtime/page.d.ts +15 -0
  287. package/dist/runtime/refs.d.cts +12 -0
  288. package/dist/runtime/refs.d.ts +12 -0
  289. package/dist/runtime/surface-box.d.cts +12 -0
  290. package/dist/runtime/surface-box.d.ts +12 -0
  291. package/dist/runtime.cjs +53 -0
  292. package/dist/runtime.cjs.map +1 -0
  293. package/dist/runtime.d.cts +24 -0
  294. package/dist/runtime.d.ts +24 -0
  295. package/dist/runtime.js +38 -0
  296. package/dist/runtime.js.map +1 -0
  297. package/dist/scope-BQA4toWB.cjs +17 -0
  298. package/dist/scope-BQA4toWB.cjs.map +1 -0
  299. package/dist/scope-BgdCqnYb.js +18 -0
  300. package/dist/scope-BgdCqnYb.js.map +1 -0
  301. package/dist/search/SearchLayer.vue.d.cts +17 -0
  302. package/dist/search/SearchLayer.vue.d.ts +17 -0
  303. package/dist/search/composables.d.cts +31 -0
  304. package/dist/search/composables.d.ts +31 -0
  305. package/dist/search.cjs +17 -0
  306. package/dist/search.cjs.map +1 -0
  307. package/dist/search.d.cts +10 -0
  308. package/dist/search.d.ts +10 -0
  309. package/dist/search.js +11 -0
  310. package/dist/search.js.map +1 -0
  311. package/dist/selection/SelectionClipboard.vue.d.cts +24 -0
  312. package/dist/selection/SelectionClipboard.vue.d.ts +24 -0
  313. package/dist/selection/SelectionHandles.vue.d.cts +8 -0
  314. package/dist/selection/SelectionHandles.vue.d.ts +8 -0
  315. package/dist/selection/SelectionLayer.vue.d.cts +3 -0
  316. package/dist/selection/SelectionLayer.vue.d.ts +3 -0
  317. package/dist/selection/SelectionMenu.vue.d.cts +23 -0
  318. package/dist/selection/SelectionMenu.vue.d.ts +23 -0
  319. package/dist/selection/composables.d.cts +24 -0
  320. package/dist/selection/composables.d.ts +24 -0
  321. package/dist/selection.cjs +24 -0
  322. package/dist/selection.cjs.map +1 -0
  323. package/dist/selection.d.cts +16 -0
  324. package/dist/selection.d.ts +16 -0
  325. package/dist/selection.js +15 -0
  326. package/dist/selection.js.map +1 -0
  327. package/dist/shell.cjs +72 -0
  328. package/dist/shell.cjs.map +1 -0
  329. package/dist/shell.d.cts +56 -0
  330. package/dist/shell.d.ts +56 -0
  331. package/dist/shell.js +67 -0
  332. package/dist/shell.js.map +1 -0
  333. package/dist/signature/composables.d.cts +39 -0
  334. package/dist/signature/composables.d.ts +39 -0
  335. package/dist/signature.cjs +16 -0
  336. package/dist/signature.cjs.map +1 -0
  337. package/dist/signature.d.cts +15 -0
  338. package/dist/signature.d.ts +15 -0
  339. package/dist/signature.js +10 -0
  340. package/dist/signature.js.map +1 -0
  341. package/dist/stage/PageSurface.vue.d.cts +29 -0
  342. package/dist/stage/PageSurface.vue.d.ts +29 -0
  343. package/dist/stage/Scrollbar.vue.d.cts +32 -0
  344. package/dist/stage/Scrollbar.vue.d.ts +32 -0
  345. package/dist/stage/Stage.vue.d.cts +44 -0
  346. package/dist/stage/Stage.vue.d.ts +44 -0
  347. package/dist/stage/StageScope.vue.d.cts +17 -0
  348. package/dist/stage/StageScope.vue.d.ts +17 -0
  349. package/dist/stage/composables.d.cts +41 -0
  350. package/dist/stage/composables.d.ts +41 -0
  351. package/dist/stage/scope.d.cts +12 -0
  352. package/dist/stage/scope.d.ts +12 -0
  353. package/dist/stage.cjs +21 -0
  354. package/dist/stage.cjs.map +1 -0
  355. package/dist/stage.d.cts +17 -0
  356. package/dist/stage.d.ts +17 -0
  357. package/dist/stage.js +15 -0
  358. package/dist/stage.js.map +1 -0
  359. package/dist/stamp.cjs +68 -0
  360. package/dist/stamp.cjs.map +1 -0
  361. package/dist/stamp.d.cts +61 -0
  362. package/dist/stamp.d.ts +61 -0
  363. package/dist/stamp.js +61 -0
  364. package/dist/stamp.js.map +1 -0
  365. package/dist/state-DZg8q3v6.js +52 -0
  366. package/dist/state-DZg8q3v6.js.map +1 -0
  367. package/dist/state-M22NDJQo.cjs +51 -0
  368. package/dist/state-M22NDJQo.cjs.map +1 -0
  369. package/dist/state.d.cts +32 -0
  370. package/dist/state.d.ts +32 -0
  371. package/dist/strip-BSDB39Xh.cjs +743 -0
  372. package/dist/strip-BSDB39Xh.cjs.map +1 -0
  373. package/dist/strip-C3wLonKB.js +744 -0
  374. package/dist/strip-C3wLonKB.js.map +1 -0
  375. package/dist/surface-box-B9oa4YoG.js +12 -0
  376. package/dist/surface-box-B9oa4YoG.js.map +1 -0
  377. package/dist/surface-box-C7EvUOXp.cjs +11 -0
  378. package/dist/surface-box-C7EvUOXp.cjs.map +1 -0
  379. package/dist/theme.d.cts +13 -0
  380. package/dist/theme.d.ts +13 -0
  381. package/dist/toolbar/DefaultCollapsed.vue.d.cts +9 -0
  382. package/dist/toolbar/DefaultCollapsed.vue.d.ts +9 -0
  383. package/dist/toolbar/DefaultCommand.vue.d.cts +8 -0
  384. package/dist/toolbar/DefaultCommand.vue.d.ts +8 -0
  385. package/dist/toolbar/DefaultGroupTrigger.vue.d.cts +9 -0
  386. package/dist/toolbar/DefaultGroupTrigger.vue.d.ts +9 -0
  387. package/dist/toolbar/DefaultOverflowMenu.vue.d.cts +9 -0
  388. package/dist/toolbar/DefaultOverflowMenu.vue.d.ts +9 -0
  389. package/dist/toolbar/DefaultOverflowTrigger.vue.d.cts +10 -0
  390. package/dist/toolbar/DefaultOverflowTrigger.vue.d.ts +10 -0
  391. package/dist/toolbar/Measured.vue.d.cts +21 -0
  392. package/dist/toolbar/Measured.vue.d.ts +21 -0
  393. package/dist/toolbar/NativeSlotSocket.vue.d.cts +22 -0
  394. package/dist/toolbar/NativeSlotSocket.vue.d.ts +22 -0
  395. package/dist/toolbar/Toolbar.vue.d.cts +82 -0
  396. package/dist/toolbar/Toolbar.vue.d.ts +82 -0
  397. package/dist/toolbar/ToolbarPart.vue.d.cts +42 -0
  398. package/dist/toolbar/ToolbarPart.vue.d.ts +42 -0
  399. package/dist/toolbar/paint.d.cts +3 -0
  400. package/dist/toolbar/paint.d.ts +3 -0
  401. package/dist/toolbar/strip.d.cts +14 -0
  402. package/dist/toolbar/strip.d.ts +14 -0
  403. package/dist/toolbar/views.d.cts +15 -0
  404. package/dist/toolbar/views.d.ts +15 -0
  405. package/dist/toolbar.cjs +27 -0
  406. package/dist/toolbar.cjs.map +1 -0
  407. package/dist/toolbar.d.cts +14 -0
  408. package/dist/toolbar.d.ts +14 -0
  409. package/dist/toolbar.js +12 -0
  410. package/dist/toolbar.js.map +1 -0
  411. package/dist/view-manager.cjs +22 -0
  412. package/dist/view-manager.cjs.map +1 -0
  413. package/dist/view-manager.d.cts +24 -0
  414. package/dist/view-manager.d.ts +24 -0
  415. package/dist/view-manager.js +17 -0
  416. package/dist/view-manager.js.map +1 -0
  417. package/package.json +179 -3
@@ -0,0 +1,978 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const core = require("@embedpdf/core");
4
+ const host = require("@embedpdf/plugin-annotation/contract/host");
5
+ const contract$1 = require("@embedpdf/plugin-interaction/contract");
6
+ const host$1 = require("@embedpdf/plugin-render/contract/host");
7
+ const web = require("@embedpdf/web");
8
+ const dev = require("./dev-eeIS2B4c.cjs");
9
+ const pageLayers = require("./page-layers-c-CJYAUO.cjs");
10
+ const capabilities = require("./capabilities-DVNJmgy7.cjs");
11
+ const page = require("./page-Doy4_Sdz.cjs");
12
+ const documents = require("./documents-TQ1fMdWI.cjs");
13
+ const coreAnnotation = require("@embedpdf/core-annotation");
14
+ const SvgShapes_vue_vue_type_script_setup_true_lang = require("./SvgShapes.vue_vue_type_script_setup_true_lang-D_c-wINF.cjs");
15
+ const Anchored_vue_vue_type_script_setup_true_lang = require("./Anchored.vue_vue_type_script_setup_true_lang-BEImlFso.cjs");
16
+ const projector = require("./projector-Cf7879sx.cjs");
17
+ const pluginAnnotation = require("@embedpdf/plugin-annotation");
18
+ const contract = require("@embedpdf/plugin-annotation/contract");
19
+ const state = require("./state-M22NDJQo.cjs");
20
+ const useAnnotationState = state.stateComposable(contract.annotationState);
21
+ const useAnnotationSettings = state.settingsComposable(contract.AnnotationToken);
22
+ const _hoisted_1$5 = { style: { position: "absolute", inset: 0, overflow: "visible", pointerEvents: "none" } };
23
+ const _hoisted_2 = ["cx", "cy", "r"];
24
+ const _hoisted_3 = ["x", "y", "width", "height", "transform"];
25
+ const _hoisted_4 = ["x1", "y1", "x2", "y2"];
26
+ const _hoisted_5 = ["points"];
27
+ const _hoisted_6 = { key: 3 };
28
+ const _hoisted_7 = ["x1", "y1", "x2", "y2", "opacity"];
29
+ const _hoisted_8 = { key: 0 };
30
+ const _hoisted_9 = ["x1", "y1", "x2", "y2"];
31
+ const _hoisted_10 = ["cx", "cy", "r"];
32
+ const _hoisted_11 = ["x", "y", "width", "height"];
33
+ const _hoisted_12 = ["x", "y", "width", "height"];
34
+ const _hoisted_13 = {
35
+ key: 0,
36
+ style: { position: "absolute", inset: 0, pointerEvents: "none" }
37
+ };
38
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
39
+ __name: "AnnotationChrome",
40
+ props: {
41
+ page: {}
42
+ },
43
+ setup(__props) {
44
+ const props = __props;
45
+ const slots = vue.useSlots();
46
+ const NO_NODES = Object.freeze([]);
47
+ const nodes = capabilities.useOptionalSelector(
48
+ host.AnnotationToken,
49
+ (host2) => {
50
+ const { transform, ref } = props.page;
51
+ return host2.listChromeNodes(ref, transform.viewScale, transform.rotation, transform.zoom);
52
+ },
53
+ NO_NODES,
54
+ core.shallowEqual
55
+ );
56
+ const chrome = useAnnotationSettings((settings) => settings.chrome);
57
+ const accent = documents.useViewerSettings((settings) => settings.accent);
58
+ const painted = vue.computed(() => {
59
+ const paint = web.annotationChromePaint(chrome.value, accent.value);
60
+ const style = (part) => ({ ...part });
61
+ return {
62
+ outline: style(paint.outline),
63
+ handle: style(paint.handle),
64
+ rotationHandle: style(paint.rotationHandle),
65
+ rotationStalk: style({ stroke: paint.rotationHandle.stroke }),
66
+ guide: style(paint.guide),
67
+ rotationGuide: style(paint.rotationGuide),
68
+ marquee: style(paint.marquee)
69
+ };
70
+ });
71
+ const pixels = vue.computed(() => web.chromeInPixels(nodes.value, props.page.transform));
72
+ const hasHandles = vue.computed(
73
+ () => pixels.value.some((node) => node.kind === "handle" || node.kind === "rotation-handle")
74
+ );
75
+ return (_ctx, _cache) => {
76
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
77
+ (vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$5, [
78
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(pixels.value, (node, index) => {
79
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index }, [
80
+ node.kind === "handle" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
81
+ !slots.handle ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
82
+ vue.unref(chrome).handles.shape === "circle" ? (vue.openBlock(), vue.createElementBlock("circle", {
83
+ key: 0,
84
+ cx: node.at.x,
85
+ cy: node.at.y,
86
+ r: vue.unref(chrome).handles.size / 2,
87
+ "stroke-width": "1.5",
88
+ style: vue.normalizeStyle(painted.value.handle)
89
+ }, null, 12, _hoisted_2)) : (vue.openBlock(), vue.createElementBlock("rect", {
90
+ key: 1,
91
+ x: node.at.x - vue.unref(chrome).handles.size / 2,
92
+ y: node.at.y - vue.unref(chrome).handles.size / 2,
93
+ width: vue.unref(chrome).handles.size,
94
+ height: vue.unref(chrome).handles.size,
95
+ "stroke-width": "1.5",
96
+ style: vue.normalizeStyle(painted.value.handle),
97
+ transform: node.rotation ? `rotate(${node.rotation} ${node.at.x} ${node.at.y})` : void 0
98
+ }, null, 12, _hoisted_3))
99
+ ], 64)) : vue.createCommentVNode("", true)
100
+ ], 64)) : node.kind === "guide" ? (vue.openBlock(), vue.createElementBlock("line", {
101
+ key: 1,
102
+ x1: node.from.x,
103
+ y1: node.from.y,
104
+ x2: node.to.x,
105
+ y2: node.to.y,
106
+ "shape-rendering": "crispEdges",
107
+ style: vue.normalizeStyle(painted.value.guide)
108
+ }, null, 12, _hoisted_4)) : node.kind === "turned-outline" ? (vue.openBlock(), vue.createElementBlock("polygon", {
109
+ key: 2,
110
+ points: node.points,
111
+ fill: "none",
112
+ style: vue.normalizeStyle(painted.value.outline)
113
+ }, null, 12, _hoisted_5)) : node.kind === "rotation-guides" ? (vue.openBlock(), vue.createElementBlock("g", _hoisted_6, [
114
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(node.lines, (line, lineIndex) => {
115
+ return vue.openBlock(), vue.createElementBlock("line", {
116
+ key: lineIndex,
117
+ x1: line.from.x,
118
+ y1: line.from.y,
119
+ x2: line.to.x,
120
+ y2: line.to.y,
121
+ opacity: line.opacity,
122
+ style: vue.normalizeStyle(painted.value.rotationGuide)
123
+ }, null, 12, _hoisted_7);
124
+ }), 128))
125
+ ])) : node.kind === "rotation-handle" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 4 }, [
126
+ !slots["rotation-handle"] ? (vue.openBlock(), vue.createElementBlock("g", _hoisted_8, [
127
+ vue.unref(chrome).rotationHandle.stalk ? (vue.openBlock(), vue.createElementBlock("line", {
128
+ key: 0,
129
+ x1: node.from.x,
130
+ y1: node.from.y,
131
+ x2: node.at.x,
132
+ y2: node.at.y,
133
+ "stroke-width": "1",
134
+ style: vue.normalizeStyle(painted.value.rotationStalk)
135
+ }, null, 12, _hoisted_9)) : vue.createCommentVNode("", true),
136
+ vue.createElementVNode("circle", {
137
+ cx: node.at.x,
138
+ cy: node.at.y,
139
+ r: vue.unref(chrome).rotationHandle.size / 2,
140
+ "stroke-width": "1.5",
141
+ style: vue.normalizeStyle(painted.value.rotationHandle)
142
+ }, null, 12, _hoisted_10)
143
+ ])) : vue.createCommentVNode("", true)
144
+ ], 64)) : node.kind === "marquee" ? (vue.openBlock(), vue.createElementBlock("rect", {
145
+ key: 5,
146
+ x: node.box.left,
147
+ y: node.box.top,
148
+ width: node.box.width,
149
+ height: node.box.height,
150
+ "stroke-width": "1",
151
+ "stroke-dasharray": "4 3",
152
+ style: vue.normalizeStyle(painted.value.marquee)
153
+ }, null, 12, _hoisted_11)) : node.kind === "outline" ? (vue.openBlock(), vue.createElementBlock("rect", {
154
+ key: 6,
155
+ x: node.box.left,
156
+ y: node.box.top,
157
+ width: node.box.width,
158
+ height: node.box.height,
159
+ fill: "none",
160
+ style: vue.normalizeStyle(painted.value.outline)
161
+ }, null, 12, _hoisted_12)) : vue.createCommentVNode("", true)
162
+ ], 64);
163
+ }), 128))
164
+ ])),
165
+ hasHandles.value && (slots.handle || slots["rotation-handle"]) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13, [
166
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(pixels.value, (node, index) => {
167
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: index }, [
168
+ node.kind === "handle" && slots.handle ? vue.renderSlot(_ctx.$slots, "handle", {
169
+ at: node.at,
170
+ size: vue.unref(chrome).handles.size,
171
+ rotation: node.rotation,
172
+ kind: node.role,
173
+ active: node.active
174
+ }, void 0, void 0, 0) : node.kind === "rotation-handle" && slots["rotation-handle"] ? vue.renderSlot(_ctx.$slots, "rotation-handle", {
175
+ at: node.at,
176
+ from: node.from,
177
+ size: vue.unref(chrome).rotationHandle.size,
178
+ rotation: 0,
179
+ active: false
180
+ }, void 0, void 0, 1) : vue.createCommentVNode("", true)
181
+ ], 64);
182
+ }), 128))
183
+ ])) : vue.createCommentVNode("", true)
184
+ ], 64);
185
+ };
186
+ }
187
+ });
188
+ const _hoisted_1$4 = ["inert"];
189
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
190
+ __name: "AnnotationFrame",
191
+ props: {
192
+ item: {},
193
+ page: {},
194
+ interactive: { type: Boolean, default: false },
195
+ inert: { type: Boolean, default: false }
196
+ },
197
+ setup(__props) {
198
+ const props = __props;
199
+ const style = vue.computed(() => {
200
+ const box = web.frameInPixels(props.item.frame, props.page.transform);
201
+ return {
202
+ position: "absolute",
203
+ left: `${box.left}px`,
204
+ top: `${box.top}px`,
205
+ width: `${box.width}px`,
206
+ height: `${box.height}px`,
207
+ transform: box.transform,
208
+ transformOrigin: "center",
209
+ // On the frame: a turned frame groups what is inside it, so blending on
210
+ // an inner element would stop blending with the page.
211
+ mixBlendMode: props.item.blend,
212
+ pointerEvents: props.interactive ? "auto" : "none"
213
+ };
214
+ });
215
+ return (_ctx, _cache) => {
216
+ return vue.openBlock(), vue.createElementBlock("div", {
217
+ inert: __props.inert || void 0,
218
+ style: vue.normalizeStyle(style.value)
219
+ }, [
220
+ vue.renderSlot(_ctx.$slots, "default")
221
+ ], 12, _hoisted_1$4);
222
+ };
223
+ }
224
+ });
225
+ function useTextBoxEditor(item, scale) {
226
+ const element = vue.shallowRef(null);
227
+ const annotation = capabilities.useOptionalCapability(host.AnnotationToken);
228
+ const follower = web.createTextBoxEditorFollower();
229
+ vue.watch(
230
+ [annotation, element, () => vue.toValue(item), () => vue.toValue(scale)],
231
+ ([capability, target, current, pixelsPerPoint]) => follower.follow(target, capability, current, pixelsPerPoint),
232
+ { immediate: true, flush: "post" }
233
+ );
234
+ vue.onScopeDispose(() => follower.detach());
235
+ return element;
236
+ }
237
+ const LookScaleKey = Symbol("embedpdf annotation look scale");
238
+ const UNSCALED = vue.computed(() => 1);
239
+ function provideLookScale(scale) {
240
+ vue.provide(LookScaleKey, scale);
241
+ }
242
+ const NO_STYLE = Object.freeze({});
243
+ function useRichTextEditor(annotation) {
244
+ const page$1 = page.usePage();
245
+ const item = capabilities.useOptionalSelector(
246
+ host.AnnotationToken,
247
+ (host2) => {
248
+ const { transform } = page$1.value;
249
+ return host2.getTextItem(vue.toValue(annotation).ref, {
250
+ zoom: transform.zoom,
251
+ rotation: transform.rotation
252
+ });
253
+ },
254
+ null
255
+ );
256
+ const lookScale = vue.inject(LookScaleKey, UNSCALED);
257
+ const scale = vue.computed(
258
+ () => web.textBoxEditorScaleOf(item.value, page$1.value.transform, lookScale.value)
259
+ );
260
+ const own = vue.computed(() => item.value ? web.ownTextBoxOf(item.value, scale.value) : null);
261
+ const element = useTextBoxEditor(item, () => {
262
+ var _a;
263
+ return ((_a = own.value) == null ? void 0 : _a.scale) ?? scale.value;
264
+ });
265
+ const style = vue.computed(() => {
266
+ var _a;
267
+ return ((_a = own.value) == null ? void 0 : _a.style) ?? NO_STYLE;
268
+ });
269
+ return {
270
+ ref: (target) => {
271
+ element.value = target instanceof HTMLElement ? target : null;
272
+ },
273
+ style,
274
+ editing: vue.computed(() => {
275
+ var _a;
276
+ return ((_a = item.value) == null ? void 0 : _a.editing) ?? false;
277
+ })
278
+ };
279
+ }
280
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
281
+ __name: "AnnotationLook",
282
+ props: {
283
+ component: {},
284
+ scaled: { type: Boolean },
285
+ annotation: {},
286
+ item: {},
287
+ page: {},
288
+ native: {},
289
+ appearance: {},
290
+ interactive: { type: Boolean }
291
+ },
292
+ setup(__props) {
293
+ const props = __props;
294
+ const pixels = vue.computed(() => web.frameInPixels(props.item.frame, props.page.transform));
295
+ const frame = vue.computed(() => web.lookFrameOf(pixels.value, props.scaled));
296
+ provideLookScale(vue.computed(() => props.scaled ? pixels.value.scale : 1));
297
+ const scaledBox = vue.computed(
298
+ () => ({
299
+ position: "absolute",
300
+ left: 0,
301
+ top: 0,
302
+ width: `${pixels.value.design.width}px`,
303
+ height: `${pixels.value.design.height}px`,
304
+ transform: `scale(${pixels.value.scale})`,
305
+ transformOrigin: "0 0"
306
+ })
307
+ );
308
+ return (_ctx, _cache) => {
309
+ return __props.scaled ? (vue.openBlock(), vue.createElementBlock("div", {
310
+ key: 0,
311
+ style: vue.normalizeStyle(scaledBox.value)
312
+ }, [
313
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.component), {
314
+ annotation: __props.annotation,
315
+ frame: frame.value,
316
+ native: __props.native,
317
+ appearance: __props.appearance,
318
+ hovered: __props.item.hovered ?? false,
319
+ selected: __props.item.selected,
320
+ interactive: __props.interactive
321
+ }, null, 8, ["annotation", "frame", "native", "appearance", "hovered", "selected", "interactive"]))
322
+ ], 4)) : (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(__props.component), {
323
+ key: 1,
324
+ annotation: __props.annotation,
325
+ frame: frame.value,
326
+ native: __props.native,
327
+ appearance: __props.appearance,
328
+ hovered: __props.item.hovered ?? false,
329
+ selected: __props.item.selected,
330
+ interactive: __props.interactive
331
+ }, null, 8, ["annotation", "frame", "native", "appearance", "hovered", "selected", "interactive"]));
332
+ };
333
+ }
334
+ });
335
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
336
+ __name: "FreeTextBox",
337
+ props: {
338
+ item: {},
339
+ page: {}
340
+ },
341
+ setup(__props) {
342
+ const props = __props;
343
+ const chrome = useAnnotationSettings((settings) => settings.chrome);
344
+ const accent = documents.useViewerSettings((settings) => settings.accent);
345
+ const outline = vue.computed(() => web.annotationChromePaint(chrome.value, accent.value).textOutline);
346
+ const box = vue.computed(() => web.freeTextBoxOf(props.item, props.page.transform, outline.value));
347
+ const element = useTextBoxEditor(
348
+ () => props.item,
349
+ () => box.value.scale
350
+ );
351
+ return (_ctx, _cache) => {
352
+ return vue.openBlock(), vue.createElementBlock("div", {
353
+ ref_key: "element",
354
+ ref: element,
355
+ style: vue.normalizeStyle(box.value.style)
356
+ }, null, 4);
357
+ };
358
+ }
359
+ });
360
+ const _hoisted_1$3 = ["viewBox"];
361
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
362
+ __name: "AnnotationScene",
363
+ props: {
364
+ item: {}
365
+ },
366
+ setup(__props) {
367
+ const props = __props;
368
+ const viewBox = vue.computed(() => web.sceneViewBox(props.item.box));
369
+ const shapes = vue.computed(() => web.svgShapesOf(coreAnnotation.scene(props.item), { miterLimit: coreAnnotation.MITER_LIMIT }));
370
+ const style = vue.computed(
371
+ () => ({
372
+ position: "absolute",
373
+ left: 0,
374
+ top: 0,
375
+ width: "100%",
376
+ height: "100%",
377
+ overflow: "visible",
378
+ pointerEvents: "none",
379
+ // A ghost is see-through as a whole, so its fill and stroke don't stack.
380
+ ...props.item.source === "ghost" ? { opacity: web.ghostOpacity(props.item.ghostOpacity ?? 0.5) } : {}
381
+ })
382
+ );
383
+ return (_ctx, _cache) => {
384
+ return viewBox.value ? (vue.openBlock(), vue.createElementBlock("svg", {
385
+ key: 0,
386
+ viewBox: viewBox.value,
387
+ style: vue.normalizeStyle(style.value)
388
+ }, [
389
+ vue.createVNode(SvgShapes_vue_vue_type_script_setup_true_lang._sfc_main, { shapes: shapes.value }, null, 8, ["shapes"])
390
+ ], 12, _hoisted_1$3)) : vue.createCommentVNode("", true);
391
+ };
392
+ }
393
+ });
394
+ const _hoisted_1$2 = ["src"];
395
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
396
+ __name: "NativeDrawing",
397
+ props: {
398
+ item: {},
399
+ urls: {}
400
+ },
401
+ setup(__props) {
402
+ const props = __props;
403
+ const shows = vue.computed(() => {
404
+ var _a;
405
+ const { item, urls } = props;
406
+ return web.pictureOrPainting({
407
+ pending: item.source !== "baked",
408
+ picture: urls && web.shownAppearance(urls, item.id, ((_a = item.annotation) == null ? void 0 : _a.appearanceState) ?? null),
409
+ version: item.pictureVersion ?? 0,
410
+ loaded: urls !== null,
411
+ paint: () => coreAnnotation.hasLiveDrawing(item) ? item : null
412
+ });
413
+ });
414
+ const baked = vue.computed(() => {
415
+ const { item } = props;
416
+ const look = shows.value;
417
+ if ((look == null ? void 0 : look.kind) !== "picture" || !item.raster) return null;
418
+ const box = web.rasterInFrame(item.raster, item.frame);
419
+ return {
420
+ url: look.picture.url,
421
+ style: {
422
+ position: "absolute",
423
+ left: box.left,
424
+ top: box.top,
425
+ width: box.width,
426
+ height: box.height,
427
+ // The appearance box is sized in content units; a global
428
+ // `img { max-width: 100% }` reset would otherwise clamp it to the
429
+ // containing block and distort the aspect (a landscape stamp on a turned,
430
+ // portrait page), so honour the explicit size.
431
+ maxWidth: "none",
432
+ maxHeight: "none",
433
+ pointerEvents: "none",
434
+ // The turn the engine took out of the raster, put back about its middle.
435
+ transform: box.transform,
436
+ transformOrigin: "center"
437
+ }
438
+ };
439
+ });
440
+ return (_ctx, _cache) => {
441
+ var _a;
442
+ return baked.value ? (vue.openBlock(), vue.createElementBlock("img", {
443
+ key: 0,
444
+ src: baked.value.url,
445
+ alt: "",
446
+ draggable: "false",
447
+ style: vue.normalizeStyle(baked.value.style)
448
+ }, null, 12, _hoisted_1$2)) : ((_a = shows.value) == null ? void 0 : _a.kind) === "painting" ? (vue.openBlock(), vue.createBlock(_sfc_main$6, {
449
+ key: 1,
450
+ item: __props.item
451
+ }, null, 8, ["item"])) : vue.createCommentVNode("", true);
452
+ };
453
+ }
454
+ });
455
+ const _hoisted_1$1 = ["src"];
456
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
457
+ __name: "StampGhost",
458
+ props: {
459
+ page: {}
460
+ },
461
+ setup(__props) {
462
+ const props = __props;
463
+ const annotation = capabilities.useOptionalCapability(host.AnnotationToken);
464
+ const ghost = capabilities.useOptionalSelector(
465
+ host.AnnotationToken,
466
+ (host2) => host2.getImageGhost(props.page.ref),
467
+ null
468
+ );
469
+ const armed = capabilities.useOptionalSelector(host.AnnotationToken, (host2) => host2.getArmedStamp(), null);
470
+ const bucket = vue.computed(
471
+ () => ghost.value ? host.previewBucket(ghost.value.box.width * props.page.transform.renderScale) : 0
472
+ );
473
+ const url = vue.ref(null);
474
+ vue.watch(
475
+ [annotation, armed, bucket],
476
+ ([host2, _armed, size], _previous, onCleanup) => {
477
+ if (!host2 || !size) {
478
+ url.value = null;
479
+ return;
480
+ }
481
+ onCleanup(
482
+ web.loadObjectUrl(
483
+ () => host2.renderArmedStampPreview(size),
484
+ (next) => url.value = next
485
+ )
486
+ );
487
+ },
488
+ { immediate: true }
489
+ );
490
+ const style = vue.computed(() => {
491
+ const current = ghost.value;
492
+ if (!current) return null;
493
+ const frame = web.rectInPixels(current.box, props.page.transform);
494
+ return {
495
+ position: "absolute",
496
+ left: `${frame.left}px`,
497
+ top: `${frame.top}px`,
498
+ width: `${frame.width}px`,
499
+ height: `${frame.height}px`,
500
+ // Never let a global `img` reset clamp the box and distort the aspect.
501
+ maxWidth: "none",
502
+ maxHeight: "none",
503
+ pointerEvents: "none",
504
+ opacity: web.ghostOpacity(current.opacity),
505
+ ...current.rot ? { transform: `rotate(${current.rot}deg)`, transformOrigin: "center" } : {}
506
+ };
507
+ });
508
+ return (_ctx, _cache) => {
509
+ return style.value && url.value ? (vue.openBlock(), vue.createElementBlock("img", {
510
+ key: 0,
511
+ src: url.value,
512
+ alt: "",
513
+ draggable: "false",
514
+ style: vue.normalizeStyle(style.value)
515
+ }, null, 12, _hoisted_1$1)) : vue.createCommentVNode("", true);
516
+ };
517
+ }
518
+ });
519
+ const _hoisted_1 = { style: { position: "absolute", inset: 0, pointerEvents: "none" } };
520
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
521
+ __name: "AnnotationLayer",
522
+ props: {
523
+ renderers: {}
524
+ },
525
+ setup(__props) {
526
+ const props = __props;
527
+ const slots = vue.useSlots();
528
+ const NO_ITEMS = Object.freeze([]);
529
+ const NO_TEXTS = Object.freeze([]);
530
+ const page$1 = page.usePage();
531
+ pageLayers.usePaintsPagePart(
532
+ vue.computed(() => page$1.value.ref),
533
+ "annotations"
534
+ );
535
+ const annotation = capabilities.useOptionalCapability(host.AnnotationToken);
536
+ const interaction = capabilities.useOptionalCapability(contract$1.InteractionToken);
537
+ const activeToolId = capabilities.useOptionalSelector(
538
+ contract$1.InteractionToken,
539
+ (hub) => hub.getActiveToolId(),
540
+ ""
541
+ );
542
+ const items = capabilities.useOptionalSelector(
543
+ host.AnnotationToken,
544
+ (host2) => {
545
+ const { transform, ref } = page$1.value;
546
+ return host2.listPageItems(ref, { zoom: transform.zoom, rotation: transform.rotation });
547
+ },
548
+ NO_ITEMS,
549
+ core.shallowEqual
550
+ );
551
+ const texts = capabilities.useOptionalSelector(
552
+ host.AnnotationToken,
553
+ (host2) => {
554
+ const { transform, ref } = page$1.value;
555
+ return host2.listTextItems(ref, { zoom: transform.zoom, rotation: transform.rotation });
556
+ },
557
+ NO_TEXTS,
558
+ core.shallowEqual
559
+ );
560
+ const registrations = vue.shallowRef(0);
561
+ vue.watch(
562
+ [annotation, () => props.renderers],
563
+ ([host2, renderers], previous, onCleanup) => {
564
+ const before = previous == null ? void 0 : previous[1];
565
+ if (renderers && before && renderers !== before && core.shallowEqual(renderers, before)) {
566
+ dev.devWarn(
567
+ "annotation-renderers-inline",
568
+ "<AnnotationLayer :renderers> was given a new array with the same entries — define it once in <script setup>, because entry identity keys the behavior registration."
569
+ );
570
+ }
571
+ if (host2 && renderers) {
572
+ onCleanup(
573
+ web.registerRendererBehaviors(
574
+ host2,
575
+ renderers,
576
+ () => {
577
+ var _a;
578
+ return String(((_a = interaction.value) == null ? void 0 : _a.getActiveToolId()) ?? "");
579
+ }
580
+ )
581
+ );
582
+ }
583
+ registrations.value += 1;
584
+ },
585
+ { immediate: true }
586
+ );
587
+ const urls = vue.shallowRef(null);
588
+ const shown = web.createShownUrls();
589
+ vue.onUnmounted(() => shown.release());
590
+ const bakedKey = capabilities.useOptionalSelector(
591
+ host.AnnotationToken,
592
+ (host2) => host2.getAppearanceEpoch(page$1.value.ref),
593
+ ""
594
+ );
595
+ const bakeScale = capabilities.useOptionalSelector(
596
+ host$1.RenderToken,
597
+ (render) => render.getAppearanceScale(page$1.value.transform.renderScale),
598
+ page$1.value.transform.renderScale
599
+ );
600
+ vue.watch(
601
+ [annotation, () => page$1.value.ref, bakeScale, bakedKey],
602
+ ([host2, pageRef, scale], _previous, onCleanup) => {
603
+ if (!host2 || !scale) return;
604
+ onCleanup(
605
+ web.loadAppearanceUrls(
606
+ shown,
607
+ (signal) => host2.renderAppearances(pageRef, scale, signal),
608
+ core.annotationKey,
609
+ (loaded) => urls.value = loaded
610
+ )
611
+ );
612
+ },
613
+ { immediate: true }
614
+ );
615
+ const editingKey = vue.computed(() => web.editingTextKeyOf(texts.value, core.annotationKey));
616
+ const NATIVE = { kind: "native", inert: false };
617
+ const drawn = vue.computed(() => {
618
+ void activeToolId.value;
619
+ void registrations.value;
620
+ const host2 = annotation.value;
621
+ const renderers = props.renderers;
622
+ return items.value.map((item) => {
623
+ const record = item.annotation ?? null;
624
+ if (!record || !host2) return { item, annotation: null, drawing: NATIVE };
625
+ const typing = editingKey.value !== null && core.annotationKey(record.ref) === editingKey.value;
626
+ return { item, annotation: record, drawing: web.annotationDrawingOf(record, host2, renderers, typing) };
627
+ });
628
+ });
629
+ const ownTexts = vue.computed(
630
+ () => web.layerTextBoxesOf(texts.value, items.value, props.renderers, core.annotationKey)
631
+ );
632
+ const itemsById = vue.computed(() => new Map(items.value.map((item) => [item.id, item])));
633
+ const natives = /* @__PURE__ */ new Map();
634
+ const framedNatives = /* @__PURE__ */ new Map();
635
+ function nativeOf(id) {
636
+ let native = natives.get(id);
637
+ if (!native) {
638
+ native = vue.markRaw(() => {
639
+ const item = itemsById.value.get(id);
640
+ return item ? vue.h(_sfc_main$5, { item, urls: urls.value }) : null;
641
+ });
642
+ natives.set(id, native);
643
+ }
644
+ return native;
645
+ }
646
+ function framedNativeOf(id) {
647
+ let native = framedNatives.get(id);
648
+ if (!native) {
649
+ native = vue.markRaw(() => {
650
+ const item = itemsById.value.get(id);
651
+ return item ? vue.h(_sfc_main$9, { item, page: page$1.value }, () => vue.h(nativeOf(id))) : null;
652
+ });
653
+ framedNatives.set(id, native);
654
+ }
655
+ return native;
656
+ }
657
+ vue.watch(itemsById, (shown2) => {
658
+ for (const id of natives.keys()) if (!shown2.has(id)) natives.delete(id);
659
+ for (const id of framedNatives.keys()) if (!shown2.has(id)) framedNatives.delete(id);
660
+ });
661
+ const componentOf = (component) => vue.toRaw(component);
662
+ return (_ctx, _cache) => {
663
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
664
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(drawn.value, ({ item, annotation: record, drawing }) => {
665
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
666
+ key: item.id
667
+ }, [
668
+ drawing.kind === "owned" && record ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentOf(drawing.entry.component)), {
669
+ key: 0,
670
+ annotation: record,
671
+ item,
672
+ page: vue.unref(page$1),
673
+ native: framedNativeOf(item.id),
674
+ hovered: item.hovered ?? false,
675
+ selected: item.selected,
676
+ interactive: true
677
+ }, null, 8, ["annotation", "item", "page", "native", "hovered", "selected"])) : drawing.kind === "look" && record ? (vue.openBlock(), vue.createBlock(_sfc_main$9, {
678
+ key: 1,
679
+ item,
680
+ page: vue.unref(page$1),
681
+ interactive: drawing.interactive,
682
+ inert: drawing.inert
683
+ }, {
684
+ default: vue.withCtx(() => {
685
+ var _a;
686
+ return [
687
+ vue.createVNode(_sfc_main$8, {
688
+ component: componentOf(drawing.entry.component),
689
+ scaled: drawing.entry.scale !== false,
690
+ annotation: record,
691
+ item,
692
+ page: vue.unref(page$1),
693
+ native: nativeOf(item.id),
694
+ appearance: urls.value && vue.unref(web.bakedAppearanceOf)(urls.value, item.id, ((_a = item.annotation) == null ? void 0 : _a.appearanceState) ?? null),
695
+ interactive: drawing.interactive
696
+ }, null, 8, ["component", "scaled", "annotation", "item", "page", "native", "appearance", "interactive"])
697
+ ];
698
+ }),
699
+ _: 2
700
+ }, 1032, ["item", "page", "interactive", "inert"])) : (vue.openBlock(), vue.createBlock(_sfc_main$9, {
701
+ key: 2,
702
+ item,
703
+ page: vue.unref(page$1),
704
+ inert: drawing.kind === "native" && drawing.inert
705
+ }, {
706
+ default: vue.withCtx(() => [
707
+ vue.createVNode(_sfc_main$5, {
708
+ item,
709
+ urls: urls.value
710
+ }, null, 8, ["item", "urls"])
711
+ ]),
712
+ _: 2
713
+ }, 1032, ["item", "page", "inert"]))
714
+ ], 64);
715
+ }), 128)),
716
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(ownTexts.value, (text) => {
717
+ return vue.openBlock(), vue.createBlock(_sfc_main$7, {
718
+ key: text.id,
719
+ item: text,
720
+ page: vue.unref(page$1)
721
+ }, null, 8, ["item", "page"]);
722
+ }), 128)),
723
+ vue.createVNode(_sfc_main$4, { page: vue.unref(page$1) }, null, 8, ["page"]),
724
+ vue.createVNode(_sfc_main$a, { page: vue.unref(page$1) }, vue.createSlots({ _: 2 }, [
725
+ slots.handle ? {
726
+ name: "handle",
727
+ fn: vue.withCtx((handle) => [
728
+ vue.renderSlot(_ctx.$slots, "handle", vue.normalizeProps(vue.guardReactiveProps(handle)))
729
+ ]),
730
+ key: "0"
731
+ } : void 0,
732
+ slots["rotation-handle"] ? {
733
+ name: "rotation-handle",
734
+ fn: vue.withCtx((handle) => [
735
+ vue.renderSlot(_ctx.$slots, "rotation-handle", vue.normalizeProps(vue.guardReactiveProps(handle)))
736
+ ]),
737
+ key: "1"
738
+ } : void 0
739
+ ]), 1032, ["page"])
740
+ ]);
741
+ };
742
+ }
743
+ });
744
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
745
+ __name: "AnnotationMenu",
746
+ props: {
747
+ gap: { default: 15 },
748
+ placement: { default: "top" }
749
+ },
750
+ setup(__props) {
751
+ const binding = projector.useProjectorBinding();
752
+ const anchor = capabilities.useOptionalSelector(
753
+ host.AnnotationToken,
754
+ (host2) => {
755
+ const selection = host2.selection.getAnchor();
756
+ if (!selection) return null;
757
+ const view = binding.value.projector.viewEnv(selection.page);
758
+ return view ? host2.getSelectionAnchorIn(view) : selection;
759
+ },
760
+ null,
761
+ web.sameSelectionAnchor
762
+ );
763
+ return (_ctx, _cache) => {
764
+ return vue.unref(anchor) ? (vue.openBlock(), vue.createBlock(Anchored_vue_vue_type_script_setup_true_lang._sfc_main, {
765
+ key: 0,
766
+ anchor: {
767
+ page: vue.unref(anchor).page,
768
+ bounds: vue.unref(anchor).bounds,
769
+ ...vue.unref(anchor).rotationHandle ? { avoid: [vue.unref(anchor).rotationHandle] } : {}
770
+ },
771
+ placement: __props.placement,
772
+ gap: __props.gap
773
+ }, {
774
+ default: vue.withCtx(() => [
775
+ vue.renderSlot(_ctx.$slots, "default")
776
+ ]),
777
+ _: 3
778
+ }, 8, ["anchor", "placement", "gap"])) : vue.createCommentVNode("", true);
779
+ };
780
+ }
781
+ });
782
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
783
+ __name: "AnnotationDraftMenu",
784
+ props: {
785
+ gap: { default: 8 },
786
+ placement: { default: "top" }
787
+ },
788
+ setup(__props) {
789
+ const draft = capabilities.useOptionalSelector(
790
+ pluginAnnotation.AnnotationToken,
791
+ (annotation) => annotation.draft.get(),
792
+ null,
793
+ web.sameCreationDraftAnchor
794
+ );
795
+ return (_ctx, _cache) => {
796
+ return vue.unref(draft) ? (vue.openBlock(), vue.createBlock(Anchored_vue_vue_type_script_setup_true_lang._sfc_main, {
797
+ key: 0,
798
+ anchor: vue.unref(draft),
799
+ placement: __props.placement,
800
+ gap: __props.gap
801
+ }, {
802
+ default: vue.withCtx(() => [
803
+ vue.renderSlot(_ctx.$slots, "default", { draft: vue.unref(draft) })
804
+ ]),
805
+ _: 3
806
+ }, 8, ["anchor", "placement", "gap"])) : vue.createCommentVNode("", true);
807
+ };
808
+ }
809
+ });
810
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
811
+ __name: "AnnotationRotationBadge",
812
+ props: {
813
+ gap: { default: 16 },
814
+ placement: { default: "right" }
815
+ },
816
+ setup(__props) {
817
+ const slots = vue.useSlots();
818
+ const rotation = capabilities.useOptionalSelector(
819
+ pluginAnnotation.AnnotationToken,
820
+ (annotation) => annotation.selection.getRotationAnchor(),
821
+ null,
822
+ web.sameRotationAnchor
823
+ );
824
+ const readout = useAnnotationSettings((settings) => settings.chrome.readout);
825
+ const badge = vue.computed(
826
+ () => ({
827
+ pointerEvents: "none",
828
+ whiteSpace: "nowrap",
829
+ borderRadius: "4px",
830
+ padding: "2px 6px",
831
+ fontFamily: web.paintDefault("font-mono"),
832
+ fontSize: "12px",
833
+ background: web.paint("readout-background", readout.value.background),
834
+ color: web.paint("readout-color", readout.value.color)
835
+ })
836
+ );
837
+ return (_ctx, _cache) => {
838
+ return vue.unref(rotation) && (slots.default || vue.unref(readout).enabled) ? (vue.openBlock(), vue.createBlock(Anchored_vue_vue_type_script_setup_true_lang._sfc_main, {
839
+ key: 0,
840
+ anchor: { page: vue.unref(rotation).page, bounds: { ...vue.unref(rotation).at, width: 0, height: 0 } },
841
+ placement: __props.placement,
842
+ gap: __props.gap
843
+ }, {
844
+ default: vue.withCtx(() => [
845
+ slots.default ? vue.renderSlot(_ctx.$slots, "default", { rotation: vue.unref(rotation) }, void 0, void 0, 0) : (vue.openBlock(), vue.createElementBlock("div", {
846
+ key: 1,
847
+ style: vue.normalizeStyle(badge.value)
848
+ }, vue.toDisplayString(vue.unref(rotation).angle) + "°", 5))
849
+ ]),
850
+ _: 3
851
+ }, 8, ["anchor", "placement", "gap"])) : vue.createCommentVNode("", true);
852
+ };
853
+ }
854
+ });
855
+ function useAnnotation() {
856
+ return capabilities.useCapability(pluginAnnotation.AnnotationToken);
857
+ }
858
+ function useAnnotationEvent(select, handler) {
859
+ capabilities.useCapabilityEvent(pluginAnnotation.AnnotationToken, select, handler);
860
+ }
861
+ const NO_ANNOTATIONS = Object.freeze([]);
862
+ function useAnnotationList(filter) {
863
+ return capabilities.useOptionalSelector(
864
+ pluginAnnotation.AnnotationToken,
865
+ (annotation) => annotation.list(vue.toValue(filter)),
866
+ NO_ANNOTATIONS,
867
+ core.shallowEqual
868
+ );
869
+ }
870
+ const NO_DEFAULTS = Object.freeze({});
871
+ function useAnnotationDefaults(toolId) {
872
+ return capabilities.useOptionalSelector(
873
+ pluginAnnotation.AnnotationToken,
874
+ (annotation) => annotation.tools.getDefaults(vue.toValue(toolId)),
875
+ NO_DEFAULTS
876
+ );
877
+ }
878
+ const NO_PROPERTIES = Object.freeze({
879
+ properties: [],
880
+ values: {},
881
+ mixed: []
882
+ });
883
+ function useAnnotationProperties(toolId) {
884
+ return capabilities.useOptionalSelector(
885
+ pluginAnnotation.AnnotationToken,
886
+ (annotation) => {
887
+ const tool = vue.toValue(toolId);
888
+ return tool === void 0 ? annotation.selection.getProperties() : annotation.tools.getProperties(tool);
889
+ },
890
+ NO_PROPERTIES
891
+ );
892
+ }
893
+ function useAnnotationAnchor(ref) {
894
+ return capabilities.useOptionalSelector(
895
+ host.AnnotationToken,
896
+ (annotation) => {
897
+ const wanted = vue.toValue(ref);
898
+ return wanted ? annotation.getAnnotationAnchor(wanted) : null;
899
+ },
900
+ null,
901
+ web.sameAnnotationAnchor
902
+ );
903
+ }
904
+ function useComments() {
905
+ const annotation = useAnnotation();
906
+ const target = vue.markRaw({});
907
+ return new Proxy(target, {
908
+ get: (_target, key) => typeof key === "string" && key.startsWith("__v_") ? Reflect.get(target, key) : Reflect.get(annotation.comments, key),
909
+ has: (_target, key) => Reflect.has(annotation.comments, key)
910
+ });
911
+ }
912
+ const NO_PAGES = Object.freeze([]);
913
+ const NO_THREADS = Object.freeze([]);
914
+ function useCommentThreads() {
915
+ const documentId = capabilities.useDocumentId();
916
+ const threads = capabilities.useOptionalSelector(
917
+ pluginAnnotation.AnnotationToken,
918
+ (annotation) => annotation.comments.listThreads(),
919
+ NO_THREADS
920
+ );
921
+ const pages = capabilities.useKernelValue(
922
+ (kernel) => documentId.value ? kernel.documents.listPages(documentId.value) : NO_PAGES
923
+ );
924
+ return vue.computed(() => web.enrichCommentThreads(threads.value, pages.value));
925
+ }
926
+ function useCommentThread(ref) {
927
+ const views = useCommentThreads();
928
+ const annotation = capabilities.useOptionalCapability(pluginAnnotation.AnnotationToken);
929
+ return vue.computed(() => {
930
+ const wanted = vue.toValue(ref);
931
+ const api = annotation.value;
932
+ if (wanted == null || !api) return null;
933
+ const thread = api.comments.getThread(wanted);
934
+ if (!thread) return null;
935
+ const root = core.annotationKey(thread.root.ref);
936
+ return views.value.find((view) => core.annotationKey(view.root.ref) === root) ?? null;
937
+ });
938
+ }
939
+ const filePickerProvider = web.pickRequestedFile;
940
+ function useFilePickerProvider(provider = filePickerProvider) {
941
+ const annotation = capabilities.useOptionalCapability(pluginAnnotation.AnnotationToken);
942
+ vue.watch(
943
+ [annotation, () => vue.unref(provider)],
944
+ ([capability, current], _previous, onCleanup) => {
945
+ if (!capability) return;
946
+ onCleanup(
947
+ web.installFilePickerProvider(
948
+ capability,
949
+ current,
950
+ () => dev.devWarn(
951
+ "file-picker-provider-twice",
952
+ "useFilePickerProvider() is called from two mounted components for the same document — the later one wins. Call it once, at a document-scoped spot."
953
+ )
954
+ )
955
+ );
956
+ },
957
+ { immediate: true }
958
+ );
959
+ }
960
+ exports._sfc_main = _sfc_main$1;
961
+ exports._sfc_main$1 = _sfc_main$3;
962
+ exports._sfc_main$2 = _sfc_main$2;
963
+ exports._sfc_main$3 = _sfc_main;
964
+ exports.filePickerProvider = filePickerProvider;
965
+ exports.useAnnotation = useAnnotation;
966
+ exports.useAnnotationAnchor = useAnnotationAnchor;
967
+ exports.useAnnotationDefaults = useAnnotationDefaults;
968
+ exports.useAnnotationEvent = useAnnotationEvent;
969
+ exports.useAnnotationList = useAnnotationList;
970
+ exports.useAnnotationProperties = useAnnotationProperties;
971
+ exports.useAnnotationSettings = useAnnotationSettings;
972
+ exports.useAnnotationState = useAnnotationState;
973
+ exports.useCommentThread = useCommentThread;
974
+ exports.useCommentThreads = useCommentThreads;
975
+ exports.useComments = useComments;
976
+ exports.useFilePickerProvider = useFilePickerProvider;
977
+ exports.useRichTextEditor = useRichTextEditor;
978
+ //# sourceMappingURL=composables-Bi6QvJpj.cjs.map