@purpur/library 9.10.0 → 10.0.0

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 (520) hide show
  1. package/CHANGELOG.json +124 -0
  2. package/CHANGELOG.md +53 -1
  3. package/dist/LICENSE.txt +270 -175
  4. package/dist/{RichText-BAVZadzi.js → RichText-B865Qkzj.js} +2 -2
  5. package/dist/{RichText-BAVZadzi.js.map → RichText-B865Qkzj.js.map} +1 -1
  6. package/dist/{RichText-D4vznH1B.mjs → RichText-CPkBwXNI.mjs} +3 -3
  7. package/dist/{RichText-D4vznH1B.mjs.map → RichText-CPkBwXNI.mjs.map} +1 -1
  8. package/dist/accordion-aEZas0k1.mjs +122 -0
  9. package/dist/accordion-aEZas0k1.mjs.map +1 -0
  10. package/dist/accordion-zwsF1oUj.js +2 -0
  11. package/dist/accordion-zwsF1oUj.js.map +1 -0
  12. package/dist/accordion.cjs.js +1 -1
  13. package/dist/accordion.es.js +1 -1
  14. package/dist/button-C5CYysw5.js +2 -0
  15. package/dist/button-C5CYysw5.js.map +1 -0
  16. package/dist/button-mHw_J7JU.mjs +106 -0
  17. package/dist/button-mHw_J7JU.mjs.map +1 -0
  18. package/dist/button.cjs.js +1 -1
  19. package/dist/button.es.js +1 -1
  20. package/dist/{calendar-Cru-p6gC.mjs → calendar-DTL_g0ue.mjs} +4 -14
  21. package/dist/{calendar-Cru-p6gC.mjs.map → calendar-DTL_g0ue.mjs.map} +1 -1
  22. package/dist/{calendar-DDR8CQYo.js → calendar-DVOrK53J.js} +2 -2
  23. package/dist/{calendar-DDR8CQYo.js.map → calendar-DVOrK53J.js.map} +1 -1
  24. package/dist/calendar.cjs.js +1 -1
  25. package/dist/calendar.es.js +1 -1
  26. package/dist/{card-t2ZkZ82G.mjs → card-C0yhMN5d.mjs} +3 -3
  27. package/dist/card-C0yhMN5d.mjs.map +1 -0
  28. package/dist/{card-pdsBEJif.js → card-CIlY38WI.js} +2 -2
  29. package/dist/card-CIlY38WI.js.map +1 -0
  30. package/dist/card.cjs.js +1 -1
  31. package/dist/card.es.js +1 -1
  32. package/dist/{carousel-BIKcwvYz.mjs → carousel-Dq9yzk_-.mjs} +2 -2
  33. package/dist/{carousel-BIKcwvYz.mjs.map → carousel-Dq9yzk_-.mjs.map} +1 -1
  34. package/dist/{carousel-DnSaLDZf.js → carousel-j-s6M1hu.js} +2 -2
  35. package/dist/{carousel-DnSaLDZf.js.map → carousel-j-s6M1hu.js.map} +1 -1
  36. package/dist/carousel.cjs.js +1 -1
  37. package/dist/carousel.es.js +1 -1
  38. package/dist/{chat-field-Wjvh2J6C.js → chat-field-CLAjIHlM.js} +2 -2
  39. package/dist/{chat-field-Wjvh2J6C.js.map → chat-field-CLAjIHlM.js.map} +1 -1
  40. package/dist/{chat-field-CVF4DooY.mjs → chat-field-nxFRXoQx.mjs} +2 -2
  41. package/dist/{chat-field-CVF4DooY.mjs.map → chat-field-nxFRXoQx.mjs.map} +1 -1
  42. package/dist/chat-field.cjs.js +1 -1
  43. package/dist/chat-field.es.js +1 -1
  44. package/dist/{chip-group-B775zvKD.js → chip-group-BLuG0MC6.js} +2 -2
  45. package/dist/{chip-group-B775zvKD.js.map → chip-group-BLuG0MC6.js.map} +1 -1
  46. package/dist/{chip-group-xuOe7nL3.mjs → chip-group-Bo4kJ8Vq.mjs} +2 -2
  47. package/dist/{chip-group-xuOe7nL3.mjs.map → chip-group-Bo4kJ8Vq.mjs.map} +1 -1
  48. package/dist/chip-group.cjs.js +1 -1
  49. package/dist/chip-group.es.js +1 -1
  50. package/dist/color-dot-BEE5rKco.js.map +1 -1
  51. package/dist/color-dot-Dz9yzVX3.mjs.map +1 -1
  52. package/dist/{comparison-table-Dtqxz8vL.js → comparison-table-CRWRijfG.js} +2 -2
  53. package/dist/{comparison-table-Dtqxz8vL.js.map → comparison-table-CRWRijfG.js.map} +1 -1
  54. package/dist/{comparison-table-D1evE0ri.mjs → comparison-table-DYaRaP9Z.mjs} +3 -3
  55. package/dist/{comparison-table-D1evE0ri.mjs.map → comparison-table-DYaRaP9Z.mjs.map} +1 -1
  56. package/dist/comparison-table.cjs.js +1 -1
  57. package/dist/comparison-table.es.js +1 -1
  58. package/dist/components/accordion/src/accordion-item.d.ts +3 -3
  59. package/dist/components/accordion/src/accordion-item.d.ts.map +1 -1
  60. package/dist/components/accordion/src/accordion.d.ts +3 -7
  61. package/dist/components/accordion/src/accordion.d.ts.map +1 -1
  62. package/dist/components/accordion/src/accordion.visual.fixtures.d.ts.map +1 -1
  63. package/dist/components/alert-badge/src/alert-badge.d.ts +1 -1
  64. package/dist/components/avatar/src/avatar.d.ts +1 -1
  65. package/dist/components/badge/src/badge.d.ts +1 -1
  66. package/dist/components/button/src/button.d.ts +7 -8
  67. package/dist/components/button/src/button.d.ts.map +1 -1
  68. package/dist/components/button/src/button.visual.fixtures.d.ts +1 -1
  69. package/dist/components/calendar/src/calendar.d.ts.map +1 -1
  70. package/dist/components/card/src/card-content-container.d.ts +1 -1
  71. package/dist/components/card/src/card-content.d.ts +1 -1
  72. package/dist/components/card/src/card-cta.d.ts +1 -1
  73. package/dist/components/card/src/card-heading.d.ts +4 -4
  74. package/dist/components/card/src/card-heading.d.ts.map +1 -1
  75. package/dist/components/card/src/card-media-layout.d.ts +1 -1
  76. package/dist/components/card/src/card-media.d.ts +1 -1
  77. package/dist/components/card/src/card-root.d.ts +1 -1
  78. package/dist/components/checkbox/src/checkbox.d.ts +1 -1
  79. package/dist/components/color-dot/src/color-dot.d.ts +2 -1
  80. package/dist/components/color-dot/src/color-dot.d.ts.map +1 -1
  81. package/dist/components/content-block/src/content-block-group.d.ts +1 -1
  82. package/dist/components/content-block/src/content-block.d.ts +3 -3
  83. package/dist/components/content-block/src/content-block.d.ts.map +1 -1
  84. package/dist/components/country-flag-icon/src/all-country-flag-assets.d.ts +0 -1
  85. package/dist/components/country-flag-icon/src/all-country-flag-assets.d.ts.map +1 -1
  86. package/dist/components/country-flag-icon/src/country-flag-icon.d.ts +2 -2
  87. package/dist/components/cta-link/src/cta-link.d.ts +10 -10
  88. package/dist/components/date-picker/src/date-picker.d.ts +5 -5
  89. package/dist/components/date-range-field/src/date-range-field.d.ts +2 -2
  90. package/dist/components/date-range-field/src/date-range-field.d.ts.map +1 -1
  91. package/dist/components/dismissable-chip-group/src/dismissable-chip-group-item.d.ts +1 -1
  92. package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +4 -4
  93. package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts.map +1 -1
  94. package/dist/components/drawer/src/drawer-container.d.ts +1 -1
  95. package/dist/components/drawer/src/drawer-container.d.ts.map +1 -1
  96. package/dist/components/drawer/src/drawer-content.d.ts +2 -2
  97. package/dist/components/drawer/src/drawer-frame.d.ts +1 -1
  98. package/dist/components/drawer/src/drawer-handle.d.ts +1 -1
  99. package/dist/components/drawer/src/drawer-header.d.ts +1 -1
  100. package/dist/components/drawer/src/drawer-scroll-area.d.ts +1 -1
  101. package/dist/components/drawer/src/drawer.context.d.ts +2 -0
  102. package/dist/components/drawer/src/drawer.context.d.ts.map +1 -1
  103. package/dist/components/drawer/src/drawer.d.ts +2 -0
  104. package/dist/components/drawer/src/drawer.d.ts.map +1 -1
  105. package/dist/components/dropdown/src/dropdown-combobox.d.ts +2 -34
  106. package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -1
  107. package/dist/components/dropdown/src/dropdown-select.d.ts +2 -34
  108. package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -1
  109. package/dist/components/dropdown/src/dropdown-shared.d.ts +2 -1
  110. package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -1
  111. package/dist/components/dropdown/src/dropdown.types.d.ts +24 -13
  112. package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -1
  113. package/dist/components/dropdown/src/useDropdown.d.ts +1 -1
  114. package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -1
  115. package/dist/components/dropdown/src/useDropdownFilter.d.ts.map +1 -1
  116. package/dist/components/dropdown/src/useDropdownInput.d.ts.map +1 -1
  117. package/dist/components/field-error-text/src/field-error-text.d.ts +2 -2
  118. package/dist/components/file-upload/src/file-upload-button.d.ts +22 -0
  119. package/dist/components/file-upload/src/file-upload-button.d.ts.map +1 -0
  120. package/dist/components/file-upload/src/file-upload-drag-and-drop.d.ts +10 -0
  121. package/dist/components/file-upload/src/file-upload-drag-and-drop.d.ts.map +1 -0
  122. package/dist/components/file-upload/src/file-upload-file-name-label.d.ts +8 -0
  123. package/dist/components/file-upload/src/file-upload-file-name-label.d.ts.map +1 -0
  124. package/dist/components/file-upload/src/file-upload-icon.d.ts +8 -0
  125. package/dist/components/file-upload/src/file-upload-icon.d.ts.map +1 -0
  126. package/dist/components/file-upload/src/file-upload-types.d.ts +82 -0
  127. package/dist/components/file-upload/src/file-upload-types.d.ts.map +1 -0
  128. package/dist/components/file-upload/src/file-upload-utils.d.ts +7 -0
  129. package/dist/components/file-upload/src/file-upload-utils.d.ts.map +1 -0
  130. package/dist/components/file-upload/src/file-upload.d.ts +6 -0
  131. package/dist/components/file-upload/src/file-upload.d.ts.map +1 -0
  132. package/dist/components/file-upload/src/file-upload.visual.fixtures.d.ts +14 -0
  133. package/dist/components/file-upload/src/file-upload.visual.fixtures.d.ts.map +1 -0
  134. package/dist/components/footer/src/footer-navigation.d.ts +1 -1
  135. package/dist/components/footer/src/footer.d.ts +3 -3
  136. package/dist/components/grid/src/grid.item.d.ts +1 -1
  137. package/dist/components/heading/src/heading.d.ts +20 -2
  138. package/dist/components/heading/src/heading.d.ts.map +1 -1
  139. package/dist/components/hero-banner/src/hero-banner-actions.d.ts +1 -1
  140. package/dist/components/hero-banner/src/hero-banner-media.d.ts +1 -1
  141. package/dist/components/hero-banner/src/hero-banner-types.d.ts +2 -2
  142. package/dist/components/hero-banner/src/hero-banner-types.d.ts.map +1 -1
  143. package/dist/components/hero-banner/src/hero-banner.d.ts +1 -1
  144. package/dist/components/hero-banner/src/hero-banner.d.ts.map +1 -1
  145. package/dist/components/icon/src/icon.d.ts +2 -2
  146. package/dist/components/label/src/label.d.ts +1 -1
  147. package/dist/components/listbox/src/listbox-item.d.ts +1 -1
  148. package/dist/components/loading/src/loading-illustrative.d.ts +1 -1
  149. package/dist/components/logo/src/logo.types.d.ts +2 -2
  150. package/dist/components/modal/src/modal-content.d.ts +1 -1
  151. package/dist/components/modal/src/modal-content.d.ts.map +1 -1
  152. package/dist/components/notification-banner/src/notification-banner.d.ts +5 -5
  153. package/dist/components/notification-banner/src/notification-banner.d.ts.map +1 -1
  154. package/dist/components/pagination/src/pagination-page-selector.d.ts +2 -2
  155. package/dist/components/pagination/src/pagination-page-trigger.d.ts +1 -1
  156. package/dist/components/pagination/src/pagination-step-trigger.d.ts +2 -2
  157. package/dist/components/pagination/src/pagination-truncation-separator.d.ts +1 -1
  158. package/dist/components/pagination/src/types.d.ts +1 -1
  159. package/dist/components/pagination/src/use-page-options.hook.d.ts +1 -1
  160. package/dist/components/pagination/src/use-page-size-options.hook.d.ts +1 -1
  161. package/dist/components/password-field/src/password-strength-indicator.d.ts +1 -1
  162. package/dist/components/password-field/src/password-strength.d.ts +2 -2
  163. package/dist/components/promotion-card/src/promotion-card.d.ts +9 -9
  164. package/dist/components/promotion-card/src/promotion-card.d.ts.map +1 -1
  165. package/dist/components/quantity-selector/src/quantity-selector-button.d.ts +2 -3
  166. package/dist/components/quantity-selector/src/quantity-selector-button.d.ts.map +1 -1
  167. package/dist/components/quantity-selector/src/quantity-selector.d.ts +2 -5
  168. package/dist/components/quantity-selector/src/quantity-selector.d.ts.map +1 -1
  169. package/dist/components/radio-card-group/src/radio-card-group.d.ts +2 -2
  170. package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -1
  171. package/dist/components/rich-text/src/types.d.ts +3 -3
  172. package/dist/components/search-field/src/search-field.d.ts +6 -6
  173. package/dist/components/skeleton/src/skeleton.d.ts +1 -1
  174. package/dist/components/spinner/src/spinner.d.ts +2 -2
  175. package/dist/components/stepper/src/stepper-container.d.ts +1 -1
  176. package/dist/components/stepper/src/stepper-content.d.ts +1 -1
  177. package/dist/components/stepper/src/{stepper-button.d.ts → stepper-link.d.ts} +5 -4
  178. package/dist/components/stepper/src/stepper-link.d.ts.map +1 -0
  179. package/dist/components/stepper/src/stepper-nav-items.d.ts +1 -0
  180. package/dist/components/stepper/src/stepper-nav-items.d.ts.map +1 -1
  181. package/dist/components/stepper/src/stepper.d.ts.map +1 -1
  182. package/dist/components/stepper/src/types.d.ts +2 -2
  183. package/dist/components/stepper/src/types.d.ts.map +1 -1
  184. package/dist/components/stepper/src/use-content-focus.hook.d.ts.map +1 -1
  185. package/dist/components/table/src/cell-types/button-group-cell.d.ts +3 -3
  186. package/dist/components/table/src/draggable-table.d.ts.map +1 -1
  187. package/dist/components/table/src/table-column-header-cell.d.ts +1 -2
  188. package/dist/components/table/src/table-column-header-cell.d.ts.map +1 -1
  189. package/dist/components/table/src/table-content.d.ts +1 -1
  190. package/dist/components/table/src/table-headers.d.ts +2 -3
  191. package/dist/components/table/src/table-headers.d.ts.map +1 -1
  192. package/dist/components/table/src/table-settings-drawer.d.ts +11 -20
  193. package/dist/components/table/src/table-settings-drawer.d.ts.map +1 -1
  194. package/dist/components/table/src/table.d.ts +2 -9
  195. package/dist/components/table/src/table.d.ts.map +1 -1
  196. package/dist/components/table/src/test-utils/helpers.d.ts +10 -19
  197. package/dist/components/table/src/test-utils/helpers.d.ts.map +1 -1
  198. package/dist/components/table/src/test-utils/table-data.d.ts +3 -3
  199. package/dist/components/tabs/src/tab-content.d.ts +3 -1
  200. package/dist/components/tabs/src/tab-content.d.ts.map +1 -1
  201. package/dist/components/text-area/src/text-area.d.ts +1 -1
  202. package/dist/components/text-field/src/text-field-ai.d.ts +4 -4
  203. package/dist/components/text-field/src/text-field-base.d.ts +4 -4
  204. package/dist/components/text-field/src/text-field.d.ts +5 -5
  205. package/dist/components/text-spacing/src/text-spacing.d.ts +2 -2
  206. package/dist/components/tooltip/src/tooltip.d.ts +4 -6
  207. package/dist/components/tooltip/src/tooltip.d.ts.map +1 -1
  208. package/dist/components-metadata.js +20 -10
  209. package/dist/{content-block-CDMrz41K.mjs → content-block-BCM0I3Y2.mjs} +2 -2
  210. package/dist/content-block-BCM0I3Y2.mjs.map +1 -0
  211. package/dist/{content-block-DyYAnL2e.js → content-block-DQppQumZ.js} +2 -2
  212. package/dist/content-block-DQppQumZ.js.map +1 -0
  213. package/dist/content-block.cjs.js +1 -1
  214. package/dist/content-block.es.js +1 -1
  215. package/dist/core.esm-BmIwrKkJ.js +6 -0
  216. package/dist/core.esm-BmIwrKkJ.js.map +1 -0
  217. package/dist/core.esm-CKGHpLM_.mjs +2892 -0
  218. package/dist/core.esm-CKGHpLM_.mjs.map +1 -0
  219. package/dist/country-flag-icon/LICENSE.txt +11 -0
  220. package/dist/country-flag-icon/all-country-flag-assets.cjs.js +1 -1
  221. package/dist/country-flag-icon/all-country-flag-assets.cjs.js.map +1 -1
  222. package/dist/country-flag-icon/all-country-flag-assets.d.ts +0 -1
  223. package/dist/country-flag-icon/all-country-flag-assets.d.ts.map +1 -1
  224. package/dist/country-flag-icon/all-country-flag-assets.es.js +0 -1
  225. package/dist/country-flag-icon/all-country-flag-assets.es.js.map +1 -1
  226. package/dist/country-flag-icon/dynamic-country-flag-icon.cjs.js +2 -0
  227. package/dist/country-flag-icon/dynamic-country-flag-icon.cjs.js.map +1 -0
  228. package/dist/country-flag-icon/dynamic-country-flag-icon.es.js +366 -0
  229. package/dist/country-flag-icon/dynamic-country-flag-icon.es.js.map +1 -0
  230. package/dist/{date-field-hA79n6mP.js → date-field-CtpWDaSh.js} +2 -2
  231. package/dist/{date-field-hA79n6mP.js.map → date-field-CtpWDaSh.js.map} +1 -1
  232. package/dist/{date-field-DVp_RMNm.mjs → date-field-_rCuf15v.mjs} +2 -2
  233. package/dist/{date-field-DVp_RMNm.mjs.map → date-field-_rCuf15v.mjs.map} +1 -1
  234. package/dist/date-field.cjs.js +1 -1
  235. package/dist/date-field.es.js +1 -1
  236. package/dist/{date-picker-Dzoo_hhQ.js → date-picker-BYlszX1W.js} +2 -2
  237. package/dist/{date-picker-Dzoo_hhQ.js.map → date-picker-BYlszX1W.js.map} +1 -1
  238. package/dist/{date-picker-B8ta-Q8V.mjs → date-picker-sqcNAplg.mjs} +6 -6
  239. package/dist/{date-picker-B8ta-Q8V.mjs.map → date-picker-sqcNAplg.mjs.map} +1 -1
  240. package/dist/date-picker.cjs.js +1 -1
  241. package/dist/date-picker.es.js +1 -1
  242. package/dist/date-range-field-B33XeBW8.js +2 -0
  243. package/dist/date-range-field-B33XeBW8.js.map +1 -0
  244. package/dist/{date-range-field-BZUjfftV.mjs → date-range-field-BmjQeiOv.mjs} +23 -23
  245. package/dist/date-range-field-BmjQeiOv.mjs.map +1 -0
  246. package/dist/date-range-field.cjs.js +1 -1
  247. package/dist/date-range-field.es.js +1 -1
  248. package/dist/{dismissable-chip-group-2updhyuR.js → dismissable-chip-group-5ALErhD2.js} +2 -2
  249. package/dist/dismissable-chip-group-5ALErhD2.js.map +1 -0
  250. package/dist/{dismissable-chip-group-Cfs2s2BH.mjs → dismissable-chip-group-DMNU7g5e.mjs} +3 -3
  251. package/dist/dismissable-chip-group-DMNU7g5e.mjs.map +1 -0
  252. package/dist/dismissable-chip-group.cjs.js +1 -1
  253. package/dist/dismissable-chip-group.es.js +1 -1
  254. package/dist/{drawer-cIUx6WSZ.mjs → drawer-Chx3H8EU.mjs} +241 -233
  255. package/dist/drawer-Chx3H8EU.mjs.map +1 -0
  256. package/dist/drawer-oFJcxW58.js +2 -0
  257. package/dist/drawer-oFJcxW58.js.map +1 -0
  258. package/dist/drawer.cjs.js +1 -1
  259. package/dist/drawer.es.js +1 -1
  260. package/dist/dropdown-Bn7WvsL2.js +2 -0
  261. package/dist/dropdown-Bn7WvsL2.js.map +1 -0
  262. package/dist/dropdown-CrufJnb4.mjs +945 -0
  263. package/dist/dropdown-CrufJnb4.mjs.map +1 -0
  264. package/dist/dropdown.cjs.js +1 -1
  265. package/dist/dropdown.es.js +1 -1
  266. package/dist/file-upload-Ctw6LCTU.mjs +589 -0
  267. package/dist/file-upload-Ctw6LCTU.mjs.map +1 -0
  268. package/dist/file-upload-MvNuX4ks.js +2 -0
  269. package/dist/file-upload-MvNuX4ks.js.map +1 -0
  270. package/dist/file-upload.cjs.js +2 -0
  271. package/dist/file-upload.cjs.js.map +1 -0
  272. package/dist/file-upload.es.js +5 -0
  273. package/dist/file-upload.es.js.map +1 -0
  274. package/dist/{floating-ui.react-dom-EredA301.mjs → floating-ui.react-dom-1kwKo24Z.mjs} +15 -15
  275. package/dist/{floating-ui.react-dom-EredA301.mjs.map → floating-ui.react-dom-1kwKo24Z.mjs.map} +1 -1
  276. package/dist/footer-Bbemct3Z.js +2 -0
  277. package/dist/footer-Bbemct3Z.js.map +1 -0
  278. package/dist/{footer-D-2b7UIB.mjs → footer-DkVmTd-f.mjs} +25 -25
  279. package/dist/footer-DkVmTd-f.mjs.map +1 -0
  280. package/dist/footer.cjs.js +1 -1
  281. package/dist/footer.es.js +1 -1
  282. package/dist/{heading-xwBuT_-9.mjs → heading-BG7JTFO1.mjs} +25 -24
  283. package/dist/heading-BG7JTFO1.mjs.map +1 -0
  284. package/dist/{heading-drD5ugCC.js → heading-BPeRwNYu.js} +2 -2
  285. package/dist/heading-BPeRwNYu.js.map +1 -0
  286. package/dist/heading.cjs.js +1 -1
  287. package/dist/heading.es.js +6 -5
  288. package/dist/{hero-banner-n9K-Jsdz.mjs → hero-banner-ChDoFRhq.mjs} +4 -4
  289. package/dist/hero-banner-ChDoFRhq.mjs.map +1 -0
  290. package/dist/{hero-banner--v-ezYMr.js → hero-banner-Mag1OwL4.js} +2 -2
  291. package/dist/hero-banner-Mag1OwL4.js.map +1 -0
  292. package/dist/hero-banner.cjs.js +1 -1
  293. package/dist/hero-banner.es.js +1 -1
  294. package/dist/index-BPY_9ddu.js +2 -0
  295. package/dist/index-BPY_9ddu.js.map +1 -0
  296. package/dist/index-Fewa56cA.mjs +440 -0
  297. package/dist/index-Fewa56cA.mjs.map +1 -0
  298. package/dist/libraries/library/src/calendar.d.ts +1 -1
  299. package/dist/libraries/library/src/card.d.ts +1 -1
  300. package/dist/libraries/library/src/container.d.ts +1 -1
  301. package/dist/libraries/library/src/content-block.d.ts +1 -1
  302. package/dist/libraries/library/src/dismissable-chip-group.d.ts +1 -1
  303. package/dist/libraries/library/src/drawer.d.ts +1 -1
  304. package/dist/libraries/library/src/file-upload.d.ts +6 -0
  305. package/dist/libraries/library/src/file-upload.d.ts.map +1 -0
  306. package/dist/libraries/library/src/library.d.ts +2 -1
  307. package/dist/libraries/library/src/library.d.ts.map +1 -1
  308. package/dist/libraries/library/src/notification-banner.d.ts +1 -1
  309. package/dist/libraries/library/src/notification.d.ts +1 -1
  310. package/dist/libraries/library/src/password-field.d.ts +6 -2
  311. package/dist/libraries/library/src/password-field.d.ts.map +1 -1
  312. package/dist/libraries/library/src/radio-button-group.d.ts +1 -1
  313. package/dist/libraries/library/src/radio-card-group.d.ts +1 -1
  314. package/dist/libraries/library/src/spinner.d.ts +1 -1
  315. package/dist/libraries/library/src/stepper.d.ts +1 -1
  316. package/dist/libraries/library/src/tooltip.d.ts +1 -1
  317. package/dist/libraries/library/src/visually-hidden.d.ts +1 -1
  318. package/dist/libraries/theme/src/ThemeProvider.d.ts +1 -1
  319. package/dist/library.cjs.js +1 -1
  320. package/dist/library.es.js +603 -601
  321. package/dist/library.es.js.map +1 -1
  322. package/dist/link-Dzqd0QuD.js +2 -0
  323. package/dist/{link-DhWVrkTz.js.map → link-Dzqd0QuD.js.map} +1 -1
  324. package/dist/link-ccCdDvBc.mjs +72 -0
  325. package/dist/{link-DY5WLpyc.mjs.map → link-ccCdDvBc.mjs.map} +1 -1
  326. package/dist/link.cjs.js +1 -1
  327. package/dist/link.es.js +1 -1
  328. package/dist/main-B501z9Ql.js +2 -0
  329. package/dist/main-B501z9Ql.js.map +1 -0
  330. package/dist/main-L71Sqg3s.mjs +1016 -0
  331. package/dist/main-L71Sqg3s.mjs.map +1 -0
  332. package/dist/{modal-D0Qxrvx5.js → modal-CXOYUsJm.js} +2 -2
  333. package/dist/modal-CXOYUsJm.js.map +1 -0
  334. package/dist/{modal-Bu1Zv5Ic.mjs → modal-Pwvhrzn-.mjs} +31 -31
  335. package/dist/modal-Pwvhrzn-.mjs.map +1 -0
  336. package/dist/modal.cjs.js +1 -1
  337. package/dist/modal.es.js +1 -1
  338. package/dist/{notification-D2oClkX2.js → notification-BkM2vLzI.js} +2 -2
  339. package/dist/{notification-D2oClkX2.js.map → notification-BkM2vLzI.js.map} +1 -1
  340. package/dist/{notification-DiVdy6E_.mjs → notification-Cbn0UN1p.mjs} +3 -3
  341. package/dist/{notification-DiVdy6E_.mjs.map → notification-Cbn0UN1p.mjs.map} +1 -1
  342. package/dist/notification-banner-B9RhXAZ8.js +2 -0
  343. package/dist/notification-banner-B9RhXAZ8.js.map +1 -0
  344. package/dist/{notification-banner-CZTQZ5Le.mjs → notification-banner-C4NVekCZ.mjs} +5 -5
  345. package/dist/notification-banner-C4NVekCZ.mjs.map +1 -0
  346. package/dist/notification-banner.cjs.js +1 -1
  347. package/dist/notification-banner.es.js +1 -1
  348. package/dist/notification.cjs.js +1 -1
  349. package/dist/notification.es.js +1 -1
  350. package/dist/password-field-Cy_E-D_G.mjs +200 -0
  351. package/dist/password-field-Cy_E-D_G.mjs.map +1 -0
  352. package/dist/password-field-lKyWHjQS.js +2 -0
  353. package/dist/password-field-lKyWHjQS.js.map +1 -0
  354. package/dist/password-field.cjs.js +2 -0
  355. package/dist/password-field.cjs.js.map +1 -0
  356. package/dist/password-field.es.js +6 -0
  357. package/dist/password-field.es.js.map +1 -0
  358. package/dist/popover-B6ntmuEK.mjs +614 -0
  359. package/dist/popover-B6ntmuEK.mjs.map +1 -0
  360. package/dist/popover-DJHMEFXP.js +2 -0
  361. package/dist/popover-DJHMEFXP.js.map +1 -0
  362. package/dist/popover.cjs.js +1 -1
  363. package/dist/popover.es.js +1 -1
  364. package/dist/{product-card-CxfHfJVV.mjs → product-card-BMseoNrG.mjs} +3 -3
  365. package/dist/{product-card-CxfHfJVV.mjs.map → product-card-BMseoNrG.mjs.map} +1 -1
  366. package/dist/{product-card-XxBwuxM-.js → product-card-D0jX5-up.js} +2 -2
  367. package/dist/{product-card-XxBwuxM-.js.map → product-card-D0jX5-up.js.map} +1 -1
  368. package/dist/product-card.cjs.js +1 -1
  369. package/dist/product-card.es.js +1 -1
  370. package/dist/{promotion-card-C1UoxzcV.js → promotion-card-B3mz__m7.js} +2 -2
  371. package/dist/promotion-card-B3mz__m7.js.map +1 -0
  372. package/dist/{promotion-card-CooYPpFo.mjs → promotion-card-Co6qAkTZ.mjs} +5 -5
  373. package/dist/promotion-card-Co6qAkTZ.mjs.map +1 -0
  374. package/dist/promotion-card.cjs.js +1 -1
  375. package/dist/promotion-card.es.js +1 -1
  376. package/dist/purpur.css +1 -1
  377. package/dist/quantity-selector-Cy0aJGGX.js +2 -0
  378. package/dist/quantity-selector-Cy0aJGGX.js.map +1 -0
  379. package/dist/quantity-selector-k6ZaVrk1.mjs +162 -0
  380. package/dist/quantity-selector-k6ZaVrk1.mjs.map +1 -0
  381. package/dist/quantity-selector.cjs.js +1 -1
  382. package/dist/quantity-selector.es.js +2 -3
  383. package/dist/{radio-button-group-D_F6kWD6.mjs → radio-button-group-DjiTo3b1.mjs} +2 -2
  384. package/dist/{radio-button-group-D_F6kWD6.mjs.map → radio-button-group-DjiTo3b1.mjs.map} +1 -1
  385. package/dist/{radio-button-group-CdUrC7h9.js → radio-button-group-uCRGh1H5.js} +2 -2
  386. package/dist/{radio-button-group-CdUrC7h9.js.map → radio-button-group-uCRGh1H5.js.map} +1 -1
  387. package/dist/radio-button-group.cjs.js +1 -1
  388. package/dist/radio-button-group.es.js +1 -1
  389. package/dist/{radio-card-group-B9_jOJnM.mjs → radio-card-group-DoM7qYO1.mjs} +2 -2
  390. package/dist/{radio-card-group-B9_jOJnM.mjs.map → radio-card-group-DoM7qYO1.mjs.map} +1 -1
  391. package/dist/{radio-card-group-DcdGkfOp.js → radio-card-group-_9wJC-s3.js} +2 -2
  392. package/dist/{radio-card-group-DcdGkfOp.js.map → radio-card-group-_9wJC-s3.js.map} +1 -1
  393. package/dist/radio-card-group.cjs.js +1 -1
  394. package/dist/radio-card-group.es.js +1 -1
  395. package/dist/rich-text.cjs.js +1 -1
  396. package/dist/rich-text.es.js +1 -1
  397. package/dist/{search-field-afhtC6q5.mjs → search-field-BTJtRyw5.mjs} +3 -3
  398. package/dist/{search-field-afhtC6q5.mjs.map → search-field-BTJtRyw5.mjs.map} +1 -1
  399. package/dist/{search-field-WJBtiK0K.js → search-field-nzVXak1a.js} +2 -2
  400. package/dist/{search-field-WJBtiK0K.js.map → search-field-nzVXak1a.js.map} +1 -1
  401. package/dist/search-field.cjs.js +1 -1
  402. package/dist/search-field.es.js +1 -1
  403. package/dist/stepper-D59T-Y2_.mjs +469 -0
  404. package/dist/stepper-D59T-Y2_.mjs.map +1 -0
  405. package/dist/stepper-Dao4XaDV.js +2 -0
  406. package/dist/stepper-Dao4XaDV.js.map +1 -0
  407. package/dist/stepper.cjs.js +1 -1
  408. package/dist/stepper.es.js +1 -1
  409. package/dist/table-DRSgesQ4.mjs +4545 -0
  410. package/dist/table-DRSgesQ4.mjs.map +1 -0
  411. package/dist/table-zBs9JALh.js +5 -0
  412. package/dist/table-zBs9JALh.js.map +1 -0
  413. package/dist/table.cjs.js +1 -1
  414. package/dist/table.es.js +1 -1
  415. package/dist/tabs-D2__wbCs.js +2 -0
  416. package/dist/tabs-D2__wbCs.js.map +1 -0
  417. package/dist/tabs-DOG5g2wf.mjs +440 -0
  418. package/dist/tabs-DOG5g2wf.mjs.map +1 -0
  419. package/dist/tabs.cjs.js +1 -1
  420. package/dist/tabs.es.js +1 -1
  421. package/dist/{text-field-VW8ObP83.js → text-field-BSgqJjpv.js} +2 -2
  422. package/dist/text-field-BSgqJjpv.js.map +1 -0
  423. package/dist/{text-field-D0e-cRbG.mjs → text-field-MQHeITxy.mjs} +3 -3
  424. package/dist/text-field-MQHeITxy.mjs.map +1 -0
  425. package/dist/text-field.cjs.js +1 -1
  426. package/dist/text-field.es.js +1 -1
  427. package/dist/tooltip-DeP1UsPW.js +2 -0
  428. package/dist/{tooltip-B-11qk-0.js.map → tooltip-DeP1UsPW.js.map} +1 -1
  429. package/dist/{tooltip-DngYHn5W.mjs → tooltip-bqdd2lJL.mjs} +347 -309
  430. package/dist/{tooltip-DngYHn5W.mjs.map → tooltip-bqdd2lJL.mjs.map} +1 -1
  431. package/dist/tooltip.cjs.js +1 -1
  432. package/dist/tooltip.es.js +1 -1
  433. package/package.json +21 -26
  434. package/scripts/generate.mts +1 -4
  435. package/src/aliases.ts +8 -4
  436. package/src/entries.js +2 -1
  437. package/src/{autocomplete.ts → file-upload.ts} +1 -1
  438. package/src/library.ts +2 -2
  439. package/src/password-field.ts +0 -1
  440. package/src/purpur.css +4 -0
  441. package/dist/accordion-B6OoQ4uZ.mjs +0 -128
  442. package/dist/accordion-B6OoQ4uZ.mjs.map +0 -1
  443. package/dist/accordion-BfpN5h4C.js +0 -2
  444. package/dist/accordion-BfpN5h4C.js.map +0 -1
  445. package/dist/autocomplete-BX1KDZqL.js +0 -2
  446. package/dist/autocomplete-BX1KDZqL.js.map +0 -1
  447. package/dist/autocomplete-CmLzmWp4.mjs +0 -228
  448. package/dist/autocomplete-CmLzmWp4.mjs.map +0 -1
  449. package/dist/autocomplete.cjs.js +0 -2
  450. package/dist/autocomplete.cjs.js.map +0 -1
  451. package/dist/autocomplete.es.js +0 -6
  452. package/dist/autocomplete.es.js.map +0 -1
  453. package/dist/button-4-yWOgtD.mjs +0 -109
  454. package/dist/button-4-yWOgtD.mjs.map +0 -1
  455. package/dist/button-DmybVApa.js +0 -2
  456. package/dist/button-DmybVApa.js.map +0 -1
  457. package/dist/card-pdsBEJif.js.map +0 -1
  458. package/dist/card-t2ZkZ82G.mjs.map +0 -1
  459. package/dist/components/autocomplete/src/autocomplete.d.ts +0 -18
  460. package/dist/components/autocomplete/src/autocomplete.d.ts.map +0 -1
  461. package/dist/components/autocomplete/src/useAutocomplete.d.ts +0 -59
  462. package/dist/components/autocomplete/src/useAutocomplete.d.ts.map +0 -1
  463. package/dist/components/autocomplete/src/utils.d.ts +0 -7
  464. package/dist/components/autocomplete/src/utils.d.ts.map +0 -1
  465. package/dist/components/stepper/src/stepper-button.d.ts.map +0 -1
  466. package/dist/content-block-CDMrz41K.mjs.map +0 -1
  467. package/dist/content-block-DyYAnL2e.js.map +0 -1
  468. package/dist/date-range-field-BZUjfftV.mjs.map +0 -1
  469. package/dist/date-range-field-Dqqgj41u.js +0 -2
  470. package/dist/date-range-field-Dqqgj41u.js.map +0 -1
  471. package/dist/dismissable-chip-group-2updhyuR.js.map +0 -1
  472. package/dist/dismissable-chip-group-Cfs2s2BH.mjs.map +0 -1
  473. package/dist/drawer-DyLQfvEh.js +0 -2
  474. package/dist/drawer-DyLQfvEh.js.map +0 -1
  475. package/dist/drawer-cIUx6WSZ.mjs.map +0 -1
  476. package/dist/dropdown-C8VsfTQw.mjs +0 -936
  477. package/dist/dropdown-C8VsfTQw.mjs.map +0 -1
  478. package/dist/dropdown-p4R2yCnJ.js +0 -2
  479. package/dist/dropdown-p4R2yCnJ.js.map +0 -1
  480. package/dist/footer-Cn1-zG1v.js +0 -2
  481. package/dist/footer-Cn1-zG1v.js.map +0 -1
  482. package/dist/footer-D-2b7UIB.mjs.map +0 -1
  483. package/dist/heading-drD5ugCC.js.map +0 -1
  484. package/dist/heading-xwBuT_-9.mjs.map +0 -1
  485. package/dist/hero-banner--v-ezYMr.js.map +0 -1
  486. package/dist/hero-banner-n9K-Jsdz.mjs.map +0 -1
  487. package/dist/libraries/library/src/autocomplete.d.ts +0 -6
  488. package/dist/libraries/library/src/autocomplete.d.ts.map +0 -1
  489. package/dist/link-DY5WLpyc.mjs +0 -72
  490. package/dist/link-DhWVrkTz.js +0 -2
  491. package/dist/modal-Bu1Zv5Ic.mjs.map +0 -1
  492. package/dist/modal-D0Qxrvx5.js.map +0 -1
  493. package/dist/notification-banner-BxHwTFnH.js +0 -2
  494. package/dist/notification-banner-BxHwTFnH.js.map +0 -1
  495. package/dist/notification-banner-CZTQZ5Le.mjs.map +0 -1
  496. package/dist/popover-CY75TnbA.js +0 -2
  497. package/dist/popover-CY75TnbA.js.map +0 -1
  498. package/dist/popover-wiiwtqWE.mjs +0 -1043
  499. package/dist/popover-wiiwtqWE.mjs.map +0 -1
  500. package/dist/promotion-card-C1UoxzcV.js.map +0 -1
  501. package/dist/promotion-card-CooYPpFo.mjs.map +0 -1
  502. package/dist/quantity-selector-BEYMDsBM.js +0 -2
  503. package/dist/quantity-selector-BEYMDsBM.js.map +0 -1
  504. package/dist/quantity-selector-Cp-e5xKJ.mjs +0 -172
  505. package/dist/quantity-selector-Cp-e5xKJ.mjs.map +0 -1
  506. package/dist/stepper-20s8dnPA.mjs +0 -449
  507. package/dist/stepper-20s8dnPA.mjs.map +0 -1
  508. package/dist/stepper-VDiR2I8F.js +0 -2
  509. package/dist/stepper-VDiR2I8F.js.map +0 -1
  510. package/dist/table-B5ZitZoL.js +0 -9
  511. package/dist/table-B5ZitZoL.js.map +0 -1
  512. package/dist/table-CNIL-60s.mjs +0 -7428
  513. package/dist/table-CNIL-60s.mjs.map +0 -1
  514. package/dist/tabs-Bye5lgZ1.mjs +0 -424
  515. package/dist/tabs-Bye5lgZ1.mjs.map +0 -1
  516. package/dist/tabs-D-nfZHIA.js +0 -2
  517. package/dist/tabs-D-nfZHIA.js.map +0 -1
  518. package/dist/text-field-D0e-cRbG.mjs.map +0 -1
  519. package/dist/text-field-VW8ObP83.js.map +0 -1
  520. package/dist/tooltip-B-11qk-0.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.esm-BmIwrKkJ.js","sources":["../../../common/temp/node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../../common/temp/node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js","../../../common/temp/node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.esm.js"],"sourcesContent":["import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import React, { useState, useCallback } from 'react';\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexport { HiddenText, LiveRegion, useAnnouncement };\n//# sourceMappingURL=accessibility.esm.js.map\n","import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, memo, useReducer, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, setRects] = useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultKeyboardCoordinateGetter, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n"],"names":["useCombinedRefs","_len","refs","_key","useMemo","node","ref","canUseDOM","isWindow","element","elementString","isNode","getWindow","target","_target$ownerDocument","_target$ownerDocument2","isDocument","Document","isHTMLElement","isSVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useEvent","handler","handlerRef","useRef","useCallback","args","useInterval","intervalRef","set","listener","duration","clear","useLatestValue","value","dependencies","valueRef","useLazyMemo","callback","newValue","useNodeRef","onChange","onChangeHandler","setNodeRef","usePrevious","ids","useUniqueId","prefix","id","createAdjustmentFn","modifier","object","adjustments","accumulator","adjustment","entries","key","valueAdjustment","add","subtract","hasViewportRelativeCoordinates","event","isKeyboardEvent","KeyboardEvent","isTouchEvent","TouchEvent","getEventCoordinates","x","y","CSS","transform","scaleX","scaleY","_ref","property","easing","SELECTOR","findFirstFocusableNode","hiddenStyles","HiddenText","React","LiveRegion","announcement","ariaLiveType","visuallyHidden","useAnnouncement","setAnnouncement","useState","DndMonitorContext","createContext","useDndMonitor","registerListener","useContext","useDndMonitorProvider","listeners","type","_listener$type","defaultScreenReaderInstructions","defaultAnnouncements","active","_ref2","over","_ref3","_ref4","Accessibility","announcements","container","hiddenTextDescribedById","screenReaderInstructions","announce","liveRegionId","mounted","setMounted","_ref5","_ref6","markup","createPortal","Action","noop","useSensor","sensor","options","useSensors","sensors","defaultCoordinates","distanceBetween","p1","p2","getRelativeTransformOrigin","rect","eventCoordinates","transformOrigin","sortCollisionsAsc","a","b","sortCollisionsDesc","cornersOfRectangle","left","top","height","width","getFirstCollision","collisions","firstCollision","centerOfRectangle","closestCenter","collisionRect","droppableRects","droppableContainers","centerRect","droppableContainer","distBetween","closestCorners","corners","rectCorners","distances","corner","index","effectiveDistance","getIntersectionRatio","entry","right","bottom","targetArea","entryArea","intersectionArea","intersectionRatio","rectIntersection","adjustScale","rect1","rect2","getRectDelta","createRectAdjustmentFn","acc","getAdjustedRect","parseTransform","transformArray","inverseTransform","parsedTransform","translateX","translateY","w","h","defaultOptions","getClientRect","getTransformAgnosticClientRect","getWindowClientRect","isFixed","computedStyle","isScrollable","overflowRegex","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","getScrollXCoordinate","getScrollYCoordinate","getScrollCoordinates","Direction","isDocumentScrollingElement","getScrollPosition","scrollingContainer","minScroll","dimensions","maxScroll","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","direction","speed","threshold","getScrollElementRect","innerWidth","innerHeight","getScrollOffsets","scrollableAncestors","getScrollXOffset","getScrollYOffset","scrollIntoViewIfNeeded","measure","properties","Rect","scrollOffsets","axis","keys","getScrollOffset","currentOffsets","scrollOffsetsDeltla","Listeners","_this$target","eventName","_this$target2","getEventListenerTarget","EventTarget","hasExceededDistance","delta","measurement","dx","dy","EventName","preventDefault","stopPropagation","KeyboardCode","defaultKeyboardCodes","defaultKeyboardCoordinateGetter","currentCoordinates","KeyboardSensor","props","activeNode","onStart","context","keyboardCodes","coordinateGetter","scrollBehavior","code","newCoordinates","coordinatesDelta","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","coordinates","onMove","onEnd","onCancel","onActivation","activator","isDistanceConstraint","constraint","isDelayConstraint","AbstractPointerSensor","events","listenerTarget","_getEventCoordinates","activationConstraint","bypassActivationConstraint","offset","onPending","initialCoordinates","_getEventCoordinates2","activated","onAbort","_this$document$getSel","PointerSensor","events$1","MouseButton","MouseSensor","events$2","TouchSensor","touches","AutoScrollActivator","TraversalOrder","useAutoScroller","canScroll","draggingRect","enabled","interval","order","pointerCoordinates","scrollableAncestorRects","scrollIntent","useScrollIntent","setAutoScrollInterval","clearAutoScrollInterval","scrollSpeed","scrollDirection","scrollContainerRef","autoScroll","scrollLeft","scrollTop","sortedScrollableAncestors","defaultScrollIntent","disabled","previousDelta","previousIntent","useCachedNode","draggableNodes","draggableNode","cachedNode","useCombineActivators","getSyntheticHandler","Sensor","sensorActivators","MeasuringStrategy","MeasuringFrequency","defaultValue","useDroppableMeasuring","containers","dragging","config","queue","setQueue","frequency","strategy","containersRef","isDisabled","disabledRef","measureDroppableContainers","timeoutId","previousValue","map","useInitialValue","computeFn","useInitialRect","useMutationObserver","handleMutations","mutationObserver","MutationObserver","useResizeObserver","handleResize","resizeObserver","ResizeObserver","defaultMeasure","useRect","fallbackRect","setRect","measureRect","currentRect","newRect","records","record","useRectDelta","initialRect","defaultValue$1","useScrollableAncestors","previousNode","ancestors","useScrollOffsets","elements","scrollCoordinates","setScrollCoordinates","prevElements","handleScroll","scrollingElement","previousElements","cleanup","scrollableElement","useScrollOffsetsDelta","initialScrollOffsets","hasScrollOffsets","useSensorSetup","teardownFns","teardown","useSyntheticListeners","useWindowRect","defaultValue$2","useRects","firstElement","windowRect","rects","setRects","measureRects","getMeasurableNode","firstChild","useDragOverlayMeasuring","handleNodeChange","nodeRef","setRef","defaultSensors","defaultData","defaultMeasuringConfiguration","DroppableContainersMap","_super$get","_this$get$node$curren","_this$get","defaultPublicContext","defaultInternalContext","InternalContext","PublicContext","getInitialState","reducer","state","action","RestoreFocus","activatorEvent","previousActivatorEvent","previousActiveId","activatorNode","focusableNode","applyModifiers","modifiers","useMeasuringConfiguration","useLayoutShiftScrollCompensation","initialized","rectDelta","ActiveDraggableContext","Status","DndContext","memo","_sensorContext$curren","_dragOverlay$nodeRef$","_dragOverlay$rect","_over$rect","accessibility","children","collisionDetection","measuring","store","useReducer","dispatch","dispatchMonitorEvent","registerMonitorListener","status","setStatus","isInitialized","activeId","translate","activeRects","_node$data","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","draggableDescribedById","enabledDroppableContainers","measuringConfiguration","measuringScheduled","activationCoordinates","autoScrollOptions","getAutoScrollerOptions","initialActiveNodeRect","activeNodeRect","containerNodeRect","sensorContext","overNode","dragOverlay","draggingNode","draggingNodeRect","usesDragOverlay","nodeRectDelta","modifiedTranslate","scrollAdjustment","activeNodeScrollDelta","scrollAdjustedTranslate","overId","setOver","appliedTranslate","activeSensorRef","instantiateSensor","sensorInstance","onDragAbort","onDragPending","onDragStart","unstable_batchedUpdates","createHandler","cancelDrop","bindActivatorToSensorInstantiator","nativeEvent","activeDraggableNode","activationContext","activators","onDragMove","onDragOver","overContainer","publicContext","internalContext","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","NullContext","defaultRole","ID_PREFIX","useDraggable","data","attributes","ariaDescribedById","role","roleDescription","tabIndex","isDragging","setActivatorNodeRef","dataRef","memoizedAttributes","useDndContext","ID_PREFIX$1","defaultResizeObserverConfig","useDroppable","resizeObserverConfig","previous","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","newElement","previousElement","AnimationManager","animation","clonedChildren","setClonedChildren","setElement","previousChildren","cloneElement","defaultTransform","NullifiedContextProvider","baseStyles","defaultTransition","PositionedOverlay","forwardRef","as","className","style","transition","scaleAdjustedTransform","styles","defaultDropAnimationSideEffects","originalStyles","defaultKeyframeResolver","initial","final","defaultDropAnimationConfiguration","useDropAnimation","activeDraggable","measurableNode","createDefaultDropAnimation","sideEffects","keyframes","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","resolve","useKey","DragOverlay","dropAnimationConfig","wrapperElement","zIndex","modifiedTransform","dropAnimation"],"mappings":"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","x_google_ignoreList":[0,1,2]}