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

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 (405) 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-CtTu1FGX.js +191 -0
  12. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-CtTu1FGX.js.map +1 -0
  13. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-loLSm4lV.cjs +190 -0
  14. package/dist/DocumentScope.vue_vue_type_script_setup_true_lang-loLSm4lV.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 +27 -0
  94. package/dist/annotation/text-box.d.ts +27 -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/capabilities-C7YzgPCX.js +164 -0
  104. package/dist/capabilities-C7YzgPCX.js.map +1 -0
  105. package/dist/capabilities-DVNJmgy7.cjs +163 -0
  106. package/dist/capabilities-DVNJmgy7.cjs.map +1 -0
  107. package/dist/commands.cjs +81 -0
  108. package/dist/commands.cjs.map +1 -0
  109. package/dist/commands.d.cts +61 -0
  110. package/dist/commands.d.ts +61 -0
  111. package/dist/commands.js +76 -0
  112. package/dist/commands.js.map +1 -0
  113. package/dist/composables-BGBsNDf9.cjs +25 -0
  114. package/dist/composables-BGBsNDf9.cjs.map +1 -0
  115. package/dist/composables-BuHvnUlo.cjs +1003 -0
  116. package/dist/composables-BuHvnUlo.cjs.map +1 -0
  117. package/dist/composables-CIkhKwAg.js +1004 -0
  118. package/dist/composables-CIkhKwAg.js.map +1 -0
  119. package/dist/composables-DwsZdg06.js +26 -0
  120. package/dist/composables-DwsZdg06.js.map +1 -0
  121. package/dist/dev-CtMlvxjZ.js +17 -0
  122. package/dist/dev-CtMlvxjZ.js.map +1 -0
  123. package/dist/dev-eeIS2B4c.cjs +16 -0
  124. package/dist/dev-eeIS2B4c.cjs.map +1 -0
  125. package/dist/dev.d.cts +11 -0
  126. package/dist/dev.d.ts +11 -0
  127. package/dist/documents-DUu5H4yH.js +34 -0
  128. package/dist/documents-DUu5H4yH.js.map +1 -0
  129. package/dist/documents-TQ1fMdWI.cjs +33 -0
  130. package/dist/documents-TQ1fMdWI.cjs.map +1 -0
  131. package/dist/form/ButtonControl.vue.d.cts +11 -0
  132. package/dist/form/ButtonControl.vue.d.ts +11 -0
  133. package/dist/form/ComboControl.vue.d.cts +11 -0
  134. package/dist/form/ComboControl.vue.d.ts +11 -0
  135. package/dist/form/FieldPictures.vue.d.cts +3 -0
  136. package/dist/form/FieldPictures.vue.d.ts +3 -0
  137. package/dist/form/FormFocusRing.vue.d.cts +8 -0
  138. package/dist/form/FormFocusRing.vue.d.ts +8 -0
  139. package/dist/form/FormLayer.vue.d.cts +3 -0
  140. package/dist/form/FormLayer.vue.d.ts +3 -0
  141. package/dist/form/ListControl.vue.d.cts +11 -0
  142. package/dist/form/ListControl.vue.d.ts +11 -0
  143. package/dist/form/NativeListBox.vue.d.cts +27 -0
  144. package/dist/form/NativeListBox.vue.d.ts +27 -0
  145. package/dist/form/SignatureControl.vue.d.cts +11 -0
  146. package/dist/form/SignatureControl.vue.d.ts +11 -0
  147. package/dist/form/TextControl.vue.d.cts +11 -0
  148. package/dist/form/TextControl.vue.d.ts +11 -0
  149. package/dist/form/ToggleControl.vue.d.cts +11 -0
  150. package/dist/form/ToggleControl.vue.d.ts +11 -0
  151. package/dist/form/composables.d.cts +52 -0
  152. package/dist/form/composables.d.ts +52 -0
  153. package/dist/form/widget-box.d.cts +34 -0
  154. package/dist/form/widget-box.d.ts +34 -0
  155. package/dist/form.cjs +17 -0
  156. package/dist/form.cjs.map +1 -0
  157. package/dist/form.d.cts +12 -0
  158. package/dist/form.d.ts +12 -0
  159. package/dist/form.js +11 -0
  160. package/dist/form.js.map +1 -0
  161. package/dist/history.cjs +22 -0
  162. package/dist/history.cjs.map +1 -0
  163. package/dist/history.d.cts +31 -0
  164. package/dist/history.d.ts +31 -0
  165. package/dist/history.js +17 -0
  166. package/dist/history.js.map +1 -0
  167. package/dist/i18n.cjs +29 -0
  168. package/dist/i18n.cjs.map +1 -0
  169. package/dist/i18n.d.cts +36 -0
  170. package/dist/i18n.d.ts +36 -0
  171. package/dist/i18n.js +24 -0
  172. package/dist/i18n.js.map +1 -0
  173. package/dist/index.cjs +391 -0
  174. package/dist/index.cjs.map +1 -0
  175. package/dist/index.d.cts +30 -0
  176. package/dist/index.d.ts +30 -0
  177. package/dist/index.js +223 -0
  178. package/dist/index.js.map +1 -0
  179. package/dist/interaction/PagePointerSource.vue.d.cts +3 -0
  180. package/dist/interaction/PagePointerSource.vue.d.ts +3 -0
  181. package/dist/interaction.cjs +63 -0
  182. package/dist/interaction.cjs.map +1 -0
  183. package/dist/interaction.d.cts +40 -0
  184. package/dist/interaction.d.ts +40 -0
  185. package/dist/interaction.js +47 -0
  186. package/dist/interaction.js.map +1 -0
  187. package/dist/link/LinkAnchor.vue.d.cts +9 -0
  188. package/dist/link/LinkAnchor.vue.d.ts +9 -0
  189. package/dist/link/LinkLayer.vue.d.cts +22 -0
  190. package/dist/link/LinkLayer.vue.d.ts +22 -0
  191. package/dist/link/composables.d.cts +29 -0
  192. package/dist/link/composables.d.ts +29 -0
  193. package/dist/link.cjs +14 -0
  194. package/dist/link.cjs.map +1 -0
  195. package/dist/link.d.cts +11 -0
  196. package/dist/link.d.ts +11 -0
  197. package/dist/link.js +8 -0
  198. package/dist/link.js.map +1 -0
  199. package/dist/measurement.cjs +43 -0
  200. package/dist/measurement.cjs.map +1 -0
  201. package/dist/measurement.d.cts +51 -0
  202. package/dist/measurement.d.ts +51 -0
  203. package/dist/measurement.js +38 -0
  204. package/dist/measurement.js.map +1 -0
  205. package/dist/metadata.cjs +22 -0
  206. package/dist/metadata.cjs.map +1 -0
  207. package/dist/metadata.d.cts +31 -0
  208. package/dist/metadata.d.ts +31 -0
  209. package/dist/metadata.js +17 -0
  210. package/dist/metadata.js.map +1 -0
  211. package/dist/page-D9XIuLSj.js +16 -0
  212. package/dist/page-D9XIuLSj.js.map +1 -0
  213. package/dist/page-Doy4_Sdz.cjs +15 -0
  214. package/dist/page-Doy4_Sdz.cjs.map +1 -0
  215. package/dist/page-edit.cjs +15 -0
  216. package/dist/page-edit.cjs.map +1 -0
  217. package/dist/page-edit.d.cts +16 -0
  218. package/dist/page-edit.d.ts +16 -0
  219. package/dist/page-edit.js +10 -0
  220. package/dist/page-edit.js.map +1 -0
  221. package/dist/page-layers-c-CJYAUO.cjs +30 -0
  222. package/dist/page-layers-c-CJYAUO.cjs.map +1 -0
  223. package/dist/page-layers-rlh4-1qr.js +31 -0
  224. package/dist/page-layers-rlh4-1qr.js.map +1 -0
  225. package/dist/page-layers.d.cts +21 -0
  226. package/dist/page-layers.d.ts +21 -0
  227. package/dist/page-view/PageView.vue.d.cts +42 -0
  228. package/dist/page-view/PageView.vue.d.ts +42 -0
  229. package/dist/page-view.cjs +5 -0
  230. package/dist/page-view.cjs.map +1 -0
  231. package/dist/page-view.d.cts +10 -0
  232. package/dist/page-view.d.ts +10 -0
  233. package/dist/page-view.js +5 -0
  234. package/dist/page-view.js.map +1 -0
  235. package/dist/projector-CDZn1kh1.js +32 -0
  236. package/dist/projector-CDZn1kh1.js.map +1 -0
  237. package/dist/projector-Cf7879sx.cjs +31 -0
  238. package/dist/projector-Cf7879sx.cjs.map +1 -0
  239. package/dist/redaction.cjs +34 -0
  240. package/dist/redaction.cjs.map +1 -0
  241. package/dist/redaction.d.cts +44 -0
  242. package/dist/redaction.d.ts +44 -0
  243. package/dist/redaction.js +29 -0
  244. package/dist/redaction.js.map +1 -0
  245. package/dist/render/RenderLayer.vue.d.cts +23 -0
  246. package/dist/render/RenderLayer.vue.d.ts +23 -0
  247. package/dist/render/TileImage.vue.d.cts +13 -0
  248. package/dist/render/TileImage.vue.d.ts +13 -0
  249. package/dist/render/TilePlane.vue.d.cts +7 -0
  250. package/dist/render/TilePlane.vue.d.ts +7 -0
  251. package/dist/render.cjs +262 -0
  252. package/dist/render.cjs.map +1 -0
  253. package/dist/render.d.cts +16 -0
  254. package/dist/render.d.ts +16 -0
  255. package/dist/render.js +257 -0
  256. package/dist/render.js.map +1 -0
  257. package/dist/runtime/DocumentGate.vue.d.cts +24 -0
  258. package/dist/runtime/DocumentGate.vue.d.ts +24 -0
  259. package/dist/runtime/DocumentScope.vue.d.cts +16 -0
  260. package/dist/runtime/DocumentScope.vue.d.ts +16 -0
  261. package/dist/runtime/KernelProvider.vue.d.cts +17 -0
  262. package/dist/runtime/KernelProvider.vue.d.ts +17 -0
  263. package/dist/runtime/SvgShapes.vue.d.cts +7 -0
  264. package/dist/runtime/SvgShapes.vue.d.ts +7 -0
  265. package/dist/runtime/Viewer.vue.d.cts +57 -0
  266. package/dist/runtime/Viewer.vue.d.ts +57 -0
  267. package/dist/runtime/capabilities.d.cts +52 -0
  268. package/dist/runtime/capabilities.d.ts +52 -0
  269. package/dist/runtime/documents.d.cts +42 -0
  270. package/dist/runtime/documents.d.ts +42 -0
  271. package/dist/runtime/kernel.d.cts +36 -0
  272. package/dist/runtime/kernel.d.ts +36 -0
  273. package/dist/runtime/page.d.cts +15 -0
  274. package/dist/runtime/page.d.ts +15 -0
  275. package/dist/runtime/refs.d.cts +12 -0
  276. package/dist/runtime/refs.d.ts +12 -0
  277. package/dist/runtime/surface-box.d.cts +12 -0
  278. package/dist/runtime/surface-box.d.ts +12 -0
  279. package/dist/runtime.cjs +53 -0
  280. package/dist/runtime.cjs.map +1 -0
  281. package/dist/runtime.d.cts +24 -0
  282. package/dist/runtime.d.ts +24 -0
  283. package/dist/runtime.js +38 -0
  284. package/dist/runtime.js.map +1 -0
  285. package/dist/scope-BQA4toWB.cjs +17 -0
  286. package/dist/scope-BQA4toWB.cjs.map +1 -0
  287. package/dist/scope-BgdCqnYb.js +18 -0
  288. package/dist/scope-BgdCqnYb.js.map +1 -0
  289. package/dist/search/SearchLayer.vue.d.cts +17 -0
  290. package/dist/search/SearchLayer.vue.d.ts +17 -0
  291. package/dist/search/composables.d.cts +31 -0
  292. package/dist/search/composables.d.ts +31 -0
  293. package/dist/search.cjs +17 -0
  294. package/dist/search.cjs.map +1 -0
  295. package/dist/search.d.cts +10 -0
  296. package/dist/search.d.ts +10 -0
  297. package/dist/search.js +11 -0
  298. package/dist/search.js.map +1 -0
  299. package/dist/selection/SelectionClipboard.vue.d.cts +24 -0
  300. package/dist/selection/SelectionClipboard.vue.d.ts +24 -0
  301. package/dist/selection/SelectionHandles.vue.d.cts +8 -0
  302. package/dist/selection/SelectionHandles.vue.d.ts +8 -0
  303. package/dist/selection/SelectionLayer.vue.d.cts +3 -0
  304. package/dist/selection/SelectionLayer.vue.d.ts +3 -0
  305. package/dist/selection/SelectionMenu.vue.d.cts +23 -0
  306. package/dist/selection/SelectionMenu.vue.d.ts +23 -0
  307. package/dist/selection/composables.d.cts +24 -0
  308. package/dist/selection/composables.d.ts +24 -0
  309. package/dist/selection.cjs +24 -0
  310. package/dist/selection.cjs.map +1 -0
  311. package/dist/selection.d.cts +16 -0
  312. package/dist/selection.d.ts +16 -0
  313. package/dist/selection.js +15 -0
  314. package/dist/selection.js.map +1 -0
  315. package/dist/shell.cjs +72 -0
  316. package/dist/shell.cjs.map +1 -0
  317. package/dist/shell.d.cts +56 -0
  318. package/dist/shell.d.ts +56 -0
  319. package/dist/shell.js +67 -0
  320. package/dist/shell.js.map +1 -0
  321. package/dist/signature/composables.d.cts +39 -0
  322. package/dist/signature/composables.d.ts +39 -0
  323. package/dist/signature.cjs +16 -0
  324. package/dist/signature.cjs.map +1 -0
  325. package/dist/signature.d.cts +15 -0
  326. package/dist/signature.d.ts +15 -0
  327. package/dist/signature.js +10 -0
  328. package/dist/signature.js.map +1 -0
  329. package/dist/stage/PageSurface.vue.d.cts +29 -0
  330. package/dist/stage/PageSurface.vue.d.ts +29 -0
  331. package/dist/stage/Scrollbar.vue.d.cts +32 -0
  332. package/dist/stage/Scrollbar.vue.d.ts +32 -0
  333. package/dist/stage/Stage.vue.d.cts +44 -0
  334. package/dist/stage/Stage.vue.d.ts +44 -0
  335. package/dist/stage/StageScope.vue.d.cts +17 -0
  336. package/dist/stage/StageScope.vue.d.ts +17 -0
  337. package/dist/stage/composables.d.cts +41 -0
  338. package/dist/stage/composables.d.ts +41 -0
  339. package/dist/stage/scope.d.cts +12 -0
  340. package/dist/stage/scope.d.ts +12 -0
  341. package/dist/stage.cjs +21 -0
  342. package/dist/stage.cjs.map +1 -0
  343. package/dist/stage.d.cts +17 -0
  344. package/dist/stage.d.ts +17 -0
  345. package/dist/stage.js +15 -0
  346. package/dist/stage.js.map +1 -0
  347. package/dist/stamp.cjs +68 -0
  348. package/dist/stamp.cjs.map +1 -0
  349. package/dist/stamp.d.cts +61 -0
  350. package/dist/stamp.d.ts +61 -0
  351. package/dist/stamp.js +61 -0
  352. package/dist/stamp.js.map +1 -0
  353. package/dist/state-DZg8q3v6.js +52 -0
  354. package/dist/state-DZg8q3v6.js.map +1 -0
  355. package/dist/state-M22NDJQo.cjs +51 -0
  356. package/dist/state-M22NDJQo.cjs.map +1 -0
  357. package/dist/state.d.cts +32 -0
  358. package/dist/state.d.ts +32 -0
  359. package/dist/strip-BSDB39Xh.cjs +743 -0
  360. package/dist/strip-BSDB39Xh.cjs.map +1 -0
  361. package/dist/strip-C3wLonKB.js +744 -0
  362. package/dist/strip-C3wLonKB.js.map +1 -0
  363. package/dist/surface-box-B9oa4YoG.js +12 -0
  364. package/dist/surface-box-B9oa4YoG.js.map +1 -0
  365. package/dist/surface-box-C7EvUOXp.cjs +11 -0
  366. package/dist/surface-box-C7EvUOXp.cjs.map +1 -0
  367. package/dist/theme.d.cts +13 -0
  368. package/dist/theme.d.ts +13 -0
  369. package/dist/toolbar/DefaultCollapsed.vue.d.cts +9 -0
  370. package/dist/toolbar/DefaultCollapsed.vue.d.ts +9 -0
  371. package/dist/toolbar/DefaultCommand.vue.d.cts +8 -0
  372. package/dist/toolbar/DefaultCommand.vue.d.ts +8 -0
  373. package/dist/toolbar/DefaultGroupTrigger.vue.d.cts +9 -0
  374. package/dist/toolbar/DefaultGroupTrigger.vue.d.ts +9 -0
  375. package/dist/toolbar/DefaultOverflowMenu.vue.d.cts +9 -0
  376. package/dist/toolbar/DefaultOverflowMenu.vue.d.ts +9 -0
  377. package/dist/toolbar/DefaultOverflowTrigger.vue.d.cts +10 -0
  378. package/dist/toolbar/DefaultOverflowTrigger.vue.d.ts +10 -0
  379. package/dist/toolbar/Measured.vue.d.cts +21 -0
  380. package/dist/toolbar/Measured.vue.d.ts +21 -0
  381. package/dist/toolbar/NativeSlotSocket.vue.d.cts +22 -0
  382. package/dist/toolbar/NativeSlotSocket.vue.d.ts +22 -0
  383. package/dist/toolbar/Toolbar.vue.d.cts +82 -0
  384. package/dist/toolbar/Toolbar.vue.d.ts +82 -0
  385. package/dist/toolbar/ToolbarPart.vue.d.cts +42 -0
  386. package/dist/toolbar/ToolbarPart.vue.d.ts +42 -0
  387. package/dist/toolbar/paint.d.cts +3 -0
  388. package/dist/toolbar/paint.d.ts +3 -0
  389. package/dist/toolbar/strip.d.cts +14 -0
  390. package/dist/toolbar/strip.d.ts +14 -0
  391. package/dist/toolbar/views.d.cts +15 -0
  392. package/dist/toolbar/views.d.ts +15 -0
  393. package/dist/toolbar.cjs +27 -0
  394. package/dist/toolbar.cjs.map +1 -0
  395. package/dist/toolbar.d.cts +14 -0
  396. package/dist/toolbar.d.ts +14 -0
  397. package/dist/toolbar.js +12 -0
  398. package/dist/toolbar.js.map +1 -0
  399. package/dist/view-manager.cjs +22 -0
  400. package/dist/view-manager.cjs.map +1 -0
  401. package/dist/view-manager.d.cts +24 -0
  402. package/dist/view-manager.d.ts +24 -0
  403. package/dist/view-manager.js +17 -0
  404. package/dist/view-manager.js.map +1 -0
  405. package/package.json +169 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stamp.cjs","sources":["../src/stamp.ts"],"sourcesContent":["/**\n * @embedpdf/vue/stamp: the Vue view of `@embedpdf/plugin-stamp`.\n *\n * Thin by design: the plugin owns the libraries, their stamps and the cached\n * previews; this entry gives them to Vue as refs, and owns the one DOM\n * resource a picker needs, the object URL of a stamp's preview. Placing needs\n * no component here: an armed stamp rides the annotation plugin, whose\n * `<AnnotationLayer>` draws the ghost under the pointer.\n *\n * const stamp = useStamp();\n * const assets = useStampAssets(() => ({ libraryId: props.libraryId }));\n * const { armedAsset } = useStampState();\n * await stamp.armAsset(assetId); // the next click places it\n */\n\n// One line per feature: registration travels with the UI.\nexport * from '@embedpdf/plugin-stamp';\n// The browser store for `persistStampLibraries` / `restoreStampLibraries`\n// (structurally the plugin's `StampLibraryStore`), written once in `@embedpdf/web`.\nexport { indexedDbByteStore } from '@embedpdf/web';\nexport type { ByteStore } from '@embedpdf/web';\nimport { shallowRef, toValue, watch } from 'vue';\nimport type { MaybeRefOrGetter, Ref } from 'vue';\nimport { objectUrlOf } from '@embedpdf/web';\nimport { shallowEqual } from '@embedpdf/core';\nimport type { EventHook } from '@embedpdf/core';\nimport { StampToken, stampState } from '@embedpdf/plugin-stamp';\nimport type {\n StampAsset,\n StampAssetFilter,\n StampCapability,\n StampLibrary,\n StampLibraryFilter,\n} from '@embedpdf/plugin-stamp';\nimport {\n useCapability,\n useCapabilityEvent,\n useOptionalSelector,\n useSelector,\n} from './runtime/capabilities';\nimport { settingsComposable, stateComposable } from './state';\n\n/**\n * The stamp API. Libraries are shared by every document; the placing verbs\n * (`armAsset`, `placeAsset`, …) act on the nearest `<DocumentScope>`'s\n * document, else the active one. The object never changes, so keep it whole:\n * `stamp.armAsset(id)`.\n */\nexport function useStamp(): StampCapability {\n return useCapability(StampToken);\n}\n\n/** Subscribe to one stamp event while the component lives: `useStampEvent((stamp) => stamp.onLibraryChanged, handler)`. */\nexport function useStampEvent<Event>(\n select: (stamp: StampCapability) => EventHook<Event>,\n handler: (event: Event) => void,\n): void {\n useCapabilityEvent(StampToken, select, handler);\n}\n\n/**\n * The stamps' state for this component's document as refs: the armed stamp\n * (the page's State table, declared once in `stampState`). With a selector,\n * one ref that updates only when the value it picks changes.\n */\nexport const useStampState = stateComposable(stampState);\n\n/** The stamp settings (`assetEngine`, `previewWidth`, `dynamic`), with or without a document, as refs. Takes a selector. */\nexport const useStampSettings = settingsComposable(StampToken);\n\n/**\n * The libraries as a ref, optionally of one kind or several\n * (`{ kind: 'stamps' }`, `{ kind: ['stamps', 'legal-seals'] }`; a getter to\n * follow a prop). It updates when a library is added, renamed or removed.\n */\nexport function useStampLibraries(\n filter?: MaybeRefOrGetter<StampLibraryFilter | undefined>,\n): Readonly<Ref<readonly StampLibrary[]>> {\n // Every read is a new array: compared item by item, the ref updates only\n // when the libraries themselves change.\n return useSelector(StampToken, (stamp) => stamp.listLibraries(toValue(filter)), shallowEqual);\n}\n\n/**\n * The stamps as a ref: one library's (`{ libraryId }`), one kind's or\n * category's, or every stamp, in the order a picker shows them. Pass a getter\n * to follow a prop or a ref: `useStampAssets(() => ({ libraryId: library.value?.id }))`.\n */\nexport function useStampAssets(\n filter?: MaybeRefOrGetter<StampAssetFilter | undefined>,\n): Readonly<Ref<readonly StampAsset[]>> {\n // Compared item by item, like the libraries: every read is a new array.\n return useSelector(StampToken, (stamp) => stamp.listAssets(toValue(filter)), shallowEqual);\n}\n\n/**\n * An image URL for a stamp's cached preview (a gallery thumbnail), as a ref,\n * or null while there is none. Pass a getter to follow a prop:\n * `useStampAssetPreviewUrl(() => props.assetId)`.\n *\n * The plugin holds the preview's bytes; the URL is a DOM resource, so it is\n * made here and revoked when the asset changes or the component unmounts,\n * the same rule `<AnnotationLayer>` follows for the pictures it shows.\n */\nexport function useStampAssetPreviewUrl(\n assetId: MaybeRefOrGetter<string | null>,\n): Readonly<Ref<string | null>> {\n // The preview itself, read on every change: it follows the asset, and a\n // preview that arrives after the asset does.\n const preview = useOptionalSelector(\n StampToken,\n (stamp) => {\n const id = toValue(assetId);\n return id ? stamp.getAssetPreview(id) : null;\n },\n null,\n );\n const url = shallowRef<string | null>(null);\n watch(\n preview,\n (current, _previous, onCleanup) => {\n if (!current) {\n url.value = null;\n return;\n }\n const objectUrl = objectUrlOf(current);\n url.value = objectUrl.url;\n onCleanup(() => {\n objectUrl.revoke();\n url.value = null;\n });\n },\n { immediate: true },\n );\n return url;\n}\n"],"names":["useCapability","StampToken","useCapabilityEvent","stateComposable","stampState","settingsComposable","useSelector","toValue","shallowEqual","useOptionalSelector","shallowRef","watch","objectUrlOf"],"mappings":";;;;;;;;AAgDO,SAAS,WAA4B;AAC1C,SAAOA,aAAAA,cAAcC,YAAAA,UAAU;AACjC;AAGO,SAAS,cACd,QACA,SACM;AACNC,kCAAmBD,YAAAA,YAAY,QAAQ,OAAO;AAChD;AAOO,MAAM,gBAAgBE,MAAAA,gBAAgBC,YAAAA,UAAU;AAGhD,MAAM,mBAAmBC,MAAAA,mBAAmBJ,YAAAA,UAAU;AAOtD,SAAS,kBACd,QACwC;AAGxC,SAAOK,aAAAA,YAAYL,wBAAY,CAAC,UAAU,MAAM,cAAcM,YAAQ,MAAM,CAAC,GAAGC,iBAAY;AAC9F;AAOO,SAAS,eACd,QACsC;AAEtC,SAAOF,aAAAA,YAAYL,wBAAY,CAAC,UAAU,MAAM,WAAWM,YAAQ,MAAM,CAAC,GAAGC,iBAAY;AAC3F;AAWO,SAAS,wBACd,SAC8B;AAG9B,QAAM,UAAUC,aAAAA;AAAAA,IACdR,YAAAA;AAAAA,IACA,CAAC,UAAU;AACT,YAAM,KAAKM,IAAAA,QAAQ,OAAO;AAC1B,aAAO,KAAK,MAAM,gBAAgB,EAAE,IAAI;AAAA,IAC1C;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,MAAMG,IAAAA,WAA0B,IAAI;AAC1CC,MAAAA;AAAAA,IACE;AAAA,IACA,CAAC,SAAS,WAAW,cAAc;AACjC,UAAI,CAAC,SAAS;AACZ,YAAI,QAAQ;AACZ;AAAA,MACF;AACA,YAAM,YAAYC,IAAAA,YAAY,OAAO;AACrC,UAAI,QAAQ,UAAU;AACtB,gBAAU,MAAM;AACd,kBAAU,OAAA;AACV,YAAI,QAAQ;AAAA,MACd,CAAC;AAAA,IACH;AAAA,IACA,EAAE,WAAW,KAAA;AAAA,EAAK;AAEpB,SAAO;AACT;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @embedpdf/vue/stamp: the Vue view of `@embedpdf/plugin-stamp`.
3
+ *
4
+ * Thin by design: the plugin owns the libraries, their stamps and the cached
5
+ * previews; this entry gives them to Vue as refs, and owns the one DOM
6
+ * resource a picker needs, the object URL of a stamp's preview. Placing needs
7
+ * no component here: an armed stamp rides the annotation plugin, whose
8
+ * `<AnnotationLayer>` draws the ghost under the pointer.
9
+ *
10
+ * const stamp = useStamp();
11
+ * const assets = useStampAssets(() => ({ libraryId: props.libraryId }));
12
+ * const { armedAsset } = useStampState();
13
+ * await stamp.armAsset(assetId); // the next click places it
14
+ */
15
+ export * from '@embedpdf/plugin-stamp';
16
+ export { indexedDbByteStore } from '@embedpdf/web';
17
+ export type { ByteStore } from '@embedpdf/web';
18
+ import type { MaybeRefOrGetter, Ref } from 'vue';
19
+ import type { EventHook } from '@embedpdf/core';
20
+ import type { StampAsset, StampAssetFilter, StampCapability, StampLibrary, StampLibraryFilter } from '@embedpdf/plugin-stamp';
21
+ /**
22
+ * The stamp API. Libraries are shared by every document; the placing verbs
23
+ * (`armAsset`, `placeAsset`, …) act on the nearest `<DocumentScope>`'s
24
+ * document, else the active one. The object never changes, so keep it whole:
25
+ * `stamp.armAsset(id)`.
26
+ */
27
+ export declare function useStamp(): StampCapability;
28
+ /** Subscribe to one stamp event while the component lives: `useStampEvent((stamp) => stamp.onLibraryChanged, handler)`. */
29
+ export declare function useStampEvent<Event>(select: (stamp: StampCapability) => EventHook<Event>, handler: (event: Event) => void): void;
30
+ /**
31
+ * The stamps' state for this component's document as refs: the armed stamp
32
+ * (the page's State table, declared once in `stampState`). With a selector,
33
+ * one ref that updates only when the value it picks changes.
34
+ */
35
+ export declare const useStampState: import("./state.cjs").StateComposable<{
36
+ armedAsset: StampAsset | null;
37
+ }>;
38
+ /** The stamp settings (`assetEngine`, `previewWidth`, `dynamic`), with or without a document, as refs. Takes a selector. */
39
+ export declare const useStampSettings: import("./state.cjs").SettingsComposable<import("@embedpdf/plugin-stamp").StampSettings & object>;
40
+ /**
41
+ * The libraries as a ref, optionally of one kind or several
42
+ * (`{ kind: 'stamps' }`, `{ kind: ['stamps', 'legal-seals'] }`; a getter to
43
+ * follow a prop). It updates when a library is added, renamed or removed.
44
+ */
45
+ export declare function useStampLibraries(filter?: MaybeRefOrGetter<StampLibraryFilter | undefined>): Readonly<Ref<readonly StampLibrary[]>>;
46
+ /**
47
+ * The stamps as a ref: one library's (`{ libraryId }`), one kind's or
48
+ * category's, or every stamp, in the order a picker shows them. Pass a getter
49
+ * to follow a prop or a ref: `useStampAssets(() => ({ libraryId: library.value?.id }))`.
50
+ */
51
+ export declare function useStampAssets(filter?: MaybeRefOrGetter<StampAssetFilter | undefined>): Readonly<Ref<readonly StampAsset[]>>;
52
+ /**
53
+ * An image URL for a stamp's cached preview (a gallery thumbnail), as a ref,
54
+ * or null while there is none. Pass a getter to follow a prop:
55
+ * `useStampAssetPreviewUrl(() => props.assetId)`.
56
+ *
57
+ * The plugin holds the preview's bytes; the URL is a DOM resource, so it is
58
+ * made here and revoked when the asset changes or the component unmounts,
59
+ * the same rule `<AnnotationLayer>` follows for the pictures it shows.
60
+ */
61
+ export declare function useStampAssetPreviewUrl(assetId: MaybeRefOrGetter<string | null>): Readonly<Ref<string | null>>;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @embedpdf/vue/stamp: the Vue view of `@embedpdf/plugin-stamp`.
3
+ *
4
+ * Thin by design: the plugin owns the libraries, their stamps and the cached
5
+ * previews; this entry gives them to Vue as refs, and owns the one DOM
6
+ * resource a picker needs, the object URL of a stamp's preview. Placing needs
7
+ * no component here: an armed stamp rides the annotation plugin, whose
8
+ * `<AnnotationLayer>` draws the ghost under the pointer.
9
+ *
10
+ * const stamp = useStamp();
11
+ * const assets = useStampAssets(() => ({ libraryId: props.libraryId }));
12
+ * const { armedAsset } = useStampState();
13
+ * await stamp.armAsset(assetId); // the next click places it
14
+ */
15
+ export * from '@embedpdf/plugin-stamp';
16
+ export { indexedDbByteStore } from '@embedpdf/web';
17
+ export type { ByteStore } from '@embedpdf/web';
18
+ import type { MaybeRefOrGetter, Ref } from 'vue';
19
+ import type { EventHook } from '@embedpdf/core';
20
+ import type { StampAsset, StampAssetFilter, StampCapability, StampLibrary, StampLibraryFilter } from '@embedpdf/plugin-stamp';
21
+ /**
22
+ * The stamp API. Libraries are shared by every document; the placing verbs
23
+ * (`armAsset`, `placeAsset`, …) act on the nearest `<DocumentScope>`'s
24
+ * document, else the active one. The object never changes, so keep it whole:
25
+ * `stamp.armAsset(id)`.
26
+ */
27
+ export declare function useStamp(): StampCapability;
28
+ /** Subscribe to one stamp event while the component lives: `useStampEvent((stamp) => stamp.onLibraryChanged, handler)`. */
29
+ export declare function useStampEvent<Event>(select: (stamp: StampCapability) => EventHook<Event>, handler: (event: Event) => void): void;
30
+ /**
31
+ * The stamps' state for this component's document as refs: the armed stamp
32
+ * (the page's State table, declared once in `stampState`). With a selector,
33
+ * one ref that updates only when the value it picks changes.
34
+ */
35
+ export declare const useStampState: import("./state.js").StateComposable<{
36
+ armedAsset: StampAsset | null;
37
+ }>;
38
+ /** The stamp settings (`assetEngine`, `previewWidth`, `dynamic`), with or without a document, as refs. Takes a selector. */
39
+ export declare const useStampSettings: import("./state.js").SettingsComposable<import("@embedpdf/plugin-stamp").StampSettings & object>;
40
+ /**
41
+ * The libraries as a ref, optionally of one kind or several
42
+ * (`{ kind: 'stamps' }`, `{ kind: ['stamps', 'legal-seals'] }`; a getter to
43
+ * follow a prop). It updates when a library is added, renamed or removed.
44
+ */
45
+ export declare function useStampLibraries(filter?: MaybeRefOrGetter<StampLibraryFilter | undefined>): Readonly<Ref<readonly StampLibrary[]>>;
46
+ /**
47
+ * The stamps as a ref: one library's (`{ libraryId }`), one kind's or
48
+ * category's, or every stamp, in the order a picker shows them. Pass a getter
49
+ * to follow a prop or a ref: `useStampAssets(() => ({ libraryId: library.value?.id }))`.
50
+ */
51
+ export declare function useStampAssets(filter?: MaybeRefOrGetter<StampAssetFilter | undefined>): Readonly<Ref<readonly StampAsset[]>>;
52
+ /**
53
+ * An image URL for a stamp's cached preview (a gallery thumbnail), as a ref,
54
+ * or null while there is none. Pass a getter to follow a prop:
55
+ * `useStampAssetPreviewUrl(() => props.assetId)`.
56
+ *
57
+ * The plugin holds the preview's bytes; the URL is a DOM resource, so it is
58
+ * made here and revoked when the asset changes or the component unmounts,
59
+ * the same rule `<AnnotationLayer>` follows for the pictures it shows.
60
+ */
61
+ export declare function useStampAssetPreviewUrl(assetId: MaybeRefOrGetter<string | null>): Readonly<Ref<string | null>>;
package/dist/stamp.js ADDED
@@ -0,0 +1,61 @@
1
+ import { StampToken, stampState } from "@embedpdf/plugin-stamp";
2
+ export * from "@embedpdf/plugin-stamp";
3
+ import { objectUrlOf } from "@embedpdf/web";
4
+ import { indexedDbByteStore } from "@embedpdf/web";
5
+ import { shallowRef, watch, toValue } from "vue";
6
+ import { shallowEqual } from "@embedpdf/core";
7
+ import { a as useCapability, i as useOptionalSelector, j as useSelector, b as useCapabilityEvent } from "./capabilities-C7YzgPCX.js";
8
+ import { s as settingsComposable, a as stateComposable } from "./state-DZg8q3v6.js";
9
+ function useStamp() {
10
+ return useCapability(StampToken);
11
+ }
12
+ function useStampEvent(select, handler) {
13
+ useCapabilityEvent(StampToken, select, handler);
14
+ }
15
+ const useStampState = stateComposable(stampState);
16
+ const useStampSettings = settingsComposable(StampToken);
17
+ function useStampLibraries(filter) {
18
+ return useSelector(StampToken, (stamp) => stamp.listLibraries(toValue(filter)), shallowEqual);
19
+ }
20
+ function useStampAssets(filter) {
21
+ return useSelector(StampToken, (stamp) => stamp.listAssets(toValue(filter)), shallowEqual);
22
+ }
23
+ function useStampAssetPreviewUrl(assetId) {
24
+ const preview = useOptionalSelector(
25
+ StampToken,
26
+ (stamp) => {
27
+ const id = toValue(assetId);
28
+ return id ? stamp.getAssetPreview(id) : null;
29
+ },
30
+ null
31
+ );
32
+ const url = shallowRef(null);
33
+ watch(
34
+ preview,
35
+ (current, _previous, onCleanup) => {
36
+ if (!current) {
37
+ url.value = null;
38
+ return;
39
+ }
40
+ const objectUrl = objectUrlOf(current);
41
+ url.value = objectUrl.url;
42
+ onCleanup(() => {
43
+ objectUrl.revoke();
44
+ url.value = null;
45
+ });
46
+ },
47
+ { immediate: true }
48
+ );
49
+ return url;
50
+ }
51
+ export {
52
+ indexedDbByteStore,
53
+ useStamp,
54
+ useStampAssetPreviewUrl,
55
+ useStampAssets,
56
+ useStampEvent,
57
+ useStampLibraries,
58
+ useStampSettings,
59
+ useStampState
60
+ };
61
+ //# sourceMappingURL=stamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stamp.js","sources":["../src/stamp.ts"],"sourcesContent":["/**\n * @embedpdf/vue/stamp: the Vue view of `@embedpdf/plugin-stamp`.\n *\n * Thin by design: the plugin owns the libraries, their stamps and the cached\n * previews; this entry gives them to Vue as refs, and owns the one DOM\n * resource a picker needs, the object URL of a stamp's preview. Placing needs\n * no component here: an armed stamp rides the annotation plugin, whose\n * `<AnnotationLayer>` draws the ghost under the pointer.\n *\n * const stamp = useStamp();\n * const assets = useStampAssets(() => ({ libraryId: props.libraryId }));\n * const { armedAsset } = useStampState();\n * await stamp.armAsset(assetId); // the next click places it\n */\n\n// One line per feature: registration travels with the UI.\nexport * from '@embedpdf/plugin-stamp';\n// The browser store for `persistStampLibraries` / `restoreStampLibraries`\n// (structurally the plugin's `StampLibraryStore`), written once in `@embedpdf/web`.\nexport { indexedDbByteStore } from '@embedpdf/web';\nexport type { ByteStore } from '@embedpdf/web';\nimport { shallowRef, toValue, watch } from 'vue';\nimport type { MaybeRefOrGetter, Ref } from 'vue';\nimport { objectUrlOf } from '@embedpdf/web';\nimport { shallowEqual } from '@embedpdf/core';\nimport type { EventHook } from '@embedpdf/core';\nimport { StampToken, stampState } from '@embedpdf/plugin-stamp';\nimport type {\n StampAsset,\n StampAssetFilter,\n StampCapability,\n StampLibrary,\n StampLibraryFilter,\n} from '@embedpdf/plugin-stamp';\nimport {\n useCapability,\n useCapabilityEvent,\n useOptionalSelector,\n useSelector,\n} from './runtime/capabilities';\nimport { settingsComposable, stateComposable } from './state';\n\n/**\n * The stamp API. Libraries are shared by every document; the placing verbs\n * (`armAsset`, `placeAsset`, …) act on the nearest `<DocumentScope>`'s\n * document, else the active one. The object never changes, so keep it whole:\n * `stamp.armAsset(id)`.\n */\nexport function useStamp(): StampCapability {\n return useCapability(StampToken);\n}\n\n/** Subscribe to one stamp event while the component lives: `useStampEvent((stamp) => stamp.onLibraryChanged, handler)`. */\nexport function useStampEvent<Event>(\n select: (stamp: StampCapability) => EventHook<Event>,\n handler: (event: Event) => void,\n): void {\n useCapabilityEvent(StampToken, select, handler);\n}\n\n/**\n * The stamps' state for this component's document as refs: the armed stamp\n * (the page's State table, declared once in `stampState`). With a selector,\n * one ref that updates only when the value it picks changes.\n */\nexport const useStampState = stateComposable(stampState);\n\n/** The stamp settings (`assetEngine`, `previewWidth`, `dynamic`), with or without a document, as refs. Takes a selector. */\nexport const useStampSettings = settingsComposable(StampToken);\n\n/**\n * The libraries as a ref, optionally of one kind or several\n * (`{ kind: 'stamps' }`, `{ kind: ['stamps', 'legal-seals'] }`; a getter to\n * follow a prop). It updates when a library is added, renamed or removed.\n */\nexport function useStampLibraries(\n filter?: MaybeRefOrGetter<StampLibraryFilter | undefined>,\n): Readonly<Ref<readonly StampLibrary[]>> {\n // Every read is a new array: compared item by item, the ref updates only\n // when the libraries themselves change.\n return useSelector(StampToken, (stamp) => stamp.listLibraries(toValue(filter)), shallowEqual);\n}\n\n/**\n * The stamps as a ref: one library's (`{ libraryId }`), one kind's or\n * category's, or every stamp, in the order a picker shows them. Pass a getter\n * to follow a prop or a ref: `useStampAssets(() => ({ libraryId: library.value?.id }))`.\n */\nexport function useStampAssets(\n filter?: MaybeRefOrGetter<StampAssetFilter | undefined>,\n): Readonly<Ref<readonly StampAsset[]>> {\n // Compared item by item, like the libraries: every read is a new array.\n return useSelector(StampToken, (stamp) => stamp.listAssets(toValue(filter)), shallowEqual);\n}\n\n/**\n * An image URL for a stamp's cached preview (a gallery thumbnail), as a ref,\n * or null while there is none. Pass a getter to follow a prop:\n * `useStampAssetPreviewUrl(() => props.assetId)`.\n *\n * The plugin holds the preview's bytes; the URL is a DOM resource, so it is\n * made here and revoked when the asset changes or the component unmounts,\n * the same rule `<AnnotationLayer>` follows for the pictures it shows.\n */\nexport function useStampAssetPreviewUrl(\n assetId: MaybeRefOrGetter<string | null>,\n): Readonly<Ref<string | null>> {\n // The preview itself, read on every change: it follows the asset, and a\n // preview that arrives after the asset does.\n const preview = useOptionalSelector(\n StampToken,\n (stamp) => {\n const id = toValue(assetId);\n return id ? stamp.getAssetPreview(id) : null;\n },\n null,\n );\n const url = shallowRef<string | null>(null);\n watch(\n preview,\n (current, _previous, onCleanup) => {\n if (!current) {\n url.value = null;\n return;\n }\n const objectUrl = objectUrlOf(current);\n url.value = objectUrl.url;\n onCleanup(() => {\n objectUrl.revoke();\n url.value = null;\n });\n },\n { immediate: true },\n );\n return url;\n}\n"],"names":[],"mappings":";;;;;;;;AAgDO,SAAS,WAA4B;AAC1C,SAAO,cAAc,UAAU;AACjC;AAGO,SAAS,cACd,QACA,SACM;AACN,qBAAmB,YAAY,QAAQ,OAAO;AAChD;AAOO,MAAM,gBAAgB,gBAAgB,UAAU;AAGhD,MAAM,mBAAmB,mBAAmB,UAAU;AAOtD,SAAS,kBACd,QACwC;AAGxC,SAAO,YAAY,YAAY,CAAC,UAAU,MAAM,cAAc,QAAQ,MAAM,CAAC,GAAG,YAAY;AAC9F;AAOO,SAAS,eACd,QACsC;AAEtC,SAAO,YAAY,YAAY,CAAC,UAAU,MAAM,WAAW,QAAQ,MAAM,CAAC,GAAG,YAAY;AAC3F;AAWO,SAAS,wBACd,SAC8B;AAG9B,QAAM,UAAU;AAAA,IACd;AAAA,IACA,CAAC,UAAU;AACT,YAAM,KAAK,QAAQ,OAAO;AAC1B,aAAO,KAAK,MAAM,gBAAgB,EAAE,IAAI;AAAA,IAC1C;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,MAAM,WAA0B,IAAI;AAC1C;AAAA,IACE;AAAA,IACA,CAAC,SAAS,WAAW,cAAc;AACjC,UAAI,CAAC,SAAS;AACZ,YAAI,QAAQ;AACZ;AAAA,MACF;AACA,YAAM,YAAY,YAAY,OAAO;AACrC,UAAI,QAAQ,UAAU;AACtB,gBAAU,MAAM;AACd,kBAAU,OAAA;AACV,YAAI,QAAQ;AAAA,MACd,CAAC;AAAA,IACH;AAAA,IACA,EAAE,WAAW,KAAA;AAAA,EAAK;AAEpB,SAAO;AACT;"}
@@ -0,0 +1,52 @@
1
+ import { shallowEqual } from "@embedpdf/core";
2
+ import { computed, watch } from "vue";
3
+ import { g as useKernelValue, e as useDocumentScope } from "./capabilities-C7YzgPCX.js";
4
+ function fieldRefs(whole, keys = Object.keys(whole.value)) {
5
+ return Object.freeze(
6
+ Object.fromEntries(
7
+ keys.map((key) => [key, computed(() => whole.value[key])])
8
+ )
9
+ );
10
+ }
11
+ function stateComposable(declaration) {
12
+ function useDeclaredState(select) {
13
+ const scope = useDocumentScope();
14
+ const { ensure } = declaration;
15
+ if (ensure) {
16
+ const capability = useKernelValue(
17
+ (kernel) => kernel.tryCapability(declaration.token, scope.value ?? void 0)
18
+ );
19
+ watch(
20
+ capability,
21
+ (current) => {
22
+ if (current) ensure(current).catch(() => {
23
+ });
24
+ },
25
+ { immediate: true }
26
+ );
27
+ }
28
+ const value = useKernelValue((kernel) => {
29
+ const capability = kernel.tryCapability(declaration.token, scope.value ?? void 0);
30
+ const state = capability ? declaration.read(capability) : declaration.empty;
31
+ return select ? select(state) : state;
32
+ }, shallowEqual);
33
+ return select ? value : fieldRefs(value, Object.keys(declaration.empty));
34
+ }
35
+ return useDeclaredState;
36
+ }
37
+ function settingsComposable(token) {
38
+ function useSettings(select) {
39
+ const value = useKernelValue((kernel) => {
40
+ const settings = kernel.settingsOf(token).getSettings();
41
+ return select ? select(settings) : settings;
42
+ }, shallowEqual);
43
+ return select ? value : fieldRefs(value);
44
+ }
45
+ return useSettings;
46
+ }
47
+ export {
48
+ stateComposable as a,
49
+ fieldRefs as f,
50
+ settingsComposable as s
51
+ };
52
+ //# sourceMappingURL=state-DZg8q3v6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-DZg8q3v6.js","sources":["../src/runtime/refs.ts","../src/state.ts"],"sourcesContent":["/**\n * A record read as refs, one per field: what a state or settings composable\n * returns without a selector, so `const { zoomLevel } = useStageState()` keeps\n * `zoomLevel` reactive after destructuring, and a template reads it unwrapped.\n */\nimport { computed } from 'vue';\nimport type { Ref } from 'vue';\n\n/** One read-only ref per field of `Value`. */\nexport type FieldRefs<Value extends object> = {\n readonly [Key in keyof Value]-?: Readonly<Ref<Value[Key]>>;\n};\n\n/**\n * One computed ref per field of `whole`. Each field updates only when its own\n * value changes. The fields are the ones `whole` has now (`keys` names them\n * when they are known without a value): records read this way keep their\n * fields.\n */\nexport function fieldRefs<Value extends object>(\n whole: Readonly<Ref<Value>>,\n keys: readonly string[] = Object.keys(whole.value),\n): FieldRefs<Value> {\n return Object.freeze(\n Object.fromEntries(\n keys.map((key) => [key, computed(() => (whole.value as Record<string, unknown>)[key])]),\n ),\n ) as unknown as FieldRefs<Value>;\n}\n","/**\n * Declared state and settings as Vue composables. A plugin declares its state\n * once with `defineState` and its settings once in its definition (both in\n * `@embedpdf/core`), and its Vue bindings are one line each:\n *\n * export const useSearchState = stateComposable(searchState);\n * export const useSearchSettings = settingsComposable(SearchToken);\n *\n * Without a selector they return one ref per field; with one, a single ref.\n */\nimport { shallowEqual } from '@embedpdf/core';\nimport type { CapabilityToken, SettingsOf, StateDeclaration } from '@embedpdf/core';\nimport { watch, type Ref } from 'vue';\nimport { useDocumentScope, useKernelValue } from './runtime/kernel';\nimport { fieldRefs } from './runtime/refs';\nimport type { FieldRefs } from './runtime/refs';\n\nexport type { FieldRefs } from './runtime/refs';\n\n/** A declared state's composable: refs for every field, or one ref for the value `select` picks. */\nexport interface StateComposable<State extends object> {\n (): FieldRefs<State>;\n <Selected>(select: (state: State) => Selected): Readonly<Ref<Selected>>;\n}\n\n/** A plugin's settings composable: refs for every setting, or one ref for the value `select` picks. */\nexport interface SettingsComposable<Settings extends object> {\n (): FieldRefs<Settings>;\n <Selected>(select: (settings: Settings) => Selected): Readonly<Ref<Selected>>;\n}\n\n/**\n * Turn a state declaration into its composable. It reads this subtree's\n * document (the nearest `<DocumentScope>`, else the active one) and reads the\n * declaration's `empty` while that document is missing or not ready, so it\n * works anywhere. A ref updates only when its value changes: the state, or the\n * value `select` picks from it, is compared with {@link shallowEqual}. State the\n * plugin loads on demand (the declaration's `ensure`) loads once a ready\n * document's capability is in scope, for every document the composable reads.\n */\nexport function stateComposable<Capability, State extends object>(\n declaration: StateDeclaration<Capability, State>,\n): StateComposable<State> {\n function useDeclaredState(): FieldRefs<State>;\n function useDeclaredState<Selected>(select: (state: State) => Selected): Readonly<Ref<Selected>>;\n function useDeclaredState<Selected>(select?: (state: State) => Selected) {\n const scope = useDocumentScope();\n const { ensure } = declaration;\n if (ensure) {\n const capability = useKernelValue((kernel) =>\n kernel.tryCapability(declaration.token, scope.value ?? undefined),\n );\n // The state says when the load fails (its status), so the rejection has nothing to add.\n watch(\n capability,\n (current) => {\n if (current) ensure(current).catch(() => {});\n },\n { immediate: true },\n );\n }\n // Resolved on every read: a document that closes reads as `empty` from\n // then on, never through its closed capability.\n const value = useKernelValue((kernel) => {\n const capability = kernel.tryCapability(declaration.token, scope.value ?? undefined);\n const state = capability ? declaration.read(capability) : declaration.empty;\n return select ? select(state) : state;\n }, shallowEqual);\n return select\n ? value\n : fieldRefs(value as Readonly<Ref<State>>, Object.keys(declaration.empty));\n }\n return useDeclaredState;\n}\n\n/**\n * Turn a plugin's token into its settings composable. A plugin's settings\n * belong to the plugin as the app registered it, not to a document, so it\n * reads them through the kernel (`kernel.settingsOf`): it works before the\n * first document opens, and every document shows the same settings. A token\n * whose plugin isn't installed, or has no settings, throws: a setup mistake.\n */\nexport function settingsComposable<Capability>(\n token: CapabilityToken<Capability>,\n): SettingsComposable<SettingsOf<Capability> & object> {\n type Settings = SettingsOf<Capability> & object;\n function useSettings(): FieldRefs<Settings>;\n function useSettings<Selected>(select: (settings: Settings) => Selected): Readonly<Ref<Selected>>;\n function useSettings<Selected>(select?: (settings: Settings) => Selected) {\n const value = useKernelValue((kernel) => {\n const settings = kernel.settingsOf(token).getSettings() as Settings;\n return select ? select(settings) : settings;\n }, shallowEqual);\n return select ? value : fieldRefs(value as Readonly<Ref<Settings>>);\n }\n return useSettings;\n}\n"],"names":[],"mappings":";;;AAmBO,SAAS,UACd,OACA,OAA0B,OAAO,KAAK,MAAM,KAAK,GAC/B;AAClB,SAAO,OAAO;AAAA,IACZ,OAAO;AAAA,MACL,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,MAAO,MAAM,MAAkC,GAAG,CAAC,CAAC,CAAC;AAAA,IAAA;AAAA,EACxF;AAEJ;ACYO,SAAS,gBACd,aACwB;AAGxB,WAAS,iBAA2B,QAAqC;AACvE,UAAM,QAAQ,iBAAA;AACd,UAAM,EAAE,WAAW;AACnB,QAAI,QAAQ;AACV,YAAM,aAAa;AAAA,QAAe,CAAC,WACjC,OAAO,cAAc,YAAY,OAAO,MAAM,SAAS,MAAS;AAAA,MAAA;AAGlE;AAAA,QACE;AAAA,QACA,CAAC,YAAY;AACX,cAAI,QAAS,QAAO,OAAO,EAAE,MAAM,MAAM;AAAA,UAAC,CAAC;AAAA,QAC7C;AAAA,QACA,EAAE,WAAW,KAAA;AAAA,MAAK;AAAA,IAEtB;AAGA,UAAM,QAAQ,eAAe,CAAC,WAAW;AACvC,YAAM,aAAa,OAAO,cAAc,YAAY,OAAO,MAAM,SAAS,MAAS;AACnF,YAAM,QAAQ,aAAa,YAAY,KAAK,UAAU,IAAI,YAAY;AACtE,aAAO,SAAS,OAAO,KAAK,IAAI;AAAA,IAClC,GAAG,YAAY;AACf,WAAO,SACH,QACA,UAAU,OAA+B,OAAO,KAAK,YAAY,KAAK,CAAC;AAAA,EAC7E;AACA,SAAO;AACT;AASO,SAAS,mBACd,OACqD;AAIrD,WAAS,YAAsB,QAA2C;AACxE,UAAM,QAAQ,eAAe,CAAC,WAAW;AACvC,YAAM,WAAW,OAAO,WAAW,KAAK,EAAE,YAAA;AAC1C,aAAO,SAAS,OAAO,QAAQ,IAAI;AAAA,IACrC,GAAG,YAAY;AACf,WAAO,SAAS,QAAQ,UAAU,KAAgC;AAAA,EACpE;AACA,SAAO;AACT;"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ const core = require("@embedpdf/core");
3
+ const vue = require("vue");
4
+ const capabilities = require("./capabilities-DVNJmgy7.cjs");
5
+ function fieldRefs(whole, keys = Object.keys(whole.value)) {
6
+ return Object.freeze(
7
+ Object.fromEntries(
8
+ keys.map((key) => [key, vue.computed(() => whole.value[key])])
9
+ )
10
+ );
11
+ }
12
+ function stateComposable(declaration) {
13
+ function useDeclaredState(select) {
14
+ const scope = capabilities.useDocumentScope();
15
+ const { ensure } = declaration;
16
+ if (ensure) {
17
+ const capability = capabilities.useKernelValue(
18
+ (kernel) => kernel.tryCapability(declaration.token, scope.value ?? void 0)
19
+ );
20
+ vue.watch(
21
+ capability,
22
+ (current) => {
23
+ if (current) ensure(current).catch(() => {
24
+ });
25
+ },
26
+ { immediate: true }
27
+ );
28
+ }
29
+ const value = capabilities.useKernelValue((kernel) => {
30
+ const capability = kernel.tryCapability(declaration.token, scope.value ?? void 0);
31
+ const state = capability ? declaration.read(capability) : declaration.empty;
32
+ return select ? select(state) : state;
33
+ }, core.shallowEqual);
34
+ return select ? value : fieldRefs(value, Object.keys(declaration.empty));
35
+ }
36
+ return useDeclaredState;
37
+ }
38
+ function settingsComposable(token) {
39
+ function useSettings(select) {
40
+ const value = capabilities.useKernelValue((kernel) => {
41
+ const settings = kernel.settingsOf(token).getSettings();
42
+ return select ? select(settings) : settings;
43
+ }, core.shallowEqual);
44
+ return select ? value : fieldRefs(value);
45
+ }
46
+ return useSettings;
47
+ }
48
+ exports.fieldRefs = fieldRefs;
49
+ exports.settingsComposable = settingsComposable;
50
+ exports.stateComposable = stateComposable;
51
+ //# sourceMappingURL=state-M22NDJQo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-M22NDJQo.cjs","sources":["../src/runtime/refs.ts","../src/state.ts"],"sourcesContent":["/**\n * A record read as refs, one per field: what a state or settings composable\n * returns without a selector, so `const { zoomLevel } = useStageState()` keeps\n * `zoomLevel` reactive after destructuring, and a template reads it unwrapped.\n */\nimport { computed } from 'vue';\nimport type { Ref } from 'vue';\n\n/** One read-only ref per field of `Value`. */\nexport type FieldRefs<Value extends object> = {\n readonly [Key in keyof Value]-?: Readonly<Ref<Value[Key]>>;\n};\n\n/**\n * One computed ref per field of `whole`. Each field updates only when its own\n * value changes. The fields are the ones `whole` has now (`keys` names them\n * when they are known without a value): records read this way keep their\n * fields.\n */\nexport function fieldRefs<Value extends object>(\n whole: Readonly<Ref<Value>>,\n keys: readonly string[] = Object.keys(whole.value),\n): FieldRefs<Value> {\n return Object.freeze(\n Object.fromEntries(\n keys.map((key) => [key, computed(() => (whole.value as Record<string, unknown>)[key])]),\n ),\n ) as unknown as FieldRefs<Value>;\n}\n","/**\n * Declared state and settings as Vue composables. A plugin declares its state\n * once with `defineState` and its settings once in its definition (both in\n * `@embedpdf/core`), and its Vue bindings are one line each:\n *\n * export const useSearchState = stateComposable(searchState);\n * export const useSearchSettings = settingsComposable(SearchToken);\n *\n * Without a selector they return one ref per field; with one, a single ref.\n */\nimport { shallowEqual } from '@embedpdf/core';\nimport type { CapabilityToken, SettingsOf, StateDeclaration } from '@embedpdf/core';\nimport { watch, type Ref } from 'vue';\nimport { useDocumentScope, useKernelValue } from './runtime/kernel';\nimport { fieldRefs } from './runtime/refs';\nimport type { FieldRefs } from './runtime/refs';\n\nexport type { FieldRefs } from './runtime/refs';\n\n/** A declared state's composable: refs for every field, or one ref for the value `select` picks. */\nexport interface StateComposable<State extends object> {\n (): FieldRefs<State>;\n <Selected>(select: (state: State) => Selected): Readonly<Ref<Selected>>;\n}\n\n/** A plugin's settings composable: refs for every setting, or one ref for the value `select` picks. */\nexport interface SettingsComposable<Settings extends object> {\n (): FieldRefs<Settings>;\n <Selected>(select: (settings: Settings) => Selected): Readonly<Ref<Selected>>;\n}\n\n/**\n * Turn a state declaration into its composable. It reads this subtree's\n * document (the nearest `<DocumentScope>`, else the active one) and reads the\n * declaration's `empty` while that document is missing or not ready, so it\n * works anywhere. A ref updates only when its value changes: the state, or the\n * value `select` picks from it, is compared with {@link shallowEqual}. State the\n * plugin loads on demand (the declaration's `ensure`) loads once a ready\n * document's capability is in scope, for every document the composable reads.\n */\nexport function stateComposable<Capability, State extends object>(\n declaration: StateDeclaration<Capability, State>,\n): StateComposable<State> {\n function useDeclaredState(): FieldRefs<State>;\n function useDeclaredState<Selected>(select: (state: State) => Selected): Readonly<Ref<Selected>>;\n function useDeclaredState<Selected>(select?: (state: State) => Selected) {\n const scope = useDocumentScope();\n const { ensure } = declaration;\n if (ensure) {\n const capability = useKernelValue((kernel) =>\n kernel.tryCapability(declaration.token, scope.value ?? undefined),\n );\n // The state says when the load fails (its status), so the rejection has nothing to add.\n watch(\n capability,\n (current) => {\n if (current) ensure(current).catch(() => {});\n },\n { immediate: true },\n );\n }\n // Resolved on every read: a document that closes reads as `empty` from\n // then on, never through its closed capability.\n const value = useKernelValue((kernel) => {\n const capability = kernel.tryCapability(declaration.token, scope.value ?? undefined);\n const state = capability ? declaration.read(capability) : declaration.empty;\n return select ? select(state) : state;\n }, shallowEqual);\n return select\n ? value\n : fieldRefs(value as Readonly<Ref<State>>, Object.keys(declaration.empty));\n }\n return useDeclaredState;\n}\n\n/**\n * Turn a plugin's token into its settings composable. A plugin's settings\n * belong to the plugin as the app registered it, not to a document, so it\n * reads them through the kernel (`kernel.settingsOf`): it works before the\n * first document opens, and every document shows the same settings. A token\n * whose plugin isn't installed, or has no settings, throws: a setup mistake.\n */\nexport function settingsComposable<Capability>(\n token: CapabilityToken<Capability>,\n): SettingsComposable<SettingsOf<Capability> & object> {\n type Settings = SettingsOf<Capability> & object;\n function useSettings(): FieldRefs<Settings>;\n function useSettings<Selected>(select: (settings: Settings) => Selected): Readonly<Ref<Selected>>;\n function useSettings<Selected>(select?: (settings: Settings) => Selected) {\n const value = useKernelValue((kernel) => {\n const settings = kernel.settingsOf(token).getSettings() as Settings;\n return select ? select(settings) : settings;\n }, shallowEqual);\n return select ? value : fieldRefs(value as Readonly<Ref<Settings>>);\n }\n return useSettings;\n}\n"],"names":["computed","useDocumentScope","useKernelValue","watch","shallowEqual"],"mappings":";;;;AAmBO,SAAS,UACd,OACA,OAA0B,OAAO,KAAK,MAAM,KAAK,GAC/B;AAClB,SAAO,OAAO;AAAA,IACZ,OAAO;AAAA,MACL,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAKA,aAAS,MAAO,MAAM,MAAkC,GAAG,CAAC,CAAC,CAAC;AAAA,IAAA;AAAA,EACxF;AAEJ;ACYO,SAAS,gBACd,aACwB;AAGxB,WAAS,iBAA2B,QAAqC;AACvE,UAAM,QAAQC,aAAAA,iBAAA;AACd,UAAM,EAAE,WAAW;AACnB,QAAI,QAAQ;AACV,YAAM,aAAaC,aAAAA;AAAAA,QAAe,CAAC,WACjC,OAAO,cAAc,YAAY,OAAO,MAAM,SAAS,MAAS;AAAA,MAAA;AAGlEC,UAAAA;AAAAA,QACE;AAAA,QACA,CAAC,YAAY;AACX,cAAI,QAAS,QAAO,OAAO,EAAE,MAAM,MAAM;AAAA,UAAC,CAAC;AAAA,QAC7C;AAAA,QACA,EAAE,WAAW,KAAA;AAAA,MAAK;AAAA,IAEtB;AAGA,UAAM,QAAQD,4BAAe,CAAC,WAAW;AACvC,YAAM,aAAa,OAAO,cAAc,YAAY,OAAO,MAAM,SAAS,MAAS;AACnF,YAAM,QAAQ,aAAa,YAAY,KAAK,UAAU,IAAI,YAAY;AACtE,aAAO,SAAS,OAAO,KAAK,IAAI;AAAA,IAClC,GAAGE,KAAAA,YAAY;AACf,WAAO,SACH,QACA,UAAU,OAA+B,OAAO,KAAK,YAAY,KAAK,CAAC;AAAA,EAC7E;AACA,SAAO;AACT;AASO,SAAS,mBACd,OACqD;AAIrD,WAAS,YAAsB,QAA2C;AACxE,UAAM,QAAQF,4BAAe,CAAC,WAAW;AACvC,YAAM,WAAW,OAAO,WAAW,KAAK,EAAE,YAAA;AAC1C,aAAO,SAAS,OAAO,QAAQ,IAAI;AAAA,IACrC,GAAGE,KAAAA,YAAY;AACf,WAAO,SAAS,QAAQ,UAAU,KAAgC;AAAA,EACpE;AACA,SAAO;AACT;;;;"}
@@ -0,0 +1,32 @@
1
+ import type { CapabilityToken, SettingsOf, StateDeclaration } from '@embedpdf/core';
2
+ import { type Ref } from 'vue';
3
+ import type { FieldRefs } from './runtime/refs.cjs';
4
+ export type { FieldRefs } from './runtime/refs.cjs';
5
+ /** A declared state's composable: refs for every field, or one ref for the value `select` picks. */
6
+ export interface StateComposable<State extends object> {
7
+ (): FieldRefs<State>;
8
+ <Selected>(select: (state: State) => Selected): Readonly<Ref<Selected>>;
9
+ }
10
+ /** A plugin's settings composable: refs for every setting, or one ref for the value `select` picks. */
11
+ export interface SettingsComposable<Settings extends object> {
12
+ (): FieldRefs<Settings>;
13
+ <Selected>(select: (settings: Settings) => Selected): Readonly<Ref<Selected>>;
14
+ }
15
+ /**
16
+ * Turn a state declaration into its composable. It reads this subtree's
17
+ * document (the nearest `<DocumentScope>`, else the active one) and reads the
18
+ * declaration's `empty` while that document is missing or not ready, so it
19
+ * works anywhere. A ref updates only when its value changes: the state, or the
20
+ * value `select` picks from it, is compared with {@link shallowEqual}. State the
21
+ * plugin loads on demand (the declaration's `ensure`) loads once a ready
22
+ * document's capability is in scope, for every document the composable reads.
23
+ */
24
+ export declare function stateComposable<Capability, State extends object>(declaration: StateDeclaration<Capability, State>): StateComposable<State>;
25
+ /**
26
+ * Turn a plugin's token into its settings composable. A plugin's settings
27
+ * belong to the plugin as the app registered it, not to a document, so it
28
+ * reads them through the kernel (`kernel.settingsOf`): it works before the
29
+ * first document opens, and every document shows the same settings. A token
30
+ * whose plugin isn't installed, or has no settings, throws: a setup mistake.
31
+ */
32
+ export declare function settingsComposable<Capability>(token: CapabilityToken<Capability>): SettingsComposable<SettingsOf<Capability> & object>;
@@ -0,0 +1,32 @@
1
+ import type { CapabilityToken, SettingsOf, StateDeclaration } from '@embedpdf/core';
2
+ import { type Ref } from 'vue';
3
+ import type { FieldRefs } from './runtime/refs.js';
4
+ export type { FieldRefs } from './runtime/refs.js';
5
+ /** A declared state's composable: refs for every field, or one ref for the value `select` picks. */
6
+ export interface StateComposable<State extends object> {
7
+ (): FieldRefs<State>;
8
+ <Selected>(select: (state: State) => Selected): Readonly<Ref<Selected>>;
9
+ }
10
+ /** A plugin's settings composable: refs for every setting, or one ref for the value `select` picks. */
11
+ export interface SettingsComposable<Settings extends object> {
12
+ (): FieldRefs<Settings>;
13
+ <Selected>(select: (settings: Settings) => Selected): Readonly<Ref<Selected>>;
14
+ }
15
+ /**
16
+ * Turn a state declaration into its composable. It reads this subtree's
17
+ * document (the nearest `<DocumentScope>`, else the active one) and reads the
18
+ * declaration's `empty` while that document is missing or not ready, so it
19
+ * works anywhere. A ref updates only when its value changes: the state, or the
20
+ * value `select` picks from it, is compared with {@link shallowEqual}. State the
21
+ * plugin loads on demand (the declaration's `ensure`) loads once a ready
22
+ * document's capability is in scope, for every document the composable reads.
23
+ */
24
+ export declare function stateComposable<Capability, State extends object>(declaration: StateDeclaration<Capability, State>): StateComposable<State>;
25
+ /**
26
+ * Turn a plugin's token into its settings composable. A plugin's settings
27
+ * belong to the plugin as the app registered it, not to a document, so it
28
+ * reads them through the kernel (`kernel.settingsOf`): it works before the
29
+ * first document opens, and every document shows the same settings. A token
30
+ * whose plugin isn't installed, or has no settings, throws: a setup mistake.
31
+ */
32
+ export declare function settingsComposable<Capability>(token: CapabilityToken<Capability>): SettingsComposable<SettingsOf<Capability> & object>;