@vuu-ui/vuu-ui-controls 0.0.26

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 (823) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +0 -0
  3. package/cjs/calendar/Calendar.css.js +6 -0
  4. package/cjs/calendar/Calendar.css.js.map +1 -0
  5. package/cjs/calendar/Calendar.js +74 -0
  6. package/cjs/calendar/Calendar.js.map +1 -0
  7. package/cjs/calendar/internal/CalendarCarousel.css.js +6 -0
  8. package/cjs/calendar/internal/CalendarCarousel.css.js.map +1 -0
  9. package/cjs/calendar/internal/CalendarCarousel.js +97 -0
  10. package/cjs/calendar/internal/CalendarCarousel.js.map +1 -0
  11. package/cjs/calendar/internal/CalendarContext.js +19 -0
  12. package/cjs/calendar/internal/CalendarContext.js.map +1 -0
  13. package/cjs/calendar/internal/CalendarDay.css.js +6 -0
  14. package/cjs/calendar/internal/CalendarDay.css.js.map +1 -0
  15. package/cjs/calendar/internal/CalendarDay.js +83 -0
  16. package/cjs/calendar/internal/CalendarDay.js.map +1 -0
  17. package/cjs/calendar/internal/CalendarMonth.css.js +6 -0
  18. package/cjs/calendar/internal/CalendarMonth.css.js.map +1 -0
  19. package/cjs/calendar/internal/CalendarMonth.js +73 -0
  20. package/cjs/calendar/internal/CalendarMonth.js.map +1 -0
  21. package/cjs/calendar/internal/CalendarNavigation.css.js +6 -0
  22. package/cjs/calendar/internal/CalendarNavigation.css.js.map +1 -0
  23. package/cjs/calendar/internal/CalendarNavigation.js +250 -0
  24. package/cjs/calendar/internal/CalendarNavigation.js.map +1 -0
  25. package/cjs/calendar/internal/CalendarWeekHeader.css.js +6 -0
  26. package/cjs/calendar/internal/CalendarWeekHeader.css.js.map +1 -0
  27. package/cjs/calendar/internal/CalendarWeekHeader.js +43 -0
  28. package/cjs/calendar/internal/CalendarWeekHeader.js.map +1 -0
  29. package/cjs/calendar/internal/useFocusManagement.js +63 -0
  30. package/cjs/calendar/internal/useFocusManagement.js.map +1 -0
  31. package/cjs/calendar/internal/utils.js +63 -0
  32. package/cjs/calendar/internal/utils.js.map +1 -0
  33. package/cjs/calendar/useCalendar.js +131 -0
  34. package/cjs/calendar/useCalendar.js.map +1 -0
  35. package/cjs/calendar/useCalendarDay.js +70 -0
  36. package/cjs/calendar/useCalendarDay.js.map +1 -0
  37. package/cjs/calendar/useSelection.js +242 -0
  38. package/cjs/calendar/useSelection.js.map +1 -0
  39. package/cjs/combo-box/ComboBox.js +191 -0
  40. package/cjs/combo-box/ComboBox.js.map +1 -0
  41. package/cjs/combo-box/useCombobox.js +358 -0
  42. package/cjs/combo-box/useCombobox.js.map +1 -0
  43. package/cjs/common-hooks/collectionProvider.js +24 -0
  44. package/cjs/common-hooks/collectionProvider.js.map +1 -0
  45. package/cjs/common-hooks/isPlainObject.js +6 -0
  46. package/cjs/common-hooks/isPlainObject.js.map +1 -0
  47. package/cjs/common-hooks/itemToString.js +24 -0
  48. package/cjs/common-hooks/itemToString.js.map +1 -0
  49. package/cjs/common-hooks/selectionTypes.js +18 -0
  50. package/cjs/common-hooks/selectionTypes.js.map +1 -0
  51. package/cjs/common-hooks/use-resize-observer.js +123 -0
  52. package/cjs/common-hooks/use-resize-observer.js.map +1 -0
  53. package/cjs/common-hooks/useCollectionItems.js +309 -0
  54. package/cjs/common-hooks/useCollectionItems.js.map +1 -0
  55. package/cjs/common-hooks/useControlled.js +58 -0
  56. package/cjs/common-hooks/useControlled.js.map +1 -0
  57. package/cjs/common-hooks/useSelection.js +212 -0
  58. package/cjs/common-hooks/useSelection.js.map +1 -0
  59. package/cjs/common-hooks/useStateRef.js +23 -0
  60. package/cjs/common-hooks/useStateRef.js.map +1 -0
  61. package/cjs/cycle-state-button/CycleStateButton.js +54 -0
  62. package/cjs/cycle-state-button/CycleStateButton.js.map +1 -0
  63. package/cjs/date-input/DateInput.css.js +6 -0
  64. package/cjs/date-input/DateInput.css.js.map +1 -0
  65. package/cjs/date-input/DateInput.js +90 -0
  66. package/cjs/date-input/DateInput.js.map +1 -0
  67. package/cjs/date-input/DateRangeInput.js +77 -0
  68. package/cjs/date-input/DateRangeInput.js.map +1 -0
  69. package/cjs/date-input/useDatePicker.js +20 -0
  70. package/cjs/date-input/useDatePicker.js.map +1 -0
  71. package/cjs/date-popup/DatePopup.js +90 -0
  72. package/cjs/date-popup/DatePopup.js.map +1 -0
  73. package/cjs/date-popup/useDatePopup.js +77 -0
  74. package/cjs/date-popup/useDatePopup.js.map +1 -0
  75. package/cjs/drag-drop/DragDropProvider.js +145 -0
  76. package/cjs/drag-drop/DragDropProvider.js.map +1 -0
  77. package/cjs/drag-drop/DragDropState.js +29 -0
  78. package/cjs/drag-drop/DragDropState.js.map +1 -0
  79. package/cjs/drag-drop/Draggable.css.js +6 -0
  80. package/cjs/drag-drop/Draggable.css.js.map +1 -0
  81. package/cjs/drag-drop/Draggable.js +95 -0
  82. package/cjs/drag-drop/Draggable.js.map +1 -0
  83. package/cjs/drag-drop/dragDropTypes.js +8 -0
  84. package/cjs/drag-drop/dragDropTypes.js.map +1 -0
  85. package/cjs/drag-drop/drop-target-utils.js +245 -0
  86. package/cjs/drag-drop/drop-target-utils.js.map +1 -0
  87. package/cjs/drag-drop/useAutoScroll.js +71 -0
  88. package/cjs/drag-drop/useAutoScroll.js.map +1 -0
  89. package/cjs/drag-drop/useDragDisplacers.js +160 -0
  90. package/cjs/drag-drop/useDragDisplacers.js.map +1 -0
  91. package/cjs/drag-drop/useDragDrop.js +499 -0
  92. package/cjs/drag-drop/useDragDrop.js.map +1 -0
  93. package/cjs/drag-drop/useDragDropCopy.js +34 -0
  94. package/cjs/drag-drop/useDragDropCopy.js.map +1 -0
  95. package/cjs/drag-drop/useDragDropIndicator.js +251 -0
  96. package/cjs/drag-drop/useDragDropIndicator.js.map +1 -0
  97. package/cjs/drag-drop/useDragDropNaturalMovement.js +264 -0
  98. package/cjs/drag-drop/useDragDropNaturalMovement.js.map +1 -0
  99. package/cjs/drag-drop/useDropIndicator.js +27 -0
  100. package/cjs/drag-drop/useDropIndicator.js.map +1 -0
  101. package/cjs/drag-drop/useGlobalDragDrop.js +89 -0
  102. package/cjs/drag-drop/useGlobalDragDrop.js.map +1 -0
  103. package/cjs/dropdown/Dropdown.css.js +6 -0
  104. package/cjs/dropdown/Dropdown.css.js.map +1 -0
  105. package/cjs/dropdown/Dropdown.js +150 -0
  106. package/cjs/dropdown/Dropdown.js.map +1 -0
  107. package/cjs/dropdown/DropdownBase.js +121 -0
  108. package/cjs/dropdown/DropdownBase.js.map +1 -0
  109. package/cjs/dropdown/DropdownButton.css.js +6 -0
  110. package/cjs/dropdown/DropdownButton.css.js.map +1 -0
  111. package/cjs/dropdown/DropdownButton.js +72 -0
  112. package/cjs/dropdown/DropdownButton.js.map +1 -0
  113. package/cjs/dropdown/useClickAway.js +67 -0
  114. package/cjs/dropdown/useClickAway.js.map +1 -0
  115. package/cjs/dropdown/useDropdown.js +115 -0
  116. package/cjs/dropdown/useDropdown.js.map +1 -0
  117. package/cjs/dropdown/useDropdownBase.js +169 -0
  118. package/cjs/dropdown/useDropdownBase.js.map +1 -0
  119. package/cjs/editable/editable-utils.js +37 -0
  120. package/cjs/editable/editable-utils.js.map +1 -0
  121. package/cjs/editable/useEditableText.js +106 -0
  122. package/cjs/editable/useEditableText.js.map +1 -0
  123. package/cjs/editable-label/EditableLabel.css.js +6 -0
  124. package/cjs/editable-label/EditableLabel.css.js.map +1 -0
  125. package/cjs/editable-label/EditableLabel.js +138 -0
  126. package/cjs/editable-label/EditableLabel.js.map +1 -0
  127. package/cjs/expando-input/ExpandoInput.css.js +6 -0
  128. package/cjs/expando-input/ExpandoInput.css.js.map +1 -0
  129. package/cjs/expando-input/ExpandoInput.js +53 -0
  130. package/cjs/expando-input/ExpandoInput.js.map +1 -0
  131. package/cjs/icon-button/Icon.css.js +6 -0
  132. package/cjs/icon-button/Icon.css.js.map +1 -0
  133. package/cjs/icon-button/Icon.js +37 -0
  134. package/cjs/icon-button/Icon.js.map +1 -0
  135. package/cjs/icon-button/IconButton.css.js +6 -0
  136. package/cjs/icon-button/IconButton.css.js.map +1 -0
  137. package/cjs/icon-button/IconButton.js +26 -0
  138. package/cjs/icon-button/IconButton.js.map +1 -0
  139. package/cjs/index.js +231 -0
  140. package/cjs/index.js.map +1 -0
  141. package/cjs/inputs/Checkbox.css.js +6 -0
  142. package/cjs/inputs/Checkbox.css.js.map +1 -0
  143. package/cjs/inputs/Checkbox.js +32 -0
  144. package/cjs/inputs/Checkbox.js.map +1 -0
  145. package/cjs/inputs/RadioButton.css.js +6 -0
  146. package/cjs/inputs/RadioButton.css.js.map +1 -0
  147. package/cjs/inputs/RadioButton.js +39 -0
  148. package/cjs/inputs/RadioButton.js.map +1 -0
  149. package/cjs/instrument-picker/InstrumentPicker.css.js +6 -0
  150. package/cjs/instrument-picker/InstrumentPicker.css.js.map +1 -0
  151. package/cjs/instrument-picker/InstrumentPicker.js +113 -0
  152. package/cjs/instrument-picker/InstrumentPicker.js.map +1 -0
  153. package/cjs/instrument-picker/SearchCell.css.js +6 -0
  154. package/cjs/instrument-picker/SearchCell.css.js.map +1 -0
  155. package/cjs/instrument-picker/SearchCell.js +33 -0
  156. package/cjs/instrument-picker/SearchCell.js.map +1 -0
  157. package/cjs/instrument-picker/useInstrumentPicker.js +87 -0
  158. package/cjs/instrument-picker/useInstrumentPicker.js.map +1 -0
  159. package/cjs/instrument-search/InstrumentSearch.css.js +6 -0
  160. package/cjs/instrument-search/InstrumentSearch.css.js.map +1 -0
  161. package/cjs/instrument-search/InstrumentSearch.js +96 -0
  162. package/cjs/instrument-search/InstrumentSearch.js.map +1 -0
  163. package/cjs/instrument-search/SearchCell.css.js +6 -0
  164. package/cjs/instrument-search/SearchCell.css.js.map +1 -0
  165. package/cjs/instrument-search/SearchCell.js +33 -0
  166. package/cjs/instrument-search/SearchCell.js.map +1 -0
  167. package/cjs/instrument-search/useInstrumentSearch.js +39 -0
  168. package/cjs/instrument-search/useInstrumentSearch.js.map +1 -0
  169. package/cjs/list/CheckboxIcon.css.js +6 -0
  170. package/cjs/list/CheckboxIcon.css.js.map +1 -0
  171. package/cjs/list/CheckboxIcon.js +33 -0
  172. package/cjs/list/CheckboxIcon.js.map +1 -0
  173. package/cjs/list/ChevronIcon.css.js +6 -0
  174. package/cjs/list/ChevronIcon.css.js.map +1 -0
  175. package/cjs/list/ChevronIcon.js +22 -0
  176. package/cjs/list/ChevronIcon.js.map +1 -0
  177. package/cjs/list/Highlighter.css.js +6 -0
  178. package/cjs/list/Highlighter.css.js.map +1 -0
  179. package/cjs/list/Highlighter.js +36 -0
  180. package/cjs/list/Highlighter.js.map +1 -0
  181. package/cjs/list/List.css.js +6 -0
  182. package/cjs/list/List.css.js.map +1 -0
  183. package/cjs/list/List.js +317 -0
  184. package/cjs/list/List.js.map +1 -0
  185. package/cjs/list/ListItem.css.js +6 -0
  186. package/cjs/list/ListItem.css.js.map +1 -0
  187. package/cjs/list/ListItem.js +84 -0
  188. package/cjs/list/ListItem.js.map +1 -0
  189. package/cjs/list/ListItemGroup.js +6 -0
  190. package/cjs/list/ListItemGroup.js.map +1 -0
  191. package/cjs/list/ListItemHeader.js +6 -0
  192. package/cjs/list/ListItemHeader.js.map +1 -0
  193. package/cjs/list/RadioIcon.css.js +6 -0
  194. package/cjs/list/RadioIcon.css.js.map +1 -0
  195. package/cjs/list/RadioIcon.js +27 -0
  196. package/cjs/list/RadioIcon.js.map +1 -0
  197. package/cjs/list/common-hooks/keyUtils.js +78 -0
  198. package/cjs/list/common-hooks/keyUtils.js.map +1 -0
  199. package/cjs/list/common-hooks/list-dom-utils.js +25 -0
  200. package/cjs/list/common-hooks/list-dom-utils.js.map +1 -0
  201. package/cjs/list/common-hooks/useCollapsibleGroups.js +82 -0
  202. package/cjs/list/common-hooks/useCollapsibleGroups.js.map +1 -0
  203. package/cjs/list/common-hooks/useImperativeScrollingAPI.js +52 -0
  204. package/cjs/list/common-hooks/useImperativeScrollingAPI.js.map +1 -0
  205. package/cjs/list/common-hooks/useKeyboardNavigation.js +289 -0
  206. package/cjs/list/common-hooks/useKeyboardNavigation.js.map +1 -0
  207. package/cjs/list/common-hooks/useTypeahead.js +74 -0
  208. package/cjs/list/common-hooks/useTypeahead.js.map +1 -0
  209. package/cjs/list/common-hooks/useViewportTracking.js +133 -0
  210. package/cjs/list/common-hooks/useViewportTracking.js.map +1 -0
  211. package/cjs/list/common-hooks/utils/collection-item-utils.js +181 -0
  212. package/cjs/list/common-hooks/utils/collection-item-utils.js.map +1 -0
  213. package/cjs/list/common-hooks/utils/filter-utils.js +11 -0
  214. package/cjs/list/common-hooks/utils/filter-utils.js.map +1 -0
  215. package/cjs/list/common-hooks/utils/isSelected.js +9 -0
  216. package/cjs/list/common-hooks/utils/isSelected.js.map +1 -0
  217. package/cjs/list/useList.js +278 -0
  218. package/cjs/list/useList.js.map +1 -0
  219. package/cjs/list/useListDrop.js +92 -0
  220. package/cjs/list/useListDrop.js.map +1 -0
  221. package/cjs/list/useListHeight.js +77 -0
  222. package/cjs/list/useListHeight.js.map +1 -0
  223. package/cjs/list/useScrollPosition.js +74 -0
  224. package/cjs/list/useScrollPosition.js.map +1 -0
  225. package/cjs/measured-container/MeasuredContainer.css.js +6 -0
  226. package/cjs/measured-container/MeasuredContainer.css.js.map +1 -0
  227. package/cjs/measured-container/MeasuredContainer.js +69 -0
  228. package/cjs/measured-container/MeasuredContainer.js.map +1 -0
  229. package/cjs/measured-container/useMeasuredContainer.js +127 -0
  230. package/cjs/measured-container/useMeasuredContainer.js.map +1 -0
  231. package/cjs/measured-container/useResizeObserver.js +130 -0
  232. package/cjs/measured-container/useResizeObserver.js.map +1 -0
  233. package/cjs/overflow-container/OverflowContainer.css.js +6 -0
  234. package/cjs/overflow-container/OverflowContainer.css.js.map +1 -0
  235. package/cjs/overflow-container/OverflowContainer.js +142 -0
  236. package/cjs/overflow-container/OverflowContainer.js.map +1 -0
  237. package/cjs/overflow-container/overflow-utils.js +286 -0
  238. package/cjs/overflow-container/overflow-utils.js.map +1 -0
  239. package/cjs/overflow-container/useOverflowContainer.js +143 -0
  240. package/cjs/overflow-container/useOverflowContainer.js.map +1 -0
  241. package/cjs/price-ticker/PriceTicker.css.js +6 -0
  242. package/cjs/price-ticker/PriceTicker.css.js.map +1 -0
  243. package/cjs/price-ticker/PriceTicker.js +50 -0
  244. package/cjs/price-ticker/PriceTicker.js.map +1 -0
  245. package/cjs/split-button/SplitButton.css.js +6 -0
  246. package/cjs/split-button/SplitButton.css.js.map +1 -0
  247. package/cjs/split-button/SplitButton.js +81 -0
  248. package/cjs/split-button/SplitButton.js.map +1 -0
  249. package/cjs/split-button/SplitStateButton.css.js +6 -0
  250. package/cjs/split-button/SplitStateButton.css.js.map +1 -0
  251. package/cjs/split-button/SplitStateButton.js +31 -0
  252. package/cjs/split-button/SplitStateButton.js.map +1 -0
  253. package/cjs/split-button/useSplitButton.js +84 -0
  254. package/cjs/split-button/useSplitButton.js.map +1 -0
  255. package/cjs/tabstrip/Tab.css.js +6 -0
  256. package/cjs/tabstrip/Tab.css.js.map +1 -0
  257. package/cjs/tabstrip/Tab.js +151 -0
  258. package/cjs/tabstrip/Tab.js.map +1 -0
  259. package/cjs/tabstrip/TabMenu.css.js +6 -0
  260. package/cjs/tabstrip/TabMenu.css.js.map +1 -0
  261. package/cjs/tabstrip/TabMenu.js +72 -0
  262. package/cjs/tabstrip/TabMenu.js.map +1 -0
  263. package/cjs/tabstrip/TabMenuOptions.js +20 -0
  264. package/cjs/tabstrip/TabMenuOptions.js.map +1 -0
  265. package/cjs/tabstrip/Tabstrip.css.js +6 -0
  266. package/cjs/tabstrip/Tabstrip.css.js.map +1 -0
  267. package/cjs/tabstrip/Tabstrip.js +156 -0
  268. package/cjs/tabstrip/Tabstrip.js.map +1 -0
  269. package/cjs/tabstrip/tabstrip-dom-utils.js +19 -0
  270. package/cjs/tabstrip/tabstrip-dom-utils.js.map +1 -0
  271. package/cjs/tabstrip/useAnimatedSelectionThumb.js +85 -0
  272. package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
  273. package/cjs/tabstrip/useKeyboardNavigation.js +243 -0
  274. package/cjs/tabstrip/useKeyboardNavigation.js.map +1 -0
  275. package/cjs/tabstrip/useSelection.js +60 -0
  276. package/cjs/tabstrip/useSelection.js.map +1 -0
  277. package/cjs/tabstrip/useTabstrip.js +261 -0
  278. package/cjs/tabstrip/useTabstrip.js.map +1 -0
  279. package/cjs/toolbar/Toolbar.css.js +6 -0
  280. package/cjs/toolbar/Toolbar.css.js.map +1 -0
  281. package/cjs/toolbar/Toolbar.js +90 -0
  282. package/cjs/toolbar/Toolbar.js.map +1 -0
  283. package/cjs/toolbar/toolbar-dom-utils.js +18 -0
  284. package/cjs/toolbar/toolbar-dom-utils.js.map +1 -0
  285. package/cjs/toolbar/useKeyboardNavigation.js +305 -0
  286. package/cjs/toolbar/useKeyboardNavigation.js.map +1 -0
  287. package/cjs/toolbar/useSelection.js +94 -0
  288. package/cjs/toolbar/useSelection.js.map +1 -0
  289. package/cjs/toolbar/useToolbar.js +100 -0
  290. package/cjs/toolbar/useToolbar.js.map +1 -0
  291. package/cjs/tree/Tree.css.js +6 -0
  292. package/cjs/tree/Tree.css.js.map +1 -0
  293. package/cjs/tree/Tree.js +179 -0
  294. package/cjs/tree/Tree.js.map +1 -0
  295. package/cjs/tree/hierarchical-data-utils.js +72 -0
  296. package/cjs/tree/hierarchical-data-utils.js.map +1 -0
  297. package/cjs/tree/key-code.js +62 -0
  298. package/cjs/tree/key-code.js.map +1 -0
  299. package/cjs/tree/list-dom-utils.js +19 -0
  300. package/cjs/tree/list-dom-utils.js.map +1 -0
  301. package/cjs/tree/treeTypeUtils.js +6 -0
  302. package/cjs/tree/treeTypeUtils.js.map +1 -0
  303. package/cjs/tree/use-collapsible-groups.js +85 -0
  304. package/cjs/tree/use-collapsible-groups.js.map +1 -0
  305. package/cjs/tree/use-hierarchical-data.js +51 -0
  306. package/cjs/tree/use-hierarchical-data.js.map +1 -0
  307. package/cjs/tree/use-items-with-ids.js +100 -0
  308. package/cjs/tree/use-items-with-ids.js.map +1 -0
  309. package/cjs/tree/use-keyboard-navigation.js +144 -0
  310. package/cjs/tree/use-keyboard-navigation.js.map +1 -0
  311. package/cjs/tree/use-selection.js +154 -0
  312. package/cjs/tree/use-selection.js.map +1 -0
  313. package/cjs/tree/use-tree-keyboard-navigation.js +41 -0
  314. package/cjs/tree/use-tree-keyboard-navigation.js.map +1 -0
  315. package/cjs/tree/use-viewport-tracking.js +76 -0
  316. package/cjs/tree/use-viewport-tracking.js.map +1 -0
  317. package/cjs/tree/useTree.js +106 -0
  318. package/cjs/tree/useTree.js.map +1 -0
  319. package/cjs/utils/escapeRegExp.js +9 -0
  320. package/cjs/utils/escapeRegExp.js.map +1 -0
  321. package/cjs/utils/forwardCallbackProps.js +22 -0
  322. package/cjs/utils/forwardCallbackProps.js.map +1 -0
  323. package/cjs/utils/isOverflowElement.js +8 -0
  324. package/cjs/utils/isOverflowElement.js.map +1 -0
  325. package/cjs/vuu-input/VuuInput.css.js +6 -0
  326. package/cjs/vuu-input/VuuInput.css.js.map +1 -0
  327. package/cjs/vuu-input/VuuInput.js +105 -0
  328. package/cjs/vuu-input/VuuInput.js.map +1 -0
  329. package/esm/calendar/Calendar.css.js +4 -0
  330. package/esm/calendar/Calendar.css.js.map +1 -0
  331. package/esm/calendar/Calendar.js +72 -0
  332. package/esm/calendar/Calendar.js.map +1 -0
  333. package/esm/calendar/internal/CalendarCarousel.css.js +4 -0
  334. package/esm/calendar/internal/CalendarCarousel.css.js.map +1 -0
  335. package/esm/calendar/internal/CalendarCarousel.js +95 -0
  336. package/esm/calendar/internal/CalendarCarousel.js.map +1 -0
  337. package/esm/calendar/internal/CalendarContext.js +16 -0
  338. package/esm/calendar/internal/CalendarContext.js.map +1 -0
  339. package/esm/calendar/internal/CalendarDay.css.js +4 -0
  340. package/esm/calendar/internal/CalendarDay.css.js.map +1 -0
  341. package/esm/calendar/internal/CalendarDay.js +81 -0
  342. package/esm/calendar/internal/CalendarDay.js.map +1 -0
  343. package/esm/calendar/internal/CalendarMonth.css.js +4 -0
  344. package/esm/calendar/internal/CalendarMonth.css.js.map +1 -0
  345. package/esm/calendar/internal/CalendarMonth.js +71 -0
  346. package/esm/calendar/internal/CalendarMonth.js.map +1 -0
  347. package/esm/calendar/internal/CalendarNavigation.css.js +4 -0
  348. package/esm/calendar/internal/CalendarNavigation.css.js.map +1 -0
  349. package/esm/calendar/internal/CalendarNavigation.js +248 -0
  350. package/esm/calendar/internal/CalendarNavigation.js.map +1 -0
  351. package/esm/calendar/internal/CalendarWeekHeader.css.js +4 -0
  352. package/esm/calendar/internal/CalendarWeekHeader.css.js.map +1 -0
  353. package/esm/calendar/internal/CalendarWeekHeader.js +41 -0
  354. package/esm/calendar/internal/CalendarWeekHeader.js.map +1 -0
  355. package/esm/calendar/internal/useFocusManagement.js +61 -0
  356. package/esm/calendar/internal/useFocusManagement.js.map +1 -0
  357. package/esm/calendar/internal/utils.js +55 -0
  358. package/esm/calendar/internal/utils.js.map +1 -0
  359. package/esm/calendar/useCalendar.js +129 -0
  360. package/esm/calendar/useCalendar.js.map +1 -0
  361. package/esm/calendar/useCalendarDay.js +68 -0
  362. package/esm/calendar/useCalendarDay.js.map +1 -0
  363. package/esm/calendar/useSelection.js +239 -0
  364. package/esm/calendar/useSelection.js.map +1 -0
  365. package/esm/combo-box/ComboBox.js +189 -0
  366. package/esm/combo-box/ComboBox.js.map +1 -0
  367. package/esm/combo-box/useCombobox.js +356 -0
  368. package/esm/combo-box/useCombobox.js.map +1 -0
  369. package/esm/common-hooks/collectionProvider.js +20 -0
  370. package/esm/common-hooks/collectionProvider.js.map +1 -0
  371. package/esm/common-hooks/isPlainObject.js +4 -0
  372. package/esm/common-hooks/isPlainObject.js.map +1 -0
  373. package/esm/common-hooks/itemToString.js +22 -0
  374. package/esm/common-hooks/itemToString.js.map +1 -0
  375. package/esm/common-hooks/selectionTypes.js +10 -0
  376. package/esm/common-hooks/selectionTypes.js.map +1 -0
  377. package/esm/common-hooks/use-resize-observer.js +118 -0
  378. package/esm/common-hooks/use-resize-observer.js.map +1 -0
  379. package/esm/common-hooks/useCollectionItems.js +307 -0
  380. package/esm/common-hooks/useCollectionItems.js.map +1 -0
  381. package/esm/common-hooks/useControlled.js +56 -0
  382. package/esm/common-hooks/useControlled.js.map +1 -0
  383. package/esm/common-hooks/useSelection.js +205 -0
  384. package/esm/common-hooks/useSelection.js.map +1 -0
  385. package/esm/common-hooks/useStateRef.js +21 -0
  386. package/esm/common-hooks/useStateRef.js.map +1 -0
  387. package/esm/cycle-state-button/CycleStateButton.js +52 -0
  388. package/esm/cycle-state-button/CycleStateButton.js.map +1 -0
  389. package/esm/date-input/DateInput.css.js +4 -0
  390. package/esm/date-input/DateInput.css.js.map +1 -0
  391. package/esm/date-input/DateInput.js +88 -0
  392. package/esm/date-input/DateInput.js.map +1 -0
  393. package/esm/date-input/DateRangeInput.js +75 -0
  394. package/esm/date-input/DateRangeInput.js.map +1 -0
  395. package/esm/date-input/useDatePicker.js +18 -0
  396. package/esm/date-input/useDatePicker.js.map +1 -0
  397. package/esm/date-popup/DatePopup.js +88 -0
  398. package/esm/date-popup/DatePopup.js.map +1 -0
  399. package/esm/date-popup/useDatePopup.js +75 -0
  400. package/esm/date-popup/useDatePopup.js.map +1 -0
  401. package/esm/drag-drop/DragDropProvider.js +142 -0
  402. package/esm/drag-drop/DragDropProvider.js.map +1 -0
  403. package/esm/drag-drop/DragDropState.js +27 -0
  404. package/esm/drag-drop/DragDropState.js.map +1 -0
  405. package/esm/drag-drop/Draggable.css.js +4 -0
  406. package/esm/drag-drop/Draggable.css.js.map +1 -0
  407. package/esm/drag-drop/Draggable.js +90 -0
  408. package/esm/drag-drop/Draggable.js.map +1 -0
  409. package/esm/drag-drop/dragDropTypes.js +5 -0
  410. package/esm/drag-drop/dragDropTypes.js.map +1 -0
  411. package/esm/drag-drop/drop-target-utils.js +228 -0
  412. package/esm/drag-drop/drop-target-utils.js.map +1 -0
  413. package/esm/drag-drop/useAutoScroll.js +69 -0
  414. package/esm/drag-drop/useAutoScroll.js.map +1 -0
  415. package/esm/drag-drop/useDragDisplacers.js +158 -0
  416. package/esm/drag-drop/useDragDisplacers.js.map +1 -0
  417. package/esm/drag-drop/useDragDrop.js +497 -0
  418. package/esm/drag-drop/useDragDrop.js.map +1 -0
  419. package/esm/drag-drop/useDragDropCopy.js +31 -0
  420. package/esm/drag-drop/useDragDropCopy.js.map +1 -0
  421. package/esm/drag-drop/useDragDropIndicator.js +249 -0
  422. package/esm/drag-drop/useDragDropIndicator.js.map +1 -0
  423. package/esm/drag-drop/useDragDropNaturalMovement.js +262 -0
  424. package/esm/drag-drop/useDragDropNaturalMovement.js.map +1 -0
  425. package/esm/drag-drop/useDropIndicator.js +25 -0
  426. package/esm/drag-drop/useDropIndicator.js.map +1 -0
  427. package/esm/drag-drop/useGlobalDragDrop.js +87 -0
  428. package/esm/drag-drop/useGlobalDragDrop.js.map +1 -0
  429. package/esm/dropdown/Dropdown.css.js +4 -0
  430. package/esm/dropdown/Dropdown.css.js.map +1 -0
  431. package/esm/dropdown/Dropdown.js +148 -0
  432. package/esm/dropdown/Dropdown.js.map +1 -0
  433. package/esm/dropdown/DropdownBase.js +119 -0
  434. package/esm/dropdown/DropdownBase.js.map +1 -0
  435. package/esm/dropdown/DropdownButton.css.js +4 -0
  436. package/esm/dropdown/DropdownButton.css.js.map +1 -0
  437. package/esm/dropdown/DropdownButton.js +70 -0
  438. package/esm/dropdown/DropdownButton.js.map +1 -0
  439. package/esm/dropdown/useClickAway.js +64 -0
  440. package/esm/dropdown/useClickAway.js.map +1 -0
  441. package/esm/dropdown/useDropdown.js +113 -0
  442. package/esm/dropdown/useDropdown.js.map +1 -0
  443. package/esm/dropdown/useDropdownBase.js +167 -0
  444. package/esm/dropdown/useDropdownBase.js.map +1 -0
  445. package/esm/editable/editable-utils.js +35 -0
  446. package/esm/editable/editable-utils.js.map +1 -0
  447. package/esm/editable/useEditableText.js +103 -0
  448. package/esm/editable/useEditableText.js.map +1 -0
  449. package/esm/editable-label/EditableLabel.css.js +4 -0
  450. package/esm/editable-label/EditableLabel.css.js.map +1 -0
  451. package/esm/editable-label/EditableLabel.js +135 -0
  452. package/esm/editable-label/EditableLabel.js.map +1 -0
  453. package/esm/expando-input/ExpandoInput.css.js +4 -0
  454. package/esm/expando-input/ExpandoInput.css.js.map +1 -0
  455. package/esm/expando-input/ExpandoInput.js +51 -0
  456. package/esm/expando-input/ExpandoInput.js.map +1 -0
  457. package/esm/icon-button/Icon.css.js +4 -0
  458. package/esm/icon-button/Icon.css.js.map +1 -0
  459. package/esm/icon-button/Icon.js +35 -0
  460. package/esm/icon-button/Icon.js.map +1 -0
  461. package/esm/icon-button/IconButton.css.js +4 -0
  462. package/esm/icon-button/IconButton.css.js.map +1 -0
  463. package/esm/icon-button/IconButton.js +24 -0
  464. package/esm/icon-button/IconButton.js.map +1 -0
  465. package/esm/index.js +73 -0
  466. package/esm/index.js.map +1 -0
  467. package/esm/inputs/Checkbox.css.js +4 -0
  468. package/esm/inputs/Checkbox.css.js.map +1 -0
  469. package/esm/inputs/Checkbox.js +30 -0
  470. package/esm/inputs/Checkbox.js.map +1 -0
  471. package/esm/inputs/RadioButton.css.js +4 -0
  472. package/esm/inputs/RadioButton.css.js.map +1 -0
  473. package/esm/inputs/RadioButton.js +37 -0
  474. package/esm/inputs/RadioButton.js.map +1 -0
  475. package/esm/instrument-picker/InstrumentPicker.css.js +4 -0
  476. package/esm/instrument-picker/InstrumentPicker.css.js.map +1 -0
  477. package/esm/instrument-picker/InstrumentPicker.js +111 -0
  478. package/esm/instrument-picker/InstrumentPicker.js.map +1 -0
  479. package/esm/instrument-picker/SearchCell.css.js +4 -0
  480. package/esm/instrument-picker/SearchCell.css.js.map +1 -0
  481. package/esm/instrument-picker/SearchCell.js +31 -0
  482. package/esm/instrument-picker/SearchCell.js.map +1 -0
  483. package/esm/instrument-picker/useInstrumentPicker.js +85 -0
  484. package/esm/instrument-picker/useInstrumentPicker.js.map +1 -0
  485. package/esm/instrument-search/InstrumentSearch.css.js +4 -0
  486. package/esm/instrument-search/InstrumentSearch.css.js.map +1 -0
  487. package/esm/instrument-search/InstrumentSearch.js +94 -0
  488. package/esm/instrument-search/InstrumentSearch.js.map +1 -0
  489. package/esm/instrument-search/SearchCell.css.js +4 -0
  490. package/esm/instrument-search/SearchCell.css.js.map +1 -0
  491. package/esm/instrument-search/SearchCell.js +31 -0
  492. package/esm/instrument-search/SearchCell.js.map +1 -0
  493. package/esm/instrument-search/useInstrumentSearch.js +37 -0
  494. package/esm/instrument-search/useInstrumentSearch.js.map +1 -0
  495. package/esm/list/CheckboxIcon.css.js +4 -0
  496. package/esm/list/CheckboxIcon.css.js.map +1 -0
  497. package/esm/list/CheckboxIcon.js +31 -0
  498. package/esm/list/CheckboxIcon.js.map +1 -0
  499. package/esm/list/ChevronIcon.css.js +4 -0
  500. package/esm/list/ChevronIcon.css.js.map +1 -0
  501. package/esm/list/ChevronIcon.js +20 -0
  502. package/esm/list/ChevronIcon.js.map +1 -0
  503. package/esm/list/Highlighter.css.js +4 -0
  504. package/esm/list/Highlighter.css.js.map +1 -0
  505. package/esm/list/Highlighter.js +34 -0
  506. package/esm/list/Highlighter.js.map +1 -0
  507. package/esm/list/List.css.js +4 -0
  508. package/esm/list/List.css.js.map +1 -0
  509. package/esm/list/List.js +315 -0
  510. package/esm/list/List.js.map +1 -0
  511. package/esm/list/ListItem.css.js +4 -0
  512. package/esm/list/ListItem.css.js.map +1 -0
  513. package/esm/list/ListItem.js +81 -0
  514. package/esm/list/ListItem.js.map +1 -0
  515. package/esm/list/ListItemGroup.js +4 -0
  516. package/esm/list/ListItemGroup.js.map +1 -0
  517. package/esm/list/ListItemHeader.js +4 -0
  518. package/esm/list/ListItemHeader.js.map +1 -0
  519. package/esm/list/RadioIcon.css.js +4 -0
  520. package/esm/list/RadioIcon.css.js.map +1 -0
  521. package/esm/list/RadioIcon.js +25 -0
  522. package/esm/list/RadioIcon.js.map +1 -0
  523. package/esm/list/common-hooks/keyUtils.js +64 -0
  524. package/esm/list/common-hooks/keyUtils.js.map +1 -0
  525. package/esm/list/common-hooks/list-dom-utils.js +19 -0
  526. package/esm/list/common-hooks/list-dom-utils.js.map +1 -0
  527. package/esm/list/common-hooks/useCollapsibleGroups.js +80 -0
  528. package/esm/list/common-hooks/useCollapsibleGroups.js.map +1 -0
  529. package/esm/list/common-hooks/useImperativeScrollingAPI.js +50 -0
  530. package/esm/list/common-hooks/useImperativeScrollingAPI.js.map +1 -0
  531. package/esm/list/common-hooks/useKeyboardNavigation.js +286 -0
  532. package/esm/list/common-hooks/useKeyboardNavigation.js.map +1 -0
  533. package/esm/list/common-hooks/useTypeahead.js +72 -0
  534. package/esm/list/common-hooks/useTypeahead.js.map +1 -0
  535. package/esm/list/common-hooks/useViewportTracking.js +131 -0
  536. package/esm/list/common-hooks/useViewportTracking.js.map +1 -0
  537. package/esm/list/common-hooks/utils/collection-item-utils.js +167 -0
  538. package/esm/list/common-hooks/utils/collection-item-utils.js.map +1 -0
  539. package/esm/list/common-hooks/utils/filter-utils.js +8 -0
  540. package/esm/list/common-hooks/utils/filter-utils.js.map +1 -0
  541. package/esm/list/common-hooks/utils/isSelected.js +7 -0
  542. package/esm/list/common-hooks/utils/isSelected.js.map +1 -0
  543. package/esm/list/useList.js +276 -0
  544. package/esm/list/useList.js.map +1 -0
  545. package/esm/list/useListDrop.js +90 -0
  546. package/esm/list/useListDrop.js.map +1 -0
  547. package/esm/list/useListHeight.js +75 -0
  548. package/esm/list/useListHeight.js.map +1 -0
  549. package/esm/list/useScrollPosition.js +72 -0
  550. package/esm/list/useScrollPosition.js.map +1 -0
  551. package/esm/measured-container/MeasuredContainer.css.js +4 -0
  552. package/esm/measured-container/MeasuredContainer.css.js.map +1 -0
  553. package/esm/measured-container/MeasuredContainer.js +67 -0
  554. package/esm/measured-container/MeasuredContainer.js.map +1 -0
  555. package/esm/measured-container/useMeasuredContainer.js +125 -0
  556. package/esm/measured-container/useMeasuredContainer.js.map +1 -0
  557. package/esm/measured-container/useResizeObserver.js +128 -0
  558. package/esm/measured-container/useResizeObserver.js.map +1 -0
  559. package/esm/overflow-container/OverflowContainer.css.js +4 -0
  560. package/esm/overflow-container/OverflowContainer.css.js.map +1 -0
  561. package/esm/overflow-container/OverflowContainer.js +140 -0
  562. package/esm/overflow-container/OverflowContainer.js.map +1 -0
  563. package/esm/overflow-container/overflow-utils.js +272 -0
  564. package/esm/overflow-container/overflow-utils.js.map +1 -0
  565. package/esm/overflow-container/useOverflowContainer.js +141 -0
  566. package/esm/overflow-container/useOverflowContainer.js.map +1 -0
  567. package/esm/price-ticker/PriceTicker.css.js +4 -0
  568. package/esm/price-ticker/PriceTicker.css.js.map +1 -0
  569. package/esm/price-ticker/PriceTicker.js +48 -0
  570. package/esm/price-ticker/PriceTicker.js.map +1 -0
  571. package/esm/split-button/SplitButton.css.js +4 -0
  572. package/esm/split-button/SplitButton.css.js.map +1 -0
  573. package/esm/split-button/SplitButton.js +79 -0
  574. package/esm/split-button/SplitButton.js.map +1 -0
  575. package/esm/split-button/SplitStateButton.css.js +4 -0
  576. package/esm/split-button/SplitStateButton.css.js.map +1 -0
  577. package/esm/split-button/SplitStateButton.js +29 -0
  578. package/esm/split-button/SplitStateButton.js.map +1 -0
  579. package/esm/split-button/useSplitButton.js +82 -0
  580. package/esm/split-button/useSplitButton.js.map +1 -0
  581. package/esm/tabstrip/Tab.css.js +4 -0
  582. package/esm/tabstrip/Tab.css.js.map +1 -0
  583. package/esm/tabstrip/Tab.js +149 -0
  584. package/esm/tabstrip/Tab.js.map +1 -0
  585. package/esm/tabstrip/TabMenu.css.js +4 -0
  586. package/esm/tabstrip/TabMenu.css.js.map +1 -0
  587. package/esm/tabstrip/TabMenu.js +70 -0
  588. package/esm/tabstrip/TabMenu.js.map +1 -0
  589. package/esm/tabstrip/TabMenuOptions.js +16 -0
  590. package/esm/tabstrip/TabMenuOptions.js.map +1 -0
  591. package/esm/tabstrip/Tabstrip.css.js +4 -0
  592. package/esm/tabstrip/Tabstrip.css.js.map +1 -0
  593. package/esm/tabstrip/Tabstrip.js +154 -0
  594. package/esm/tabstrip/Tabstrip.js.map +1 -0
  595. package/esm/tabstrip/tabstrip-dom-utils.js +16 -0
  596. package/esm/tabstrip/tabstrip-dom-utils.js.map +1 -0
  597. package/esm/tabstrip/useAnimatedSelectionThumb.js +83 -0
  598. package/esm/tabstrip/useAnimatedSelectionThumb.js.map +1 -0
  599. package/esm/tabstrip/useKeyboardNavigation.js +241 -0
  600. package/esm/tabstrip/useKeyboardNavigation.js.map +1 -0
  601. package/esm/tabstrip/useSelection.js +58 -0
  602. package/esm/tabstrip/useSelection.js.map +1 -0
  603. package/esm/tabstrip/useTabstrip.js +259 -0
  604. package/esm/tabstrip/useTabstrip.js.map +1 -0
  605. package/esm/toolbar/Toolbar.css.js +4 -0
  606. package/esm/toolbar/Toolbar.css.js.map +1 -0
  607. package/esm/toolbar/Toolbar.js +88 -0
  608. package/esm/toolbar/Toolbar.js.map +1 -0
  609. package/esm/toolbar/toolbar-dom-utils.js +15 -0
  610. package/esm/toolbar/toolbar-dom-utils.js.map +1 -0
  611. package/esm/toolbar/useKeyboardNavigation.js +303 -0
  612. package/esm/toolbar/useKeyboardNavigation.js.map +1 -0
  613. package/esm/toolbar/useSelection.js +92 -0
  614. package/esm/toolbar/useSelection.js.map +1 -0
  615. package/esm/toolbar/useToolbar.js +98 -0
  616. package/esm/toolbar/useToolbar.js.map +1 -0
  617. package/esm/tree/Tree.css.js +4 -0
  618. package/esm/tree/Tree.css.js.map +1 -0
  619. package/esm/tree/Tree.js +176 -0
  620. package/esm/tree/Tree.js.map +1 -0
  621. package/esm/tree/hierarchical-data-utils.js +65 -0
  622. package/esm/tree/hierarchical-data-utils.js.map +1 -0
  623. package/esm/tree/key-code.js +54 -0
  624. package/esm/tree/key-code.js.map +1 -0
  625. package/esm/tree/list-dom-utils.js +15 -0
  626. package/esm/tree/list-dom-utils.js.map +1 -0
  627. package/esm/tree/treeTypeUtils.js +4 -0
  628. package/esm/tree/treeTypeUtils.js.map +1 -0
  629. package/esm/tree/use-collapsible-groups.js +83 -0
  630. package/esm/tree/use-collapsible-groups.js.map +1 -0
  631. package/esm/tree/use-hierarchical-data.js +49 -0
  632. package/esm/tree/use-hierarchical-data.js.map +1 -0
  633. package/esm/tree/use-items-with-ids.js +98 -0
  634. package/esm/tree/use-items-with-ids.js.map +1 -0
  635. package/esm/tree/use-keyboard-navigation.js +142 -0
  636. package/esm/tree/use-keyboard-navigation.js.map +1 -0
  637. package/esm/tree/use-selection.js +147 -0
  638. package/esm/tree/use-selection.js.map +1 -0
  639. package/esm/tree/use-tree-keyboard-navigation.js +39 -0
  640. package/esm/tree/use-tree-keyboard-navigation.js.map +1 -0
  641. package/esm/tree/use-viewport-tracking.js +74 -0
  642. package/esm/tree/use-viewport-tracking.js.map +1 -0
  643. package/esm/tree/useTree.js +104 -0
  644. package/esm/tree/useTree.js.map +1 -0
  645. package/esm/utils/escapeRegExp.js +7 -0
  646. package/esm/utils/escapeRegExp.js.map +1 -0
  647. package/esm/utils/forwardCallbackProps.js +20 -0
  648. package/esm/utils/forwardCallbackProps.js.map +1 -0
  649. package/esm/utils/isOverflowElement.js +6 -0
  650. package/esm/utils/isOverflowElement.js.map +1 -0
  651. package/esm/vuu-input/VuuInput.css.js +4 -0
  652. package/esm/vuu-input/VuuInput.css.js.map +1 -0
  653. package/esm/vuu-input/VuuInput.js +103 -0
  654. package/esm/vuu-input/VuuInput.js.map +1 -0
  655. package/package.json +45 -0
  656. package/types/calendar/Calendar.d.ts +12 -0
  657. package/types/calendar/index.d.ts +4 -0
  658. package/types/calendar/internal/CalendarCarousel.d.ts +4 -0
  659. package/types/calendar/internal/CalendarContext.d.ts +9 -0
  660. package/types/calendar/internal/CalendarDay.d.ts +14 -0
  661. package/types/calendar/internal/CalendarMonth.d.ts +11 -0
  662. package/types/calendar/internal/CalendarNavigation.d.ts +20 -0
  663. package/types/calendar/internal/CalendarWeekHeader.d.ts +5 -0
  664. package/types/calendar/internal/useFocusManagement.d.ts +9 -0
  665. package/types/calendar/internal/utils.d.ts +14 -0
  666. package/types/calendar/useCalendar.d.ts +57 -0
  667. package/types/calendar/useCalendarDay.d.ts +19 -0
  668. package/types/calendar/useSelection.d.ts +75 -0
  669. package/types/combo-box/ComboBox.d.ts +24 -0
  670. package/types/combo-box/index.d.ts +1 -0
  671. package/types/combo-box/useCombobox.d.ts +20 -0
  672. package/types/common-hooks/collectionProvider.d.ts +13 -0
  673. package/types/common-hooks/collectionTypes.d.ts +58 -0
  674. package/types/common-hooks/index.d.ts +9 -0
  675. package/types/common-hooks/isPlainObject.d.ts +1 -0
  676. package/types/common-hooks/itemToString.d.ts +2 -0
  677. package/types/common-hooks/navigationTypes.d.ts +36 -0
  678. package/types/common-hooks/selectionTypes.d.ts +70 -0
  679. package/types/common-hooks/use-resize-observer.d.ts +16 -0
  680. package/types/common-hooks/useCollectionItems.d.ts +2 -0
  681. package/types/common-hooks/useControlled.d.ts +24 -0
  682. package/types/common-hooks/useSelection.d.ts +8 -0
  683. package/types/common-hooks/useStateRef.d.ts +2 -0
  684. package/types/cycle-state-button/CycleStateButton.d.ts +12 -0
  685. package/types/cycle-state-button/index.d.ts +1 -0
  686. package/types/date-input/DateInput.d.ts +12 -0
  687. package/types/date-input/DateRangeInput.d.ts +11 -0
  688. package/types/date-input/index.d.ts +2 -0
  689. package/types/date-input/types.d.ts +16 -0
  690. package/types/date-input/useBaseDatePickerDropdown.d.ts +15 -0
  691. package/types/date-input/useDatePicker.d.ts +7 -0
  692. package/types/date-popup/DatePopup.d.ts +12 -0
  693. package/types/date-popup/index.d.ts +1 -0
  694. package/types/date-popup/useDatePopup.d.ts +20 -0
  695. package/types/drag-drop/DragDropProvider.d.ts +38 -0
  696. package/types/drag-drop/DragDropState.d.ts +15 -0
  697. package/types/drag-drop/Draggable.d.ts +13 -0
  698. package/types/drag-drop/DropIndicator.d.ts +6 -0
  699. package/types/drag-drop/dragDropTypes.d.ts +100 -0
  700. package/types/drag-drop/drop-target-utils.d.ts +78 -0
  701. package/types/drag-drop/index.d.ts +6 -0
  702. package/types/drag-drop/useAutoScroll.d.ts +11 -0
  703. package/types/drag-drop/useDragDisplacers.d.ts +17 -0
  704. package/types/drag-drop/useDragDrop.d.ts +2 -0
  705. package/types/drag-drop/useDragDropCopy.d.ts +6 -0
  706. package/types/drag-drop/useDragDropIndicator.d.ts +2 -0
  707. package/types/drag-drop/useDragDropNaturalMovement.d.ts +2 -0
  708. package/types/drag-drop/useDropIndicator.d.ts +8 -0
  709. package/types/drag-drop/useGlobalDragDrop.d.ts +12 -0
  710. package/types/drag-drop/useTransition.d.ts +3 -0
  711. package/types/dropdown/Dropdown.d.ts +10 -0
  712. package/types/dropdown/DropdownBase.d.ts +9 -0
  713. package/types/dropdown/DropdownButton.d.ts +41 -0
  714. package/types/dropdown/dropdownTypes.d.ts +51 -0
  715. package/types/dropdown/index.d.ts +5 -0
  716. package/types/dropdown/useClickAway.d.ts +10 -0
  717. package/types/dropdown/useDropdown.d.ts +13 -0
  718. package/types/dropdown/useDropdownBase.d.ts +2 -0
  719. package/types/editable/editable-utils.d.ts +2 -0
  720. package/types/editable/index.d.ts +2 -0
  721. package/types/editable/useEditableText.d.ts +19 -0
  722. package/types/editable-label/EditableLabel.d.ts +19 -0
  723. package/types/editable-label/index.d.ts +1 -0
  724. package/types/expando-input/ExpandoInput.d.ts +6 -0
  725. package/types/expando-input/index.d.ts +1 -0
  726. package/types/icon-button/Icon.d.ts +6 -0
  727. package/types/icon-button/IconButton.d.ts +7 -0
  728. package/types/icon-button/index.d.ts +2 -0
  729. package/types/index.d.ts +27 -0
  730. package/types/inputs/Checkbox.d.ts +9 -0
  731. package/types/inputs/RadioButton.d.ts +9 -0
  732. package/types/inputs/index.d.ts +2 -0
  733. package/types/instrument-picker/InstrumentPicker.d.ts +24 -0
  734. package/types/instrument-picker/SearchCell.d.ts +3 -0
  735. package/types/instrument-picker/index.d.ts +1 -0
  736. package/types/instrument-picker/moving-window.d.ts +14 -0
  737. package/types/instrument-picker/useDataSource.d.ts +6 -0
  738. package/types/instrument-picker/useInstrumentPicker.d.ts +28 -0
  739. package/types/instrument-search/InstrumentSearch.d.ts +11 -0
  740. package/types/instrument-search/SearchCell.d.ts +3 -0
  741. package/types/instrument-search/index.d.ts +1 -0
  742. package/types/instrument-search/moving-window.d.ts +14 -0
  743. package/types/instrument-search/useDataSource.d.ts +6 -0
  744. package/types/instrument-search/useInstrumentSearch.d.ts +13 -0
  745. package/types/list/CheckboxIcon.d.ts +6 -0
  746. package/types/list/ChevronIcon.d.ts +7 -0
  747. package/types/list/Highlighter.d.ts +6 -0
  748. package/types/list/List.d.ts +6 -0
  749. package/types/list/ListItem.d.ts +6 -0
  750. package/types/list/ListItemGroup.d.ts +6 -0
  751. package/types/list/ListItemHeader.d.ts +5 -0
  752. package/types/list/RadioIcon.d.ts +5 -0
  753. package/types/list/common-hooks/index.d.ts +10 -0
  754. package/types/list/common-hooks/keyUtils.d.ts +14 -0
  755. package/types/list/common-hooks/list-dom-utils.d.ts +5 -0
  756. package/types/list/common-hooks/useCollapsibleGroups.d.ts +14 -0
  757. package/types/list/common-hooks/useImperativeScrollingAPI.d.ts +14 -0
  758. package/types/list/common-hooks/useKeyboardNavigation.d.ts +3 -0
  759. package/types/list/common-hooks/useTypeahead.d.ts +15 -0
  760. package/types/list/common-hooks/useViewportTracking.d.ts +14 -0
  761. package/types/list/common-hooks/utils/collection-item-utils.d.ts +21 -0
  762. package/types/list/common-hooks/utils/filter-utils.d.ts +4 -0
  763. package/types/list/common-hooks/utils/index.d.ts +4 -0
  764. package/types/list/common-hooks/utils/isSelected.d.ts +2 -0
  765. package/types/list/index.d.ts +10 -0
  766. package/types/list/keyset.d.ts +9 -0
  767. package/types/list/listTypes.d.ts +200 -0
  768. package/types/list/useList.d.ts +3 -0
  769. package/types/list/useListDrop.d.ts +15 -0
  770. package/types/list/useListHeight.d.ts +19 -0
  771. package/types/list/useScrollPosition.d.ts +19 -0
  772. package/types/measured-container/MeasuredContainer.d.ts +14 -0
  773. package/types/measured-container/index.d.ts +2 -0
  774. package/types/measured-container/useMeasuredContainer.d.ts +22 -0
  775. package/types/measured-container/useResizeObserver.d.ts +15 -0
  776. package/types/overflow-container/OverflowContainer.d.ts +15 -0
  777. package/types/overflow-container/index.d.ts +2 -0
  778. package/types/overflow-container/overflow-utils.d.ts +48 -0
  779. package/types/overflow-container/useOverflowContainer.d.ts +20 -0
  780. package/types/price-ticker/PriceTicker.d.ts +7 -0
  781. package/types/price-ticker/index.d.ts +1 -0
  782. package/types/split-button/SplitButton.d.ts +11 -0
  783. package/types/split-button/SplitStateButton.d.ts +6 -0
  784. package/types/split-button/index.d.ts +2 -0
  785. package/types/split-button/useSplitButton.d.ts +288 -0
  786. package/types/tabstrip/Tab.d.ts +26 -0
  787. package/types/tabstrip/TabMenu.d.ts +19 -0
  788. package/types/tabstrip/TabMenuOptions.d.ts +10 -0
  789. package/types/tabstrip/TabsTypes.d.ts +127 -0
  790. package/types/tabstrip/Tabstrip.d.ts +3 -0
  791. package/types/tabstrip/index.d.ts +4 -0
  792. package/types/tabstrip/tabstrip-dom-utils.d.ts +2 -0
  793. package/types/tabstrip/useAnimatedSelectionThumb.d.ts +7 -0
  794. package/types/tabstrip/useKeyboardNavigation.d.ts +29 -0
  795. package/types/tabstrip/useSelection.d.ts +13 -0
  796. package/types/tabstrip/useTabstrip.d.ts +49 -0
  797. package/types/toolbar/Toolbar.d.ts +20 -0
  798. package/types/toolbar/index.d.ts +1 -0
  799. package/types/toolbar/toolbar-dom-utils.d.ts +3 -0
  800. package/types/toolbar/useKeyboardNavigation.d.ts +32 -0
  801. package/types/toolbar/useSelection.d.ts +22 -0
  802. package/types/toolbar/useToolbar.d.ts +28 -0
  803. package/types/tree/Tree.d.ts +19 -0
  804. package/types/tree/hierarchical-data-utils.d.ts +8 -0
  805. package/types/tree/index.d.ts +4 -0
  806. package/types/tree/key-code.d.ts +11 -0
  807. package/types/tree/list-dom-utils.d.ts +6 -0
  808. package/types/tree/treeTypeUtils.d.ts +2 -0
  809. package/types/tree/treeTypes.d.ts +17 -0
  810. package/types/tree/use-collapsible-groups.d.ts +18 -0
  811. package/types/tree/use-hierarchical-data.d.ts +6 -0
  812. package/types/tree/use-items-with-ids.d.ts +8 -0
  813. package/types/tree/use-keyboard-navigation.d.ts +26 -0
  814. package/types/tree/use-selection.d.ts +31 -0
  815. package/types/tree/use-tree-keyboard-navigation.d.ts +12 -0
  816. package/types/tree/use-viewport-tracking.d.ts +2 -0
  817. package/types/tree/useTree.d.ts +30 -0
  818. package/types/utils/escapeRegExp.d.ts +1 -0
  819. package/types/utils/forwardCallbackProps.d.ts +3 -0
  820. package/types/utils/index.d.ts +3 -0
  821. package/types/utils/isOverflowElement.d.ts +1 -0
  822. package/types/vuu-input/VuuInput.d.ts +16 -0
  823. package/types/vuu-input/index.d.ts +1 -0
@@ -0,0 +1,81 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { makePrefixer, useForkRef, Tooltip } from '@salt-ds/core';
3
+ import { CloseIcon } from '@salt-ds/icons';
4
+ import { clsx } from 'clsx';
5
+ import { forwardRef, useRef } from 'react';
6
+ import { useWindow } from '@salt-ds/window';
7
+ import { useComponentCssInjection } from '@salt-ds/styles';
8
+ import { useCalendarDay } from '../useCalendarDay.js';
9
+ import { formatDate } from './utils.js';
10
+ import calendarDayCss from './CalendarDay.css.js';
11
+
12
+ const withBaseName = makePrefixer("saltCalendarDay");
13
+ const CalendarDay = forwardRef(
14
+ function CalendarDay2(props, ref) {
15
+ const { className, day, renderDayContents, month, TooltipProps: TooltipProps2, ...rest } = props;
16
+ const targetWindow = useWindow();
17
+ useComponentCssInjection({
18
+ testId: "salt-calendar-day",
19
+ css: calendarDayCss,
20
+ window: targetWindow
21
+ });
22
+ const dayRef = useRef(null);
23
+ const forkedRef = useForkRef(ref, dayRef);
24
+ const { status, dayProps, unselectableReason } = useCalendarDay(
25
+ {
26
+ date: day,
27
+ month
28
+ },
29
+ dayRef
30
+ );
31
+ const { outOfRange, today, unselectable, hidden } = status;
32
+ return /* @__PURE__ */ jsx(
33
+ Tooltip,
34
+ {
35
+ hideIcon: true,
36
+ status: "error",
37
+ content: unselectableReason,
38
+ disabled: !unselectableReason,
39
+ placement: "top",
40
+ enterDelay: 300,
41
+ ...TooltipProps2,
42
+ children: /* @__PURE__ */ jsxs(
43
+ "button",
44
+ {
45
+ "aria-label": formatDate(day),
46
+ ...dayProps,
47
+ ref: forkedRef,
48
+ ...rest,
49
+ className: clsx(
50
+ withBaseName(),
51
+ {
52
+ [withBaseName("hidden")]: hidden,
53
+ [withBaseName("outOfRange")]: outOfRange,
54
+ [withBaseName("today")]: today,
55
+ [withBaseName("unselectable")]: !!unselectable,
56
+ [withBaseName("unselectableLow")]: unselectable === "low",
57
+ [withBaseName("unselectableMedium")]: unselectable === "medium"
58
+ },
59
+ dayProps.className,
60
+ className
61
+ ),
62
+ children: [
63
+ unselectable === "medium" && /* @__PURE__ */ jsx(
64
+ CloseIcon,
65
+ {
66
+ "aria-hidden": true,
67
+ "aria-label": void 0,
68
+ className: withBaseName("blockedIcon")
69
+ }
70
+ ),
71
+ renderDayContents ? renderDayContents(day, status) : formatDate(day, { day: "numeric" })
72
+ ]
73
+ }
74
+ )
75
+ }
76
+ );
77
+ }
78
+ );
79
+
80
+ export { CalendarDay };
81
+ //# sourceMappingURL=CalendarDay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarDay.js","sources":["../../../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import { makePrefixer, Tooltip, TooltipProps, useForkRef } from \"@salt-ds/core\";\nimport { CloseIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ComponentPropsWithRef, forwardRef, ReactElement, useRef } from \"react\";\nimport { DateValue } from \"@internationalized/date\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport { formatDate } from \"./utils\";\n\nimport calendarDayCss from \"./CalendarDay.css\";\n\nexport type DateFormatter = (day: Date) => string | undefined;\n\nexport interface CalendarDayProps\n extends Omit<ComponentPropsWithRef<\"button\">, \"children\"> {\n day: DateValue;\n formatDate?: DateFormatter;\n renderDayContents?: (date: DateValue, status: DayStatus) => ReactElement;\n status?: DayStatus;\n month: DateValue;\n TooltipProps?: Partial<TooltipProps>;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport const CalendarDay = forwardRef<HTMLButtonElement, CalendarDayProps>(\n function CalendarDay(props, ref) {\n const { className, day, renderDayContents, month, TooltipProps, ...rest } =\n props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-day\",\n css: calendarDayCss,\n window: targetWindow,\n });\n\n const dayRef = useRef<HTMLButtonElement>(null);\n const forkedRef = useForkRef(ref, dayRef);\n\n const { status, dayProps, unselectableReason } = useCalendarDay(\n {\n date: day,\n month,\n },\n dayRef\n );\n const { outOfRange, today, unselectable, hidden } = status;\n\n return (\n <Tooltip\n hideIcon\n status=\"error\"\n content={unselectableReason}\n disabled={!unselectableReason}\n placement=\"top\"\n enterDelay={300}\n {...TooltipProps}\n >\n <button\n aria-label={formatDate(day)}\n {...dayProps}\n ref={forkedRef}\n {...rest}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"hidden\")]: hidden,\n [withBaseName(\"outOfRange\")]: outOfRange,\n [withBaseName(\"today\")]: today,\n [withBaseName(\"unselectable\")]: !!unselectable,\n [withBaseName(\"unselectableLow\")]: unselectable === \"low\",\n [withBaseName(\"unselectableMedium\")]: unselectable === \"medium\",\n },\n dayProps.className,\n className\n )}\n >\n {unselectable === \"medium\" && (\n <CloseIcon\n aria-hidden\n aria-label={undefined}\n className={withBaseName(\"blockedIcon\")}\n />\n )}\n\n {renderDayContents\n ? renderDayContents(day, status)\n : formatDate(day, { day: \"numeric\" })}\n </button>\n </Tooltip>\n );\n }\n);\n"],"names":["CalendarDay","TooltipProps"],"mappings":";;;;;;;;;;;AAwBA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA,CAAA;AAE5C,MAAM,WAAc,GAAA,UAAA;AAAA,EACzB,SAASA,YAAY,CAAA,KAAA,EAAO,GAAK,EAAA;AAC/B,IAAM,MAAA,EAAE,WAAW,GAAK,EAAA,iBAAA,EAAmB,OAAO,YAAAC,EAAAA,aAAAA,EAAc,GAAG,IAAA,EACjE,GAAA,KAAA,CAAA;AAEF,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,mBAAA;AAAA,MACR,GAAK,EAAA,cAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,MAAA,GAAS,OAA0B,IAAI,CAAA,CAAA;AAC7C,IAAM,MAAA,SAAA,GAAY,UAAW,CAAA,GAAA,EAAK,MAAM,CAAA,CAAA;AAExC,IAAA,MAAM,EAAE,MAAA,EAAQ,QAAU,EAAA,kBAAA,EAAuB,GAAA,cAAA;AAAA,MAC/C;AAAA,QACE,IAAM,EAAA,GAAA;AAAA,QACN,KAAA;AAAA,OACF;AAAA,MACA,MAAA;AAAA,KACF,CAAA;AACA,IAAA,MAAM,EAAE,UAAA,EAAY,KAAO,EAAA,YAAA,EAAc,QAAW,GAAA,MAAA,CAAA;AAEpD,IACE,uBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,QAAQ,EAAA,IAAA;AAAA,QACR,MAAO,EAAA,OAAA;AAAA,QACP,OAAS,EAAA,kBAAA;AAAA,QACT,UAAU,CAAC,kBAAA;AAAA,QACX,SAAU,EAAA,KAAA;AAAA,QACV,UAAY,EAAA,GAAA;AAAA,QACX,GAAGA,aAAAA;AAAA,QAEJ,QAAA,kBAAA,IAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAY,WAAW,GAAG,CAAA;AAAA,YACzB,GAAG,QAAA;AAAA,YACJ,GAAK,EAAA,SAAA;AAAA,YACJ,GAAG,IAAA;AAAA,YACJ,SAAW,EAAA,IAAA;AAAA,cACT,YAAa,EAAA;AAAA,cACb;AAAA,gBACE,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG,MAAA;AAAA,gBAC1B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,UAAA;AAAA,gBAC9B,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG,KAAA;AAAA,gBACzB,CAAC,YAAa,CAAA,cAAc,CAAC,GAAG,CAAC,CAAC,YAAA;AAAA,gBAClC,CAAC,YAAA,CAAa,iBAAiB,CAAC,GAAG,YAAiB,KAAA,KAAA;AAAA,gBACpD,CAAC,YAAA,CAAa,oBAAoB,CAAC,GAAG,YAAiB,KAAA,QAAA;AAAA,eACzD;AAAA,cACA,QAAS,CAAA,SAAA;AAAA,cACT,SAAA;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,YAAA,KAAiB,QAChB,oBAAA,GAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBACC,aAAW,EAAA,IAAA;AAAA,kBACX,YAAY,EAAA,KAAA,CAAA;AAAA,kBACZ,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,iBAAA;AAAA,eACvC;AAAA,cAGD,iBAAA,GACG,iBAAkB,CAAA,GAAA,EAAK,MAAM,CAAA,GAC7B,WAAW,GAAK,EAAA,EAAE,GAAK,EAAA,SAAA,EAAW,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SACxC;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ var calendarMonthCss = ".saltCalendarMonth-dateGrid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n text-align: center;\n}\n";
2
+
3
+ export { calendarMonthCss as default };
4
+ //# sourceMappingURL=CalendarMonth.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarMonth.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,71 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { makePrefixer } from '@salt-ds/core';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef } from 'react';
7
+ import { useCalendarContext } from './CalendarContext.js';
8
+ import { CalendarDay } from './CalendarDay.js';
9
+ import { generateVisibleDays, formatDate } from './utils.js';
10
+ import calendarMonthCss from './CalendarMonth.css.js';
11
+
12
+ const withBaseName = makePrefixer("saltCalendarMonth");
13
+ const CalendarMonth = forwardRef(
14
+ function CalendarMonth2(props, ref) {
15
+ const {
16
+ className,
17
+ date,
18
+ hideOutOfRangeDates,
19
+ isVisible,
20
+ renderDayContents,
21
+ onMouseLeave,
22
+ TooltipProps,
23
+ ...rest
24
+ } = props;
25
+ const targetWindow = useWindow();
26
+ useComponentCssInjection({
27
+ testId: "salt-calendar-month",
28
+ css: calendarMonthCss,
29
+ window: targetWindow
30
+ });
31
+ const days = generateVisibleDays(date);
32
+ const {
33
+ helpers: { setHoveredDate }
34
+ } = useCalendarContext();
35
+ const handleMouseLeave = (event) => {
36
+ setHoveredDate(event, null);
37
+ onMouseLeave?.(event);
38
+ };
39
+ return /* @__PURE__ */ jsx(
40
+ "div",
41
+ {
42
+ className: clsx(withBaseName(), className),
43
+ ref,
44
+ onMouseLeave: handleMouseLeave,
45
+ ...rest,
46
+ children: /* @__PURE__ */ jsx(
47
+ "div",
48
+ {
49
+ "data-testid": "CalendarDateGrid",
50
+ className: withBaseName("dateGrid"),
51
+ children: days.map((day) => {
52
+ return /* @__PURE__ */ jsx(
53
+ CalendarDay,
54
+ {
55
+ day: day.date,
56
+ renderDayContents,
57
+ month: date,
58
+ TooltipProps
59
+ },
60
+ formatDate(day.date)
61
+ );
62
+ })
63
+ }
64
+ )
65
+ }
66
+ );
67
+ }
68
+ );
69
+
70
+ export { CalendarMonth };
71
+ //# sourceMappingURL=CalendarMonth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarMonth.js","sources":["../../../src/calendar/internal/CalendarMonth.tsx"],"sourcesContent":["import { DateValue } from \"@internationalized/date\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n ComponentPropsWithRef,\n forwardRef,\n MouseEvent,\n SyntheticEvent,\n} from \"react\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { CalendarDay, CalendarDayProps } from \"./CalendarDay\";\nimport { formatDate, generateVisibleDays } from \"./utils\";\n\nimport calendarMonthCss from \"./CalendarMonth.css\";\n\nexport interface CalendarMonthProps extends ComponentPropsWithRef<\"div\"> {\n date: DateValue;\n hideOutOfRangeDates?: boolean;\n renderDayContents?: CalendarDayProps[\"renderDayContents\"];\n isVisible?: boolean;\n TooltipProps?: CalendarDayProps[\"TooltipProps\"];\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarMonth\");\n\nexport const CalendarMonth = forwardRef<HTMLDivElement, CalendarMonthProps>(\n function CalendarMonth(props, ref) {\n const {\n className,\n date,\n hideOutOfRangeDates,\n isVisible,\n renderDayContents,\n onMouseLeave,\n TooltipProps,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarMonthCss,\n window: targetWindow,\n });\n\n const days = generateVisibleDays(date);\n const {\n helpers: { setHoveredDate },\n } = useCalendarContext();\n\n const handleMouseLeave = (event: SyntheticEvent) => {\n setHoveredDate(event, null);\n onMouseLeave?.(event as MouseEvent<HTMLDivElement>);\n };\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n onMouseLeave={handleMouseLeave}\n {...rest}\n >\n <div\n data-testid=\"CalendarDateGrid\"\n className={withBaseName(\"dateGrid\")}\n >\n {days.map((day) => {\n return (\n <CalendarDay\n key={formatDate(day.date)}\n day={day.date}\n renderDayContents={renderDayContents}\n month={date}\n TooltipProps={TooltipProps}\n />\n );\n })}\n </div>\n </div>\n );\n }\n);\n"],"names":["CalendarMonth"],"mappings":";;;;;;;;;;;AAyBA,MAAM,YAAA,GAAe,aAAa,mBAAmB,CAAA,CAAA;AAE9C,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,SAASA,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,IAAA;AAAA,MACA,mBAAA;AAAA,MACA,SAAA;AAAA,MACA,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAA,gBAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAO,oBAAoB,IAAI,CAAA,CAAA;AACrC,IAAM,MAAA;AAAA,MACJ,OAAA,EAAS,EAAE,cAAe,EAAA;AAAA,QACxB,kBAAmB,EAAA,CAAA;AAEvB,IAAM,MAAA,gBAAA,GAAmB,CAAC,KAA0B,KAAA;AAClD,MAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAC1B,MAAA,YAAA,GAAe,KAAmC,CAAA,CAAA;AAAA,KACpD,CAAA;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,YAAc,EAAA,gBAAA;AAAA,QACb,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAY,EAAA,kBAAA;AAAA,YACZ,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,YAEjC,QAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GAAQ,KAAA;AACjB,cACE,uBAAA,GAAA;AAAA,gBAAC,WAAA;AAAA,gBAAA;AAAA,kBAEC,KAAK,GAAI,CAAA,IAAA;AAAA,kBACT,iBAAA;AAAA,kBACA,KAAO,EAAA,IAAA;AAAA,kBACP,YAAA;AAAA,iBAAA;AAAA,gBAJK,UAAA,CAAW,IAAI,IAAI,CAAA;AAAA,eAK1B,CAAA;AAAA,aAEH,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ var calendarNavigationCss = ".salt-density-medium,\n.salt-density-touch,\n.salt-density-low {\n --calendar-navigation-gap: calc(var(--salt-size-unit) * 0.5);\n}\n\n.salt-density-high {\n --calendar-navigation-gap: 0px;\n}\n\n.saltCalendarNavigation-hideYearDropdown {\n --calendar-navigation-gap: calc(var(--salt-size-unit) * 2);\n}\n\n.saltCalendarNavigation {\n display: grid;\n grid-template-columns: min-content auto auto min-content;\n grid-gap: var(--calendar-navigation-gap);\n align-items: center;\n}\n\n.saltCalendarNavigation-hideYearDropdown {\n grid-template-columns: min-content auto min-content;\n}\n";
2
+
3
+ export { calendarNavigationCss as default };
4
+ //# sourceMappingURL=CalendarNavigation.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarNavigation.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,248 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { makePrefixer, useId, Tooltip } from '@salt-ds/core';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef } from 'react';
7
+ import '../../dropdown/DropdownBase.js';
8
+ import '../../dropdown/DropdownButton.js';
9
+ import { Dropdown } from '../../dropdown/Dropdown.js';
10
+ import '../../common-hooks/collectionProvider.js';
11
+ import '../../common-hooks/use-resize-observer.js';
12
+ import '@vuu-ui/vuu-utils';
13
+ import '../../list/common-hooks/keyUtils.js';
14
+ import '../../list/Highlighter.js';
15
+ import { ListItem } from '../../list/ListItem.js';
16
+ import '../../list/List.js';
17
+ import '../../drag-drop/DragDropProvider.js';
18
+ import '../../drag-drop/Draggable.js';
19
+ import { useCalendarContext } from './CalendarContext.js';
20
+ import calendarNavigationCss from './CalendarNavigation.css.js';
21
+ import { isSameMonth, isSameYear } from '@internationalized/date';
22
+ import { IconButton } from '../../icon-button/IconButton.js';
23
+ import { formatDate, monthsForLocale, monthDiff } from './utils.js';
24
+
25
+ const withBaseName = makePrefixer("saltCalendarNavigation");
26
+ function useCalendarNavigation() {
27
+ const {
28
+ state: { visibleMonth, minDate, maxDate },
29
+ helpers: {
30
+ setVisibleMonth,
31
+ isDayVisible,
32
+ isOutsideAllowedYears,
33
+ isOutsideAllowedMonths
34
+ }
35
+ } = useCalendarContext();
36
+ const moveToNextMonth = (event) => {
37
+ setVisibleMonth(event, visibleMonth.add({ months: 1 }));
38
+ };
39
+ const moveToPreviousMonth = (event) => {
40
+ setVisibleMonth(event, visibleMonth.subtract({ months: 1 }));
41
+ };
42
+ const moveToMonth = (event, month) => {
43
+ let newMonth = month;
44
+ if (!isOutsideAllowedYears(newMonth)) {
45
+ if (isOutsideAllowedMonths(newMonth)) {
46
+ const navigableMonths = monthsForLocale(visibleMonth).filter(
47
+ (n) => !isOutsideAllowedMonths(n)
48
+ );
49
+ newMonth = navigableMonths.reduce(
50
+ (closestMonth, currentMonth) => Math.abs(monthDiff(currentMonth, newMonth)) < Math.abs(monthDiff(closestMonth, newMonth)) ? currentMonth : closestMonth
51
+ );
52
+ }
53
+ setVisibleMonth(event, newMonth);
54
+ }
55
+ };
56
+ const months = monthsForLocale(visibleMonth).map((month) => {
57
+ return { value: month, disabled: isOutsideAllowedMonths(month) };
58
+ });
59
+ const years = [-2, -1, 0, 1, 2].map((delta) => ({ value: visibleMonth.add({ years: delta }) })).filter(({ value }) => !isOutsideAllowedYears(value));
60
+ const selectedMonth = months.find(
61
+ (item) => isSameMonth(item.value, visibleMonth)
62
+ );
63
+ const selectedYear = years.find(
64
+ (item) => isSameYear(item.value, visibleMonth)
65
+ );
66
+ const canNavigatePrevious = !(minDate && isDayVisible(minDate));
67
+ const canNavigateNext = !(maxDate && isDayVisible(maxDate));
68
+ return {
69
+ moveToNextMonth,
70
+ moveToPreviousMonth,
71
+ moveToMonth,
72
+ visibleMonth,
73
+ months,
74
+ years,
75
+ canNavigateNext,
76
+ canNavigatePrevious,
77
+ selectedMonth,
78
+ selectedYear
79
+ };
80
+ }
81
+ const ListItemWithTooltip = ({
82
+ item,
83
+ label,
84
+ ...props
85
+ }) => /* @__PURE__ */ jsx(
86
+ Tooltip,
87
+ {
88
+ placement: "right",
89
+ disabled: !item?.disabled,
90
+ content: "This month is out of range",
91
+ children: /* @__PURE__ */ jsx(ListItem, { ...props, children: label })
92
+ }
93
+ );
94
+ const CalendarNavigation = forwardRef(function CalendarNavigation2(props, ref) {
95
+ const {
96
+ className,
97
+ MonthDropdownProps,
98
+ YearDropdownProps,
99
+ hideYearDropdown,
100
+ ...rest
101
+ } = props;
102
+ const targetWindow = useWindow();
103
+ useComponentCssInjection({
104
+ testId: "salt-calendar-month",
105
+ css: calendarNavigationCss,
106
+ window: targetWindow
107
+ });
108
+ const {
109
+ moveToPreviousMonth,
110
+ moveToNextMonth,
111
+ moveToMonth,
112
+ months,
113
+ years,
114
+ canNavigateNext,
115
+ canNavigatePrevious,
116
+ visibleMonth,
117
+ selectedMonth,
118
+ selectedYear
119
+ } = useCalendarNavigation();
120
+ const handleNavigatePrevious = (event) => {
121
+ moveToPreviousMonth(event);
122
+ };
123
+ const handleNavigateNext = (event) => {
124
+ moveToNextMonth(event);
125
+ };
126
+ const handleMonthSelect = (event, month) => {
127
+ if (month && event) {
128
+ moveToMonth(event, month.value);
129
+ }
130
+ };
131
+ const handleYearSelect = (event, year) => {
132
+ if (year && event) {
133
+ moveToMonth(event, year.value);
134
+ }
135
+ };
136
+ const monthDropdownId = useId(MonthDropdownProps?.id) || "";
137
+ const monthDropdownLabelledBy = clsx(
138
+ MonthDropdownProps?.["aria-labelledby"],
139
+ // TODO need a prop on Dropdown to allow buttonId to be passed, should not make assumptions about internal
140
+ // id assignment like this
141
+ `${monthDropdownId}-control`
142
+ );
143
+ const yearDropdownId = useId(YearDropdownProps?.id) || "";
144
+ const yearDropdownLabelledBy = clsx(
145
+ YearDropdownProps?.["aria-labelledby"],
146
+ `${yearDropdownId}-control`
147
+ );
148
+ const defaultItemToMonth = (date) => {
149
+ if (hideYearDropdown) {
150
+ return formatDate(date.value, { month: "long" });
151
+ }
152
+ return formatDate(date.value, { month: "short" });
153
+ };
154
+ const defaultItemToYear = (date) => {
155
+ return formatDate(date.value, { year: "numeric" });
156
+ };
157
+ return /* @__PURE__ */ jsxs(
158
+ "div",
159
+ {
160
+ className: clsx(
161
+ withBaseName(),
162
+ { [withBaseName("hideYearDropdown")]: hideYearDropdown },
163
+ className
164
+ ),
165
+ ref,
166
+ ...rest,
167
+ children: [
168
+ /* @__PURE__ */ jsx(
169
+ Tooltip,
170
+ {
171
+ placement: "top",
172
+ disabled: canNavigatePrevious,
173
+ content: "Past dates are out of range",
174
+ children: /* @__PURE__ */ jsx(
175
+ IconButton,
176
+ {
177
+ "aria-label": `Previous Month, ${formatDate(
178
+ visibleMonth.subtract({ months: 1 })
179
+ )}`,
180
+ disabled: !canNavigatePrevious,
181
+ icon: "chevron-left",
182
+ variant: "secondary",
183
+ onClick: handleNavigatePrevious,
184
+ className: withBaseName("previousButton"),
185
+ focusableWhenDisabled: true
186
+ }
187
+ )
188
+ }
189
+ ),
190
+ /* @__PURE__ */ jsx(
191
+ Dropdown,
192
+ {
193
+ source: months,
194
+ id: monthDropdownId,
195
+ "aria-labelledby": monthDropdownLabelledBy,
196
+ "aria-label": "Month Dropdown",
197
+ ...MonthDropdownProps,
198
+ ListItem: ListItemWithTooltip,
199
+ selected: selectedMonth,
200
+ itemToString: defaultItemToMonth,
201
+ onSelectionChange: handleMonthSelect,
202
+ fullWidth: true
203
+ }
204
+ ),
205
+ !hideYearDropdown && /* @__PURE__ */ jsx(
206
+ Dropdown,
207
+ {
208
+ source: years,
209
+ id: yearDropdownId,
210
+ "aria-labelledby": yearDropdownLabelledBy,
211
+ "aria-label": "Year Dropdown",
212
+ ...YearDropdownProps,
213
+ ListItem: ListItemWithTooltip,
214
+ selected: selectedYear,
215
+ onSelectionChange: handleYearSelect,
216
+ itemToString: defaultItemToYear,
217
+ fullWidth: true
218
+ }
219
+ ),
220
+ /* @__PURE__ */ jsx(
221
+ Tooltip,
222
+ {
223
+ placement: "top",
224
+ disabled: canNavigateNext,
225
+ content: "Future dates are out of range",
226
+ children: /* @__PURE__ */ jsx(
227
+ IconButton,
228
+ {
229
+ "aria-label": `Next Month, ${formatDate(
230
+ visibleMonth.add({ months: 1 })
231
+ )}`,
232
+ disabled: !canNavigateNext,
233
+ icon: "chevron-right",
234
+ variant: "secondary",
235
+ onClick: handleNavigateNext,
236
+ className: withBaseName("nextButton"),
237
+ focusableWhenDisabled: true
238
+ }
239
+ )
240
+ }
241
+ )
242
+ ]
243
+ }
244
+ );
245
+ });
246
+
247
+ export { CalendarNavigation };
248
+ //# sourceMappingURL=CalendarNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarNavigation.js","sources":["../../../src/calendar/internal/CalendarNavigation.tsx"],"sourcesContent":["import { ButtonProps, makePrefixer, Tooltip, useId } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n ComponentPropsWithRef,\n forwardRef,\n MouseEventHandler,\n SyntheticEvent,\n} from \"react\";\nimport { Dropdown, DropdownProps } from \"../../dropdown\";\nimport { ListItem, ListItemType } from \"../../list\";\nimport { useCalendarContext } from \"./CalendarContext\";\n\nimport calendarNavigationCss from \"./CalendarNavigation.css\";\n\nimport { DateValue, isSameMonth, isSameYear } from \"@internationalized/date\";\nimport { SingleSelectionHandler } from \"../../common-hooks\";\nimport { IconButton } from \"../../icon-button\";\nimport { formatDate, monthDiff, monthsForLocale } from \"./utils\";\n\ntype DropdownItem = {\n value: DateValue;\n disabled?: boolean;\n};\n\ntype dateDropdownProps = DropdownProps<DropdownItem>;\n\nexport interface CalendarNavigationProps extends ComponentPropsWithRef<\"div\"> {\n MonthDropdownProps?: dateDropdownProps;\n YearDropdownProps?: dateDropdownProps;\n onMonthSelect?: dateDropdownProps[\"onChange\"];\n onYearSelect?: dateDropdownProps[\"onChange\"];\n onNavigateNext?: ButtonProps[\"onClick\"];\n onNavigatePrevious?: ButtonProps[\"onClick\"];\n hideYearDropdown?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarNavigation\");\n\nfunction useCalendarNavigation() {\n const {\n state: { visibleMonth, minDate, maxDate },\n helpers: {\n setVisibleMonth,\n isDayVisible,\n isOutsideAllowedYears,\n isOutsideAllowedMonths,\n },\n } = useCalendarContext();\n\n const moveToNextMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.add({ months: 1 }));\n };\n\n const moveToPreviousMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.subtract({ months: 1 }));\n };\n\n const moveToMonth = (event: SyntheticEvent, month: DateValue) => {\n let newMonth = month;\n\n if (!isOutsideAllowedYears(newMonth)) {\n if (isOutsideAllowedMonths(newMonth)) {\n // If month is navigable we should move to the closest navigable month\n const navigableMonths = monthsForLocale(visibleMonth).filter(\n (n) => !isOutsideAllowedMonths(n)\n );\n newMonth = navigableMonths.reduce((closestMonth, currentMonth) =>\n Math.abs(monthDiff(currentMonth, newMonth)) <\n Math.abs(monthDiff(closestMonth, newMonth))\n ? currentMonth\n : closestMonth\n );\n }\n setVisibleMonth(event, newMonth);\n }\n };\n\n const months = monthsForLocale(visibleMonth).map((month) => {\n return { value: month, disabled: isOutsideAllowedMonths(month) };\n });\n\n const years = [-2, -1, 0, 1, 2]\n .map((delta) => ({ value: visibleMonth.add({ years: delta }) }))\n .filter(({ value }) => !isOutsideAllowedYears(value));\n\n const selectedMonth = months.find((item: DropdownItem) =>\n isSameMonth(item.value, visibleMonth)\n );\n const selectedYear = years.find((item: DropdownItem) =>\n isSameYear(item.value, visibleMonth)\n );\n\n const canNavigatePrevious = !(minDate && isDayVisible(minDate));\n const canNavigateNext = !(maxDate && isDayVisible(maxDate));\n\n return {\n moveToNextMonth,\n moveToPreviousMonth,\n moveToMonth,\n visibleMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n selectedMonth,\n selectedYear,\n };\n}\n\nconst ListItemWithTooltip: ListItemType<DropdownItem> = ({\n item,\n label,\n ...props\n}) => (\n <Tooltip\n placement=\"right\"\n disabled={!item?.disabled}\n content=\"This month is out of range\"\n >\n <ListItem {...props}>{label}</ListItem>\n </Tooltip>\n);\n\nexport const CalendarNavigation = forwardRef<\n HTMLDivElement,\n CalendarNavigationProps\n>(function CalendarNavigation(props, ref) {\n const {\n className,\n MonthDropdownProps,\n YearDropdownProps,\n hideYearDropdown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarNavigationCss,\n window: targetWindow,\n });\n\n const {\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n visibleMonth,\n selectedMonth,\n selectedYear,\n } = useCalendarNavigation();\n\n const handleNavigatePrevious: MouseEventHandler<HTMLButtonElement> = (\n event\n ) => {\n moveToPreviousMonth(event);\n };\n\n const handleNavigateNext: MouseEventHandler<HTMLButtonElement> = (event) => {\n moveToNextMonth(event);\n };\n\n const handleMonthSelect: SingleSelectionHandler<DropdownItem> = (\n event,\n month\n ) => {\n if (month && event) {\n moveToMonth(event, month.value);\n }\n };\n\n const handleYearSelect: SingleSelectionHandler<DropdownItem> = (\n event,\n year\n ) => {\n if (year && event) {\n moveToMonth(event, year.value);\n }\n };\n\n const monthDropdownId = useId(MonthDropdownProps?.id) || \"\";\n const monthDropdownLabelledBy = clsx(\n MonthDropdownProps?.[\"aria-labelledby\"],\n // TODO need a prop on Dropdown to allow buttonId to be passed, should not make assumptions about internal\n // id assignment like this\n `${monthDropdownId}-control`\n );\n\n const yearDropdownId = useId(YearDropdownProps?.id) || \"\";\n const yearDropdownLabelledBy = clsx(\n YearDropdownProps?.[\"aria-labelledby\"],\n `${yearDropdownId}-control`\n );\n\n const defaultItemToMonth = (date: DropdownItem) => {\n if (hideYearDropdown) {\n return formatDate(date.value, { month: \"long\" });\n }\n return formatDate(date.value, { month: \"short\" });\n };\n\n const defaultItemToYear = (date: DropdownItem) => {\n return formatDate(date.value, { year: \"numeric\" });\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"hideYearDropdown\")]: hideYearDropdown },\n className\n )}\n ref={ref}\n {...rest}\n >\n <Tooltip\n placement=\"top\"\n disabled={canNavigatePrevious}\n content=\"Past dates are out of range\"\n >\n <IconButton\n aria-label={`Previous Month, ${formatDate(\n visibleMonth.subtract({ months: 1 })\n )}`}\n disabled={!canNavigatePrevious}\n icon=\"chevron-left\"\n variant=\"secondary\"\n onClick={handleNavigatePrevious}\n className={withBaseName(\"previousButton\")}\n focusableWhenDisabled={true}\n />\n </Tooltip>\n <Dropdown<DropdownItem>\n source={months}\n id={monthDropdownId}\n aria-labelledby={monthDropdownLabelledBy}\n aria-label=\"Month Dropdown\"\n {...MonthDropdownProps}\n ListItem={ListItemWithTooltip}\n selected={selectedMonth}\n itemToString={defaultItemToMonth}\n onSelectionChange={handleMonthSelect}\n fullWidth\n />\n {!hideYearDropdown && (\n <Dropdown<DropdownItem>\n source={years}\n id={yearDropdownId}\n aria-labelledby={yearDropdownLabelledBy}\n aria-label=\"Year Dropdown\"\n {...YearDropdownProps}\n ListItem={ListItemWithTooltip}\n selected={selectedYear}\n onSelectionChange={handleYearSelect}\n itemToString={defaultItemToYear}\n fullWidth\n />\n )}\n <Tooltip\n placement=\"top\"\n disabled={canNavigateNext}\n content=\"Future dates are out of range\"\n >\n <IconButton\n aria-label={`Next Month, ${formatDate(\n visibleMonth.add({ months: 1 })\n )}`}\n disabled={!canNavigateNext}\n icon=\"chevron-right\"\n variant=\"secondary\"\n onClick={handleNavigateNext}\n className={withBaseName(\"nextButton\")}\n focusableWhenDisabled={true}\n />\n </Tooltip>\n </div>\n );\n});\n"],"names":["CalendarNavigation"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA,CAAA;AAE1D,SAAS,qBAAwB,GAAA;AAC/B,EAAM,MAAA;AAAA,IACJ,KAAO,EAAA,EAAE,YAAc,EAAA,OAAA,EAAS,OAAQ,EAAA;AAAA,IACxC,OAAS,EAAA;AAAA,MACP,eAAA;AAAA,MACA,YAAA;AAAA,MACA,qBAAA;AAAA,MACA,sBAAA;AAAA,KACF;AAAA,MACE,kBAAmB,EAAA,CAAA;AAEvB,EAAM,MAAA,eAAA,GAAkB,CAAC,KAA0B,KAAA;AACjD,IAAA,eAAA,CAAgB,OAAO,YAAa,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,GACxD,CAAA;AAEA,EAAM,MAAA,mBAAA,GAAsB,CAAC,KAA0B,KAAA;AACrD,IAAA,eAAA,CAAgB,OAAO,YAAa,CAAA,QAAA,CAAS,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,GAC7D,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAA,EAAuB,KAAqB,KAAA;AAC/D,IAAA,IAAI,QAAW,GAAA,KAAA,CAAA;AAEf,IAAI,IAAA,CAAC,qBAAsB,CAAA,QAAQ,CAAG,EAAA;AACpC,MAAI,IAAA,sBAAA,CAAuB,QAAQ,CAAG,EAAA;AAEpC,QAAM,MAAA,eAAA,GAAkB,eAAgB,CAAA,YAAY,CAAE,CAAA,MAAA;AAAA,UACpD,CAAC,CAAA,KAAM,CAAC,sBAAA,CAAuB,CAAC,CAAA;AAAA,SAClC,CAAA;AACA,QAAA,QAAA,GAAW,eAAgB,CAAA,MAAA;AAAA,UAAO,CAAC,YAAc,EAAA,YAAA,KAC/C,IAAK,CAAA,GAAA,CAAI,UAAU,YAAc,EAAA,QAAQ,CAAC,CAAA,GAC1C,KAAK,GAAI,CAAA,SAAA,CAAU,cAAc,QAAQ,CAAC,IACtC,YACA,GAAA,YAAA;AAAA,SACN,CAAA;AAAA,OACF;AACA,MAAA,eAAA,CAAgB,OAAO,QAAQ,CAAA,CAAA;AAAA,KACjC;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,SAAS,eAAgB,CAAA,YAAY,CAAE,CAAA,GAAA,CAAI,CAAC,KAAU,KAAA;AAC1D,IAAA,OAAO,EAAE,KAAO,EAAA,KAAA,EAAO,QAAU,EAAA,sBAAA,CAAuB,KAAK,CAAE,EAAA,CAAA;AAAA,GAChE,CAAA,CAAA;AAED,EAAA,MAAM,KAAQ,GAAA,CAAC,CAAI,CAAA,EAAA,CAAA,CAAA,EAAI,CAAG,EAAA,CAAA,EAAG,CAAC,CAAA,CAC3B,GAAI,CAAA,CAAC,KAAW,MAAA,EAAE,OAAO,YAAa,CAAA,GAAA,CAAI,EAAE,KAAA,EAAO,KAAM,EAAC,CAAE,EAAA,CAAE,CAC9D,CAAA,MAAA,CAAO,CAAC,EAAE,KAAM,EAAA,KAAM,CAAC,qBAAA,CAAsB,KAAK,CAAC,CAAA,CAAA;AAEtD,EAAA,MAAM,gBAAgB,MAAO,CAAA,IAAA;AAAA,IAAK,CAAC,IAAA,KACjC,WAAY,CAAA,IAAA,CAAK,OAAO,YAAY,CAAA;AAAA,GACtC,CAAA;AACA,EAAA,MAAM,eAAe,KAAM,CAAA,IAAA;AAAA,IAAK,CAAC,IAAA,KAC/B,UAAW,CAAA,IAAA,CAAK,OAAO,YAAY,CAAA;AAAA,GACrC,CAAA;AAEA,EAAA,MAAM,mBAAsB,GAAA,EAAE,OAAW,IAAA,YAAA,CAAa,OAAO,CAAA,CAAA,CAAA;AAC7D,EAAA,MAAM,eAAkB,GAAA,EAAE,OAAW,IAAA,YAAA,CAAa,OAAO,CAAA,CAAA,CAAA;AAEzD,EAAO,OAAA;AAAA,IACL,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF,CAAA;AAEA,MAAM,sBAAkD,CAAC;AAAA,EACvD,IAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG,KAAA;AACL,CACE,qBAAA,GAAA;AAAA,EAAC,OAAA;AAAA,EAAA;AAAA,IACC,SAAU,EAAA,OAAA;AAAA,IACV,QAAA,EAAU,CAAC,IAAM,EAAA,QAAA;AAAA,IACjB,OAAQ,EAAA,4BAAA;AAAA,IAER,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA,EAAU,GAAG,KAAA,EAAQ,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,GAAA;AAC9B,CAAA,CAAA;AAGK,MAAM,kBAAqB,GAAA,UAAA,CAGhC,SAASA,mBAAAA,CAAmB,OAAO,GAAK,EAAA;AACxC,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,kBAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qBAAA;AAAA,IACR,GAAK,EAAA,qBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA;AAAA,IACJ,mBAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,MACE,qBAAsB,EAAA,CAAA;AAE1B,EAAM,MAAA,sBAAA,GAA+D,CACnE,KACG,KAAA;AACH,IAAA,mBAAA,CAAoB,KAAK,CAAA,CAAA;AAAA,GAC3B,CAAA;AAEA,EAAM,MAAA,kBAAA,GAA2D,CAAC,KAAU,KAAA;AAC1E,IAAA,eAAA,CAAgB,KAAK,CAAA,CAAA;AAAA,GACvB,CAAA;AAEA,EAAM,MAAA,iBAAA,GAA0D,CAC9D,KAAA,EACA,KACG,KAAA;AACH,IAAA,IAAI,SAAS,KAAO,EAAA;AAClB,MAAY,WAAA,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA,CAAA;AAAA,KAChC;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAyD,CAC7D,KAAA,EACA,IACG,KAAA;AACH,IAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,MAAY,WAAA,CAAA,KAAA,EAAO,KAAK,KAAK,CAAA,CAAA;AAAA,KAC/B;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAkB,GAAA,KAAA,CAAM,kBAAoB,EAAA,EAAE,CAAK,IAAA,EAAA,CAAA;AACzD,EAAA,MAAM,uBAA0B,GAAA,IAAA;AAAA,IAC9B,qBAAqB,iBAAiB,CAAA;AAAA;AAAA;AAAA,IAGtC,GAAG,eAAe,CAAA,QAAA,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,MAAM,cAAiB,GAAA,KAAA,CAAM,iBAAmB,EAAA,EAAE,CAAK,IAAA,EAAA,CAAA;AACvD,EAAA,MAAM,sBAAyB,GAAA,IAAA;AAAA,IAC7B,oBAAoB,iBAAiB,CAAA;AAAA,IACrC,GAAG,cAAc,CAAA,QAAA,CAAA;AAAA,GACnB,CAAA;AAEA,EAAM,MAAA,kBAAA,GAAqB,CAAC,IAAuB,KAAA;AACjD,IAAA,IAAI,gBAAkB,EAAA;AACpB,MAAA,OAAO,WAAW,IAAK,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAQ,CAAA,CAAA;AAAA,KACjD;AACA,IAAA,OAAO,WAAW,IAAK,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,SAAS,CAAA,CAAA;AAAA,GAClD,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,IAAuB,KAAA;AAChD,IAAA,OAAO,WAAW,IAAK,CAAA,KAAA,EAAO,EAAE,IAAA,EAAM,WAAW,CAAA,CAAA;AAAA,GACnD,CAAA;AAEA,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,EAAE,CAAC,YAAA,CAAa,kBAAkB,CAAC,GAAG,gBAAiB,EAAA;AAAA,QACvD,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,KAAA;AAAA,YACV,QAAU,EAAA,mBAAA;AAAA,YACV,OAAQ,EAAA,6BAAA;AAAA,YAER,QAAA,kBAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,cAAY,CAAmB,gBAAA,EAAA,UAAA;AAAA,kBAC7B,YAAa,CAAA,QAAA,CAAS,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,iBACpC,CAAA,CAAA;AAAA,gBACD,UAAU,CAAC,mBAAA;AAAA,gBACX,IAAK,EAAA,cAAA;AAAA,gBACL,OAAQ,EAAA,WAAA;AAAA,gBACR,OAAS,EAAA,sBAAA;AAAA,gBACT,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,gBACxC,qBAAuB,EAAA,IAAA;AAAA,eAAA;AAAA,aACzB;AAAA,WAAA;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,MAAQ,EAAA,MAAA;AAAA,YACR,EAAI,EAAA,eAAA;AAAA,YACJ,iBAAiB,EAAA,uBAAA;AAAA,YACjB,YAAW,EAAA,gBAAA;AAAA,YACV,GAAG,kBAAA;AAAA,YACJ,QAAU,EAAA,mBAAA;AAAA,YACV,QAAU,EAAA,aAAA;AAAA,YACV,YAAc,EAAA,kBAAA;AAAA,YACd,iBAAmB,EAAA,iBAAA;AAAA,YACnB,SAAS,EAAA,IAAA;AAAA,WAAA;AAAA,SACX;AAAA,QACC,CAAC,gBACA,oBAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,MAAQ,EAAA,KAAA;AAAA,YACR,EAAI,EAAA,cAAA;AAAA,YACJ,iBAAiB,EAAA,sBAAA;AAAA,YACjB,YAAW,EAAA,eAAA;AAAA,YACV,GAAG,iBAAA;AAAA,YACJ,QAAU,EAAA,mBAAA;AAAA,YACV,QAAU,EAAA,YAAA;AAAA,YACV,iBAAmB,EAAA,gBAAA;AAAA,YACnB,YAAc,EAAA,iBAAA;AAAA,YACd,SAAS,EAAA,IAAA;AAAA,WAAA;AAAA,SACX;AAAA,wBAEF,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,SAAU,EAAA,KAAA;AAAA,YACV,QAAU,EAAA,eAAA;AAAA,YACV,OAAQ,EAAA,+BAAA;AAAA,YAER,QAAA,kBAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,cAAY,CAAe,YAAA,EAAA,UAAA;AAAA,kBACzB,YAAa,CAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,iBAC/B,CAAA,CAAA;AAAA,gBACD,UAAU,CAAC,eAAA;AAAA,gBACX,IAAK,EAAA,eAAA;AAAA,gBACL,OAAQ,EAAA,WAAA;AAAA,gBACR,OAAS,EAAA,kBAAA;AAAA,gBACT,SAAA,EAAW,aAAa,YAAY,CAAA;AAAA,gBACpC,qBAAuB,EAAA,IAAA;AAAA,eAAA;AAAA,aACzB;AAAA,WAAA;AAAA,SACF;AAAA,OAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,4 @@
1
+ var calendarWeekHeaderCss = ".saltCalendarWeekHeader {\n --calendar-week-header-underline-color: var(--salt-separable-secondary-borderColor);\n --calendar-week-header-text-color: var(--salt-content-secondary-foreground);\n --calendar-week-header-size: var(--salt-size-base);\n --calendar-week-header-fontSize: var(--saltCalendar-week-header-fontSize, var(--salt-text-label-fontSize));\n}\n\n.saltCalendarWeekHeader {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n text-align: center;\n box-shadow: inset 0 -1px 0 var(--calendar-week-header-underline-color);\n}\n\n.saltCalendarWeekHeader-dayOfWeek {\n width: var(--calendar-week-header-size);\n height: var(--calendar-week-header-size);\n color: var(--calendar-week-header-text-color);\n line-height: var(--calendar-week-header-size);\n font-size: var(--calendar-week-header-fontSize);\n}\n";
2
+
3
+ export { calendarWeekHeaderCss as default };
4
+ //# sourceMappingURL=CalendarWeekHeader.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarWeekHeader.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,41 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { makePrefixer } from '@salt-ds/core';
5
+ import { useComponentCssInjection } from '@salt-ds/styles';
6
+ import { useWindow } from '@salt-ds/window';
7
+ import { daysForLocale } from './utils.js';
8
+ import calendarWeekHeaderCss from './CalendarWeekHeader.css.js';
9
+
10
+ const withBaseName = makePrefixer("saltCalendarWeekHeader");
11
+ const CalendarWeekHeader = forwardRef(function CalendarWeekHeader2({ className, ...rest }, ref) {
12
+ const targetWindow = useWindow();
13
+ useComponentCssInjection({
14
+ testId: "salt-calendar-month",
15
+ css: calendarWeekHeaderCss,
16
+ window: targetWindow
17
+ });
18
+ const weekdaysShort = daysForLocale("narrow");
19
+ const weekdaysLong = daysForLocale("long");
20
+ return /* @__PURE__ */ jsx(
21
+ "div",
22
+ {
23
+ "data-testid": "CalendarWeekHeader",
24
+ className: clsx(withBaseName(), className),
25
+ ref,
26
+ ...rest,
27
+ children: weekdaysShort.map((day, index) => /* @__PURE__ */ jsx(
28
+ "small",
29
+ {
30
+ "aria-hidden": "true",
31
+ className: withBaseName("dayOfWeek"),
32
+ children: day
33
+ },
34
+ weekdaysLong[index]
35
+ ))
36
+ }
37
+ );
38
+ });
39
+
40
+ export { CalendarWeekHeader };
41
+ //# sourceMappingURL=CalendarWeekHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarWeekHeader.js","sources":["../../../src/calendar/internal/CalendarWeekHeader.tsx"],"sourcesContent":["import { ComponentPropsWithRef, forwardRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport { daysForLocale } from \"./utils\";\n\nimport calendarWeekHeaderCss from \"./CalendarWeekHeader.css\";\n\nexport type CalendarWeekHeaderProps = ComponentPropsWithRef<\"div\">;\n\nconst withBaseName = makePrefixer(\"saltCalendarWeekHeader\");\n\nexport const CalendarWeekHeader = forwardRef<\n HTMLDivElement,\n CalendarWeekHeaderProps\n>(function CalendarWeekHeader({ className, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarWeekHeaderCss,\n window: targetWindow,\n });\n\n const weekdaysShort = daysForLocale(\"narrow\");\n const weekdaysLong = daysForLocale(\"long\");\n\n return (\n <div\n data-testid=\"CalendarWeekHeader\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...rest}\n >\n {weekdaysShort.map((day, index) => (\n <small\n aria-hidden=\"true\"\n key={weekdaysLong[index]}\n className={withBaseName(\"dayOfWeek\")}\n >\n {day}\n </small>\n ))}\n </div>\n );\n});\n"],"names":["CalendarWeekHeader"],"mappings":";;;;;;;;;AAYA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA,CAAA;AAE7C,MAAA,kBAAA,GAAqB,WAGhC,SAASA,mBAAAA,CAAmB,EAAE,SAAW,EAAA,GAAG,IAAK,EAAA,EAAG,GAAK,EAAA;AACzD,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qBAAA;AAAA,IACR,GAAK,EAAA,qBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,aAAA,GAAgB,cAAc,QAAQ,CAAA,CAAA;AAC5C,EAAM,MAAA,YAAA,GAAe,cAAc,MAAM,CAAA,CAAA;AAEzC,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,oBAAA;AAAA,MACZ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAc,EAAA,aAAA,CAAA,GAAA,CAAI,CAAC,GAAA,EAAK,KACvB,qBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,aAAY,EAAA,MAAA;AAAA,UAEZ,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,UAElC,QAAA,EAAA,GAAA;AAAA,SAAA;AAAA,QAHI,aAAa,KAAK,CAAA;AAAA,OAK1B,CAAA;AAAA,KAAA;AAAA,GACH,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,61 @@
1
+ import { useCalendarContext } from './CalendarContext.js';
2
+ import { endOfWeek, startOfWeek } from '@internationalized/date';
3
+ import { getCurrentLocale } from './utils.js';
4
+
5
+ function useFocusManagement({ date }) {
6
+ const {
7
+ helpers: { setFocusedDate }
8
+ } = useCalendarContext();
9
+ const handleClick = (event) => {
10
+ setFocusedDate(event, date);
11
+ };
12
+ const handleKeyDown = (event) => {
13
+ let newDate = date;
14
+ switch (event.key) {
15
+ case "ArrowUp":
16
+ newDate = date.subtract({ weeks: 1 });
17
+ break;
18
+ case "ArrowDown":
19
+ newDate = date.add({ weeks: 1 });
20
+ break;
21
+ case "ArrowLeft":
22
+ newDate = date.subtract({ days: 1 });
23
+ break;
24
+ case "ArrowRight":
25
+ newDate = date.add({ days: 1 });
26
+ break;
27
+ case "Home":
28
+ newDate = startOfWeek(date, getCurrentLocale());
29
+ break;
30
+ case "End":
31
+ newDate = endOfWeek(date, getCurrentLocale());
32
+ break;
33
+ case "PageUp":
34
+ if (event.shiftKey) {
35
+ newDate = date.subtract({ years: 1 });
36
+ } else {
37
+ newDate = date.subtract({ months: 1 });
38
+ }
39
+ break;
40
+ case "PageDown":
41
+ if (event.shiftKey) {
42
+ newDate = date.add({ years: 1 });
43
+ } else {
44
+ newDate = date.add({ months: 1 });
45
+ }
46
+ break;
47
+ }
48
+ setFocusedDate(event, newDate);
49
+ };
50
+ const handleFocus = (event) => {
51
+ setFocusedDate(event, date);
52
+ };
53
+ return {
54
+ handleClick,
55
+ handleKeyDown,
56
+ handleFocus
57
+ };
58
+ }
59
+
60
+ export { useFocusManagement };
61
+ //# sourceMappingURL=useFocusManagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFocusManagement.js","sources":["../../../src/calendar/internal/useFocusManagement.ts"],"sourcesContent":["import {\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { DateValue, endOfWeek, startOfWeek } from \"@internationalized/date\";\nimport { getCurrentLocale } from \"./utils\";\n\nexport function useFocusManagement({ date }: { date: DateValue }) {\n const {\n helpers: { setFocusedDate },\n } = useCalendarContext();\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n setFocusedDate(event, date);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n let newDate = date;\n switch (event.key) {\n case \"ArrowUp\":\n newDate = date.subtract({ weeks: 1 });\n break;\n case \"ArrowDown\":\n newDate = date.add({ weeks: 1 });\n break;\n case \"ArrowLeft\":\n newDate = date.subtract({ days: 1 });\n break;\n case \"ArrowRight\":\n newDate = date.add({ days: 1 });\n break;\n case \"Home\":\n newDate = startOfWeek(date, getCurrentLocale());\n break;\n case \"End\":\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore TODO bug in @internationalized/date\n newDate = endOfWeek(date, getCurrentLocale());\n break;\n case \"PageUp\":\n if (event.shiftKey) {\n newDate = date.subtract({ years: 1 });\n } else {\n newDate = date.subtract({ months: 1 });\n }\n break;\n case \"PageDown\":\n if (event.shiftKey) {\n newDate = date.add({ years: 1 });\n } else {\n newDate = date.add({ months: 1 });\n }\n break;\n default:\n }\n\n setFocusedDate(event, newDate);\n };\n\n const handleFocus: FocusEventHandler<HTMLButtonElement> = (event) => {\n setFocusedDate(event, date);\n };\n\n return {\n handleClick,\n handleKeyDown,\n handleFocus,\n };\n}\n"],"names":[],"mappings":";;;;AASgB,SAAA,kBAAA,CAAmB,EAAE,IAAA,EAA6B,EAAA;AAChE,EAAM,MAAA;AAAA,IACJ,OAAA,EAAS,EAAE,cAAe,EAAA;AAAA,MACxB,kBAAmB,EAAA,CAAA;AACvB,EAAM,MAAA,WAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAM,MAAA,aAAA,GAAyD,CAAC,KAAU,KAAA;AACxE,IAAA,IAAI,OAAU,GAAA,IAAA,CAAA;AACd,IAAA,QAAQ,MAAM,GAAK;AAAA,MACjB,KAAK,SAAA;AACH,QAAA,OAAA,GAAU,IAAK,CAAA,QAAA,CAAS,EAAE,KAAA,EAAO,GAAG,CAAA,CAAA;AACpC,QAAA,MAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,EAAE,KAAA,EAAO,GAAG,CAAA,CAAA;AAC/B,QAAA,MAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,GAAU,IAAK,CAAA,QAAA,CAAS,EAAE,IAAA,EAAM,GAAG,CAAA,CAAA;AACnC,QAAA,MAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,EAAE,IAAA,EAAM,GAAG,CAAA,CAAA;AAC9B,QAAA,MAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAU,OAAA,GAAA,WAAA,CAAY,IAAM,EAAA,gBAAA,EAAkB,CAAA,CAAA;AAC9C,QAAA,MAAA;AAAA,MACF,KAAK,KAAA;AAGH,QAAU,OAAA,GAAA,SAAA,CAAU,IAAM,EAAA,gBAAA,EAAkB,CAAA,CAAA;AAC5C,QAAA,MAAA;AAAA,MACF,KAAK,QAAA;AACH,QAAA,IAAI,MAAM,QAAU,EAAA;AAClB,UAAA,OAAA,GAAU,IAAK,CAAA,QAAA,CAAS,EAAE,KAAA,EAAO,GAAG,CAAA,CAAA;AAAA,SAC/B,MAAA;AACL,UAAA,OAAA,GAAU,IAAK,CAAA,QAAA,CAAS,EAAE,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,SACvC;AACA,QAAA,MAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,IAAI,MAAM,QAAU,EAAA;AAClB,UAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,EAAE,KAAA,EAAO,GAAG,CAAA,CAAA;AAAA,SAC1B,MAAA;AACL,UAAA,OAAA,GAAU,IAAK,CAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,SAClC;AACA,QAAA,MAAA;AACF,KACF;AAEA,IAAA,cAAA,CAAe,OAAO,OAAO,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAM,MAAA,WAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,WAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,GACF,CAAA;AACF;;;;"}