@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
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdown.js","sources":["../src/dropdown/useDropdown.ts"],"sourcesContent":["import { useControlled } from \"@salt-ds/core\";\nimport { useCallback, useMemo } from \"react\";\nimport { ListHookProps, ListHookResult, useList } from \"../list\";\nimport { DropdownHookResult, DropdownHookProps } from \"./dropdownTypes\";\nimport {\n CollectionItem,\n itemToString as defaultItemToString,\n SelectionChangeHandler,\n SelectionStrategy,\n} from \"../common-hooks\";\n\nconst NULL_REF = { current: null };\n\nexport interface DropdownListHookProps<Item, Strategy extends SelectionStrategy>\n extends Partial<Omit<DropdownHookProps, \"onKeyDown\">>,\n Omit<ListHookProps<Item, Strategy>, \"containerRef\"> {\n itemToString?: (item: Item) => string;\n}\n\nexport interface DropdownListHookResult<\n Item,\n Selection extends SelectionStrategy\n> extends Partial<ListHookResult<Item, Selection>>,\n Partial<DropdownHookResult> {\n onOpenChange: any;\n triggerLabel?: string;\n}\n\nexport const useDropdown = <\n Item,\n Selection extends SelectionStrategy = \"default\"\n>({\n collectionHook,\n defaultHighlightedIndex: defaultHighlightedIndexProp,\n defaultIsOpen,\n defaultSelected,\n highlightedIndex: highlightedIndexProp,\n isOpen: isOpenProp,\n itemToString = defaultItemToString,\n onHighlight,\n onOpenChange,\n onSelectionChange,\n selected,\n selectionStrategy,\n}: DropdownListHookProps<Item, Selection>): DropdownListHookResult<\n Item,\n Selection\n> => {\n const isMultiSelect =\n selectionStrategy === \"multiple\" || selectionStrategy === \"extended\";\n\n const [isOpen, setIsOpen] = useControlled<boolean>({\n controlled: isOpenProp,\n default: defaultIsOpen ?? false,\n name: \"useDropdownList\",\n });\n\n const handleSelectionChange = useCallback<\n SelectionChangeHandler<Item, Selection>\n >(\n (evt, selected) => {\n if (!isMultiSelect) {\n setIsOpen(false);\n onOpenChange?.(false);\n }\n onSelectionChange?.(evt, selected);\n },\n [isMultiSelect, onOpenChange, onSelectionChange, setIsOpen]\n );\n\n const listHook = useList<Item, Selection>({\n collectionHook,\n defaultHighlightedIndex:\n defaultHighlightedIndexProp ?? highlightedIndexProp === undefined\n ? 0\n : undefined,\n defaultSelected,\n label: \"useDropDownList\",\n onSelectionChange: handleSelectionChange,\n containerRef: NULL_REF,\n highlightedIndex: highlightedIndexProp,\n onHighlight,\n selected,\n selectionStrategy,\n tabToSelect: !isMultiSelect,\n });\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open);\n onOpenChange?.(open);\n },\n [onOpenChange, setIsOpen]\n );\n\n const triggerLabel = useMemo(() => {\n if (isMultiSelect && Array.isArray(listHook.selected)) {\n const selectedItems = listHook.selected as CollectionItem<Item>[];\n if (selectedItems.length === 0) {\n return undefined;\n } else if (selectedItems.length === 1) {\n const { value } = selectedItems[0];\n return value === null ? undefined : itemToString(value);\n } else {\n return `${selectedItems.length} items selected`;\n }\n } else {\n const selectedItem = listHook.selected as CollectionItem<Item>;\n return selectedItem == null || selectedItem.value === null\n ? undefined\n : itemToString(selectedItem.value);\n }\n }, [isMultiSelect, itemToString, listHook.selected]);\n\n return {\n isOpen,\n onOpenChange: handleOpenChange,\n triggerLabel,\n ...listHook,\n };\n};\n"],"names":["itemToString","defaultItemToString","useControlled","useCallback","selected","useList","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdown.js","sources":["../src/dropdown/useDropdown.ts"],"sourcesContent":["import { useControlled } from \"@salt-ds/core\";\nimport { useCallback, useMemo } from \"react\";\nimport { ListHookProps, ListHookResult, useList } from \"../list\";\nimport { DropdownHookResult, DropdownHookProps } from \"./dropdownTypes\";\nimport {\n CollectionItem,\n itemToString as defaultItemToString,\n SelectionChangeHandler,\n SelectionStrategy,\n} from \"../common-hooks\";\n\nconst NULL_REF = { current: null };\n\nexport interface DropdownListHookProps<Item, Strategy extends SelectionStrategy>\n extends Partial<Omit<DropdownHookProps, \"onKeyDown\">>,\n Omit<ListHookProps<Item, Strategy>, \"containerRef\"> {\n itemToString?: (item: Item) => string;\n}\n\nexport interface DropdownListHookResult<\n Item,\n Selection extends SelectionStrategy\n> extends Partial<ListHookResult<Item, Selection>>,\n Partial<DropdownHookResult> {\n onOpenChange: any;\n triggerLabel?: string;\n}\n\nexport const useDropdown = <\n Item,\n Selection extends SelectionStrategy = \"default\"\n>({\n collectionHook,\n defaultHighlightedIndex: defaultHighlightedIndexProp,\n defaultIsOpen,\n defaultSelected,\n highlightedIndex: highlightedIndexProp,\n isOpen: isOpenProp,\n itemToString = defaultItemToString,\n onHighlight,\n onOpenChange,\n onSelectionChange,\n selected,\n selectionStrategy,\n}: DropdownListHookProps<Item, Selection>): DropdownListHookResult<\n Item,\n Selection\n> => {\n const isMultiSelect =\n selectionStrategy === \"multiple\" || selectionStrategy === \"extended\";\n\n const [isOpen, setIsOpen] = useControlled<boolean>({\n controlled: isOpenProp,\n default: defaultIsOpen ?? false,\n name: \"useDropdownList\",\n });\n\n const handleSelectionChange = useCallback<\n SelectionChangeHandler<Item, Selection>\n >(\n (evt, selected) => {\n if (!isMultiSelect) {\n setIsOpen(false);\n onOpenChange?.(false);\n }\n onSelectionChange?.(evt, selected);\n },\n [isMultiSelect, onOpenChange, onSelectionChange, setIsOpen]\n );\n\n const listHook = useList<Item, Selection>({\n collectionHook,\n defaultHighlightedIndex:\n defaultHighlightedIndexProp ?? highlightedIndexProp === undefined\n ? 0\n : undefined,\n defaultSelected,\n label: \"useDropDownList\",\n onSelectionChange: handleSelectionChange,\n containerRef: NULL_REF,\n highlightedIndex: highlightedIndexProp,\n onHighlight,\n selected,\n selectionStrategy,\n tabToSelect: !isMultiSelect,\n });\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open);\n onOpenChange?.(open);\n },\n [onOpenChange, setIsOpen]\n );\n\n const triggerLabel = useMemo(() => {\n if (isMultiSelect && Array.isArray(listHook.selected)) {\n const selectedItems = listHook.selected as CollectionItem<Item>[];\n if (selectedItems.length === 0) {\n return undefined;\n } else if (selectedItems.length === 1) {\n const { value } = selectedItems[0];\n return value === null ? undefined : itemToString(value);\n } else {\n return `${selectedItems.length} items selected`;\n }\n } else {\n const selectedItem = listHook.selected as CollectionItem<Item>;\n return selectedItem == null || selectedItem.value === null\n ? undefined\n : itemToString(selectedItem.value);\n }\n }, [isMultiSelect, itemToString, listHook.selected]);\n\n return {\n isOpen,\n onOpenChange: handleOpenChange,\n triggerLabel,\n ...listHook,\n };\n};\n"],"names":["itemToString","defaultItemToString","useControlled","useCallback","selected","useList","useMemo"],"mappings":"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"}
@@ -7,6 +7,7 @@ var React = require('react');
7
7
  var useClickAway = require('./useClickAway.js');
8
8
  require('react/jsx-runtime');
9
9
  var useResizeObserver = require('../responsive/useResizeObserver.js');
10
+ require('../utils/useFloatingUI.js');
10
11
  require('../form-field-context/FormFieldContext.js');
11
12
  var useFormFieldProps = require('../form-field-context/useFormFieldProps.js');
12
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownBase.js","sources":["../src/dropdown/useDropdownBase.ts"],"sourcesContent":["import { useControlled } from \"@salt-ds/core\";\nimport { KeyboardEvent, useCallback, useRef, useState } from \"react\";\n\nimport { DropdownHookProps, DropdownHookResult } from \"./dropdownTypes\";\nimport { useClickAway } from \"./useClickAway\";\nimport { measurements, useResizeObserver, WidthOnly } from \"../responsive\";\nimport { useFormFieldProps } from \"../form-field-context\";\n\nconst NO_OBSERVER: string[] = [];\n\nexport const useDropdownBase = ({\n ariaLabelledBy: ariaLabelledByProp,\n defaultIsOpen,\n disabled,\n // TODO check how we're using fullWidth, do we need a separate value for the popup component\n fullWidth: fullWidthProp,\n id,\n isOpen: isOpenProp,\n onOpenChange,\n onKeyDown: onKeyDownProp,\n openOnFocus,\n popupComponent: { props: componentProps },\n popupWidth: popupWidthProp,\n rootRef,\n width,\n}: DropdownHookProps): DropdownHookResult => {\n const justFocused = useRef<number | null>(null);\n const popperRef = useRef<HTMLElement | null>(null);\n const popperCallbackRef = useCallback((element: HTMLElement | null) => {\n popperRef.current = element;\n }, []);\n const [isOpen, setIsOpen] = useControlled({\n controlled: isOpenProp,\n default: Boolean(defaultIsOpen),\n name: \"useDropdown\",\n state: \"isOpen\",\n });\n\n const {\n inFormField,\n // onFocus: formFieldOnFocus,\n // onBlur: formFieldOnBlur,\n a11yProps: { \"aria-labelledby\": ariaLabelledBy, ...restA11yProps } = {},\n } = useFormFieldProps();\n\n const [popup, setPopup] = useState<measurements>({\n width: popupWidthProp ?? width ?? 0,\n });\n\n const showDropdown = useCallback(() => {\n setIsOpen(true);\n onOpenChange?.(true);\n }, [onOpenChange, setIsOpen]);\n\n const hideDropdown = useCallback(() => {\n setIsOpen(false);\n onOpenChange?.(false);\n }, [onOpenChange, setIsOpen]);\n\n useClickAway({\n popperRef,\n rootRef,\n isOpen,\n onClose: hideDropdown,\n });\n\n const handleTriggerFocus = useCallback(() => {\n setIsOpen(true);\n onOpenChange?.(true);\n // Suppress response to click if click was the cause of focus\n justFocused.current = window.setTimeout(() => {\n justFocused.current = null;\n }, 1000);\n }, [onOpenChange, setIsOpen]);\n\n const handleTriggerToggle = useCallback(\n (e: MouseEvent) => {\n // Do not trigger menu open for 'Enter' and 'SPACE' key as they're handled in `handleKeyDown`\n if (\n [\"Enter\", \" \"].indexOf(\n (e as unknown as KeyboardEvent<HTMLDivElement>).key\n ) === -1\n ) {\n const newIsOpen = !isOpen;\n setIsOpen(newIsOpen);\n onOpenChange?.(newIsOpen);\n }\n },\n [isOpen, setIsOpen, onOpenChange]\n );\n\n const handleKeydown = useCallback(\n (evt: KeyboardEvent<HTMLElement>) => {\n if ((evt.key === \"Tab\" || evt.key === \"Escape\") && isOpen) {\n // No preventDefault here, this behaviour does not need to be exclusive\n hideDropdown();\n } else if (\n (evt.key === \"Enter\" || evt.key === \"ArrowDown\" || evt.key === \" \") &&\n !isOpen\n ) {\n evt.preventDefault();\n showDropdown();\n } else {\n onKeyDownProp?.(evt);\n }\n },\n [hideDropdown, isOpen, onKeyDownProp, showDropdown]\n );\n\n const fullWidth = fullWidthProp ?? inFormField;\n const measurements = fullWidth ? WidthOnly : NO_OBSERVER;\n useResizeObserver(rootRef, measurements, setPopup, fullWidth);\n\n const componentId = `${id}-dropdown`;\n\n const getAriaLabelledBy = (\n labelledBy: string | undefined,\n labelledByProp: string | undefined\n ): string | undefined => {\n if (labelledBy === undefined && labelledByProp === undefined) {\n return undefined;\n } else {\n return [labelledBy, labelledByProp].filter((x) => !!x).join(\" \");\n }\n };\n\n // TODO do we use aria-popup - valid values are menu, disloag, grid, tree, listbox\n const triggerProps = {\n ...restA11yProps,\n \"aria-expanded\": isOpen,\n \"aria-labelledby\": getAriaLabelledBy(ariaLabelledBy, ariaLabelledByProp),\n \"aria-owns\": isOpen ? componentId : undefined,\n id: `${id}-control`,\n onClick: disabled || openOnFocus ? undefined : handleTriggerToggle,\n onFocus: openOnFocus && !disabled ? handleTriggerFocus : undefined,\n role: \"listbox\",\n onKeyDown: disabled ? undefined : handleKeydown,\n style: { width: fullWidth ? undefined : width },\n };\n\n const dropdownComponentProps = {\n \"aria-labelledby\": ariaLabelledBy,\n id: componentId,\n width: popup.width,\n };\n\n return {\n componentProps: dropdownComponentProps,\n popperRef: popperCallbackRef,\n isOpen,\n label: \"Dropdown Button\",\n triggerProps,\n };\n};\n"],"names":["useRef","useCallback","useControlled","useFormFieldProps","useState","useClickAway","measurements","WidthOnly","useResizeObserver"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdownBase.js","sources":["../src/dropdown/useDropdownBase.ts"],"sourcesContent":["import { useControlled } from \"@salt-ds/core\";\nimport { KeyboardEvent, useCallback, useRef, useState } from \"react\";\n\nimport { DropdownHookProps, DropdownHookResult } from \"./dropdownTypes\";\nimport { useClickAway } from \"./useClickAway\";\nimport { measurements, useResizeObserver, WidthOnly } from \"../responsive\";\nimport { useFormFieldProps } from \"../form-field-context\";\n\nconst NO_OBSERVER: string[] = [];\n\nexport const useDropdownBase = ({\n ariaLabelledBy: ariaLabelledByProp,\n defaultIsOpen,\n disabled,\n // TODO check how we're using fullWidth, do we need a separate value for the popup component\n fullWidth: fullWidthProp,\n id,\n isOpen: isOpenProp,\n onOpenChange,\n onKeyDown: onKeyDownProp,\n openOnFocus,\n popupComponent: { props: componentProps },\n popupWidth: popupWidthProp,\n rootRef,\n width,\n}: DropdownHookProps): DropdownHookResult => {\n const justFocused = useRef<number | null>(null);\n const popperRef = useRef<HTMLElement | null>(null);\n const popperCallbackRef = useCallback((element: HTMLElement | null) => {\n popperRef.current = element;\n }, []);\n const [isOpen, setIsOpen] = useControlled({\n controlled: isOpenProp,\n default: Boolean(defaultIsOpen),\n name: \"useDropdown\",\n state: \"isOpen\",\n });\n\n const {\n inFormField,\n // onFocus: formFieldOnFocus,\n // onBlur: formFieldOnBlur,\n a11yProps: { \"aria-labelledby\": ariaLabelledBy, ...restA11yProps } = {},\n } = useFormFieldProps();\n\n const [popup, setPopup] = useState<measurements>({\n width: popupWidthProp ?? width ?? 0,\n });\n\n const showDropdown = useCallback(() => {\n setIsOpen(true);\n onOpenChange?.(true);\n }, [onOpenChange, setIsOpen]);\n\n const hideDropdown = useCallback(() => {\n setIsOpen(false);\n onOpenChange?.(false);\n }, [onOpenChange, setIsOpen]);\n\n useClickAway({\n popperRef,\n rootRef,\n isOpen,\n onClose: hideDropdown,\n });\n\n const handleTriggerFocus = useCallback(() => {\n setIsOpen(true);\n onOpenChange?.(true);\n // Suppress response to click if click was the cause of focus\n justFocused.current = window.setTimeout(() => {\n justFocused.current = null;\n }, 1000);\n }, [onOpenChange, setIsOpen]);\n\n const handleTriggerToggle = useCallback(\n (e: MouseEvent) => {\n // Do not trigger menu open for 'Enter' and 'SPACE' key as they're handled in `handleKeyDown`\n if (\n [\"Enter\", \" \"].indexOf(\n (e as unknown as KeyboardEvent<HTMLDivElement>).key\n ) === -1\n ) {\n const newIsOpen = !isOpen;\n setIsOpen(newIsOpen);\n onOpenChange?.(newIsOpen);\n }\n },\n [isOpen, setIsOpen, onOpenChange]\n );\n\n const handleKeydown = useCallback(\n (evt: KeyboardEvent<HTMLElement>) => {\n if ((evt.key === \"Tab\" || evt.key === \"Escape\") && isOpen) {\n // No preventDefault here, this behaviour does not need to be exclusive\n hideDropdown();\n } else if (\n (evt.key === \"Enter\" || evt.key === \"ArrowDown\" || evt.key === \" \") &&\n !isOpen\n ) {\n evt.preventDefault();\n showDropdown();\n } else {\n onKeyDownProp?.(evt);\n }\n },\n [hideDropdown, isOpen, onKeyDownProp, showDropdown]\n );\n\n const fullWidth = fullWidthProp ?? inFormField;\n const measurements = fullWidth ? WidthOnly : NO_OBSERVER;\n useResizeObserver(rootRef, measurements, setPopup, fullWidth);\n\n const componentId = `${id}-dropdown`;\n\n const getAriaLabelledBy = (\n labelledBy: string | undefined,\n labelledByProp: string | undefined\n ): string | undefined => {\n if (labelledBy === undefined && labelledByProp === undefined) {\n return undefined;\n } else {\n return [labelledBy, labelledByProp].filter((x) => !!x).join(\" \");\n }\n };\n\n // TODO do we use aria-popup - valid values are menu, disloag, grid, tree, listbox\n const triggerProps = {\n ...restA11yProps,\n \"aria-expanded\": isOpen,\n \"aria-labelledby\": getAriaLabelledBy(ariaLabelledBy, ariaLabelledByProp),\n \"aria-owns\": isOpen ? componentId : undefined,\n id: `${id}-control`,\n onClick: disabled || openOnFocus ? undefined : handleTriggerToggle,\n onFocus: openOnFocus && !disabled ? handleTriggerFocus : undefined,\n role: \"listbox\",\n onKeyDown: disabled ? undefined : handleKeydown,\n style: { width: fullWidth ? undefined : width },\n };\n\n const dropdownComponentProps = {\n \"aria-labelledby\": ariaLabelledBy,\n id: componentId,\n width: popup.width,\n };\n\n return {\n componentProps: dropdownComponentProps,\n popperRef: popperCallbackRef,\n isOpen,\n label: \"Dropdown Button\",\n triggerProps,\n };\n};\n"],"names":["useRef","useCallback","useControlled","useFormFieldProps","useState","useClickAway","measurements","WidthOnly","useResizeObserver"],"mappings":";;;;;;;;;;;;;AAQA,MAAM,cAAwB,EAAC,CAAA;AAExB,MAAM,kBAAkB,CAAC;AAAA,EAC9B,cAAgB,EAAA,kBAAA;AAAA,EAChB,aAAA;AAAA,EACA,QAAA;AAAA,EAEA,SAAW,EAAA,aAAA;AAAA,EACX,EAAA;AAAA,EACA,MAAQ,EAAA,UAAA;AAAA,EACR,YAAA;AAAA,EACA,SAAW,EAAA,aAAA;AAAA,EACX,WAAA;AAAA,EACA,cAAA,EAAgB,EAAE,KAAA,EAAO,cAAe,EAAA;AAAA,EACxC,UAAY,EAAA,cAAA;AAAA,EACZ,OAAA;AAAA,EACA,KAAA;AACF,CAA6C,KAAA;AAzB7C,EAAA,IAAA,EAAA,CAAA;AA0BE,EAAM,MAAA,WAAA,GAAcA,aAAsB,IAAI,CAAA,CAAA;AAC9C,EAAM,MAAA,SAAA,GAAYA,aAA2B,IAAI,CAAA,CAAA;AACjD,EAAM,MAAA,iBAAA,GAAoBC,iBAAY,CAAA,CAAC,OAAgC,KAAA;AACrE,IAAA,SAAA,CAAU,OAAU,GAAA,OAAA,CAAA;AAAA,GACtB,EAAG,EAAE,CAAA,CAAA;AACL,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,kBAAc,CAAA;AAAA,IACxC,UAAY,EAAA,UAAA;AAAA,IACZ,OAAA,EAAS,QAAQ,aAAa,CAAA;AAAA,IAC9B,IAAM,EAAA,aAAA;AAAA,IACN,KAAO,EAAA,QAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA;AAAA,IACJ,WAAA;AAAA,IAGA,WAAW,EAAE,iBAAA,EAAmB,cAAmB,EAAA,GAAA,aAAA,KAAkB,EAAC;AAAA,MACpEC,mCAAkB,EAAA,CAAA;AAEtB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,cAAuB,CAAA;AAAA,IAC/C,KAAA,EAAA,CAAO,EAAkB,GAAA,cAAA,IAAA,IAAA,GAAA,cAAA,GAAA,KAAA,KAAlB,IAA2B,GAAA,EAAA,GAAA,CAAA;AAAA,GACnC,CAAA,CAAA;AAED,EAAM,MAAA,YAAA,GAAeH,kBAAY,MAAM;AACrC,IAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AACd,IAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GACd,EAAA,CAAC,YAAc,EAAA,SAAS,CAAC,CAAA,CAAA;AAE5B,EAAM,MAAA,YAAA,GAAeA,kBAAY,MAAM;AACrC,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACd,EAAA,CAAC,YAAc,EAAA,SAAS,CAAC,CAAA,CAAA;AAE5B,EAAaI,yBAAA,CAAA;AAAA,IACX,SAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAS,EAAA,YAAA;AAAA,GACV,CAAA,CAAA;AAED,EAAM,MAAA,kBAAA,GAAqBJ,kBAAY,MAAM;AAC3C,IAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AACd,IAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;AAEf,IAAY,WAAA,CAAA,OAAA,GAAU,MAAO,CAAA,UAAA,CAAW,MAAM;AAC5C,MAAA,WAAA,CAAY,OAAU,GAAA,IAAA,CAAA;AAAA,OACrB,GAAI,CAAA,CAAA;AAAA,GACN,EAAA,CAAC,YAAc,EAAA,SAAS,CAAC,CAAA,CAAA;AAE5B,EAAA,MAAM,mBAAsB,GAAAA,iBAAA;AAAA,IAC1B,CAAC,CAAkB,KAAA;AAEjB,MACE,IAAA,CAAC,OAAS,EAAA,GAAG,CAAE,CAAA,OAAA;AAAA,QACZ,CAA+C,CAAA,GAAA;AAAA,YAC5C,CACN,CAAA,EAAA;AACA,QAAA,MAAM,YAAY,CAAC,MAAA,CAAA;AACnB,QAAA,SAAA,CAAU,SAAS,CAAA,CAAA;AACnB,QAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,SAAA,CAAA,CAAA;AAAA,OACjB;AAAA,KACF;AAAA,IACA,CAAC,MAAQ,EAAA,SAAA,EAAW,YAAY,CAAA;AAAA,GAClC,CAAA;AAEA,EAAA,MAAM,aAAgB,GAAAA,iBAAA;AAAA,IACpB,CAAC,GAAoC,KAAA;AACnC,MAAA,IAAA,CAAK,IAAI,GAAQ,KAAA,KAAA,IAAS,GAAI,CAAA,GAAA,KAAQ,aAAa,MAAQ,EAAA;AAEzD,QAAa,YAAA,EAAA,CAAA;AAAA,OACf,MAAA,IAAA,CACG,GAAI,CAAA,GAAA,KAAQ,OAAW,IAAA,GAAA,CAAI,GAAQ,KAAA,WAAA,IAAe,GAAI,CAAA,GAAA,KAAQ,GAC/D,KAAA,CAAC,MACD,EAAA;AACA,QAAA,GAAA,CAAI,cAAe,EAAA,CAAA;AACnB,QAAa,YAAA,EAAA,CAAA;AAAA,OACR,MAAA;AACL,QAAgB,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA,CAAC,YAAA,EAAc,MAAQ,EAAA,aAAA,EAAe,YAAY,CAAA;AAAA,GACpD,CAAA;AAEA,EAAA,MAAM,YAAY,aAAiB,IAAA,IAAA,GAAA,aAAA,GAAA,WAAA,CAAA;AACnC,EAAMK,MAAAA,aAAAA,GAAe,YAAYC,2BAAY,GAAA,WAAA,CAAA;AAC7C,EAAkBC,mCAAA,CAAA,OAAA,EAASF,aAAc,EAAA,QAAA,EAAU,SAAS,CAAA,CAAA;AAE5D,EAAA,MAAM,cAAc,CAAG,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAEvB,EAAM,MAAA,iBAAA,GAAoB,CACxB,UAAA,EACA,cACuB,KAAA;AACvB,IAAI,IAAA,UAAA,KAAe,KAAa,CAAA,IAAA,cAAA,KAAmB,KAAW,CAAA,EAAA;AAC5D,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACF,MAAA;AACL,MAAA,OAAO,CAAC,UAAA,EAAY,cAAc,CAAA,CAAE,MAAO,CAAA,CAAC,CAAM,KAAA,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,KACjE;AAAA,GACF,CAAA;AAGA,EAAA,MAAM,YAAe,GAAA;AAAA,IACnB,GAAG,aAAA;AAAA,IACH,eAAiB,EAAA,MAAA;AAAA,IACjB,iBAAA,EAAmB,iBAAkB,CAAA,cAAA,EAAgB,kBAAkB,CAAA;AAAA,IACvE,WAAA,EAAa,SAAS,WAAc,GAAA,KAAA,CAAA;AAAA,IACpC,IAAI,CAAG,EAAA,EAAA,CAAA,QAAA,CAAA;AAAA,IACP,OAAA,EAAS,QAAY,IAAA,WAAA,GAAc,KAAY,CAAA,GAAA,mBAAA;AAAA,IAC/C,OAAS,EAAA,WAAA,IAAe,CAAC,QAAA,GAAW,kBAAqB,GAAA,KAAA,CAAA;AAAA,IACzD,IAAM,EAAA,SAAA;AAAA,IACN,SAAA,EAAW,WAAW,KAAY,CAAA,GAAA,aAAA;AAAA,IAClC,KAAO,EAAA,EAAE,KAAO,EAAA,SAAA,GAAY,SAAY,KAAM,EAAA;AAAA,GAChD,CAAA;AAEA,EAAA,MAAM,sBAAyB,GAAA;AAAA,IAC7B,iBAAmB,EAAA,cAAA;AAAA,IACnB,EAAI,EAAA,WAAA;AAAA,IACJ,OAAO,KAAM,CAAA,KAAA;AAAA,GACf,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,cAAgB,EAAA,sBAAA;AAAA,IAChB,SAAW,EAAA,iBAAA;AAAA,IACX,MAAA;AAAA,IACA,KAAO,EAAA,iBAAA;AAAA,IACP,YAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -7,9 +7,6 @@ var clsx = require('clsx');
7
7
  var React = require('react');
8
8
  var core = require('@salt-ds/core');
9
9
  var FormFieldContext = require('../form-field-context/FormFieldContext.js');
10
- var Tooltip = require('../tooltip/Tooltip.js');
11
- require('../tooltip/TooltipContext.js');
12
- var useTooltip = require('../tooltip/useTooltip.js');
13
10
  var constant = require('./constant.js');
14
11
  var FormActivationIndicator = require('./FormActivationIndicator.js');
15
12
  var FormHelperText = require('./FormHelperText.js');
@@ -112,77 +109,67 @@ const FormField = React.forwardRef(
112
109
  const focusClass = disableFocusRing ? "lowFocused" : "focused";
113
110
  const inlineHelperText = renderHelperText && helperTextPlacement === "bottom";
114
111
  const tooltipHelperText = renderHelperText && helperTextPlacement === "tooltip" && !hasStatusIndicator;
115
- const { getTooltipProps, getTriggerProps } = useTooltip.useTooltip({
116
- disabled: !tooltipHelperText
117
- });
118
- const { ref: triggerRef, ...triggerProps } = getTriggerProps({
119
- className: clsx.clsx(
120
- withBaseName(),
121
- {
122
- [withBaseName("disabled")]: disabled,
123
- [withBaseName("readOnly")]: readOnly,
124
- [withBaseName("warning")]: isWarning,
125
- [withBaseName("error")]: isError,
126
- [withBaseName("fullWidth")]: fullWidth,
127
- [withBaseName(focusClass)]: states.focused,
128
- [withBaseName("labelTop")]: labelTop,
129
- [withBaseName("labelLeft")]: labelLeft,
130
- [withBaseName(`withHelperText`)]: inlineHelperText,
131
- [withBaseName(variant)]: variant
132
- },
133
- className
134
- ),
135
- ...eventHandlers,
136
- ...restProps
137
- });
138
- const handleTriggerRef = core.useForkRef(triggerRef, rootRef);
139
- const handleRef = core.useForkRef(handleTriggerRef, ref);
140
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
141
- children: [
142
- /* @__PURE__ */ jsxRuntime.jsx("div", {
143
- ref: handleRef,
144
- ...triggerProps,
145
- children: /* @__PURE__ */ jsxRuntime.jsxs(FormFieldContext.FormFieldContext.Provider, {
146
- value: {
147
- ...states,
148
- ...dispatchers,
149
- ...eventHandlers,
150
- a11yProps: a11yValue,
151
- inFormField: true,
152
- ref: rootRef
153
- },
154
- children: [
155
- hasLabel && /* @__PURE__ */ jsxRuntime.jsx(LabelComponent, {
156
- ...LabelProps,
157
- validationStatus,
158
- hasStatusIndicator,
159
- StatusIndicatorProps: StatusIndicatorProps2,
160
- className: LabelProps.className,
161
- label,
162
- disabled,
163
- readOnly,
164
- required,
165
- tooltipText: helperText,
166
- id: labelId
167
- }),
168
- children,
169
- /* @__PURE__ */ jsxRuntime.jsx(ActivationIndicatorComponent, {
170
- hasIcon: !hasStatusIndicator,
171
- validationStatus
172
- }),
173
- renderHelperText && /* @__PURE__ */ jsxRuntime.jsx(HelperTextComponent, {
174
- helperText,
175
- helperTextPlacement,
176
- ...HelperTextProps,
177
- id: helperTextId
178
- })
179
- ]
180
- })
181
- }),
182
- /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Tooltip, {
183
- ...getTooltipProps({ title: helperText })
112
+ const handleTriggerRef = core.useForkRef(rootRef, ref);
113
+ return /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, {
114
+ disabled: !tooltipHelperText,
115
+ content: helperText,
116
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
117
+ ref: handleTriggerRef,
118
+ className: clsx.clsx(
119
+ withBaseName(),
120
+ {
121
+ [withBaseName("disabled")]: disabled,
122
+ [withBaseName("readOnly")]: readOnly,
123
+ [withBaseName("warning")]: isWarning,
124
+ [withBaseName("error")]: isError,
125
+ [withBaseName("fullWidth")]: fullWidth,
126
+ [withBaseName(focusClass)]: states.focused,
127
+ [withBaseName("labelTop")]: labelTop,
128
+ [withBaseName("labelLeft")]: labelLeft,
129
+ [withBaseName(`withHelperText`)]: inlineHelperText,
130
+ [withBaseName(variant)]: variant
131
+ },
132
+ className
133
+ ),
134
+ ...eventHandlers,
135
+ ...restProps,
136
+ children: /* @__PURE__ */ jsxRuntime.jsxs(FormFieldContext.FormFieldContext.Provider, {
137
+ value: {
138
+ ...states,
139
+ ...dispatchers,
140
+ ...eventHandlers,
141
+ a11yProps: a11yValue,
142
+ inFormField: true,
143
+ ref: rootRef
144
+ },
145
+ children: [
146
+ hasLabel && /* @__PURE__ */ jsxRuntime.jsx(LabelComponent, {
147
+ ...LabelProps,
148
+ validationStatus,
149
+ hasStatusIndicator,
150
+ StatusIndicatorProps: StatusIndicatorProps2,
151
+ className: LabelProps.className,
152
+ label,
153
+ disabled,
154
+ readOnly,
155
+ required,
156
+ tooltipText: helperText,
157
+ id: labelId
158
+ }),
159
+ children,
160
+ /* @__PURE__ */ jsxRuntime.jsx(ActivationIndicatorComponent, {
161
+ hasIcon: !hasStatusIndicator,
162
+ validationStatus
163
+ }),
164
+ renderHelperText && /* @__PURE__ */ jsxRuntime.jsx(HelperTextComponent, {
165
+ helperText,
166
+ helperTextPlacement,
167
+ ...HelperTextProps,
168
+ id: helperTextId
169
+ })
170
+ ]
184
171
  })
185
- ]
172
+ })
186
173
  });
187
174
  }
188
175
  );
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.js","sources":["../src/form-field/FormField.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n Dispatch,\n ElementType,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n SetStateAction,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useForkRef, useId } from \"@salt-ds/core\";\nimport { FormFieldContext } from \"../form-field-context\";\nimport { Tooltip, useTooltip } from \"../tooltip\";\nimport { classBase } from \"./constant\";\nimport {\n FormActivationIndicator,\n FormActivationIndicatorProps,\n} from \"./FormActivationIndicator\";\nimport { FormHelperText, FormHelperTextProps } from \"./FormHelperText\";\nimport { FormLabel, FormLabelProps } from \"./FormLabel\";\nimport { NecessityIndicatorOptions } from \"./NecessityIndicator\";\nimport { StatusIndicatorProps } from \"./StatusIndicator\";\n\nimport \"./FormField.css\";\n\nexport type FormFieldLabelPlacement = \"top\" | \"left\";\nexport type FormFieldHelperTextPlacement = \"bottom\" | \"tooltip\";\nexport type FormFieldValidationStatus = \"error\" | \"warning\";\n\nexport interface A11yValueProps\n extends Pick<NecessityIndicatorOptions, \"required\"> {\n /**\n * If `true`, the FormField will be disabled.\n */\n disabled?: boolean;\n /** id of the helper text node */\n helperTextId?: string;\n /** id of the label node */\n labelId?: string;\n /**\n * The FormField value is Readonly\n */\n readOnly?: boolean;\n\n /**\n * Whether the form field needs to render helper text\n */\n renderHelperText?: boolean;\n}\n\nexport interface FormFieldProps\n extends HTMLAttributes<HTMLDivElement>,\n A11yValueProps {\n /**\n * The component used for activation indicator. Default to `FormActivationIndicator`.\n */\n ActivationIndicatorComponent?: ElementType<FormActivationIndicatorProps>;\n /**\n * Outer focus ring focus will not be applied. Defaults to false.\n */\n disableFocusRing?: boolean;\n // I hate this fullWidth business. We should support a width prop. The default should be 100% (standard block behaviour)\n // we should also support 'auto' or explicit numeric values\n /**\n * Whether the form field is occupying full width.\n */\n fullWidth?: boolean;\n /**\n * Whether to show the StatusIndicator component for validation states.\n */\n hasStatusIndicator?: boolean;\n /**\n * The helper text content\n */\n helperText?: string;\n /**\n * The component used for the helper text. Default to `FormHelperText`.\n */\n HelperTextComponent?: ElementType<FormHelperTextProps>;\n /**\n * Location the helperText, values: 'bottom' (default) or 'tooltip'.\n */\n helperTextPlacement?: FormFieldHelperTextPlacement;\n /**\n * Props to be applied to the `HelperTextComponent`.\n *\n * Generic on `FormHelperTextProps` is omitted.\n */\n HelperTextProps?: Partial<FormHelperTextProps>;\n /**\n * The label value for the FormField\n */\n label?: string;\n /**\n * The component used for the label. Default to `FormLabel`.\n */\n LabelComponent?: ElementType;\n /**\n * Location the label, values: 'top' (default) or 'left'\n */\n labelPlacement?: FormFieldLabelPlacement;\n /**\n * Props to be applied to the `LabelComponent`\n */\n LabelProps?: Partial<FormLabelProps>;\n /**\n * Override props to be used with the StatusIndicator component\n */\n StatusIndicatorProps?: Partial<StatusIndicatorProps>;\n /**\n * The state for the FormField: Must be one of: 'error'|'warning'|undefined\n */\n validationStatus?: FormFieldValidationStatus;\n /**\n * FormField variants; defaults to primary.\n */\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nexport interface useA11yValueValue {\n \"aria-labelledby\": A11yValueProps[\"labelId\"];\n \"aria-required\": A11yValueProps[\"required\"];\n \"aria-describedby\": A11yValueProps[\"helperTextId\"] | undefined;\n disabled: A11yValueProps[\"disabled\"];\n readOnly: A11yValueProps[\"readOnly\"];\n}\n\nconst useA11yValue = ({\n required,\n disabled,\n readOnly,\n labelId,\n helperTextId,\n renderHelperText,\n}: A11yValueProps) => {\n return useMemo(\n () => ({\n \"aria-labelledby\": labelId,\n \"aria-required\": required,\n \"aria-describedby\": renderHelperText ? helperTextId : undefined,\n disabled,\n readOnly,\n }),\n [labelId, disabled, readOnly, required, renderHelperText, helperTextId]\n );\n};\n\n// TODO: Add TS props for this\nexport const useFormField = ({\n onBlur,\n onFocus,\n}: {\n onBlur?: FocusEventHandler<HTMLDivElement>;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n}): [\n { focused: boolean },\n { setFocused: Dispatch<SetStateAction<boolean>> },\n {\n onBlur: FocusEventHandler<HTMLDivElement>;\n onFocus: FocusEventHandler<HTMLDivElement>;\n }\n] => {\n const [focused, setFocused] = useState(false);\n const handleBlur: FocusEventHandler<HTMLDivElement> = (event) => {\n setFocused(false);\n onBlur?.(event);\n };\n const handleFocus: FocusEventHandler<HTMLDivElement> = (event) => {\n setFocused(true);\n onFocus?.(event);\n };\n return [\n {\n focused,\n },\n {\n setFocused,\n },\n {\n onBlur: handleBlur,\n onFocus: handleFocus,\n },\n ];\n};\n\nconst withBaseName = makePrefixer(classBase);\n\nexport const FormField = forwardRef(\n (\n {\n ActivationIndicatorComponent = FormActivationIndicator,\n children,\n className,\n disabled,\n disableFocusRing = false,\n fullWidth = true,\n hasStatusIndicator,\n HelperTextComponent = FormHelperText,\n HelperTextProps,\n helperText,\n helperTextPlacement = \"bottom\",\n label,\n LabelComponent = FormLabel,\n labelPlacement = \"top\",\n LabelProps = { displayedNecessity: \"required\" },\n onBlur,\n onFocus,\n readOnly,\n required,\n StatusIndicatorProps,\n validationStatus,\n variant = \"primary\",\n ...restProps\n }: FormFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const labelId = useId(LabelProps?.id);\n const helperTextId = useId(HelperTextProps?.id);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const renderHelperText = !!helperText;\n\n const a11yValue = useA11yValue({\n required,\n disabled,\n readOnly,\n labelId,\n helperTextId,\n renderHelperText,\n });\n\n const [states, dispatchers, eventHandlers] = useFormField({\n onBlur,\n onFocus,\n });\n\n const hasLabel = label !== undefined;\n const labelTop = hasLabel && labelPlacement === \"top\";\n const labelLeft = hasLabel && labelPlacement === \"left\";\n const isWarning = validationStatus === \"warning\";\n const isError = validationStatus === \"error\";\n const focusClass = disableFocusRing\n ? \"lowFocused\"\n : \"focused\"; /* NOTE: need to look at */\n const inlineHelperText =\n renderHelperText && helperTextPlacement === \"bottom\";\n const tooltipHelperText =\n renderHelperText &&\n helperTextPlacement === \"tooltip\" &&\n !hasStatusIndicator;\n\n const { getTooltipProps, getTriggerProps } = useTooltip({\n disabled: !tooltipHelperText,\n });\n\n const { ref: triggerRef, ...triggerProps } = getTriggerProps({\n className: clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"readOnly\")]: readOnly,\n [withBaseName(\"warning\")]: isWarning,\n [withBaseName(\"error\")]: isError,\n [withBaseName(\"fullWidth\")]: fullWidth,\n [withBaseName(focusClass)]: states.focused,\n [withBaseName(\"labelTop\")]: labelTop,\n [withBaseName(\"labelLeft\")]: labelLeft,\n [withBaseName(`withHelperText`)]: inlineHelperText,\n [withBaseName(variant)]: variant,\n },\n className\n ),\n ...eventHandlers,\n ...restProps,\n });\n\n const handleTriggerRef = useForkRef(triggerRef, rootRef);\n const handleRef = useForkRef(handleTriggerRef, ref);\n\n return (\n <>\n <div ref={handleRef} {...triggerProps}>\n <FormFieldContext.Provider\n value={{\n ...states,\n ...dispatchers,\n ...eventHandlers,\n a11yProps: a11yValue,\n inFormField: true,\n ref: rootRef,\n }}\n >\n {hasLabel && (\n <LabelComponent\n {...LabelProps}\n validationStatus={validationStatus}\n hasStatusIndicator={hasStatusIndicator}\n StatusIndicatorProps={StatusIndicatorProps}\n className={LabelProps.className}\n label={label}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n tooltipText={helperText}\n id={labelId}\n />\n )}\n {children}\n <ActivationIndicatorComponent\n hasIcon={!hasStatusIndicator}\n validationStatus={validationStatus}\n />\n {renderHelperText && (\n <HelperTextComponent\n helperText={helperText}\n helperTextPlacement={helperTextPlacement}\n {...HelperTextProps}\n id={helperTextId}\n />\n )}\n </FormFieldContext.Provider>\n </div>\n <Tooltip {...getTooltipProps({ title: helperText })} />\n </>\n );\n }\n);\n"],"names":["useMemo","useState","makePrefixer","classBase","forwardRef","FormActivationIndicator","FormHelperText","FormLabel","StatusIndicatorProps","useId","useRef","useTooltip","clsx","useForkRef","jsxs","Fragment","jsx","FormFieldContext","Tooltip"],"mappings":"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"}
1
+ {"version":3,"file":"FormField.js","sources":["../src/form-field/FormField.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n Dispatch,\n ElementType,\n FocusEventHandler,\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n SetStateAction,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, Tooltip, useForkRef, useId } from \"@salt-ds/core\";\nimport { FormFieldContext } from \"../form-field-context\";\nimport { classBase } from \"./constant\";\nimport {\n FormActivationIndicator,\n FormActivationIndicatorProps,\n} from \"./FormActivationIndicator\";\nimport { FormHelperText, FormHelperTextProps } from \"./FormHelperText\";\nimport { FormLabel, FormLabelProps } from \"./FormLabel\";\nimport { NecessityIndicatorOptions } from \"./NecessityIndicator\";\nimport { StatusIndicatorProps } from \"./StatusIndicator\";\n\nimport \"./FormField.css\";\n\nexport type FormFieldLabelPlacement = \"top\" | \"left\";\nexport type FormFieldHelperTextPlacement = \"bottom\" | \"tooltip\";\nexport type FormFieldValidationStatus = \"error\" | \"warning\";\n\nexport interface A11yValueProps\n extends Pick<NecessityIndicatorOptions, \"required\"> {\n /**\n * If `true`, the FormField will be disabled.\n */\n disabled?: boolean;\n /** id of the helper text node */\n helperTextId?: string;\n /** id of the label node */\n labelId?: string;\n /**\n * The FormField value is Readonly\n */\n readOnly?: boolean;\n\n /**\n * Whether the form field needs to render helper text\n */\n renderHelperText?: boolean;\n}\n\nexport interface FormFieldProps\n extends HTMLAttributes<HTMLDivElement>,\n A11yValueProps {\n /**\n * The component used for activation indicator. Default to `FormActivationIndicator`.\n */\n ActivationIndicatorComponent?: ElementType<FormActivationIndicatorProps>;\n /**\n * Outer focus ring focus will not be applied. Defaults to false.\n */\n disableFocusRing?: boolean;\n // I hate this fullWidth business. We should support a width prop. The default should be 100% (standard block behaviour)\n // we should also support 'auto' or explicit numeric values\n /**\n * Whether the form field is occupying full width.\n */\n fullWidth?: boolean;\n /**\n * Whether to show the StatusIndicator component for validation states.\n */\n hasStatusIndicator?: boolean;\n /**\n * The helper text content\n */\n helperText?: string;\n /**\n * The component used for the helper text. Default to `FormHelperText`.\n */\n HelperTextComponent?: ElementType<FormHelperTextProps>;\n /**\n * Location the helperText, values: 'bottom' (default) or 'tooltip'.\n */\n helperTextPlacement?: FormFieldHelperTextPlacement;\n /**\n * Props to be applied to the `HelperTextComponent`.\n *\n * Generic on `FormHelperTextProps` is omitted.\n */\n HelperTextProps?: Partial<FormHelperTextProps>;\n /**\n * The label value for the FormField\n */\n label?: string;\n /**\n * The component used for the label. Default to `FormLabel`.\n */\n LabelComponent?: ElementType;\n /**\n * Location the label, values: 'top' (default) or 'left'\n */\n labelPlacement?: FormFieldLabelPlacement;\n /**\n * Props to be applied to the `LabelComponent`\n */\n LabelProps?: Partial<FormLabelProps>;\n /**\n * Override props to be used with the StatusIndicator component\n */\n StatusIndicatorProps?: Partial<StatusIndicatorProps>;\n /**\n * The state for the FormField: Must be one of: 'error'|'warning'|undefined\n */\n validationStatus?: FormFieldValidationStatus;\n /**\n * FormField variants; defaults to primary.\n */\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nexport interface useA11yValueValue {\n \"aria-labelledby\": A11yValueProps[\"labelId\"];\n \"aria-required\": A11yValueProps[\"required\"];\n \"aria-describedby\": A11yValueProps[\"helperTextId\"] | undefined;\n disabled: A11yValueProps[\"disabled\"];\n readOnly: A11yValueProps[\"readOnly\"];\n}\n\nconst useA11yValue = ({\n required,\n disabled,\n readOnly,\n labelId,\n helperTextId,\n renderHelperText,\n}: A11yValueProps) => {\n return useMemo(\n () => ({\n \"aria-labelledby\": labelId,\n \"aria-required\": required,\n \"aria-describedby\": renderHelperText ? helperTextId : undefined,\n disabled,\n readOnly,\n }),\n [labelId, disabled, readOnly, required, renderHelperText, helperTextId]\n );\n};\n\n// TODO: Add TS props for this\nexport const useFormField = ({\n onBlur,\n onFocus,\n}: {\n onBlur?: FocusEventHandler<HTMLDivElement>;\n onFocus?: FocusEventHandler<HTMLDivElement>;\n}): [\n { focused: boolean },\n { setFocused: Dispatch<SetStateAction<boolean>> },\n {\n onBlur: FocusEventHandler<HTMLDivElement>;\n onFocus: FocusEventHandler<HTMLDivElement>;\n }\n] => {\n const [focused, setFocused] = useState(false);\n const handleBlur: FocusEventHandler<HTMLDivElement> = (event) => {\n setFocused(false);\n onBlur?.(event);\n };\n const handleFocus: FocusEventHandler<HTMLDivElement> = (event) => {\n setFocused(true);\n onFocus?.(event);\n };\n return [\n {\n focused,\n },\n {\n setFocused,\n },\n {\n onBlur: handleBlur,\n onFocus: handleFocus,\n },\n ];\n};\n\nconst withBaseName = makePrefixer(classBase);\n\nexport const FormField = forwardRef(\n (\n {\n ActivationIndicatorComponent = FormActivationIndicator,\n children,\n className,\n disabled,\n disableFocusRing = false,\n fullWidth = true,\n hasStatusIndicator,\n HelperTextComponent = FormHelperText,\n HelperTextProps,\n helperText,\n helperTextPlacement = \"bottom\",\n label,\n LabelComponent = FormLabel,\n labelPlacement = \"top\",\n LabelProps = { displayedNecessity: \"required\" },\n onBlur,\n onFocus,\n readOnly,\n required,\n StatusIndicatorProps,\n validationStatus,\n variant = \"primary\",\n ...restProps\n }: FormFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const labelId = useId(LabelProps?.id);\n const helperTextId = useId(HelperTextProps?.id);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const renderHelperText = !!helperText;\n\n const a11yValue = useA11yValue({\n required,\n disabled,\n readOnly,\n labelId,\n helperTextId,\n renderHelperText,\n });\n\n const [states, dispatchers, eventHandlers] = useFormField({\n onBlur,\n onFocus,\n });\n\n const hasLabel = label !== undefined;\n const labelTop = hasLabel && labelPlacement === \"top\";\n const labelLeft = hasLabel && labelPlacement === \"left\";\n const isWarning = validationStatus === \"warning\";\n const isError = validationStatus === \"error\";\n const focusClass = disableFocusRing\n ? \"lowFocused\"\n : \"focused\"; /* NOTE: need to look at */\n const inlineHelperText =\n renderHelperText && helperTextPlacement === \"bottom\";\n const tooltipHelperText =\n renderHelperText &&\n helperTextPlacement === \"tooltip\" &&\n !hasStatusIndicator;\n\n const handleTriggerRef = useForkRef(rootRef, ref);\n\n return (\n <Tooltip disabled={!tooltipHelperText} content={helperText}>\n <div\n ref={handleTriggerRef}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"readOnly\")]: readOnly,\n [withBaseName(\"warning\")]: isWarning,\n [withBaseName(\"error\")]: isError,\n [withBaseName(\"fullWidth\")]: fullWidth,\n [withBaseName(focusClass)]: states.focused,\n [withBaseName(\"labelTop\")]: labelTop,\n [withBaseName(\"labelLeft\")]: labelLeft,\n [withBaseName(`withHelperText`)]: inlineHelperText,\n [withBaseName(variant)]: variant,\n },\n className\n )}\n {...eventHandlers}\n {...restProps}\n >\n <FormFieldContext.Provider\n value={{\n ...states,\n ...dispatchers,\n ...eventHandlers,\n a11yProps: a11yValue,\n inFormField: true,\n ref: rootRef,\n }}\n >\n {hasLabel && (\n <LabelComponent\n {...LabelProps}\n validationStatus={validationStatus}\n hasStatusIndicator={hasStatusIndicator}\n StatusIndicatorProps={StatusIndicatorProps}\n className={LabelProps.className}\n label={label}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n tooltipText={helperText}\n id={labelId}\n />\n )}\n {children}\n <ActivationIndicatorComponent\n hasIcon={!hasStatusIndicator}\n validationStatus={validationStatus}\n />\n {renderHelperText && (\n <HelperTextComponent\n helperText={helperText}\n helperTextPlacement={helperTextPlacement}\n {...HelperTextProps}\n id={helperTextId}\n />\n )}\n </FormFieldContext.Provider>\n </div>\n </Tooltip>\n );\n }\n);\n"],"names":["useMemo","useState","makePrefixer","classBase","forwardRef","FormActivationIndicator","FormHelperText","FormLabel","StatusIndicatorProps","useId","useRef","useForkRef","jsx","Tooltip","clsx","jsxs","FormFieldContext"],"mappings":"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"}
@@ -5,14 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var clsx = require('clsx');
7
7
  var core = require('@salt-ds/core');
8
- var Tooltip = require('../tooltip/Tooltip.js');
9
- require('../tooltip/TooltipContext.js');
10
- var useTooltip = require('../tooltip/useTooltip.js');
11
8
 
12
9
  const withBaseName = core.makePrefixer("saltFormField");
13
10
  const StatusIndicator = (props) => {
14
11
  const {
15
- TooltipComponent = Tooltip.Tooltip,
12
+ TooltipComponent = core.Tooltip,
16
13
  hasTooltip = false,
17
14
  TooltipProps: TooltipProps2,
18
15
  tooltipText,
@@ -21,33 +18,23 @@ const StatusIndicator = (props) => {
21
18
  status = "info",
22
19
  ...restProps
23
20
  } = props;
24
- const { getTriggerProps, getTooltipProps } = useTooltip.useTooltip({
21
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipComponent, {
22
+ hideIcon: true,
23
+ status,
24
+ content: tooltipText,
25
25
  placement: "top",
26
- disabled: !hasTooltip
27
- });
28
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
29
- children: [
30
- /* @__PURE__ */ jsxRuntime.jsx(TooltipComponent, {
31
- ...getTooltipProps({
32
- hideIcon: true,
33
- status,
34
- title: tooltipText,
35
- ...TooltipProps2
36
- })
37
- }),
38
- /* @__PURE__ */ jsxRuntime.jsx(core.StatusIndicator, {
39
- ...getTriggerProps({
40
- status,
41
- ...restProps,
42
- ...IconProps2,
43
- className: clsx.clsx(
44
- withBaseName("statusIndicator"),
45
- className,
46
- IconProps2 == null ? void 0 : IconProps2.className
47
- )
48
- })
49
- })
50
- ]
26
+ disabled: !hasTooltip,
27
+ ...TooltipProps2,
28
+ children: /* @__PURE__ */ jsxRuntime.jsx(core.StatusIndicator, {
29
+ status,
30
+ ...restProps,
31
+ ...IconProps2,
32
+ className: clsx.clsx(
33
+ withBaseName("statusIndicator"),
34
+ className,
35
+ IconProps2 == null ? void 0 : IconProps2.className
36
+ )
37
+ })
51
38
  });
52
39
  };
53
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"StatusIndicator.js","sources":["../src/form-field/StatusIndicator.tsx"],"sourcesContent":["import { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ElementType } from \"react\";\nimport {\n StatusIndicator as BaseStatusIndicator,\n makePrefixer,\n} from \"@salt-ds/core\";\nimport { Tooltip, TooltipProps, useTooltip } from \"../tooltip\";\n\nconst withBaseName = makePrefixer(\"saltFormField\");\n\nexport type StatusIndicatorStatus = \"error\" | \"info\" | \"warning\" | \"success\";\n\nexport interface StatusIndicatorProps extends IconProps {\n hasTooltip?: boolean;\n IconProps?: Partial<IconProps>;\n status?: StatusIndicatorStatus;\n TooltipComponent?: ElementType<TooltipProps>;\n TooltipProps?: Partial<TooltipProps>;\n tooltipText?: string;\n}\n\nexport const StatusIndicator = (props: StatusIndicatorProps) => {\n const {\n TooltipComponent = Tooltip,\n hasTooltip = false,\n TooltipProps,\n tooltipText,\n IconProps,\n className,\n status = \"info\",\n ...restProps\n } = props;\n\n const { getTriggerProps, getTooltipProps } = useTooltip({\n placement: \"top\",\n disabled: !hasTooltip,\n });\n\n return (\n <>\n <TooltipComponent\n {...getTooltipProps({\n hideIcon: true,\n status,\n title: tooltipText,\n ...TooltipProps,\n })}\n />\n <BaseStatusIndicator\n {...getTriggerProps<typeof BaseStatusIndicator>({\n status,\n ...restProps,\n ...IconProps,\n className: clsx(\n withBaseName(\"statusIndicator\"),\n className,\n IconProps?.className\n ),\n })}\n />\n </>\n );\n};\n"],"names":["makePrefixer","Tooltip","TooltipProps","IconProps","useTooltip","jsxs","Fragment","jsx","BaseStatusIndicator","clsx"],"mappings":";;;;;;;;;;;AASA,MAAM,YAAA,GAAeA,kBAAa,eAAe,CAAA,CAAA;AAapC,MAAA,eAAA,GAAkB,CAAC,KAAgC,KAAA;AAC9D,EAAM,MAAA;AAAA,IACJ,gBAAmB,GAAAC,eAAA;AAAA,IACnB,UAAa,GAAA,KAAA;AAAA,IACb,YAAAC,EAAAA,aAAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAAC,EAAAA,UAAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAS,GAAA,MAAA;AAAA,IACN,GAAA,SAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,EAAE,eAAA,EAAiB,eAAgB,EAAA,GAAIC,qBAAW,CAAA;AAAA,IACtD,SAAW,EAAA,KAAA;AAAA,IACX,UAAU,CAAC,UAAA;AAAA,GACZ,CAAA,CAAA;AAED,EACE,uBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,IACE,QAAA,EAAA;AAAA,sBAACC,cAAA,CAAA,gBAAA,EAAA;AAAA,QACE,GAAG,eAAgB,CAAA;AAAA,UAClB,QAAU,EAAA,IAAA;AAAA,UACV,MAAA;AAAA,UACA,KAAO,EAAA,WAAA;AAAA,UACP,GAAGL,aAAAA;AAAA,SACJ,CAAA;AAAA,OACH,CAAA;AAAA,sBACCK,cAAA,CAAAC,oBAAA,EAAA;AAAA,QACE,GAAG,eAA4C,CAAA;AAAA,UAC9C,MAAA;AAAA,UACA,GAAG,SAAA;AAAA,UACH,GAAGL,UAAAA;AAAA,UACH,SAAW,EAAAM,SAAA;AAAA,YACT,aAAa,iBAAiB,CAAA;AAAA,YAC9B,SAAA;AAAA,YACAN,UAAAA,IAAA,gBAAAA,UAAW,CAAA,SAAA;AAAA,WACb;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"StatusIndicator.js","sources":["../src/form-field/StatusIndicator.tsx"],"sourcesContent":["import { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ElementType } from \"react\";\nimport {\n makePrefixer,\n StatusIndicator as BaseStatusIndicator,\n Tooltip,\n TooltipProps,\n} from \"@salt-ds/core\";\n\nconst withBaseName = makePrefixer(\"saltFormField\");\n\nexport type StatusIndicatorStatus = \"error\" | \"info\" | \"warning\" | \"success\";\n\nexport interface StatusIndicatorProps extends IconProps {\n hasTooltip?: boolean;\n IconProps?: Partial<IconProps>;\n status?: StatusIndicatorStatus;\n TooltipComponent?: ElementType<TooltipProps>;\n TooltipProps?: Partial<TooltipProps>;\n tooltipText?: string;\n}\n\nexport const StatusIndicator = (props: StatusIndicatorProps) => {\n const {\n TooltipComponent = Tooltip,\n hasTooltip = false,\n TooltipProps,\n tooltipText,\n IconProps,\n className,\n status = \"info\",\n ...restProps\n } = props;\n\n return (\n <TooltipComponent\n hideIcon\n status={status}\n content={tooltipText}\n placement=\"top\"\n disabled={!hasTooltip}\n {...TooltipProps}\n >\n <BaseStatusIndicator\n status={status}\n {...restProps}\n {...IconProps}\n className={clsx(\n withBaseName(\"statusIndicator\"),\n className,\n IconProps?.className\n )}\n />\n </TooltipComponent>\n );\n};\n"],"names":["makePrefixer","Tooltip","TooltipProps","IconProps","jsx","BaseStatusIndicator","clsx"],"mappings":";;;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,eAAe,CAAA,CAAA;AAapC,MAAA,eAAA,GAAkB,CAAC,KAAgC,KAAA;AAC9D,EAAM,MAAA;AAAA,IACJ,gBAAmB,GAAAC,YAAA;AAAA,IACnB,UAAa,GAAA,KAAA;AAAA,IACb,YAAAC,EAAAA,aAAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAAC,EAAAA,UAAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAS,GAAA,MAAA;AAAA,IACN,GAAA,SAAA;AAAA,GACD,GAAA,KAAA,CAAA;AAEJ,EAAA,uBACGC,cAAA,CAAA,gBAAA,EAAA;AAAA,IACC,QAAQ,EAAA,IAAA;AAAA,IACR,MAAA;AAAA,IACA,OAAS,EAAA,WAAA;AAAA,IACT,SAAU,EAAA,KAAA;AAAA,IACV,UAAU,CAAC,UAAA;AAAA,IACV,GAAGF,aAAAA;AAAA,IAEJ,QAAC,kBAAAE,cAAA,CAAAC,oBAAA,EAAA;AAAA,MACC,MAAA;AAAA,MACC,GAAG,SAAA;AAAA,MACH,GAAGF,UAAAA;AAAA,MACJ,SAAW,EAAAG,SAAA;AAAA,QACT,aAAa,iBAAiB,CAAA;AAAA,QAC9B,SAAA;AAAA,QACAH,UAAAA,IAAA,gBAAAA,UAAW,CAAA,SAAA;AAAA,OACb;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -19,6 +19,7 @@ var isPlainObject = require('./utils/isPlainObject.js');
19
19
  var partition = require('./utils/partition.js');
20
20
  var useClickOutside = require('./utils/useClickOutside.js');
21
21
  var useEventCallback = require('./utils/useEventCallback.js');
22
+ var useFloatingUI = require('./utils/useFloatingUI.js');
22
23
  var useIsViewportLargerThanBreakpoint = require('./utils/useIsViewportLargerThanBreakpoint.js');
23
24
  var useLayoutEffectOnce = require('./utils/useLayoutEffectOnce.js');
24
25
  var useLayoutEffectSkipFirst = require('./utils/useLayoutEffectSkipFirst.js');
@@ -119,7 +120,6 @@ var ParentChildLayout = require('./parent-child-layout/ParentChildLayout.js');
119
120
  var Pill = require('./pill/Pill.js');
120
121
  var ClosablePill = require('./pill/ClosablePill.js');
121
122
  var SelectablePill = require('./pill/SelectablePill.js');
122
- var useFloatingUI = require('./popper/useFloatingUI.js');
123
123
  var Portal = require('./portal/Portal.js');
124
124
  var CircularProgress = require('./progress/CircularProgress/CircularProgress.js');
125
125
  var LinearProgress = require('./progress/LinearProgress/LinearProgress.js');
@@ -145,8 +145,6 @@ var SearchInput = require('./search-input/SearchInput.js');
145
145
  var SkipLink = require('./skip-link/SkipLink.js');
146
146
  var SkipLinks = require('./skip-link/SkipLinks.js');
147
147
  var Slider = require('./slider/Slider.js');
148
- var Spinner = require('./spinner/Spinner.js');
149
- var SplitLayout = require('./split-layout/SplitLayout.js');
150
148
  var useStepperInput = require('./stepper-input/useStepperInput.js');
151
149
  var StepperInput = require('./stepper-input/StepperInput.js');
152
150
  var Switch = require('./switch/Switch.js');
@@ -164,9 +162,6 @@ var Toolbar = require('./toolbar/Toolbar.js');
164
162
  var Tooltray = require('./toolbar/Tooltray.js');
165
163
  var ToolbarButton = require('./toolbar/ToolbarButton.js');
166
164
  var ToolbarField = require('./toolbar/toolbar-field/ToolbarField.js');
167
- var Tooltip = require('./tooltip/Tooltip.js');
168
- var TooltipContext = require('./tooltip/TooltipContext.js');
169
- var useTooltip = require('./tooltip/useTooltip.js');
170
165
  var Tree = require('./tree/Tree.js');
171
166
  var WindowContext = require('./window/WindowContext.js');
172
167
  var ElectronWindow = require('./window/ElectronWindow.js');
@@ -183,6 +178,8 @@ exports.isPlainObject = isPlainObject.isPlainObject;
183
178
  exports.partition = partition.partition;
184
179
  exports.useClickOutside = useClickOutside.useClickOutside;
185
180
  exports.useEventCallback = useEventCallback.useEventCallback;
181
+ exports.DEFAULT_FLOATING_UI_MIDDLEWARE = useFloatingUI.DEFAULT_FLOATING_UI_MIDDLEWARE;
182
+ exports.useFloatingUI = useFloatingUI.useFloatingUI;
186
183
  exports.useIsViewportLargerThanBreakpoint = useIsViewportLargerThanBreakpoint.useIsViewportLargerThanBreakpoint;
187
184
  exports.useLayoutEffectOnce = useLayoutEffectOnce.useLayoutEffectOnce;
188
185
  exports.useLayoutEffectSkipFirst = useLayoutEffectSkipFirst.useLayoutEffectSkipFirst;
@@ -298,8 +295,6 @@ exports.ParentChildLayout = ParentChildLayout.ParentChildLayout;
298
295
  exports.Pill = Pill.Pill;
299
296
  exports.ClosablePill = ClosablePill.ClosablePill;
300
297
  exports.SelectablePill = SelectablePill.SelectablePill;
301
- exports.DEFAULT_FLOATING_UI_MIDDLEWARE = useFloatingUI.DEFAULT_FLOATING_UI_MIDDLEWARE;
302
- exports.useFloatingUI = useFloatingUI.useFloatingUI;
303
298
  exports.Portal = Portal.Portal;
304
299
  exports.CircularProgress = CircularProgress.CircularProgress;
305
300
  exports.SIZE_OPTIONS = CircularProgress.SIZE_OPTIONS;
@@ -352,9 +347,6 @@ exports.SearchInput = SearchInput.SearchInput;
352
347
  exports.SkipLink = SkipLink.SkipLink;
353
348
  exports.SkipLinks = SkipLinks.SkipLinks;
354
349
  exports.Slider = Slider.Slider;
355
- exports.Spinner = Spinner.Spinner;
356
- exports.SpinnerSizeValues = Spinner.SpinnerSizeValues;
357
- exports.SplitLayout = SplitLayout.SplitLayout;
358
350
  exports.useStepperInput = useStepperInput.useStepperInput;
359
351
  exports.StepperInput = StepperInput.StepperInput;
360
352
  exports.Switch = Switch.Switch;
@@ -372,10 +364,6 @@ exports.Toolbar = Toolbar.Toolbar;
372
364
  exports.Tooltray = Tooltray.Tooltray;
373
365
  exports.ToolbarButton = ToolbarButton.ToolbarButton;
374
366
  exports.ToolbarField = ToolbarField.ToolbarField;
375
- exports.Tooltip = Tooltip.Tooltip;
376
- exports.TooltipContext = TooltipContext.TooltipContext;
377
- exports.useTooltipContext = TooltipContext.useTooltipContext;
378
- exports.useTooltip = useTooltip.useTooltip;
379
367
  exports.Tree = Tree.Tree;
380
368
  exports.Window = WindowContext.Window;
381
369
  exports.WindowContext = WindowContext.WindowContext;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,11 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var React = require('react');
7
7
  var clsx = require('clsx');
8
- var core = require('@salt-ds/core');
9
- var useIsViewportLargerThanBreakpoint = require('../utils/useIsViewportLargerThanBreakpoint.js');
10
8
  var Scrim = require('../scrim/Scrim.js');
11
9
  require('../scrim/ScrimContext.js');
12
10
  require('./LayerLayout.css.js');
11
+ var core = require('@salt-ds/core');
12
+ require('../utils/useFloatingUI.js');
13
+ var useIsViewportLargerThanBreakpoint = require('../utils/useIsViewportLargerThanBreakpoint.js');
13
14
 
14
15
  const LAYER_POSITIONS = [
15
16
  "center",
@@ -1 +1 @@
1
- {"version":3,"file":"LayerLayout.js","sources":["../src/layer-layout/LayerLayout.tsx"],"sourcesContent":["import { forwardRef, HTMLAttributes, useState, useEffect } from \"react\";\nimport { clsx } from \"clsx\";\nimport { Breakpoints, makePrefixer, usePrevious } from \"@salt-ds/core\";\n\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { Scrim, ScrimProps } from \"../scrim\";\nimport \"./LayerLayout.css\";\n\nexport const LAYER_POSITIONS = [\n \"center\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n] as const;\n\nexport type LayerPositions = typeof LAYER_POSITIONS[number];\n\nexport interface LayerLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Disable the scrim.\n */\n disableScrim?: boolean;\n /**\n * Defines the layer position within the screen.\n */\n position?: LayerPositions;\n /**\n * Breakpoint at which the layer will become fullscreen.\n */\n fullScreenAtBreakpoint?: keyof Breakpoints;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Display or hide the component.\n */\n isOpen?: boolean;\n /**\n * Props to be passed to the Scrim component.\n */\n scrimProps?: Partial<ScrimProps>;\n}\n\nconst withBaseName = makePrefixer(\"saltLayerLayout\");\n\nconst ariaAttributes = { role: \"dialog\", \"aria-modal\": true };\n\nexport const LayerLayout = forwardRef<HTMLDivElement, LayerLayoutProps>(\n function LayerLayout(props, ref) {\n const {\n children,\n className,\n disableScrim = false,\n position = \"center\",\n fullScreenAtBreakpoint = \"sm\",\n disableAnimations = false,\n scrimProps,\n isOpen = true,\n ...rest\n } = props;\n\n const previousDisableAnimationsProp = usePrevious(\n disableAnimations,\n [disableAnimations],\n false\n ); // we check the previous value for this prop to prevent the animations from triggering again when it changes\n\n const [showComponent, setShowComponent] = useState(false);\n\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n if ((!isOpen && disableAnimations) || (!isOpen && !isAnimating)) {\n setShowComponent(false);\n }\n\n if (isOpen && !showComponent) {\n setShowComponent(true);\n }\n }, [isOpen, showComponent, disableAnimations, isAnimating]);\n\n const fullScreen = useIsViewportLargerThanBreakpoint(\n fullScreenAtBreakpoint\n );\n\n const anchored = position !== \"center\" && !fullScreen;\n\n const enterAnimation =\n !disableAnimations && isOpen && !previousDisableAnimationsProp;\n\n const exitAnimation = !disableAnimations && !isOpen;\n\n const layerLayout = showComponent ? (\n <div\n ref={ref}\n className={clsx(withBaseName(), className, {\n [withBaseName(\"anchor\")]: anchored,\n [withBaseName(\"fullScreen\")]: fullScreen,\n [withBaseName(position)]: !fullScreen,\n [withBaseName(\"enter-animation\")]: enterAnimation,\n [withBaseName(\"exit-animation\")]: exitAnimation,\n })}\n onAnimationStart={() => setIsAnimating(true)}\n onAnimationEnd={() => {\n if (!isOpen && showComponent) {\n setShowComponent(false);\n }\n }}\n {...(disableScrim && ariaAttributes)}\n {...rest}\n >\n {children}\n </div>\n ) : null;\n\n return disableScrim ? (\n layerLayout\n ) : (\n <Scrim\n open={showComponent}\n className={clsx({\n [withBaseName(\"enter-animation\")]: enterAnimation,\n [withBaseName(\"exit-animation\")]: exitAnimation,\n })}\n {...scrimProps}\n >\n {layerLayout}\n </Scrim>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","LayerLayout","usePrevious","useState","useEffect","useIsViewportLargerThanBreakpoint","jsx","clsx","Scrim"],"mappings":"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"}
1
+ {"version":3,"file":"LayerLayout.js","sources":["../src/layer-layout/LayerLayout.tsx"],"sourcesContent":["import { forwardRef, HTMLAttributes, useEffect, useState } from \"react\";\nimport { clsx } from \"clsx\";\n\nimport { Scrim, ScrimProps } from \"../scrim\";\nimport \"./LayerLayout.css\";\nimport { Breakpoints, makePrefixer, usePrevious } from \"@salt-ds/core\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nexport const LAYER_POSITIONS = [\n \"center\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n] as const;\n\nexport type LayerPositions = typeof LAYER_POSITIONS[number];\n\nexport interface LayerLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Disable the scrim.\n */\n disableScrim?: boolean;\n /**\n * Defines the layer position within the screen.\n */\n position?: LayerPositions;\n /**\n * Breakpoint at which the layer will become fullscreen.\n */\n fullScreenAtBreakpoint?: keyof Breakpoints;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Display or hide the component.\n */\n isOpen?: boolean;\n /**\n * Props to be passed to the Scrim component.\n */\n scrimProps?: Partial<ScrimProps>;\n}\n\nconst withBaseName = makePrefixer(\"saltLayerLayout\");\n\nconst ariaAttributes = { role: \"dialog\", \"aria-modal\": true };\n\nexport const LayerLayout = forwardRef<HTMLDivElement, LayerLayoutProps>(\n function LayerLayout(props, ref) {\n const {\n children,\n className,\n disableScrim = false,\n position = \"center\",\n fullScreenAtBreakpoint = \"sm\",\n disableAnimations = false,\n scrimProps,\n isOpen = true,\n ...rest\n } = props;\n\n const previousDisableAnimationsProp = usePrevious(\n disableAnimations,\n [disableAnimations],\n false\n ); // we check the previous value for this prop to prevent the animations from triggering again when it changes\n\n const [showComponent, setShowComponent] = useState(false);\n\n const [isAnimating, setIsAnimating] = useState(false);\n\n useEffect(() => {\n if ((!isOpen && disableAnimations) || (!isOpen && !isAnimating)) {\n setShowComponent(false);\n }\n\n if (isOpen && !showComponent) {\n setShowComponent(true);\n }\n }, [isOpen, showComponent, disableAnimations, isAnimating]);\n\n const fullScreen = useIsViewportLargerThanBreakpoint(\n fullScreenAtBreakpoint\n );\n\n const anchored = position !== \"center\" && !fullScreen;\n\n const enterAnimation =\n !disableAnimations && isOpen && !previousDisableAnimationsProp;\n\n const exitAnimation = !disableAnimations && !isOpen;\n\n const layerLayout = showComponent ? (\n <div\n ref={ref}\n className={clsx(withBaseName(), className, {\n [withBaseName(\"anchor\")]: anchored,\n [withBaseName(\"fullScreen\")]: fullScreen,\n [withBaseName(position)]: !fullScreen,\n [withBaseName(\"enter-animation\")]: enterAnimation,\n [withBaseName(\"exit-animation\")]: exitAnimation,\n })}\n onAnimationStart={() => setIsAnimating(true)}\n onAnimationEnd={() => {\n if (!isOpen && showComponent) {\n setShowComponent(false);\n }\n }}\n {...(disableScrim && ariaAttributes)}\n {...rest}\n >\n {children}\n </div>\n ) : null;\n\n return disableScrim ? (\n layerLayout\n ) : (\n <Scrim\n open={showComponent}\n className={clsx({\n [withBaseName(\"enter-animation\")]: enterAnimation,\n [withBaseName(\"exit-animation\")]: exitAnimation,\n })}\n {...scrimProps}\n >\n {layerLayout}\n </Scrim>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","LayerLayout","usePrevious","useState","useEffect","useIsViewportLargerThanBreakpoint","jsx","clsx","Scrim"],"mappings":"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"}
@@ -6,6 +6,7 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var core = require('@salt-ds/core');
7
7
  var escapeRegExp = require('../utils/escapeRegExp.js');
8
8
  require('react');
9
+ require('../utils/useFloatingUI.js');
9
10
  require('./Highlighter.css.js');
10
11
 
11
12
  const withBaseName = core.makePrefixer("saltHighlighter");
@@ -1 +1 @@
1
- {"version":3,"file":"Highlighter.js","sources":["../src/list/Highlighter.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { ReactElement } from \"react\";\nimport { escapeRegExp } from \"../utils\";\n\nimport \"./Highlighter.css\";\n\nconst withBaseName = makePrefixer(\"saltHighlighter\");\n\nexport interface HighlighterProps {\n matchPattern?: RegExp | string;\n text?: string;\n}\n\nexport const Highlighter = (\n props: HighlighterProps\n): ReactElement<HighlighterProps> => {\n const { matchPattern, text = \"\" } = props;\n const matchRegex =\n typeof matchPattern === \"string\"\n ? new RegExp(`(${escapeRegExp(matchPattern)})`, \"gi\")\n : matchPattern;\n\n if (matchRegex === undefined) {\n return <>{text}</>;\n }\n return (\n <span>\n {text.split(matchRegex).map((part, index) =>\n part.match(matchRegex) ? (\n <strong\n className={withBaseName(\"highlight\")}\n key={`${index}-${part}`}\n >\n {part}\n </strong>\n ) : (\n part\n )\n )}\n </span>\n );\n};\n"],"names":["makePrefixer","escapeRegExp","jsx","Fragment"],"mappings":";;;;;;;;;;AAMA,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA,CAAA;AAOtC,MAAA,WAAA,GAAc,CACzB,KACmC,KAAA;AACnC,EAAA,MAAM,EAAE,YAAA,EAAc,IAAO,GAAA,EAAA,EAAO,GAAA,KAAA,CAAA;AACpC,EAAM,MAAA,UAAA,GACJ,OAAO,YAAA,KAAiB,QACpB,GAAA,IAAI,MAAO,CAAA,CAAA,CAAA,EAAIC,yBAAa,CAAA,YAAY,CAAM,CAAA,CAAA,CAAA,EAAA,IAAI,CAClD,GAAA,YAAA,CAAA;AAEN,EAAA,IAAI,eAAe,KAAW,CAAA,EAAA;AAC5B,IAAO,uBAAAC,cAAA,CAAAC,mBAAA,EAAA;AAAA,MAAG,QAAA,EAAA,IAAA;AAAA,KAAK,CAAA,CAAA;AAAA,GACjB;AACA,EAAA,uBACGD,cAAA,CAAA,MAAA,EAAA;AAAA,IACE,QAAA,EAAA,IAAA,CAAK,KAAM,CAAA,UAAU,CAAE,CAAA,GAAA;AAAA,MAAI,CAAC,IAAM,EAAA,KAAA,KACjC,KAAK,KAAM,CAAA,UAAU,oBAClBA,cAAA,CAAA,QAAA,EAAA;AAAA,QACC,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,QAGlC,QAAA,EAAA,IAAA;AAAA,OAFI,EAAA,CAAA,EAAG,KAAS,CAAA,CAAA,EAAA,IAAA,CAAA,CAGnB,CAEA,GAAA,IAAA;AAAA,KAEJ;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Highlighter.js","sources":["../src/list/Highlighter.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { ReactElement } from \"react\";\nimport { escapeRegExp } from \"../utils\";\n\nimport \"./Highlighter.css\";\n\nconst withBaseName = makePrefixer(\"saltHighlighter\");\n\nexport interface HighlighterProps {\n matchPattern?: RegExp | string;\n text?: string;\n}\n\nexport const Highlighter = (\n props: HighlighterProps\n): ReactElement<HighlighterProps> => {\n const { matchPattern, text = \"\" } = props;\n const matchRegex =\n typeof matchPattern === \"string\"\n ? new RegExp(`(${escapeRegExp(matchPattern)})`, \"gi\")\n : matchPattern;\n\n if (matchRegex === undefined) {\n return <>{text}</>;\n }\n return (\n <span>\n {text.split(matchRegex).map((part, index) =>\n part.match(matchRegex) ? (\n <strong\n className={withBaseName(\"highlight\")}\n key={`${index}-${part}`}\n >\n {part}\n </strong>\n ) : (\n part\n )\n )}\n </span>\n );\n};\n"],"names":["makePrefixer","escapeRegExp","jsx","Fragment"],"mappings":";;;;;;;;;;;AAMA,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA,CAAA;AAOtC,MAAA,WAAA,GAAc,CACzB,KACmC,KAAA;AACnC,EAAA,MAAM,EAAE,YAAA,EAAc,IAAO,GAAA,EAAA,EAAO,GAAA,KAAA,CAAA;AACpC,EAAM,MAAA,UAAA,GACJ,OAAO,YAAA,KAAiB,QACpB,GAAA,IAAI,MAAO,CAAA,CAAA,CAAA,EAAIC,yBAAa,CAAA,YAAY,CAAM,CAAA,CAAA,CAAA,EAAA,IAAI,CAClD,GAAA,YAAA,CAAA;AAEN,EAAA,IAAI,eAAe,KAAW,CAAA,EAAA;AAC5B,IAAO,uBAAAC,cAAA,CAAAC,mBAAA,EAAA;AAAA,MAAG,QAAA,EAAA,IAAA;AAAA,KAAK,CAAA,CAAA;AAAA,GACjB;AACA,EAAA,uBACGD,cAAA,CAAA,MAAA,EAAA;AAAA,IACE,QAAA,EAAA,IAAA,CAAK,KAAM,CAAA,UAAU,CAAE,CAAA,GAAA;AAAA,MAAI,CAAC,IAAM,EAAA,KAAA,KACjC,KAAK,KAAM,CAAA,UAAU,oBAClBA,cAAA,CAAA,QAAA,EAAA;AAAA,QACC,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,QAGlC,QAAA,EAAA,IAAA;AAAA,OAFI,EAAA,CAAA,EAAG,KAAS,CAAA,CAAA,EAAA,IAAA,CAAA,CAGnB,CAEA,GAAA,IAAA;AAAA,KAEJ;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -13,6 +13,7 @@ var useCollectionItems = require('../common-hooks/useCollectionItems.js');
13
13
  var useImperativeScrollingAPI = require('../common-hooks/useImperativeScrollingAPI.js');
14
14
  var useKeyboardNavigation = require('../common-hooks/useKeyboardNavigation.js');
15
15
  require('../responsive/useResizeObserver.js');
16
+ require('../utils/useFloatingUI.js');
16
17
  var isSelected = require('../common-hooks/utils/isSelected.js');
17
18
  var ListItem = require('./ListItem.js');
18
19
  var useList = require('./useList.js');