@salt-ds/lab 1.0.0-alpha.1 → 1.0.0-alpha.2

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 (380) hide show
  1. package/dist-cjs/packages/lab/src/accordion/AccordionSection.js +1 -0
  2. package/dist-cjs/packages/lab/src/accordion/AccordionSection.js.map +1 -1
  3. package/dist-cjs/packages/lab/src/app-header/AppHeader.js +1 -0
  4. package/dist-cjs/packages/lab/src/app-header/AppHeader.js.map +1 -1
  5. package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumb.js.map +1 -1
  6. package/dist-cjs/packages/lab/src/button-bar/OrderedButton.js +1 -0
  7. package/dist-cjs/packages/lab/src/button-bar/OrderedButton.js.map +1 -1
  8. package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.js +33 -49
  9. package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.js.map +1 -1
  10. package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js +34 -64
  11. package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
  12. package/dist-cjs/packages/lab/src/calendar/useSelection.js +1 -0
  13. package/dist-cjs/packages/lab/src/calendar/useSelection.js.map +1 -1
  14. package/dist-cjs/packages/lab/src/carousel/Carousel.js +1 -0
  15. package/dist-cjs/packages/lab/src/carousel/Carousel.js.map +1 -1
  16. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenu.js +1 -0
  17. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenu.js.map +1 -1
  18. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.js +46 -60
  19. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.js.map +1 -1
  20. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js +3 -3
  21. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
  22. package/dist-cjs/packages/lab/src/cascading-menu/internal/useClickAway.js +1 -0
  23. package/dist-cjs/packages/lab/src/cascading-menu/internal/useClickAway.js.map +1 -1
  24. package/dist-cjs/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js +1 -0
  25. package/dist-cjs/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  26. package/dist-cjs/packages/lab/src/combo-box/ComboBox.js +1 -0
  27. package/dist-cjs/packages/lab/src/combo-box/ComboBox.js.map +1 -1
  28. package/dist-cjs/packages/lab/src/combo-box/useCombobox.js +1 -0
  29. package/dist-cjs/packages/lab/src/combo-box/useCombobox.js.map +1 -1
  30. package/dist-cjs/packages/lab/src/combo-box-deprecated/filterHelpers.js +1 -0
  31. package/dist-cjs/packages/lab/src/combo-box-deprecated/filterHelpers.js.map +1 -1
  32. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +21 -39
  33. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  34. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +28 -49
  35. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  36. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useComboBox.js +1 -0
  37. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  38. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -0
  39. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  40. package/dist-cjs/packages/lab/src/common-hooks/useViewportTracking.js +1 -0
  41. package/dist-cjs/packages/lab/src/common-hooks/useViewportTracking.js.map +1 -1
  42. package/dist-cjs/packages/lab/src/common-hooks/utils/filter-utils.js +1 -0
  43. package/dist-cjs/packages/lab/src/common-hooks/utils/filter-utils.js.map +1 -1
  44. package/dist-cjs/packages/lab/src/contact-details/ContactAction.js +8 -23
  45. package/dist-cjs/packages/lab/src/contact-details/ContactAction.js.map +1 -1
  46. package/dist-cjs/packages/lab/src/contact-details/ContactFavoriteToggle.js.map +1 -1
  47. package/dist-cjs/packages/lab/src/contact-details/MailLinkComponent.js +1 -0
  48. package/dist-cjs/packages/lab/src/contact-details/MailLinkComponent.js.map +1 -1
  49. package/dist-cjs/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js +8 -19
  50. package/dist-cjs/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  51. package/dist-cjs/packages/lab/src/content-status/internal/StatusIndicator.js +1 -2
  52. package/dist-cjs/packages/lab/src/content-status/internal/StatusIndicator.js.map +1 -1
  53. package/dist-cjs/packages/lab/src/deck-layout/DeckLayout.js +1 -0
  54. package/dist-cjs/packages/lab/src/deck-layout/DeckLayout.js.map +1 -1
  55. package/dist-cjs/packages/lab/src/dropdown/Dropdown.js +1 -0
  56. package/dist-cjs/packages/lab/src/dropdown/Dropdown.js.map +1 -1
  57. package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js +6 -6
  58. package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
  59. package/dist-cjs/packages/lab/src/dropdown/useDropdown.js +1 -0
  60. package/dist-cjs/packages/lab/src/dropdown/useDropdown.js.map +1 -1
  61. package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js +1 -0
  62. package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
  63. package/dist-cjs/packages/lab/src/form-field/FormField.js +60 -73
  64. package/dist-cjs/packages/lab/src/form-field/FormField.js.map +1 -1
  65. package/dist-cjs/packages/lab/src/form-field/StatusIndicator.js +17 -30
  66. package/dist-cjs/packages/lab/src/form-field/StatusIndicator.js.map +1 -1
  67. package/dist-cjs/packages/lab/src/index.js +3 -15
  68. package/dist-cjs/packages/lab/src/index.js.map +1 -1
  69. package/dist-cjs/packages/lab/src/layer-layout/LayerLayout.js +3 -2
  70. package/dist-cjs/packages/lab/src/layer-layout/LayerLayout.js.map +1 -1
  71. package/dist-cjs/packages/lab/src/list/Highlighter.js +1 -0
  72. package/dist-cjs/packages/lab/src/list/Highlighter.js.map +1 -1
  73. package/dist-cjs/packages/lab/src/list/List.js +1 -0
  74. package/dist-cjs/packages/lab/src/list/List.js.map +1 -1
  75. package/dist-cjs/packages/lab/src/list/VirtualizedList.js +1 -0
  76. package/dist-cjs/packages/lab/src/list/VirtualizedList.js.map +1 -1
  77. package/dist-cjs/packages/lab/src/list/useList.js +1 -0
  78. package/dist-cjs/packages/lab/src/list/useList.js.map +1 -1
  79. package/dist-cjs/packages/lab/src/list/useListHeight.js +1 -0
  80. package/dist-cjs/packages/lab/src/list/useListHeight.js.map +1 -1
  81. package/dist-cjs/packages/lab/src/list-deprecated/List.js +5 -26
  82. package/dist-cjs/packages/lab/src/list-deprecated/List.js.map +1 -1
  83. package/dist-cjs/packages/lab/src/list-deprecated/ListItemBase.js +28 -58
  84. package/dist-cjs/packages/lab/src/list-deprecated/ListItemBase.js.map +1 -1
  85. package/dist-cjs/packages/lab/src/list-deprecated/internal/Highlighter.js +1 -0
  86. package/dist-cjs/packages/lab/src/list-deprecated/internal/Highlighter.js.map +1 -1
  87. package/dist-cjs/packages/lab/src/list-deprecated/useTypeSelect.js +1 -0
  88. package/dist-cjs/packages/lab/src/list-deprecated/useTypeSelect.js.map +1 -1
  89. package/dist-cjs/packages/lab/src/overlay/Overlay.js +1 -1
  90. package/dist-cjs/packages/lab/src/overlay/Overlay.js.map +1 -1
  91. package/dist-cjs/packages/lab/src/overlay/useOverlay.js +11 -12
  92. package/dist-cjs/packages/lab/src/overlay/useOverlay.js.map +1 -1
  93. package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js +1 -0
  94. package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
  95. package/dist-cjs/packages/lab/src/pill/PillBase.js +39 -55
  96. package/dist-cjs/packages/lab/src/pill/PillBase.js.map +1 -1
  97. package/dist-cjs/packages/lab/src/query-input/internal/CategoryList.js +1 -0
  98. package/dist-cjs/packages/lab/src/query-input/internal/CategoryList.js.map +1 -1
  99. package/dist-cjs/packages/lab/src/query-input/internal/CategoryListItem.js +1 -0
  100. package/dist-cjs/packages/lab/src/query-input/internal/CategoryListItem.js.map +1 -1
  101. package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
  102. package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
  103. package/dist-cjs/packages/lab/src/query-input/internal/SearchList.js +1 -0
  104. package/dist-cjs/packages/lab/src/query-input/internal/SearchList.js.map +1 -1
  105. package/dist-cjs/packages/lab/src/query-input/internal/ValueList.js +1 -0
  106. package/dist-cjs/packages/lab/src/query-input/internal/ValueList.js.map +1 -1
  107. package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js +2 -3
  108. package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
  109. package/dist-cjs/packages/lab/src/query-input/useQueryInput.js +1 -0
  110. package/dist-cjs/packages/lab/src/query-input/useQueryInput.js.map +1 -1
  111. package/dist-cjs/packages/lab/src/responsive/useOverflow.js +1 -0
  112. package/dist-cjs/packages/lab/src/responsive/useOverflow.js.map +1 -1
  113. package/dist-cjs/packages/lab/src/slider/internal/SliderHandle.js +17 -26
  114. package/dist-cjs/packages/lab/src/slider/internal/SliderHandle.js.map +1 -1
  115. package/dist-cjs/packages/lab/src/tabs/Tabstrip.js +35 -45
  116. package/dist-cjs/packages/lab/src/tabs/Tabstrip.js.map +1 -1
  117. package/dist-cjs/packages/lab/src/tabs/useActivationIndicator.js +1 -0
  118. package/dist-cjs/packages/lab/src/tabs/useActivationIndicator.js.map +1 -1
  119. package/dist-cjs/packages/lab/src/tabs/useKeyboardNavigation.js +1 -0
  120. package/dist-cjs/packages/lab/src/tabs/useKeyboardNavigation.js.map +1 -1
  121. package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.js +6 -26
  122. package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.js.map +1 -1
  123. package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInput.js.map +1 -1
  124. package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
  125. package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
  126. package/dist-cjs/packages/lab/src/toolbar/Toolbar.js +1 -0
  127. package/dist-cjs/packages/lab/src/toolbar/Toolbar.js.map +1 -1
  128. package/dist-cjs/packages/lab/src/toolbar/internal/renderToolbarItems.js +1 -0
  129. package/dist-cjs/packages/lab/src/toolbar/internal/renderToolbarItems.js.map +1 -1
  130. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +1 -0
  131. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  132. package/dist-cjs/packages/lab/src/tree/Tree.js +1 -0
  133. package/dist-cjs/packages/lab/src/tree/Tree.js.map +1 -1
  134. package/dist-cjs/packages/lab/src/tree/useTree.js +1 -0
  135. package/dist-cjs/packages/lab/src/tree/useTree.js.map +1 -1
  136. package/dist-cjs/packages/lab/src/utils/useFloatingUI.js +38 -0
  137. package/dist-cjs/packages/lab/src/utils/useFloatingUI.js.map +1 -0
  138. package/dist-cjs/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js +1 -2
  139. package/dist-cjs/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  140. package/dist-es/packages/lab/src/accordion/AccordionSection.js +1 -0
  141. package/dist-es/packages/lab/src/accordion/AccordionSection.js.map +1 -1
  142. package/dist-es/packages/lab/src/app-header/AppHeader.js +1 -0
  143. package/dist-es/packages/lab/src/app-header/AppHeader.js.map +1 -1
  144. package/dist-es/packages/lab/src/breadcrumbs/Breadcrumb.js.map +1 -1
  145. package/dist-es/packages/lab/src/button-bar/OrderedButton.js +1 -0
  146. package/dist-es/packages/lab/src/button-bar/OrderedButton.js.map +1 -1
  147. package/dist-es/packages/lab/src/calendar/internal/CalendarDay.js +35 -51
  148. package/dist-es/packages/lab/src/calendar/internal/CalendarDay.js.map +1 -1
  149. package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js +35 -65
  150. package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
  151. package/dist-es/packages/lab/src/calendar/useSelection.js +1 -0
  152. package/dist-es/packages/lab/src/calendar/useSelection.js.map +1 -1
  153. package/dist-es/packages/lab/src/carousel/Carousel.js +1 -0
  154. package/dist-es/packages/lab/src/carousel/Carousel.js.map +1 -1
  155. package/dist-es/packages/lab/src/cascading-menu/CascadingMenu.js +1 -0
  156. package/dist-es/packages/lab/src/cascading-menu/CascadingMenu.js.map +1 -1
  157. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.js +48 -62
  158. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.js.map +1 -1
  159. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js +3 -3
  160. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
  161. package/dist-es/packages/lab/src/cascading-menu/internal/useClickAway.js +1 -0
  162. package/dist-es/packages/lab/src/cascading-menu/internal/useClickAway.js.map +1 -1
  163. package/dist-es/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js +1 -0
  164. package/dist-es/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  165. package/dist-es/packages/lab/src/combo-box/ComboBox.js +1 -0
  166. package/dist-es/packages/lab/src/combo-box/ComboBox.js.map +1 -1
  167. package/dist-es/packages/lab/src/combo-box/useCombobox.js +1 -0
  168. package/dist-es/packages/lab/src/combo-box/useCombobox.js.map +1 -1
  169. package/dist-es/packages/lab/src/combo-box-deprecated/filterHelpers.js +1 -0
  170. package/dist-es/packages/lab/src/combo-box-deprecated/filterHelpers.js.map +1 -1
  171. package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +19 -37
  172. package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  173. package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +26 -47
  174. package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  175. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useComboBox.js +1 -0
  176. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  177. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -0
  178. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  179. package/dist-es/packages/lab/src/common-hooks/useViewportTracking.js +1 -0
  180. package/dist-es/packages/lab/src/common-hooks/useViewportTracking.js.map +1 -1
  181. package/dist-es/packages/lab/src/common-hooks/utils/filter-utils.js +1 -0
  182. package/dist-es/packages/lab/src/common-hooks/utils/filter-utils.js.map +1 -1
  183. package/dist-es/packages/lab/src/contact-details/ContactAction.js +10 -25
  184. package/dist-es/packages/lab/src/contact-details/ContactAction.js.map +1 -1
  185. package/dist-es/packages/lab/src/contact-details/ContactFavoriteToggle.js.map +1 -1
  186. package/dist-es/packages/lab/src/contact-details/MailLinkComponent.js +1 -0
  187. package/dist-es/packages/lab/src/contact-details/MailLinkComponent.js.map +1 -1
  188. package/dist-es/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js +9 -20
  189. package/dist-es/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  190. package/dist-es/packages/lab/src/content-status/internal/StatusIndicator.js +1 -2
  191. package/dist-es/packages/lab/src/content-status/internal/StatusIndicator.js.map +1 -1
  192. package/dist-es/packages/lab/src/deck-layout/DeckLayout.js +1 -0
  193. package/dist-es/packages/lab/src/deck-layout/DeckLayout.js.map +1 -1
  194. package/dist-es/packages/lab/src/dropdown/Dropdown.js +1 -0
  195. package/dist-es/packages/lab/src/dropdown/Dropdown.js.map +1 -1
  196. package/dist-es/packages/lab/src/dropdown/DropdownBase.js +3 -3
  197. package/dist-es/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
  198. package/dist-es/packages/lab/src/dropdown/useDropdown.js +1 -0
  199. package/dist-es/packages/lab/src/dropdown/useDropdown.js.map +1 -1
  200. package/dist-es/packages/lab/src/dropdown/useDropdownBase.js +1 -0
  201. package/dist-es/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
  202. package/dist-es/packages/lab/src/form-field/FormField.js +62 -75
  203. package/dist-es/packages/lab/src/form-field/FormField.js.map +1 -1
  204. package/dist-es/packages/lab/src/form-field/StatusIndicator.js +18 -31
  205. package/dist-es/packages/lab/src/form-field/StatusIndicator.js.map +1 -1
  206. package/dist-es/packages/lab/src/index.js +1 -6
  207. package/dist-es/packages/lab/src/index.js.map +1 -1
  208. package/dist-es/packages/lab/src/layer-layout/LayerLayout.js +3 -2
  209. package/dist-es/packages/lab/src/layer-layout/LayerLayout.js.map +1 -1
  210. package/dist-es/packages/lab/src/list/Highlighter.js +1 -0
  211. package/dist-es/packages/lab/src/list/Highlighter.js.map +1 -1
  212. package/dist-es/packages/lab/src/list/List.js +1 -0
  213. package/dist-es/packages/lab/src/list/List.js.map +1 -1
  214. package/dist-es/packages/lab/src/list/VirtualizedList.js +1 -0
  215. package/dist-es/packages/lab/src/list/VirtualizedList.js.map +1 -1
  216. package/dist-es/packages/lab/src/list/useList.js +1 -0
  217. package/dist-es/packages/lab/src/list/useList.js.map +1 -1
  218. package/dist-es/packages/lab/src/list/useListHeight.js +1 -0
  219. package/dist-es/packages/lab/src/list/useListHeight.js.map +1 -1
  220. package/dist-es/packages/lab/src/list-deprecated/List.js +5 -26
  221. package/dist-es/packages/lab/src/list-deprecated/List.js.map +1 -1
  222. package/dist-es/packages/lab/src/list-deprecated/ListItemBase.js +31 -61
  223. package/dist-es/packages/lab/src/list-deprecated/ListItemBase.js.map +1 -1
  224. package/dist-es/packages/lab/src/list-deprecated/internal/Highlighter.js +1 -0
  225. package/dist-es/packages/lab/src/list-deprecated/internal/Highlighter.js.map +1 -1
  226. package/dist-es/packages/lab/src/list-deprecated/useTypeSelect.js +1 -0
  227. package/dist-es/packages/lab/src/list-deprecated/useTypeSelect.js.map +1 -1
  228. package/dist-es/packages/lab/src/overlay/Overlay.js +1 -1
  229. package/dist-es/packages/lab/src/overlay/Overlay.js.map +1 -1
  230. package/dist-es/packages/lab/src/overlay/useOverlay.js +2 -3
  231. package/dist-es/packages/lab/src/overlay/useOverlay.js.map +1 -1
  232. package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js +1 -0
  233. package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
  234. package/dist-es/packages/lab/src/pill/PillBase.js +41 -57
  235. package/dist-es/packages/lab/src/pill/PillBase.js.map +1 -1
  236. package/dist-es/packages/lab/src/query-input/internal/CategoryList.js +1 -0
  237. package/dist-es/packages/lab/src/query-input/internal/CategoryList.js.map +1 -1
  238. package/dist-es/packages/lab/src/query-input/internal/CategoryListItem.js +1 -0
  239. package/dist-es/packages/lab/src/query-input/internal/CategoryListItem.js.map +1 -1
  240. package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
  241. package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
  242. package/dist-es/packages/lab/src/query-input/internal/SearchList.js +1 -0
  243. package/dist-es/packages/lab/src/query-input/internal/SearchList.js.map +1 -1
  244. package/dist-es/packages/lab/src/query-input/internal/ValueList.js +1 -0
  245. package/dist-es/packages/lab/src/query-input/internal/ValueList.js.map +1 -1
  246. package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js +2 -3
  247. package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
  248. package/dist-es/packages/lab/src/query-input/useQueryInput.js +1 -0
  249. package/dist-es/packages/lab/src/query-input/useQueryInput.js.map +1 -1
  250. package/dist-es/packages/lab/src/responsive/useOverflow.js +1 -0
  251. package/dist-es/packages/lab/src/responsive/useOverflow.js.map +1 -1
  252. package/dist-es/packages/lab/src/slider/internal/SliderHandle.js +19 -28
  253. package/dist-es/packages/lab/src/slider/internal/SliderHandle.js.map +1 -1
  254. package/dist-es/packages/lab/src/tabs/Tabstrip.js +36 -46
  255. package/dist-es/packages/lab/src/tabs/Tabstrip.js.map +1 -1
  256. package/dist-es/packages/lab/src/tabs/useActivationIndicator.js +1 -0
  257. package/dist-es/packages/lab/src/tabs/useActivationIndicator.js.map +1 -1
  258. package/dist-es/packages/lab/src/tabs/useKeyboardNavigation.js +1 -0
  259. package/dist-es/packages/lab/src/tabs/useKeyboardNavigation.js.map +1 -1
  260. package/dist-es/packages/lab/src/toggle-button/ToggleButton.js +8 -28
  261. package/dist-es/packages/lab/src/toggle-button/ToggleButton.js.map +1 -1
  262. package/dist-es/packages/lab/src/tokenized-input/TokenizedInput.js.map +1 -1
  263. package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
  264. package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
  265. package/dist-es/packages/lab/src/toolbar/Toolbar.js +1 -0
  266. package/dist-es/packages/lab/src/toolbar/Toolbar.js.map +1 -1
  267. package/dist-es/packages/lab/src/toolbar/internal/renderToolbarItems.js +1 -0
  268. package/dist-es/packages/lab/src/toolbar/internal/renderToolbarItems.js.map +1 -1
  269. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +1 -0
  270. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  271. package/dist-es/packages/lab/src/tree/Tree.js +1 -0
  272. package/dist-es/packages/lab/src/tree/Tree.js.map +1 -1
  273. package/dist-es/packages/lab/src/tree/useTree.js +1 -0
  274. package/dist-es/packages/lab/src/tree/useTree.js.map +1 -1
  275. package/dist-es/packages/lab/src/{popper → utils}/useFloatingUI.js +10 -9
  276. package/dist-es/packages/lab/src/utils/useFloatingUI.js.map +1 -0
  277. package/dist-es/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js +1 -2
  278. package/dist-es/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  279. package/dist-types/breadcrumbs/Breadcrumb.d.ts +1 -1
  280. package/dist-types/calendar/internal/CalendarCarousel.d.ts +1 -1
  281. package/dist-types/calendar/internal/CalendarDay.d.ts +2 -2
  282. package/dist-types/calendar/internal/CalendarMonth.d.ts +1 -1
  283. package/dist-types/calendar/internal/CalendarNavigation.d.ts +1 -1
  284. package/dist-types/calendar/internal/CalendarWeekHeader.d.ts +2 -2
  285. package/dist-types/calendar/useCalendarDay.d.ts +1 -1
  286. package/dist-types/cascading-menu/CascadingMenuList.d.ts +1 -1
  287. package/dist-types/cascading-menu/CascadingMenuProps.d.ts +1 -1
  288. package/dist-types/combo-box-deprecated/internal/DefaultComboBox.d.ts +1 -3
  289. package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +3 -4
  290. package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +10 -5
  291. package/dist-types/contact-details/ContactAction.d.ts +1 -2
  292. package/dist-types/contact-details/ContactFavoriteToggle.d.ts +1 -1
  293. package/dist-types/contact-details/internal/FavoriteToggleWithTooltip.d.ts +1 -1
  294. package/dist-types/content-status/internal/StatusIndicator.d.ts +1 -2
  295. package/dist-types/form-field/StatusIndicator.d.ts +1 -1
  296. package/dist-types/index.d.ts +0 -4
  297. package/dist-types/layer-layout/LayerLayout.d.ts +1 -1
  298. package/dist-types/list-deprecated/ListProps.d.ts +0 -5
  299. package/dist-types/overlay/Overlay.d.ts +1 -1
  300. package/dist-types/overlay/useOverlay.d.ts +1 -1
  301. package/dist-types/pill/PillBase.d.ts +1 -1
  302. package/dist-types/skip-link/SkipLink.d.ts +1 -1
  303. package/dist-types/stepper-input/useStepperInput.d.ts +3 -0
  304. package/dist-types/tokenized-input/TokenizedInput.d.ts +1 -1
  305. package/dist-types/toolbar/ToolbarProps.d.ts +1 -1
  306. package/dist-types/utils/index.d.ts +1 -0
  307. package/dist-types/utils/useFloatingUI.d.ts +34 -0
  308. package/dist-types/window/ElectronWindow.d.ts +1 -1
  309. package/dist-types/window/WindowContext.d.ts +3 -3
  310. package/package.json +3 -3
  311. package/dist-cjs/packages/lab/src/popper/useFloatingUI.js +0 -37
  312. package/dist-cjs/packages/lab/src/popper/useFloatingUI.js.map +0 -1
  313. package/dist-cjs/packages/lab/src/spinner/Spinner.css.js +0 -9
  314. package/dist-cjs/packages/lab/src/spinner/Spinner.css.js.map +0 -1
  315. package/dist-cjs/packages/lab/src/spinner/Spinner.js +0 -76
  316. package/dist-cjs/packages/lab/src/spinner/Spinner.js.map +0 -1
  317. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js +0 -71
  318. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js.map +0 -1
  319. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js +0 -71
  320. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js.map +0 -1
  321. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js +0 -71
  322. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js.map +0 -1
  323. package/dist-cjs/packages/lab/src/spinner/svgSpinners/index.js +0 -21
  324. package/dist-cjs/packages/lab/src/spinner/svgSpinners/index.js.map +0 -1
  325. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.css.js +0 -9
  326. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.css.js.map +0 -1
  327. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.js +0 -40
  328. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.js.map +0 -1
  329. package/dist-cjs/packages/lab/src/tooltip/Tooltip.css.js +0 -9
  330. package/dist-cjs/packages/lab/src/tooltip/Tooltip.css.js.map +0 -1
  331. package/dist-cjs/packages/lab/src/tooltip/Tooltip.js +0 -84
  332. package/dist-cjs/packages/lab/src/tooltip/Tooltip.js.map +0 -1
  333. package/dist-cjs/packages/lab/src/tooltip/TooltipContext.js +0 -26
  334. package/dist-cjs/packages/lab/src/tooltip/TooltipContext.js.map +0 -1
  335. package/dist-cjs/packages/lab/src/tooltip/useAriaAnnounce.js +0 -87
  336. package/dist-cjs/packages/lab/src/tooltip/useAriaAnnounce.js.map +0 -1
  337. package/dist-cjs/packages/lab/src/tooltip/useTooltip.js +0 -137
  338. package/dist-cjs/packages/lab/src/tooltip/useTooltip.js.map +0 -1
  339. package/dist-es/packages/lab/src/popper/useFloatingUI.js.map +0 -1
  340. package/dist-es/packages/lab/src/spinner/Spinner.css.js +0 -7
  341. package/dist-es/packages/lab/src/spinner/Spinner.css.js.map +0 -1
  342. package/dist-es/packages/lab/src/spinner/Spinner.js +0 -71
  343. package/dist-es/packages/lab/src/spinner/Spinner.js.map +0 -1
  344. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js +0 -67
  345. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js.map +0 -1
  346. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js +0 -67
  347. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js.map +0 -1
  348. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js +0 -67
  349. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js.map +0 -1
  350. package/dist-es/packages/lab/src/spinner/svgSpinners/index.js +0 -17
  351. package/dist-es/packages/lab/src/spinner/svgSpinners/index.js.map +0 -1
  352. package/dist-es/packages/lab/src/split-layout/SplitLayout.css.js +0 -7
  353. package/dist-es/packages/lab/src/split-layout/SplitLayout.css.js.map +0 -1
  354. package/dist-es/packages/lab/src/split-layout/SplitLayout.js +0 -36
  355. package/dist-es/packages/lab/src/split-layout/SplitLayout.js.map +0 -1
  356. package/dist-es/packages/lab/src/tooltip/Tooltip.css.js +0 -7
  357. package/dist-es/packages/lab/src/tooltip/Tooltip.css.js.map +0 -1
  358. package/dist-es/packages/lab/src/tooltip/Tooltip.js +0 -80
  359. package/dist-es/packages/lab/src/tooltip/Tooltip.js.map +0 -1
  360. package/dist-es/packages/lab/src/tooltip/TooltipContext.js +0 -21
  361. package/dist-es/packages/lab/src/tooltip/TooltipContext.js.map +0 -1
  362. package/dist-es/packages/lab/src/tooltip/useAriaAnnounce.js +0 -83
  363. package/dist-es/packages/lab/src/tooltip/useAriaAnnounce.js.map +0 -1
  364. package/dist-es/packages/lab/src/tooltip/useTooltip.js +0 -133
  365. package/dist-es/packages/lab/src/tooltip/useTooltip.js.map +0 -1
  366. package/dist-types/popper/index.d.ts +0 -1
  367. package/dist-types/popper/useFloatingUI.d.ts +0 -5
  368. package/dist-types/spinner/Spinner.d.ts +0 -45
  369. package/dist-types/spinner/index.d.ts +0 -1
  370. package/dist-types/spinner/svgSpinners/SpinnerLarge.d.ts +0 -2
  371. package/dist-types/spinner/svgSpinners/SpinnerMedium.d.ts +0 -2
  372. package/dist-types/spinner/svgSpinners/SpinnerSmall.d.ts +0 -2
  373. package/dist-types/spinner/svgSpinners/index.d.ts +0 -2
  374. package/dist-types/split-layout/SplitLayout.d.ts +0 -32
  375. package/dist-types/split-layout/index.d.ts +0 -1
  376. package/dist-types/tooltip/Tooltip.d.ts +0 -37
  377. package/dist-types/tooltip/TooltipContext.d.ts +0 -22
  378. package/dist-types/tooltip/index.d.ts +0 -3
  379. package/dist-types/tooltip/useAriaAnnounce.d.ts +0 -9
  380. package/dist-types/tooltip/useTooltip.d.ts +0 -31
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var React = require('react');
7
7
  var core = require('@salt-ds/core');
8
+ require('../utils/useFloatingUI.js');
8
9
  var useLayoutEffectSkipFirst = require('../utils/useLayoutEffectSkipFirst.js');
9
10
  var AccordionSectionContext = require('./AccordionSectionContext.js');
10
11
  var clsx = require('clsx');
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionSection.js","sources":["../src/accordion/AccordionSection.tsx"],"sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useLayoutEffectSkipFirst } from \"../utils\";\nimport { AccordionSectionContext } from \"./AccordionSectionContext\";\nimport { clsx } from \"clsx\";\nimport \"./Accordion.css\";\nimport { useAccordionContext } from \"./AccordionContext\";\nimport { isNotProduction } from \"./utils\";\n\nconst withBaseName = makePrefixer(\"saltAccordionSection\");\n\nexport interface AccordionSectionProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n defaultExpanded?: boolean;\n disabled?: boolean;\n expanded?: boolean;\n onChange?: (isExpanded: boolean) => void;\n className?: string;\n}\n\nexport const AccordionSection = forwardRef<\n HTMLDivElement,\n AccordionSectionProps\n>(function Accordion(\n {\n id: idProp,\n disabled: disabledProp,\n onChange: onChangeProp,\n defaultExpanded: defaultExpandedProp,\n expanded: expandedProp,\n children,\n className,\n ...restProps\n },\n ref\n) {\n const [id, setId] = useState(() =>\n idProp != null ? idProp : `salt-${Math.round(Math.random() * 1e5)}`\n );\n\n if (idProp != null && idProp != id) {\n setId(idProp);\n }\n\n const {\n registerSection,\n unregisterSection,\n onChange,\n isExpanded,\n disabled: accordionDisabled,\n } = useAccordionContext();\n\n const isControlled = expandedProp != null;\n const expanded = isControlled ? expandedProp : isExpanded(id);\n const disabled = disabledProp != null ? disabledProp : accordionDisabled;\n\n useEffect(() => {\n registerSection(\n id,\n expandedProp != null ? expandedProp : !!defaultExpandedProp\n );\n return () => {\n unregisterSection(id);\n };\n }, [id, registerSection, unregisterSection]);\n\n const onToggle = useCallback(() => {\n const newExpanded = !expanded;\n if (onChangeProp) {\n onChangeProp(newExpanded);\n }\n if (!isControlled) {\n onChange(id, newExpanded);\n }\n }, [id, expanded, onChangeProp, onChange, isControlled]);\n\n useEffect(() => {\n const isControlled = expandedProp != null;\n if (isControlled) {\n onChange(id, expandedProp);\n }\n }, [expandedProp, isControlled]);\n\n useLayoutEffectSkipFirst(() => {\n if (isNotProduction()) {\n const mode = (isControlled: boolean) =>\n isControlled ? \"controlled\" : \"uncontrolled\";\n console.error(\n `A component is changing from ${mode(!isControlled)} to ${mode(\n isControlled\n )} mode.`\n );\n }\n }, [isControlled]);\n\n const contextValue: AccordionSectionContext = useMemo(() => {\n return {\n isExpanded: expanded,\n isDisabled: disabled,\n onToggle,\n };\n }, [expanded, disabled, onToggle]);\n\n return (\n <div\n {...restProps}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"expanded\")]: expanded,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n ref={ref}\n >\n <AccordionSectionContext.Provider value={contextValue}>\n {children}\n </AccordionSectionContext.Provider>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","useState","useAccordionContext","useEffect","useCallback","isControlled","useLayoutEffectSkipFirst","isNotProduction","useMemo","jsx","clsx","AccordionSectionContext"],"mappings":"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"}
1
+ {"version":3,"file":"AccordionSection.js","sources":["../src/accordion/AccordionSection.tsx"],"sourcesContent":["import {\n forwardRef,\n HTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useLayoutEffectSkipFirst } from \"../utils\";\nimport { AccordionSectionContext } from \"./AccordionSectionContext\";\nimport { clsx } from \"clsx\";\nimport \"./Accordion.css\";\nimport { useAccordionContext } from \"./AccordionContext\";\nimport { isNotProduction } from \"./utils\";\n\nconst withBaseName = makePrefixer(\"saltAccordionSection\");\n\nexport interface AccordionSectionProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n defaultExpanded?: boolean;\n disabled?: boolean;\n expanded?: boolean;\n onChange?: (isExpanded: boolean) => void;\n className?: string;\n}\n\nexport const AccordionSection = forwardRef<\n HTMLDivElement,\n AccordionSectionProps\n>(function Accordion(\n {\n id: idProp,\n disabled: disabledProp,\n onChange: onChangeProp,\n defaultExpanded: defaultExpandedProp,\n expanded: expandedProp,\n children,\n className,\n ...restProps\n },\n ref\n) {\n const [id, setId] = useState(() =>\n idProp != null ? idProp : `salt-${Math.round(Math.random() * 1e5)}`\n );\n\n if (idProp != null && idProp != id) {\n setId(idProp);\n }\n\n const {\n registerSection,\n unregisterSection,\n onChange,\n isExpanded,\n disabled: accordionDisabled,\n } = useAccordionContext();\n\n const isControlled = expandedProp != null;\n const expanded = isControlled ? expandedProp : isExpanded(id);\n const disabled = disabledProp != null ? disabledProp : accordionDisabled;\n\n useEffect(() => {\n registerSection(\n id,\n expandedProp != null ? expandedProp : !!defaultExpandedProp\n );\n return () => {\n unregisterSection(id);\n };\n }, [id, registerSection, unregisterSection]);\n\n const onToggle = useCallback(() => {\n const newExpanded = !expanded;\n if (onChangeProp) {\n onChangeProp(newExpanded);\n }\n if (!isControlled) {\n onChange(id, newExpanded);\n }\n }, [id, expanded, onChangeProp, onChange, isControlled]);\n\n useEffect(() => {\n const isControlled = expandedProp != null;\n if (isControlled) {\n onChange(id, expandedProp);\n }\n }, [expandedProp, isControlled]);\n\n useLayoutEffectSkipFirst(() => {\n if (isNotProduction()) {\n const mode = (isControlled: boolean) =>\n isControlled ? \"controlled\" : \"uncontrolled\";\n console.error(\n `A component is changing from ${mode(!isControlled)} to ${mode(\n isControlled\n )} mode.`\n );\n }\n }, [isControlled]);\n\n const contextValue: AccordionSectionContext = useMemo(() => {\n return {\n isExpanded: expanded,\n isDisabled: disabled,\n onToggle,\n };\n }, [expanded, disabled, onToggle]);\n\n return (\n <div\n {...restProps}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"expanded\")]: expanded,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n ref={ref}\n >\n <AccordionSectionContext.Provider value={contextValue}>\n {children}\n </AccordionSectionContext.Provider>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","useState","useAccordionContext","useEffect","useCallback","isControlled","useLayoutEffectSkipFirst","isNotProduction","useMemo","jsx","clsx","AccordionSectionContext"],"mappings":"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"}
@@ -8,6 +8,7 @@ var Toolbar = require('../toolbar/Toolbar.js');
8
8
  var core = require('@salt-ds/core');
9
9
  var React = require('react');
10
10
  require('../toolbar/overflow-panel/OverflowPanel.js');
11
+ require('../utils/useFloatingUI.js');
11
12
  require('../responsive/useResizeObserver.js');
12
13
  require('../toolbar/toolbar-field/ToolbarField.js');
13
14
  require('../toolbar/Tooltray.css.js');
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.js","sources":["../src/app-header/AppHeader.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { Toolbar } from \"../toolbar\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { MenuIcon } from \"@salt-ds/icons\";\n\nimport \"./AppHeader.css\";\nimport { forwardRef, HTMLAttributes } from \"react\";\n\nconst withBaseName = makePrefixer(\"saltAppHeader\");\n\nexport type AppHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const AppHeader = forwardRef<HTMLDivElement, AppHeaderProps>(\n ({ children, className, ...rest }, ref) => {\n // const [innerContainerRef, overflowedItems] = useOverflowObserver(\n // \"horizontal\",\n // null\n // );\n\n return (\n <Toolbar\n className={clsx(withBaseName(), className)}\n ref={ref}\n overflowButtonIcon={<MenuIcon />}\n // OverflowButtonProps={{ align: \"start\" }}\n >\n {children}\n </Toolbar>\n );\n // return (\n // <div className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n // <div className={withBaseName(\"innerContainer\")} ref={innerContainerRef}>\n // <OverflowMenu\n // className={withBaseName(\"navMenu\")}\n // IconComponent={MenuIcon}\n // source={overflowedItems}\n // />\n // {children}\n // </div>\n // </div>\n // );\n }\n);\n"],"names":["makePrefixer","forwardRef","jsx","Toolbar","clsx","MenuIcon"],"mappings":";;;;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,kBAAa,eAAe,CAAA,CAAA;AAI1C,MAAM,SAAY,GAAAC,gBAAA;AAAA,EACvB,CAAC,EAAE,QAAA,EAAU,SAAc,EAAA,GAAA,IAAA,IAAQ,GAAQ,KAAA;AAMzC,IAAA,uBACGC,cAAA,CAAAC,eAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,kBAAA,iCAAqBC,cAAS,EAAA,EAAA,CAAA;AAAA,MAG7B,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAcJ;AACF;;;;"}
1
+ {"version":3,"file":"AppHeader.js","sources":["../src/app-header/AppHeader.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { Toolbar } from \"../toolbar\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { MenuIcon } from \"@salt-ds/icons\";\n\nimport \"./AppHeader.css\";\nimport { forwardRef, HTMLAttributes } from \"react\";\n\nconst withBaseName = makePrefixer(\"saltAppHeader\");\n\nexport type AppHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const AppHeader = forwardRef<HTMLDivElement, AppHeaderProps>(\n ({ children, className, ...rest }, ref) => {\n // const [innerContainerRef, overflowedItems] = useOverflowObserver(\n // \"horizontal\",\n // null\n // );\n\n return (\n <Toolbar\n className={clsx(withBaseName(), className)}\n ref={ref}\n overflowButtonIcon={<MenuIcon />}\n // OverflowButtonProps={{ align: \"start\" }}\n >\n {children}\n </Toolbar>\n );\n // return (\n // <div className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n // <div className={withBaseName(\"innerContainer\")} ref={innerContainerRef}>\n // <OverflowMenu\n // className={withBaseName(\"navMenu\")}\n // IconComponent={MenuIcon}\n // source={overflowedItems}\n // />\n // {children}\n // </div>\n // </div>\n // );\n }\n);\n"],"names":["makePrefixer","forwardRef","jsx","Toolbar","clsx","MenuIcon"],"mappings":";;;;;;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,kBAAa,eAAe,CAAA,CAAA;AAI1C,MAAM,SAAY,GAAAC,gBAAA;AAAA,EACvB,CAAC,EAAE,QAAA,EAAU,SAAc,EAAA,GAAA,IAAA,IAAQ,GAAQ,KAAA;AAMzC,IAAA,uBACGC,cAAA,CAAAC,eAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,kBAAA,iCAAqBC,cAAS,EAAA,EAAA,CAAA;AAAA,MAG7B,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAcJ;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, makePrefixer, Text } from \"@salt-ds/core\";\nimport { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { Children, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\nimport { TooltipProps } from \"../tooltip\";\n\nimport \"./Breadcrumb.css\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n onItemClick?: (item: any, event: any) => void; // TODO\n overflowLabel?: string;\n Icon?: React.ComponentType<IconProps>;\n}\n\nexport const Breadcrumb = forwardRef<HTMLLIElement, BreadcrumbProps>(\n function Breadcrumb(\n {\n children,\n ContainerProps = {},\n tooltipText,\n tooltipProps,\n isCurrentLevel,\n onItemClick,\n overflowLabel,\n maxWidth,\n Icon,\n minWidth,\n className,\n ...props\n },\n ref\n ) {\n const { itemsMaxWidth, itemsMinWidth, liClass } = useBreadcrumbsContext();\n\n const hasChildren = Children.count(children) !== 0;\n const hasOnlyIcon = Icon && !hasChildren;\n\n const getDefaultBreadcrumb = () =>\n isCurrentLevel ? (\n <Text\n maxRows={1}\n className={clsx(\n withBaseName(),\n className,\n withBaseName(\"currentLevel\")\n )}\n styleAs=\"label\"\n >\n {children}\n </Text>\n ) : (\n <div\n className={clsx(\n withBaseName(),\n className,\n {\n [withBaseName(\"justifyContentCenter\")]: hasOnlyIcon,\n },\n withBaseName(\"regular\")\n )}\n >\n {Icon && <Icon className={withBaseName(\"icon\")} />}\n {hasChildren && (\n <Link maxRows={1} styleAs=\"label\" {...props}>\n {children}\n </Link>\n )}\n </div>\n );\n\n const content = getDefaultBreadcrumb();\n\n const {\n style: containerStyle,\n className: containerClassName,\n ...containerPropsRest\n } = ContainerProps;\n\n return (\n <li\n ref={ref}\n style={{\n ...containerStyle,\n minWidth: minWidth ?? itemsMinWidth,\n maxWidth: maxWidth ?? itemsMaxWidth,\n }}\n className={clsx(liClass, containerClassName)}\n {...containerPropsRest}\n >\n {content}\n </li>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","Breadcrumb","useBreadcrumbsContext","Children","jsx","Text","clsx","jsxs","Link"],"mappings":";;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA,CAAA;AAiB3C,MAAM,UAAa,GAAAC,gBAAA;AAAA,EACxB,SAASC,WACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,iBAAiB,EAAC;AAAA,IAClB,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACG,GAAA,KAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,EAAE,aAAA,EAAe,aAAe,EAAA,OAAA,KAAYC,wCAAsB,EAAA,CAAA;AAExE,IAAA,MAAM,WAAc,GAAAC,cAAA,CAAS,KAAM,CAAA,QAAQ,CAAM,KAAA,CAAA,CAAA;AACjD,IAAM,MAAA,WAAA,GAAc,QAAQ,CAAC,WAAA,CAAA;AAE7B,IAAM,MAAA,oBAAA,GAAuB,MAC3B,cAAA,mBACGC,cAAA,CAAAC,SAAA,EAAA;AAAA,MACC,OAAS,EAAA,CAAA;AAAA,MACT,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,SAAA;AAAA,QACA,aAAa,cAAc,CAAA;AAAA,OAC7B;AAAA,MACA,OAAQ,EAAA,OAAA;AAAA,MAEP,QAAA;AAAA,KACH,oBAECC,eAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAAD,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,SAAA;AAAA,QACA;AAAA,UACE,CAAC,YAAa,CAAA,sBAAsB,CAAI,GAAA,WAAA;AAAA,SAC1C;AAAA,QACA,aAAa,SAAS,CAAA;AAAA,OACxB;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,oBAASF,cAAA,CAAA,IAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,SAAG,CAAA;AAAA,QAC/C,+BACEA,cAAA,CAAAI,SAAA,EAAA;AAAA,UAAK,OAAS,EAAA,CAAA;AAAA,UAAG,OAAQ,EAAA,OAAA;AAAA,UAAS,GAAG,KAAA;AAAA,UACnC,QAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAGJ,IAAA,MAAM,UAAU,oBAAqB,EAAA,CAAA;AAErC,IAAM,MAAA;AAAA,MACJ,KAAO,EAAA,cAAA;AAAA,MACP,SAAW,EAAA,kBAAA;AAAA,MACR,GAAA,kBAAA;AAAA,KACD,GAAA,cAAA,CAAA;AAEJ,IAAA,uBACGJ,cAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,GAAG,cAAA;AAAA,QACH,UAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,aAAA;AAAA,QACtB,UAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,aAAA;AAAA,OACxB;AAAA,MACA,SAAA,EAAWE,SAAK,CAAA,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC1C,GAAG,kBAAA;AAAA,MAEH,QAAA,EAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, makePrefixer, Text, TooltipProps } from \"@salt-ds/core\";\nimport { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { Children, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\n\nimport \"./Breadcrumb.css\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n onItemClick?: (item: any, event: any) => void; // TODO\n overflowLabel?: string;\n Icon?: React.ComponentType<IconProps>;\n}\n\nexport const Breadcrumb = forwardRef<HTMLLIElement, BreadcrumbProps>(\n function Breadcrumb(\n {\n children,\n ContainerProps = {},\n tooltipText,\n tooltipProps,\n isCurrentLevel,\n onItemClick,\n overflowLabel,\n maxWidth,\n Icon,\n minWidth,\n className,\n ...props\n },\n ref\n ) {\n const { itemsMaxWidth, itemsMinWidth, liClass } = useBreadcrumbsContext();\n\n const hasChildren = Children.count(children) !== 0;\n const hasOnlyIcon = Icon && !hasChildren;\n\n const getDefaultBreadcrumb = () =>\n isCurrentLevel ? (\n <Text\n maxRows={1}\n className={clsx(\n withBaseName(),\n className,\n withBaseName(\"currentLevel\")\n )}\n styleAs=\"label\"\n >\n {children}\n </Text>\n ) : (\n <div\n className={clsx(\n withBaseName(),\n className,\n {\n [withBaseName(\"justifyContentCenter\")]: hasOnlyIcon,\n },\n withBaseName(\"regular\")\n )}\n >\n {Icon && <Icon className={withBaseName(\"icon\")} />}\n {hasChildren && (\n <Link maxRows={1} styleAs=\"label\" {...props}>\n {children}\n </Link>\n )}\n </div>\n );\n\n const content = getDefaultBreadcrumb();\n\n const {\n style: containerStyle,\n className: containerClassName,\n ...containerPropsRest\n } = ContainerProps;\n\n return (\n <li\n ref={ref}\n style={{\n ...containerStyle,\n minWidth: minWidth ?? itemsMinWidth,\n maxWidth: maxWidth ?? itemsMaxWidth,\n }}\n className={clsx(liClass, containerClassName)}\n {...containerPropsRest}\n >\n {content}\n </li>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","Breadcrumb","useBreadcrumbsContext","Children","jsx","Text","clsx","jsxs","Link"],"mappings":";;;;;;;;;;;AAQA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA,CAAA;AAiB3C,MAAM,UAAa,GAAAC,gBAAA;AAAA,EACxB,SAASC,WACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,iBAAiB,EAAC;AAAA,IAClB,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACG,GAAA,KAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,EAAE,aAAA,EAAe,aAAe,EAAA,OAAA,KAAYC,wCAAsB,EAAA,CAAA;AAExE,IAAA,MAAM,WAAc,GAAAC,cAAA,CAAS,KAAM,CAAA,QAAQ,CAAM,KAAA,CAAA,CAAA;AACjD,IAAM,MAAA,WAAA,GAAc,QAAQ,CAAC,WAAA,CAAA;AAE7B,IAAM,MAAA,oBAAA,GAAuB,MAC3B,cAAA,mBACGC,cAAA,CAAAC,SAAA,EAAA;AAAA,MACC,OAAS,EAAA,CAAA;AAAA,MACT,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,SAAA;AAAA,QACA,aAAa,cAAc,CAAA;AAAA,OAC7B;AAAA,MACA,OAAQ,EAAA,OAAA;AAAA,MAEP,QAAA;AAAA,KACH,oBAECC,eAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAAD,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,SAAA;AAAA,QACA;AAAA,UACE,CAAC,YAAa,CAAA,sBAAsB,CAAI,GAAA,WAAA;AAAA,SAC1C;AAAA,QACA,aAAa,SAAS,CAAA;AAAA,OACxB;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,oBAASF,cAAA,CAAA,IAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,SAAG,CAAA;AAAA,QAC/C,+BACEA,cAAA,CAAAI,SAAA,EAAA;AAAA,UAAK,OAAS,EAAA,CAAA;AAAA,UAAG,OAAQ,EAAA,OAAA;AAAA,UAAS,GAAG,KAAA;AAAA,UACnC,QAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAGJ,IAAA,MAAM,UAAU,oBAAqB,EAAA,CAAA;AAErC,IAAM,MAAA;AAAA,MACJ,KAAO,EAAA,cAAA;AAAA,MACP,SAAW,EAAA,kBAAA;AAAA,MACR,GAAA,kBAAA;AAAA,KACD,GAAA,cAAA,CAAA;AAEJ,IAAA,uBACGJ,cAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACL,GAAG,cAAA;AAAA,QACH,UAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,aAAA;AAAA,QACtB,UAAU,QAAY,IAAA,IAAA,GAAA,QAAA,GAAA,aAAA;AAAA,OACxB;AAAA,MACA,SAAA,EAAWE,SAAK,CAAA,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC1C,GAAG,kBAAA;AAAA,MAEH,QAAA,EAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -9,6 +9,7 @@ var core = require('@salt-ds/core');
9
9
  var ButtonBarContext = require('./internal/ButtonBarContext.js');
10
10
  var useDescendant = require('./internal/useDescendant.js');
11
11
  var capitalize = require('../utils/capitalize.js');
12
+ require('../utils/useFloatingUI.js');
12
13
  require('./OrderedButton.css.js');
13
14
 
14
15
  const withBasename = core.makePrefixer("saltOrderedButton");
@@ -1 +1 @@
1
- {"version":3,"file":"OrderedButton.js","sources":["../src/button-bar/OrderedButton.tsx"],"sourcesContent":["import { forwardRef, useContext } from \"react\";\nimport { clsx } from \"clsx\";\n\nimport { Button, ButtonProps, makePrefixer } from \"@salt-ds/core\";\nimport { ButtonBarContext } from \"./internal/ButtonBarContext\";\nimport { useDescendant } from \"./internal/useDescendant\";\nimport { capitalize } from \"../utils\";\n\nimport \"./OrderedButton.css\";\n\nexport interface OrderedButtonProps extends ButtonProps {\n /**\n * Aligns the button (and any buttons before/after) it on the left/right\n * of the container\n */\n align?: \"left\" | \"right\";\n /**\n * The order the button will be rendered when NOT stacked and the button bar is aligned left order.\n * Buttons are ordered in descending order by default and then by their source order.\n * This defaults to 1 for `CTA`, 2 for `regular` and 0 for `secondary`\n */\n alignLeftOrder?: number;\n /**\n * The className(s) of the component\n */\n className?: string;\n /**\n * The order the button will be rendered when NOT stacked. Buttons are ordered\n * in descending order by default and then by their source order.\n * This defaults to 0 for `CTA`, 1 for `regular` and 2 for `secondary`\n */\n order?: number;\n /**\n * The order the button will be rendered when stacked. Buttons are ordered\n * in descending order by default and then by their source order.\n * This defaults to 2 for `CTA`, 1 for `regular` and 0 for `secondary`\n */\n stackOrder?: number;\n}\n\nconst withBasename = makePrefixer(\"saltOrderedButton\");\n\nexport const OrderedButton = forwardRef<HTMLButtonElement, OrderedButtonProps>(\n function OrderedButton(\n {\n className,\n align: alignProp,\n order,\n alignLeftOrder,\n stackOrder,\n variant,\n ...restProps\n },\n ref\n ) {\n const index = useDescendant({ order, stackOrder, alignLeftOrder, variant });\n const {\n matches,\n align: alignContext,\n alignedIndex,\n } = useContext(ButtonBarContext);\n\n const alignFromParent = index === alignedIndex ? alignContext : undefined;\n const align = alignProp || alignFromParent;\n\n return (\n <Button\n className={clsx(\n withBasename(),\n {\n [withBasename(`align${align ? capitalize(align) : \"\"}`)]:\n align && !matches,\n [withBasename(\"stacked\")]: matches,\n },\n className\n )}\n ref={ref}\n variant={variant}\n {...restProps}\n />\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","OrderedButton","useDescendant","useContext","ButtonBarContext","jsx","Button","clsx","capitalize"],"mappings":";;;;;;;;;;;;;AAwCA,MAAM,YAAA,GAAeA,kBAAa,mBAAmB,CAAA,CAAA;AAE9C,MAAM,aAAgB,GAAAC,gBAAA;AAAA,EAC3B,SAASC,cACP,CAAA;AAAA,IACE,SAAA;AAAA,IACA,KAAO,EAAA,SAAA;AAAA,IACP,KAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,QAAQC,2BAAc,CAAA,EAAE,OAAO,UAAY,EAAA,cAAA,EAAgB,SAAS,CAAA,CAAA;AAC1E,IAAM,MAAA;AAAA,MACJ,OAAA;AAAA,MACA,KAAO,EAAA,YAAA;AAAA,MACP,YAAA;AAAA,KACF,GAAIC,iBAAWC,iCAAgB,CAAA,CAAA;AAE/B,IAAM,MAAA,eAAA,GAAkB,KAAU,KAAA,YAAA,GAAe,YAAe,GAAA,KAAA,CAAA,CAAA;AAChE,IAAA,MAAM,QAAQ,SAAa,IAAA,eAAA,CAAA;AAE3B,IAAA,uBACGC,cAAA,CAAAC,WAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,CAAA,KAAA,EAAQ,KAAQ,GAAAC,qBAAA,CAAW,KAAK,CAAI,GAAA,EAAA,CAAA,CAAI,CACpD,GAAA,KAAA,IAAS,CAAC,OAAA;AAAA,UACZ,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,SAC7B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,OAAA;AAAA,MACC,GAAG,SAAA;AAAA,KACN,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"OrderedButton.js","sources":["../src/button-bar/OrderedButton.tsx"],"sourcesContent":["import { forwardRef, useContext } from \"react\";\nimport { clsx } from \"clsx\";\n\nimport { Button, ButtonProps, makePrefixer } from \"@salt-ds/core\";\nimport { ButtonBarContext } from \"./internal/ButtonBarContext\";\nimport { useDescendant } from \"./internal/useDescendant\";\nimport { capitalize } from \"../utils\";\n\nimport \"./OrderedButton.css\";\n\nexport interface OrderedButtonProps extends ButtonProps {\n /**\n * Aligns the button (and any buttons before/after) it on the left/right\n * of the container\n */\n align?: \"left\" | \"right\";\n /**\n * The order the button will be rendered when NOT stacked and the button bar is aligned left order.\n * Buttons are ordered in descending order by default and then by their source order.\n * This defaults to 1 for `CTA`, 2 for `regular` and 0 for `secondary`\n */\n alignLeftOrder?: number;\n /**\n * The className(s) of the component\n */\n className?: string;\n /**\n * The order the button will be rendered when NOT stacked. Buttons are ordered\n * in descending order by default and then by their source order.\n * This defaults to 0 for `CTA`, 1 for `regular` and 2 for `secondary`\n */\n order?: number;\n /**\n * The order the button will be rendered when stacked. Buttons are ordered\n * in descending order by default and then by their source order.\n * This defaults to 2 for `CTA`, 1 for `regular` and 0 for `secondary`\n */\n stackOrder?: number;\n}\n\nconst withBasename = makePrefixer(\"saltOrderedButton\");\n\nexport const OrderedButton = forwardRef<HTMLButtonElement, OrderedButtonProps>(\n function OrderedButton(\n {\n className,\n align: alignProp,\n order,\n alignLeftOrder,\n stackOrder,\n variant,\n ...restProps\n },\n ref\n ) {\n const index = useDescendant({ order, stackOrder, alignLeftOrder, variant });\n const {\n matches,\n align: alignContext,\n alignedIndex,\n } = useContext(ButtonBarContext);\n\n const alignFromParent = index === alignedIndex ? alignContext : undefined;\n const align = alignProp || alignFromParent;\n\n return (\n <Button\n className={clsx(\n withBasename(),\n {\n [withBasename(`align${align ? capitalize(align) : \"\"}`)]:\n align && !matches,\n [withBasename(\"stacked\")]: matches,\n },\n className\n )}\n ref={ref}\n variant={variant}\n {...restProps}\n />\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","OrderedButton","useDescendant","useContext","ButtonBarContext","jsx","Button","clsx","capitalize"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAM,YAAA,GAAeA,kBAAa,mBAAmB,CAAA,CAAA;AAE9C,MAAM,aAAgB,GAAAC,gBAAA;AAAA,EAC3B,SAASC,cACP,CAAA;AAAA,IACE,SAAA;AAAA,IACA,KAAO,EAAA,SAAA;AAAA,IACP,KAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,QAAQC,2BAAc,CAAA,EAAE,OAAO,UAAY,EAAA,cAAA,EAAgB,SAAS,CAAA,CAAA;AAC1E,IAAM,MAAA;AAAA,MACJ,OAAA;AAAA,MACA,KAAO,EAAA,YAAA;AAAA,MACP,YAAA;AAAA,KACF,GAAIC,iBAAWC,iCAAgB,CAAA,CAAA;AAE/B,IAAM,MAAA,eAAA,GAAkB,KAAU,KAAA,YAAA,GAAe,YAAe,GAAA,KAAA,CAAA,CAAA;AAChE,IAAA,MAAM,QAAQ,SAAa,IAAA,eAAA,CAAA;AAE3B,IAAA,uBACGC,cAAA,CAAAC,WAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,CAAA,KAAA,EAAQ,KAAQ,GAAAC,qBAAA,CAAW,KAAK,CAAI,GAAA,EAAA,CAAA,CAAI,CACpD,GAAA,KAAA,IAAS,CAAC,OAAA;AAAA,UACZ,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,SAC7B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,OAAA;AAAA,MACC,GAAG,SAAA;AAAA,KACN,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -10,9 +10,6 @@ var React = require('react');
10
10
  var useCalendarDay = require('../useCalendarDay.js');
11
11
  require('./CalendarDay.css.js');
12
12
  var utils = require('./utils.js');
13
- var Tooltip = require('../../tooltip/Tooltip.js');
14
- require('../../tooltip/TooltipContext.js');
15
- var useTooltip = require('../../tooltip/useTooltip.js');
16
13
 
17
14
  const withBaseName = core.makePrefixer("saltCalendarDay");
18
15
  const CalendarDay = React.forwardRef(
@@ -27,54 +24,41 @@ const CalendarDay = React.forwardRef(
27
24
  dayRef
28
25
  );
29
26
  const { outOfRange, today, unselectable, hidden } = status;
30
- const { getTriggerProps, getTooltipProps } = useTooltip.useTooltip({
27
+ return /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, {
28
+ hideIcon: true,
29
+ status: "error",
30
+ content: unselectableReason,
31
31
  disabled: !unselectableReason,
32
32
  placement: "top",
33
- enterDelay: 300
34
- });
35
- const { ref: triggerRef, ...triggerProps } = getTriggerProps({
36
- "aria-label": utils.formatDate(day),
37
- ...dayProps,
38
- ...rest,
39
- className: clsx.clsx(
40
- withBaseName(),
41
- {
42
- [withBaseName("hidden")]: hidden,
43
- [withBaseName("outOfRange")]: outOfRange,
44
- [withBaseName("today")]: today,
45
- [withBaseName("unselectable")]: !!unselectable,
46
- [withBaseName("unselectableLow")]: unselectable === "low",
47
- [withBaseName("unselectableMedium")]: unselectable === "medium"
48
- },
49
- dayProps.className,
50
- className
51
- )
52
- });
53
- const handleTriggerRef = core.useForkRef(triggerRef, dayRef);
54
- const handleRef = core.useForkRef(handleTriggerRef, ref);
55
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
56
- children: [
57
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
58
- ...getTooltipProps({
59
- hideIcon: true,
60
- status: "error",
61
- title: unselectableReason,
62
- ...TooltipProps2
63
- })
64
- }),
65
- /* @__PURE__ */ jsxRuntime.jsxs("button", {
66
- ...triggerProps,
67
- ref: handleRef,
68
- children: [
69
- unselectable === "medium" && /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, {
70
- "aria-hidden": true,
71
- "aria-label": void 0,
72
- className: withBaseName("blockedIcon")
73
- }),
74
- renderDayContents ? renderDayContents(day, status) : utils.formatDate(day, { day: "numeric" })
75
- ]
76
- })
77
- ]
33
+ enterDelay: 300,
34
+ ...TooltipProps2,
35
+ children: /* @__PURE__ */ jsxRuntime.jsxs("button", {
36
+ "aria-label": utils.formatDate(day),
37
+ ...dayProps,
38
+ ref: dayRef,
39
+ ...rest,
40
+ className: clsx.clsx(
41
+ withBaseName(),
42
+ {
43
+ [withBaseName("hidden")]: hidden,
44
+ [withBaseName("outOfRange")]: outOfRange,
45
+ [withBaseName("today")]: today,
46
+ [withBaseName("unselectable")]: !!unselectable,
47
+ [withBaseName("unselectableLow")]: unselectable === "low",
48
+ [withBaseName("unselectableMedium")]: unselectable === "medium"
49
+ },
50
+ dayProps.className,
51
+ className
52
+ ),
53
+ children: [
54
+ unselectable === "medium" && /* @__PURE__ */ jsxRuntime.jsx(icons.CloseIcon, {
55
+ "aria-hidden": true,
56
+ "aria-label": void 0,
57
+ className: withBaseName("blockedIcon")
58
+ }),
59
+ renderDayContents ? renderDayContents(day, status) : utils.formatDate(day, { day: "numeric" })
60
+ ]
61
+ })
78
62
  });
79
63
  }
80
64
  );
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.js","sources":["../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import { makePrefixer, 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\";\n\nimport { DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport \"./CalendarDay.css\";\nimport { formatDate } from \"./utils\";\nimport { Tooltip, TooltipProps, useTooltip } from \"../../tooltip\";\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 dayRef = useRef<HTMLButtonElement>(null);\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 const { getTriggerProps, getTooltipProps } = useTooltip({\n disabled: !unselectableReason,\n placement: \"top\",\n enterDelay: 300,\n });\n\n const { ref: triggerRef, ...triggerProps } = getTriggerProps<\"button\">({\n \"aria-label\": formatDate(day),\n ...dayProps,\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\n const handleTriggerRef = useForkRef(triggerRef, dayRef);\n const handleRef = useForkRef(handleTriggerRef, ref);\n\n return (\n <>\n <Tooltip\n {...getTooltipProps({\n hideIcon: true,\n status: \"error\",\n title: unselectableReason,\n ...TooltipProps,\n })}\n />\n <button {...triggerProps} ref={handleRef}>\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 </>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","CalendarDay","TooltipProps","useRef","useCalendarDay","useTooltip","formatDate","clsx","useForkRef","jsxs","Fragment","jsx","Tooltip","CloseIcon"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA,CAAA;AAE5C,MAAM,WAAc,GAAAC,gBAAA;AAAA,EACzB,SAASC,YAAY,CAAA,KAAA,EAAO,GAAK,EAAA;AAC/B,IAAM,MAAA,EAAE,WAAW,GAAK,EAAA,iBAAA,EAAmB,OAAO,YAAAC,EAAAA,aAAAA,EAAAA,GAAiB,MACjE,GAAA,KAAA,CAAA;AAEF,IAAM,MAAA,MAAA,GAASC,aAA0B,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,EAAE,MAAA,EAAQ,QAAU,EAAA,kBAAA,EAAuB,GAAAC,6BAAA;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,IAAA,MAAM,EAAE,eAAA,EAAiB,eAAgB,EAAA,GAAIC,qBAAW,CAAA;AAAA,MACtD,UAAU,CAAC,kBAAA;AAAA,MACX,SAAW,EAAA,KAAA;AAAA,MACX,UAAY,EAAA,GAAA;AAAA,KACb,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,GAAA,EAAK,UAAe,EAAA,GAAA,YAAA,KAAiB,eAA0B,CAAA;AAAA,MACrE,YAAA,EAAcC,iBAAW,GAAG,CAAA;AAAA,MAC5B,GAAG,QAAA;AAAA,MACH,GAAG,IAAA;AAAA,MACH,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,YAAY,CAAI,GAAA,UAAA;AAAA,UAC9B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,UACzB,CAAC,YAAA,CAAa,cAAc,CAAA,GAAI,CAAC,CAAC,YAAA;AAAA,UAClC,CAAC,YAAA,CAAa,iBAAiB,CAAA,GAAI,YAAiB,KAAA,KAAA;AAAA,UACpD,CAAC,YAAA,CAAa,oBAAoB,CAAA,GAAI,YAAiB,KAAA,QAAA;AAAA,SACzD;AAAA,QACA,QAAS,CAAA,SAAA;AAAA,QACT,SAAA;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmBC,eAAW,CAAA,UAAA,EAAY,MAAM,CAAA,CAAA;AACtD,IAAM,MAAA,SAAA,GAAYA,eAAW,CAAA,gBAAA,EAAkB,GAAG,CAAA,CAAA;AAElD,IACE,uBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAAC,eAAA,EAAA;AAAA,UACE,GAAG,eAAgB,CAAA;AAAA,YAClB,QAAU,EAAA,IAAA;AAAA,YACV,MAAQ,EAAA,OAAA;AAAA,YACR,KAAO,EAAA,kBAAA;AAAA,YACP,GAAGV,aAAAA;AAAA,WACJ,CAAA;AAAA,SACH,CAAA;AAAA,wBACCO,eAAA,CAAA,QAAA,EAAA;AAAA,UAAQ,GAAG,YAAA;AAAA,UAAc,GAAK,EAAA,SAAA;AAAA,UAC5B,QAAA,EAAA;AAAA,YAAA,YAAA,KAAiB,4BACfE,cAAA,CAAAE,eAAA,EAAA;AAAA,cACC,aAAW,EAAA,IAAA;AAAA,cACX,YAAY,EAAA,KAAA,CAAA;AAAA,cACZ,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,aACvC,CAAA;AAAA,YAGD,iBAAA,GACG,iBAAkB,CAAA,GAAA,EAAK,MAAM,CAAA,GAC7BP,iBAAW,GAAK,EAAA,EAAE,GAAK,EAAA,SAAA,EAAW,CAAA;AAAA,WAAA;AAAA,SACxC,CAAA;AAAA,OAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"CalendarDay.js","sources":["../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import { makePrefixer, Tooltip, TooltipProps } 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\";\n\nimport { DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport \"./CalendarDay.css\";\nimport { formatDate } from \"./utils\";\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 dayRef = useRef<HTMLButtonElement>(null);\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={dayRef}\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":["makePrefixer","forwardRef","CalendarDay","TooltipProps","useRef","useCalendarDay","jsx","Tooltip","jsxs","formatDate","clsx","CloseIcon"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA,CAAA;AAE5C,MAAM,WAAc,GAAAC,gBAAA;AAAA,EACzB,SAASC,YAAY,CAAA,KAAA,EAAO,GAAK,EAAA;AAC/B,IAAM,MAAA,EAAE,WAAW,GAAK,EAAA,iBAAA,EAAmB,OAAO,YAAAC,EAAAA,aAAAA,EAAAA,GAAiB,MACjE,GAAA,KAAA,CAAA;AAEF,IAAM,MAAA,MAAA,GAASC,aAA0B,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,EAAE,MAAA,EAAQ,QAAU,EAAA,kBAAA,EAAuB,GAAAC,6BAAA;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,IAAA,uBACGC,cAAA,CAAAC,YAAA,EAAA;AAAA,MACC,QAAQ,EAAA,IAAA;AAAA,MACR,MAAO,EAAA,OAAA;AAAA,MACP,OAAS,EAAA,kBAAA;AAAA,MACT,UAAU,CAAC,kBAAA;AAAA,MACX,SAAU,EAAA,KAAA;AAAA,MACV,UAAY,EAAA,GAAA;AAAA,MACX,GAAGJ,aAAAA;AAAA,MAEJ,QAAC,kBAAAK,eAAA,CAAA,QAAA,EAAA;AAAA,QACC,YAAA,EAAYC,iBAAW,GAAG,CAAA;AAAA,QACzB,GAAG,QAAA;AAAA,QACJ,GAAK,EAAA,MAAA;AAAA,QACJ,GAAG,IAAA;AAAA,QACJ,SAAW,EAAAC,SAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb;AAAA,YACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,YAC1B,CAAC,YAAa,CAAA,YAAY,CAAI,GAAA,UAAA;AAAA,YAC9B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,KAAA;AAAA,YACzB,CAAC,YAAA,CAAa,cAAc,CAAA,GAAI,CAAC,CAAC,YAAA;AAAA,YAClC,CAAC,YAAA,CAAa,iBAAiB,CAAA,GAAI,YAAiB,KAAA,KAAA;AAAA,YACpD,CAAC,YAAA,CAAa,oBAAoB,CAAA,GAAI,YAAiB,KAAA,QAAA;AAAA,WACzD;AAAA,UACA,QAAS,CAAA,SAAA;AAAA,UACT,SAAA;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,YAAA,KAAiB,4BACfJ,cAAA,CAAAK,eAAA,EAAA;AAAA,YACC,aAAW,EAAA,IAAA;AAAA,YACX,YAAY,EAAA,KAAA,CAAA;AAAA,YACZ,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,WACvC,CAAA;AAAA,UAGD,iBAAA,GACG,iBAAkB,CAAA,GAAA,EAAK,MAAM,CAAA,GAC7BF,iBAAW,GAAK,EAAA,EAAE,GAAK,EAAA,SAAA,EAAW,CAAA;AAAA,SAAA;AAAA,OACxC,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -11,6 +11,7 @@ require('../../dropdown/DropdownBase.js');
11
11
  require('../../dropdown/DropdownButton.js');
12
12
  var Dropdown = require('../../dropdown/Dropdown.js');
13
13
  require('../../responsive/useResizeObserver.js');
14
+ require('../../utils/useFloatingUI.js');
14
15
  require('../../form-field-context/FormFieldContext.js');
15
16
  require('../../list/Highlighter.js');
16
17
  var ListItem = require('../../list/ListItem.js');
@@ -18,9 +19,6 @@ require('../../list/List.js');
18
19
  require('../../common-hooks/collectionProvider.js');
19
20
  require('../../common-hooks/keyUtils.js');
20
21
  require('../../list/VirtualizedList.js');
21
- var Tooltip = require('../../tooltip/Tooltip.js');
22
- require('../../tooltip/TooltipContext.js');
23
- var useTooltip = require('../../tooltip/useTooltip.js');
24
22
  var CalendarContext = require('./CalendarContext.js');
25
23
  require('./CalendarNavigation.css.js');
26
24
  var date = require('@internationalized/date');
@@ -86,25 +84,15 @@ const ListItemWithTooltip = ({
86
84
  item,
87
85
  label,
88
86
  ...props
89
- }) => {
90
- const { getTooltipProps, getTriggerProps } = useTooltip.useTooltip({
91
- placement: "right",
92
- disabled: !(item == null ? void 0 : item.disabled)
93
- });
94
- const { ref: triggerRef, ...triggerProps } = getTriggerProps(props);
95
- return /* @__PURE__ */ jsxRuntime.jsxs(ListItem.ListItem, {
96
- ref: triggerRef,
97
- ...triggerProps,
98
- children: [
99
- label,
100
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
101
- ...getTooltipProps({
102
- title: "This month is out of range"
103
- })
104
- })
105
- ]
106
- });
107
- };
87
+ }) => /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, {
88
+ placement: "right",
89
+ disabled: !(item == null ? void 0 : item.disabled),
90
+ content: "This month is out of range",
91
+ children: /* @__PURE__ */ jsxRuntime.jsx(ListItem.ListItem, {
92
+ ...props,
93
+ children: label
94
+ })
95
+ });
108
96
  const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props, ref) {
109
97
  const {
110
98
  className,
@@ -141,12 +129,12 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
141
129
  moveToMonth(event, year.value);
142
130
  }
143
131
  };
144
- const monthDropdownId = core.useId(MonthDropdownProps == null ? void 0 : MonthDropdownProps.id);
132
+ const monthDropdownId = core.useId(MonthDropdownProps == null ? void 0 : MonthDropdownProps.id) || "";
145
133
  const monthDropdownLabelledBy = clsx.clsx(
146
134
  MonthDropdownProps == null ? void 0 : MonthDropdownProps["aria-labelledby"],
147
135
  `${monthDropdownId}-control`
148
136
  );
149
- const yearDropdownId = core.useId(YearDropdownProps == null ? void 0 : YearDropdownProps.id);
137
+ const yearDropdownId = core.useId(YearDropdownProps == null ? void 0 : YearDropdownProps.id) || "";
150
138
  const yearDropdownLabelledBy = clsx.clsx(
151
139
  YearDropdownProps == null ? void 0 : YearDropdownProps["aria-labelledby"],
152
140
  `${yearDropdownId}-control`
@@ -160,20 +148,6 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
160
148
  const defaultItemToYear = (date) => {
161
149
  return utils.formatDate(date.value, { year: "numeric" });
162
150
  };
163
- const {
164
- getTriggerProps: getPreviousButtonProps,
165
- getTooltipProps: getPreviousButtonTooltipProps
166
- } = useTooltip.useTooltip({
167
- placement: "top",
168
- disabled: canNavigatePrevious
169
- });
170
- const {
171
- getTriggerProps: getNextButtonProps,
172
- getTooltipProps: getNextButtonTooltipProps
173
- } = useTooltip.useTooltip({
174
- placement: "top",
175
- disabled: canNavigateNext
176
- });
177
151
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
178
152
  className: clsx.clsx(
179
153
  withBaseName(),
@@ -183,23 +157,21 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
183
157
  ref,
184
158
  ...rest,
185
159
  children: [
186
- /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
187
- ...getPreviousButtonProps({
160
+ /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, {
161
+ placement: "top",
162
+ disabled: canNavigatePrevious,
163
+ content: "Past dates are out of range",
164
+ children: /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
188
165
  disabled: !canNavigatePrevious,
189
166
  variant: "secondary",
190
167
  onClick: handleNavigatePrevious,
191
168
  className: withBaseName("previousButton"),
192
- focusableWhenDisabled: true
193
- }),
194
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronLeftIcon, {
195
- "aria-label": `Previous Month, ${utils.formatDate(
196
- visibleMonth.subtract({ months: 1 })
197
- )}`
198
- })
199
- }),
200
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
201
- ...getPreviousButtonTooltipProps({
202
- title: "Past dates are out of range"
169
+ focusableWhenDisabled: true,
170
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronLeftIcon, {
171
+ "aria-label": `Previous Month, ${utils.formatDate(
172
+ visibleMonth.subtract({ months: 1 })
173
+ )}`
174
+ })
203
175
  })
204
176
  }),
205
177
  /* @__PURE__ */ jsxRuntime.jsx(Dropdown.Dropdown, {
@@ -226,23 +198,21 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
226
198
  itemToString: defaultItemToYear,
227
199
  fullWidth: true
228
200
  }),
229
- /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
230
- ...getNextButtonProps({
201
+ /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, {
202
+ placement: "top",
203
+ disabled: canNavigateNext,
204
+ content: "Future dates are out of range",
205
+ children: /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
231
206
  disabled: !canNavigateNext,
232
207
  variant: "secondary",
233
208
  onClick: handleNavigateNext,
234
209
  className: withBaseName("nextButton"),
235
- focusableWhenDisabled: true
236
- }),
237
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronRightIcon, {
238
- "aria-label": `Next Month, ${utils.formatDate(
239
- visibleMonth.add({ months: 1 })
240
- )}`
241
- })
242
- }),
243
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
244
- ...getNextButtonTooltipProps({
245
- title: "Future dates are out of range"
210
+ focusableWhenDisabled: true,
211
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronRightIcon, {
212
+ "aria-label": `Next Month, ${utils.formatDate(
213
+ visibleMonth.add({ months: 1 })
214
+ )}`
215
+ })
246
216
  })
247
217
  })
248
218
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/internal/CalendarNavigation.tsx"],"sourcesContent":["import { Button, ButtonProps, makePrefixer, useId } from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"@salt-ds/icons\";\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 { Tooltip, useTooltip } from \"../../tooltip\";\n\nimport { useCalendarContext } from \"./CalendarContext\";\n\nimport \"./CalendarNavigation.css\";\nimport { DateValue, isSameMonth, isSameYear } from \"@internationalized/date\";\nimport { formatDate, monthDiff, monthsForLocale } from \"./utils\";\nimport { SelectionChangeHandler } from \"../../common-hooks\";\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 const { getTooltipProps, getTriggerProps } = useTooltip({\n placement: \"right\",\n disabled: !item?.disabled,\n });\n\n const { ref: triggerRef, ...triggerProps } =\n getTriggerProps<typeof ListItem>(props);\n\n return (\n <ListItem ref={triggerRef} {...triggerProps}>\n {label}\n <Tooltip\n {...getTooltipProps({\n title: \"This month is out of range\",\n })}\n />\n </ListItem>\n );\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 {\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: SelectionChangeHandler<DropdownItem> = (\n event,\n month\n ) => {\n if (month) {\n moveToMonth(event, month.value);\n }\n };\n\n const handleYearSelect: SelectionChangeHandler<DropdownItem> = (\n event,\n year\n ) => {\n if (year) {\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 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 const {\n getTriggerProps: getPreviousButtonProps,\n getTooltipProps: getPreviousButtonTooltipProps,\n } = useTooltip({\n placement: \"top\",\n disabled: canNavigatePrevious,\n });\n\n const {\n getTriggerProps: getNextButtonProps,\n getTooltipProps: getNextButtonTooltipProps,\n } = useTooltip({\n placement: \"top\",\n disabled: canNavigateNext,\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 <Button\n {...getPreviousButtonProps<typeof Button>({\n disabled: !canNavigatePrevious,\n variant: \"secondary\",\n onClick: handleNavigatePrevious,\n className: withBaseName(\"previousButton\"),\n focusableWhenDisabled: true,\n })}\n >\n <ChevronLeftIcon\n aria-label={`Previous Month, ${formatDate(\n visibleMonth.subtract({ months: 1 })\n )}`}\n />\n </Button>\n <Tooltip\n {...getPreviousButtonTooltipProps({\n title: \"Past dates are out of range\",\n })}\n />\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 <Button\n {...getNextButtonProps<typeof Button>({\n disabled: !canNavigateNext,\n variant: \"secondary\",\n onClick: handleNavigateNext,\n className: withBaseName(\"nextButton\"),\n focusableWhenDisabled: true,\n })}\n >\n <ChevronRightIcon\n aria-label={`Next Month, ${formatDate(\n visibleMonth.add({ months: 1 })\n )}`}\n />\n </Button>\n <Tooltip\n {...getNextButtonTooltipProps({\n title: \"Future dates are out of range\",\n })}\n />\n </div>\n );\n});\n"],"names":["makePrefixer","useCalendarContext","monthsForLocale","monthDiff","isSameMonth","isSameYear","useTooltip","jsxs","ListItem","jsx","Tooltip","forwardRef","CalendarNavigation","useId","clsx","formatDate","Button","ChevronLeftIcon","Dropdown","ChevronRightIcon"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/internal/CalendarNavigation.tsx"],"sourcesContent":["import {\n Button,\n ButtonProps,\n makePrefixer,\n Tooltip,\n useId,\n} from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"@salt-ds/icons\";\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\";\n\nimport { useCalendarContext } from \"./CalendarContext\";\n\nimport \"./CalendarNavigation.css\";\nimport { DateValue, isSameMonth, isSameYear } from \"@internationalized/date\";\nimport { formatDate, monthDiff, monthsForLocale } from \"./utils\";\nimport { SelectionChangeHandler } from \"../../common-hooks\";\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 {\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: SelectionChangeHandler<DropdownItem> = (\n event,\n month\n ) => {\n if (month) {\n moveToMonth(event, month.value);\n }\n };\n\n const handleYearSelect: SelectionChangeHandler<DropdownItem> = (\n event,\n year\n ) => {\n if (year) {\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 <Button\n disabled={!canNavigatePrevious}\n variant=\"secondary\"\n onClick={handleNavigatePrevious}\n className={withBaseName(\"previousButton\")}\n focusableWhenDisabled={true}\n >\n <ChevronLeftIcon\n aria-label={`Previous Month, ${formatDate(\n visibleMonth.subtract({ months: 1 })\n )}`}\n />\n </Button>\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 <Button\n disabled={!canNavigateNext}\n variant=\"secondary\"\n onClick={handleNavigateNext}\n className={withBaseName(\"nextButton\")}\n focusableWhenDisabled={true}\n >\n <ChevronRightIcon\n aria-label={`Next Month, ${formatDate(\n visibleMonth.add({ months: 1 })\n )}`}\n />\n </Button>\n </Tooltip>\n </div>\n );\n});\n"],"names":["makePrefixer","useCalendarContext","monthsForLocale","monthDiff","isSameMonth","isSameYear","jsx","Tooltip","ListItem","forwardRef","CalendarNavigation","useId","clsx","formatDate","jsxs","Button","ChevronLeftIcon","Dropdown","ChevronRightIcon"],"mappings":"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"}
@@ -6,6 +6,7 @@ var core = require('@salt-ds/core');
6
6
  var clsx = require('clsx');
7
7
  var isPlainObject = require('../utils/isPlainObject.js');
8
8
  require('react');
9
+ require('../utils/useFloatingUI.js');
9
10
  var CalendarContext = require('./internal/CalendarContext.js');
10
11
  var date = require('@internationalized/date');
11
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"useSelection.js","sources":["../src/calendar/useSelection.ts"],"sourcesContent":["import { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { KeyboardEventHandler, MouseEventHandler, SyntheticEvent } from \"react\";\nimport { isPlainObject } from \"../utils\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport { CalendarDate, DateValue, isSameDay } from \"@internationalized/date\";\n\ninterface BaseUseSelectionCalendarProps<SelectionVariantType> {\n hoveredDate?: DateValue | null;\n selectedDate?: SelectionVariantType | null;\n defaultSelectedDate?: SelectionVariantType;\n onSelectedDateChange?: (\n event: SyntheticEvent,\n selectedDate: SelectionVariantType\n ) => void;\n isDaySelectable: (date?: DateValue) => boolean;\n onHoveredDateChange?: (\n event: SyntheticEvent,\n hoveredDate: DateValue | null\n ) => void;\n}\n\ntype SingleSelectionValueType = DateValue;\ntype MultiSelectionValueType = DateValue[];\ntype RangeSelectionValueType = {\n startDate?: DateValue;\n endDate?: DateValue;\n};\ntype OffsetSelectionValueType = {\n startDate?: DateValue;\n endDate?: DateValue;\n};\n\ntype AllSelectionValueType =\n | SingleSelectionValueType\n | MultiSelectionValueType\n | RangeSelectionValueType\n | OffsetSelectionValueType\n | null;\n\nexport interface UseOffsetSelectionCalendarProps\n extends Omit<\n BaseUseSelectionCalendarProps<OffsetSelectionValueType>,\n \"startDateOffset\" | \"endDateOffset\"\n > {\n selectionVariant: \"offset\";\n startDateOffset?: (date: DateValue) => DateValue;\n endDateOffset?: (date: DateValue) => DateValue;\n}\n\nexport interface UseRangeSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<RangeSelectionValueType> {\n selectionVariant: \"range\";\n}\n\nexport interface UseMultiSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<MultiSelectionValueType> {\n selectionVariant: \"multiselect\";\n}\n\nexport interface UseSingleSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<SingleSelectionValueType> {\n selectionVariant: \"default\";\n}\n\nexport type useSelectionCalendarProps =\n | UseSingleSelectionCalendarProps\n | UseMultiSelectionCalendarProps\n | UseRangeSelectionCalendarProps\n | UseOffsetSelectionCalendarProps;\n\nfunction addOrRemoveFromArray(\n array: AllSelectionValueType | null = [],\n item: DateValue\n) {\n if (Array.isArray(array)) {\n if (array.find((element) => isSameDay(element, item))) {\n return array.filter((element) => !isSameDay(element, item));\n }\n return array.concat(item);\n }\n return [item];\n}\n\nconst defaultOffset = (date: DateValue) => date;\n\nfunction isRangeOrOffsetSelectionValue(\n selectionValue?: AllSelectionValueType\n): selectionValue is RangeSelectionValueType | OffsetSelectionValueType {\n return selectionValue != null && isPlainObject(selectionValue);\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport function useSelectionCalendar(props: useSelectionCalendarProps) {\n const {\n hoveredDate: hoveredDateProp,\n selectedDate: selectedDateProp,\n defaultSelectedDate,\n // onSelectedDateChange,\n onHoveredDateChange,\n isDaySelectable,\n selectionVariant,\n // startDateOffset,\n // endDateOffset,\n } = props;\n const [selectedDate, setSelectedDateState] = useControlled({\n controlled: selectedDateProp,\n default: defaultSelectedDate,\n name: \"Calendar\",\n state: \"selectedDate\",\n });\n\n const getStartDateOffset = (date: DateValue) => {\n if (props.selectionVariant === \"offset\" && props.startDateOffset) {\n return props.startDateOffset(date);\n } else {\n return defaultOffset(date);\n }\n };\n\n const getEndDateOffset = (date: DateValue) => {\n if (props.selectionVariant === \"offset\" && props.endDateOffset) {\n return props.endDateOffset(date);\n } else {\n return defaultOffset(date);\n }\n };\n\n const setSelectedDate = (\n event: SyntheticEvent<HTMLButtonElement>,\n newSelectedDate: DateValue\n ) => {\n if (isDaySelectable(newSelectedDate)) {\n switch (props.selectionVariant) {\n case \"default\":\n setSelectedDateState(newSelectedDate);\n props.onSelectedDateChange?.(event, newSelectedDate);\n break;\n case \"multiselect\":\n const newDates = addOrRemoveFromArray(selectedDate, newSelectedDate);\n setSelectedDateState(newDates);\n props.onSelectedDateChange?.(event, newDates);\n break;\n case \"range\":\n let base = selectedDate;\n if (isRangeOrOffsetSelectionValue(base)) {\n if (base?.startDate && base?.endDate) {\n base = { startDate: newSelectedDate };\n } else if (\n base?.startDate &&\n newSelectedDate.compare(base.startDate) > 0\n ) {\n base = { ...base, endDate: newSelectedDate };\n } else {\n base = { startDate: newSelectedDate };\n }\n } else {\n base = { startDate: newSelectedDate };\n }\n setSelectedDateState(base);\n props.onSelectedDateChange?.(event, base);\n break;\n case \"offset\":\n const newRange = {\n startDate: getStartDateOffset(newSelectedDate),\n endDate: getEndDateOffset(newSelectedDate),\n };\n setSelectedDateState(newRange);\n props.onSelectedDateChange?.(event, newRange);\n }\n }\n };\n\n const isSelected = (date: DateValue) => {\n switch (selectionVariant) {\n case \"default\":\n return (\n selectedDate instanceof CalendarDate && isSameDay(selectedDate, date)\n );\n case \"multiselect\":\n return (\n Array.isArray(selectedDate) &&\n !!selectedDate.find((element) => isSameDay(element, date))\n );\n default:\n return false;\n }\n };\n\n const [hoveredDate, setHoveredDateState] = useControlled({\n controlled: hoveredDateProp,\n default: undefined,\n name: \"Calendar\",\n state: \"hoveredDate\",\n });\n\n const setHoveredDate = (event: SyntheticEvent, date: DateValue | null) => {\n setHoveredDateState(date);\n onHoveredDateChange?.(event, date);\n };\n\n const isHovered = (date: DateValue) => {\n return !!hoveredDate && isSameDay(date, hoveredDate);\n };\n\n const isSelectedSpan = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate?.startDate &&\n selectedDate?.endDate\n ) {\n return (\n date.compare(selectedDate.startDate) > 0 &&\n date.compare(selectedDate.endDate) < 0\n );\n }\n return false;\n };\n const isHoveredSpan = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.startDate &&\n !selectedDate.endDate &&\n hoveredDate\n ) {\n const isForwardRange =\n hoveredDate.compare(selectedDate.startDate) > 0 &&\n ((date.compare(selectedDate.startDate) > 0 &&\n date.compare(hoveredDate) < 0) ||\n isSameDay(date, hoveredDate));\n\n const isValidDayHovered = isDaySelectable(hoveredDate);\n\n return isForwardRange && isValidDayHovered;\n }\n return false;\n };\n\n const isSelectedStart = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.startDate\n ) {\n return isSameDay(selectedDate.startDate, date);\n }\n return false;\n };\n\n const isSelectedEnd = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.endDate\n ) {\n return isSameDay(selectedDate.endDate, date);\n }\n return false;\n };\n\n const isHoveredOffset = (date: DateValue) => {\n if (hoveredDate && selectionVariant === \"offset\") {\n const startDate = getStartDateOffset(hoveredDate);\n const endDate = getEndDateOffset(hoveredDate);\n\n return (\n date.compare(startDate) >= 0 &&\n date.compare(endDate) <= 0 &&\n isDaySelectable(date)\n );\n }\n\n return false;\n };\n\n return {\n state: {\n selectedDate,\n hoveredDate,\n },\n helpers: {\n setSelectedDate,\n isSelected,\n setHoveredDate,\n isHovered,\n isSelectedSpan,\n isHoveredSpan,\n isSelectedStart,\n isSelectedEnd,\n isHoveredOffset,\n },\n };\n}\n\nexport function useSelectionDay({ date }: { date: DateValue }) {\n const {\n helpers: {\n setSelectedDate,\n isSelected,\n setHoveredDate,\n isSelectedSpan,\n isHoveredSpan,\n isSelectedStart,\n isSelectedEnd,\n isHovered,\n isHoveredOffset,\n isDayUnselectable,\n },\n } = useCalendarContext();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n setSelectedDate(event, date);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n switch (event.key) {\n case \"Space\":\n case \"Enter\":\n setSelectedDate(event, date);\n event.preventDefault();\n }\n };\n\n const handleMouseOver: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, date);\n };\n\n const handleMouseLeave: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, null);\n };\n\n const selected = isSelected(date);\n const selectedSpan = isSelectedSpan(date);\n const hoveredSpan = isHoveredSpan(date);\n const selectedStart = isSelectedStart(date);\n const selectedEnd = isSelectedEnd(date);\n const hovered = isHovered(date);\n const hoveredOffset = isHoveredOffset(date);\n\n return {\n handleClick,\n handleKeyDown,\n handleMouseOver,\n handleMouseLeave,\n status: {\n selected,\n selectedSpan,\n hoveredSpan,\n selectedStart,\n selectedEnd,\n hovered,\n hoveredOffset,\n },\n dayProps: {\n className: clsx({\n [withBaseName(\"selected\")]: selected,\n [withBaseName(\"selectedSpan\")]: selectedSpan,\n [withBaseName(\"hoveredSpan\")]: hoveredSpan,\n [withBaseName(\"selectedStart\")]: selectedStart,\n [withBaseName(\"selectedEnd\")]: selectedEnd,\n [withBaseName(\"hovered\")]: hovered,\n [withBaseName(\"hoveredOffset\")]: hoveredOffset,\n }),\n \"aria-pressed\":\n selected || selectedEnd || selectedStart || selectedSpan\n ? \"true\"\n : undefined,\n \"aria-disabled\": !!isDayUnselectable(date) ? \"true\" : undefined,\n },\n };\n}\n"],"names":["isSameDay","isPlainObject","makePrefixer","useControlled","date","CalendarDate","useCalendarContext","clsx"],"mappings":"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"}
1
+ {"version":3,"file":"useSelection.js","sources":["../src/calendar/useSelection.ts"],"sourcesContent":["import { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { KeyboardEventHandler, MouseEventHandler, SyntheticEvent } from \"react\";\nimport { isPlainObject } from \"../utils\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport { CalendarDate, DateValue, isSameDay } from \"@internationalized/date\";\n\ninterface BaseUseSelectionCalendarProps<SelectionVariantType> {\n hoveredDate?: DateValue | null;\n selectedDate?: SelectionVariantType | null;\n defaultSelectedDate?: SelectionVariantType;\n onSelectedDateChange?: (\n event: SyntheticEvent,\n selectedDate: SelectionVariantType\n ) => void;\n isDaySelectable: (date?: DateValue) => boolean;\n onHoveredDateChange?: (\n event: SyntheticEvent,\n hoveredDate: DateValue | null\n ) => void;\n}\n\ntype SingleSelectionValueType = DateValue;\ntype MultiSelectionValueType = DateValue[];\ntype RangeSelectionValueType = {\n startDate?: DateValue;\n endDate?: DateValue;\n};\ntype OffsetSelectionValueType = {\n startDate?: DateValue;\n endDate?: DateValue;\n};\n\ntype AllSelectionValueType =\n | SingleSelectionValueType\n | MultiSelectionValueType\n | RangeSelectionValueType\n | OffsetSelectionValueType\n | null;\n\nexport interface UseOffsetSelectionCalendarProps\n extends Omit<\n BaseUseSelectionCalendarProps<OffsetSelectionValueType>,\n \"startDateOffset\" | \"endDateOffset\"\n > {\n selectionVariant: \"offset\";\n startDateOffset?: (date: DateValue) => DateValue;\n endDateOffset?: (date: DateValue) => DateValue;\n}\n\nexport interface UseRangeSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<RangeSelectionValueType> {\n selectionVariant: \"range\";\n}\n\nexport interface UseMultiSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<MultiSelectionValueType> {\n selectionVariant: \"multiselect\";\n}\n\nexport interface UseSingleSelectionCalendarProps\n extends BaseUseSelectionCalendarProps<SingleSelectionValueType> {\n selectionVariant: \"default\";\n}\n\nexport type useSelectionCalendarProps =\n | UseSingleSelectionCalendarProps\n | UseMultiSelectionCalendarProps\n | UseRangeSelectionCalendarProps\n | UseOffsetSelectionCalendarProps;\n\nfunction addOrRemoveFromArray(\n array: AllSelectionValueType | null = [],\n item: DateValue\n) {\n if (Array.isArray(array)) {\n if (array.find((element) => isSameDay(element, item))) {\n return array.filter((element) => !isSameDay(element, item));\n }\n return array.concat(item);\n }\n return [item];\n}\n\nconst defaultOffset = (date: DateValue) => date;\n\nfunction isRangeOrOffsetSelectionValue(\n selectionValue?: AllSelectionValueType\n): selectionValue is RangeSelectionValueType | OffsetSelectionValueType {\n return selectionValue != null && isPlainObject(selectionValue);\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport function useSelectionCalendar(props: useSelectionCalendarProps) {\n const {\n hoveredDate: hoveredDateProp,\n selectedDate: selectedDateProp,\n defaultSelectedDate,\n // onSelectedDateChange,\n onHoveredDateChange,\n isDaySelectable,\n selectionVariant,\n // startDateOffset,\n // endDateOffset,\n } = props;\n const [selectedDate, setSelectedDateState] = useControlled({\n controlled: selectedDateProp,\n default: defaultSelectedDate,\n name: \"Calendar\",\n state: \"selectedDate\",\n });\n\n const getStartDateOffset = (date: DateValue) => {\n if (props.selectionVariant === \"offset\" && props.startDateOffset) {\n return props.startDateOffset(date);\n } else {\n return defaultOffset(date);\n }\n };\n\n const getEndDateOffset = (date: DateValue) => {\n if (props.selectionVariant === \"offset\" && props.endDateOffset) {\n return props.endDateOffset(date);\n } else {\n return defaultOffset(date);\n }\n };\n\n const setSelectedDate = (\n event: SyntheticEvent<HTMLButtonElement>,\n newSelectedDate: DateValue\n ) => {\n if (isDaySelectable(newSelectedDate)) {\n switch (props.selectionVariant) {\n case \"default\":\n setSelectedDateState(newSelectedDate);\n props.onSelectedDateChange?.(event, newSelectedDate);\n break;\n case \"multiselect\":\n const newDates = addOrRemoveFromArray(selectedDate, newSelectedDate);\n setSelectedDateState(newDates);\n props.onSelectedDateChange?.(event, newDates);\n break;\n case \"range\":\n let base = selectedDate;\n if (isRangeOrOffsetSelectionValue(base)) {\n if (base?.startDate && base?.endDate) {\n base = { startDate: newSelectedDate };\n } else if (\n base?.startDate &&\n newSelectedDate.compare(base.startDate) > 0\n ) {\n base = { ...base, endDate: newSelectedDate };\n } else {\n base = { startDate: newSelectedDate };\n }\n } else {\n base = { startDate: newSelectedDate };\n }\n setSelectedDateState(base);\n props.onSelectedDateChange?.(event, base);\n break;\n case \"offset\":\n const newRange = {\n startDate: getStartDateOffset(newSelectedDate),\n endDate: getEndDateOffset(newSelectedDate),\n };\n setSelectedDateState(newRange);\n props.onSelectedDateChange?.(event, newRange);\n }\n }\n };\n\n const isSelected = (date: DateValue) => {\n switch (selectionVariant) {\n case \"default\":\n return (\n selectedDate instanceof CalendarDate && isSameDay(selectedDate, date)\n );\n case \"multiselect\":\n return (\n Array.isArray(selectedDate) &&\n !!selectedDate.find((element) => isSameDay(element, date))\n );\n default:\n return false;\n }\n };\n\n const [hoveredDate, setHoveredDateState] = useControlled({\n controlled: hoveredDateProp,\n default: undefined,\n name: \"Calendar\",\n state: \"hoveredDate\",\n });\n\n const setHoveredDate = (event: SyntheticEvent, date: DateValue | null) => {\n setHoveredDateState(date);\n onHoveredDateChange?.(event, date);\n };\n\n const isHovered = (date: DateValue) => {\n return !!hoveredDate && isSameDay(date, hoveredDate);\n };\n\n const isSelectedSpan = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate?.startDate &&\n selectedDate?.endDate\n ) {\n return (\n date.compare(selectedDate.startDate) > 0 &&\n date.compare(selectedDate.endDate) < 0\n );\n }\n return false;\n };\n const isHoveredSpan = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.startDate &&\n !selectedDate.endDate &&\n hoveredDate\n ) {\n const isForwardRange =\n hoveredDate.compare(selectedDate.startDate) > 0 &&\n ((date.compare(selectedDate.startDate) > 0 &&\n date.compare(hoveredDate) < 0) ||\n isSameDay(date, hoveredDate));\n\n const isValidDayHovered = isDaySelectable(hoveredDate);\n\n return isForwardRange && isValidDayHovered;\n }\n return false;\n };\n\n const isSelectedStart = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.startDate\n ) {\n return isSameDay(selectedDate.startDate, date);\n }\n return false;\n };\n\n const isSelectedEnd = (date: DateValue) => {\n if (\n (selectionVariant === \"range\" || selectionVariant === \"offset\") &&\n isRangeOrOffsetSelectionValue(selectedDate) &&\n selectedDate.endDate\n ) {\n return isSameDay(selectedDate.endDate, date);\n }\n return false;\n };\n\n const isHoveredOffset = (date: DateValue) => {\n if (hoveredDate && selectionVariant === \"offset\") {\n const startDate = getStartDateOffset(hoveredDate);\n const endDate = getEndDateOffset(hoveredDate);\n\n return (\n date.compare(startDate) >= 0 &&\n date.compare(endDate) <= 0 &&\n isDaySelectable(date)\n );\n }\n\n return false;\n };\n\n return {\n state: {\n selectedDate,\n hoveredDate,\n },\n helpers: {\n setSelectedDate,\n isSelected,\n setHoveredDate,\n isHovered,\n isSelectedSpan,\n isHoveredSpan,\n isSelectedStart,\n isSelectedEnd,\n isHoveredOffset,\n },\n };\n}\n\nexport function useSelectionDay({ date }: { date: DateValue }) {\n const {\n helpers: {\n setSelectedDate,\n isSelected,\n setHoveredDate,\n isSelectedSpan,\n isHoveredSpan,\n isSelectedStart,\n isSelectedEnd,\n isHovered,\n isHoveredOffset,\n isDayUnselectable,\n },\n } = useCalendarContext();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n setSelectedDate(event, date);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n switch (event.key) {\n case \"Space\":\n case \"Enter\":\n setSelectedDate(event, date);\n event.preventDefault();\n }\n };\n\n const handleMouseOver: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, date);\n };\n\n const handleMouseLeave: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, null);\n };\n\n const selected = isSelected(date);\n const selectedSpan = isSelectedSpan(date);\n const hoveredSpan = isHoveredSpan(date);\n const selectedStart = isSelectedStart(date);\n const selectedEnd = isSelectedEnd(date);\n const hovered = isHovered(date);\n const hoveredOffset = isHoveredOffset(date);\n\n return {\n handleClick,\n handleKeyDown,\n handleMouseOver,\n handleMouseLeave,\n status: {\n selected,\n selectedSpan,\n hoveredSpan,\n selectedStart,\n selectedEnd,\n hovered,\n hoveredOffset,\n },\n dayProps: {\n className: clsx({\n [withBaseName(\"selected\")]: selected,\n [withBaseName(\"selectedSpan\")]: selectedSpan,\n [withBaseName(\"hoveredSpan\")]: hoveredSpan,\n [withBaseName(\"selectedStart\")]: selectedStart,\n [withBaseName(\"selectedEnd\")]: selectedEnd,\n [withBaseName(\"hovered\")]: hovered,\n [withBaseName(\"hoveredOffset\")]: hoveredOffset,\n }),\n \"aria-pressed\":\n selected || selectedEnd || selectedStart || selectedSpan\n ? \"true\"\n : undefined,\n \"aria-disabled\": !!isDayUnselectable(date) ? \"true\" : undefined,\n },\n };\n}\n"],"names":["isSameDay","isPlainObject","makePrefixer","useControlled","date","CalendarDate","useCalendarContext","clsx"],"mappings":";;;;;;;;;;;;AAuEA,SAAS,oBACP,CAAA,KAAA,GAAsC,EAAC,EACvC,IACA,EAAA;AACA,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,IAAI,IAAA,KAAA,CAAM,KAAK,CAAC,OAAA,KAAYA,eAAU,OAAS,EAAA,IAAI,CAAC,CAAG,EAAA;AACrD,MAAO,OAAA,KAAA,CAAM,OAAO,CAAC,OAAA,KAAY,CAACA,cAAU,CAAA,OAAA,EAAS,IAAI,CAAC,CAAA,CAAA;AAAA,KAC5D;AACA,IAAO,OAAA,KAAA,CAAM,OAAO,IAAI,CAAA,CAAA;AAAA,GAC1B;AACA,EAAA,OAAO,CAAC,IAAI,CAAA,CAAA;AACd,CAAA;AAEA,MAAM,aAAA,GAAgB,CAAC,IAAoB,KAAA,IAAA,CAAA;AAE3C,SAAS,8BACP,cACsE,EAAA;AACtE,EAAO,OAAA,cAAA,IAAkB,IAAQ,IAAAC,2BAAA,CAAc,cAAc,CAAA,CAAA;AAC/D,CAAA;AAEA,MAAM,YAAA,GAAeC,kBAAa,iBAAiB,CAAA,CAAA;AAE5C,SAAS,qBAAqB,KAAkC,EAAA;AACrE,EAAM,MAAA;AAAA,IACJ,WAAa,EAAA,eAAA;AAAA,IACb,YAAc,EAAA,gBAAA;AAAA,IACd,mBAAA;AAAA,IAEA,mBAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,GAGE,GAAA,KAAA,CAAA;AACJ,EAAA,MAAM,CAAC,YAAA,EAAc,oBAAoB,CAAA,GAAIC,kBAAc,CAAA;AAAA,IACzD,UAAY,EAAA,gBAAA;AAAA,IACZ,OAAS,EAAA,mBAAA;AAAA,IACT,IAAM,EAAA,UAAA;AAAA,IACN,KAAO,EAAA,cAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,kBAAA,GAAqB,CAAC,IAAoB,KAAA;AAC9C,IAAA,IAAI,KAAM,CAAA,gBAAA,KAAqB,QAAY,IAAA,KAAA,CAAM,eAAiB,EAAA;AAChE,MAAO,OAAA,KAAA,CAAM,gBAAgB,IAAI,CAAA,CAAA;AAAA,KAC5B,MAAA;AACL,MAAA,OAAO,cAAc,IAAI,CAAA,CAAA;AAAA,KAC3B;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,CAAC,IAAoB,KAAA;AAC5C,IAAA,IAAI,KAAM,CAAA,gBAAA,KAAqB,QAAY,IAAA,KAAA,CAAM,aAAe,EAAA;AAC9D,MAAO,OAAA,KAAA,CAAM,cAAc,IAAI,CAAA,CAAA;AAAA,KAC1B,MAAA;AACL,MAAA,OAAO,cAAc,IAAI,CAAA,CAAA;AAAA,KAC3B;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CACtB,KAAA,EACA,eACG,KAAA;AApIP,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAqII,IAAI,IAAA,eAAA,CAAgB,eAAe,CAAG,EAAA;AACpC,MAAA,QAAQ,KAAM,CAAA,gBAAA;AAAA,QACP,KAAA,SAAA;AACH,UAAA,oBAAA,CAAqB,eAAe,CAAA,CAAA;AACpC,UAAM,CAAA,EAAA,GAAA,KAAA,CAAA,oBAAA,KAAN,+BAA6B,KAAO,EAAA,eAAA,CAAA,CAAA;AACpC,UAAA,MAAA;AAAA,QACG,KAAA,aAAA;AACH,UAAM,MAAA,QAAA,GAAW,oBAAqB,CAAA,YAAA,EAAc,eAAe,CAAA,CAAA;AACnE,UAAA,oBAAA,CAAqB,QAAQ,CAAA,CAAA;AAC7B,UAAM,CAAA,EAAA,GAAA,KAAA,CAAA,oBAAA,KAAN,+BAA6B,KAAO,EAAA,QAAA,CAAA,CAAA;AACpC,UAAA,MAAA;AAAA,QACG,KAAA,OAAA;AACH,UAAA,IAAI,IAAO,GAAA,YAAA,CAAA;AACX,UAAI,IAAA,6BAAA,CAA8B,IAAI,CAAG,EAAA;AACvC,YAAI,IAAA,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,SAAa,MAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,OAAS,CAAA,EAAA;AACpC,cAAO,IAAA,GAAA,EAAE,WAAW,eAAgB,EAAA,CAAA;AAAA,aACtC,MAAA,IAAA,CACE,6BAAM,SACN,KAAA,eAAA,CAAgB,QAAQ,IAAK,CAAA,SAAS,IAAI,CAC1C,EAAA;AACA,cAAA,IAAA,GAAO,EAAE,GAAG,IAAM,EAAA,OAAA,EAAS,eAAgB,EAAA,CAAA;AAAA,aACtC,MAAA;AACL,cAAO,IAAA,GAAA,EAAE,WAAW,eAAgB,EAAA,CAAA;AAAA,aACtC;AAAA,WACK,MAAA;AACL,YAAO,IAAA,GAAA,EAAE,WAAW,eAAgB,EAAA,CAAA;AAAA,WACtC;AACA,UAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACzB,UAAM,CAAA,EAAA,GAAA,KAAA,CAAA,oBAAA,KAAN,+BAA6B,KAAO,EAAA,IAAA,CAAA,CAAA;AACpC,UAAA,MAAA;AAAA,QACG,KAAA,QAAA;AACH,UAAA,MAAM,QAAW,GAAA;AAAA,YACf,SAAA,EAAW,mBAAmB,eAAe,CAAA;AAAA,YAC7C,OAAA,EAAS,iBAAiB,eAAe,CAAA;AAAA,WAC3C,CAAA;AACA,UAAA,oBAAA,CAAqB,QAAQ,CAAA,CAAA;AAC7B,UAAM,CAAA,EAAA,GAAA,KAAA,CAAA,oBAAA,KAAN,+BAA6B,KAAO,EAAA,QAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAE1C;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,UAAA,GAAa,CAACC,MAAoB,KAAA;AACtC,IAAQ,QAAA,gBAAA;AAAA,MACD,KAAA,SAAA;AACH,QAAA,OACE,YAAwB,YAAAC,iBAAA,IAAgBL,cAAU,CAAA,YAAA,EAAcI,MAAI,CAAA,CAAA;AAAA,MAEnE,KAAA,aAAA;AACH,QAAA,OACE,KAAM,CAAA,OAAA,CAAQ,YAAY,CAAA,IAC1B,CAAC,CAAC,YAAa,CAAA,IAAA,CAAK,CAAC,OAAA,KAAYJ,cAAU,CAAA,OAAA,EAASI,MAAI,CAAC,CAAA,CAAA;AAAA,MAAA;AAG3D,QAAO,OAAA,KAAA,CAAA;AAAA,KAAA;AAAA,GAEb,CAAA;AAEA,EAAA,MAAM,CAAC,WAAA,EAAa,mBAAmB,CAAA,GAAID,kBAAc,CAAA;AAAA,IACvD,UAAY,EAAA,eAAA;AAAA,IACZ,OAAS,EAAA,KAAA,CAAA;AAAA,IACT,IAAM,EAAA,UAAA;AAAA,IACN,KAAO,EAAA,aAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,cAAA,GAAiB,CAAC,KAAA,EAAuB,IAA2B,KAAA;AACxE,IAAA,mBAAA,CAAoB,IAAI,CAAA,CAAA;AACxB,IAAA,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAsB,KAAO,EAAA,IAAA,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAM,MAAA,SAAA,GAAY,CAACC,MAAoB,KAAA;AACrC,IAAA,OAAO,CAAC,CAAC,WAAe,IAAAJ,cAAA,CAAUI,QAAM,WAAW,CAAA,CAAA;AAAA,GACrD,CAAA;AAEA,EAAM,MAAA,cAAA,GAAiB,CAAC,IAAoB,KAAA;AAC1C,IACG,IAAA,CAAA,gBAAA,KAAqB,OAAW,IAAA,gBAAA,KAAqB,QACtD,KAAA,6BAAA,CAA8B,YAAY,CAC1C,KAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,SACd,CAAA,KAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,OACd,CAAA,EAAA;AACA,MACE,OAAA,IAAA,CAAK,OAAQ,CAAA,YAAA,CAAa,SAAS,CAAA,GAAI,KACvC,IAAK,CAAA,OAAA,CAAQ,YAAa,CAAA,OAAO,CAAI,GAAA,CAAA,CAAA;AAAA,KAEzC;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT,CAAA;AACA,EAAM,MAAA,aAAA,GAAgB,CAACA,MAAoB,KAAA;AACzC,IAAA,IAAA,CACG,gBAAqB,KAAA,OAAA,IAAW,gBAAqB,KAAA,QAAA,KACtD,6BAA8B,CAAA,YAAY,CAC1C,IAAA,YAAA,CAAa,SACb,IAAA,CAAC,YAAa,CAAA,OAAA,IACd,WACA,EAAA;AACA,MAAM,MAAA,cAAA,GACJ,YAAY,OAAQ,CAAA,YAAA,CAAa,SAAS,CAAI,GAAA,CAAA,KAC5CA,OAAK,OAAQ,CAAA,YAAA,CAAa,SAAS,CAAI,GAAA,CAAA,IACvCA,OAAK,OAAQ,CAAA,WAAW,IAAI,CAC5B,IAAAJ,cAAA,CAAUI,QAAM,WAAW,CAAA,CAAA,CAAA;AAE/B,MAAM,MAAA,iBAAA,GAAoB,gBAAgB,WAAW,CAAA,CAAA;AAErD,MAAA,OAAO,cAAkB,IAAA,iBAAA,CAAA;AAAA,KAC3B;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CAACA,MAAoB,KAAA;AAC3C,IACG,IAAA,CAAA,gBAAA,KAAqB,WAAW,gBAAqB,KAAA,QAAA,KACtD,8BAA8B,YAAY,CAAA,IAC1C,aAAa,SACb,EAAA;AACA,MAAO,OAAAJ,cAAA,CAAU,YAAa,CAAA,SAAA,EAAWI,MAAI,CAAA,CAAA;AAAA,KAC/C;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAM,MAAA,aAAA,GAAgB,CAACA,MAAoB,KAAA;AACzC,IACG,IAAA,CAAA,gBAAA,KAAqB,WAAW,gBAAqB,KAAA,QAAA,KACtD,8BAA8B,YAAY,CAAA,IAC1C,aAAa,OACb,EAAA;AACA,MAAO,OAAAJ,cAAA,CAAU,YAAa,CAAA,OAAA,EAASI,MAAI,CAAA,CAAA;AAAA,KAC7C;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,IAAoB,KAAA;AAC3C,IAAI,IAAA,WAAA,IAAe,qBAAqB,QAAU,EAAA;AAChD,MAAM,MAAA,SAAA,GAAY,mBAAmB,WAAW,CAAA,CAAA;AAChD,MAAM,MAAA,OAAA,GAAU,iBAAiB,WAAW,CAAA,CAAA;AAE5C,MACE,OAAA,IAAA,CAAK,OAAQ,CAAA,SAAS,CAAK,IAAA,CAAA,IAC3B,IAAK,CAAA,OAAA,CAAQ,OAAO,CAAA,IAAK,CACzB,IAAA,eAAA,CAAgB,IAAI,CAAA,CAAA;AAAA,KAExB;AAEA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAO,EAAA;AAAA,MACL,YAAA;AAAA,MACA,WAAA;AAAA,KACF;AAAA,IACA,OAAS,EAAA;AAAA,MACP,eAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,eAAA;AAAA,KACF;AAAA,GACF,CAAA;AACF,CAAA;AAEgB,SAAA,eAAA,CAAgB,EAAE,IAAA,EAA6B,EAAA;AAC7D,EAAM,MAAA;AAAA,IACJ,OAAS,EAAA;AAAA,MACP,eAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,iBAAA;AAAA,KACF;AAAA,MACEE,kCAAmB,EAAA,CAAA;AAEvB,EAAM,MAAA,WAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,IAAA,eAAA,CAAgB,OAAO,IAAI,CAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAM,MAAA,aAAA,GAAyD,CAAC,KAAU,KAAA;AACxE,IAAA,QAAQ,KAAM,CAAA,GAAA;AAAA,MACP,KAAA,OAAA,CAAA;AAAA,MACA,KAAA,OAAA;AACH,QAAA,eAAA,CAAgB,OAAO,IAAI,CAAA,CAAA;AAC3B,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AAAA,KAAA;AAAA,GAE3B,CAAA;AAEA,EAAM,MAAA,eAAA,GAAwD,CAAC,KAAU,KAAA;AACvE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAyD,CAAC,KAAU,KAAA;AACxE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAM,MAAA,QAAA,GAAW,WAAW,IAAI,CAAA,CAAA;AAChC,EAAM,MAAA,YAAA,GAAe,eAAe,IAAI,CAAA,CAAA;AACxC,EAAM,MAAA,WAAA,GAAc,cAAc,IAAI,CAAA,CAAA;AACtC,EAAM,MAAA,aAAA,GAAgB,gBAAgB,IAAI,CAAA,CAAA;AAC1C,EAAM,MAAA,WAAA,GAAc,cAAc,IAAI,CAAA,CAAA;AACtC,EAAM,MAAA,OAAA,GAAU,UAAU,IAAI,CAAA,CAAA;AAC9B,EAAM,MAAA,aAAA,GAAgB,gBAAgB,IAAI,CAAA,CAAA;AAE1C,EAAO,OAAA;AAAA,IACL,WAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,QAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,aAAA;AAAA,KACF;AAAA,IACA,QAAU,EAAA;AAAA,MACR,WAAWC,SAAK,CAAA;AAAA,QACd,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,QAChC,CAAC,YAAa,CAAA,aAAa,CAAI,GAAA,WAAA;AAAA,QAC/B,CAAC,YAAa,CAAA,eAAe,CAAI,GAAA,aAAA;AAAA,QACjC,CAAC,YAAa,CAAA,aAAa,CAAI,GAAA,WAAA;AAAA,QAC/B,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,QAC3B,CAAC,YAAa,CAAA,eAAe,CAAI,GAAA,aAAA;AAAA,OAClC,CAAA;AAAA,MACD,cACE,EAAA,QAAA,IAAY,WAAe,IAAA,aAAA,IAAiB,eACxC,MACA,GAAA,KAAA,CAAA;AAAA,MACN,iBAAiB,CAAC,CAAC,iBAAkB,CAAA,IAAI,IAAI,MAAS,GAAA,KAAA,CAAA;AAAA,KACxD;AAAA,GACF,CAAA;AACF;;;;;"}
@@ -13,6 +13,7 @@ require('../radio-button/RadioButtonIcon.js');
13
13
  var DeckLayout = require('../deck-layout/DeckLayout.js');
14
14
  var clsx = require('clsx');
15
15
  require('./Carousel.css.js');
16
+ require('../utils/useFloatingUI.js');
16
17
  var useSlideSelection = require('../utils/useSlideSelection.js');
17
18
 
18
19
  const withBaseName = core.makePrefixer("saltCarousel");