@vuu-ui/vuu-ui-controls 0.13.2 → 0.13.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 (912) hide show
  1. package/cjs/node_modules/@dnd-kit/abstract/index.js +596 -0
  2. package/cjs/node_modules/@dnd-kit/abstract/index.js.map +1 -0
  3. package/cjs/node_modules/@dnd-kit/collision/dist/index.js +91 -0
  4. package/cjs/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
  5. package/cjs/node_modules/@dnd-kit/dom/index.js +1645 -0
  6. package/cjs/node_modules/@dnd-kit/dom/index.js.map +1 -0
  7. package/cjs/node_modules/@dnd-kit/dom/sortable.js +833 -0
  8. package/cjs/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
  9. package/cjs/node_modules/@dnd-kit/dom/utilities.js +1389 -0
  10. package/cjs/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
  11. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js +310 -0
  12. package/cjs/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
  13. package/cjs/node_modules/@dnd-kit/react/hooks.js +86 -0
  14. package/cjs/node_modules/@dnd-kit/react/hooks.js.map +1 -0
  15. package/cjs/node_modules/@dnd-kit/react/sortable.js +177 -0
  16. package/cjs/node_modules/@dnd-kit/react/sortable.js.map +1 -0
  17. package/cjs/node_modules/@dnd-kit/react/utilities.js +19 -0
  18. package/cjs/node_modules/@dnd-kit/react/utilities.js.map +1 -0
  19. package/cjs/node_modules/@dnd-kit/state/dist/index.js +272 -0
  20. package/cjs/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
  21. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js +11 -0
  22. package/cjs/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  23. package/cjs/packages/vuu-ui-controls/src/calendar/Calendar.js.map +1 -0
  24. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarCarousel.js.map +1 -0
  25. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarContext.js.map +1 -0
  26. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarDay.js.map +1 -0
  27. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarMonth.js.map +1 -0
  28. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarNavigation.js.map +1 -0
  29. package/cjs/packages/vuu-ui-controls/src/calendar/internal/CalendarWeekHeader.js.map +1 -0
  30. package/cjs/packages/vuu-ui-controls/src/calendar/internal/useFocusManagement.js.map +1 -0
  31. package/cjs/packages/vuu-ui-controls/src/calendar/internal/utils.js.map +1 -0
  32. package/cjs/packages/vuu-ui-controls/src/calendar/useCalendar.js.map +1 -0
  33. package/cjs/packages/vuu-ui-controls/src/calendar/useCalendarDay.js.map +1 -0
  34. package/cjs/packages/vuu-ui-controls/src/calendar/useSelection.js.map +1 -0
  35. package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js +128 -0
  36. package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js.map +1 -0
  37. package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js +62 -0
  38. package/cjs/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js.map +1 -0
  39. package/cjs/packages/vuu-ui-controls/src/common-hooks/selectionTypes.js.map +1 -0
  40. package/cjs/packages/vuu-ui-controls/src/common-hooks/use-resize-observer.js.map +1 -0
  41. package/cjs/packages/vuu-ui-controls/src/common-hooks/useControlled.js.map +1 -0
  42. package/cjs/packages/vuu-ui-controls/src/context-panel-provider/ContextPanelProvider.js +55 -0
  43. package/cjs/packages/vuu-ui-controls/src/context-panel-provider/ContextPanelProvider.js.map +1 -0
  44. package/cjs/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js.map +1 -0
  45. package/cjs/packages/vuu-ui-controls/src/date-input/DateInput.js.map +1 -0
  46. package/cjs/packages/vuu-ui-controls/src/date-picker/DatePicker.js.map +1 -0
  47. package/cjs/packages/vuu-ui-controls/src/date-picker/DatePickerContext.js.map +1 -0
  48. package/cjs/packages/vuu-ui-controls/src/date-picker/DatePickerPanel.js.map +1 -0
  49. package/cjs/packages/vuu-ui-controls/src/drag-drop/DragDropProvider.js.map +1 -0
  50. package/cjs/packages/vuu-ui-controls/src/drag-drop/DragDropState.js.map +1 -0
  51. package/cjs/packages/vuu-ui-controls/src/drag-drop/Draggable.js.map +1 -0
  52. package/cjs/packages/vuu-ui-controls/src/drag-drop/dragDropTypes.js.map +1 -0
  53. package/cjs/packages/vuu-ui-controls/src/drag-drop/drop-target-utils.js.map +1 -0
  54. package/cjs/packages/vuu-ui-controls/src/drag-drop/useAutoScroll.js.map +1 -0
  55. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDisplacers.js.map +1 -0
  56. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js.map +1 -0
  57. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropCopy.js.map +1 -0
  58. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js.map +1 -0
  59. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js.map +1 -0
  60. package/cjs/packages/vuu-ui-controls/src/drag-drop/useDropIndicator.js.map +1 -0
  61. package/cjs/packages/vuu-ui-controls/src/drag-drop/useGlobalDragDrop.js.map +1 -0
  62. package/cjs/packages/vuu-ui-controls/src/editable/useEditableText.js.map +1 -0
  63. package/cjs/packages/vuu-ui-controls/src/editable-label/EditableLabel.js.map +1 -0
  64. package/cjs/packages/vuu-ui-controls/src/expando-input/ExpandoInput.js.map +1 -0
  65. package/cjs/packages/vuu-ui-controls/src/icon-button/Icon.js.map +1 -0
  66. package/cjs/packages/vuu-ui-controls/src/icon-button/IconButton.js.map +1 -0
  67. package/cjs/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.js.map +1 -0
  68. package/cjs/packages/vuu-ui-controls/src/index.js +158 -0
  69. package/cjs/packages/vuu-ui-controls/src/index.js.map +1 -0
  70. package/cjs/packages/vuu-ui-controls/src/instrument-picker/TablePicker.js.map +1 -0
  71. package/cjs/packages/vuu-ui-controls/src/instrument-picker/useTablePicker.js.map +1 -0
  72. package/cjs/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js.map +1 -0
  73. package/cjs/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js.map +1 -0
  74. package/cjs/packages/vuu-ui-controls/src/measured-container/useResizeObserver.js.map +1 -0
  75. package/cjs/packages/vuu-ui-controls/src/overflow-container/OverflowContainer.js.map +1 -0
  76. package/cjs/packages/vuu-ui-controls/src/overflow-container/overflow-utils.js.map +1 -0
  77. package/cjs/packages/vuu-ui-controls/src/overflow-container/useOverflowContainer.js.map +1 -0
  78. package/cjs/packages/vuu-ui-controls/src/price-ticker/PriceTicker.js.map +1 -0
  79. package/cjs/packages/vuu-ui-controls/src/sortable-list/SortableList.js +38 -0
  80. package/cjs/packages/vuu-ui-controls/src/sortable-list/SortableList.js.map +1 -0
  81. package/cjs/packages/vuu-ui-controls/src/split-button/SplitButton.js.map +1 -0
  82. package/cjs/packages/vuu-ui-controls/src/split-button/SplitStateButton.js.map +1 -0
  83. package/cjs/packages/vuu-ui-controls/src/split-button/useSplitButton.js.map +1 -0
  84. package/cjs/packages/vuu-ui-controls/src/table-search/SearchCell.js.map +1 -0
  85. package/cjs/packages/vuu-ui-controls/src/table-search/TableSearch.js.map +1 -0
  86. package/cjs/packages/vuu-ui-controls/src/table-search/useTableSearch.js.map +1 -0
  87. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabBar.js.map +1 -0
  88. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabListNext.js.map +1 -0
  89. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNext.js.map +1 -0
  90. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js.map +1 -0
  91. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js.map +1 -0
  92. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js.map +1 -0
  93. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js.map +1 -0
  94. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js.map +1 -0
  95. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNext.js.map +1 -0
  96. package/cjs/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js.map +1 -0
  97. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js.map +1 -0
  98. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js.map +1 -0
  99. package/cjs/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js.map +1 -0
  100. package/cjs/packages/vuu-ui-controls/src/tabstrip/Tab.js.map +1 -0
  101. package/cjs/packages/vuu-ui-controls/src/tabstrip/TabMenu.js.map +1 -0
  102. package/cjs/packages/vuu-ui-controls/src/tabstrip/TabMenuOptions.js.map +1 -0
  103. package/cjs/packages/vuu-ui-controls/src/tabstrip/Tabstrip.js.map +1 -0
  104. package/cjs/packages/vuu-ui-controls/src/tabstrip/tabstrip-dom-utils.js.map +1 -0
  105. package/cjs/packages/vuu-ui-controls/src/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
  106. package/cjs/packages/vuu-ui-controls/src/tabstrip/useKeyboardNavigation.js.map +1 -0
  107. package/cjs/packages/vuu-ui-controls/src/tabstrip/useSelection.js.map +1 -0
  108. package/cjs/packages/vuu-ui-controls/src/tabstrip/useTabstrip.js.map +1 -0
  109. package/cjs/packages/vuu-ui-controls/src/toolbar/Toolbar.js.map +1 -0
  110. package/cjs/packages/vuu-ui-controls/src/toolbar/toolbar-dom-utils.js.map +1 -0
  111. package/cjs/packages/vuu-ui-controls/src/toolbar/useKeyboardNavigation.js.map +1 -0
  112. package/cjs/packages/vuu-ui-controls/src/toolbar/useSelection.js +93 -0
  113. package/cjs/packages/vuu-ui-controls/src/toolbar/useSelection.js.map +1 -0
  114. package/cjs/packages/vuu-ui-controls/src/toolbar/useToolbar.js.map +1 -0
  115. package/cjs/packages/vuu-ui-controls/src/utils/escapeRegExp.js.map +1 -0
  116. package/cjs/packages/vuu-ui-controls/src/utils/forwardCallbackProps.js.map +1 -0
  117. package/cjs/packages/vuu-ui-controls/src/utils/isOverflowElement.js.map +1 -0
  118. package/cjs/packages/vuu-ui-controls/src/utils/isPlainObject.js.map +1 -0
  119. package/cjs/packages/vuu-ui-controls/src/vuu-date-picker/VuuDatePicker.js.map +1 -0
  120. package/cjs/packages/vuu-ui-controls/src/vuu-input/VuuInput.js.map +1 -0
  121. package/cjs/packages/vuu-ui-controls/src/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
  122. package/cjs/packages/vuu-ui-controls/src/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
  123. package/esm/node_modules/@dnd-kit/abstract/index.js +584 -0
  124. package/esm/node_modules/@dnd-kit/abstract/index.js.map +1 -0
  125. package/esm/node_modules/@dnd-kit/collision/dist/index.js +86 -0
  126. package/esm/node_modules/@dnd-kit/collision/dist/index.js.map +1 -0
  127. package/esm/node_modules/@dnd-kit/dom/index.js +1640 -0
  128. package/esm/node_modules/@dnd-kit/dom/index.js.map +1 -0
  129. package/esm/node_modules/@dnd-kit/dom/sortable.js +827 -0
  130. package/esm/node_modules/@dnd-kit/dom/sortable.js.map +1 -0
  131. package/esm/node_modules/@dnd-kit/dom/utilities.js +1344 -0
  132. package/esm/node_modules/@dnd-kit/dom/utilities.js.map +1 -0
  133. package/esm/node_modules/@dnd-kit/geometry/dist/index.js +303 -0
  134. package/esm/node_modules/@dnd-kit/geometry/dist/index.js.map +1 -0
  135. package/esm/node_modules/@dnd-kit/react/hooks.js +80 -0
  136. package/esm/node_modules/@dnd-kit/react/hooks.js.map +1 -0
  137. package/esm/node_modules/@dnd-kit/react/sortable.js +175 -0
  138. package/esm/node_modules/@dnd-kit/react/sortable.js.map +1 -0
  139. package/esm/node_modules/@dnd-kit/react/utilities.js +17 -0
  140. package/esm/node_modules/@dnd-kit/react/utilities.js.map +1 -0
  141. package/esm/node_modules/@dnd-kit/state/dist/index.js +259 -0
  142. package/esm/node_modules/@dnd-kit/state/dist/index.js.map +1 -0
  143. package/esm/node_modules/@preact/signals-core/dist/signals-core.js +4 -0
  144. package/esm/node_modules/@preact/signals-core/dist/signals-core.js.map +1 -0
  145. package/esm/packages/vuu-ui-controls/src/calendar/Calendar.js.map +1 -0
  146. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarCarousel.js.map +1 -0
  147. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarContext.js.map +1 -0
  148. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarDay.js.map +1 -0
  149. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarMonth.js.map +1 -0
  150. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarNavigation.js.map +1 -0
  151. package/esm/packages/vuu-ui-controls/src/calendar/internal/CalendarWeekHeader.js.map +1 -0
  152. package/esm/packages/vuu-ui-controls/src/calendar/internal/useFocusManagement.js.map +1 -0
  153. package/esm/packages/vuu-ui-controls/src/calendar/internal/utils.js.map +1 -0
  154. package/esm/packages/vuu-ui-controls/src/calendar/useCalendar.js.map +1 -0
  155. package/esm/packages/vuu-ui-controls/src/calendar/useCalendarDay.js.map +1 -0
  156. package/esm/packages/vuu-ui-controls/src/calendar/useSelection.js.map +1 -0
  157. package/esm/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js +126 -0
  158. package/esm/packages/vuu-ui-controls/src/column-picker/ColumnPicker.js.map +1 -0
  159. package/esm/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js +60 -0
  160. package/esm/packages/vuu-ui-controls/src/column-picker/ColumnSearch.js.map +1 -0
  161. package/esm/packages/vuu-ui-controls/src/common-hooks/selectionTypes.js.map +1 -0
  162. package/esm/packages/vuu-ui-controls/src/common-hooks/use-resize-observer.js.map +1 -0
  163. package/esm/packages/vuu-ui-controls/src/common-hooks/useControlled.js.map +1 -0
  164. package/esm/packages/vuu-ui-controls/src/context-panel-provider/ContextPanelProvider.js +51 -0
  165. package/esm/packages/vuu-ui-controls/src/context-panel-provider/ContextPanelProvider.js.map +1 -0
  166. package/esm/packages/vuu-ui-controls/src/cycle-state-button/CycleStateButton.js.map +1 -0
  167. package/esm/packages/vuu-ui-controls/src/date-input/DateInput.js.map +1 -0
  168. package/esm/packages/vuu-ui-controls/src/date-picker/DatePicker.js.map +1 -0
  169. package/esm/packages/vuu-ui-controls/src/date-picker/DatePickerContext.js.map +1 -0
  170. package/esm/packages/vuu-ui-controls/src/date-picker/DatePickerPanel.js.map +1 -0
  171. package/esm/packages/vuu-ui-controls/src/drag-drop/DragDropProvider.js.map +1 -0
  172. package/esm/packages/vuu-ui-controls/src/drag-drop/DragDropState.js.map +1 -0
  173. package/esm/packages/vuu-ui-controls/src/drag-drop/Draggable.js.map +1 -0
  174. package/esm/packages/vuu-ui-controls/src/drag-drop/dragDropTypes.js.map +1 -0
  175. package/esm/packages/vuu-ui-controls/src/drag-drop/drop-target-utils.js.map +1 -0
  176. package/esm/packages/vuu-ui-controls/src/drag-drop/useAutoScroll.js.map +1 -0
  177. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDisplacers.js.map +1 -0
  178. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDrop.js.map +1 -0
  179. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropCopy.js.map +1 -0
  180. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropIndicator.js.map +1 -0
  181. package/esm/packages/vuu-ui-controls/src/drag-drop/useDragDropNaturalMovement.js.map +1 -0
  182. package/esm/packages/vuu-ui-controls/src/drag-drop/useDropIndicator.js.map +1 -0
  183. package/esm/packages/vuu-ui-controls/src/drag-drop/useGlobalDragDrop.js.map +1 -0
  184. package/esm/packages/vuu-ui-controls/src/editable/useEditableText.js.map +1 -0
  185. package/esm/packages/vuu-ui-controls/src/editable-label/EditableLabel.js.map +1 -0
  186. package/esm/packages/vuu-ui-controls/src/expando-input/ExpandoInput.js.map +1 -0
  187. package/esm/packages/vuu-ui-controls/src/icon-button/Icon.js.map +1 -0
  188. package/esm/packages/vuu-ui-controls/src/icon-button/IconButton.js.map +1 -0
  189. package/esm/packages/vuu-ui-controls/src/icon-button/ToggleIconButton.js.map +1 -0
  190. package/esm/packages/vuu-ui-controls/src/index.js +54 -0
  191. package/esm/packages/vuu-ui-controls/src/index.js.map +1 -0
  192. package/esm/packages/vuu-ui-controls/src/instrument-picker/TablePicker.js.map +1 -0
  193. package/esm/packages/vuu-ui-controls/src/instrument-picker/useTablePicker.js.map +1 -0
  194. package/esm/packages/vuu-ui-controls/src/measured-container/MeasuredContainer.js.map +1 -0
  195. package/esm/packages/vuu-ui-controls/src/measured-container/useMeasuredContainer.js.map +1 -0
  196. package/esm/packages/vuu-ui-controls/src/measured-container/useResizeObserver.js.map +1 -0
  197. package/esm/packages/vuu-ui-controls/src/overflow-container/OverflowContainer.js.map +1 -0
  198. package/esm/packages/vuu-ui-controls/src/overflow-container/overflow-utils.js.map +1 -0
  199. package/esm/packages/vuu-ui-controls/src/overflow-container/useOverflowContainer.js.map +1 -0
  200. package/esm/packages/vuu-ui-controls/src/price-ticker/PriceTicker.js.map +1 -0
  201. package/esm/packages/vuu-ui-controls/src/sortable-list/SortableList.js +35 -0
  202. package/esm/packages/vuu-ui-controls/src/sortable-list/SortableList.js.map +1 -0
  203. package/esm/packages/vuu-ui-controls/src/split-button/SplitButton.js.map +1 -0
  204. package/esm/packages/vuu-ui-controls/src/split-button/SplitStateButton.js.map +1 -0
  205. package/esm/packages/vuu-ui-controls/src/split-button/useSplitButton.js.map +1 -0
  206. package/esm/packages/vuu-ui-controls/src/table-search/SearchCell.js.map +1 -0
  207. package/esm/packages/vuu-ui-controls/src/table-search/TableSearch.js.map +1 -0
  208. package/esm/packages/vuu-ui-controls/src/table-search/useTableSearch.js.map +1 -0
  209. package/esm/packages/vuu-ui-controls/src/tabs-next/TabBar.js.map +1 -0
  210. package/esm/packages/vuu-ui-controls/src/tabs-next/TabListNext.js.map +1 -0
  211. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNext.js.map +1 -0
  212. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextAction.js.map +1 -0
  213. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextContext.js.map +1 -0
  214. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextPanel.js.map +1 -0
  215. package/esm/packages/vuu-ui-controls/src/tabs-next/TabNextTrigger.js.map +1 -0
  216. package/esm/packages/vuu-ui-controls/src/tabs-next/TabOverflowList.js.map +1 -0
  217. package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNext.js.map +1 -0
  218. package/esm/packages/vuu-ui-controls/src/tabs-next/TabsNextContext.js.map +1 -0
  219. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useCollection.js.map +1 -0
  220. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useFocusOutside.js.map +1 -0
  221. package/esm/packages/vuu-ui-controls/src/tabs-next/hooks/useOverflow.js.map +1 -0
  222. package/esm/packages/vuu-ui-controls/src/tabstrip/Tab.js.map +1 -0
  223. package/esm/packages/vuu-ui-controls/src/tabstrip/TabMenu.js.map +1 -0
  224. package/esm/packages/vuu-ui-controls/src/tabstrip/TabMenuOptions.js.map +1 -0
  225. package/esm/packages/vuu-ui-controls/src/tabstrip/Tabstrip.js.map +1 -0
  226. package/esm/packages/vuu-ui-controls/src/tabstrip/tabstrip-dom-utils.js.map +1 -0
  227. package/esm/packages/vuu-ui-controls/src/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
  228. package/esm/packages/vuu-ui-controls/src/tabstrip/useKeyboardNavigation.js.map +1 -0
  229. package/esm/packages/vuu-ui-controls/src/tabstrip/useSelection.js.map +1 -0
  230. package/esm/packages/vuu-ui-controls/src/tabstrip/useTabstrip.js.map +1 -0
  231. package/esm/packages/vuu-ui-controls/src/toolbar/Toolbar.js.map +1 -0
  232. package/esm/packages/vuu-ui-controls/src/toolbar/toolbar-dom-utils.js.map +1 -0
  233. package/esm/packages/vuu-ui-controls/src/toolbar/useKeyboardNavigation.js.map +1 -0
  234. package/esm/packages/vuu-ui-controls/src/toolbar/useSelection.js +91 -0
  235. package/esm/packages/vuu-ui-controls/src/toolbar/useSelection.js.map +1 -0
  236. package/esm/packages/vuu-ui-controls/src/toolbar/useToolbar.js.map +1 -0
  237. package/esm/packages/vuu-ui-controls/src/utils/escapeRegExp.js.map +1 -0
  238. package/esm/packages/vuu-ui-controls/src/utils/forwardCallbackProps.js.map +1 -0
  239. package/esm/packages/vuu-ui-controls/src/utils/isOverflowElement.js.map +1 -0
  240. package/esm/packages/vuu-ui-controls/src/utils/isPlainObject.js.map +1 -0
  241. package/esm/packages/vuu-ui-controls/src/vuu-date-picker/VuuDatePicker.js.map +1 -0
  242. package/esm/packages/vuu-ui-controls/src/vuu-input/VuuInput.js.map +1 -0
  243. package/esm/packages/vuu-ui-controls/src/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -0
  244. package/esm/packages/vuu-ui-controls/src/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -0
  245. package/package.json +12 -11
  246. package/types/column-picker/ColumnSearch.d.ts +3 -2
  247. package/types/common-hooks/index.d.ts +0 -5
  248. package/types/context-panel-provider/ContextPanelProvider.d.ts +10 -0
  249. package/types/highlighter/index.d.ts +1 -0
  250. package/types/index.d.ts +2 -1
  251. package/types/sortable-list/SortableList.d.ts +8 -0
  252. package/cjs/calendar/Calendar.js.map +0 -1
  253. package/cjs/calendar/internal/CalendarCarousel.js.map +0 -1
  254. package/cjs/calendar/internal/CalendarContext.js.map +0 -1
  255. package/cjs/calendar/internal/CalendarDay.js.map +0 -1
  256. package/cjs/calendar/internal/CalendarMonth.js.map +0 -1
  257. package/cjs/calendar/internal/CalendarNavigation.js.map +0 -1
  258. package/cjs/calendar/internal/CalendarWeekHeader.js.map +0 -1
  259. package/cjs/calendar/internal/useFocusManagement.js.map +0 -1
  260. package/cjs/calendar/internal/utils.js.map +0 -1
  261. package/cjs/calendar/useCalendar.js.map +0 -1
  262. package/cjs/calendar/useCalendarDay.js.map +0 -1
  263. package/cjs/calendar/useSelection.js.map +0 -1
  264. package/cjs/column-picker/ColumnPicker.js +0 -128
  265. package/cjs/column-picker/ColumnPicker.js.map +0 -1
  266. package/cjs/column-picker/ColumnSearch.js +0 -82
  267. package/cjs/column-picker/ColumnSearch.js.map +0 -1
  268. package/cjs/common-hooks/collectionProvider.js +0 -24
  269. package/cjs/common-hooks/collectionProvider.js.map +0 -1
  270. package/cjs/common-hooks/isPlainObject.js.map +0 -1
  271. package/cjs/common-hooks/itemToString.js +0 -24
  272. package/cjs/common-hooks/itemToString.js.map +0 -1
  273. package/cjs/common-hooks/selectionTypes.js.map +0 -1
  274. package/cjs/common-hooks/use-resize-observer.js.map +0 -1
  275. package/cjs/common-hooks/useCollectionItems.js +0 -309
  276. package/cjs/common-hooks/useCollectionItems.js.map +0 -1
  277. package/cjs/common-hooks/useControlled.js.map +0 -1
  278. package/cjs/common-hooks/useSelection.js +0 -212
  279. package/cjs/common-hooks/useSelection.js.map +0 -1
  280. package/cjs/cycle-state-button/CycleStateButton.js.map +0 -1
  281. package/cjs/date-input/DateInput.js.map +0 -1
  282. package/cjs/date-picker/DatePicker.js.map +0 -1
  283. package/cjs/date-picker/DatePickerContext.js.map +0 -1
  284. package/cjs/date-picker/DatePickerPanel.js.map +0 -1
  285. package/cjs/drag-drop/DragDropProvider.js.map +0 -1
  286. package/cjs/drag-drop/DragDropState.js.map +0 -1
  287. package/cjs/drag-drop/Draggable.js.map +0 -1
  288. package/cjs/drag-drop/dragDropTypes.js.map +0 -1
  289. package/cjs/drag-drop/drop-target-utils.js.map +0 -1
  290. package/cjs/drag-drop/useAutoScroll.js.map +0 -1
  291. package/cjs/drag-drop/useDragDisplacers.js.map +0 -1
  292. package/cjs/drag-drop/useDragDrop.js.map +0 -1
  293. package/cjs/drag-drop/useDragDropCopy.js.map +0 -1
  294. package/cjs/drag-drop/useDragDropIndicator.js.map +0 -1
  295. package/cjs/drag-drop/useDragDropNaturalMovement.js.map +0 -1
  296. package/cjs/drag-drop/useDropIndicator.js.map +0 -1
  297. package/cjs/drag-drop/useGlobalDragDrop.js.map +0 -1
  298. package/cjs/editable/useEditableText.js.map +0 -1
  299. package/cjs/editable-label/EditableLabel.js.map +0 -1
  300. package/cjs/expando-input/ExpandoInput.js.map +0 -1
  301. package/cjs/icon-button/Icon.js.map +0 -1
  302. package/cjs/icon-button/IconButton.js.map +0 -1
  303. package/cjs/icon-button/ToggleIconButton.js.map +0 -1
  304. package/cjs/index.js +0 -232
  305. package/cjs/index.js.map +0 -1
  306. package/cjs/instrument-picker/TablePicker.js.map +0 -1
  307. package/cjs/instrument-picker/useTablePicker.js.map +0 -1
  308. package/cjs/list/Highlighter.css.js +0 -6
  309. package/cjs/list/Highlighter.css.js.map +0 -1
  310. package/cjs/list/Highlighter.js +0 -36
  311. package/cjs/list/Highlighter.js.map +0 -1
  312. package/cjs/list/List.css.js +0 -6
  313. package/cjs/list/List.css.js.map +0 -1
  314. package/cjs/list/List.js +0 -317
  315. package/cjs/list/List.js.map +0 -1
  316. package/cjs/list/ListItem.css.js +0 -6
  317. package/cjs/list/ListItem.css.js.map +0 -1
  318. package/cjs/list/ListItem.js +0 -84
  319. package/cjs/list/ListItem.js.map +0 -1
  320. package/cjs/list/ListItemGroup.js +0 -6
  321. package/cjs/list/ListItemGroup.js.map +0 -1
  322. package/cjs/list/ListItemHeader.js +0 -6
  323. package/cjs/list/ListItemHeader.js.map +0 -1
  324. package/cjs/list/RadioIcon.css.js +0 -6
  325. package/cjs/list/RadioIcon.css.js.map +0 -1
  326. package/cjs/list/RadioIcon.js +0 -27
  327. package/cjs/list/RadioIcon.js.map +0 -1
  328. package/cjs/list/common-hooks/keyUtils.js +0 -78
  329. package/cjs/list/common-hooks/keyUtils.js.map +0 -1
  330. package/cjs/list/common-hooks/list-dom-utils.js +0 -25
  331. package/cjs/list/common-hooks/list-dom-utils.js.map +0 -1
  332. package/cjs/list/common-hooks/useCollapsibleGroups.js +0 -72
  333. package/cjs/list/common-hooks/useCollapsibleGroups.js.map +0 -1
  334. package/cjs/list/common-hooks/useImperativeScrollingAPI.js +0 -52
  335. package/cjs/list/common-hooks/useImperativeScrollingAPI.js.map +0 -1
  336. package/cjs/list/common-hooks/useKeyboardNavigation.js +0 -289
  337. package/cjs/list/common-hooks/useKeyboardNavigation.js.map +0 -1
  338. package/cjs/list/common-hooks/useTypeahead.js +0 -74
  339. package/cjs/list/common-hooks/useTypeahead.js.map +0 -1
  340. package/cjs/list/common-hooks/useViewportTracking.js +0 -133
  341. package/cjs/list/common-hooks/useViewportTracking.js.map +0 -1
  342. package/cjs/list/common-hooks/utils/collection-item-utils.js +0 -182
  343. package/cjs/list/common-hooks/utils/collection-item-utils.js.map +0 -1
  344. package/cjs/list/common-hooks/utils/filter-utils.js +0 -11
  345. package/cjs/list/common-hooks/utils/filter-utils.js.map +0 -1
  346. package/cjs/list/common-hooks/utils/isSelected.js +0 -9
  347. package/cjs/list/common-hooks/utils/isSelected.js.map +0 -1
  348. package/cjs/list/useList.js +0 -278
  349. package/cjs/list/useList.js.map +0 -1
  350. package/cjs/list/useListDrop.js +0 -92
  351. package/cjs/list/useListDrop.js.map +0 -1
  352. package/cjs/list/useListHeight.js +0 -77
  353. package/cjs/list/useListHeight.js.map +0 -1
  354. package/cjs/list/useScrollPosition.js +0 -74
  355. package/cjs/list/useScrollPosition.js.map +0 -1
  356. package/cjs/measured-container/MeasuredContainer.js.map +0 -1
  357. package/cjs/measured-container/useMeasuredContainer.js.map +0 -1
  358. package/cjs/measured-container/useResizeObserver.js.map +0 -1
  359. package/cjs/overflow-container/OverflowContainer.js.map +0 -1
  360. package/cjs/overflow-container/overflow-utils.js.map +0 -1
  361. package/cjs/overflow-container/useOverflowContainer.js.map +0 -1
  362. package/cjs/price-ticker/PriceTicker.js.map +0 -1
  363. package/cjs/split-button/SplitButton.js.map +0 -1
  364. package/cjs/split-button/SplitStateButton.js.map +0 -1
  365. package/cjs/split-button/useSplitButton.js.map +0 -1
  366. package/cjs/table-search/SearchCell.js.map +0 -1
  367. package/cjs/table-search/TableSearch.js.map +0 -1
  368. package/cjs/table-search/useTableSearch.js.map +0 -1
  369. package/cjs/tabs-next/TabBar.js.map +0 -1
  370. package/cjs/tabs-next/TabListNext.js.map +0 -1
  371. package/cjs/tabs-next/TabNext.js.map +0 -1
  372. package/cjs/tabs-next/TabNextAction.js.map +0 -1
  373. package/cjs/tabs-next/TabNextContext.js.map +0 -1
  374. package/cjs/tabs-next/TabNextPanel.js.map +0 -1
  375. package/cjs/tabs-next/TabNextTrigger.js.map +0 -1
  376. package/cjs/tabs-next/TabOverflowList.js.map +0 -1
  377. package/cjs/tabs-next/TabsNext.js.map +0 -1
  378. package/cjs/tabs-next/TabsNextContext.js.map +0 -1
  379. package/cjs/tabs-next/hooks/useCollection.js.map +0 -1
  380. package/cjs/tabs-next/hooks/useFocusOutside.js.map +0 -1
  381. package/cjs/tabs-next/hooks/useOverflow.js.map +0 -1
  382. package/cjs/tabstrip/Tab.js.map +0 -1
  383. package/cjs/tabstrip/TabMenu.js.map +0 -1
  384. package/cjs/tabstrip/TabMenuOptions.js.map +0 -1
  385. package/cjs/tabstrip/Tabstrip.js.map +0 -1
  386. package/cjs/tabstrip/tabstrip-dom-utils.js.map +0 -1
  387. package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
  388. package/cjs/tabstrip/useKeyboardNavigation.js.map +0 -1
  389. package/cjs/tabstrip/useSelection.js.map +0 -1
  390. package/cjs/tabstrip/useTabstrip.js.map +0 -1
  391. package/cjs/toolbar/Toolbar.js.map +0 -1
  392. package/cjs/toolbar/toolbar-dom-utils.js.map +0 -1
  393. package/cjs/toolbar/useKeyboardNavigation.js.map +0 -1
  394. package/cjs/toolbar/useSelection.js +0 -94
  395. package/cjs/toolbar/useSelection.js.map +0 -1
  396. package/cjs/toolbar/useToolbar.js.map +0 -1
  397. package/cjs/utils/escapeRegExp.js.map +0 -1
  398. package/cjs/utils/forwardCallbackProps.js.map +0 -1
  399. package/cjs/utils/isOverflowElement.js.map +0 -1
  400. package/cjs/utils/isPlainObject.js +0 -6
  401. package/cjs/utils/isPlainObject.js.map +0 -1
  402. package/cjs/vuu-date-picker/VuuDatePicker.js.map +0 -1
  403. package/cjs/vuu-input/VuuInput.js.map +0 -1
  404. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
  405. package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
  406. package/esm/calendar/Calendar.js.map +0 -1
  407. package/esm/calendar/internal/CalendarCarousel.js.map +0 -1
  408. package/esm/calendar/internal/CalendarContext.js.map +0 -1
  409. package/esm/calendar/internal/CalendarDay.js.map +0 -1
  410. package/esm/calendar/internal/CalendarMonth.js.map +0 -1
  411. package/esm/calendar/internal/CalendarNavigation.js.map +0 -1
  412. package/esm/calendar/internal/CalendarWeekHeader.js.map +0 -1
  413. package/esm/calendar/internal/useFocusManagement.js.map +0 -1
  414. package/esm/calendar/internal/utils.js.map +0 -1
  415. package/esm/calendar/useCalendar.js.map +0 -1
  416. package/esm/calendar/useCalendarDay.js.map +0 -1
  417. package/esm/calendar/useSelection.js.map +0 -1
  418. package/esm/column-picker/ColumnPicker.js +0 -126
  419. package/esm/column-picker/ColumnPicker.js.map +0 -1
  420. package/esm/column-picker/ColumnSearch.js +0 -80
  421. package/esm/column-picker/ColumnSearch.js.map +0 -1
  422. package/esm/common-hooks/collectionProvider.js +0 -20
  423. package/esm/common-hooks/collectionProvider.js.map +0 -1
  424. package/esm/common-hooks/isPlainObject.js.map +0 -1
  425. package/esm/common-hooks/itemToString.js +0 -22
  426. package/esm/common-hooks/itemToString.js.map +0 -1
  427. package/esm/common-hooks/selectionTypes.js.map +0 -1
  428. package/esm/common-hooks/use-resize-observer.js.map +0 -1
  429. package/esm/common-hooks/useCollectionItems.js +0 -307
  430. package/esm/common-hooks/useCollectionItems.js.map +0 -1
  431. package/esm/common-hooks/useControlled.js.map +0 -1
  432. package/esm/common-hooks/useSelection.js +0 -205
  433. package/esm/common-hooks/useSelection.js.map +0 -1
  434. package/esm/cycle-state-button/CycleStateButton.js.map +0 -1
  435. package/esm/date-input/DateInput.js.map +0 -1
  436. package/esm/date-picker/DatePicker.js.map +0 -1
  437. package/esm/date-picker/DatePickerContext.js.map +0 -1
  438. package/esm/date-picker/DatePickerPanel.js.map +0 -1
  439. package/esm/drag-drop/DragDropProvider.js.map +0 -1
  440. package/esm/drag-drop/DragDropState.js.map +0 -1
  441. package/esm/drag-drop/Draggable.js.map +0 -1
  442. package/esm/drag-drop/dragDropTypes.js.map +0 -1
  443. package/esm/drag-drop/drop-target-utils.js.map +0 -1
  444. package/esm/drag-drop/useAutoScroll.js.map +0 -1
  445. package/esm/drag-drop/useDragDisplacers.js.map +0 -1
  446. package/esm/drag-drop/useDragDrop.js.map +0 -1
  447. package/esm/drag-drop/useDragDropCopy.js.map +0 -1
  448. package/esm/drag-drop/useDragDropIndicator.js.map +0 -1
  449. package/esm/drag-drop/useDragDropNaturalMovement.js.map +0 -1
  450. package/esm/drag-drop/useDropIndicator.js.map +0 -1
  451. package/esm/drag-drop/useGlobalDragDrop.js.map +0 -1
  452. package/esm/editable/useEditableText.js.map +0 -1
  453. package/esm/editable-label/EditableLabel.js.map +0 -1
  454. package/esm/expando-input/ExpandoInput.js.map +0 -1
  455. package/esm/icon-button/Icon.js.map +0 -1
  456. package/esm/icon-button/IconButton.js.map +0 -1
  457. package/esm/icon-button/ToggleIconButton.js.map +0 -1
  458. package/esm/index.js +0 -73
  459. package/esm/index.js.map +0 -1
  460. package/esm/instrument-picker/TablePicker.js.map +0 -1
  461. package/esm/instrument-picker/useTablePicker.js.map +0 -1
  462. package/esm/list/Highlighter.css.js +0 -4
  463. package/esm/list/Highlighter.css.js.map +0 -1
  464. package/esm/list/Highlighter.js +0 -34
  465. package/esm/list/Highlighter.js.map +0 -1
  466. package/esm/list/List.css.js +0 -4
  467. package/esm/list/List.css.js.map +0 -1
  468. package/esm/list/List.js +0 -315
  469. package/esm/list/List.js.map +0 -1
  470. package/esm/list/ListItem.css.js +0 -4
  471. package/esm/list/ListItem.css.js.map +0 -1
  472. package/esm/list/ListItem.js +0 -81
  473. package/esm/list/ListItem.js.map +0 -1
  474. package/esm/list/ListItemGroup.js +0 -4
  475. package/esm/list/ListItemGroup.js.map +0 -1
  476. package/esm/list/ListItemHeader.js +0 -4
  477. package/esm/list/ListItemHeader.js.map +0 -1
  478. package/esm/list/RadioIcon.css.js +0 -4
  479. package/esm/list/RadioIcon.css.js.map +0 -1
  480. package/esm/list/RadioIcon.js +0 -25
  481. package/esm/list/RadioIcon.js.map +0 -1
  482. package/esm/list/common-hooks/keyUtils.js +0 -64
  483. package/esm/list/common-hooks/keyUtils.js.map +0 -1
  484. package/esm/list/common-hooks/list-dom-utils.js +0 -19
  485. package/esm/list/common-hooks/list-dom-utils.js.map +0 -1
  486. package/esm/list/common-hooks/useCollapsibleGroups.js +0 -70
  487. package/esm/list/common-hooks/useCollapsibleGroups.js.map +0 -1
  488. package/esm/list/common-hooks/useImperativeScrollingAPI.js +0 -50
  489. package/esm/list/common-hooks/useImperativeScrollingAPI.js.map +0 -1
  490. package/esm/list/common-hooks/useKeyboardNavigation.js +0 -286
  491. package/esm/list/common-hooks/useKeyboardNavigation.js.map +0 -1
  492. package/esm/list/common-hooks/useTypeahead.js +0 -72
  493. package/esm/list/common-hooks/useTypeahead.js.map +0 -1
  494. package/esm/list/common-hooks/useViewportTracking.js +0 -131
  495. package/esm/list/common-hooks/useViewportTracking.js.map +0 -1
  496. package/esm/list/common-hooks/utils/collection-item-utils.js +0 -168
  497. package/esm/list/common-hooks/utils/collection-item-utils.js.map +0 -1
  498. package/esm/list/common-hooks/utils/filter-utils.js +0 -8
  499. package/esm/list/common-hooks/utils/filter-utils.js.map +0 -1
  500. package/esm/list/common-hooks/utils/isSelected.js +0 -7
  501. package/esm/list/common-hooks/utils/isSelected.js.map +0 -1
  502. package/esm/list/useList.js +0 -276
  503. package/esm/list/useList.js.map +0 -1
  504. package/esm/list/useListDrop.js +0 -90
  505. package/esm/list/useListDrop.js.map +0 -1
  506. package/esm/list/useListHeight.js +0 -75
  507. package/esm/list/useListHeight.js.map +0 -1
  508. package/esm/list/useScrollPosition.js +0 -72
  509. package/esm/list/useScrollPosition.js.map +0 -1
  510. package/esm/measured-container/MeasuredContainer.js.map +0 -1
  511. package/esm/measured-container/useMeasuredContainer.js.map +0 -1
  512. package/esm/measured-container/useResizeObserver.js.map +0 -1
  513. package/esm/overflow-container/OverflowContainer.js.map +0 -1
  514. package/esm/overflow-container/overflow-utils.js.map +0 -1
  515. package/esm/overflow-container/useOverflowContainer.js.map +0 -1
  516. package/esm/price-ticker/PriceTicker.js.map +0 -1
  517. package/esm/split-button/SplitButton.js.map +0 -1
  518. package/esm/split-button/SplitStateButton.js.map +0 -1
  519. package/esm/split-button/useSplitButton.js.map +0 -1
  520. package/esm/table-search/SearchCell.js.map +0 -1
  521. package/esm/table-search/TableSearch.js.map +0 -1
  522. package/esm/table-search/useTableSearch.js.map +0 -1
  523. package/esm/tabs-next/TabBar.js.map +0 -1
  524. package/esm/tabs-next/TabListNext.js.map +0 -1
  525. package/esm/tabs-next/TabNext.js.map +0 -1
  526. package/esm/tabs-next/TabNextAction.js.map +0 -1
  527. package/esm/tabs-next/TabNextContext.js.map +0 -1
  528. package/esm/tabs-next/TabNextPanel.js.map +0 -1
  529. package/esm/tabs-next/TabNextTrigger.js.map +0 -1
  530. package/esm/tabs-next/TabOverflowList.js.map +0 -1
  531. package/esm/tabs-next/TabsNext.js.map +0 -1
  532. package/esm/tabs-next/TabsNextContext.js.map +0 -1
  533. package/esm/tabs-next/hooks/useCollection.js.map +0 -1
  534. package/esm/tabs-next/hooks/useFocusOutside.js.map +0 -1
  535. package/esm/tabs-next/hooks/useOverflow.js.map +0 -1
  536. package/esm/tabstrip/Tab.js.map +0 -1
  537. package/esm/tabstrip/TabMenu.js.map +0 -1
  538. package/esm/tabstrip/TabMenuOptions.js.map +0 -1
  539. package/esm/tabstrip/Tabstrip.js.map +0 -1
  540. package/esm/tabstrip/tabstrip-dom-utils.js.map +0 -1
  541. package/esm/tabstrip/useAnimatedSelectionThumb.js.map +0 -1
  542. package/esm/tabstrip/useKeyboardNavigation.js.map +0 -1
  543. package/esm/tabstrip/useSelection.js.map +0 -1
  544. package/esm/tabstrip/useTabstrip.js.map +0 -1
  545. package/esm/toolbar/Toolbar.js.map +0 -1
  546. package/esm/toolbar/toolbar-dom-utils.js.map +0 -1
  547. package/esm/toolbar/useKeyboardNavigation.js.map +0 -1
  548. package/esm/toolbar/useSelection.js +0 -92
  549. package/esm/toolbar/useSelection.js.map +0 -1
  550. package/esm/toolbar/useToolbar.js.map +0 -1
  551. package/esm/utils/escapeRegExp.js.map +0 -1
  552. package/esm/utils/forwardCallbackProps.js.map +0 -1
  553. package/esm/utils/isOverflowElement.js.map +0 -1
  554. package/esm/utils/isPlainObject.js +0 -4
  555. package/esm/utils/isPlainObject.js.map +0 -1
  556. package/esm/vuu-date-picker/VuuDatePicker.js.map +0 -1
  557. package/esm/vuu-input/VuuInput.js.map +0 -1
  558. package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +0 -1
  559. package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +0 -1
  560. package/types/common-hooks/collectionProvider.d.ts +0 -13
  561. package/types/common-hooks/collectionTypes.d.ts +0 -58
  562. package/types/common-hooks/isPlainObject.d.ts +0 -1
  563. package/types/common-hooks/itemToString.d.ts +0 -2
  564. package/types/common-hooks/navigationTypes.d.ts +0 -36
  565. package/types/common-hooks/useCollectionItems.d.ts +0 -2
  566. package/types/common-hooks/useSelection.d.ts +0 -8
  567. package/types/list/ChevronIcon.d.ts +0 -7
  568. package/types/list/List.d.ts +0 -6
  569. package/types/list/ListItem.d.ts +0 -6
  570. package/types/list/ListItemGroup.d.ts +0 -6
  571. package/types/list/ListItemHeader.d.ts +0 -5
  572. package/types/list/RadioIcon.d.ts +0 -4
  573. package/types/list/common-hooks/index.d.ts +0 -10
  574. package/types/list/common-hooks/keyUtils.d.ts +0 -14
  575. package/types/list/common-hooks/list-dom-utils.d.ts +0 -5
  576. package/types/list/common-hooks/useCollapsibleGroups.d.ts +0 -14
  577. package/types/list/common-hooks/useImperativeScrollingAPI.d.ts +0 -14
  578. package/types/list/common-hooks/useKeyboardNavigation.d.ts +0 -3
  579. package/types/list/common-hooks/useTypeahead.d.ts +0 -14
  580. package/types/list/common-hooks/useViewportTracking.d.ts +0 -14
  581. package/types/list/common-hooks/utils/collection-item-utils.d.ts +0 -21
  582. package/types/list/common-hooks/utils/filter-utils.d.ts +0 -4
  583. package/types/list/common-hooks/utils/index.d.ts +0 -4
  584. package/types/list/common-hooks/utils/isSelected.d.ts +0 -2
  585. package/types/list/index.d.ts +0 -9
  586. package/types/list/keyset.d.ts +0 -9
  587. package/types/list/listTypes.d.ts +0 -200
  588. package/types/list/useList.d.ts +0 -3
  589. package/types/list/useListDrop.d.ts +0 -15
  590. package/types/list/useListHeight.d.ts +0 -19
  591. package/types/list/useScrollPosition.d.ts +0 -19
  592. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js +0 -0
  593. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js.map +0 -0
  594. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.js +0 -0
  595. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js +0 -0
  596. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js.map +0 -0
  597. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.js +0 -0
  598. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarContext.js +0 -0
  599. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js +0 -0
  600. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js.map +0 -0
  601. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.js +0 -0
  602. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js +0 -0
  603. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js.map +0 -0
  604. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.js +0 -0
  605. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js +0 -0
  606. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js.map +0 -0
  607. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.js +0 -0
  608. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js +0 -0
  609. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js.map +0 -0
  610. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.js +0 -0
  611. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/useFocusManagement.js +0 -0
  612. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/internal/utils.js +0 -0
  613. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendar.js +0 -0
  614. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendarDay.js +0 -0
  615. /package/cjs/{calendar → packages/vuu-ui-controls/src/calendar}/useSelection.js +0 -0
  616. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js +0 -0
  617. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js.map +0 -0
  618. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js +0 -0
  619. /package/cjs/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js.map +0 -0
  620. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/selectionTypes.js +0 -0
  621. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/use-resize-observer.js +0 -0
  622. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useControlled.js +0 -0
  623. /package/cjs/{cycle-state-button → packages/vuu-ui-controls/src/cycle-state-button}/CycleStateButton.js +0 -0
  624. /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js +0 -0
  625. /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js.map +0 -0
  626. /package/cjs/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.js +0 -0
  627. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePicker.js +0 -0
  628. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerContext.js +0 -0
  629. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js +0 -0
  630. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js.map +0 -0
  631. /package/cjs/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.js +0 -0
  632. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropProvider.js +0 -0
  633. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropState.js +0 -0
  634. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js +0 -0
  635. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js.map +0 -0
  636. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.js +0 -0
  637. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/dragDropTypes.js +0 -0
  638. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/drop-target-utils.js +0 -0
  639. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useAutoScroll.js +0 -0
  640. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDisplacers.js +0 -0
  641. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDrop.js +0 -0
  642. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropCopy.js +0 -0
  643. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropIndicator.js +0 -0
  644. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropNaturalMovement.js +0 -0
  645. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDropIndicator.js +0 -0
  646. /package/cjs/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useGlobalDragDrop.js +0 -0
  647. /package/cjs/{editable → packages/vuu-ui-controls/src/editable}/useEditableText.js +0 -0
  648. /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js +0 -0
  649. /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js.map +0 -0
  650. /package/cjs/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.js +0 -0
  651. /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js +0 -0
  652. /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js.map +0 -0
  653. /package/cjs/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.js +0 -0
  654. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js +0 -0
  655. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js.map +0 -0
  656. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.js +0 -0
  657. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js +0 -0
  658. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js.map +0 -0
  659. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.js +0 -0
  660. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js +0 -0
  661. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js.map +0 -0
  662. /package/cjs/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.js +0 -0
  663. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js +0 -0
  664. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js.map +0 -0
  665. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.js +0 -0
  666. /package/cjs/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/useTablePicker.js +0 -0
  667. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js +0 -0
  668. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js.map +0 -0
  669. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.js +0 -0
  670. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/useMeasuredContainer.js +0 -0
  671. /package/cjs/{measured-container → packages/vuu-ui-controls/src/measured-container}/useResizeObserver.js +0 -0
  672. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js +0 -0
  673. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js.map +0 -0
  674. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.js +0 -0
  675. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/overflow-utils.js +0 -0
  676. /package/cjs/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/useOverflowContainer.js +0 -0
  677. /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js +0 -0
  678. /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js.map +0 -0
  679. /package/cjs/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.js +0 -0
  680. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js +0 -0
  681. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js.map +0 -0
  682. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.js +0 -0
  683. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js +0 -0
  684. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js.map +0 -0
  685. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.js +0 -0
  686. /package/cjs/{split-button → packages/vuu-ui-controls/src/split-button}/useSplitButton.js +0 -0
  687. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js +0 -0
  688. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js.map +0 -0
  689. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.js +0 -0
  690. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js +0 -0
  691. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js.map +0 -0
  692. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.js +0 -0
  693. /package/cjs/{table-search → packages/vuu-ui-controls/src/table-search}/useTableSearch.js +0 -0
  694. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabBar.css.js +0 -0
  695. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabBar.css.js.map +0 -0
  696. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabBar.js +0 -0
  697. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabListNext.css.js +0 -0
  698. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabListNext.css.js.map +0 -0
  699. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabListNext.js +0 -0
  700. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNext.css.js +0 -0
  701. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNext.css.js.map +0 -0
  702. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNext.js +0 -0
  703. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextAction.js +0 -0
  704. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextContext.js +0 -0
  705. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextPanel.css.js +0 -0
  706. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextPanel.css.js.map +0 -0
  707. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextPanel.js +0 -0
  708. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextTrigger.css.js +0 -0
  709. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextTrigger.css.js.map +0 -0
  710. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextTrigger.js +0 -0
  711. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabOverflowList.css.js +0 -0
  712. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabOverflowList.css.js.map +0 -0
  713. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabOverflowList.js +0 -0
  714. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabsNext.js +0 -0
  715. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabsNextContext.js +0 -0
  716. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/hooks/useCollection.js +0 -0
  717. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/hooks/useFocusOutside.js +0 -0
  718. /package/cjs/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/hooks/useOverflow.js +0 -0
  719. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js +0 -0
  720. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js.map +0 -0
  721. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.js +0 -0
  722. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js +0 -0
  723. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js.map +0 -0
  724. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.js +0 -0
  725. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenuOptions.js +0 -0
  726. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js +0 -0
  727. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js.map +0 -0
  728. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.js +0 -0
  729. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/tabstrip-dom-utils.js +0 -0
  730. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useAnimatedSelectionThumb.js +0 -0
  731. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useKeyboardNavigation.js +0 -0
  732. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useSelection.js +0 -0
  733. /package/cjs/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useTabstrip.js +0 -0
  734. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js +0 -0
  735. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js.map +0 -0
  736. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.js +0 -0
  737. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/toolbar-dom-utils.js +0 -0
  738. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useKeyboardNavigation.js +0 -0
  739. /package/cjs/{toolbar → packages/vuu-ui-controls/src/toolbar}/useToolbar.js +0 -0
  740. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/escapeRegExp.js +0 -0
  741. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/forwardCallbackProps.js +0 -0
  742. /package/cjs/{utils → packages/vuu-ui-controls/src/utils}/isOverflowElement.js +0 -0
  743. /package/cjs/{common-hooks → packages/vuu-ui-controls/src/utils}/isPlainObject.js +0 -0
  744. /package/cjs/{vuu-date-picker → packages/vuu-ui-controls/src/vuu-date-picker}/VuuDatePicker.js +0 -0
  745. /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js +0 -0
  746. /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js.map +0 -0
  747. /package/cjs/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.js +0 -0
  748. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js +0 -0
  749. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js.map +0 -0
  750. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.js +0 -0
  751. /package/cjs/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/useVuuTypeaheadInput.js +0 -0
  752. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js +0 -0
  753. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.css.js.map +0 -0
  754. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/Calendar.js +0 -0
  755. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js +0 -0
  756. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.css.js.map +0 -0
  757. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarCarousel.js +0 -0
  758. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarContext.js +0 -0
  759. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js +0 -0
  760. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.css.js.map +0 -0
  761. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarDay.js +0 -0
  762. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js +0 -0
  763. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.css.js.map +0 -0
  764. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarMonth.js +0 -0
  765. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js +0 -0
  766. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.css.js.map +0 -0
  767. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarNavigation.js +0 -0
  768. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js +0 -0
  769. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.css.js.map +0 -0
  770. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/CalendarWeekHeader.js +0 -0
  771. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/useFocusManagement.js +0 -0
  772. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/internal/utils.js +0 -0
  773. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendar.js +0 -0
  774. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useCalendarDay.js +0 -0
  775. /package/esm/{calendar → packages/vuu-ui-controls/src/calendar}/useSelection.js +0 -0
  776. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js +0 -0
  777. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnPicker.css.js.map +0 -0
  778. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js +0 -0
  779. /package/esm/{column-picker → packages/vuu-ui-controls/src/column-picker}/ColumnSearch.css.js.map +0 -0
  780. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/selectionTypes.js +0 -0
  781. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/use-resize-observer.js +0 -0
  782. /package/esm/{common-hooks → packages/vuu-ui-controls/src/common-hooks}/useControlled.js +0 -0
  783. /package/esm/{cycle-state-button → packages/vuu-ui-controls/src/cycle-state-button}/CycleStateButton.js +0 -0
  784. /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js +0 -0
  785. /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.css.js.map +0 -0
  786. /package/esm/{date-input → packages/vuu-ui-controls/src/date-input}/DateInput.js +0 -0
  787. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePicker.js +0 -0
  788. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerContext.js +0 -0
  789. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js +0 -0
  790. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.css.js.map +0 -0
  791. /package/esm/{date-picker → packages/vuu-ui-controls/src/date-picker}/DatePickerPanel.js +0 -0
  792. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropProvider.js +0 -0
  793. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/DragDropState.js +0 -0
  794. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js +0 -0
  795. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.css.js.map +0 -0
  796. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/Draggable.js +0 -0
  797. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/dragDropTypes.js +0 -0
  798. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/drop-target-utils.js +0 -0
  799. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useAutoScroll.js +0 -0
  800. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDisplacers.js +0 -0
  801. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDrop.js +0 -0
  802. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropCopy.js +0 -0
  803. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropIndicator.js +0 -0
  804. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDragDropNaturalMovement.js +0 -0
  805. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useDropIndicator.js +0 -0
  806. /package/esm/{drag-drop → packages/vuu-ui-controls/src/drag-drop}/useGlobalDragDrop.js +0 -0
  807. /package/esm/{editable → packages/vuu-ui-controls/src/editable}/useEditableText.js +0 -0
  808. /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js +0 -0
  809. /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.css.js.map +0 -0
  810. /package/esm/{editable-label → packages/vuu-ui-controls/src/editable-label}/EditableLabel.js +0 -0
  811. /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js +0 -0
  812. /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.css.js.map +0 -0
  813. /package/esm/{expando-input → packages/vuu-ui-controls/src/expando-input}/ExpandoInput.js +0 -0
  814. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js +0 -0
  815. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.css.js.map +0 -0
  816. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/Icon.js +0 -0
  817. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js +0 -0
  818. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.css.js.map +0 -0
  819. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/IconButton.js +0 -0
  820. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js +0 -0
  821. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.css.js.map +0 -0
  822. /package/esm/{icon-button → packages/vuu-ui-controls/src/icon-button}/ToggleIconButton.js +0 -0
  823. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js +0 -0
  824. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.css.js.map +0 -0
  825. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/TablePicker.js +0 -0
  826. /package/esm/{instrument-picker → packages/vuu-ui-controls/src/instrument-picker}/useTablePicker.js +0 -0
  827. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js +0 -0
  828. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.css.js.map +0 -0
  829. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/MeasuredContainer.js +0 -0
  830. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/useMeasuredContainer.js +0 -0
  831. /package/esm/{measured-container → packages/vuu-ui-controls/src/measured-container}/useResizeObserver.js +0 -0
  832. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js +0 -0
  833. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.css.js.map +0 -0
  834. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/OverflowContainer.js +0 -0
  835. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/overflow-utils.js +0 -0
  836. /package/esm/{overflow-container → packages/vuu-ui-controls/src/overflow-container}/useOverflowContainer.js +0 -0
  837. /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js +0 -0
  838. /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.css.js.map +0 -0
  839. /package/esm/{price-ticker → packages/vuu-ui-controls/src/price-ticker}/PriceTicker.js +0 -0
  840. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js +0 -0
  841. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.css.js.map +0 -0
  842. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitButton.js +0 -0
  843. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js +0 -0
  844. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.css.js.map +0 -0
  845. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/SplitStateButton.js +0 -0
  846. /package/esm/{split-button → packages/vuu-ui-controls/src/split-button}/useSplitButton.js +0 -0
  847. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js +0 -0
  848. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.css.js.map +0 -0
  849. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/SearchCell.js +0 -0
  850. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js +0 -0
  851. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.css.js.map +0 -0
  852. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/TableSearch.js +0 -0
  853. /package/esm/{table-search → packages/vuu-ui-controls/src/table-search}/useTableSearch.js +0 -0
  854. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabBar.css.js +0 -0
  855. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabBar.css.js.map +0 -0
  856. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabBar.js +0 -0
  857. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabListNext.css.js +0 -0
  858. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabListNext.css.js.map +0 -0
  859. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabListNext.js +0 -0
  860. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNext.css.js +0 -0
  861. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNext.css.js.map +0 -0
  862. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNext.js +0 -0
  863. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextAction.js +0 -0
  864. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextContext.js +0 -0
  865. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextPanel.css.js +0 -0
  866. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextPanel.css.js.map +0 -0
  867. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextPanel.js +0 -0
  868. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextTrigger.css.js +0 -0
  869. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextTrigger.css.js.map +0 -0
  870. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabNextTrigger.js +0 -0
  871. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabOverflowList.css.js +0 -0
  872. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabOverflowList.css.js.map +0 -0
  873. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabOverflowList.js +0 -0
  874. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabsNext.js +0 -0
  875. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/TabsNextContext.js +0 -0
  876. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/hooks/useCollection.js +0 -0
  877. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/hooks/useFocusOutside.js +0 -0
  878. /package/esm/{tabs-next → packages/vuu-ui-controls/src/tabs-next}/hooks/useOverflow.js +0 -0
  879. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js +0 -0
  880. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.css.js.map +0 -0
  881. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tab.js +0 -0
  882. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js +0 -0
  883. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.css.js.map +0 -0
  884. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenu.js +0 -0
  885. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/TabMenuOptions.js +0 -0
  886. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js +0 -0
  887. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.css.js.map +0 -0
  888. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/Tabstrip.js +0 -0
  889. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/tabstrip-dom-utils.js +0 -0
  890. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useAnimatedSelectionThumb.js +0 -0
  891. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useKeyboardNavigation.js +0 -0
  892. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useSelection.js +0 -0
  893. /package/esm/{tabstrip → packages/vuu-ui-controls/src/tabstrip}/useTabstrip.js +0 -0
  894. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js +0 -0
  895. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.css.js.map +0 -0
  896. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/Toolbar.js +0 -0
  897. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/toolbar-dom-utils.js +0 -0
  898. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useKeyboardNavigation.js +0 -0
  899. /package/esm/{toolbar → packages/vuu-ui-controls/src/toolbar}/useToolbar.js +0 -0
  900. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/escapeRegExp.js +0 -0
  901. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/forwardCallbackProps.js +0 -0
  902. /package/esm/{utils → packages/vuu-ui-controls/src/utils}/isOverflowElement.js +0 -0
  903. /package/esm/{common-hooks → packages/vuu-ui-controls/src/utils}/isPlainObject.js +0 -0
  904. /package/esm/{vuu-date-picker → packages/vuu-ui-controls/src/vuu-date-picker}/VuuDatePicker.js +0 -0
  905. /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js +0 -0
  906. /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.css.js.map +0 -0
  907. /package/esm/{vuu-input → packages/vuu-ui-controls/src/vuu-input}/VuuInput.js +0 -0
  908. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js +0 -0
  909. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.css.js.map +0 -0
  910. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/VuuTypeaheadInput.js +0 -0
  911. /package/esm/{vuu-typeahead-input → packages/vuu-ui-controls/src/vuu-typeahead-input}/useVuuTypeaheadInput.js +0 -0
  912. /package/types/{list → highlighter}/Highlighter.d.ts +0 -0
@@ -1,286 +0,0 @@
1
- import { useControlled } from '@salt-ds/core';
2
- import { useRef, useState, useCallback, useMemo } from 'react';
3
- import { PageDown, ArrowUp, ArrowDown, PageUp, isNavigationKey, isCharacterKey, End, Home } from './keyUtils.js';
4
- import '../../common-hooks/collectionProvider.js';
5
- import '../../common-hooks/use-resize-observer.js';
6
- import { hasSelection, getFirstSelectedItem } from '../../common-hooks/selectionTypes.js';
7
- import { getElementByDataIndex, isValidNumber } from '@vuu-ui/vuu-utils';
8
-
9
- const LIST_FOCUS_VISIBLE = -2;
10
- function nextItemIdx(count, key, idx) {
11
- if (key === ArrowUp || key === End) {
12
- if (idx > 0) {
13
- return idx - 1;
14
- } else {
15
- return idx;
16
- }
17
- } else {
18
- if (idx === null) {
19
- return 0;
20
- } else if (idx === count - 1) {
21
- return idx;
22
- } else {
23
- return idx + 1;
24
- }
25
- }
26
- }
27
- const getIndexOfSelectedItem = (selected) => {
28
- const selectedItemId = Array.isArray(selected) ? getFirstSelectedItem(selected) : void 0;
29
- if (selectedItemId) {
30
- const el = document.getElementById(selectedItemId);
31
- if (el) {
32
- const index = parseInt(el.dataset.index ?? "-1");
33
- if (isValidNumber(index)) {
34
- return index;
35
- }
36
- }
37
- }
38
- return -1;
39
- };
40
- const getStartIdx = (key, idx, selectedIdx, length) => {
41
- if (key === End) {
42
- return length;
43
- } else if (key === Home) {
44
- return -1;
45
- } else if (idx !== -1) {
46
- return idx;
47
- } else {
48
- return selectedIdx;
49
- }
50
- };
51
- const pageDown = (containerEl, itemEl, itemCount, index) => {
52
- const { top: itemTop } = itemEl.getBoundingClientRect();
53
- const { scrollTop, clientHeight, scrollHeight } = containerEl;
54
- const lastIndexPosition = itemCount - 1;
55
- const newScrollTop = Math.min(
56
- scrollTop + clientHeight,
57
- scrollHeight - clientHeight
58
- );
59
- if (newScrollTop === scrollTop && index < lastIndexPosition) {
60
- return lastIndexPosition;
61
- } else if (newScrollTop !== scrollTop && index < lastIndexPosition) {
62
- containerEl.scrollTo(0, newScrollTop);
63
- let nextIdx = index;
64
- let nextRect;
65
- do {
66
- nextIdx += 1;
67
- nextRect = getElementByDataIndex(
68
- containerEl,
69
- nextIdx,
70
- true
71
- ).getBoundingClientRect();
72
- } while (nextRect.top < itemTop && nextIdx < lastIndexPosition);
73
- return nextIdx;
74
- }
75
- };
76
- const pageUp = (containerEl, itemEl, index) => {
77
- const { top: itemTop } = itemEl.getBoundingClientRect();
78
- const { scrollTop, clientHeight } = containerEl;
79
- const newScrollTop = Math.max(scrollTop - clientHeight, 0);
80
- if (newScrollTop === scrollTop && index > 0) {
81
- return 0;
82
- } else if (newScrollTop !== scrollTop && index > 0) {
83
- containerEl.scrollTo(0, newScrollTop);
84
- let nextIdx = index;
85
- let nextRect;
86
- do {
87
- nextIdx -= 1;
88
- nextRect = getElementByDataIndex(
89
- containerEl,
90
- nextIdx,
91
- true
92
- ).getBoundingClientRect();
93
- } while (nextRect.top > itemTop && nextIdx > 0);
94
- return nextIdx;
95
- }
96
- };
97
- const isLeaf = (element) => element !== void 0;
98
- const isFocusable = (container, index) => {
99
- const targetEl = getElementByDataIndex(container, index);
100
- return isLeaf(targetEl);
101
- };
102
- const useKeyboardNavigation = ({
103
- containerRef,
104
- defaultHighlightedIndex = -1,
105
- disableHighlightOnFocus,
106
- highlightedIndex: highlightedIndexProp,
107
- itemCount,
108
- onHighlight,
109
- onKeyboardNavigation,
110
- restoreLastFocus,
111
- selected,
112
- // TODO
113
- viewportItemCount: _
114
- }) => {
115
- const lastFocus = useRef(-1);
116
- const [, forceRender] = useState({});
117
- const [highlightedIndex, setHighlightedIdx, isControlledHighlighting] = useControlled({
118
- controlled: highlightedIndexProp,
119
- default: defaultHighlightedIndex,
120
- name: "UseKeyboardNavigation"
121
- });
122
- const setHighlightedIndex = useCallback(
123
- (idx, fromKeyboard = false) => {
124
- onHighlight?.(idx);
125
- setHighlightedIdx(idx);
126
- if (fromKeyboard) {
127
- lastFocus.current = idx;
128
- }
129
- },
130
- [onHighlight, setHighlightedIdx]
131
- );
132
- const nextPageItemIdx = useCallback(
133
- (key, index) => {
134
- const itemEl = getElementByDataIndex(containerRef.current, index, true);
135
- let result;
136
- if (itemEl) {
137
- const { current: containerEl } = containerRef;
138
- if (itemEl && containerEl) {
139
- result = key === PageDown ? pageDown(containerEl, itemEl, itemCount, index) : pageUp(containerEl, itemEl, index);
140
- }
141
- }
142
- return result ?? index;
143
- },
144
- [containerRef, itemCount]
145
- );
146
- const nextFocusableItemIdx = useCallback(
147
- (key = ArrowDown, idx = key === ArrowDown ? -1 : itemCount) => {
148
- if (itemCount === 0) {
149
- return -1;
150
- } else {
151
- const isEnd = key === "End";
152
- const isHome = key === "Home";
153
- const indexOfSelectedItem = isEnd || isHome || idx === -1 ? -1 : getIndexOfSelectedItem(selected);
154
- const startIdx = getStartIdx(key, idx, indexOfSelectedItem, itemCount);
155
- let nextIdx = nextItemIdx(itemCount, key, startIdx);
156
- const { current: container } = containerRef;
157
- if (nextIdx === 0 && key === ArrowUp && container && !isFocusable(container, 0)) {
158
- return idx;
159
- }
160
- while (((key === ArrowDown || isHome) && nextIdx < itemCount || (key === ArrowUp || isEnd) && nextIdx > 0) && container && !isFocusable(container, nextIdx)) {
161
- nextIdx = nextItemIdx(itemCount, key, nextIdx);
162
- }
163
- return nextIdx;
164
- }
165
- },
166
- [containerRef, itemCount, selected]
167
- );
168
- const keyboardNavigation = useRef(false);
169
- const ignoreFocus = useRef(false);
170
- const setIgnoreFocus = (value) => ignoreFocus.current = value;
171
- const handleFocus = useCallback(() => {
172
- if (ignoreFocus.current) {
173
- ignoreFocus.current = false;
174
- } else {
175
- keyboardNavigation.current = true;
176
- if (itemCount === 0) {
177
- setHighlightedIndex(LIST_FOCUS_VISIBLE);
178
- } else if (highlightedIndex !== -1) {
179
- forceRender({});
180
- } else if (restoreLastFocus) {
181
- if (lastFocus.current !== -1) {
182
- setHighlightedIndex(lastFocus.current);
183
- } else {
184
- const selectedItemIdx = getIndexOfSelectedItem(selected);
185
- if (selectedItemIdx !== -1) {
186
- setHighlightedIndex(selectedItemIdx);
187
- } else {
188
- setHighlightedIndex(0);
189
- }
190
- }
191
- } else if (hasSelection(selected)) {
192
- const selectedItemIdx = getIndexOfSelectedItem(selected);
193
- setHighlightedIndex(selectedItemIdx);
194
- } else if (disableHighlightOnFocus !== true) {
195
- setHighlightedIndex(nextFocusableItemIdx());
196
- }
197
- }
198
- }, [
199
- disableHighlightOnFocus,
200
- highlightedIndex,
201
- itemCount,
202
- nextFocusableItemIdx,
203
- restoreLastFocus,
204
- selected,
205
- setHighlightedIndex
206
- ]);
207
- const navigateChildItems = useCallback(
208
- async (e) => {
209
- const nextIdx = e.key === PageDown || e.key === PageUp ? nextPageItemIdx(e.key, highlightedIndex) : nextFocusableItemIdx(e.key, highlightedIndex);
210
- if (nextIdx !== highlightedIndex) {
211
- setHighlightedIndex(nextIdx, true);
212
- }
213
- onKeyboardNavigation?.(e, nextIdx);
214
- },
215
- [
216
- highlightedIndex,
217
- nextFocusableItemIdx,
218
- nextPageItemIdx,
219
- onKeyboardNavigation,
220
- setHighlightedIndex
221
- ]
222
- );
223
- const handleKeyDown = useCallback(
224
- (e) => {
225
- if (itemCount > 0 && isNavigationKey(e)) {
226
- e.preventDefault();
227
- e.stopPropagation();
228
- keyboardNavigation.current = true;
229
- navigateChildItems(e);
230
- } else if (isCharacterKey(e)) {
231
- keyboardNavigation.current = true;
232
- }
233
- },
234
- [itemCount, navigateChildItems]
235
- );
236
- const containerProps = useMemo(() => {
237
- return {
238
- onBlur: (e) => {
239
- const sourceTarget = e.target.closest(".vuuList");
240
- const destTarget = e.relatedTarget;
241
- if (sourceTarget && !sourceTarget?.contains(destTarget)) {
242
- keyboardNavigation.current = false;
243
- setHighlightedIdx(-1);
244
- if (!restoreLastFocus) {
245
- lastFocus.current = -1;
246
- }
247
- }
248
- },
249
- onFocus: handleFocus,
250
- onKeyDown: handleKeyDown,
251
- onMouseDownCapture: () => {
252
- keyboardNavigation.current = false;
253
- setIgnoreFocus(true);
254
- },
255
- // onMouseEnter would seem less expensive but it misses some cases
256
- onMouseMove: () => {
257
- if (keyboardNavigation.current) {
258
- keyboardNavigation.current = false;
259
- }
260
- },
261
- onMouseLeave: () => {
262
- keyboardNavigation.current = false;
263
- setIgnoreFocus(false);
264
- setHighlightedIndex(-1);
265
- }
266
- };
267
- }, [
268
- handleFocus,
269
- handleKeyDown,
270
- restoreLastFocus,
271
- setHighlightedIdx,
272
- setHighlightedIndex
273
- ]);
274
- return {
275
- focusVisible: keyboardNavigation.current ? highlightedIndex : -1,
276
- controlledHighlighting: isControlledHighlighting,
277
- highlightedIndex,
278
- setHighlightedIndex,
279
- keyboardNavigation,
280
- containerProps,
281
- setIgnoreFocus
282
- };
283
- };
284
-
285
- export { LIST_FOCUS_VISIBLE, useKeyboardNavigation };
286
- //# sourceMappingURL=useKeyboardNavigation.js.map
@@ -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,72 +0,0 @@
1
- import { useRef, useCallback } from 'react';
2
- import { isCharacterKey, Space } from './keyUtils.js';
3
-
4
- const useTypeahead = ({
5
- disableTypeToSelect,
6
- highlightedIdx,
7
- highlightItemAtIndex,
8
- typeToNavigate,
9
- items,
10
- applyIncrementalSearch = true
11
- }) => {
12
- const keyDownTimer = useRef(null);
13
- const searchChars = useRef("");
14
- const startIdx = useRef(-1);
15
- const applySearch = useCallback(
16
- (intermediateSearch) => {
17
- if (intermediateSearch || !applyIncrementalSearch) {
18
- const regex = new RegExp(`^${searchChars.current}`, "i");
19
- let idx = items.findIndex(
20
- ({ label }, i) => i > startIdx.current && regex.test(label)
21
- );
22
- if (idx === -1) {
23
- idx = items.findIndex(
24
- ({ label }, i) => i <= startIdx.current && regex.test(label)
25
- );
26
- }
27
- if (idx !== -1) {
28
- highlightItemAtIndex(idx);
29
- }
30
- } else {
31
- searchChars.current = "";
32
- keyDownTimer.current = null;
33
- startIdx.current = -1;
34
- }
35
- },
36
- [applyIncrementalSearch, highlightItemAtIndex, items]
37
- );
38
- const handleKeyDown = useCallback(
39
- (e) => {
40
- const searchInProgress = startIdx.current !== -1;
41
- if (isCharacterKey(e) || searchInProgress && e.key === Space) {
42
- if (typeToNavigate) {
43
- e.preventDefault();
44
- e.stopPropagation();
45
- if (startIdx.current === -1 || e.key === searchChars.current) {
46
- startIdx.current = highlightedIdx;
47
- }
48
- if (keyDownTimer.current !== null) {
49
- clearTimeout(keyDownTimer.current);
50
- keyDownTimer.current = null;
51
- }
52
- if (e.key !== searchChars.current) {
53
- searchChars.current += e.key;
54
- }
55
- if (applyIncrementalSearch) {
56
- applySearch(true);
57
- }
58
- keyDownTimer.current = window.setTimeout(() => {
59
- applySearch();
60
- }, 100);
61
- }
62
- }
63
- },
64
- [typeToNavigate, applyIncrementalSearch, highlightedIdx, applySearch]
65
- );
66
- return {
67
- onKeyDown: disableTypeToSelect ? void 0 : handleKeyDown
68
- };
69
- };
70
-
71
- export { useTypeahead };
72
- //# sourceMappingURL=useTypeahead.js.map
@@ -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":";;;AAiBO,MAAM,eAAe,CAAO;AAAA,EACjC,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,oBAAA;AAAA,EACA,cAAA;AAAA,EACA,KAAA;AAAA,EACA,sBAAyB,GAAA;AAC3B,CAAqD,KAAA;AACnD,EAAM,MAAA,YAAA,GAAe,OAAsB,IAAI,CAAA;AAC/C,EAAM,MAAA,WAAA,GAAc,OAAO,EAAE,CAAA;AAC7B,EAAM,MAAA,QAAA,GAAW,OAAO,CAAE,CAAA,CAAA;AAE1B,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,kBAA0C,KAAA;AACzC,MAAI,IAAA,kBAAA,IAAsB,CAAC,sBAAwB,EAAA;AACjD,QAAA,MAAM,QAAQ,IAAI,MAAA,CAAO,IAAI,WAAY,CAAA,OAAO,IAAI,GAAG,CAAA;AACvD,QAAA,IAAI,MAAM,KAAM,CAAA,SAAA;AAAA,UACd,CAAC,EAAE,KAAA,EAAS,EAAA,CAAA,KAAM,IAAI,QAAS,CAAA,OAAA,IAAW,KAAM,CAAA,IAAA,CAAK,KAAM;AAAA,SAC7D;AACA,QAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACd,UAAA,GAAA,GAAM,KAAM,CAAA,SAAA;AAAA,YACV,CAAC,EAAE,KAAA,EAAS,EAAA,CAAA,KAAM,KAAK,QAAS,CAAA,OAAA,IAAW,KAAM,CAAA,IAAA,CAAK,KAAM;AAAA,WAC9D;AAAA;AAEF,QAAA,IAAI,QAAQ,CAAI,CAAA,EAAA;AACd,UAAA,oBAAA,CAAqB,GAAG,CAAA;AAAA;AAC1B,OACK,MAAA;AACL,QAAA,WAAA,CAAY,OAAU,GAAA,EAAA;AACtB,QAAA,YAAA,CAAa,OAAU,GAAA,IAAA;AACvB,QAAA,QAAA,CAAS,OAAU,GAAA,CAAA,CAAA;AAAA;AACrB,KACF;AAAA,IACA,CAAC,sBAAwB,EAAA,oBAAA,EAAsB,KAAK;AAAA,GACtD;AAEA,EAAA,MAAM,aAAgB,GAAA,WAAA;AAAA,IACpB,CAAC,CAA2B,KAAA;AAC1B,MAAM,MAAA,gBAAA,GAAmB,SAAS,OAAY,KAAA,CAAA,CAAA;AAC9C,MAAA,IAAI,eAAe,CAAC,CAAA,IAAM,gBAAoB,IAAA,CAAA,CAAE,QAAQ,KAAQ,EAAA;AAC9D,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,CAAA,CAAE,cAAe,EAAA;AACjB,UAAA,CAAA,CAAE,eAAgB,EAAA;AAElB,UAAA,IAAI,SAAS,OAAY,KAAA,CAAA,CAAA,IAAM,CAAE,CAAA,GAAA,KAAQ,YAAY,OAAS,EAAA;AAC5D,YAAA,QAAA,CAAS,OAAU,GAAA,cAAA;AAAA;AAErB,UAAI,IAAA,YAAA,CAAa,YAAY,IAAM,EAAA;AACjC,YAAA,YAAA,CAAa,aAAa,OAAO,CAAA;AACjC,YAAA,YAAA,CAAa,OAAU,GAAA,IAAA;AAAA;AAEzB,UAAI,IAAA,CAAA,CAAE,GAAQ,KAAA,WAAA,CAAY,OAAS,EAAA;AACjC,YAAA,WAAA,CAAY,WAAW,CAAE,CAAA,GAAA;AAAA;AAE3B,UAAA,IAAI,sBAAwB,EAAA;AAC1B,YAAA,WAAA,CAAY,IAAI,CAAA;AAAA;AAGlB,UAAa,YAAA,CAAA,OAAA,GAAU,MAAO,CAAA,UAAA,CAAW,MAAM;AAC7C,YAAY,WAAA,EAAA;AAAA,aACX,GAAG,CAAA;AAAA;AACR;AACF,KACF;AAAA,IACA,CAAC,cAAA,EAAgB,sBAAwB,EAAA,cAAA,EAAgB,WAAW;AAAA,GACtE;AAEA,EAAO,OAAA;AAAA,IACL,SAAA,EAAW,sBAAsB,KAAY,CAAA,GAAA;AAAA,GAC/C;AACF;;;;"}
@@ -1,131 +0,0 @@
1
- import { useRef, useCallback } from 'react';
2
- import '../../common-hooks/collectionProvider.js';
3
- import { useResizeObserver } from '../../common-hooks/use-resize-observer.js';
4
- import { useIsomorphicLayoutEffect } from '@salt-ds/core';
5
-
6
- const HeightOnly = ["height"];
7
- const HeightWithScroll = ["height", "scrollHeight"];
8
- const EMPTY_ARRAY = [];
9
- const ObservedDimensions = {
10
- containerOnly: [HeightWithScroll, EMPTY_ARRAY],
11
- withContent: [HeightOnly, HeightOnly]
12
- };
13
- const getObservedDimensions = (containerOnly) => containerOnly ? ObservedDimensions.containerOnly : ObservedDimensions.withContent;
14
- const NULL_REF = { current: null };
15
- const getItemTop = (element, offsetContainer) => {
16
- const { transform = "none" } = getComputedStyle(element);
17
- if (transform.startsWith("matrix")) {
18
- const pos = transform.lastIndexOf(",");
19
- return parseInt(transform.slice(pos + 1));
20
- } else {
21
- let offsetParent = element.offsetParent;
22
- if (offsetParent === offsetContainer || offsetContainer === null) {
23
- return element.offsetTop;
24
- } else {
25
- let top = element.offsetTop;
26
- while (offsetParent !== null && offsetParent !== offsetContainer) {
27
- top += offsetParent.offsetTop;
28
- offsetParent = offsetParent.offsetParent;
29
- }
30
- return top;
31
- }
32
- }
33
- };
34
- const useViewportTracking = ({
35
- containerRef,
36
- contentRef = NULL_REF,
37
- highlightedIdx = -1,
38
- indexPositions,
39
- stickyHeaders = false
40
- }) => {
41
- const scrolling = useRef(false);
42
- const viewport = useRef({
43
- height: 0,
44
- contentHeight: 0
45
- });
46
- const scrollTo = useCallback((scrollPos) => {
47
- scrolling.current = true;
48
- if (containerRef.current) {
49
- containerRef.current.scrollTop = scrollPos;
50
- }
51
- setTimeout(() => {
52
- scrolling.current = false;
53
- });
54
- }, []);
55
- const scrollToStart = useCallback(() => scrollTo(0), [scrollTo]);
56
- const scrollToEnd = useCallback(() => {
57
- scrollTo(viewport.current.contentHeight - viewport.current.height);
58
- }, [scrollTo]);
59
- const scrollIntoViewIfNeeded = useCallback(
60
- (item) => {
61
- const offsetContainer = contentRef.current || containerRef.current;
62
- if (item.id) {
63
- const el = document.getElementById(item.id);
64
- if (el && containerRef.current) {
65
- const { height: viewportHeight } = viewport.current;
66
- const targetEl = el.ariaExpanded && el.firstChild ? el.firstChild : el;
67
- const headerHeight = stickyHeaders ? 36 : 0;
68
- const itemTop = getItemTop(targetEl, offsetContainer);
69
- const itemHeight = targetEl.offsetHeight;
70
- const { scrollTop } = containerRef.current;
71
- const viewportStart = scrollTop + headerHeight;
72
- const viewportEnd = viewportStart + viewportHeight - headerHeight;
73
- if (itemTop + itemHeight > viewportEnd || itemTop < viewportStart) {
74
- const newScrollTop = itemTop + itemHeight > viewportEnd ? scrollTop + (itemTop + itemHeight) - viewportEnd : itemTop - headerHeight;
75
- scrollTo(newScrollTop);
76
- }
77
- }
78
- }
79
- },
80
- [containerRef, contentRef, scrollTo, stickyHeaders]
81
- );
82
- useIsomorphicLayoutEffect(() => {
83
- const { height, contentHeight } = viewport.current;
84
- const item = indexPositions[highlightedIdx];
85
- if (contentHeight > height && item) {
86
- const [firstItem] = indexPositions;
87
- const [lastItem] = indexPositions.slice(-1);
88
- if (item === firstItem) {
89
- scrollToStart();
90
- } else if (item === lastItem) {
91
- scrollToEnd();
92
- } else {
93
- scrollIntoViewIfNeeded(indexPositions[highlightedIdx]);
94
- }
95
- }
96
- }, [
97
- highlightedIdx,
98
- indexPositions,
99
- scrollIntoViewIfNeeded,
100
- scrollToEnd,
101
- scrollToStart
102
- ]);
103
- const onContainerResize = useCallback(
104
- ({ height, scrollHeight }) => {
105
- if (typeof height === "number") {
106
- viewport.current.height = height;
107
- }
108
- if (typeof scrollHeight === "number") {
109
- viewport.current.contentHeight = scrollHeight;
110
- }
111
- },
112
- []
113
- );
114
- const onContentResize = useCallback(({ height }) => {
115
- if (typeof height === "number") {
116
- viewport.current.contentHeight = height;
117
- }
118
- }, []);
119
- const [containerDimensions, contentDimensions] = getObservedDimensions(
120
- contentRef === NULL_REF
121
- );
122
- useResizeObserver(containerRef, containerDimensions, onContainerResize, true);
123
- useResizeObserver(contentRef, contentDimensions, onContentResize, true);
124
- return {
125
- isScrolling: scrolling,
126
- scrollIntoView: scrollIntoViewIfNeeded
127
- };
128
- };
129
-
130
- export { useViewportTracking };
131
- //# sourceMappingURL=useViewportTracking.js.map
@@ -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\"];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\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 | null>;\n contentRef?: RefObject<HTMLElement | null>;\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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"}