@react-md/core 1.0.0-next.0 → 1.0.0-next.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 (1006) hide show
  1. package/.turbo/turbo-build.log +5 -5
  2. package/CHANGELOG.md +65 -0
  3. package/coverage/clover.xml +3 -1118
  4. package/coverage/coverage-final.json +1 -7
  5. package/coverage/lcov-report/CircularProgress.tsx.html +799 -0
  6. package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
  7. package/coverage/lcov-report/Dialog.tsx.html +1309 -0
  8. package/coverage/lcov-report/DialogContent.tsx.html +178 -0
  9. package/coverage/lcov-report/DialogFooter.tsx.html +169 -0
  10. package/coverage/lcov-report/LinearProgress.tsx.html +658 -0
  11. package/coverage/lcov-report/MaterialIcon.tsx.html +36 -42
  12. package/coverage/lcov-report/MaterialSymbol.tsx.html +240 -222
  13. package/coverage/lcov-report/MenuItemInputToggle.tsx.html +979 -0
  14. package/coverage/lcov-report/MenuItemSeparator.tsx.html +223 -0
  15. package/coverage/lcov-report/MenuItemTextField.tsx.html +289 -0
  16. package/coverage/lcov-report/Snackbar.tsx.html +360 -402
  17. package/coverage/lcov-report/Switch.tsx.html +535 -0
  18. package/coverage/lcov-report/SwitchTrack.tsx.html +262 -0
  19. package/coverage/lcov-report/Table.tsx.html +457 -0
  20. package/coverage/lcov-report/TableCell.tsx.html +982 -0
  21. package/coverage/lcov-report/TableCheckbox.tsx.html +709 -0
  22. package/coverage/lcov-report/TableContainer.tsx.html +220 -0
  23. package/coverage/lcov-report/TableFooter.tsx.html +502 -0
  24. package/coverage/lcov-report/TableHeader.tsx.html +541 -0
  25. package/coverage/lcov-report/TableRadio.tsx.html +670 -0
  26. package/coverage/lcov-report/TableRow.tsx.html +289 -0
  27. package/coverage/lcov-report/Toast.tsx.html +868 -0
  28. package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
  29. package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
  30. package/coverage/lcov-report/Tooltip.tsx.html +98 -155
  31. package/coverage/lcov-report/avatar/Avatar.tsx.html +37 -31
  32. package/coverage/lcov-report/avatar/index.html +22 -7
  33. package/coverage/lcov-report/avatar/styles.ts.html +268 -0
  34. package/coverage/lcov-report/button/AsyncButton.tsx.html +217 -10
  35. package/coverage/lcov-report/button/Button.tsx.html +95 -83
  36. package/coverage/lcov-report/button/index.html +12 -12
  37. package/coverage/lcov-report/config.ts.html +33 -18
  38. package/coverage/lcov-report/cssUtils.ts.html +143 -65
  39. package/coverage/lcov-report/dialog/Dialog.tsx.html +170 -167
  40. package/coverage/lcov-report/dialog/DialogContent.tsx.html +178 -0
  41. package/coverage/lcov-report/dialog/DialogFooter.tsx.html +169 -0
  42. package/coverage/lcov-report/dialog/DialogHeader.tsx.html +148 -0
  43. package/coverage/lcov-report/dialog/DialogTitle.tsx.html +256 -0
  44. package/coverage/lcov-report/dialog/index.html +18 -33
  45. package/coverage/lcov-report/dialog/styles.ts.html +439 -0
  46. package/coverage/lcov-report/form/MenuItemInputToggle.tsx.html +36 -24
  47. package/coverage/lcov-report/form/MenuItemTextField.tsx.html +12 -9
  48. package/coverage/lcov-report/form/SliderValueTooltip.tsx.html +319 -0
  49. package/coverage/lcov-report/form/Switch.tsx.html +310 -385
  50. package/coverage/lcov-report/form/SwitchTrack.tsx.html +98 -71
  51. package/coverage/lcov-report/form/index.html +20 -245
  52. package/coverage/lcov-report/form/switchStyles.ts.html +172 -0
  53. package/coverage/lcov-report/form/useRadioGroup.ts.html +79 -79
  54. package/coverage/lcov-report/hoverMode/index.html +116 -0
  55. package/coverage/lcov-report/hoverMode/useHoverMode.ts.html +676 -0
  56. package/coverage/lcov-report/icon/FontIcon.tsx.html +37 -46
  57. package/coverage/lcov-report/icon/index.html +12 -12
  58. package/coverage/lcov-report/icon/styles.ts.html +41 -104
  59. package/coverage/lcov-report/iconConfig.tsx.html +973 -0
  60. package/coverage/lcov-report/index.html +11 -101
  61. package/coverage/lcov-report/link/Link.tsx.html +358 -0
  62. package/coverage/lcov-report/link/index.html +20 -20
  63. package/coverage/lcov-report/list/ListItemLink.tsx.html +29 -35
  64. package/coverage/lcov-report/list/index.html +8 -38
  65. package/coverage/lcov-report/materialConfig.ts.html +703 -0
  66. package/coverage/lcov-report/media-queries/appSize.ts.html +1 -1
  67. package/coverage/lcov-report/media-queries/index.html +10 -10
  68. package/coverage/lcov-report/menu/DropdownMenu.tsx.html +976 -0
  69. package/coverage/lcov-report/menu/Menu.tsx.html +111 -60
  70. package/coverage/lcov-report/menu/MenuConfigurationProvider.tsx.html +637 -0
  71. package/coverage/lcov-report/menu/MenuSheet.tsx.html +37 -13
  72. package/coverage/lcov-report/menu/index.html +35 -65
  73. package/coverage/lcov-report/menu/menuConfig.ts.html +118 -0
  74. package/coverage/lcov-report/progress/CircularProgress.tsx.html +799 -0
  75. package/coverage/lcov-report/progress/LinearProgress.tsx.html +100 -94
  76. package/coverage/lcov-report/progress/index.html +22 -7
  77. package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
  78. package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
  79. package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
  80. package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
  81. package/coverage/lcov-report/snackbar/index.html +59 -14
  82. package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
  83. package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
  84. package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
  85. package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
  86. package/coverage/lcov-report/src/CoreProviders.tsx.html +20 -20
  87. package/coverage/lcov-report/src/NoSsr.tsx.html +1 -1
  88. package/coverage/lcov-report/src/SsrProvider.tsx.html +10 -10
  89. package/coverage/lcov-report/src/app-bar/AppBar.tsx.html +65 -65
  90. package/coverage/lcov-report/src/app-bar/AppBarTitle.tsx.html +1 -1
  91. package/coverage/lcov-report/src/app-bar/index.html +20 -5
  92. package/coverage/lcov-report/src/avatar/Avatar.tsx.html +36 -27
  93. package/coverage/lcov-report/src/avatar/index.html +22 -7
  94. package/coverage/lcov-report/src/avatar/styles.ts.html +77 -8
  95. package/coverage/lcov-report/src/badge/Badge.tsx.html +1 -1
  96. package/coverage/lcov-report/src/badge/index.html +1 -1
  97. package/coverage/lcov-report/src/box/Box.tsx.html +1 -1
  98. package/coverage/lcov-report/src/box/index.html +10 -25
  99. package/coverage/lcov-report/src/box/styles.ts.html +103 -49
  100. package/coverage/lcov-report/src/button/AsyncButton.tsx.html +833 -284
  101. package/coverage/lcov-report/src/button/Button.tsx.html +87 -87
  102. package/coverage/lcov-report/src/button/ButtonUnstyled.tsx.html +1 -1
  103. package/coverage/lcov-report/src/button/FloatingActionButton.tsx.html +39 -39
  104. package/coverage/lcov-report/src/button/buttonStyles.ts.html +59 -59
  105. package/coverage/lcov-report/src/button/buttonUnstyledStyles.ts.html +1 -1
  106. package/coverage/lcov-report/src/button/index.html +23 -8
  107. package/coverage/lcov-report/src/card/Card.tsx.html +1 -1
  108. package/coverage/lcov-report/src/card/CardContent.tsx.html +1 -1
  109. package/coverage/lcov-report/src/card/CardFooter.tsx.html +1 -1
  110. package/coverage/lcov-report/src/card/CardHeader.tsx.html +1 -1
  111. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +1 -1
  112. package/coverage/lcov-report/src/card/CardTitle.tsx.html +1 -1
  113. package/coverage/lcov-report/src/card/index.html +95 -5
  114. package/coverage/lcov-report/src/card/styles.ts.html +1 -1
  115. package/coverage/lcov-report/src/chip/Chip.tsx.html +1 -1
  116. package/coverage/lcov-report/src/chip/index.html +1 -1
  117. package/coverage/lcov-report/src/chip/styles.ts.html +1 -1
  118. package/coverage/lcov-report/src/cssUtils.ts.html +68 -59
  119. package/coverage/lcov-report/src/delegateEvent.ts.html +84 -84
  120. package/coverage/lcov-report/src/dialog/Dialog.tsx.html +158 -155
  121. package/coverage/lcov-report/src/dialog/DialogContainer.tsx.html +27 -27
  122. package/coverage/lcov-report/src/dialog/DialogContent.tsx.html +72 -72
  123. package/coverage/lcov-report/src/dialog/DialogFooter.tsx.html +14 -14
  124. package/coverage/lcov-report/src/dialog/DialogHeader.tsx.html +9 -9
  125. package/coverage/lcov-report/src/dialog/DialogTitle.tsx.html +124 -124
  126. package/coverage/lcov-report/src/dialog/FixedDialog.tsx.html +1 -1
  127. package/coverage/lcov-report/src/dialog/NestedDialogProvider.ts.html +3 -3
  128. package/coverage/lcov-report/src/dialog/index.html +21 -21
  129. package/coverage/lcov-report/src/dialog/styles.ts.html +61 -61
  130. package/coverage/lcov-report/src/divider/Divider.tsx.html +24 -24
  131. package/coverage/lcov-report/src/divider/index.html +21 -6
  132. package/coverage/lcov-report/src/divider/styles.ts.html +11 -11
  133. package/coverage/lcov-report/src/draggable/index.html +5 -5
  134. package/coverage/lcov-report/src/draggable/useDraggable.ts.html +322 -322
  135. package/coverage/lcov-report/src/draggable/utils.ts.html +81 -81
  136. package/coverage/lcov-report/src/expansion-panel/ExpansionList.tsx.html +1 -1
  137. package/coverage/lcov-report/src/expansion-panel/ExpansionPanel.tsx.html +1 -1
  138. package/coverage/lcov-report/src/expansion-panel/ExpansionPanelHeader.tsx.html +11 -20
  139. package/coverage/lcov-report/src/expansion-panel/index.html +25 -10
  140. package/coverage/lcov-report/src/expansion-panel/useExpansionList.ts.html +1 -1
  141. package/coverage/lcov-report/src/expansion-panel/useExpansionPanels.ts.html +1 -1
  142. package/coverage/lcov-report/src/focus/index.html +23 -23
  143. package/coverage/lcov-report/src/focus/useFocusContainer.ts.html +142 -121
  144. package/coverage/lcov-report/src/focus/utils.ts.html +37 -37
  145. package/coverage/lcov-report/src/form/Checkbox.tsx.html +1 -1
  146. package/coverage/lcov-report/src/form/Fieldset.tsx.html +1 -1
  147. package/coverage/lcov-report/src/form/FileInput.tsx.html +133 -139
  148. package/coverage/lcov-report/src/form/Form.tsx.html +1 -1
  149. package/coverage/lcov-report/src/form/FormMessage.tsx.html +126 -264
  150. package/coverage/lcov-report/src/form/FormMessageContainer.tsx.html +42 -45
  151. package/coverage/lcov-report/src/form/FormMessageCounter.tsx.html +1 -1
  152. package/coverage/lcov-report/src/form/InputToggle.tsx.html +7 -16
  153. package/coverage/lcov-report/src/form/InputToggleIcon.tsx.html +1 -1
  154. package/coverage/lcov-report/src/form/Label.tsx.html +102 -102
  155. package/coverage/lcov-report/src/form/Legend.tsx.html +1 -1
  156. package/coverage/lcov-report/src/form/MenuItemCheckbox.tsx.html +11 -5
  157. package/coverage/lcov-report/src/form/MenuItemFileInput.tsx.html +3 -3
  158. package/coverage/lcov-report/src/form/MenuItemInputToggle.tsx.html +21 -9
  159. package/coverage/lcov-report/src/form/MenuItemRadio.tsx.html +11 -5
  160. package/coverage/lcov-report/src/form/MenuItemSwitch.tsx.html +1 -1
  161. package/coverage/lcov-report/src/form/MenuItemTextField.tsx.html +13 -4
  162. package/coverage/lcov-report/src/form/NativeSelect.tsx.html +20 -5
  163. package/coverage/lcov-report/src/form/OptGroup.tsx.html +1 -1
  164. package/coverage/lcov-report/src/form/Option.tsx.html +4 -4
  165. package/coverage/lcov-report/src/form/Password.tsx.html +3 -3
  166. package/coverage/lcov-report/src/form/Radio.tsx.html +1 -1
  167. package/coverage/lcov-report/src/form/Select.tsx.html +1 -1
  168. package/coverage/lcov-report/src/form/SelectValue.tsx.html +1 -1
  169. package/coverage/lcov-report/src/form/Slider.tsx.html +129 -9
  170. package/coverage/lcov-report/src/form/SliderContainer.tsx.html +1 -1
  171. package/coverage/lcov-report/src/form/SliderMark.tsx.html +1 -1
  172. package/coverage/lcov-report/src/form/SliderMarkLabel.tsx.html +1 -1
  173. package/coverage/lcov-report/src/form/SliderThumb.tsx.html +43 -7
  174. package/coverage/lcov-report/src/form/SliderTrack.tsx.html +1 -1
  175. package/coverage/lcov-report/src/form/SliderValueMarks.tsx.html +11 -5
  176. package/coverage/lcov-report/src/form/SliderValueTooltip.tsx.html +2 -2
  177. package/coverage/lcov-report/src/form/Switch.tsx.html +310 -373
  178. package/coverage/lcov-report/src/form/SwitchTrack.tsx.html +99 -69
  179. package/coverage/lcov-report/src/form/TextArea.tsx.html +21 -9
  180. package/coverage/lcov-report/src/form/TextField.tsx.html +16 -10
  181. package/coverage/lcov-report/src/form/TextFieldAddon.tsx.html +14 -26
  182. package/coverage/lcov-report/src/form/TextFieldContainer.tsx.html +28 -10
  183. package/coverage/lcov-report/src/form/TextFieldContainerStyles.ts.html +17 -8
  184. package/coverage/lcov-report/src/form/fileUtils.ts.html +3 -3
  185. package/coverage/lcov-report/src/form/formConfig.ts.html +18 -18
  186. package/coverage/lcov-report/src/form/formMessageStyles.ts.html +40 -40
  187. package/coverage/lcov-report/src/form/index.html +14 -164
  188. package/coverage/lcov-report/src/form/inputToggleStyles.ts.html +1 -1
  189. package/coverage/lcov-report/src/form/nativeSelectStyles.ts.html +34 -7
  190. package/coverage/lcov-report/src/form/optionStyles.ts.html +1 -1
  191. package/coverage/lcov-report/src/form/passwordStyles.ts.html +1 -1
  192. package/coverage/lcov-report/src/form/selectStyles.ts.html +1 -1
  193. package/coverage/lcov-report/src/form/selectUtils.ts.html +6 -9
  194. package/coverage/lcov-report/src/form/sliderUtils.ts.html +20 -14
  195. package/coverage/lcov-report/src/form/switchStyles.ts.html +68 -68
  196. package/coverage/lcov-report/src/form/textAreaStyles.ts.html +3 -3
  197. package/coverage/lcov-report/src/form/textFieldStyles.ts.html +1 -1
  198. package/coverage/lcov-report/src/form/useCheckboxGroup.ts.html +2 -2
  199. package/coverage/lcov-report/src/form/useFileUpload.ts.html +28 -19
  200. package/coverage/lcov-report/src/form/useListboxProvider.ts.html +5 -8
  201. package/coverage/lcov-report/src/form/useNumberField.ts.html +10 -10
  202. package/coverage/lcov-report/src/form/useRadioGroup.ts.html +22 -7
  203. package/coverage/lcov-report/src/form/useRangeSlider.ts.html +3 -3
  204. package/coverage/lcov-report/src/form/useResizingTextArea.ts.html +523 -0
  205. package/coverage/lcov-report/src/form/useSlider.ts.html +2 -2
  206. package/coverage/lcov-report/src/form/useTextField.ts.html +32 -26
  207. package/coverage/lcov-report/src/form/utils.ts.html +2 -2
  208. package/coverage/lcov-report/src/form/validation.ts.html +2 -2
  209. package/coverage/lcov-report/src/hoverMode/index.html +1 -1
  210. package/coverage/lcov-report/src/hoverMode/useHoverMode.ts.html +95 -95
  211. package/coverage/lcov-report/src/hoverMode/useHoverModeProvider.ts.html +3 -3
  212. package/coverage/lcov-report/src/icon/FontIcon.tsx.html +34 -43
  213. package/coverage/lcov-report/src/icon/IconRotator.tsx.html +1 -1
  214. package/coverage/lcov-report/src/icon/MaterialIcon.tsx.html +36 -42
  215. package/coverage/lcov-report/src/icon/MaterialSymbol.tsx.html +240 -222
  216. package/coverage/lcov-report/src/icon/SVGIcon.tsx.html +1 -1
  217. package/coverage/lcov-report/src/icon/TextIconSpacing.tsx.html +33 -33
  218. package/coverage/lcov-report/src/icon/iconConfig.tsx.html +973 -0
  219. package/coverage/lcov-report/src/icon/index.html +149 -14
  220. package/coverage/lcov-report/src/icon/material.ts.html +748 -58
  221. package/coverage/lcov-report/src/icon/materialConfig.ts.html +703 -0
  222. package/coverage/lcov-report/src/icon/styles.ts.html +47 -110
  223. package/coverage/lcov-report/src/index.html +8 -8
  224. package/coverage/lcov-report/src/interaction/Ripple.tsx.html +60 -60
  225. package/coverage/lcov-report/src/interaction/RippleContainer.tsx.html +41 -47
  226. package/coverage/lcov-report/src/interaction/UserInteractionModeProvider.tsx.html +240 -240
  227. package/coverage/lcov-report/src/interaction/config.ts.html +7 -7
  228. package/coverage/lcov-report/src/interaction/index.html +100 -10
  229. package/coverage/lcov-report/src/interaction/useElementInteraction.tsx.html +146 -146
  230. package/coverage/lcov-report/src/interaction/useHigherContrastChildren.tsx.html +17 -17
  231. package/coverage/lcov-report/src/interaction/utils.ts.html +171 -171
  232. package/coverage/lcov-report/src/layout/LayoutAppBar.tsx.html +1 -1
  233. package/coverage/lcov-report/src/layout/LayoutNav.tsx.html +60 -60
  234. package/coverage/lcov-report/src/layout/LayoutWindowSplitter.tsx.html +1 -1
  235. package/coverage/lcov-report/src/layout/Main.tsx.html +1 -1
  236. package/coverage/lcov-report/src/layout/index.html +200 -5
  237. package/coverage/lcov-report/src/layout/layoutNavStyles.ts.html +5 -5
  238. package/coverage/lcov-report/src/layout/layoutWindowSplitterStyles.ts.html +1 -1
  239. package/coverage/lcov-report/src/layout/mainStyles.ts.html +1 -1
  240. package/coverage/lcov-report/src/layout/useExpandableLayout.ts.html +1 -1
  241. package/coverage/lcov-report/src/layout/useHorizontalLayoutTransition.ts.html +1 -1
  242. package/coverage/lcov-report/src/layout/useLayoutAppBarHeight.ts.html +1 -1
  243. package/coverage/lcov-report/src/layout/useLayoutTree.ts.html +1 -1
  244. package/coverage/lcov-report/src/layout/useLayoutWindowSplitter.ts.html +1 -1
  245. package/coverage/lcov-report/src/layout/useMainTabIndex.ts.html +1 -1
  246. package/coverage/lcov-report/src/layout/useResizableLayout.ts.html +1 -1
  247. package/coverage/lcov-report/src/layout/useTemporaryLayout.ts.html +3 -3
  248. package/coverage/lcov-report/src/link/Link.tsx.html +39 -9
  249. package/coverage/lcov-report/src/link/SkipToMainContent.tsx.html +1 -1
  250. package/coverage/lcov-report/src/link/index.html +16 -16
  251. package/coverage/lcov-report/src/link/styles.ts.html +1 -1
  252. package/coverage/lcov-report/src/list/List.tsx.html +33 -33
  253. package/coverage/lcov-report/src/list/ListItem.tsx.html +534 -534
  254. package/coverage/lcov-report/src/list/ListItemAddon.tsx.html +33 -33
  255. package/coverage/lcov-report/src/list/ListItemChildren.tsx.html +77 -77
  256. package/coverage/lcov-report/src/list/ListItemLink.tsx.html +2 -2
  257. package/coverage/lcov-report/src/list/ListItemText.tsx.html +35 -35
  258. package/coverage/lcov-report/src/list/ListSubheader.tsx.html +1 -1
  259. package/coverage/lcov-report/src/list/getListItemHeight.ts.html +33 -33
  260. package/coverage/lcov-report/src/list/index.html +128 -8
  261. package/coverage/lcov-report/src/list/listItemStyles.ts.html +1 -1
  262. package/coverage/lcov-report/src/media-queries/AppSizeProvider.tsx.html +59 -59
  263. package/coverage/lcov-report/src/media-queries/appSize.ts.html +1 -1
  264. package/coverage/lcov-report/src/media-queries/index.html +20 -5
  265. package/coverage/lcov-report/src/media-queries/useMediaQuery.ts.html +24 -24
  266. package/coverage/lcov-report/src/menu/DropdownMenu.tsx.html +73 -16
  267. package/coverage/lcov-report/src/menu/Menu.tsx.html +66 -33
  268. package/coverage/lcov-report/src/menu/MenuBar.tsx.html +1 -1
  269. package/coverage/lcov-report/src/menu/MenuButton.tsx.html +3 -3
  270. package/coverage/lcov-report/src/menu/MenuConfigurationProvider.tsx.html +1 -1
  271. package/coverage/lcov-report/src/menu/MenuItem.tsx.html +1 -1
  272. package/coverage/lcov-report/src/menu/MenuItemButton.tsx.html +3 -3
  273. package/coverage/lcov-report/src/menu/MenuItemGroup.tsx.html +1 -1
  274. package/coverage/lcov-report/src/menu/MenuItemSeparator.tsx.html +6 -36
  275. package/coverage/lcov-report/src/menu/MenuSheet.tsx.html +34 -7
  276. package/coverage/lcov-report/src/menu/MenuVisibilityProvider.tsx.html +1 -1
  277. package/coverage/lcov-report/src/menu/MenuWidget.tsx.html +1 -1
  278. package/coverage/lcov-report/src/menu/MenuWidgetKeyboardProvider.tsx.html +1 -1
  279. package/coverage/lcov-report/src/menu/index.html +69 -24
  280. package/coverage/lcov-report/src/menu/useContextMenu.ts.html +1 -1
  281. package/coverage/lcov-report/src/menu/useMenuBarProvider.ts.html +1 -1
  282. package/coverage/lcov-report/src/menu/utils.ts.html +10 -10
  283. package/coverage/lcov-report/src/movement/constants.ts.html +1 -1
  284. package/coverage/lcov-report/src/movement/findMatchIndex.ts.html +1 -1
  285. package/coverage/lcov-report/src/movement/index.html +53 -8
  286. package/coverage/lcov-report/src/movement/useKeyboardMovementProvider.ts.html +92 -92
  287. package/coverage/lcov-report/src/movement/utils.ts.html +1 -1
  288. package/coverage/lcov-report/src/overlay/Overlay.tsx.html +64 -64
  289. package/coverage/lcov-report/src/overlay/index.html +1 -1
  290. package/coverage/lcov-report/src/overlay/overlayStyles.ts.html +28 -28
  291. package/coverage/lcov-report/src/portal/Portal.tsx.html +9 -9
  292. package/coverage/lcov-report/src/portal/PortalContainerProvider.tsx.html +29 -29
  293. package/coverage/lcov-report/src/portal/index.html +20 -5
  294. package/coverage/lcov-report/src/positioning/constants.ts.html +1 -1
  295. package/coverage/lcov-report/src/positioning/createHorizontalPosition.ts.html +63 -63
  296. package/coverage/lcov-report/src/positioning/createVerticalPosition.ts.html +65 -65
  297. package/coverage/lcov-report/src/positioning/getFixedPosition.ts.html +94 -94
  298. package/coverage/lcov-report/src/positioning/index.html +70 -10
  299. package/coverage/lcov-report/src/positioning/useFixedPositioning.ts.html +200 -200
  300. package/coverage/lcov-report/src/positioning/utils.ts.html +111 -111
  301. package/coverage/lcov-report/src/progress/CircularProgress.tsx.html +501 -456
  302. package/coverage/lcov-report/src/progress/LinearProgress.tsx.html +419 -338
  303. package/coverage/lcov-report/src/progress/getProgressA11y.ts.html +1 -1
  304. package/coverage/lcov-report/src/progress/index.html +32 -32
  305. package/coverage/lcov-report/src/responsive-item/ResponsiveItemContainer.tsx.html +1 -1
  306. package/coverage/lcov-report/src/responsive-item/ResponsiveItemOverlay.tsx.html +1 -1
  307. package/coverage/lcov-report/src/responsive-item/index.html +20 -5
  308. package/coverage/lcov-report/src/responsive-item/styles.ts.html +1 -1
  309. package/coverage/lcov-report/src/scroll/ScrollLock.tsx.html +1 -1
  310. package/coverage/lcov-report/src/scroll/getScrollbarWidth.ts.html +25 -25
  311. package/coverage/lcov-report/src/scroll/index.html +5 -5
  312. package/coverage/lcov-report/src/scroll/useScrollLock.ts.html +27 -27
  313. package/coverage/lcov-report/src/segmented-button/SegmentedButton.tsx.html +4 -4
  314. package/coverage/lcov-report/src/segmented-button/SegmentedButtonContainer.tsx.html +29 -8
  315. package/coverage/lcov-report/src/segmented-button/index.html +50 -5
  316. package/coverage/lcov-report/src/segmented-button/segmentedButtonContainerStyles.ts.html +15 -6
  317. package/coverage/lcov-report/src/segmented-button/segmentedButtonStyles.ts.html +1 -1
  318. package/coverage/lcov-report/src/sheet/Sheet.tsx.html +1 -1
  319. package/coverage/lcov-report/src/sheet/index.html +20 -5
  320. package/coverage/lcov-report/src/sheet/styles.ts.html +28 -28
  321. package/coverage/lcov-report/src/snackbar/DefaultToastRenderer.tsx.html +8 -5
  322. package/coverage/lcov-report/src/snackbar/Snackbar.tsx.html +7 -133
  323. package/coverage/lcov-report/src/snackbar/Toast.tsx.html +2 -2
  324. package/coverage/lcov-report/src/snackbar/ToastActionButton.tsx.html +1 -1
  325. package/coverage/lcov-report/src/snackbar/ToastCloseButton.tsx.html +3 -3
  326. package/coverage/lcov-report/src/snackbar/ToastContent.tsx.html +7 -115
  327. package/coverage/lcov-report/src/snackbar/ToastManager.tsx.html +1783 -0
  328. package/coverage/lcov-report/src/snackbar/ToastManagerProvider.tsx.html +16 -1696
  329. package/coverage/lcov-report/src/snackbar/index.html +159 -9
  330. package/coverage/lcov-report/src/snackbar/snackbarStyles.ts.html +214 -0
  331. package/coverage/lcov-report/src/snackbar/toastContentStyles.ts.html +196 -0
  332. package/coverage/lcov-report/src/snackbar/toastStyles.ts.html +1 -1
  333. package/coverage/lcov-report/src/snackbar/useCurrentToastActions.ts.html +1 -1
  334. package/coverage/lcov-report/src/suspense/CircularProgressSuspense.tsx.html +57 -6
  335. package/coverage/lcov-report/src/suspense/NullSuspense.tsx.html +1 -1
  336. package/coverage/lcov-report/src/suspense/index.html +7 -22
  337. package/coverage/lcov-report/src/table/Table.tsx.html +1 -1
  338. package/coverage/lcov-report/src/table/TableBody.tsx.html +1 -1
  339. package/coverage/lcov-report/src/table/TableCell.tsx.html +20 -35
  340. package/coverage/lcov-report/src/table/TableCellContent.tsx.html +2 -2
  341. package/coverage/lcov-report/src/table/TableCheckbox.tsx.html +1 -1
  342. package/coverage/lcov-report/src/table/TableConfigurationProvider.tsx.html +6 -12
  343. package/coverage/lcov-report/src/table/TableContainer.tsx.html +1 -1
  344. package/coverage/lcov-report/src/table/TableContainerProvider.tsx.html +1 -1
  345. package/coverage/lcov-report/src/table/TableFooter.tsx.html +1 -1
  346. package/coverage/lcov-report/src/table/TableHeader.tsx.html +1 -1
  347. package/coverage/lcov-report/src/table/TableRow.tsx.html +1 -1
  348. package/coverage/lcov-report/src/table/index.html +113 -8
  349. package/coverage/lcov-report/src/tabs/Tab.tsx.html +69 -69
  350. package/coverage/lcov-report/src/tabs/TabList.tsx.html +92 -92
  351. package/coverage/lcov-report/src/tabs/TabListScrollButton.tsx.html +61 -61
  352. package/coverage/lcov-report/src/tabs/index.html +143 -8
  353. package/coverage/lcov-report/src/tabs/tabIndicatorStyles.ts.html +157 -0
  354. package/coverage/lcov-report/src/tabs/tabListScrollButtonStyles.ts.html +226 -0
  355. package/coverage/lcov-report/src/tabs/tabListStyles.ts.html +241 -0
  356. package/coverage/lcov-report/src/tabs/tabStyles.ts.html +17 -17
  357. package/coverage/lcov-report/src/tabs/useTabList.ts.html +94 -94
  358. package/coverage/lcov-report/src/tabs/useTabs.ts.html +54 -54
  359. package/coverage/lcov-report/src/tabs/utils.ts.html +3 -3
  360. package/coverage/lcov-report/src/test-utils/IntersectionObserver.ts.html +1 -1
  361. package/coverage/lcov-report/src/test-utils/ResizeObserver.ts.html +1 -1
  362. package/coverage/lcov-report/src/test-utils/data-testid.ts.html +100 -0
  363. package/coverage/lcov-report/src/test-utils/drag.ts.html +1 -1
  364. package/coverage/lcov-report/src/test-utils/index.html +114 -9
  365. package/coverage/lcov-report/src/test-utils/jest-setup.ts.html +21 -9
  366. package/coverage/lcov-report/src/test-utils/matchMedia.ts.html +4 -4
  367. package/coverage/lcov-report/src/test-utils/polyfills/IntersectionObserver.ts.html +4 -4
  368. package/coverage/lcov-report/src/test-utils/polyfills/ResizeObserver.ts.html +3 -3
  369. package/coverage/lcov-report/src/test-utils/polyfills/index.html +1 -1
  370. package/coverage/lcov-report/src/test-utils/polyfills/matchMedia.ts.html +6 -6
  371. package/coverage/lcov-report/src/test-utils/polyfills/offsetParent.ts.html +14 -14
  372. package/coverage/lcov-report/src/test-utils/polyfills/scrollIntoView.ts.html +5 -5
  373. package/coverage/lcov-report/src/test-utils/render.tsx.html +21 -21
  374. package/coverage/lcov-report/src/test-utils/timers.ts.html +1 -1
  375. package/coverage/lcov-report/src/theme/LocalStorageColorSchemeProvider.tsx.html +1 -1
  376. package/coverage/lcov-report/src/theme/ThemeProvider.tsx.html +22 -4
  377. package/coverage/lcov-report/src/theme/colors.ts.html +1 -1
  378. package/coverage/lcov-report/src/theme/cssVars.ts.html +1 -1
  379. package/coverage/lcov-report/src/theme/index.html +71 -11
  380. package/coverage/lcov-report/src/theme/useCSSVariables.ts.html +1 -1
  381. package/coverage/lcov-report/src/theme/useColorScheme.ts.html +1 -1
  382. package/coverage/lcov-report/src/theme/useColorSchemeMetaTag.ts.html +1 -1
  383. package/coverage/lcov-report/src/theme/useColorSchemeProvider.ts.html +1 -1
  384. package/coverage/lcov-report/src/theme/usePrefersColorScheme.ts.html +1 -1
  385. package/coverage/lcov-report/src/theme/utils.ts.html +58 -58
  386. package/coverage/lcov-report/src/tooltip/Tooltip.tsx.html +98 -74
  387. package/coverage/lcov-report/src/tooltip/TooltipHoverModeProvider.tsx.html +60 -6
  388. package/coverage/lcov-report/src/tooltip/constants.ts.html +1 -1
  389. package/coverage/lcov-report/src/tooltip/index.html +72 -27
  390. package/coverage/lcov-report/src/tooltip/tooltipStyles.ts.html +18 -18
  391. package/coverage/lcov-report/src/tooltip/useOverflowTooltip.ts.html +196 -196
  392. package/coverage/lcov-report/src/tooltip/useTooltip.ts.html +511 -211
  393. package/coverage/lcov-report/src/tooltip/useTooltipPosition.ts.html +29 -29
  394. package/coverage/lcov-report/src/tooltip/utils.ts.html +23 -23
  395. package/coverage/lcov-report/src/transition/CSSTransition.tsx.html +1 -1
  396. package/coverage/lcov-report/src/transition/Collapse.tsx.html +1 -1
  397. package/coverage/lcov-report/src/transition/CrossFade.tsx.html +1 -1
  398. package/coverage/lcov-report/src/transition/ScaleTransition.tsx.html +1 -1
  399. package/coverage/lcov-report/src/transition/SkeletonPlaceholder.tsx.html +1 -1
  400. package/coverage/lcov-report/src/transition/Slide.tsx.html +46 -46
  401. package/coverage/lcov-report/src/transition/SlideContainer.tsx.html +1 -1
  402. package/coverage/lcov-report/src/transition/collapseStyles.ts.html +13 -13
  403. package/coverage/lcov-report/src/transition/config.ts.html +187 -0
  404. package/coverage/lcov-report/src/transition/index.html +295 -10
  405. package/coverage/lcov-report/src/transition/maxWidthTransition.ts.html +1 -1
  406. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +69 -69
  407. package/coverage/lcov-report/src/transition/useCarousel.ts.html +1 -1
  408. package/coverage/lcov-report/src/transition/useCollapseTransition.ts.html +99 -99
  409. package/coverage/lcov-report/src/transition/useCrossFadeTransition.ts.html +1 -1
  410. package/coverage/lcov-report/src/transition/useMaxWidthTransition.ts.html +1 -1
  411. package/coverage/lcov-report/src/transition/useScaleTransition.ts.html +18 -18
  412. package/coverage/lcov-report/src/transition/useSkeletonPlaceholder.ts.html +1 -1
  413. package/coverage/lcov-report/src/transition/useSlideTransition.ts.html +20 -20
  414. package/coverage/lcov-report/src/transition/useTransition.ts.html +277 -250
  415. package/coverage/lcov-report/src/transition/utils.ts.html +68 -68
  416. package/coverage/lcov-report/src/tree/DefaultTreeItemRenderer.tsx.html +2 -2
  417. package/coverage/lcov-report/src/tree/Tree.tsx.html +24 -36
  418. package/coverage/lcov-report/src/tree/TreeGroup.tsx.html +45 -45
  419. package/coverage/lcov-report/src/tree/TreeItem.tsx.html +213 -216
  420. package/coverage/lcov-report/src/tree/TreeItemExpander.tsx.html +3 -3
  421. package/coverage/lcov-report/src/tree/TreeProvider.tsx.html +29 -11
  422. package/coverage/lcov-report/src/tree/index.html +114 -9
  423. package/coverage/lcov-report/src/tree/styles.ts.html +1 -1
  424. package/coverage/lcov-report/src/tree/useTree.ts.html +1 -1
  425. package/coverage/lcov-report/src/tree/useTreeExpansion.ts.html +1 -1
  426. package/coverage/lcov-report/src/tree/useTreeItems.ts.html +10 -13
  427. package/coverage/lcov-report/src/tree/useTreeMovement.ts.html +1 -1
  428. package/coverage/lcov-report/src/tree/useTreeSelection.ts.html +1 -1
  429. package/coverage/lcov-report/src/tree/utils.ts.html +1 -1
  430. package/coverage/lcov-report/src/typography/SrOnly.tsx.html +26 -26
  431. package/coverage/lcov-report/src/typography/TextContainer.tsx.html +1 -1
  432. package/coverage/lcov-report/src/typography/Typography.tsx.html +71 -71
  433. package/coverage/lcov-report/src/typography/WritingDirectionProvider.tsx.html +75 -75
  434. package/coverage/lcov-report/src/typography/index.html +64 -19
  435. package/coverage/lcov-report/src/useAsyncAction.ts.html +25 -25
  436. package/coverage/lcov-report/src/useDebouncedFunction.ts.html +1 -1
  437. package/coverage/lcov-report/src/useDropzone.ts.html +1 -1
  438. package/coverage/lcov-report/src/useEnsuredId.ts.html +8 -8
  439. package/coverage/lcov-report/src/useEnsuredRef.ts.html +22 -19
  440. package/coverage/lcov-report/src/useEnsuredState.ts.html +18 -18
  441. package/coverage/lcov-report/src/useHtmlClassName.ts.html +1 -1
  442. package/coverage/lcov-report/src/useIntersectionObserver.ts.html +32 -32
  443. package/coverage/lcov-report/src/useIsomorphicLayoutEffect.ts.html +1 -1
  444. package/coverage/lcov-report/src/useLocalStorage.ts.html +225 -225
  445. package/coverage/lcov-report/src/useOrientation.ts.html +32 -32
  446. package/coverage/lcov-report/src/usePageInactive.ts.html +25 -25
  447. package/coverage/lcov-report/src/useResizeListener.ts.html +1 -1
  448. package/coverage/lcov-report/src/useResizeObserver.ts.html +28 -28
  449. package/coverage/lcov-report/src/useThrottledFunction.ts.html +1 -1
  450. package/coverage/lcov-report/src/useToggle.ts.html +18 -18
  451. package/coverage/lcov-report/src/useUnmounted.ts.html +11 -11
  452. package/coverage/lcov-report/src/useWindowSize.ts.html +1 -1
  453. package/coverage/lcov-report/src/utils/RenderRecursively.tsx.html +1 -1
  454. package/coverage/lcov-report/src/utils/alphaNumericSort.ts.html +1 -1
  455. package/coverage/lcov-report/src/utils/applyRef.ts.html +11 -11
  456. package/coverage/lcov-report/src/utils/bem.ts.html +50 -50
  457. package/coverage/lcov-report/src/utils/filters.ts.html +1 -1
  458. package/coverage/lcov-report/src/utils/getClientPosition.ts.html +1 -1
  459. package/coverage/lcov-report/src/utils/getPercentage.ts.html +36 -36
  460. package/coverage/lcov-report/src/utils/getRangeDefaultValue.ts.html +1 -1
  461. package/coverage/lcov-report/src/utils/getRangeSteps.ts.html +1 -1
  462. package/coverage/lcov-report/src/utils/identity.ts.html +1 -1
  463. package/coverage/lcov-report/src/utils/index.html +212 -17
  464. package/coverage/lcov-report/src/utils/isElementVisible.ts.html +14 -14
  465. package/coverage/lcov-report/src/utils/loop.ts.html +1 -1
  466. package/coverage/lcov-report/src/utils/nearest.ts.html +1 -1
  467. package/coverage/lcov-report/src/utils/parseCssLengthUnit.ts.html +41 -41
  468. package/coverage/lcov-report/src/utils/randomInt.ts.html +1 -1
  469. package/coverage/lcov-report/src/utils/wait.ts.html +1 -1
  470. package/coverage/lcov-report/src/utils/withinRange.ts.html +1 -1
  471. package/coverage/lcov-report/src/window-splitter/WindowSplitter.tsx.html +1 -1
  472. package/coverage/lcov-report/src/window-splitter/index.html +1 -1
  473. package/coverage/lcov-report/src/window-splitter/useWindowSplitter.ts.html +1 -1
  474. package/coverage/lcov-report/styles.ts.html +134 -320
  475. package/coverage/lcov-report/switchStyles.ts.html +172 -0
  476. package/coverage/lcov-report/table/Table.tsx.html +526 -0
  477. package/coverage/lcov-report/table/TableBody.tsx.html +280 -0
  478. package/coverage/lcov-report/table/TableCell.tsx.html +159 -168
  479. package/coverage/lcov-report/table/TableCheckbox.tsx.html +10 -13
  480. package/coverage/lcov-report/table/TableRadio.tsx.html +670 -0
  481. package/coverage/lcov-report/table/TableRow.tsx.html +370 -0
  482. package/coverage/lcov-report/table/index.html +62 -32
  483. package/coverage/lcov-report/tableCellStyles.ts.html +334 -0
  484. package/coverage/lcov-report/tableContainerStyles.ts.html +142 -0
  485. package/coverage/lcov-report/tableFooterStyles.ts.html +157 -0
  486. package/coverage/lcov-report/tableHeaderStyles.ts.html +163 -0
  487. package/coverage/lcov-report/tableRowStyles.ts.html +169 -0
  488. package/coverage/lcov-report/tableStyles.ts.html +157 -0
  489. package/coverage/lcov-report/tabs/Tab.tsx.html +502 -0
  490. package/coverage/lcov-report/tabs/TabList.tsx.html +796 -0
  491. package/coverage/lcov-report/tabs/index.html +62 -17
  492. package/coverage/lcov-report/tabs/useTabs.ts.html +1567 -0
  493. package/coverage/lcov-report/tabs/utils.ts.html +337 -0
  494. package/coverage/lcov-report/test-utils/index.html +20 -20
  495. package/coverage/lcov-report/test-utils/jest-setup.ts.html +124 -0
  496. package/coverage/lcov-report/tooltip/Tooltip.tsx.html +98 -74
  497. package/coverage/lcov-report/tooltip/TooltipHoverModeProvider.tsx.html +167 -11
  498. package/coverage/lcov-report/tooltip/constants.ts.html +1 -1
  499. package/coverage/lcov-report/tooltip/index.html +32 -17
  500. package/coverage/lcov-report/tooltip/tooltipStyles.ts.html +181 -0
  501. package/coverage/lcov-report/tooltip/useTooltip.ts.html +490 -190
  502. package/coverage/lcov-report/tooltipStyles.ts.html +181 -0
  503. package/coverage/lcov-report/transition/config.ts.html +187 -0
  504. package/coverage/lcov-report/transition/index.html +9 -24
  505. package/coverage/lcov-report/transition/useTransition.ts.html +943 -0
  506. package/coverage/lcov-report/tree/Tree.tsx.html +24 -36
  507. package/coverage/lcov-report/tree/TreeItem.tsx.html +213 -216
  508. package/coverage/lcov-report/tree/TreeProvider.tsx.html +55 -10
  509. package/coverage/lcov-report/tree/index.html +14 -59
  510. package/coverage/lcov-report/typography/Typography.tsx.html +108 -402
  511. package/coverage/lcov-report/typography/WritingDirectionProvider.tsx.html +781 -0
  512. package/coverage/lcov-report/typography/index.html +8 -8
  513. package/coverage/lcov-report/useTooltip.ts.html +651 -375
  514. package/coverage/lcov-report/useTransition.ts.html +934 -0
  515. package/coverage/lcov-report/utils/index.html +24 -39
  516. package/coverage/lcov-report/utils/isElementVisible.ts.html +14 -14
  517. package/coverage/lcov-report/utils/parseCssLengthUnit.ts.html +19 -19
  518. package/coverage/lcov.info +0 -1176
  519. package/dist/_core.scss +39 -2
  520. package/dist/_utils.scss +57 -0
  521. package/dist/app-bar/_app-bar.scss +15 -23
  522. package/dist/avatar/Avatar.d.ts +2 -15
  523. package/dist/avatar/Avatar.js +3 -2
  524. package/dist/avatar/Avatar.js.map +1 -1
  525. package/dist/avatar/_avatar.scss +30 -37
  526. package/dist/avatar/styles.d.ts +20 -2
  527. package/dist/avatar/styles.js +4 -1
  528. package/dist/avatar/styles.js.map +1 -1
  529. package/dist/badge/_badge.scss +71 -44
  530. package/dist/box/_box.scss +18 -29
  531. package/dist/button/AsyncButton.d.ts +29 -0
  532. package/dist/button/AsyncButton.js +14 -1
  533. package/dist/button/AsyncButton.js.map +1 -1
  534. package/dist/button/_button.scss +50 -62
  535. package/dist/card/_card.scss +14 -23
  536. package/dist/chip/_chip.scss +33 -62
  537. package/dist/chip/styles.d.ts +1 -1
  538. package/dist/chip/styles.js +3 -4
  539. package/dist/chip/styles.js.map +1 -1
  540. package/dist/cssUtils.d.ts +1 -0
  541. package/dist/cssUtils.js +1 -1
  542. package/dist/cssUtils.js.map +1 -1
  543. package/dist/dialog/Dialog.d.ts +1 -1
  544. package/dist/dialog/Dialog.js +2 -1
  545. package/dist/dialog/Dialog.js.map +1 -1
  546. package/dist/dialog/_dialog.scss +95 -93
  547. package/dist/divider/Divider.d.ts +0 -1
  548. package/dist/divider/Divider.js.map +1 -1
  549. package/dist/divider/_divider.scss +33 -43
  550. package/dist/focus/useFocusContainer.d.ts +8 -8
  551. package/dist/focus/useFocusContainer.js +11 -10
  552. package/dist/focus/useFocusContainer.js.map +1 -1
  553. package/dist/form/Label.d.ts +5 -5
  554. package/dist/form/Label.js.map +1 -1
  555. package/dist/form/MenuItemInputToggle.js +2 -2
  556. package/dist/form/MenuItemInputToggle.js.map +1 -1
  557. package/dist/form/MenuItemTextField.d.ts +2 -0
  558. package/dist/form/MenuItemTextField.js.map +1 -1
  559. package/dist/form/Slider.d.ts +41 -5
  560. package/dist/form/Slider.js +2 -1
  561. package/dist/form/Slider.js.map +1 -1
  562. package/dist/form/SliderThumb.d.ts +7 -2
  563. package/dist/form/SliderThumb.js +4 -2
  564. package/dist/form/SliderThumb.js.map +1 -1
  565. package/dist/form/SliderValueMarks.js +1 -1
  566. package/dist/form/SliderValueMarks.js.map +1 -1
  567. package/dist/form/SliderValueTooltip.js +1 -1
  568. package/dist/form/SliderValueTooltip.js.map +1 -1
  569. package/dist/form/Switch.d.ts +3 -2
  570. package/dist/form/Switch.js +7 -26
  571. package/dist/form/Switch.js.map +1 -1
  572. package/dist/form/SwitchTrack.d.ts +2 -1
  573. package/dist/form/SwitchTrack.js +8 -4
  574. package/dist/form/SwitchTrack.js.map +1 -1
  575. package/dist/form/TextArea.js +1 -1
  576. package/dist/form/TextArea.js.map +1 -1
  577. package/dist/form/TextFieldContainerStyles.d.ts +7 -7
  578. package/dist/form/TextFieldContainerStyles.js.map +1 -1
  579. package/dist/form/_form.scss +241 -237
  580. package/dist/form/switchStyles.d.ts +1 -0
  581. package/dist/form/switchStyles.js +2 -1
  582. package/dist/form/switchStyles.js.map +1 -1
  583. package/dist/form/textAreaStyles.d.ts +2 -2
  584. package/dist/form/textAreaStyles.js.map +1 -1
  585. package/dist/form/types.d.ts +0 -2
  586. package/dist/form/types.js.map +1 -1
  587. package/dist/hoverMode/useHoverMode.d.ts +2 -2
  588. package/dist/hoverMode/useHoverMode.js +1 -1
  589. package/dist/hoverMode/useHoverMode.js.map +1 -1
  590. package/dist/icon/FontIcon.d.ts +2 -1
  591. package/dist/icon/FontIcon.js +4 -5
  592. package/dist/icon/FontIcon.js.map +1 -1
  593. package/dist/icon/MaterialIcon.d.ts +2 -2
  594. package/dist/icon/MaterialIcon.js +3 -6
  595. package/dist/icon/MaterialIcon.js.map +1 -1
  596. package/dist/icon/MaterialSymbol.d.ts +15 -8
  597. package/dist/icon/MaterialSymbol.js +15 -11
  598. package/dist/icon/MaterialSymbol.js.map +1 -1
  599. package/dist/icon/_icon.scss +31 -47
  600. package/dist/icon/iconConfig.js.map +1 -1
  601. package/dist/icon/material.d.ts +1 -1
  602. package/dist/icon/material.js.map +1 -1
  603. package/dist/icon/{MaterialSymbolsProvider.d.ts → materialConfig.d.ts} +25 -14
  604. package/dist/icon/materialConfig.js +29 -0
  605. package/dist/icon/materialConfig.js.map +1 -0
  606. package/dist/icon/styles.d.ts +0 -15
  607. package/dist/icon/styles.js +2 -4
  608. package/dist/icon/styles.js.map +1 -1
  609. package/dist/index.d.ts +8 -6
  610. package/dist/index.js +8 -6
  611. package/dist/index.js.map +1 -1
  612. package/dist/interaction/_interaction.scss +47 -57
  613. package/dist/layout/_layout.scss +14 -19
  614. package/dist/link/Link.d.ts +12 -6
  615. package/dist/link/Link.js +1 -2
  616. package/dist/link/Link.js.map +1 -1
  617. package/dist/link/_link.scss +15 -23
  618. package/dist/list/ListItemLink.d.ts +1 -1
  619. package/dist/list/ListItemLink.js.map +1 -1
  620. package/dist/list/_list.scss +53 -63
  621. package/dist/menu/DropdownMenu.d.ts +12 -1
  622. package/dist/menu/DropdownMenu.js +13 -4
  623. package/dist/menu/DropdownMenu.js.map +1 -1
  624. package/dist/menu/Menu.d.ts +8 -0
  625. package/dist/menu/Menu.js +2 -1
  626. package/dist/menu/Menu.js.map +1 -1
  627. package/dist/menu/MenuItemSeparator.d.ts +1 -2
  628. package/dist/menu/MenuItemSeparator.js +2 -8
  629. package/dist/menu/MenuItemSeparator.js.map +1 -1
  630. package/dist/menu/MenuSheet.d.ts +6 -1
  631. package/dist/menu/MenuSheet.js.map +1 -1
  632. package/dist/menu/_menu.scss +16 -27
  633. package/dist/overlay/_overlay.scss +14 -19
  634. package/dist/progress/CircularProgress.d.ts +5 -4
  635. package/dist/progress/CircularProgress.js +3 -3
  636. package/dist/progress/CircularProgress.js.map +1 -1
  637. package/dist/progress/LinearProgress.d.ts +7 -5
  638. package/dist/progress/LinearProgress.js +4 -3
  639. package/dist/progress/LinearProgress.js.map +1 -1
  640. package/dist/progress/_progress.scss +25 -30
  641. package/dist/segmented-button/_segmented-button.scss +37 -43
  642. package/dist/sheet/_sheet.scss +24 -42
  643. package/dist/snackbar/DefaultToastRenderer.js +1 -1
  644. package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
  645. package/dist/snackbar/Snackbar.d.ts +1 -3
  646. package/dist/snackbar/Snackbar.js +2 -3
  647. package/dist/snackbar/Snackbar.js.map +1 -1
  648. package/dist/snackbar/Toast.d.ts +1 -1
  649. package/dist/snackbar/Toast.js +5 -1
  650. package/dist/snackbar/Toast.js.map +1 -1
  651. package/dist/snackbar/ToastManager.d.ts +2 -1
  652. package/dist/snackbar/ToastManager.js +1 -1
  653. package/dist/snackbar/ToastManager.js.map +1 -1
  654. package/dist/snackbar/_snackbar.scss +15 -23
  655. package/dist/suspense/CircularProgressSuspense.d.ts +4 -0
  656. package/dist/suspense/CircularProgressSuspense.js +3 -1
  657. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  658. package/dist/table/Table.d.ts +0 -12
  659. package/dist/table/Table.js +1 -12
  660. package/dist/table/Table.js.map +1 -1
  661. package/dist/table/TableCell.d.ts +13 -38
  662. package/dist/table/TableCell.js +7 -15
  663. package/dist/table/TableCell.js.map +1 -1
  664. package/dist/table/TableCellContent.d.ts +9 -0
  665. package/dist/table/TableCellContent.js +2 -1
  666. package/dist/table/TableCellContent.js.map +1 -1
  667. package/dist/table/TableCheckbox.d.ts +2 -2
  668. package/dist/table/TableCheckbox.js +3 -3
  669. package/dist/table/TableCheckbox.js.map +1 -1
  670. package/dist/table/TableContainer.d.ts +0 -6
  671. package/dist/table/TableContainer.js +1 -6
  672. package/dist/table/TableContainer.js.map +1 -1
  673. package/dist/table/TableFooter.d.ts +7 -1
  674. package/dist/table/TableFooter.js +17 -16
  675. package/dist/table/TableFooter.js.map +1 -1
  676. package/dist/table/TableHeader.d.ts +7 -14
  677. package/dist/table/TableHeader.js +6 -14
  678. package/dist/table/TableHeader.js.map +1 -1
  679. package/dist/table/TableRadio.d.ts +106 -0
  680. package/dist/table/TableRadio.js +106 -0
  681. package/dist/table/TableRadio.js.map +1 -0
  682. package/dist/table/TableRow.d.ts +0 -10
  683. package/dist/table/TableRow.js +1 -12
  684. package/dist/table/TableRow.js.map +1 -1
  685. package/dist/table/_table.scss +71 -88
  686. package/dist/table/tableCellStyles.d.ts +33 -0
  687. package/dist/table/tableCellStyles.js +15 -0
  688. package/dist/table/tableCellStyles.js.map +1 -0
  689. package/dist/table/tableContainerStyles.d.ts +10 -0
  690. package/dist/table/tableContainerStyles.js +9 -0
  691. package/dist/table/tableContainerStyles.js.map +1 -0
  692. package/dist/table/tableFooterStyles.d.ts +10 -0
  693. package/dist/table/tableFooterStyles.js +12 -0
  694. package/dist/table/tableFooterStyles.js.map +1 -0
  695. package/dist/table/tableHeaderStyles.d.ts +10 -0
  696. package/dist/table/tableHeaderStyles.js +13 -0
  697. package/dist/table/tableHeaderStyles.js.map +1 -0
  698. package/dist/table/tableRowStyles.d.ts +10 -0
  699. package/dist/table/tableRowStyles.js +14 -0
  700. package/dist/table/tableRowStyles.js.map +1 -0
  701. package/dist/table/tableStyles.d.ts +12 -0
  702. package/dist/table/tableStyles.js +14 -0
  703. package/dist/table/tableStyles.js.map +1 -0
  704. package/dist/table/types.d.ts +28 -15
  705. package/dist/table/types.js.map +1 -1
  706. package/dist/tabs/_tabs.scss +27 -30
  707. package/dist/test-utils/data-testid.js +2 -0
  708. package/dist/test-utils/data-testid.js.map +1 -0
  709. package/dist/test-utils/jest-setup.js +3 -0
  710. package/dist/test-utils/jest-setup.js.map +1 -1
  711. package/dist/theme/ThemeProvider.d.ts +5 -0
  712. package/dist/theme/ThemeProvider.js.map +1 -1
  713. package/dist/theme/_theme.scss +31 -89
  714. package/dist/tooltip/Tooltip.d.ts +13 -6
  715. package/dist/tooltip/Tooltip.js +2 -2
  716. package/dist/tooltip/Tooltip.js.map +1 -1
  717. package/dist/tooltip/TooltipHoverModeProvider.d.ts +15 -0
  718. package/dist/tooltip/TooltipHoverModeProvider.js.map +1 -1
  719. package/dist/tooltip/_tooltip.scss +17 -25
  720. package/dist/tooltip/tooltipStyles.d.ts +2 -1
  721. package/dist/tooltip/tooltipStyles.js +2 -2
  722. package/dist/tooltip/tooltipStyles.js.map +1 -1
  723. package/dist/tooltip/useTooltip.d.ts +71 -8
  724. package/dist/tooltip/useTooltip.js +68 -7
  725. package/dist/tooltip/useTooltip.js.map +1 -1
  726. package/dist/transition/_transition.scss +38 -37
  727. package/dist/transition/config.d.ts +22 -0
  728. package/dist/transition/config.js +16 -0
  729. package/dist/transition/config.js.map +1 -0
  730. package/dist/transition/useTransition.js +15 -6
  731. package/dist/transition/useTransition.js.map +1 -1
  732. package/dist/tree/DefaultTreeItemRenderer.d.ts +1 -1
  733. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  734. package/dist/tree/Tree.d.ts +1 -1
  735. package/dist/tree/Tree.js +18 -21
  736. package/dist/tree/Tree.js.map +1 -1
  737. package/dist/tree/TreeItem.js +1 -3
  738. package/dist/tree/TreeItem.js.map +1 -1
  739. package/dist/tree/TreeProvider.d.ts +2 -0
  740. package/dist/tree/TreeProvider.js +3 -1
  741. package/dist/tree/TreeProvider.js.map +1 -1
  742. package/dist/tree/_tree.scss +102 -109
  743. package/dist/typography/_typography.scss +17 -22
  744. package/dist/window-splitter/_window-splitter.scss +19 -45
  745. package/package.json +20 -17
  746. package/src/__tests__/NoSsr.tsx +5 -5
  747. package/src/__tests__/useAsyncAction.tsx +14 -6
  748. package/src/__tests__/useDebouncedFunction.tsx +6 -3
  749. package/src/__tests__/useDropzone.tsx +10 -10
  750. package/src/__tests__/useEnsuredId.tsx +5 -5
  751. package/src/__tests__/useEnsuredState.tsx +1 -2
  752. package/src/__tests__/useLocalStorage.tsx +21 -21
  753. package/src/__tests__/useResizeObserver.tsx +2 -0
  754. package/src/__tests__/useThrottledFunction.tsx +9 -8
  755. package/src/__tests__/useToggle.tsx +10 -10
  756. package/src/_core.scss +39 -2
  757. package/src/_utils.scss +57 -0
  758. package/src/app-bar/__tests__/AppBar.tsx +15 -15
  759. package/src/app-bar/__tests__/AppBarTitle.tsx +3 -5
  760. package/src/app-bar/_app-bar.scss +15 -23
  761. package/src/avatar/Avatar.tsx +12 -20
  762. package/src/avatar/__tests__/Avatar.tsx +6 -6
  763. package/src/avatar/_avatar.scss +30 -37
  764. package/src/avatar/styles.ts +27 -4
  765. package/src/badge/__tests__/Badge.tsx +3 -3
  766. package/src/badge/_badge.scss +71 -44
  767. package/src/box/_box.scss +18 -29
  768. package/src/button/AsyncButton.tsx +71 -4
  769. package/src/button/__tests__/AsyncButton.tsx +2 -0
  770. package/src/button/__tests__/Button.tsx +12 -12
  771. package/src/button/__tests__/ButtonUnstyled.tsx +3 -3
  772. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +31 -8
  773. package/src/button/_button.scss +50 -62
  774. package/src/card/__tests__/Card.tsx +3 -3
  775. package/src/card/__tests__/CardContent.tsx +3 -3
  776. package/src/card/__tests__/CardFooter.tsx +3 -3
  777. package/src/card/__tests__/CardHeader.tsx +5 -5
  778. package/src/card/__tests__/CardSubtitle.tsx +3 -3
  779. package/src/card/__tests__/CardTitle.tsx +3 -3
  780. package/src/card/_card.scss +14 -23
  781. package/src/chip/__tests__/Chip.tsx +20 -22
  782. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +3 -3
  783. package/src/chip/__tests__/__snapshots__/styles.ts.snap +1 -1
  784. package/src/chip/_chip.scss +33 -62
  785. package/src/chip/styles.ts +4 -5
  786. package/src/cssUtils.ts +4 -1
  787. package/src/dialog/Dialog.tsx +5 -4
  788. package/src/dialog/__tests__/Dialog.tsx +316 -0
  789. package/src/dialog/__tests__/DialogContent.tsx +53 -0
  790. package/src/dialog/__tests__/DialogFooter.tsx +70 -0
  791. package/src/dialog/__tests__/DialogHeader.tsx +37 -0
  792. package/src/dialog/__tests__/DialogTitle.tsx +41 -0
  793. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +84 -0
  794. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +36 -0
  795. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +186 -0
  796. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +18 -0
  797. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +26 -0
  798. package/src/dialog/_dialog.scss +95 -93
  799. package/src/divider/Divider.tsx +0 -1
  800. package/src/divider/__tests__/Divider.tsx +3 -3
  801. package/src/divider/_divider.scss +33 -43
  802. package/src/draggable/__tests__/useDraggable.tsx +35 -39
  803. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +28 -23
  804. package/src/focus/__tests__/useFocusContainer.tsx +280 -0
  805. package/src/focus/useFocusContainer.ts +17 -10
  806. package/src/form/Label.tsx +5 -5
  807. package/src/form/MenuItemInputToggle.tsx +6 -2
  808. package/src/form/MenuItemTextField.tsx +3 -0
  809. package/src/form/Slider.tsx +45 -5
  810. package/src/form/SliderThumb.tsx +15 -3
  811. package/src/form/SliderValueMarks.tsx +3 -1
  812. package/src/form/SliderValueTooltip.tsx +1 -1
  813. package/src/form/Switch.tsx +6 -27
  814. package/src/form/SwitchTrack.tsx +12 -2
  815. package/src/form/TextArea.tsx +1 -1
  816. package/src/form/TextFieldContainerStyles.ts +7 -7
  817. package/src/form/__tests__/Checkbox.tsx +5 -5
  818. package/src/form/__tests__/Fieldset.tsx +3 -3
  819. package/src/form/__tests__/FileInput.tsx +2 -2
  820. package/src/form/__tests__/Label.tsx +3 -3
  821. package/src/form/__tests__/Legend.tsx +3 -3
  822. package/src/form/__tests__/Radio.tsx +3 -3
  823. package/src/form/__tests__/Switch.tsx +152 -0
  824. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +428 -0
  825. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +1 -1
  826. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +1 -1
  827. package/src/form/__tests__/useCheckboxGroup.tsx +33 -33
  828. package/src/form/__tests__/useFileUpload.tsx +41 -33
  829. package/src/form/__tests__/useRadioGroup.tsx +25 -25
  830. package/src/form/_form.scss +241 -237
  831. package/src/form/switchStyles.ts +3 -3
  832. package/src/form/textAreaStyles.ts +2 -2
  833. package/src/form/types.ts +0 -2
  834. package/src/hoverMode/useHoverMode.ts +4 -4
  835. package/src/icon/FontIcon.tsx +2 -5
  836. package/src/icon/MaterialIcon.tsx +4 -6
  837. package/src/icon/MaterialSymbol.tsx +18 -12
  838. package/src/icon/__tests__/FontIcon.tsx +7 -11
  839. package/src/icon/__tests__/IconRotator.tsx +4 -4
  840. package/src/icon/__tests__/MaterialIcon.tsx +79 -0
  841. package/src/icon/__tests__/MaterialSymbol.tsx +100 -0
  842. package/src/icon/__tests__/SVGIcon.tsx +6 -5
  843. package/src/icon/__tests__/TextIconSpacing.tsx +15 -17
  844. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +6 -6
  845. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +82 -0
  846. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +42 -0
  847. package/src/icon/_icon.scss +31 -47
  848. package/src/icon/iconConfig.tsx +1 -0
  849. package/src/icon/material.ts +284 -54
  850. package/src/icon/{MaterialSymbolsProvider.tsx → materialConfig.ts} +49 -67
  851. package/src/icon/styles.ts +0 -21
  852. package/src/index.ts +8 -6
  853. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +3 -3
  854. package/src/interaction/_interaction.scss +47 -57
  855. package/src/layout/__tests__/useExpandableLayout.tsx +12 -1
  856. package/src/layout/__tests__/useLayoutTree.tsx +6 -1
  857. package/src/layout/__tests__/useResizableLayout.tsx +13 -1
  858. package/src/layout/__tests__/useTemporaryLayout.tsx +6 -1
  859. package/src/layout/_layout.scss +14 -19
  860. package/src/link/Link.tsx +15 -5
  861. package/src/link/__tests__/Link.tsx +3 -3
  862. package/src/link/__tests__/SkipToMainContent.tsx +11 -14
  863. package/src/link/_link.scss +15 -23
  864. package/src/list/ListItemLink.tsx +1 -1
  865. package/src/list/__tests__/List.tsx +7 -7
  866. package/src/list/__tests__/ListItem.tsx +17 -16
  867. package/src/list/__tests__/ListItemLink.tsx +7 -7
  868. package/src/list/__tests__/ListSubheader.tsx +5 -5
  869. package/src/list/_list.scss +53 -63
  870. package/src/menu/DropdownMenu.tsx +23 -4
  871. package/src/menu/Menu.tsx +11 -0
  872. package/src/menu/MenuItemSeparator.tsx +2 -12
  873. package/src/menu/MenuSheet.tsx +10 -1
  874. package/src/menu/__tests__/DropdownMenu.tsx +74 -65
  875. package/src/menu/__tests__/MenuBar.tsx +57 -48
  876. package/src/menu/__tests__/MenuVisibilityProvider.tsx +3 -3
  877. package/src/menu/_menu.scss +16 -27
  878. package/src/overlay/__tests__/Overlay.tsx +37 -35
  879. package/src/overlay/_overlay.scss +14 -19
  880. package/src/portal/__tests__/PortalContainerProvider.node.tsx +1 -0
  881. package/src/portal/__tests__/PortalContainerProvider.tsx +9 -9
  882. package/src/positioning/__tests__/useFixedPositioning.tsx +20 -14
  883. package/src/progress/CircularProgress.tsx +5 -4
  884. package/src/progress/LinearProgress.tsx +88 -86
  885. package/src/progress/__tests__/CircularProgress.tsx +49 -27
  886. package/src/progress/__tests__/LinearProgress.tsx +40 -25
  887. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +21 -0
  888. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +20 -0
  889. package/src/progress/_progress.scss +25 -30
  890. package/src/segmented-button/_segmented-button.scss +37 -43
  891. package/src/sheet/_sheet.scss +24 -42
  892. package/src/snackbar/DefaultToastRenderer.tsx +1 -1
  893. package/src/snackbar/Snackbar.tsx +17 -25
  894. package/src/snackbar/Toast.tsx +7 -2
  895. package/src/snackbar/ToastManager.tsx +3 -2
  896. package/src/snackbar/__tests__/Snackbar.tsx +13 -12
  897. package/src/snackbar/__tests__/Toast.tsx +8 -3
  898. package/src/snackbar/__tests__/ToastActionButton.tsx +2 -2
  899. package/src/snackbar/__tests__/ToastCloseButton.tsx +2 -2
  900. package/src/snackbar/__tests__/ToastManagerProvider.tsx +28 -42
  901. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
  902. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
  903. package/src/snackbar/_snackbar.scss +15 -23
  904. package/src/suspense/CircularProgressSuspense.tsx +19 -2
  905. package/src/table/Table.tsx +1 -24
  906. package/src/table/TableCell.tsx +22 -85
  907. package/src/table/TableCellContent.tsx +20 -2
  908. package/src/table/TableCheckbox.tsx +3 -3
  909. package/src/table/TableContainer.tsx +1 -8
  910. package/src/table/TableFooter.tsx +30 -23
  911. package/src/table/TableHeader.tsx +23 -40
  912. package/src/table/TableRadio.tsx +195 -0
  913. package/src/table/TableRow.tsx +1 -28
  914. package/src/table/__tests__/Table.tsx +4 -10
  915. package/src/table/__tests__/TableBody.tsx +3 -3
  916. package/src/table/__tests__/TableCheckbox.tsx +10 -11
  917. package/src/table/__tests__/TableContainer.tsx +3 -3
  918. package/src/table/__tests__/TableRadio.tsx +112 -0
  919. package/src/table/__tests__/TableRow.tsx +4 -10
  920. package/src/table/__tests__/__snapshots__/Table.tsx.snap +249 -251
  921. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +3 -3
  922. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +4 -4
  923. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +138 -0
  924. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +4 -6
  925. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +3 -0
  926. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +3 -0
  927. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +3 -0
  928. package/src/table/__tests__/tableContainerStyles.ts +8 -0
  929. package/src/table/__tests__/tableRowStyles.ts +8 -0
  930. package/src/table/__tests__/tableStyles.ts +8 -0
  931. package/src/table/_table.scss +71 -88
  932. package/src/table/tableCellStyles.ts +83 -0
  933. package/src/table/tableContainerStyles.ts +19 -0
  934. package/src/table/tableFooterStyles.ts +27 -0
  935. package/src/table/tableHeaderStyles.ts +29 -0
  936. package/src/table/tableRowStyles.ts +28 -0
  937. package/src/table/tableStyles.ts +24 -0
  938. package/src/table/types.ts +33 -15
  939. package/src/tabs/__tests__/Tab.tsx +3 -3
  940. package/src/tabs/__tests__/TabList.tsx +50 -40
  941. package/src/tabs/__tests__/useTabs.tsx +27 -24
  942. package/src/tabs/_tabs.scss +27 -30
  943. package/src/test-utils/data-testid.ts +5 -0
  944. package/src/test-utils/jest-setup.ts +4 -0
  945. package/src/theme/ThemeProvider.tsx +6 -0
  946. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +4 -4
  947. package/src/theme/__tests__/useCSSVariables.tsx +4 -4
  948. package/src/theme/_theme.scss +31 -89
  949. package/src/tooltip/Tooltip.tsx +17 -9
  950. package/src/tooltip/TooltipHoverModeProvider.tsx +18 -0
  951. package/src/tooltip/__tests__/Tooltip.tsx +147 -104
  952. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +8 -3
  953. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -33
  954. package/src/tooltip/_tooltip.scss +17 -25
  955. package/src/tooltip/tooltipStyles.ts +4 -4
  956. package/src/tooltip/useTooltip.ts +119 -19
  957. package/src/transition/__tests__/CSSTransition.tsx +12 -6
  958. package/src/transition/__tests__/Collapse.tsx +19 -17
  959. package/src/transition/__tests__/CrossFade.tsx +20 -17
  960. package/src/transition/__tests__/ScaleTransition.tsx +18 -14
  961. package/src/transition/__tests__/useCSSTransition.tsx +18 -14
  962. package/src/transition/__tests__/useCollapseTransition.tsx +25 -21
  963. package/src/transition/__tests__/useCrossFadeTransition.tsx +20 -16
  964. package/src/transition/__tests__/useScaleTransition.tsx +18 -12
  965. package/src/transition/__tests__/useTransition.tsx +165 -68
  966. package/src/transition/_transition.scss +38 -37
  967. package/src/transition/config.ts +34 -0
  968. package/src/transition/useTransition.ts +15 -6
  969. package/src/tree/DefaultTreeItemRenderer.tsx +1 -1
  970. package/src/tree/Tree.tsx +20 -24
  971. package/src/tree/TreeItem.tsx +2 -3
  972. package/src/tree/TreeProvider.tsx +6 -0
  973. package/src/tree/__tests__/Tree.tsx +7 -2
  974. package/src/tree/__tests__/TreeGroup.tsx +1 -0
  975. package/src/tree/__tests__/TreeItemExpander.tsx +1 -0
  976. package/src/tree/_tree.scss +102 -109
  977. package/src/typography/__tests__/TextContainer.tsx +3 -3
  978. package/src/typography/__tests__/Typography.tsx +10 -12
  979. package/src/typography/__tests__/WritingDirectionProvider.tsx +7 -7
  980. package/src/typography/_typography.scss +17 -22
  981. package/src/window-splitter/_window-splitter.scss +19 -45
  982. package/dist/divider/VerticalDivider.d.ts +0 -32
  983. package/dist/divider/VerticalDivider.js +0 -40
  984. package/dist/divider/VerticalDivider.js.map +0 -1
  985. package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
  986. package/dist/divider/useVerticalDividerHeight.js +0 -40
  987. package/dist/divider/useVerticalDividerHeight.js.map +0 -1
  988. package/dist/icon/MaterialIconsProvider.d.ts +0 -12
  989. package/dist/icon/MaterialIconsProvider.js +0 -17
  990. package/dist/icon/MaterialIconsProvider.js.map +0 -1
  991. package/dist/icon/MaterialSymbolsProvider.js +0 -60
  992. package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
  993. package/dist/link/LinkProvider.d.ts +0 -29
  994. package/dist/link/LinkProvider.js +0 -26
  995. package/dist/link/LinkProvider.js.map +0 -1
  996. package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
  997. package/dist/tooltip/useOverflowTooltip.js +0 -71
  998. package/dist/tooltip/useOverflowTooltip.js.map +0 -1
  999. package/src/divider/VerticalDivider.tsx +0 -50
  1000. package/src/divider/__tests__/VerticalDivider.tsx +0 -35
  1001. package/src/divider/__tests__/__snapshots__/VerticalDivider.tsx.snap +0 -41
  1002. package/src/divider/useVerticalDividerHeight.ts +0 -72
  1003. package/src/icon/MaterialIconsProvider.ts +0 -23
  1004. package/src/link/LinkProvider.tsx +0 -51
  1005. package/src/tooltip/__tests__/useOverflowTooltip.tsx +0 -77
  1006. package/src/tooltip/useOverflowTooltip.ts +0 -93
@@ -38,8 +38,8 @@ const styles = bem("rmd-menu-item-input-toggle");
38
38
  if (type === "switch") {
39
39
  icon = /*#__PURE__*/ _jsx(SwitchTrack, {
40
40
  style: trackStyle,
41
- className: trackClassName,
42
41
  ...trackProps,
42
+ className: cnb(styles("track"), trackClassName, trackProps?.className),
43
43
  active: checked,
44
44
  ballProps: ballProps,
45
45
  ballStyle: ballStyle,
@@ -89,7 +89,6 @@ const styles = bem("rmd-menu-item-input-toggle");
89
89
  }
90
90
  return /*#__PURE__*/ _jsx(ListItem, {
91
91
  ...remaining,
92
- "aria-disabled": disabled || undefined,
93
92
  // I'm not actually sure if this is correct
94
93
  "aria-checked": indeterminate && checked ? "mixed" : checked,
95
94
  id: id,
@@ -106,6 +105,7 @@ const styles = bem("rmd-menu-item-input-toggle");
106
105
  type,
107
106
  className
108
107
  }),
108
+ disabled: disabled,
109
109
  tabIndex: tabIndex,
110
110
  leftAddon: leftAddon,
111
111
  leftAddonType: leftAddonType,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/MenuItemInputToggle.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type MouseEvent,\n type ReactNode,\n} from \"react\";\nimport { ListItem } from \"../list/ListItem.js\";\nimport {\n type ListItemAddonPosition,\n type ListItemAddonType,\n type ListItemHeight,\n} from \"../list/types.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { bem } from \"../utils/bem.js\";\nimport {\n type IndeterminateCheckboxProps,\n type InputToggleIconProps,\n} from \"./InputToggle.js\";\nimport { InputToggleIcon } from \"./InputToggleIcon.js\";\nimport { SwitchTrack } from \"./SwitchTrack.js\";\nimport { type InputToggleSize } from \"./inputToggleStyles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\nconst styles = bem(\"rmd-menu-item-input-toggle\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface MenuItemInputToggleClassNameOptions {\n className?: string;\n type: \"radio\" | \"checkbox\" | \"switch\";\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggle(\n options: MenuItemInputToggleClassNameOptions\n): string {\n const { className, type } = options;\n return cnb(\n `rmd-${type}-menu-item`,\n styles({ switch: type === \"switch\" }),\n className\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuItemInputToggleCheckedCallback = (\n checked: boolean,\n event: MouseEvent<HTMLLIElement>\n) => void;\n\n/** @remarks \\@since 2.8.0 */\nexport interface BaseMenuItemInputToggleProps\n extends HTMLAttributes<HTMLLIElement>,\n InputToggleIconProps {\n checked: boolean;\n onCheckedChange: MenuItemInputToggleCheckedCallback;\n\n /**\n * @defaultValue `\"menu-item-\" + useId()`\n */\n id?: string;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * Set this to `true` if the `Menu` should not close when the input toggle is\n * clicked. This can be useful when interacting with a checkbox group within a\n * menu or allowing the user to select multiple options before closing the\n * menu.\n *\n * @defaultValue `false`\n */\n preventMenuHideOnClick?: boolean;\n\n /**\n * This is set to `\"auto\"` by default so the icon shrinks back down to the\n * default icon size instead of relative to the current font size. You\n * probably don't want to change this since it'll also modify the height of\n * the menu item\n *\n * @defaultValue `\"auto\"`\n */\n size?: InputToggleSize;\n\n /** @defaultValue `\"auto\"` */\n height?: ListItemHeight;\n\n /** @defaultValue `false` */\n threeLines?: boolean;\n\n /** @defaultValue `false` */\n disableTextChildren?: boolean;\n\n /** @defaultValue `false` */\n iconAfter?: boolean;\n\n addon?: ReactNode;\n addonType?: ListItemAddonType;\n addonPosition?: ListItemAddonPosition;\n\n /** @defaultValue `false` */\n addonForceWrap?: boolean;\n\n /** @defaultValue `false` */\n disableAddonCenteredMedia?: boolean;\n}\n\nexport interface MenuItemCheckboxProps\n extends BaseMenuItemInputToggleProps,\n IndeterminateCheckboxProps {}\n\nexport type MenuItemRadioProps = BaseMenuItemInputToggleProps;\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Added additional props for styling the track and ball.\n */\nexport interface MenuItemSwitchProps extends BaseMenuItemInputToggleProps {\n trackProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;\n trackStyle?: CSSProperties;\n trackClassName?: string;\n ballProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n ballStyle?: CSSProperties;\n ballClassName?: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Updated to be a union of the different props to enforce the\n * correct props based on `type`\n */\nexport type MenuItemInputToggleProps =\n | (MenuItemCheckboxProps & { type: \"checkbox\" })\n | (MenuItemRadioProps & { type: \"radio\" })\n | (MenuItemSwitchProps & { type: \"switch\" });\n\n/**\n * **Client Component**\n *\n * This is a low-level component that should probably not be used externally and\n * instead the `MenuItemCheckbox`, `MenuItemRadio`, or `MenuItemSwitch` should\n * be used instead.\n *\n * @see {@link MenuItemCheckbox} for checkbox examples\n * @see {@link MenuItemRadio} for radio examples\n * @see {@link MenuItemSwitch} for switch examples\n * @remarks \\@since 2.8.0\n */\nexport const MenuItemInputToggle = forwardRef<\n HTMLLIElement,\n MenuItemInputToggleProps\n>(function MenuItemInputToggle(props, ref) {\n const {\n id: propId,\n type,\n disabled = false,\n checked,\n onCheckedChange,\n preventMenuHideOnClick = false,\n onClick = noop,\n className,\n tabIndex = -1,\n children,\n size = \"auto\",\n icon: propIcon,\n iconAfter = false,\n iconProps,\n iconStyle,\n iconClassName,\n checkedIcon,\n indeterminate,\n indeterminateIcon,\n addon,\n addonType,\n addonPosition,\n addonForceWrap,\n disableAddonCenteredMedia,\n ballProps,\n ballStyle,\n ballClassName,\n trackProps,\n trackStyle,\n trackClassName,\n ...remaining\n } = props as MenuItemSwitchProps &\n MenuItemCheckboxProps & { type: \"checkbox\" | \"radio\" | \"switch\" };\n const id = useEnsuredId(propId, \"menu-item\");\n\n let icon = propIcon;\n if (typeof propIcon === \"undefined\") {\n if (type === \"switch\") {\n icon = (\n <SwitchTrack\n style={trackStyle}\n className={trackClassName}\n {...trackProps}\n active={checked}\n ballProps={ballProps}\n ballStyle={ballStyle}\n ballClassName={cnb(styles(\"ball\"), ballClassName)}\n />\n );\n } else {\n icon = (\n <InputToggleIcon\n style={iconStyle}\n disableEm\n {...iconProps}\n className={cnb(styles(\"icon\"), iconClassName, iconProps?.className)}\n size={size}\n type={type}\n checked={checked}\n disabled={disabled}\n icon={propIcon}\n checkedIcon={checkedIcon}\n indeterminate={indeterminate}\n indeterminateIcon={indeterminateIcon}\n />\n );\n }\n }\n\n let leftAddon: ReactNode;\n let leftAddonType: ListItemAddonType | undefined;\n let leftAddonPosition: ListItemAddonPosition | undefined;\n let leftAddonForceWrap: boolean | undefined;\n let disableLeftAddonCenteredMedia: boolean | undefined;\n let rightAddon: ReactNode;\n let rightAddonType: ListItemAddonType | undefined;\n let rightAddonPosition: ListItemAddonPosition | undefined;\n let rightAddonForceWrap: boolean | undefined;\n let disableRightAddonCenteredMedia: boolean | undefined;\n if (iconAfter) {\n leftAddon = addon;\n leftAddonType = addonType;\n leftAddonPosition = addonPosition;\n leftAddonForceWrap = addonForceWrap;\n disableLeftAddonCenteredMedia = disableAddonCenteredMedia;\n rightAddon = icon;\n } else {\n leftAddon = icon;\n rightAddon = addon;\n rightAddonType = addonType;\n rightAddonPosition = addonPosition;\n rightAddonForceWrap = addonForceWrap;\n disableRightAddonCenteredMedia = disableAddonCenteredMedia;\n }\n\n return (\n <ListItem\n {...remaining}\n aria-disabled={disabled || undefined}\n // I'm not actually sure if this is correct\n aria-checked={indeterminate && checked ? \"mixed\" : checked}\n id={id}\n role={type === \"radio\" ? \"menuitemradio\" : \"menuitemcheckbox\"}\n onClick={(event) => {\n onClick(event);\n onCheckedChange(!checked, event);\n\n if (preventMenuHideOnClick) {\n event.stopPropagation();\n }\n }}\n ref={ref}\n className={menuItemInputToggle({ type, className })}\n tabIndex={tabIndex}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonForceWrap={leftAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonForceWrap={rightAddonForceWrap}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItem>\n );\n});\n"],"names":["cnb","forwardRef","ListItem","useEnsuredId","bem","InputToggleIcon","SwitchTrack","noop","styles","menuItemInputToggle","options","className","type","switch","MenuItemInputToggle","props","ref","id","propId","disabled","checked","onCheckedChange","preventMenuHideOnClick","onClick","tabIndex","children","size","icon","propIcon","iconAfter","iconProps","iconStyle","iconClassName","checkedIcon","indeterminate","indeterminateIcon","addon","addonType","addonPosition","addonForceWrap","disableAddonCenteredMedia","ballProps","ballStyle","ballClassName","trackProps","trackStyle","trackClassName","remaining","style","active","disableEm","leftAddon","leftAddonType","leftAddonPosition","leftAddonForceWrap","disableLeftAddonCenteredMedia","rightAddon","rightAddonType","rightAddonPosition","rightAddonForceWrap","disableRightAddonCenteredMedia","aria-disabled","undefined","aria-checked","role","event","stopPropagation"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/MenuItemInputToggle.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type MouseEvent,\n type ReactNode,\n} from \"react\";\nimport { ListItem } from \"../list/ListItem.js\";\nimport {\n type ListItemAddonPosition,\n type ListItemAddonType,\n type ListItemHeight,\n} from \"../list/types.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { bem } from \"../utils/bem.js\";\nimport {\n type IndeterminateCheckboxProps,\n type InputToggleIconProps,\n} from \"./InputToggle.js\";\nimport { InputToggleIcon } from \"./InputToggleIcon.js\";\nimport { SwitchTrack } from \"./SwitchTrack.js\";\nimport { type InputToggleSize } from \"./inputToggleStyles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\nconst styles = bem(\"rmd-menu-item-input-toggle\");\n\n/** @remarks \\@since 6.0.0 */\nexport interface MenuItemInputToggleClassNameOptions {\n className?: string;\n type: \"radio\" | \"checkbox\" | \"switch\";\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function menuItemInputToggle(\n options: MenuItemInputToggleClassNameOptions\n): string {\n const { className, type } = options;\n return cnb(\n `rmd-${type}-menu-item`,\n styles({ switch: type === \"switch\" }),\n className\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type MenuItemInputToggleCheckedCallback = (\n checked: boolean,\n event: MouseEvent<HTMLLIElement>\n) => void;\n\n/** @remarks \\@since 2.8.0 */\nexport interface BaseMenuItemInputToggleProps\n extends HTMLAttributes<HTMLLIElement>,\n InputToggleIconProps {\n checked: boolean;\n onCheckedChange: MenuItemInputToggleCheckedCallback;\n\n /**\n * @defaultValue `\"menu-item-\" + useId()`\n */\n id?: string;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /**\n * Set this to `true` if the `Menu` should not close when the input toggle is\n * clicked. This can be useful when interacting with a checkbox group within a\n * menu or allowing the user to select multiple options before closing the\n * menu.\n *\n * @defaultValue `false`\n */\n preventMenuHideOnClick?: boolean;\n\n /**\n * This is set to `\"auto\"` by default so the icon shrinks back down to the\n * default icon size instead of relative to the current font size. You\n * probably don't want to change this since it'll also modify the height of\n * the menu item\n *\n * @defaultValue `\"auto\"`\n */\n size?: InputToggleSize;\n\n /** @defaultValue `\"auto\"` */\n height?: ListItemHeight;\n\n /** @defaultValue `false` */\n threeLines?: boolean;\n\n /** @defaultValue `false` */\n disableTextChildren?: boolean;\n\n /** @defaultValue `false` */\n iconAfter?: boolean;\n\n addon?: ReactNode;\n addonType?: ListItemAddonType;\n addonPosition?: ListItemAddonPosition;\n\n /** @defaultValue `false` */\n addonForceWrap?: boolean;\n\n /** @defaultValue `false` */\n disableAddonCenteredMedia?: boolean;\n}\n\nexport interface MenuItemCheckboxProps\n extends BaseMenuItemInputToggleProps,\n IndeterminateCheckboxProps {}\n\nexport type MenuItemRadioProps = BaseMenuItemInputToggleProps;\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Added additional props for styling the track and ball.\n */\nexport interface MenuItemSwitchProps extends BaseMenuItemInputToggleProps {\n trackProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;\n trackStyle?: CSSProperties;\n trackClassName?: string;\n ballProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n ballStyle?: CSSProperties;\n ballClassName?: string;\n}\n\n/**\n * @remarks\n * \\@since 2.8.0\n * \\@since 6.0.0 Updated to be a union of the different props to enforce the\n * correct props based on `type`\n */\nexport type MenuItemInputToggleProps =\n | (MenuItemCheckboxProps & { type: \"checkbox\" })\n | (MenuItemRadioProps & { type: \"radio\" })\n | (MenuItemSwitchProps & { type: \"switch\" });\n\n/**\n * **Client Component**\n *\n * This is a low-level component that should probably not be used externally and\n * instead the `MenuItemCheckbox`, `MenuItemRadio`, or `MenuItemSwitch` should\n * be used instead.\n *\n * @see {@link MenuItemCheckbox} for checkbox examples\n * @see {@link MenuItemRadio} for radio examples\n * @see {@link MenuItemSwitch} for switch examples\n * @remarks \\@since 2.8.0\n */\nexport const MenuItemInputToggle = forwardRef<\n HTMLLIElement,\n MenuItemInputToggleProps\n>(function MenuItemInputToggle(props, ref) {\n const {\n id: propId,\n type,\n disabled = false,\n checked,\n onCheckedChange,\n preventMenuHideOnClick = false,\n onClick = noop,\n className,\n tabIndex = -1,\n children,\n size = \"auto\",\n icon: propIcon,\n iconAfter = false,\n iconProps,\n iconStyle,\n iconClassName,\n checkedIcon,\n indeterminate,\n indeterminateIcon,\n addon,\n addonType,\n addonPosition,\n addonForceWrap,\n disableAddonCenteredMedia,\n ballProps,\n ballStyle,\n ballClassName,\n trackProps,\n trackStyle,\n trackClassName,\n ...remaining\n } = props as MenuItemSwitchProps &\n MenuItemCheckboxProps & { type: \"checkbox\" | \"radio\" | \"switch\" };\n const id = useEnsuredId(propId, \"menu-item\");\n\n let icon = propIcon;\n if (typeof propIcon === \"undefined\") {\n if (type === \"switch\") {\n icon = (\n <SwitchTrack\n style={trackStyle}\n {...trackProps}\n className={cnb(\n styles(\"track\"),\n trackClassName,\n trackProps?.className\n )}\n active={checked}\n ballProps={ballProps}\n ballStyle={ballStyle}\n ballClassName={cnb(styles(\"ball\"), ballClassName)}\n />\n );\n } else {\n icon = (\n <InputToggleIcon\n style={iconStyle}\n disableEm\n {...iconProps}\n className={cnb(styles(\"icon\"), iconClassName, iconProps?.className)}\n size={size}\n type={type}\n checked={checked}\n disabled={disabled}\n icon={propIcon}\n checkedIcon={checkedIcon}\n indeterminate={indeterminate}\n indeterminateIcon={indeterminateIcon}\n />\n );\n }\n }\n\n let leftAddon: ReactNode;\n let leftAddonType: ListItemAddonType | undefined;\n let leftAddonPosition: ListItemAddonPosition | undefined;\n let leftAddonForceWrap: boolean | undefined;\n let disableLeftAddonCenteredMedia: boolean | undefined;\n let rightAddon: ReactNode;\n let rightAddonType: ListItemAddonType | undefined;\n let rightAddonPosition: ListItemAddonPosition | undefined;\n let rightAddonForceWrap: boolean | undefined;\n let disableRightAddonCenteredMedia: boolean | undefined;\n if (iconAfter) {\n leftAddon = addon;\n leftAddonType = addonType;\n leftAddonPosition = addonPosition;\n leftAddonForceWrap = addonForceWrap;\n disableLeftAddonCenteredMedia = disableAddonCenteredMedia;\n rightAddon = icon;\n } else {\n leftAddon = icon;\n rightAddon = addon;\n rightAddonType = addonType;\n rightAddonPosition = addonPosition;\n rightAddonForceWrap = addonForceWrap;\n disableRightAddonCenteredMedia = disableAddonCenteredMedia;\n }\n\n return (\n <ListItem\n {...remaining}\n // I'm not actually sure if this is correct\n aria-checked={indeterminate && checked ? \"mixed\" : checked}\n id={id}\n role={type === \"radio\" ? \"menuitemradio\" : \"menuitemcheckbox\"}\n onClick={(event) => {\n onClick(event);\n onCheckedChange(!checked, event);\n\n if (preventMenuHideOnClick) {\n event.stopPropagation();\n }\n }}\n ref={ref}\n className={menuItemInputToggle({ type, className })}\n disabled={disabled}\n tabIndex={tabIndex}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonForceWrap={leftAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonForceWrap={rightAddonForceWrap}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItem>\n );\n});\n"],"names":["cnb","forwardRef","ListItem","useEnsuredId","bem","InputToggleIcon","SwitchTrack","noop","styles","menuItemInputToggle","options","className","type","switch","MenuItemInputToggle","props","ref","id","propId","disabled","checked","onCheckedChange","preventMenuHideOnClick","onClick","tabIndex","children","size","icon","propIcon","iconAfter","iconProps","iconStyle","iconClassName","checkedIcon","indeterminate","indeterminateIcon","addon","addonType","addonPosition","addonForceWrap","disableAddonCenteredMedia","ballProps","ballStyle","ballClassName","trackProps","trackStyle","trackClassName","remaining","style","active","disableEm","leftAddon","leftAddonType","leftAddonPosition","leftAddonForceWrap","disableLeftAddonCenteredMedia","rightAddon","rightAddonType","rightAddonPosition","rightAddonForceWrap","disableRightAddonCenteredMedia","aria-checked","role","event","stopPropagation"],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface MenuItemTextFieldProps extends TextFieldProps {
9
9
  * Any additional props or a `ref` to apply to the surrounding `<li>` element.
10
10
  */
11
11
  liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;
12
+ /** @defaultValue `true` */
13
+ stretch?: boolean;
12
14
  }
13
15
  /**
14
16
  * **Client Component**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/MenuItemTextField.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { TextField, type TextFieldProps } from \"./TextField.js\";\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface MenuItemTextFieldProps extends TextFieldProps {\n /**\n * Any additional props or a `ref` to apply to the surrounding `<li>` element.\n */\n liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n}\n\n/**\n * **Client Component**\n *\n * This is a wrapper for the `TextField` component that can be used within\n * `Menu`s by updating the `onKeyDown` and `onClick` behavior.\n *\n * Note: This is **not** the `TextFieldWithMessage` since the message part is\n * hard to style nicely within menus. You'd most likely want to use another menu\n * for displaying errors.\n *\n * @remarks \\@since 5.0.0\n */\nexport const MenuItemTextField = forwardRef<\n HTMLInputElement,\n MenuItemTextFieldProps\n>(function MenuItemTextField(props, ref) {\n const { liProps, onKeyDown, stretch = true, ...remaining } = props;\n return (\n <li\n role=\"none\"\n {...liProps}\n onClick={(event) => {\n liProps?.onClick?.(event);\n event.stopPropagation();\n }}\n className={cnb(\"rmd-list-item rmd-menu-item\", liProps?.className)}\n >\n <TextField\n {...remaining}\n ref={ref}\n stretch={stretch}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n switch (event.key) {\n case \"Tab\":\n case \"Escape\":\n case \" \":\n // do default behavior\n break;\n default:\n if (event.key.length === 1 || event.currentTarget.value) {\n event.stopPropagation();\n }\n }\n }}\n />\n </li>\n );\n});\n"],"names":["cnb","forwardRef","TextField","MenuItemTextField","props","ref","liProps","onKeyDown","stretch","remaining","li","role","onClick","event","stopPropagation","className","key","length","currentTarget","value"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AAExD,SAASC,SAAS,QAA6B,iBAAiB;AAYhE;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,kCAAoBF,WAG/B,SAASE,kBAAkBC,KAAK,EAAEC,GAAG;IACrC,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,UAAU,IAAI,EAAE,GAAGC,WAAW,GAAGL;IAC7D,qBACE,KAACM;QACCC,MAAK;QACJ,GAAGL,OAAO;QACXM,SAAS,CAACC;YACRP,SAASM,UAAUC;YACnBA,MAAMC,eAAe;QACvB;QACAC,WAAWf,IAAI,+BAA+BM,SAASS;kBAEvD,cAAA,KAACb;YACE,GAAGO,SAAS;YACbJ,KAAKA;YACLG,SAASA;YACTD,WAAW,CAACM;gBACVN,YAAYM;gBACZ,OAAQA,MAAMG,GAAG;oBACf,KAAK;oBACL,KAAK;oBACL,KAAK;wBAEH;oBACF;wBACE,IAAIH,MAAMG,GAAG,CAACC,MAAM,KAAK,KAAKJ,MAAMK,aAAa,CAACC,KAAK,EAAE;4BACvDN,MAAMC,eAAe;wBACvB;gBACJ;YACF;;;AAIR,GAAG"}
1
+ {"version":3,"sources":["../../src/form/MenuItemTextField.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { TextField, type TextFieldProps } from \"./TextField.js\";\n\n/**\n * @remarks \\@since 5.0.0\n */\nexport interface MenuItemTextFieldProps extends TextFieldProps {\n /**\n * Any additional props or a `ref` to apply to the surrounding `<li>` element.\n */\n liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n\n /** @defaultValue `true` */\n stretch?: boolean;\n}\n\n/**\n * **Client Component**\n *\n * This is a wrapper for the `TextField` component that can be used within\n * `Menu`s by updating the `onKeyDown` and `onClick` behavior.\n *\n * Note: This is **not** the `TextFieldWithMessage` since the message part is\n * hard to style nicely within menus. You'd most likely want to use another menu\n * for displaying errors.\n *\n * @remarks \\@since 5.0.0\n */\nexport const MenuItemTextField = forwardRef<\n HTMLInputElement,\n MenuItemTextFieldProps\n>(function MenuItemTextField(props, ref) {\n const { liProps, onKeyDown, stretch = true, ...remaining } = props;\n return (\n <li\n role=\"none\"\n {...liProps}\n onClick={(event) => {\n liProps?.onClick?.(event);\n event.stopPropagation();\n }}\n className={cnb(\"rmd-list-item rmd-menu-item\", liProps?.className)}\n >\n <TextField\n {...remaining}\n ref={ref}\n stretch={stretch}\n onKeyDown={(event) => {\n onKeyDown?.(event);\n switch (event.key) {\n case \"Tab\":\n case \"Escape\":\n case \" \":\n // do default behavior\n break;\n default:\n if (event.key.length === 1 || event.currentTarget.value) {\n event.stopPropagation();\n }\n }\n }}\n />\n </li>\n );\n});\n"],"names":["cnb","forwardRef","TextField","MenuItemTextField","props","ref","liProps","onKeyDown","stretch","remaining","li","role","onClick","event","stopPropagation","className","key","length","currentTarget","value"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AAExD,SAASC,SAAS,QAA6B,iBAAiB;AAehE;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,kCAAoBF,WAG/B,SAASE,kBAAkBC,KAAK,EAAEC,GAAG;IACrC,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,UAAU,IAAI,EAAE,GAAGC,WAAW,GAAGL;IAC7D,qBACE,KAACM;QACCC,MAAK;QACJ,GAAGL,OAAO;QACXM,SAAS,CAACC;YACRP,SAASM,UAAUC;YACnBA,MAAMC,eAAe;QACvB;QACAC,WAAWf,IAAI,+BAA+BM,SAASS;kBAEvD,cAAA,KAACb;YACE,GAAGO,SAAS;YACbJ,KAAKA;YACLG,SAASA;YACTD,WAAW,CAACM;gBACVN,YAAYM;gBACZ,OAAQA,MAAMG,GAAG;oBACf,KAAK;oBACL,KAAK;oBACL,KAAK;wBAEH;oBACF;wBACE,IAAIH,MAAMG,GAAG,CAACC,MAAM,KAAK,KAAKJ,MAAMK,aAAa,CAACC,KAAK,EAAE;4BACvDN,MAAMC,eAAe;wBACvB;gBACJ;YACF;;;AAIR,GAAG"}
@@ -74,6 +74,24 @@ export interface SliderProps extends BaseSliderProps, SliderState {
74
74
  * be useful for applying additional styling.
75
75
  */
76
76
  thumbProps?: HTMLAttributes<HTMLSpanElement>;
77
+ /**
78
+ * This can be used to update the discrete slider's tooltip props.
79
+ *
80
+ * @example
81
+ * Custom Styles
82
+ * ```tsx
83
+ * <Slider
84
+ * {...slider}
85
+ * discrete
86
+ * getTooltipProps={(value) => ({
87
+ * className: cssUtils({
88
+ * backgroundColor: value < 30 ? "warning" : undefined,
89
+ * }),
90
+ * })}
91
+ * />
92
+ * ```
93
+ */
94
+ getTooltipProps?(value: number): Partial<TooltipProps>;
77
95
  /**
78
96
  * This can be used to update the discrete slider's value tooltip.
79
97
  *
@@ -150,6 +168,24 @@ export interface RangeSliderProps extends BaseSliderProps, RangeSliderState {
150
168
  * accessibility.
151
169
  */
152
170
  maxThumbLabelledBy?: string;
171
+ /**
172
+ * This can be used to update the discrete slider's tooltip props.
173
+ *
174
+ * @example
175
+ * Custom Styles
176
+ * ```tsx
177
+ * <Slider
178
+ * {...slider}
179
+ * discrete
180
+ * getTooltipProps={(value, isFirstThumb) => ({
181
+ * className: cssUtils({
182
+ * backgroundColor: value < 30 && isFirstThumb ? "warning" : undefined,
183
+ * }),
184
+ * })}
185
+ * />
186
+ * ```
187
+ */
188
+ getTooltipProps?(value: number, isFirstThumb: boolean): Partial<TooltipProps>;
153
189
  /**
154
190
  * This can be used to update the discrete slider's value tooltip.
155
191
  *
@@ -157,12 +193,12 @@ export interface RangeSliderProps extends BaseSliderProps, RangeSliderState {
157
193
  * More Value Information
158
194
  * ```tsx
159
195
  * <Slider
160
- * {...slider}
196
+ * {...rangeSlider}
161
197
  * discrete
162
- * getTooltipChildren={(value, isMinValue) => (
198
+ * getTooltipChildren={(value, isFirstThumb) => (
163
199
  * <TextIconSpacing
164
- * icon={isMinValue ? <FavoriteIcon /> : <CloseIcon /}
165
- * iconAfter={!isMinValue}
200
+ * icon={isFirstThumb ? <FavoriteIcon /> : <CloseIcon /}
201
+ * iconAfter={!isFirstValue}
166
202
  * >
167
203
  * {value}
168
204
  * </TextIconSpacing>
@@ -174,7 +210,7 @@ export interface RangeSliderProps extends BaseSliderProps, RangeSliderState {
174
210
  *
175
211
  * @defaultValue `(value) => value`
176
212
  */
177
- getTooltipChildren?(value: number, isMinValue: boolean): ReactNode;
213
+ getTooltipChildren?(value: number, isFirstThumb: boolean): ReactNode;
178
214
  }
179
215
  /**
180
216
  * **Client Component**
@@ -15,7 +15,7 @@ const noop = ()=>{
15
15
  // do nothing
16
16
  };
17
17
  export function Slider(props) {
18
- const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, id: propId, min = 0, max = 100, step = 1, jump: propJump, vertical = false, discrete = false, disabled = false, getValueText = emptyString, children, marks = false, value, setValue, rangeValue, setRangeValue, trackProps, thumbProps, minThumbProps, minThumbLabel, minThumbLabelledBy, maxThumbProps, maxThumbLabel, maxThumbLabelledBy, tooltipProps, containerRef, getMarkProps = noop, getMarkLabelProps = noop, tooltipVisibility = "auto", getTooltipChildren = identity, disableSmoothDragging = !!marks, ...remaining } = props;
18
+ const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, id: propId, min = 0, max = 100, step = 1, jump: propJump, vertical = false, discrete = false, disabled = false, getValueText = emptyString, children, marks = false, value, setValue, rangeValue, setRangeValue, trackProps, thumbProps, minThumbProps, minThumbLabel, minThumbLabelledBy, maxThumbProps, maxThumbLabel, maxThumbLabelledBy, tooltipProps, containerRef, getMarkProps = noop, getMarkLabelProps = noop, tooltipVisibility = "auto", getTooltipProps = noop, getTooltipChildren = identity, disableSmoothDragging = !!marks, ...remaining } = props;
19
19
  const jump = getJumpValue({
20
20
  min,
21
21
  max,
@@ -156,6 +156,7 @@ export function Slider(props) {
156
156
  vertical,
157
157
  getValueText,
158
158
  tooltipProps,
159
+ getTooltipProps,
159
160
  getTooltipChildren,
160
161
  tooltipVisibility,
161
162
  disableSmoothDragging
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Slider.tsx"],"sourcesContent":["\"use client\";\nimport {\n useRef,\n useState,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { useDraggable } from \"../draggable/useDraggable.js\";\nimport { type TooltipProps } from \"../tooltip/Tooltip.js\";\nimport {\n type LabelRequiredForA11y,\n type PropsWithRef,\n type UseStateSetter,\n} from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { identity } from \"../utils/identity.js\";\nimport { withinRange } from \"../utils/withinRange.js\";\nimport { SliderContainer, type SliderAddonProps } from \"./SliderContainer.js\";\nimport {\n SliderThumb,\n type SliderThumbPresentation,\n type SliderThumbProps,\n} from \"./SliderThumb.js\";\nimport { SliderTrack } from \"./SliderTrack.js\";\nimport {\n SliderValueMarks,\n type SliderMarksOptions,\n} from \"./SliderValueMarks.js\";\nimport { getJumpValue } from \"./sliderUtils.js\";\nimport { type RangeSliderState } from \"./useRangeSlider.js\";\nimport { type SliderState, type SliderValueOptions } from \"./useSlider.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-slider-color\"?: string;\n \"--rmd-slider-active-color\"?: string;\n \"--rmd-slider-inactive-color\"?: string;\n \"--rmd-slider-size\"?: string | number;\n \"--rmd-slider-active-size\"?: string | number;\n \"--rmd-slider-inactive-size\"?: string | number;\n \"--rmd-slider-vertical-size\"?: string | number;\n \"--rmd-slider-offset-1\"?: string;\n \"--rmd-slider-offset-2\"?: string;\n \"--rmd-slider-tooltip-scale\"?: string | number;\n \"--rmd-slider-tooltip-translate\"?: string | number;\n \"--rmd-slider-mark-offset\"?: string;\n }\n}\n\nconst emptyString = (): string => \"\";\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 2.5.0\n */\nexport interface BaseSliderProps\n extends HTMLAttributes<HTMLDivElement>,\n SliderThumbPresentation,\n SliderValueOptions,\n SliderAddonProps,\n SliderMarksOptions {\n /**\n * This can be used to apply a ref to the container element since this\n * component does not use `forwardRef`.\n */\n containerRef?: Ref<HTMLDivElement>;\n\n /**\n * The amount to jump the slider's value when the `PageUp` or `PageDown`\n * key is pressed.\n *\n * The default value is 1/10th of the range.\n *\n * @defaultValue `(numberOfSteps / 10) * step`\n */\n jump?: number;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /** @defaultValue `false` */\n vertical?: boolean;\n\n /**\n * This can be used to apply custom styles or a `ref` to the track element if\n * needed.\n */\n trackProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * This can be used to configure any additional tooltip props like the\n * CSS transition `classNames`, styles, etc.\n *\n * This will only be used when {@link discrete} is `true`.\n *\n * Note: The `position` will always be `\"above\"` for horizontal sliders and\n * `\"left\"` for vertical sliders.\n */\n tooltipProps?: Omit<Partial<TooltipProps>, \"position\">;\n}\n\n/**\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Only requires `value` and `setValue` props instead of all the\n * slider controls.\n * \\@since 6.0.0 The `thumbLabel` and `thumbLabelledBy` props were removed. Use\n * the `aria-label` or `aria-labelledby` props instead.\n */\nexport interface SliderProps extends BaseSliderProps, SliderState {\n /**\n * Any additional props that should be provided to the thumb element. This can\n * be useful for applying additional styling.\n */\n thumbProps?: HTMLAttributes<HTMLSpanElement>;\n\n /**\n * This can be used to update the discrete slider's value tooltip.\n *\n * @example\n * More Value Information\n * ```tsx\n * <Slider\n * {...slider}\n * discrete\n * getTooltipChildren={(value) => (\n * <TextIconSpacing icon={<FavoriteIcon />}>\n * {value}\n * </TextIconSpacing>\n * )}\n * />\n * ```\n *\n * This will only be used when {@link discrete} is `true`.\n *\n * @defaultValue `(value) => value`\n */\n getTooltipChildren?(value: number): ReactNode;\n}\n\n/**\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Only requires `rangeValue` and `setRangeValue` props instead of\n * all the slider controls.\n * \\@since 6.0.0 The `thumb1Label`, `thumb1LabelledBy`, `thumb1Props`,\n * `thumb2Label`, `thumb2LabelledBy` and `thumb2Props` were renamed to\n * `minThumbLabel`, `minThumbLabelledBy`, `minThumbProps`, `maxThumbLabel`,\n * `maxThumbLabelledBy`, and `maxThumbProps` respectively.\n */\nexport interface RangeSliderProps extends BaseSliderProps, RangeSliderState {\n /**\n * Any additional props that should be provided to the min value thumb\n * element. This can be useful for applying additional styling.\n */\n minThumbProps?: HTMLAttributes<HTMLSpanElement>;\n\n /**\n * Any additional props that should be provided to the max value thumb\n * element. This can be useful for applying additional styling.\n */\n maxThumbProps?: HTMLAttributes<HTMLSpanElement>;\n\n /**\n * The `aria-label` to apply to the min value.\n *\n * Note: Either this prop or the {@link minThumbLabelledBy} are required for\n * accessibility.\n *\n * @defaultValue `\"Min\"`\n */\n minThumbLabel?: string;\n\n /**\n * Set this to an element's id that labels the min value.\n *\n * Note: Either this prop or the {@link minThumbLabel} are required for\n * accessibility.\n */\n minThumbLabelledBy?: string;\n\n /**\n * The `aria-label` to apply to the max value.\n *\n * Note: Either this prop or the {@link maxThumbLabelledBy} are required for\n * accessibility.\n *\n * @defaultValue `\"Max\"`\n */\n maxThumbLabel?: string;\n\n /**\n * Set this to an element's id that labels the max value.\n *\n * Note: Either this prop or the {@link maxThumbLabel} are required for\n * accessibility.\n */\n maxThumbLabelledBy?: string;\n\n /**\n * This can be used to update the discrete slider's value tooltip.\n *\n * @example\n * More Value Information\n * ```tsx\n * <Slider\n * {...slider}\n * discrete\n * getTooltipChildren={(value, isMinValue) => (\n * <TextIconSpacing\n * icon={isMinValue ? <FavoriteIcon /> : <CloseIcon /}\n * iconAfter={!isMinValue}\n * >\n * {value}\n * </TextIconSpacing>\n * )}\n * />\n * ```\n *\n * This will only be used when {@link discrete} is `true`.\n *\n * @defaultValue `(value) => value`\n */\n getTooltipChildren?(value: number, isMinValue: boolean): ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Form, Slider, useSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: 50,\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { value, setValue } = slider;\n *\n * return (\n * <Form>\n * <Slider {...slider} aria-label=\"Volume\" />\n * </Form>\n * );\n * }\n * ```\n *\n * @example\n * Range Slider Example\n * ```tsx\n * import { Fieldset, Form, Legend, Slider, useRangeSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { useId } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useRangeSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: [0, 100],\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { rangeValue, setRangeValue } = slider;\n * const [minPrice, maxPrice] = rangeValue;\n *\n * return (\n * <Form>\n * <Fieldset>\n * <Legend>Price Range</Legend>\n * <Slider {...slider} />\n * </Fieldset>\n * </Form>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 The `Slider` and `RangeSlider` have been combined into the\n * single `Slider` component and removed the `label` support.\n * \\@since 6.0.0 Each thumb includes an invisible `<input type=\"range\">` instead\n * of an `<input type=\"hidden\">`.\n */\nexport function Slider(props: LabelRequiredForA11y<SliderProps>): ReactElement;\nexport function Slider(props: RangeSliderProps): ReactElement;\nexport function Slider(\n props: LabelRequiredForA11y<SliderProps> | RangeSliderProps\n): ReactElement {\n const {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n id: propId,\n min = 0,\n max = 100,\n step = 1,\n jump: propJump,\n vertical = false,\n discrete = false,\n disabled = false,\n getValueText = emptyString,\n children,\n marks = false,\n value,\n setValue,\n rangeValue,\n setRangeValue,\n trackProps,\n thumbProps,\n minThumbProps,\n minThumbLabel,\n minThumbLabelledBy,\n maxThumbProps,\n maxThumbLabel,\n maxThumbLabelledBy,\n tooltipProps,\n containerRef,\n getMarkProps = noop,\n getMarkLabelProps = noop,\n tooltipVisibility = \"auto\",\n getTooltipChildren = identity,\n disableSmoothDragging = !!marks,\n ...remaining\n } = props as SliderProps & RangeSliderProps;\n\n const jump = getJumpValue({ min, max, step, jump: propJump });\n const isRangeSlider = typeof value !== \"number\";\n\n const thumb1Id = useEnsuredId(propId, \"slider\");\n const thumb2Id = `${thumb1Id}-2`;\n const thumb1Ref = useRef<HTMLSpanElement>(null);\n const thumb2Ref = useRef<HTMLSpanElement>(null);\n\n let thumb1Max = max;\n let thumb2Min = min;\n let thumb1Label: string | undefined;\n let thumb1LabelledBy: string | undefined;\n let thumb2Label: string | undefined;\n let thumb2LabelledBy: string | undefined;\n let thumb1Value: number;\n let thumb2Value: number;\n let setThumb1Value: UseStateSetter<number>;\n let setThumb2Value: UseStateSetter<number>;\n if (!isRangeSlider) {\n thumb1Value = value;\n setThumb1Value = setValue;\n thumb2Value = max;\n setThumb2Value = noop;\n thumb1Label = ariaLabel;\n thumb1LabelledBy = ariaLabelledBy;\n } else {\n thumb1LabelledBy = minThumbLabelledBy;\n thumb1Label = minThumbLabel || (minThumbLabelledBy ? undefined : \"Min\");\n thumb2LabelledBy = maxThumbLabelledBy;\n thumb2Label = maxThumbLabel || (maxThumbLabelledBy ? undefined : \"max\");\n\n [thumb1Value, thumb2Value] = rangeValue;\n\n thumb1Max = thumb2Value - step;\n thumb2Min = thumb1Value + step;\n\n setThumb1Value = (valueOrSetter) => {\n setRangeValue((prevRangeValue) => {\n const value =\n typeof valueOrSetter === \"number\"\n ? valueOrSetter\n : valueOrSetter(prevRangeValue[0]);\n\n return [value, prevRangeValue[1]];\n });\n };\n setThumb2Value = (valueOrSetter) => {\n setRangeValue((prevRangeValue) => {\n const value =\n typeof valueOrSetter === \"number\"\n ? valueOrSetter\n : valueOrSetter(prevRangeValue[1]);\n\n return [prevRangeValue[0], value];\n });\n };\n }\n\n const [thumb1Dragging, setThumb1Dragging] = useState(false);\n const {\n onKeyDown: thumb1OnKeyDown,\n onMouseUp: thumb1OnMouseUp,\n onMouseDown: thumb1OnMouseDown,\n onMouseMove: thumb1OnMouseMove,\n onTouchStart: thumb1OnTouchStart,\n onTouchMove: thumb1OnTouchMove,\n dragPercentage: thumb1DragPercentage,\n draggableRef: thumb1DraggableRef,\n } = useDraggable({\n ref: thumb1Ref,\n min,\n max: thumb1Max,\n rangeMax: max,\n step,\n value: thumb1Value,\n setValue: setThumb1Value,\n dragging: thumb1Dragging,\n setDragging: setThumb1Dragging,\n disabled,\n vertical,\n withinOffsetParent: true,\n disableDraggingCursorClassName: true,\n onKeyDown(event) {\n switch (event.key) {\n case \"PageUp\":\n event.preventDefault();\n event.stopPropagation();\n setThumb1Value((prevValue) =>\n withinRange({\n min,\n max: thumb1Max,\n value: prevValue + jump,\n })\n );\n break;\n case \"PageDown\":\n event.preventDefault();\n event.stopPropagation();\n setThumb1Value((prevValue) =>\n withinRange({\n min,\n max: thumb1Max,\n value: prevValue - jump,\n })\n );\n break;\n }\n },\n });\n\n const [thumb2Dragging, setThumb2Dragging] = useState(false);\n const {\n onKeyDown: thumb2OnKeyDown,\n onMouseUp: thumb2OnMouseUp,\n onMouseDown: thumb2OnMouseDown,\n onMouseMove: thumb2OnMouseMove,\n onTouchStart: thumb2OnTouchStart,\n onTouchMove: thumb2OnTouchMove,\n dragPercentage: thumb2DragPercentage,\n draggableRef: thumb2DraggableRef,\n } = useDraggable({\n ref: thumb2Ref,\n min: thumb2Min,\n max,\n rangeMin: min,\n step,\n value: thumb2Value,\n setValue: setThumb2Value,\n dragging: thumb2Dragging,\n setDragging: setThumb2Dragging,\n vertical,\n disabled,\n withinOffsetParent: true,\n disableDraggingCursorClassName: true,\n onKeyDown(event) {\n switch (event.key) {\n case \"PageUp\":\n event.preventDefault();\n event.stopPropagation();\n setThumb2Value((prevValue) =>\n withinRange({\n min: thumb2Min,\n max,\n value: prevValue + jump,\n })\n );\n break;\n case \"PageDown\":\n event.preventDefault();\n event.stopPropagation();\n setThumb2Value((prevValue) =>\n withinRange({\n min: thumb2Min,\n max,\n value: prevValue - jump,\n })\n );\n break;\n }\n },\n });\n\n const dragging = thumb1Dragging || thumb2Dragging;\n const sharedThumbProps = {\n step,\n animate: !dragging,\n discrete,\n disabled,\n vertical,\n getValueText,\n tooltipProps,\n getTooltipChildren,\n tooltipVisibility,\n disableSmoothDragging,\n } as const satisfies Partial<SliderThumbProps>;\n\n return (\n <SliderContainer {...remaining} ref={containerRef} vertical={vertical}>\n <SliderTrack\n {...trackProps}\n min={min}\n max={max}\n thumb1Ref={thumb1Ref}\n thumb1Value={thumb1Value}\n thumb1Dragging={!disableSmoothDragging && thumb1Dragging}\n thumb1DragPercentage={thumb1DragPercentage}\n thumb1OnMouseUp={thumb1OnMouseUp}\n thumb1OnMouseDown={thumb1OnMouseDown}\n thumb1OnMouseMove={thumb1OnMouseMove}\n thumb1OnTouchStart={thumb1OnTouchStart}\n thumb1OnTouchMove={thumb1OnTouchMove}\n thumb2Ref={thumb2Ref}\n thumb2Value={thumb2Value}\n thumb2Dragging={!disableSmoothDragging && thumb2Dragging}\n thumb2DragPercentage={thumb2DragPercentage}\n thumb2OnMouseUp={thumb2OnMouseUp}\n thumb2OnMouseDown={thumb2OnMouseDown}\n thumb2OnMouseMove={thumb2OnMouseMove}\n thumb2OnTouchStart={thumb2OnTouchStart}\n thumb2OnTouchMove={thumb2OnTouchMove}\n animate={!disableSmoothDragging && !dragging}\n disabled={disabled}\n vertical={vertical}\n isRangeSlider={isRangeSlider}\n >\n <SliderThumb\n aria-label={thumb1Label as string}\n aria-labelledby={thumb1LabelledBy}\n id={thumb1Id}\n {...thumbProps}\n {...minThumbProps}\n {...sharedThumbProps}\n ref={thumb1DraggableRef}\n min={min}\n max={thumb1Max}\n value={thumb1Value}\n index={1}\n active={thumb1Dragging}\n onChange={(event) =>\n setThumb1Value(event.currentTarget.valueAsNumber)\n }\n onKeyDown={thumb1OnKeyDown}\n />\n {isRangeSlider && (\n <SliderThumb\n aria-label={thumb2Label as string}\n aria-labelledby={thumb2LabelledBy}\n id={thumb2Id}\n {...maxThumbProps}\n {...sharedThumbProps}\n ref={thumb2DraggableRef}\n min={thumb2Min}\n max={max}\n value={thumb2Value}\n index={2}\n active={thumb2Dragging}\n onChange={(event) =>\n setThumb2Value(event.currentTarget.valueAsNumber)\n }\n onKeyDown={thumb2OnKeyDown}\n />\n )}\n {marks && (\n <SliderValueMarks\n min={min}\n max={max}\n step={step}\n marks={marks}\n vertical={vertical}\n thumb1Value={thumb1Value}\n thumb2Value={thumb2Value}\n isRangeSlider={isRangeSlider}\n getMarkProps={getMarkProps}\n getMarkLabelProps={getMarkLabelProps}\n />\n )}\n {children}\n </SliderTrack>\n </SliderContainer>\n );\n}\n"],"names":["useRef","useState","useDraggable","useEnsuredId","identity","withinRange","SliderContainer","SliderThumb","SliderTrack","SliderValueMarks","getJumpValue","emptyString","noop","Slider","props","ariaLabel","ariaLabelledBy","id","propId","min","max","step","jump","propJump","vertical","discrete","disabled","getValueText","children","marks","value","setValue","rangeValue","setRangeValue","trackProps","thumbProps","minThumbProps","minThumbLabel","minThumbLabelledBy","maxThumbProps","maxThumbLabel","maxThumbLabelledBy","tooltipProps","containerRef","getMarkProps","getMarkLabelProps","tooltipVisibility","getTooltipChildren","disableSmoothDragging","remaining","isRangeSlider","thumb1Id","thumb2Id","thumb1Ref","thumb2Ref","thumb1Max","thumb2Min","thumb1Label","thumb1LabelledBy","thumb2Label","thumb2LabelledBy","thumb1Value","thumb2Value","setThumb1Value","setThumb2Value","undefined","valueOrSetter","prevRangeValue","thumb1Dragging","setThumb1Dragging","onKeyDown","thumb1OnKeyDown","onMouseUp","thumb1OnMouseUp","onMouseDown","thumb1OnMouseDown","onMouseMove","thumb1OnMouseMove","onTouchStart","thumb1OnTouchStart","onTouchMove","thumb1OnTouchMove","dragPercentage","thumb1DragPercentage","draggableRef","thumb1DraggableRef","ref","rangeMax","dragging","setDragging","withinOffsetParent","disableDraggingCursorClassName","event","key","preventDefault","stopPropagation","prevValue","thumb2Dragging","setThumb2Dragging","thumb2OnKeyDown","thumb2OnMouseUp","thumb2OnMouseDown","thumb2OnMouseMove","thumb2OnTouchStart","thumb2OnTouchMove","thumb2DragPercentage","thumb2DraggableRef","rangeMin","sharedThumbProps","animate","aria-label","aria-labelledby","index","active","onChange","currentTarget","valueAsNumber"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/Slider.tsx"],"sourcesContent":["\"use client\";\nimport {\n useRef,\n useState,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { useDraggable } from \"../draggable/useDraggable.js\";\nimport { type TooltipProps } from \"../tooltip/Tooltip.js\";\nimport {\n type LabelRequiredForA11y,\n type PropsWithRef,\n type UseStateSetter,\n} from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { identity } from \"../utils/identity.js\";\nimport { withinRange } from \"../utils/withinRange.js\";\nimport { SliderContainer, type SliderAddonProps } from \"./SliderContainer.js\";\nimport {\n SliderThumb,\n type SliderThumbPresentation,\n type SliderThumbProps,\n} from \"./SliderThumb.js\";\nimport { SliderTrack } from \"./SliderTrack.js\";\nimport {\n SliderValueMarks,\n type SliderMarksOptions,\n} from \"./SliderValueMarks.js\";\nimport { getJumpValue } from \"./sliderUtils.js\";\nimport { type RangeSliderState } from \"./useRangeSlider.js\";\nimport { type SliderState, type SliderValueOptions } from \"./useSlider.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-slider-color\"?: string;\n \"--rmd-slider-active-color\"?: string;\n \"--rmd-slider-inactive-color\"?: string;\n \"--rmd-slider-size\"?: string | number;\n \"--rmd-slider-active-size\"?: string | number;\n \"--rmd-slider-inactive-size\"?: string | number;\n \"--rmd-slider-vertical-size\"?: string | number;\n \"--rmd-slider-offset-1\"?: string;\n \"--rmd-slider-offset-2\"?: string;\n \"--rmd-slider-tooltip-scale\"?: string | number;\n \"--rmd-slider-tooltip-translate\"?: string | number;\n \"--rmd-slider-mark-offset\"?: string;\n }\n}\n\nconst emptyString = (): string => \"\";\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @remarks \\@since 2.5.0\n */\nexport interface BaseSliderProps\n extends HTMLAttributes<HTMLDivElement>,\n SliderThumbPresentation,\n SliderValueOptions,\n SliderAddonProps,\n SliderMarksOptions {\n /**\n * This can be used to apply a ref to the container element since this\n * component does not use `forwardRef`.\n */\n containerRef?: Ref<HTMLDivElement>;\n\n /**\n * The amount to jump the slider's value when the `PageUp` or `PageDown`\n * key is pressed.\n *\n * The default value is 1/10th of the range.\n *\n * @defaultValue `(numberOfSteps / 10) * step`\n */\n jump?: number;\n\n /** @defaultValue `false` */\n disabled?: boolean;\n\n /** @defaultValue `false` */\n vertical?: boolean;\n\n /**\n * This can be used to apply custom styles or a `ref` to the track element if\n * needed.\n */\n trackProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;\n\n /**\n * This can be used to configure any additional tooltip props like the\n * CSS transition `classNames`, styles, etc.\n *\n * This will only be used when {@link discrete} is `true`.\n *\n * Note: The `position` will always be `\"above\"` for horizontal sliders and\n * `\"left\"` for vertical sliders.\n */\n tooltipProps?: Omit<Partial<TooltipProps>, \"position\">;\n}\n\n/**\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Only requires `value` and `setValue` props instead of all the\n * slider controls.\n * \\@since 6.0.0 The `thumbLabel` and `thumbLabelledBy` props were removed. Use\n * the `aria-label` or `aria-labelledby` props instead.\n */\nexport interface SliderProps extends BaseSliderProps, SliderState {\n /**\n * Any additional props that should be provided to the thumb element. This can\n * be useful for applying additional styling.\n */\n thumbProps?: HTMLAttributes<HTMLSpanElement>;\n\n /**\n * This can be used to update the discrete slider's tooltip props.\n *\n * @example\n * Custom Styles\n * ```tsx\n * <Slider\n * {...slider}\n * discrete\n * getTooltipProps={(value) => ({\n * className: cssUtils({\n * backgroundColor: value < 30 ? \"warning\" : undefined,\n * }),\n * })}\n * />\n * ```\n */\n getTooltipProps?(value: number): Partial<TooltipProps>;\n\n /**\n * This can be used to update the discrete slider's value tooltip.\n *\n * @example\n * More Value Information\n * ```tsx\n * <Slider\n * {...slider}\n * discrete\n * getTooltipChildren={(value) => (\n * <TextIconSpacing icon={<FavoriteIcon />}>\n * {value}\n * </TextIconSpacing>\n * )}\n * />\n * ```\n *\n * This will only be used when {@link discrete} is `true`.\n *\n * @defaultValue `(value) => value`\n */\n getTooltipChildren?(value: number): ReactNode;\n}\n\n/**\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Only requires `rangeValue` and `setRangeValue` props instead of\n * all the slider controls.\n * \\@since 6.0.0 The `thumb1Label`, `thumb1LabelledBy`, `thumb1Props`,\n * `thumb2Label`, `thumb2LabelledBy` and `thumb2Props` were renamed to\n * `minThumbLabel`, `minThumbLabelledBy`, `minThumbProps`, `maxThumbLabel`,\n * `maxThumbLabelledBy`, and `maxThumbProps` respectively.\n */\nexport interface RangeSliderProps extends BaseSliderProps, RangeSliderState {\n /**\n * Any additional props that should be provided to the min value thumb\n * element. This can be useful for applying additional styling.\n */\n minThumbProps?: HTMLAttributes<HTMLSpanElement>;\n\n /**\n * Any additional props that should be provided to the max value thumb\n * element. This can be useful for applying additional styling.\n */\n maxThumbProps?: HTMLAttributes<HTMLSpanElement>;\n\n /**\n * The `aria-label` to apply to the min value.\n *\n * Note: Either this prop or the {@link minThumbLabelledBy} are required for\n * accessibility.\n *\n * @defaultValue `\"Min\"`\n */\n minThumbLabel?: string;\n\n /**\n * Set this to an element's id that labels the min value.\n *\n * Note: Either this prop or the {@link minThumbLabel} are required for\n * accessibility.\n */\n minThumbLabelledBy?: string;\n\n /**\n * The `aria-label` to apply to the max value.\n *\n * Note: Either this prop or the {@link maxThumbLabelledBy} are required for\n * accessibility.\n *\n * @defaultValue `\"Max\"`\n */\n maxThumbLabel?: string;\n\n /**\n * Set this to an element's id that labels the max value.\n *\n * Note: Either this prop or the {@link maxThumbLabel} are required for\n * accessibility.\n */\n maxThumbLabelledBy?: string;\n\n /**\n * This can be used to update the discrete slider's tooltip props.\n *\n * @example\n * Custom Styles\n * ```tsx\n * <Slider\n * {...slider}\n * discrete\n * getTooltipProps={(value, isFirstThumb) => ({\n * className: cssUtils({\n * backgroundColor: value < 30 && isFirstThumb ? \"warning\" : undefined,\n * }),\n * })}\n * />\n * ```\n */\n getTooltipProps?(value: number, isFirstThumb: boolean): Partial<TooltipProps>;\n\n /**\n * This can be used to update the discrete slider's value tooltip.\n *\n * @example\n * More Value Information\n * ```tsx\n * <Slider\n * {...rangeSlider}\n * discrete\n * getTooltipChildren={(value, isFirstThumb) => (\n * <TextIconSpacing\n * icon={isFirstThumb ? <FavoriteIcon /> : <CloseIcon /}\n * iconAfter={!isFirstValue}\n * >\n * {value}\n * </TextIconSpacing>\n * )}\n * />\n * ```\n *\n * This will only be used when {@link discrete} is `true`.\n *\n * @defaultValue `(value) => value`\n */\n getTooltipChildren?(value: number, isFirstThumb: boolean): ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Form, Slider, useSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: 50,\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { value, setValue } = slider;\n *\n * return (\n * <Form>\n * <Slider {...slider} aria-label=\"Volume\" />\n * </Form>\n * );\n * }\n * ```\n *\n * @example\n * Range Slider Example\n * ```tsx\n * import { Fieldset, Form, Legend, Slider, useRangeSlider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n * import { useId } from \"react\";\n *\n * function Example(): ReactElement {\n * const slider = useRangeSlider({\n * // these are the defaults and can be changed\n * min: 0,\n * max: 100,\n * step: 1,\n * defaultValue: [0, 100],\n * });\n *\n * // if you need access to the current value or manually change the value\n * // yourself.\n * const { rangeValue, setRangeValue } = slider;\n * const [minPrice, maxPrice] = rangeValue;\n *\n * return (\n * <Form>\n * <Fieldset>\n * <Legend>Price Range</Legend>\n * <Slider {...slider} />\n * </Fieldset>\n * </Form>\n * );\n * }\n * ```\n *\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 The `Slider` and `RangeSlider` have been combined into the\n * single `Slider` component and removed the `label` support.\n * \\@since 6.0.0 Each thumb includes an invisible `<input type=\"range\">` instead\n * of an `<input type=\"hidden\">`.\n */\nexport function Slider(props: LabelRequiredForA11y<SliderProps>): ReactElement;\nexport function Slider(props: RangeSliderProps): ReactElement;\nexport function Slider(\n props: LabelRequiredForA11y<SliderProps> | RangeSliderProps\n): ReactElement {\n const {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n id: propId,\n min = 0,\n max = 100,\n step = 1,\n jump: propJump,\n vertical = false,\n discrete = false,\n disabled = false,\n getValueText = emptyString,\n children,\n marks = false,\n value,\n setValue,\n rangeValue,\n setRangeValue,\n trackProps,\n thumbProps,\n minThumbProps,\n minThumbLabel,\n minThumbLabelledBy,\n maxThumbProps,\n maxThumbLabel,\n maxThumbLabelledBy,\n tooltipProps,\n containerRef,\n getMarkProps = noop,\n getMarkLabelProps = noop,\n tooltipVisibility = \"auto\",\n getTooltipProps = noop,\n getTooltipChildren = identity,\n disableSmoothDragging = !!marks,\n ...remaining\n } = props as SliderProps & RangeSliderProps;\n\n const jump = getJumpValue({ min, max, step, jump: propJump });\n const isRangeSlider = typeof value !== \"number\";\n\n const thumb1Id = useEnsuredId(propId, \"slider\");\n const thumb2Id = `${thumb1Id}-2`;\n const thumb1Ref = useRef<HTMLSpanElement>(null);\n const thumb2Ref = useRef<HTMLSpanElement>(null);\n\n let thumb1Max = max;\n let thumb2Min = min;\n let thumb1Label: string | undefined;\n let thumb1LabelledBy: string | undefined;\n let thumb2Label: string | undefined;\n let thumb2LabelledBy: string | undefined;\n let thumb1Value: number;\n let thumb2Value: number;\n let setThumb1Value: UseStateSetter<number>;\n let setThumb2Value: UseStateSetter<number>;\n if (!isRangeSlider) {\n thumb1Value = value;\n setThumb1Value = setValue;\n thumb2Value = max;\n setThumb2Value = noop;\n thumb1Label = ariaLabel;\n thumb1LabelledBy = ariaLabelledBy;\n } else {\n thumb1LabelledBy = minThumbLabelledBy;\n thumb1Label = minThumbLabel || (minThumbLabelledBy ? undefined : \"Min\");\n thumb2LabelledBy = maxThumbLabelledBy;\n thumb2Label = maxThumbLabel || (maxThumbLabelledBy ? undefined : \"max\");\n\n [thumb1Value, thumb2Value] = rangeValue;\n\n thumb1Max = thumb2Value - step;\n thumb2Min = thumb1Value + step;\n\n setThumb1Value = (valueOrSetter) => {\n setRangeValue((prevRangeValue) => {\n const value =\n typeof valueOrSetter === \"number\"\n ? valueOrSetter\n : valueOrSetter(prevRangeValue[0]);\n\n return [value, prevRangeValue[1]];\n });\n };\n setThumb2Value = (valueOrSetter) => {\n setRangeValue((prevRangeValue) => {\n const value =\n typeof valueOrSetter === \"number\"\n ? valueOrSetter\n : valueOrSetter(prevRangeValue[1]);\n\n return [prevRangeValue[0], value];\n });\n };\n }\n\n const [thumb1Dragging, setThumb1Dragging] = useState(false);\n const {\n onKeyDown: thumb1OnKeyDown,\n onMouseUp: thumb1OnMouseUp,\n onMouseDown: thumb1OnMouseDown,\n onMouseMove: thumb1OnMouseMove,\n onTouchStart: thumb1OnTouchStart,\n onTouchMove: thumb1OnTouchMove,\n dragPercentage: thumb1DragPercentage,\n draggableRef: thumb1DraggableRef,\n } = useDraggable({\n ref: thumb1Ref,\n min,\n max: thumb1Max,\n rangeMax: max,\n step,\n value: thumb1Value,\n setValue: setThumb1Value,\n dragging: thumb1Dragging,\n setDragging: setThumb1Dragging,\n disabled,\n vertical,\n withinOffsetParent: true,\n disableDraggingCursorClassName: true,\n onKeyDown(event) {\n switch (event.key) {\n case \"PageUp\":\n event.preventDefault();\n event.stopPropagation();\n setThumb1Value((prevValue) =>\n withinRange({\n min,\n max: thumb1Max,\n value: prevValue + jump,\n })\n );\n break;\n case \"PageDown\":\n event.preventDefault();\n event.stopPropagation();\n setThumb1Value((prevValue) =>\n withinRange({\n min,\n max: thumb1Max,\n value: prevValue - jump,\n })\n );\n break;\n }\n },\n });\n\n const [thumb2Dragging, setThumb2Dragging] = useState(false);\n const {\n onKeyDown: thumb2OnKeyDown,\n onMouseUp: thumb2OnMouseUp,\n onMouseDown: thumb2OnMouseDown,\n onMouseMove: thumb2OnMouseMove,\n onTouchStart: thumb2OnTouchStart,\n onTouchMove: thumb2OnTouchMove,\n dragPercentage: thumb2DragPercentage,\n draggableRef: thumb2DraggableRef,\n } = useDraggable({\n ref: thumb2Ref,\n min: thumb2Min,\n max,\n rangeMin: min,\n step,\n value: thumb2Value,\n setValue: setThumb2Value,\n dragging: thumb2Dragging,\n setDragging: setThumb2Dragging,\n vertical,\n disabled,\n withinOffsetParent: true,\n disableDraggingCursorClassName: true,\n onKeyDown(event) {\n switch (event.key) {\n case \"PageUp\":\n event.preventDefault();\n event.stopPropagation();\n setThumb2Value((prevValue) =>\n withinRange({\n min: thumb2Min,\n max,\n value: prevValue + jump,\n })\n );\n break;\n case \"PageDown\":\n event.preventDefault();\n event.stopPropagation();\n setThumb2Value((prevValue) =>\n withinRange({\n min: thumb2Min,\n max,\n value: prevValue - jump,\n })\n );\n break;\n }\n },\n });\n\n const dragging = thumb1Dragging || thumb2Dragging;\n const sharedThumbProps = {\n step,\n animate: !dragging,\n discrete,\n disabled,\n vertical,\n getValueText,\n tooltipProps,\n getTooltipProps,\n getTooltipChildren,\n tooltipVisibility,\n disableSmoothDragging,\n } as const satisfies Partial<SliderThumbProps>;\n\n return (\n <SliderContainer {...remaining} ref={containerRef} vertical={vertical}>\n <SliderTrack\n {...trackProps}\n min={min}\n max={max}\n thumb1Ref={thumb1Ref}\n thumb1Value={thumb1Value}\n thumb1Dragging={!disableSmoothDragging && thumb1Dragging}\n thumb1DragPercentage={thumb1DragPercentage}\n thumb1OnMouseUp={thumb1OnMouseUp}\n thumb1OnMouseDown={thumb1OnMouseDown}\n thumb1OnMouseMove={thumb1OnMouseMove}\n thumb1OnTouchStart={thumb1OnTouchStart}\n thumb1OnTouchMove={thumb1OnTouchMove}\n thumb2Ref={thumb2Ref}\n thumb2Value={thumb2Value}\n thumb2Dragging={!disableSmoothDragging && thumb2Dragging}\n thumb2DragPercentage={thumb2DragPercentage}\n thumb2OnMouseUp={thumb2OnMouseUp}\n thumb2OnMouseDown={thumb2OnMouseDown}\n thumb2OnMouseMove={thumb2OnMouseMove}\n thumb2OnTouchStart={thumb2OnTouchStart}\n thumb2OnTouchMove={thumb2OnTouchMove}\n animate={!disableSmoothDragging && !dragging}\n disabled={disabled}\n vertical={vertical}\n isRangeSlider={isRangeSlider}\n >\n <SliderThumb\n aria-label={thumb1Label as string}\n aria-labelledby={thumb1LabelledBy}\n id={thumb1Id}\n {...thumbProps}\n {...minThumbProps}\n {...sharedThumbProps}\n ref={thumb1DraggableRef}\n min={min}\n max={thumb1Max}\n value={thumb1Value}\n index={1}\n active={thumb1Dragging}\n onChange={(event) =>\n setThumb1Value(event.currentTarget.valueAsNumber)\n }\n onKeyDown={thumb1OnKeyDown}\n />\n {isRangeSlider && (\n <SliderThumb\n aria-label={thumb2Label as string}\n aria-labelledby={thumb2LabelledBy}\n id={thumb2Id}\n {...maxThumbProps}\n {...sharedThumbProps}\n ref={thumb2DraggableRef}\n min={thumb2Min}\n max={max}\n value={thumb2Value}\n index={2}\n active={thumb2Dragging}\n onChange={(event) =>\n setThumb2Value(event.currentTarget.valueAsNumber)\n }\n onKeyDown={thumb2OnKeyDown}\n />\n )}\n {marks && (\n <SliderValueMarks\n min={min}\n max={max}\n step={step}\n marks={marks}\n vertical={vertical}\n thumb1Value={thumb1Value}\n thumb2Value={thumb2Value}\n isRangeSlider={isRangeSlider}\n getMarkProps={getMarkProps}\n getMarkLabelProps={getMarkLabelProps}\n />\n )}\n {children}\n </SliderTrack>\n </SliderContainer>\n );\n}\n"],"names":["useRef","useState","useDraggable","useEnsuredId","identity","withinRange","SliderContainer","SliderThumb","SliderTrack","SliderValueMarks","getJumpValue","emptyString","noop","Slider","props","ariaLabel","ariaLabelledBy","id","propId","min","max","step","jump","propJump","vertical","discrete","disabled","getValueText","children","marks","value","setValue","rangeValue","setRangeValue","trackProps","thumbProps","minThumbProps","minThumbLabel","minThumbLabelledBy","maxThumbProps","maxThumbLabel","maxThumbLabelledBy","tooltipProps","containerRef","getMarkProps","getMarkLabelProps","tooltipVisibility","getTooltipProps","getTooltipChildren","disableSmoothDragging","remaining","isRangeSlider","thumb1Id","thumb2Id","thumb1Ref","thumb2Ref","thumb1Max","thumb2Min","thumb1Label","thumb1LabelledBy","thumb2Label","thumb2LabelledBy","thumb1Value","thumb2Value","setThumb1Value","setThumb2Value","undefined","valueOrSetter","prevRangeValue","thumb1Dragging","setThumb1Dragging","onKeyDown","thumb1OnKeyDown","onMouseUp","thumb1OnMouseUp","onMouseDown","thumb1OnMouseDown","onMouseMove","thumb1OnMouseMove","onTouchStart","thumb1OnTouchStart","onTouchMove","thumb1OnTouchMove","dragPercentage","thumb1DragPercentage","draggableRef","thumb1DraggableRef","ref","rangeMax","dragging","setDragging","withinOffsetParent","disableDraggingCursorClassName","event","key","preventDefault","stopPropagation","prevValue","thumb2Dragging","setThumb2Dragging","thumb2OnKeyDown","thumb2OnMouseUp","thumb2OnMouseDown","thumb2OnMouseMove","thumb2OnTouchStart","thumb2OnTouchMove","thumb2DragPercentage","thumb2DraggableRef","rangeMin","sharedThumbProps","animate","aria-label","aria-labelledby","index","active","onChange","currentTarget","valueAsNumber"],"mappings":"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"}
@@ -2,6 +2,10 @@ import { type ChangeEventHandler, type HTMLAttributes, type ReactNode } from "re
2
2
  import { type TooltipProps } from "../tooltip/Tooltip.js";
3
3
  import { type LabelRequiredForA11y } from "../types.js";
4
4
  import { type SliderValueOptions } from "./useSlider.js";
5
+ /**
6
+ * @remarks \@since 6.0.0
7
+ */
8
+ export type SliderTooltipVisibility = "auto" | "hover" | "always";
5
9
  /**
6
10
  * @remarks \@since 2.5.0
7
11
  */
@@ -51,7 +55,7 @@ export interface SliderThumbPresentation {
51
55
  *
52
56
  * @defaultValue `"auto"`
53
57
  */
54
- tooltipVisibility?: "auto" | "hover" | "always";
58
+ tooltipVisibility?: SliderTooltipVisibility;
55
59
  }
56
60
  /**
57
61
  * @internal
@@ -70,7 +74,8 @@ export interface SliderThumbProps extends Omit<HTMLAttributes<HTMLSpanElement>,
70
74
  vertical: boolean;
71
75
  onChange: ChangeEventHandler<HTMLInputElement>;
72
76
  tooltipProps?: Partial<TooltipProps>;
73
- getTooltipChildren(value: number, isMinValue: boolean): ReactNode;
77
+ getTooltipProps(value: number, isFirstThumb: boolean): Partial<TooltipProps> | void;
78
+ getTooltipChildren(value: number, isFirstThumb: boolean): ReactNode;
74
79
  }
75
80
  /**
76
81
  * **Client Component**
@@ -40,8 +40,9 @@ const noop = ()=>{
40
40
  * \@since 2.5.0
41
41
  * \@since 6.0.0 Internal only component.
42
42
  */ export const SliderThumb = /*#__PURE__*/ forwardRef(function SliderThumb(props, ref) {
43
- const { id, min, max, name, value, onChange, index, getValueText, step, active, animate, disabled, vertical, discrete, tabIndex = disabled ? -1 : 0, className, onFocus = noop, onKeyDown = noop, onMouseEnter = noop, onMouseLeave = noop, tooltipProps, getTooltipChildren, disableSmoothDragging, tooltipVisibility = "auto", ...remaining } = props;
43
+ const { id, min, max, name, value, onChange, index, getValueText, step, active, animate, disabled, vertical, discrete, tabIndex = disabled ? -1 : 0, className, onFocus = noop, onKeyDown = noop, onMouseEnter = noop, onMouseLeave = noop, tooltipProps, getTooltipProps, getTooltipChildren, disableSmoothDragging, tooltipVisibility = "auto", ...remaining } = props;
44
44
  const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy } = props;
45
+ const isFirstThumb = index === 1;
45
46
  const mode = useUserInteractionMode();
46
47
  const keyboard = mode === "keyboard";
47
48
  const touch = mode === "touch";
@@ -162,8 +163,9 @@ const noop = ()=>{
162
163
  animate: !disableSmoothDragging && !active,
163
164
  visible: tooltipVisibility === "always" || active || keyboardVisible || mouseVisible,
164
165
  ...tooltipProps,
166
+ ...getTooltipProps(value, isFirstThumb),
165
167
  index: index,
166
- children: getTooltipChildren(value, index === 1)
168
+ children: getTooltipChildren(value, isFirstThumb)
167
169
  })
168
170
  ]
169
171
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/SliderThumb.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useEffect,\n useState,\n type ChangeEventHandler,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { type TooltipProps } from \"../tooltip/Tooltip.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { SliderValueTooltip } from \"./SliderValueTooltip.js\";\nimport { type SliderValueOptions } from \"./useSlider.js\";\n\nconst styles = bem(\"rmd-slider-thumb\");\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\ninterface SliderThumbClassNameOptions {\n className?: string;\n\n mask?: boolean;\n index: 1 | 2;\n active: boolean;\n animate: boolean;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nfunction sliderThumb(options: SliderThumbClassNameOptions): string {\n const { className, mask, index, active, animate, disabled, vertical } =\n options;\n\n const isSecondThumb = index === 2;\n return cnb(\n styles({\n h: !vertical,\n h1: !vertical && !isSecondThumb,\n h2: !vertical && isSecondThumb,\n v: vertical,\n v1: vertical && !isSecondThumb,\n v2: vertical && isSecondThumb,\n mask,\n \"mask-h\": mask && !vertical,\n \"mask-v\": mask && vertical,\n active,\n animate,\n disabled,\n \"disabled-h\": disabled && !vertical && !mask,\n \"disabled-v\": disabled && vertical && !mask,\n }),\n className\n );\n}\n\n/**\n * @remarks \\@since 2.5.0\n */\nexport interface SliderThumbPresentation {\n /**\n * Boolean if the slider should act as a discrete slider which will render a\n * tooltip above the thumb while dragging to visualize the current value for\n * the slider.\n *\n * @defaultValue `false`\n */\n discrete?: boolean;\n\n /**\n * A function that is used to help with accessibility by creating a better\n * value string if just a number isn't representative enough of your range.\n *\n * Example:\n *\n * ```tsx\n * const [value, controls] = useSlider(0, {\n * // format to be `$100`, etc\n * getValueText: value => `$${value}`,\n * });\n *\n * return <Slider baseId=\"price-slider\" label=\"Price\" {...controls} />;\n * ```\n *\n * @defaultValue `() => \"\"`\n */\n getValueText?(value: number): string;\n\n /**\n * Set this to `true` if the slider's thumb position should only update when\n * the user has dragged to the next value instead of with the mouse.\n *\n * @see {@link marks}\n * @defaultValue `!!marks`\n */\n disableSmoothDragging?: boolean;\n\n /**\n * The discrete slider's value tooltip will only become visible when:\n *\n * - `\"auto\"` - the user is dragging with touch/mouse or focused with a keyboard\n * - `\"hover\"` - the behavior of `\"auto\"` plus while hovering the thumb with a mouse\n * - `\"always\"` - ... always\n *\n * This only applies when the {@link discrete} prop is `true`.\n *\n * @defaultValue `\"auto\"`\n */\n tooltipVisibility?: \"auto\" | \"hover\" | \"always\";\n}\n\n/**\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Internal only component.\n */\nexport interface SliderThumbProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, \"onChange\">,\n Required<SliderValueOptions>,\n Required<SliderThumbPresentation> {\n id: string;\n name?: string;\n value: number;\n index: 1 | 2;\n active: boolean;\n animate: boolean;\n disabled: boolean;\n vertical: boolean;\n onChange: ChangeEventHandler<HTMLInputElement>;\n tooltipProps?: Partial<TooltipProps>;\n getTooltipChildren(value: number, isMinValue: boolean): ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Internal only component.\n */\nexport const SliderThumb = forwardRef<\n HTMLSpanElement,\n LabelRequiredForA11y<SliderThumbProps>\n>(function SliderThumb(props, ref) {\n const {\n id,\n min,\n max,\n name,\n value,\n onChange,\n index,\n getValueText,\n step,\n active,\n animate,\n disabled,\n vertical,\n discrete,\n tabIndex = disabled ? -1 : 0,\n className,\n onFocus = noop,\n onKeyDown = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n tooltipProps,\n getTooltipChildren,\n disableSmoothDragging,\n tooltipVisibility = \"auto\",\n ...remaining\n } = props;\n const { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy } = props;\n\n const mode = useUserInteractionMode();\n const keyboard = mode === \"keyboard\";\n const touch = mode === \"touch\";\n const [mouseVisible, setMouseVisible] = useState(false);\n const [keyboardVisible, setKeyboardVisible] = useState(false);\n useEffect(() => {\n if (disabled || !discrete) {\n setKeyboardVisible(false);\n return;\n }\n\n // if the mode changes away from keyboard, need to disable the keyboard\n // state\n setKeyboardVisible((prevVisible) => prevVisible && mode === \"keyboard\");\n }, [disabled, discrete, mode]);\n useEffect(() => {\n if (disabled || !discrete) {\n setMouseVisible(false);\n return;\n }\n\n setMouseVisible((prevVisible) => prevVisible && mode !== \"touch\");\n }, [disabled, discrete, mode]);\n useEffect(() => {\n if (!keyboardVisible) {\n return;\n }\n\n const callback = (): void => {\n setKeyboardVisible(false);\n };\n\n window.addEventListener(\"blur\", callback, true);\n return () => {\n window.removeEventListener(\"blur\", callback);\n };\n }, [keyboardVisible]);\n\n const classNameOptions = {\n index,\n active,\n animate: !disableSmoothDragging && animate,\n disabled,\n vertical,\n className,\n } as const;\n\n return (\n <>\n {disabled && (\n <span\n className={sliderThumb({\n ...classNameOptions,\n mask: true,\n })}\n />\n )}\n <span\n {...remaining}\n id={id}\n ref={ref}\n role=\"slider\"\n aria-disabled={disabled || undefined}\n aria-orientation={vertical ? \"vertical\" : undefined}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={value}\n aria-valuetext={getValueText(value) || undefined}\n tabIndex={tabIndex}\n className={sliderThumb(classNameOptions)}\n onFocus={(event) => {\n onFocus(event);\n\n if (discrete && keyboard) {\n setKeyboardVisible(true);\n }\n }}\n onKeyDown={(event) => {\n onKeyDown(event);\n\n // this allows the tooltip to be visible when switching from mouse to\n // keyboard\n if (discrete && event.key !== \"Tab\") {\n setKeyboardVisible(true);\n }\n }}\n onMouseEnter={(event) => {\n onMouseEnter(event);\n if (discrete && tooltipVisibility === \"hover\" && !touch) {\n setMouseVisible(true);\n }\n }}\n onMouseLeave={(event) => {\n onMouseLeave(event);\n if (discrete && tooltipVisibility === \"hover\" && !touch) {\n setMouseVisible(false);\n }\n }}\n />\n <input\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-hidden\n id={`${id}-value`}\n type=\"range\"\n name={name}\n min={min}\n max={max}\n step={step}\n value={value}\n tabIndex={-1}\n onChange={onChange}\n className={styles(\"input\")}\n />\n {discrete && (\n <SliderValueTooltip\n position={vertical ? \"left\" : \"above\"}\n vertical={vertical}\n animate={!disableSmoothDragging && !active}\n visible={\n tooltipVisibility === \"always\" ||\n active ||\n keyboardVisible ||\n mouseVisible\n }\n {...tooltipProps}\n index={index}\n >\n {getTooltipChildren(value, index === 1)}\n </SliderValueTooltip>\n )}\n </>\n );\n});\n"],"names":["cnb","forwardRef","useEffect","useState","useUserInteractionMode","bem","SliderValueTooltip","styles","noop","sliderThumb","options","className","mask","index","active","animate","disabled","vertical","isSecondThumb","h","h1","h2","v","v1","v2","SliderThumb","props","ref","id","min","max","name","value","onChange","getValueText","step","discrete","tabIndex","onFocus","onKeyDown","onMouseEnter","onMouseLeave","tooltipProps","getTooltipChildren","disableSmoothDragging","tooltipVisibility","remaining","ariaLabel","ariaLabelledBy","mode","keyboard","touch","mouseVisible","setMouseVisible","keyboardVisible","setKeyboardVisible","prevVisible","callback","window","addEventListener","removeEventListener","classNameOptions","span","role","aria-disabled","undefined","aria-orientation","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","event","key","input","aria-label","aria-labelledby","aria-hidden","type","position","visible"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/form/SliderThumb.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useEffect,\n useState,\n type ChangeEventHandler,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { useUserInteractionMode } from \"../interaction/UserInteractionModeProvider.js\";\nimport { type TooltipProps } from \"../tooltip/Tooltip.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { SliderValueTooltip } from \"./SliderValueTooltip.js\";\nimport { type SliderValueOptions } from \"./useSlider.js\";\n\nconst styles = bem(\"rmd-slider-thumb\");\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\ninterface SliderThumbClassNameOptions {\n className?: string;\n\n mask?: boolean;\n index: 1 | 2;\n active: boolean;\n animate: boolean;\n vertical: boolean;\n disabled: boolean;\n}\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nfunction sliderThumb(options: SliderThumbClassNameOptions): string {\n const { className, mask, index, active, animate, disabled, vertical } =\n options;\n\n const isSecondThumb = index === 2;\n return cnb(\n styles({\n h: !vertical,\n h1: !vertical && !isSecondThumb,\n h2: !vertical && isSecondThumb,\n v: vertical,\n v1: vertical && !isSecondThumb,\n v2: vertical && isSecondThumb,\n mask,\n \"mask-h\": mask && !vertical,\n \"mask-v\": mask && vertical,\n active,\n animate,\n disabled,\n \"disabled-h\": disabled && !vertical && !mask,\n \"disabled-v\": disabled && vertical && !mask,\n }),\n className\n );\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport type SliderTooltipVisibility = \"auto\" | \"hover\" | \"always\";\n\n/**\n * @remarks \\@since 2.5.0\n */\nexport interface SliderThumbPresentation {\n /**\n * Boolean if the slider should act as a discrete slider which will render a\n * tooltip above the thumb while dragging to visualize the current value for\n * the slider.\n *\n * @defaultValue `false`\n */\n discrete?: boolean;\n\n /**\n * A function that is used to help with accessibility by creating a better\n * value string if just a number isn't representative enough of your range.\n *\n * Example:\n *\n * ```tsx\n * const [value, controls] = useSlider(0, {\n * // format to be `$100`, etc\n * getValueText: value => `$${value}`,\n * });\n *\n * return <Slider baseId=\"price-slider\" label=\"Price\" {...controls} />;\n * ```\n *\n * @defaultValue `() => \"\"`\n */\n getValueText?(value: number): string;\n\n /**\n * Set this to `true` if the slider's thumb position should only update when\n * the user has dragged to the next value instead of with the mouse.\n *\n * @see {@link marks}\n * @defaultValue `!!marks`\n */\n disableSmoothDragging?: boolean;\n\n /**\n * The discrete slider's value tooltip will only become visible when:\n *\n * - `\"auto\"` - the user is dragging with touch/mouse or focused with a keyboard\n * - `\"hover\"` - the behavior of `\"auto\"` plus while hovering the thumb with a mouse\n * - `\"always\"` - ... always\n *\n * This only applies when the {@link discrete} prop is `true`.\n *\n * @defaultValue `\"auto\"`\n */\n tooltipVisibility?: SliderTooltipVisibility;\n}\n\n/**\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Internal only component.\n */\nexport interface SliderThumbProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, \"onChange\">,\n Required<SliderValueOptions>,\n Required<SliderThumbPresentation> {\n id: string;\n name?: string;\n value: number;\n index: 1 | 2;\n active: boolean;\n animate: boolean;\n disabled: boolean;\n vertical: boolean;\n onChange: ChangeEventHandler<HTMLInputElement>;\n tooltipProps?: Partial<TooltipProps>;\n getTooltipProps(\n value: number,\n isFirstThumb: boolean\n ): Partial<TooltipProps> | void;\n getTooltipChildren(value: number, isFirstThumb: boolean): ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Internal only component.\n */\nexport const SliderThumb = forwardRef<\n HTMLSpanElement,\n LabelRequiredForA11y<SliderThumbProps>\n>(function SliderThumb(props, ref) {\n const {\n id,\n min,\n max,\n name,\n value,\n onChange,\n index,\n getValueText,\n step,\n active,\n animate,\n disabled,\n vertical,\n discrete,\n tabIndex = disabled ? -1 : 0,\n className,\n onFocus = noop,\n onKeyDown = noop,\n onMouseEnter = noop,\n onMouseLeave = noop,\n tooltipProps,\n getTooltipProps,\n getTooltipChildren,\n disableSmoothDragging,\n tooltipVisibility = \"auto\",\n ...remaining\n } = props;\n const { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy } = props;\n\n const isFirstThumb = index === 1;\n const mode = useUserInteractionMode();\n const keyboard = mode === \"keyboard\";\n const touch = mode === \"touch\";\n const [mouseVisible, setMouseVisible] = useState(false);\n const [keyboardVisible, setKeyboardVisible] = useState(false);\n useEffect(() => {\n if (disabled || !discrete) {\n setKeyboardVisible(false);\n return;\n }\n\n // if the mode changes away from keyboard, need to disable the keyboard\n // state\n setKeyboardVisible((prevVisible) => prevVisible && mode === \"keyboard\");\n }, [disabled, discrete, mode]);\n useEffect(() => {\n if (disabled || !discrete) {\n setMouseVisible(false);\n return;\n }\n\n setMouseVisible((prevVisible) => prevVisible && mode !== \"touch\");\n }, [disabled, discrete, mode]);\n useEffect(() => {\n if (!keyboardVisible) {\n return;\n }\n\n const callback = (): void => {\n setKeyboardVisible(false);\n };\n\n window.addEventListener(\"blur\", callback, true);\n return () => {\n window.removeEventListener(\"blur\", callback);\n };\n }, [keyboardVisible]);\n\n const classNameOptions = {\n index,\n active,\n animate: !disableSmoothDragging && animate,\n disabled,\n vertical,\n className,\n } as const;\n\n return (\n <>\n {disabled && (\n <span\n className={sliderThumb({\n ...classNameOptions,\n mask: true,\n })}\n />\n )}\n <span\n {...remaining}\n id={id}\n ref={ref}\n role=\"slider\"\n aria-disabled={disabled || undefined}\n aria-orientation={vertical ? \"vertical\" : undefined}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={value}\n aria-valuetext={getValueText(value) || undefined}\n tabIndex={tabIndex}\n className={sliderThumb(classNameOptions)}\n onFocus={(event) => {\n onFocus(event);\n\n if (discrete && keyboard) {\n setKeyboardVisible(true);\n }\n }}\n onKeyDown={(event) => {\n onKeyDown(event);\n\n // this allows the tooltip to be visible when switching from mouse to\n // keyboard\n if (discrete && event.key !== \"Tab\") {\n setKeyboardVisible(true);\n }\n }}\n onMouseEnter={(event) => {\n onMouseEnter(event);\n if (discrete && tooltipVisibility === \"hover\" && !touch) {\n setMouseVisible(true);\n }\n }}\n onMouseLeave={(event) => {\n onMouseLeave(event);\n if (discrete && tooltipVisibility === \"hover\" && !touch) {\n setMouseVisible(false);\n }\n }}\n />\n <input\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-hidden\n id={`${id}-value`}\n type=\"range\"\n name={name}\n min={min}\n max={max}\n step={step}\n value={value}\n tabIndex={-1}\n onChange={onChange}\n className={styles(\"input\")}\n />\n {discrete && (\n <SliderValueTooltip\n position={vertical ? \"left\" : \"above\"}\n vertical={vertical}\n animate={!disableSmoothDragging && !active}\n visible={\n tooltipVisibility === \"always\" ||\n active ||\n keyboardVisible ||\n mouseVisible\n }\n {...tooltipProps}\n {...getTooltipProps(value, isFirstThumb)}\n index={index}\n >\n {getTooltipChildren(value, isFirstThumb)}\n </SliderValueTooltip>\n )}\n </>\n );\n});\n"],"names":["cnb","forwardRef","useEffect","useState","useUserInteractionMode","bem","SliderValueTooltip","styles","noop","sliderThumb","options","className","mask","index","active","animate","disabled","vertical","isSecondThumb","h","h1","h2","v","v1","v2","SliderThumb","props","ref","id","min","max","name","value","onChange","getValueText","step","discrete","tabIndex","onFocus","onKeyDown","onMouseEnter","onMouseLeave","tooltipProps","getTooltipProps","getTooltipChildren","disableSmoothDragging","tooltipVisibility","remaining","ariaLabel","ariaLabelledBy","isFirstThumb","mode","keyboard","touch","mouseVisible","setMouseVisible","keyboardVisible","setKeyboardVisible","prevVisible","callback","window","addEventListener","removeEventListener","classNameOptions","span","role","aria-disabled","undefined","aria-orientation","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","event","key","input","aria-label","aria-labelledby","aria-hidden","type","position","visible"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAChC,SACEC,UAAU,EACVC,SAAS,EACTC,QAAQ,QAIH,QAAQ;AACf,SAASC,sBAAsB,QAAQ,gDAAgD;AAGvF,SAASC,GAAG,QAAQ,kBAAkB;AACtC,SAASC,kBAAkB,QAAQ,0BAA0B;AAG7D,MAAMC,SAASF,IAAI;AAEnB,MAAMG,OAAO;AACX,aAAa;AACf;AAiBA;;;CAGC,GACD,SAASC,YAAYC,OAAoC;IACvD,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GACnEP;IAEF,MAAMQ,gBAAgBL,UAAU;IAChC,OAAOb,IACLO,OAAO;QACLY,GAAG,CAACF;QACJG,IAAI,CAACH,YAAY,CAACC;QAClBG,IAAI,CAACJ,YAAYC;QACjBI,GAAGL;QACHM,IAAIN,YAAY,CAACC;QACjBM,IAAIP,YAAYC;QAChBN;QACA,UAAUA,QAAQ,CAACK;QACnB,UAAUL,QAAQK;QAClBH;QACAC;QACAC;QACA,cAAcA,YAAY,CAACC,YAAY,CAACL;QACxC,cAAcI,YAAYC,YAAY,CAACL;IACzC,IACAD;AAEJ;AAyFA;;;;;;;CAOC,GACD,OAAO,MAAMc,4BAAcxB,WAGzB,SAASwB,YAAYC,KAAK,EAAEC,GAAG;IAC/B,MAAM,EACJC,EAAE,EACFC,GAAG,EACHC,GAAG,EACHC,IAAI,EACJC,KAAK,EACLC,QAAQ,EACRpB,KAAK,EACLqB,YAAY,EACZC,IAAI,EACJrB,MAAM,EACNC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRmB,QAAQ,EACRC,WAAWrB,WAAW,CAAC,IAAI,CAAC,EAC5BL,SAAS,EACT2B,UAAU9B,IAAI,EACd+B,YAAY/B,IAAI,EAChBgC,eAAehC,IAAI,EACnBiC,eAAejC,IAAI,EACnBkC,YAAY,EACZC,eAAe,EACfC,kBAAkB,EAClBC,qBAAqB,EACrBC,oBAAoB,MAAM,EAC1B,GAAGC,WACJ,GAAGrB;IACJ,MAAM,EAAE,cAAcsB,SAAS,EAAE,mBAAmBC,cAAc,EAAE,GAAGvB;IAEvE,MAAMwB,eAAerC,UAAU;IAC/B,MAAMsC,OAAO/C;IACb,MAAMgD,WAAWD,SAAS;IAC1B,MAAME,QAAQF,SAAS;IACvB,MAAM,CAACG,cAAcC,gBAAgB,GAAGpD,SAAS;IACjD,MAAM,CAACqD,iBAAiBC,mBAAmB,GAAGtD,SAAS;IACvDD,UAAU;QACR,IAAIc,YAAY,CAACoB,UAAU;YACzBqB,mBAAmB;YACnB;QACF;QAEA,uEAAuE;QACvE,QAAQ;QACRA,mBAAmB,CAACC,cAAgBA,eAAeP,SAAS;IAC9D,GAAG;QAACnC;QAAUoB;QAAUe;KAAK;IAC7BjD,UAAU;QACR,IAAIc,YAAY,CAACoB,UAAU;YACzBmB,gBAAgB;YAChB;QACF;QAEAA,gBAAgB,CAACG,cAAgBA,eAAeP,SAAS;IAC3D,GAAG;QAACnC;QAAUoB;QAAUe;KAAK;IAC7BjD,UAAU;QACR,IAAI,CAACsD,iBAAiB;YACpB;QACF;QAEA,MAAMG,WAAW;YACfF,mBAAmB;QACrB;QAEAG,OAAOC,gBAAgB,CAAC,QAAQF,UAAU;QAC1C,OAAO;YACLC,OAAOE,mBAAmB,CAAC,QAAQH;QACrC;IACF,GAAG;QAACH;KAAgB;IAEpB,MAAMO,mBAAmB;QACvBlD;QACAC;QACAC,SAAS,CAAC8B,yBAAyB9B;QACnCC;QACAC;QACAN;IACF;IAEA,qBACE;;YACGK,0BACC,KAACgD;gBACCrD,WAAWF,YAAY;oBACrB,GAAGsD,gBAAgB;oBACnBnD,MAAM;gBACR;;0BAGJ,KAACoD;gBACE,GAAGjB,SAAS;gBACbnB,IAAIA;gBACJD,KAAKA;gBACLsC,MAAK;gBACLC,iBAAelD,YAAYmD;gBAC3BC,oBAAkBnD,WAAW,aAAakD;gBAC1CE,iBAAevC;gBACfwC,iBAAezC;gBACf0C,iBAAevC;gBACfwC,kBAAgBtC,aAAaF,UAAUmC;gBACvC9B,UAAUA;gBACV1B,WAAWF,YAAYsD;gBACvBzB,SAAS,CAACmC;oBACRnC,QAAQmC;oBAER,IAAIrC,YAAYgB,UAAU;wBACxBK,mBAAmB;oBACrB;gBACF;gBACAlB,WAAW,CAACkC;oBACVlC,UAAUkC;oBAEV,qEAAqE;oBACrE,WAAW;oBACX,IAAIrC,YAAYqC,MAAMC,GAAG,KAAK,OAAO;wBACnCjB,mBAAmB;oBACrB;gBACF;gBACAjB,cAAc,CAACiC;oBACbjC,aAAaiC;oBACb,IAAIrC,YAAYU,sBAAsB,WAAW,CAACO,OAAO;wBACvDE,gBAAgB;oBAClB;gBACF;gBACAd,cAAc,CAACgC;oBACbhC,aAAagC;oBACb,IAAIrC,YAAYU,sBAAsB,WAAW,CAACO,OAAO;wBACvDE,gBAAgB;oBAClB;gBACF;;0BAEF,KAACoB;gBACCC,cAAY5B;gBACZ6B,mBAAiB5B;gBACjB6B,aAAW;gBACXlD,IAAI,CAAC,EAAEA,GAAG,MAAM,CAAC;gBACjBmD,MAAK;gBACLhD,MAAMA;gBACNF,KAAKA;gBACLC,KAAKA;gBACLK,MAAMA;gBACNH,OAAOA;gBACPK,UAAU,CAAC;gBACXJ,UAAUA;gBACVtB,WAAWJ,OAAO;;YAEnB6B,0BACC,KAAC9B;gBACC0E,UAAU/D,WAAW,SAAS;gBAC9BA,UAAUA;gBACVF,SAAS,CAAC8B,yBAAyB,CAAC/B;gBACpCmE,SACEnC,sBAAsB,YACtBhC,UACA0C,mBACAF;gBAED,GAAGZ,YAAY;gBACf,GAAGC,gBAAgBX,OAAOkB,aAAa;gBACxCrC,OAAOA;0BAEN+B,mBAAmBZ,OAAOkB;;;;AAKrC,GAAG"}
@@ -21,7 +21,7 @@ import { SliderMarkLabel } from "./SliderMarkLabel.js";
21
21
  marks = Array.from({
22
22
  length: steps
23
23
  }, (_, i)=>({
24
- value: i * step
24
+ value: min + i * step
25
25
  }));
26
26
  } else {
27
27
  marks = propMarks;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/SliderValueMarks.tsx"],"sourcesContent":["import {\n Fragment,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { getPercentage } from \"../utils/getPercentage.js\";\nimport {\n getRangeSteps,\n type RangeStepsOptions,\n} from \"../utils/getRangeSteps.js\";\nimport { SliderMark } from \"./SliderMark.js\";\nimport {\n SliderMarkLabel,\n type CustomizableSliderMarkLabelProps,\n} from \"./SliderMarkLabel.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SliderValueMark {\n /**\n * An optional label to display alongside the current mark. This will be\n * positioned below the mark for horizontal sliders and to the right for\n * vertical sliders.\n */\n label?: ReactNode;\n\n /**\n * The value of the mark that should be a valid step within the slider.\n */\n value: number;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SliderValueMarkState {\n /** The {@link SliderValueMark.value} */\n value: number;\n\n /**\n * No idea if this is actually useful (maybe custom styles?), but it is the\n * current percentage the mark is offset and is what is set as the\n * `left`/`top` values for the mark.\n */\n offset: string;\n\n /**\n * This will be `true` when the mark is being covered by the slider track's\n * active state.\n */\n active: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SliderMarksOptions {\n /**\n * Set this to `true` to display a mark for each step within the slider. This\n * can be used alongside the {@link getMarkProps} and\n * {@link getMarkLabelProps} to customize the styles or display a label for\n * the mark.\n *\n * @example\n * Custom Marks\n * ```tsx\n * const slider = useSlider({ step: 10 });\n *\n * <Slider\n * {...slider}\n * marks={[\n * { value: 0, label: \"Minimum\" },\n * { value: 10 },\n * { value: 20 },\n * { value: 30 },\n * { value: 40 },\n * { value: 50, label: \"Medium\" },\n * { value: 60 },\n * { value: 70 },\n * { value: 80 },\n * { value: 90 },\n * { value: 100, label: \"Maximum\" },\n * ]}\n * />\n * ```\n */\n marks?: boolean | readonly SliderValueMark[];\n\n /**\n * This can be used to override any styles for the specific mark.\n */\n getMarkProps?(\n options: SliderValueMarkState\n ): HTMLAttributes<HTMLSpanElement> | void;\n\n /**\n * This can be used to override any styles for a specific mark's label or\n * display a label dynamically.\n *\n * @example\n * Dynamic Labels\n * ```tsx\n * <Slider\n * {...slider}\n * marks\n * getMarkLabelProps={({ active, value }) => {\n * if (value % 10 !== 0) {\n * return;\n * }\n *\n * return {\n * children: `${value} degrees`,\n * className: cnb(active && styles.somethingCustom),\n * };\n * }}\n * />\n * ```\n */\n getMarkLabelProps?(\n options: SliderValueMarkState\n ): Partial<CustomizableSliderMarkLabelProps> | void;\n}\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport interface SliderValueMarksProps\n extends RangeStepsOptions,\n Required<SliderMarksOptions> {\n vertical: boolean;\n thumb1Value: number;\n thumb2Value: number;\n isRangeSlider: boolean;\n}\n\n/**\n * **Server Component**\n *\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function SliderValueMarks(props: SliderValueMarksProps): ReactElement {\n const {\n min,\n max,\n step,\n marks: propMarks,\n vertical,\n thumb1Value,\n thumb2Value,\n isRangeSlider,\n getMarkProps,\n getMarkLabelProps,\n } = props;\n\n let marks: readonly SliderValueMark[];\n if (typeof propMarks === \"boolean\") {\n const steps = getRangeSteps({ min, max, step }) + 1;\n marks = Array.from({ length: steps }, (_, i) => ({ value: i * step }));\n } else {\n marks = propMarks;\n }\n\n return (\n <>\n {marks.map(({ value, label: markLabel }) => {\n // I can't think of a good name, but this is when the slider's track's\n // active color is covering the mark which requires different styles\n let active: boolean;\n let percentage = getPercentage({ min, max, value }) * 100;\n let markValue = value;\n if (vertical) {\n // need to reverse the percentage since it uses `top` for positioning\n // where the max value is at the top instead of bottom\n percentage = 100 - percentage;\n\n // need to reverse the mark's value as well for the same reason as\n // above\n markValue = max - value;\n }\n\n if (isRangeSlider) {\n active = markValue > thumb1Value && markValue < thumb2Value;\n } else {\n active = markValue < thumb1Value;\n }\n\n const offset = `${percentage}%`;\n const markProps = getMarkProps({ value, active, offset });\n const labelProps = getMarkLabelProps({ value, active, offset });\n const label = markLabel ?? labelProps?.children ?? null;\n\n return (\n <Fragment key={value}>\n <SliderMark\n {...markProps}\n offset={offset}\n active={active}\n vertical={vertical}\n />\n {label !== null && (\n <SliderMarkLabel\n {...labelProps}\n offset={offset}\n vertical={vertical}\n >\n {label}\n </SliderMarkLabel>\n )}\n </Fragment>\n );\n })}\n </>\n );\n}\n"],"names":["Fragment","getPercentage","getRangeSteps","SliderMark","SliderMarkLabel","SliderValueMarks","props","min","max","step","marks","propMarks","vertical","thumb1Value","thumb2Value","isRangeSlider","getMarkProps","getMarkLabelProps","steps","Array","from","length","_","i","value","map","label","markLabel","active","percentage","markValue","offset","markProps","labelProps","children"],"mappings":";AAAA,SACEA,QAAQ,QAIH,QAAQ;AACf,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SACEC,aAAa,QAER,4BAA4B;AACnC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,eAAe,QAEV,uBAAuB;AA2H9B;;;;;CAKC,GACD,OAAO,SAASC,iBAAiBC,KAA4B;IAC3D,MAAM,EACJC,GAAG,EACHC,GAAG,EACHC,IAAI,EACJC,OAAOC,SAAS,EAChBC,QAAQ,EACRC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EAClB,GAAGX;IAEJ,IAAII;IACJ,IAAI,OAAOC,cAAc,WAAW;QAClC,MAAMO,QAAQhB,cAAc;YAAEK;YAAKC;YAAKC;QAAK,KAAK;QAClDC,QAAQS,MAAMC,IAAI,CAAC;YAAEC,QAAQH;QAAM,GAAG,CAACI,GAAGC,IAAO,CAAA;gBAAEC,OAAOD,IAAId;YAAK,CAAA;IACrE,OAAO;QACLC,QAAQC;IACV;IAEA,qBACE;kBACGD,MAAMe,GAAG,CAAC,CAAC,EAAED,KAAK,EAAEE,OAAOC,SAAS,EAAE;YACrC,sEAAsE;YACtE,oEAAoE;YACpE,IAAIC;YACJ,IAAIC,aAAa5B,cAAc;gBAAEM;gBAAKC;gBAAKgB;YAAM,KAAK;YACtD,IAAIM,YAAYN;YAChB,IAAIZ,UAAU;gBACZ,qEAAqE;gBACrE,sDAAsD;gBACtDiB,aAAa,MAAMA;gBAEnB,kEAAkE;gBAClE,QAAQ;gBACRC,YAAYtB,MAAMgB;YACpB;YAEA,IAAIT,eAAe;gBACjBa,SAASE,YAAYjB,eAAeiB,YAAYhB;YAClD,OAAO;gBACLc,SAASE,YAAYjB;YACvB;YAEA,MAAMkB,SAAS,CAAC,EAAEF,WAAW,CAAC,CAAC;YAC/B,MAAMG,YAAYhB,aAAa;gBAAEQ;gBAAOI;gBAAQG;YAAO;YACvD,MAAME,aAAahB,kBAAkB;gBAAEO;gBAAOI;gBAAQG;YAAO;YAC7D,MAAML,QAAQC,aAAaM,YAAYC,YAAY;YAEnD,qBACE,MAAClC;;kCACC,KAACG;wBACE,GAAG6B,SAAS;wBACbD,QAAQA;wBACRH,QAAQA;wBACRhB,UAAUA;;oBAEXc,UAAU,sBACT,KAACtB;wBACE,GAAG6B,UAAU;wBACdF,QAAQA;wBACRnB,UAAUA;kCAETc;;;eAbQF;QAkBnB;;AAGN"}
1
+ {"version":3,"sources":["../../src/form/SliderValueMarks.tsx"],"sourcesContent":["import {\n Fragment,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { getPercentage } from \"../utils/getPercentage.js\";\nimport {\n getRangeSteps,\n type RangeStepsOptions,\n} from \"../utils/getRangeSteps.js\";\nimport { SliderMark } from \"./SliderMark.js\";\nimport {\n SliderMarkLabel,\n type CustomizableSliderMarkLabelProps,\n} from \"./SliderMarkLabel.js\";\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SliderValueMark {\n /**\n * An optional label to display alongside the current mark. This will be\n * positioned below the mark for horizontal sliders and to the right for\n * vertical sliders.\n */\n label?: ReactNode;\n\n /**\n * The value of the mark that should be a valid step within the slider.\n */\n value: number;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SliderValueMarkState {\n /** The {@link SliderValueMark.value} */\n value: number;\n\n /**\n * No idea if this is actually useful (maybe custom styles?), but it is the\n * current percentage the mark is offset and is what is set as the\n * `left`/`top` values for the mark.\n */\n offset: string;\n\n /**\n * This will be `true` when the mark is being covered by the slider track's\n * active state.\n */\n active: boolean;\n}\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport interface SliderMarksOptions {\n /**\n * Set this to `true` to display a mark for each step within the slider. This\n * can be used alongside the {@link getMarkProps} and\n * {@link getMarkLabelProps} to customize the styles or display a label for\n * the mark.\n *\n * @example\n * Custom Marks\n * ```tsx\n * const slider = useSlider({ step: 10 });\n *\n * <Slider\n * {...slider}\n * marks={[\n * { value: 0, label: \"Minimum\" },\n * { value: 10 },\n * { value: 20 },\n * { value: 30 },\n * { value: 40 },\n * { value: 50, label: \"Medium\" },\n * { value: 60 },\n * { value: 70 },\n * { value: 80 },\n * { value: 90 },\n * { value: 100, label: \"Maximum\" },\n * ]}\n * />\n * ```\n */\n marks?: boolean | readonly SliderValueMark[];\n\n /**\n * This can be used to override any styles for the specific mark.\n */\n getMarkProps?(\n options: SliderValueMarkState\n ): HTMLAttributes<HTMLSpanElement> | void;\n\n /**\n * This can be used to override any styles for a specific mark's label or\n * display a label dynamically.\n *\n * @example\n * Dynamic Labels\n * ```tsx\n * <Slider\n * {...slider}\n * marks\n * getMarkLabelProps={({ active, value }) => {\n * if (value % 10 !== 0) {\n * return;\n * }\n *\n * return {\n * children: `${value} degrees`,\n * className: cnb(active && styles.somethingCustom),\n * };\n * }}\n * />\n * ```\n */\n getMarkLabelProps?(\n options: SliderValueMarkState\n ): Partial<CustomizableSliderMarkLabelProps> | void;\n}\n\n/**\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport interface SliderValueMarksProps\n extends RangeStepsOptions,\n Required<SliderMarksOptions> {\n vertical: boolean;\n thumb1Value: number;\n thumb2Value: number;\n isRangeSlider: boolean;\n}\n\n/**\n * **Server Component**\n *\n * @internal\n * @remarks \\@since 6.0.0\n */\nexport function SliderValueMarks(props: SliderValueMarksProps): ReactElement {\n const {\n min,\n max,\n step,\n marks: propMarks,\n vertical,\n thumb1Value,\n thumb2Value,\n isRangeSlider,\n getMarkProps,\n getMarkLabelProps,\n } = props;\n\n let marks: readonly SliderValueMark[];\n if (typeof propMarks === \"boolean\") {\n const steps = getRangeSteps({ min, max, step }) + 1;\n marks = Array.from({ length: steps }, (_, i) => ({\n value: min + i * step,\n }));\n } else {\n marks = propMarks;\n }\n\n return (\n <>\n {marks.map(({ value, label: markLabel }) => {\n // I can't think of a good name, but this is when the slider's track's\n // active color is covering the mark which requires different styles\n let active: boolean;\n let percentage = getPercentage({ min, max, value }) * 100;\n let markValue = value;\n if (vertical) {\n // need to reverse the percentage since it uses `top` for positioning\n // where the max value is at the top instead of bottom\n percentage = 100 - percentage;\n\n // need to reverse the mark's value as well for the same reason as\n // above\n markValue = max - value;\n }\n\n if (isRangeSlider) {\n active = markValue > thumb1Value && markValue < thumb2Value;\n } else {\n active = markValue < thumb1Value;\n }\n\n const offset = `${percentage}%`;\n const markProps = getMarkProps({ value, active, offset });\n const labelProps = getMarkLabelProps({ value, active, offset });\n const label = markLabel ?? labelProps?.children ?? null;\n\n return (\n <Fragment key={value}>\n <SliderMark\n {...markProps}\n offset={offset}\n active={active}\n vertical={vertical}\n />\n {label !== null && (\n <SliderMarkLabel\n {...labelProps}\n offset={offset}\n vertical={vertical}\n >\n {label}\n </SliderMarkLabel>\n )}\n </Fragment>\n );\n })}\n </>\n );\n}\n"],"names":["Fragment","getPercentage","getRangeSteps","SliderMark","SliderMarkLabel","SliderValueMarks","props","min","max","step","marks","propMarks","vertical","thumb1Value","thumb2Value","isRangeSlider","getMarkProps","getMarkLabelProps","steps","Array","from","length","_","i","value","map","label","markLabel","active","percentage","markValue","offset","markProps","labelProps","children"],"mappings":";AAAA,SACEA,QAAQ,QAIH,QAAQ;AACf,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SACEC,aAAa,QAER,4BAA4B;AACnC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,eAAe,QAEV,uBAAuB;AA2H9B;;;;;CAKC,GACD,OAAO,SAASC,iBAAiBC,KAA4B;IAC3D,MAAM,EACJC,GAAG,EACHC,GAAG,EACHC,IAAI,EACJC,OAAOC,SAAS,EAChBC,QAAQ,EACRC,WAAW,EACXC,WAAW,EACXC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EAClB,GAAGX;IAEJ,IAAII;IACJ,IAAI,OAAOC,cAAc,WAAW;QAClC,MAAMO,QAAQhB,cAAc;YAAEK;YAAKC;YAAKC;QAAK,KAAK;QAClDC,QAAQS,MAAMC,IAAI,CAAC;YAAEC,QAAQH;QAAM,GAAG,CAACI,GAAGC,IAAO,CAAA;gBAC/CC,OAAOjB,MAAMgB,IAAId;YACnB,CAAA;IACF,OAAO;QACLC,QAAQC;IACV;IAEA,qBACE;kBACGD,MAAMe,GAAG,CAAC,CAAC,EAAED,KAAK,EAAEE,OAAOC,SAAS,EAAE;YACrC,sEAAsE;YACtE,oEAAoE;YACpE,IAAIC;YACJ,IAAIC,aAAa5B,cAAc;gBAAEM;gBAAKC;gBAAKgB;YAAM,KAAK;YACtD,IAAIM,YAAYN;YAChB,IAAIZ,UAAU;gBACZ,qEAAqE;gBACrE,sDAAsD;gBACtDiB,aAAa,MAAMA;gBAEnB,kEAAkE;gBAClE,QAAQ;gBACRC,YAAYtB,MAAMgB;YACpB;YAEA,IAAIT,eAAe;gBACjBa,SAASE,YAAYjB,eAAeiB,YAAYhB;YAClD,OAAO;gBACLc,SAASE,YAAYjB;YACvB;YAEA,MAAMkB,SAAS,CAAC,EAAEF,WAAW,CAAC,CAAC;YAC/B,MAAMG,YAAYhB,aAAa;gBAAEQ;gBAAOI;gBAAQG;YAAO;YACvD,MAAME,aAAahB,kBAAkB;gBAAEO;gBAAOI;gBAAQG;YAAO;YAC7D,MAAML,QAAQC,aAAaM,YAAYC,YAAY;YAEnD,qBACE,MAAClC;;kCACC,KAACG;wBACE,GAAG6B,SAAS;wBACbD,QAAQA;wBACRH,QAAQA;wBACRhB,UAAUA;;oBAEXc,UAAU,sBACT,KAACtB;wBACE,GAAG6B,UAAU;wBACdF,QAAQA;wBACRnB,UAAUA;kCAETc;;;eAbQF;QAkBnB;;AAGN"}
@@ -31,7 +31,7 @@ const VERTICAL_CLASS_NAMES = {
31
31
  return /*#__PURE__*/ _jsx(Tooltip, {
32
32
  dense: true,
33
33
  disablePortal: true,
34
- disableLineWrap: true,
34
+ textOverflow: "nowrap",
35
35
  className: cnb(styles({
36
36
  h: !vertical,
37
37
  v: vertical
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/SliderValueTooltip.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { type ReactElement, type ReactNode } from \"react\";\nimport { Tooltip, type TooltipProps } from \"../tooltip/Tooltip.js\";\nimport { type CSSTransitionClassNames } from \"../transition/types.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-slider-tooltip\");\n\nconst HORIZONTAL_CLASS_NAMES: CSSTransitionClassNames = {\n enter: \"rmd-slider-tooltip--h-off\",\n enterActive: \"rmd-slider-tooltip--h-on rmd-slider-tooltip--animate\",\n exit: \"rmd-slider-tooltip--animate\",\n exitActive: \"rmd-slider-tooltip--h-off\",\n};\n\nconst VERTICAL_CLASS_NAMES: CSSTransitionClassNames = {\n enter: \"rmd-slider-tooltip--v-off\",\n enterActive: \"rmd-slider-tooltip--v-on rmd-slider-tooltip--animate\",\n exit: \"rmd-slider-tooltip--animate\",\n exitActive: \"rmd-slider-tooltip--v-off\",\n};\n\n/**\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Renamed from `SliderValueProps` to `SliderValueTooltipProps`.\n */\nexport interface SliderValueTooltipProps extends TooltipProps {\n index: 1 | 2;\n animate: boolean;\n vertical: boolean;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component creates the \"discrete\" slider thumb value by rendering a\n * tooltip when needed.\n *\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Renamed from `SliderValue` to `SliderValueTooltip`.\n */\nexport function SliderValueTooltip(\n props: SliderValueTooltipProps\n): ReactElement {\n const {\n index,\n animate,\n vertical,\n className,\n children,\n classNames = vertical ? VERTICAL_CLASS_NAMES : HORIZONTAL_CLASS_NAMES,\n ...remaining\n } = props;\n\n return (\n <Tooltip\n dense\n disablePortal\n disableLineWrap\n className={cnb(\n styles({ h: !vertical, v: vertical }),\n animate && \"rmd-slider-thumb--animate\",\n `rmd-slider-thumb--${vertical ? \"v\" : \"h\"}${index}`,\n className\n )}\n classNames={classNames}\n {...remaining}\n >\n {children}\n </Tooltip>\n );\n}\n"],"names":["cnb","Tooltip","bem","styles","HORIZONTAL_CLASS_NAMES","enter","enterActive","exit","exitActive","VERTICAL_CLASS_NAMES","SliderValueTooltip","props","index","animate","vertical","className","children","classNames","remaining","dense","disablePortal","disableLineWrap","h","v"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,OAAO,QAA2B,wBAAwB;AAEnE,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAEnB,MAAME,yBAAkD;IACtDC,OAAO;IACPC,aAAa;IACbC,MAAM;IACNC,YAAY;AACd;AAEA,MAAMC,uBAAgD;IACpDJ,OAAO;IACPC,aAAa;IACbC,MAAM;IACNC,YAAY;AACd;AAeA;;;;;;;;;;CAUC,GACD,OAAO,SAASE,mBACdC,KAA8B;IAE9B,MAAM,EACJC,KAAK,EACLC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,aAAaH,WAAWL,uBAAuBL,sBAAsB,EACrE,GAAGc,WACJ,GAAGP;IAEJ,qBACE,KAACV;QACCkB,KAAK;QACLC,aAAa;QACbC,eAAe;QACfN,WAAWf,IACTG,OAAO;YAAEmB,GAAG,CAACR;YAAUS,GAAGT;QAAS,IACnCD,WAAW,6BACX,CAAC,kBAAkB,EAAEC,WAAW,MAAM,IAAI,EAAEF,MAAM,CAAC,EACnDG;QAEFE,YAAYA;QACX,GAAGC,SAAS;kBAEZF;;AAGP"}
1
+ {"version":3,"sources":["../../src/form/SliderValueTooltip.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport { type ReactElement, type ReactNode } from \"react\";\nimport { Tooltip, type TooltipProps } from \"../tooltip/Tooltip.js\";\nimport { type CSSTransitionClassNames } from \"../transition/types.js\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-slider-tooltip\");\n\nconst HORIZONTAL_CLASS_NAMES: CSSTransitionClassNames = {\n enter: \"rmd-slider-tooltip--h-off\",\n enterActive: \"rmd-slider-tooltip--h-on rmd-slider-tooltip--animate\",\n exit: \"rmd-slider-tooltip--animate\",\n exitActive: \"rmd-slider-tooltip--h-off\",\n};\n\nconst VERTICAL_CLASS_NAMES: CSSTransitionClassNames = {\n enter: \"rmd-slider-tooltip--v-off\",\n enterActive: \"rmd-slider-tooltip--v-on rmd-slider-tooltip--animate\",\n exit: \"rmd-slider-tooltip--animate\",\n exitActive: \"rmd-slider-tooltip--v-off\",\n};\n\n/**\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Renamed from `SliderValueProps` to `SliderValueTooltipProps`.\n */\nexport interface SliderValueTooltipProps extends TooltipProps {\n index: 1 | 2;\n animate: boolean;\n vertical: boolean;\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component creates the \"discrete\" slider thumb value by rendering a\n * tooltip when needed.\n *\n * @internal\n * @remarks\n * \\@since 2.5.0\n * \\@since 6.0.0 Renamed from `SliderValue` to `SliderValueTooltip`.\n */\nexport function SliderValueTooltip(\n props: SliderValueTooltipProps\n): ReactElement {\n const {\n index,\n animate,\n vertical,\n className,\n children,\n classNames = vertical ? VERTICAL_CLASS_NAMES : HORIZONTAL_CLASS_NAMES,\n ...remaining\n } = props;\n\n return (\n <Tooltip\n dense\n disablePortal\n textOverflow=\"nowrap\"\n className={cnb(\n styles({ h: !vertical, v: vertical }),\n animate && \"rmd-slider-thumb--animate\",\n `rmd-slider-thumb--${vertical ? \"v\" : \"h\"}${index}`,\n className\n )}\n classNames={classNames}\n {...remaining}\n >\n {children}\n </Tooltip>\n );\n}\n"],"names":["cnb","Tooltip","bem","styles","HORIZONTAL_CLASS_NAMES","enter","enterActive","exit","exitActive","VERTICAL_CLASS_NAMES","SliderValueTooltip","props","index","animate","vertical","className","children","classNames","remaining","dense","disablePortal","textOverflow","h","v"],"mappings":"AAAA;;AACA,SAASA,GAAG,QAAQ,YAAY;AAEhC,SAASC,OAAO,QAA2B,wBAAwB;AAEnE,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAEnB,MAAME,yBAAkD;IACtDC,OAAO;IACPC,aAAa;IACbC,MAAM;IACNC,YAAY;AACd;AAEA,MAAMC,uBAAgD;IACpDJ,OAAO;IACPC,aAAa;IACbC,MAAM;IACNC,YAAY;AACd;AAeA;;;;;;;;;;CAUC,GACD,OAAO,SAASE,mBACdC,KAA8B;IAE9B,MAAM,EACJC,KAAK,EACLC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,aAAaH,WAAWL,uBAAuBL,sBAAsB,EACrE,GAAGc,WACJ,GAAGP;IAEJ,qBACE,KAACV;QACCkB,KAAK;QACLC,aAAa;QACbC,cAAa;QACbN,WAAWf,IACTG,OAAO;YAAEmB,GAAG,CAACR;YAAUS,GAAGT;QAAS,IACnCD,WAAW,6BACX,CAAC,kBAAkB,EAAEC,WAAW,MAAM,IAAI,EAAEF,MAAM,CAAC,EACnDG;QAEFE,YAAYA;QACX,GAAGC,SAAS;kBAEZF;;AAGP"}
@@ -1,4 +1,4 @@
1
- import { type CSSProperties, type HTMLAttributes, type InputHTMLAttributes } from "react";
1
+ import { type CSSProperties, type HTMLAttributes, type InputHTMLAttributes, type ReactNode } from "react";
2
2
  import { type PropsWithRef } from "../types.js";
3
3
  import { type InputToggleLabelProps } from "./InputToggle.js";
4
4
  import { type FormComponentStates, type FormMessageContainerExtension } from "./types.js";
@@ -11,12 +11,13 @@ export interface SwitchProps extends InputHTMLAttributes<HTMLInputElement>, Inpu
11
11
  trackProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
12
12
  trackStyle?: CSSProperties;
13
13
  trackClassName?: string;
14
+ ballAddon?: ReactNode;
14
15
  ballProps?: PropsWithRef<HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;
15
16
  ballStyle?: CSSProperties;
16
17
  ballClassName?: string;
17
18
  }
18
19
  /**
19
- * **Client Component**
20
+ * **Server Component**
20
21
  *
21
22
  * @example
22
23
  * Simple Example