@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 @@
1
+ {"version":3,"file":"FormLayer.vue_vue_type_script_setup_true_lang-BA0_VwFc.cjs","sources":["../src/form/composables.ts","../src/form/widget-box.ts","../src/form/ButtonControl.vue","../src/form/FormFocusRing.vue","../src/form/ComboControl.vue","../src/form/FieldPictures.vue","../src/form/NativeListBox.vue","../src/form/ListControl.vue","../src/form/SignatureControl.vue","../src/form/TextControl.vue","../src/form/ToggleControl.vue","../src/form/FormLayer.vue"],"sourcesContent":["/**\n * The form composables for app code: `useForm()` (the API), `useFormEvent()`,\n * the state and the settings as refs, and `useFormValue()` for one field. And\n * what the controls of `<FormLayer>` share: the colors the viewer draws fields\n * with, and a widget's click running its action.\n */\nimport { computed, toValue } from 'vue';\nimport type { MaybeRefOrGetter, Ref } from 'vue';\nimport type { EventHook } from '@embedpdf/core';\nimport type { AnnotationRef } from '@embedpdf/plugin-annotation/contract';\nimport { FormToken, formState } from '@embedpdf/plugin-form';\nimport type { FormCapability, FormFieldRef, FormFieldValue } from '@embedpdf/plugin-form';\n// Activating a widget from the layer is a host call.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport { formColorsOf } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useCapability, useCapabilityEvent, useOptionalSelector } from '../runtime/capabilities';\nimport { useViewerSettings } from '../runtime/documents';\nimport { settingsComposable, stateComposable } from '../state';\n\n/**\n * The form API for the document in scope: reading, filling, form data and\n * building. The object never changes, so it's safe to keep in a closure; keep\n * it whole (`form.setValue(…)`), since a member taken out of it once stays the\n * one of that moment.\n */\nexport function useForm(): FormCapability {\n return useCapability(FormToken);\n}\n\n/** Subscribe to one form event while the component lives: `useFormEvent((form) => form.onValueChanged, handler)`. */\nexport function useFormEvent<Event>(\n select: (form: FormCapability) => EventHook<Event>,\n handler: (event: Event) => void,\n): void {\n useCapabilityEvent(FormToken, select, handler);\n}\n\n/**\n * The form's state as refs: every field (`fields`), whether it's read\n * (`status`), what kind of form the document has (`formKind`), and the field\n * of the selected widget in design mode (`selectedField`), declared once in\n * `formState`. With a selector, one ref that updates only when the value it\n * picks changes. Empty without a document.\n */\nexport const useFormState = stateComposable(formState);\n\n/**\n * The form settings (`validation`, `focus`, `fields`) as refs, or one ref for\n * the value `select` picks. They belong to the plugin, so they read without a\n * document; change them with `useForm().updateSettings()`.\n */\nexport const useFormSettings = settingsComposable(FormToken);\n\n/**\n * One field's value, in the shape `setValue()` takes, or `null`: a ref that\n * updates only when that field's value changes (the plugin keeps one value\n * object per field while it stays the same). `field` may be a ref or a\n * getter, and the ref follows it. `null` without a document.\n */\nexport function useFormValue(\n field: MaybeRefOrGetter<FormFieldRef>,\n): Readonly<Ref<FormFieldValue | null>> {\n return useOptionalSelector(FormToken, (form) => form.getValue(toValue(field)), null);\n}\n\n// ── what the controls of <FormLayer> share ───────────────────────────────────\n\n/**\n * The colors the viewer draws fields with: the form settings over the\n * viewer's accent, each behind its `--epdf-form-*` CSS variable.\n */\nexport function useFormColors(): Readonly<Ref<FormColors>> {\n const accent = useViewerSettings((settings) => settings.accent);\n const focus = useFormSettings((settings) => settings.focus);\n const fields = useFormSettings((settings) => settings.fields);\n return computed(() => formColorsOf({ focus: focus.value, fields: fields.value }, accent.value));\n}\n\n/**\n * A click on a widget runs its `/A` action. ISO 32000 puts the activate\n * action on the widget, whatever its field, and many forms ship \"buttons\" as\n * read-only text fields with an `/A` that Acrobat runs; a widget without one\n * is inert. `widget` is read at the click, so it is the item's current one.\n */\nexport function useWidgetActivation(widget: () => AnnotationRef | null): () => void {\n const form = useCapability(FormHostToken);\n return () => {\n const target = widget();\n if (target) void form.activateWidget(target);\n };\n}\n","/**\n * The positioned box every control of `<FormLayer>` sits in: where the widget\n * is on the page, the widget's event surface, and the edge a field without a\n * border of its own gets, so people see where to fill in. A composable rather\n * than a component, so each control's template shows its whole box: the\n * toggle's box is its control (a role, a tab stop, keys), the others hold a\n * native control.\n */\nimport { computed, ref, watch } from 'vue';\nimport type { CSSProperties, Ref } from 'vue';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\n// The widget's PDF events go to the plugin's host lens.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport {\n bindWidgetEvents,\n isolatePointerDown,\n rectInPixels,\n widgetBoxStyleOf,\n} from '@embedpdf/web';\nimport type { FormColors, PixelRect } from '@embedpdf/web';\nimport { useCapability } from '../runtime/capabilities';\nimport { usePage } from '../runtime/page';\n\n/** A control's box: bind `element` with `ref`, and `style` on the same element. */\nexport interface WidgetBox {\n /** The box element, for the template's `ref`. */\n readonly element: Ref<HTMLDivElement | null>;\n /** Where the widget is on the page, in view px. */\n readonly frame: Readonly<Ref<PixelRect>>;\n /** The box's place, and its edge when the field has no border of its own. */\n readonly style: Readonly<Ref<CSSProperties>>;\n}\n\n/**\n * The box of one widget. `edge: false` leaves out the edge for controls that\n * draw their own (a list box) or never have one (a button).\n *\n * The box keeps every press that starts in it from the page below: the Stage\n * listens natively on an ancestor, and a press reaching it would start the\n * active tool's gesture or end an edit as a click outside. Vue's listeners are\n * native too, but the box stops it with `isolatePointerDown`, the same call\n * every framework's form layer makes. The widget's pointer and focus events\n * (its `/AA` actions: enter, exit, down, up, focus, blur) go to the form\n * plugin from native listeners on the box (`bindWidgetEvents`), never the\n * control inside: \"may edit this field\" and \"may receive PDF action events\"\n * are different rights, and a session that may not fill still sees hover\n * tooltips. Its own `pointerdown` listener sits on the same element as the\n * isolation, so the stopped press still reaches the field's \"mouse down\"\n * action. Focus is `focusin`/`focusout`, so a control's own blur (where a\n * text field starts its commit) runs before the box sends \"blur\", and a blur\n * script sees the committed value.\n */\nexport function useWidgetBox(\n item: () => FormWidgetItem,\n colors: () => FormColors,\n options: { edge?: boolean } = {},\n): WidgetBox {\n const page = usePage();\n const form = useCapability(FormHostToken);\n const element = ref<HTMLDivElement | null>(null);\n const edge = options.edge ?? true;\n\n watch(\n element,\n (box, _previous, onCleanup) => {\n if (!box) return;\n const release = isolatePointerDown(box);\n const unbind = bindWidgetEvents(box, (event) => {\n // Read at the event: a widget the engine has just placed gets its address later.\n const { fieldRef, annotationRef } = item();\n if (annotationRef) form.notifyWidgetEvent(fieldRef, annotationRef, event);\n });\n onCleanup(() => {\n release();\n unbind();\n });\n },\n { immediate: true, flush: 'post' },\n );\n\n const frame = computed(() => rectInPixels(item().box, page.value.transform));\n const style = computed(\n (): CSSProperties => widgetBoxStyleOf(item(), frame.value, colors(), { edge }),\n );\n\n return { element, frame, style };\n}\n","<!--\n A push button: a native click target over its picture that runs its action.\n A button never has an edge.\n-->\n<script setup lang=\"ts\">\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\nimport { FORM_CONTROL_FILL } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useWidgetActivation } from './composables';\nimport { useWidgetBox } from './widget-box';\n\nconst props = defineProps<{\n item: Extract<FormWidgetItem, { control: 'button' }>;\n colors: FormColors;\n}>();\n\nconst activate = useWidgetActivation(() => props.item.annotationRef);\nconst { element: box, style: boxStyle } = useWidgetBox(\n () => props.item,\n () => props.colors,\n { edge: false },\n);\n</script>\n\n<template>\n <div ref=\"box\" :style=\"[boxStyle, { cursor: item.disabled ? 'default' : 'pointer' }]\">\n <!-- The box is the event surface; a disabled button must not swallow the pointer. -->\n <button\n type=\"button\"\n :aria-label=\"item.label\"\n :disabled=\"item.disabled\"\n :style=\"{\n ...FORM_CONTROL_FILL,\n padding: '0',\n border: '0',\n background: 'transparent',\n cursor: 'inherit',\n pointerEvents: item.disabled ? 'none' : 'auto',\n }\"\n @click=\"activate\"\n />\n </div>\n</template>\n","<!--\n The focus ring of a field, painted above the field's picture and its\n see-through native control. An inset outline on the box itself would sit\n under an opaque child, so rectangular checkboxes and dropdowns would look\n unfocused while they are active in the native Tab order.\n-->\n<script setup lang=\"ts\">\nimport { formFocusRingStyleOf } from '@embedpdf/web';\n\ndefineProps<{\n visible: boolean;\n /** The ring's CSS color: the form's `focus.color` setting, behind its CSS variable. */\n color: string;\n}>();\n</script>\n\n<template>\n <span\n v-if=\"visible\"\n aria-hidden=\"true\"\n data-embedpdf-form-focus-ring=\"\"\n :style=\"formFocusRingStyleOf(color)\"\n />\n</template>\n","<!--\n A dropdown: an invisible native <select> over the field's picture. The\n browser owns the dropdown, the engine the resting pixels. The select is made\n again whenever the field's selection changes (its `key`), so it opens on the\n field's value.\n-->\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\n// Writes from the layer go through the host lens, like every control's.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport { FORM_CONTROL_FILL } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useCapability } from '../runtime/capabilities';\nimport FormFocusRing from './FormFocusRing.vue';\nimport { useWidgetActivation } from './composables';\nimport { useWidgetBox } from './widget-box';\n\nconst props = defineProps<{\n item: Extract<FormWidgetItem, { control: 'choice' }>;\n colors: FormColors;\n}>();\n\nconst form = useCapability(FormHostToken);\nconst activate = useWidgetActivation(() => props.item.annotationRef);\nconst { element: box, style: boxStyle } = useWidgetBox(\n () => props.item,\n () => props.colors,\n);\nconst focused = ref(false);\n\nconst selectionKey = computed(() => props.item.selected.join('\\0'));\n\nfunction onChange(event: Event): void {\n const value = (event.currentTarget as HTMLSelectElement).value;\n void form.setValue(props.item.fieldRef, { value: value || null });\n}\n</script>\n\n<template>\n <div ref=\"box\" :style=\"boxStyle\" @click=\"activate\">\n <select\n :key=\"selectionKey\"\n :value=\"item.selected[0] ?? ''\"\n :aria-label=\"item.label\"\n :disabled=\"item.disabled\"\n :style=\"{\n ...FORM_CONTROL_FILL,\n opacity: 0,\n cursor: item.disabled ? 'default' : 'pointer',\n ...(item.disabled ? { pointerEvents: 'none' as const } : {}),\n }\"\n @focus=\"focused = true\"\n @blur=\"focused = false\"\n @change=\"onChange\"\n >\n <option v-if=\"item.selected.length === 0\" value=\"\" />\n <option v-for=\"(option, index) in item.options\" :key=\"index\" :value=\"option.value\">\n {{ option.label }}\n </option>\n </select>\n <FormFocusRing :visible=\"focused\" :color=\"colors.focus\" />\n </div>\n</template>\n","<!--\n The page's fields as they look now. Each widget shows its picture, as the engine draws it (the\n form plugin's, every state loaded, so a check box shows its new state at once), or the painter's\n drawing while its look is pending or its picture is of an older version (`pictureOrPainting`): a\n value, a calculation, a restyle shows at once. Hidden widgets aren't drawn.\n-->\n<script setup lang=\"ts\">\nimport { computed, onUnmounted, shallowRef, watch } from 'vue';\nimport { annotationKey, shallowEqual } from '@embedpdf/core';\nimport { MITER_LIMIT } from '@embedpdf/core-annotation';\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport type { ShownWidget } from '@embedpdf/plugin-form/contract/host';\nimport { RenderToken } from '@embedpdf/plugin-render/contract/host';\nimport {\n createShownUrls,\n loadAppearanceUrls,\n pictureOrPainting,\n rectInPixels,\n shownAppearance,\n svgShapesOf,\n type AppearanceUrl,\n type PixelRect,\n type SvgShape,\n} from '@embedpdf/web';\nimport { useOptionalCapability, useOptionalSelector } from '../runtime/capabilities';\nimport { usePage } from '../runtime/page';\nimport SvgShapes from '../runtime/SvgShapes.vue';\n\nconst NO_WIDGETS: readonly ShownWidget[] = Object.freeze([]);\n\n/** A widget as the template draws it: its picture, or the painter's shapes in its box. */\ntype ShownLook = { key: string; frame: PixelRect } & (\n | { kind: 'picture'; url: string }\n | { kind: 'painting'; viewBox: string; shapes: SvgShape[] }\n);\n\nconst page = usePage();\nconst form = useOptionalCapability(FormHostToken);\n// The same list until a widget on this page changes.\nconst widgets = useOptionalSelector(\n FormHostToken,\n (form) => form.listShownWidgets(page.value.ref),\n NO_WIDGETS,\n shallowEqual,\n);\n// Loaded again when one of the page's widgets is drawn again, and at appearance-scale crossings.\nconst epoch = useOptionalSelector(\n FormHostToken,\n (form) => form.getAppearanceEpoch(page.value.ref),\n '',\n);\nconst scale = useOptionalSelector(\n RenderToken,\n (lens) => lens.getAppearanceScale(page.value.transform.renderScale),\n 0,\n);\n\n// `null` until the page's first pictures arrive.\nconst urls = shallowRef<Record<string, AppearanceUrl> | null>(null);\n// The pictures shown stay valid until the next ones are shown.\nconst shown = createShownUrls();\nonUnmounted(() => shown.release());\nwatch(\n [form, () => page.value.ref, scale, epoch],\n ([host, pageRef, at], _previous, onCleanup) => {\n if (!host || !at) return;\n onCleanup(\n loadAppearanceUrls(\n shown,\n (signal) => host.renderAppearances(pageRef, at, signal),\n annotationKey,\n (loaded) => (urls.value = loaded),\n ),\n );\n },\n { immediate: true },\n);\n\nconst looks = computed(() =>\n widgets.value.flatMap((widget): ShownLook[] => {\n const key = annotationKey(widget.ref);\n const look = pictureOrPainting({\n pending: widget.pending,\n picture: urls.value && shownAppearance(urls.value, key, widget.appearanceState),\n version: widget.pictureVersion,\n loaded: urls.value !== null,\n paint: () => form.value?.getWidgetPainting(widget.ref) ?? null,\n });\n if (!look) return [];\n if (look.kind === 'picture') {\n return [\n {\n kind: 'picture',\n key,\n url: look.picture.url,\n frame: rectInPixels(look.picture.box, page.value.transform),\n },\n ];\n }\n const { x, y, width, height } = widget.rect;\n return [\n {\n kind: 'painting',\n key,\n viewBox: `${x} ${y} ${width} ${height}`,\n shapes: svgShapesOf(look.painting.scene, { miterLimit: MITER_LIMIT }),\n frame: rectInPixels(widget.rect, page.value.transform),\n },\n ];\n }),\n);\n</script>\n\n<template>\n <template v-for=\"look in looks\" :key=\"look.key\">\n <img\n v-if=\"look.kind === 'picture'\"\n :src=\"look.url\"\n alt=\"\"\n draggable=\"false\"\n :style=\"{\n position: 'absolute',\n left: `${look.frame.left}px`,\n top: `${look.frame.top}px`,\n width: `${look.frame.width}px`,\n height: `${look.frame.height}px`,\n // A global `img { max-width: 100% }` reset would clamp it.\n maxWidth: 'none',\n maxHeight: 'none',\n pointerEvents: 'none',\n }\"\n />\n <svg\n v-else\n :viewBox=\"look.viewBox\"\n :style=\"{\n position: 'absolute',\n left: `${look.frame.left}px`,\n top: `${look.frame.top}px`,\n width: `${look.frame.width}px`,\n height: `${look.frame.height}px`,\n overflow: 'visible',\n pointerEvents: 'none',\n }\"\n >\n <SvgShapes :shapes=\"look.shapes\" />\n </svg>\n </template>\n</template>\n","<!--\n A PDF list box as a visible native <select>. A list box needs one owner for\n its pixels, hit-testing and scrolling: a baked picture under an invisible\n select can't give that, since the browser and the PDF would each keep their\n own top row. This control is never re-created, so its scroll position stays\n where the user left it. While a write is on its way it shows the user's\n choice (`@embedpdf/web`'s `createOptimisticSelection`), and it follows the\n engine's selection when that changes. Its `style` falls through to the\n <select>.\n-->\n<script setup lang=\"ts\">\nimport { onUnmounted, ref, shallowRef, watch } from 'vue';\nimport { createOptimisticSelection, isolateWheel, showSelectedOptions } from '@embedpdf/web';\n\nexport interface NativeListBoxOption {\n label: string;\n value: string;\n}\n\nconst props = defineProps<{\n /** The accessible name: the field's tooltip, else its full name. */\n label: string;\n disabled: boolean;\n multi: boolean;\n options: readonly NativeListBoxOption[];\n /** The engine's selection. */\n selected: readonly string[];\n /**\n * Writes a choice. A function rather than an event, because its promise\n * matters: a write that fails puts the engine's selection back.\n */\n onSelect: (values: string[]) => void | Promise<unknown>;\n}>();\n\nconst emit = defineEmits<{ focus: []; blur: [] }>();\n\nconst selection = createOptimisticSelection(props.selected);\nconst shown = shallowRef(selection.get());\nonUnmounted(selection.subscribe(() => (shown.value = selection.get())));\nwatch(\n () => props.selected,\n (values) => selection.setConfirmed(values),\n);\n\nconst control = ref<HTMLSelectElement | null>(null);\n\n// The Stage's wheel handler lives on an ancestor and prevents the default to\n// pan or zoom the page. Stop at the list, so the browser scrolls it instead.\nwatch(\n control,\n (element, _previous, onCleanup) => {\n if (element) onCleanup(isolateWheel(element));\n },\n { immediate: true, flush: 'post' },\n);\n\n// What the control shows, set on its options (`showSelectedOptions`): a\n// `:value` binding can't hold several values.\nwatch(\n [control, shown, () => props.options],\n ([element, values]) => {\n if (element) showSelectedOptions(element, values);\n },\n { immediate: true, flush: 'post' },\n);\n\nfunction onChange(event: Event): void {\n const element = event.currentTarget as HTMLSelectElement;\n selection.choose(\n Array.from(element.selectedOptions).map((option) => option.value),\n props.onSelect,\n );\n}\n</script>\n\n<template>\n <select\n ref=\"control\"\n :aria-label=\"label\"\n :multiple=\"multi\"\n :size=\"Math.max(2, options.length)\"\n :disabled=\"disabled\"\n @focus=\"emit('focus')\"\n @blur=\"emit('blur')\"\n @change=\"onChange\"\n >\n <option v-for=\"(option, index) in options\" :key=\"index\" :value=\"option.value\">\n {{ option.label }}\n </option>\n </select>\n</template>\n","<!--\n A list: a visible native list box in the field's own look, the form\n settings' colors where it has none (`@embedpdf/web`'s `listBoxStyleOf`). It\n draws its own border, so the box adds no edge.\n-->\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\n// Writes from the layer go through the host lens, like every control's.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport { listBoxControlStyleOf } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useCapability } from '../runtime/capabilities';\nimport FormFocusRing from './FormFocusRing.vue';\nimport NativeListBox from './NativeListBox.vue';\nimport { useWidgetActivation } from './composables';\nimport { useWidgetBox } from './widget-box';\n\nconst props = defineProps<{\n item: Extract<FormWidgetItem, { control: 'choice' }>;\n colors: FormColors;\n}>();\n\nconst form = useCapability(FormHostToken);\nconst activate = useWidgetActivation(() => props.item.annotationRef);\nconst {\n element: box,\n frame,\n style: boxStyle,\n} = useWidgetBox(\n () => props.item,\n () => props.colors,\n { edge: false },\n);\nconst focused = ref(false);\n\nconst select = (values: string[]) =>\n form.setValue(props.item.fieldRef, { selectedValues: values });\n\nconst listStyle = computed(() => listBoxControlStyleOf(props.item, frame.value, props.colors));\n</script>\n\n<template>\n <div ref=\"box\" :style=\"boxStyle\" @click=\"activate\">\n <NativeListBox\n :label=\"item.label\"\n :disabled=\"item.disabled\"\n :multi=\"item.multi\"\n :options=\"item.options\"\n :selected=\"item.selected\"\n :on-select=\"select\"\n :style=\"listStyle\"\n @focus=\"focused = true\"\n @blur=\"focused = false\"\n />\n <FormFocusRing :visible=\"focused\" :color=\"colors.focus\" />\n </div>\n</template>\n","<!--\n A signature field. With the signature plugin, an empty field is \"sign here\"\n (a click makes it the target the next mark goes to), and a signed one asks\n your UI to show its details. Without it, the field is only its picture.\n-->\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\nimport { SignatureToken } from '@embedpdf/plugin-signature/contract';\nimport { FORM_CONTROL_FILL } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useOptionalCapability, useOptionalSelector } from '../runtime/capabilities';\nimport { useWidgetBox } from './widget-box';\n\nconst props = defineProps<{\n item: Extract<FormWidgetItem, { control: 'signature' }>;\n colors: FormColors;\n}>();\n\nconst { element: box, style: boxStyle } = useWidgetBox(\n () => props.item,\n () => props.colors,\n);\nconst signature = useOptionalCapability(SignatureToken);\n// The signature plugin knows best whether it's signed (it reads again after\n// every new version); the field's own value is the fallback.\nconst known = useOptionalSelector(\n SignatureToken,\n (capability) => capability.getSignature(props.item.fieldRef)?.signed ?? null,\n null,\n);\nconst signed = computed(() => known.value ?? props.item.signed);\nconst actionable = computed(\n () => signature.value !== null && (signed.value || !props.item.disabled),\n);\n\nfunction onClick(): void {\n const plugin = signature.value;\n if (!plugin) return;\n if (signed.value) plugin.requestInspection(props.item.fieldRef);\n else plugin.setTarget(props.item.fieldRef);\n}\n</script>\n\n<template>\n <div ref=\"box\" :style=\"[boxStyle, { cursor: actionable ? 'pointer' : 'default' }]\">\n <button\n v-if=\"actionable\"\n type=\"button\"\n :aria-label=\"item.label\"\n :data-signed=\"signed ? '' : undefined\"\n :style=\"{\n ...FORM_CONTROL_FILL,\n padding: '0',\n border: '0',\n background: 'transparent',\n cursor: 'inherit',\n }\"\n @click=\"onClick\"\n />\n </div>\n</template>\n","<!--\n A text box: the field's picture at rest, an editor in the field's own font\n while focused. The editor is always mounted, see-through at rest: the DOM is\n the focus manager, so Tab reaches every field. Typing drafts (the plugin\n keeps the draft, so a download writes it), blur or Enter commits, Escape\n puts the value back: `@embedpdf/web`'s `createTextFieldEditor`.\n-->\n<script setup lang=\"ts\">\nimport { computed, onUnmounted, shallowRef, watch, watchEffect } from 'vue';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\n// The draft calls are the host lens's.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport { createFontMounts, createTextFieldEditor, textFieldEditorStyleOf } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useCapability } from '../runtime/capabilities';\nimport { useWidgetActivation } from './composables';\nimport { useWidgetBox } from './widget-box';\n\nconst props = defineProps<{\n item: Extract<FormWidgetItem, { control: 'text' }>;\n colors: FormColors;\n}>();\n\nconst form = useCapability(FormHostToken);\nconst activate = useWidgetActivation(() => props.item.annotationRef);\nconst { element: box, frame, style: boxStyle } = useWidgetBox(\n () => props.item,\n () => props.colors,\n);\n\n// One editing policy per field: the layer keys this control by the field and\n// its widget, so the field stays the same for the control's life.\nconst editor = createTextFieldEditor(form, props.item.fieldRef, props.item.value);\nconst state = shallowRef(editor.getState());\nonUnmounted(editor.subscribe(() => (state.value = editor.getState())));\n// Take the field's value whenever it changes under us; the editor keeps what's\n// typed until the edit ends.\nwatch(\n () => props.item.value,\n (value) => editor.setValue(value),\n);\n\n// The text being typed, where the engine will draw it, in its face.\nconst layout = computed(() =>\n props.item.annotationRef\n ? form.getTextEditorLayout(props.item.annotationRef, state.value.draft)\n : null,\n);\nconst mounts = createFontMounts();\nonUnmounted(() => mounts.release());\nwatchEffect(() => {\n if (layout.value) mounts.mount([layout.value.program]);\n});\n\nconst editorStyle = computed(() =>\n textFieldEditorStyleOf(props.item, frame.value, props.colors, state.value.focused, layout.value),\n);\n\nconst onInput = (event: Event) =>\n editor.input((event.target as HTMLInputElement | HTMLTextAreaElement).value);\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (editor.keyDown(event.key, props.item.multiline)) {\n (event.currentTarget as HTMLElement).blur();\n }\n}\n</script>\n\n<template>\n <!--\n A click runs the widget's action too, as in Acrobat: the editor's focus\n click bubbles here, a read-only field's lands here directly.\n -->\n <div ref=\"box\" :style=\"boxStyle\" @click=\"activate\">\n <textarea\n v-if=\"item.multiline\"\n :value=\"state.draft\"\n :maxlength=\"item.maxLength ?? undefined\"\n :aria-label=\"item.label\"\n :disabled=\"item.disabled\"\n :style=\"editorStyle\"\n @focus=\"editor.focus\"\n @input=\"onInput\"\n @blur=\"editor.blur\"\n @keydown=\"onKeydown\"\n />\n <input\n v-else\n :type=\"item.password ? 'password' : 'text'\"\n :value=\"state.draft\"\n :maxlength=\"item.maxLength ?? undefined\"\n :aria-label=\"item.label\"\n :disabled=\"item.disabled\"\n :style=\"editorStyle\"\n @focus=\"editor.focus\"\n @input=\"onInput\"\n @blur=\"editor.blur\"\n @keydown=\"onKeydown\"\n />\n </div>\n</template>\n","<!--\n A checkbox or a radio button: the field's picture is the control, so the box\n itself is the checkbox (its role, its tab stop, its keys). A click, Space or\n Enter writes the toggled value, then runs the widget's action (Acrobat's\n order): `@embedpdf/web`'s `pressToggle`.\n-->\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\n// Writes from the layer go through the host lens, like every control's.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport { pressToggle } from '@embedpdf/web';\nimport type { FormColors } from '@embedpdf/web';\nimport { useCapability } from '../runtime/capabilities';\nimport FormFocusRing from './FormFocusRing.vue';\nimport { useWidgetActivation } from './composables';\nimport { useWidgetBox } from './widget-box';\n\nconst props = defineProps<{\n item: Extract<FormWidgetItem, { control: 'toggle' }>;\n colors: FormColors;\n}>();\n\nconst form = useCapability(FormHostToken);\nconst activate = useWidgetActivation(() => props.item.annotationRef);\nconst { element: box, style: boxStyle } = useWidgetBox(\n () => props.item,\n () => props.colors,\n);\nconst focused = ref(false);\n\nconst press = () => pressToggle(form, props.item, activate);\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (event.key !== ' ' && event.key !== 'Enter') return;\n event.preventDefault();\n press();\n}\n</script>\n\n<template>\n <div\n ref=\"box\"\n :role=\"item.kind === 'checkbox' ? 'checkbox' : 'radio'\"\n :aria-checked=\"item.checked\"\n :aria-label=\"item.label\"\n :tabindex=\"item.disabled ? -1 : 0\"\n :style=\"[boxStyle, { cursor: item.disabled ? 'default' : 'pointer', outline: 'none' }]\"\n @click=\"press\"\n @keydown=\"onKeydown\"\n @focus=\"focused = true\"\n @blur=\"focused = false\"\n >\n <FormFocusRing :visible=\"focused\" :color=\"colors.focus\" />\n </div>\n</template>\n","<!--\n <FormLayer>: the form's fields on one page, painted as the engine draws them\n (their values, borders and fonts), with real HTML controls people fill them\n in with, with or without the annotation plugin. While it's on the page, the\n <RenderLayer> leaves the fields out of the page's picture. The controls add\n what people interact with on top of the pictures:\n\n text → the picture at rest; focus shows an editor in the field's font.\n toggle → the picture is the control; a click writes the toggled value.\n combo → an invisible native <select> over the picture.\n list → a visible native <select>: one surface owns the rows, the\n keyboard and the scrolling.\n button → a native click target over the picture that runs its action.\n signature → \"sign here\", or the signed field's details, with the\n signature plugin.\n\n The controls show while the active tool fills forms (the `pointer` and `pan`\n tools do), and stand down in design mode, where fields are boxes you select\n and move. What the viewer draws itself (the focus ring, the edge of a field\n without a border, the editor) takes its colors from the form settings, which\n the `--epdf-form-*` CSS variables override. The colors, the field looks, the\n boxes' and controls' styles, and the toggle, text-field and list-box\n policies are `@embedpdf/web`'s, the same for every framework.\n-->\n<script setup lang=\"ts\">\nimport { computed, watch } from 'vue';\nimport { shallowEqual } from '@embedpdf/core';\nimport type { FormWidgetItem } from '@embedpdf/plugin-form';\n// Loading a page's widgets and listing them as controls are host reads.\nimport { FormToken as FormHostToken } from '@embedpdf/plugin-form/contract/host';\nimport { InteractionToken } from '@embedpdf/plugin-interaction/contract/host';\nimport { usePaintsPagePart } from '../page-layers';\nimport { useOptionalCapability, useOptionalSelector } from '../runtime/capabilities';\nimport { usePage } from '../runtime/page';\nimport ButtonControl from './ButtonControl.vue';\nimport ComboControl from './ComboControl.vue';\nimport FieldPictures from './FieldPictures.vue';\nimport ListControl from './ListControl.vue';\nimport SignatureControl from './SignatureControl.vue';\nimport TextControl from './TextControl.vue';\nimport ToggleControl from './ToggleControl.vue';\nimport { useFormColors } from './composables';\n\nconst NO_WIDGETS: readonly FormWidgetItem[] = Object.freeze([]);\n\nconst page = usePage();\nconst form = useOptionalCapability(FormHostToken);\n// While it's here with the form plugin, the page's picture leaves the fields to it.\nusePaintsPagePart(\n computed(() => (form.value ? page.value.ref : null)),\n 'formFields',\n);\nconst colors = useFormColors();\nconst active = useOptionalSelector(\n InteractionToken,\n (interaction) => interaction.activeToolEnables('form-fill'),\n false,\n);\n// The same list until a widget on this page changes.\nconst items = useOptionalSelector(\n FormHostToken,\n (lens) => lens.listWidgets(page.value.ref),\n NO_WIDGETS,\n shallowEqual,\n);\n\n// The page's widgets are read when the layer comes to it.\nwatch(\n [form, () => page.value.ref],\n ([lens, pageRef]) => {\n if (lens) void lens.ensureLoaded(pageRef);\n },\n { immediate: true },\n);\n\n/** One control per widget of a field: a radio group has a widget per button. */\nconst keyOf = (item: FormWidgetItem) => `${item.key}:${item.annotObjectNumber}`;\n</script>\n\n<template>\n <div :style=\"{ position: 'absolute', inset: '0', pointerEvents: 'none' }\">\n <FieldPictures />\n <template v-for=\"item in active ? items : []\" :key=\"keyOf(item)\">\n <TextControl v-if=\"item.control === 'text'\" :item=\"item\" :colors=\"colors\" />\n <ToggleControl v-else-if=\"item.control === 'toggle'\" :item=\"item\" :colors=\"colors\" />\n <ListControl\n v-else-if=\"item.control === 'choice' && item.kind === 'list'\"\n :item=\"item\"\n :colors=\"colors\"\n />\n <ComboControl v-else-if=\"item.control === 'choice'\" :item=\"item\" :colors=\"colors\" />\n <ButtonControl v-else-if=\"item.control === 'button'\" :item=\"item\" :colors=\"colors\" />\n <SignatureControl v-else-if=\"item.control === 'signature'\" :item=\"item\" :colors=\"colors\" />\n </template>\n </div>\n</template>\n"],"names":["useCapability","FormToken","useCapabilityEvent","stateComposable","formState","settingsComposable","useOptionalSelector","toValue","useViewerSettings","computed","formColorsOf","FormHostToken","page","usePage","ref","watch","isolatePointerDown","bindWidgetEvents","rectInPixels","widgetBoxStyleOf","_createElementBlock","_normalizeStyle","_unref","_createElementVNode","FORM_CONTROL_FILL","formFocusRingStyleOf","_openBlock","_hoisted_2","_Fragment","_toDisplayString","_createVNode","FormFocusRing","useOptionalCapability","form","shallowEqual","RenderToken","shallowRef","createShownUrls","onUnmounted","host","loadAppearanceUrls","annotationKey","pictureOrPainting","shownAppearance","svgShapesOf","MITER_LIMIT","_renderList","SvgShapes","createOptimisticSelection","isolateWheel","showSelectedOptions","listBoxControlStyleOf","NativeListBox","SignatureToken","createTextFieldEditor","state","createFontMounts","watchEffect","textFieldEditorStyleOf","pressToggle","usePaintsPagePart","InteractionToken","FieldPictures","_createBlock","TextControl","ToggleControl","ListControl","ComboControl","ButtonControl","SignatureControl"],"mappings":"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"}