@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,37 +0,0 @@
1
- import { useState, useMemo, useCallback } from 'react';
2
-
3
- const useTableSearch = ({
4
- dataSource,
5
- searchColumns
6
- }) => {
7
- const [searchState, setSearchState] = useState({ searchText: "", filter: "" });
8
- const baseFilterPattern = useMemo(
9
- // TODO make this contains once server supports it
10
- () => searchColumns.map((col) => `${col} contains "__VALUE__"`).join(" or "),
11
- [searchColumns]
12
- );
13
- const handleChange = useCallback(
14
- (evt) => {
15
- const { value } = evt.target;
16
- const filter = baseFilterPattern.replaceAll("__VALUE__", value);
17
- setSearchState({
18
- searchText: value,
19
- filter
20
- });
21
- if (dataSource) {
22
- dataSource.filter = {
23
- filter
24
- };
25
- }
26
- },
27
- [baseFilterPattern, dataSource]
28
- );
29
- return {
30
- dataSource,
31
- onChange: handleChange,
32
- searchState
33
- };
34
- };
35
-
36
- export { useTableSearch };
37
- //# sourceMappingURL=useTableSearch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTableSearch.js","sources":["../../../../packages/vuu-ui-controls/src/table-search/useTableSearch.ts"],"sourcesContent":["import { FormEventHandler, useCallback, useMemo, useState } from \"react\";\nimport { TableSearchProps } from \"./TableSearch\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\n\nexport interface TableSearchHookProps\n extends Pick<TableSearchProps, \"searchColumns\"> {\n dataSource: DataSource;\n label?: string;\n}\n\nexport const useTableSearch = ({\n dataSource,\n searchColumns,\n}: TableSearchHookProps) => {\n const [searchState, setSearchState] = useState<{\n searchText: string;\n filter: string;\n }>({ searchText: \"\", filter: \"\" });\n\n const baseFilterPattern = useMemo(\n // TODO make this contains once server supports it\n () =>\n searchColumns.map((col) => `${col} contains \"__VALUE__\"`).join(\" or \"),\n [searchColumns],\n );\n\n const handleChange = useCallback<FormEventHandler>(\n (evt) => {\n const { value } = evt.target as HTMLInputElement;\n const filter = baseFilterPattern.replaceAll(\"__VALUE__\", value);\n setSearchState({\n searchText: value,\n filter,\n });\n if (dataSource) {\n dataSource.filter = {\n filter,\n };\n }\n },\n [baseFilterPattern, dataSource],\n );\n\n return {\n dataSource,\n onChange: handleChange,\n searchState,\n };\n};\n"],"names":[],"mappings":";;AAUO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,UAAA;AAAA,EACA;AACF,CAA4B,KAAA;AAC1B,EAAM,MAAA,CAAC,WAAa,EAAA,cAAc,CAAI,GAAA,QAAA,CAGnC,EAAE,UAAY,EAAA,EAAA,EAAI,MAAQ,EAAA,EAAA,EAAI,CAAA;AAEjC,EAAA,MAAM,iBAAoB,GAAA,OAAA;AAAA;AAAA,IAExB,MACE,aAAc,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,GAAG,GAAG,CAAA,qBAAA,CAAuB,CAAE,CAAA,IAAA,CAAK,MAAM,CAAA;AAAA,IACvE,CAAC,aAAa;AAAA,GAChB;AAEA,EAAA,MAAM,YAAe,GAAA,WAAA;AAAA,IACnB,CAAC,GAAQ,KAAA;AACP,MAAM,MAAA,EAAE,KAAM,EAAA,GAAI,GAAI,CAAA,MAAA;AACtB,MAAA,MAAM,MAAS,GAAA,iBAAA,CAAkB,UAAW,CAAA,WAAA,EAAa,KAAK,CAAA;AAC9D,MAAe,cAAA,CAAA;AAAA,QACb,UAAY,EAAA,KAAA;AAAA,QACZ;AAAA,OACD,CAAA;AACD,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,UAAA,CAAW,MAAS,GAAA;AAAA,UAClB;AAAA,SACF;AAAA;AACF,KACF;AAAA,IACA,CAAC,mBAAmB,UAAU;AAAA,GAChC;AAEA,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,QAAU,EAAA,YAAA;AAAA,IACV;AAAA,GACF;AACF;;;;"}
@@ -1,4 +0,0 @@
1
- var tabBarCss = ".saltTabBar {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: var(--salt-spacing-100);\n position: relative;\n box-sizing: border-box;\n}\n\n.saltTabBar-divider::before {\n content: \"\";\n position: absolute;\n inset: auto 0 0 0;\n height: var(--salt-size-border);\n border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n}\n\n.saltTabBar-inset {\n padding-left: var(--salt-spacing-300);\n padding-right: var(--salt-spacing-300);\n}\n";
2
-
3
- export { tabBarCss as default };
4
- //# sourceMappingURL=TabBar.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabBar.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,39 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useComponentCssInjection } from '@salt-ds/styles';
3
- import { useWindow } from '@salt-ds/window';
4
- import { forwardRef } from 'react';
5
- import { makePrefixer } from '@salt-ds/core';
6
- import { clsx } from 'clsx';
7
- import tabBarCss from './TabBar.css.js';
8
-
9
- const withBaseName = makePrefixer("saltTabBar");
10
- const TabBar = forwardRef(
11
- function TabBar2(props, ref) {
12
- const { className, children, divider, inset, ...rest } = props;
13
- const targetWindow = useWindow();
14
- useComponentCssInjection({
15
- testId: "salt-tab-bar",
16
- css: tabBarCss,
17
- window: targetWindow
18
- });
19
- return /* @__PURE__ */ jsx(
20
- "div",
21
- {
22
- className: clsx(
23
- withBaseName(),
24
- {
25
- [withBaseName("divider")]: divider,
26
- [withBaseName("inset")]: inset
27
- },
28
- className
29
- ),
30
- ...rest,
31
- ref,
32
- children
33
- }
34
- );
35
- }
36
- );
37
-
38
- export { TabBar };
39
- //# sourceMappingURL=TabBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabBar.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabBar.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { type ComponentPropsWithRef, forwardRef } from \"react\";\n\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport tabBarCss from \"./TabBar.css\";\n\nexport interface TabBarProps extends ComponentPropsWithRef<\"div\"> {\n /**\n * Styling variant with a bottom separator. Defaults to false\n */\n divider?: boolean;\n /**\n * Styling variant with left and right padding. Defaults to false\n */\n inset?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltTabBar\");\n\nexport const TabBar = forwardRef<HTMLDivElement, TabBarProps>(\n function TabBar(props, ref) {\n const { className, children, divider, inset, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tab-bar\",\n css: tabBarCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"divider\")]: divider,\n [withBaseName(\"inset\")]: inset,\n },\n className,\n )}\n {...rest}\n ref={ref}\n >\n {children}\n </div>\n );\n },\n);\n"],"names":["TabBar"],"mappings":";;;;;;;;AAmBA,MAAM,YAAA,GAAe,aAAa,YAAY,CAAA;AAEvC,MAAM,MAAS,GAAA,UAAA;AAAA,EACpB,SAASA,OAAO,CAAA,KAAA,EAAO,GAAK,EAAA;AAC1B,IAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAU,SAAS,KAAO,EAAA,GAAG,MAAS,GAAA,KAAA;AAEzD,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,cAAA;AAAA,MACR,GAAK,EAAA,SAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IACE,uBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb;AAAA,YACE,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG,OAAA;AAAA,YAC3B,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG;AAAA,WAC3B;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QACJ,GAAA;AAAA,QAEC;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
@@ -1,4 +0,0 @@
1
- var tablistNextCss = "/* Component class applied to the root element */\n.saltTabListNext {\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n position: relative;\n background: transparent;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n gap: var(--salt-spacing-100);\n max-width: 100%;\n}\n\n.saltTabListNext-center {\n justify-content: center;\n}\n\n.saltTabListNext-right {\n justify-content: flex-end;\n}\n\n.saltTabListNext-activeColorPrimary {\n --saltTabListNext-activeColor: var(--salt-container-primary-background);\n}\n\n.saltTabListNext-activeColorSecondary {\n --saltTabListNext-activeColor: var(--salt-container-secondary-background);\n}\n\n.saltTabListNext-activeColorTertiary {\n --saltTabListNext-activeColor: var(--salt-container-tertiary-background);\n}\n";
2
-
3
- export { tablistNextCss as default };
4
- //# sourceMappingURL=TabListNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabListNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,122 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { makePrefixer, useForkRef, useIsomorphicLayoutEffect, capitalize } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef, useRef } from 'react';
7
- import tablistNextCss from './TabListNext.css.js';
8
- import { TabOverflowList } from './TabOverflowList.js';
9
- import { useTabsNext } from './TabsNextContext.js';
10
- import { useOverflow } from './hooks/useOverflow.js';
11
-
12
- const withBaseName = makePrefixer("saltTabListNext");
13
- const TabListNext = forwardRef(
14
- function TabstripNext(props, ref) {
15
- const {
16
- appearance = "bordered",
17
- activeColor = "primary",
18
- children,
19
- className,
20
- onKeyDown,
21
- ...rest
22
- } = props;
23
- const targetWindow = useWindow();
24
- useComponentCssInjection({
25
- testId: "salt-tablist-next",
26
- css: tablistNextCss,
27
- window: targetWindow
28
- });
29
- const {
30
- selected,
31
- getNext,
32
- getPrevious,
33
- getFirst,
34
- getLast,
35
- items,
36
- activeTab,
37
- menuOpen,
38
- setMenuOpen,
39
- returnFocus
40
- } = useTabsNext();
41
- const tabstripRef = useRef(null);
42
- const handleRef = useForkRef(tabstripRef, ref);
43
- const overflowButtonRef = useRef(null);
44
- const [visible, hidden, isMeasuring] = useOverflow({
45
- container: tabstripRef,
46
- tabs: items,
47
- children,
48
- selected,
49
- overflowButton: overflowButtonRef
50
- });
51
- const handleKeyDown = (event) => {
52
- onKeyDown?.(event);
53
- const actionMap = {
54
- ArrowRight: getNext,
55
- ArrowLeft: getPrevious,
56
- Home: getFirst,
57
- End: getLast,
58
- ArrowUp: menuOpen ? getPrevious : void 0,
59
- ArrowDown: menuOpen ? getNext : void 0
60
- };
61
- const action = actionMap[event.key];
62
- if (action) {
63
- event.preventDefault();
64
- const activeTabId = activeTab.current?.id;
65
- if (!activeTabId) return;
66
- const nextItem = action(activeTabId);
67
- if (nextItem) {
68
- nextItem.element?.scrollIntoView({
69
- block: "nearest",
70
- inline: "nearest"
71
- });
72
- nextItem.element?.focus({ preventScroll: true });
73
- }
74
- }
75
- };
76
- useIsomorphicLayoutEffect(() => {
77
- if (!returnFocus.current || visible.length < 1 || selected === void 0)
78
- return;
79
- const itemToFocus = items.find((i) => i.value === returnFocus.current);
80
- itemToFocus?.element?.focus({ preventScroll: true });
81
- requestAnimationFrame(() => {
82
- if (targetWindow?.document?.activeElement === itemToFocus?.element) {
83
- returnFocus.current = void 0;
84
- }
85
- });
86
- }, [visible, returnFocus, targetWindow, items, selected]);
87
- return /* @__PURE__ */ jsxs(
88
- "div",
89
- {
90
- role: "tablist",
91
- className: clsx(
92
- withBaseName(),
93
- withBaseName(appearance),
94
- withBaseName("horizontal"),
95
- withBaseName(`activeColor${capitalize(activeColor)}`),
96
- className
97
- ),
98
- "data-ismeasuring": isMeasuring ? true : void 0,
99
- ref: handleRef,
100
- onKeyDown: handleKeyDown,
101
- ...rest,
102
- children: [
103
- visible,
104
- /* @__PURE__ */ jsx(
105
- TabOverflowList,
106
- {
107
- isMeasuring,
108
- buttonRef: overflowButtonRef,
109
- tabstripRef,
110
- open: menuOpen,
111
- setOpen: setMenuOpen,
112
- children: hidden
113
- }
114
- )
115
- ]
116
- }
117
- );
118
- }
119
- );
120
-
121
- export { TabListNext };
122
- //# sourceMappingURL=TabListNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabListNext.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabListNext.tsx"],"sourcesContent":["import {\n capitalize,\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 forwardRef,\n useRef,\n} from \"react\";\n\nimport tablistNextCss from \"./TabListNext.css\";\nimport { TabOverflowList } from \"./TabOverflowList\";\nimport { useTabsNext } from \"./TabsNextContext\";\nimport { useOverflow } from \"./hooks/useOverflow\";\n\nconst withBaseName = makePrefixer(\"saltTabListNext\");\n\nexport interface TabListNextProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n /**\n * Styling active color variant. Defaults to \"primary\".\n */\n activeColor?: \"primary\" | \"secondary\" | \"tertiary\";\n /**\n * The appearance of the tabs. Defaults to \"bordered\".\n */\n appearance?: \"bordered\" | \"transparent\";\n}\n\nexport const TabListNext = forwardRef<HTMLDivElement, TabListNextProps>(\n function TabstripNext(props, ref) {\n const {\n appearance = \"bordered\",\n activeColor = \"primary\",\n children,\n className,\n onKeyDown,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tablist-next\",\n css: tablistNextCss,\n window: targetWindow,\n });\n\n const {\n selected,\n getNext,\n getPrevious,\n getFirst,\n getLast,\n items,\n activeTab,\n menuOpen,\n setMenuOpen,\n returnFocus,\n } = useTabsNext();\n\n const tabstripRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(tabstripRef, ref);\n const overflowButtonRef = useRef<HTMLButtonElement>(null);\n\n const [visible, hidden, isMeasuring] = useOverflow({\n container: tabstripRef,\n tabs: items,\n children,\n selected,\n overflowButton: overflowButtonRef,\n });\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n\n const actionMap = {\n ArrowRight: getNext,\n ArrowLeft: getPrevious,\n Home: getFirst,\n End: getLast,\n ArrowUp: menuOpen ? getPrevious : undefined,\n ArrowDown: menuOpen ? getNext : undefined,\n };\n\n const action = actionMap[event.key as keyof typeof actionMap];\n\n if (action) {\n event.preventDefault();\n const activeTabId = activeTab.current?.id;\n if (!activeTabId) return;\n const nextItem = action(activeTabId);\n if (nextItem) {\n nextItem.element?.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n });\n nextItem.element?.focus({ preventScroll: true });\n }\n }\n };\n\n useIsomorphicLayoutEffect(() => {\n if (!returnFocus.current || visible.length < 1 || selected === undefined)\n return;\n\n const itemToFocus = items.find((i) => i.value === returnFocus.current);\n itemToFocus?.element?.focus({ preventScroll: true });\n\n requestAnimationFrame(() => {\n if (targetWindow?.document?.activeElement === itemToFocus?.element) {\n returnFocus.current = undefined;\n }\n });\n }, [visible, returnFocus, targetWindow, items, selected]);\n\n return (\n <div\n role=\"tablist\"\n className={clsx(\n withBaseName(),\n withBaseName(appearance),\n withBaseName(\"horizontal\"),\n withBaseName(`activeColor${capitalize(activeColor)}`),\n className,\n )}\n data-ismeasuring={isMeasuring ? true : undefined}\n ref={handleRef}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {visible}\n <TabOverflowList\n isMeasuring={isMeasuring}\n buttonRef={overflowButtonRef}\n tabstripRef={tabstripRef}\n open={menuOpen}\n setOpen={setMenuOpen}\n >\n {hidden}\n </TabOverflowList>\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- var tabCss = "/* Class applied to root Tab element */\n.saltTabNext {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n appearance: none;\n -webkit-appearance: none;\n gap: var(--salt-spacing-100);\n border: none;\n border-left: var(--salt-size-border) var(--salt-container-borderStyle) transparent;\n border-right: var(--salt-size-border) var(--salt-container-borderStyle) transparent;\n white-space: pre;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n min-width: 4em;\n padding: var(--salt-spacing-50) var(--salt-spacing-100);\n position: relative;\n flex-shrink: 0;\n box-sizing: border-box;\n --tabNext-radius: var(--salt-palette-corner-weak, 0);\n border-radius: var(--tab-radius) var(--tab-radius) 0 0;\n overflow: hidden;\n\n cursor: var(--salt-navigable-cursor-hover);\n color: var(--salt-content-primary-foreground);\n font-weight: var(--salt-navigable-fontWeight);\n font-family: var(--salt-text-fontFamily);\n text-align: var(--salt-text-textAlign);\n letter-spacing: var(--salt-text-letterSpacing);\n line-height: var(--salt-text-lineHeight);\n font-size: var(--salt-text-fontSize);\n}\n\n.saltTabNext::after {\n content: \"\";\n position: absolute;\n left: calc(var(--salt-size-border) * -1);\n right: calc(var(--salt-size-border) * -1);\n height: var(--salt-size-indicator);\n}\n\n.saltTabListNext-bordered .saltTabNext::after {\n top: 0;\n}\n\n.saltTabListNext-transparent .saltTabNext::after {\n bottom: 0;\n}\n\n.saltTabNext:hover::after,\n.saltTabNext-focusVisible::after {\n background: var(--salt-navigable-indicator-hover);\n}\n\n.saltTabNext-disabled:hover::after,\n.saltTabNext-disabled.saltTabNext-focusVisible::after {\n background: none;\n}\n\n.saltTabNext-focusVisible {\n outline: var(--salt-focused-outline);\n}\n\n.saltTabListNext-bordered .saltTabNext.saltTabNext-selected {\n background: var(--saltTabListNext-activeColor);\n border-left: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n border-right: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n}\n\n.saltTabNext.saltTabNext-selected::after {\n background: var(--salt-navigable-indicator-active);\n}\n\n.saltTabNext.saltTabNext-disabled {\n cursor: var(--salt-navigable-cursor-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n}\n";
2
-
3
- export { tabCss as default };
4
- //# sourceMappingURL=TabNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,108 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { makePrefixer, useId } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef, useRef, useState, useCallback, useMemo } from 'react';
7
- import tabCss from './TabNext.css.js';
8
- import { TabNextContext } from './TabNextContext.js';
9
- import { useTabsNext } from './TabsNextContext.js';
10
-
11
- const withBaseName = makePrefixer("saltTabNext");
12
- const TabNext = forwardRef(
13
- function Tab(props, ref) {
14
- const {
15
- "aria-labelledby": ariaLabelledBy,
16
- children,
17
- className,
18
- disabled: disabledProp,
19
- onBlur,
20
- onMouseDown,
21
- onFocus,
22
- onFocusCapture,
23
- value,
24
- id: idProp,
25
- ...rest
26
- } = props;
27
- const targetWindow = useWindow();
28
- useComponentCssInjection({
29
- testId: "salt-tab-next",
30
- css: tabCss,
31
- window: targetWindow
32
- });
33
- const { selected, activeTab } = useTabsNext();
34
- const disabled = !!disabledProp;
35
- const id = useId(idProp);
36
- const wasMouseDown = useRef(false);
37
- const [focusVisible, setFocusVisible] = useState(false);
38
- const [focused, setFocused] = useState(false);
39
- const handleFocusCapture = (event) => {
40
- onFocusCapture?.(event);
41
- if (value && id) {
42
- activeTab.current = { value, id };
43
- }
44
- };
45
- const handleFocus = (event) => {
46
- onFocus?.(event);
47
- setFocused(true);
48
- if (!wasMouseDown.current && event.target.getAttribute("role") === "tab") {
49
- setFocusVisible(true);
50
- }
51
- wasMouseDown.current = false;
52
- };
53
- const handleBlur = (event) => {
54
- onBlur?.(event);
55
- setFocused(false);
56
- setFocusVisible(false);
57
- };
58
- const handleMouseDown = (event) => {
59
- onMouseDown?.(event);
60
- wasMouseDown.current = true;
61
- };
62
- const [actions, setActions] = useState([]);
63
- const registerAction = useCallback((id2) => {
64
- setActions((old) => old.concat(id2));
65
- return () => {
66
- setActions((old) => old.filter((action) => action !== id2));
67
- };
68
- }, []);
69
- const context = useMemo(
70
- () => ({
71
- tabId: id,
72
- selected: selected === value,
73
- focused,
74
- value,
75
- disabled,
76
- actions,
77
- registerAction
78
- }),
79
- [id, selected, value, focused, disabled, actions, registerAction]
80
- );
81
- return /* @__PURE__ */ jsx(TabNextContext.Provider, { value: context, children: /* @__PURE__ */ jsx(
82
- "div",
83
- {
84
- className: clsx(
85
- withBaseName(),
86
- {
87
- [withBaseName("selected")]: selected === value,
88
- [withBaseName("disabled")]: disabled,
89
- [withBaseName("focusVisible")]: focusVisible
90
- },
91
- className
92
- ),
93
- "data-overflowitem": "true",
94
- ref,
95
- onMouseDown: handleMouseDown,
96
- onFocusCapture: handleFocusCapture,
97
- onFocus: handleFocus,
98
- onBlur: handleBlur,
99
- role: "presentation",
100
- ...rest,
101
- children
102
- }
103
- ) });
104
- }
105
- );
106
-
107
- export { TabNext };
108
- //# sourceMappingURL=TabNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNext.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabNext.tsx"],"sourcesContent":["import { makePrefixer, useId } 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 FocusEvent,\n type MouseEvent,\n type ReactElement,\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport tabCss from \"./TabNext.css\";\nimport { TabNextContext } from \"./TabNextContext\";\nimport { useTabsNext } from \"./TabsNextContext\";\n\nconst withBaseName = makePrefixer(\"saltTabNext\");\n\nexport interface TabNextProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * If `true`, the tab will be disabled.\n */\n disabled?: boolean;\n /**\n * The value of the tab.\n */\n value: string;\n}\n\nexport const TabNext = forwardRef<HTMLDivElement, TabNextProps>(\n function Tab(props, ref): ReactElement<TabNextProps> {\n const {\n \"aria-labelledby\": ariaLabelledBy,\n children,\n className,\n disabled: disabledProp,\n onBlur,\n onMouseDown,\n onFocus,\n onFocusCapture,\n value,\n id: idProp,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tab-next\",\n css: tabCss,\n window: targetWindow,\n });\n\n const { selected, activeTab } = useTabsNext();\n\n const disabled = !!disabledProp;\n\n const id = useId(idProp);\n\n const wasMouseDown = useRef(false);\n const [focusVisible, setFocusVisible] = useState(false);\n const [focused, setFocused] = useState(false);\n\n const handleFocusCapture = (event: FocusEvent<HTMLDivElement>) => {\n onFocusCapture?.(event);\n if (value && id) {\n activeTab.current = { value, id };\n }\n };\n\n const handleFocus = (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event);\n\n setFocused(true);\n\n if (\n !wasMouseDown.current &&\n event.target.getAttribute(\"role\") === \"tab\"\n ) {\n setFocusVisible(true);\n }\n\n wasMouseDown.current = false;\n };\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n onBlur?.(event);\n setFocused(false);\n setFocusVisible(false);\n };\n\n const handleMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n onMouseDown?.(event);\n wasMouseDown.current = true;\n };\n\n const [actions, setActions] = useState<string[]>([]);\n\n const registerAction = useCallback((id: string) => {\n setActions((old) => old.concat(id));\n\n return () => {\n setActions((old) => old.filter((action) => action !== id));\n };\n }, []);\n\n const context = useMemo(\n () => ({\n tabId: id,\n selected: selected === value,\n focused,\n value,\n disabled,\n actions,\n registerAction,\n }),\n [id, selected, value, focused, disabled, actions, registerAction],\n );\n\n return (\n <TabNextContext.Provider value={context}>\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"selected\")]: selected === value,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"focusVisible\")]: focusVisible,\n },\n className,\n )}\n data-overflowitem=\"true\"\n ref={ref}\n onMouseDown={handleMouseDown}\n onFocusCapture={handleFocusCapture}\n onFocus={handleFocus}\n onBlur={handleBlur}\n role=\"presentation\"\n {...rest}\n >\n {children}\n </div>\n </TabNextContext.Provider>\n );\n },\n);\n"],"names":["id"],"mappings":";;;;;;;;;;AAoBA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA;AAaxC,MAAM,OAAU,GAAA,UAAA;AAAA,EACrB,SAAS,GAAI,CAAA,KAAA,EAAO,GAAiC,EAAA;AACnD,IAAM,MAAA;AAAA,MACJ,iBAAmB,EAAA,cAAA;AAAA,MACnB,QAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAU,EAAA,YAAA;AAAA,MACV,MAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA,EAAI,EAAA,MAAA;AAAA,MACJ,GAAG;AAAA,KACD,GAAA,KAAA;AACJ,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAA,MAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,QAAA,EAAU,SAAU,EAAA,GAAI,WAAY,EAAA;AAE5C,IAAM,MAAA,QAAA,GAAW,CAAC,CAAC,YAAA;AAEnB,IAAM,MAAA,EAAA,GAAK,MAAM,MAAM,CAAA;AAEvB,IAAM,MAAA,YAAA,GAAe,OAAO,KAAK,CAAA;AACjC,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AACtD,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAE5C,IAAM,MAAA,kBAAA,GAAqB,CAAC,KAAsC,KAAA;AAChE,MAAA,cAAA,GAAiB,KAAK,CAAA;AACtB,MAAA,IAAI,SAAS,EAAI,EAAA;AACf,QAAU,SAAA,CAAA,OAAA,GAAU,EAAE,KAAA,EAAO,EAAG,EAAA;AAAA;AAClC,KACF;AAEA,IAAM,MAAA,WAAA,GAAc,CAAC,KAAsC,KAAA;AACzD,MAAA,OAAA,GAAU,KAAK,CAAA;AAEf,MAAA,UAAA,CAAW,IAAI,CAAA;AAEf,MACE,IAAA,CAAC,aAAa,OACd,IAAA,KAAA,CAAM,OAAO,YAAa,CAAA,MAAM,MAAM,KACtC,EAAA;AACA,QAAA,eAAA,CAAgB,IAAI,CAAA;AAAA;AAGtB,MAAA,YAAA,CAAa,OAAU,GAAA,KAAA;AAAA,KACzB;AAEA,IAAM,MAAA,UAAA,GAAa,CAAC,KAAsC,KAAA;AACxD,MAAA,MAAA,GAAS,KAAK,CAAA;AACd,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,KACvB;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,KAAsC,KAAA;AAC7D,MAAA,WAAA,GAAc,KAAK,CAAA;AACnB,MAAA,YAAA,CAAa,OAAU,GAAA,IAAA;AAAA,KACzB;AAEA,IAAA,MAAM,CAAC,OAAS,EAAA,UAAU,CAAI,GAAA,QAAA,CAAmB,EAAE,CAAA;AAEnD,IAAM,MAAA,cAAA,GAAiB,WAAY,CAAA,CAACA,GAAe,KAAA;AACjD,MAAA,UAAA,CAAW,CAAC,GAAA,KAAQ,GAAI,CAAA,MAAA,CAAOA,GAAE,CAAC,CAAA;AAElC,MAAA,OAAO,MAAM;AACX,QAAW,UAAA,CAAA,CAAC,QAAQ,GAAI,CAAA,MAAA,CAAO,CAAC,MAAW,KAAA,MAAA,KAAWA,GAAE,CAAC,CAAA;AAAA,OAC3D;AAAA,KACF,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,OAAU,GAAA,OAAA;AAAA,MACd,OAAO;AAAA,QACL,KAAO,EAAA,EAAA;AAAA,QACP,UAAU,QAAa,KAAA,KAAA;AAAA,QACvB,OAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,EAAI,EAAA,QAAA,EAAU,OAAO,OAAS,EAAA,QAAA,EAAU,SAAS,cAAc;AAAA,KAClE;AAEA,IAAA,uBACG,GAAA,CAAA,cAAA,CAAe,QAAf,EAAA,EAAwB,OAAO,OAC9B,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb;AAAA,YACE,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAa,KAAA,KAAA;AAAA,YACzC,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAA;AAAA,YAC5B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,WAClC;AAAA,UACA;AAAA,SACF;AAAA,QACA,mBAAkB,EAAA,MAAA;AAAA,QAClB,GAAA;AAAA,QACA,WAAa,EAAA,eAAA;AAAA,QACb,cAAgB,EAAA,kBAAA;AAAA,QAChB,OAAS,EAAA,WAAA;AAAA,QACT,MAAQ,EAAA,UAAA;AAAA,QACR,IAAK,EAAA,cAAA;AAAA,QACJ,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KAEL,EAAA,CAAA;AAAA;AAGN;;;;"}
@@ -1,33 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useId, useIsomorphicLayoutEffect, Button } from '@salt-ds/core';
3
- import { clsx } from 'clsx';
4
- import { forwardRef } from 'react';
5
- import { useTabNext } from './TabNextContext.js';
6
-
7
- const TabNextAction = forwardRef(
8
- function TabNextAction2(props, ref) {
9
- const { "aria-labelledby": ariaLabelledBy, id: idProp, ...rest } = props;
10
- const id = useId(idProp);
11
- const { focused, selected, tabId, registerAction } = useTabNext();
12
- useIsomorphicLayoutEffect(() => {
13
- if (id) {
14
- return registerAction(id);
15
- }
16
- }, [registerAction, id]);
17
- return /* @__PURE__ */ jsx(
18
- Button,
19
- {
20
- id,
21
- "aria-labelledby": clsx(ariaLabelledBy, tabId, id),
22
- tabIndex: focused || selected ? void 0 : -1,
23
- appearance: "transparent",
24
- sentiment: "neutral",
25
- ref,
26
- ...rest
27
- }
28
- );
29
- }
30
- );
31
-
32
- export { TabNextAction };
33
- //# sourceMappingURL=TabNextAction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextAction.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabNextAction.tsx"],"sourcesContent":["import {\n Button,\n type ButtonProps,\n useId,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef } from \"react\";\nimport { useTabNext } from \"./TabNextContext\";\n\nexport interface TabNextActionProps extends ButtonProps {\n debugLabel?: string;\n}\n\nexport const TabNextAction = forwardRef<HTMLButtonElement, TabNextActionProps>(\n function TabNextAction(props, ref) {\n const { \"aria-labelledby\": ariaLabelledBy, id: idProp, ...rest } = props;\n\n const id = useId(idProp);\n const { focused, selected, tabId, registerAction } = useTabNext();\n\n useIsomorphicLayoutEffect(() => {\n if (id) {\n return registerAction(id);\n }\n }, [registerAction, id]);\n\n return (\n <Button\n id={id}\n aria-labelledby={clsx(ariaLabelledBy, tabId, id)}\n tabIndex={focused || selected ? undefined : -1}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n ref={ref}\n {...rest}\n />\n );\n },\n);\n"],"names":["TabNextAction"],"mappings":";;;;;;AAcO,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,SAASA,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAA,MAAM,EAAE,iBAAmB,EAAA,cAAA,EAAgB,IAAI,MAAQ,EAAA,GAAG,MAAS,GAAA,KAAA;AAEnE,IAAM,MAAA,EAAA,GAAK,MAAM,MAAM,CAAA;AACvB,IAAA,MAAM,EAAE,OAAS,EAAA,QAAA,EAAU,KAAO,EAAA,cAAA,KAAmB,UAAW,EAAA;AAEhE,IAAA,yBAAA,CAA0B,MAAM;AAC9B,MAAA,IAAI,EAAI,EAAA;AACN,QAAA,OAAO,eAAe,EAAE,CAAA;AAAA;AAC1B,KACC,EAAA,CAAC,cAAgB,EAAA,EAAE,CAAC,CAAA;AAEvB,IACE,uBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,iBAAiB,EAAA,IAAA,CAAK,cAAgB,EAAA,KAAA,EAAO,EAAE,CAAA;AAAA,QAC/C,QAAA,EAAU,OAAW,IAAA,QAAA,GAAW,KAAY,CAAA,GAAA,CAAA,CAAA;AAAA,QAC5C,UAAW,EAAA,aAAA;AAAA,QACX,SAAU,EAAA,SAAA;AAAA,QACV,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA;AAGN;;;;"}
@@ -1,20 +0,0 @@
1
- import { createContext } from '@salt-ds/core';
2
- import { useContext } from 'react';
3
-
4
- const TabNextContext = createContext(
5
- "TabNextContext",
6
- {
7
- focused: false,
8
- selected: false,
9
- disabled: false,
10
- value: "",
11
- actions: [],
12
- registerAction: () => () => void 0
13
- }
14
- );
15
- function useTabNext() {
16
- return useContext(TabNextContext);
17
- }
18
-
19
- export { TabNextContext, useTabNext };
20
- //# sourceMappingURL=TabNextContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextContext.js","sources":["../../../../packages/vuu-ui-controls/src/tabs-next/TabNextContext.tsx"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport { useContext } from \"react\";\n\ninterface TabNextContextValue {\n tabId?: string;\n focused: boolean;\n selected: boolean;\n value: string;\n disabled: boolean;\n actions: string[];\n registerAction: (id: string) => () => void;\n}\n\nexport const TabNextContext = createContext<TabNextContextValue>(\n \"TabNextContext\",\n {\n focused: false,\n selected: false,\n disabled: false,\n value: \"\",\n actions: [],\n registerAction: () => () => undefined,\n },\n);\n\nexport function useTabNext() {\n return useContext(TabNextContext);\n}\n"],"names":[],"mappings":";;;AAaO,MAAM,cAAiB,GAAA,aAAA;AAAA,EAC5B,gBAAA;AAAA,EACA;AAAA,IACE,OAAS,EAAA,KAAA;AAAA,IACT,QAAU,EAAA,KAAA;AAAA,IACV,QAAU,EAAA,KAAA;AAAA,IACV,KAAO,EAAA,EAAA;AAAA,IACP,SAAS,EAAC;AAAA,IACV,cAAA,EAAgB,MAAM,MAAM,KAAA;AAAA;AAEhC;AAEO,SAAS,UAAa,GAAA;AAC3B,EAAA,OAAO,WAAW,cAAc,CAAA;AAClC;;;;"}
@@ -1,4 +0,0 @@
1
- var tabPanelCss = ".saltTabNextPanel {\n height: 100%;\n width: 100%;\n}\n\n.saltTabNextPanel[hidden] {\n display: none;\n}\n\n.saltTabNextPanel:focus-visible {\n outline: var(--salt-focused-outline);\n}\n";
2
-
3
- export { tabPanelCss as default };
4
- //# sourceMappingURL=TabNextPanel.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,75 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { makePrefixer, useId, useForkRef, useIsomorphicLayoutEffect } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef, useRef, useState, useEffect } from 'react';
7
- import { tabbable } from 'tabbable';
8
- import tabPanelCss from './TabNextPanel.css.js';
9
- import { useTabsNext } from './TabsNextContext.js';
10
-
11
- const withBaseName = makePrefixer("saltTabNextPanel");
12
- const TabNextPanel = forwardRef(
13
- function TabNextPanel2(props, ref) {
14
- const { className, children, id: idProp, value, ...rest } = props;
15
- const targetWindow = useWindow();
16
- useComponentCssInjection({
17
- testId: "salt-tab-next-panel",
18
- css: tabPanelCss,
19
- window: targetWindow
20
- });
21
- const id = useId(idProp);
22
- const { registerPanel, getTabId, selected } = useTabsNext();
23
- const panelRef = useRef(null);
24
- const handleRef = useForkRef(panelRef, ref);
25
- useIsomorphicLayoutEffect(() => {
26
- if (value && id) {
27
- return registerPanel(id, value);
28
- }
29
- }, [value, id, registerPanel]);
30
- const [hasFocusableChildren, setHasFocusableChildren] = useState(false);
31
- useEffect(() => {
32
- if (!panelRef.current) return;
33
- const detectFocusableChildren = () => {
34
- requestAnimationFrame(() => {
35
- if (!panelRef.current) return;
36
- const elements = tabbable(panelRef.current);
37
- setHasFocusableChildren(elements.length > 0);
38
- });
39
- };
40
- const observer = new MutationObserver(() => {
41
- detectFocusableChildren();
42
- });
43
- requestAnimationFrame(() => {
44
- detectFocusableChildren();
45
- });
46
- observer.observe(panelRef.current, {
47
- childList: true,
48
- subtree: true,
49
- attributes: true
50
- });
51
- return () => {
52
- observer.disconnect();
53
- };
54
- }, []);
55
- const hidden = selected !== value;
56
- const tabId = getTabId(value);
57
- return /* @__PURE__ */ jsx(
58
- "div",
59
- {
60
- id,
61
- ref: handleRef,
62
- role: "tabpanel",
63
- "aria-labelledby": tabId,
64
- className: clsx(withBaseName(), className),
65
- hidden: hidden || void 0,
66
- tabIndex: hidden || hasFocusableChildren ? void 0 : 0,
67
- ...rest,
68
- children
69
- }
70
- );
71
- }
72
- );
73
-
74
- export { TabNextPanel };
75
- //# 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":["TabNextPanel"],"mappings":";;;;;;;;;;AA2BA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA;AAE7C,MAAM,YAAe,GAAA,UAAA;AAAA,EAC1B,SAASA,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,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAA,WAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AACD,IAAM,MAAA,EAAA,GAAK,MAAM,MAAM,CAAA;AACvB,IAAA,MAAM,EAAE,aAAA,EAAe,QAAU,EAAA,QAAA,KAAa,WAAY,EAAA;AAE1D,IAAM,MAAA,QAAA,GAAW,OAAuB,IAAI,CAAA;AAC5C,IAAM,MAAA,SAAA,GAAY,UAAW,CAAA,QAAA,EAAU,GAAG,CAAA;AAE1C,IAAA,yBAAA,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,GAAI,SAAS,KAAK,CAAA;AACtE,IAAA,SAAA,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,GAAW,QAAS,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,uBAAA,GAAA;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,EAAA,IAAA,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,4 +0,0 @@
1
- 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";
2
-
3
- export { tabTriggerCss as default };
4
- //# sourceMappingURL=TabNextTrigger.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabNextTrigger.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,72 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { makePrefixer, useIsomorphicLayoutEffect, useForkRef } from '@salt-ds/core';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { clsx } from 'clsx';
6
- import { forwardRef, useRef } from 'react';
7
- import { useTabNext } from './TabNextContext.js';
8
- import tabTriggerCss from './TabNextTrigger.css.js';
9
- import { useTabsNext } from './TabsNextContext.js';
10
-
11
- const withBaseName = makePrefixer("saltTabNextTrigger");
12
- function getAriaDescription(count) {
13
- if (count < 1) {
14
- return void 0;
15
- }
16
- if (count === 1) {
17
- return "1 action available";
18
- }
19
- return `${count} actions available`;
20
- }
21
- const TabNextTrigger = forwardRef(function TabNextTrigger2(props, ref) {
22
- const { children, id: idProp, onClick, onKeyDown, ...rest } = props;
23
- const targetWindow = useWindow();
24
- useComponentCssInjection({
25
- testId: "salt-tab-next-trigger",
26
- css: tabTriggerCss,
27
- window: targetWindow
28
- });
29
- const { setSelected, registerTab, getPanelId } = useTabsNext();
30
- const { selected, value, focused, disabled, tabId, actions } = useTabNext();
31
- const tabRef = useRef(null);
32
- const id = tabId;
33
- useIsomorphicLayoutEffect(() => {
34
- if (value && id && tabRef.current) {
35
- return registerTab({ id, value, element: tabRef.current });
36
- }
37
- }, [value, id, registerTab]);
38
- const handleClick = (event) => {
39
- setSelected(event, value);
40
- };
41
- const handleKeyDown = (event) => {
42
- onKeyDown?.(event);
43
- if (event.key === "Enter" || event.key === " ") {
44
- setSelected(event, value);
45
- }
46
- };
47
- const handleRef = useForkRef(tabRef, ref);
48
- const panelId = getPanelId(value);
49
- return /* @__PURE__ */ jsx(
50
- "button",
51
- {
52
- "aria-selected": selected,
53
- "aria-disabled": disabled,
54
- "aria-controls": panelId,
55
- "aria-actions": clsx(actions) || void 0,
56
- "aria-description": getAriaDescription(actions.length),
57
- tabIndex: focused || selected ? void 0 : -1,
58
- role: "tab",
59
- type: "button",
60
- onClick: !disabled ? handleClick : void 0,
61
- onKeyDown: !disabled ? handleKeyDown : void 0,
62
- className: withBaseName(),
63
- id,
64
- ref: handleRef,
65
- ...rest,
66
- children
67
- }
68
- );
69
- });
70
-
71
- export { TabNextTrigger };
72
- //# 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":["TabNextTrigger"],"mappings":";;;;;;;;;;AAwBA,MAAM,YAAA,GAAe,aAAa,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,GAAA,UAAA,CAG5B,SAASA,eAAAA,CAAe,OAAO,GAAK,EAAA;AACpC,EAAM,MAAA,EAAE,UAAU,EAAI,EAAA,MAAA,EAAQ,SAAS,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AAE9D,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAA,aAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,WAAA,EAAa,WAAa,EAAA,UAAA,KAAe,WAAY,EAAA;AAC7D,EAAM,MAAA,EAAE,UAAU,KAAO,EAAA,OAAA,EAAS,UAAU,KAAO,EAAA,OAAA,KAAY,UAAW,EAAA;AAE1E,EAAM,MAAA,MAAA,GAAS,OAA0B,IAAI,CAAA;AAE7C,EAAA,MAAM,EAAK,GAAA,KAAA;AAEX,EAAA,yBAAA,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,GAAY,UAA8B,CAAA,MAAA,EAAQ,GAAG,CAAA;AAC3D,EAAM,MAAA,OAAA,GAAU,WAAW,KAAK,CAAA;AAEhC,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,eAAe,EAAA,QAAA;AAAA,MACf,eAAe,EAAA,QAAA;AAAA,MACf,eAAe,EAAA,OAAA;AAAA,MAEf,cAAA,EAAc,IAAK,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;;;;"}