legalesign-document-viewer 0.9.21 → 0.9.22

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 (479) hide show
  1. package/dist/cjs/{i18n-2j78quax.js → i18n-Bp2XLXxM.js} +4 -2
  2. package/dist/cjs/{i18n-2j78quax.js.map → i18n-Bp2XLXxM.js.map} +1 -1
  3. package/dist/cjs/{index-DjAX0m_J.js → index-DFeU0FNc.js} +9 -3
  4. package/dist/cjs/index-DFeU0FNc.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/ls-add-new-button_51.cjs.entry.js +950 -569
  7. package/dist/cjs/ls-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/ls-banner.cjs.entry.js +1 -1
  9. package/dist/cjs/ls-card.cjs.entry.js +1 -1
  10. package/dist/cjs/ls-checkbox-input_5.cjs.entry.js +1 -1
  11. package/dist/cjs/ls-compose-manager.cjs.entry.js +4 -4
  12. package/dist/cjs/ls-details-section.cjs.entry.js +1 -1
  13. package/dist/cjs/ls-document-viewer.cjs.js +2 -2
  14. package/dist/cjs/ls-dropdown-item.cjs.entry.js +1 -1
  15. package/dist/cjs/ls-dropdown.cjs.entry.js +1 -1
  16. package/dist/cjs/ls-field-properties-dropdown.cjs.entry.js +2 -2
  17. package/dist/cjs/ls-formfield.cjs.entry.js +1 -1
  18. package/dist/cjs/ls-header-bar.cjs.entry.js +1 -1
  19. package/dist/cjs/ls-icon-button.cjs.entry.js +1 -1
  20. package/dist/cjs/ls-icon-check-button.cjs.entry.js +1 -1
  21. package/dist/cjs/ls-label.cjs.entry.js +1 -1
  22. package/dist/cjs/ls-list-card-button.cjs.entry.js +1 -1
  23. package/dist/cjs/ls-navbar.cjs.entry.js +1 -1
  24. package/dist/cjs/ls-notification.cjs.entry.js +1 -1
  25. package/dist/cjs/ls-radio-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ls-radio-input.cjs.entry.js +1 -1
  27. package/dist/cjs/ls-tabs.cjs.entry.js +1 -1
  28. package/dist/cjs/ls-tag.cjs.entry.js +1 -1
  29. package/dist/cjs/ls-text.cjs.entry.js +1 -1
  30. package/dist/cjs/ls-timeline-step.cjs.entry.js +1 -1
  31. package/dist/cjs/ls-timeline.cjs.entry.js +1 -1
  32. package/dist/cjs/ls-title-input.cjs.entry.js +2 -2
  33. package/dist/cjs/test-item.cjs.entry.js +1 -1
  34. package/dist/collection/components/interfaces/IToolboxField.js.map +1 -1
  35. package/dist/collection/components/ls-compose-loader/ls-compose-loader.js +1 -1
  36. package/dist/collection/components/ls-compose-manager/ls-compose-manager.js +2 -2
  37. package/dist/collection/components/ls-document-viewer/editorCalculator.js +1 -0
  38. package/dist/collection/components/ls-document-viewer/editorCalculator.js.map +1 -1
  39. package/dist/collection/components/ls-document-viewer/keyHandlers.js +51 -7
  40. package/dist/collection/components/ls-document-viewer/keyHandlers.js.map +1 -1
  41. package/dist/collection/components/ls-document-viewer/ls-document-viewer.css +16 -4
  42. package/dist/collection/components/ls-document-viewer/ls-document-viewer.js +60 -32
  43. package/dist/collection/components/ls-document-viewer/ls-document-viewer.js.map +1 -1
  44. package/dist/collection/components/ls-document-viewer/mouseHandlers.js +294 -58
  45. package/dist/collection/components/ls-document-viewer/mouseHandlers.js.map +1 -1
  46. package/dist/collection/components/ls-document-viewer/snapHelper.js +66 -0
  47. package/dist/collection/components/ls-document-viewer/snapHelper.js.map +1 -0
  48. package/dist/collection/components/ls-editor-field/ls-editor-field.css +33 -0
  49. package/dist/collection/components/ls-editor-field/ls-editor-field.js +31 -19
  50. package/dist/collection/components/ls-editor-field/ls-editor-field.js.map +1 -1
  51. package/dist/collection/components/ls-editor-table/ls-editor-table.js +1 -1
  52. package/dist/collection/components/ls-feature-column/ls-feature-column.js +6 -6
  53. package/dist/collection/components/ls-field-alignment/ls-field-alignment.js +2 -2
  54. package/dist/collection/components/ls-field-content/ls-field-content.js +3 -3
  55. package/dist/collection/components/ls-field-dimensions/ls-field-dimensions.js +3 -3
  56. package/dist/collection/components/ls-field-distribute/ls-field-distribute.js +5 -5
  57. package/dist/collection/components/ls-field-footer/ls-field-footer.js +1 -1
  58. package/dist/collection/components/ls-field-format/ls-field-format.js +11 -11
  59. package/dist/collection/components/ls-field-placement/ls-field-placement.js +1 -1
  60. package/dist/collection/components/ls-field-properties/ls-field-properties.js +1 -1
  61. package/dist/collection/components/ls-field-properties-advanced/ls-field-properties-advanced.js +2 -2
  62. package/dist/collection/components/ls-field-properties-autosign/ls-field-properties-autosign.js +1 -1
  63. package/dist/collection/components/ls-field-properties-container/ls-field-properties-container.js +1 -1
  64. package/dist/collection/components/ls-field-properties-date/ls-field-properties-date.js +1 -1
  65. package/dist/collection/components/ls-field-properties-dropdown/ls-field-properties-dropdown.js +1 -1
  66. package/dist/collection/components/ls-field-properties-email/ls-field-properties-email.js +1 -1
  67. package/dist/collection/components/ls-field-properties-file/ls-field-properties-file.js +1 -1
  68. package/dist/collection/components/ls-field-properties-general/ls-field-properties-general.js +1 -1
  69. package/dist/collection/components/ls-field-properties-image/ls-field-properties-image.js +1 -1
  70. package/dist/collection/components/ls-field-properties-multiple/ls-field-properties-multiple.js +3 -3
  71. package/dist/collection/components/ls-field-properties-number/ls-field-properties-number.js +1 -1
  72. package/dist/collection/components/ls-field-properties-signature/ls-field-properties-signature.js +1 -1
  73. package/dist/collection/components/ls-field-properties-text/ls-field-properties-text.js +1 -1
  74. package/dist/collection/components/ls-field-size/ls-field-size.js +1 -1
  75. package/dist/collection/components/ls-field-type-display/ls-field-type-display.js +3 -3
  76. package/dist/collection/components/ls-helper-bar/ls-helper-bar.css +1 -1
  77. package/dist/collection/components/ls-helper-bar/ls-helper-bar.js +1 -1
  78. package/dist/collection/components/ls-helper-bar/ls-helper-bar.js.map +1 -1
  79. package/dist/collection/components/ls-input-wrapper/ls-input-wrapper.js +1 -1
  80. package/dist/collection/components/ls-keyboard-shortcuts/ls-keyboard-shortcuts.js +1 -1
  81. package/dist/collection/components/ls-left-bar/ls-left-bar.js +1 -1
  82. package/dist/collection/components/ls-left-bar/ls-left-bar.js.map +1 -1
  83. package/dist/collection/components/ls-participant-card/ls-participant-card.js +1 -1
  84. package/dist/collection/components/ls-participant-card/ls-participant-card.js.map +1 -1
  85. package/dist/collection/components/ls-participant-manager/ls-participant-manager.js +3 -3
  86. package/dist/collection/components/ls-participant-select/ls-participant-select.css +1 -1
  87. package/dist/collection/components/ls-participant-select/ls-participant-select.js +25 -9
  88. package/dist/collection/components/ls-participant-select/ls-participant-select.js.map +1 -1
  89. package/dist/collection/components/ls-props-section/ls-props-section.js +1 -1
  90. package/dist/collection/components/ls-recipient-card/ls-recipient-card.js +9 -9
  91. package/dist/collection/components/ls-recipient-card/ls-recipient-card.js.map +1 -1
  92. package/dist/collection/components/ls-recipient-manager/ls-recipient-manager.js +1 -1
  93. package/dist/collection/components/ls-statusbar/ls-statusbar.js +8 -11
  94. package/dist/collection/components/ls-statusbar/ls-statusbar.js.map +1 -1
  95. package/dist/collection/components/ls-title-input/ls-title-input.js +1 -1
  96. package/dist/collection/components/ls-toggle/ls-toggle.js +2 -2
  97. package/dist/collection/components/ls-toolbar/ls-toolbar.css +1 -1
  98. package/dist/collection/components/ls-toolbar/ls-toolbar.js +3 -5
  99. package/dist/collection/components/ls-toolbar/ls-toolbar.js.map +1 -1
  100. package/dist/collection/components/ls-toolbox-field/ls-toolbox-field.js +38 -32
  101. package/dist/collection/components/ls-toolbox-field/ls-toolbox-field.js.map +1 -1
  102. package/dist/collection/components/ls-validation-manager/ls-validation-manager.js +2 -2
  103. package/dist/collection/components/ls-validation-tag/ls-validation-tag.css +65 -0
  104. package/dist/collection/components/ls-validation-tag/ls-validation-tag.js +7 -11
  105. package/dist/collection/components/ls-validation-tag/ls-validation-tag.js.map +1 -1
  106. package/dist/components/index.js +1 -1
  107. package/dist/components/ls-add-new-button.js +1 -1
  108. package/dist/components/ls-badge.js +1 -1
  109. package/dist/components/ls-banner.js +6 -6
  110. package/dist/components/ls-banner.js.map +1 -1
  111. package/dist/components/ls-button.js +1 -1
  112. package/dist/components/ls-card.js +1 -1
  113. package/dist/components/ls-card.js.map +1 -1
  114. package/dist/components/ls-checkbox-input.js +1 -1
  115. package/dist/components/ls-compose-loader.js +1 -1
  116. package/dist/components/ls-compose-manager.js +4 -4
  117. package/dist/components/ls-details-section.js +3 -3
  118. package/dist/components/ls-details-section.js.map +1 -1
  119. package/dist/components/ls-document-options.js +1 -1
  120. package/dist/components/ls-document-viewer.js +153 -90
  121. package/dist/components/ls-document-viewer.js.map +1 -1
  122. package/dist/components/ls-dropdown-item.js +1 -1
  123. package/dist/components/ls-dropdown.js +3 -3
  124. package/dist/components/ls-dropdown.js.map +1 -1
  125. package/dist/components/ls-editor-field.js +1 -1
  126. package/dist/components/ls-editor-table.js +1 -1
  127. package/dist/components/ls-feature-column.js +1 -1
  128. package/dist/components/ls-field-alignment.js +1 -1
  129. package/dist/components/ls-field-content.js +1 -1
  130. package/dist/components/ls-field-dimensions.js +1 -1
  131. package/dist/components/ls-field-distribute.js +1 -1
  132. package/dist/components/ls-field-footer.js +1 -1
  133. package/dist/components/ls-field-format.js +1 -1
  134. package/dist/components/ls-field-placement.js +1 -1
  135. package/dist/components/ls-field-properties-advanced.js +1 -1
  136. package/dist/components/ls-field-properties-autosign.js +1 -1
  137. package/dist/components/ls-field-properties-container.js +1 -1
  138. package/dist/components/ls-field-properties-date.js +1 -1
  139. package/dist/components/ls-field-properties-dropdown.js +15 -15
  140. package/dist/components/ls-field-properties-email.js +1 -1
  141. package/dist/components/ls-field-properties-file.js +1 -1
  142. package/dist/components/ls-field-properties-general.js +1 -1
  143. package/dist/components/ls-field-properties-image.js +1 -1
  144. package/dist/components/ls-field-properties-multiple.js +1 -1
  145. package/dist/components/ls-field-properties-number.js +1 -1
  146. package/dist/components/ls-field-properties-signature.js +1 -1
  147. package/dist/components/ls-field-properties-text.js +1 -1
  148. package/dist/components/ls-field-properties.js +1 -1
  149. package/dist/components/ls-field-size.js +1 -1
  150. package/dist/components/ls-field-type-display.js +1 -1
  151. package/dist/components/ls-formfield.js +11 -11
  152. package/dist/components/ls-formfield.js.map +1 -1
  153. package/dist/components/ls-header-bar.js +4 -4
  154. package/dist/components/ls-header-bar.js.map +1 -1
  155. package/dist/components/ls-helper-bar.js +1 -1
  156. package/dist/components/ls-icon-button.js +1 -1
  157. package/dist/components/ls-icon-check-button.js +2 -2
  158. package/dist/components/ls-icon-check-button.js.map +1 -1
  159. package/dist/components/ls-icon.js +1 -1
  160. package/dist/components/ls-input-wrapper.js +1 -1
  161. package/dist/components/ls-keyboard-shortcuts.js +1 -1
  162. package/dist/components/ls-label.js +1 -1
  163. package/dist/components/ls-left-bar.js +1 -1
  164. package/dist/components/ls-list-card-button.js +4 -4
  165. package/dist/components/ls-list-card-button.js.map +1 -1
  166. package/dist/components/ls-loading-icon.js +1 -1
  167. package/dist/components/ls-loading-logo.js +1 -1
  168. package/dist/components/ls-loading.js +1 -1
  169. package/dist/components/ls-navbar.js +3 -3
  170. package/dist/components/ls-navbar.js.map +1 -1
  171. package/dist/components/ls-notification.js +2 -2
  172. package/dist/components/ls-notification.js.map +1 -1
  173. package/dist/components/ls-number-input.js +1 -1
  174. package/dist/components/ls-participant-card.js +1 -1
  175. package/dist/components/ls-participant-manager.js +1 -1
  176. package/dist/components/ls-participant-select.js +1 -1
  177. package/dist/components/ls-props-section.js +1 -1
  178. package/dist/components/ls-radio-group.js +3 -3
  179. package/dist/components/ls-radio-group.js.map +1 -1
  180. package/dist/components/ls-radio-input.js +1 -1
  181. package/dist/components/ls-recipient-card.js +1 -1
  182. package/dist/components/ls-recipient-manager.js +1 -1
  183. package/dist/components/ls-select-input.js +1 -1
  184. package/dist/components/ls-statusbar.js +1 -1
  185. package/dist/components/ls-tabs.js +2 -2
  186. package/dist/components/ls-tabs.js.map +1 -1
  187. package/dist/components/ls-tag.js +2 -2
  188. package/dist/components/ls-tag.js.map +1 -1
  189. package/dist/components/ls-text-input.js +1 -1
  190. package/dist/components/ls-text.js +1 -1
  191. package/dist/components/ls-text.js.map +1 -1
  192. package/dist/components/ls-textarea-input.js +1 -1
  193. package/dist/components/ls-timeline-step.js +2 -2
  194. package/dist/components/ls-timeline-step.js.map +1 -1
  195. package/dist/components/ls-timeline.js +2 -2
  196. package/dist/components/ls-timeline.js.map +1 -1
  197. package/dist/components/ls-title-input.js +3 -3
  198. package/dist/components/ls-toggle.js +1 -1
  199. package/dist/components/ls-toolbar.js +1 -1
  200. package/dist/components/ls-toolbox-field.js +1 -1
  201. package/dist/components/ls-tooltip.js +1 -1
  202. package/dist/components/ls-validation-manager.js +1 -1
  203. package/dist/components/ls-validation-tag.js +1 -1
  204. package/dist/components/{p-hGc0PM4h.js → p-0KcafqsD.js} +4 -4
  205. package/dist/components/{p-hGc0PM4h.js.map → p-0KcafqsD.js.map} +1 -1
  206. package/dist/components/{p-DckVC3o2.js → p-3C_ngKa0.js} +20 -32
  207. package/dist/components/p-3C_ngKa0.js.map +1 -0
  208. package/dist/components/{p-BqHWzbwb.js → p-84KTjgkl.js} +4 -4
  209. package/dist/components/{p-BqHWzbwb.js.map → p-84KTjgkl.js.map} +1 -1
  210. package/dist/components/{p--TgjpdhB.js → p-B-lmV6Ge.js} +30 -30
  211. package/dist/components/{p--TgjpdhB.js.map → p-B-lmV6Ge.js.map} +1 -1
  212. package/dist/components/{p-BPcmC2nE.js → p-B57Pqae2.js} +17 -17
  213. package/dist/components/{p-BPcmC2nE.js.map → p-B57Pqae2.js.map} +1 -1
  214. package/dist/components/{p-Cj4lPJEO.js → p-B7x-6bu5.js} +4 -4
  215. package/dist/components/{p-Cj4lPJEO.js.map → p-B7x-6bu5.js.map} +1 -1
  216. package/dist/components/{p-4mqXicuy.js → p-B8MnmgX3.js} +18 -18
  217. package/dist/components/{p-4mqXicuy.js.map → p-B8MnmgX3.js.map} +1 -1
  218. package/dist/components/{p-BuTI5iFf.js → p-B9ooYFOA.js} +5 -5
  219. package/dist/components/{p-BuTI5iFf.js.map → p-B9ooYFOA.js.map} +1 -1
  220. package/dist/components/{p-BilTZGhO.js → p-BCzMSIcI.js} +4 -4
  221. package/dist/components/{p-BilTZGhO.js.map → p-BCzMSIcI.js.map} +1 -1
  222. package/dist/components/{p-DhcX4EuS.js → p-BDrXR7dP.js} +15 -15
  223. package/dist/components/p-BDrXR7dP.js.map +1 -0
  224. package/dist/components/{p-DAP3L70b.js → p-BH-y0Rpv.js} +9 -9
  225. package/dist/components/{p-DAP3L70b.js.map → p-BH-y0Rpv.js.map} +1 -1
  226. package/dist/components/{p-MvHRmlvj.js → p-BMhCD-zg.js} +4 -4
  227. package/dist/components/{p-MvHRmlvj.js.map → p-BMhCD-zg.js.map} +1 -1
  228. package/dist/components/{p-DIZNU-wE.js → p-BOiW1EXR.js} +15 -15
  229. package/dist/components/{p-DIZNU-wE.js.map → p-BOiW1EXR.js.map} +1 -1
  230. package/dist/components/{p-Bo2HQUQV.js → p-BQUrLZHa.js} +17 -17
  231. package/dist/components/{p-Bo2HQUQV.js.map → p-BQUrLZHa.js.map} +1 -1
  232. package/dist/components/{p-CSPLGKKp.js → p-BT5rCW3w.js} +3 -3
  233. package/dist/components/{p-CSPLGKKp.js.map → p-BT5rCW3w.js.map} +1 -1
  234. package/dist/components/{p-Dx1cMyvL.js → p-BtjCijn4.js} +4 -2
  235. package/dist/components/{p-Dx1cMyvL.js.map → p-BtjCijn4.js.map} +1 -1
  236. package/dist/components/{p-Bn74nhFM.js → p-C7YkcdaA.js} +10 -10
  237. package/dist/components/{p-Bn74nhFM.js.map → p-C7YkcdaA.js.map} +1 -1
  238. package/dist/components/{p-cJzdZ_Zw.js → p-CKZG8VvW.js} +5 -5
  239. package/dist/components/{p-cJzdZ_Zw.js.map → p-CKZG8VvW.js.map} +1 -1
  240. package/dist/components/{p-CyqNq-AI.js → p-CKbRUnN1.js} +7 -7
  241. package/dist/components/{p-CyqNq-AI.js.map → p-CKbRUnN1.js.map} +1 -1
  242. package/dist/components/{p-DCdDskfL.js → p-CL7BhZ_Q.js} +373 -72
  243. package/dist/components/p-CL7BhZ_Q.js.map +1 -0
  244. package/dist/components/{p-B4zjHmIp.js → p-CPBue47f.js} +17 -17
  245. package/dist/components/{p-B4zjHmIp.js.map → p-CPBue47f.js.map} +1 -1
  246. package/dist/components/{p-DxKBajEl.js → p-CR8tt6fP.js} +17 -17
  247. package/dist/components/{p-DxKBajEl.js.map → p-CR8tt6fP.js.map} +1 -1
  248. package/dist/components/{p-C8NcdVVP.js → p-CZF2_NGo.js} +4 -4
  249. package/dist/components/{p-C8NcdVVP.js.map → p-CZF2_NGo.js.map} +1 -1
  250. package/dist/components/{p-BNu-kdNq.js → p-C_1P1sdO.js} +9 -9
  251. package/dist/components/{p-BNu-kdNq.js.map → p-C_1P1sdO.js.map} +1 -1
  252. package/dist/components/{p-EE_rUtMN.js → p-ChRy20ef.js} +12 -12
  253. package/dist/components/{p-EE_rUtMN.js.map → p-ChRy20ef.js.map} +1 -1
  254. package/dist/components/{p-DOZ7EVSp.js → p-CjWrgCFE.js} +45 -45
  255. package/dist/components/p-CjWrgCFE.js.map +1 -0
  256. package/dist/components/{p-DGgN9Tk0.js → p-CkKXB6ey.js} +7 -7
  257. package/dist/components/{p-DGgN9Tk0.js.map → p-CkKXB6ey.js.map} +1 -1
  258. package/dist/components/{p-OLQsckjQ.js → p-Cq8ahbie.js} +4 -4
  259. package/dist/components/{p-OLQsckjQ.js.map → p-Cq8ahbie.js.map} +1 -1
  260. package/dist/components/{p-d3qXKu5b.js → p-CtwomLWc.js} +17 -17
  261. package/dist/components/{p-d3qXKu5b.js.map → p-CtwomLWc.js.map} +1 -1
  262. package/dist/components/{p-BuUhtsZT.js → p-CuKQ9tEk.js} +3 -3
  263. package/dist/components/{p-BuUhtsZT.js.map → p-CuKQ9tEk.js.map} +1 -1
  264. package/dist/components/{p-DJ7bx7B5.js → p-CuOa6zQ5.js} +13 -13
  265. package/dist/components/{p-DJ7bx7B5.js.map → p-CuOa6zQ5.js.map} +1 -1
  266. package/dist/components/{p-CmMYC0p8.js → p-CzuXVZQ1.js} +4 -4
  267. package/dist/components/{p-CmMYC0p8.js.map → p-CzuXVZQ1.js.map} +1 -1
  268. package/dist/components/{p-DFvqOenH.js → p-D5pMAqGE.js} +8 -8
  269. package/dist/components/{p-DFvqOenH.js.map → p-D5pMAqGE.js.map} +1 -1
  270. package/dist/components/p-D60hGCYW.js +163 -0
  271. package/dist/components/p-D60hGCYW.js.map +1 -0
  272. package/dist/components/p-DBASMZy7.js +63 -0
  273. package/dist/components/p-DBASMZy7.js.map +1 -0
  274. package/dist/components/{p-wwN19gwm.js → p-DKo99Z43.js} +3 -3
  275. package/dist/components/{p-wwN19gwm.js.map → p-DKo99Z43.js.map} +1 -1
  276. package/dist/components/{p-D7bwh5bc.js → p-DLJvb8vE.js} +8 -8
  277. package/dist/components/{p-D7bwh5bc.js.map → p-DLJvb8vE.js.map} +1 -1
  278. package/dist/components/{p-3MMDk3sy.js → p-DN9dmmkk.js} +17 -17
  279. package/dist/components/{p-3MMDk3sy.js.map → p-DN9dmmkk.js.map} +1 -1
  280. package/dist/components/{p-BfHGjq5t.js → p-DSEWxCUd.js} +17 -20
  281. package/dist/components/p-DSEWxCUd.js.map +1 -0
  282. package/dist/components/{p-CgczqobT.js → p-DVMW45bm.js} +8 -8
  283. package/dist/components/{p-CgczqobT.js.map → p-DVMW45bm.js.map} +1 -1
  284. package/dist/components/{p-Bo0Bazo8.js → p-DWHMcRuX.js} +22 -36
  285. package/dist/components/p-DWHMcRuX.js.map +1 -0
  286. package/dist/components/{p-BJqq2Npt.js → p-DX0MxmqS.js} +17 -17
  287. package/dist/components/{p-BJqq2Npt.js.map → p-DX0MxmqS.js.map} +1 -1
  288. package/dist/components/{p-dHMolk9H.js → p-DZP-fvPJ.js} +60 -15
  289. package/dist/components/p-DZP-fvPJ.js.map +1 -0
  290. package/dist/components/{p-CYSZo6aX.js → p-DcR04vBT.js} +4 -4
  291. package/dist/components/{p-CYSZo6aX.js.map → p-DcR04vBT.js.map} +1 -1
  292. package/dist/components/{p-BDiZ0WrF.js → p-Dcgsf6yy.js} +5 -5
  293. package/dist/components/{p-BDiZ0WrF.js.map → p-Dcgsf6yy.js.map} +1 -1
  294. package/dist/components/{p-BrykT5-C.js → p-DffaAVW4.js} +9 -3
  295. package/dist/components/p-DffaAVW4.js.map +1 -0
  296. package/dist/components/p-DgBJsVwe.js +117 -0
  297. package/dist/components/p-DgBJsVwe.js.map +1 -0
  298. package/dist/components/{p-BEoo68ix.js → p-DgdZURoz.js} +17 -17
  299. package/dist/components/{p-BEoo68ix.js.map → p-DgdZURoz.js.map} +1 -1
  300. package/dist/components/{p-CWgG6RtI.js → p-Dj0hj7yh.js} +5 -5
  301. package/dist/components/{p-CWgG6RtI.js.map → p-Dj0hj7yh.js.map} +1 -1
  302. package/dist/components/{p-d3FQEed-.js → p-DowYrMjW.js} +5 -5
  303. package/dist/components/{p-d3FQEed-.js.map → p-DowYrMjW.js.map} +1 -1
  304. package/dist/components/{p-BYjOvCbn.js → p-DrEcfY_J.js} +4 -4
  305. package/dist/components/{p-BYjOvCbn.js.map → p-DrEcfY_J.js.map} +1 -1
  306. package/dist/components/{p-Dz16EnCS.js → p-Dw_QK-he.js} +11 -9
  307. package/dist/components/p-Dw_QK-he.js.map +1 -0
  308. package/dist/components/p-JclQnuaU.js +108 -0
  309. package/dist/components/p-JclQnuaU.js.map +1 -0
  310. package/dist/components/{p-BgjZLcgZ.js → p-LtApPKUM.js} +11 -11
  311. package/dist/components/p-LtApPKUM.js.map +1 -0
  312. package/dist/components/{p-UI9vt753.js → p-OiC5NHtc.js} +4 -4
  313. package/dist/components/{p-UI9vt753.js.map → p-OiC5NHtc.js.map} +1 -1
  314. package/dist/components/{p-B-hPslyN.js → p-QZa2_PWg.js} +4 -4
  315. package/dist/components/{p-B-hPslyN.js.map → p-QZa2_PWg.js.map} +1 -1
  316. package/dist/components/{p-BBAOpkc_.js → p-TmHRO8G9.js} +7 -7
  317. package/dist/components/{p-BBAOpkc_.js.map → p-TmHRO8G9.js.map} +1 -1
  318. package/dist/components/{p-r32PqGrS.js → p-lphkmIXU.js} +4 -4
  319. package/dist/components/{p-r32PqGrS.js.map → p-lphkmIXU.js.map} +1 -1
  320. package/dist/components/p-wijn7N4I.js +102 -0
  321. package/dist/components/p-wijn7N4I.js.map +1 -0
  322. package/dist/components/{p-C4Fkc5Wm.js → p-wxu8bkXk.js} +6 -6
  323. package/dist/components/{p-C4Fkc5Wm.js.map → p-wxu8bkXk.js.map} +1 -1
  324. package/dist/components/{p-C1mHzpwC.js → p-xwpC2Mzh.js} +17 -17
  325. package/dist/components/{p-C1mHzpwC.js.map → p-xwpC2Mzh.js.map} +1 -1
  326. package/dist/components/{p-DoQt0hBg.js → p-ygIo6UQn.js} +3 -3
  327. package/dist/components/{p-DoQt0hBg.js.map → p-ygIo6UQn.js.map} +1 -1
  328. package/dist/components/test-item.js +1 -1
  329. package/dist/components/test-item.js.map +1 -1
  330. package/dist/esm/{i18n-Dx1cMyvL.js → i18n-BtjCijn4.js} +4 -2
  331. package/dist/esm/{i18n-Dx1cMyvL.js.map → i18n-BtjCijn4.js.map} +1 -1
  332. package/dist/esm/{index-CqgU9BMJ.js → index-CItPoq74.js} +9 -3
  333. package/dist/esm/index-CItPoq74.js.map +1 -0
  334. package/dist/esm/loader.js +3 -3
  335. package/dist/esm/ls-add-new-button_51.entry.js +950 -569
  336. package/dist/esm/ls-badge.entry.js +1 -1
  337. package/dist/esm/ls-badge.entry.js.map +1 -1
  338. package/dist/esm/ls-banner.entry.js +1 -1
  339. package/dist/esm/ls-banner.entry.js.map +1 -1
  340. package/dist/esm/ls-card.entry.js +1 -1
  341. package/dist/esm/ls-card.entry.js.map +1 -1
  342. package/dist/esm/ls-checkbox-input_5.entry.js +1 -1
  343. package/dist/esm/ls-compose-manager.entry.js +4 -4
  344. package/dist/esm/ls-details-section.entry.js +1 -1
  345. package/dist/esm/ls-details-section.entry.js.map +1 -1
  346. package/dist/esm/ls-document-viewer.js +3 -3
  347. package/dist/esm/ls-dropdown-item.entry.js +1 -1
  348. package/dist/esm/ls-dropdown-item.entry.js.map +1 -1
  349. package/dist/esm/ls-dropdown.entry.js +1 -1
  350. package/dist/esm/ls-dropdown.entry.js.map +1 -1
  351. package/dist/esm/ls-field-properties-dropdown.entry.js +2 -2
  352. package/dist/esm/ls-formfield.entry.js +1 -1
  353. package/dist/esm/ls-formfield.entry.js.map +1 -1
  354. package/dist/esm/ls-header-bar.entry.js +1 -1
  355. package/dist/esm/ls-header-bar.entry.js.map +1 -1
  356. package/dist/esm/ls-icon-button.entry.js +1 -1
  357. package/dist/esm/ls-icon-button.entry.js.map +1 -1
  358. package/dist/esm/ls-icon-check-button.entry.js +1 -1
  359. package/dist/esm/ls-icon-check-button.entry.js.map +1 -1
  360. package/dist/esm/ls-label.entry.js +1 -1
  361. package/dist/esm/ls-label.entry.js.map +1 -1
  362. package/dist/esm/ls-list-card-button.entry.js +1 -1
  363. package/dist/esm/ls-list-card-button.entry.js.map +1 -1
  364. package/dist/esm/ls-navbar.entry.js +1 -1
  365. package/dist/esm/ls-navbar.entry.js.map +1 -1
  366. package/dist/esm/ls-notification.entry.js +1 -1
  367. package/dist/esm/ls-notification.entry.js.map +1 -1
  368. package/dist/esm/ls-radio-group.entry.js +1 -1
  369. package/dist/esm/ls-radio-group.entry.js.map +1 -1
  370. package/dist/esm/ls-radio-input.entry.js +1 -1
  371. package/dist/esm/ls-radio-input.entry.js.map +1 -1
  372. package/dist/esm/ls-tabs.entry.js +1 -1
  373. package/dist/esm/ls-tabs.entry.js.map +1 -1
  374. package/dist/esm/ls-tag.entry.js +1 -1
  375. package/dist/esm/ls-tag.entry.js.map +1 -1
  376. package/dist/esm/ls-text.entry.js +1 -1
  377. package/dist/esm/ls-text.entry.js.map +1 -1
  378. package/dist/esm/ls-timeline-step.entry.js +1 -1
  379. package/dist/esm/ls-timeline-step.entry.js.map +1 -1
  380. package/dist/esm/ls-timeline.entry.js +1 -1
  381. package/dist/esm/ls-timeline.entry.js.map +1 -1
  382. package/dist/esm/ls-title-input.entry.js +2 -2
  383. package/dist/esm/test-item.entry.js +1 -1
  384. package/dist/esm/test-item.entry.js.map +1 -1
  385. package/dist/ls-document-viewer/ls-document-viewer.esm.js +1 -1
  386. package/dist/ls-document-viewer/{p-6d948608.entry.js → p-17771224.entry.js} +2 -2
  387. package/dist/ls-document-viewer/{p-a9cfd73b.entry.js → p-34c89736.entry.js} +2 -2
  388. package/dist/ls-document-viewer/{p-fa30b362.entry.js → p-35181c98.entry.js} +2 -2
  389. package/dist/ls-document-viewer/{p-6cc592f3.entry.js → p-355fa23b.entry.js} +2 -2
  390. package/dist/ls-document-viewer/{p-f474989d.entry.js → p-429be8d1.entry.js} +2 -2
  391. package/dist/ls-document-viewer/{p-9ecd1ff7.entry.js → p-5e4e4662.entry.js} +2 -2
  392. package/dist/ls-document-viewer/{p-3da9d77b.entry.js → p-61e1b37b.entry.js} +2 -2
  393. package/dist/ls-document-viewer/{p-0d1fc411.entry.js → p-6244f792.entry.js} +2 -2
  394. package/dist/ls-document-viewer/{p-0b3a5fbd.entry.js → p-7c5b3574.entry.js} +2 -2
  395. package/dist/ls-document-viewer/{p-ee2098bb.entry.js → p-85c87644.entry.js} +2 -2
  396. package/dist/ls-document-viewer/{p-7f5b13f6.entry.js → p-8bdf7b95.entry.js} +2 -2
  397. package/dist/ls-document-viewer/{p-d09bc75d.entry.js → p-8e0ad6ec.entry.js} +2 -2
  398. package/dist/ls-document-viewer/p-9337949c.entry.js +2 -0
  399. package/dist/ls-document-viewer/{p-e51973e5.entry.js.map → p-9337949c.entry.js.map} +1 -1
  400. package/dist/ls-document-viewer/{p-f2a51b12.entry.js → p-94bbac6a.entry.js} +2 -2
  401. package/dist/ls-document-viewer/{p-55834145.entry.js → p-9ebec463.entry.js} +2 -2
  402. package/dist/ls-document-viewer/p-BtjCijn4.js +2 -0
  403. package/dist/ls-document-viewer/{p-Dx1cMyvL.js.map → p-BtjCijn4.js.map} +1 -1
  404. package/dist/ls-document-viewer/{p-CqgU9BMJ.js → p-CItPoq74.js} +2 -2
  405. package/dist/ls-document-viewer/p-CItPoq74.js.map +1 -0
  406. package/dist/ls-document-viewer/{p-e45b3ca8.entry.js → p-a4121600.entry.js} +2 -2
  407. package/dist/ls-document-viewer/p-a7dd3ba3.entry.js +2 -0
  408. package/dist/ls-document-viewer/{p-5a98eb27.entry.js → p-abb5c859.entry.js} +2 -2
  409. package/dist/ls-document-viewer/{p-fd50bc60.entry.js → p-bbc53e46.entry.js} +2 -2
  410. package/dist/ls-document-viewer/{p-f3af5313.entry.js → p-c521696b.entry.js} +2 -2
  411. package/dist/ls-document-viewer/{p-828c1636.entry.js → p-c78bd190.entry.js} +2 -2
  412. package/dist/ls-document-viewer/{p-870b9662.entry.js → p-ca1a0e03.entry.js} +2 -2
  413. package/dist/ls-document-viewer/{p-a16db209.entry.js → p-d297ea14.entry.js} +2 -2
  414. package/dist/ls-document-viewer/{p-ae2d6df8.entry.js → p-d2caf154.entry.js} +2 -2
  415. package/dist/ls-document-viewer/{p-0f6a01b3.entry.js → p-d76f5c10.entry.js} +2 -2
  416. package/dist/ls-document-viewer/{p-e29d619f.entry.js → p-ee83ac40.entry.js} +603 -603
  417. package/dist/ls-document-viewer/p-ee83ac40.entry.js.map +1 -0
  418. package/dist/ls-document-viewer/{p-febb8794.entry.js → p-f318c711.entry.js} +2 -2
  419. package/dist/types/components/interfaces/IToolboxField.d.ts +1 -0
  420. package/dist/types/components/ls-document-viewer/ls-document-viewer.d.ts +3 -0
  421. package/dist/types/components/ls-document-viewer/mouseHandlers.d.ts +8 -1
  422. package/dist/types/components/ls-document-viewer/snapHelper.d.ts +21 -0
  423. package/dist/types/components/ls-editor-field/ls-editor-field.d.ts +1 -0
  424. package/dist/types/components/ls-participant-select/ls-participant-select.d.ts +2 -0
  425. package/dist/types/components/ls-toolbox-field/ls-toolbox-field.d.ts +3 -1
  426. package/dist/types/components.d.ts +12 -2
  427. package/package.json +2 -2
  428. package/dist/cjs/index-DjAX0m_J.js.map +0 -1
  429. package/dist/components/p-BfHGjq5t.js.map +0 -1
  430. package/dist/components/p-BgjZLcgZ.js.map +0 -1
  431. package/dist/components/p-Bo0Bazo8.js.map +0 -1
  432. package/dist/components/p-BrykT5-C.js.map +0 -1
  433. package/dist/components/p-CffM9Jz_.js +0 -119
  434. package/dist/components/p-CffM9Jz_.js.map +0 -1
  435. package/dist/components/p-D9Kd-4_M.js +0 -100
  436. package/dist/components/p-D9Kd-4_M.js.map +0 -1
  437. package/dist/components/p-DCdDskfL.js.map +0 -1
  438. package/dist/components/p-DD5tgd5X.js +0 -157
  439. package/dist/components/p-DD5tgd5X.js.map +0 -1
  440. package/dist/components/p-DH9Evr8X.js +0 -63
  441. package/dist/components/p-DH9Evr8X.js.map +0 -1
  442. package/dist/components/p-DOZ7EVSp.js.map +0 -1
  443. package/dist/components/p-DckVC3o2.js.map +0 -1
  444. package/dist/components/p-DhcX4EuS.js.map +0 -1
  445. package/dist/components/p-Dz16EnCS.js.map +0 -1
  446. package/dist/components/p-NAiclfXm.js +0 -112
  447. package/dist/components/p-NAiclfXm.js.map +0 -1
  448. package/dist/components/p-dHMolk9H.js.map +0 -1
  449. package/dist/esm/index-CqgU9BMJ.js.map +0 -1
  450. package/dist/ls-document-viewer/p-CqgU9BMJ.js.map +0 -1
  451. package/dist/ls-document-viewer/p-Dx1cMyvL.js +0 -2
  452. package/dist/ls-document-viewer/p-ac0c3ed5.entry.js +0 -2
  453. package/dist/ls-document-viewer/p-e29d619f.entry.js.map +0 -1
  454. package/dist/ls-document-viewer/p-e51973e5.entry.js +0 -2
  455. /package/dist/ls-document-viewer/{p-6d948608.entry.js.map → p-17771224.entry.js.map} +0 -0
  456. /package/dist/ls-document-viewer/{p-a9cfd73b.entry.js.map → p-34c89736.entry.js.map} +0 -0
  457. /package/dist/ls-document-viewer/{p-fa30b362.entry.js.map → p-35181c98.entry.js.map} +0 -0
  458. /package/dist/ls-document-viewer/{p-6cc592f3.entry.js.map → p-355fa23b.entry.js.map} +0 -0
  459. /package/dist/ls-document-viewer/{p-f474989d.entry.js.map → p-429be8d1.entry.js.map} +0 -0
  460. /package/dist/ls-document-viewer/{p-9ecd1ff7.entry.js.map → p-5e4e4662.entry.js.map} +0 -0
  461. /package/dist/ls-document-viewer/{p-3da9d77b.entry.js.map → p-61e1b37b.entry.js.map} +0 -0
  462. /package/dist/ls-document-viewer/{p-0d1fc411.entry.js.map → p-6244f792.entry.js.map} +0 -0
  463. /package/dist/ls-document-viewer/{p-0b3a5fbd.entry.js.map → p-7c5b3574.entry.js.map} +0 -0
  464. /package/dist/ls-document-viewer/{p-ee2098bb.entry.js.map → p-85c87644.entry.js.map} +0 -0
  465. /package/dist/ls-document-viewer/{p-7f5b13f6.entry.js.map → p-8bdf7b95.entry.js.map} +0 -0
  466. /package/dist/ls-document-viewer/{p-d09bc75d.entry.js.map → p-8e0ad6ec.entry.js.map} +0 -0
  467. /package/dist/ls-document-viewer/{p-f2a51b12.entry.js.map → p-94bbac6a.entry.js.map} +0 -0
  468. /package/dist/ls-document-viewer/{p-55834145.entry.js.map → p-9ebec463.entry.js.map} +0 -0
  469. /package/dist/ls-document-viewer/{p-e45b3ca8.entry.js.map → p-a4121600.entry.js.map} +0 -0
  470. /package/dist/ls-document-viewer/{p-ac0c3ed5.entry.js.map → p-a7dd3ba3.entry.js.map} +0 -0
  471. /package/dist/ls-document-viewer/{p-5a98eb27.entry.js.map → p-abb5c859.entry.js.map} +0 -0
  472. /package/dist/ls-document-viewer/{p-fd50bc60.entry.js.map → p-bbc53e46.entry.js.map} +0 -0
  473. /package/dist/ls-document-viewer/{p-f3af5313.entry.js.map → p-c521696b.entry.js.map} +0 -0
  474. /package/dist/ls-document-viewer/{p-828c1636.entry.js.map → p-c78bd190.entry.js.map} +0 -0
  475. /package/dist/ls-document-viewer/{p-870b9662.entry.js.map → p-ca1a0e03.entry.js.map} +0 -0
  476. /package/dist/ls-document-viewer/{p-a16db209.entry.js.map → p-d297ea14.entry.js.map} +0 -0
  477. /package/dist/ls-document-viewer/{p-ae2d6df8.entry.js.map → p-d2caf154.entry.js.map} +0 -0
  478. /package/dist/ls-document-viewer/{p-0f6a01b3.entry.js.map → p-d76f5c10.entry.js.map} +0 -0
  479. /package/dist/ls-document-viewer/{p-febb8794.entry.js.map → p-f318c711.entry.js.map} +0 -0
@@ -1,5 +1,34 @@
1
1
  import { findDimensions, findIn, recalculateCoordinates } from "./editorCalculator";
2
2
  import { FIELD_DEFAULTS, DEFAULT_FONT_SIZE, DEFAULT_FONT_NAME } from "../../constants/fieldDefaults";
3
+ import { calculateSnap } from "./snapHelper";
4
+ import { defaultRolePalette } from "./defaultPalette";
5
+ export function updateSelectionBox() {
6
+ var box = this.component.shadowRoot.getElementById('ls-box-selector');
7
+ if (!this.selected || this.selected.length < 2) {
8
+ box.style.visibility = 'hidden';
9
+ return;
10
+ }
11
+ let minLeft = Infinity, minTop = Infinity, maxRight = -Infinity, maxBottom = -Infinity;
12
+ this.selected.forEach(f => {
13
+ const left = f.offsetLeft;
14
+ const top = f.offsetTop;
15
+ const right = left + f.offsetWidth;
16
+ const bottom = top + f.offsetHeight;
17
+ if (left < minLeft)
18
+ minLeft = left;
19
+ if (top < minTop)
20
+ minTop = top;
21
+ if (right > maxRight)
22
+ maxRight = right;
23
+ if (bottom > maxBottom)
24
+ maxBottom = bottom;
25
+ });
26
+ box.style.left = minLeft + 'px';
27
+ box.style.top = minTop + 'px';
28
+ box.style.width = (maxRight - minLeft) + 'px';
29
+ box.style.height = (maxBottom - minTop) + 'px';
30
+ box.style.visibility = 'visible';
31
+ }
3
32
  let mousetimer = null;
4
33
  export function debounce(data, delay) {
5
34
  if (mousetimer)
@@ -11,6 +40,16 @@ export function debounce(data, delay) {
11
40
  export function mouseDown(e) {
12
41
  if (e.offsetX < 0 || e.offsetY < 0)
13
42
  return;
43
+ if (this._isToolboxDragging)
44
+ return;
45
+ // Disable mouse interactions in preview mode
46
+ if (this.mode === 'preview') {
47
+ return;
48
+ }
49
+ // Ignore events originating from outside the document frame
50
+ const frame = this.component.shadowRoot.getElementById('ls-document-frame');
51
+ if (!frame || !e.composedPath().includes(frame))
52
+ return;
14
53
  // console.log('mousedown', e);
15
54
  // Find if this was
16
55
  // - a hit on a field edge RESIZE
@@ -121,6 +160,7 @@ export function mouseDown(e) {
121
160
  this.selectFields.emit([]);
122
161
  this.selected = [];
123
162
  this.component.style.cursor = 'crosshair';
163
+ updateSelectionBox.bind(this)();
124
164
  }
125
165
  }
126
166
  export function outOfBounds(futureField) {
@@ -132,6 +172,12 @@ export function outOfBounds(futureField) {
132
172
  }
133
173
  export function mouseMove(event) {
134
174
  event.preventDefault();
175
+ if (this._isToolboxDragging)
176
+ return;
177
+ // Disable mouse move interactions in preview mode
178
+ if (this.mode === 'preview') {
179
+ return;
180
+ }
135
181
  // We have the mouse held down on a field edge to resize it.
136
182
  if (this.hitField && this.edgeSide && this.startMouse && event.buttons === 1) {
137
183
  const movedX = event.screenX - this.startMouse.x;
@@ -252,21 +298,45 @@ export function mouseMove(event) {
252
298
  }
253
299
  else if (this.startLocations && !this.edgeSide && this.startMouse && event.buttons === 1) {
254
300
  this.isMoving = true;
301
+ document.body.style.userSelect = 'none';
255
302
  var box = this.component.shadowRoot.getElementById('ls-box-selector');
256
303
  box.style.visibility = 'hidden';
304
+ // Dismiss any open date picker when moving fields
305
+ if (this.selected?.length) {
306
+ this.selected.forEach(f => {
307
+ const input = f.shadowRoot?.getElementById('editing-input');
308
+ if (input)
309
+ input.blur();
310
+ });
311
+ }
257
312
  // Move one or more selected items
258
313
  const movedX = event.screenX - this.startMouse.x;
259
314
  const movedY = event.screenY - this.startMouse.y;
260
315
  if (this.selected?.length) {
316
+ // Calculate snap based on the primary (first) selected field
317
+ const primaryLeft = this.startLocations[0].left + movedX;
318
+ const primaryTop = this.startLocations[0].top + movedY;
319
+ const primaryWidth = this.startLocations[0].width;
320
+ const primaryHeight = this.startLocations[0].height;
321
+ const allFields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field'));
322
+ const excludeIds = this.selected.map(s => s.dataItem.id);
323
+ const snap = calculateSnap(primaryLeft, primaryTop, primaryWidth, primaryHeight, allFields, this.pageNum, excludeIds);
324
+ // Apply snap offset to all selected fields
325
+ const snapOffsetX = snap.x !== null ? snap.x - primaryLeft : 0;
326
+ const snapOffsetY = snap.y !== null ? snap.y - primaryTop : 0;
261
327
  for (let i = 0; i < this.selected.length; i++) {
262
- if (this.startLocations[i].left + movedX >= 0 &&
263
- this.startLocations[i].top + movedY >= 0 &&
264
- this.startLocations[i].left + movedX <= (this.pageDimensions[this.pageNum - 1].width - this.selected[i].dataItem.width) * this.zoom &&
265
- this.startLocations[i].top + movedY <= (this.pageDimensions[this.pageNum - 1].height - this.selected[i].dataItem.height) * this.zoom) {
266
- this.selected[i].style.left = Math.round(this.startLocations[i].left + movedX) + 'px';
267
- this.selected[i].style.top = Math.round(this.startLocations[i].top + movedY) + 'px';
328
+ const newLeft = this.startLocations[i].left + movedX + snapOffsetX;
329
+ const newTop = this.startLocations[i].top + movedY + snapOffsetY;
330
+ if (newLeft >= 0 &&
331
+ newTop >= 0 &&
332
+ newLeft <= (this.pageDimensions[this.pageNum - 1].width - this.selected[i].dataItem.width) * this.zoom &&
333
+ newTop <= (this.pageDimensions[this.pageNum - 1].height - this.selected[i].dataItem.height) * this.zoom) {
334
+ this.selected[i].style.left = Math.round(newLeft) + 'px';
335
+ this.selected[i].style.top = Math.round(newTop) + 'px';
268
336
  }
269
337
  }
338
+ showSnapGuides.bind(this)(snap.guides);
339
+ updateSelectionBox.bind(this)();
270
340
  }
271
341
  }
272
342
  }
@@ -274,7 +344,8 @@ export function mouseUp(event) {
274
344
  this.edgeSide = null;
275
345
  this.startMouse = null;
276
346
  this.component.style.cursor = 'auto';
277
- // console.log('mouse up');
347
+ document.body.style.userSelect = '';
348
+ clearSnapGuides.bind(this)();
278
349
  // find what was inside the selection box emit the select event and change their style
279
350
  if (this.selectionBox && this.isBoxing) {
280
351
  this.isBoxing = false;
@@ -285,9 +356,14 @@ export function mouseUp(event) {
285
356
  const found = findIn(fields, box, true, event.shiftKey);
286
357
  this.selected = Array.from(found);
287
358
  this.selectFields.emit(found.map(fx => fx.dataItem));
359
+ updateSelectionBox.bind(this)();
288
360
  }
289
361
  }
290
362
  export function mouseClick(e) {
363
+ // Disable click interactions in preview mode
364
+ if (this.mode === 'preview') {
365
+ return;
366
+ }
291
367
  // check we're not moving fields
292
368
  if (this.isMoving) {
293
369
  // End dragging fields
@@ -310,6 +386,7 @@ export function mouseClick(e) {
310
386
  return { action: 'update', data: delta };
311
387
  }));
312
388
  this.selectFields.emit(selected.map(fx => fx.dataItem));
389
+ updateSelectionBox.bind(this)();
313
390
  }
314
391
  else {
315
392
  // reset the selection box location
@@ -328,63 +405,222 @@ export function mouseClick(e) {
328
405
  });
329
406
  this.selected = Array.from(fields).filter(fx => fx.selected);
330
407
  this.selectFields.emit(this.selected.map(fx => fx.dataItem));
408
+ updateSelectionBox.bind(this)();
331
409
  }
332
410
  }
333
- export function mouseDrop(event) {
334
- event.preventDefault();
335
- try {
336
- const data = JSON.parse(event.dataTransfer.getData('application/json'));
337
- // Unselect all current selected items
338
- this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));
339
- var frame = this.component.shadowRoot.getElementById('ls-document-frame');
340
- // Make a new API compatible id for a template element (prefix 'ele')
341
- const id = btoa('ele' + crypto.randomUUID());
342
- const top = event.offsetY / this.zoom + frame.scrollTop;
343
- const left = event.offsetX / this.zoom + frame.scrollLeft;
344
- // TODO: Put these defaults somewhere sensible
345
- const newData = {
346
- action: 'create',
347
- data: {
348
- id,
349
- value: '',
350
- formElementType: data.formElementType,
351
- elementType: data.elementType,
352
- validation: data.validation,
353
- substantive: false,
354
- top,
355
- left,
356
- hideBorder: false,
357
- height: data.defaultHeight,
358
- width: data.defaultWidth,
359
- pageDimensions: this.pageDimensions[this.pageNum - 1],
360
- fontName: this.fontFamily,
361
- fontSize: this.fontSize,
362
- align: 'left',
363
- signer: this.signer,
364
- page: this.pageNum,
365
- mapTo: null,
366
- label: '',
367
- helpText: null,
368
- logicGroup: null,
369
- optional: false,
370
- options: null,
371
- logicAction: null,
372
- labelExtra: null,
373
- fieldOrder: null,
374
- ax: left > 0 ? left / this.pageDimensions[this.pageNum - 1].width : 0,
375
- ay: top > 0 ? top / this.pageDimensions[this.pageNum - 1].height : 0,
376
- bx: (left + data.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,
377
- by: (top + data.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,
378
- templateId: this._template.id,
379
- },
380
- };
381
- this.mutate.emit([newData]);
411
+ export function showSnapGuides(guides) {
412
+ const frame = this.component.shadowRoot.getElementById('ls-document-frame');
413
+ let container = this.component.shadowRoot.getElementById('ls-snap-guides');
414
+ if (!container) {
415
+ container = document.createElement('div');
416
+ container.id = 'ls-snap-guides';
417
+ container.style.position = 'absolute';
418
+ container.style.top = '0';
419
+ container.style.left = '0';
420
+ container.style.width = '100%';
421
+ container.style.height = '100%';
422
+ container.style.pointerEvents = 'none';
423
+ container.style.zIndex = '9999';
424
+ frame.appendChild(container);
382
425
  }
383
- catch (e) {
384
- console.error(e);
426
+ container.innerHTML = '';
427
+ for (const guide of guides) {
428
+ const line = document.createElement('div');
429
+ line.style.position = 'absolute';
430
+ line.style.backgroundColor = 'transparent';
431
+ if (guide.orientation === 'v') {
432
+ line.style.left = guide.position + 'px';
433
+ line.style.top = '0';
434
+ line.style.width = '0';
435
+ line.style.height = '100%';
436
+ line.style.borderLeft = '1px dashed var(--gray-50, #c8c9cc)';
437
+ }
438
+ else {
439
+ line.style.top = guide.position + 'px';
440
+ line.style.left = '0';
441
+ line.style.width = '100%';
442
+ line.style.height = '0';
443
+ line.style.borderTop = '1px dashed var(--gray-50, #c8c9cc)';
444
+ }
445
+ container.appendChild(line);
385
446
  }
386
447
  }
448
+ export function clearSnapGuides() {
449
+ const container = this.component.shadowRoot.getElementById('ls-snap-guides');
450
+ if (container)
451
+ container.innerHTML = '';
452
+ }
453
+ export function toolboxDragStart(fieldData) {
454
+ // Cancel any existing toolbox drag
455
+ if (this._cancelToolboxDrag) {
456
+ this._cancelToolboxDrag();
457
+ }
458
+ const frame = this.component.shadowRoot.getElementById('ls-document-frame');
459
+ const zoom = this.zoom;
460
+ this._isToolboxDragging = true;
461
+ const startTime = Date.now();
462
+ // Prevent text selection during drag
463
+ document.body.style.userSelect = 'none';
464
+ // Create ghost preview element matching the original drag image style
465
+ const ghost = document.createElement('div');
466
+ ghost.id = 'ls-toolbox-ghost';
467
+ ghost.style.position = 'fixed';
468
+ ghost.style.width = fieldData.defaultWidth * zoom + 'px';
469
+ ghost.style.height = fieldData.defaultHeight * zoom + 'px';
470
+ ghost.style.border = `2px dashed ${defaultRolePalette[this.signer % 100].s60}`;
471
+ const s20 = defaultRolePalette[this.signer % 100].s20.replace('#', '');
472
+ const r = parseInt(s20.substring(0, 2), 16);
473
+ const g = parseInt(s20.substring(2, 4), 16);
474
+ const b = parseInt(s20.substring(4, 6), 16);
475
+ ghost.style.background = `rgba(${r},${g},${b},0.5)`;
476
+ ghost.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -1px rgba(0, 0, 0, 0.06)';
477
+ ghost.style.pointerEvents = 'none';
478
+ ghost.style.zIndex = '0';
479
+ ghost.style.visibility = 'hidden';
480
+ ghost.style.boxSizing = 'border-box';
481
+ ghost.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';
482
+ ghost.style.fontSize = Math.round(DEFAULT_FONT_SIZE * zoom) + 'px';
483
+ ghost.style.color = defaultRolePalette[this.signer % 100].s100;
484
+ ghost.style.overflow = 'hidden';
485
+ ghost.style.whiteSpace = 'nowrap';
486
+ ghost.style.display = 'flex';
487
+ ghost.style.alignItems = 'center';
488
+ ghost.style.textTransform = 'capitalize';
489
+ ghost.innerHTML = fieldData.formElementType;
490
+ this.component.shadowRoot.appendChild(ghost);
491
+ // Info chip at bottom of screen
492
+ const chip = document.createElement('div');
493
+ chip.id = 'ls-esc-chip';
494
+ chip.style.position = 'fixed';
495
+ chip.style.bottom = '1.5rem';
496
+ chip.style.left = '50%';
497
+ chip.style.transform = 'translateX(-50%)';
498
+ chip.style.padding = '0.375rem 0.75rem';
499
+ chip.style.borderRadius = '0.625rem';
500
+ chip.style.background = 'var(--gray-100, #1f2937)';
501
+ chip.style.color = 'white';
502
+ chip.style.fontSize = '0.75rem';
503
+ chip.style.fontFamily = 'var(--font-family, IBM Plex Sans, sans-serif)';
504
+ chip.style.pointerEvents = 'none';
505
+ chip.style.zIndex = '10000';
506
+ chip.style.boxShadow = '0 4px 6px -1px rgba(0, 0, 0, 0.1)';
507
+ chip.textContent = 'Press Esc to cancel field placement';
508
+ this.component.shadowRoot.appendChild(chip);
509
+ const onMouseMove = (e) => {
510
+ e.preventDefault();
511
+ const dragWidth = fieldData.defaultWidth * zoom;
512
+ const dragHeight = fieldData.defaultHeight * zoom;
513
+ // Only show ghost when cursor is over the document page
514
+ const frameRect = frame.getBoundingClientRect();
515
+ if (e.clientX >= frameRect.left && e.clientX <= frameRect.right &&
516
+ e.clientY >= frameRect.top && e.clientY <= frameRect.bottom) {
517
+ ghost.style.visibility = 'visible';
518
+ const frameRect = frame.getBoundingClientRect();
519
+ const x = e.clientX - frameRect.left + frame.scrollLeft;
520
+ const y = e.clientY - frameRect.top + frame.scrollTop;
521
+ let left = x - dragWidth / 2;
522
+ let top = y - dragHeight / 2;
523
+ const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field'));
524
+ const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);
525
+ ghost.style.left = (snap.x !== null ? snap.x + frameRect.left - frame.scrollLeft : e.clientX - dragWidth / 2) + 'px';
526
+ ghost.style.top = (snap.y !== null ? snap.y + frameRect.top - frame.scrollTop : e.clientY - dragHeight / 2) + 'px';
527
+ showSnapGuides.bind(this)(snap.guides);
528
+ }
529
+ else {
530
+ ghost.style.visibility = 'hidden';
531
+ clearSnapGuides.bind(this)();
532
+ }
533
+ };
534
+ const cleanup = () => {
535
+ document.removeEventListener('mousemove', onMouseMove);
536
+ document.removeEventListener('mouseup', onMouseUp);
537
+ document.removeEventListener('keydown', onKeyDown);
538
+ ghost.remove();
539
+ chip.remove();
540
+ clearSnapGuides.bind(this)();
541
+ document.body.style.userSelect = '';
542
+ this._isToolboxDragging = false;
543
+ this._cancelToolboxDrag = null;
544
+ };
545
+ const onMouseUp = (e) => {
546
+ // Ignore mouseup if it's from the same click that started the drag
547
+ if (Date.now() - startTime < 100)
548
+ return;
549
+ const frameRect = frame.getBoundingClientRect();
550
+ const shouldPlace = e.clientX >= frameRect.left && e.clientX <= frameRect.right &&
551
+ e.clientY >= frameRect.top && e.clientY <= frameRect.bottom;
552
+ cleanup();
553
+ if (shouldPlace) {
554
+ const dragWidth = fieldData.defaultWidth * zoom;
555
+ const dragHeight = fieldData.defaultHeight * zoom;
556
+ const x = e.clientX - frameRect.left + frame.scrollLeft;
557
+ const y = e.clientY - frameRect.top + frame.scrollTop;
558
+ let left = x - dragWidth / 2;
559
+ let top = y - dragHeight / 2;
560
+ const fields = Array.from(this.component.shadowRoot.querySelectorAll('ls-editor-field'));
561
+ const snap = calculateSnap(left, top, dragWidth, dragHeight, fields, this.pageNum);
562
+ if (snap.x !== null)
563
+ left = snap.x;
564
+ if (snap.y !== null)
565
+ top = snap.y;
566
+ const finalTop = top / zoom;
567
+ const finalLeft = left / zoom;
568
+ this.component.shadowRoot.querySelectorAll('ls-editor-field').forEach(f => (f.selected = false));
569
+ const id = btoa('ele' + crypto.randomUUID());
570
+ const newData = {
571
+ action: 'create',
572
+ data: {
573
+ id,
574
+ value: '',
575
+ formElementType: fieldData.formElementType,
576
+ elementType: fieldData.elementType,
577
+ validation: fieldData.validation,
578
+ substantive: false,
579
+ top: finalTop,
580
+ left: finalLeft,
581
+ hideBorder: false,
582
+ height: fieldData.defaultHeight,
583
+ width: fieldData.defaultWidth,
584
+ pageDimensions: this.pageDimensions[this.pageNum - 1],
585
+ fontName: this.fontFamily,
586
+ fontSize: this.fontSize,
587
+ align: 'left',
588
+ signer: this.signer,
589
+ page: this.pageNum,
590
+ mapTo: null,
591
+ label: '',
592
+ helpText: null,
593
+ logicGroup: null,
594
+ optional: false,
595
+ options: null,
596
+ logicAction: null,
597
+ labelExtra: null,
598
+ fieldOrder: null,
599
+ ax: finalLeft > 0 ? finalLeft / this.pageDimensions[this.pageNum - 1].width : 0,
600
+ ay: finalTop > 0 ? finalTop / this.pageDimensions[this.pageNum - 1].height : 0,
601
+ bx: (finalLeft + fieldData.defaultWidth) / this.pageDimensions[this.pageNum - 1].width,
602
+ by: (finalTop + fieldData.defaultHeight) / this.pageDimensions[this.pageNum - 1].height,
603
+ templateId: this._template.id,
604
+ },
605
+ };
606
+ this.mutate.emit([newData]);
607
+ }
608
+ };
609
+ const onKeyDown = (e) => {
610
+ if (e.key === 'Escape') {
611
+ cleanup();
612
+ }
613
+ };
614
+ this._cancelToolboxDrag = cleanup;
615
+ document.addEventListener('mousemove', onMouseMove);
616
+ document.addEventListener('mouseup', onMouseUp);
617
+ document.addEventListener('keydown', onKeyDown);
618
+ }
387
619
  export function mouseDoubleClick(event) {
620
+ // Disable double-click field creation in preview mode
621
+ if (this.mode === 'preview') {
622
+ return;
623
+ }
388
624
  console.log('double click', this.fieldTypeSelected, this.signer);
389
625
  try {
390
626
  let data = this.fieldTypeSelected;