intergalactic 15.80.0-prerelease.0 → 15.81.0-prerelease.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 (336) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/accordion/lib/cjs/Accordion.js +7 -7
  3. package/accordion/lib/es6/Accordion.js +7 -7
  4. package/animation/lib/cjs/Animation.js +11 -11
  5. package/animation/lib/cjs/Collapse.js +28 -28
  6. package/animation/lib/cjs/FadeInOut.js +28 -28
  7. package/animation/lib/cjs/Scale.js +28 -28
  8. package/animation/lib/cjs/Slide.js +28 -28
  9. package/animation/lib/cjs/Transform.js +28 -28
  10. package/animation/lib/es6/Animation.js +11 -11
  11. package/animation/lib/es6/Collapse.js +28 -28
  12. package/animation/lib/es6/FadeInOut.js +28 -28
  13. package/animation/lib/es6/Scale.js +28 -28
  14. package/animation/lib/es6/Slide.js +28 -28
  15. package/animation/lib/es6/Transform.js +28 -28
  16. package/badge/lib/cjs/Badge.js +6 -6
  17. package/badge/lib/es6/Badge.js +6 -6
  18. package/base-trigger/lib/cjs/BaseTrigger.js +18 -18
  19. package/base-trigger/lib/cjs/ButtonTrigger.js +3 -3
  20. package/base-trigger/lib/cjs/FilterTrigger.js +7 -7
  21. package/base-trigger/lib/cjs/LinkTrigger.js +12 -12
  22. package/base-trigger/lib/es6/BaseTrigger.js +18 -18
  23. package/base-trigger/lib/es6/ButtonTrigger.js +3 -3
  24. package/base-trigger/lib/es6/FilterTrigger.js +7 -7
  25. package/base-trigger/lib/es6/LinkTrigger.js +12 -12
  26. package/breadcrumbs/lib/cjs/Breadcrumbs.js +6 -6
  27. package/breadcrumbs/lib/es6/Breadcrumbs.js +6 -6
  28. package/button/lib/cjs/Button.js +26 -26
  29. package/button/lib/es6/Button.js +26 -26
  30. package/card/lib/cjs/Card.js +8 -8
  31. package/card/lib/es6/Card.js +8 -8
  32. package/carousel/lib/cjs/Carousel.js +19 -19
  33. package/carousel/lib/es6/Carousel.js +19 -19
  34. package/checkbox/lib/cjs/Checkbox.js +18 -18
  35. package/checkbox/lib/es6/Checkbox.js +18 -18
  36. package/color-picker/lib/cjs/ColorPicker.js +23 -23
  37. package/color-picker/lib/cjs/PaletteManager.js +23 -23
  38. package/color-picker/lib/cjs/components/InputColor.js +23 -23
  39. package/color-picker/lib/es6/ColorPicker.js +23 -23
  40. package/color-picker/lib/es6/PaletteManager.js +23 -23
  41. package/color-picker/lib/es6/components/InputColor.js +23 -23
  42. package/components.json +73 -73
  43. package/counter/lib/cjs/Counter.js +10 -10
  44. package/counter/lib/es6/Counter.js +10 -10
  45. package/d3-chart/component/Chart/AbstractChart.type.d.ts +4 -0
  46. package/d3-chart/lib/cjs/Area.js +11 -11
  47. package/d3-chart/lib/cjs/Axis.js +14 -14
  48. package/d3-chart/lib/cjs/Bar.js +10 -10
  49. package/d3-chart/lib/cjs/Bubble.js +12 -12
  50. package/d3-chart/lib/cjs/Donut.js +9 -9
  51. package/d3-chart/lib/cjs/Dots.js +8 -8
  52. package/d3-chart/lib/cjs/HorizontalBar.js +10 -10
  53. package/d3-chart/lib/cjs/Hover.js +3 -3
  54. package/d3-chart/lib/cjs/Line.js +9 -9
  55. package/d3-chart/lib/cjs/Plot.js +7 -5
  56. package/d3-chart/lib/cjs/Plot.js.map +1 -1
  57. package/d3-chart/lib/cjs/Radar.js +19 -19
  58. package/d3-chart/lib/cjs/RadialTree.js +11 -11
  59. package/d3-chart/lib/cjs/ReferenceLine.js +9 -9
  60. package/d3-chart/lib/cjs/ScatterPlot.js +9 -9
  61. package/d3-chart/lib/cjs/Tooltip.js +9 -9
  62. package/d3-chart/lib/cjs/Venn.js +9 -9
  63. package/d3-chart/lib/cjs/a11y/PlotA11yModule.js +2 -2
  64. package/d3-chart/lib/cjs/a11y/PlotA11yView.js +2 -2
  65. package/d3-chart/lib/cjs/component/Chart/AbstractChart.js +4 -2
  66. package/d3-chart/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  67. package/d3-chart/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
  68. package/d3-chart/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  69. package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  70. package/d3-chart/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  71. package/d3-chart/lib/cjs/style/reference-line.shadow.css +1 -1
  72. package/d3-chart/lib/es6/Area.js +11 -11
  73. package/d3-chart/lib/es6/Axis.js +14 -14
  74. package/d3-chart/lib/es6/Bar.js +10 -10
  75. package/d3-chart/lib/es6/Bubble.js +12 -12
  76. package/d3-chart/lib/es6/Donut.js +9 -9
  77. package/d3-chart/lib/es6/Dots.js +8 -8
  78. package/d3-chart/lib/es6/HorizontalBar.js +10 -10
  79. package/d3-chart/lib/es6/Hover.js +3 -3
  80. package/d3-chart/lib/es6/Line.js +9 -9
  81. package/d3-chart/lib/es6/Plot.js +7 -5
  82. package/d3-chart/lib/es6/Plot.js.map +1 -1
  83. package/d3-chart/lib/es6/Radar.js +19 -19
  84. package/d3-chart/lib/es6/RadialTree.js +11 -11
  85. package/d3-chart/lib/es6/ReferenceLine.js +9 -9
  86. package/d3-chart/lib/es6/ScatterPlot.js +9 -9
  87. package/d3-chart/lib/es6/Tooltip.js +9 -9
  88. package/d3-chart/lib/es6/Venn.js +9 -9
  89. package/d3-chart/lib/es6/a11y/PlotA11yModule.js +2 -2
  90. package/d3-chart/lib/es6/a11y/PlotA11yView.js +2 -2
  91. package/d3-chart/lib/es6/component/Chart/AbstractChart.js +4 -2
  92. package/d3-chart/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  93. package/d3-chart/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
  94. package/d3-chart/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  95. package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  96. package/d3-chart/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  97. package/d3-chart/lib/es6/style/reference-line.shadow.css +1 -1
  98. package/d3-chart/lib/types/component/Chart/AbstractChart.type.d.ts +4 -0
  99. package/data-table/lib/cjs/DataTable.js +35 -35
  100. package/data-table/lib/cjs/Head.js +1 -1
  101. package/data-table/lib/cjs/Head.js.map +1 -1
  102. package/data-table/lib/es6/DataTable.js +35 -35
  103. package/data-table/lib/es6/Head.js +1 -1
  104. package/data-table/lib/es6/Head.js.map +1 -1
  105. package/date-picker/lib/cjs/components/Calendar.js +21 -21
  106. package/date-picker/lib/cjs/components/DateRangeComparatorAbstract.js +29 -29
  107. package/date-picker/lib/cjs/components/InputTrigger.js +29 -29
  108. package/date-picker/lib/cjs/components/PickerAbstract.js +29 -29
  109. package/date-picker/lib/cjs/components/RangePickerAbstract.js +29 -29
  110. package/date-picker/lib/es6/components/Calendar.js +21 -21
  111. package/date-picker/lib/es6/components/DateRangeComparatorAbstract.js +29 -29
  112. package/date-picker/lib/es6/components/InputTrigger.js +29 -29
  113. package/date-picker/lib/es6/components/PickerAbstract.js +29 -29
  114. package/date-picker/lib/es6/components/RangePickerAbstract.js +29 -29
  115. package/divider/lib/cjs/Divider.js +9 -9
  116. package/divider/lib/es6/Divider.js +9 -9
  117. package/dot/lib/cjs/Dot.js +10 -10
  118. package/dot/lib/es6/Dot.js +10 -10
  119. package/drag-and-drop/lib/cjs/DragAndDrop.js +192 -41
  120. package/drag-and-drop/lib/cjs/DragAndDrop.js.map +1 -1
  121. package/drag-and-drop/lib/cjs/style/drag-and-drop.shadow.css +73 -28
  122. package/drag-and-drop/lib/es6/DragAndDrop.js +192 -41
  123. package/drag-and-drop/lib/es6/DragAndDrop.js.map +1 -1
  124. package/drag-and-drop/lib/es6/style/drag-and-drop.shadow.css +73 -28
  125. package/dropdown/lib/cjs/Dropdown.js +2 -2
  126. package/dropdown/lib/es6/Dropdown.js +2 -2
  127. package/dropdown-menu/lib/cjs/DropdownMenu.js +19 -19
  128. package/dropdown-menu/lib/cjs/DropdownMenu.js.map +1 -1
  129. package/dropdown-menu/lib/cjs/styleScrollArea.js +6 -6
  130. package/dropdown-menu/lib/es6/DropdownMenu.js +19 -19
  131. package/dropdown-menu/lib/es6/DropdownMenu.js.map +1 -1
  132. package/dropdown-menu/lib/es6/styleScrollArea.js +6 -6
  133. package/ellipsis/lib/cjs/Ellipsis.js +11 -11
  134. package/ellipsis/lib/cjs/Ellipsis.js.map +1 -1
  135. package/ellipsis/lib/es6/Ellipsis.js +11 -11
  136. package/ellipsis/lib/es6/Ellipsis.js.map +1 -1
  137. package/errors/lib/cjs/Error.js +9 -9
  138. package/errors/lib/es6/Error.js +9 -9
  139. package/feature-popover/lib/cjs/FeaturePopover.js +10 -10
  140. package/feature-popover/lib/es6/FeaturePopover.js +10 -10
  141. package/feedback-form/lib/cjs/FeedbackForm.js +7 -7
  142. package/feedback-form/lib/es6/FeedbackForm.js +7 -7
  143. package/flags/lib/cjs/Flags.js +3 -3
  144. package/flags/lib/es6/Flags.js +3 -3
  145. package/flags/lib/sprites/sprite@1x.css +256 -256
  146. package/flags/lib/sprites/sprite@2x.css +257 -257
  147. package/flex-box/lib/cjs/Box/useBox.js +3 -3
  148. package/flex-box/lib/cjs/Flex/useFlex.js +3 -3
  149. package/flex-box/lib/cjs/invalid-state-box/InvalidStateBox.js +2 -2
  150. package/flex-box/lib/es6/Box/useBox.js +3 -3
  151. package/flex-box/lib/es6/Flex/useFlex.js +3 -3
  152. package/flex-box/lib/es6/invalid-state-box/InvalidStateBox.js +2 -2
  153. package/format-text/lib/cjs/FormatText.js +5 -5
  154. package/format-text/lib/es6/FormatText.js +5 -5
  155. package/fullscreen-modal/lib/cjs/FullscreenModal.js +13 -13
  156. package/fullscreen-modal/lib/es6/FullscreenModal.js +13 -13
  157. package/grid/lib/cjs/Grid.js +114 -114
  158. package/grid/lib/es6/Grid.js +114 -114
  159. package/icon/color/Confluence/l/index.js +4 -4
  160. package/icon/color/Confluence/l/index.mjs +4 -4
  161. package/icon/color/Confluence/m/index.js +4 -4
  162. package/icon/color/Confluence/m/index.mjs +4 -4
  163. package/icon/color/MicrosoftOffice/l/index.js +10 -10
  164. package/icon/color/MicrosoftOffice/l/index.mjs +10 -10
  165. package/icon/color/MicrosoftOffice/m/index.js +10 -10
  166. package/icon/color/MicrosoftOffice/m/index.mjs +10 -10
  167. package/icon/lib/cjs/Icon.js +5 -5
  168. package/icon/lib/es6/Icon.js +5 -5
  169. package/icon/pay/Discover/l/index.js +1 -1
  170. package/icon/pay/Discover/l/index.mjs +1 -1
  171. package/icon/pay/Discover/m/index.js +1 -1
  172. package/icon/pay/Discover/m/index.mjs +1 -1
  173. package/icon/pay/JCB/l/index.js +10 -10
  174. package/icon/pay/JCB/l/index.mjs +10 -10
  175. package/icon/pay/JCB/m/index.js +10 -10
  176. package/icon/pay/JCB/m/index.mjs +10 -10
  177. package/icon/pay/Visa/l/index.js +2 -2
  178. package/icon/pay/Visa/l/index.mjs +2 -2
  179. package/icon/pay/Visa/m/index.js +2 -2
  180. package/icon/pay/Visa/m/index.mjs +2 -2
  181. package/illustration/lib/cjs/index.js +1 -1
  182. package/illustration/lib/es6/index.js +1 -1
  183. package/inline-edit/lib/cjs/InlineEdit.js +4 -4
  184. package/inline-edit/lib/es6/InlineEdit.js +4 -4
  185. package/inline-input/lib/cjs/InlineInput.js +18 -18
  186. package/inline-input/lib/es6/InlineInput.js +18 -18
  187. package/input/lib/cjs/Input.js +17 -17
  188. package/input/lib/es6/Input.js +17 -17
  189. package/input-mask/lib/cjs/InputMask.js +6 -6
  190. package/input-mask/lib/es6/InputMask.js +6 -6
  191. package/input-number/lib/cjs/InputNumber.js +9 -9
  192. package/input-number/lib/es6/InputNumber.js +9 -9
  193. package/input-tags/lib/cjs/InputTags.js +12 -12
  194. package/input-tags/lib/es6/InputTags.js +12 -12
  195. package/link/lib/cjs/Link.js +16 -14
  196. package/link/lib/cjs/Link.js.map +1 -1
  197. package/link/lib/cjs/style/link.shadow.css +1 -1
  198. package/link/lib/es6/Link.js +16 -14
  199. package/link/lib/es6/Link.js.map +1 -1
  200. package/link/lib/es6/style/link.shadow.css +1 -1
  201. package/mini-chart/lib/cjs/component/score/Donut.js +9 -9
  202. package/mini-chart/lib/cjs/component/score/Line.js +17 -17
  203. package/mini-chart/lib/cjs/component/trend/Bar.js +7 -7
  204. package/mini-chart/lib/cjs/component/trend/Line.js +7 -7
  205. package/mini-chart/lib/es6/component/score/Donut.js +9 -9
  206. package/mini-chart/lib/es6/component/score/Line.js +17 -17
  207. package/mini-chart/lib/es6/component/trend/Bar.js +7 -7
  208. package/mini-chart/lib/es6/component/trend/Line.js +7 -7
  209. package/modal/lib/cjs/Modal.js +9 -9
  210. package/modal/lib/es6/Modal.js +9 -9
  211. package/notice/lib/cjs/Notice.js +13 -13
  212. package/notice/lib/es6/Notice.js +13 -13
  213. package/notice-bubble/lib/cjs/NoticeBubble.js +12 -12
  214. package/notice-bubble/lib/es6/NoticeBubble.js +12 -12
  215. package/notice-global/lib/cjs/NoticeGlobal.js +11 -11
  216. package/notice-global/lib/es6/NoticeGlobal.js +11 -11
  217. package/package.json +1 -1
  218. package/pagination/lib/cjs/Pagination.js +10 -10
  219. package/pagination/lib/es6/Pagination.js +10 -10
  220. package/pills/lib/cjs/Pills.js +13 -13
  221. package/pills/lib/es6/Pills.js +13 -13
  222. package/popper/index.d.ts +4 -0
  223. package/popper/lib/cjs/Popper.js +28 -8
  224. package/popper/lib/cjs/Popper.js.map +1 -1
  225. package/popper/lib/cjs/createPopper.js +2 -1
  226. package/popper/lib/cjs/createPopper.js.map +1 -1
  227. package/popper/lib/cjs/index.d.js.map +1 -1
  228. package/popper/lib/cjs/modifiers/cursorAnchoring.js +60 -0
  229. package/popper/lib/cjs/modifiers/cursorAnchoring.js.map +1 -0
  230. package/popper/lib/es6/Popper.js +28 -8
  231. package/popper/lib/es6/Popper.js.map +1 -1
  232. package/popper/lib/es6/createPopper.js +2 -1
  233. package/popper/lib/es6/createPopper.js.map +1 -1
  234. package/popper/lib/es6/index.d.js.map +1 -1
  235. package/popper/lib/es6/modifiers/cursorAnchoring.js +52 -0
  236. package/popper/lib/es6/modifiers/cursorAnchoring.js.map +1 -0
  237. package/popper/lib/types/index.d.ts +4 -0
  238. package/product-head/lib/cjs/Info.js +4 -4
  239. package/product-head/lib/cjs/ProductHead.js +5 -5
  240. package/product-head/lib/cjs/Title.js +4 -4
  241. package/product-head/lib/es6/Info.js +4 -4
  242. package/product-head/lib/es6/ProductHead.js +5 -5
  243. package/product-head/lib/es6/Title.js +4 -4
  244. package/progress-bar/lib/cjs/ProgressBar.js +15 -15
  245. package/progress-bar/lib/es6/ProgressBar.js +15 -15
  246. package/radio/lib/cjs/Radio.js +16 -16
  247. package/radio/lib/es6/Radio.js +16 -16
  248. package/scroll-area/lib/cjs/ScrollArea.js +21 -21
  249. package/scroll-area/lib/cjs/ScrollBar.js +6 -6
  250. package/scroll-area/lib/es6/ScrollArea.js +21 -21
  251. package/scroll-area/lib/es6/ScrollBar.js +6 -6
  252. package/select/lib/cjs/InputSearch.js +6 -6
  253. package/select/lib/cjs/Select.js +8 -8
  254. package/select/lib/es6/InputSearch.js +6 -6
  255. package/select/lib/es6/Select.js +8 -8
  256. package/side-panel/lib/cjs/SidePanel.js +15 -15
  257. package/side-panel/lib/es6/SidePanel.js +15 -15
  258. package/skeleton/lib/cjs/Charts/Area.js +9 -9
  259. package/skeleton/lib/cjs/Charts/Bar.js +9 -9
  260. package/skeleton/lib/cjs/Charts/Bubble.js +9 -9
  261. package/skeleton/lib/cjs/Charts/Donut.js +9 -9
  262. package/skeleton/lib/cjs/Charts/Histogram.js +9 -9
  263. package/skeleton/lib/cjs/Charts/Line.js +9 -9
  264. package/skeleton/lib/cjs/Charts/RadialTree.js +9 -9
  265. package/skeleton/lib/cjs/Charts/ScatterPlot.js +9 -9
  266. package/skeleton/lib/cjs/Charts/Venn.js +9 -9
  267. package/skeleton/lib/cjs/Skeleton.js +8 -8
  268. package/skeleton/lib/es6/Charts/Area.js +9 -9
  269. package/skeleton/lib/es6/Charts/Bar.js +9 -9
  270. package/skeleton/lib/es6/Charts/Bubble.js +9 -9
  271. package/skeleton/lib/es6/Charts/Donut.js +9 -9
  272. package/skeleton/lib/es6/Charts/Histogram.js +9 -9
  273. package/skeleton/lib/es6/Charts/Line.js +9 -9
  274. package/skeleton/lib/es6/Charts/RadialTree.js +9 -9
  275. package/skeleton/lib/es6/Charts/ScatterPlot.js +9 -9
  276. package/skeleton/lib/es6/Charts/Venn.js +9 -9
  277. package/skeleton/lib/es6/Skeleton.js +8 -8
  278. package/slider/lib/cjs/Slider.js +8 -7
  279. package/slider/lib/cjs/Slider.js.map +1 -1
  280. package/slider/lib/cjs/style/slider.shadow.css +9 -0
  281. package/slider/lib/es6/Slider.js +8 -7
  282. package/slider/lib/es6/Slider.js.map +1 -1
  283. package/slider/lib/es6/style/slider.shadow.css +9 -0
  284. package/spin/lib/cjs/Spin.js +13 -13
  285. package/spin/lib/es6/Spin.js +13 -13
  286. package/spin-container/lib/cjs/SpinContainer.js +8 -8
  287. package/spin-container/lib/es6/SpinContainer.js +8 -8
  288. package/sticky/lib/cjs/Sticky.js +2 -2
  289. package/sticky/lib/es6/Sticky.js +2 -2
  290. package/switch/lib/cjs/Switch.js +21 -21
  291. package/switch/lib/es6/Switch.js +21 -21
  292. package/tab-line/lib/cjs/TabLine.js +13 -13
  293. package/tab-line/lib/es6/TabLine.js +13 -13
  294. package/tab-panel/lib/cjs/TabPanel.js +8 -8
  295. package/tab-panel/lib/es6/TabPanel.js +8 -8
  296. package/tag/lib/cjs/Tag.js +20 -20
  297. package/tag/lib/es6/Tag.js +20 -20
  298. package/textarea/lib/cjs/Textarea.js +10 -8
  299. package/textarea/lib/cjs/Textarea.js.map +1 -1
  300. package/textarea/lib/es6/Textarea.js +10 -8
  301. package/textarea/lib/es6/Textarea.js.map +1 -1
  302. package/time-picker/lib/cjs/TimePicker.js +12 -12
  303. package/time-picker/lib/es6/TimePicker.js +12 -12
  304. package/tooltip/index.d.ts +13 -2
  305. package/tooltip/lib/cjs/Tooltip.js +9 -9
  306. package/tooltip/lib/cjs/index.d.js.map +1 -1
  307. package/tooltip/lib/es6/Tooltip.js +9 -9
  308. package/tooltip/lib/es6/index.d.js.map +1 -1
  309. package/tooltip/lib/types/index.d.ts +13 -2
  310. package/typography/index.d.ts +4 -1
  311. package/typography/lib/cjs/Blockquote.js +4 -4
  312. package/typography/lib/cjs/Hint.js +7 -7
  313. package/typography/lib/cjs/List.js +5 -5
  314. package/typography/lib/cjs/Text.js +34 -34
  315. package/typography/lib/cjs/index.d.js.map +1 -1
  316. package/typography/lib/es6/Blockquote.js +4 -4
  317. package/typography/lib/es6/Hint.js +7 -7
  318. package/typography/lib/es6/List.js +5 -5
  319. package/typography/lib/es6/Text.js +34 -34
  320. package/typography/lib/es6/index.d.js.map +1 -1
  321. package/typography/lib/types/index.d.ts +4 -1
  322. package/utils/lib/components/invalid-state-pattern/InvalidStatePattern.js +2 -2
  323. package/utils/lib/components/invalid-state-pattern/InvalidStatePattern.mjs +2 -2
  324. package/utils/lib/injectStyle.js +1 -1
  325. package/utils/lib/injectStyle.mjs +1 -1
  326. package/utils/lib/themes/auto.css +3 -1
  327. package/utils/lib/themes/default.css +3 -1
  328. package/utils/lib/themes/default.json +1 -0
  329. package/utils/lib/themes/light.css +3 -1
  330. package/utils/lib/themes/light.json +1 -0
  331. package/widget-empty/lib/cjs/WidgetEmpty.js +8 -6
  332. package/widget-empty/lib/cjs/WidgetEmpty.js.map +1 -1
  333. package/widget-empty/lib/es6/WidgetEmpty.js +8 -6
  334. package/widget-empty/lib/es6/WidgetEmpty.js.map +1 -1
  335. package/wizard/lib/cjs/Wizard.js +11 -11
  336. package/wizard/lib/es6/Wizard.js +11 -11
@@ -20,19 +20,24 @@ var _flexBox = require("intergalactic/flex-box");
20
20
  var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
21
21
  var _i18nEnhance = _interopRequireDefault(require("intergalactic/utils/lib/enhances/i18nEnhance"));
22
22
  var _useEnhancedEffect = _interopRequireDefault(require("intergalactic/utils/lib/use/useEnhancedEffect"));
23
+ var _keyboardFocusEnhance = _interopRequireDefault(require("intergalactic/utils/lib/enhances/keyboardFocusEnhance"));
23
24
  /*__reshadow-styles__:"./style/drag-and-drop.shadow.css"*/
24
- var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SDraggable_cczy6_gg_.__draggable_cczy6_gg_{position:relative;cursor:grab;-moz-user-select:none;-webkit-user-select:none;user-select:none}.___SDraggable_cczy6_gg_.__draggable_cczy6_gg_::after{content:\"\";position:absolute;display:none;background-image:radial-gradient(circle at center,var(--intergalactic-icon-primary-neutral, #6c6e79) 1px,transparent 0);background-size:6px 6px;background-position:2px 2px;background-repeat:repeat repeat}@media (hover:hover){.___SDraggable_cczy6_gg_.__draggable_cczy6_gg_:hover::after{display:block}}.___SDraggable_cczy6_gg_.__draggable_cczy6_gg_.__hideHoverEffect_cczy6_gg_::after{display:none}.___SDraggable_cczy6_gg_._placement_top_cczy6_gg_{padding-top:var(--intergalactic-spacing-4x, 16px)}.___SDraggable_cczy6_gg_._placement_right_cczy6_gg_{padding-right:var(--intergalactic-spacing-4x, 16px)}.___SDraggable_cczy6_gg_._placement_right_cczy6_gg_::after{right:0}.___SDraggable_cczy6_gg_._placement_bottom_cczy6_gg_{padding-bottom:var(--intergalactic-spacing-4x, 16px)}.___SDraggable_cczy6_gg_._placement_bottom_cczy6_gg_::after{bottom:0}.___SDraggable_cczy6_gg_._placement_left_cczy6_gg_{padding-left:var(--intergalactic-spacing-4x, 16px)}.___SDraggable_cczy6_gg_._placement_left_cczy6_gg_::after{left:0}.___SDraggable_cczy6_gg_._placement_top_cczy6_gg_::after{top:0;left:0;width:100%;height:16px}.___SDraggable_cczy6_gg_._placement_bottom_cczy6_gg_::after{left:0;width:100%;height:16px}.___SDraggable_cczy6_gg_._placement_left_cczy6_gg_::after,.___SDraggable_cczy6_gg_._placement_right_cczy6_gg_::after{top:0;width:16px;height:100%}.___SDropZone_cczy6_gg_{border:1px dashed var(--intergalactic-border-primary, #c4c7cf);border-radius:var(--intergalactic-surface-rounded, 6px)}.___SDraggable_cczy6_gg_.__dropPreview_cczy6_gg_,.___SDropZone_cczy6_gg_.__dropPreview_cczy6_gg_{background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}.___SDraggable_cczy6_gg_.__dark_cczy6_gg_.__dropPreview_cczy6_gg_,.___SDropZone_cczy6_gg_.__dark_cczy6_gg_.__dropPreview_cczy6_gg_{background-color:var(--intergalactic-bg-primary-invert-active, #484a54)}.___SA11yHint_cczy6_gg_{position:absolute;margin-top:-1px;height:1px;width:1px;clip:rect(0 0 0 0)}" /*__inner_css_end__*/, "cczy6_gg_") /*__reshadow_css_end__*/, {
25
- "__SDraggable": "___SDraggable_cczy6_gg_",
26
- "_placement_top": "_placement_top_cczy6_gg_",
27
- "_placement_right": "_placement_right_cczy6_gg_",
28
- "_placement_left": "_placement_left_cczy6_gg_",
29
- "_placement_bottom": "_placement_bottom_cczy6_gg_",
30
- "__SDropZone": "___SDropZone_cczy6_gg_",
31
- "_dropPreview": "__dropPreview_cczy6_gg_",
32
- "_dark": "__dark_cczy6_gg_",
33
- "__SA11yHint": "___SA11yHint_cczy6_gg_",
34
- "_draggable": "__draggable_cczy6_gg_",
35
- "_hideHoverEffect": "__hideHoverEffect_cczy6_gg_"
25
+ var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SDraggable_1ff86_gg_.__draggable_1ff86_gg_{position:relative;cursor:grab;-moz-user-select:none;-webkit-user-select:none;user-select:none}.___SDraggable_1ff86_gg_.__draggable_1ff86_gg_::before{content:\"\";position:absolute;display:none;pointer-events:none;background-image:radial-gradient(circle at center,var(--intergalactic-icon-primary-neutral, #6c6e79) 1px,transparent 0);background-size:6px 6px;background-position:2px 2px;background-repeat:repeat repeat}@media (hover:hover){.___SDraggable_1ff86_gg_.__draggable_1ff86_gg_:hover::before{display:block}}.___SDraggable_1ff86_gg_.__draggable_1ff86_gg_.__hideHoverEffect_1ff86_gg_::before{display:none}.___SDraggable_1ff86_gg_._placement_right_1ff86_gg_::before{right:0}.___SDraggable_1ff86_gg_._placement_bottom_1ff86_gg_::before{bottom:0}.___SDraggable_1ff86_gg_._placement_left_1ff86_gg_::before{left:0}.___SDraggable_1ff86_gg_._placement_top_1ff86_gg_::before{top:0;left:0;width:100%;height:16px}.___SDraggable_1ff86_gg_._placement_bottom_1ff86_gg_::before{left:0;width:100%;height:16px}.___SDraggable_1ff86_gg_._placement_left_1ff86_gg_::before,.___SDraggable_1ff86_gg_._placement_right_1ff86_gg_::before{top:0;width:16px;height:100%}.___SDropZone_1ff86_gg_{position:relative}.___SDraggable_1ff86_gg_.__dropPreview_1ff86_gg_,.___SDropZone_1ff86_gg_.__dropPreview_1ff86_gg_{background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}.___SDraggable_1ff86_gg_.__dark_1ff86_gg_.__dropPreview_1ff86_gg_,.___SDropZone_1ff86_gg_.__dark_1ff86_gg_.__dropPreview_1ff86_gg_{background-color:var(--intergalactic-bg-primary-invert-active, #484a54)}.___SDraggable_1ff86_gg_:focus{outline:0}.___SDraggable_1ff86_gg_.__keyboardFocused_1ff86_gg_:focus{box-shadow:none}.___SDraggable_1ff86_gg_.__keyboardFocused_1ff86_gg_:focus:after{position:absolute;display:block;content:\"\";top:3px;right:3px;bottom:3px;left:3px;box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));pointer-events:none}.___SDraggable_1ff86_gg_.__keyboardDragging_1ff86_gg_{scale:1.1;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);box-shadow:var(--intergalactic-box-shadow-dnd, 0px 0px 1px 0px rgba(25, 27, 35, 0.16), 0px 12px 40px 0px rgba(25, 27, 35, 0.16))!important}.___SDraggable_1ff86_gg_.__keyboardDragging_1ff86_gg_.__hideHoverEffect_1ff86_gg_::before,.___SDraggable_1ff86_gg_.__keyboardDragging_1ff86_gg_::before{display:block}.___SDraggable_1ff86_gg_.__keyboardDragging_1ff86_gg_.__reversedScaling_1ff86_gg_{scale:.95}.___SDraggable_1ff86_gg_.__animatedScaling_1ff86_gg_{transition:all calc(var(--intergalactic-duration-extra-fast, 100)*1ms) ease-in-out}.___SA11yHint_1ff86_gg_{position:absolute;margin-top:-1px;height:1px;width:1px;clip:rect(0 0 0 0)}@media (prefers-reduced-motion:reduce){.___SDraggable_1ff86_gg_{transition:none}}" /*__inner_css_end__*/, "1ff86_gg_") /*__reshadow_css_end__*/, {
26
+ "__SDraggable": "___SDraggable_1ff86_gg_",
27
+ "_placement_top": "_placement_top_1ff86_gg_",
28
+ "_placement_right": "_placement_right_1ff86_gg_",
29
+ "_placement_left": "_placement_left_1ff86_gg_",
30
+ "_placement_bottom": "_placement_bottom_1ff86_gg_",
31
+ "__SDropZone": "___SDropZone_1ff86_gg_",
32
+ "_dropPreview": "__dropPreview_1ff86_gg_",
33
+ "_dark": "__dark_1ff86_gg_",
34
+ "_keyboardFocused": "__keyboardFocused_1ff86_gg_",
35
+ "_keyboardDragging": "__keyboardDragging_1ff86_gg_",
36
+ "_reversedScaling": "__reversedScaling_1ff86_gg_",
37
+ "_animatedScaling": "__animatedScaling_1ff86_gg_",
38
+ "__SA11yHint": "___SA11yHint_1ff86_gg_",
39
+ "_draggable": "__draggable_1ff86_gg_",
40
+ "_hideHoverEffect": "__hideHoverEffect_1ff86_gg_"
36
41
  });
37
42
  var noop = function noop() {
38
43
  /* do nothing */
@@ -54,10 +59,13 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
54
59
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
55
60
  items: [],
56
61
  dragging: null,
57
- previewSwap: null,
62
+ dragOver: null,
58
63
  hideHoverEffect: false,
59
64
  // https://stackoverflow.com/questions/67118739/hover-effect-reset-when-hovering-over-other-letters
60
- a11yHint: null
65
+ a11yHint: null,
66
+ keyboardDraggingIndex: null,
67
+ animatedScaling: null,
68
+ reversedScaling: false
61
69
  });
62
70
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleItemDragStart", function (index) {
63
71
  var items = _this.state.items;
@@ -71,7 +79,7 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
71
79
  });
72
80
  var itemsCount = zonedItems.length;
73
81
  var itemPosition = zonedItems.findIndex(function (i) {
74
- return (i === null || i === void 0 ? void 0 : i.id) === currentItem.id;
82
+ return (i === null || i === void 0 ? void 0 : i.node) === currentItem.node || (i === null || i === void 0 ? void 0 : i.id) && (i === null || i === void 0 ? void 0 : i.id) === currentItem.id;
75
83
  });
76
84
  var a11yHint = getI18nText(zoneName ? 'grabbedWithZone' : 'grabbed', {
77
85
  itemText: itemText,
@@ -95,8 +103,9 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
95
103
  event.preventDefault();
96
104
  _this.setState({
97
105
  dragging: null,
98
- previewSwap: null
99
- // hideHoverEffect: true
106
+ dragOver: null,
107
+ reversedScaling: false,
108
+ keyboardDraggingIndex: null
100
109
  });
101
110
  });
102
111
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleItemDragOver", function (event) {
@@ -121,7 +130,7 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
121
130
  });
122
131
  var itemsCount = zonedItems.length;
123
132
  var itemPosition = zonedItems.findIndex(function (i) {
124
- return (i === null || i === void 0 ? void 0 : i.id) === currentItem.id;
133
+ return (i === null || i === void 0 ? void 0 : i.node) === currentItem.node || (i === null || i === void 0 ? void 0 : i.id) && (i === null || i === void 0 ? void 0 : i.id) === currentItem.id;
125
134
  });
126
135
  var i18nKey = !zoneName ? 'grabbing' : currentItem.isDropZone ? 'grabbingJustWithZone' : 'grabbingFullWithZone';
127
136
  var a11yHint = getI18nText(i18nKey, {
@@ -131,20 +140,19 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
131
140
  zoneName: zoneName || ''
132
141
  });
133
142
  if (itemIndex === ((_this$state$dragging = _this.state.dragging) === null || _this$state$dragging === void 0 ? void 0 : _this$state$dragging.index)) _this.setState({
134
- previewSwap: null,
143
+ dragOver: null,
135
144
  a11yHint: a11yHint
136
145
  });else _this.setState({
137
- previewSwap: itemIndex,
146
+ dragOver: itemIndex,
138
147
  a11yHint: a11yHint
139
148
  });
140
149
  });
141
150
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getSwapPreview", function (index) {
142
- var _this$state$items$_th, _this$state$items$_th2, _this$state$items$_th3;
151
+ var _this$state$items$pre;
143
152
  if (!_this.state.dragging) return null;
144
- if (_this.state.previewSwap === null) return null;
145
- if (((_this$state$items$_th = _this.state.items[_this.state.previewSwap]) === null || _this$state$items$_th === void 0 ? void 0 : _this$state$items$_th.draggingAllowed) === false) return null;
146
- if (_this.state.previewSwap === index) return (_this$state$items$_th2 = _this.state.items[_this.state.dragging.index]) === null || _this$state$items$_th2 === void 0 ? void 0 : _this$state$items$_th2.children;
147
- if (_this.state.previewSwap !== null && index === _this.state.dragging.index) return (_this$state$items$_th3 = _this.state.items[_this.state.previewSwap]) === null || _this$state$items$_th3 === void 0 ? void 0 : _this$state$items$_th3.children;
153
+ var previewIndex = _this.preview[index];
154
+ if (typeof previewIndex !== 'number') return null;
155
+ return (_this$state$items$pre = _this.state.items[previewIndex]) === null || _this$state$items$pre === void 0 ? void 0 : _this$state$items$pre.children;
148
156
  });
149
157
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleItemDrop", function (index) {
150
158
  var _this$asProps = _this.asProps,
@@ -166,7 +174,7 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
166
174
  });
167
175
  var itemsCount = zonedItems.length;
168
176
  var itemPosition = zonedItems.findIndex(function (i) {
169
- return (i === null || i === void 0 ? void 0 : i.id) === currentItem.id;
177
+ return (i === null || i === void 0 ? void 0 : i.node) === currentItem.node || (i === null || i === void 0 ? void 0 : i.id) && (i === null || i === void 0 ? void 0 : i.id) === currentItem.id;
170
178
  });
171
179
  var i18nKey = !zoneName ? 'dropped' : currentItem.isDropZone ? 'droppedJustWithZone' : 'droppedFullWithZone';
172
180
  var a11yHint = getI18nText(i18nKey, {
@@ -178,8 +186,10 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
178
186
  _this.setState({
179
187
  a11yHint: a11yHint,
180
188
  dragging: null,
181
- previewSwap: null,
182
- hideHoverEffect: true
189
+ dragOver: null,
190
+ keyboardDraggingIndex: null,
191
+ hideHoverEffect: true,
192
+ reversedScaling: false
183
193
  });
184
194
  if (dragging && items[dragging.index]) {
185
195
  var fromNode = items[dragging.index];
@@ -209,24 +219,64 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
209
219
  hideHoverEffect: false
210
220
  });
211
221
  });
222
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateItemScaling", function () {
223
+ var _this$state$items$;
224
+ var firstItemNode = (_this$state$items$ = _this.state.items[0]) === null || _this$state$items$ === void 0 ? void 0 : _this$state$items$.node;
225
+ if (!firstItemNode) return;
226
+ if (_this.state.reversedScaling) return;
227
+ var firstItemRect = firstItemNode.getBoundingClientRect();
228
+ var reversedScaling = false;
229
+ var parent = firstItemNode.parentElement;
230
+ while (parent && parent !== document.body) {
231
+ var computedStyle = getComputedStyle(parent);
232
+ var rect = parent.getBoundingClientRect();
233
+ if (computedStyle.overflow !== 'visible') {
234
+ if (rect.left >= firstItemRect.left || rect.right <= firstItemRect.right || rect.top >= firstItemRect.top || rect.bottom <= firstItemRect.bottom) {
235
+ reversedScaling = true;
236
+ break;
237
+ }
238
+ } else {
239
+ if (rect.left < firstItemRect.left && rect.right > firstItemRect.right && rect.top < firstItemRect.top && rect.bottom > firstItemRect.bottom) {
240
+ break;
241
+ }
242
+ }
243
+ parent = parent.parentElement;
244
+ }
245
+ if (_this.state.reversedScaling !== reversedScaling) {
246
+ _this.setState({
247
+ reversedScaling: reversedScaling
248
+ });
249
+ }
250
+ });
212
251
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleItemKeyDown", function (event, index) {
213
252
  if (event.key === ' ') {
253
+ var _this$state$items$ind;
214
254
  event.preventDefault();
215
255
  event.stopPropagation();
216
256
  if (_this.state.dragging) {
217
- var previewSwap = _this.state.previewSwap;
257
+ var dragOver = _this.state.dragOver;
258
+ var prevIndex = _this.state.dragging.index;
218
259
  _this.handleItemDrop(index);
219
260
  _this.setState({
220
261
  dragging: null,
221
- previewSwap: null,
262
+ dragOver: null,
263
+ keyboardDraggingIndex: null,
264
+ animatedScaling: index,
222
265
  hideHoverEffect: true
223
266
  });
224
- setTimeout(function () {
225
- var _this$state$items;
226
- (_this$state$items = _this.state.items[previewSwap]) === null || _this$state$items === void 0 ? void 0 : _this$state$items.node.focus();
227
- }, 0);
228
- } else {
267
+ requestAnimationFrame(function () {
268
+ var _this$state$items$pre2, _this$state$items;
269
+ var prevIndexNode = (_this$state$items$pre2 = _this.state.items[prevIndex]) === null || _this$state$items$pre2 === void 0 ? void 0 : _this$state$items$pre2.node;
270
+ if (prevIndexNode !== document.activeElement) return;
271
+ (_this$state$items = _this.state.items[dragOver]) === null || _this$state$items === void 0 ? void 0 : _this$state$items.node.focus();
272
+ });
273
+ } else if ((_this$state$items$ind = _this.state.items[index]) !== null && _this$state$items$ind !== void 0 && _this$state$items$ind.draggingAllowed) {
229
274
  _this.handleItemDragStart(index);
275
+ _this.setState({
276
+ keyboardDraggingIndex: index,
277
+ animatedScaling: index
278
+ });
279
+ _this.updateItemScaling();
230
280
  }
231
281
  return false;
232
282
  } else if (event.key === 'Escape' && _this.state.dragging) {
@@ -237,17 +287,49 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
237
287
  _this.setState({
238
288
  a11yHint: a11yHint,
239
289
  dragging: null,
240
- previewSwap: null,
290
+ dragOver: null,
291
+ keyboardDraggingIndex: null,
241
292
  hideHoverEffect: true
242
293
  });
243
294
  return false;
295
+ } else if (event.key.startsWith('Arrow')) {
296
+ if (_this.state.animatedScaling !== null) {
297
+ _this.setState({
298
+ animatedScaling: null
299
+ });
300
+ }
301
+ var item = _this.state.items[index];
302
+ if ((item === null || item === void 0 ? void 0 : item.node) !== document.activeElement) return;
303
+ event.preventDefault();
304
+ requestAnimationFrame(function () {
305
+ var _this$state$items$nex;
306
+ if ((item === null || item === void 0 ? void 0 : item.node) !== document.activeElement) return;
307
+ var rects = _this.state.items.map(function (item) {
308
+ return item === null || item === void 0 ? void 0 : item.node.getBoundingClientRect();
309
+ }).map(function (rect) {
310
+ return {
311
+ top: Math.round(rect.top),
312
+ right: Math.round(rect.right),
313
+ bottom: Math.round(rect.bottom),
314
+ left: Math.round(rect.left)
315
+ };
316
+ });
317
+ var nextIndex = findNextRectangleIndex(rects, rects[index], event.key);
318
+ if (nextIndex === -1) {
319
+ var indexDiff = event.key === 'ArrowUp' || event.key === 'ArrowLeft' ? -1 : 1;
320
+ nextIndex = index + indexDiff;
321
+ }
322
+ (_this$state$items$nex = _this.state.items[nextIndex]) === null || _this$state$items$nex === void 0 ? void 0 : _this$state$items$nex.node.focus();
323
+ });
244
324
  }
245
325
  });
246
326
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleItemFocus", function (index) {
247
327
  if (!_this.state.dragging) return;
248
328
  _this.setState({
249
- previewSwap: index
329
+ dragOver: index,
330
+ keyboardDraggingIndex: index
250
331
  });
332
+ _this.updateItemScaling();
251
333
  });
252
334
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "makeItemDragStartHandler", function (index) {
253
335
  return function () {
@@ -317,7 +399,7 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
317
399
  var itemIndex = customFocus;
318
400
  if (typeof itemIndex === 'string') {
319
401
  itemIndex = _this.state.items.findIndex(function (item) {
320
- return (item === null || item === void 0 ? void 0 : item.id) === itemIndex;
402
+ return (item === null || item === void 0 ? void 0 : item.id) === customFocus;
321
403
  });
322
404
  }
323
405
  if (itemIndex === -1 || typeof itemIndex !== 'number') return undefined;
@@ -326,6 +408,21 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
326
408
  return _this;
327
409
  }
328
410
  (0, _createClass2["default"])(DragAndDropRoot, [{
411
+ key: "preview",
412
+ get: function get() {
413
+ var _this$state$dragging2;
414
+ var dragging = (_this$state$dragging2 = this.state.dragging) === null || _this$state$dragging2 === void 0 ? void 0 : _this$state$dragging2.index;
415
+ var dragOver = this.state.dragOver;
416
+ if (typeof dragging !== 'number' || typeof dragOver !== 'number') return {};
417
+ var result = {};
418
+ var shift = dragging < dragOver ? 1 : -1;
419
+ for (var i = dragging; i !== dragOver; i += shift) {
420
+ result[i] = i + shift;
421
+ }
422
+ result[dragOver] = dragging;
423
+ return result;
424
+ }
425
+ }, {
329
426
  key: "getDraggableProps",
330
427
  value: function getDraggableProps(_, index) {
331
428
  return {
@@ -338,10 +435,13 @@ var DragAndDropRoot = /*#__PURE__*/function (_Component) {
338
435
  onMouseMove: this.handleItemMouseMove,
339
436
  onKeyDown: this.makeItemKeyDownHandler(index),
340
437
  onFocus: this.makeItemFocusHandler(index),
341
- dropPreview: index === this.state.previewSwap,
438
+ dropPreview: index === this.state.dragOver,
439
+ keyboardDragging: index === this.state.keyboardDraggingIndex,
440
+ reversedScaling: this.state.reversedScaling,
342
441
  dark: this.asProps.theme === 'dark',
343
442
  swapPreview: this.getSwapPreview(index),
344
- hideHoverEffect: this.state.hideHoverEffect
443
+ hideHoverEffect: this.state.hideHoverEffect,
444
+ animatedScaling: index === this.state.animatedScaling
345
445
  };
346
446
  }
347
447
  }, {
@@ -438,10 +538,61 @@ var Draggable = function Draggable(props) {
438
538
  return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SDraggable, _ref5.cn("SDraggable", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
439
539
  "ref": ref,
440
540
  "draggable": !noDrag,
441
- "tabIndex": 0,
442
541
  "placement": placement
443
542
  }, _ref2))), swapPreview ? swapPreview : /*#__PURE__*/_react["default"].createElement(Children, _ref5.cn("Children", {})));
444
543
  };
544
+ Draggable.enhance = [(0, _keyboardFocusEnhance["default"])()];
545
+ var findNextRectangleIndex = function findNextRectangleIndex(rectangles, current, direction) {
546
+ var candidate = null;
547
+ var minDistance = Infinity;
548
+ for (var i = 0; i < rectangles.length; i++) {
549
+ var rect = rectangles[i];
550
+ if (!rect) continue;
551
+ if (rect === current) continue;
552
+ var verticallyOverlaps = current.top <= rect.bottom && current.bottom >= rect.top;
553
+ var horizontallyOverlaps = current.left <= rect.right && current.right >= rect.left;
554
+ if (!verticallyOverlaps && !horizontallyOverlaps) continue;
555
+ switch (direction) {
556
+ case 'ArrowRight':
557
+ {
558
+ if (!verticallyOverlaps) continue;
559
+ var distance = rect.left - current.right;
560
+ if (distance < 0 || distance >= minDistance) continue;
561
+ candidate = rect;
562
+ minDistance = distance;
563
+ break;
564
+ }
565
+ case 'ArrowLeft':
566
+ {
567
+ if (!verticallyOverlaps) continue;
568
+ var _distance = current.left - rect.right;
569
+ if (_distance < 0 || _distance >= minDistance) continue;
570
+ candidate = rect;
571
+ minDistance = _distance;
572
+ break;
573
+ }
574
+ case 'ArrowUp':
575
+ {
576
+ if (!horizontallyOverlaps) continue;
577
+ var _distance2 = current.top - rect.bottom;
578
+ if (_distance2 < 0 || _distance2 >= minDistance) continue;
579
+ candidate = rect;
580
+ minDistance = _distance2;
581
+ break;
582
+ }
583
+ case 'ArrowDown':
584
+ {
585
+ if (!horizontallyOverlaps) continue;
586
+ var _distance3 = rect.top - current.bottom;
587
+ if (_distance3 < 0 || _distance3 >= minDistance) continue;
588
+ candidate = rect;
589
+ minDistance = _distance3;
590
+ break;
591
+ }
592
+ }
593
+ }
594
+ return rectangles.indexOf(candidate);
595
+ };
445
596
  var DropZone = function DropZone(props) {
446
597
  var _ref3 = arguments[0],
447
598
  _ref6;
@@ -1 +1 @@
1
- {"version":3,"file":"DragAndDrop.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_intergalacticDynamicLocales","_i18nEnhance","_useEnhancedEffect","style","sstyled","insert","noop","DragAndDropContext","React","createContext","attach","detach","DragAndDropRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","items","dragging","previewSwap","hideHoverEffect","a11yHint","index","state","currentItem","itemText","node","getAttribute","textContent","getI18nText","asProps","zoneName","zonedItems","filter","i","itemsCount","itemPosition","findIndex","id","setState","prevState","initialItemsRects","map","item","getBoundingClientRect","event","preventDefault","_this$state$dragging","_this$state","itemIndex","rect","clientX","x","width","clientY","y","height","draggingItem","isDropZone","i18nKey","_this$state$items$_th","_this$state$items$_th2","_this$state$items$_th3","draggingAllowed","children","_this$asProps","onDnD","_this$state2","fromNode","fromId","fromIndex","toId","toIndex","_this$asProps$onInser","_this$asProps2","_items$index","onInsertDroppable","_this$asProps$onSwapD","_this$asProps3","_items$index2","onSwapDraggable","key","stopPropagation","handleItemDrop","setTimeout","_this$state$items","focus","handleItemDragStart","handleItemFocus","handleItemKeyDown","customFocus","undefined","getCustomFocusItemIndex","_ref7","_prevState$items$inde","_prevState$items$inde2","_toConsumableArray2","_createClass2","value","getDraggableProps","_","onDragStart","makeItemDragStartHandler","onDragEnd","handleItemDragEnd","onDragOver","handleItemDragOver","onDragEnter","handleItemDragEnter","onDrop","makeItemDropHandler","onMouseMove","handleItemMouseMove","onKeyDown","makeItemKeyDownHandler","onFocus","makeItemFocusHandler","dropPreview","dark","theme","swapPreview","getSwapPreview","componentDidMount","document","addEventListener","handlePageKeyDown","capture","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","render","_ref","_ref4","SA11yHint","context","styles","createElement","Provider","cn","Box","assignProps","Component","i18nEnhance","localizedMessages","i18n","locale","Draggable","props","_ref2","arguments[0]","_ref5","SDraggable","ref","useRef","_React$useContext","useContext","_props$placement","placement","_props$noDrag","noDrag","Children","_props$isDropZone","resolvedChildren","useMemo","useEnhancedEffect","current","_objectSpread2","DropZone","_ref3","_ref6","SDropZone","DragAndDrop","createComponent","Dropable","_default","exports"],"sources":["../../src/DragAndDrop.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { sstyled, Component, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n\nimport style from './style/drag-and-drop.shadow.css';\nimport { DropZoneProps } from './index';\n\ntype AsProps = {\n /**\n * @deprecated don't use this prop\n */\n theme?: 'dark' | 'default';\n /**\n * @deprecated use `onDnD` instead\n */\n onSwapDraggable?: (draggableNode: React.ReactNode, droppableNode: React.ReactNode) => void;\n /**\n * @deprecated use `onDnD` instead\n */\n onInsertDroppable?: (draggableNode: React.ReactNode, droppableNode: React.ReactNode) => void;\n /**\n * Contolled drag and drop handler\n */\n onDnD: (dndData: { fromIndex: number; fromId: string; toIndex: number; toId: string }) => void;\n /**\n * Index of id that indicates item that is currently under the user focus in case of real browser focus cannot be used.\n * When provided, drag and drop listens to whole page keyboard events. Doesn't provide `onCustomFocusChange` callback.\n */\n customFocus?: number | string;\n getI18nText: (messageId: string, values?: { [key: string]: string | number }) => string;\n};\n\ntype AttachDetails = {\n index: number;\n children: React.ReactNode;\n node: HTMLElement;\n id: string;\n draggingAllowed: boolean;\n isDropZone?: boolean;\n zoneName?: string;\n};\n\nconst noop: (...args: any[]) => any = () => {\n /* do nothing */\n};\nconst DragAndDropContext = React.createContext<{\n attach: (details: AttachDetails) => void;\n detach: (index: number) => void;\n}>({\n attach: noop,\n detach: noop,\n});\n\ntype State = {\n items: Array<Omit<AttachDetails, 'index'> | undefined>;\n dragging: null | {\n index: number;\n initialItemsRects: Array<{ x: number; y: number; width: number; height: number } | undefined>;\n };\n previewSwap: number | null;\n hideHoverEffect: boolean;\n a11yHint: string | null;\n};\n\nclass DragAndDropRoot extends Component<AsProps, {}, State> {\n static displayName = 'DragAndDrop';\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n theme: 'default',\n i18n: localizedMessages,\n locale: 'en',\n };\n static style = style;\n\n state: State = {\n items: [],\n dragging: null,\n previewSwap: null,\n hideHoverEffect: false, // https://stackoverflow.com/questions/67118739/hover-effect-reset-when-hovering-over-other-letters\n a11yHint: null,\n };\n\n handleItemDragStart = (index: number) => {\n const { items } = this.state;\n const currentItem = items[index];\n if (!currentItem) return;\n\n const itemText =\n currentItem.node.getAttribute('aria-label') || currentItem.node.textContent || `${index + 1}`;\n\n const { getI18nText } = this.asProps;\n const zoneName = currentItem.zoneName;\n const zonedItems = !zoneName ? items : items.filter((i) => i?.zoneName === zoneName);\n const itemsCount = zonedItems.length;\n const itemPosition = zonedItems.findIndex((i) => i?.id === currentItem.id);\n const a11yHint = getI18nText(zoneName ? 'grabbedWithZone' : 'grabbed', {\n itemText,\n itemPosition: itemPosition + 1,\n itemsCount,\n zoneName: zoneName || '',\n });\n\n this.setState((prevState: State) => ({\n a11yHint: a11yHint,\n dragging: {\n index,\n initialItemsRects: prevState.items.map((item) => item?.node.getBoundingClientRect()),\n },\n }));\n };\n handleItemDragEnd = (event: DragEvent) => {\n event.preventDefault();\n this.setState({\n dragging: null,\n previewSwap: null,\n // hideHoverEffect: true\n });\n };\n handleItemDragOver = (event: DragEvent) => {\n event.preventDefault();\n const { getI18nText } = this.asProps;\n const { items, dragging } = this.state;\n if (!dragging) return;\n const itemIndex = dragging.initialItemsRects.findIndex(\n (rect) =>\n rect &&\n event.clientX > rect.x &&\n event.clientX < rect.x + rect.width &&\n event.clientY > rect.y &&\n event.clientY < rect.y + rect.height,\n );\n const currentItem = items[itemIndex];\n const draggingItem = items[dragging.index];\n if (!currentItem || !draggingItem) return;\n\n const node = currentItem.isDropZone ? draggingItem.node : currentItem.node;\n\n const itemText = node.getAttribute('aria-label') || node.textContent || `${itemIndex + 1}`;\n const zoneName = currentItem.zoneName;\n const zonedItems = !zoneName ? items : items.filter((i) => i?.zoneName === zoneName);\n const itemsCount = zonedItems.length;\n const itemPosition = zonedItems.findIndex((i) => i?.id === currentItem.id);\n\n const i18nKey = !zoneName\n ? 'grabbing'\n : currentItem.isDropZone\n ? 'grabbingJustWithZone'\n : 'grabbingFullWithZone';\n\n const a11yHint = getI18nText(i18nKey, {\n itemText,\n itemPosition: itemPosition + 1,\n itemsCount,\n zoneName: zoneName || '',\n });\n\n if (itemIndex === this.state.dragging?.index) this.setState({ previewSwap: null, a11yHint });\n else this.setState({ previewSwap: itemIndex, a11yHint });\n };\n getSwapPreview = (index: number) => {\n if (!this.state.dragging) return null;\n if (this.state.previewSwap === null) return null;\n if (this.state.items[this.state.previewSwap]?.draggingAllowed === false) return null;\n if (this.state.previewSwap === index)\n return this.state.items[this.state.dragging.index]?.children;\n if (this.state.previewSwap !== null && index === this.state.dragging.index)\n return this.state.items[this.state.previewSwap]?.children;\n };\n handleItemDrop = (index: number) => {\n const { onDnD, getI18nText } = this.asProps;\n if (!onDnD) return;\n\n const { items, dragging } = this.state;\n if (!dragging) return;\n const currentItem = items[index];\n const draggingItem = items[dragging.index];\n if (!currentItem || !draggingItem) return;\n\n const node = currentItem.isDropZone ? draggingItem.node : currentItem.node;\n const itemText = node.getAttribute('aria-label') || node.textContent || `${index + 1}`;\n const zoneName = currentItem.zoneName;\n const zonedItems = !zoneName ? items : items.filter((i) => i?.zoneName === zoneName);\n const itemsCount = zonedItems.length;\n const itemPosition = zonedItems.findIndex((i) => i?.id === currentItem.id);\n\n const i18nKey = !zoneName\n ? 'dropped'\n : currentItem.isDropZone\n ? 'droppedJustWithZone'\n : 'droppedFullWithZone';\n\n const a11yHint = getI18nText(i18nKey, {\n itemText,\n itemPosition: itemPosition + 1,\n itemsCount,\n zoneName: zoneName || '',\n });\n\n this.setState({ a11yHint, dragging: null, previewSwap: null, hideHoverEffect: true });\n if (dragging && items[dragging.index]) {\n const fromNode = items[dragging.index];\n if (fromNode) {\n onDnD({\n fromId: fromNode.id,\n fromIndex: dragging!.index,\n toId: currentItem.id,\n toIndex: index,\n });\n }\n }\n if (!currentItem.draggingAllowed) {\n this.asProps.onInsertDroppable?.(items[dragging!.index]?.children, currentItem.children);\n } else {\n this.asProps.onSwapDraggable?.(items[dragging!.index]?.children, currentItem.children);\n }\n };\n handleItemDragEnter = (event: DragEvent) => {\n event.preventDefault();\n };\n handleItemMouseMove = () => {\n if (!this.state.hideHoverEffect) return;\n this.setState({ hideHoverEffect: false });\n };\n handleItemKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n if (this.state.dragging) {\n const previewSwap = this.state.previewSwap;\n this.handleItemDrop(index);\n this.setState({ dragging: null, previewSwap: null, hideHoverEffect: true });\n setTimeout(() => {\n this.state.items[previewSwap as any]?.node.focus();\n }, 0);\n } else {\n this.handleItemDragStart(index);\n }\n return false;\n } else if (event.key === 'Escape' && this.state.dragging) {\n event.preventDefault();\n event.stopPropagation();\n const { getI18nText } = this.asProps;\n const a11yHint = getI18nText('discarded');\n this.setState({ a11yHint, dragging: null, previewSwap: null, hideHoverEffect: true });\n return false;\n }\n };\n handleItemFocus = (index: number) => {\n if (!this.state.dragging) return;\n this.setState({ previewSwap: index });\n };\n\n makeItemDragStartHandler = (index: number) => () => this.handleItemDragStart(index);\n makeItemDropHandler = (index: number) => () => this.handleItemDrop(index);\n makeItemFocusHandler = (index: number) => () => this.handleItemFocus(index);\n makeItemKeyDownHandler = (index: number) => (event: KeyboardEvent) =>\n this.handleItemKeyDown(event, index);\n\n getDraggableProps(_: any, index: number) {\n return {\n index,\n onDragStart: this.makeItemDragStartHandler(index),\n onDragEnd: this.handleItemDragEnd,\n onDragOver: this.handleItemDragOver,\n onDragEnter: this.handleItemDragEnter,\n onDrop: this.makeItemDropHandler(index),\n onMouseMove: this.handleItemMouseMove,\n onKeyDown: this.makeItemKeyDownHandler(index),\n onFocus: this.makeItemFocusHandler(index),\n dropPreview: index === this.state.previewSwap,\n dark: this.asProps.theme === 'dark',\n swapPreview: this.getSwapPreview(index),\n hideHoverEffect: this.state.hideHoverEffect,\n };\n }\n\n handlePageKeyDown = (event: KeyboardEvent) => {\n if (this.asProps.customFocus !== undefined) {\n const itemIndex = this.getCustomFocusItemIndex(this.asProps.customFocus);\n if (this.state.items[itemIndex!]) {\n this.handleItemKeyDown(event, itemIndex!);\n }\n }\n };\n\n attach = ({\n index,\n children,\n node,\n id,\n draggingAllowed,\n zoneName,\n isDropZone,\n }: AttachDetails) => {\n this.setState((prevState: State) => {\n if (prevState.items[index]?.children === children && prevState.items[index]?.node === node)\n return prevState;\n const { items } = prevState;\n items[index] = { children, node, id, draggingAllowed, zoneName, isDropZone };\n return { items: [...items] };\n });\n };\n detach = (index: number) => {\n this.setState((prevState: State) => {\n if (!prevState.items[index]) return prevState;\n const { items } = prevState;\n items[index] = undefined;\n return { items: [...items] };\n });\n };\n\n getCustomFocusItemIndex = (customFocus: string | number | undefined) => {\n if (customFocus === undefined) return undefined;\n let itemIndex = customFocus;\n if (typeof itemIndex === 'string') {\n itemIndex = this.state.items.findIndex((item) => item?.id === itemIndex);\n }\n if (itemIndex === -1 || typeof itemIndex !== 'number') return undefined;\n return itemIndex;\n };\n\n componentDidMount() {\n document.addEventListener('keydown', this.handlePageKeyDown, { capture: true });\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handlePageKeyDown, { capture: true });\n }\n\n componentDidUpdate(prevProps: AsProps) {\n if (prevProps.customFocus !== this.asProps.customFocus) {\n const itemIndex = this.getCustomFocusItemIndex(this.asProps.customFocus);\n if (this.state.items[itemIndex!]) this.handleItemFocus(itemIndex!);\n }\n }\n\n render() {\n const { attach, detach } = this;\n const SA11yHint = 'div';\n const { a11yHint } = this.state;\n const context = { attach, detach };\n\n return sstyled(this.asProps.styles)(\n <DragAndDropContext.Provider value={context}>\n {a11yHint && (\n <SA11yHint role='alert' aria-live='assertive'>\n {a11yHint}\n </SA11yHint>\n )}\n <Root render={Box} />\n </DragAndDropContext.Provider>,\n );\n }\n}\n\nconst Draggable = (props: any) => {\n const SDraggable = Root;\n const ref = React.useRef();\n const { attach, detach } = React.useContext(DragAndDropContext);\n const {\n styles,\n placement = 'right',\n noDrag = false,\n index,\n children,\n swapPreview,\n Children,\n id,\n zoneName,\n isDropZone = false,\n } = props;\n const resolvedChildren = React.useMemo(\n () => (typeof children === 'function' ? children(props) : children),\n [children, props],\n );\n\n useEnhancedEffect(() => {\n attach({\n index,\n children: resolvedChildren,\n node: ref.current!,\n id,\n draggingAllowed: !noDrag,\n zoneName,\n isDropZone,\n });\n return () => detach(index);\n }, [index, resolvedChildren, attach, detach, id]);\n\n return sstyled(styles)(\n <SDraggable render={Box} ref={ref} draggable={!noDrag} tabIndex={0} placement={placement}>\n {swapPreview ? swapPreview : <Children />}\n </SDraggable>,\n );\n};\n\nconst DropZone = (props: DropZoneProps) => {\n const SDropZone = Root;\n const { styles } = props;\n\n return sstyled(styles)(<SDropZone render={DragAndDrop.Draggable} noDrag isDropZone />);\n};\n\nconst DragAndDrop = createComponent(DragAndDropRoot, {\n Draggable,\n DropZone,\n Dropable: DropZone,\n}) as any;\n\nexport default DragAndDrop;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DragAndDrop.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_intergalacticDynamicLocales","_i18nEnhance","_useEnhancedEffect","_keyboardFocusEnhance","style","sstyled","insert","noop","DragAndDropContext","React","createContext","attach","detach","DragAndDropRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","items","dragging","dragOver","hideHoverEffect","a11yHint","keyboardDraggingIndex","animatedScaling","reversedScaling","index","state","currentItem","itemText","node","getAttribute","textContent","getI18nText","asProps","zoneName","zonedItems","filter","i","itemsCount","itemPosition","findIndex","id","setState","prevState","initialItemsRects","map","item","getBoundingClientRect","event","preventDefault","_this$state$dragging","_this$state","itemIndex","rect","clientX","x","width","clientY","y","height","draggingItem","isDropZone","i18nKey","_this$state$items$pre","previewIndex","preview","children","_this$asProps","onDnD","_this$state2","fromNode","fromId","fromIndex","toId","toIndex","draggingAllowed","_this$asProps$onInser","_this$asProps2","_items$index","onInsertDroppable","_this$asProps$onSwapD","_this$asProps3","_items$index2","onSwapDraggable","_this$state$items$","firstItemNode","firstItemRect","parent","parentElement","document","body","computedStyle","getComputedStyle","overflow","left","right","top","bottom","key","_this$state$items$ind","stopPropagation","prevIndex","handleItemDrop","requestAnimationFrame","_this$state$items$pre2","_this$state$items","prevIndexNode","activeElement","focus","handleItemDragStart","updateItemScaling","startsWith","_this$state$items$nex","rects","Math","round","nextIndex","findNextRectangleIndex","indexDiff","handleItemFocus","handleItemKeyDown","customFocus","undefined","getCustomFocusItemIndex","_ref7","_prevState$items$inde","_prevState$items$inde2","_toConsumableArray2","_createClass2","get","_this$state$dragging2","result","shift","value","getDraggableProps","_","onDragStart","makeItemDragStartHandler","onDragEnd","handleItemDragEnd","onDragOver","handleItemDragOver","onDragEnter","handleItemDragEnter","onDrop","makeItemDropHandler","onMouseMove","handleItemMouseMove","onKeyDown","makeItemKeyDownHandler","onFocus","makeItemFocusHandler","dropPreview","keyboardDragging","dark","theme","swapPreview","getSwapPreview","componentDidMount","addEventListener","handlePageKeyDown","capture","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","render","_ref","_ref4","SA11yHint","context","styles","createElement","Provider","cn","Box","assignProps","Component","i18nEnhance","localizedMessages","i18n","locale","Draggable","props","_ref2","arguments[0]","_ref5","SDraggable","ref","useRef","_React$useContext","useContext","_props$placement","placement","_props$noDrag","noDrag","Children","_props$isDropZone","resolvedChildren","useMemo","useEnhancedEffect","current","_objectSpread2","enhance","keyboardFocusEnhance","rectangles","direction","candidate","minDistance","Infinity","verticallyOverlaps","horizontallyOverlaps","distance","indexOf","DropZone","_ref3","_ref6","SDropZone","DragAndDrop","createComponent","Dropable","_default","exports"],"sources":["../../src/DragAndDrop.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { sstyled, Component, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n\nimport style from './style/drag-and-drop.shadow.css';\nimport { DropZoneProps } from './index';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\ntype AsProps = {\n /**\n * @deprecated don't use this prop\n */\n theme?: 'dark' | 'default';\n /**\n * @deprecated use `onDnD` instead\n */\n onSwapDraggable?: (draggableNode: React.ReactNode, droppableNode: React.ReactNode) => void;\n /**\n * @deprecated use `onDnD` instead\n */\n onInsertDroppable?: (draggableNode: React.ReactNode, droppableNode: React.ReactNode) => void;\n /**\n * Contolled drag and drop handler\n */\n onDnD: (dndData: { fromIndex: number; fromId: string; toIndex: number; toId: string }) => void;\n /**\n * Index of id that indicates item that is currently under the user focus in case of real browser focus cannot be used.\n * When provided, drag and drop listens to whole page keyboard events. Doesn't provide `onCustomFocusChange` callback.\n */\n customFocus?: number | string;\n getI18nText: (messageId: string, values?: { [key: string]: string | number }) => string;\n};\n\ntype AttachDetails = {\n index: number;\n children: React.ReactNode;\n node: HTMLElement;\n id: string;\n draggingAllowed: boolean;\n isDropZone?: boolean;\n zoneName?: string;\n};\n\nconst noop: (...args: any[]) => any = () => {\n /* do nothing */\n};\nconst DragAndDropContext = React.createContext<{\n attach: (details: AttachDetails) => void;\n detach: (index: number) => void;\n}>({\n attach: noop,\n detach: noop,\n});\n\ntype State = {\n items: Array<Omit<AttachDetails, 'index'> | undefined>;\n dragging: null | {\n index: number;\n initialItemsRects: Array<{ x: number; y: number; width: number; height: number } | undefined>;\n };\n dragOver: number | null;\n hideHoverEffect: boolean;\n a11yHint: string | null;\n keyboardDraggingIndex: number | null;\n animatedScaling: number | null;\n reversedScaling: boolean;\n};\n\nclass DragAndDropRoot extends Component<AsProps, {}, State> {\n static displayName = 'DragAndDrop';\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n theme: 'default',\n i18n: localizedMessages,\n locale: 'en',\n };\n static style = style;\n\n state: State = {\n items: [],\n dragging: null,\n dragOver: null,\n hideHoverEffect: false, // https://stackoverflow.com/questions/67118739/hover-effect-reset-when-hovering-over-other-letters\n a11yHint: null,\n keyboardDraggingIndex: null,\n animatedScaling: null,\n reversedScaling: false,\n };\n\n handleItemDragStart = (index: number) => {\n const { items } = this.state;\n const currentItem = items[index];\n if (!currentItem) return;\n\n const itemText =\n currentItem.node.getAttribute('aria-label') || currentItem.node.textContent || `${index + 1}`;\n\n const { getI18nText } = this.asProps;\n const zoneName = currentItem.zoneName;\n const zonedItems = !zoneName ? items : items.filter((i) => i?.zoneName === zoneName);\n const itemsCount = zonedItems.length;\n const itemPosition = zonedItems.findIndex(\n (i) => i?.node === currentItem.node || (i?.id && i?.id === currentItem.id),\n );\n\n const a11yHint = getI18nText(zoneName ? 'grabbedWithZone' : 'grabbed', {\n itemText,\n itemPosition: itemPosition + 1,\n itemsCount,\n zoneName: zoneName || '',\n });\n\n this.setState((prevState: State) => ({\n a11yHint: a11yHint,\n dragging: {\n index,\n initialItemsRects: prevState.items.map((item) => item?.node.getBoundingClientRect()),\n },\n }));\n };\n handleItemDragEnd = (event: DragEvent) => {\n event.preventDefault();\n this.setState({\n dragging: null,\n dragOver: null,\n reversedScaling: false,\n keyboardDraggingIndex: null,\n });\n };\n handleItemDragOver = (event: DragEvent) => {\n event.preventDefault();\n const { getI18nText } = this.asProps;\n const { items, dragging } = this.state;\n if (!dragging) return;\n const itemIndex = dragging.initialItemsRects.findIndex(\n (rect) =>\n rect &&\n event.clientX > rect.x &&\n event.clientX < rect.x + rect.width &&\n event.clientY > rect.y &&\n event.clientY < rect.y + rect.height,\n );\n const currentItem = items[itemIndex];\n const draggingItem = items[dragging.index];\n if (!currentItem || !draggingItem) return;\n\n const node = currentItem.isDropZone ? draggingItem.node : currentItem.node;\n\n const itemText = node.getAttribute('aria-label') || node.textContent || `${itemIndex + 1}`;\n const zoneName = currentItem.zoneName;\n const zonedItems = !zoneName ? items : items.filter((i) => i?.zoneName === zoneName);\n const itemsCount = zonedItems.length;\n const itemPosition = zonedItems.findIndex(\n (i) => i?.node === currentItem.node || (i?.id && i?.id === currentItem.id),\n );\n\n const i18nKey = !zoneName\n ? 'grabbing'\n : currentItem.isDropZone\n ? 'grabbingJustWithZone'\n : 'grabbingFullWithZone';\n\n const a11yHint = getI18nText(i18nKey, {\n itemText,\n itemPosition: itemPosition + 1,\n itemsCount,\n zoneName: zoneName || '',\n });\n\n if (itemIndex === this.state.dragging?.index) this.setState({ dragOver: null, a11yHint });\n else this.setState({ dragOver: itemIndex, a11yHint });\n };\n get preview() {\n const dragging = this.state.dragging?.index;\n const dragOver = this.state.dragOver;\n\n if (typeof dragging !== 'number' || typeof dragOver !== 'number') return {};\n const result: Record<number, number> = {};\n const shift = dragging < dragOver ? 1 : -1;\n for (let i = dragging; i !== dragOver; i += shift) {\n result[i] = i + shift;\n }\n\n result[dragOver] = dragging;\n return result;\n }\n getSwapPreview = (index: number) => {\n if (!this.state.dragging) return null;\n\n const previewIndex = this.preview[index];\n if (typeof previewIndex !== 'number') return null;\n return this.state.items[previewIndex]?.children;\n };\n handleItemDrop = (index: number) => {\n const { onDnD, getI18nText } = this.asProps;\n if (!onDnD) return;\n\n const { items, dragging } = this.state;\n if (!dragging) return;\n const currentItem = items[index];\n const draggingItem = items[dragging.index];\n if (!currentItem || !draggingItem) return;\n\n const node = currentItem.isDropZone ? draggingItem.node : currentItem.node;\n const itemText = node.getAttribute('aria-label') || node.textContent || `${index + 1}`;\n const zoneName = currentItem.zoneName;\n const zonedItems = !zoneName ? items : items.filter((i) => i?.zoneName === zoneName);\n const itemsCount = zonedItems.length;\n const itemPosition = zonedItems.findIndex(\n (i) => i?.node === currentItem.node || (i?.id && i?.id === currentItem.id),\n );\n\n const i18nKey = !zoneName\n ? 'dropped'\n : currentItem.isDropZone\n ? 'droppedJustWithZone'\n : 'droppedFullWithZone';\n\n const a11yHint = getI18nText(i18nKey, {\n itemText,\n itemPosition: itemPosition + 1,\n itemsCount,\n zoneName: zoneName || '',\n });\n\n this.setState({\n a11yHint,\n dragging: null,\n dragOver: null,\n keyboardDraggingIndex: null,\n hideHoverEffect: true,\n reversedScaling: false,\n });\n if (dragging && items[dragging.index]) {\n const fromNode = items[dragging.index];\n if (fromNode) {\n onDnD({\n fromId: fromNode.id,\n fromIndex: dragging!.index,\n toId: currentItem.id,\n toIndex: index,\n });\n }\n }\n if (!currentItem.draggingAllowed) {\n this.asProps.onInsertDroppable?.(items[dragging!.index]?.children, currentItem.children);\n } else {\n this.asProps.onSwapDraggable?.(items[dragging!.index]?.children, currentItem.children);\n }\n };\n handleItemDragEnter = (event: DragEvent) => {\n event.preventDefault();\n };\n handleItemMouseMove = () => {\n if (!this.state.hideHoverEffect) return;\n this.setState({ hideHoverEffect: false });\n };\n updateItemScaling = () => {\n const firstItemNode = this.state.items[0]?.node;\n if (!firstItemNode) return;\n if (this.state.reversedScaling) return;\n\n const firstItemRect = firstItemNode.getBoundingClientRect();\n let reversedScaling = false;\n let parent = firstItemNode.parentElement;\n while (parent && parent !== document.body) {\n const computedStyle = getComputedStyle(parent);\n const rect = parent.getBoundingClientRect();\n if (computedStyle.overflow !== 'visible') {\n if (\n rect.left >= firstItemRect.left ||\n rect.right <= firstItemRect.right ||\n rect.top >= firstItemRect.top ||\n rect.bottom <= firstItemRect.bottom\n ) {\n reversedScaling = true;\n break;\n }\n } else {\n if (\n rect.left < firstItemRect.left &&\n rect.right > firstItemRect.right &&\n rect.top < firstItemRect.top &&\n rect.bottom > firstItemRect.bottom\n ) {\n break;\n }\n }\n parent = parent.parentElement;\n }\n\n if (this.state.reversedScaling !== reversedScaling) {\n this.setState({ reversedScaling });\n }\n };\n handleItemKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n if (this.state.dragging) {\n const dragOver = this.state.dragOver;\n const prevIndex = this.state.dragging.index;\n this.handleItemDrop(index);\n this.setState({\n dragging: null,\n dragOver: null,\n keyboardDraggingIndex: null,\n animatedScaling: index,\n hideHoverEffect: true,\n });\n\n requestAnimationFrame(() => {\n const prevIndexNode = this.state.items[prevIndex]?.node;\n if (prevIndexNode !== document.activeElement) return;\n this.state.items[dragOver!]?.node.focus();\n });\n } else if (this.state.items[index]?.draggingAllowed) {\n this.handleItemDragStart(index);\n this.setState({ keyboardDraggingIndex: index, animatedScaling: index });\n this.updateItemScaling();\n }\n return false;\n } else if (event.key === 'Escape' && this.state.dragging) {\n event.preventDefault();\n event.stopPropagation();\n const { getI18nText } = this.asProps;\n const a11yHint = getI18nText('discarded');\n this.setState({\n a11yHint,\n dragging: null,\n dragOver: null,\n keyboardDraggingIndex: null,\n hideHoverEffect: true,\n });\n return false;\n } else if (event.key.startsWith('Arrow')) {\n if (this.state.animatedScaling !== null) {\n this.setState({ animatedScaling: null });\n }\n const item = this.state.items[index];\n if (item?.node !== document.activeElement) return;\n event.preventDefault();\n requestAnimationFrame(() => {\n if (item?.node !== document.activeElement) return;\n const rects = this.state.items\n .map((item) => item?.node.getBoundingClientRect()!)\n .map((rect): { top: number; right: number; bottom: number; left: number } => ({\n top: Math.round(rect.top),\n right: Math.round(rect.right),\n bottom: Math.round(rect.bottom),\n left: Math.round(rect.left),\n }));\n let nextIndex = findNextRectangleIndex(rects, rects[index], event.key as DirectionArrows);\n if (nextIndex === -1) {\n const indexDiff = event.key === 'ArrowUp' || event.key === 'ArrowLeft' ? -1 : 1;\n nextIndex = index + indexDiff;\n }\n this.state.items[nextIndex]?.node.focus();\n });\n }\n };\n handleItemFocus = (index: number) => {\n if (!this.state.dragging) return;\n this.setState({ dragOver: index, keyboardDraggingIndex: index });\n this.updateItemScaling();\n };\n\n makeItemDragStartHandler = (index: number) => () => this.handleItemDragStart(index);\n makeItemDropHandler = (index: number) => () => this.handleItemDrop(index);\n makeItemFocusHandler = (index: number) => () => this.handleItemFocus(index);\n makeItemKeyDownHandler = (index: number) => (event: KeyboardEvent) =>\n this.handleItemKeyDown(event, index);\n\n getDraggableProps(_: any, index: number) {\n return {\n index,\n onDragStart: this.makeItemDragStartHandler(index),\n onDragEnd: this.handleItemDragEnd,\n onDragOver: this.handleItemDragOver,\n onDragEnter: this.handleItemDragEnter,\n onDrop: this.makeItemDropHandler(index),\n onMouseMove: this.handleItemMouseMove,\n onKeyDown: this.makeItemKeyDownHandler(index),\n onFocus: this.makeItemFocusHandler(index),\n dropPreview: index === this.state.dragOver,\n keyboardDragging: index === this.state.keyboardDraggingIndex,\n reversedScaling: this.state.reversedScaling,\n dark: this.asProps.theme === 'dark',\n swapPreview: this.getSwapPreview(index),\n hideHoverEffect: this.state.hideHoverEffect,\n animatedScaling: index === this.state.animatedScaling,\n };\n }\n\n handlePageKeyDown = (event: KeyboardEvent) => {\n if (this.asProps.customFocus !== undefined) {\n const itemIndex = this.getCustomFocusItemIndex(this.asProps.customFocus);\n if (this.state.items[itemIndex!]) {\n this.handleItemKeyDown(event, itemIndex!);\n }\n }\n };\n\n attach = ({\n index,\n children,\n node,\n id,\n draggingAllowed,\n zoneName,\n isDropZone,\n }: AttachDetails) => {\n this.setState((prevState: State) => {\n if (prevState.items[index]?.children === children && prevState.items[index]?.node === node)\n return prevState;\n const { items } = prevState;\n items[index] = { children, node, id, draggingAllowed, zoneName, isDropZone };\n return { items: [...items] };\n });\n };\n detach = (index: number) => {\n this.setState((prevState: State) => {\n if (!prevState.items[index]) return prevState;\n const { items } = prevState;\n items[index] = undefined;\n return { items: [...items] };\n });\n };\n\n getCustomFocusItemIndex = (customFocus: string | number | undefined) => {\n if (customFocus === undefined) return undefined;\n let itemIndex = customFocus;\n if (typeof itemIndex === 'string') {\n itemIndex = this.state.items.findIndex((item) => item?.id === customFocus);\n }\n if (itemIndex === -1 || typeof itemIndex !== 'number') return undefined;\n return itemIndex;\n };\n\n componentDidMount() {\n document.addEventListener('keydown', this.handlePageKeyDown, { capture: true });\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handlePageKeyDown, { capture: true });\n }\n\n componentDidUpdate(prevProps: AsProps) {\n if (prevProps.customFocus !== this.asProps.customFocus) {\n const itemIndex = this.getCustomFocusItemIndex(this.asProps.customFocus);\n if (this.state.items[itemIndex!]) this.handleItemFocus(itemIndex!);\n }\n }\n\n render() {\n const { attach, detach } = this;\n const SA11yHint = 'div';\n const { a11yHint } = this.state;\n const context = { attach, detach };\n\n return sstyled(this.asProps.styles)(\n <DragAndDropContext.Provider value={context}>\n {a11yHint && (\n <SA11yHint role='alert' aria-live='assertive'>\n {a11yHint}\n </SA11yHint>\n )}\n <Root render={Box} />\n </DragAndDropContext.Provider>,\n );\n }\n}\n\nconst Draggable = (props: any) => {\n const SDraggable = Root;\n const ref = React.useRef();\n const { attach, detach } = React.useContext(DragAndDropContext);\n const {\n styles,\n placement = 'right',\n noDrag = false,\n index,\n children,\n swapPreview,\n Children,\n id,\n zoneName,\n isDropZone = false,\n } = props;\n const resolvedChildren = React.useMemo(\n () => (typeof children === 'function' ? children(props) : children),\n [children, props],\n );\n\n useEnhancedEffect(() => {\n attach({\n index,\n children: resolvedChildren,\n node: ref.current!,\n id,\n draggingAllowed: !noDrag,\n zoneName,\n isDropZone,\n });\n return () => detach(index);\n }, [index, resolvedChildren, attach, detach, id]);\n\n return sstyled(styles)(\n <SDraggable render={Box} ref={ref} draggable={!noDrag} placement={placement}>\n {swapPreview ? swapPreview : <Children />}\n </SDraggable>,\n );\n};\nDraggable.enhance = [keyboardFocusEnhance()];\n\ntype DirectionArrows = 'ArrowRight' | 'ArrowLeft' | 'ArrowUp' | 'ArrowDown';\nconst findNextRectangleIndex = <\n Rectangle extends { top: number; right: number; bottom: number; left: number },\n>(\n rectangles: (Rectangle | undefined)[],\n current: Rectangle,\n direction: DirectionArrows,\n): number => {\n let candidate: Rectangle | null = null;\n let minDistance: number = Infinity;\n\n for (let i = 0; i < rectangles.length; i++) {\n const rect = rectangles[i];\n if (!rect) continue;\n if (rect === current) continue;\n\n const verticallyOverlaps = current.top <= rect.bottom && current.bottom >= rect.top;\n const horizontallyOverlaps = current.left <= rect.right && current.right >= rect.left;\n\n if (!verticallyOverlaps && !horizontallyOverlaps) continue;\n\n switch (direction) {\n case 'ArrowRight': {\n if (!verticallyOverlaps) continue;\n const distance = rect.left - current.right;\n if (distance < 0 || distance >= minDistance) continue;\n candidate = rect;\n minDistance = distance;\n break;\n }\n case 'ArrowLeft': {\n if (!verticallyOverlaps) continue;\n const distance = current.left - rect.right;\n if (distance < 0 || distance >= minDistance) continue;\n candidate = rect;\n minDistance = distance;\n break;\n }\n case 'ArrowUp': {\n if (!horizontallyOverlaps) continue;\n const distance = current.top - rect.bottom;\n\n if (distance < 0 || distance >= minDistance) continue;\n candidate = rect;\n minDistance = distance;\n break;\n }\n case 'ArrowDown': {\n if (!horizontallyOverlaps) continue;\n const distance = rect.top - current.bottom;\n if (distance < 0 || distance >= minDistance) continue;\n candidate = rect;\n minDistance = distance;\n break;\n }\n }\n }\n\n return rectangles.indexOf(candidate!);\n};\n\nconst DropZone = (props: DropZoneProps) => {\n const SDropZone = Root;\n const { styles } = props;\n\n return sstyled(styles)(<SDropZone render={DragAndDrop.Draggable} noDrag isDropZone />);\n};\n\nconst DragAndDrop = createComponent(DragAndDropRoot, {\n Draggable,\n DropZone,\n Dropable: DropZone,\n}) as any;\n\nexport default DragAndDrop;\n"],"mappings":"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"}