@vuu-ui/vuu-ui-controls 2.1.17 → 2.1.19-beta.1

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 (569) hide show
  1. package/package.json +13 -15
  2. package/types/calendar/useCalendar.d.ts +3 -3
  3. package/types/calendar/useSelection.d.ts +1 -1
  4. package/types/date-input/DateInput.d.ts +1 -1
  5. package/types/date-picker/DatePicker.d.ts +1 -1
  6. package/types/date-picker/DatePickerContext.d.ts +2 -2
  7. package/types/date-picker/DatePickerPanel.d.ts +1 -1
  8. package/types/instrument-picker/useTablePicker.d.ts +4 -4
  9. package/types/split-button/useSplitButton.d.ts +120 -120
  10. package/types/tabs-next/hooks/useOverflow.d.ts +1 -1
  11. package/types/tabstrip/Tab.d.ts +1 -1
  12. package/types/tabstrip/useTabstrip.d.ts +1 -1
  13. package/types/toolbar/useToolbar.d.ts +1 -1
  14. package/cjs/calendar/Calendar.css.js +0 -6
  15. package/cjs/calendar/Calendar.css.js.map +0 -1
  16. package/cjs/calendar/Calendar.js +0 -93
  17. package/cjs/calendar/Calendar.js.map +0 -1
  18. package/cjs/calendar/internal/CalendarCarousel.css.js +0 -6
  19. package/cjs/calendar/internal/CalendarCarousel.css.js.map +0 -1
  20. package/cjs/calendar/internal/CalendarCarousel.js +0 -75
  21. package/cjs/calendar/internal/CalendarCarousel.js.map +0 -1
  22. package/cjs/calendar/internal/CalendarContext.js +0 -19
  23. package/cjs/calendar/internal/CalendarContext.js.map +0 -1
  24. package/cjs/calendar/internal/CalendarDay.css.js +0 -6
  25. package/cjs/calendar/internal/CalendarDay.css.js.map +0 -1
  26. package/cjs/calendar/internal/CalendarDay.js +0 -86
  27. package/cjs/calendar/internal/CalendarDay.js.map +0 -1
  28. package/cjs/calendar/internal/CalendarMonth.css.js +0 -6
  29. package/cjs/calendar/internal/CalendarMonth.css.js.map +0 -1
  30. package/cjs/calendar/internal/CalendarMonth.js +0 -71
  31. package/cjs/calendar/internal/CalendarMonth.js.map +0 -1
  32. package/cjs/calendar/internal/CalendarNavigation.css.js +0 -6
  33. package/cjs/calendar/internal/CalendarNavigation.css.js.map +0 -1
  34. package/cjs/calendar/internal/CalendarNavigation.js +0 -236
  35. package/cjs/calendar/internal/CalendarNavigation.js.map +0 -1
  36. package/cjs/calendar/internal/CalendarWeekHeader.css.js +0 -6
  37. package/cjs/calendar/internal/CalendarWeekHeader.css.js.map +0 -1
  38. package/cjs/calendar/internal/CalendarWeekHeader.js +0 -43
  39. package/cjs/calendar/internal/CalendarWeekHeader.js.map +0 -1
  40. package/cjs/calendar/internal/useFocusManagement.js +0 -66
  41. package/cjs/calendar/internal/useFocusManagement.js.map +0 -1
  42. package/cjs/calendar/internal/utils.js +0 -64
  43. package/cjs/calendar/internal/utils.js.map +0 -1
  44. package/cjs/calendar/useCalendar.js +0 -163
  45. package/cjs/calendar/useCalendar.js.map +0 -1
  46. package/cjs/calendar/useCalendarDay.js +0 -80
  47. package/cjs/calendar/useCalendarDay.js.map +0 -1
  48. package/cjs/calendar/useSelection.js +0 -248
  49. package/cjs/calendar/useSelection.js.map +0 -1
  50. package/cjs/column-picker/ColumnPicker.css.js +0 -6
  51. package/cjs/column-picker/ColumnPicker.css.js.map +0 -1
  52. package/cjs/column-picker/ColumnPicker.js +0 -128
  53. package/cjs/column-picker/ColumnPicker.js.map +0 -1
  54. package/cjs/column-picker/ColumnSearch.css.js +0 -6
  55. package/cjs/column-picker/ColumnSearch.css.js.map +0 -1
  56. package/cjs/column-picker/ColumnSearch.js +0 -82
  57. package/cjs/column-picker/ColumnSearch.js.map +0 -1
  58. package/cjs/common-hooks/selectionTypes.js +0 -18
  59. package/cjs/common-hooks/selectionTypes.js.map +0 -1
  60. package/cjs/common-hooks/use-resize-observer.js +0 -123
  61. package/cjs/common-hooks/use-resize-observer.js.map +0 -1
  62. package/cjs/common-hooks/useControlled.js +0 -58
  63. package/cjs/common-hooks/useControlled.js.map +0 -1
  64. package/cjs/context-panel-provider/ContextPanelProvider.js +0 -99
  65. package/cjs/context-panel-provider/ContextPanelProvider.js.map +0 -1
  66. package/cjs/cycle-state-button/CycleStateButton.js +0 -50
  67. package/cjs/cycle-state-button/CycleStateButton.js.map +0 -1
  68. package/cjs/date-input/DateInput.css.js +0 -6
  69. package/cjs/date-input/DateInput.css.js.map +0 -1
  70. package/cjs/date-input/DateInput.js +0 -277
  71. package/cjs/date-input/DateInput.js.map +0 -1
  72. package/cjs/date-picker/DatePicker.js +0 -169
  73. package/cjs/date-picker/DatePicker.js.map +0 -1
  74. package/cjs/date-picker/DatePickerContext.js +0 -26
  75. package/cjs/date-picker/DatePickerContext.js.map +0 -1
  76. package/cjs/date-picker/DatePickerPanel.css.js +0 -6
  77. package/cjs/date-picker/DatePickerPanel.css.js.map +0 -1
  78. package/cjs/date-picker/DatePickerPanel.js +0 -146
  79. package/cjs/date-picker/DatePickerPanel.js.map +0 -1
  80. package/cjs/drag-drop/DragDropProvider.js +0 -145
  81. package/cjs/drag-drop/DragDropProvider.js.map +0 -1
  82. package/cjs/drag-drop/DragDropState.js +0 -36
  83. package/cjs/drag-drop/DragDropState.js.map +0 -1
  84. package/cjs/drag-drop/Draggable.css.js +0 -6
  85. package/cjs/drag-drop/Draggable.css.js.map +0 -1
  86. package/cjs/drag-drop/Draggable.js +0 -90
  87. package/cjs/drag-drop/Draggable.js.map +0 -1
  88. package/cjs/drag-drop/dragDropTypes.js +0 -8
  89. package/cjs/drag-drop/dragDropTypes.js.map +0 -1
  90. package/cjs/drag-drop/drop-target-utils.js +0 -245
  91. package/cjs/drag-drop/drop-target-utils.js.map +0 -1
  92. package/cjs/drag-drop/useAutoScroll.js +0 -71
  93. package/cjs/drag-drop/useAutoScroll.js.map +0 -1
  94. package/cjs/drag-drop/useDragDisplacers.js +0 -160
  95. package/cjs/drag-drop/useDragDisplacers.js.map +0 -1
  96. package/cjs/drag-drop/useDragDrop.js +0 -504
  97. package/cjs/drag-drop/useDragDrop.js.map +0 -1
  98. package/cjs/drag-drop/useDragDropCopy.js +0 -34
  99. package/cjs/drag-drop/useDragDropCopy.js.map +0 -1
  100. package/cjs/drag-drop/useDragDropIndicator.js +0 -251
  101. package/cjs/drag-drop/useDragDropIndicator.js.map +0 -1
  102. package/cjs/drag-drop/useDragDropNaturalMovement.js +0 -265
  103. package/cjs/drag-drop/useDragDropNaturalMovement.js.map +0 -1
  104. package/cjs/drag-drop/useDropIndicator.js +0 -27
  105. package/cjs/drag-drop/useDropIndicator.js.map +0 -1
  106. package/cjs/drag-drop/useGlobalDragDrop.js +0 -89
  107. package/cjs/drag-drop/useGlobalDragDrop.js.map +0 -1
  108. package/cjs/editable/useEditableText.js +0 -211
  109. package/cjs/editable/useEditableText.js.map +0 -1
  110. package/cjs/editable-label/EditableLabel.css.js +0 -6
  111. package/cjs/editable-label/EditableLabel.css.js.map +0 -1
  112. package/cjs/editable-label/EditableLabel.js +0 -143
  113. package/cjs/editable-label/EditableLabel.js.map +0 -1
  114. package/cjs/expando-input/ExpandoInput.css.js +0 -6
  115. package/cjs/expando-input/ExpandoInput.css.js.map +0 -1
  116. package/cjs/expando-input/ExpandoInput.js +0 -53
  117. package/cjs/expando-input/ExpandoInput.js.map +0 -1
  118. package/cjs/hover-overlay/HoverOverlay.js +0 -96
  119. package/cjs/hover-overlay/HoverOverlay.js.map +0 -1
  120. package/cjs/icon-button/Icon.css.js +0 -6
  121. package/cjs/icon-button/Icon.css.js.map +0 -1
  122. package/cjs/icon-button/Icon.js +0 -37
  123. package/cjs/icon-button/Icon.js.map +0 -1
  124. package/cjs/icon-button/IconButton.css.js +0 -6
  125. package/cjs/icon-button/IconButton.css.js.map +0 -1
  126. package/cjs/icon-button/IconButton.js +0 -26
  127. package/cjs/icon-button/IconButton.js.map +0 -1
  128. package/cjs/icon-button/ToggleIconButton.css.js +0 -6
  129. package/cjs/icon-button/ToggleIconButton.css.js.map +0 -1
  130. package/cjs/icon-button/ToggleIconButton.js +0 -39
  131. package/cjs/icon-button/ToggleIconButton.js.map +0 -1
  132. package/cjs/index.js +0 -170
  133. package/cjs/index.js.map +0 -1
  134. package/cjs/instrument-picker/TablePicker.css.js +0 -6
  135. package/cjs/instrument-picker/TablePicker.css.js.map +0 -1
  136. package/cjs/instrument-picker/TablePicker.js +0 -130
  137. package/cjs/instrument-picker/TablePicker.js.map +0 -1
  138. package/cjs/instrument-picker/useTablePicker.js +0 -150
  139. package/cjs/instrument-picker/useTablePicker.js.map +0 -1
  140. package/cjs/measured-container/MeasuredContainer.css.js +0 -6
  141. package/cjs/measured-container/MeasuredContainer.css.js.map +0 -1
  142. package/cjs/measured-container/MeasuredContainer.js +0 -72
  143. package/cjs/measured-container/MeasuredContainer.js.map +0 -1
  144. package/cjs/measured-container/useMeasuredContainer.js +0 -167
  145. package/cjs/measured-container/useMeasuredContainer.js.map +0 -1
  146. package/cjs/modal-provider/ModalProvider.js +0 -143
  147. package/cjs/modal-provider/ModalProvider.js.map +0 -1
  148. package/cjs/overflow-container/OverflowContainer.css.js +0 -6
  149. package/cjs/overflow-container/OverflowContainer.css.js.map +0 -1
  150. package/cjs/overflow-container/OverflowContainer.js +0 -143
  151. package/cjs/overflow-container/OverflowContainer.js.map +0 -1
  152. package/cjs/overflow-container/overflow-utils.js +0 -286
  153. package/cjs/overflow-container/overflow-utils.js.map +0 -1
  154. package/cjs/overflow-container/useOverflowContainer.js +0 -143
  155. package/cjs/overflow-container/useOverflowContainer.js.map +0 -1
  156. package/cjs/price-ticker/PriceTicker.css.js +0 -6
  157. package/cjs/price-ticker/PriceTicker.css.js.map +0 -1
  158. package/cjs/price-ticker/PriceTicker.js +0 -50
  159. package/cjs/price-ticker/PriceTicker.js.map +0 -1
  160. package/cjs/prompt/Prompt.css.js +0 -6
  161. package/cjs/prompt/Prompt.css.js.map +0 -1
  162. package/cjs/prompt/Prompt.js +0 -142
  163. package/cjs/prompt/Prompt.js.map +0 -1
  164. package/cjs/sortable-list/SortableList.js +0 -37
  165. package/cjs/sortable-list/SortableList.js.map +0 -1
  166. package/cjs/split-button/SplitButton.css.js +0 -6
  167. package/cjs/split-button/SplitButton.css.js.map +0 -1
  168. package/cjs/split-button/SplitButton.js +0 -84
  169. package/cjs/split-button/SplitButton.js.map +0 -1
  170. package/cjs/split-button/SplitStateButton.css.js +0 -6
  171. package/cjs/split-button/SplitStateButton.css.js.map +0 -1
  172. package/cjs/split-button/SplitStateButton.js +0 -31
  173. package/cjs/split-button/SplitStateButton.js.map +0 -1
  174. package/cjs/split-button/useSplitButton.js +0 -84
  175. package/cjs/split-button/useSplitButton.js.map +0 -1
  176. package/cjs/table-search/SearchCell.css.js +0 -6
  177. package/cjs/table-search/SearchCell.css.js.map +0 -1
  178. package/cjs/table-search/SearchCell.js +0 -32
  179. package/cjs/table-search/SearchCell.js.map +0 -1
  180. package/cjs/table-search/TableSearch.css.js +0 -6
  181. package/cjs/table-search/TableSearch.css.js.map +0 -1
  182. package/cjs/table-search/TableSearch.js +0 -89
  183. package/cjs/table-search/TableSearch.js.map +0 -1
  184. package/cjs/table-search/useTableSearch.js +0 -39
  185. package/cjs/table-search/useTableSearch.js.map +0 -1
  186. package/cjs/tabs-next/TabBar.css.js +0 -6
  187. package/cjs/tabs-next/TabBar.css.js.map +0 -1
  188. package/cjs/tabs-next/TabBar.js +0 -41
  189. package/cjs/tabs-next/TabBar.js.map +0 -1
  190. package/cjs/tabs-next/TabListNext.css.js +0 -6
  191. package/cjs/tabs-next/TabListNext.css.js.map +0 -1
  192. package/cjs/tabs-next/TabListNext.js +0 -124
  193. package/cjs/tabs-next/TabListNext.js.map +0 -1
  194. package/cjs/tabs-next/TabNext.css.js +0 -6
  195. package/cjs/tabs-next/TabNext.css.js.map +0 -1
  196. package/cjs/tabs-next/TabNext.js +0 -110
  197. package/cjs/tabs-next/TabNext.js.map +0 -1
  198. package/cjs/tabs-next/TabNextAction.js +0 -35
  199. package/cjs/tabs-next/TabNextAction.js.map +0 -1
  200. package/cjs/tabs-next/TabNextContext.js +0 -23
  201. package/cjs/tabs-next/TabNextContext.js.map +0 -1
  202. package/cjs/tabs-next/TabNextPanel.css.js +0 -6
  203. package/cjs/tabs-next/TabNextPanel.css.js.map +0 -1
  204. package/cjs/tabs-next/TabNextPanel.js +0 -77
  205. package/cjs/tabs-next/TabNextPanel.js.map +0 -1
  206. package/cjs/tabs-next/TabNextTrigger.css.js +0 -6
  207. package/cjs/tabs-next/TabNextTrigger.css.js.map +0 -1
  208. package/cjs/tabs-next/TabNextTrigger.js +0 -74
  209. package/cjs/tabs-next/TabNextTrigger.js.map +0 -1
  210. package/cjs/tabs-next/TabOverflowList.css.js +0 -6
  211. package/cjs/tabs-next/TabOverflowList.css.js.map +0 -1
  212. package/cjs/tabs-next/TabOverflowList.js +0 -130
  213. package/cjs/tabs-next/TabOverflowList.js.map +0 -1
  214. package/cjs/tabs-next/TabsNext.js +0 -174
  215. package/cjs/tabs-next/TabsNext.js.map +0 -1
  216. package/cjs/tabs-next/TabsNextContext.js +0 -33
  217. package/cjs/tabs-next/TabsNextContext.js.map +0 -1
  218. package/cjs/tabs-next/hooks/useCollection.js +0 -91
  219. package/cjs/tabs-next/hooks/useCollection.js.map +0 -1
  220. package/cjs/tabs-next/hooks/useFocusOutside.js +0 -24
  221. package/cjs/tabs-next/hooks/useFocusOutside.js.map +0 -1
  222. package/cjs/tabs-next/hooks/useOverflow.js +0 -138
  223. package/cjs/tabs-next/hooks/useOverflow.js.map +0 -1
  224. package/cjs/tabstrip/Tab.css.js +0 -6
  225. package/cjs/tabstrip/Tab.css.js.map +0 -1
  226. package/cjs/tabstrip/Tab.js +0 -153
  227. package/cjs/tabstrip/Tab.js.map +0 -1
  228. package/cjs/tabstrip/TabMenu.css.js +0 -6
  229. package/cjs/tabstrip/TabMenu.css.js.map +0 -1
  230. package/cjs/tabstrip/TabMenu.js +0 -72
  231. package/cjs/tabstrip/TabMenu.js.map +0 -1
  232. package/cjs/tabstrip/TabMenuOptions.js +0 -20
  233. package/cjs/tabstrip/TabMenuOptions.js.map +0 -1
  234. package/cjs/tabstrip/Tabstrip.css.js +0 -6
  235. package/cjs/tabstrip/Tabstrip.css.js.map +0 -1
  236. package/cjs/tabstrip/Tabstrip.js +0 -160
  237. package/cjs/tabstrip/Tabstrip.js.map +0 -1
  238. package/cjs/tabstrip/tabstrip-dom-utils.js +0 -19
  239. package/cjs/tabstrip/tabstrip-dom-utils.js.map +0 -1
  240. package/cjs/tabstrip/useAnimatedSelectionThumb.js +0 -85
  241. package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
  242. package/cjs/tabstrip/useKeyboardNavigation.js +0 -247
  243. package/cjs/tabstrip/useKeyboardNavigation.js.map +0 -1
  244. package/cjs/tabstrip/useSelection.js +0 -60
  245. package/cjs/tabstrip/useSelection.js.map +0 -1
  246. package/cjs/tabstrip/useTabstrip.js +0 -233
  247. package/cjs/tabstrip/useTabstrip.js.map +0 -1
  248. package/cjs/time-input/MaskedInput.js +0 -377
  249. package/cjs/time-input/MaskedInput.js.map +0 -1
  250. package/cjs/time-input/TimeInput.css.js +0 -6
  251. package/cjs/time-input/TimeInput.css.js.map +0 -1
  252. package/cjs/time-input/TimeInput.js +0 -56
  253. package/cjs/time-input/TimeInput.js.map +0 -1
  254. package/cjs/time-input/useTimeInput.js +0 -121
  255. package/cjs/time-input/useTimeInput.js.map +0 -1
  256. package/cjs/toolbar/Toolbar.css.js +0 -6
  257. package/cjs/toolbar/Toolbar.css.js.map +0 -1
  258. package/cjs/toolbar/Toolbar.js +0 -90
  259. package/cjs/toolbar/Toolbar.js.map +0 -1
  260. package/cjs/toolbar/toolbar-dom-utils.js +0 -18
  261. package/cjs/toolbar/toolbar-dom-utils.js.map +0 -1
  262. package/cjs/toolbar/useKeyboardNavigation.js +0 -305
  263. package/cjs/toolbar/useKeyboardNavigation.js.map +0 -1
  264. package/cjs/toolbar/useSelection.js +0 -93
  265. package/cjs/toolbar/useSelection.js.map +0 -1
  266. package/cjs/toolbar/useToolbar.js +0 -100
  267. package/cjs/toolbar/useToolbar.js.map +0 -1
  268. package/cjs/utils/escapeRegExp.js +0 -9
  269. package/cjs/utils/escapeRegExp.js.map +0 -1
  270. package/cjs/utils/forwardCallbackProps.js +0 -22
  271. package/cjs/utils/forwardCallbackProps.js.map +0 -1
  272. package/cjs/utils/isOverflowElement.js +0 -8
  273. package/cjs/utils/isOverflowElement.js.map +0 -1
  274. package/cjs/utils/isPlainObject.js +0 -6
  275. package/cjs/utils/isPlainObject.js.map +0 -1
  276. package/cjs/vuu-date-picker/VuuDatePicker.js +0 -122
  277. package/cjs/vuu-date-picker/VuuDatePicker.js.map +0 -1
  278. package/cjs/vuu-input/VuuInput.css.js +0 -6
  279. package/cjs/vuu-input/VuuInput.css.js.map +0 -1
  280. package/cjs/vuu-input/VuuInput.js +0 -102
  281. package/cjs/vuu-input/VuuInput.js.map +0 -1
  282. package/cjs/vuu-time-picker/VuuTimePicker.css.js +0 -6
  283. package/cjs/vuu-time-picker/VuuTimePicker.css.js.map +0 -1
  284. package/cjs/vuu-time-picker/VuuTimePicker.js +0 -37
  285. package/cjs/vuu-time-picker/VuuTimePicker.js.map +0 -1
  286. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.css.js +0 -6
  287. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.css.js.map +0 -1
  288. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js +0 -80
  289. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
  290. package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js +0 -176
  291. package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
  292. package/esm/calendar/Calendar.css.js +0 -4
  293. package/esm/calendar/Calendar.css.js.map +0 -1
  294. package/esm/calendar/Calendar.js +0 -91
  295. package/esm/calendar/Calendar.js.map +0 -1
  296. package/esm/calendar/internal/CalendarCarousel.css.js +0 -4
  297. package/esm/calendar/internal/CalendarCarousel.css.js.map +0 -1
  298. package/esm/calendar/internal/CalendarCarousel.js +0 -73
  299. package/esm/calendar/internal/CalendarCarousel.js.map +0 -1
  300. package/esm/calendar/internal/CalendarContext.js +0 -16
  301. package/esm/calendar/internal/CalendarContext.js.map +0 -1
  302. package/esm/calendar/internal/CalendarDay.css.js +0 -4
  303. package/esm/calendar/internal/CalendarDay.css.js.map +0 -1
  304. package/esm/calendar/internal/CalendarDay.js +0 -84
  305. package/esm/calendar/internal/CalendarDay.js.map +0 -1
  306. package/esm/calendar/internal/CalendarMonth.css.js +0 -4
  307. package/esm/calendar/internal/CalendarMonth.css.js.map +0 -1
  308. package/esm/calendar/internal/CalendarMonth.js +0 -69
  309. package/esm/calendar/internal/CalendarMonth.js.map +0 -1
  310. package/esm/calendar/internal/CalendarNavigation.css.js +0 -4
  311. package/esm/calendar/internal/CalendarNavigation.css.js.map +0 -1
  312. package/esm/calendar/internal/CalendarNavigation.js +0 -234
  313. package/esm/calendar/internal/CalendarNavigation.js.map +0 -1
  314. package/esm/calendar/internal/CalendarWeekHeader.css.js +0 -4
  315. package/esm/calendar/internal/CalendarWeekHeader.css.js.map +0 -1
  316. package/esm/calendar/internal/CalendarWeekHeader.js +0 -41
  317. package/esm/calendar/internal/CalendarWeekHeader.js.map +0 -1
  318. package/esm/calendar/internal/useFocusManagement.js +0 -64
  319. package/esm/calendar/internal/useFocusManagement.js.map +0 -1
  320. package/esm/calendar/internal/utils.js +0 -55
  321. package/esm/calendar/internal/utils.js.map +0 -1
  322. package/esm/calendar/useCalendar.js +0 -161
  323. package/esm/calendar/useCalendar.js.map +0 -1
  324. package/esm/calendar/useCalendarDay.js +0 -78
  325. package/esm/calendar/useCalendarDay.js.map +0 -1
  326. package/esm/calendar/useSelection.js +0 -243
  327. package/esm/calendar/useSelection.js.map +0 -1
  328. package/esm/column-picker/ColumnPicker.css.js +0 -4
  329. package/esm/column-picker/ColumnPicker.css.js.map +0 -1
  330. package/esm/column-picker/ColumnPicker.js +0 -126
  331. package/esm/column-picker/ColumnPicker.js.map +0 -1
  332. package/esm/column-picker/ColumnSearch.css.js +0 -4
  333. package/esm/column-picker/ColumnSearch.css.js.map +0 -1
  334. package/esm/column-picker/ColumnSearch.js +0 -80
  335. package/esm/column-picker/ColumnSearch.js.map +0 -1
  336. package/esm/common-hooks/selectionTypes.js +0 -10
  337. package/esm/common-hooks/selectionTypes.js.map +0 -1
  338. package/esm/common-hooks/use-resize-observer.js +0 -118
  339. package/esm/common-hooks/use-resize-observer.js.map +0 -1
  340. package/esm/common-hooks/useControlled.js +0 -56
  341. package/esm/common-hooks/useControlled.js.map +0 -1
  342. package/esm/context-panel-provider/ContextPanelProvider.js +0 -94
  343. package/esm/context-panel-provider/ContextPanelProvider.js.map +0 -1
  344. package/esm/cycle-state-button/CycleStateButton.js +0 -48
  345. package/esm/cycle-state-button/CycleStateButton.js.map +0 -1
  346. package/esm/date-input/DateInput.css.js +0 -4
  347. package/esm/date-input/DateInput.css.js.map +0 -1
  348. package/esm/date-input/DateInput.js +0 -275
  349. package/esm/date-input/DateInput.js.map +0 -1
  350. package/esm/date-picker/DatePicker.js +0 -167
  351. package/esm/date-picker/DatePicker.js.map +0 -1
  352. package/esm/date-picker/DatePickerContext.js +0 -23
  353. package/esm/date-picker/DatePickerContext.js.map +0 -1
  354. package/esm/date-picker/DatePickerPanel.css.js +0 -4
  355. package/esm/date-picker/DatePickerPanel.css.js.map +0 -1
  356. package/esm/date-picker/DatePickerPanel.js +0 -144
  357. package/esm/date-picker/DatePickerPanel.js.map +0 -1
  358. package/esm/drag-drop/DragDropProvider.js +0 -142
  359. package/esm/drag-drop/DragDropProvider.js.map +0 -1
  360. package/esm/drag-drop/DragDropState.js +0 -34
  361. package/esm/drag-drop/DragDropState.js.map +0 -1
  362. package/esm/drag-drop/Draggable.css.js +0 -4
  363. package/esm/drag-drop/Draggable.css.js.map +0 -1
  364. package/esm/drag-drop/Draggable.js +0 -85
  365. package/esm/drag-drop/Draggable.js.map +0 -1
  366. package/esm/drag-drop/dragDropTypes.js +0 -5
  367. package/esm/drag-drop/dragDropTypes.js.map +0 -1
  368. package/esm/drag-drop/drop-target-utils.js +0 -228
  369. package/esm/drag-drop/drop-target-utils.js.map +0 -1
  370. package/esm/drag-drop/useAutoScroll.js +0 -69
  371. package/esm/drag-drop/useAutoScroll.js.map +0 -1
  372. package/esm/drag-drop/useDragDisplacers.js +0 -158
  373. package/esm/drag-drop/useDragDisplacers.js.map +0 -1
  374. package/esm/drag-drop/useDragDrop.js +0 -502
  375. package/esm/drag-drop/useDragDrop.js.map +0 -1
  376. package/esm/drag-drop/useDragDropCopy.js +0 -31
  377. package/esm/drag-drop/useDragDropCopy.js.map +0 -1
  378. package/esm/drag-drop/useDragDropIndicator.js +0 -249
  379. package/esm/drag-drop/useDragDropIndicator.js.map +0 -1
  380. package/esm/drag-drop/useDragDropNaturalMovement.js +0 -263
  381. package/esm/drag-drop/useDragDropNaturalMovement.js.map +0 -1
  382. package/esm/drag-drop/useDropIndicator.js +0 -25
  383. package/esm/drag-drop/useDropIndicator.js.map +0 -1
  384. package/esm/drag-drop/useGlobalDragDrop.js +0 -87
  385. package/esm/drag-drop/useGlobalDragDrop.js.map +0 -1
  386. package/esm/editable/useEditableText.js +0 -209
  387. package/esm/editable/useEditableText.js.map +0 -1
  388. package/esm/editable-label/EditableLabel.css.js +0 -4
  389. package/esm/editable-label/EditableLabel.css.js.map +0 -1
  390. package/esm/editable-label/EditableLabel.js +0 -140
  391. package/esm/editable-label/EditableLabel.js.map +0 -1
  392. package/esm/expando-input/ExpandoInput.css.js +0 -4
  393. package/esm/expando-input/ExpandoInput.css.js.map +0 -1
  394. package/esm/expando-input/ExpandoInput.js +0 -51
  395. package/esm/expando-input/ExpandoInput.js.map +0 -1
  396. package/esm/hover-overlay/HoverOverlay.js +0 -94
  397. package/esm/hover-overlay/HoverOverlay.js.map +0 -1
  398. package/esm/icon-button/Icon.css.js +0 -4
  399. package/esm/icon-button/Icon.css.js.map +0 -1
  400. package/esm/icon-button/Icon.js +0 -35
  401. package/esm/icon-button/Icon.js.map +0 -1
  402. package/esm/icon-button/IconButton.css.js +0 -4
  403. package/esm/icon-button/IconButton.css.js.map +0 -1
  404. package/esm/icon-button/IconButton.js +0 -24
  405. package/esm/icon-button/IconButton.js.map +0 -1
  406. package/esm/icon-button/ToggleIconButton.css.js +0 -4
  407. package/esm/icon-button/ToggleIconButton.css.js.map +0 -1
  408. package/esm/icon-button/ToggleIconButton.js +0 -37
  409. package/esm/icon-button/ToggleIconButton.js.map +0 -1
  410. package/esm/index.js +0 -59
  411. package/esm/index.js.map +0 -1
  412. package/esm/instrument-picker/TablePicker.css.js +0 -4
  413. package/esm/instrument-picker/TablePicker.css.js.map +0 -1
  414. package/esm/instrument-picker/TablePicker.js +0 -128
  415. package/esm/instrument-picker/TablePicker.js.map +0 -1
  416. package/esm/instrument-picker/useTablePicker.js +0 -148
  417. package/esm/instrument-picker/useTablePicker.js.map +0 -1
  418. package/esm/measured-container/MeasuredContainer.css.js +0 -4
  419. package/esm/measured-container/MeasuredContainer.css.js.map +0 -1
  420. package/esm/measured-container/MeasuredContainer.js +0 -70
  421. package/esm/measured-container/MeasuredContainer.js.map +0 -1
  422. package/esm/measured-container/useMeasuredContainer.js +0 -164
  423. package/esm/measured-container/useMeasuredContainer.js.map +0 -1
  424. package/esm/modal-provider/ModalProvider.js +0 -140
  425. package/esm/modal-provider/ModalProvider.js.map +0 -1
  426. package/esm/overflow-container/OverflowContainer.css.js +0 -4
  427. package/esm/overflow-container/OverflowContainer.css.js.map +0 -1
  428. package/esm/overflow-container/OverflowContainer.js +0 -141
  429. package/esm/overflow-container/OverflowContainer.js.map +0 -1
  430. package/esm/overflow-container/overflow-utils.js +0 -272
  431. package/esm/overflow-container/overflow-utils.js.map +0 -1
  432. package/esm/overflow-container/useOverflowContainer.js +0 -141
  433. package/esm/overflow-container/useOverflowContainer.js.map +0 -1
  434. package/esm/price-ticker/PriceTicker.css.js +0 -4
  435. package/esm/price-ticker/PriceTicker.css.js.map +0 -1
  436. package/esm/price-ticker/PriceTicker.js +0 -48
  437. package/esm/price-ticker/PriceTicker.js.map +0 -1
  438. package/esm/prompt/Prompt.css.js +0 -4
  439. package/esm/prompt/Prompt.css.js.map +0 -1
  440. package/esm/prompt/Prompt.js +0 -140
  441. package/esm/prompt/Prompt.js.map +0 -1
  442. package/esm/sortable-list/SortableList.js +0 -34
  443. package/esm/sortable-list/SortableList.js.map +0 -1
  444. package/esm/split-button/SplitButton.css.js +0 -4
  445. package/esm/split-button/SplitButton.css.js.map +0 -1
  446. package/esm/split-button/SplitButton.js +0 -82
  447. package/esm/split-button/SplitButton.js.map +0 -1
  448. package/esm/split-button/SplitStateButton.css.js +0 -4
  449. package/esm/split-button/SplitStateButton.css.js.map +0 -1
  450. package/esm/split-button/SplitStateButton.js +0 -29
  451. package/esm/split-button/SplitStateButton.js.map +0 -1
  452. package/esm/split-button/useSplitButton.js +0 -82
  453. package/esm/split-button/useSplitButton.js.map +0 -1
  454. package/esm/table-search/SearchCell.css.js +0 -4
  455. package/esm/table-search/SearchCell.css.js.map +0 -1
  456. package/esm/table-search/SearchCell.js +0 -30
  457. package/esm/table-search/SearchCell.js.map +0 -1
  458. package/esm/table-search/TableSearch.css.js +0 -4
  459. package/esm/table-search/TableSearch.css.js.map +0 -1
  460. package/esm/table-search/TableSearch.js +0 -87
  461. package/esm/table-search/TableSearch.js.map +0 -1
  462. package/esm/table-search/useTableSearch.js +0 -37
  463. package/esm/table-search/useTableSearch.js.map +0 -1
  464. package/esm/tabs-next/TabBar.css.js +0 -4
  465. package/esm/tabs-next/TabBar.css.js.map +0 -1
  466. package/esm/tabs-next/TabBar.js +0 -39
  467. package/esm/tabs-next/TabBar.js.map +0 -1
  468. package/esm/tabs-next/TabListNext.css.js +0 -4
  469. package/esm/tabs-next/TabListNext.css.js.map +0 -1
  470. package/esm/tabs-next/TabListNext.js +0 -122
  471. package/esm/tabs-next/TabListNext.js.map +0 -1
  472. package/esm/tabs-next/TabNext.css.js +0 -4
  473. package/esm/tabs-next/TabNext.css.js.map +0 -1
  474. package/esm/tabs-next/TabNext.js +0 -108
  475. package/esm/tabs-next/TabNext.js.map +0 -1
  476. package/esm/tabs-next/TabNextAction.js +0 -33
  477. package/esm/tabs-next/TabNextAction.js.map +0 -1
  478. package/esm/tabs-next/TabNextContext.js +0 -20
  479. package/esm/tabs-next/TabNextContext.js.map +0 -1
  480. package/esm/tabs-next/TabNextPanel.css.js +0 -4
  481. package/esm/tabs-next/TabNextPanel.css.js.map +0 -1
  482. package/esm/tabs-next/TabNextPanel.js +0 -75
  483. package/esm/tabs-next/TabNextPanel.js.map +0 -1
  484. package/esm/tabs-next/TabNextTrigger.css.js +0 -4
  485. package/esm/tabs-next/TabNextTrigger.css.js.map +0 -1
  486. package/esm/tabs-next/TabNextTrigger.js +0 -72
  487. package/esm/tabs-next/TabNextTrigger.js.map +0 -1
  488. package/esm/tabs-next/TabOverflowList.css.js +0 -4
  489. package/esm/tabs-next/TabOverflowList.css.js.map +0 -1
  490. package/esm/tabs-next/TabOverflowList.js +0 -128
  491. package/esm/tabs-next/TabOverflowList.js.map +0 -1
  492. package/esm/tabs-next/TabsNext.js +0 -172
  493. package/esm/tabs-next/TabsNext.js.map +0 -1
  494. package/esm/tabs-next/TabsNextContext.js +0 -30
  495. package/esm/tabs-next/TabsNextContext.js.map +0 -1
  496. package/esm/tabs-next/hooks/useCollection.js +0 -89
  497. package/esm/tabs-next/hooks/useCollection.js.map +0 -1
  498. package/esm/tabs-next/hooks/useFocusOutside.js +0 -22
  499. package/esm/tabs-next/hooks/useFocusOutside.js.map +0 -1
  500. package/esm/tabs-next/hooks/useOverflow.js +0 -136
  501. package/esm/tabs-next/hooks/useOverflow.js.map +0 -1
  502. package/esm/tabstrip/Tab.css.js +0 -4
  503. package/esm/tabstrip/Tab.css.js.map +0 -1
  504. package/esm/tabstrip/Tab.js +0 -151
  505. package/esm/tabstrip/Tab.js.map +0 -1
  506. package/esm/tabstrip/TabMenu.css.js +0 -4
  507. package/esm/tabstrip/TabMenu.css.js.map +0 -1
  508. package/esm/tabstrip/TabMenu.js +0 -70
  509. package/esm/tabstrip/TabMenu.js.map +0 -1
  510. package/esm/tabstrip/TabMenuOptions.js +0 -16
  511. package/esm/tabstrip/TabMenuOptions.js.map +0 -1
  512. package/esm/tabstrip/Tabstrip.css.js +0 -4
  513. package/esm/tabstrip/Tabstrip.css.js.map +0 -1
  514. package/esm/tabstrip/Tabstrip.js +0 -158
  515. package/esm/tabstrip/Tabstrip.js.map +0 -1
  516. package/esm/tabstrip/tabstrip-dom-utils.js +0 -16
  517. package/esm/tabstrip/tabstrip-dom-utils.js.map +0 -1
  518. package/esm/tabstrip/useAnimatedSelectionThumb.js +0 -83
  519. package/esm/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
  520. package/esm/tabstrip/useKeyboardNavigation.js +0 -245
  521. package/esm/tabstrip/useKeyboardNavigation.js.map +0 -1
  522. package/esm/tabstrip/useSelection.js +0 -58
  523. package/esm/tabstrip/useSelection.js.map +0 -1
  524. package/esm/tabstrip/useTabstrip.js +0 -231
  525. package/esm/tabstrip/useTabstrip.js.map +0 -1
  526. package/esm/time-input/MaskedInput.js +0 -375
  527. package/esm/time-input/MaskedInput.js.map +0 -1
  528. package/esm/time-input/TimeInput.css.js +0 -4
  529. package/esm/time-input/TimeInput.css.js.map +0 -1
  530. package/esm/time-input/TimeInput.js +0 -54
  531. package/esm/time-input/TimeInput.js.map +0 -1
  532. package/esm/time-input/useTimeInput.js +0 -119
  533. package/esm/time-input/useTimeInput.js.map +0 -1
  534. package/esm/toolbar/Toolbar.css.js +0 -4
  535. package/esm/toolbar/Toolbar.css.js.map +0 -1
  536. package/esm/toolbar/Toolbar.js +0 -88
  537. package/esm/toolbar/Toolbar.js.map +0 -1
  538. package/esm/toolbar/toolbar-dom-utils.js +0 -15
  539. package/esm/toolbar/toolbar-dom-utils.js.map +0 -1
  540. package/esm/toolbar/useKeyboardNavigation.js +0 -303
  541. package/esm/toolbar/useKeyboardNavigation.js.map +0 -1
  542. package/esm/toolbar/useSelection.js +0 -91
  543. package/esm/toolbar/useSelection.js.map +0 -1
  544. package/esm/toolbar/useToolbar.js +0 -98
  545. package/esm/toolbar/useToolbar.js.map +0 -1
  546. package/esm/utils/escapeRegExp.js +0 -7
  547. package/esm/utils/escapeRegExp.js.map +0 -1
  548. package/esm/utils/forwardCallbackProps.js +0 -20
  549. package/esm/utils/forwardCallbackProps.js.map +0 -1
  550. package/esm/utils/isOverflowElement.js +0 -6
  551. package/esm/utils/isOverflowElement.js.map +0 -1
  552. package/esm/utils/isPlainObject.js +0 -4
  553. package/esm/utils/isPlainObject.js.map +0 -1
  554. package/esm/vuu-date-picker/VuuDatePicker.js +0 -120
  555. package/esm/vuu-date-picker/VuuDatePicker.js.map +0 -1
  556. package/esm/vuu-input/VuuInput.css.js +0 -4
  557. package/esm/vuu-input/VuuInput.css.js.map +0 -1
  558. package/esm/vuu-input/VuuInput.js +0 -100
  559. package/esm/vuu-input/VuuInput.js.map +0 -1
  560. package/esm/vuu-time-picker/VuuTimePicker.css.js +0 -4
  561. package/esm/vuu-time-picker/VuuTimePicker.css.js.map +0 -1
  562. package/esm/vuu-time-picker/VuuTimePicker.js +0 -35
  563. package/esm/vuu-time-picker/VuuTimePicker.js.map +0 -1
  564. package/esm/vuu-typeahead-input/VuuTypeaheadInput.css.js +0 -4
  565. package/esm/vuu-typeahead-input/VuuTypeaheadInput.css.js.map +0 -1
  566. package/esm/vuu-typeahead-input/VuuTypeaheadInput.js +0 -78
  567. package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
  568. package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js +0 -174
  569. package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
@@ -1,251 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var useDropIndicator = require('./useDropIndicator.js');
6
- var dropTargetUtils = require('./drop-target-utils.js');
7
- var Draggable = require('./Draggable.js');
8
-
9
- const NOT_OVERFLOWED = ':not([data-overflowed="true"])';
10
- const NOT_HIDDEN = ':not([aria-hidden="true"])';
11
- const useDragDropIndicator = ({
12
- orientation = "horizontal",
13
- containerRef,
14
- itemQuery = "*",
15
- selected,
16
- viewportRange
17
- }) => {
18
- const dragDirectionRef = React.useRef(void 0);
19
- const dropIndicatorRef = React.useRef(null);
20
- const dropTargetRef = React.useRef(null);
21
- const dropZoneRef = React.useRef("");
22
- const isScrollable = React.useRef(false);
23
- const dragPosRef = React.useRef(-1);
24
- const measuredDropTargets = React.useRef([]);
25
- const overflowMenuShowingRef = React.useRef(false);
26
- const [showOverflow, setShowOverflow] = React.useState(false);
27
- const [dropIndicator, setDropIndicator] = React.useState();
28
- const { clearSpacer, positionDropIndicator } = useDropIndicator.useDropIndicator();
29
- const draggedItemRef = React.useRef(void 0);
30
- const fullItemQuery = `:is(${itemQuery}${NOT_OVERFLOWED}${NOT_HIDDEN},[data-overflow-indicator])`;
31
- const indexOf = (dropTarget) => measuredDropTargets.current.findIndex((d) => d.id === dropTarget.id);
32
- const reposition = (dropTarget, distance, indexShift) => {
33
- dropTarget.start += distance;
34
- dropTarget.mid += distance;
35
- dropTarget.end += distance;
36
- if (typeof indexShift === "number") {
37
- dropTarget.currentIndex += indexShift;
38
- }
39
- };
40
- const rangeRef = React.useRef(void 0);
41
- rangeRef.current = viewportRange;
42
- const handleScrollStart = React.useCallback(() => {
43
- clearSpacer();
44
- }, [clearSpacer]);
45
- const handleScrollStop = React.useCallback(
46
- (scrollDirection, _scrollPos, atEnd) => {
47
- const { current: container } = containerRef;
48
- const { current: draggedItem } = draggedItemRef;
49
- if (container && draggedItem) {
50
- measuredDropTargets.current = dropTargetUtils.measureDropTargets(
51
- container,
52
- orientation,
53
- fullItemQuery,
54
- rangeRef.current
55
- );
56
- const { size } = draggedItem;
57
- const dragPos = dragPosRef.current;
58
- const midPos = dragPos + size / 2;
59
- const { current: dropTargets } = measuredDropTargets;
60
- const nextDropTarget = dropTargetUtils.getNextDropTarget(
61
- dropTargets,
62
- midPos,
63
- size,
64
- "fwd"
65
- );
66
- if (nextDropTarget) {
67
- if (atEnd && scrollDirection === "fwd") {
68
- positionDropIndicator(dropTargets[dropTargets.length - 1], "start");
69
- } else {
70
- positionDropIndicator(nextDropTarget, "start");
71
- }
72
- }
73
- }
74
- },
75
- [
76
- containerRef,
77
- positionDropIndicator,
78
- fullItemQuery,
79
- orientation
80
- // setVizData,
81
- ]
82
- );
83
- const beginDrag = React.useCallback(
84
- (dragElement) => {
85
- if (dragElement.ariaSelected && Array.isArray(selected) && selected.length > 1) {
86
- console.log("its a selected element, and we have a multi select");
87
- }
88
- const { current: container } = containerRef;
89
- if (container && dragElement) {
90
- const { SCROLL_SIZE, CLIENT_SIZE } = dropTargetUtils.dimensions(orientation);
91
- const { id: draggedItemId } = dragElement;
92
- const { [SCROLL_SIZE]: scrollSize, [CLIENT_SIZE]: clientSize } = container;
93
- isScrollable.current = scrollSize > clientSize;
94
- const dropTargets = measuredDropTargets.current = dropTargetUtils.measureDropTargets(
95
- container,
96
- orientation,
97
- fullItemQuery,
98
- viewportRange
99
- );
100
- const draggedItem = dropTargetUtils.getItemById(dropTargets, draggedItemId);
101
- if (draggedItem && container) {
102
- const targetIndex = indexOf(draggedItem);
103
- dropTargetUtils.removeDraggedItem(dropTargets, targetIndex);
104
- draggedItemRef.current = draggedItem;
105
- const { current: range } = rangeRef;
106
- if (range?.atEnd) {
107
- for (let i = 0; i < dropTargets.length; i++) {
108
- reposition(dropTargets[i], draggedItem.size);
109
- }
110
- }
111
- for (let i = targetIndex; i < dropTargets.length; i++) {
112
- reposition(dropTargets[i], -draggedItem.size, -1);
113
- }
114
- const [dropTarget, dropZone2] = draggedItem.isLast ? [dropTargets[dropTargets.length - 1], "end"] : [dropTargets[targetIndex], "start"];
115
- dropTargetRef.current = dropTarget;
116
- dropZoneRef.current = dropZone2;
117
- const dropIndicatorPosition = positionDropIndicator(
118
- dropTarget,
119
- dropZone2
120
- );
121
- const { top, left, width } = dropIndicatorPosition.getBoundingClientRect();
122
- const dropIndicatorRect = {
123
- top: draggedItem.isLast ? range?.atEnd && !range.atStart ? top + draggedItem.size - 2 : top - 2 : top - draggedItem.size - 2,
124
- left,
125
- width,
126
- height: 2
127
- };
128
- setDropIndicator(
129
- /* @__PURE__ */ jsxRuntime.jsx(
130
- Draggable.Draggable,
131
- {
132
- wrapperClassName: "dropIndicatorContainer",
133
- style: dropIndicatorRect,
134
- ref: dropIndicatorRef,
135
- element: Draggable.createDropIndicator()
136
- }
137
- )
138
- );
139
- }
140
- }
141
- },
142
- [
143
- selected,
144
- containerRef,
145
- orientation,
146
- fullItemQuery,
147
- viewportRange,
148
- positionDropIndicator
149
- ]
150
- );
151
- const drag = React.useCallback(
152
- (dragPos, mouseMoveDirection) => {
153
- const { current: currentDropTarget } = dropTargetRef;
154
- const { current: draggedItem } = draggedItemRef;
155
- if (draggedItem) {
156
- if (containerRef.current) {
157
- const START = orientation === "horizontal" ? "left" : "top";
158
- dragPosRef.current = dragPos;
159
- const { current: dropTargets } = measuredDropTargets;
160
- const nextDropTarget = dropTargetUtils.getNextDropTarget(
161
- dropTargets,
162
- dragPos,
163
- draggedItem.size,
164
- mouseMoveDirection
165
- );
166
- if (nextDropTarget && nextDropTarget.index !== currentDropTarget?.index) {
167
- if (nextDropTarget.isOverflowIndicator) {
168
- setShowOverflow(overflowMenuShowingRef.current = true);
169
- } else if (dropIndicatorRef.current) {
170
- const targetIndex = indexOf(nextDropTarget);
171
- if (targetIndex === dropTargets.length - 1) {
172
- const dropTarget = dropTargets[dropTargets.length - 1];
173
- const dropIndicatorPosition = positionDropIndicator(
174
- dropTarget,
175
- "start"
176
- );
177
- const dropIndicatorRect = dropIndicatorPosition.getBoundingClientRect();
178
- dropIndicatorRef.current.style[START] = `${dropIndicatorRect.top}px`;
179
- } else {
180
- const dropIndicatorPosition = positionDropIndicator(
181
- nextDropTarget,
182
- "start"
183
- );
184
- const dropIndicatorRect = dropIndicatorPosition.getBoundingClientRect();
185
- dropIndicatorRef.current.style[START] = `${dropIndicatorRect.top}px`;
186
- }
187
- setShowOverflow(overflowMenuShowingRef.current = false);
188
- }
189
- dropTargetRef.current = nextDropTarget;
190
- dragDirectionRef.current = mouseMoveDirection;
191
- }
192
- }
193
- }
194
- },
195
- [containerRef, orientation, positionDropIndicator]
196
- );
197
- const drop = React.useCallback(() => {
198
- clearSpacer();
199
- const { current: draggedItem } = draggedItemRef;
200
- const { current: dropTarget } = dropTargetRef;
201
- const { current: dropZone2 } = dropZoneRef;
202
- const { current: range } = rangeRef;
203
- if (draggedItem && range && dropTarget) {
204
- const { index: fromIndex } = draggedItem;
205
- const dropBefore = dropZone2 === "start";
206
- const {
207
- index: originalDropTargetIndex,
208
- currentIndex: currentDropTargetIndex
209
- } = dropTarget;
210
- dropTargetRef.current = null;
211
- dragDirectionRef.current = void 0;
212
- setDropIndicator(void 0);
213
- setShowOverflow(false);
214
- if (overflowMenuShowingRef.current) {
215
- return {
216
- fromIndex,
217
- toIndex: -1
218
- };
219
- } else {
220
- if (fromIndex < originalDropTargetIndex) {
221
- return {
222
- fromIndex,
223
- toIndex: dropBefore ? currentDropTargetIndex : currentDropTargetIndex + 1
224
- };
225
- } else {
226
- return {
227
- fromIndex,
228
- toIndex: dropBefore ? originalDropTargetIndex : originalDropTargetIndex + 1
229
- };
230
- }
231
- }
232
- } else {
233
- throw Error(`useDragDropIndicator drop error`);
234
- }
235
- }, [clearSpacer]);
236
- const releaseDrag = React.useCallback(() => {
237
- }, []);
238
- return {
239
- beginDrag,
240
- drag,
241
- drop,
242
- dropIndicator,
243
- handleScrollStart,
244
- handleScrollStop,
245
- releaseDrag,
246
- revealOverflowedItems: showOverflow
247
- };
248
- };
249
-
250
- exports.useDragDropIndicator = useDragDropIndicator;
251
- //# sourceMappingURL=useDragDropIndicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDragDropIndicator.js","sources":["../../../../packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.tsx"],"sourcesContent":["import { ReactElement, useCallback, useRef, useState } from \"react\";\n\nimport {\n InternalDragDropProps,\n InternalDragHookResult,\n Direction,\n ViewportRange,\n DropOptions,\n} from \"./dragDropTypes\";\nimport { useDropIndicator } from \"./useDropIndicator\";\n\nimport {\n dimensions,\n getItemById,\n MeasuredDropTarget,\n measureDropTargets,\n getNextDropTarget,\n dropZone,\n removeDraggedItem,\n} from \"./drop-target-utils\";\n\nimport { createDropIndicator, Draggable } from \"./Draggable\";\n\nconst NOT_OVERFLOWED = ':not([data-overflowed=\"true\"])';\nconst NOT_HIDDEN = ':not([aria-hidden=\"true\"])';\n\nexport const useDragDropIndicator = ({\n orientation = \"horizontal\",\n containerRef,\n itemQuery = \"*\",\n selected,\n viewportRange,\n}: InternalDragDropProps): InternalDragHookResult => {\n const dragDirectionRef = useRef<Direction | undefined>(undefined);\n const dropIndicatorRef = useRef<HTMLDivElement>(null);\n const dropTargetRef = useRef<MeasuredDropTarget | null>(null);\n const dropZoneRef = useRef<dropZone | \"\">(\"\");\n const isScrollable = useRef(false);\n /** current position of dragged element */\n const dragPosRef = useRef<number>(-1);\n const measuredDropTargets = useRef<MeasuredDropTarget[]>([]);\n const overflowMenuShowingRef = useRef(false);\n\n const [showOverflow, setShowOverflow] = useState(false);\n const [dropIndicator, setDropIndicator] = useState<\n ReactElement | undefined\n >();\n\n const { clearSpacer, positionDropIndicator } = useDropIndicator();\n\n const draggedItemRef = useRef<MeasuredDropTarget>(undefined);\n const fullItemQuery = `:is(${itemQuery}${NOT_OVERFLOWED}${NOT_HIDDEN},[data-overflow-indicator])`;\n\n // const { setMeasurements: setVizData } = useListViz();\n\n const indexOf = (dropTarget: MeasuredDropTarget) =>\n measuredDropTargets.current.findIndex((d) => d.id === dropTarget.id);\n\n const reposition = (\n dropTarget: MeasuredDropTarget,\n distance: number,\n indexShift?: number,\n ) => {\n dropTarget.start += distance;\n dropTarget.mid += distance;\n dropTarget.end += distance;\n if (typeof indexShift === \"number\") {\n dropTarget.currentIndex += indexShift;\n }\n };\n\n // Shouldn't need this - but viewportRange is always stale in stopScrolling. Checked all dependencies\n // look ok. Something to do with setTimeout / scrollHandler ?\n const rangeRef = useRef<ViewportRange>(undefined);\n rangeRef.current = viewportRange;\n\n const handleScrollStart = useCallback(() => {\n clearSpacer();\n }, [clearSpacer]);\n\n const handleScrollStop = useCallback(\n (scrollDirection: \"fwd\" | \"bwd\", _scrollPos: number, atEnd: boolean) => {\n const { current: container } = containerRef;\n const { current: draggedItem } = draggedItemRef;\n if (container && draggedItem) {\n measuredDropTargets.current = measureDropTargets(\n container,\n orientation,\n fullItemQuery,\n rangeRef.current,\n );\n // setVizData(measuredDropTargets.current);\n\n const { size } = draggedItem;\n const dragPos = dragPosRef.current;\n const midPos = dragPos + size / 2;\n const { current: dropTargets } = measuredDropTargets;\n const nextDropTarget = getNextDropTarget(\n dropTargets,\n midPos,\n size,\n \"fwd\",\n );\n if (nextDropTarget) {\n if (atEnd && scrollDirection === \"fwd\") {\n positionDropIndicator(dropTargets[dropTargets.length - 1], \"start\");\n } else {\n positionDropIndicator(nextDropTarget, \"start\");\n }\n }\n\n // setVizData(measuredDropTargets.current, nextDropTarget);\n }\n },\n [\n containerRef,\n positionDropIndicator,\n fullItemQuery,\n orientation,\n // setVizData,\n ],\n );\n\n const beginDrag = useCallback(\n (dragElement: HTMLElement) => {\n if (\n dragElement.ariaSelected &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n console.log(\"its a selected element, and we have a multi select\");\n }\n const { current: container } = containerRef;\n if (container && dragElement) {\n const { SCROLL_SIZE, CLIENT_SIZE } = dimensions(orientation);\n const { id: draggedItemId } = dragElement;\n\n const { [SCROLL_SIZE]: scrollSize, [CLIENT_SIZE]: clientSize } =\n container;\n isScrollable.current = scrollSize > clientSize;\n\n const dropTargets = (measuredDropTargets.current = measureDropTargets(\n container,\n orientation,\n fullItemQuery,\n viewportRange,\n ));\n\n const draggedItem = getItemById(dropTargets, draggedItemId);\n\n if (draggedItem && container) {\n const targetIndex = indexOf(draggedItem);\n removeDraggedItem(dropTargets, targetIndex);\n draggedItemRef.current = draggedItem;\n\n // This begins to deviate from NaturalMovement here -----------\n const { current: range } = rangeRef;\n //TODO when our viewport is the last 'page' of a scrolling viewport\n // the viewport will scoll up by one row when we remove an item, so\n // the position of each item will move down.\n if (range?.atEnd) {\n for (let i = 0; i < dropTargets.length; i++) {\n reposition(dropTargets[i], draggedItem.size);\n }\n }\n for (let i = targetIndex; i < dropTargets.length; i++) {\n reposition(dropTargets[i], -draggedItem.size, -1);\n }\n\n const [dropTarget, dropZone] = draggedItem.isLast\n ? [dropTargets[dropTargets.length - 1], \"end\"]\n : [dropTargets[targetIndex], \"start\"];\n\n dropTargetRef.current = dropTarget;\n dropZoneRef.current = dropZone as dropZone;\n\n // setVizData(dropTargets, dropTarget, dropZone);\n\n const dropIndicatorPosition = positionDropIndicator(\n dropTarget,\n dropZone as dropZone,\n );\n\n const { top, left, width } =\n dropIndicatorPosition.getBoundingClientRect();\n // Next render will remove the dragged item, that will offset our initial\n // dropIndicatorPosition\n const dropIndicatorRect = {\n top: draggedItem.isLast\n ? range?.atEnd && !range.atStart\n ? top + draggedItem.size - 2\n : top - 2\n : top - draggedItem.size - 2,\n left,\n width,\n height: 2,\n };\n\n setDropIndicator(\n <Draggable\n wrapperClassName=\"dropIndicatorContainer\"\n style={dropIndicatorRect}\n ref={dropIndicatorRef}\n element={createDropIndicator()}\n />,\n );\n }\n }\n },\n [\n selected,\n containerRef,\n orientation,\n fullItemQuery,\n viewportRange,\n positionDropIndicator,\n ],\n );\n\n const drag = useCallback(\n (dragPos: number, mouseMoveDirection: \"fwd\" | \"bwd\") => {\n const { current: currentDropTarget } = dropTargetRef;\n const { current: draggedItem } = draggedItemRef;\n\n if (draggedItem) {\n if (containerRef.current) {\n const START = orientation === \"horizontal\" ? \"left\" : \"top\";\n dragPosRef.current = dragPos;\n\n const { current: dropTargets } = measuredDropTargets;\n const nextDropTarget = getNextDropTarget(\n dropTargets,\n dragPos,\n draggedItem.size,\n mouseMoveDirection,\n );\n\n if (\n nextDropTarget &&\n nextDropTarget.index !== currentDropTarget?.index\n // mouseMoveDirection !== dragDirectionRef.current\n ) {\n if (nextDropTarget.isOverflowIndicator) {\n // Does this belong in here or can we abstract it out\n setShowOverflow((overflowMenuShowingRef.current = true));\n } else if (dropIndicatorRef.current) {\n const targetIndex = indexOf(nextDropTarget);\n if (targetIndex === dropTargets.length - 1) {\n // because we maintain at least one out-of-viewport row in\n // the dropTargets, this means we are at the very last item.\n const dropTarget = dropTargets[dropTargets.length - 1];\n const dropIndicatorPosition = positionDropIndicator(\n dropTarget,\n \"start\",\n );\n const dropIndicatorRect =\n dropIndicatorPosition.getBoundingClientRect();\n dropIndicatorRef.current.style[START] =\n `${dropIndicatorRect.top}px`;\n } else {\n const dropIndicatorPosition = positionDropIndicator(\n nextDropTarget,\n \"start\",\n ) as unknown as HTMLElement;\n const dropIndicatorRect =\n dropIndicatorPosition.getBoundingClientRect();\n dropIndicatorRef.current.style[START] =\n `${dropIndicatorRect.top}px`;\n }\n // setVizData(dropTargets, nextDropTarget, nextDropZone);\n\n setShowOverflow((overflowMenuShowingRef.current = false));\n }\n\n dropTargetRef.current = nextDropTarget;\n dragDirectionRef.current = mouseMoveDirection;\n }\n }\n }\n },\n [containerRef, orientation, positionDropIndicator],\n );\n\n const drop = useCallback((): DropOptions => {\n clearSpacer();\n const { current: draggedItem } = draggedItemRef;\n const { current: dropTarget } = dropTargetRef;\n const { current: dropZone } = dropZoneRef;\n const { current: range } = rangeRef;\n\n if (draggedItem && range && dropTarget) {\n const { index: fromIndex } = draggedItem;\n\n const dropBefore = dropZone === \"start\";\n const {\n index: originalDropTargetIndex,\n currentIndex: currentDropTargetIndex,\n } = dropTarget;\n\n dropTargetRef.current = null;\n dragDirectionRef.current = undefined;\n\n setDropIndicator(undefined);\n setShowOverflow(false);\n\n //TODO why is this different from Natural Movement ?\n if (overflowMenuShowingRef.current) {\n return {\n fromIndex,\n toIndex: -1,\n };\n } else {\n if (fromIndex < originalDropTargetIndex) {\n return {\n fromIndex,\n toIndex: dropBefore\n ? currentDropTargetIndex\n : currentDropTargetIndex + 1,\n };\n } else {\n return {\n fromIndex,\n toIndex: dropBefore\n ? originalDropTargetIndex\n : originalDropTargetIndex + 1,\n };\n }\n }\n } else {\n throw Error(`useDragDropIndicator drop error`);\n }\n }, [clearSpacer]);\n\n const releaseDrag = useCallback(() => {\n // TODO\n }, []);\n\n return {\n beginDrag,\n drag,\n drop,\n dropIndicator,\n handleScrollStart,\n handleScrollStop,\n releaseDrag,\n revealOverflowedItems: showOverflow,\n };\n};\n"],"names":["useRef","useState","useDropIndicator","useCallback","measureDropTargets","getNextDropTarget","dimensions","getItemById","removeDraggedItem","dropZone","jsx","Draggable","createDropIndicator"],"mappings":"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"}
@@ -1,265 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var useDragDisplacers = require('./useDragDisplacers.js');
5
- var vuuUtils = require('@vuu-ui/vuu-utils');
6
- var dropTargetUtils = require('./drop-target-utils.js');
7
-
8
- const useDragDropNaturalMovement = ({
9
- containerRef,
10
- orientation = "horizontal",
11
- itemQuery = "*",
12
- selected,
13
- viewportRange
14
- }) => {
15
- const dragPositionRef = React.useRef({
16
- direction: void 0,
17
- insertionPosition: -1
18
- });
19
- const isScrollable = React.useRef(false);
20
- const dragPosRef = React.useRef(-1);
21
- const measuredDropTargets = React.useRef([]);
22
- const overflowMenuShowingRef = React.useRef(false);
23
- const [showOverflow, setShowOverflow] = React.useState(false);
24
- const { clearSpacers, displaceItem, displaceLastItem, setTerminalSpacer } = useDragDisplacers.useDragDisplacers(orientation);
25
- const draggedItemRef = React.useRef(void 0);
26
- const fullItemQuery = `:is(${itemQuery}${dropTargetUtils.NOT_OVERFLOWED}${dropTargetUtils.NOT_HIDDEN},.vuuOverflowContainer-OverflowIndicator)`;
27
- const indexOf = (dropTarget) => measuredDropTargets.current.findIndex((d) => d.id === dropTarget.id);
28
- const rangeRef = React.useRef(void 0);
29
- rangeRef.current = viewportRange;
30
- const handleScrollStart = React.useCallback(
31
- (scrollDirection) => {
32
- const itemContainer = dropTargetUtils.getItemParentContainer(
33
- containerRef.current,
34
- itemQuery
35
- );
36
- const { current: draggedItem } = draggedItemRef;
37
- if (itemContainer && draggedItem) {
38
- setTerminalSpacer(
39
- itemContainer,
40
- scrollDirection === "fwd" ? "end" : "start",
41
- draggedItem.size
42
- );
43
- }
44
- },
45
- [containerRef, itemQuery, setTerminalSpacer]
46
- );
47
- const handleScrollStop = React.useCallback(
48
- (scrollDirection) => {
49
- const { current: container } = containerRef;
50
- const { current: draggedItem } = draggedItemRef;
51
- const { current: dragPosition } = dragPositionRef;
52
- if (container && draggedItem) {
53
- const dropTargets = measuredDropTargets.current = dropTargetUtils.measureDropTargets(
54
- container,
55
- orientation,
56
- fullItemQuery,
57
- rangeRef.current
58
- );
59
- const dropTargetAtBoundary = scrollDirection === "fwd" ? dropTargets.at(-1) : dropTargets.at(0);
60
- if (dropTargetAtBoundary) {
61
- const { mid, end, size, start } = dropTargetAtBoundary;
62
- if (scrollDirection === "fwd") {
63
- const draggedDropTarget = {
64
- ...draggedItem,
65
- start: Math.round(start + size),
66
- mid: Math.round(mid + size),
67
- end: Math.round(end + size)
68
- };
69
- dropTargets.push(draggedDropTarget);
70
- dragPosition.insertionPosition = dropTargetAtBoundary.index + 1;
71
- } else {
72
- const draggedDropTarget = {
73
- ...draggedItem,
74
- start: Math.round(start - size),
75
- mid: Math.round(mid - size),
76
- end: Math.round(end - size)
77
- };
78
- dropTargets.unshift(draggedDropTarget);
79
- dragPosition.insertionPosition = 0;
80
- }
81
- }
82
- }
83
- },
84
- [containerRef, fullItemQuery, orientation]
85
- );
86
- const beginDrag = React.useCallback(
87
- (dragElement) => {
88
- if (
89
- //TODO need a different check for selected
90
- dragElement.ariaSelected && Array.isArray(selected) && selected.length > 1
91
- ) {
92
- console.log("its a selected element, and we have a multi select");
93
- }
94
- const { current: container } = containerRef;
95
- const { current: dragPosition } = dragPositionRef;
96
- if (container && dragElement) {
97
- const internalDrag = container.contains(dragElement);
98
- const { SCROLL_SIZE, CLIENT_SIZE } = dropTargetUtils.dimensions(orientation);
99
- const { id: draggedItemId } = dragElement;
100
- const { [SCROLL_SIZE]: scrollSize, [CLIENT_SIZE]: clientSize } = container;
101
- isScrollable.current = scrollSize > clientSize;
102
- const dropTargets = measuredDropTargets.current = dropTargetUtils.measureDropTargets(
103
- container,
104
- orientation,
105
- fullItemQuery,
106
- viewportRange,
107
- draggedItemId
108
- );
109
- if (internalDrag) {
110
- const indexOfDraggedItem = dropTargetUtils.getIndexOfDraggedItem(dropTargets);
111
- const draggedItem = dropTargets[indexOfDraggedItem];
112
- if (draggedItem && container) {
113
- draggedItemRef.current = draggedItem;
114
- const displaceFunction = draggedItem.isLast ? displaceLastItem : displaceItem;
115
- dragPosition.insertionPosition = displaceFunction(
116
- dropTargets,
117
- draggedItem,
118
- draggedItem.size,
119
- false,
120
- "static"
121
- );
122
- }
123
- } else {
124
- const { top: dragPos, height: size } = dragElement.getBoundingClientRect();
125
- const dropTarget = dropTargetUtils.getNextDropTarget(dropTargets, dragPos, size, "fwd");
126
- const index = dropTargets.indexOf(dropTarget);
127
- const { start, end, mid } = dropTarget;
128
- const draggedItem = draggedItemRef.current = {
129
- end,
130
- mid,
131
- start,
132
- isDraggedItem: true,
133
- isExternal: true,
134
- size
135
- };
136
- const indexOfDropTarget = dropTargets.indexOf(dropTarget);
137
- dropTargets.splice(indexOfDropTarget, 0, draggedItem);
138
- for (let i = index + 1; i < dropTargets.length; i++) {
139
- const target = dropTargets[i];
140
- target.mid += size;
141
- target.end += size;
142
- target.start += size;
143
- }
144
- const displaceFunction = dropTarget.isLast ? displaceLastItem : displaceItem;
145
- displaceFunction(
146
- dropTargets,
147
- dropTarget,
148
- dropTarget.size,
149
- true,
150
- "static"
151
- );
152
- }
153
- }
154
- },
155
- [
156
- containerRef,
157
- displaceItem,
158
- displaceLastItem,
159
- fullItemQuery,
160
- orientation,
161
- selected,
162
- viewportRange
163
- ]
164
- );
165
- const [showPopup, hidePopup] = React.useMemo(() => {
166
- let popupShowing = false;
167
- const show = (dropTarget) => {
168
- if (!popupShowing) {
169
- popupShowing = true;
170
- const button = dropTarget.element.querySelector(
171
- ".vuuPopupMenu"
172
- );
173
- if (button) {
174
- vuuUtils.dispatchMouseEvent(button, "click");
175
- }
176
- }
177
- };
178
- const hide = (dropTarget) => {
179
- if (popupShowing) {
180
- popupShowing = false;
181
- const button = dropTarget.element.querySelector(
182
- ".vuuPopupMenu"
183
- );
184
- if (button) {
185
- vuuUtils.dispatchMouseEvent(button, "click");
186
- }
187
- }
188
- };
189
- return [show, hide];
190
- }, []);
191
- const drag = React.useCallback(
192
- (dragPos, mouseMoveDirection) => {
193
- const { current: draggedItem } = draggedItemRef;
194
- const { current: dragPosition } = dragPositionRef;
195
- if (draggedItem) {
196
- if (containerRef.current) {
197
- dragPosRef.current = dragPos;
198
- const { current: dropTargets } = measuredDropTargets;
199
- const nextDropTarget = dropTargetUtils.getNextDropTarget(
200
- dropTargets,
201
- dragPos,
202
- draggedItem.size,
203
- mouseMoveDirection
204
- );
205
- if (nextDropTarget && !nextDropTarget.isDraggedItem) {
206
- if (nextDropTarget.isOverflowIndicator) {
207
- setShowOverflow(overflowMenuShowingRef.current = true);
208
- showPopup(nextDropTarget);
209
- } else {
210
- const { size } = draggedItem;
211
- const targetIndex = indexOf(nextDropTarget);
212
- const displaceFunc = targetIndex === dropTargets.length - 1 ? displaceLastItem : displaceItem;
213
- dragPosition.insertionPosition = displaceFunc(
214
- dropTargets,
215
- nextDropTarget,
216
- size,
217
- true,
218
- mouseMoveDirection
219
- );
220
- const overflowIndicator = dropTargets.at(
221
- -1
222
- );
223
- hidePopup(overflowIndicator);
224
- setShowOverflow(overflowMenuShowingRef.current = false);
225
- }
226
- }
227
- dragPosition.direction = mouseMoveDirection;
228
- }
229
- }
230
- },
231
- [containerRef, displaceItem, displaceLastItem, hidePopup, showPopup]
232
- );
233
- const drop = React.useCallback(() => {
234
- clearSpacers();
235
- const { current: dropTargets } = measuredDropTargets;
236
- const { current: dragPosition } = dragPositionRef;
237
- const indexOfDraggedItem = dropTargetUtils.getIndexOfDraggedItem(dropTargets);
238
- const draggedItem = dropTargets[indexOfDraggedItem];
239
- const { insertionPosition } = dragPosition;
240
- const { index: fromIndex, isExternal } = draggedItem;
241
- if (overflowMenuShowingRef.current) {
242
- setShowOverflow(false);
243
- }
244
- dragPosition.direction = void 0;
245
- dragPosition.insertionPosition = -1;
246
- const isLastItem = indexOfDraggedItem === dropTargets.length - 1;
247
- const toIndex = overflowMenuShowingRef.current ? -1 : fromIndex < insertionPosition && !isLastItem ? insertionPosition - 1 : insertionPosition;
248
- return { fromIndex, toIndex, isExternal };
249
- }, [clearSpacers]);
250
- const releaseDrag = React.useCallback(() => {
251
- clearSpacers(true);
252
- }, [clearSpacers]);
253
- return {
254
- beginDrag,
255
- drag,
256
- drop,
257
- handleScrollStart,
258
- handleScrollStop,
259
- releaseDrag,
260
- revealOverflowedItems: showOverflow
261
- };
262
- };
263
-
264
- exports.useDragDropNaturalMovement = useDragDropNaturalMovement;
265
- //# sourceMappingURL=useDragDropNaturalMovement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDragDropNaturalMovement.js","sources":["../../../../packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from \"react\";\n\nimport {\n Direction,\n DropOptions,\n InternalDragDropProps,\n InternalDragHookResult,\n ViewportRange,\n} from \"./dragDropTypes\";\nimport { useDragDisplacers } from \"./useDragDisplacers\";\nimport { dispatchMouseEvent } from \"@vuu-ui/vuu-utils\";\nimport {\n dimensions,\n getIndexOfDraggedItem,\n getItemParentContainer,\n getNextDropTarget,\n MeasuredDropTarget,\n measureDropTargets,\n NOT_HIDDEN,\n NOT_OVERFLOWED,\n} from \"./drop-target-utils\";\n\ntype DragPosition = {\n direction?: Direction;\n insertionPosition: number;\n};\n\nexport const useDragDropNaturalMovement = ({\n containerRef,\n orientation = \"horizontal\",\n itemQuery = \"*\",\n selected,\n viewportRange,\n}: InternalDragDropProps): InternalDragHookResult => {\n const dragPositionRef = useRef<DragPosition>({\n direction: undefined,\n insertionPosition: -1,\n });\n const isScrollable = useRef(false);\n /** current position of dragged element */\n const dragPosRef = useRef<number>(-1);\n const measuredDropTargets = useRef<MeasuredDropTarget[]>([]);\n const overflowMenuShowingRef = useRef(false);\n\n const [showOverflow, setShowOverflow] = useState(false);\n\n const { clearSpacers, displaceItem, displaceLastItem, setTerminalSpacer } =\n useDragDisplacers(orientation);\n\n const draggedItemRef = useRef<MeasuredDropTarget>(undefined);\n const fullItemQuery = `:is(${itemQuery}${NOT_OVERFLOWED}${NOT_HIDDEN},.vuuOverflowContainer-OverflowIndicator)`;\n\n const indexOf = (dropTarget: MeasuredDropTarget) =>\n measuredDropTargets.current.findIndex((d) => d.id === dropTarget.id);\n\n // Shouldn't need this - but viewportRange is always stale in stopScrolling. Checked all dependencies\n // look ok. Something to do with setTimeout / scrollHandler ?\n const rangeRef = useRef<ViewportRange>(undefined);\n rangeRef.current = viewportRange;\n\n const handleScrollStart = useCallback(\n (scrollDirection: \"fwd\" | \"bwd\") => {\n const itemContainer = getItemParentContainer(\n containerRef.current,\n itemQuery,\n );\n const { current: draggedItem } = draggedItemRef;\n\n // When we start scrolling, insert a spacer at the start of end of the collection.\n // This is what we will need if user scrolls right to end and it will give the correct\n // scrollHeight. Ig user stops scrolling before start/end we will reposition the\n // spacer(s) appropriately\n if (itemContainer && draggedItem) {\n setTerminalSpacer(\n itemContainer,\n scrollDirection === \"fwd\" ? \"end\" : \"start\",\n draggedItem.size,\n );\n }\n },\n [containerRef, itemQuery, setTerminalSpacer],\n );\n\n const handleScrollStop = useCallback(\n (scrollDirection: \"fwd\" | \"bwd\") => {\n const { current: container } = containerRef;\n const { current: draggedItem } = draggedItemRef;\n const { current: dragPosition } = dragPositionRef;\n if (container && draggedItem) {\n const dropTargets = (measuredDropTargets.current = measureDropTargets(\n container,\n orientation,\n fullItemQuery,\n rangeRef.current,\n ));\n\n const dropTargetAtBoundary =\n scrollDirection === \"fwd\" ? dropTargets.at(-1) : dropTargets.at(0);\n\n if (dropTargetAtBoundary) {\n const { mid, end, size, start } = dropTargetAtBoundary;\n if (scrollDirection === \"fwd\") {\n const draggedDropTarget = {\n ...draggedItem,\n start: Math.round(start + size),\n mid: Math.round(mid + size),\n end: Math.round(end + size),\n };\n dropTargets.push(draggedDropTarget);\n dragPosition.insertionPosition = dropTargetAtBoundary.index + 1;\n } else {\n const draggedDropTarget = {\n ...draggedItem,\n start: Math.round(start - size),\n mid: Math.round(mid - size),\n end: Math.round(end - size),\n };\n dropTargets.unshift(draggedDropTarget);\n dragPosition.insertionPosition = 0;\n }\n }\n }\n },\n [containerRef, fullItemQuery, orientation],\n );\n\n const beginDrag = useCallback(\n (dragElement: HTMLElement) => {\n if (\n //TODO need a different check for selected\n dragElement.ariaSelected &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n console.log(\"its a selected element, and we have a multi select\");\n }\n const { current: container } = containerRef;\n const { current: dragPosition } = dragPositionRef;\n\n if (container && dragElement) {\n const internalDrag = container.contains(dragElement);\n const { SCROLL_SIZE, CLIENT_SIZE } = dimensions(orientation);\n const { id: draggedItemId } = dragElement;\n const { [SCROLL_SIZE]: scrollSize, [CLIENT_SIZE]: clientSize } =\n container;\n isScrollable.current = scrollSize > clientSize;\n const dropTargets = (measuredDropTargets.current = measureDropTargets(\n container,\n orientation,\n fullItemQuery,\n viewportRange,\n draggedItemId,\n ));\n\n if (internalDrag) {\n const indexOfDraggedItem = getIndexOfDraggedItem(dropTargets);\n const draggedItem = dropTargets[indexOfDraggedItem];\n if (draggedItem && container) {\n draggedItemRef.current = draggedItem;\n const displaceFunction = draggedItem.isLast\n ? displaceLastItem\n : displaceItem;\n\n // This should return the insertion position of dragged item\n // which depends on both dro[Target and direction]\n dragPosition.insertionPosition = displaceFunction(\n dropTargets,\n draggedItem,\n draggedItem.size,\n false,\n \"static\",\n );\n }\n } else {\n // prettier-ignore\n const { top: dragPos, height: size } = dragElement.getBoundingClientRect();\n // prettier-ignore\n const dropTarget = getNextDropTarget( dropTargets, dragPos, size, \"fwd\");\n const index = dropTargets.indexOf(dropTarget);\n const { start, end, mid } = dropTarget;\n\n // need to compute the correct position of this\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const draggedItem = (draggedItemRef.current = {\n end,\n mid,\n start,\n isDraggedItem: true,\n isExternal: true,\n size,\n });\n\n const indexOfDropTarget = dropTargets.indexOf(dropTarget);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n dropTargets.splice(indexOfDropTarget, 0, draggedItem);\n for (let i = index + 1; i < dropTargets.length; i++) {\n const target = dropTargets[i];\n target.mid += size;\n target.end += size;\n target.start += size;\n }\n\n const displaceFunction = dropTarget.isLast\n ? displaceLastItem\n : displaceItem;\n\n displaceFunction(\n dropTargets,\n dropTarget,\n dropTarget.size,\n true,\n \"static\",\n );\n }\n }\n },\n [\n containerRef,\n displaceItem,\n displaceLastItem,\n fullItemQuery,\n orientation,\n selected,\n viewportRange,\n ],\n );\n\n const [showPopup, hidePopup] = useMemo(() => {\n let popupShowing = false;\n const show = (dropTarget: MeasuredDropTarget) => {\n if (!popupShowing) {\n popupShowing = true;\n const button = dropTarget.element.querySelector(\n \".vuuPopupMenu\",\n ) as HTMLElement;\n if (button) {\n dispatchMouseEvent(button, \"click\");\n }\n }\n };\n\n const hide = (dropTarget: MeasuredDropTarget) => {\n if (popupShowing) {\n popupShowing = false;\n const button = dropTarget.element.querySelector(\n \".vuuPopupMenu\",\n ) as HTMLElement;\n if (button) {\n dispatchMouseEvent(button, \"click\");\n }\n }\n };\n\n return [show, hide];\n }, []);\n\n const drag = useCallback(\n (dragPos: number, mouseMoveDirection: \"fwd\" | \"bwd\") => {\n const { current: draggedItem } = draggedItemRef;\n const { current: dragPosition } = dragPositionRef;\n\n if (draggedItem) {\n if (containerRef.current) {\n dragPosRef.current = dragPos;\n\n const { current: dropTargets } = measuredDropTargets;\n const nextDropTarget = getNextDropTarget(\n dropTargets,\n dragPos,\n draggedItem.size,\n mouseMoveDirection,\n );\n\n if (nextDropTarget && !nextDropTarget.isDraggedItem) {\n if (nextDropTarget.isOverflowIndicator) {\n // Does this belong in here or can we abstract it out\n setShowOverflow((overflowMenuShowingRef.current = true));\n showPopup(nextDropTarget);\n } else {\n const { size } = draggedItem;\n const targetIndex = indexOf(nextDropTarget);\n\n const displaceFunc =\n targetIndex === dropTargets.length - 1\n ? displaceLastItem\n : displaceItem;\n\n dragPosition.insertionPosition = displaceFunc(\n dropTargets,\n nextDropTarget,\n size,\n true,\n mouseMoveDirection,\n );\n\n const overflowIndicator = dropTargets.at(\n -1,\n ) as MeasuredDropTarget;\n hidePopup(overflowIndicator);\n setShowOverflow((overflowMenuShowingRef.current = false));\n }\n }\n dragPosition.direction = mouseMoveDirection;\n }\n }\n },\n [containerRef, displaceItem, displaceLastItem, hidePopup, showPopup],\n );\n\n const drop = useCallback((): DropOptions => {\n clearSpacers();\n const { current: dropTargets } = measuredDropTargets;\n const { current: dragPosition } = dragPositionRef;\n const indexOfDraggedItem = getIndexOfDraggedItem(dropTargets);\n const draggedItem = dropTargets[indexOfDraggedItem];\n const { insertionPosition } = dragPosition;\n const { index: fromIndex, isExternal } = draggedItem;\n\n if (overflowMenuShowingRef.current) {\n setShowOverflow(false);\n }\n\n dragPosition.direction = undefined;\n dragPosition.insertionPosition = -1;\n\n const isLastItem = indexOfDraggedItem === dropTargets.length - 1;\n const toIndex = overflowMenuShowingRef.current\n ? -1\n : fromIndex < insertionPosition && !isLastItem\n ? insertionPosition - 1\n : insertionPosition;\n\n return { fromIndex, toIndex, isExternal };\n }, [clearSpacers]);\n\n const releaseDrag = useCallback(() => {\n clearSpacers(true);\n }, [clearSpacers]);\n\n return {\n beginDrag,\n drag,\n drop,\n handleScrollStart,\n handleScrollStop,\n releaseDrag,\n revealOverflowedItems: showOverflow,\n };\n};\n"],"names":["useRef","useState","useDragDisplacers","NOT_OVERFLOWED","NOT_HIDDEN","useCallback","getItemParentContainer","measureDropTargets","dimensions","getIndexOfDraggedItem","getNextDropTarget","useMemo","dispatchMouseEvent"],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var Draggable = require('./Draggable.js');
5
-
6
- const useDropIndicator = () => {
7
- const spacer = React.useMemo(() => Draggable.createDropIndicatorPosition(), []);
8
- const clearSpacer = React.useCallback(() => spacer.remove(), [spacer]);
9
- const positionDropIndicator = React.useCallback(
10
- (dropTarget, dropZone2 = "end") => {
11
- if (dropZone2 === "end") {
12
- dropTarget.element.after(spacer);
13
- } else {
14
- dropTarget.element.before(spacer);
15
- }
16
- return spacer;
17
- },
18
- [spacer]
19
- );
20
- return {
21
- positionDropIndicator,
22
- clearSpacer
23
- };
24
- };
25
-
26
- exports.useDropIndicator = useDropIndicator;
27
- //# sourceMappingURL=useDropIndicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDropIndicator.js","sources":["../../../../packages/vuu-ui-controls/src/drag-drop/useDropIndicator.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { dropZone, MeasuredDropTarget } from \"./drop-target-utils\";\nimport { createDropIndicatorPosition } from \"./Draggable\";\n\nexport const SPACER_SIZE = 0;\n\nexport type DropIndicatorHookResult = {\n positionDropIndicator: (\n dropTarget: MeasuredDropTarget,\n dropZone: dropZone\n ) => HTMLElement;\n clearSpacer: () => void;\n};\n\nexport type DropIndicatorHook = () => DropIndicatorHookResult;\n\nexport const useDropIndicator: DropIndicatorHook = () => {\n const spacer = useMemo(() => createDropIndicatorPosition(), []);\n const clearSpacer = useCallback(() => spacer.remove(), [spacer]);\n const positionDropIndicator = useCallback(\n (dropTarget: MeasuredDropTarget, dropZone: \"start\" | \"end\" = \"end\") => {\n if (dropZone === \"end\") {\n dropTarget.element.after(spacer);\n } else {\n dropTarget.element.before(spacer);\n }\n return spacer;\n },\n [spacer]\n );\n\n return {\n positionDropIndicator,\n clearSpacer,\n };\n};\n"],"names":["useMemo","createDropIndicatorPosition","useCallback","dropZone"],"mappings":";;;;;AAgBO,MAAM,mBAAsC,MAAM;AACvD,EAAA,MAAM,SAASA,aAAQ,CAAA,MAAMC,qCAA4B,EAAA,EAAG,EAAE,CAAA;AAC9D,EAAM,MAAA,WAAA,GAAcC,kBAAY,MAAM,MAAA,CAAO,QAAU,EAAA,CAAC,MAAM,CAAC,CAAA;AAC/D,EAAA,MAAM,qBAAwB,GAAAA,iBAAA;AAAA,IAC5B,CAAC,UAAgCC,EAAAA,SAAAA,GAA4B,KAAU,KAAA;AACrE,MAAA,IAAIA,cAAa,KAAO,EAAA;AACtB,QAAW,UAAA,CAAA,OAAA,CAAQ,MAAM,MAAM,CAAA;AAAA,OAC1B,MAAA;AACL,QAAW,UAAA,CAAA,OAAA,CAAQ,OAAO,MAAM,CAAA;AAAA;AAElC,MAAO,OAAA,MAAA;AAAA,KACT;AAAA,IACA,CAAC,MAAM;AAAA,GACT;AAEA,EAAO,OAAA;AAAA,IACL,qBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}