@vuu-ui/vuu-ui-controls 0.9.1 → 0.9.3

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 (991) hide show
  1. package/cjs/node_modules/tabbable/dist/index.esm.js +539 -0
  2. package/cjs/node_modules/tabbable/dist/index.esm.js.map +1 -0
  3. package/cjs/packages/vuu-ui-controls/src/calendar/Calendar.js.map +1 -0
  4. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarCarousel.js.map +1 -0
  5. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarContext.js.map +1 -0
  6. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarDay.js.map +1 -0
  7. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarMonth.js.map +1 -0
  8. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarNavigation.js.map +1 -0
  9. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarWeekHeader.js.map +1 -0
  10. package/cjs/packages/vuu-ui-controls/src/calendar/internal/useFocusManagement.js.map +1 -0
  11. package/cjs/packages/vuu-ui-controls/src/calendar/internal/utils.js.map +1 -0
  12. package/cjs/packages/vuu-ui-controls/src/calendar/useCalendar.js.map +1 -0
  13. package/cjs/packages/vuu-ui-controls/src/calendar/useCalendarDay.js.map +1 -0
  14. package/cjs/packages/vuu-ui-controls/src/calendar/useSelection.js.map +1 -0
  15. package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js.map +1 -0
  16. package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js.map +1 -0
  17. package/cjs/packages/vuu-ui-controls/src/common-hooks/collectionProvider.js.map +1 -0
  18. package/cjs/packages/vuu-ui-controls/src/common-hooks/isPlainObject.js.map +1 -0
  19. package/cjs/packages/vuu-ui-controls/src/common-hooks/itemToString.js.map +1 -0
  20. package/cjs/packages/vuu-ui-controls/src/common-hooks/selectionTypes.js.map +1 -0
  21. package/cjs/packages/vuu-ui-controls/src/common-hooks/use-resize-observer.js.map +1 -0
  22. package/cjs/packages/vuu-ui-controls/src/common-hooks/useCollectionItems.js.map +1 -0
  23. package/cjs/packages/vuu-ui-controls/src/common-hooks/useControlled.js.map +1 -0
  24. package/cjs/packages/vuu-ui-controls/src/common-hooks/useSelection.js.map +1 -0
  25. package/cjs/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js +50 -0
  26. package/cjs/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js.map +1 -0
  27. package/cjs/packages/vuu-ui-controls/src/date-input/DateInput.js.map +1 -0
  28. package/cjs/packages/vuu-ui-controls/src/date-picker/DatePicker.js.map +1 -0
  29. package/cjs/packages/vuu-ui-controls/src/date-picker/DatePickerContext.js.map +1 -0
  30. package/cjs/packages/vuu-ui-controls/src/date-picker/DatePickerPanel.js.map +1 -0
  31. package/cjs/packages/vuu-ui-controls/src/drag-drop/DragDropProvider.js.map +1 -0
  32. package/cjs/packages/vuu-ui-controls/src/drag-drop/DragDropState.js.map +1 -0
  33. package/cjs/packages/vuu-ui-controls/src/drag-drop/Draggable.js +90 -0
  34. package/cjs/packages/vuu-ui-controls/src/drag-drop/Draggable.js.map +1 -0
  35. package/cjs/packages/vuu-ui-controls/src/drag-drop/dragDropTypes.js.map +1 -0
  36. package/cjs/packages/vuu-ui-controls/src/drag-drop/drop-target-utils.js.map +1 -0
  37. package/cjs/packages/vuu-ui-controls/src/drag-drop/useAutoScroll.js.map +1 -0
  38. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDisplacers.js.map +1 -0
  39. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js.map +1 -0
  40. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropCopy.js.map +1 -0
  41. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js.map +1 -0
  42. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js.map +1 -0
  43. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDropIndicator.js.map +1 -0
  44. package/cjs/packages/vuu-ui-controls/src/drag-drop/useGlobalDragDrop.js.map +1 -0
  45. package/cjs/packages/vuu-ui-controls/src/editable/useEditableText.js +125 -0
  46. package/cjs/packages/vuu-ui-controls/src/editable/useEditableText.js.map +1 -0
  47. package/cjs/packages/vuu-ui-controls/src/editable-label/EditableLabel.js.map +1 -0
  48. package/cjs/packages/vuu-ui-controls/src/expando-input/ExpandoInput.js.map +1 -0
  49. package/cjs/packages/vuu-ui-controls/src/icon-button/Icon.js.map +1 -0
  50. package/cjs/packages/vuu-ui-controls/src/icon-button/IconButton.js.map +1 -0
  51. package/cjs/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.css.js +6 -0
  52. package/cjs/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.js.map +1 -0
  53. package/cjs/packages/vuu-ui-controls/src/index.js +232 -0
  54. package/cjs/packages/vuu-ui-controls/src/index.js.map +1 -0
  55. package/cjs/packages/vuu-ui-controls/src/instrument-picker/TablePicker.js.map +1 -0
  56. package/cjs/packages/vuu-ui-controls/src/instrument-picker/useTablePicker.js.map +1 -0
  57. package/cjs/packages/vuu-ui-controls/src/list/Highlighter.js.map +1 -0
  58. package/cjs/packages/vuu-ui-controls/src/list/List.js.map +1 -0
  59. package/cjs/packages/vuu-ui-controls/src/list/ListItem.js.map +1 -0
  60. package/cjs/packages/vuu-ui-controls/src/list/ListItemGroup.js.map +1 -0
  61. package/cjs/packages/vuu-ui-controls/src/list/ListItemHeader.js.map +1 -0
  62. package/cjs/packages/vuu-ui-controls/src/list/RadioIcon.js.map +1 -0
  63. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/keyUtils.js.map +1 -0
  64. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/list-dom-utils.js.map +1 -0
  65. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useCollapsibleGroups.js.map +1 -0
  66. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useImperativeScrollingAPI.js.map +1 -0
  67. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useKeyboardNavigation.js.map +1 -0
  68. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useTypeahead.js.map +1 -0
  69. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/useViewportTracking.js.map +1 -0
  70. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/utils/collection-item-utils.js.map +1 -0
  71. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/utils/filter-utils.js.map +1 -0
  72. package/cjs/packages/vuu-ui-controls/src/list/common-hooks/utils/isSelected.js.map +1 -0
  73. package/cjs/packages/vuu-ui-controls/src/list/useList.js.map +1 -0
  74. package/cjs/packages/vuu-ui-controls/src/list/useListDrop.js.map +1 -0
  75. package/cjs/packages/vuu-ui-controls/src/list/useListHeight.js.map +1 -0
  76. package/cjs/packages/vuu-ui-controls/src/list/useScrollPosition.js.map +1 -0
  77. package/cjs/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js +70 -0
  78. package/cjs/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js.map +1 -0
  79. package/cjs/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js +140 -0
  80. package/cjs/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js.map +1 -0
  81. package/cjs/packages/vuu-ui-controls/src/measured-container/useResizeObserver.js.map +1 -0
  82. package/cjs/packages/vuu-ui-controls/src/overflow-container/OverflowContainer.js.map +1 -0
  83. package/cjs/packages/vuu-ui-controls/src/overflow-container/overflow-utils.js.map +1 -0
  84. package/cjs/packages/vuu-ui-controls/src/overflow-container/useOverflowContainer.js.map +1 -0
  85. package/cjs/packages/vuu-ui-controls/src/price-ticker/PriceTicker.js.map +1 -0
  86. package/cjs/packages/vuu-ui-controls/src/split-button/SplitButton.css.js +6 -0
  87. package/cjs/packages/vuu-ui-controls/src/split-button/SplitButton.js.map +1 -0
  88. package/cjs/packages/vuu-ui-controls/src/split-button/SplitStateButton.css.js +6 -0
  89. package/cjs/packages/vuu-ui-controls/src/split-button/SplitStateButton.js.map +1 -0
  90. package/cjs/packages/vuu-ui-controls/src/split-button/useSplitButton.js.map +1 -0
  91. package/cjs/packages/vuu-ui-controls/src/table-search/SearchCell.js.map +1 -0
  92. package/cjs/packages/vuu-ui-controls/src/table-search/TableSearch.js.map +1 -0
  93. package/cjs/packages/vuu-ui-controls/src/table-search/useTableSearch.js.map +1 -0
  94. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js +6 -0
  95. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js.map +1 -0
  96. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.js +41 -0
  97. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.js.map +1 -0
  98. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js +6 -0
  99. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js.map +1 -0
  100. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.js +124 -0
  101. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.js.map +1 -0
  102. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js +6 -0
  103. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js.map +1 -0
  104. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.js +110 -0
  105. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.js.map +1 -0
  106. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js +35 -0
  107. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js.map +1 -0
  108. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js +23 -0
  109. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js.map +1 -0
  110. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js +6 -0
  111. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js.map +1 -0
  112. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js +77 -0
  113. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js.map +1 -0
  114. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js +6 -0
  115. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js.map +1 -0
  116. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js +74 -0
  117. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js.map +1 -0
  118. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js +6 -0
  119. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js.map +1 -0
  120. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js +130 -0
  121. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js.map +1 -0
  122. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNext.js +174 -0
  123. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNext.js.map +1 -0
  124. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js +33 -0
  125. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js.map +1 -0
  126. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js +91 -0
  127. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js.map +1 -0
  128. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js +24 -0
  129. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js.map +1 -0
  130. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js +138 -0
  131. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js.map +1 -0
  132. package/cjs/packages/vuu-ui-controls/src/tabstrip/Tab.js.map +1 -0
  133. package/cjs/packages/vuu-ui-controls/src/tabstrip/TabMenu.js.map +1 -0
  134. package/cjs/packages/vuu-ui-controls/src/tabstrip/TabMenuOptions.js.map +1 -0
  135. package/cjs/packages/vuu-ui-controls/src/tabstrip/Tabstrip.css.js +6 -0
  136. package/cjs/packages/vuu-ui-controls/src/tabstrip/Tabstrip.js.map +1 -0
  137. package/cjs/packages/vuu-ui-controls/src/tabstrip/tabstrip-dom-utils.js.map +1 -0
  138. package/cjs/packages/vuu-ui-controls/src/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
  139. package/cjs/packages/vuu-ui-controls/src/tabstrip/useKeyboardNavigation.js.map +1 -0
  140. package/cjs/packages/vuu-ui-controls/src/tabstrip/useSelection.js.map +1 -0
  141. package/cjs/packages/vuu-ui-controls/src/tabstrip/useTabstrip.js.map +1 -0
  142. package/cjs/packages/vuu-ui-controls/src/toolbar/Toolbar.js.map +1 -0
  143. package/cjs/packages/vuu-ui-controls/src/toolbar/toolbar-dom-utils.js.map +1 -0
  144. package/cjs/packages/vuu-ui-controls/src/toolbar/useKeyboardNavigation.js.map +1 -0
  145. package/cjs/packages/vuu-ui-controls/src/toolbar/useSelection.js.map +1 -0
  146. package/cjs/packages/vuu-ui-controls/src/toolbar/useToolbar.js.map +1 -0
  147. package/cjs/packages/vuu-ui-controls/src/utils/escapeRegExp.js.map +1 -0
  148. package/cjs/packages/vuu-ui-controls/src/utils/forwardCallbackProps.js.map +1 -0
  149. package/cjs/packages/vuu-ui-controls/src/utils/isOverflowElement.js.map +1 -0
  150. package/cjs/packages/vuu-ui-controls/src/utils/isPlainObject.js.map +1 -0
  151. package/cjs/packages/vuu-ui-controls/src/vuu-date-picker/VuuDatePicker.js.map +1 -0
  152. package/cjs/packages/vuu-ui-controls/src/vuu-input/VuuInput.js.map +1 -0
  153. package/cjs/packages/vuu-ui-controls/src/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
  154. package/cjs/packages/vuu-ui-controls/src/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
  155. package/esm/node_modules/tabbable/dist/index.esm.js +536 -0
  156. package/esm/node_modules/tabbable/dist/index.esm.js.map +1 -0
  157. package/esm/packages/vuu-ui-controls/src/calendar/Calendar.js.map +1 -0
  158. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarCarousel.js.map +1 -0
  159. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarContext.js.map +1 -0
  160. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarDay.js.map +1 -0
  161. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarMonth.js.map +1 -0
  162. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarNavigation.js.map +1 -0
  163. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarWeekHeader.js.map +1 -0
  164. package/esm/packages/vuu-ui-controls/src/calendar/internal/useFocusManagement.js.map +1 -0
  165. package/esm/packages/vuu-ui-controls/src/calendar/internal/utils.js.map +1 -0
  166. package/esm/packages/vuu-ui-controls/src/calendar/useCalendar.js.map +1 -0
  167. package/esm/packages/vuu-ui-controls/src/calendar/useCalendarDay.js.map +1 -0
  168. package/esm/packages/vuu-ui-controls/src/calendar/useSelection.js.map +1 -0
  169. package/esm/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js.map +1 -0
  170. package/esm/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js.map +1 -0
  171. package/esm/packages/vuu-ui-controls/src/common-hooks/collectionProvider.js.map +1 -0
  172. package/esm/packages/vuu-ui-controls/src/common-hooks/isPlainObject.js.map +1 -0
  173. package/esm/packages/vuu-ui-controls/src/common-hooks/itemToString.js.map +1 -0
  174. package/esm/packages/vuu-ui-controls/src/common-hooks/selectionTypes.js.map +1 -0
  175. package/esm/packages/vuu-ui-controls/src/common-hooks/use-resize-observer.js.map +1 -0
  176. package/esm/packages/vuu-ui-controls/src/common-hooks/useCollectionItems.js.map +1 -0
  177. package/esm/packages/vuu-ui-controls/src/common-hooks/useControlled.js.map +1 -0
  178. package/esm/packages/vuu-ui-controls/src/common-hooks/useSelection.js.map +1 -0
  179. package/esm/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js +48 -0
  180. package/esm/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js.map +1 -0
  181. package/esm/packages/vuu-ui-controls/src/date-input/DateInput.js.map +1 -0
  182. package/esm/packages/vuu-ui-controls/src/date-picker/DatePicker.js.map +1 -0
  183. package/esm/packages/vuu-ui-controls/src/date-picker/DatePickerContext.js.map +1 -0
  184. package/esm/packages/vuu-ui-controls/src/date-picker/DatePickerPanel.js.map +1 -0
  185. package/esm/packages/vuu-ui-controls/src/drag-drop/DragDropProvider.js.map +1 -0
  186. package/esm/packages/vuu-ui-controls/src/drag-drop/DragDropState.js.map +1 -0
  187. package/esm/packages/vuu-ui-controls/src/drag-drop/Draggable.js +85 -0
  188. package/esm/packages/vuu-ui-controls/src/drag-drop/Draggable.js.map +1 -0
  189. package/esm/packages/vuu-ui-controls/src/drag-drop/dragDropTypes.js.map +1 -0
  190. package/esm/packages/vuu-ui-controls/src/drag-drop/drop-target-utils.js.map +1 -0
  191. package/esm/packages/vuu-ui-controls/src/drag-drop/useAutoScroll.js.map +1 -0
  192. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDisplacers.js.map +1 -0
  193. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js +502 -0
  194. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js.map +1 -0
  195. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropCopy.js.map +1 -0
  196. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js +249 -0
  197. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js.map +1 -0
  198. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js +263 -0
  199. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js.map +1 -0
  200. package/esm/packages/vuu-ui-controls/src/drag-drop/useDropIndicator.js.map +1 -0
  201. package/esm/packages/vuu-ui-controls/src/drag-drop/useGlobalDragDrop.js.map +1 -0
  202. package/esm/packages/vuu-ui-controls/src/editable/useEditableText.js +123 -0
  203. package/esm/packages/vuu-ui-controls/src/editable/useEditableText.js.map +1 -0
  204. package/esm/packages/vuu-ui-controls/src/editable-label/EditableLabel.js.map +1 -0
  205. package/esm/packages/vuu-ui-controls/src/expando-input/ExpandoInput.js.map +1 -0
  206. package/esm/packages/vuu-ui-controls/src/icon-button/Icon.js.map +1 -0
  207. package/esm/packages/vuu-ui-controls/src/icon-button/IconButton.js.map +1 -0
  208. package/esm/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.css.js +4 -0
  209. package/esm/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.js.map +1 -0
  210. package/esm/packages/vuu-ui-controls/src/index.js +73 -0
  211. package/esm/packages/vuu-ui-controls/src/index.js.map +1 -0
  212. package/esm/packages/vuu-ui-controls/src/instrument-picker/TablePicker.js.map +1 -0
  213. package/esm/packages/vuu-ui-controls/src/instrument-picker/useTablePicker.js.map +1 -0
  214. package/esm/packages/vuu-ui-controls/src/list/Highlighter.js.map +1 -0
  215. package/esm/packages/vuu-ui-controls/src/list/List.js.map +1 -0
  216. package/esm/packages/vuu-ui-controls/src/list/ListItem.js.map +1 -0
  217. package/esm/packages/vuu-ui-controls/src/list/ListItemGroup.js.map +1 -0
  218. package/esm/packages/vuu-ui-controls/src/list/ListItemHeader.js.map +1 -0
  219. package/esm/packages/vuu-ui-controls/src/list/RadioIcon.js.map +1 -0
  220. package/esm/packages/vuu-ui-controls/src/list/common-hooks/keyUtils.js.map +1 -0
  221. package/esm/packages/vuu-ui-controls/src/list/common-hooks/list-dom-utils.js.map +1 -0
  222. package/esm/packages/vuu-ui-controls/src/list/common-hooks/useCollapsibleGroups.js.map +1 -0
  223. package/esm/packages/vuu-ui-controls/src/list/common-hooks/useImperativeScrollingAPI.js.map +1 -0
  224. package/esm/packages/vuu-ui-controls/src/list/common-hooks/useKeyboardNavigation.js.map +1 -0
  225. package/esm/packages/vuu-ui-controls/src/list/common-hooks/useTypeahead.js.map +1 -0
  226. package/esm/packages/vuu-ui-controls/src/list/common-hooks/useViewportTracking.js.map +1 -0
  227. package/esm/packages/vuu-ui-controls/src/list/common-hooks/utils/collection-item-utils.js.map +1 -0
  228. package/esm/packages/vuu-ui-controls/src/list/common-hooks/utils/filter-utils.js.map +1 -0
  229. package/esm/packages/vuu-ui-controls/src/list/common-hooks/utils/isSelected.js.map +1 -0
  230. package/esm/packages/vuu-ui-controls/src/list/useList.js.map +1 -0
  231. package/esm/packages/vuu-ui-controls/src/list/useListDrop.js.map +1 -0
  232. package/esm/packages/vuu-ui-controls/src/list/useListHeight.js.map +1 -0
  233. package/esm/packages/vuu-ui-controls/src/list/useScrollPosition.js.map +1 -0
  234. package/esm/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js +68 -0
  235. package/esm/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js.map +1 -0
  236. package/esm/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js +137 -0
  237. package/esm/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js.map +1 -0
  238. package/esm/packages/vuu-ui-controls/src/measured-container/useResizeObserver.js.map +1 -0
  239. package/esm/packages/vuu-ui-controls/src/overflow-container/OverflowContainer.js.map +1 -0
  240. package/esm/packages/vuu-ui-controls/src/overflow-container/overflow-utils.js.map +1 -0
  241. package/esm/packages/vuu-ui-controls/src/overflow-container/useOverflowContainer.js.map +1 -0
  242. package/esm/packages/vuu-ui-controls/src/price-ticker/PriceTicker.js.map +1 -0
  243. package/esm/packages/vuu-ui-controls/src/split-button/SplitButton.css.js +4 -0
  244. package/esm/packages/vuu-ui-controls/src/split-button/SplitButton.js.map +1 -0
  245. package/esm/packages/vuu-ui-controls/src/split-button/SplitStateButton.css.js +4 -0
  246. package/esm/packages/vuu-ui-controls/src/split-button/SplitStateButton.js.map +1 -0
  247. package/esm/packages/vuu-ui-controls/src/split-button/useSplitButton.js.map +1 -0
  248. package/esm/packages/vuu-ui-controls/src/table-search/SearchCell.js.map +1 -0
  249. package/esm/packages/vuu-ui-controls/src/table-search/TableSearch.js.map +1 -0
  250. package/esm/packages/vuu-ui-controls/src/table-search/useTableSearch.js.map +1 -0
  251. package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js +4 -0
  252. package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.css.js.map +1 -0
  253. package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.js +39 -0
  254. package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.js.map +1 -0
  255. package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js +4 -0
  256. package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.css.js.map +1 -0
  257. package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.js +122 -0
  258. package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.js.map +1 -0
  259. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js +4 -0
  260. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.css.js.map +1 -0
  261. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.js +108 -0
  262. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.js.map +1 -0
  263. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js +33 -0
  264. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js.map +1 -0
  265. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js +20 -0
  266. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js.map +1 -0
  267. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js +4 -0
  268. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.css.js.map +1 -0
  269. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js +75 -0
  270. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js.map +1 -0
  271. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js +4 -0
  272. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.css.js.map +1 -0
  273. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js +72 -0
  274. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js.map +1 -0
  275. package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js +4 -0
  276. package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.css.js.map +1 -0
  277. package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js +128 -0
  278. package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js.map +1 -0
  279. package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNext.js +172 -0
  280. package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNext.js.map +1 -0
  281. package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js +30 -0
  282. package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js.map +1 -0
  283. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js +89 -0
  284. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js.map +1 -0
  285. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js +22 -0
  286. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js.map +1 -0
  287. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js +136 -0
  288. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js.map +1 -0
  289. package/esm/packages/vuu-ui-controls/src/tabstrip/Tab.js.map +1 -0
  290. package/esm/packages/vuu-ui-controls/src/tabstrip/TabMenu.js.map +1 -0
  291. package/esm/packages/vuu-ui-controls/src/tabstrip/TabMenuOptions.js.map +1 -0
  292. package/esm/packages/vuu-ui-controls/src/tabstrip/Tabstrip.css.js +4 -0
  293. package/esm/packages/vuu-ui-controls/src/tabstrip/Tabstrip.js.map +1 -0
  294. package/esm/packages/vuu-ui-controls/src/tabstrip/tabstrip-dom-utils.js.map +1 -0
  295. package/esm/packages/vuu-ui-controls/src/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
  296. package/esm/packages/vuu-ui-controls/src/tabstrip/useKeyboardNavigation.js.map +1 -0
  297. package/esm/packages/vuu-ui-controls/src/tabstrip/useSelection.js.map +1 -0
  298. package/esm/packages/vuu-ui-controls/src/tabstrip/useTabstrip.js.map +1 -0
  299. package/esm/packages/vuu-ui-controls/src/toolbar/Toolbar.js.map +1 -0
  300. package/esm/packages/vuu-ui-controls/src/toolbar/toolbar-dom-utils.js.map +1 -0
  301. package/esm/packages/vuu-ui-controls/src/toolbar/useKeyboardNavigation.js.map +1 -0
  302. package/esm/packages/vuu-ui-controls/src/toolbar/useSelection.js.map +1 -0
  303. package/esm/packages/vuu-ui-controls/src/toolbar/useToolbar.js.map +1 -0
  304. package/esm/packages/vuu-ui-controls/src/utils/escapeRegExp.js.map +1 -0
  305. package/esm/packages/vuu-ui-controls/src/utils/forwardCallbackProps.js.map +1 -0
  306. package/esm/packages/vuu-ui-controls/src/utils/isOverflowElement.js.map +1 -0
  307. package/esm/packages/vuu-ui-controls/src/utils/isPlainObject.js.map +1 -0
  308. package/esm/packages/vuu-ui-controls/src/vuu-date-picker/VuuDatePicker.js.map +1 -0
  309. package/esm/packages/vuu-ui-controls/src/vuu-input/VuuInput.js.map +1 -0
  310. package/esm/packages/vuu-ui-controls/src/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
  311. package/esm/packages/vuu-ui-controls/src/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
  312. package/package.json +9 -9
  313. package/types/calendar/Calendar.d.ts +0 -1
  314. package/types/calendar/internal/CalendarCarousel.d.ts +0 -1
  315. package/types/calendar/internal/CalendarContext.d.ts +0 -1
  316. package/types/calendar/useCalendar.d.ts +4 -4
  317. package/types/calendar/useCalendarDay.d.ts +2 -2
  318. package/types/column-picker/ColumnPicker.d.ts +0 -1
  319. package/types/common-hooks/collectionProvider.d.ts +1 -1
  320. package/types/common-hooks/selectionTypes.d.ts +1 -1
  321. package/types/cycle-state-button/CycleStateButton.d.ts +2 -4
  322. package/types/date-picker/DatePickerContext.d.ts +0 -1
  323. package/types/drag-drop/DragDropProvider.d.ts +1 -1
  324. package/types/drag-drop/DropIndicator.d.ts +1 -2
  325. package/types/drag-drop/drop-target-utils.d.ts +24 -20
  326. package/types/drag-drop/useAutoScroll.d.ts +2 -2
  327. package/types/drag-drop/useGlobalDragDrop.d.ts +0 -1
  328. package/types/editable/useEditableText.d.ts +5 -6
  329. package/types/expando-input/ExpandoInput.d.ts +0 -1
  330. package/types/icon-button/Icon.d.ts +1 -1
  331. package/types/icon-button/IconButton.d.ts +0 -1
  332. package/types/icon-button/ToggleIconButton.d.ts +1 -2
  333. package/types/index.d.ts +1 -1
  334. package/types/instrument-picker/SearchCell.d.ts +1 -2
  335. package/types/instrument-picker/TablePicker.d.ts +1 -1
  336. package/types/instrument-picker/useTablePicker.d.ts +3 -10
  337. package/types/list/ChevronIcon.d.ts +1 -1
  338. package/types/list/ListItem.d.ts +1 -1
  339. package/types/list/RadioIcon.d.ts +1 -2
  340. package/types/list/common-hooks/useTypeahead.d.ts +0 -1
  341. package/types/overflow-container/useOverflowContainer.d.ts +4 -5
  342. package/types/price-ticker/PriceTicker.d.ts +1 -1
  343. package/types/split-button/SplitStateButton.d.ts +0 -1
  344. package/types/split-button/useSplitButton.d.ts +58 -55
  345. package/types/table-search/SearchCell.d.ts +1 -2
  346. package/types/table-search/TableSearch.d.ts +1 -1
  347. package/types/tabs-next/TabBar.d.ts +12 -0
  348. package/types/tabs-next/TabListNext.d.ts +12 -0
  349. package/types/tabs-next/TabNext.d.ts +12 -0
  350. package/types/tabs-next/TabNextAction.d.ts +5 -0
  351. package/types/tabs-next/TabNextContext.d.ts +12 -0
  352. package/types/tabs-next/TabNextPanel.d.ts +8 -0
  353. package/types/tabs-next/TabNextTrigger.d.ts +5 -0
  354. package/types/tabs-next/TabOverflowList.d.ts +11 -0
  355. package/types/tabs-next/TabsNext.d.ts +17 -0
  356. package/types/tabs-next/TabsNextContext.d.ts +21 -0
  357. package/types/tabs-next/hooks/useCollection.d.ts +18 -0
  358. package/types/tabs-next/hooks/useFocusOutside.d.ts +2 -0
  359. package/types/tabs-next/hooks/useOverflow.d.ts +11 -0
  360. package/types/tabs-next/index.d.ts +7 -0
  361. package/types/tabstrip/Tab.d.ts +23 -22
  362. package/types/tabstrip/TabMenu.d.ts +1 -2
  363. package/types/tabstrip/Tabstrip.d.ts +1 -2
  364. package/types/tabstrip/useSelection.d.ts +3 -3
  365. package/types/tabstrip/useTabstrip.d.ts +5 -5
  366. package/types/toolbar/Toolbar.d.ts +1 -2
  367. package/types/toolbar/useToolbar.d.ts +1 -1
  368. package/types/vuu-date-picker/VuuDatePicker.d.ts +4 -6
  369. package/types/vuu-typeahead-input/VuuTypeaheadInput.d.ts +1 -2
  370. package/cjs/calendar/Calendar.js.map +0 -1
  371. package/cjs/calendar/internal/CalendarCarousel.js.map +0 -1
  372. package/cjs/calendar/internal/CalendarContext.js.map +0 -1
  373. package/cjs/calendar/internal/CalendarDay.js.map +0 -1
  374. package/cjs/calendar/internal/CalendarMonth.js.map +0 -1
  375. package/cjs/calendar/internal/CalendarNavigation.js.map +0 -1
  376. package/cjs/calendar/internal/CalendarWeekHeader.js.map +0 -1
  377. package/cjs/calendar/internal/useFocusManagement.js.map +0 -1
  378. package/cjs/calendar/internal/utils.js.map +0 -1
  379. package/cjs/calendar/useCalendar.js.map +0 -1
  380. package/cjs/calendar/useCalendarDay.js.map +0 -1
  381. package/cjs/calendar/useSelection.js.map +0 -1
  382. package/cjs/column-picker/ColumnPicker.js.map +0 -1
  383. package/cjs/column-picker/ColumnSearch.js.map +0 -1
  384. package/cjs/common-hooks/collectionProvider.js.map +0 -1
  385. package/cjs/common-hooks/isPlainObject.js.map +0 -1
  386. package/cjs/common-hooks/itemToString.js.map +0 -1
  387. package/cjs/common-hooks/selectionTypes.js.map +0 -1
  388. package/cjs/common-hooks/use-resize-observer.js.map +0 -1
  389. package/cjs/common-hooks/useCollectionItems.js.map +0 -1
  390. package/cjs/common-hooks/useControlled.js.map +0 -1
  391. package/cjs/common-hooks/useSelection.js.map +0 -1
  392. package/cjs/cycle-state-button/CycleStateButton.js +0 -54
  393. package/cjs/cycle-state-button/CycleStateButton.js.map +0 -1
  394. package/cjs/date-input/DateInput.js.map +0 -1
  395. package/cjs/date-picker/DatePicker.js.map +0 -1
  396. package/cjs/date-picker/DatePickerContext.js.map +0 -1
  397. package/cjs/date-picker/DatePickerPanel.js.map +0 -1
  398. package/cjs/drag-drop/DragDropProvider.js.map +0 -1
  399. package/cjs/drag-drop/DragDropState.js.map +0 -1
  400. package/cjs/drag-drop/Draggable.js +0 -95
  401. package/cjs/drag-drop/Draggable.js.map +0 -1
  402. package/cjs/drag-drop/dragDropTypes.js.map +0 -1
  403. package/cjs/drag-drop/drop-target-utils.js.map +0 -1
  404. package/cjs/drag-drop/useAutoScroll.js.map +0 -1
  405. package/cjs/drag-drop/useDragDisplacers.js.map +0 -1
  406. package/cjs/drag-drop/useDragDrop.js.map +0 -1
  407. package/cjs/drag-drop/useDragDropCopy.js.map +0 -1
  408. package/cjs/drag-drop/useDragDropIndicator.js.map +0 -1
  409. package/cjs/drag-drop/useDragDropNaturalMovement.js.map +0 -1
  410. package/cjs/drag-drop/useDropIndicator.js.map +0 -1
  411. package/cjs/drag-drop/useGlobalDragDrop.js.map +0 -1
  412. package/cjs/editable/useEditableText.js +0 -106
  413. package/cjs/editable/useEditableText.js.map +0 -1
  414. package/cjs/editable-label/EditableLabel.js.map +0 -1
  415. package/cjs/expando-input/ExpandoInput.js.map +0 -1
  416. package/cjs/icon-button/Icon.js.map +0 -1
  417. package/cjs/icon-button/IconButton.js.map +0 -1
  418. package/cjs/icon-button/ToggleIconButton.css.js +0 -6
  419. package/cjs/icon-button/ToggleIconButton.js.map +0 -1
  420. package/cjs/index.js +0 -224
  421. package/cjs/index.js.map +0 -1
  422. package/cjs/instrument-picker/TablePicker.js.map +0 -1
  423. package/cjs/instrument-picker/useTablePicker.js.map +0 -1
  424. package/cjs/list/Highlighter.js.map +0 -1
  425. package/cjs/list/List.js.map +0 -1
  426. package/cjs/list/ListItem.js.map +0 -1
  427. package/cjs/list/ListItemGroup.js.map +0 -1
  428. package/cjs/list/ListItemHeader.js.map +0 -1
  429. package/cjs/list/RadioIcon.js.map +0 -1
  430. package/cjs/list/common-hooks/keyUtils.js.map +0 -1
  431. package/cjs/list/common-hooks/list-dom-utils.js.map +0 -1
  432. package/cjs/list/common-hooks/useCollapsibleGroups.js.map +0 -1
  433. package/cjs/list/common-hooks/useImperativeScrollingAPI.js.map +0 -1
  434. package/cjs/list/common-hooks/useKeyboardNavigation.js.map +0 -1
  435. package/cjs/list/common-hooks/useTypeahead.js.map +0 -1
  436. package/cjs/list/common-hooks/useViewportTracking.js.map +0 -1
  437. package/cjs/list/common-hooks/utils/collection-item-utils.js.map +0 -1
  438. package/cjs/list/common-hooks/utils/filter-utils.js.map +0 -1
  439. package/cjs/list/common-hooks/utils/isSelected.js.map +0 -1
  440. package/cjs/list/useList.js.map +0 -1
  441. package/cjs/list/useListDrop.js.map +0 -1
  442. package/cjs/list/useListHeight.js.map +0 -1
  443. package/cjs/list/useScrollPosition.js.map +0 -1
  444. package/cjs/measured-container/MeasuredContainer.js +0 -69
  445. package/cjs/measured-container/MeasuredContainer.js.map +0 -1
  446. package/cjs/measured-container/useMeasuredContainer.js +0 -137
  447. package/cjs/measured-container/useMeasuredContainer.js.map +0 -1
  448. package/cjs/measured-container/useResizeObserver.js.map +0 -1
  449. package/cjs/overflow-container/OverflowContainer.js.map +0 -1
  450. package/cjs/overflow-container/overflow-utils.js.map +0 -1
  451. package/cjs/overflow-container/useOverflowContainer.js.map +0 -1
  452. package/cjs/price-ticker/PriceTicker.js.map +0 -1
  453. package/cjs/split-button/SplitButton.css.js +0 -6
  454. package/cjs/split-button/SplitButton.js.map +0 -1
  455. package/cjs/split-button/SplitStateButton.css.js +0 -6
  456. package/cjs/split-button/SplitStateButton.js.map +0 -1
  457. package/cjs/split-button/useSplitButton.js.map +0 -1
  458. package/cjs/table-search/SearchCell.js.map +0 -1
  459. package/cjs/table-search/TableSearch.js.map +0 -1
  460. package/cjs/table-search/useTableSearch.js.map +0 -1
  461. package/cjs/tabstrip/Tab.js.map +0 -1
  462. package/cjs/tabstrip/TabMenu.js.map +0 -1
  463. package/cjs/tabstrip/TabMenuOptions.js.map +0 -1
  464. package/cjs/tabstrip/Tabstrip.css.js +0 -6
  465. package/cjs/tabstrip/Tabstrip.js.map +0 -1
  466. package/cjs/tabstrip/tabstrip-dom-utils.js.map +0 -1
  467. package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
  468. package/cjs/tabstrip/useKeyboardNavigation.js.map +0 -1
  469. package/cjs/tabstrip/useSelection.js.map +0 -1
  470. package/cjs/tabstrip/useTabstrip.js.map +0 -1
  471. package/cjs/toolbar/Toolbar.js.map +0 -1
  472. package/cjs/toolbar/toolbar-dom-utils.js.map +0 -1
  473. package/cjs/toolbar/useKeyboardNavigation.js.map +0 -1
  474. package/cjs/toolbar/useSelection.js.map +0 -1
  475. package/cjs/toolbar/useToolbar.js.map +0 -1
  476. package/cjs/tree/Tree.css.js +0 -6
  477. package/cjs/tree/Tree.css.js.map +0 -1
  478. package/cjs/tree/Tree.js +0 -179
  479. package/cjs/tree/Tree.js.map +0 -1
  480. package/cjs/tree/hierarchical-data-utils.js +0 -72
  481. package/cjs/tree/hierarchical-data-utils.js.map +0 -1
  482. package/cjs/tree/key-code.js +0 -62
  483. package/cjs/tree/key-code.js.map +0 -1
  484. package/cjs/tree/list-dom-utils.js +0 -19
  485. package/cjs/tree/list-dom-utils.js.map +0 -1
  486. package/cjs/tree/treeTypeUtils.js +0 -6
  487. package/cjs/tree/treeTypeUtils.js.map +0 -1
  488. package/cjs/tree/use-collapsible-groups.js +0 -85
  489. package/cjs/tree/use-collapsible-groups.js.map +0 -1
  490. package/cjs/tree/use-hierarchical-data.js +0 -51
  491. package/cjs/tree/use-hierarchical-data.js.map +0 -1
  492. package/cjs/tree/use-items-with-ids.js +0 -100
  493. package/cjs/tree/use-items-with-ids.js.map +0 -1
  494. package/cjs/tree/use-keyboard-navigation.js +0 -144
  495. package/cjs/tree/use-keyboard-navigation.js.map +0 -1
  496. package/cjs/tree/use-selection.js +0 -154
  497. package/cjs/tree/use-selection.js.map +0 -1
  498. package/cjs/tree/use-tree-keyboard-navigation.js +0 -41
  499. package/cjs/tree/use-tree-keyboard-navigation.js.map +0 -1
  500. package/cjs/tree/use-viewport-tracking.js +0 -76
  501. package/cjs/tree/use-viewport-tracking.js.map +0 -1
  502. package/cjs/tree/useTree.js +0 -106
  503. package/cjs/tree/useTree.js.map +0 -1
  504. package/cjs/utils/escapeRegExp.js.map +0 -1
  505. package/cjs/utils/forwardCallbackProps.js.map +0 -1
  506. package/cjs/utils/isOverflowElement.js.map +0 -1
  507. package/cjs/utils/isPlainObject.js.map +0 -1
  508. package/cjs/vuu-date-picker/VuuDatePicker.js.map +0 -1
  509. package/cjs/vuu-input/VuuInput.js.map +0 -1
  510. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
  511. package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
  512. package/esm/calendar/Calendar.js.map +0 -1
  513. package/esm/calendar/internal/CalendarCarousel.js.map +0 -1
  514. package/esm/calendar/internal/CalendarContext.js.map +0 -1
  515. package/esm/calendar/internal/CalendarDay.js.map +0 -1
  516. package/esm/calendar/internal/CalendarMonth.js.map +0 -1
  517. package/esm/calendar/internal/CalendarNavigation.js.map +0 -1
  518. package/esm/calendar/internal/CalendarWeekHeader.js.map +0 -1
  519. package/esm/calendar/internal/useFocusManagement.js.map +0 -1
  520. package/esm/calendar/internal/utils.js.map +0 -1
  521. package/esm/calendar/useCalendar.js.map +0 -1
  522. package/esm/calendar/useCalendarDay.js.map +0 -1
  523. package/esm/calendar/useSelection.js.map +0 -1
  524. package/esm/column-picker/ColumnPicker.js.map +0 -1
  525. package/esm/column-picker/ColumnSearch.js.map +0 -1
  526. package/esm/common-hooks/collectionProvider.js.map +0 -1
  527. package/esm/common-hooks/isPlainObject.js.map +0 -1
  528. package/esm/common-hooks/itemToString.js.map +0 -1
  529. package/esm/common-hooks/selectionTypes.js.map +0 -1
  530. package/esm/common-hooks/use-resize-observer.js.map +0 -1
  531. package/esm/common-hooks/useCollectionItems.js.map +0 -1
  532. package/esm/common-hooks/useControlled.js.map +0 -1
  533. package/esm/common-hooks/useSelection.js.map +0 -1
  534. package/esm/cycle-state-button/CycleStateButton.js +0 -52
  535. package/esm/cycle-state-button/CycleStateButton.js.map +0 -1
  536. package/esm/date-input/DateInput.js.map +0 -1
  537. package/esm/date-picker/DatePicker.js.map +0 -1
  538. package/esm/date-picker/DatePickerContext.js.map +0 -1
  539. package/esm/date-picker/DatePickerPanel.js.map +0 -1
  540. package/esm/drag-drop/DragDropProvider.js.map +0 -1
  541. package/esm/drag-drop/DragDropState.js.map +0 -1
  542. package/esm/drag-drop/Draggable.js +0 -90
  543. package/esm/drag-drop/Draggable.js.map +0 -1
  544. package/esm/drag-drop/dragDropTypes.js.map +0 -1
  545. package/esm/drag-drop/drop-target-utils.js.map +0 -1
  546. package/esm/drag-drop/useAutoScroll.js.map +0 -1
  547. package/esm/drag-drop/useDragDisplacers.js.map +0 -1
  548. package/esm/drag-drop/useDragDrop.js +0 -502
  549. package/esm/drag-drop/useDragDrop.js.map +0 -1
  550. package/esm/drag-drop/useDragDropCopy.js.map +0 -1
  551. package/esm/drag-drop/useDragDropIndicator.js +0 -249
  552. package/esm/drag-drop/useDragDropIndicator.js.map +0 -1
  553. package/esm/drag-drop/useDragDropNaturalMovement.js +0 -263
  554. package/esm/drag-drop/useDragDropNaturalMovement.js.map +0 -1
  555. package/esm/drag-drop/useDropIndicator.js.map +0 -1
  556. package/esm/drag-drop/useGlobalDragDrop.js.map +0 -1
  557. package/esm/editable/useEditableText.js +0 -103
  558. package/esm/editable/useEditableText.js.map +0 -1
  559. package/esm/editable-label/EditableLabel.js.map +0 -1
  560. package/esm/expando-input/ExpandoInput.js.map +0 -1
  561. package/esm/icon-button/Icon.js.map +0 -1
  562. package/esm/icon-button/IconButton.js.map +0 -1
  563. package/esm/icon-button/ToggleIconButton.css.js +0 -4
  564. package/esm/icon-button/ToggleIconButton.js.map +0 -1
  565. package/esm/index.js +0 -68
  566. package/esm/index.js.map +0 -1
  567. package/esm/instrument-picker/TablePicker.js.map +0 -1
  568. package/esm/instrument-picker/useTablePicker.js.map +0 -1
  569. package/esm/list/Highlighter.js.map +0 -1
  570. package/esm/list/List.js.map +0 -1
  571. package/esm/list/ListItem.js.map +0 -1
  572. package/esm/list/ListItemGroup.js.map +0 -1
  573. package/esm/list/ListItemHeader.js.map +0 -1
  574. package/esm/list/RadioIcon.js.map +0 -1
  575. package/esm/list/common-hooks/keyUtils.js.map +0 -1
  576. package/esm/list/common-hooks/list-dom-utils.js.map +0 -1
  577. package/esm/list/common-hooks/useCollapsibleGroups.js.map +0 -1
  578. package/esm/list/common-hooks/useImperativeScrollingAPI.js.map +0 -1
  579. package/esm/list/common-hooks/useKeyboardNavigation.js.map +0 -1
  580. package/esm/list/common-hooks/useTypeahead.js.map +0 -1
  581. package/esm/list/common-hooks/useViewportTracking.js.map +0 -1
  582. package/esm/list/common-hooks/utils/collection-item-utils.js.map +0 -1
  583. package/esm/list/common-hooks/utils/filter-utils.js.map +0 -1
  584. package/esm/list/common-hooks/utils/isSelected.js.map +0 -1
  585. package/esm/list/useList.js.map +0 -1
  586. package/esm/list/useListDrop.js.map +0 -1
  587. package/esm/list/useListHeight.js.map +0 -1
  588. package/esm/list/useScrollPosition.js.map +0 -1
  589. package/esm/measured-container/MeasuredContainer.js +0 -67
  590. package/esm/measured-container/MeasuredContainer.js.map +0 -1
  591. package/esm/measured-container/useMeasuredContainer.js +0 -134
  592. package/esm/measured-container/useMeasuredContainer.js.map +0 -1
  593. package/esm/measured-container/useResizeObserver.js.map +0 -1
  594. package/esm/overflow-container/OverflowContainer.js.map +0 -1
  595. package/esm/overflow-container/overflow-utils.js.map +0 -1
  596. package/esm/overflow-container/useOverflowContainer.js.map +0 -1
  597. package/esm/price-ticker/PriceTicker.js.map +0 -1
  598. package/esm/split-button/SplitButton.css.js +0 -4
  599. package/esm/split-button/SplitButton.js.map +0 -1
  600. package/esm/split-button/SplitStateButton.css.js +0 -4
  601. package/esm/split-button/SplitStateButton.js.map +0 -1
  602. package/esm/split-button/useSplitButton.js.map +0 -1
  603. package/esm/table-search/SearchCell.js.map +0 -1
  604. package/esm/table-search/TableSearch.js.map +0 -1
  605. package/esm/table-search/useTableSearch.js.map +0 -1
  606. package/esm/tabstrip/Tab.js.map +0 -1
  607. package/esm/tabstrip/TabMenu.js.map +0 -1
  608. package/esm/tabstrip/TabMenuOptions.js.map +0 -1
  609. package/esm/tabstrip/Tabstrip.css.js +0 -4
  610. package/esm/tabstrip/Tabstrip.js.map +0 -1
  611. package/esm/tabstrip/tabstrip-dom-utils.js.map +0 -1
  612. package/esm/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
  613. package/esm/tabstrip/useKeyboardNavigation.js.map +0 -1
  614. package/esm/tabstrip/useSelection.js.map +0 -1
  615. package/esm/tabstrip/useTabstrip.js.map +0 -1
  616. package/esm/toolbar/Toolbar.js.map +0 -1
  617. package/esm/toolbar/toolbar-dom-utils.js.map +0 -1
  618. package/esm/toolbar/useKeyboardNavigation.js.map +0 -1
  619. package/esm/toolbar/useSelection.js.map +0 -1
  620. package/esm/toolbar/useToolbar.js.map +0 -1
  621. package/esm/tree/Tree.css.js +0 -4
  622. package/esm/tree/Tree.css.js.map +0 -1
  623. package/esm/tree/Tree.js +0 -176
  624. package/esm/tree/Tree.js.map +0 -1
  625. package/esm/tree/hierarchical-data-utils.js +0 -65
  626. package/esm/tree/hierarchical-data-utils.js.map +0 -1
  627. package/esm/tree/key-code.js +0 -54
  628. package/esm/tree/key-code.js.map +0 -1
  629. package/esm/tree/list-dom-utils.js +0 -15
  630. package/esm/tree/list-dom-utils.js.map +0 -1
  631. package/esm/tree/treeTypeUtils.js +0 -4
  632. package/esm/tree/treeTypeUtils.js.map +0 -1
  633. package/esm/tree/use-collapsible-groups.js +0 -83
  634. package/esm/tree/use-collapsible-groups.js.map +0 -1
  635. package/esm/tree/use-hierarchical-data.js +0 -49
  636. package/esm/tree/use-hierarchical-data.js.map +0 -1
  637. package/esm/tree/use-items-with-ids.js +0 -98
  638. package/esm/tree/use-items-with-ids.js.map +0 -1
  639. package/esm/tree/use-keyboard-navigation.js +0 -142
  640. package/esm/tree/use-keyboard-navigation.js.map +0 -1
  641. package/esm/tree/use-selection.js +0 -147
  642. package/esm/tree/use-selection.js.map +0 -1
  643. package/esm/tree/use-tree-keyboard-navigation.js +0 -39
  644. package/esm/tree/use-tree-keyboard-navigation.js.map +0 -1
  645. package/esm/tree/use-viewport-tracking.js +0 -74
  646. package/esm/tree/use-viewport-tracking.js.map +0 -1
  647. package/esm/tree/useTree.js +0 -104
  648. package/esm/tree/useTree.js.map +0 -1
  649. package/esm/utils/escapeRegExp.js.map +0 -1
  650. package/esm/utils/forwardCallbackProps.js.map +0 -1
  651. package/esm/utils/isOverflowElement.js.map +0 -1
  652. package/esm/utils/isPlainObject.js.map +0 -1
  653. package/esm/vuu-date-picker/VuuDatePicker.js.map +0 -1
  654. package/esm/vuu-input/VuuInput.js.map +0 -1
  655. package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
  656. package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
  657. package/types/tree/Tree.d.ts +0 -19
  658. package/types/tree/hierarchical-data-utils.d.ts +0 -8
  659. package/types/tree/index.d.ts +0 -3
  660. package/types/tree/key-code.d.ts +0 -11
  661. package/types/tree/list-dom-utils.d.ts +0 -6
  662. package/types/tree/treeTypeUtils.d.ts +0 -2
  663. package/types/tree/use-collapsible-groups.d.ts +0 -18
  664. package/types/tree/use-hierarchical-data.d.ts +0 -6
  665. package/types/tree/use-items-with-ids.d.ts +0 -8
  666. package/types/tree/use-keyboard-navigation.d.ts +0 -26
  667. package/types/tree/use-selection.d.ts +0 -31
  668. package/types/tree/use-tree-keyboard-navigation.d.ts +0 -12
  669. package/types/tree/use-viewport-tracking.d.ts +0 -2
  670. package/types/tree/useTree.d.ts +0 -30
  671. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js +0 -0
  672. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js.map +0 -0
  673. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.js +0 -0
  674. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js +0 -0
  675. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js.map +0 -0
  676. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.js +0 -0
  677. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarContext.js +0 -0
  678. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js +0 -0
  679. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js.map +0 -0
  680. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.js +0 -0
  681. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js +0 -0
  682. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js.map +0 -0
  683. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.js +0 -0
  684. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js +0 -0
  685. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js.map +0 -0
  686. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.js +0 -0
  687. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js +0 -0
  688. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js.map +0 -0
  689. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.js +0 -0
  690. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/useFocusManagement.js +0 -0
  691. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/utils.js +0 -0
  692. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendar.js +0 -0
  693. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendarDay.js +0 -0
  694. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useSelection.js +0 -0
  695. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js +0 -0
  696. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js.map +0 -0
  697. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.js +0 -0
  698. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js +0 -0
  699. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js.map +0 -0
  700. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.js +0 -0
  701. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/collectionProvider.js +0 -0
  702. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/isPlainObject.js +0 -0
  703. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/itemToString.js +0 -0
  704. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/selectionTypes.js +0 -0
  705. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/use-resize-observer.js +0 -0
  706. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useCollectionItems.js +0 -0
  707. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useControlled.js +0 -0
  708. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useSelection.js +0 -0
  709. /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js +0 -0
  710. /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js.map +0 -0
  711. /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.js +0 -0
  712. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePicker.js +0 -0
  713. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerContext.js +0 -0
  714. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js +0 -0
  715. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js.map +0 -0
  716. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.js +0 -0
  717. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropProvider.js +0 -0
  718. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropState.js +0 -0
  719. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js +0 -0
  720. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js.map +0 -0
  721. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/dragDropTypes.js +0 -0
  722. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/drop-target-utils.js +0 -0
  723. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useAutoScroll.js +0 -0
  724. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDisplacers.js +0 -0
  725. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDrop.js +0 -0
  726. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropCopy.js +0 -0
  727. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropIndicator.js +0 -0
  728. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropNaturalMovement.js +0 -0
  729. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDropIndicator.js +0 -0
  730. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useGlobalDragDrop.js +0 -0
  731. /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js +0 -0
  732. /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js.map +0 -0
  733. /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.js +0 -0
  734. /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js +0 -0
  735. /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js.map +0 -0
  736. /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.js +0 -0
  737. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js +0 -0
  738. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js.map +0 -0
  739. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.js +0 -0
  740. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js +0 -0
  741. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js.map +0 -0
  742. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.js +0 -0
  743. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js.map +0 -0
  744. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.js +0 -0
  745. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js +0 -0
  746. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js.map +0 -0
  747. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.js +0 -0
  748. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/useTablePicker.js +0 -0
  749. /package/cjs/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js +0 -0
  750. /package/cjs/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js.map +0 -0
  751. /package/cjs/{list → packages/vuu-ui-controls/src/list}/Highlighter.js +0 -0
  752. /package/cjs/{list → packages/vuu-ui-controls/src/list}/List.css.js +0 -0
  753. /package/cjs/{list → packages/vuu-ui-controls/src/list}/List.css.js.map +0 -0
  754. /package/cjs/{list → packages/vuu-ui-controls/src/list}/List.js +0 -0
  755. /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js +0 -0
  756. /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js.map +0 -0
  757. /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItem.js +0 -0
  758. /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItemGroup.js +0 -0
  759. /package/cjs/{list → packages/vuu-ui-controls/src/list}/ListItemHeader.js +0 -0
  760. /package/cjs/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js +0 -0
  761. /package/cjs/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js.map +0 -0
  762. /package/cjs/{list → packages/vuu-ui-controls/src/list}/RadioIcon.js +0 -0
  763. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/keyUtils.js +0 -0
  764. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/list-dom-utils.js +0 -0
  765. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useCollapsibleGroups.js +0 -0
  766. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useImperativeScrollingAPI.js +0 -0
  767. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useKeyboardNavigation.js +0 -0
  768. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useTypeahead.js +0 -0
  769. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/useViewportTracking.js +0 -0
  770. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/collection-item-utils.js +0 -0
  771. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/filter-utils.js +0 -0
  772. /package/cjs/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/isSelected.js +0 -0
  773. /package/cjs/{list → packages/vuu-ui-controls/src/list}/useList.js +0 -0
  774. /package/cjs/{list → packages/vuu-ui-controls/src/list}/useListDrop.js +0 -0
  775. /package/cjs/{list → packages/vuu-ui-controls/src/list}/useListHeight.js +0 -0
  776. /package/cjs/{list → packages/vuu-ui-controls/src/list}/useScrollPosition.js +0 -0
  777. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js +0 -0
  778. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js.map +0 -0
  779. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/useResizeObserver.js +0 -0
  780. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js +0 -0
  781. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js.map +0 -0
  782. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.js +0 -0
  783. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/overflow-utils.js +0 -0
  784. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/useOverflowContainer.js +0 -0
  785. /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js +0 -0
  786. /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js.map +0 -0
  787. /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.js +0 -0
  788. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js.map +0 -0
  789. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.js +0 -0
  790. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js.map +0 -0
  791. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.js +0 -0
  792. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/useSplitButton.js +0 -0
  793. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js +0 -0
  794. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js.map +0 -0
  795. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.js +0 -0
  796. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js +0 -0
  797. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js.map +0 -0
  798. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.js +0 -0
  799. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/useTableSearch.js +0 -0
  800. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js +0 -0
  801. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js.map +0 -0
  802. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.js +0 -0
  803. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js +0 -0
  804. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js.map +0 -0
  805. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.js +0 -0
  806. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenuOptions.js +0 -0
  807. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js.map +0 -0
  808. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.js +0 -0
  809. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/tabstrip-dom-utils.js +0 -0
  810. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useAnimatedSelectionThumb.js +0 -0
  811. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useKeyboardNavigation.js +0 -0
  812. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useSelection.js +0 -0
  813. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useTabstrip.js +0 -0
  814. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js +0 -0
  815. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js.map +0 -0
  816. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.js +0 -0
  817. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/toolbar-dom-utils.js +0 -0
  818. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useKeyboardNavigation.js +0 -0
  819. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useSelection.js +0 -0
  820. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useToolbar.js +0 -0
  821. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/escapeRegExp.js +0 -0
  822. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/forwardCallbackProps.js +0 -0
  823. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/isOverflowElement.js +0 -0
  824. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/isPlainObject.js +0 -0
  825. /package/cjs/{vuu-date-picker → packages/vuu-ui-controls/src/vuu-date-picker}/VuuDatePicker.js +0 -0
  826. /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js +0 -0
  827. /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js.map +0 -0
  828. /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.js +0 -0
  829. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js +0 -0
  830. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js.map +0 -0
  831. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.js +0 -0
  832. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/useVuuTypeaheadInput.js +0 -0
  833. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js +0 -0
  834. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js.map +0 -0
  835. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.js +0 -0
  836. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js +0 -0
  837. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js.map +0 -0
  838. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.js +0 -0
  839. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarContext.js +0 -0
  840. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js +0 -0
  841. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js.map +0 -0
  842. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.js +0 -0
  843. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js +0 -0
  844. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js.map +0 -0
  845. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.js +0 -0
  846. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js +0 -0
  847. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js.map +0 -0
  848. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.js +0 -0
  849. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js +0 -0
  850. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js.map +0 -0
  851. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.js +0 -0
  852. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/useFocusManagement.js +0 -0
  853. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/utils.js +0 -0
  854. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendar.js +0 -0
  855. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendarDay.js +0 -0
  856. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useSelection.js +0 -0
  857. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js +0 -0
  858. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js.map +0 -0
  859. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.js +0 -0
  860. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js +0 -0
  861. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js.map +0 -0
  862. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.js +0 -0
  863. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/collectionProvider.js +0 -0
  864. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/isPlainObject.js +0 -0
  865. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/itemToString.js +0 -0
  866. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/selectionTypes.js +0 -0
  867. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/use-resize-observer.js +0 -0
  868. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useCollectionItems.js +0 -0
  869. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useControlled.js +0 -0
  870. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useSelection.js +0 -0
  871. /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js +0 -0
  872. /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js.map +0 -0
  873. /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.js +0 -0
  874. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePicker.js +0 -0
  875. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerContext.js +0 -0
  876. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js +0 -0
  877. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js.map +0 -0
  878. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.js +0 -0
  879. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropProvider.js +0 -0
  880. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropState.js +0 -0
  881. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js +0 -0
  882. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js.map +0 -0
  883. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/dragDropTypes.js +0 -0
  884. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/drop-target-utils.js +0 -0
  885. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useAutoScroll.js +0 -0
  886. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDisplacers.js +0 -0
  887. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropCopy.js +0 -0
  888. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDropIndicator.js +0 -0
  889. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useGlobalDragDrop.js +0 -0
  890. /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js +0 -0
  891. /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js.map +0 -0
  892. /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.js +0 -0
  893. /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js +0 -0
  894. /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js.map +0 -0
  895. /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.js +0 -0
  896. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js +0 -0
  897. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js.map +0 -0
  898. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.js +0 -0
  899. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js +0 -0
  900. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js.map +0 -0
  901. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.js +0 -0
  902. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js.map +0 -0
  903. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.js +0 -0
  904. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js +0 -0
  905. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js.map +0 -0
  906. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.js +0 -0
  907. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/useTablePicker.js +0 -0
  908. /package/esm/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js +0 -0
  909. /package/esm/{list → packages/vuu-ui-controls/src/list}/Highlighter.css.js.map +0 -0
  910. /package/esm/{list → packages/vuu-ui-controls/src/list}/Highlighter.js +0 -0
  911. /package/esm/{list → packages/vuu-ui-controls/src/list}/List.css.js +0 -0
  912. /package/esm/{list → packages/vuu-ui-controls/src/list}/List.css.js.map +0 -0
  913. /package/esm/{list → packages/vuu-ui-controls/src/list}/List.js +0 -0
  914. /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js +0 -0
  915. /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItem.css.js.map +0 -0
  916. /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItem.js +0 -0
  917. /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItemGroup.js +0 -0
  918. /package/esm/{list → packages/vuu-ui-controls/src/list}/ListItemHeader.js +0 -0
  919. /package/esm/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js +0 -0
  920. /package/esm/{list → packages/vuu-ui-controls/src/list}/RadioIcon.css.js.map +0 -0
  921. /package/esm/{list → packages/vuu-ui-controls/src/list}/RadioIcon.js +0 -0
  922. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/keyUtils.js +0 -0
  923. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/list-dom-utils.js +0 -0
  924. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useCollapsibleGroups.js +0 -0
  925. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useImperativeScrollingAPI.js +0 -0
  926. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useKeyboardNavigation.js +0 -0
  927. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useTypeahead.js +0 -0
  928. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/useViewportTracking.js +0 -0
  929. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/collection-item-utils.js +0 -0
  930. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/filter-utils.js +0 -0
  931. /package/esm/{list → packages/vuu-ui-controls/src/list}/common-hooks/utils/isSelected.js +0 -0
  932. /package/esm/{list → packages/vuu-ui-controls/src/list}/useList.js +0 -0
  933. /package/esm/{list → packages/vuu-ui-controls/src/list}/useListDrop.js +0 -0
  934. /package/esm/{list → packages/vuu-ui-controls/src/list}/useListHeight.js +0 -0
  935. /package/esm/{list → packages/vuu-ui-controls/src/list}/useScrollPosition.js +0 -0
  936. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js +0 -0
  937. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js.map +0 -0
  938. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/useResizeObserver.js +0 -0
  939. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js +0 -0
  940. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js.map +0 -0
  941. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.js +0 -0
  942. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/overflow-utils.js +0 -0
  943. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/useOverflowContainer.js +0 -0
  944. /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js +0 -0
  945. /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js.map +0 -0
  946. /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.js +0 -0
  947. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js.map +0 -0
  948. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.js +0 -0
  949. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js.map +0 -0
  950. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.js +0 -0
  951. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/useSplitButton.js +0 -0
  952. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js +0 -0
  953. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js.map +0 -0
  954. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.js +0 -0
  955. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js +0 -0
  956. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js.map +0 -0
  957. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.js +0 -0
  958. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/useTableSearch.js +0 -0
  959. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js +0 -0
  960. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js.map +0 -0
  961. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.js +0 -0
  962. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js +0 -0
  963. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js.map +0 -0
  964. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.js +0 -0
  965. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenuOptions.js +0 -0
  966. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js.map +0 -0
  967. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.js +0 -0
  968. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/tabstrip-dom-utils.js +0 -0
  969. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useAnimatedSelectionThumb.js +0 -0
  970. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useKeyboardNavigation.js +0 -0
  971. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useSelection.js +0 -0
  972. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useTabstrip.js +0 -0
  973. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js +0 -0
  974. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js.map +0 -0
  975. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.js +0 -0
  976. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/toolbar-dom-utils.js +0 -0
  977. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useKeyboardNavigation.js +0 -0
  978. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useSelection.js +0 -0
  979. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useToolbar.js +0 -0
  980. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/escapeRegExp.js +0 -0
  981. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/forwardCallbackProps.js +0 -0
  982. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/isOverflowElement.js +0 -0
  983. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/isPlainObject.js +0 -0
  984. /package/esm/{vuu-date-picker → packages/vuu-ui-controls/src/vuu-date-picker}/VuuDatePicker.js +0 -0
  985. /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js +0 -0
  986. /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js.map +0 -0
  987. /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.js +0 -0
  988. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js +0 -0
  989. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js.map +0 -0
  990. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.js +0 -0
  991. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/useVuuTypeaheadInput.js +0 -0
@@ -1,103 +0,0 @@
1
- import { useLayoutEffectSkipFirst, dispatchCustomEvent } from '@vuu-ui/vuu-utils';
2
- import { useState, useRef, useCallback } from 'react';
3
-
4
- const WarnCommit = () => {
5
- console.warn(
6
- "onCommit handler has not been provided to InputCell cell renderer"
7
- );
8
- return Promise.resolve(true);
9
- };
10
- const useEditableText = ({
11
- clientSideEditValidationCheck,
12
- initialValue,
13
- onCommit,
14
- type
15
- }) => {
16
- const [message, setMessage] = useState();
17
- const [value, setValue] = useState(initialValue);
18
- const initialValueRef = useRef(initialValue);
19
- const isDirtyRef = useRef(false);
20
- const hasCommittedRef = useRef(false);
21
- useLayoutEffectSkipFirst(() => {
22
- setValue(initialValue);
23
- }, [initialValue]);
24
- const commit = useCallback(
25
- (target) => {
26
- if (isDirtyRef.current) {
27
- hasCommittedRef.current = true;
28
- const result = clientSideEditValidationCheck?.(value);
29
- if (result?.ok === false) {
30
- setMessage(result?.messages?.join(","));
31
- } else {
32
- setMessage(void 0);
33
- console.log(`commit value ${value}`);
34
- onCommit(value).then((response) => {
35
- if (response === true) {
36
- isDirtyRef.current = false;
37
- dispatchCustomEvent(target, "vuu-commit");
38
- } else {
39
- setMessage(response);
40
- }
41
- });
42
- }
43
- } else {
44
- dispatchCustomEvent(target, "vuu-commit");
45
- hasCommittedRef.current = false;
46
- }
47
- },
48
- [clientSideEditValidationCheck, onCommit, value]
49
- );
50
- const handleKeyDown = useCallback(
51
- (evt) => {
52
- if (evt.key === "Enter") {
53
- commit(evt.target);
54
- } else if (evt.key === "ArrowRight" || evt.key === "ArrowLeft" || evt.key === "ArrowUp" || evt.key === "ArrowDown") {
55
- evt.stopPropagation();
56
- } else if (evt.key === "Escape") {
57
- if (isDirtyRef.current) {
58
- isDirtyRef.current = false;
59
- setMessage(void 0);
60
- setValue(initialValueRef.current);
61
- }
62
- }
63
- },
64
- [commit]
65
- );
66
- const handleBlur = useCallback(
67
- (evt) => {
68
- if (isDirtyRef.current) {
69
- commit(evt.target);
70
- }
71
- },
72
- [commit]
73
- );
74
- const handleChange = useCallback(
75
- (evt) => {
76
- let typedValue = evt.target.value;
77
- if (type === "number" && !isNaN(parseFloat(typedValue))) {
78
- typedValue = parseFloat(typedValue);
79
- }
80
- isDirtyRef.current = value !== initialValueRef.current;
81
- setValue(typedValue);
82
- if (hasCommittedRef.current && value !== void 0) {
83
- const result = clientSideEditValidationCheck?.(value);
84
- if (result?.ok === false) {
85
- setMessage(result.messages?.join(","));
86
- }
87
- }
88
- },
89
- [clientSideEditValidationCheck, type, value]
90
- );
91
- return {
92
- inputProps: {
93
- onBlur: handleBlur,
94
- onKeyDown: handleKeyDown
95
- },
96
- onChange: handleChange,
97
- value: value ?? "",
98
- warningMessage: message
99
- };
100
- };
101
-
102
- export { WarnCommit, useEditableText };
103
- //# sourceMappingURL=useEditableText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEditableText.js","sources":["../../src/editable/useEditableText.ts"],"sourcesContent":["import { DataValueValidationChecker } from \"@vuu-ui/vuu-data-types\";\nimport { DataItemCommitHandler } from \"@vuu-ui/vuu-table-types\";\nimport { useLayoutEffectSkipFirst } from \"@vuu-ui/vuu-utils\";\nimport { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { dispatchCustomEvent } from \"@vuu-ui/vuu-utils\";\nimport {\n FocusEventHandler,\n FormEventHandler,\n KeyboardEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\";\n\nexport const WarnCommit = (): Promise<true> => {\n console.warn(\n \"onCommit handler has not been provided to InputCell cell renderer\",\n );\n return Promise.resolve(true);\n};\n\nexport interface EditableTextHookProps<\n T extends VuuRowDataItemType = VuuRowDataItemType,\n> {\n clientSideEditValidationCheck?: DataValueValidationChecker;\n initialValue?: T;\n onCommit: DataItemCommitHandler<T>;\n type?: \"string\" | \"number\" | \"boolean\";\n}\n\nexport const useEditableText = <T extends string | number = string>({\n clientSideEditValidationCheck,\n initialValue,\n onCommit,\n type,\n}: EditableTextHookProps<T>) => {\n const [message, setMessage] = useState<string | undefined>();\n const [value, setValue] = useState<T | undefined>(initialValue);\n const initialValueRef = useRef<T | undefined>(initialValue);\n const isDirtyRef = useRef(false);\n const hasCommittedRef = useRef(false);\n\n useLayoutEffectSkipFirst(() => {\n //TODO this isn't right, review the state we're using\n setValue(initialValue);\n }, [initialValue]);\n\n const commit = useCallback(\n (target: HTMLElement) => {\n if (isDirtyRef.current) {\n hasCommittedRef.current = true;\n const result = clientSideEditValidationCheck?.(value);\n if (result?.ok === false) {\n setMessage(result?.messages?.join(\",\"));\n } else {\n setMessage(undefined);\n console.log(`commit value ${value}`);\n onCommit(value as T).then((response) => {\n if (response === true) {\n isDirtyRef.current = false;\n dispatchCustomEvent(target, \"vuu-commit\");\n } else {\n setMessage(response);\n }\n });\n }\n } else {\n // why, if not dirty ?\n dispatchCustomEvent(target, \"vuu-commit\");\n hasCommittedRef.current = false;\n }\n },\n [clientSideEditValidationCheck, onCommit, value],\n );\n\n const handleKeyDown = useCallback(\n (evt: KeyboardEvent<HTMLElement>) => {\n if (evt.key === \"Enter\") {\n commit(evt.target as HTMLElement);\n } else if (\n evt.key === \"ArrowRight\" ||\n evt.key === \"ArrowLeft\" ||\n evt.key === \"ArrowUp\" ||\n evt.key === \"ArrowDown\"\n ) {\n evt.stopPropagation();\n } else if (evt.key === \"Escape\") {\n if (isDirtyRef.current) {\n isDirtyRef.current = false;\n setMessage(undefined);\n setValue(initialValueRef.current);\n }\n }\n },\n [commit],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (evt) => {\n if (isDirtyRef.current) {\n commit(evt.target as HTMLElement);\n }\n },\n [commit],\n );\n\n const handleChange = useCallback<FormEventHandler>(\n (evt) => {\n let typedValue: VuuRowDataItemType = (evt.target as HTMLInputElement)\n .value;\n if (type === \"number\" && !isNaN(parseFloat(typedValue))) {\n typedValue = parseFloat(typedValue);\n }\n isDirtyRef.current = value !== initialValueRef.current;\n setValue(typedValue as T);\n if (hasCommittedRef.current && value !== undefined) {\n const result = clientSideEditValidationCheck?.(value);\n if (result?.ok === false) {\n setMessage(result.messages?.join(\",\"));\n }\n }\n },\n [clientSideEditValidationCheck, type, value],\n );\n\n return {\n inputProps: {\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n },\n onChange: handleChange,\n value: value ?? \"\",\n warningMessage: message,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditableLabel.js","sources":["../../src/editable-label/EditableLabel.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport {\n ChangeEvent,\n KeyboardEvent,\n useCallback,\n useLayoutEffect,\n forwardRef,\n ForwardedRef,\n ReactElement,\n useRef,\n HTMLAttributes,\n useImperativeHandle,\n} from \"react\";\nimport { Input, useControlled } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport editableLabelCss from \"./EditableLabel.css\";\n\nconst classBase = \"vuuEditableLabel\";\n\nexport type ExitEditModeHandler = (\n originalLabel: string | undefined,\n editedLabel: string | undefined,\n allowDeactivation?: boolean,\n editCancelled?: boolean,\n) => void;\n\nexport interface EditAPI {\n beginEdit: () => void;\n}\n\nexport const NullEditAPI: EditAPI = {\n beginEdit: () => undefined,\n};\n\nexport interface EditableLabelProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n className?: string;\n defaultEditing?: boolean;\n defaultValue?: string;\n editLabelApiRef?: ForwardedRef<EditAPI>;\n editing?: boolean;\n onEnterEditMode?: () => void;\n onChange?: (value: string) => void;\n onExitEditMode: ExitEditModeHandler;\n defaultIsEditing?: boolean;\n value?: string;\n}\n\nexport const EditableLabel = forwardRef(function EditableLabel(\n {\n className: classNameProp,\n defaultEditing,\n defaultValue,\n editLabelApiRef,\n editing: editingProp,\n onChange,\n onEnterEditMode,\n onExitEditMode,\n value: valueProp,\n ...restProps\n }: EditableLabelProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactElement<EditableLabelProps> {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-editable-label\",\n css: editableLabelCss,\n window: targetWindow,\n });\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const editingRef = useRef<boolean>(false);\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue ?? \"\",\n name: \"EditableLabel\",\n state: \"value\",\n });\n\n const [editing, _setEditing] = useControlled({\n controlled: editingProp,\n default: defaultEditing ?? false,\n name: \"EditableLabel\",\n state: \"editing\",\n });\n\n const setEditing = useCallback(\n (value: boolean) => {\n _setEditing((editingRef.current = value));\n },\n [_setEditing],\n );\n\n const initialValue = useRef(value);\n\n useLayoutEffect(() => {\n if (editing) {\n if (inputRef.current !== null) {\n inputRef.current.select();\n inputRef.current.focus();\n }\n }\n }, [editing, inputRef]);\n\n const beginEdit = useCallback(() => {\n setEditing(true);\n onEnterEditMode?.();\n }, [onEnterEditMode, setEditing]);\n\n useImperativeHandle(\n editLabelApiRef,\n () => ({\n beginEdit,\n }),\n [beginEdit],\n );\n\n const exitEditMode = useCallback(\n ({ cancelEdit = false, allowDeactivation = false } = {}) => {\n setEditing(false);\n const originalValue = initialValue.current;\n if (cancelEdit || originalValue === value) {\n if (originalValue !== value) {\n setValue(originalValue);\n }\n onExitEditMode?.(\n originalValue,\n originalValue,\n allowDeactivation,\n cancelEdit,\n );\n } else {\n initialValue.current = value;\n onExitEditMode?.(originalValue, value, allowDeactivation, cancelEdit);\n }\n },\n [onExitEditMode, setEditing, setValue, value],\n );\n\n const handleChange = (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.target;\n setValue(value);\n onChange && onChange(value);\n };\n\n // We need the ref here as the blur fires before setEditing has taken effect,\n // so we get a double call to exitEditMode if edit is cancelled.\n const handleBlur = useCallback(() => {\n if (editingRef.current) {\n exitEditMode({ allowDeactivation: true });\n }\n }, [exitEditMode]);\n\n const handleKeyDown = (evt: KeyboardEvent<HTMLInputElement>) => {\n if (editing && evt.key === \"Enter\") {\n evt.stopPropagation();\n // we are likely to lose focus as a consequence of user response\n // to exitEdit transition, don't want it to trigger another\n //shouldn't we call setEditing here in case we are in uncontrolled mode ?\n exitEditMode();\n } else if (evt.key === \"ArrowRight\" || evt.key === \"ArrowLeft\") {\n evt.stopPropagation();\n } else if (evt.key === \"Escape\") {\n exitEditMode({ cancelEdit: true });\n }\n };\n\n const className = cx(classBase, classNameProp, {\n [`${classBase}-editing`]: editing,\n });\n return (\n <div\n {...restProps}\n className={className}\n data-text={value}\n ref={forwardedRef}\n >\n {editing ? (\n <Input\n inputProps={{ className: `${classBase}-input`, spellCheck: false }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n inputRef={inputRef}\n textAlign=\"left\"\n variant=\"secondary\"\n />\n ) : (\n <span className={`${classBase}-label`}>{value}</span>\n )}\n </div>\n );\n});\n"],"names":["EditableLabel","value"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpandoInput.js","sources":["../../src/expando-input/ExpandoInput.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ForwardedRef, forwardRef } from \"react\";\nimport { VuuInput, VuuInputProps } from \"../vuu-input\";\n\nimport expandoInputCss from \"./ExpandoInput.css\";\n\nconst classBase = \"vuuExpandoInput\";\n\nconst noop = () => undefined;\n\nexport interface ExpandoInputProps extends Omit<VuuInputProps, \"onCommit\"> {\n onCommit?: VuuInputProps[\"onCommit\"];\n}\n\nexport const ExpandoInput = forwardRef(function ExpandoInput(\n {\n className: classNameProp,\n errorMessage,\n value,\n inputProps,\n onCommit = noop,\n ...props\n }: ExpandoInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-expando-input\",\n css: expandoInputCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={cx(classBase, classNameProp, {\n [`${classBase}-error`]: errorMessage,\n })}\n data-text={value}\n >\n <VuuInput\n {...props}\n errorMessage={errorMessage}\n inputProps={{ ...inputProps, className: `${classBase}-input` }}\n onCommit={onCommit}\n ref={forwardedRef}\n style={{ padding: 0 }}\n textAlign=\"left\"\n value={value}\n variant=\"secondary\"\n />\n </div>\n );\n});\n"],"names":["ExpandoInput"],"mappings":";;;;;;;;AAQA,MAAM,SAAY,GAAA,iBAAA,CAAA;AAElB,MAAM,OAAO,MAAM,KAAA,CAAA,CAAA;AAMN,MAAA,YAAA,GAAe,UAAW,CAAA,SAASA,aAC9C,CAAA;AAAA,EACE,SAAW,EAAA,aAAA;AAAA,EACX,YAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAW,GAAA,IAAA;AAAA,EACX,GAAG,KAAA;AACL,CAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAA,eAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,aAAe,EAAA;AAAA,QACtC,CAAC,CAAA,EAAG,SAAS,CAAA,MAAA,CAAQ,GAAG,YAAA;AAAA,OACzB,CAAA;AAAA,MACD,WAAW,EAAA,KAAA;AAAA,MAEX,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,YAAA;AAAA,UACA,YAAY,EAAE,GAAG,YAAY,SAAW,EAAA,CAAA,EAAG,SAAS,CAAS,MAAA,CAAA,EAAA;AAAA,UAC7D,QAAA;AAAA,UACA,GAAK,EAAA,YAAA;AAAA,UACL,KAAA,EAAO,EAAE,OAAA,EAAS,CAAE,EAAA;AAAA,UACpB,SAAU,EAAA,MAAA;AAAA,UACV,KAAA;AAAA,UACA,OAAQ,EAAA,WAAA;AAAA,SAAA;AAAA,OACV;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Icon.js","sources":["../../src/icon-button/Icon.tsx"],"sourcesContent":["import { HTMLAttributes } from \"react\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport iconCss from \"./Icon.css\";\n\nconst classBase = \"vuuIcon\";\n\nexport interface IconProps extends HTMLAttributes<HTMLSpanElement> {\n name: string;\n size?: number;\n}\n\nexport const Icon = ({\n className,\n name,\n size,\n style: styleProp,\n ...htmlAttributes\n}: IconProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-icon\",\n css: iconCss,\n window: targetWindow,\n });\n\n const style =\n typeof size === \"number\"\n ? { ...styleProp, \"--vuu-icon-size\": `${size}px` }\n : styleProp;\n return (\n <span\n {...htmlAttributes}\n className={cx(classBase, className)}\n data-icon={name}\n role=\"img\"\n style={style}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,SAAY,GAAA,SAAA,CAAA;AAOX,MAAM,OAAO,CAAC;AAAA,EACnB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAO,EAAA,SAAA;AAAA,EACP,GAAG,cAAA;AACL,CAAiB,KAAA;AACf,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,UAAA;AAAA,IACR,GAAK,EAAA,OAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,KAAA,GACJ,OAAO,IAAA,KAAS,QACZ,GAAA,EAAE,GAAG,SAAA,EAAW,iBAAmB,EAAA,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA,EAC1C,GAAA,SAAA,CAAA;AACN,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,MAClC,WAAW,EAAA,IAAA;AAAA,MACX,IAAK,EAAA,KAAA;AAAA,MACL,KAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconButton.js","sources":["../../src/icon-button/IconButton.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { Button, ButtonProps } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { Icon } from \"./Icon\";\nimport { forwardRef } from \"react\";\n\nimport iconButtonCss from \"./IconButton.css\";\n\nconst classBase = \"vuuIconButton\";\n\nexport interface IconButtonProps extends Omit<ButtonProps, \"children\"> {\n icon: string;\n size?: number;\n}\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(\n { \"aria-label\": ariaLabel, className, icon, size, ...buttonProps },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-icon-button\",\n css: iconButtonCss,\n window: targetWindow,\n });\n\n return (\n <Button {...buttonProps} className={cx(classBase, className)} ref={ref}>\n <Icon aria-label={ariaLabel} name={icon} size={size} />\n </Button>\n );\n }\n);\n"],"names":["IconButton"],"mappings":";;;;;;;;;AASA,MAAM,SAAY,GAAA,eAAA,CAAA;AAOX,MAAM,UAAa,GAAA,UAAA;AAAA,EACxB,SAASA,WACP,CAAA,EAAE,YAAc,EAAA,SAAA,EAAW,SAAW,EAAA,IAAA,EAAM,IAAM,EAAA,GAAG,WAAY,EAAA,EACjE,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAA,aAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,2BACG,MAAQ,EAAA,EAAA,GAAG,WAAa,EAAA,SAAA,EAAW,GAAG,SAAW,EAAA,SAAS,CAAG,EAAA,GAAA,EAC5D,8BAAC,IAAK,EAAA,EAAA,YAAA,EAAY,WAAW,IAAM,EAAA,IAAA,EAAM,MAAY,CACvD,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,4 +0,0 @@
1
- var toggleIconCss = ".vuuToggleIconButton {\n &.saltButton {\n &:active {\n --saltButton-background-active: transparent;\n }\n &:hover {\n --saltButton-background-hover: transparent;\n }\n .vuuIcon {\n --vuu-icon-height: 18px;\n --vuu-icon-left: -3px;\n --vuu-icon-width: 18px;\n &:after {\n transition: transform 0.1s linear;\n }\n &[data-icon=\"triangle-down\"]:after {\n --vuu-icon-left: -1px;\n --vuu-icon-top: -3px;\n }\n }\n border: none;\n border-radius: 0;\n height: 18px;\n left: 0;\n min-width: 16px;\n padding: 0;\n width: 18px;\n }\n}\n\n.vuuTableGroupCell:hover {\n .vuuToggleIconButton {\n .vuuIcon:after {\n --vuu-icon-color: var(--salt-palette-interact-cta-background-hover);\n }\n }\n}\n";
2
-
3
- export { toggleIconCss as default };
4
- //# sourceMappingURL=ToggleIconButton.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleIconButton.js","sources":["../../src/icon-button/ToggleIconButton.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { IconButton, IconButtonProps } from \"./IconButton\";\n\nimport toggleIconCss from \"./ToggleIconButton.css\";\n\nconst classBase = \"vuuToggleIconButton\";\n\nexport interface ToggleIconButtonProps extends Omit<IconButtonProps, \"icon\"> {\n isExpanded: boolean;\n}\n\nexport const ToggleIconButton = ({\n className,\n isExpanded,\n size = 7,\n variant = \"secondary\",\n ...props\n}: ToggleIconButtonProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-toggle-icon-button\",\n css: toggleIconCss,\n window: targetWindow,\n });\n\n const icon = isExpanded ? \"triangle-down\" : \"triangle-right\";\n return (\n <IconButton\n {...props}\n className={cx(classBase, className)}\n icon={icon}\n size={size}\n variant={variant}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAOA,MAAM,SAAY,GAAA,qBAAA,CAAA;AAMX,MAAM,mBAAmB,CAAC;AAAA,EAC/B,SAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAO,GAAA,CAAA;AAAA,EACP,OAAU,GAAA,WAAA;AAAA,EACV,GAAG,KAAA;AACL,CAA6B,KAAA;AAC3B,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,wBAAA;AAAA,IACR,GAAK,EAAA,aAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,IAAA,GAAO,aAAa,eAAkB,GAAA,gBAAA,CAAA;AAC5C,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,MAClC,IAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
package/esm/index.js DELETED
@@ -1,68 +0,0 @@
1
- export { Calendar } from './calendar/Calendar.js';
2
- export { useCalendarDay } from './calendar/useCalendarDay.js';
3
- export { useCalendar } from './calendar/useCalendar.js';
4
- export { isRangeOrOffsetSelectionValue, isRangeOrOffsetSelectionWithStartDate, useSelectionCalendar, useSelectionDay } from './calendar/useSelection.js';
5
- export { ColumnPicker } from './column-picker/ColumnPicker.js';
6
- export { ColumnSearch } from './column-picker/ColumnSearch.js';
7
- export { CollectionContext, CollectionProvider, useCollection } from './common-hooks/collectionProvider.js';
8
- export { itemToString } from './common-hooks/itemToString.js';
9
- export { useCollectionItems } from './common-hooks/useCollectionItems.js';
10
- export { useControlled } from './common-hooks/useControlled.js';
11
- export { HeightOnly, WidthHeight, WidthOnly, useResizeObserver } from './common-hooks/use-resize-observer.js';
12
- export { allowMultipleSelection, deselectionIsAllowed, getFirstSelectedItem, hasSelection, isMultiSelection, isSingleSelection, selectionIsDisallowed } from './common-hooks/selectionTypes.js';
13
- export { CycleStateButton } from './cycle-state-button/CycleStateButton.js';
14
- export { DateInput } from './date-input/DateInput.js';
15
- export { DatePicker } from './date-picker/DatePicker.js';
16
- export { BWD, FWD } from './drag-drop/dragDropTypes.js';
17
- export { DragDropProvider, useDragDropProvider } from './drag-drop/DragDropProvider.js';
18
- export { DragDropState } from './drag-drop/DragDropState.js';
19
- export { useDragDrop } from './drag-drop/useDragDrop.js';
20
- export { NOT_HIDDEN, NOT_OVERFLOWED, cloneElement, constrainRect, dimensions, dropTargetsDebugString, getIndexOfDraggedItem, getItemById, getItemParentContainer, getNextDropTarget, getScrollableContainer, isContainerScrollable, measureDropTargets, measureElementSizeAndPosition, mutateDropTargetsSwitchDropTargetPosition, removeDraggedItem } from './drag-drop/drop-target-utils.js';
21
- export { useGlobalDragDrop } from './drag-drop/useGlobalDragDrop.js';
22
- export { WarnCommit, useEditableText } from './editable/useEditableText.js';
23
- export { EditableLabel, NullEditAPI } from './editable-label/EditableLabel.js';
24
- export { ExpandoInput } from './expando-input/ExpandoInput.js';
25
- export { Icon } from './icon-button/Icon.js';
26
- export { IconButton } from './icon-button/IconButton.js';
27
- export { ToggleIconButton } from './icon-button/ToggleIconButton.js';
28
- export { TablePicker } from './instrument-picker/TablePicker.js';
29
- export { TableSearch } from './table-search/TableSearch.js';
30
- export { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Enter, Escape, Home, PageDown, PageUp, Space, isCharacterKey, isNavigationKey } from './list/common-hooks/keyUtils.js';
31
- export { useCollapsibleGroups } from './list/common-hooks/useCollapsibleGroups.js';
32
- export { closestListItemId, closestListItemIndex, listItemElement, listItemId, listItemIndex } from './list/common-hooks/list-dom-utils.js';
33
- export { useImperativeScrollingAPI } from './list/common-hooks/useImperativeScrollingAPI.js';
34
- export { LIST_FOCUS_VISIBLE, useKeyboardNavigation } from './list/common-hooks/useKeyboardNavigation.js';
35
- export { CHECKBOX, GROUP_SELECTION_CASCADE, GROUP_SELECTION_NONE, GROUP_SELECTION_SINGLE, groupSelectionEnabled, useSelection } from './common-hooks/useSelection.js';
36
- export { useTypeahead } from './list/common-hooks/useTypeahead.js';
37
- export { useViewportTracking } from './list/common-hooks/useViewportTracking.js';
38
- export { childIsGroup, childItems, countChildItems, getChildLabel, getChildNodes, isDisabled, isFocusable, isGroupNode, isHeader, isParentPath, replaceCollectionItem, sourceItemHasProp, sourceItems } from './list/common-hooks/utils/collection-item-utils.js';
39
- export { getDefaultFilter, getDefaultFilterRegex } from './list/common-hooks/utils/filter-utils.js';
40
- export { isSelected } from './list/common-hooks/utils/isSelected.js';
41
- export { Highlighter } from './list/Highlighter.js';
42
- export { ListItem, ListItemProxy } from './list/ListItem.js';
43
- export { List } from './list/List.js';
44
- export { ListItemHeader } from './list/ListItemHeader.js';
45
- export { ListItemGroup } from './list/ListItemGroup.js';
46
- export { useList } from './list/useList.js';
47
- export { RadioIcon } from './list/RadioIcon.js';
48
- export { MeasuredContainer } from './measured-container/MeasuredContainer.js';
49
- export { reduceSizeHeight, useMeasuredContainer } from './measured-container/useMeasuredContainer.js';
50
- export { OverflowContainer } from './overflow-container/OverflowContainer.js';
51
- export { NO_WRAPPED_ITEMS, applyOverflowClassToWrappedItems, correctForWrappedHighPriorityItems, correctForWrappedOverflowIndicator, getElementsMarkedAsWrapped, getNonWrappedAndWrappedItems, highPriorityItemsHaveWrappedButShouldNotHave, markElementAsWrapped, overflowIndicatorHasWrappedButShouldNotHave, removeOverflowIndicatorIfNoLongerNeeded, sortByScreenOrder, switchWrappedItemIntoView, unmarkItemsWhichAreNoLongerWrapped } from './overflow-container/overflow-utils.js';
52
- export { PriceTicker } from './price-ticker/PriceTicker.js';
53
- export { SplitButton } from './split-button/SplitButton.js';
54
- export { SplitStateButton } from './split-button/SplitStateButton.js';
55
- export { Tabstrip } from './tabstrip/Tabstrip.js';
56
- export { Tab } from './tabstrip/Tab.js';
57
- export { getIndexOfEditedItem, getIndexOfSelectedTab } from './tabstrip/tabstrip-dom-utils.js';
58
- export { Toolbar } from './toolbar/Toolbar.js';
59
- export { Tree, TreeNode } from './tree/Tree.js';
60
- export { useItemsWithIds } from './tree/use-items-with-ids.js';
61
- export { escapeRegExp } from './utils/escapeRegExp.js';
62
- export { isOverflowElement } from './utils/isOverflowElement.js';
63
- export { isPlainObject } from './utils/isPlainObject.js';
64
- export { forwardCallbackProps } from './utils/forwardCallbackProps.js';
65
- export { VuuDatePicker } from './vuu-date-picker/VuuDatePicker.js';
66
- export { VuuInput } from './vuu-input/VuuInput.js';
67
- export { VuuTypeaheadInput } from './vuu-typeahead-input/VuuTypeaheadInput.js';
68
- //# sourceMappingURL=index.js.map
package/esm/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TablePicker.js","sources":["../../src/instrument-picker/TablePicker.tsx"],"sourcesContent":["import type { DataSourceRowObject, TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { Table, type TableProps } from \"@vuu-ui/vuu-table\";\nimport {\n Input,\n useFloatingComponent,\n useIdMemo,\n type FloatingComponentProps,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { forwardRef, useMemo, type HTMLAttributes } from \"react\";\nimport { IconButton } from \"../icon-button\";\nimport tablePickerCss from \"./TablePicker.css\";\nimport { useTablePicker } from \"./useTablePicker\";\n\nconst classBase = \"vuuTablePicker\";\n\ninterface FloatingTableProps extends FloatingComponentProps {\n collapsed?: boolean;\n}\n\nexport interface TablePickerProps\n extends Omit<HTMLAttributes<HTMLElement>, \"onSelect\">,\n Pick<TableProps, \"onSelect\"> {\n TableProps?: Pick<TableProps, \"config\">;\n rowToString?: (row: DataSourceRowObject) => string;\n schema: TableSchema;\n searchColumns?: string[];\n}\n\nconst FloatingTable = forwardRef<HTMLDivElement, FloatingTableProps>(\n function FloatingTable(\n { children, className, collapsed, open, ...props },\n forwardedRef,\n ) {\n const { Component: FloatingComponent } = useFloatingComponent();\n return (\n <FloatingComponent\n className={cx(\n `${classBase}-floating-table`,\n {\n [`${classBase}-collapsed`]: collapsed,\n },\n className,\n )}\n role=\"listbox\"\n open={open}\n {...props}\n ref={forwardedRef}\n >\n {children}\n </FloatingComponent>\n );\n },\n);\n\nexport const TablePicker = ({\n TableProps,\n onSelect,\n rowToString,\n schema,\n searchColumns,\n ...htmlAttributes\n}: TablePickerProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-table-picker\",\n css: tablePickerCss,\n window: targetWindow,\n });\n\n const tableId = useIdMemo();\n\n const {\n containerRef,\n dataSource,\n highlightedIndex,\n floatingUIProps: { x, y, strategy, floating, reference },\n inputProps,\n interactionPropGetters: { getFloatingProps, getReferenceProps },\n onKeyDown,\n open,\n tableConfig,\n tableHandlers,\n tableRef,\n value,\n width,\n } = useTablePicker({\n TableProps,\n rowToString,\n onSelect,\n schema,\n searchColumns,\n });\n\n const endAdornment = useMemo(\n () => (\n <IconButton\n {...getReferenceProps()}\n data-embedded\n ref={reference}\n icon=\"chevron-down\"\n onKeyDown={onKeyDown}\n variant=\"secondary\"\n />\n ),\n [getReferenceProps, onKeyDown, reference],\n );\n\n return (\n <div {...htmlAttributes} className={classBase} ref={containerRef}>\n <Input {...inputProps} endAdornment={endAdornment} value={value} />\n <FloatingTable\n {...getFloatingProps()}\n collapsed={!open}\n id={tableId}\n open={open}\n left={x + 3}\n position={strategy}\n ref={floating}\n top={y + 3}\n >\n <Table\n {...tableHandlers}\n config={tableConfig}\n dataSource={dataSource}\n highlightedIndex={highlightedIndex}\n maxViewportRowLimit={10}\n navigationStyle=\"row\"\n ref={tableRef}\n selectionModel=\"single\"\n showColumnHeaders={false}\n width={width - 3}\n />\n </FloatingTable>\n </div>\n );\n};\n"],"names":["FloatingTable"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTablePicker.js","sources":["../../src/instrument-picker/useTablePicker.ts"],"sourcesContent":["import {\n flip,\n size,\n useClick,\n useDismiss,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { useFloatingUI } from \"@salt-ds/core\";\nimport {\n ChangeEvent,\n KeyboardEventHandler,\n RefCallback,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport type { DataSourceRowObject } from \"@vuu-ui/vuu-data-types\";\nimport type {\n TableConfig,\n TableRowSelectHandler,\n} from \"@vuu-ui/vuu-table-types\";\nimport { isStringColumn, toColumnName, useDataSource } from \"@vuu-ui/vuu-utils\";\nimport type { TablePickerProps } from \"./TablePicker\";\nimport {\n isNavigationKey,\n isRowSelectionKey,\n useControlledTableNavigation,\n} from \"@vuu-ui/vuu-table\";\n\nexport interface TablePickerHookProps\n extends Pick<\n TablePickerProps,\n \"TableProps\" | \"onSelect\" | \"rowToString\" | \"schema\" | \"searchColumns\"\n > {\n defaultIsOpen?: boolean;\n isOpen?: boolean;\n}\n\nconst defaultRowToString = (row: DataSourceRowObject) =>\n Object.values(row.data).join(\" \");\n\nexport const useTablePicker = ({\n TableProps,\n onSelect,\n rowToString = defaultRowToString,\n schema,\n searchColumns = schema.columns.filter(isStringColumn).map(toColumnName),\n}: TablePickerHookProps) => {\n const { VuuDataSource } = useDataSource();\n const [value, setValue] = useState(\"\");\n const [open, setOpen] = useState(false);\n\n const widthRef = useRef(-1);\n\n const tableColumns = TableProps?.config.columns;\n\n const containerRef = useCallback<RefCallback<HTMLDivElement>>((el) => {\n widthRef.current = el?.clientWidth ?? -1;\n }, []);\n\n const dataSource = useMemo(() => {\n const columns = tableColumns ?? schema.columns;\n\n return new VuuDataSource({\n columns: columns.map((c) => c.name),\n table: schema.table,\n });\n }, [tableColumns, VuuDataSource, schema]);\n\n const navigation = useControlledTableNavigation(-1, dataSource.size);\n\n const baseFilterPattern = useMemo(\n // TODO make this contains once server supports it\n () => searchColumns.map((col) => `${col} starts \"__VALUE__\"`).join(\" or \"),\n [searchColumns],\n );\n\n // const handleOpenChange = useCallback<OpenChangeHandler>(\n // (open, closeReason) => {\n // setIsOpen(open);\n // onOpenChange?.(open, closeReason);\n // },\n // [onOpenChange, setIsOpen],\n // );\n\n const { context, elements, ...floatingUIProps } = useFloatingUI({\n open,\n onOpenChange: setOpen,\n placement: \"bottom-end\",\n strategy: \"fixed\",\n middleware: [\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n minWidth: `${rects.reference.width}px`,\n maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`,\n });\n },\n }),\n flip({ fallbackStrategy: \"initialPlacement\" }),\n ],\n });\n\n const interactionPropGetters = useInteractions([\n useDismiss(context),\n useClick(context, { keyboardHandlers: false, toggle: false }),\n ]);\n\n const handleInputChange = useCallback(\n (evt: ChangeEvent<HTMLInputElement>) => {\n const { value } = evt.target;\n setValue(value);\n\n console.log(`input changed ${value}`);\n\n if (value && value.trim().length) {\n const filter = baseFilterPattern.replaceAll(\"__VALUE__\", value);\n dataSource.filter = {\n filter,\n };\n } else {\n dataSource.filter = {\n filter: \"\",\n };\n }\n },\n [baseFilterPattern, dataSource],\n );\n\n const handleSelectRow = useCallback<TableRowSelectHandler>(\n (row) => {\n const value = row === null ? \"\" : rowToString(row);\n setValue(value);\n onSelect?.(row);\n // TODO do we need to include a reason ?\n requestAnimationFrame(() => {\n setOpen(false);\n });\n },\n [onSelect, rowToString],\n );\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (evt) => {\n if (open) {\n if (isNavigationKey(evt.key, \"row\") || isRowSelectionKey(evt.key)) {\n navigation.onKeyDown(evt);\n }\n } else {\n if (evt.key === \"ArrowDown\" || evt.key === \"Enter\") {\n setOpen(true);\n }\n }\n },\n [navigation, open],\n );\n\n const inputProps = {\n inputProps: {\n autoComplete: \"off\",\n onKeyDown: handleKeyDown,\n },\n onChange: handleInputChange,\n };\n const tableHandlers = {\n onSelect: handleSelectRow,\n };\n\n const tableConfig = useMemo<TableConfig>(() => {\n const config = TableProps?.config;\n if (config) {\n const {\n columns = schema.columns,\n columnLayout = \"fit\",\n ...rest\n } = config;\n return {\n columns,\n columnLayout,\n ...rest,\n };\n } else {\n return {\n columnLayout: \"fit\",\n columns: schema.columns,\n };\n }\n }, [TableProps, schema]);\n\n return {\n containerRef,\n dataSource,\n highlightedIndex: navigation.highlightedIndexRef.current,\n floatingUIProps,\n inputProps,\n interactionPropGetters,\n onKeyDown: handleKeyDown,\n open,\n tableConfig,\n tableHandlers,\n tableRef: navigation.tableRef,\n value,\n width: widthRef.current,\n };\n};\n"],"names":["elements","value"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Highlighter.js","sources":["../../src/list/Highlighter.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ReactElement } from \"react\";\nimport { escapeRegExp } from \"../utils\";\n\nimport highlighterCss from \"./Highlighter.css\";\n\nconst withBaseName = makePrefixer(\"saltHighlighter\");\n\nexport interface HighlighterProps {\n matchPattern?: RegExp | string;\n text?: string;\n}\n\nexport const Highlighter = (\n props: HighlighterProps\n): ReactElement<HighlighterProps> => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-highlighter\",\n css: highlighterCss,\n window: targetWindow,\n });\n\n const { matchPattern, text = \"\" } = props;\n\n const matchRegex =\n typeof matchPattern === \"string\"\n ? new RegExp(`(${escapeRegExp(matchPattern)})`, \"gi\")\n : matchPattern;\n\n if (matchRegex === undefined) {\n return <>{text}</>;\n }\n return (\n <span>\n {text.split(matchRegex).map((part, index) =>\n part.match(matchRegex) ? (\n <strong\n className={withBaseName(\"highlight\")}\n key={`${index}-${part}`}\n >\n {part}\n </strong>\n ) : (\n part\n )\n )}\n </span>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA,CAAA;AAOtC,MAAA,WAAA,GAAc,CACzB,KACmC,KAAA;AACnC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,YAAA,EAAc,IAAO,GAAA,EAAA,EAAO,GAAA,KAAA,CAAA;AAEpC,EAAA,MAAM,UACJ,GAAA,OAAO,YAAiB,KAAA,QAAA,GACpB,IAAI,MAAA,CAAO,CAAI,CAAA,EAAA,YAAA,CAAa,YAAY,CAAC,CAAK,CAAA,CAAA,EAAA,IAAI,CAClD,GAAA,YAAA,CAAA;AAEN,EAAA,IAAI,eAAe,KAAW,CAAA,EAAA;AAC5B,IAAA,uCAAU,QAAK,EAAA,IAAA,EAAA,CAAA,CAAA;AAAA,GACjB;AACA,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA,EACE,QAAK,EAAA,IAAA,CAAA,KAAA,CAAM,UAAU,CAAE,CAAA,GAAA;AAAA,IAAI,CAAC,IAAM,EAAA,KAAA,KACjC,IAAK,CAAA,KAAA,CAAM,UAAU,CACnB,mBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,QAGlC,QAAA,EAAA,IAAA;AAAA,OAAA;AAAA,MAFI,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,KAKvB,GAAA,IAAA;AAAA,GAGN,EAAA,CAAA,CAAA;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"List.js","sources":["../../src/list/List.tsx"],"sourcesContent":["import { useId } from \"@vuu-ui/vuu-utils\";\nimport { useForkRef } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactElement,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport {\n CollectionIndexer,\n CollectionItem,\n itemToString as defaultItemToString,\n SelectionStrategy,\n} from \"../common-hooks\";\nimport {\n isSelected,\n LIST_FOCUS_VISIBLE,\n useCollectionItems,\n useImperativeScrollingAPI,\n} from \"./common-hooks\";\n\nimport { ListItem as DefaultListItem, ListItemProxy } from \"./ListItem\";\nimport { ListItemProps, ListProps } from \"./listTypes\";\nimport { useList } from \"./useList\";\nimport { useListHeight } from \"./useListHeight\";\nimport { useScrollPosition } from \"./useScrollPosition\";\nimport { MeasuredContainer, MeasuredSize } from \"../measured-container\";\n\nimport listCss from \"./List.css\";\n\nconst defaultEmptyMessage = \"No data to display\";\n\nconst classBase = \"vuuList\";\n\nexport const List = forwardRef(function List<\n Item = string,\n S extends SelectionStrategy = \"default\",\n>(\n {\n ListItem = DefaultListItem,\n ListPlaceholder,\n allowDragDrop,\n children,\n className,\n collapsibleHeaders = false,\n defaultHighlightedIndex,\n defaultSelected,\n disabled: listDisabled = false,\n disableFocus = false,\n disableTypeToSelect,\n displayedItemCount = 10,\n emptyMessage,\n focusVisible: focusVisibleProp,\n getItemHeight: getItemHeightProp,\n getItemId,\n height,\n highlightedIndex: highlightedIndexProp,\n id: idProp,\n itemGapSize = 0,\n itemHeight: itemHeightProp,\n itemTextHighlightPattern,\n itemToString = defaultItemToString,\n listHandlers: listHandlersProp,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n onClick: onClickProp,\n onDragStart,\n onDrop,\n onMoveListItem,\n onSelect,\n onSelectionChange,\n onHighlight,\n restoreLastFocus,\n selected: selectedProp,\n selectionStrategy,\n checkable = selectionStrategy === \"multiple\",\n scrollingApiRef,\n // TODO do we still need these ?\n selectionKeys,\n showEmptyMessage = false,\n source,\n style: styleProp,\n stickyHeaders,\n tabIndex = 0,\n tabToSelect,\n ...htmlAttributes\n }: ListProps<Item, S>,\n forwardedRef?: ForwardedRef<HTMLDivElement>,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-list\",\n css: listCss,\n window: targetWindow,\n });\n\n const id = useId(idProp);\n const contentContainerRef = useRef<HTMLDivElement>(null);\n const [size, setSize] = useState<MeasuredSize | undefined>();\n const handleResize = useCallback((size: MeasuredSize) => {\n setSize(size);\n }, []);\n\n const collectionHook = useCollectionItems<Item>({\n id,\n label: \"List\",\n source,\n children,\n options: {\n collapsibleHeaders,\n // Add Group ChildTypes to options\n getItemId,\n itemToString,\n },\n });\n\n const {\n listClientHeight,\n computedListHeight,\n listItemHeight,\n rowHeightProxyRef,\n } = useListHeight({\n displayedItemCount,\n getItemHeight: getItemHeightProp,\n height,\n itemCount: collectionHook.data.length,\n itemGapSize,\n itemHeight: itemHeightProp,\n size,\n });\n\n const { onVerticalScroll, viewportRange } = useScrollPosition({\n containerSize:\n // TODO whats the right way to handle string values - ie percentages\n listClientHeight ?? computedListHeight ?? size?.height ?? 0,\n itemCount: collectionHook.data.length,\n itemGapSize: itemGapSize,\n itemSize: listItemHeight,\n });\n\n const {\n containerRef,\n setContainerRef,\n draggable,\n draggedItemIndex,\n dropIndicator,\n focusVisible,\n highlightedIndex,\n listControlProps,\n listHandlers,\n listItemHeaderHandlers,\n scrollIntoView,\n selected,\n } = useList<Item, S>({\n allowDragDrop,\n collapsibleHeaders,\n collectionHook,\n contentRef: contentContainerRef,\n defaultHighlightedIndex,\n defaultSelected: collectionHook.itemToCollectionItemId(defaultSelected),\n disabled: listDisabled,\n disableTypeToSelect,\n highlightedIndex: highlightedIndexProp,\n id,\n label: \"List\",\n listHandlers: listHandlersProp, // should this be in context ?\n onClick: onClickProp,\n onDragStart,\n onDrop,\n onMoveListItem,\n onSelect,\n onSelectionChange,\n onHighlight,\n restoreLastFocus,\n selected: collectionHook.itemToCollectionItemId(selectedProp as any),\n selectionStrategy,\n selectionKeys,\n stickyHeaders,\n tabToSelect,\n viewportRange,\n });\n\n useImperativeScrollingAPI({\n collectionHook,\n forwardedRef: scrollingApiRef,\n // this should surely be scrollContainerRef\n scrollableRef: containerRef,\n scrollIntoView,\n });\n\n // focusVisible passes as a prop takes precedence\n const appliedFocusVisible = focusVisibleProp ?? focusVisible;\n\n const createHeader: (\n idx: { value: number },\n headerId: string,\n title: string,\n expanded?: boolean,\n ) => ReactElement = function createHeader(idx, headerId, title, expanded) {\n const header = (\n <ListItem\n {...listItemHeaderHandlers}\n className={cx(`${classBase}Header`, {\n focusVisible: collapsibleHeaders && appliedFocusVisible === idx.value,\n })}\n aria-expanded={expanded}\n data-index={collapsibleHeaders ? idx.value : undefined}\n data-highlighted={idx.value === highlightedIndex || undefined}\n data-sticky={stickyHeaders}\n data-selectable={false}\n id={headerId}\n itemHeight={getItemHeight(idx.value)}\n key={`header-${idx.value}`}\n label={title}\n // role=\"presentation\"\n />\n );\n idx.value += 1;\n return header;\n };\n\n const getItemHeight =\n getItemHeightProp === undefined ? () => itemHeightProp : getItemHeightProp;\n\n function renderCollectionItem(\n list: ReactElement[],\n item: CollectionItem<Item>,\n idx: { value: number },\n ) {\n // Note, a number of these props are specific to ListItem. What if user\n // implements a custom ListItem but neglects to handle all these props.\n // Is that on them ?\n const { disabled, value, id: itemId, label } = item;\n const isChildItem = isValidElement(value);\n const listItemProps: ListItemProps<Item> & {\n key: string;\n \"data-index\": number;\n } = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore until we refactor this whole section\n className: cx(value?.props?.className, {\n vuuHighlighted: idx.value === highlightedIndex,\n vuuFocusVisible: appliedFocusVisible === idx.value,\n [`vuuDraggable-dragAway`]: draggedItemIndex === idx.value,\n }),\n disabled: disabled || listDisabled,\n id: itemId,\n item: isChildItem ? undefined : (item?.value ?? undefined),\n itemHeight: getItemHeight(idx.value),\n itemTextHighlightPattern,\n key: itemId,\n \"data-index\": idx.value,\n label,\n role: \"option\",\n selected: isSelected<Item>(selected, item),\n showCheckbox: checkable,\n };\n list.push(\n isChildItem ? (\n cloneElement(value, listItemProps)\n ) : (\n <ListItem {...listItemProps} />\n ),\n );\n\n idx.value += 1;\n }\n\n const addGroup: (\n list: ReactElement[],\n items: CollectionItem<Item>[],\n idx: { value: number },\n ) => void = function addGroup(\n list: ReactElement[],\n items: CollectionItem<Item>[],\n idx: { value: number },\n ) {\n const { count = 0, id, expanded, label = \"\" } = items[idx.value];\n const header = createHeader(idx, id, label, expanded);\n const childItems: ReactElement | ReactElement[] =\n expanded !== false\n ? [header].concat(\n renderCollectionItems(items, idx, idx.value + count) || [],\n )\n : header;\n\n list.push(\n <div key={id} role=\"group\">\n {childItems}\n </div>,\n );\n };\n\n const renderCollectionItems = (\n items: CollectionItem<Item>[],\n idx: CollectionIndexer = { value: 0 },\n end = items.length,\n ): ReactElement[] | undefined => {\n const listItems: ReactElement[] = [];\n while (idx.value < end) {\n const item = items[idx.value];\n if (item.header) {\n listItems.push(\n createHeader(idx, item.id, item.label!, item.expanded === false),\n );\n } else if (item.childNodes) {\n addGroup(listItems, items, idx);\n } else {\n renderCollectionItem(listItems, item, idx);\n }\n }\n return listItems;\n };\n\n function renderEmpty() {\n if (emptyMessage || showEmptyMessage) {\n return (\n <span className={`${classBase}-empty-message`}>\n {emptyMessage ?? defaultEmptyMessage}\n </span>\n );\n } else {\n return null;\n }\n }\n\n const isEmpty = collectionHook.data.length === 0;\n\n const renderContent = () => {\n if (!isEmpty) {\n // const itemsToRender =\n // typeof draggedItemIndex === \"number\" && draggedItemIndex >= 0\n // ? collectionHook.data.filter((d) => d.index !== draggedItemIndex)\n // : collectionHook.data;\n const itemsToRender = collectionHook.data;\n\n return renderCollectionItems(itemsToRender);\n } else {\n renderEmpty();\n }\n };\n const contentHeight = \"auto\";\n const sizeStyles = {\n \"--list-borderWidth\":\n \"var(--vuuList-borderWidth, var(--salt-size-border, 0))\",\n \"--list-item-gap\": itemGapSize ? `${itemGapSize}px` : undefined,\n \"--computed-list-height\":\n computedListHeight === undefined ? undefined : `${computedListHeight}px`,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n };\n return (\n <MeasuredContainer\n aria-multiselectable={\n selectionStrategy === \"multiple\" ||\n selectionStrategy === \"extended\" ||\n selectionStrategy === \"extended-multi-range\" ||\n undefined\n }\n {...htmlAttributes}\n {...listHandlers}\n {...listControlProps}\n className={cx(classBase, className, \"vuuScrollable\", {\n [`${classBase}-collapsible`]: collapsibleHeaders,\n [`${classBase}-contentSized`]: computedListHeight !== undefined,\n [`${classBase}-empty`]: isEmpty,\n vuuFocusVisible: highlightedIndex === LIST_FOCUS_VISIBLE,\n })}\n height={computedListHeight ?? height}\n id={`${id}`}\n onResize={handleResize}\n ref={useForkRef<HTMLDivElement>(setContainerRef, forwardedRef)}\n role=\"listbox\"\n style={{ ...styleProp, ...sizeStyles }}\n tabIndex={listDisabled || disableFocus ? undefined : tabIndex}\n >\n <ListItemProxy\n ref={rowHeightProxyRef}\n height={itemHeightProp}\n key=\"canary\"\n />\n {collectionHook.data.length === 0 && ListPlaceholder !== undefined ? (\n <>\n <ListPlaceholder />\n </>\n ) : (\n <div className={`${classBase}-viewport`} onScroll={onVerticalScroll}>\n <div\n className={`${classBase}-scrollingContentContainer`}\n ref={contentContainerRef}\n style={{ height: contentHeight }}\n >\n {renderContent()}\n {dropIndicator}\n {draggable}\n </div>\n </div>\n )}\n </MeasuredContainer>\n );\n}) as <Item = string, S extends SelectionStrategy = \"default\">(\n props: ListProps<Item, S> & {\n ref?: ForwardedRef<HTMLDivElement>;\n },\n) => ReactElement<ListProps<Item>>;\n"],"names":["List","ListItem","DefaultListItem","itemToString","defaultItemToString","size","createHeader","addGroup","id"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../src/list/ListItem.tsx"],"sourcesContent":["import { ForwardedRef, forwardRef, HTMLAttributes } from \"react\";\nimport cx from \"clsx\";\nimport { Checkbox } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ListItemProps, ListItemType } from \"./listTypes\";\nimport { Highlighter } from \"./Highlighter\";\n\nimport listItemCss from \"./ListItem.css\";\n\nconst classBase = \"vuuListItem\";\n\n// A dummy ListItem rendered once and not visible. We measure this to\n// determine height of ListItem and monitor it for size changes (in\n// case of runtime density switch). This allows ListItem height to\n// be controlled purely through CSS.\nexport const ListItemProxy = forwardRef(function ListItemProxy(\n {\n height,\n ...htmlAttributes\n }: HTMLAttributes<HTMLDivElement> & {\n height?: number;\n },\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-list-item\",\n css: listItemCss,\n window: targetWindow,\n });\n\n return (\n <div\n {...htmlAttributes}\n aria-hidden\n className={cx(classBase, `${classBase}-proxy`)}\n ref={forwardedRef}\n style={{ height }}\n />\n );\n});\n\n// Note: the memo is effective if List label is passed as simple string\n// If children are used, it is the responsibility of caller to memoise\n// these if performance on highlight is perceived to be an issue.\nexport const ListItem = forwardRef<HTMLDivElement, ListItemProps>(\n function ListItem(\n {\n children,\n className: classNameProp,\n disabled,\n tabIndex,\n item,\n itemHeight,\n itemTextHighlightPattern,\n label,\n selectable: _notUsed,\n selected,\n showCheckbox,\n style: styleProp,\n ...props\n },\n forwardedRef\n ) {\n const className = cx(classBase, classNameProp, {\n vuuDisabled: disabled,\n [`${classBase}-checkbox`]: showCheckbox,\n });\n const style =\n itemHeight !== undefined\n ? {\n ...styleProp,\n height: itemHeight,\n }\n : styleProp;\n\n return (\n <div\n className={className}\n {...props}\n aria-disabled={disabled || undefined}\n aria-selected={selected || undefined}\n ref={forwardedRef}\n style={style}\n >\n {showCheckbox && <Checkbox aria-hidden checked={selected} />}\n {children && typeof children !== \"string\" ? (\n children\n ) : itemTextHighlightPattern == null ? (\n <span className={`${classBase}-textWrapper`}>\n {label || children}\n </span>\n ) : (\n <Highlighter\n matchPattern={itemTextHighlightPattern}\n text={label || (children as string)}\n />\n )}\n </div>\n );\n }\n) as ListItemType;\n"],"names":["ListItemProxy","ListItem"],"mappings":";;;;;;;;;AAUA,MAAM,SAAY,GAAA,aAAA,CAAA;AAML,MAAA,aAAA,GAAgB,UAAW,CAAA,SAASA,cAC/C,CAAA;AAAA,EACE,MAAA;AAAA,EACA,GAAG,cAAA;AACL,CAAA,EAGA,YACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAA,WAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,aAAW,EAAA,IAAA;AAAA,MACX,SAAW,EAAA,EAAA,CAAG,SAAW,EAAA,CAAA,EAAG,SAAS,CAAQ,MAAA,CAAA,CAAA;AAAA,MAC7C,GAAK,EAAA,YAAA;AAAA,MACL,KAAA,EAAO,EAAE,MAAO,EAAA;AAAA,KAAA;AAAA,GAClB,CAAA;AAEJ,CAAC,EAAA;AAKM,MAAM,QAAW,GAAA,UAAA;AAAA,EACtB,SAASC,SACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,SAAW,EAAA,aAAA;AAAA,IACX,QAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,wBAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAY,EAAA,QAAA;AAAA,IACZ,QAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAO,EAAA,SAAA;AAAA,IACP,GAAG,KAAA;AAAA,KAEL,YACA,EAAA;AACA,IAAM,MAAA,SAAA,GAAY,EAAG,CAAA,SAAA,EAAW,aAAe,EAAA;AAAA,MAC7C,WAAa,EAAA,QAAA;AAAA,MACb,CAAC,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW,GAAG,YAAA;AAAA,KAC5B,CAAA,CAAA;AACD,IAAM,MAAA,KAAA,GACJ,eAAe,KACX,CAAA,GAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACH,MAAQ,EAAA,UAAA;AAAA,KAEV,GAAA,SAAA,CAAA;AAEN,IACE,uBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,iBAAe,QAAY,IAAA,KAAA,CAAA;AAAA,QAC3B,iBAAe,QAAY,IAAA,KAAA,CAAA;AAAA,QAC3B,GAAK,EAAA,YAAA;AAAA,QACL,KAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,YAAA,oBAAiB,GAAA,CAAA,QAAA,EAAA,EAAS,aAAW,EAAA,IAAA,EAAC,SAAS,QAAU,EAAA,CAAA;AAAA,UACzD,QAAY,IAAA,OAAO,QAAa,KAAA,QAAA,GAC/B,WACE,wBAA4B,IAAA,IAAA,mBAC7B,GAAA,CAAA,MAAA,EAAA,EAAK,WAAW,CAAG,EAAA,SAAS,CAC1B,YAAA,CAAA,EAAA,QAAA,EAAA,KAAA,IAAS,UACZ,CAEA,mBAAA,GAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,YAAc,EAAA,wBAAA;AAAA,cACd,MAAM,KAAU,IAAA,QAAA;AAAA,aAAA;AAAA,WAClB;AAAA,SAAA;AAAA,OAAA;AAAA,KAEJ,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListItemGroup.js","sources":["../../src/list/ListItemGroup.ts"],"sourcesContent":["import { HTMLAttributes } from \"react\";\n\n// Purely used as markers, props will be extracted\nexport interface ListItemGroupProps extends HTMLAttributes<HTMLDivElement> {\n // children?: ListItemType | ListItemType[];\n children?: JSX.Element | JSX.Element[];\n label?: string;\n}\nexport const ListItemGroup = (_: ListItemGroupProps) => null;\n"],"names":[],"mappings":"AAQa,MAAA,aAAA,GAAgB,CAAC,CAA0B,KAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListItemHeader.js","sources":["../../src/list/ListItemHeader.ts"],"sourcesContent":["import { HTMLAttributes } from \"react\";\n\n// Purely used as markers, props will be extracted\nexport interface ListItemHeaderProps extends HTMLAttributes<HTMLDivElement> {\n label?: string;\n}\nexport const ListItemHeader = (_: ListItemHeaderProps) => null;\n"],"names":[],"mappings":"AAMa,MAAA,cAAA,GAAiB,CAAC,CAA2B,KAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RadioIcon.js","sources":["../../src/list/RadioIcon.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport radioIconCss from \"./RadioIcon.css\";\n\nconst classBase = \"vuuRadioIcon\";\n\nexport const RadioIcon = ({ checked = false, ...htmlAttributes }) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-radio-icon\",\n css: radioIconCss,\n window: targetWindow,\n });\n\n return (\n <span\n {...htmlAttributes}\n className={cx(classBase, { [`${classBase}-checked`]: checked })}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;AAMA,MAAM,SAAY,GAAA,cAAA,CAAA;AAEX,MAAM,YAAY,CAAC,EAAE,UAAU,KAAO,EAAA,GAAG,gBAAqB,KAAA;AACnE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAA,YAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,EAAE,CAAC,GAAG,SAAS,CAAA,QAAA,CAAU,GAAG,OAAA,EAAS,CAAA;AAAA,KAAA;AAAA,GAChE,CAAA;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyUtils.js","sources":["../../../src/list/common-hooks/keyUtils.ts"],"sourcesContent":["import React from \"react\";\n\nfunction union<T>(set1: Set<T>, ...sets: Set<T>[]) {\n const result = new Set(set1);\n for (const set of sets) {\n for (const element of set) {\n result.add(element);\n }\n }\n return result;\n}\n\nexport const ArrowUp = \"ArrowUp\";\nexport const ArrowDown = \"ArrowDown\";\nexport const ArrowLeft = \"ArrowLeft\";\nexport const ArrowRight = \"ArrowRight\";\nexport const Enter = \"Enter\";\nexport const Escape = \"Escape\";\nexport const Home = \"Home\";\nexport const End = \"End\";\nexport const PageUp = \"PageUp\";\nexport const PageDown = \"PageDown\";\nexport const Space = \" \";\n\nconst actionKeys = new Set([\"Enter\", \"Delete\", \" \"]);\nconst focusKeys = new Set([\"Tab\"]);\nconst arrowLeftRightKeys = new Set([\"ArrowRight\", \"ArrowLeft\"]);\nconst navigationKeys = new Set([\n Home,\n End,\n PageUp,\n PageDown,\n ArrowDown,\n ArrowUp,\n]);\nconst functionKeys = new Set([\n \"F1\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"F10\",\n \"F11\",\n \"F12\",\n]);\nconst specialKeys = union(\n actionKeys,\n navigationKeys,\n arrowLeftRightKeys,\n functionKeys,\n focusKeys\n);\nexport const isCharacterKey = (evt: React.KeyboardEvent): boolean => {\n if (specialKeys.has(evt.key)) {\n return false;\n }\n return evt.key.length === 1 && !evt.ctrlKey && !evt.metaKey && !evt.altKey;\n};\n\nexport const isNavigationKey = ({ key }: React.KeyboardEvent): boolean => {\n return navigationKeys.has(key);\n};\n"],"names":[],"mappings":"AAEA,SAAS,KAAA,CAAS,SAAiB,IAAgB,EAAA;AACjD,EAAM,MAAA,MAAA,GAAS,IAAI,GAAA,CAAI,IAAI,CAAA,CAAA;AAC3B,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,KAAA,MAAW,WAAW,GAAK,EAAA;AACzB,MAAA,MAAA,CAAO,IAAI,OAAO,CAAA,CAAA;AAAA,KACpB;AAAA,GACF;AACA,EAAO,OAAA,MAAA,CAAA;AACT,CAAA;AAEO,MAAM,OAAU,GAAA,UAAA;AAChB,MAAM,SAAY,GAAA,YAAA;AAClB,MAAM,SAAY,GAAA,YAAA;AAClB,MAAM,UAAa,GAAA,aAAA;AACnB,MAAM,KAAQ,GAAA,QAAA;AACd,MAAM,MAAS,GAAA,SAAA;AACf,MAAM,IAAO,GAAA,OAAA;AACb,MAAM,GAAM,GAAA,MAAA;AACZ,MAAM,MAAS,GAAA,SAAA;AACf,MAAM,QAAW,GAAA,WAAA;AACjB,MAAM,KAAQ,GAAA,IAAA;AAErB,MAAM,6BAAiB,IAAA,GAAA,CAAI,CAAC,OAAS,EAAA,QAAA,EAAU,GAAG,CAAC,CAAA,CAAA;AACnD,MAAM,SAAY,mBAAA,IAAI,GAAI,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA;AACjC,MAAM,qCAAyB,IAAA,GAAA,CAAI,CAAC,YAAA,EAAc,WAAW,CAAC,CAAA,CAAA;AAC9D,MAAM,cAAA,uBAAqB,GAAI,CAAA;AAAA,EAC7B,IAAA;AAAA,EACA,GAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AACF,CAAC,CAAA,CAAA;AACD,MAAM,YAAA,uBAAmB,GAAI,CAAA;AAAA,EAC3B,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AACF,CAAC,CAAA,CAAA;AACD,MAAM,WAAc,GAAA,KAAA;AAAA,EAClB,UAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AACF,CAAA,CAAA;AACa,MAAA,cAAA,GAAiB,CAAC,GAAsC,KAAA;AACnE,EAAA,IAAI,WAAY,CAAA,GAAA,CAAI,GAAI,CAAA,GAAG,CAAG,EAAA;AAC5B,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,GAAA,CAAI,GAAI,CAAA,MAAA,KAAW,CAAK,IAAA,CAAC,GAAI,CAAA,OAAA,IAAW,CAAC,GAAA,CAAI,OAAW,IAAA,CAAC,GAAI,CAAA,MAAA,CAAA;AACtE,EAAA;AAEO,MAAM,eAAkB,GAAA,CAAC,EAAE,GAAA,EAAwC,KAAA;AACxE,EAAO,OAAA,cAAA,CAAe,IAAI,GAAG,CAAA,CAAA;AAC/B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-dom-utils.js","sources":["../../../src/list/common-hooks/list-dom-utils.ts"],"sourcesContent":["export const listItemElement = (listEl: HTMLElement, listItemIdx: number) =>\n listEl.querySelector(`:scope > [data-idx=\"${listItemIdx}\"]`);\n\nexport function listItemIndex(listItemEl?: HTMLElement) {\n if (listItemEl) {\n let idx: string | null | undefined = listItemEl.dataset.index;\n if (idx) {\n return parseInt(idx, 10);\n // eslint-disable-next-line no-cond-assign\n } else if ((idx = listItemEl.ariaPosInSet)) {\n return parseInt(idx, 10) - 1;\n }\n }\n return -1;\n}\n\nexport const listItemId = (el: HTMLElement | null) => el?.id;\n\nconst closestListItem = (el: HTMLElement) =>\n el.closest(\"[data-index],[aria-posinset]\") as HTMLElement;\n\nexport const closestListItemId = (el: HTMLElement) =>\n listItemId(closestListItem(el));\n\nexport const closestListItemIndex = (el: HTMLElement) =>\n listItemIndex(closestListItem(el));\n"],"names":[],"mappings":"AAAa,MAAA,eAAA,GAAkB,CAAC,MAAqB,EAAA,WAAA,KACnD,OAAO,aAAc,CAAA,CAAA,oBAAA,EAAuB,WAAW,CAAI,EAAA,CAAA,EAAA;AAEtD,SAAS,cAAc,UAA0B,EAAA;AACtD,EAAA,IAAI,UAAY,EAAA;AACd,IAAI,IAAA,GAAA,GAAiC,WAAW,OAAQ,CAAA,KAAA,CAAA;AACxD,IAAA,IAAI,GAAK,EAAA;AACP,MAAO,OAAA,QAAA,CAAS,KAAK,EAAE,CAAA,CAAA;AAAA,KAEzB,MAAA,IAAY,GAAM,GAAA,UAAA,CAAW,YAAe,EAAA;AAC1C,MAAO,OAAA,QAAA,CAAS,GAAK,EAAA,EAAE,CAAI,GAAA,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF;AACA,EAAO,OAAA,CAAA,CAAA,CAAA;AACT,CAAA;AAEa,MAAA,UAAA,GAAa,CAAC,EAAA,KAA2B,EAAI,EAAA,GAAA;AAE1D,MAAM,eAAkB,GAAA,CAAC,EACvB,KAAA,EAAA,CAAG,QAAQ,8BAA8B,CAAA,CAAA;AAEpC,MAAM,oBAAoB,CAAC,EAAA,KAChC,UAAW,CAAA,eAAA,CAAgB,EAAE,CAAC,EAAA;AAEzB,MAAM,uBAAuB,CAAC,EAAA,KACnC,aAAc,CAAA,eAAA,CAAgB,EAAE,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCollapsibleGroups.js","sources":["../../../src/list/common-hooks/useCollapsibleGroups.ts"],"sourcesContent":["import { MouseEvent, useCallback } from \"react\";\nimport { ArrowLeft, ArrowRight, Enter } from \"./keyUtils\";\nimport { ListHandlers } from \"../../common-hooks\";\nimport {\n CollectionHookResult,\n CollectionItem,\n} from \"../../common-hooks/collectionTypes\";\n\nconst NO_HANDLERS = {};\nconst canToggleItem = (item: CollectionItem<unknown>) =>\n Array.isArray(item.childNodes);\n// TODO how do we determine this and where does this function belong = in the collectionHook ?\nconst canSelectItem = (_: CollectionItem<unknown>) => true;\n\nconst toggleIconClicked = (el: HTMLElement) => {\n const closestToggle = el.closest(\n \"[data-toggle],[aria-expanded]\"\n ) as HTMLElement;\n return closestToggle.dataset.toggle === \"true\";\n};\n\ninterface CollapsibleHookProps<Item> {\n collapsibleHeaders?: boolean;\n collectionHook: CollectionHookResult<Item>;\n highlightedIdx: number;\n onToggle?: (node: Item) => void;\n}\n\ninterface CollapsibleHookResult {\n onClick?: ListHandlers[\"onClick\"];\n onKeyDown?: ListHandlers[\"onKeyDown\"];\n}\n\nexport const useCollapsibleGroups = <Item>({\n collapsibleHeaders,\n collectionHook,\n highlightedIdx,\n onToggle,\n}: CollapsibleHookProps<Item>): CollapsibleHookResult => {\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === ArrowRight || e.key === Enter) {\n const item = collectionHook.data[highlightedIdx];\n if (item) {\n if (item.expanded === false && item.value) {\n e.preventDefault();\n collectionHook.expandGroupItem(item);\n onToggle?.(item.value);\n }\n }\n }\n\n if (e.key === ArrowLeft || e.key === Enter) {\n const item = collectionHook.data[highlightedIdx];\n if (item) {\n if (item.expanded && item.value) {\n e.preventDefault();\n collectionHook.collapseGroupItem(item);\n onToggle?.(item.value);\n }\n }\n }\n },\n [\n collectionHook.collapseGroupItem,\n collectionHook.data,\n collectionHook.expandGroupItem,\n highlightedIdx,\n ]\n );\n\n const handleClick = useCallback(\n (evt: MouseEvent<HTMLElement>) => {\n console.log(`useCollapsibleGroups idx=${highlightedIdx}`);\n const item = collectionHook.data[highlightedIdx];\n console.log(evt.target, evt.currentTarget);\n if (\n item &&\n canToggleItem(item) &&\n (!canSelectItem(item) || toggleIconClicked(evt.target as HTMLElement))\n ) {\n evt.stopPropagation();\n evt.preventDefault();\n if (item.expanded === false && item.value) {\n collectionHook.expandGroupItem(item);\n onToggle?.(item.value);\n } else if (item.expanded === true && item.value) {\n collectionHook.collapseGroupItem(item);\n onToggle?.(item.value);\n }\n }\n },\n [\n collectionHook.collapseGroupItem,\n collectionHook.data,\n collectionHook.expandGroupItem,\n highlightedIdx,\n ]\n );\n\n /**\n * These are List handlers, so we will not have reference to the actual node\n * element. We must rely on highlightedIdx to tell us which node is interactive.\n */\n const listHandlers = {\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n };\n\n return collapsibleHeaders ? listHandlers : NO_HANDLERS;\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useImperativeScrollingAPI.js","sources":["../../../src/list/common-hooks/useImperativeScrollingAPI.ts"],"sourcesContent":["import {\n ForwardedRef,\n MutableRefObject,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport {\n CollectionHookResult,\n CollectionItem,\n} from \"../../common-hooks/collectionTypes\";\n\nexport interface ScrollingAPI<Item> {\n scrollToIndex: (itemIndex: number) => void;\n scrollToItem: (item: Item) => void;\n scrollTo: (scrollOffset: number) => void;\n}\n\nexport interface ScrollingAPIHook<Item> {\n collectionHook: CollectionHookResult<Item>;\n forwardedRef?: ForwardedRef<ScrollingAPI<Item>>;\n scrollableRef: MutableRefObject<HTMLElement | null>;\n scrollIntoView?: (item: CollectionItem<Item>) => void;\n}\n\nconst noScrolling: ScrollingAPI<unknown> = {\n scrollToIndex: () => undefined,\n scrollToItem: () => undefined,\n scrollTo: () => undefined,\n};\n\nexport const useImperativeScrollingAPI = <Item>({\n collectionHook,\n forwardedRef,\n scrollableRef,\n scrollIntoView,\n}: ScrollingAPIHook<Item>) => {\n const scrollHandles: ScrollingAPI<Item> = useMemo(\n () => ({\n scrollToIndex: (itemIndex: number) => {\n const collectionItem = collectionHook.data[itemIndex];\n if (collectionItem) {\n scrollIntoView?.(collectionItem);\n }\n },\n scrollToItem: (item: Item) => {\n const collectionItem = collectionHook.toCollectionItem(item);\n if (collectionItem) {\n scrollIntoView?.(collectionItem);\n }\n },\n scrollTo: (scrollOffset: number) => {\n if (scrollableRef?.current) {\n scrollableRef.current.scrollTop = scrollOffset;\n }\n },\n }),\n [collectionHook, scrollIntoView, scrollableRef]\n );\n\n useImperativeHandle(\n forwardedRef,\n () => {\n if (scrollableRef.current) {\n return scrollHandles;\n } else {\n return noScrolling;\n }\n },\n [scrollHandles, scrollableRef]\n );\n};\n"],"names":[],"mappings":";;AAwBA,MAAM,WAAqC,GAAA;AAAA,EACzC,eAAe,MAAM,KAAA,CAAA;AAAA,EACrB,cAAc,MAAM,KAAA,CAAA;AAAA,EACpB,UAAU,MAAM,KAAA,CAAA;AAClB,CAAA,CAAA;AAEO,MAAM,4BAA4B,CAAO;AAAA,EAC9C,cAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AACF,CAA8B,KAAA;AAC5B,EAAA,MAAM,aAAoC,GAAA,OAAA;AAAA,IACxC,OAAO;AAAA,MACL,aAAA,EAAe,CAAC,SAAsB,KAAA;AACpC,QAAM,MAAA,cAAA,GAAiB,cAAe,CAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AACpD,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,cAAA,GAAiB,cAAc,CAAA,CAAA;AAAA,SACjC;AAAA,OACF;AAAA,MACA,YAAA,EAAc,CAAC,IAAe,KAAA;AAC5B,QAAM,MAAA,cAAA,GAAiB,cAAe,CAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAC3D,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,cAAA,GAAiB,cAAc,CAAA,CAAA;AAAA,SACjC;AAAA,OACF;AAAA,MACA,QAAA,EAAU,CAAC,YAAyB,KAAA;AAClC,QAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,UAAA,aAAA,CAAc,QAAQ,SAAY,GAAA,YAAA,CAAA;AAAA,SACpC;AAAA,OACF;AAAA,KACF,CAAA;AAAA,IACA,CAAC,cAAgB,EAAA,cAAA,EAAgB,aAAa,CAAA;AAAA,GAChD,CAAA;AAEA,EAAA,mBAAA;AAAA,IACE,YAAA;AAAA,IACA,MAAM;AACJ,MAAA,IAAI,cAAc,OAAS,EAAA;AACzB,QAAO,OAAA,aAAA,CAAA;AAAA,OACF,MAAA;AACL,QAAO,OAAA,WAAA,CAAA;AAAA,OACT;AAAA,KACF;AAAA,IACA,CAAC,eAAe,aAAa,CAAA;AAAA,GAC/B,CAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../src/list/common-hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useControlled } from \"@salt-ds/core\";\nimport {\n FocusEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n ArrowDown,\n ArrowUp,\n End,\n Home,\n isCharacterKey,\n isNavigationKey,\n PageDown,\n PageUp,\n} from \"./keyUtils\";\nimport {\n NavigationHookProps,\n NavigationHookResult,\n getFirstSelectedItem,\n hasSelection,\n} from \"../../common-hooks\";\nimport { getElementByDataIndex, isValidNumber } from \"@vuu-ui/vuu-utils\";\n\nexport const LIST_FOCUS_VISIBLE = -2;\n\nfunction nextItemIdx(count: number, key: string, idx: number) {\n if (key === ArrowUp || key === End) {\n if (idx > 0) {\n return idx - 1;\n } else {\n return idx;\n }\n } else {\n if (idx === null) {\n return 0;\n } else if (idx === count - 1) {\n return idx;\n } else {\n return idx + 1;\n }\n }\n}\n\nconst getIndexOfSelectedItem = (selected?: string[]) => {\n const selectedItemId = Array.isArray(selected)\n ? getFirstSelectedItem(selected)\n : undefined;\n if (selectedItemId) {\n const el = document.getElementById(selectedItemId) as HTMLElement;\n if (el) {\n const index = parseInt(el.dataset.index ?? \"-1\");\n if (isValidNumber(index)) {\n return index;\n }\n }\n }\n return -1;\n};\n\nconst getStartIdx = (\n key: string,\n idx: number,\n selectedIdx: number,\n length: number,\n) => {\n if (key === End) {\n return length;\n } else if (key === Home) {\n return -1;\n } else if (idx !== -1) {\n return idx;\n } else {\n return selectedIdx;\n }\n};\n\nconst pageDown = (\n containerEl: HTMLElement,\n itemEl: HTMLElement,\n itemCount: number,\n index: number,\n): number | undefined => {\n const { top: itemTop } = itemEl.getBoundingClientRect();\n const { scrollTop, clientHeight, scrollHeight } = containerEl;\n const lastIndexPosition = itemCount - 1;\n const newScrollTop = Math.min(\n scrollTop + clientHeight,\n scrollHeight - clientHeight,\n );\n // If there is no scroll movement, we are already scrolled to last page, or\n // no scroll movement is necessary, highlight last item\n if (newScrollTop === scrollTop && index < lastIndexPosition) {\n return lastIndexPosition;\n } else if (newScrollTop !== scrollTop && index < lastIndexPosition) {\n containerEl.scrollTo(0, newScrollTop);\n let nextIdx = index;\n let nextRect;\n do {\n nextIdx += 1;\n nextRect = getElementByDataIndex(\n containerEl,\n nextIdx,\n true,\n ).getBoundingClientRect();\n } while (nextRect.top < itemTop && nextIdx < lastIndexPosition);\n return nextIdx;\n }\n};\n\nconst pageUp = (\n containerEl: HTMLElement,\n itemEl: HTMLElement,\n index: number,\n) => {\n const { top: itemTop } = itemEl.getBoundingClientRect();\n const { scrollTop, clientHeight } = containerEl;\n const newScrollTop = Math.max(scrollTop - clientHeight, 0);\n if (newScrollTop === scrollTop && index > 0) {\n return 0;\n } else if (newScrollTop !== scrollTop && index > 0) {\n containerEl.scrollTo(0, newScrollTop);\n let nextIdx = index;\n let nextRect;\n do {\n nextIdx -= 1;\n nextRect = getElementByDataIndex(\n containerEl,\n nextIdx,\n true,\n ).getBoundingClientRect();\n } while (nextRect.top > itemTop && nextIdx > 0);\n return nextIdx;\n }\n};\n\n// const isLeaf = <Item>(item: CollectionItem<Item>): boolean =>\n// !item.header && !item.childNodes;\nconst isLeaf = (element?: HTMLElement) => element !== undefined;\n// const isFocusable = <Item>(item: CollectionItem<Item>) =>\n// isLeaf(item) || item.expanded !== undefined;\n// TODO read dom element and check for leaf item or toggleable group\nconst isFocusable = (container: HTMLElement, index: number) => {\n const targetEl = getElementByDataIndex(container, index);\n return isLeaf(targetEl);\n};\n\nexport const useKeyboardNavigation = ({\n containerRef,\n defaultHighlightedIndex = -1,\n disableHighlightOnFocus,\n highlightedIndex: highlightedIndexProp,\n itemCount,\n onHighlight,\n onKeyboardNavigation,\n restoreLastFocus,\n selected,\n // TODO\n viewportItemCount: _,\n}: NavigationHookProps): NavigationHookResult => {\n const lastFocus = useRef(-1);\n const [, forceRender] = useState({});\n const [highlightedIndex, setHighlightedIdx, isControlledHighlighting] =\n useControlled({\n controlled: highlightedIndexProp,\n default: defaultHighlightedIndex,\n name: \"UseKeyboardNavigation\",\n });\n\n const setHighlightedIndex = useCallback(\n (idx: number, fromKeyboard = false) => {\n onHighlight?.(idx);\n setHighlightedIdx(idx);\n if (fromKeyboard) {\n lastFocus.current = idx;\n }\n },\n [onHighlight, setHighlightedIdx],\n );\n\n const nextPageItemIdx = useCallback(\n (key: \"PageDown\" | \"PageUp\" | \"Home\" | \"End\", index: number) => {\n const itemEl = getElementByDataIndex(containerRef.current, index, true);\n let result: number | undefined;\n if (itemEl) {\n const { current: containerEl } = containerRef;\n if (itemEl && containerEl) {\n result =\n key === PageDown\n ? pageDown(containerEl, itemEl, itemCount, index)\n : pageUp(containerEl, itemEl, index);\n }\n }\n return result ?? index;\n },\n [containerRef, itemCount],\n );\n\n const nextFocusableItemIdx = useCallback(\n (key = ArrowDown, idx: number = key === ArrowDown ? -1 : itemCount) => {\n //TODO we don't seem to have selectedhere first time after selection\n if (itemCount === 0) {\n return -1;\n } else {\n const isEnd = key === \"End\";\n const isHome = key === \"Home\";\n // The start index is generally the highlightedIdx (passed in as idx).\n // We don't need it for Home and End navigation.\n // Special case where we have selection, but no highlighting - begin\n // navigation from selected item.\n const indexOfSelectedItem =\n isEnd || isHome || idx === -1 ? -1 : getIndexOfSelectedItem(selected);\n const startIdx = getStartIdx(key, idx, indexOfSelectedItem, itemCount);\n let nextIdx = nextItemIdx(itemCount, key, startIdx);\n\n const { current: container } = containerRef;\n // Guard against returning zero, when first item is a header or group\n if (\n nextIdx === 0 &&\n key === ArrowUp &&\n container &&\n !isFocusable(container, 0)\n ) {\n return idx;\n }\n // TODO this is causing an infinite loop in some scenarios\n while (\n (((key === ArrowDown || isHome) && nextIdx < itemCount) ||\n ((key === ArrowUp || isEnd) && nextIdx > 0)) &&\n container &&\n !isFocusable(container, nextIdx)\n ) {\n nextIdx = nextItemIdx(itemCount, key, nextIdx);\n }\n return nextIdx;\n }\n },\n [containerRef, itemCount, selected],\n );\n\n // does this belong here or should it be a method passed in?\n const keyboardNavigation = useRef(false);\n const ignoreFocus = useRef<boolean>(false);\n const setIgnoreFocus = (value: boolean) => (ignoreFocus.current = value);\n\n const handleFocus = useCallback(() => {\n // Ignore focus if mouse has been used\n if (ignoreFocus.current) {\n ignoreFocus.current = false;\n } else {\n // If mouse wan't used, then keyboard must have been\n keyboardNavigation.current = true;\n if (itemCount === 0) {\n setHighlightedIndex(LIST_FOCUS_VISIBLE);\n } else if (highlightedIndex !== -1) {\n // We need to force a render here. We're not changing the highlightedIdx, but we want to\n // make sure we render with the correct focusVisible value. We don't store focusVisible\n // in state, as there are places where we would double render, as highlightedIdx also changes.\n forceRender({});\n } else if (restoreLastFocus) {\n if (lastFocus.current !== -1) {\n setHighlightedIndex(lastFocus.current);\n } else {\n const selectedItemIdx = getIndexOfSelectedItem(selected);\n if (selectedItemIdx !== -1) {\n setHighlightedIndex(selectedItemIdx);\n } else {\n setHighlightedIndex(0);\n }\n }\n } else if (hasSelection(selected)) {\n const selectedItemIdx = getIndexOfSelectedItem(selected);\n setHighlightedIndex(selectedItemIdx);\n } else if (disableHighlightOnFocus !== true) {\n setHighlightedIndex(nextFocusableItemIdx());\n }\n }\n }, [\n disableHighlightOnFocus,\n highlightedIndex,\n itemCount,\n nextFocusableItemIdx,\n restoreLastFocus,\n selected,\n setHighlightedIndex,\n ]);\n\n const navigateChildItems = useCallback(\n async (e: KeyboardEvent) => {\n const nextIdx =\n e.key === PageDown || e.key === PageUp\n ? nextPageItemIdx(e.key, highlightedIndex)\n : nextFocusableItemIdx(e.key, highlightedIndex);\n\n if (nextIdx !== highlightedIndex) {\n setHighlightedIndex(nextIdx, true);\n }\n // Users may need to know that a Keyboard navigation event has been handled\n // even if no actual navigation was effected. e.g. fine-grained control\n // over aria-activedescendant requires this.\n onKeyboardNavigation?.(e, nextIdx);\n },\n [\n highlightedIndex,\n nextFocusableItemIdx,\n nextPageItemIdx,\n onKeyboardNavigation,\n setHighlightedIndex,\n ],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (itemCount > 0 && isNavigationKey(e)) {\n e.preventDefault();\n e.stopPropagation();\n keyboardNavigation.current = true;\n navigateChildItems(e);\n } else if (isCharacterKey(e)) {\n keyboardNavigation.current = true;\n }\n },\n [itemCount, navigateChildItems],\n );\n\n const containerProps = useMemo(() => {\n return {\n onBlur: (e: FocusEvent) => {\n //TODO no direct ref to List\n const sourceTarget = (e.target as HTMLElement).closest(\".vuuList\");\n const destTarget = e.relatedTarget as HTMLElement;\n if (sourceTarget && !sourceTarget?.contains(destTarget)) {\n keyboardNavigation.current = false;\n setHighlightedIdx(-1);\n if (!restoreLastFocus) {\n lastFocus.current = -1;\n }\n }\n },\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onMouseDownCapture: () => {\n keyboardNavigation.current = false;\n setIgnoreFocus(true);\n },\n\n // onMouseEnter would seem less expensive but it misses some cases\n onMouseMove: () => {\n if (keyboardNavigation.current) {\n keyboardNavigation.current = false;\n }\n },\n onMouseLeave: () => {\n keyboardNavigation.current = false;\n setIgnoreFocus(false);\n setHighlightedIndex(-1);\n },\n };\n }, [\n handleFocus,\n handleKeyDown,\n restoreLastFocus,\n setHighlightedIdx,\n setHighlightedIndex,\n ]);\n\n return {\n focusVisible: keyboardNavigation.current ? highlightedIndex : -1,\n controlledHighlighting: isControlledHighlighting,\n highlightedIndex,\n setHighlightedIndex,\n keyboardNavigation,\n containerProps,\n setIgnoreFocus,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTypeahead.js","sources":["../../../src/list/common-hooks/useTypeahead.ts"],"sourcesContent":["import { useCallback, useRef } from \"react\";\nimport { isCharacterKey, Space } from \"./keyUtils\";\nimport { CollectionItem } from \"../../common-hooks/collectionTypes\";\n\ninterface TypeaheadHookProps<Item> {\n disableTypeToSelect?: boolean;\n highlightedIdx: number;\n highlightItemAtIndex: (idx: number) => void;\n applyIncrementalSearch?: boolean;\n typeToNavigate: boolean;\n items: CollectionItem<Item>[];\n}\n\ninterface TypeaheadHookResult {\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nexport const useTypeahead = <Item>({\n disableTypeToSelect,\n highlightedIdx,\n highlightItemAtIndex,\n typeToNavigate,\n items,\n applyIncrementalSearch = true,\n}: TypeaheadHookProps<Item>): TypeaheadHookResult => {\n const keyDownTimer = useRef<number | null>(null);\n const searchChars = useRef(\"\");\n const startIdx = useRef(-1);\n\n const applySearch = useCallback(\n (intermediateSearch?: true | undefined) => {\n if (intermediateSearch || !applyIncrementalSearch) {\n const regex = new RegExp(`^${searchChars.current}`, \"i\");\n let idx = items.findIndex(\n ({ label }, i) => i > startIdx.current && regex.test(label!)\n );\n if (idx === -1) {\n idx = items.findIndex(\n ({ label }, i) => i <= startIdx.current && regex.test(label!)\n );\n }\n if (idx !== -1) {\n highlightItemAtIndex(idx);\n }\n } else {\n searchChars.current = \"\";\n keyDownTimer.current = null;\n startIdx.current = -1;\n }\n },\n [applyIncrementalSearch, highlightItemAtIndex, items]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const searchInProgress = startIdx.current !== -1;\n if (isCharacterKey(e) || (searchInProgress && e.key === Space)) {\n if (typeToNavigate) {\n e.preventDefault();\n e.stopPropagation();\n // If we type the same key repeatedly, we cycle through the matches\n if (startIdx.current === -1 || e.key === searchChars.current) {\n startIdx.current = highlightedIdx;\n }\n if (keyDownTimer.current !== null) {\n clearTimeout(keyDownTimer.current);\n keyDownTimer.current = null;\n }\n if (e.key !== searchChars.current) {\n searchChars.current += e.key;\n }\n if (applyIncrementalSearch) {\n applySearch(true);\n }\n // keyDownTimer.current = window.setTimeout(applySearch, 100);\n keyDownTimer.current = window.setTimeout(() => {\n applySearch();\n }, 100);\n }\n }\n },\n [typeToNavigate, applyIncrementalSearch, highlightedIdx, applySearch]\n );\n\n return {\n onKeyDown: disableTypeToSelect ? undefined : handleKeyDown,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useViewportTracking.js","sources":["../../../src/list/common-hooks/useViewportTracking.ts"],"sourcesContent":["import { MutableRefObject, RefObject, useCallback, useRef } from \"react\";\nimport { CollectionItem } from \"../../common-hooks/collectionTypes\";\nimport { ResizeHandler, useResizeObserver } from \"../../common-hooks\";\nimport { useIsomorphicLayoutEffect } from \"@salt-ds/core\";\n\nconst HeightOnly = [\"height\"];\nconst HeightWithScroll = [\"height\", \"scrollHeight\"];\nconst EMPTY_ARRAY: any[] = [];\n\nconst ObservedDimensions = {\n containerOnly: [HeightWithScroll, EMPTY_ARRAY],\n withContent: [HeightOnly, HeightOnly],\n};\nconst getObservedDimensions = (containerOnly: boolean) =>\n containerOnly\n ? ObservedDimensions.containerOnly\n : ObservedDimensions.withContent;\n\nconst NULL_REF = { current: null };\n\nconst getItemTop = (\n element: HTMLElement,\n offsetContainer: HTMLElement | null\n) => {\n const { transform = \"none\" } = getComputedStyle(element);\n if (transform.startsWith(\"matrix\")) {\n const pos = transform.lastIndexOf(\",\");\n return parseInt(transform.slice(pos + 1));\n } else {\n let offsetParent = element.offsetParent as HTMLElement;\n if (offsetParent === offsetContainer || offsetContainer === null) {\n return element.offsetTop;\n } else {\n let top = element.offsetTop;\n while (offsetParent !== null && offsetParent !== offsetContainer) {\n top += offsetParent.offsetTop;\n offsetParent = offsetParent.offsetParent as HTMLElement;\n }\n return top;\n }\n }\n};\n\nexport interface ViewportTrackingProps<Item> {\n containerRef: RefObject<HTMLElement>;\n contentRef?: RefObject<HTMLElement>;\n highlightedIdx?: number;\n indexPositions: CollectionItem<Item>[];\n stickyHeaders?: boolean;\n}\n\nexport interface ViewportTrackingResult<Item> {\n isScrolling: MutableRefObject<boolean>;\n scrollIntoView: (item: CollectionItem<Item>) => void;\n}\n\nexport const useViewportTracking = <Item>({\n containerRef,\n contentRef = NULL_REF,\n highlightedIdx = -1,\n indexPositions,\n stickyHeaders = false,\n}: ViewportTrackingProps<Item>): ViewportTrackingResult<Item> => {\n const scrolling = useRef<boolean>(false);\n const viewport = useRef({\n height: 0,\n contentHeight: 0,\n });\n\n const scrollTo = useCallback((scrollPos: number) => {\n scrolling.current = true;\n if (containerRef.current) {\n containerRef.current.scrollTop = scrollPos;\n }\n setTimeout(() => {\n scrolling.current = false;\n });\n }, []);\n\n const scrollToStart = useCallback(() => scrollTo(0), [scrollTo]);\n\n const scrollToEnd = useCallback(() => {\n scrollTo(viewport.current.contentHeight - viewport.current.height);\n }, [scrollTo]);\n\n const scrollIntoViewIfNeeded = useCallback(\n (item: CollectionItem<Item>) => {\n const offsetContainer = contentRef.current || containerRef.current;\n if (item.id) {\n const el = document.getElementById(item.id);\n if (el && containerRef.current) {\n const { height: viewportHeight } = viewport.current;\n const targetEl =\n el.ariaExpanded && el.firstChild\n ? (el.firstChild as HTMLElement)\n : el;\n const headerHeight = stickyHeaders ? 36 : 0;\n const itemTop = getItemTop(targetEl, offsetContainer);\n const itemHeight = targetEl.offsetHeight;\n const { scrollTop } = containerRef.current;\n const viewportStart = scrollTop + headerHeight;\n const viewportEnd = viewportStart + viewportHeight - headerHeight;\n\n if (itemTop + itemHeight > viewportEnd || itemTop < viewportStart) {\n const newScrollTop =\n itemTop + itemHeight > viewportEnd\n ? scrollTop + (itemTop + itemHeight) - viewportEnd\n : itemTop - headerHeight;\n\n scrollTo(newScrollTop);\n }\n }\n }\n },\n [containerRef, contentRef, scrollTo, stickyHeaders]\n );\n\n useIsomorphicLayoutEffect(() => {\n const { height, contentHeight } = viewport.current;\n const item = indexPositions[highlightedIdx];\n if (contentHeight > height && item) {\n const [firstItem] = indexPositions;\n const [lastItem] = indexPositions.slice(-1);\n if (item === firstItem) {\n scrollToStart();\n } else if (item === lastItem) {\n scrollToEnd();\n } else {\n scrollIntoViewIfNeeded(indexPositions[highlightedIdx]);\n }\n }\n }, [\n highlightedIdx,\n indexPositions,\n scrollIntoViewIfNeeded,\n scrollToEnd,\n scrollToStart,\n ]);\n\n const onContainerResize: ResizeHandler = useCallback(\n ({ height, scrollHeight }) => {\n if (typeof height === \"number\") {\n viewport.current.height = height;\n }\n if (typeof scrollHeight === \"number\") {\n viewport.current.contentHeight = scrollHeight;\n }\n },\n []\n );\n\n const onContentResize: ResizeHandler = useCallback(({ height }) => {\n if (typeof height === \"number\") {\n viewport.current.contentHeight = height;\n }\n }, []);\n\n // If we only have a container, then we will observe its height and scrollHeight,\n // contentRef will be null, so second call to observer will observe nothing.\n // If we have both container and content, then we observe the height of each.\n const [containerDimensions, contentDimensions] = getObservedDimensions(\n contentRef === NULL_REF\n );\n useResizeObserver(containerRef, containerDimensions, onContainerResize, true);\n useResizeObserver(contentRef, contentDimensions, onContentResize, true);\n\n return {\n isScrolling: scrolling,\n scrollIntoView: scrollIntoViewIfNeeded,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"collection-item-utils.js","sources":["../../../../src/list/common-hooks/utils/collection-item-utils.ts"],"sourcesContent":["import { isValidElement, Children, ReactElement, ReactNode } from \"react\";\n\nimport {\n CollectionItem,\n CollectionOptions,\n SourceGroup,\n} from \"../../../common-hooks/collectionTypes\";\n// TODO how do we configure these\nimport { ListItemGroup } from \"../../ListItemGroup\";\nimport { ListItemHeader } from \"../../ListItemHeader\";\nimport { itemToString as defaultItemToString } from \"../../../common-hooks/itemToString\";\n\ntype NonFocusableElement = ReactElement<{ focusable: false }>;\ntype DisablableElement = ReactElement<{ disabled: boolean }>;\ntype SelectableElement = ReactElement<{ selectable: boolean }>;\n\nexport const sourceItemHasProp = (\n item: unknown,\n propertyName: string\n): boolean => {\n return (\n item !== null && Object.prototype.hasOwnProperty.call(item, propertyName)\n );\n};\n\nexport const isHeader = (item: unknown): boolean =>\n sourceItemHasProp(item, \"header\");\n\nexport const isGroupNode = (item: unknown): boolean =>\n sourceItemHasProp(item, \"childNodes\");\n\nconst childItemHasProp = (item: ReactElement, propertyName: string) => {\n return item && Object.prototype.hasOwnProperty.call(item.props, propertyName);\n};\n\nexport const isDisabled = (item: unknown): boolean => {\n if (isValidElement(item as DisablableElement)) {\n if (childItemHasProp(item as DisablableElement, \"disabled\")) {\n return (item as DisablableElement).props.disabled === true;\n }\n } else if (sourceItemHasProp(item, \"disabled\")) {\n return (item as { disabled: boolean }).disabled === true;\n }\n\n return false;\n};\n\nexport const isFocusable = (item: unknown): boolean => {\n if (isValidElement(item as NonFocusableElement)) {\n if (childItemHasProp(item as NonFocusableElement, \"focusable\")) {\n return (item as NonFocusableElement).props.focusable;\n }\n }\n return true;\n};\n\nexport const countChildItems = <Item>(\n item: CollectionItem<Item>,\n items: CollectionItem<Item>[],\n idx: number\n): number => {\n if (item.childNodes) {\n return item.childNodes.length;\n } else if (item.header) {\n let i = idx + 1;\n let count = 0;\n while (i < items.length && !items[i].header) {\n count++;\n i++;\n }\n return count;\n } else {\n return 0;\n }\n};\n\nexport const getChildLabel = (\n element: ReactElement<{\n children?: ReactNode;\n label?: string;\n title?: string;\n }>\n): string | undefined => {\n if (typeof element.props.children === \"string\") {\n return element.props.children;\n } else if (element.props.title) {\n return element.props.title;\n } else if (element.props.label) {\n return element.props.label;\n }\n};\n\nconst childIsHeader = (child: ReactElement) =>\n child.type === ListItemHeader || childItemHasProp(child, \"data-header\");\n\nexport const childIsGroup = (child: ReactElement): boolean =>\n child.type === ListItemGroup || childItemHasProp(child, \"data-group\");\n\nconst childIsSelectable = (child: ReactElement) => {\n if (childItemHasProp(child, \"selectable\")) {\n return (child as SelectableElement).props.selectable === true;\n } else {\n return !childIsGroup(child) && !childIsHeader(child);\n }\n};\n\nexport const getChildNodes = (\n element: ReactElement\n): CollectionItem<ReactElement>[] | undefined => {\n if (childIsGroup(element)) {\n const {\n props: { children },\n } = element as ReactElement<{ children?: ReactNode }>;\n if (typeof children !== \"string\") {\n return childItems(children);\n }\n }\n};\n\nconst mapReactElementChildren = (\n children: ReactNode,\n fn: (el: ReactElement) => CollectionItem<ReactElement>\n): CollectionItem<ReactElement>[] => {\n const childElements: CollectionItem<ReactElement>[] = [];\n Children.forEach(children, (child) => {\n if (isValidElement(child)) {\n childElements.push(fn(child));\n }\n });\n return childElements;\n};\n\ntype ListItemElementProps = {\n \"data-id\"?: string;\n disabled?: boolean;\n id?: string;\n \"data-expanded\"?: boolean;\n expanded?: boolean;\n};\n\ntype CollectionItemWithoutId<T> = Omit<CollectionItem<T>, \"id\">;\n\nexport const sourceItems = <T>(\n source?: ReadonlyArray<T>,\n options?: CollectionOptions<T>\n): CollectionItemWithoutId<T>[] | undefined => {\n if (Array.isArray(source)) {\n if (source.length === 0 && options?.noChildrenLabel) {\n return [\n {\n label: options.noChildrenLabel,\n value: null,\n },\n ];\n } else {\n return source.map(\n (item: { description?: string; expanded?: boolean }) =>\n ({\n childNodes: sourceItems(\n (item as unknown as SourceGroup<T>).childNodes,\n options\n ),\n description: item.description,\n expanded: item.expanded,\n value: item,\n label:\n options?.itemToString?.(item as T) ?? defaultItemToString(item),\n } as CollectionItemWithoutId<T>)\n );\n }\n } else if (source) {\n throw Error(\"list-child-items expects source to be an array\");\n }\n};\n\nexport const childItems = (\n children: ReactNode\n): CollectionItem<ReactElement>[] | undefined => {\n if (children) {\n return mapReactElementChildren(children, (child) => {\n const {\n \"data-id\": dataId,\n disabled,\n id = dataId,\n \"data-expanded\": dataExpanded,\n expanded = dataExpanded,\n } = (child as ReactElement<ListItemElementProps>).props;\n return {\n childNodes: getChildNodes(child),\n disabled,\n expanded,\n header: childIsHeader(child),\n id,\n label: getChildLabel(child),\n selectable: childIsSelectable(child),\n value: child,\n } as CollectionItem<ReactElement>;\n });\n }\n};\n\nconst PathSeparators = new Set<string>([\"/\", \"-\", \".\"]);\n// TODO where do we define or identify separators\nconst isPathSeparator = (char: string) => PathSeparators.has(char);\n\nexport const isParentPath = (parentPath: string, childPath: string): boolean =>\n childPath.startsWith(parentPath) &&\n isPathSeparator(childPath[parentPath.length]);\n\nconst PATH_SEPARATORS = new Set([\".\", \"/\"]);\n\nfunction isDescendantOf(basePath: string, targetPath: string) {\n if (!targetPath.startsWith(basePath)) {\n return false;\n } else {\n return PATH_SEPARATORS.has(targetPath.charAt(basePath.length));\n }\n}\n\nexport function replaceCollectionItem<Item>(\n nodes: CollectionItem<Item>[],\n id: string,\n props: Partial<CollectionItem<Item>>\n): CollectionItem<Item>[] {\n let childNodes: CollectionItem<Item>[];\n const newNodes: CollectionItem<Item>[] = nodes.map((node) => {\n if (node.id === id) {\n return {\n ...node,\n ...props,\n };\n } else if (isDescendantOf(node.id, id) && node.childNodes) {\n childNodes = replaceCollectionItem<Item>(node.childNodes, id, props);\n return {\n ...node,\n childNodes,\n };\n } else {\n return node;\n }\n });\n\n return newNodes;\n}\n"],"names":["defaultItemToString"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-utils.js","sources":["../../../../src/list/common-hooks/utils/filter-utils.ts"],"sourcesContent":["import { escapeRegExp } from \"../../../utils\";\n\nexport type GetFilterRegex = (inputValue: string) => RegExp;\n\nexport type FilterPredicate = (item: string) => boolean;\n\nconst leftTrim = (value: string) =>\n value ? value.replace(/^\\s+/g, \"\") : value;\n\nexport const getDefaultFilterRegex: GetFilterRegex = (value) =>\n new RegExp(`(${escapeRegExp(leftTrim(value))})`, \"gi\");\n\nexport const getDefaultFilter =\n (inputValue = \"\", getFilterRegex: GetFilterRegex = getDefaultFilterRegex) =>\n (itemValue = \"\"): boolean =>\n Boolean(itemValue.length) &&\n Boolean(inputValue.length) &&\n itemValue.match(getFilterRegex(inputValue)) !== null;\n"],"names":[],"mappings":";;AAMA,MAAM,QAAA,GAAW,CAAC,KAChB,KAAA,KAAA,GAAQ,MAAM,OAAQ,CAAA,OAAA,EAAS,EAAE,CAAI,GAAA,KAAA,CAAA;AAEhC,MAAM,qBAAwC,GAAA,CAAC,KACpD,KAAA,IAAI,MAAO,CAAA,CAAA,CAAA,EAAI,YAAa,CAAA,QAAA,CAAS,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA,EAAK,IAAI,EAAA;AAE1C,MAAA,gBAAA,GACX,CAAC,UAAa,GAAA,EAAA,EAAI,iBAAiC,qBACnD,KAAA,CAAC,SAAY,GAAA,EAAA,KACX,OAAQ,CAAA,SAAA,CAAU,MAAM,CACxB,IAAA,OAAA,CAAQ,WAAW,MAAM,CAAA,IACzB,UAAU,KAAM,CAAA,cAAA,CAAe,UAAU,CAAC,CAAM,KAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isSelected.js","sources":["../../../../src/list/common-hooks/utils/isSelected.ts"],"sourcesContent":["import { CollectionItem } from \"../../../common-hooks/collectionTypes\";\n\nexport function isSelected<Item>(\n selectedId: string | string[] | null,\n item: CollectionItem<Item>\n): boolean {\n const isSelected = Array.isArray(selectedId)\n ? selectedId.includes(item.id)\n : selectedId === item.id;\n return isSelected;\n}\n"],"names":["isSelected"],"mappings":"AAEgB,SAAA,UAAA,CACd,YACA,IACS,EAAA;AACT,EAAMA,MAAAA,WAAAA,GAAa,KAAM,CAAA,OAAA,CAAQ,UAAU,CAAA,GACvC,UAAW,CAAA,QAAA,CAAS,IAAK,CAAA,EAAE,CAC3B,GAAA,UAAA,KAAe,IAAK,CAAA,EAAA,CAAA;AACxB,EAAOA,OAAAA,WAAAA,CAAAA;AACT;;;;"}