@hiai-gg/docsmint 0.7.4 → 0.7.6

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 (246) hide show
  1. package/README.md +2 -2
  2. package/dist/backend/index.js +130026 -129609
  3. package/dist/backend-account-runtime-cleanup.js +2 -0
  4. package/dist/backend-api-key-facade.js +2 -0
  5. package/dist/backend-pipeline-cancellation.js +2 -0
  6. package/dist/frontend/CategoryDialog-D_xFSWGh.js +630 -0
  7. package/dist/frontend/ConfirmDialog-Cfq3D2Di.js +221 -0
  8. package/dist/frontend/{CreateSnapshotDialog-CojnWChs.js → CreateSnapshotDialog-BHODxZWK.js} +53 -52
  9. package/dist/frontend/{DatePicker-7FAbIOGg.js → DatePicker-CZyCnQ1q.js} +62 -64
  10. package/dist/frontend/{DeleteDialog-BIlqRb1u.js → DeleteDialog-DaJOO6SB.js} +17 -17
  11. package/dist/frontend/FolderNode-C_91NlEO.js +307 -0
  12. package/dist/frontend/{FolderTreeSelector-BMB1MS9N.js → FolderTreeSelector-DqO-f0nt.js} +7 -7
  13. package/dist/frontend/HiAiEditor-DtUGbQg6.js +3160 -0
  14. package/dist/frontend/{HiaiDocsExtensionProvider-OSn96BBw.js → HiaiDocsExtensionProvider-Cc3yzW5I.js} +5 -3
  15. package/dist/frontend/{Icon-Db-o32_E.js → Icon-y7xxAIC6.js} +1 -1
  16. package/dist/frontend/{SettingsDialog-DatuxOVX.js → SettingsDialog-BlIZqk2-.js} +169 -158
  17. package/dist/frontend/ShareDialog-CmX-VoJ9.js +273 -0
  18. package/dist/frontend/Sidebar-BVGm5BRR.js +2147 -0
  19. package/dist/frontend/{TagCreateDialog-Ch21yuWV.js → TagCreateDialog-BlGz4O9Z.js} +45 -36
  20. package/dist/frontend/action_cancel-Cuxsznzz.js +5 -0
  21. package/dist/frontend/action_close-BJm_52wm.js +5 -0
  22. package/dist/frontend/action_create-CtBQrRuj.js +5 -0
  23. package/dist/frontend/action_delete-BXBIzvn0.js +5 -0
  24. package/dist/frontend/action_go_to-VmK5jmEk.js +5 -0
  25. package/dist/frontend/action_loading-BLCGJVA9.js +5 -0
  26. package/dist/frontend/action_save-BRN2Z_GP.js +5 -0
  27. package/dist/frontend/api/attachments.js +1 -1
  28. package/dist/frontend/api/categories.js +1 -1
  29. package/dist/frontend/api/folders.js +1 -1
  30. package/dist/frontend/api/settings.js +1 -1
  31. package/dist/frontend/api/share.js +1 -1
  32. package/dist/frontend/api/tags.js +1 -1
  33. package/dist/frontend/app-shell.js +8 -8
  34. package/dist/frontend/{attachments-B2aH3hXF.js → attachments-C225gTA7.js} +2 -2
  35. package/dist/frontend/{auth-client-CnDZwPfp.js → auth-client-DCMne8vd.js} +630 -615
  36. package/dist/frontend/{bundle-mjs-DllmqUxV.js → bundle-mjs-CZ3g1Uzr.js} +35 -42
  37. package/dist/frontend/{camera-CzCxBOpc.js → camera-BI-BtnIm.js} +2 -2
  38. package/dist/frontend/{categories-X7gK8azc.js → categories-Bjcc41We.js} +1 -1
  39. package/dist/frontend/categories_update_error-4aSI8PTr.js +5 -0
  40. package/dist/frontend/{check-BIi-Ghti.js → check-sdTlLwi9.js} +2 -2
  41. package/dist/frontend/{chevron-down-C2ft7XUV.js → chevron-down-DlBnIE7Y.js} +2 -2
  42. package/dist/frontend/{circle-check-BrqfiQH1.js → circle-check-hWC-HeKu.js} +2 -2
  43. package/dist/frontend/{clock-Dz86E4Kz.js → clock-C4FHq-9q.js} +2 -2
  44. package/dist/frontend/collaboration.js +208 -103
  45. package/dist/frontend/components/category-dialog.js +1 -1
  46. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  47. package/dist/frontend/components/delete-dialog.js +1 -1
  48. package/dist/frontend/components/editor/compact-editor.js +1 -1
  49. package/dist/frontend/components/editor/document-editor.js +1 -1
  50. package/dist/frontend/components/editor/document-title.js +3 -2
  51. package/dist/frontend/components/editor/docx-serializer.js +140 -125
  52. package/dist/frontend/components/editor/extensions.js +1 -1
  53. package/dist/frontend/components/editor/markdown-toggle.js +9 -9
  54. package/dist/frontend/components/editor/markdown.js +1 -1
  55. package/dist/frontend/components/folder-node.js +1 -1
  56. package/dist/frontend/components/folder-tree-selector.js +1 -1
  57. package/dist/frontend/components/save-as-dialog.js +34 -25
  58. package/dist/frontend/components/settings.js +1 -1
  59. package/dist/frontend/components/share-dialog.js +1 -1
  60. package/dist/frontend/components/sidebar.js +1 -1
  61. package/dist/frontend/components/tag-create-dialog.js +1 -1
  62. package/dist/frontend/components/version-history.js +181 -176
  63. package/dist/frontend/{confirm-dialog-8T6vsWL7.js → confirm-dialog-BFTxjLv-.js} +46 -37
  64. package/dist/frontend/{copy-CvCh4ZVt.js → copy-4H99lwAQ.js} +2 -2
  65. package/dist/frontend/dashboard.js +462 -456
  66. package/dist/frontend/{db-Bo1t_76T.js → db-CbFRFAm2.js} +40 -38
  67. package/dist/frontend/{dialog-CiSwD-_v.js → dialog-tHAH3-9M.js} +10 -10
  68. package/dist/frontend/dist-Cg1BpNS7.js +2262 -0
  69. package/dist/frontend/dndzone-BrakBHwm.js +1375 -0
  70. package/dist/frontend/doc_title_label-DS9jSIh2.js +5 -0
  71. package/dist/frontend/doc_title_placeholder-DBQpM1aH.js +5 -0
  72. package/dist/frontend/{document-drop-coordinator-C4xHMjwC.js → document-drop-coordinator-Da7HcXgv.js} +1 -1
  73. package/dist/frontend/document-drop-coordinator.js +1 -1
  74. package/dist/frontend/{dropdown-menu-Bi5Iipwf.js → dropdown-menu-AJYeFPHu.js} +145 -145
  75. package/dist/frontend/{editor-content-sanitizer-CC_A8aaI.js → editor-content-sanitizer-CWjqiz0T.js} +30 -30
  76. package/dist/frontend/{editorExtensions--HusV819.js → editorExtensions-B-mKiWqq.js} +5085 -6220
  77. package/dist/frontend/editor_markdown_placeholder-BIWDUF1E.js +5 -0
  78. package/dist/frontend/error_dismiss-Dx_JbRjs.js +5 -0
  79. package/dist/frontend/error_generic-CzNtmBT4.js +5 -0
  80. package/dist/frontend/extension.js +1 -1
  81. package/dist/frontend/{folder-Cx60MRpi.js → folder-BAX6qBYy.js} +3 -3
  82. package/dist/frontend/{folders-ONG03Dkv.js → folders-CC0UWkZH.js} +3 -3
  83. package/dist/frontend/folders_rename-BJo4Gipq.js +5 -0
  84. package/dist/frontend/i18n.js +1007 -6
  85. package/dist/frontend/{identity-Ynrglr5i.js → identity-O4lAuchv.js} +2 -2
  86. package/dist/frontend/{input-N9dNSOWF.js → input-CrlYAH2S.js} +2 -2
  87. package/dist/frontend/{label-CK72_fw8.js → label-B0syEfns.js} +2 -2
  88. package/dist/frontend/{markdown-H6QB53zu.js → markdown-CMij27Gg.js} +1 -1
  89. package/dist/frontend/offline/identity.js +1 -1
  90. package/dist/frontend/{floating-layer-anchor-BGIndLY-.js → popper-layer-force-mount-BAYjg6Pp.js} +2476 -2564
  91. package/dist/frontend/{rolldown-runtime-CWhphoD1.js → rolldown-runtime-DArdT4gl.js} +2 -2
  92. package/dist/frontend/{rotate-ccw-ta4NosZ0.js → rotate-ccw-DtZDfSK3.js} +2 -2
  93. package/dist/frontend/runtime-CwWSo6c9.js +128 -0
  94. package/dist/frontend/{schemas-DwtKylCJ.js → schemas-CdPhcuru.js} +6 -7
  95. package/dist/frontend/scroll_to_top_aria-CvkNF_Hu.js +5 -0
  96. package/dist/frontend/search.js +237 -265
  97. package/dist/frontend/search_title-DOC0cPlQ.js +5 -0
  98. package/dist/frontend/{select-value-BD1DToYs.js → select-value-D9VqY5n5.js} +575 -572
  99. package/dist/frontend/{settings-BR48ihB4.js → settings-DJW8JkdF.js} +1 -1
  100. package/dist/frontend/{share-D7JtkC85.js → share-D5yo0JOh.js} +2 -1
  101. package/dist/frontend/share_copied-DPxVzfWh.js +5 -0
  102. package/dist/frontend/share_toggle_password-DdxfIjj1.js +5 -0
  103. package/dist/frontend/shared-document.js +1 -1
  104. package/dist/frontend/sidebar_uncategorized-qJ2_Aonf.js +5 -0
  105. package/dist/frontend/sort_relevance-DwYX5MO9.js +5 -0
  106. package/dist/frontend/{tag-DhVFHMcV.js → tag-ChpMfbfa.js} +3 -3
  107. package/dist/frontend/{tags-BdCaMGfj.js → tags-CzPNUoFw.js} +1 -1
  108. package/dist/frontend/tags_load_error-BKjA1pI0.js +5 -0
  109. package/dist/frontend/tags_new-BiNAJ9Bx.js +5 -0
  110. package/dist/frontend/{textarea-pl_fDBre.js → textarea-l_gRXsrH.js} +2 -2
  111. package/dist/frontend/theme.js +1 -1
  112. package/dist/frontend/{theme.svelte-DG3RS7wv.js → theme.svelte-Bzitjfh9.js} +2 -2
  113. package/dist/frontend/theme_system-BBNUhYKh.js +5 -0
  114. package/dist/frontend/utils/dndzone.js +1 -1
  115. package/dist/frontend/utils-B4LKx7VS.js +7 -0
  116. package/dist/frontend/{utils-DrfHTcei.js → utils-BovMJHdA.js} +2 -2
  117. package/dist/frontend/utils.js +1 -1
  118. package/dist/frontend/version_create_snapshot-3bu-0qzH.js +5 -0
  119. package/dist/frontend/version_restored_from-dVRN3Zdk.js +5 -0
  120. package/dist/frontend/version_snapshot_label_placeholder-DrMikux0.js +5 -0
  121. package/dist/frontend/weekday_we-C5H_M-df.js +5 -0
  122. package/dist/frontend/{x-cfdlccjs.js → x-B2ifxSH7.js} +2 -2
  123. package/dist/frontend/{awareness-snQ3RD9f.js → yjs-VUcKqaKW.js} +835 -944
  124. package/dist/frontend-ssr/api/attachments.js +92 -1
  125. package/dist/frontend-ssr/api/categories.js +1 -1
  126. package/dist/frontend-ssr/api/documents.js +1 -1
  127. package/dist/frontend-ssr/api/folders.js +1 -1
  128. package/dist/frontend-ssr/api/settings.js +1 -1
  129. package/dist/frontend-ssr/api/share.js +30 -1
  130. package/dist/frontend-ssr/api/tags.js +1 -1
  131. package/dist/frontend-ssr/app-shell.js +25 -18
  132. package/dist/frontend-ssr/assets/{CategoryDialog-DsXe54EF.js → CategoryDialog-C41IBNWG.js} +26 -35
  133. package/dist/frontend-ssr/assets/ConfirmDialog-CWO0HBaS.js +424 -0
  134. package/dist/frontend-ssr/assets/{CreateSnapshotDialog-D3-PjXVr.js → CreateSnapshotDialog-CECCRK0d.js} +12 -18
  135. package/dist/frontend-ssr/assets/{DatePicker-C9suIA1S.js → DatePicker-TZVeMZ2S.js} +32 -20
  136. package/dist/frontend-ssr/assets/{DeleteDialog-DxtMrS1O.js → DeleteDialog-BVnmzR2e.js} +5 -7
  137. package/dist/frontend-ssr/assets/{FolderNode-ChD10Elp.js → FolderNode-CClgk8BL.js} +7 -7
  138. package/dist/frontend-ssr/assets/{FolderTreeSelector-Bxi8EqMm.js → FolderTreeSelector-DnrKCYtl.js} +17 -20
  139. package/dist/frontend-ssr/assets/{HiAiEditor-2X3Uyg1B.js → HiAiEditor-_-m7MJDd.js} +330 -254
  140. package/dist/frontend-ssr/assets/{Icon-QwirKi9Y.js → Icon-Clqe8D8X.js} +28 -16
  141. package/dist/frontend-ssr/assets/{SettingsDialog-DDy0hN8x.js → SettingsDialog-BdvHRAxF.js} +45 -49
  142. package/dist/frontend-ssr/assets/{ShareDialog-BwW_wF4G.js → ShareDialog-DHPbSHZg.js} +5 -6
  143. package/dist/frontend-ssr/assets/{Sidebar-Dy-5gXOf.js → Sidebar-B3Saqn0O.js} +90 -93
  144. package/dist/frontend-ssr/assets/{TagCreateDialog-BPzgOaX8.js → TagCreateDialog-CPg-nG0D.js} +14 -14
  145. package/dist/frontend-ssr/assets/action_cancel-OVgQDP5Q.js +22 -0
  146. package/dist/frontend-ssr/assets/action_close-DagDyMXk.js +22 -0
  147. package/dist/frontend-ssr/assets/action_create-hqJWjyqh.js +22 -0
  148. package/dist/frontend-ssr/assets/action_delete-B1-16jSo.js +22 -0
  149. package/dist/frontend-ssr/assets/action_go_to-DQScgw7P.js +22 -0
  150. package/dist/frontend-ssr/assets/action_save-Bx7vlLZI.js +22 -0
  151. package/dist/frontend-ssr/assets/{api-keys-DIbclwj5.js → api-keys-CHOrbU-Q.js} +1 -1
  152. package/dist/frontend-ssr/assets/{auth-client-CojKIzqy.js → auth-client-DzkZlSQ8.js} +295 -261
  153. package/dist/frontend-ssr/assets/{camera-D6s20LDi.js → camera-Dwwtgvfn.js} +10 -6
  154. package/dist/frontend-ssr/assets/{categories-av9xjeg5.js → categories-C_dxFoHi.js} +1 -1
  155. package/dist/frontend-ssr/assets/categories_update_error-DkKgsqdD.js +202 -0
  156. package/dist/frontend-ssr/assets/{chevron-down-CvqKATjM.js → chevron-down-C6BTPJFz.js} +10 -6
  157. package/dist/frontend-ssr/assets/{chevron-right-DKD7WXjz.js → chevron-right-CseGE1qd.js} +10 -6
  158. package/dist/frontend-ssr/assets/{circle-check-CPS9dKEo.js → circle-check-BRhWPZo1.js} +10 -6
  159. package/dist/frontend-ssr/assets/{client-DZMkDkDn.js → client-rfwQYYHY.js} +4 -2
  160. package/dist/frontend-ssr/assets/{clock-CzsE58TH.js → clock-DpP_Y7WP.js} +10 -6
  161. package/dist/frontend-ssr/assets/{confirm-dialog-wYC07DPx.js → confirm-dialog-DeOR0SnQ.js} +44 -31
  162. package/dist/frontend-ssr/assets/{copy-DkkCPkBL.js → copy-DRMKiRZ0.js} +10 -6
  163. package/dist/frontend-ssr/assets/{db-BhwJPEkn.js → db-CUkQe9AU.js} +1 -1
  164. package/dist/frontend-ssr/assets/{dialog-ClcuF7nD.js → dialog--tDgDGw9.js} +12 -15
  165. package/dist/frontend-ssr/assets/{dndzone-DMvTO_Jz.js → dndzone-WtNaDxoQ.js} +309 -77
  166. package/dist/frontend-ssr/assets/doc_title_label-Ev_ltlh3.js +22 -0
  167. package/dist/frontend-ssr/assets/doc_title_placeholder-DSHpUb7w.js +22 -0
  168. package/dist/frontend-ssr/assets/{documents-CZ-wQohy.js → documents-CEuA1V6N.js} +1 -1
  169. package/dist/frontend-ssr/assets/{dropdown-menu-BKMGVNLL.js → dropdown-menu-CdEpn_LT.js} +74 -75
  170. package/dist/frontend-ssr/assets/editor_markdown_placeholder-BpezdkOr.js +42 -0
  171. package/dist/frontend-ssr/assets/editor_toolbar_undo-CKJAOqv2.js +562 -0
  172. package/dist/frontend-ssr/assets/error_generic-DTK0kwxT.js +42 -0
  173. package/dist/frontend-ssr/assets/{folder-DYIE-XPP.js → folder-DszunwKc.js} +10 -6
  174. package/dist/frontend-ssr/assets/{folders-BX30gHv6.js → folders-BOXeb9hz.js} +3 -2
  175. package/dist/frontend-ssr/assets/folders_rename-DvciOb6K.js +122 -0
  176. package/dist/frontend-ssr/assets/{identity-DcMMBKWg.js → identity-veXobEfE.js} +2 -2
  177. package/dist/frontend-ssr/assets/{input-DcDR8L8M.js → input-BlAj7LzC.js} +2 -2
  178. package/dist/frontend-ssr/assets/{label-Cz0_svJx.js → label-BRToaMg9.js} +2 -2
  179. package/dist/frontend-ssr/assets/{loader-circle-CIEWGyfP.js → loader-circle-BpRVrMZg.js} +10 -6
  180. package/dist/frontend-ssr/assets/{floating-layer-anchor-BoiiIEiK.js → popper-layer-force-mount-Djnq7l7a.js} +3684 -3674
  181. package/dist/frontend-ssr/assets/{rotate-ccw-dJSqPyTd.js → rotate-ccw-1GOD_yt_.js} +10 -6
  182. package/dist/frontend-ssr/assets/runtime-O78RzRqx.js +559 -0
  183. package/dist/frontend-ssr/assets/scroll_to_top_aria-BN4ZfOnM.js +22 -0
  184. package/dist/frontend-ssr/assets/search_title-CKUsQDT0.js +22 -0
  185. package/dist/frontend-ssr/assets/search_toggle_filters-hS9rvQhC.js +282 -0
  186. package/dist/frontend-ssr/assets/{select-value-CaDktvDW.js → select-value-BCWSsoTd.js} +204 -218
  187. package/dist/frontend-ssr/assets/{settings-Mp8EuFSn.js → settings-DwAcLGM1.js} +2 -2
  188. package/dist/frontend-ssr/assets/share_copied-BxU9rjXG.js +602 -0
  189. package/dist/frontend-ssr/assets/share_toggle_password-C6OmroqR.js +202 -0
  190. package/dist/frontend-ssr/assets/sidebar_uncategorized-Dx-LTd5w.js +102 -0
  191. package/dist/frontend-ssr/assets/{tag-BmiVU_Ej.js → tag-DFh6nF9R.js} +19 -11
  192. package/dist/frontend-ssr/assets/{tag-store.svelte-BM1lUI_P.js → tag-store.svelte-QRysvGKe.js} +1 -1
  193. package/dist/frontend-ssr/assets/{tags-BQsI_6OW.js → tags-BBCoFYro.js} +1 -1
  194. package/dist/frontend-ssr/assets/tags_load_error-CPrc6Gzs.js +362 -0
  195. package/dist/frontend-ssr/assets/tags_new-VmMr9v2V.js +62 -0
  196. package/dist/frontend-ssr/assets/{textarea-BGrjPOgU.js → textarea-BuszTo9i.js} +2 -2
  197. package/dist/frontend-ssr/assets/{theme.svelte-CN3BUhJG.js → theme.svelte-shZrSxz8.js} +1 -1
  198. package/dist/frontend-ssr/assets/theme_system-BucaNntV.js +362 -0
  199. package/dist/frontend-ssr/assets/{utils-Cg_R05dR.js → utils-BK35BJKQ.js} +1 -1
  200. package/dist/frontend-ssr/assets/version_create_snapshot-COHzwjle.js +22 -0
  201. package/dist/frontend-ssr/assets/version_restored_from-CertjFDl.js +242 -0
  202. package/dist/frontend-ssr/assets/version_snapshot_label_placeholder-Cy_rMCij.js +222 -0
  203. package/dist/frontend-ssr/assets/weekday_we-DrI3U230.js +422 -0
  204. package/dist/frontend-ssr/components/category-dialog.js +1 -1
  205. package/dist/frontend-ssr/components/create-snapshot-dialog.js +1 -1
  206. package/dist/frontend-ssr/components/delete-dialog.js +1 -1
  207. package/dist/frontend-ssr/components/editor/compact-editor.js +1 -1
  208. package/dist/frontend-ssr/components/editor/document-editor.js +1 -1
  209. package/dist/frontend-ssr/components/editor/document-title.js +2 -1
  210. package/dist/frontend-ssr/components/editor/markdown-toggle.js +2 -2
  211. package/dist/frontend-ssr/components/folder-node.js +1 -1
  212. package/dist/frontend-ssr/components/folder-tree-selector.js +1 -1
  213. package/dist/frontend-ssr/components/save-as-dialog.js +12 -14
  214. package/dist/frontend-ssr/components/settings.js +1 -1
  215. package/dist/frontend-ssr/components/share-dialog.js +1 -1
  216. package/dist/frontend-ssr/components/sidebar.js +1 -1
  217. package/dist/frontend-ssr/components/tag-create-dialog.js +1 -1
  218. package/dist/frontend-ssr/components/version-history.js +47 -51
  219. package/dist/frontend-ssr/dashboard.js +243 -232
  220. package/dist/frontend-ssr/i18n.js +6698 -1
  221. package/dist/frontend-ssr/offline/identity.js +1 -1
  222. package/dist/frontend-ssr/search.js +28 -31
  223. package/dist/frontend-ssr/shared-document.js +1 -2
  224. package/dist/frontend-ssr/theme.js +1 -1
  225. package/dist/frontend-ssr/utils/dndzone.js +1 -1
  226. package/dist/lifecycle-runtime.js +4437 -2019
  227. package/dist/mcp-cli.js +1 -1
  228. package/dist/mcp-server.js +1 -1
  229. package/package.json +7 -7
  230. package/packages/cli/src/index.ts +1 -1
  231. package/packages/db/src/schema.ts +2 -0
  232. package/server.json +2 -2
  233. package/dist/frontend/CategoryDialog-bQKMpVFD.js +0 -631
  234. package/dist/frontend/ConfirmDialog-DF7kgkyq.js +0 -139
  235. package/dist/frontend/FolderNode-Cf443LBa.js +0 -298
  236. package/dist/frontend/HiAiEditor-CMZ-eL8s.js +0 -2992
  237. package/dist/frontend/ShareDialog-Bwz2y3Le.js +0 -281
  238. package/dist/frontend/Sidebar-C_t5RrOJ.js +0 -2101
  239. package/dist/frontend/dist-DQa_OHOa.js +0 -268
  240. package/dist/frontend/dndzone-BzsOINtP.js +0 -1199
  241. package/dist/frontend/messages-DTRe4U2V.js +0 -1093
  242. package/dist/frontend/utils-CMQRlxbx.js +0 -7
  243. package/dist/frontend-ssr/assets/ConfirmDialog-DrH653ua.js +0 -136
  244. package/dist/frontend-ssr/assets/attachments-BdkOp8ha.js +0 -93
  245. package/dist/frontend-ssr/assets/messages-B1TjVIH8.js +0 -11147
  246. package/dist/frontend-ssr/assets/share-qTqvd6Lu.js +0 -30
@@ -1,4 +1,4 @@
1
- //#region ../node_modules/.bun/svelte-dnd-action@0.9.70+ff5f301bb2db9a0d/node_modules/svelte-dnd-action/dist/index.mjs
1
+ //#region ../node_modules/.bun/svelte-dnd-action@0.9.79+7a2629d9b18e82d0/node_modules/svelte-dnd-action/dist/index.mjs
2
2
  function ownKeys(object, enumerableOnly) {
3
3
  var keys = Object.keys(object);
4
4
  if (Object.getOwnPropertySymbols) {
@@ -256,6 +256,17 @@ var SOURCES = {
256
256
  POINTER: "pointer",
257
257
  KEYBOARD: "keyboard"
258
258
  };
259
+ var KEYBOARD_DRAG_TRIGGER_KEYS = {
260
+ space: [" "],
261
+ enter: ["Enter"],
262
+ space_or_enter: [" ", "Enter"]
263
+ };
264
+ var DEFAULT_KEYBOARD_DRAG_TRIGGER = "space_or_enter";
265
+ var KEYBOARD_DRAG_TRIGGER_PHRASES = {
266
+ space: "space-bar",
267
+ enter: "enter",
268
+ space_or_enter: "space-bar or enter"
269
+ };
259
270
  var SHADOW_ITEM_MARKER_PROPERTY_NAME = "isDndShadowItem";
260
271
  var SHADOW_ELEMENT_ATTRIBUTE_NAME = "data-is-dnd-shadow-item-internal";
261
272
  var SHADOW_ELEMENT_HINT_ATTRIBUTE_NAME = "data-is-dnd-shadow-item-hint";
@@ -299,8 +310,8 @@ function getBoundingRectNoTransforms(el) {
299
310
  dy = +ta[5];
300
311
  } else return rect;
301
312
  var to = style.transformOrigin;
302
- var x = rect.x - dx - (1 - sx) * parseFloat(to);
303
- var y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(" ") + 1));
313
+ var x = rect.left - dx - (1 - sx) * parseFloat(to);
314
+ var y = rect.top - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(" ") + 1));
304
315
  var w = sx ? rect.width / sx : el.offsetWidth;
305
316
  var h = sy ? rect.height / sy : el.offsetHeight;
306
317
  return {
@@ -921,6 +932,20 @@ function trs(property) {
921
932
  return "".concat(property, " ").concat(TRANSITION_DURATION_SECONDS, "s ease");
922
933
  }
923
934
  /**
935
+ * Adds the size transitions after the dragged element's initial styles have been applied.
936
+ * This normally happens in a timeout to avoid a browser rendering bug, but a synchronous
937
+ * first morph can happen before that timeout and needs the transitions immediately.
938
+ * @param {HTMLElement} draggedEl
939
+ */
940
+ function ensureMorphSizeTransitions(draggedEl) {
941
+ var transitionProperties = draggedEl.style.transitionProperty.split(",").map(function(property) {
942
+ return property.trim();
943
+ });
944
+ if (transitionProperties.includes("all")) return;
945
+ if (!transitionProperties.includes("width")) draggedEl.style.transition += ", ".concat(trs("width"));
946
+ if (!transitionProperties.includes("height")) draggedEl.style.transition += ", ".concat(trs("height"));
947
+ }
948
+ /**
924
949
  * clones the given element and applies proper styles and transitions to the dragged element
925
950
  * @param {HTMLElement} originalElement
926
951
  * @param {Point} [positionCenterOnXY]
@@ -951,7 +976,7 @@ function createDraggedElementFrom(originalElement, positionCenterOnXY) {
951
976
  draggedEl.style.width = "".concat(rect.width, "px");
952
977
  draggedEl.style.transition = "".concat(trs("top"), ", ").concat(trs("left"), ", ").concat(trs("background-color"), ", ").concat(trs("opacity"), ", ").concat(trs("color"), " ");
953
978
  window.setTimeout(function() {
954
- return draggedEl.style.transition += ", ".concat(trs("width"), ", ").concat(trs("height"));
979
+ return ensureMorphSizeTransitions(draggedEl);
955
980
  }, 0);
956
981
  draggedEl.style.zIndex = "9999";
957
982
  draggedEl.style.cursor = "grabbing";
@@ -972,22 +997,26 @@ function moveDraggedElementToWasDroppedState(draggedEl) {
972
997
  * @param {number} currentMouseY
973
998
  */
974
999
  function morphDraggedElementToBeLike(draggedEl, copyFromEl, currentMouseX, currentMouseY) {
1000
+ ensureMorphSizeTransitions(draggedEl);
975
1001
  copyStylesFromTo(copyFromEl, draggedEl);
976
1002
  var newRect = copyFromEl.getBoundingClientRect();
977
1003
  var draggedElRect = draggedEl.getBoundingClientRect();
1004
+ var draggedElComputedStyle = window.getComputedStyle(draggedEl);
1005
+ var currentLeft = parseFloat(draggedElComputedStyle.left);
1006
+ var currentTop = parseFloat(draggedElComputedStyle.top);
978
1007
  var widthChange = newRect.width - draggedElRect.width;
979
1008
  var heightChange = newRect.height - draggedElRect.height;
980
1009
  if (widthChange || heightChange) {
981
1010
  var relativeDistanceOfMousePointerFromDraggedSides = {
982
- left: (currentMouseX - draggedElRect.left) / draggedElRect.width,
983
- top: (currentMouseY - draggedElRect.top) / draggedElRect.height
1011
+ left: draggedElRect.width ? (currentMouseX - draggedElRect.left) / draggedElRect.width : 0,
1012
+ top: draggedElRect.height ? (currentMouseY - draggedElRect.top) / draggedElRect.height : 0
984
1013
  };
985
1014
  if (!getFeatureFlag(FEATURE_FLAG_NAMES.USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT)) {
986
1015
  draggedEl.style.height = "".concat(newRect.height, "px");
987
1016
  draggedEl.style.width = "".concat(newRect.width, "px");
988
1017
  }
989
- draggedEl.style.left = "".concat(parseFloat(draggedEl.style.left) - relativeDistanceOfMousePointerFromDraggedSides.left * widthChange, "px");
990
- draggedEl.style.top = "".concat(parseFloat(draggedEl.style.top) - relativeDistanceOfMousePointerFromDraggedSides.top * heightChange, "px");
1018
+ draggedEl.style.left = "".concat(currentLeft - relativeDistanceOfMousePointerFromDraggedSides.left * widthChange, "px");
1019
+ draggedEl.style.top = "".concat(currentTop - relativeDistanceOfMousePointerFromDraggedSides.top * heightChange, "px");
991
1020
  }
992
1021
  }
993
1022
  /**
@@ -1130,6 +1159,8 @@ var multiScroller;
1130
1159
  var touchDragHoldTimer;
1131
1160
  var touchHoldElapsed = false;
1132
1161
  var useCursorForDetectionActive = false;
1162
+ var pendingDragOwner;
1163
+ var watchedDropZones = /* @__PURE__ */ new Set();
1133
1164
  var typeToDropZones$1 = /* @__PURE__ */ new Map();
1134
1165
  var dzToConfig$1 = /* @__PURE__ */ new Map();
1135
1166
  var elToMouseDownListener = /* @__PURE__ */ new WeakMap();
@@ -1141,13 +1172,17 @@ function registerDropZone$1(dropZoneEl, type) {
1141
1172
  }
1142
1173
  }
1143
1174
  function unregisterDropZone$1(dropZoneEl, type) {
1144
- typeToDropZones$1.get(type)["delete"](dropZoneEl);
1175
+ var dropZones = typeToDropZones$1.get(type);
1176
+ if (!dropZones || !dropZones["delete"](dropZoneEl)) return;
1145
1177
  decrementActiveDropZoneCount();
1146
- if (typeToDropZones$1.get(type).size === 0) typeToDropZones$1["delete"](type);
1178
+ if (dropZones.size === 0) typeToDropZones$1["delete"](type);
1147
1179
  }
1148
1180
  function watchDraggedElement() {
1149
1181
  var dropZones = typeToDropZones$1.get(draggedElType);
1150
- var _iterator = _createForOfIteratorHelper(dropZones), _step;
1182
+ if (!dropZones || dropZones.size === 0) return;
1183
+ if (watchedDropZones.size > 0) unWatchDraggedElement();
1184
+ watchedDropZones = new Set(dropZones);
1185
+ var _iterator = _createForOfIteratorHelper(watchedDropZones), _step;
1151
1186
  try {
1152
1187
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
1153
1188
  var dz = _step.value;
@@ -1161,11 +1196,11 @@ function watchDraggedElement() {
1161
1196
  _iterator.f();
1162
1197
  }
1163
1198
  window.addEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop$1);
1164
- var setIntervalMs = Math.max.apply(Math, _toConsumableArray(Array.from(dropZones.keys()).map(function(dz) {
1199
+ var setIntervalMs = Math.max.apply(Math, _toConsumableArray(Array.from(watchedDropZones).map(function(dz) {
1165
1200
  return dzToConfig$1.get(dz).dropAnimationDurationMs;
1166
1201
  })));
1167
1202
  var observationIntervalMs = setIntervalMs === 0 ? DISABLED_OBSERVATION_INTERVAL_MS : Math.max(setIntervalMs, MIN_OBSERVATION_INTERVAL_MS);
1168
- multiScroller = createMultiScroller(dropZones, function() {
1203
+ multiScroller = createMultiScroller(watchedDropZones, function() {
1169
1204
  return currentMousePosition;
1170
1205
  });
1171
1206
  var getReferencePoint = useCursorForDetectionActive ? function() {
@@ -1176,10 +1211,10 @@ function watchDraggedElement() {
1176
1211
  } : function() {
1177
1212
  return findCenterOfElement(draggedEl);
1178
1213
  };
1179
- observe(draggedEl, dropZones, observationIntervalMs * 1.07, multiScroller, getReferencePoint);
1214
+ observe(draggedEl, watchedDropZones, observationIntervalMs * 1.07, multiScroller, getReferencePoint);
1180
1215
  }
1181
1216
  function unWatchDraggedElement() {
1182
- var _iterator2 = _createForOfIteratorHelper(typeToDropZones$1.get(draggedElType)), _step2;
1217
+ var _iterator2 = _createForOfIteratorHelper(watchedDropZones), _step2;
1183
1218
  try {
1184
1219
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1185
1220
  var dz = _step2.value;
@@ -1192,6 +1227,7 @@ function unWatchDraggedElement() {
1192
1227
  } finally {
1193
1228
  _iterator2.f();
1194
1229
  }
1230
+ watchedDropZones = /* @__PURE__ */ new Set();
1195
1231
  window.removeEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop$1);
1196
1232
  if (multiScroller) {
1197
1233
  multiScroller.destroy();
@@ -1308,6 +1344,7 @@ function handleDrop$1() {
1308
1344
  return item["isDndShadowItem"] ? draggedElData : item;
1309
1345
  });
1310
1346
  function finalizeWithinZone() {
1347
+ unWatchDraggedElement();
1311
1348
  unlockOriginDzMinDimensions();
1312
1349
  dispatchFinalizeEvent(shadowElDropZone, items, {
1313
1350
  trigger: isDraggedOutsideOfAnyDz ? TRIGGERS.DROPPED_OUTSIDE_OF_ANY : TRIGGERS.DROPPED_INTO_ZONE,
@@ -1341,11 +1378,13 @@ function animateDraggedToFinalPosition(shadowElIdx, callback) {
1341
1378
  window.setTimeout(callback, dropAnimationDurationMs);
1342
1379
  }
1343
1380
  function scheduleDZForRemovalAfterDrop(dz, destroy) {
1344
- scheduledForRemovalAfterDrop.push({
1381
+ var scheduledRemoval = {
1345
1382
  dz,
1346
1383
  destroy
1347
- });
1384
+ };
1385
+ scheduledForRemovalAfterDrop.push(scheduledRemoval);
1348
1386
  window.requestAnimationFrame(function() {
1387
+ if (!scheduledForRemovalAfterDrop.includes(scheduledRemoval)) return;
1349
1388
  hideElement(dz);
1350
1389
  document.body.appendChild(dz);
1351
1390
  });
@@ -1371,6 +1410,7 @@ function cleanupPostDrop() {
1371
1410
  touchDragHoldTimer = void 0;
1372
1411
  touchHoldElapsed = false;
1373
1412
  useCursorForDetectionActive = false;
1413
+ pendingDragOwner = void 0;
1374
1414
  if (scheduledForRemovalAfterDrop.length) {
1375
1415
  scheduledForRemovalAfterDrop.forEach(function(_ref) {
1376
1416
  var dz = _ref.dz, destroy = _ref.destroy;
@@ -1382,6 +1422,7 @@ function cleanupPostDrop() {
1382
1422
  }
1383
1423
  function dndzone$2(node, options) {
1384
1424
  var initialized = false;
1425
+ var destroyed = false;
1385
1426
  var config = {
1386
1427
  items: void 0,
1387
1428
  type: void 0,
@@ -1418,11 +1459,17 @@ function dndzone$2(node, options) {
1418
1459
  touchHoldElapsed = false;
1419
1460
  }
1420
1461
  }
1421
- function handleFalseAlarm(e) {
1462
+ function cancelPendingDrag() {
1463
+ if (pendingDragOwner !== node) return;
1422
1464
  removeMaybeListeners();
1465
+ pendingDragOwner = void 0;
1423
1466
  originalDragTarget = void 0;
1424
1467
  dragStartMousePosition = void 0;
1425
1468
  currentMousePosition = void 0;
1469
+ }
1470
+ function handleFalseAlarm(e) {
1471
+ if (pendingDragOwner !== node) return;
1472
+ cancelPendingDrag();
1426
1473
  if (e.type === "touchend") {
1427
1474
  var clickEvent = new Event("click", {
1428
1475
  bubbles: true,
@@ -1432,6 +1479,7 @@ function dndzone$2(node, options) {
1432
1479
  }
1433
1480
  }
1434
1481
  function handleMouseMoveMaybeDragStart(e) {
1482
+ if (destroyed || pendingDragOwner !== node) return;
1435
1483
  var isTouch = !!e.touches;
1436
1484
  var c = isTouch ? e.touches[0] : e;
1437
1485
  if (isTouch && config.delayTouchStartMs > 0 && !touchHoldElapsed) {
@@ -1453,19 +1501,17 @@ function dndzone$2(node, options) {
1453
1501
  x: c.clientX,
1454
1502
  y: c.clientY
1455
1503
  };
1456
- if (Math.abs(currentMousePosition.x - dragStartMousePosition.x) >= MIN_MOVEMENT_BEFORE_DRAG_START_PX || Math.abs(currentMousePosition.y - dragStartMousePosition.y) >= MIN_MOVEMENT_BEFORE_DRAG_START_PX) {
1457
- removeMaybeListeners();
1458
- handleDragStart();
1459
- }
1504
+ if (Math.abs(currentMousePosition.x - dragStartMousePosition.x) >= MIN_MOVEMENT_BEFORE_DRAG_START_PX || Math.abs(currentMousePosition.y - dragStartMousePosition.y) >= MIN_MOVEMENT_BEFORE_DRAG_START_PX) handleDragStart();
1460
1505
  }
1461
1506
  function handleMouseDown(e) {
1462
1507
  if (e.target !== e.currentTarget && (e.target.value !== void 0 || e.target.isContentEditable)) return;
1463
1508
  if (e.button) return;
1464
- if (isWorkingOnPreviousDrag) return;
1509
+ if (destroyed || isWorkingOnPreviousDrag || pendingDragOwner) return;
1465
1510
  var isTouchStart = !!e.touches;
1466
1511
  var useDelay = isTouchStart && config.delayTouchStartMs > 0;
1467
1512
  if (!useDelay) e.preventDefault();
1468
1513
  e.stopPropagation();
1514
+ pendingDragOwner = node;
1469
1515
  var c = isTouchStart ? e.touches[0] : e;
1470
1516
  dragStartMousePosition = {
1471
1517
  x: c.clientX,
@@ -1474,17 +1520,24 @@ function dndzone$2(node, options) {
1474
1520
  currentMousePosition = _objectSpread2({}, dragStartMousePosition);
1475
1521
  originalDragTarget = e.currentTarget;
1476
1522
  if (useDelay) {
1523
+ var pendingTarget = originalDragTarget;
1477
1524
  touchHoldElapsed = false;
1478
1525
  touchDragHoldTimer = window.setTimeout(function() {
1479
- if (!originalDragTarget) return;
1526
+ if (destroyed || pendingDragOwner !== node || originalDragTarget !== pendingTarget) return;
1480
1527
  touchHoldElapsed = true;
1481
- removeMaybeListeners();
1482
1528
  handleDragStart();
1483
1529
  }, config.delayTouchStartMs);
1484
1530
  }
1485
1531
  addMaybeListeners();
1486
1532
  }
1487
1533
  function handleDragStart() {
1534
+ var _originalDragTarget;
1535
+ if (destroyed || pendingDragOwner !== node || isWorkingOnPreviousDrag || !((_originalDragTarget = originalDragTarget) !== null && _originalDragTarget !== void 0 && _originalDragTarget.parentElement)) {
1536
+ cancelPendingDrag();
1537
+ return;
1538
+ }
1539
+ removeMaybeListeners();
1540
+ pendingDragOwner = void 0;
1488
1541
  isWorkingOnPreviousDrag = true;
1489
1542
  var currentIdx = elToIdx.get(originalDragTarget);
1490
1543
  originIndex = currentIdx;
@@ -1501,7 +1554,7 @@ function dndzone$2(node, options) {
1501
1554
  draggedEl = createDraggedElementFrom(originalDragTarget, centreDraggedOnCursor && currentMousePosition);
1502
1555
  originDropZoneRoot.appendChild(draggedEl);
1503
1556
  function keepOriginalElementInDom() {
1504
- if (!draggedEl) return;
1557
+ if (!draggedEl || finalizingPreviousDrag) return;
1505
1558
  if (!originalDragTarget.parentElement) {
1506
1559
  originalDragTarget.setAttribute(ORIGINAL_DRAGGED_ITEM_MARKER_ATTRIBUTE, true);
1507
1560
  originDropZoneRoot.appendChild(originalDragTarget);
@@ -1567,16 +1620,18 @@ function dndzone$2(node, options) {
1567
1620
  function getConfigProp(dz, propName) {
1568
1621
  return dzToConfig$1.get(dz) ? dzToConfig$1.get(dz)[propName] : config[propName];
1569
1622
  }
1570
- if (initialized && isWorkingOnPreviousDrag && config.dropFromOthersDisabled !== dropFromOthersDisabled) if (dropFromOthersDisabled) styleInactiveDropZones([node], function(dz) {
1571
- return getConfigProp(dz, "dropTargetStyle");
1572
- }, function(dz) {
1573
- return getConfigProp(dz, "dropTargetClasses");
1574
- });
1575
- else styleActiveDropZones([node], function(dz) {
1576
- return getConfigProp(dz, "dropTargetStyle");
1577
- }, function(dz) {
1578
- return getConfigProp(dz, "dropTargetClasses");
1579
- });
1623
+ if (initialized && isWorkingOnPreviousDrag && config.dropFromOthersDisabled !== dropFromOthersDisabled) {
1624
+ if (dropFromOthersDisabled) styleInactiveDropZones([node], function(dz) {
1625
+ return getConfigProp(dz, "dropTargetStyle");
1626
+ }, function(dz) {
1627
+ return getConfigProp(dz, "dropTargetClasses");
1628
+ });
1629
+ else styleActiveDropZones([node], function(dz) {
1630
+ return getConfigProp(dz, "dropTargetStyle");
1631
+ }, function(dz) {
1632
+ return getConfigProp(dz, "dropTargetClasses");
1633
+ });
1634
+ }
1580
1635
  config.dropFromOthersDisabled = dropFromOthersDisabled;
1581
1636
  dzToConfig$1.set(node, config);
1582
1637
  registerDropZone$1(node, newType);
@@ -1607,8 +1662,25 @@ function dndzone$2(node, options) {
1607
1662
  configure(newOptions);
1608
1663
  },
1609
1664
  destroy: function destroy() {
1665
+ if (destroyed) return;
1666
+ destroyed = true;
1667
+ cancelPendingDrag();
1668
+ var _iterator3 = _createForOfIteratorHelper(node.children), _step3;
1669
+ try {
1670
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
1671
+ var draggableEl = _step3.value;
1672
+ draggableEl.removeEventListener("mousedown", elToMouseDownListener.get(draggableEl));
1673
+ draggableEl.removeEventListener("touchstart", elToMouseDownListener.get(draggableEl));
1674
+ }
1675
+ } catch (err) {
1676
+ _iterator3.e(err);
1677
+ } finally {
1678
+ _iterator3.f();
1679
+ }
1610
1680
  function destroyDz() {
1611
- unregisterDropZone$1(node, dzToConfig$1.get(node).type);
1681
+ var registeredConfig = dzToConfig$1.get(node);
1682
+ if (!registeredConfig) return;
1683
+ unregisterDropZone$1(node, registeredConfig.type);
1612
1684
  dzToConfig$1["delete"](node);
1613
1685
  }
1614
1686
  if (isWorkingOnPreviousDrag && !node.closest("[".concat(ORIGINAL_DRAGGED_ITEM_MARKER_ATTRIBUTE, "]"))) scheduleDZForRemovalAfterDrop(node, destroyDz);
@@ -1616,12 +1688,41 @@ function dndzone$2(node, options) {
1616
1688
  }
1617
1689
  };
1618
1690
  }
1619
- var _ID_TO_INSTRUCTION;
1691
+ var _INSTRUCTION_ID_TO_ST;
1620
1692
  var INSTRUCTION_IDs$1 = {
1621
1693
  DND_ZONE_ACTIVE: "dnd-zone-active",
1622
1694
  DND_ZONE_DRAG_DISABLED: "dnd-zone-drag-disabled"
1623
1695
  };
1624
- var ID_TO_INSTRUCTION = (_ID_TO_INSTRUCTION = {}, _defineProperty(_ID_TO_INSTRUCTION, INSTRUCTION_IDs$1.DND_ZONE_ACTIVE, "Tab to one the items and press space-bar or enter to start dragging it"), _defineProperty(_ID_TO_INSTRUCTION, INSTRUCTION_IDs$1.DND_ZONE_DRAG_DISABLED, "This is a disabled drag and drop list"), _ID_TO_INSTRUCTION);
1696
+ var INSTRUCTION_ID_TO_STRING_KEY = (_INSTRUCTION_ID_TO_ST = {}, _defineProperty(_INSTRUCTION_ID_TO_ST, INSTRUCTION_IDs$1.DND_ZONE_ACTIVE, "zoneActiveInstruction"), _defineProperty(_INSTRUCTION_ID_TO_ST, INSTRUCTION_IDs$1.DND_ZONE_DRAG_DISABLED, "zoneDragDisabledInstruction"), _INSTRUCTION_ID_TO_ST);
1697
+ var DEFAULT_ARIA_STRINGS = {
1698
+ dragStarted: function dragStarted(_ref) {
1699
+ var itemLabel = _ref.itemLabel, zoneLabel = _ref.zoneLabel, canMoveBetweenZones = _ref.canMoveBetweenZones;
1700
+ return "Started dragging item ".concat(itemLabel, ". Use the arrow keys to move it within its list ").concat(zoneLabel) + (canMoveBetweenZones ? ", or tab to another list in order to move the item into it" : "");
1701
+ },
1702
+ movedToPosition: function movedToPosition(_ref2) {
1703
+ var itemLabel = _ref2.itemLabel, zoneLabel = _ref2.zoneLabel, position = _ref2.position;
1704
+ return "Moved item ".concat(itemLabel, " to position ").concat(position, " in the list ").concat(zoneLabel);
1705
+ },
1706
+ movedToZoneEnd: function movedToZoneEnd(_ref3) {
1707
+ var itemLabel = _ref3.itemLabel, zoneLabel = _ref3.zoneLabel;
1708
+ return "Moved item ".concat(itemLabel, " to the end of the list ").concat(zoneLabel);
1709
+ },
1710
+ movedToZoneStart: function movedToZoneStart(_ref4) {
1711
+ var itemLabel = _ref4.itemLabel, zoneLabel = _ref4.zoneLabel;
1712
+ return "Moved item ".concat(itemLabel, " to the beginning of the list ").concat(zoneLabel);
1713
+ },
1714
+ dropped: function dropped(_ref5) {
1715
+ var itemLabel = _ref5.itemLabel;
1716
+ return "Stopped dragging item ".concat(itemLabel);
1717
+ },
1718
+ zoneActiveInstruction: function zoneActiveInstruction(_ref6) {
1719
+ var keyboardDragTrigger = _ref6.keyboardDragTrigger;
1720
+ return "Tab to one the items and press ".concat(KEYBOARD_DRAG_TRIGGER_PHRASES[keyboardDragTrigger], " to start dragging it");
1721
+ },
1722
+ zoneDragDisabledInstruction: "This is a disabled drag and drop list"
1723
+ };
1724
+ var ariaStrings = _objectSpread2({}, DEFAULT_ARIA_STRINGS);
1725
+ var instructionCtx = { keyboardDragTrigger: DEFAULT_KEYBOARD_DRAG_TRIGGER };
1625
1726
  var ALERT_DIV_ID = "dnd-action-aria-alert";
1626
1727
  var alertsDiv;
1627
1728
  function initAriaOnBrowser() {
@@ -1639,9 +1740,9 @@ function initAriaOnBrowser() {
1639
1740
  alertsDiv.setAttribute("role", "alert");
1640
1741
  })();
1641
1742
  document.body.prepend(alertsDiv);
1642
- Object.entries(ID_TO_INSTRUCTION).forEach(function(_ref) {
1643
- var _ref2 = _slicedToArray(_ref, 2), id = _ref2[0], txt = _ref2[1];
1644
- return document.body.prepend(instructionToHiddenDiv(id, txt));
1743
+ Object.entries(INSTRUCTION_ID_TO_STRING_KEY).forEach(function(_ref7) {
1744
+ var _ref8 = _slicedToArray(_ref7, 2), id = _ref8[0], key = _ref8[1];
1745
+ return document.body.prepend(instructionToHiddenDiv(id, formatWithFallback(key, instructionCtx)));
1645
1746
  });
1646
1747
  }
1647
1748
  /**
@@ -1659,7 +1760,7 @@ function initAria() {
1659
1760
  */
1660
1761
  function destroyAria() {
1661
1762
  if (isOnServer || !alertsDiv) return;
1662
- Object.keys(ID_TO_INSTRUCTION).forEach(function(id) {
1763
+ Object.keys(INSTRUCTION_ID_TO_STRING_KEY).forEach(function(id) {
1663
1764
  var _document$getElementB;
1664
1765
  return (_document$getElementB = document.getElementById(id)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.remove();
1665
1766
  });
@@ -1669,12 +1770,18 @@ function destroyAria() {
1669
1770
  function instructionToHiddenDiv(id, txt) {
1670
1771
  var div = document.createElement("div");
1671
1772
  div.id = id;
1672
- div.innerHTML = "<p>".concat(txt, "</p>");
1773
+ renderInstruction(div, txt);
1673
1774
  div.style.display = "none";
1674
1775
  div.style.position = "fixed";
1675
1776
  div.style.zIndex = "-5";
1676
1777
  return div;
1677
1778
  }
1779
+ function renderInstruction(div, txt) {
1780
+ div.replaceChildren();
1781
+ var paragraph = document.createElement("p");
1782
+ paragraph.textContent = txt;
1783
+ div.appendChild(paragraph);
1784
+ }
1678
1785
  /**
1679
1786
  * Will make the screen reader alert the provided text to the user
1680
1787
  * @param {string} txt
@@ -1688,6 +1795,39 @@ function alertToScreenReader(txt) {
1688
1795
  alertsDiv.style.display = "none";
1689
1796
  alertsDiv.style.display = "inline";
1690
1797
  }
1798
+ function formatAriaString(strings, key, ctx) {
1799
+ var ariaString = strings[key];
1800
+ return typeof ariaString === "function" ? ariaString(ctx) : ariaString;
1801
+ }
1802
+ function formatWithFallback(key, ctx) {
1803
+ try {
1804
+ return formatAriaString(ariaStrings, key, ctx);
1805
+ } catch (err) {
1806
+ try {
1807
+ return formatAriaString(DEFAULT_ARIA_STRINGS, key, ctx);
1808
+ } catch (defaultErr) {
1809
+ return "";
1810
+ }
1811
+ }
1812
+ }
1813
+ /**
1814
+ * Formats and announces one configured ARIA message. If a consumer formatter throws, the built-in
1815
+ * English formatter is used and the error is reported through printDebug. Formatter errors must not
1816
+ * escape because this function runs during the drag lifecycle.
1817
+ * @param {string} key - one of the keys accepted by setAriaStrings
1818
+ * @param {Object} [ctx] - the interpolation context for that key
1819
+ */
1820
+ function announceToScreenReader(key, ctx) {
1821
+ alertToScreenReader(formatWithFallback(key, ctx));
1822
+ }
1823
+ var activeTrigger = DEFAULT_KEYBOARD_DRAG_TRIGGER;
1824
+ /**
1825
+ * @param {string} key - a KeyboardEvent.key value
1826
+ * @return {boolean} whether this key starts/stops a drag under the active trigger
1827
+ */
1828
+ function isKeyboardDragTriggerKey(key) {
1829
+ return KEYBOARD_DRAG_TRIGGER_KEYS[activeTrigger].includes(key);
1830
+ }
1691
1831
  var DEFAULT_DROP_ZONE_TYPE = "--any--";
1692
1832
  var DEFAULT_DROP_TARGET_STYLE = { outline: "rgba(255, 255, 102, 0.7) solid 2px" };
1693
1833
  var isDragging = false;
@@ -1717,10 +1857,11 @@ function registerDropZone(dropZoneEl, type) {
1717
1857
  }
1718
1858
  }
1719
1859
  function unregisterDropZone(dropZoneEl, type) {
1720
- if (focusedDz === dropZoneEl) handleDrop();
1721
- typeToDropZones.get(type)["delete"](dropZoneEl);
1860
+ if (isDragging && focusedDz === dropZoneEl) handleDrop();
1861
+ var dropZones = typeToDropZones.get(type);
1862
+ if (!dropZones || !dropZones["delete"](dropZoneEl)) return;
1722
1863
  decrementActiveDropZoneCount();
1723
- if (typeToDropZones.get(type).size === 0) typeToDropZones["delete"](type);
1864
+ if (dropZones.size === 0) typeToDropZones["delete"](type);
1724
1865
  if (typeToDropZones.size === 0) {
1725
1866
  window.removeEventListener("keydown", globalKeyDownHandler);
1726
1867
  window.removeEventListener("click", globalClickHandler);
@@ -1731,19 +1872,34 @@ function unregisterDropZone(dropZoneEl, type) {
1731
1872
  function globalKeyDownHandler(e) {
1732
1873
  if (!isDragging) return;
1733
1874
  switch (e.key) {
1734
- case "Escape":
1735
- handleDrop();
1736
- break;
1875
+ case "Escape": handleDrop();
1737
1876
  }
1738
1877
  }
1739
1878
  function globalClickHandler() {
1740
1879
  if (!isDragging) return;
1741
1880
  if (!allDragTargets.has(document.activeElement)) handleDrop();
1742
1881
  }
1882
+ function getActiveDragTabIndex(dropZoneEl, config) {
1883
+ return dropZoneEl === focusedDz || focusedItem.contains(dropZoneEl) || config.dropFromOthersDisabled || config.type !== draggedItemType ? -1 : 0;
1884
+ }
1885
+ function refreshActiveDragTabIndices() {
1886
+ dzToConfig.forEach(function(config, dropZoneEl) {
1887
+ dropZoneEl.tabIndex = getActiveDragTabIndex(dropZoneEl, config);
1888
+ });
1889
+ }
1890
+ function grabIsAlive() {
1891
+ var focusedConfig = dzToConfig.get(focusedDz);
1892
+ if (focusedConfig !== null && focusedConfig !== void 0 && focusedConfig.items.some(function(item) {
1893
+ return item[ITEM_ID_KEY] === focusedItemId;
1894
+ })) return true;
1895
+ handleDrop();
1896
+ return false;
1897
+ }
1743
1898
  function handleZoneFocus(e) {
1744
1899
  if (!isDragging) return;
1745
1900
  var newlyFocusedDz = e.currentTarget;
1746
1901
  if (newlyFocusedDz === focusedDz) return;
1902
+ if (!grabIsAlive()) return;
1747
1903
  focusedDzLabel = newlyFocusedDz.getAttribute("aria-label") || "";
1748
1904
  var originItems = dzToConfig.get(focusedDz).items;
1749
1905
  var originItem = originItems.find(function(item) {
@@ -1754,22 +1910,34 @@ function handleZoneFocus(e) {
1754
1910
  var _dzToConfig$get2 = dzToConfig.get(newlyFocusedDz), targetItems = _dzToConfig$get2.items, autoAriaDisabled = _dzToConfig$get2.autoAriaDisabled;
1755
1911
  if (newlyFocusedDz.getBoundingClientRect().top < focusedDz.getBoundingClientRect().top || newlyFocusedDz.getBoundingClientRect().left < focusedDz.getBoundingClientRect().left) {
1756
1912
  targetItems.push(itemToMove);
1757
- if (!autoAriaDisabled) alertToScreenReader("Moved item ".concat(focusedItemLabel, " to the end of the list ").concat(focusedDzLabel));
1913
+ if (!autoAriaDisabled) announceToScreenReader("movedToZoneEnd", {
1914
+ itemLabel: focusedItemLabel,
1915
+ zoneLabel: focusedDzLabel,
1916
+ position: targetItems.length,
1917
+ count: targetItems.length
1918
+ });
1758
1919
  } else {
1759
1920
  targetItems.unshift(itemToMove);
1760
- if (!autoAriaDisabled) alertToScreenReader("Moved item ".concat(focusedItemLabel, " to the beginning of the list ").concat(focusedDzLabel));
1921
+ if (!autoAriaDisabled) announceToScreenReader("movedToZoneStart", {
1922
+ itemLabel: focusedItemLabel,
1923
+ zoneLabel: focusedDzLabel,
1924
+ position: 1,
1925
+ count: targetItems.length
1926
+ });
1761
1927
  }
1762
- dispatchFinalizeEvent(focusedDz, originItems, {
1928
+ var dzFrom = focusedDz;
1929
+ var movedItemId = focusedItemId;
1930
+ focusedDz = newlyFocusedDz;
1931
+ dispatchFinalizeEvent(dzFrom, originItems, {
1763
1932
  trigger: TRIGGERS.DROPPED_INTO_ANOTHER,
1764
- id: focusedItemId,
1933
+ id: movedItemId,
1765
1934
  source: SOURCES.KEYBOARD
1766
1935
  });
1767
- dispatchFinalizeEvent(newlyFocusedDz, targetItems, {
1936
+ if (dzToConfig.has(newlyFocusedDz)) dispatchFinalizeEvent(newlyFocusedDz, targetItems, {
1768
1937
  trigger: TRIGGERS.DROPPED_INTO_ZONE,
1769
- id: focusedItemId,
1938
+ id: movedItemId,
1770
1939
  source: SOURCES.KEYBOARD
1771
1940
  });
1772
- focusedDz = newlyFocusedDz;
1773
1941
  }
1774
1942
  function triggerAllDzsUpdate() {
1775
1943
  dzToHandles.forEach(function(_ref, dz) {
@@ -1779,18 +1947,25 @@ function triggerAllDzsUpdate() {
1779
1947
  }
1780
1948
  function handleDrop() {
1781
1949
  var dispatchConsider = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
1782
- if (!dzToConfig.get(focusedDz).autoAriaDisabled) alertToScreenReader("Stopped dragging item ".concat(focusedItemLabel));
1950
+ if (!isDragging || !focusedDz) return;
1951
+ var droppedDz = focusedDz;
1952
+ var droppedConfig = dzToConfig.get(droppedDz);
1953
+ var droppedItemId = focusedItemId;
1954
+ var droppedItemType = draggedItemType;
1955
+ if (!droppedConfig) return;
1956
+ if (!droppedConfig.autoAriaDisabled) {
1957
+ var droppedItems = droppedConfig.items;
1958
+ var droppedIdx = droppedItems.findIndex(function(item) {
1959
+ return item[ITEM_ID_KEY] === droppedItemId;
1960
+ });
1961
+ announceToScreenReader("dropped", {
1962
+ itemLabel: focusedItemLabel,
1963
+ zoneLabel: focusedDzLabel,
1964
+ position: (droppedIdx < 0 ? 0 : droppedIdx) + 1,
1965
+ count: droppedItems.length
1966
+ });
1967
+ }
1783
1968
  if (allDragTargets.has(document.activeElement)) document.activeElement.blur();
1784
- if (dispatchConsider) dispatchConsiderEvent(focusedDz, dzToConfig.get(focusedDz).items, {
1785
- trigger: TRIGGERS.DRAG_STOPPED,
1786
- id: focusedItemId,
1787
- source: SOURCES.KEYBOARD
1788
- });
1789
- styleInactiveDropZones(typeToDropZones.get(draggedItemType), function(dz) {
1790
- return dzToConfig.get(dz).dropTargetStyle;
1791
- }, function(dz) {
1792
- return dzToConfig.get(dz).dropTargetClasses;
1793
- });
1794
1969
  focusedItem = null;
1795
1970
  focusedItemId = null;
1796
1971
  focusedItemLabel = "";
@@ -1798,9 +1973,21 @@ function handleDrop() {
1798
1973
  focusedDz = null;
1799
1974
  focusedDzLabel = "";
1800
1975
  isDragging = false;
1976
+ if (dispatchConsider) dispatchConsiderEvent(droppedDz, droppedConfig.items, {
1977
+ trigger: TRIGGERS.DRAG_STOPPED,
1978
+ id: droppedItemId,
1979
+ source: SOURCES.KEYBOARD
1980
+ });
1981
+ var dropZones = typeToDropZones.get(droppedItemType);
1982
+ if (dropZones) styleInactiveDropZones(dropZones, function(dz) {
1983
+ return dzToConfig.get(dz).dropTargetStyle;
1984
+ }, function(dz) {
1985
+ return dzToConfig.get(dz).dropTargetClasses;
1986
+ });
1801
1987
  triggerAllDzsUpdate();
1802
1988
  }
1803
1989
  function dndzone$1(node, options) {
1990
+ var destroyed = false;
1804
1991
  var config = {
1805
1992
  items: void 0,
1806
1993
  type: void 0,
@@ -1820,6 +2007,7 @@ function dndzone$1(node, options) {
1820
2007
  switch (e.key) {
1821
2008
  case "Enter":
1822
2009
  case " ":
2010
+ if (!isKeyboardDragTriggerKey(e.key)) return;
1823
2011
  if ((e.target.disabled !== void 0 || e.target.href || e.target.isContentEditable) && !allDragTargets.has(e.target)) return;
1824
2012
  e.preventDefault();
1825
2013
  e.stopPropagation();
@@ -1835,7 +2023,12 @@ function dndzone$1(node, options) {
1835
2023
  var children = Array.from(node.children);
1836
2024
  var idx = children.indexOf(e.currentTarget);
1837
2025
  if (idx < children.length - 1) {
1838
- if (!config.autoAriaDisabled) alertToScreenReader("Moved item ".concat(focusedItemLabel, " to position ").concat(idx + 2, " in the list ").concat(focusedDzLabel));
2026
+ if (!config.autoAriaDisabled) announceToScreenReader("movedToPosition", {
2027
+ itemLabel: focusedItemLabel,
2028
+ zoneLabel: focusedDzLabel,
2029
+ position: idx + 2,
2030
+ count: items.length
2031
+ });
1839
2032
  swap(items, idx, idx + 1);
1840
2033
  dispatchFinalizeEvent(node, items, {
1841
2034
  trigger: TRIGGERS.DROPPED_INTO_ZONE,
@@ -1852,7 +2045,12 @@ function dndzone$1(node, options) {
1852
2045
  var _items = dzToConfig.get(node).items;
1853
2046
  var _idx = Array.from(node.children).indexOf(e.currentTarget);
1854
2047
  if (_idx > 0) {
1855
- if (!config.autoAriaDisabled) alertToScreenReader("Moved item ".concat(focusedItemLabel, " to position ").concat(_idx, " in the list ").concat(focusedDzLabel));
2048
+ if (!config.autoAriaDisabled) announceToScreenReader("movedToPosition", {
2049
+ itemLabel: focusedItemLabel,
2050
+ zoneLabel: focusedDzLabel,
2051
+ position: _idx,
2052
+ count: _items.length
2053
+ });
1856
2054
  swap(_items, _idx, _idx - 1);
1857
2055
  dispatchFinalizeEvent(node, _items, {
1858
2056
  trigger: TRIGGERS.DROPPED_INTO_ZONE,
@@ -1860,12 +2058,12 @@ function dndzone$1(node, options) {
1860
2058
  source: SOURCES.KEYBOARD
1861
2059
  });
1862
2060
  }
1863
- break;
1864
2061
  }
1865
2062
  }
1866
2063
  function handleDragStart(e) {
1867
2064
  setCurrentFocusedItem(e.currentTarget);
1868
2065
  focusedDz = node;
2066
+ focusedDzLabel = node.getAttribute("aria-label") || "";
1869
2067
  draggedItemType = config.type;
1870
2068
  isDragging = true;
1871
2069
  var dropTargets = Array.from(typeToDropZones.get(config.type)).filter(function(dz) {
@@ -1877,9 +2075,17 @@ function dndzone$1(node, options) {
1877
2075
  return dzToConfig.get(dz).dropTargetClasses;
1878
2076
  });
1879
2077
  if (!config.autoAriaDisabled) {
1880
- var msg = "Started dragging item ".concat(focusedItemLabel, ". Use the arrow keys to move it within its list ").concat(focusedDzLabel);
1881
- if (dropTargets.length > 1) msg += ", or tab to another list in order to move the item into it";
1882
- alertToScreenReader(msg);
2078
+ var startItems = dzToConfig.get(node).items;
2079
+ var startIdx = startItems.findIndex(function(item) {
2080
+ return item[ITEM_ID_KEY] === focusedItemId;
2081
+ });
2082
+ announceToScreenReader("dragStarted", {
2083
+ itemLabel: focusedItemLabel,
2084
+ zoneLabel: focusedDzLabel,
2085
+ position: (startIdx < 0 ? 0 : startIdx) + 1,
2086
+ count: startItems.length,
2087
+ canMoveBetweenZones: dropTargets.length > 1
2088
+ });
1883
2089
  }
1884
2090
  dispatchConsiderEvent(node, dzToConfig.get(node).items, {
1885
2091
  trigger: TRIGGERS.DRAG_STARTED,
@@ -1922,10 +2128,20 @@ function dndzone$1(node, options) {
1922
2128
  node.setAttribute("aria-describedby", dragDisabled ? INSTRUCTION_IDs.DND_ZONE_DRAG_DISABLED : INSTRUCTION_IDs.DND_ZONE_ACTIVE);
1923
2129
  }
1924
2130
  dzToConfig.set(node, config);
1925
- if (isDragging) node.tabIndex = node === focusedDz || focusedItem.contains(node) || config.dropFromOthersDisabled || focusedDz && config.type !== dzToConfig.get(focusedDz).type ? -1 : 0;
1926
- else node.tabIndex = config.zoneTabIndex;
2131
+ var itemMovedToThisZone = false;
2132
+ if (isDragging) {
2133
+ itemMovedToThisZone = config.type === draggedItemType && config.items.some(function(item) {
2134
+ return item[ITEM_ID_KEY] === focusedItemId;
2135
+ }) && node !== focusedDz;
2136
+ if (itemMovedToThisZone) {
2137
+ focusedDz = node;
2138
+ focusedDzLabel = node.getAttribute("aria-label") || "";
2139
+ }
2140
+ node.tabIndex = getActiveDragTabIndex(node, config);
2141
+ } else node.tabIndex = config.zoneTabIndex;
1927
2142
  node.addEventListener("focus", handleZoneFocus);
1928
2143
  var _loop = function _loop(i) {
2144
+ var _config$items$i;
1929
2145
  var draggableEl = node.children[i];
1930
2146
  allDragTargets.add(draggableEl);
1931
2147
  draggableEl.tabIndex = isDragging ? -1 : config.zoneItemTabIndex;
@@ -1938,13 +2154,14 @@ function dndzone$1(node, options) {
1938
2154
  draggableEl.addEventListener("click", handleClick);
1939
2155
  elToFocusListeners.set(draggableEl, handleClick);
1940
2156
  }
1941
- if (isDragging && config.items[i][ITEM_ID_KEY] === focusedItemId) {
2157
+ if (isDragging && config.type === draggedItemType && ((_config$items$i = config.items[i]) === null || _config$items$i === void 0 ? void 0 : _config$items$i[ITEM_ID_KEY]) === focusedItemId) {
1942
2158
  focusedItem = draggableEl;
1943
2159
  focusedItem.tabIndex = config.zoneItemTabIndex;
1944
2160
  draggableEl.focus();
1945
2161
  }
1946
2162
  };
1947
2163
  for (var i = 0; i < node.children.length; i++) _loop(i);
2164
+ if (itemMovedToThisZone) refreshActiveDragTabIndices();
1948
2165
  }
1949
2166
  configure(options);
1950
2167
  var handles = {
@@ -1952,6 +2169,21 @@ function dndzone$1(node, options) {
1952
2169
  configure(newOptions);
1953
2170
  },
1954
2171
  destroy: function destroy() {
2172
+ if (destroyed) return;
2173
+ destroyed = true;
2174
+ node.removeEventListener("focus", handleZoneFocus);
2175
+ var _iterator = _createForOfIteratorHelper(node.children), _step;
2176
+ try {
2177
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
2178
+ var draggableEl = _step.value;
2179
+ draggableEl.removeEventListener("keydown", elToKeyDownListeners.get(draggableEl));
2180
+ draggableEl.removeEventListener("click", elToFocusListeners.get(draggableEl));
2181
+ }
2182
+ } catch (err) {
2183
+ _iterator.e(err);
2184
+ } finally {
2185
+ _iterator.f();
2186
+ }
1955
2187
  unregisterDropZone(node, config.type);
1956
2188
  dzToConfig["delete"](node);
1957
2189
  dzToHandles["delete"](node);