@vuu-ui/vuu-ui-controls 2.1.18 → 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,77 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var cx = require('clsx');
8
- var React = require('react');
9
- var tabbable = require('tabbable');
10
- var TabNextPanel$1 = require('./TabNextPanel.css.js');
11
- var TabsNextContext = require('./TabsNextContext.js');
12
-
13
- const withBaseName = core.makePrefixer("saltTabNextPanel");
14
- const TabNextPanel = React.forwardRef(
15
- function TabNextPanel2(props, ref) {
16
- const { className, children, id: idProp, value, ...rest } = props;
17
- const targetWindow = window.useWindow();
18
- styles.useComponentCssInjection({
19
- testId: "salt-tab-next-panel",
20
- css: TabNextPanel$1,
21
- window: targetWindow
22
- });
23
- const id = core.useId(idProp);
24
- const { registerPanel, getTabId, selected } = TabsNextContext.useTabsNext();
25
- const panelRef = React.useRef(null);
26
- const handleRef = core.useForkRef(panelRef, ref);
27
- core.useIsomorphicLayoutEffect(() => {
28
- if (value && id) {
29
- return registerPanel(id, value);
30
- }
31
- }, [value, id, registerPanel]);
32
- const [hasFocusableChildren, setHasFocusableChildren] = React.useState(false);
33
- React.useEffect(() => {
34
- if (!panelRef.current) return;
35
- const detectFocusableChildren = () => {
36
- requestAnimationFrame(() => {
37
- if (!panelRef.current) return;
38
- const elements = tabbable.tabbable(panelRef.current);
39
- setHasFocusableChildren(elements.length > 0);
40
- });
41
- };
42
- const observer = new MutationObserver(() => {
43
- detectFocusableChildren();
44
- });
45
- requestAnimationFrame(() => {
46
- detectFocusableChildren();
47
- });
48
- observer.observe(panelRef.current, {
49
- childList: true,
50
- subtree: true,
51
- attributes: true
52
- });
53
- return () => {
54
- observer.disconnect();
55
- };
56
- }, []);
57
- const hidden = selected !== value;
58
- const tabId = getTabId(value);
59
- return /* @__PURE__ */ jsxRuntime.jsx(
60
- "div",
61
- {
62
- id,
63
- ref: handleRef,
64
- role: "tabpanel",
65
- "aria-labelledby": tabId,
66
- className: cx.clsx(withBaseName(), className),
67
- hidden: hidden || void 0,
68
- tabIndex: hidden || hasFocusableChildren ? void 0 : 0,
69
- ...rest,
70
- children
71
- }
72
- );
73
- }
74
- );
75
-
76
- exports.TabNextPanel = TabNextPanel;
77
- //# sourceMappingURL=TabNextPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextPanel.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabNextPanel.tsx"],"sourcesContent":["import {\n makePrefixer,\n useForkRef,\n useId,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { tabbable } from \"tabbable\";\nimport tabPanelCss from \"./TabNextPanel.css\";\nimport { useTabsNext } from \"./TabsNextContext\";\n\nexport interface TabNextPanelProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The value of the panel, this should map to the corresponding tab.\n */\n value: string;\n}\n\nconst withBaseName = makePrefixer(\"saltTabNextPanel\");\n\nexport const TabNextPanel = forwardRef<HTMLDivElement, TabNextPanelProps>(\n function TabNextPanel(props, ref) {\n const { className, children, id: idProp, value, ...rest } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tab-next-panel\",\n css: tabPanelCss,\n window: targetWindow,\n });\n const id = useId(idProp);\n const { registerPanel, getTabId, selected } = useTabsNext();\n\n const panelRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(panelRef, ref);\n\n useIsomorphicLayoutEffect(() => {\n if (value && id) {\n return registerPanel(id, value);\n }\n }, [value, id, registerPanel]);\n\n const [hasFocusableChildren, setHasFocusableChildren] = useState(false);\n useEffect(() => {\n if (!panelRef.current) return;\n\n const detectFocusableChildren = () => {\n requestAnimationFrame(() => {\n if (!panelRef.current) return;\n const elements = tabbable(panelRef.current);\n setHasFocusableChildren(elements.length > 0);\n });\n };\n\n const observer = new MutationObserver(() => {\n detectFocusableChildren();\n });\n\n requestAnimationFrame(() => {\n detectFocusableChildren();\n });\n\n observer.observe(panelRef.current, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n const hidden = selected !== value;\n const tabId = getTabId(value);\n\n return (\n <div\n id={id}\n ref={handleRef}\n role=\"tabpanel\"\n aria-labelledby={tabId}\n className={clsx(withBaseName(), className)}\n hidden={hidden || undefined}\n tabIndex={hidden || hasFocusableChildren ? undefined : 0}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","TabNextPanel","useWindow","useComponentCssInjection","tabPanelCss","useId","useTabsNext","useRef","useForkRef","useIsomorphicLayoutEffect","useState","useEffect","tabbable","jsx","clsx"],"mappings":";;;;;;;;;;;;AA2BA,MAAM,YAAA,GAAeA,kBAAa,kBAAkB,CAAA;AAE7C,MAAM,YAAe,GAAAC,gBAAA;AAAA,EAC1B,SAASC,aAAa,CAAA,KAAA,EAAO,GAAK,EAAA;AAChC,IAAM,MAAA,EAAE,WAAW,QAAU,EAAA,EAAA,EAAI,QAAQ,KAAO,EAAA,GAAG,MAAS,GAAA,KAAA;AAC5D,IAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,cAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AACD,IAAM,MAAA,EAAA,GAAKC,WAAM,MAAM,CAAA;AACvB,IAAA,MAAM,EAAE,aAAA,EAAe,QAAU,EAAA,QAAA,KAAaC,2BAAY,EAAA;AAE1D,IAAM,MAAA,QAAA,GAAWC,aAAuB,IAAI,CAAA;AAC5C,IAAM,MAAA,SAAA,GAAYC,eAAW,CAAA,QAAA,EAAU,GAAG,CAAA;AAE1C,IAAAC,8BAAA,CAA0B,MAAM;AAC9B,MAAA,IAAI,SAAS,EAAI,EAAA;AACf,QAAO,OAAA,aAAA,CAAc,IAAI,KAAK,CAAA;AAAA;AAChC,KACC,EAAA,CAAC,KAAO,EAAA,EAAA,EAAI,aAAa,CAAC,CAAA;AAE7B,IAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAIC,eAAS,KAAK,CAAA;AACtE,IAAAC,eAAA,CAAU,MAAM;AACd,MAAI,IAAA,CAAC,SAAS,OAAS,EAAA;AAEvB,MAAA,MAAM,0BAA0B,MAAM;AACpC,QAAA,qBAAA,CAAsB,MAAM;AAC1B,UAAI,IAAA,CAAC,SAAS,OAAS,EAAA;AACvB,UAAM,MAAA,QAAA,GAAWC,iBAAS,CAAA,QAAA,CAAS,OAAO,CAAA;AAC1C,UAAwB,uBAAA,CAAA,QAAA,CAAS,SAAS,CAAC,CAAA;AAAA,SAC5C,CAAA;AAAA,OACH;AAEA,MAAM,MAAA,QAAA,GAAW,IAAI,gBAAA,CAAiB,MAAM;AAC1C,QAAwB,uBAAA,EAAA;AAAA,OACzB,CAAA;AAED,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAwB,uBAAA,EAAA;AAAA,OACzB,CAAA;AAED,MAAS,QAAA,CAAA,OAAA,CAAQ,SAAS,OAAS,EAAA;AAAA,QACjC,SAAW,EAAA,IAAA;AAAA,QACX,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA;AAAA,OACb,CAAA;AAED,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,UAAW,EAAA;AAAA,OACtB;AAAA,KACF,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,SAAS,QAAa,KAAA,KAAA;AAC5B,IAAM,MAAA,KAAA,GAAQ,SAAS,KAAK,CAAA;AAE5B,IACE,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,GAAK,EAAA,SAAA;AAAA,QACL,IAAK,EAAA,UAAA;AAAA,QACL,iBAAiB,EAAA,KAAA;AAAA,QACjB,SAAW,EAAAC,OAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,QAAQ,MAAU,IAAA,KAAA,CAAA;AAAA,QAClB,QAAA,EAAU,MAAU,IAAA,oBAAA,GAAuB,KAAY,CAAA,GAAA,CAAA;AAAA,QACtD,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var tabTriggerCss = ".saltTabNextTrigger {\n all: unset;\n display: flex;\n gap: var(--salt-spacing-100);\n align-items: center;\n justify-content: center;\n flex: 1;\n}\n\n/* The action should be triggered by clicking anywhere on the tab. */\n.saltTabNextTrigger::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n}\n";
4
-
5
- module.exports = tabTriggerCss;
6
- //# sourceMappingURL=TabNextTrigger.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextTrigger.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,74 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var cx = require('clsx');
8
- var React = require('react');
9
- var TabNextContext = require('./TabNextContext.js');
10
- var TabNextTrigger$1 = require('./TabNextTrigger.css.js');
11
- var TabsNextContext = require('./TabsNextContext.js');
12
-
13
- const withBaseName = core.makePrefixer("saltTabNextTrigger");
14
- function getAriaDescription(count) {
15
- if (count < 1) {
16
- return void 0;
17
- }
18
- if (count === 1) {
19
- return "1 action available";
20
- }
21
- return `${count} actions available`;
22
- }
23
- const TabNextTrigger = React.forwardRef(function TabNextTrigger2(props, ref) {
24
- const { children, id: idProp, onClick, onKeyDown, ...rest } = props;
25
- const targetWindow = window.useWindow();
26
- styles.useComponentCssInjection({
27
- testId: "salt-tab-next-trigger",
28
- css: TabNextTrigger$1,
29
- window: targetWindow
30
- });
31
- const { setSelected, registerTab, getPanelId } = TabsNextContext.useTabsNext();
32
- const { selected, value, focused, disabled, tabId, actions } = TabNextContext.useTabNext();
33
- const tabRef = React.useRef(null);
34
- const id = tabId;
35
- core.useIsomorphicLayoutEffect(() => {
36
- if (value && id && tabRef.current) {
37
- return registerTab({ id, value, element: tabRef.current });
38
- }
39
- }, [value, id, registerTab]);
40
- const handleClick = (event) => {
41
- setSelected(event, value);
42
- };
43
- const handleKeyDown = (event) => {
44
- onKeyDown?.(event);
45
- if (event.key === "Enter" || event.key === " ") {
46
- setSelected(event, value);
47
- }
48
- };
49
- const handleRef = core.useForkRef(tabRef, ref);
50
- const panelId = getPanelId(value);
51
- return /* @__PURE__ */ jsxRuntime.jsx(
52
- "button",
53
- {
54
- "aria-selected": selected,
55
- "aria-disabled": disabled,
56
- "aria-controls": panelId,
57
- "aria-actions": cx.clsx(actions) || void 0,
58
- "aria-description": getAriaDescription(actions.length),
59
- tabIndex: focused || selected ? void 0 : -1,
60
- role: "tab",
61
- type: "button",
62
- onClick: !disabled ? handleClick : void 0,
63
- onKeyDown: !disabled ? handleKeyDown : void 0,
64
- className: withBaseName(),
65
- id,
66
- ref: handleRef,
67
- ...rest,
68
- children
69
- }
70
- );
71
- });
72
-
73
- exports.TabNextTrigger = TabNextTrigger;
74
- //# sourceMappingURL=TabNextTrigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextTrigger.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.tsx"],"sourcesContent":["import {\n makePrefixer,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useRef,\n} from \"react\";\nimport { useTabNext } from \"./TabNextContext\";\nimport tabTriggerCss from \"./TabNextTrigger.css\";\nimport { useTabsNext } from \"./TabsNextContext\";\n\nexport interface TabNextTriggerProps\n extends ComponentPropsWithoutRef<\"button\"> {\n debugLabel?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltTabNextTrigger\");\n\nfunction getAriaDescription(count: number) {\n if (count < 1) {\n return undefined;\n }\n\n if (count === 1) {\n return \"1 action available\";\n }\n\n return `${count} actions available`;\n}\n\nexport const TabNextTrigger = forwardRef<\n HTMLButtonElement,\n TabNextTriggerProps\n>(function TabNextTrigger(props, ref) {\n const { children, id: idProp, onClick, onKeyDown, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tab-next-trigger\",\n css: tabTriggerCss,\n window: targetWindow,\n });\n\n const { setSelected, registerTab, getPanelId } = useTabsNext();\n const { selected, value, focused, disabled, tabId, actions } = useTabNext();\n\n const tabRef = useRef<HTMLButtonElement>(null);\n\n const id = tabId;\n\n useIsomorphicLayoutEffect(() => {\n if (value && id && tabRef.current) {\n return registerTab({ id, value, element: tabRef.current });\n }\n }, [value, id, registerTab]);\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n setSelected(event, value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(event);\n\n if (event.key === \"Enter\" || event.key === \" \") {\n setSelected(event, value);\n }\n };\n\n const handleRef = useForkRef<HTMLButtonElement>(tabRef, ref);\n const panelId = getPanelId(value);\n\n return (\n <button\n aria-selected={selected}\n aria-disabled={disabled}\n aria-controls={panelId}\n // eslint-disable-next-line react/no-unknown-property\n aria-actions={clsx(actions) || undefined}\n aria-description={getAriaDescription(actions.length)}\n tabIndex={focused || selected ? undefined : -1}\n role=\"tab\"\n type=\"button\"\n onClick={!disabled ? handleClick : undefined}\n onKeyDown={!disabled ? handleKeyDown : undefined}\n className={withBaseName()}\n id={id}\n ref={handleRef}\n {...rest}\n >\n {children}\n </button>\n );\n});\n"],"names":["makePrefixer","forwardRef","TabNextTrigger","useWindow","useComponentCssInjection","tabTriggerCss","useTabsNext","useTabNext","useRef","useIsomorphicLayoutEffect","useForkRef","jsx","clsx"],"mappings":";;;;;;;;;;;;AAwBA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AAEtD,SAAS,mBAAmB,KAAe,EAAA;AACzC,EAAA,IAAI,QAAQ,CAAG,EAAA;AACb,IAAO,OAAA,KAAA,CAAA;AAAA;AAGT,EAAA,IAAI,UAAU,CAAG,EAAA;AACf,IAAO,OAAA,oBAAA;AAAA;AAGT,EAAA,OAAO,GAAG,KAAK,CAAA,kBAAA,CAAA;AACjB;AAEO,MAAM,cAAiB,GAAAC,gBAAA,CAG5B,SAASC,eAAAA,CAAe,OAAO,GAAK,EAAA;AACpC,EAAM,MAAA,EAAE,UAAU,EAAI,EAAA,MAAA,EAAQ,SAAS,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AAE9D,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAC,gBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,WAAA,EAAa,WAAa,EAAA,UAAA,KAAeC,2BAAY,EAAA;AAC7D,EAAM,MAAA,EAAE,UAAU,KAAO,EAAA,OAAA,EAAS,UAAU,KAAO,EAAA,OAAA,KAAYC,yBAAW,EAAA;AAE1E,EAAM,MAAA,MAAA,GAASC,aAA0B,IAAI,CAAA;AAE7C,EAAA,MAAM,EAAK,GAAA,KAAA;AAEX,EAAAC,8BAAA,CAA0B,MAAM;AAC9B,IAAI,IAAA,KAAA,IAAS,EAAM,IAAA,MAAA,CAAO,OAAS,EAAA;AACjC,MAAA,OAAO,YAAY,EAAE,EAAA,EAAI,OAAO,OAAS,EAAA,MAAA,CAAO,SAAS,CAAA;AAAA;AAC3D,GACC,EAAA,CAAC,KAAO,EAAA,EAAA,EAAI,WAAW,CAAC,CAAA;AAE3B,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyC,KAAA;AAC5D,IAAA,WAAA,CAAY,OAAO,KAAK,CAAA;AAAA,GAC1B;AAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,KAA4C,KAAA;AACjE,IAAA,SAAA,GAAY,KAAK,CAAA;AAEjB,IAAA,IAAI,KAAM,CAAA,GAAA,KAAQ,OAAW,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AAC9C,MAAA,WAAA,CAAY,OAAO,KAAK,CAAA;AAAA;AAC1B,GACF;AAEA,EAAM,MAAA,SAAA,GAAYC,eAA8B,CAAA,MAAA,EAAQ,GAAG,CAAA;AAC3D,EAAM,MAAA,OAAA,GAAU,WAAW,KAAK,CAAA;AAEhC,EACE,uBAAAC,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,eAAe,EAAA,QAAA;AAAA,MACf,eAAe,EAAA,QAAA;AAAA,MACf,eAAe,EAAA,OAAA;AAAA,MAEf,cAAA,EAAcC,OAAK,CAAA,OAAO,CAAK,IAAA,KAAA,CAAA;AAAA,MAC/B,kBAAA,EAAkB,kBAAmB,CAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,MACnD,QAAA,EAAU,OAAW,IAAA,QAAA,GAAW,KAAY,CAAA,GAAA,CAAA,CAAA;AAAA,MAC5C,IAAK,EAAA,KAAA;AAAA,MACL,IAAK,EAAA,QAAA;AAAA,MACL,OAAA,EAAS,CAAC,QAAA,GAAW,WAAc,GAAA,KAAA,CAAA;AAAA,MACnC,SAAA,EAAW,CAAC,QAAA,GAAW,aAAgB,GAAA,KAAA,CAAA;AAAA,MACvC,WAAW,YAAa,EAAA;AAAA,MACxB,EAAA;AAAA,MACA,GAAK,EAAA,SAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var tabOverflowListCss = ".saltTabOverflow {\n position: relative;\n}\n\n.saltTabOverflow-list {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n position: absolute;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n border-radius: var(--salt-palette-corner, 0);\n}\n\n.saltTabOverflow-listContainer {\n display: flex;\n flex-direction: column;\n gap: var(--salt-size-border);\n max-height: inherit;\n min-height: inherit;\n}\n\n.saltTabOverflow-list[data-hidden=\"true\"] {\n opacity: 0;\n pointer-events: none;\n}\n\n.saltTabOverflow-list .saltTabNext {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding-left: var(--salt-spacing-100);\n padding-right: var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-spacing-100);\n position: relative;\n align-items: center;\n cursor: var(--salt-selectable-cursor-hover);\n box-sizing: border-box;\n flex-shrink: 0;\n justify-content: flex-start;\n}\n\n.saltTabOverflow-list .saltTabNext .saltTabNextTrigger {\n justify-content: start;\n}\n\n.saltTabOverflow-list .saltTabNext::after {\n display: none;\n}\n\n.saltTabOverflow-list .saltTabNext[aria-disabled=\"true\"] {\n color: var(--salt-content-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n.saltTabOverflow-list .saltTabNext-focusVisible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-border) * -2);\n}\n\n.saltTabOverflow-list .saltTabNext:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltTabOverflow-list .saltTabNext:active {\n background: var(--salt-selectable-background-selected);\n box-shadow: 0 calc(var(--salt-size-border) * -1) 0 0 var(--salt-selectable-borderColor-selected), 0 var(--salt-size-border) 0 0 var(--salt-selectable-borderColor-selected);\n}\n";
4
-
5
- module.exports = tabOverflowListCss;
6
- //# sourceMappingURL=TabOverflowList.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabOverflowList.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,130 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('@floating-ui/react');
5
- var core = require('@salt-ds/core');
6
- var styles = require('@salt-ds/styles');
7
- var window = require('@salt-ds/window');
8
- var React = require('react');
9
- var TabOverflowList$1 = require('./TabOverflowList.css.js');
10
- var useFocusOutside = require('./hooks/useFocusOutside.js');
11
-
12
- const withBaseName = core.makePrefixer("saltTabOverflow");
13
- const TabOverflowList = React.forwardRef(
14
- function TabOverflowList2(props, ref) {
15
- const {
16
- buttonRef,
17
- tabstripRef,
18
- children,
19
- isMeasuring,
20
- open,
21
- setOpen,
22
- ...rest
23
- } = props;
24
- const targetWindow = window.useWindow();
25
- styles.useComponentCssInjection({
26
- testId: "salt-tabs-next-overflow-list",
27
- css: TabOverflowList$1,
28
- window: targetWindow
29
- });
30
- const { OverflowIcon } = core.useIcon();
31
- const { refs, x, y, strategy, context } = core.useFloatingUI({
32
- open,
33
- onOpenChange(open2, _, reason) {
34
- if (reason === "escape-key") {
35
- queueMicrotask(() => {
36
- const allTabs = tabstripRef.current?.querySelectorAll(
37
- '[role="tab"]:not([aria-hidden])'
38
- ) ?? [];
39
- const numberOfTabsInOverflow = listRef.current?.querySelectorAll('[role="tab"]').length ?? 0;
40
- allTabs[allTabs.length - numberOfTabsInOverflow - 1]?.focus({
41
- preventScroll: true
42
- });
43
- });
44
- }
45
- setOpen(open2);
46
- },
47
- placement: "bottom-start",
48
- middleware: [
49
- react.offset(1),
50
- react.size({
51
- apply({ elements, availableHeight }) {
52
- Object.assign(elements.floating.style, {
53
- maxHeight: `max(calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5), calc(${availableHeight}px - var(--salt-spacing-100)))`
54
- });
55
- }
56
- })
57
- ]
58
- });
59
- const { getFloatingProps } = react.useInteractions([react.useDismiss(context)]);
60
- const rootRef = React.useRef(null);
61
- const handleRootRef = core.useForkRef(rootRef, ref);
62
- const listRef = React.useRef(null);
63
- const handleListRef = core.useForkRef(listRef, refs.setFloating);
64
- const handleFocusOutside = React.useCallback(() => {
65
- setOpen(false);
66
- }, [setOpen]);
67
- useFocusOutside.useFocusOutside(
68
- rootRef,
69
- handleFocusOutside,
70
- open,
71
- "[data-floating-ui-portal]"
72
- );
73
- const handleClick = () => {
74
- if (!open) {
75
- listRef.current?.querySelectorAll('[role="tab"]')[0]?.focus({ preventScroll: true });
76
- } else {
77
- setOpen(false);
78
- }
79
- };
80
- const handleFocus = () => {
81
- setOpen(true);
82
- };
83
- const handleButtonRef = core.useForkRef(
84
- buttonRef,
85
- refs.setReference
86
- );
87
- const listId = core.useId();
88
- const childCount = React.Children.count(children);
89
- if (childCount === 0 && !isMeasuring) return null;
90
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: withBaseName(), ref: handleRootRef, children: [
91
- /* @__PURE__ */ jsxRuntime.jsx(
92
- core.Button,
93
- {
94
- "data-overflowbutton": true,
95
- tabIndex: -1,
96
- appearance: "transparent",
97
- sentiment: "neutral",
98
- onClick: handleClick,
99
- ref: handleButtonRef,
100
- "aria-label": `Overflow menu. ${childCount} tabs hidden`,
101
- "aria-expanded": open,
102
- "aria-controls": listId,
103
- "aria-hidden": "true",
104
- role: "tab",
105
- "aria-haspopup": true,
106
- ...rest,
107
- children: /* @__PURE__ */ jsxRuntime.jsx(OverflowIcon, { "aria-hidden": true })
108
- }
109
- ),
110
- /* @__PURE__ */ jsxRuntime.jsx(react.FloatingTree, { children: /* @__PURE__ */ jsxRuntime.jsx(
111
- "div",
112
- {
113
- ref: handleListRef,
114
- ...getFloatingProps({
115
- onFocus: handleFocus,
116
- role: "presentation"
117
- }),
118
- className: withBaseName("list"),
119
- "data-hidden": !open,
120
- style: open ? { left: x ?? 0, top: y ?? 0, position: strategy } : void 0,
121
- id: listId,
122
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: withBaseName("listContainer"), children })
123
- }
124
- ) })
125
- ] });
126
- }
127
- );
128
-
129
- exports.TabOverflowList = TabOverflowList;
130
- //# sourceMappingURL=TabOverflowList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabOverflowList.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabOverflowList.tsx"],"sourcesContent":["import {\n FloatingTree,\n offset,\n size,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport {\n Button,\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useIcon,\n useId,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n Children,\n type ComponentPropsWithoutRef,\n type Dispatch,\n type ReactNode,\n type Ref,\n type RefObject,\n type SetStateAction,\n forwardRef,\n useCallback,\n useRef,\n} from \"react\";\nimport tabOverflowListCss from \"./TabOverflowList.css\";\nimport { useFocusOutside } from \"./hooks/useFocusOutside\";\n\ninterface TabOverflowListProps extends ComponentPropsWithoutRef<\"button\"> {\n buttonRef?: Ref<HTMLButtonElement | null>;\n tabstripRef: RefObject<HTMLDivElement | null>;\n children?: ReactNode;\n isMeasuring?: boolean;\n open: boolean;\n setOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nconst withBaseName = makePrefixer(\"saltTabOverflow\");\n\nexport const TabOverflowList = forwardRef<HTMLDivElement, TabOverflowListProps>(\n function TabOverflowList(props, ref) {\n const {\n buttonRef,\n tabstripRef,\n children,\n isMeasuring,\n open,\n setOpen,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tabs-next-overflow-list\",\n css: tabOverflowListCss,\n window: targetWindow,\n });\n\n const { OverflowIcon } = useIcon();\n\n const { refs, x, y, strategy, context } = useFloatingUI({\n open: open,\n onOpenChange(open, _, reason) {\n if (reason === \"escape-key\") {\n queueMicrotask(() => {\n const allTabs =\n tabstripRef.current?.querySelectorAll<HTMLElement>(\n '[role=\"tab\"]:not([aria-hidden])',\n ) ?? [];\n const numberOfTabsInOverflow =\n listRef.current?.querySelectorAll<HTMLElement>('[role=\"tab\"]')\n .length ?? 0;\n\n allTabs[allTabs.length - numberOfTabsInOverflow - 1]?.focus({\n preventScroll: true,\n });\n });\n }\n\n setOpen(open);\n },\n placement: \"bottom-start\",\n middleware: [\n offset(1),\n size({\n apply({ elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n maxHeight: `max(calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5), calc(${availableHeight}px - var(--salt-spacing-100)))`,\n });\n },\n }),\n ],\n });\n\n const { getFloatingProps } = useInteractions([useDismiss(context)]);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const handleRootRef = useForkRef(rootRef, ref);\n const listRef = useRef<HTMLDivElement>(null);\n const handleListRef = useForkRef<HTMLDivElement>(listRef, refs.setFloating);\n\n const handleFocusOutside = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useFocusOutside(\n rootRef,\n handleFocusOutside,\n open,\n \"[data-floating-ui-portal]\",\n );\n\n const handleClick = () => {\n if (!open) {\n listRef.current\n ?.querySelectorAll<HTMLElement>('[role=\"tab\"]')[0]\n ?.focus({ preventScroll: true });\n } else {\n setOpen(false);\n }\n };\n\n const handleFocus = () => {\n setOpen(true);\n };\n\n const handleButtonRef = useForkRef<HTMLButtonElement>(\n buttonRef,\n refs.setReference,\n );\n\n const listId = useId();\n\n const childCount = Children.count(children);\n if (childCount === 0 && !isMeasuring) return null;\n\n return (\n <div className={withBaseName()} ref={handleRootRef}>\n <Button\n data-overflowbutton\n tabIndex={-1}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleClick}\n ref={handleButtonRef}\n aria-label={`Overflow menu. ${childCount} tabs hidden`}\n aria-expanded={open}\n aria-controls={listId}\n aria-hidden=\"true\"\n role=\"tab\"\n aria-haspopup\n {...rest}\n >\n <OverflowIcon aria-hidden />\n </Button>\n <FloatingTree>\n <div\n ref={handleListRef}\n {...getFloatingProps({\n onFocus: handleFocus,\n role: \"presentation\",\n })}\n className={withBaseName(\"list\")}\n data-hidden={!open}\n style={\n open\n ? { left: x ?? 0, top: y ?? 0, position: strategy }\n : undefined\n }\n id={listId}\n >\n <div className={withBaseName(\"listContainer\")}>{children}</div>\n </div>\n </FloatingTree>\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","TabOverflowList","useWindow","useComponentCssInjection","tabOverflowListCss","useIcon","useFloatingUI","open","offset","size","useInteractions","useDismiss","useRef","useForkRef","useCallback","useFocusOutside","useId","Children","jsx","Button","FloatingTree"],"mappings":"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"}
@@ -1,174 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var core = require('@salt-ds/core');
6
- var cx = require('clsx');
7
- var TabsNextContext = require('./TabsNextContext.js');
8
- var useCollection = require('./hooks/useCollection.js');
9
-
10
- const withBaseName = core.makePrefixer("saltTabsNext");
11
- const TabsNext = React.forwardRef(
12
- function TabsNext2(props, ref) {
13
- const { className, children, value, defaultValue, onChange, ...rest } = props;
14
- const [valueToTabIdMap, setValueToIdMap] = React.useState({
15
- map: /* @__PURE__ */ new Map()
16
- });
17
- const [valueToPanelIdMap, setValueToPanelIdMap] = React.useState({
18
- map: /* @__PURE__ */ new Map()
19
- });
20
- const {
21
- registerItem,
22
- item,
23
- getNext,
24
- getPrevious,
25
- getFirst,
26
- getLast,
27
- items
28
- } = useCollection.useCollection({ wrap: true });
29
- const activeTab = React.useRef(void 0);
30
- const returnFocus = React.useRef(void 0);
31
- const [menuOpen, setMenuOpen] = React.useState(false);
32
- const [selected, setSelectedState] = core.useControlled({
33
- controlled: value,
34
- default: defaultValue,
35
- name: "TabListNext",
36
- state: "selected"
37
- });
38
- const selectedRef = React.useRef(void 0);
39
- core.useIsomorphicLayoutEffect(() => {
40
- selectedRef.current = selected;
41
- }, [selected]);
42
- const setSelected = React.useCallback(
43
- (event, value2) => {
44
- setMenuOpen(false);
45
- setSelectedState(value2);
46
- onChange?.(event, value2);
47
- },
48
- [onChange]
49
- );
50
- const registerTab = core.useEventCallback((item2) => {
51
- const cleanup = registerItem(item2);
52
- setValueToIdMap(({ map }) => {
53
- map.set(item2.value, item2.id);
54
- return { map };
55
- });
56
- return () => {
57
- const items2 = cleanup();
58
- setValueToIdMap(({ map }) => {
59
- map.delete(item2.value);
60
- return { map };
61
- });
62
- if (activeTab.current?.value !== item2.value) {
63
- return;
64
- }
65
- returnFocus.current = item2.value;
66
- const containFocus = () => {
67
- const activeIndex = items2.current.findIndex(
68
- (i) => item2.value === i.value
69
- );
70
- const nextIndex = activeIndex === items2.current.length - 1 ? items2.current.length - 2 : activeIndex + 1;
71
- const nextActive = items2.current[nextIndex];
72
- returnFocus.current = nextActive.value;
73
- if (selectedRef.current === item2.value) {
74
- setSelected(null, nextActive.value);
75
- }
76
- nextActive?.element?.focus();
77
- };
78
- if (document.activeElement === document.body) {
79
- requestAnimationFrame(() => {
80
- if (document.activeElement === document.body) {
81
- containFocus();
82
- }
83
- });
84
- } else {
85
- const handleFocusOut = (event) => {
86
- if (!event.relatedTarget) {
87
- requestAnimationFrame(() => {
88
- if (document.activeElement === document.body) {
89
- containFocus();
90
- }
91
- });
92
- }
93
- };
94
- item2.element.ownerDocument.addEventListener(
95
- "focusout",
96
- handleFocusOut,
97
- {
98
- once: true
99
- }
100
- );
101
- setTimeout(() => {
102
- item2.element.ownerDocument.removeEventListener(
103
- "focusout",
104
- handleFocusOut
105
- );
106
- }, 1e3);
107
- }
108
- };
109
- });
110
- const registerPanel = React.useCallback((id, value2) => {
111
- setValueToPanelIdMap(({ map }) => {
112
- map.set(value2, id);
113
- return { map };
114
- });
115
- return () => {
116
- setValueToIdMap(({ map }) => {
117
- map.delete(value2);
118
- return { map };
119
- });
120
- };
121
- }, []);
122
- const getPanelId = React.useCallback(
123
- (value2) => {
124
- return valueToPanelIdMap.map.get(value2);
125
- },
126
- [valueToPanelIdMap]
127
- );
128
- const getTabId = React.useCallback(
129
- (value2) => {
130
- return valueToTabIdMap.map.get(value2);
131
- },
132
- [valueToTabIdMap]
133
- );
134
- const context = React.useMemo(
135
- () => ({
136
- registerTab,
137
- registerPanel,
138
- getPanelId,
139
- getTabId,
140
- selected,
141
- setSelected,
142
- item,
143
- getNext,
144
- getPrevious,
145
- getFirst,
146
- getLast,
147
- items,
148
- activeTab,
149
- menuOpen,
150
- setMenuOpen,
151
- returnFocus
152
- }),
153
- [
154
- registerPanel,
155
- registerTab,
156
- getPanelId,
157
- getTabId,
158
- selected,
159
- setSelected,
160
- item,
161
- getNext,
162
- getPrevious,
163
- getFirst,
164
- getLast,
165
- items,
166
- menuOpen
167
- ]
168
- );
169
- return /* @__PURE__ */ jsxRuntime.jsx(TabsNextContext.TabsNextContext.Provider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx.clsx(withBaseName(), className), ref, ...rest, children }) });
170
- }
171
- );
172
-
173
- exports.TabsNext = TabsNext;
174
- //# sourceMappingURL=TabsNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsNext.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabsNext.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n type ReactNode,\n type SyntheticEvent,\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport {\n makePrefixer,\n useControlled,\n useEventCallback,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type Item, TabsNextContext } from \"./TabsNextContext\";\nimport { useCollection } from \"./hooks/useCollection\";\n\nexport interface TabsNextProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n children?: ReactNode;\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue?: string;\n /**\n * The value. Use when the component is controlled.\n */\n value?: string;\n /**\n * Callback fired when the selection changes. The event will be null when selection is moved automatically.\n */\n onChange?: (event: SyntheticEvent | null, value: string) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltTabsNext\");\n\nexport const TabsNext = forwardRef<HTMLDivElement, TabsNextProps>(\n function TabsNext(props, ref) {\n const { className, children, value, defaultValue, onChange, ...rest } =\n props;\n\n const [valueToTabIdMap, setValueToIdMap] = useState({\n map: new Map<string, string>(),\n });\n const [valueToPanelIdMap, setValueToPanelIdMap] = useState({\n map: new Map<string, string>(),\n });\n\n const {\n registerItem,\n item,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n } = useCollection({ wrap: true });\n\n const activeTab = useRef<Pick<Item, \"id\" | \"value\">>(undefined);\n const returnFocus = useRef<string | undefined>(undefined);\n\n const [menuOpen, setMenuOpen] = useState(false);\n\n const [selected, setSelectedState] = useControlled({\n controlled: value,\n default: defaultValue,\n name: \"TabListNext\",\n state: \"selected\",\n });\n\n // This ref is needed so we can read the current selected item in the containFocus() function.\n const selectedRef = useRef<string | undefined>(undefined);\n useIsomorphicLayoutEffect(() => {\n selectedRef.current = selected;\n }, [selected]);\n\n const setSelected = useCallback(\n (event: SyntheticEvent | null, value: string) => {\n setMenuOpen(false);\n setSelectedState(value);\n onChange?.(event, value);\n },\n [onChange],\n );\n\n const registerTab = useEventCallback((item: Item) => {\n const cleanup = registerItem(item);\n setValueToIdMap(({ map }) => {\n map.set(item.value, item.id);\n return { map };\n });\n\n return () => {\n const items = cleanup();\n setValueToIdMap(({ map }) => {\n map.delete(item.value);\n return { map };\n });\n\n if (activeTab.current?.value !== item.value) {\n return;\n }\n\n returnFocus.current = item.value;\n\n const containFocus = () => {\n const activeIndex = items.current.findIndex(\n (i) => item.value === i.value,\n );\n\n const nextIndex =\n activeIndex === items.current.length - 1\n ? items.current.length - 2\n : activeIndex + 1;\n\n const nextActive = items.current[nextIndex];\n\n returnFocus.current = nextActive.value;\n\n if (selectedRef.current === item.value) {\n setSelected(null, nextActive.value);\n }\n\n nextActive?.element?.focus();\n };\n\n if (document.activeElement === document.body) {\n requestAnimationFrame(() => {\n if (document.activeElement === document.body) {\n containFocus();\n }\n });\n } else {\n const handleFocusOut = (event: FocusEvent) => {\n if (!event.relatedTarget) {\n requestAnimationFrame(() => {\n if (document.activeElement === document.body) {\n containFocus();\n }\n });\n }\n };\n\n item.element.ownerDocument.addEventListener(\n \"focusout\",\n handleFocusOut,\n {\n once: true,\n },\n );\n\n setTimeout(() => {\n item.element.ownerDocument.removeEventListener(\n \"focusout\",\n handleFocusOut,\n );\n }, 1000);\n }\n };\n });\n\n const registerPanel = useCallback((id: string, value: string) => {\n setValueToPanelIdMap(({ map }) => {\n map.set(value, id);\n return { map };\n });\n return () => {\n setValueToIdMap(({ map }) => {\n map.delete(value);\n return { map };\n });\n };\n }, []);\n\n const getPanelId = useCallback(\n (value: string) => {\n return valueToPanelIdMap.map.get(value);\n },\n [valueToPanelIdMap],\n );\n\n const getTabId = useCallback(\n (value: string) => {\n return valueToTabIdMap.map.get(value);\n },\n [valueToTabIdMap],\n );\n\n const context = useMemo(\n () => ({\n registerTab,\n registerPanel,\n getPanelId,\n getTabId,\n selected,\n setSelected,\n item,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n activeTab,\n menuOpen,\n setMenuOpen,\n returnFocus,\n }),\n [\n registerPanel,\n registerTab,\n getPanelId,\n getTabId,\n selected,\n setSelected,\n item,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n menuOpen,\n ],\n );\n\n return (\n <TabsNextContext.Provider value={context}>\n <div className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {children}\n </div>\n </TabsNextContext.Provider>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","TabsNext","useState","useCollection","useRef","useControlled","useIsomorphicLayoutEffect","useCallback","value","useEventCallback","item","items","useMemo","TabsNextContext","clsx"],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@salt-ds/core');
4
- var React = require('react');
5
-
6
- const TabsNextContext = core.createContext(
7
- "TabsNextContext",
8
- {
9
- getFirst: () => null,
10
- getLast: () => null,
11
- getNext: () => null,
12
- getPrevious: () => null,
13
- item: () => null,
14
- items: [],
15
- selected: void 0,
16
- registerTab: () => () => void 0,
17
- registerPanel: () => () => void 0,
18
- getPanelId: () => void 0,
19
- getTabId: () => void 0,
20
- setSelected: () => void 0,
21
- activeTab: { current: void 0 },
22
- returnFocus: { current: void 0 },
23
- menuOpen: false,
24
- setMenuOpen: () => void 0
25
- }
26
- );
27
- function useTabsNext() {
28
- return React.useContext(TabsNextContext);
29
- }
30
-
31
- exports.TabsNextContext = TabsNextContext;
32
- exports.useTabsNext = useTabsNext;
33
- //# sourceMappingURL=TabsNextContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsNextContext.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabsNextContext.tsx"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport {\n type Dispatch,\n type MutableRefObject,\n type SetStateAction,\n type SyntheticEvent,\n useContext,\n} from \"react\";\nimport type { useCollection } from \"./hooks/useCollection\";\n\nexport interface Item {\n id: string;\n value: string;\n element: HTMLElement;\n}\n\nexport interface TabsNextContextValue\n extends Omit<ReturnType<typeof useCollection>, \"registerItem\"> {\n registerTab: (item: Item) => () => void;\n registerPanel: (id: string, value: string) => () => void;\n getPanelId: (value: string) => string | undefined;\n getTabId: (value: string) => string | undefined;\n selected?: string;\n setSelected: (event: SyntheticEvent, value: string) => void;\n activeTab: MutableRefObject<Pick<Item, \"id\" | \"value\"> | undefined>;\n returnFocus: MutableRefObject<string | undefined>;\n menuOpen: boolean;\n setMenuOpen: Dispatch<SetStateAction<boolean>>;\n}\n\nexport const TabsNextContext = createContext<TabsNextContextValue>(\n \"TabsNextContext\",\n {\n getFirst: () => null,\n getLast: () => null,\n getNext: () => null,\n getPrevious: () => null,\n item: () => null,\n items: [],\n selected: undefined,\n registerTab: () => () => undefined,\n registerPanel: () => () => undefined,\n getPanelId: () => undefined,\n getTabId: () => undefined,\n setSelected: () => undefined,\n activeTab: { current: undefined },\n returnFocus: { current: undefined },\n menuOpen: false,\n setMenuOpen: () => undefined,\n },\n);\n\nexport function useTabsNext() {\n return useContext(TabsNextContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;;AA8BO,MAAM,eAAkB,GAAAA,kBAAA;AAAA,EAC7B,iBAAA;AAAA,EACA;AAAA,IACE,UAAU,MAAM,IAAA;AAAA,IAChB,SAAS,MAAM,IAAA;AAAA,IACf,SAAS,MAAM,IAAA;AAAA,IACf,aAAa,MAAM,IAAA;AAAA,IACnB,MAAM,MAAM,IAAA;AAAA,IACZ,OAAO,EAAC;AAAA,IACR,QAAU,EAAA,KAAA,CAAA;AAAA,IACV,WAAA,EAAa,MAAM,MAAM,KAAA,CAAA;AAAA,IACzB,aAAA,EAAe,MAAM,MAAM,KAAA,CAAA;AAAA,IAC3B,YAAY,MAAM,KAAA,CAAA;AAAA,IAClB,UAAU,MAAM,KAAA,CAAA;AAAA,IAChB,aAAa,MAAM,KAAA,CAAA;AAAA,IACnB,SAAA,EAAW,EAAE,OAAA,EAAS,KAAU,CAAA,EAAA;AAAA,IAChC,WAAA,EAAa,EAAE,OAAA,EAAS,KAAU,CAAA,EAAA;AAAA,IAClC,QAAU,EAAA,KAAA;AAAA,IACV,aAAa,MAAM,KAAA;AAAA;AAEvB;AAEO,SAAS,WAAc,GAAA;AAC5B,EAAA,OAAOC,iBAAW,eAAe,CAAA;AACnC;;;;;"}