@react-md/core 6.5.1 → 7.0.0

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 (648) hide show
  1. package/dist/_utils.scss +3 -0
  2. package/dist/app-bar/AppBar.d.ts +3 -2
  3. package/dist/app-bar/AppBar.js +3 -4
  4. package/dist/app-bar/AppBar.js.map +1 -1
  5. package/dist/app-bar/AppBarTitle.d.ts +3 -1
  6. package/dist/app-bar/AppBarTitle.js +3 -4
  7. package/dist/app-bar/AppBarTitle.js.map +1 -1
  8. package/dist/autocomplete/AutocompleteChip.d.ts +2 -1
  9. package/dist/autocomplete/AutocompleteChip.js +3 -4
  10. package/dist/autocomplete/AutocompleteChip.js.map +1 -1
  11. package/dist/autocomplete/types.d.ts +1 -0
  12. package/dist/autocomplete/types.js.map +1 -1
  13. package/dist/autocomplete/utils.d.ts +4 -4
  14. package/dist/autocomplete/utils.js.map +1 -1
  15. package/dist/avatar/Avatar.d.ts +3 -2
  16. package/dist/avatar/Avatar.js +3 -4
  17. package/dist/avatar/Avatar.js.map +1 -1
  18. package/dist/badge/Badge.d.ts +3 -2
  19. package/dist/badge/Badge.js +3 -4
  20. package/dist/badge/Badge.js.map +1 -1
  21. package/dist/box/Box.d.ts +3 -2
  22. package/dist/box/Box.js +3 -4
  23. package/dist/box/Box.js.map +1 -1
  24. package/dist/button/AsyncButton.d.ts +3 -2
  25. package/dist/button/AsyncButton.js +3 -4
  26. package/dist/button/AsyncButton.js.map +1 -1
  27. package/dist/button/Button.d.ts +3 -2
  28. package/dist/button/Button.js +3 -4
  29. package/dist/button/Button.js.map +1 -1
  30. package/dist/button/ButtonUnstyled.d.ts +5 -3
  31. package/dist/button/ButtonUnstyled.js +3 -4
  32. package/dist/button/ButtonUnstyled.js.map +1 -1
  33. package/dist/button/FloatingActionButton.d.ts +3 -2
  34. package/dist/button/FloatingActionButton.js +3 -4
  35. package/dist/button/FloatingActionButton.js.map +1 -1
  36. package/dist/button/TooltippedButton.d.ts +3 -2
  37. package/dist/button/TooltippedButton.js +3 -4
  38. package/dist/button/TooltippedButton.js.map +1 -1
  39. package/dist/card/Card.d.ts +3 -2
  40. package/dist/card/Card.js +3 -4
  41. package/dist/card/Card.js.map +1 -1
  42. package/dist/card/CardContent.d.ts +3 -2
  43. package/dist/card/CardContent.js +3 -4
  44. package/dist/card/CardContent.js.map +1 -1
  45. package/dist/card/CardFooter.d.ts +3 -1
  46. package/dist/card/CardFooter.js +3 -4
  47. package/dist/card/CardFooter.js.map +1 -1
  48. package/dist/card/CardHeader.d.ts +3 -2
  49. package/dist/card/CardHeader.js +3 -4
  50. package/dist/card/CardHeader.js.map +1 -1
  51. package/dist/card/CardSubtitle.d.ts +3 -1
  52. package/dist/card/CardSubtitle.js +3 -4
  53. package/dist/card/CardSubtitle.js.map +1 -1
  54. package/dist/card/CardTitle.d.ts +3 -1
  55. package/dist/card/CardTitle.js +3 -4
  56. package/dist/card/CardTitle.js.map +1 -1
  57. package/dist/card/ClickableCard.d.ts +3 -2
  58. package/dist/card/ClickableCard.js +3 -4
  59. package/dist/card/ClickableCard.js.map +1 -1
  60. package/dist/chip/Chip.d.ts +4 -2
  61. package/dist/chip/Chip.js +4 -4
  62. package/dist/chip/Chip.js.map +1 -1
  63. package/dist/datetime/NativeDateField.d.ts +3 -1
  64. package/dist/datetime/NativeDateField.js +3 -4
  65. package/dist/datetime/NativeDateField.js.map +1 -1
  66. package/dist/datetime/NativeTimeField.d.ts +3 -1
  67. package/dist/datetime/NativeTimeField.js +3 -4
  68. package/dist/datetime/NativeTimeField.js.map +1 -1
  69. package/dist/dialog/Dialog.d.ts +3 -2
  70. package/dist/dialog/Dialog.js +4 -4
  71. package/dist/dialog/Dialog.js.map +1 -1
  72. package/dist/dialog/DialogContainer.d.ts +3 -2
  73. package/dist/dialog/DialogContainer.js +3 -4
  74. package/dist/dialog/DialogContainer.js.map +1 -1
  75. package/dist/dialog/DialogContent.d.ts +3 -2
  76. package/dist/dialog/DialogContent.js +3 -4
  77. package/dist/dialog/DialogContent.js.map +1 -1
  78. package/dist/dialog/DialogFooter.d.ts +3 -2
  79. package/dist/dialog/DialogFooter.js +3 -4
  80. package/dist/dialog/DialogFooter.js.map +1 -1
  81. package/dist/dialog/DialogHeader.d.ts +3 -1
  82. package/dist/dialog/DialogHeader.js +3 -4
  83. package/dist/dialog/DialogHeader.js.map +1 -1
  84. package/dist/dialog/DialogTitle.d.ts +3 -1
  85. package/dist/dialog/DialogTitle.js +3 -4
  86. package/dist/dialog/DialogTitle.js.map +1 -1
  87. package/dist/dialog/FixedDialog.d.ts +4 -3
  88. package/dist/dialog/FixedDialog.js +4 -4
  89. package/dist/dialog/FixedDialog.js.map +1 -1
  90. package/dist/divider/Divider.d.ts +3 -2
  91. package/dist/divider/Divider.js +3 -4
  92. package/dist/divider/Divider.js.map +1 -1
  93. package/dist/draggable/useDraggable.d.ts +3 -3
  94. package/dist/draggable/useDraggable.js.map +1 -1
  95. package/dist/draggable/utils.d.ts +1 -1
  96. package/dist/draggable/utils.js.map +1 -1
  97. package/dist/expansion-panel/ExpansionList.d.ts +3 -2
  98. package/dist/expansion-panel/ExpansionList.js +3 -4
  99. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  100. package/dist/expansion-panel/ExpansionPanel.d.ts +3 -2
  101. package/dist/expansion-panel/ExpansionPanel.js +3 -4
  102. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  103. package/dist/expansion-panel/ExpansionPanelHeader.d.ts +3 -2
  104. package/dist/expansion-panel/ExpansionPanelHeader.js +3 -4
  105. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  106. package/dist/files/FileInput.d.ts +3 -2
  107. package/dist/files/FileInput.js +3 -4
  108. package/dist/files/FileInput.js.map +1 -1
  109. package/dist/focus/useFocusContainer.d.ts +1 -1
  110. package/dist/focus/useFocusContainer.js.map +1 -1
  111. package/dist/form/Checkbox.d.ts +2 -1
  112. package/dist/form/Checkbox.js +4 -4
  113. package/dist/form/Checkbox.js.map +1 -1
  114. package/dist/form/Fieldset.d.ts +3 -2
  115. package/dist/form/Fieldset.js +3 -4
  116. package/dist/form/Fieldset.js.map +1 -1
  117. package/dist/form/Form.d.ts +3 -2
  118. package/dist/form/Form.js +3 -4
  119. package/dist/form/Form.js.map +1 -1
  120. package/dist/form/FormMessage.d.ts +8 -2
  121. package/dist/form/FormMessage.js +3 -4
  122. package/dist/form/FormMessage.js.map +1 -1
  123. package/dist/form/FormMessageContainer.d.ts +5 -4
  124. package/dist/form/FormMessageContainer.js +3 -4
  125. package/dist/form/FormMessageContainer.js.map +1 -1
  126. package/dist/form/FormMessageCounter.d.ts +3 -2
  127. package/dist/form/FormMessageCounter.js +3 -4
  128. package/dist/form/FormMessageCounter.js.map +1 -1
  129. package/dist/form/InputToggle.d.ts +3 -2
  130. package/dist/form/InputToggle.js +3 -4
  131. package/dist/form/InputToggle.js.map +1 -1
  132. package/dist/form/InputToggleIcon.d.ts +3 -2
  133. package/dist/form/InputToggleIcon.js +3 -4
  134. package/dist/form/InputToggleIcon.js.map +1 -1
  135. package/dist/form/Label.d.ts +2 -1
  136. package/dist/form/Label.js +3 -4
  137. package/dist/form/Label.js.map +1 -1
  138. package/dist/form/Legend.d.ts +3 -1
  139. package/dist/form/Legend.js +3 -4
  140. package/dist/form/Legend.js.map +1 -1
  141. package/dist/form/NativeSelect.d.ts +3 -2
  142. package/dist/form/NativeSelect.js +3 -4
  143. package/dist/form/NativeSelect.js.map +1 -1
  144. package/dist/form/OptGroup.d.ts +3 -2
  145. package/dist/form/OptGroup.js +3 -4
  146. package/dist/form/OptGroup.js.map +1 -1
  147. package/dist/form/Option.d.ts +3 -2
  148. package/dist/form/Option.js +4 -4
  149. package/dist/form/Option.js.map +1 -1
  150. package/dist/form/Password.d.ts +2 -2
  151. package/dist/form/Password.js +3 -4
  152. package/dist/form/Password.js.map +1 -1
  153. package/dist/form/Radio.d.ts +2 -1
  154. package/dist/form/Radio.js +4 -4
  155. package/dist/form/Radio.js.map +1 -1
  156. package/dist/form/ResizingTextAreaWrapper.d.ts +3 -2
  157. package/dist/form/ResizingTextAreaWrapper.js +3 -4
  158. package/dist/form/ResizingTextAreaWrapper.js.map +1 -1
  159. package/dist/form/SliderContainer.d.ts +3 -2
  160. package/dist/form/SliderContainer.js +3 -4
  161. package/dist/form/SliderContainer.js.map +1 -1
  162. package/dist/form/SliderThumb.d.ts +3 -2
  163. package/dist/form/SliderThumb.js +4 -4
  164. package/dist/form/SliderThumb.js.map +1 -1
  165. package/dist/form/SliderTrack.d.ts +3 -2
  166. package/dist/form/SliderTrack.js +3 -4
  167. package/dist/form/SliderTrack.js.map +1 -1
  168. package/dist/form/Switch.d.ts +3 -2
  169. package/dist/form/Switch.js +3 -4
  170. package/dist/form/Switch.js.map +1 -1
  171. package/dist/form/SwitchTrack.d.ts +3 -2
  172. package/dist/form/SwitchTrack.js +3 -4
  173. package/dist/form/SwitchTrack.js.map +1 -1
  174. package/dist/form/TextArea.d.ts +3 -2
  175. package/dist/form/TextArea.js +3 -4
  176. package/dist/form/TextArea.js.map +1 -1
  177. package/dist/form/TextField.d.ts +3 -2
  178. package/dist/form/TextField.js +3 -4
  179. package/dist/form/TextField.js.map +1 -1
  180. package/dist/form/TextFieldAddon.d.ts +2 -1
  181. package/dist/form/TextFieldAddon.js +3 -4
  182. package/dist/form/TextFieldAddon.js.map +1 -1
  183. package/dist/form/TextFieldContainer.d.ts +3 -2
  184. package/dist/form/TextFieldContainer.js +3 -4
  185. package/dist/form/TextFieldContainer.js.map +1 -1
  186. package/dist/form/sliderUtils.d.ts +1 -1
  187. package/dist/form/sliderUtils.js.map +1 -1
  188. package/dist/form/types.d.ts +11 -5
  189. package/dist/form/types.js.map +1 -1
  190. package/dist/form/useCombobox.d.ts +6 -6
  191. package/dist/form/useCombobox.js.map +1 -1
  192. package/dist/form/useFormReset.d.ts +1 -1
  193. package/dist/form/useFormReset.js.map +1 -1
  194. package/dist/form/useTextField.d.ts +4 -4
  195. package/dist/form/useTextField.js.map +1 -1
  196. package/dist/hoverMode/useHoverMode.js +1 -1
  197. package/dist/hoverMode/useHoverMode.js.map +1 -1
  198. package/dist/hoverMode/useHoverModeProvider.d.ts +5 -5
  199. package/dist/hoverMode/useHoverModeProvider.js +1 -1
  200. package/dist/hoverMode/useHoverModeProvider.js.map +1 -1
  201. package/dist/icon/FontIcon.d.ts +3 -2
  202. package/dist/icon/FontIcon.js +3 -4
  203. package/dist/icon/FontIcon.js.map +1 -1
  204. package/dist/icon/IconRotator.d.ts +3 -2
  205. package/dist/icon/IconRotator.js +4 -4
  206. package/dist/icon/IconRotator.js.map +1 -1
  207. package/dist/icon/MaterialIcon.d.ts +3 -2
  208. package/dist/icon/MaterialIcon.js +3 -4
  209. package/dist/icon/MaterialIcon.js.map +1 -1
  210. package/dist/icon/MaterialSymbol.d.ts +3 -2
  211. package/dist/icon/MaterialSymbol.js +3 -4
  212. package/dist/icon/MaterialSymbol.js.map +1 -1
  213. package/dist/icon/SVGIcon.d.ts +3 -2
  214. package/dist/icon/SVGIcon.js +3 -4
  215. package/dist/icon/SVGIcon.js.map +1 -1
  216. package/dist/layout/LayoutAppBar.d.ts +3 -1
  217. package/dist/layout/LayoutAppBar.js +3 -4
  218. package/dist/layout/LayoutAppBar.js.map +1 -1
  219. package/dist/layout/LayoutNav.d.ts +3 -2
  220. package/dist/layout/LayoutNav.js +3 -4
  221. package/dist/layout/LayoutNav.js.map +1 -1
  222. package/dist/layout/LayoutWindowSplitter.d.ts +4 -2
  223. package/dist/layout/LayoutWindowSplitter.js +4 -4
  224. package/dist/layout/LayoutWindowSplitter.js.map +1 -1
  225. package/dist/layout/Main.d.ts +4 -3
  226. package/dist/layout/Main.js +3 -4
  227. package/dist/layout/Main.js.map +1 -1
  228. package/dist/link/Link.d.ts +10 -2
  229. package/dist/link/Link.js +4 -4
  230. package/dist/link/Link.js.map +1 -1
  231. package/dist/link/SkipToMainContent.d.ts +3 -2
  232. package/dist/link/SkipToMainContent.js +4 -4
  233. package/dist/link/SkipToMainContent.js.map +1 -1
  234. package/dist/list/List.d.ts +3 -2
  235. package/dist/list/List.js +3 -4
  236. package/dist/list/List.js.map +1 -1
  237. package/dist/list/ListItem.d.ts +3 -2
  238. package/dist/list/ListItem.js +3 -4
  239. package/dist/list/ListItem.js.map +1 -1
  240. package/dist/list/ListItemLink.d.ts +3 -2
  241. package/dist/list/ListItemLink.js +3 -4
  242. package/dist/list/ListItemLink.js.map +1 -1
  243. package/dist/list/ListItemText.d.ts +3 -2
  244. package/dist/list/ListItemText.js +3 -4
  245. package/dist/list/ListItemText.js.map +1 -1
  246. package/dist/list/ListSubheader.d.ts +3 -2
  247. package/dist/list/ListSubheader.js +3 -4
  248. package/dist/list/ListSubheader.js.map +1 -1
  249. package/dist/menu/DropdownMenu.js.map +1 -1
  250. package/dist/menu/Menu.d.ts +4 -2
  251. package/dist/menu/Menu.js +5 -4
  252. package/dist/menu/Menu.js.map +1 -1
  253. package/dist/menu/MenuBar.d.ts +3 -1
  254. package/dist/menu/MenuBar.js +3 -4
  255. package/dist/menu/MenuBar.js.map +1 -1
  256. package/dist/menu/MenuButton.d.ts +2 -1
  257. package/dist/menu/MenuButton.js +3 -4
  258. package/dist/menu/MenuButton.js.map +1 -1
  259. package/dist/menu/MenuItem.d.ts +3 -1
  260. package/dist/menu/MenuItem.js +3 -4
  261. package/dist/menu/MenuItem.js.map +1 -1
  262. package/dist/menu/MenuItemButton.d.ts +2 -1
  263. package/dist/menu/MenuItemButton.js +4 -4
  264. package/dist/menu/MenuItemButton.js.map +1 -1
  265. package/dist/menu/MenuItemCheckbox.d.ts +2 -1
  266. package/dist/menu/MenuItemCheckbox.js +4 -4
  267. package/dist/menu/MenuItemCheckbox.js.map +1 -1
  268. package/dist/menu/MenuItemCircularProgress.d.ts +3 -2
  269. package/dist/menu/MenuItemCircularProgress.js +3 -4
  270. package/dist/menu/MenuItemCircularProgress.js.map +1 -1
  271. package/dist/menu/MenuItemFileInput.d.ts +2 -2
  272. package/dist/menu/MenuItemFileInput.js +3 -4
  273. package/dist/menu/MenuItemFileInput.js.map +1 -1
  274. package/dist/menu/MenuItemGroup.d.ts +3 -3
  275. package/dist/menu/MenuItemGroup.js +4 -4
  276. package/dist/menu/MenuItemGroup.js.map +1 -1
  277. package/dist/menu/MenuItemInputToggle.d.ts +3 -2
  278. package/dist/menu/MenuItemInputToggle.js +3 -4
  279. package/dist/menu/MenuItemInputToggle.js.map +1 -1
  280. package/dist/menu/MenuItemRadio.d.ts +3 -1
  281. package/dist/menu/MenuItemRadio.js +4 -4
  282. package/dist/menu/MenuItemRadio.js.map +1 -1
  283. package/dist/menu/MenuItemSeparator.d.ts +3 -2
  284. package/dist/menu/MenuItemSeparator.js +3 -4
  285. package/dist/menu/MenuItemSeparator.js.map +1 -1
  286. package/dist/menu/MenuItemSwitch.d.ts +2 -1
  287. package/dist/menu/MenuItemSwitch.js +4 -4
  288. package/dist/menu/MenuItemSwitch.js.map +1 -1
  289. package/dist/menu/MenuItemTextField.d.ts +2 -2
  290. package/dist/menu/MenuItemTextField.js +3 -4
  291. package/dist/menu/MenuItemTextField.js.map +1 -1
  292. package/dist/menu/MenuVisibilityProvider.d.ts +3 -3
  293. package/dist/menu/MenuVisibilityProvider.js.map +1 -1
  294. package/dist/menu/MenuWidget.d.ts +4 -4
  295. package/dist/menu/MenuWidget.js +4 -4
  296. package/dist/menu/MenuWidget.js.map +1 -1
  297. package/dist/menu/useContextMenu.d.ts +4 -4
  298. package/dist/menu/useContextMenu.js.map +1 -1
  299. package/dist/movement/types.d.ts +5 -5
  300. package/dist/movement/types.js.map +1 -1
  301. package/dist/navigation/CollapsibleNavGroup.d.ts +2 -2
  302. package/dist/navigation/CollapsibleNavGroup.js +3 -4
  303. package/dist/navigation/CollapsibleNavGroup.js.map +1 -1
  304. package/dist/navigation/NavGroup.d.ts +3 -2
  305. package/dist/navigation/NavGroup.js +3 -4
  306. package/dist/navigation/NavGroup.js.map +1 -1
  307. package/dist/navigation/NavItem.d.ts +3 -2
  308. package/dist/navigation/NavItem.js +3 -4
  309. package/dist/navigation/NavItem.js.map +1 -1
  310. package/dist/navigation/NavItemButton.d.ts +2 -2
  311. package/dist/navigation/NavItemButton.js +3 -4
  312. package/dist/navigation/NavItemButton.js.map +1 -1
  313. package/dist/navigation/NavItemLink.d.ts +3 -2
  314. package/dist/navigation/NavItemLink.js +4 -4
  315. package/dist/navigation/NavItemLink.js.map +1 -1
  316. package/dist/navigation/NavSubheader.d.ts +2 -1
  317. package/dist/navigation/NavSubheader.js +3 -4
  318. package/dist/navigation/NavSubheader.js.map +1 -1
  319. package/dist/navigation/Navigation.d.ts +1 -1
  320. package/dist/navigation/Navigation.js +1 -1
  321. package/dist/navigation/Navigation.js.map +1 -1
  322. package/dist/navigation/types.d.ts +5 -2
  323. package/dist/navigation/types.js.map +1 -1
  324. package/dist/navigation/useActiveHeadingId.js +1 -1
  325. package/dist/navigation/useActiveHeadingId.js.map +1 -1
  326. package/dist/overlay/Overlay.d.ts +3 -2
  327. package/dist/overlay/Overlay.js +3 -4
  328. package/dist/overlay/Overlay.js.map +1 -1
  329. package/dist/positioning/useFixedPositioning.d.ts +1 -1
  330. package/dist/positioning/useFixedPositioning.js.map +1 -1
  331. package/dist/progress/CircularProgress.d.ts +2 -2
  332. package/dist/progress/CircularProgress.js +4 -4
  333. package/dist/progress/CircularProgress.js.map +1 -1
  334. package/dist/progress/LinearProgress.d.ts +2 -2
  335. package/dist/progress/LinearProgress.js +4 -4
  336. package/dist/progress/LinearProgress.js.map +1 -1
  337. package/dist/progress/types.d.ts +2 -0
  338. package/dist/progress/types.js.map +1 -1
  339. package/dist/responsive-item/ResponsiveItem.d.ts +3 -2
  340. package/dist/responsive-item/ResponsiveItem.js +3 -4
  341. package/dist/responsive-item/ResponsiveItem.js.map +1 -1
  342. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +3 -2
  343. package/dist/responsive-item/ResponsiveItemOverlay.js +3 -4
  344. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  345. package/dist/segmented-button/SegmentedButton.d.ts +3 -2
  346. package/dist/segmented-button/SegmentedButton.js +3 -4
  347. package/dist/segmented-button/SegmentedButton.js.map +1 -1
  348. package/dist/segmented-button/SegmentedButtonContainer.d.ts +4 -3
  349. package/dist/segmented-button/SegmentedButtonContainer.js +4 -5
  350. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  351. package/dist/sheet/Sheet.d.ts +2 -1
  352. package/dist/sheet/Sheet.js +3 -4
  353. package/dist/sheet/Sheet.js.map +1 -1
  354. package/dist/snackbar/Snackbar.d.ts +3 -2
  355. package/dist/snackbar/Snackbar.js +3 -4
  356. package/dist/snackbar/Snackbar.js.map +1 -1
  357. package/dist/snackbar/Toast.d.ts +3 -2
  358. package/dist/snackbar/Toast.js +4 -4
  359. package/dist/snackbar/Toast.js.map +1 -1
  360. package/dist/snackbar/ToastActionButton.d.ts +2 -1
  361. package/dist/snackbar/ToastActionButton.js +3 -4
  362. package/dist/snackbar/ToastActionButton.js.map +1 -1
  363. package/dist/snackbar/ToastCloseButton.d.ts +2 -1
  364. package/dist/snackbar/ToastCloseButton.js +3 -4
  365. package/dist/snackbar/ToastCloseButton.js.map +1 -1
  366. package/dist/snackbar/ToastContent.d.ts +3 -2
  367. package/dist/snackbar/ToastContent.js +4 -4
  368. package/dist/snackbar/ToastContent.js.map +1 -1
  369. package/dist/spinbutton/SpinButton.d.ts +4 -3
  370. package/dist/spinbutton/SpinButton.js +3 -4
  371. package/dist/spinbutton/SpinButton.js.map +1 -1
  372. package/dist/spinbutton/types.d.ts +1 -1
  373. package/dist/spinbutton/types.js.map +1 -1
  374. package/dist/table/StickyTableSection.d.ts +3 -2
  375. package/dist/table/StickyTableSection.js +3 -4
  376. package/dist/table/StickyTableSection.js.map +1 -1
  377. package/dist/table/Table.d.ts +3 -2
  378. package/dist/table/Table.js +4 -4
  379. package/dist/table/Table.js.map +1 -1
  380. package/dist/table/TableBody.d.ts +3 -2
  381. package/dist/table/TableBody.js +4 -4
  382. package/dist/table/TableBody.js.map +1 -1
  383. package/dist/table/TableCell.d.ts +3 -2
  384. package/dist/table/TableCell.js +3 -4
  385. package/dist/table/TableCell.js.map +1 -1
  386. package/dist/table/TableCellContent.d.ts +3 -2
  387. package/dist/table/TableCellContent.js +3 -4
  388. package/dist/table/TableCellContent.js.map +1 -1
  389. package/dist/table/TableCheckbox.d.ts +3 -2
  390. package/dist/table/TableCheckbox.js +3 -4
  391. package/dist/table/TableCheckbox.js.map +1 -1
  392. package/dist/table/TableContainer.d.ts +5 -3
  393. package/dist/table/TableContainer.js +4 -4
  394. package/dist/table/TableContainer.js.map +1 -1
  395. package/dist/table/TableContainerProvider.d.ts +1 -1
  396. package/dist/table/TableContainerProvider.js.map +1 -1
  397. package/dist/table/TableFooter.d.ts +3 -2
  398. package/dist/table/TableFooter.js +4 -5
  399. package/dist/table/TableFooter.js.map +1 -1
  400. package/dist/table/TableHeader.d.ts +3 -2
  401. package/dist/table/TableHeader.js +4 -5
  402. package/dist/table/TableHeader.js.map +1 -1
  403. package/dist/table/TableRadio.d.ts +3 -2
  404. package/dist/table/TableRadio.js +3 -4
  405. package/dist/table/TableRadio.js.map +1 -1
  406. package/dist/table/TableRow.d.ts +3 -2
  407. package/dist/table/TableRow.js +3 -4
  408. package/dist/table/TableRow.js.map +1 -1
  409. package/dist/tabs/SimpleTabPanel.d.ts +3 -2
  410. package/dist/tabs/SimpleTabPanel.js +3 -4
  411. package/dist/tabs/SimpleTabPanel.js.map +1 -1
  412. package/dist/tabs/SimpleTabPanels.d.ts +3 -2
  413. package/dist/tabs/SimpleTabPanels.js +3 -4
  414. package/dist/tabs/SimpleTabPanels.js.map +1 -1
  415. package/dist/tabs/TabList.d.ts +3 -2
  416. package/dist/tabs/TabList.js +4 -4
  417. package/dist/tabs/TabList.js.map +1 -1
  418. package/dist/tabs/TabListScrollButton.d.ts +3 -2
  419. package/dist/tabs/TabListScrollButton.js +4 -4
  420. package/dist/tabs/TabListScrollButton.js.map +1 -1
  421. package/dist/tabs/useTabList.d.ts +2 -2
  422. package/dist/tabs/useTabList.js.map +1 -1
  423. package/dist/theme/useCSSVariables.d.ts +1 -1
  424. package/dist/theme/useCSSVariables.js.map +1 -1
  425. package/dist/tooltip/Tooltip.d.ts +3 -2
  426. package/dist/tooltip/Tooltip.js +3 -4
  427. package/dist/tooltip/Tooltip.js.map +1 -1
  428. package/dist/tooltip/useTooltip.d.ts +3 -3
  429. package/dist/tooltip/useTooltip.js.map +1 -1
  430. package/dist/transition/SkeletonPlaceholder.d.ts +3 -2
  431. package/dist/transition/SkeletonPlaceholder.js +3 -4
  432. package/dist/transition/SkeletonPlaceholder.js.map +1 -1
  433. package/dist/transition/Slide.d.ts +3 -2
  434. package/dist/transition/Slide.js +3 -4
  435. package/dist/transition/Slide.js.map +1 -1
  436. package/dist/transition/SlideContainer.d.ts +3 -2
  437. package/dist/transition/SlideContainer.js +3 -4
  438. package/dist/transition/SlideContainer.js.map +1 -1
  439. package/dist/tree/TreeGroup.d.ts +2 -2
  440. package/dist/tree/TreeGroup.js +3 -4
  441. package/dist/tree/TreeGroup.js.map +1 -1
  442. package/dist/tree/TreeProvider.d.ts +2 -3
  443. package/dist/tree/TreeProvider.js.map +1 -1
  444. package/dist/tree/useTreeMovement.d.ts +6 -7
  445. package/dist/tree/useTreeMovement.js.map +1 -1
  446. package/dist/types.d.ts +1 -15
  447. package/dist/types.js.map +1 -1
  448. package/dist/typography/Mark.d.ts +3 -2
  449. package/dist/typography/Mark.js +3 -4
  450. package/dist/typography/Mark.js.map +1 -1
  451. package/dist/typography/SrOnly.d.ts +3 -2
  452. package/dist/typography/SrOnly.js +3 -4
  453. package/dist/typography/SrOnly.js.map +1 -1
  454. package/dist/typography/TextContainer.d.ts +3 -2
  455. package/dist/typography/TextContainer.js +3 -4
  456. package/dist/typography/TextContainer.js.map +1 -1
  457. package/dist/typography/Typography.d.ts +3 -2
  458. package/dist/typography/Typography.js +3 -4
  459. package/dist/typography/Typography.js.map +1 -1
  460. package/dist/useAsyncFunction.d.ts +3 -2
  461. package/dist/useAsyncFunction.js.map +1 -1
  462. package/dist/useDebouncedFunction.js +1 -1
  463. package/dist/useDebouncedFunction.js.map +1 -1
  464. package/dist/useDropzone.js +1 -1
  465. package/dist/useDropzone.js.map +1 -1
  466. package/dist/useEnsuredRef.d.ts +3 -3
  467. package/dist/useEnsuredRef.js +1 -1
  468. package/dist/useEnsuredRef.js.map +1 -1
  469. package/dist/useThrottledFunction.js +3 -3
  470. package/dist/useThrottledFunction.js.map +1 -1
  471. package/dist/useUnmounted.d.ts +2 -2
  472. package/dist/useUnmounted.js.map +1 -1
  473. package/dist/utils/applyRef.d.ts +1 -1
  474. package/dist/utils/applyRef.js.map +1 -1
  475. package/dist/window-splitter/WindowSplitter.d.ts +3 -2
  476. package/dist/window-splitter/WindowSplitter.js +3 -4
  477. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  478. package/package.json +9 -9
  479. package/src/app-bar/AppBar.tsx +54 -54
  480. package/src/app-bar/AppBarTitle.tsx +29 -27
  481. package/src/autocomplete/AutocompleteChip.tsx +4 -6
  482. package/src/autocomplete/types.ts +2 -0
  483. package/src/autocomplete/utils.ts +4 -4
  484. package/src/avatar/Avatar.tsx +47 -45
  485. package/src/badge/Badge.tsx +17 -11
  486. package/src/box/Box.tsx +51 -50
  487. package/src/button/AsyncButton.tsx +125 -119
  488. package/src/button/Button.tsx +74 -73
  489. package/src/button/ButtonUnstyled.tsx +9 -9
  490. package/src/button/FloatingActionButton.tsx +9 -7
  491. package/src/button/TooltippedButton.tsx +6 -6
  492. package/src/card/Card.tsx +36 -35
  493. package/src/card/CardContent.tsx +31 -28
  494. package/src/card/CardFooter.tsx +22 -16
  495. package/src/card/CardHeader.tsx +36 -30
  496. package/src/card/CardSubtitle.tsx +8 -6
  497. package/src/card/CardTitle.tsx +26 -25
  498. package/src/card/ClickableCard.tsx +57 -54
  499. package/src/chip/Chip.tsx +122 -120
  500. package/src/datetime/NativeDateField.tsx +7 -7
  501. package/src/datetime/NativeTimeField.tsx +7 -7
  502. package/src/dialog/Dialog.tsx +156 -150
  503. package/src/dialog/DialogContainer.tsx +35 -29
  504. package/src/dialog/DialogContent.tsx +26 -19
  505. package/src/dialog/DialogFooter.tsx +22 -19
  506. package/src/dialog/DialogHeader.tsx +24 -23
  507. package/src/dialog/DialogTitle.tsx +27 -26
  508. package/src/dialog/FixedDialog.tsx +70 -69
  509. package/src/divider/Divider.tsx +32 -26
  510. package/src/draggable/useDraggable.ts +3 -6
  511. package/src/draggable/utils.ts +1 -1
  512. package/src/expansion-panel/ExpansionList.tsx +24 -19
  513. package/src/expansion-panel/ExpansionPanel.tsx +11 -6
  514. package/src/expansion-panel/ExpansionPanelHeader.tsx +9 -6
  515. package/src/files/FileInput.tsx +79 -79
  516. package/src/focus/useFocusContainer.ts +1 -1
  517. package/src/form/Checkbox.tsx +6 -6
  518. package/src/form/Fieldset.tsx +33 -28
  519. package/src/form/Form.tsx +26 -25
  520. package/src/form/FormMessage.tsx +13 -7
  521. package/src/form/FormMessageContainer.tsx +12 -9
  522. package/src/form/FormMessageCounter.tsx +8 -7
  523. package/src/form/InputToggle.tsx +105 -107
  524. package/src/form/InputToggleIcon.tsx +12 -6
  525. package/src/form/Label.tsx +40 -41
  526. package/src/form/Legend.tsx +44 -43
  527. package/src/form/NativeSelect.tsx +116 -114
  528. package/src/form/OptGroup.tsx +15 -15
  529. package/src/form/Option.tsx +123 -122
  530. package/src/form/Password.tsx +66 -67
  531. package/src/form/Radio.tsx +6 -6
  532. package/src/form/ResizingTextAreaWrapper.tsx +7 -6
  533. package/src/form/SliderContainer.tsx +35 -29
  534. package/src/form/SliderThumb.tsx +8 -6
  535. package/src/form/SliderTrack.tsx +80 -80
  536. package/src/form/Switch.tsx +80 -79
  537. package/src/form/SwitchTrack.tsx +35 -34
  538. package/src/form/TextArea.tsx +167 -165
  539. package/src/form/TextField.tsx +106 -104
  540. package/src/form/TextFieldAddon.tsx +33 -32
  541. package/src/form/TextFieldContainer.tsx +8 -6
  542. package/src/form/sliderUtils.ts +1 -1
  543. package/src/form/types.ts +15 -5
  544. package/src/form/useCombobox.ts +6 -10
  545. package/src/form/useFormReset.ts +1 -1
  546. package/src/form/useTextField.ts +4 -4
  547. package/src/hoverMode/useHoverMode.ts +1 -1
  548. package/src/hoverMode/useHoverModeProvider.ts +13 -8
  549. package/src/icon/FontIcon.tsx +32 -30
  550. package/src/icon/IconRotator.tsx +30 -28
  551. package/src/icon/MaterialIcon.tsx +36 -30
  552. package/src/icon/MaterialSymbol.tsx +50 -44
  553. package/src/icon/SVGIcon.tsx +47 -41
  554. package/src/layout/LayoutAppBar.tsx +23 -28
  555. package/src/layout/LayoutNav.tsx +68 -62
  556. package/src/layout/LayoutWindowSplitter.tsx +9 -7
  557. package/src/layout/Main.tsx +30 -29
  558. package/src/link/Link.tsx +16 -11
  559. package/src/link/SkipToMainContent.tsx +6 -6
  560. package/src/list/List.tsx +31 -29
  561. package/src/list/ListItem.tsx +126 -125
  562. package/src/list/ListItemLink.tsx +128 -126
  563. package/src/list/ListItemText.tsx +42 -37
  564. package/src/list/ListSubheader.tsx +27 -26
  565. package/src/menu/DropdownMenu.tsx +2 -2
  566. package/src/menu/Menu.tsx +327 -326
  567. package/src/menu/MenuBar.tsx +51 -50
  568. package/src/menu/MenuButton.tsx +69 -70
  569. package/src/menu/MenuItem.tsx +37 -37
  570. package/src/menu/MenuItemButton.tsx +132 -133
  571. package/src/menu/MenuItemCheckbox.tsx +6 -7
  572. package/src/menu/MenuItemCircularProgress.tsx +13 -6
  573. package/src/menu/MenuItemFileInput.tsx +4 -6
  574. package/src/menu/MenuItemGroup.tsx +18 -18
  575. package/src/menu/MenuItemInputToggle.tsx +8 -6
  576. package/src/menu/MenuItemRadio.tsx +6 -6
  577. package/src/menu/MenuItemSeparator.tsx +7 -7
  578. package/src/menu/MenuItemSwitch.tsx +6 -6
  579. package/src/menu/MenuItemTextField.tsx +5 -7
  580. package/src/menu/MenuVisibilityProvider.tsx +3 -2
  581. package/src/menu/MenuWidget.tsx +123 -119
  582. package/src/menu/useContextMenu.ts +7 -4
  583. package/src/movement/types.ts +5 -9
  584. package/src/navigation/CollapsibleNavGroup.tsx +10 -6
  585. package/src/navigation/NavGroup.tsx +18 -19
  586. package/src/navigation/NavItem.tsx +16 -11
  587. package/src/navigation/NavItemButton.tsx +69 -66
  588. package/src/navigation/NavItemLink.tsx +102 -100
  589. package/src/navigation/NavSubheader.tsx +14 -16
  590. package/src/navigation/Navigation.tsx +1 -1
  591. package/src/navigation/types.ts +13 -4
  592. package/src/navigation/useActiveHeadingId.ts +1 -1
  593. package/src/overlay/Overlay.tsx +66 -65
  594. package/src/positioning/useFixedPositioning.ts +1 -1
  595. package/src/progress/CircularProgress.tsx +6 -6
  596. package/src/progress/LinearProgress.tsx +6 -6
  597. package/src/progress/types.ts +4 -0
  598. package/src/responsive-item/ResponsiveItem.tsx +29 -28
  599. package/src/responsive-item/ResponsiveItemOverlay.tsx +9 -8
  600. package/src/segmented-button/SegmentedButton.tsx +11 -6
  601. package/src/segmented-button/SegmentedButtonContainer.tsx +14 -8
  602. package/src/sheet/Sheet.tsx +42 -43
  603. package/src/snackbar/Snackbar.tsx +44 -38
  604. package/src/snackbar/Toast.tsx +110 -109
  605. package/src/snackbar/ToastActionButton.tsx +6 -6
  606. package/src/snackbar/ToastCloseButton.tsx +4 -6
  607. package/src/snackbar/ToastContent.tsx +56 -49
  608. package/src/spinbutton/SpinButton.tsx +9 -8
  609. package/src/spinbutton/types.ts +1 -1
  610. package/src/table/StickyTableSection.tsx +8 -6
  611. package/src/table/Table.tsx +47 -41
  612. package/src/table/TableBody.tsx +46 -42
  613. package/src/table/TableCell.tsx +83 -81
  614. package/src/table/TableCellContent.tsx +11 -6
  615. package/src/table/TableCheckbox.tsx +6 -6
  616. package/src/table/TableContainer.tsx +31 -26
  617. package/src/table/TableContainerProvider.ts +1 -1
  618. package/src/table/TableFooter.tsx +7 -12
  619. package/src/table/TableHeader.tsx +15 -9
  620. package/src/table/TableRadio.tsx +59 -58
  621. package/src/table/TableRow.tsx +34 -33
  622. package/src/tabs/SimpleTabPanel.tsx +18 -13
  623. package/src/tabs/SimpleTabPanels.tsx +11 -7
  624. package/src/tabs/TabList.tsx +106 -105
  625. package/src/tabs/TabListScrollButton.tsx +9 -6
  626. package/src/tabs/useTabList.ts +2 -2
  627. package/src/theme/useCSSVariables.ts +1 -1
  628. package/src/tooltip/Tooltip.tsx +61 -61
  629. package/src/tooltip/useTooltip.ts +2 -3
  630. package/src/transition/SkeletonPlaceholder.tsx +8 -6
  631. package/src/transition/Slide.tsx +54 -48
  632. package/src/transition/SlideContainer.tsx +16 -16
  633. package/src/tree/TreeGroup.tsx +54 -55
  634. package/src/tree/TreeProvider.tsx +2 -2
  635. package/src/tree/useTreeMovement.ts +6 -6
  636. package/src/types.ts +1 -16
  637. package/src/typography/Mark.tsx +16 -11
  638. package/src/typography/SrOnly.tsx +41 -35
  639. package/src/typography/TextContainer.tsx +12 -12
  640. package/src/typography/Typography.tsx +42 -41
  641. package/src/useAsyncFunction.ts +3 -3
  642. package/src/useDebouncedFunction.ts +1 -1
  643. package/src/useDropzone.ts +1 -1
  644. package/src/useEnsuredRef.ts +3 -3
  645. package/src/useThrottledFunction.ts +3 -3
  646. package/src/useUnmounted.ts +2 -4
  647. package/src/utils/applyRef.ts +2 -2
  648. package/src/window-splitter/WindowSplitter.tsx +6 -6
@@ -1,3 +1,4 @@
1
+ import { type ReactElement } from "react";
1
2
  import { type LabelProps } from "./types.js";
2
3
  /**
3
4
  * Most of the form components already use this `Label` internally when a
@@ -11,4 +12,4 @@ import { type LabelProps } from "./types.js";
11
12
  * @since 6.0.0 Updated to be usable externally and combines the
12
13
  * floating label styles instead of having separate components.
13
14
  */
14
- export declare const Label: import("react").ForwardRefExoticComponent<LabelProps & import("react").RefAttributes<HTMLLabelElement>>;
15
+ export declare function Label(props: LabelProps): ReactElement;
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { label } from "./labelStyles.js";
4
3
  /**
5
4
  * Most of the form components already use this `Label` internally when a
@@ -12,8 +11,8 @@ import { label } from "./labelStyles.js";
12
11
  * @see {@link https://react-md.dev/components/text-field#simple-textarea | TextArea Demos}
13
12
  * @since 6.0.0 Updated to be usable externally and combines the
14
13
  * floating label styles instead of having separate components.
15
- */ export const Label = /*#__PURE__*/ forwardRef(function Label(props, ref) {
16
- const { gap, error, dense, active, stacked, reversed, disabled, floating, inactive, floatingActive = active, className, children, ...remaining } = props;
14
+ */ export function Label(props) {
15
+ const { ref, gap, error, dense, active, stacked, reversed, disabled, floating, inactive, floatingActive = active, className, children, ...remaining } = props;
17
16
  return /*#__PURE__*/ _jsx("label", {
18
17
  ref: ref,
19
18
  ...remaining,
@@ -32,6 +31,6 @@ import { label } from "./labelStyles.js";
32
31
  }),
33
32
  children: children
34
33
  });
35
- });
34
+ }
36
35
 
37
36
  //# sourceMappingURL=Label.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Label.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { label } from \"./labelStyles.js\";\nimport { type LabelProps } from \"./types.js\";\n\n/**\n * Most of the form components already use this `Label` internally when a\n * `label` prop has been provided. You should generally use this component if\n * you need to separate the label from an existing form component or you need to\n * create a custom implementation of a form component.\n *\n * @see {@link https://react-md.dev/components/select | Select Demos}\n * @see {@link https://react-md.dev/components/text-field | TextField Demos}\n * @see {@link https://react-md.dev/components/text-field#simple-textarea | TextArea Demos}\n * @since 6.0.0 Updated to be usable externally and combines the\n * floating label styles instead of having separate components.\n */\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(\n function Label(props, ref) {\n const {\n gap,\n error,\n dense,\n active,\n stacked,\n reversed,\n disabled,\n floating,\n inactive,\n floatingActive = active,\n className,\n children,\n ...remaining\n } = props;\n\n return (\n <label\n ref={ref}\n {...remaining}\n className={label({\n gap,\n error,\n dense,\n active,\n stacked,\n reversed,\n disabled,\n floating,\n floatingActive,\n inactive,\n className,\n })}\n >\n {children}\n </label>\n );\n }\n);\n"],"names":["forwardRef","label","Label","props","ref","gap","error","dense","active","stacked","reversed","disabled","floating","inactive","floatingActive","className","children","remaining"],"mappings":";AAAA,SAASA,UAAU,QAAQ,QAAQ;AAEnC,SAASC,KAAK,QAAQ,mBAAmB;AAGzC;;;;;;;;;;;CAWC,GACD,OAAO,MAAMC,sBAAQF,WACnB,SAASE,MAAMC,KAAK,EAAEC,GAAG;IACvB,MAAM,EACJC,GAAG,EACHC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,iBAAiBN,MAAM,EACvBO,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGd;IAEJ,qBACE,KAACF;QACCG,KAAKA;QACJ,GAAGa,SAAS;QACbF,WAAWd,MAAM;YACfI;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAE;YACAD;YACAE;QACF;kBAECC;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/form/Label.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\n\nimport { label } from \"./labelStyles.js\";\nimport { type LabelProps } from \"./types.js\";\n\n/**\n * Most of the form components already use this `Label` internally when a\n * `label` prop has been provided. You should generally use this component if\n * you need to separate the label from an existing form component or you need to\n * create a custom implementation of a form component.\n *\n * @see {@link https://react-md.dev/components/select | Select Demos}\n * @see {@link https://react-md.dev/components/text-field | TextField Demos}\n * @see {@link https://react-md.dev/components/text-field#simple-textarea | TextArea Demos}\n * @since 6.0.0 Updated to be usable externally and combines the\n * floating label styles instead of having separate components.\n */\nexport function Label(props: LabelProps): ReactElement {\n const {\n ref,\n gap,\n error,\n dense,\n active,\n stacked,\n reversed,\n disabled,\n floating,\n inactive,\n floatingActive = active,\n className,\n children,\n ...remaining\n } = props;\n\n return (\n <label\n ref={ref}\n {...remaining}\n className={label({\n gap,\n error,\n dense,\n active,\n stacked,\n reversed,\n disabled,\n floating,\n floatingActive,\n inactive,\n className,\n })}\n >\n {children}\n </label>\n );\n}\n"],"names":["label","Label","props","ref","gap","error","dense","active","stacked","reversed","disabled","floating","inactive","floatingActive","className","children","remaining"],"mappings":";AAEA,SAASA,KAAK,QAAQ,mBAAmB;AAGzC;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,MAAMC,KAAiB;IACrC,MAAM,EACJC,GAAG,EACHC,GAAG,EACHC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,iBAAiBN,MAAM,EACvBO,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGd;IAEJ,qBACE,KAACF;QACCG,KAAKA;QACJ,GAAGa,SAAS;QACbF,WAAWd,MAAM;YACfI;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAE;YACAD;YACAE;QACF;kBAECC;;AAGP"}
@@ -1,3 +1,4 @@
1
+ import { type ReactElement, type Ref } from "react";
1
2
  import { type TypographyProps } from "../typography/Typography.js";
2
3
  import { type LegendClassNameOptions } from "./legendStyles.js";
3
4
  /**
@@ -5,6 +6,7 @@ import { type LegendClassNameOptions } from "./legendStyles.js";
5
6
  * @since 6.4.0 Extends the `LegendClassNameOptions`
6
7
  */
7
8
  export interface LegendProps extends TypographyProps, LegendClassNameOptions {
9
+ ref?: Ref<HTMLLegendElement>;
8
10
  }
9
11
  /**
10
12
  * This should be used within a `Fieldset` to apply a label.
@@ -36,4 +38,4 @@ export interface LegendProps extends TypographyProps, LegendClassNameOptions {
36
38
  * @see {@link https://react-md.dev/components/fieldset | Fieldset Demos}
37
39
  * @since 6.0.0
38
40
  */
39
- export declare const Legend: import("react").ForwardRefExoticComponent<LegendProps & import("react").RefAttributes<HTMLLegendElement>>;
41
+ export declare function Legend(props: LegendProps): ReactElement;
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { Typography } from "../typography/Typography.js";
4
3
  import { legend } from "./legendStyles.js";
5
4
  /**
@@ -31,8 +30,8 @@ import { legend } from "./legendStyles.js";
31
30
  *
32
31
  * @see {@link https://react-md.dev/components/fieldset | Fieldset Demos}
33
32
  * @since 6.0.0
34
- */ export const Legend = /*#__PURE__*/ forwardRef(function Legend(props, ref) {
35
- const { srOnly, floating, theme, gap, dense, active, error, disabled, stacked, reversed, className, children, ...remaining } = props;
33
+ */ export function Legend(props) {
34
+ const { ref, srOnly, floating, theme, gap, dense, active, error, disabled, stacked, reversed, className, children, ...remaining } = props;
36
35
  return /*#__PURE__*/ _jsx(Typography, {
37
36
  ...remaining,
38
37
  as: "legend",
@@ -52,6 +51,6 @@ import { legend } from "./legendStyles.js";
52
51
  }),
53
52
  children: children
54
53
  });
55
- });
54
+ }
56
55
 
57
56
  //# sourceMappingURL=Legend.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Legend.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { Typography, type TypographyProps } from \"../typography/Typography.js\";\nimport { type LegendClassNameOptions, legend } from \"./legendStyles.js\";\n\n/**\n * @since 6.0.0\n * @since 6.4.0 Extends the `LegendClassNameOptions`\n */\nexport interface LegendProps extends TypographyProps, LegendClassNameOptions {}\n\n/**\n * This should be used within a `Fieldset` to apply a label.\n *\n * @example Simple Example\n * ```tsx\n * <Fieldset>\n * <Legend>I am legend</Legend>\n * {children}\n * </Fieldset>\n * ```\n *\n * @example Visible to Screen readers only\n * ```tsx\n * <Fieldset>\n * <Legend srOnly>I am legend</Legend>\n * {children}\n * </Fieldset>\n * ```\n *\n * @example Acting as a floating label\n * ```tsx\n * <Fieldset floatingLegend>\n * <Legend floating>I am legend</Legend>\n * {children}\n * </Fieldset>\n * ```\n *\n * @see {@link https://react-md.dev/components/fieldset | Fieldset Demos}\n * @since 6.0.0\n */\nexport const Legend = forwardRef<HTMLLegendElement, LegendProps>(\n function Legend(props, ref) {\n const {\n srOnly,\n floating,\n theme,\n gap,\n dense,\n active,\n error,\n disabled,\n stacked,\n reversed,\n className,\n children,\n ...remaining\n } = props;\n\n return (\n <Typography\n {...remaining}\n as=\"legend\"\n ref={ref}\n className={legend({\n srOnly,\n floating,\n theme,\n gap,\n dense,\n active,\n error,\n disabled,\n stacked,\n reversed,\n className,\n })}\n >\n {children}\n </Typography>\n );\n }\n);\n"],"names":["forwardRef","Typography","legend","Legend","props","ref","srOnly","floating","theme","gap","dense","active","error","disabled","stacked","reversed","className","children","remaining","as"],"mappings":";AAAA,SAASA,UAAU,QAAQ,QAAQ;AAEnC,SAASC,UAAU,QAA8B,8BAA8B;AAC/E,SAAsCC,MAAM,QAAQ,oBAAoB;AAQxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BC,GACD,OAAO,MAAMC,uBAASH,WACpB,SAASG,OAAOC,KAAK,EAAEC,GAAG;IACxB,MAAM,EACJC,MAAM,EACNC,QAAQ,EACRC,KAAK,EACLC,GAAG,EACHC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGd;IAEJ,qBACE,KAACH;QACE,GAAGiB,SAAS;QACbC,IAAG;QACHd,KAAKA;QACLW,WAAWd,OAAO;YAChBI;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;kBAECC;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/form/Legend.tsx"],"sourcesContent":["import { type ReactElement, type Ref } from \"react\";\n\nimport { Typography, type TypographyProps } from \"../typography/Typography.js\";\nimport { type LegendClassNameOptions, legend } from \"./legendStyles.js\";\n\n/**\n * @since 6.0.0\n * @since 6.4.0 Extends the `LegendClassNameOptions`\n */\nexport interface LegendProps extends TypographyProps, LegendClassNameOptions {\n ref?: Ref<HTMLLegendElement>;\n}\n\n/**\n * This should be used within a `Fieldset` to apply a label.\n *\n * @example Simple Example\n * ```tsx\n * <Fieldset>\n * <Legend>I am legend</Legend>\n * {children}\n * </Fieldset>\n * ```\n *\n * @example Visible to Screen readers only\n * ```tsx\n * <Fieldset>\n * <Legend srOnly>I am legend</Legend>\n * {children}\n * </Fieldset>\n * ```\n *\n * @example Acting as a floating label\n * ```tsx\n * <Fieldset floatingLegend>\n * <Legend floating>I am legend</Legend>\n * {children}\n * </Fieldset>\n * ```\n *\n * @see {@link https://react-md.dev/components/fieldset | Fieldset Demos}\n * @since 6.0.0\n */\nexport function Legend(props: LegendProps): ReactElement {\n const {\n ref,\n srOnly,\n floating,\n theme,\n gap,\n dense,\n active,\n error,\n disabled,\n stacked,\n reversed,\n className,\n children,\n ...remaining\n } = props;\n\n return (\n <Typography\n {...remaining}\n as=\"legend\"\n ref={ref}\n className={legend({\n srOnly,\n floating,\n theme,\n gap,\n dense,\n active,\n error,\n disabled,\n stacked,\n reversed,\n className,\n })}\n >\n {children}\n </Typography>\n );\n}\n"],"names":["Typography","legend","Legend","props","ref","srOnly","floating","theme","gap","dense","active","error","disabled","stacked","reversed","className","children","remaining","as"],"mappings":";AAEA,SAASA,UAAU,QAA8B,8BAA8B;AAC/E,SAAsCC,MAAM,QAAQ,oBAAoB;AAUxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BC,GACD,OAAO,SAASC,OAAOC,KAAkB;IACvC,MAAM,EACJC,GAAG,EACHC,MAAM,EACNC,QAAQ,EACRC,KAAK,EACLC,GAAG,EACHC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACR,GAAGC,WACJ,GAAGd;IAEJ,qBACE,KAACH;QACE,GAAGiB,SAAS;QACbC,IAAG;QACHd,KAAKA;QACLW,WAAWd,OAAO;YAChBI;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;kBAECC;;AAGP"}
@@ -1,10 +1,11 @@
1
- import { type CSSProperties, type HTMLAttributes, type ReactNode, type SelectHTMLAttributes } from "react";
1
+ import { type CSSProperties, type HTMLAttributes, type ReactElement, type ReactNode, type Ref, type SelectHTMLAttributes } from "react";
2
2
  import { type PropsWithRef } from "../types.js";
3
3
  import { type FormFieldOptions, type UserAgentAutocompleteProps } from "./types.js";
4
4
  /**
5
5
  * @since 6.0.0 Added support for {@link UserAgentAutocompleteProps}
6
6
  */
7
7
  export interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "autoComplete">, UserAgentAutocompleteProps, FormFieldOptions {
8
+ ref?: Ref<HTMLSelectElement>;
8
9
  /**
9
10
  * A custom dropdown icon to use instead of the browser's default select
10
11
  * dropdown icon.
@@ -84,4 +85,4 @@ export interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectE
84
85
  *
85
86
  * @see {@link https://react-md.dev/components/native-select | NativeSelect Demos}
86
87
  */
87
- export declare const NativeSelect: import("react").ForwardRefExoticComponent<NativeSelectProps & import("react").RefAttributes<HTMLSelectElement>>;
88
+ export declare function NativeSelect(props: NativeSelectProps): ReactElement;
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { getIcon } from "../icon/config.js";
4
3
  import { useEnsuredId } from "../useEnsuredId.js";
5
4
  import { FormMessageContainer } from "./FormMessageContainer.js";
@@ -51,8 +50,8 @@ import { nativeSelect, nativeSelectContainer } from "./nativeSelectStyles.js";
51
50
  * ```
52
51
  *
53
52
  * @see {@link https://react-md.dev/components/native-select | NativeSelect Demos}
54
- */ export const NativeSelect = /*#__PURE__*/ forwardRef(function NativeSelect(props, ref) {
55
- const { id: propId, style, className, icon: propIcon, label, labelProps, labelStyle, labelClassName, selectStyle, selectClassName, autoCompleteValue, autoComplete = autoCompleteValue, name = autoCompleteValue, dense, error, active, inline, leftAddon, rightAddon: propRightAddon, leftAddonProps, rightAddonProps, disableLeftAddonStyles, disableRightAddonStyles, theme: propTheme, underlineDirection: propUnderlineDirection, messageProps, messageContainerProps, containerProps, children, ...remaining } = props;
53
+ */ export function NativeSelect(props) {
54
+ const { ref, id: propId, style, className, icon: propIcon, label, labelProps, labelStyle, labelClassName, selectStyle, selectClassName, autoCompleteValue, autoComplete = autoCompleteValue, name = autoCompleteValue, dense, error, active, inline, leftAddon, rightAddon: propRightAddon, leftAddonProps, rightAddonProps, disableLeftAddonStyles, disableRightAddonStyles, theme: propTheme, underlineDirection: propUnderlineDirection, messageProps, messageContainerProps, containerProps, children, ...remaining } = props;
56
55
  const { disabled, readOnly, multiple } = props;
57
56
  const id = useEnsuredId(propId, "select");
58
57
  const theme = getFormConfig("theme", propTheme);
@@ -125,6 +124,6 @@ import { nativeSelect, nativeSelectContainer } from "./nativeSelectStyles.js";
125
124
  ]
126
125
  })
127
126
  });
128
- });
127
+ }
129
128
 
130
129
  //# sourceMappingURL=NativeSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/NativeSelect.tsx"],"sourcesContent":["import {\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n type SelectHTMLAttributes,\n forwardRef,\n} from \"react\";\n\nimport { getIcon } from \"../icon/config.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { FormMessageContainer } from \"./FormMessageContainer.js\";\nimport { Label } from \"./Label.js\";\nimport { TextFieldContainer } from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { nativeSelect, nativeSelectContainer } from \"./nativeSelectStyles.js\";\nimport {\n type FormFieldOptions,\n type UserAgentAutocompleteProps,\n} from \"./types.js\";\n\n/**\n * @since 6.0.0 Added support for {@link UserAgentAutocompleteProps}\n */\nexport interface NativeSelectProps\n extends\n Omit<SelectHTMLAttributes<HTMLSelectElement>, \"autoComplete\">,\n UserAgentAutocompleteProps,\n FormFieldOptions {\n /**\n * A custom dropdown icon to use instead of the browser's default select\n * dropdown icon.\n *\n * Set this to `null` if the browser's default icon should be used instead.\n *\n * @defaultValue `getIcon(\"dropdown\")`\n */\n icon?: ReactNode;\n\n /**\n * This applies custom inline styles to the `<select>` element since the\n * `style` prop is applied to the container element instead.\n */\n selectStyle?: CSSProperties;\n\n /**\n * This applies custom className to the `<select>` element since the\n * `className` prop is applied to the container element instead.\n */\n selectClassName?: string;\n\n /**\n * This should be a list of `<option>` elements for specific values within the\n * `<select>`.\n *\n * Check out the {@link NativeSelect} for examples around using \"placeholder\"\n * text and requiring a value to be selected.\n */\n children: ReactNode;\n\n /**\n * Optional props to provide to the {@link TextFieldContainer} component.\n * There probably isn't any real use for this prop other than if you need to\n * add a `ref` for some DOM behavior.\n */\n containerProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>>;\n}\n\n/**\n * This component is a wrapper for the native `<select>` field that applies the\n * same theming as `TextField` and `TextArea` components. This component might\n * not be used much since the `Select` offers more styling options.\n *\n * @example Simple Example\n * ```tsx\n * <NativeSelect label=\"Label\">\n * <option value=\"a\">Value 1</option>\n * <option value=\"b\">Value 2</option>\n * <option value=\"c\">Value 3</option>\n * <option value=\"d\">Value 4</option>\n * </NativeSelect>\n * ```\n *\n * @example Required Value Example\n * ```tsx\n * function Example(): ReactElement {\n * // using `defaultValue=\"\"` makes it so the first option selected by default\n * // and considered an \"invalid\" value since it is `disabled`\n * //\n * // a `name` must be set with `required` so that the form validation will\n * // fire if the value is still the empty string when the form is submitted\n * //\n * // the first `<option>` is kind of like placeholder text since it doesn't\n * // have a value and is disabled by default\n *\n * return (\n * <NativeSelect\n * label=\"State\"\n * name=\"state\"\n * required\n * defaultValue=\"\"\n * >\n * <option value=\"\" disabled>Choose a state</option>\n * {states.map(({ name, code }) => (\n * <option key={code} value={code}>{name}</option>\n * ))}\n * </NativeSelect>\n * );\n * }\n * ```\n *\n * @see {@link https://react-md.dev/components/native-select | NativeSelect Demos}\n */\nexport const NativeSelect = forwardRef<HTMLSelectElement, NativeSelectProps>(\n function NativeSelect(props, ref) {\n const {\n id: propId,\n style,\n className,\n icon: propIcon,\n label,\n labelProps,\n labelStyle,\n labelClassName,\n selectStyle,\n selectClassName,\n autoCompleteValue,\n autoComplete = autoCompleteValue,\n name = autoCompleteValue,\n dense,\n error,\n active,\n inline,\n leftAddon,\n rightAddon: propRightAddon,\n leftAddonProps,\n rightAddonProps,\n disableLeftAddonStyles,\n disableRightAddonStyles,\n theme: propTheme,\n underlineDirection: propUnderlineDirection,\n messageProps,\n messageContainerProps,\n containerProps,\n children,\n ...remaining\n } = props;\n const { disabled, readOnly, multiple } = props;\n const id = useEnsuredId(propId, \"select\");\n const theme = getFormConfig(\"theme\", propTheme);\n const underlineDirection = getFormConfig(\n \"underlineDirection\",\n propUnderlineDirection\n );\n const icon = getIcon(\"dropdown\", propIcon);\n const underlined = theme === \"underline\" || theme === \"filled\";\n\n let rightAddon = propRightAddon;\n if (propRightAddon === undefined && !multiple) {\n rightAddon = icon;\n }\n\n return (\n <FormMessageContainer\n inline={inline}\n {...messageContainerProps}\n messageProps={\n messageProps && {\n error,\n theme,\n ...messageProps,\n }\n }\n >\n <TextFieldContainer\n {...containerProps}\n style={style}\n className={nativeSelectContainer({\n label: !!label,\n multiple,\n underlined,\n className,\n })}\n theme={theme}\n label={!!label}\n error={error}\n dense={dense}\n inline={inline}\n active={active}\n readOnly={readOnly}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonProps={leftAddonProps}\n rightAddon={rightAddon}\n rightAddonProps={rightAddonProps}\n underlineDirection={underlineDirection}\n disableLeftAddonStyles={disableLeftAddonStyles}\n disableRightAddonStyles={disableRightAddonStyles}\n >\n <select\n {...remaining}\n id={id}\n ref={ref}\n autoComplete={autoComplete}\n name={name}\n disabled={disabled}\n style={selectStyle}\n className={nativeSelect({\n icon: !!icon,\n className: selectClassName,\n })}\n >\n {children}\n </select>\n {label && (\n <Label\n {...labelProps}\n htmlFor={id}\n style={labelProps?.style ?? labelStyle}\n className={labelProps?.className ?? labelClassName}\n floating\n dense={dense}\n error={error}\n active={active}\n disabled={disabled}\n >\n {label}\n </Label>\n )}\n </TextFieldContainer>\n </FormMessageContainer>\n );\n }\n);\n"],"names":["forwardRef","getIcon","useEnsuredId","FormMessageContainer","Label","TextFieldContainer","getFormConfig","nativeSelect","nativeSelectContainer","NativeSelect","props","ref","id","propId","style","className","icon","propIcon","label","labelProps","labelStyle","labelClassName","selectStyle","selectClassName","autoCompleteValue","autoComplete","name","dense","error","active","inline","leftAddon","rightAddon","propRightAddon","leftAddonProps","rightAddonProps","disableLeftAddonStyles","disableRightAddonStyles","theme","propTheme","underlineDirection","propUnderlineDirection","messageProps","messageContainerProps","containerProps","children","remaining","disabled","readOnly","multiple","underlined","undefined","select","htmlFor","floating"],"mappings":";AAAA,SAKEA,UAAU,QACL,QAAQ;AAEf,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,YAAY,EAAEC,qBAAqB,QAAQ,0BAA0B;AAqD9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CC,GACD,OAAO,MAAMC,6BAAeT,WAC1B,SAASS,aAAaC,KAAK,EAAEC,GAAG;IAC9B,MAAM,EACJC,IAAIC,MAAM,EACVC,KAAK,EACLC,SAAS,EACTC,MAAMC,QAAQ,EACdC,KAAK,EACLC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,eAAe,EACfC,iBAAiB,EACjBC,eAAeD,iBAAiB,EAChCE,OAAOF,iBAAiB,EACxBG,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,YAAYC,cAAc,EAC1BC,cAAc,EACdC,eAAe,EACfC,sBAAsB,EACtBC,uBAAuB,EACvBC,OAAOC,SAAS,EAChBC,oBAAoBC,sBAAsB,EAC1CC,YAAY,EACZC,qBAAqB,EACrBC,cAAc,EACdC,QAAQ,EACR,GAAGC,WACJ,GAAGpC;IACJ,MAAM,EAAEqC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGvC;IACzC,MAAME,KAAKV,aAAaW,QAAQ;IAChC,MAAMyB,QAAQhC,cAAc,SAASiC;IACrC,MAAMC,qBAAqBlC,cACzB,sBACAmC;IAEF,MAAMzB,OAAOf,QAAQ,YAAYgB;IACjC,MAAMiC,aAAaZ,UAAU,eAAeA,UAAU;IAEtD,IAAIN,aAAaC;IACjB,IAAIA,mBAAmBkB,aAAa,CAACF,UAAU;QAC7CjB,aAAahB;IACf;IAEA,qBACE,KAACb;QACC2B,QAAQA;QACP,GAAGa,qBAAqB;QACzBD,cACEA,gBAAgB;YACdd;YACAU;YACA,GAAGI,YAAY;QACjB;kBAGF,cAAA,MAACrC;YACE,GAAGuC,cAAc;YAClB9B,OAAOA;YACPC,WAAWP,sBAAsB;gBAC/BU,OAAO,CAAC,CAACA;gBACT+B;gBACAC;gBACAnC;YACF;YACAuB,OAAOA;YACPpB,OAAO,CAAC,CAACA;YACTU,OAAOA;YACPD,OAAOA;YACPG,QAAQA;YACRD,QAAQA;YACRmB,UAAUA;YACVD,UAAUA;YACVhB,WAAWA;YACXG,gBAAgBA;YAChBF,YAAYA;YACZG,iBAAiBA;YACjBK,oBAAoBA;YACpBJ,wBAAwBA;YACxBC,yBAAyBA;;8BAEzB,KAACe;oBACE,GAAGN,SAAS;oBACblC,IAAIA;oBACJD,KAAKA;oBACLc,cAAcA;oBACdC,MAAMA;oBACNqB,UAAUA;oBACVjC,OAAOQ;oBACPP,WAAWR,aAAa;wBACtBS,MAAM,CAAC,CAACA;wBACRD,WAAWQ;oBACb;8BAECsB;;gBAEF3B,uBACC,KAACd;oBACE,GAAGe,UAAU;oBACdkC,SAASzC;oBACTE,OAAOK,YAAYL,SAASM;oBAC5BL,WAAWI,YAAYJ,aAAaM;oBACpCiC,QAAQ;oBACR3B,OAAOA;oBACPC,OAAOA;oBACPC,QAAQA;oBACRkB,UAAUA;8BAET7B;;;;;AAMb,GACA"}
1
+ {"version":3,"sources":["../../src/form/NativeSelect.tsx"],"sourcesContent":["import {\n type CSSProperties,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n type SelectHTMLAttributes,\n} from \"react\";\n\nimport { getIcon } from \"../icon/config.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { FormMessageContainer } from \"./FormMessageContainer.js\";\nimport { Label } from \"./Label.js\";\nimport { TextFieldContainer } from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { nativeSelect, nativeSelectContainer } from \"./nativeSelectStyles.js\";\nimport {\n type FormFieldOptions,\n type UserAgentAutocompleteProps,\n} from \"./types.js\";\n\n/**\n * @since 6.0.0 Added support for {@link UserAgentAutocompleteProps}\n */\nexport interface NativeSelectProps\n extends\n Omit<SelectHTMLAttributes<HTMLSelectElement>, \"autoComplete\">,\n UserAgentAutocompleteProps,\n FormFieldOptions {\n ref?: Ref<HTMLSelectElement>;\n\n /**\n * A custom dropdown icon to use instead of the browser's default select\n * dropdown icon.\n *\n * Set this to `null` if the browser's default icon should be used instead.\n *\n * @defaultValue `getIcon(\"dropdown\")`\n */\n icon?: ReactNode;\n\n /**\n * This applies custom inline styles to the `<select>` element since the\n * `style` prop is applied to the container element instead.\n */\n selectStyle?: CSSProperties;\n\n /**\n * This applies custom className to the `<select>` element since the\n * `className` prop is applied to the container element instead.\n */\n selectClassName?: string;\n\n /**\n * This should be a list of `<option>` elements for specific values within the\n * `<select>`.\n *\n * Check out the {@link NativeSelect} for examples around using \"placeholder\"\n * text and requiring a value to be selected.\n */\n children: ReactNode;\n\n /**\n * Optional props to provide to the {@link TextFieldContainer} component.\n * There probably isn't any real use for this prop other than if you need to\n * add a `ref` for some DOM behavior.\n */\n containerProps?: PropsWithRef<HTMLAttributes<HTMLDivElement>>;\n}\n\n/**\n * This component is a wrapper for the native `<select>` field that applies the\n * same theming as `TextField` and `TextArea` components. This component might\n * not be used much since the `Select` offers more styling options.\n *\n * @example Simple Example\n * ```tsx\n * <NativeSelect label=\"Label\">\n * <option value=\"a\">Value 1</option>\n * <option value=\"b\">Value 2</option>\n * <option value=\"c\">Value 3</option>\n * <option value=\"d\">Value 4</option>\n * </NativeSelect>\n * ```\n *\n * @example Required Value Example\n * ```tsx\n * function Example(): ReactElement {\n * // using `defaultValue=\"\"` makes it so the first option selected by default\n * // and considered an \"invalid\" value since it is `disabled`\n * //\n * // a `name` must be set with `required` so that the form validation will\n * // fire if the value is still the empty string when the form is submitted\n * //\n * // the first `<option>` is kind of like placeholder text since it doesn't\n * // have a value and is disabled by default\n *\n * return (\n * <NativeSelect\n * label=\"State\"\n * name=\"state\"\n * required\n * defaultValue=\"\"\n * >\n * <option value=\"\" disabled>Choose a state</option>\n * {states.map(({ name, code }) => (\n * <option key={code} value={code}>{name}</option>\n * ))}\n * </NativeSelect>\n * );\n * }\n * ```\n *\n * @see {@link https://react-md.dev/components/native-select | NativeSelect Demos}\n */\nexport function NativeSelect(props: NativeSelectProps): ReactElement {\n const {\n ref,\n id: propId,\n style,\n className,\n icon: propIcon,\n label,\n labelProps,\n labelStyle,\n labelClassName,\n selectStyle,\n selectClassName,\n autoCompleteValue,\n autoComplete = autoCompleteValue,\n name = autoCompleteValue,\n dense,\n error,\n active,\n inline,\n leftAddon,\n rightAddon: propRightAddon,\n leftAddonProps,\n rightAddonProps,\n disableLeftAddonStyles,\n disableRightAddonStyles,\n theme: propTheme,\n underlineDirection: propUnderlineDirection,\n messageProps,\n messageContainerProps,\n containerProps,\n children,\n ...remaining\n } = props;\n const { disabled, readOnly, multiple } = props;\n const id = useEnsuredId(propId, \"select\");\n const theme = getFormConfig(\"theme\", propTheme);\n const underlineDirection = getFormConfig(\n \"underlineDirection\",\n propUnderlineDirection\n );\n const icon = getIcon(\"dropdown\", propIcon);\n const underlined = theme === \"underline\" || theme === \"filled\";\n\n let rightAddon = propRightAddon;\n if (propRightAddon === undefined && !multiple) {\n rightAddon = icon;\n }\n\n return (\n <FormMessageContainer\n inline={inline}\n {...messageContainerProps}\n messageProps={\n messageProps && {\n error,\n theme,\n ...messageProps,\n }\n }\n >\n <TextFieldContainer\n {...containerProps}\n style={style}\n className={nativeSelectContainer({\n label: !!label,\n multiple,\n underlined,\n className,\n })}\n theme={theme}\n label={!!label}\n error={error}\n dense={dense}\n inline={inline}\n active={active}\n readOnly={readOnly}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonProps={leftAddonProps}\n rightAddon={rightAddon}\n rightAddonProps={rightAddonProps}\n underlineDirection={underlineDirection}\n disableLeftAddonStyles={disableLeftAddonStyles}\n disableRightAddonStyles={disableRightAddonStyles}\n >\n <select\n {...remaining}\n id={id}\n ref={ref}\n autoComplete={autoComplete}\n name={name}\n disabled={disabled}\n style={selectStyle}\n className={nativeSelect({\n icon: !!icon,\n className: selectClassName,\n })}\n >\n {children}\n </select>\n {label && (\n <Label\n {...labelProps}\n htmlFor={id}\n style={labelProps?.style ?? labelStyle}\n className={labelProps?.className ?? labelClassName}\n floating\n dense={dense}\n error={error}\n active={active}\n disabled={disabled}\n >\n {label}\n </Label>\n )}\n </TextFieldContainer>\n </FormMessageContainer>\n );\n}\n"],"names":["getIcon","useEnsuredId","FormMessageContainer","Label","TextFieldContainer","getFormConfig","nativeSelect","nativeSelectContainer","NativeSelect","props","ref","id","propId","style","className","icon","propIcon","label","labelProps","labelStyle","labelClassName","selectStyle","selectClassName","autoCompleteValue","autoComplete","name","dense","error","active","inline","leftAddon","rightAddon","propRightAddon","leftAddonProps","rightAddonProps","disableLeftAddonStyles","disableRightAddonStyles","theme","propTheme","underlineDirection","propUnderlineDirection","messageProps","messageContainerProps","containerProps","children","remaining","disabled","readOnly","multiple","underlined","undefined","select","htmlFor","floating"],"mappings":";AASA,SAASA,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,YAAY,EAAEC,qBAAqB,QAAQ,0BAA0B;AAuD9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CC,GACD,OAAO,SAASC,aAAaC,KAAwB;IACnD,MAAM,EACJC,GAAG,EACHC,IAAIC,MAAM,EACVC,KAAK,EACLC,SAAS,EACTC,MAAMC,QAAQ,EACdC,KAAK,EACLC,UAAU,EACVC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,eAAe,EACfC,iBAAiB,EACjBC,eAAeD,iBAAiB,EAChCE,OAAOF,iBAAiB,EACxBG,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,YAAYC,cAAc,EAC1BC,cAAc,EACdC,eAAe,EACfC,sBAAsB,EACtBC,uBAAuB,EACvBC,OAAOC,SAAS,EAChBC,oBAAoBC,sBAAsB,EAC1CC,YAAY,EACZC,qBAAqB,EACrBC,cAAc,EACdC,QAAQ,EACR,GAAGC,WACJ,GAAGpC;IACJ,MAAM,EAAEqC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGvC;IACzC,MAAME,KAAKV,aAAaW,QAAQ;IAChC,MAAMyB,QAAQhC,cAAc,SAASiC;IACrC,MAAMC,qBAAqBlC,cACzB,sBACAmC;IAEF,MAAMzB,OAAOf,QAAQ,YAAYgB;IACjC,MAAMiC,aAAaZ,UAAU,eAAeA,UAAU;IAEtD,IAAIN,aAAaC;IACjB,IAAIA,mBAAmBkB,aAAa,CAACF,UAAU;QAC7CjB,aAAahB;IACf;IAEA,qBACE,KAACb;QACC2B,QAAQA;QACP,GAAGa,qBAAqB;QACzBD,cACEA,gBAAgB;YACdd;YACAU;YACA,GAAGI,YAAY;QACjB;kBAGF,cAAA,MAACrC;YACE,GAAGuC,cAAc;YAClB9B,OAAOA;YACPC,WAAWP,sBAAsB;gBAC/BU,OAAO,CAAC,CAACA;gBACT+B;gBACAC;gBACAnC;YACF;YACAuB,OAAOA;YACPpB,OAAO,CAAC,CAACA;YACTU,OAAOA;YACPD,OAAOA;YACPG,QAAQA;YACRD,QAAQA;YACRmB,UAAUA;YACVD,UAAUA;YACVhB,WAAWA;YACXG,gBAAgBA;YAChBF,YAAYA;YACZG,iBAAiBA;YACjBK,oBAAoBA;YACpBJ,wBAAwBA;YACxBC,yBAAyBA;;8BAEzB,KAACe;oBACE,GAAGN,SAAS;oBACblC,IAAIA;oBACJD,KAAKA;oBACLc,cAAcA;oBACdC,MAAMA;oBACNqB,UAAUA;oBACVjC,OAAOQ;oBACPP,WAAWR,aAAa;wBACtBS,MAAM,CAAC,CAACA;wBACRD,WAAWQ;oBACb;8BAECsB;;gBAEF3B,uBACC,KAACd;oBACE,GAAGe,UAAU;oBACdkC,SAASzC;oBACTE,OAAOK,YAAYL,SAASM;oBAC5BL,WAAWI,YAAYJ,aAAaM;oBACpCiC,QAAQ;oBACR3B,OAAOA;oBACPC,OAAOA;oBACPC,QAAQA;oBACRkB,UAAUA;8BAET7B;;;;;AAMb"}
@@ -1,9 +1,10 @@
1
- import { type ReactNode } from "react";
1
+ import { type ReactElement, type ReactNode, type Ref } from "react";
2
2
  import { type ListElement, type ListProps } from "../list/List.js";
3
3
  import { type ListSubheaderProps } from "../list/ListSubheader.js";
4
4
  import { type PropsWithRef } from "../types.js";
5
5
  /** @since 6.0.0 */
6
6
  export interface OptGroupProps extends Omit<ListProps, "role"> {
7
+ ref?: Ref<ListElement>;
7
8
  /**
8
9
  * This is really the `children` to display in a `ListSubheader` that
9
10
  * describes the optgroup. It was named `label` to match the native
@@ -58,4 +59,4 @@ export interface OptGroupProps extends Omit<ListProps, "role"> {
58
59
  * @see {@link https://react-md.dev/components/select | Select Demos}
59
60
  * @since 6.0.0
60
61
  */
61
- export declare const OptGroup: import("react").ForwardRefExoticComponent<OptGroupProps & import("react").RefAttributes<ListElement>>;
62
+ export declare function OptGroup(props: OptGroupProps): ReactElement;
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
3
  import { ListSubheader } from "../list/ListSubheader.js";
5
4
  import { MenuItemGroup } from "../menu/MenuItemGroup.js";
6
5
  import { useEnsuredId } from "../useEnsuredId.js";
@@ -39,8 +38,8 @@ import { useEnsuredId } from "../useEnsuredId.js";
39
38
  *
40
39
  * @see {@link https://react-md.dev/components/select | Select Demos}
41
40
  * @since 6.0.0
42
- */ export const OptGroup = /*#__PURE__*/ forwardRef(function OptGroup(props, ref) {
43
- const { children, label, labelProps, ...remaining } = props;
41
+ */ export function OptGroup(props) {
42
+ const { ref, children, label, labelProps, ...remaining } = props;
44
43
  const labelId = useEnsuredId(labelProps?.id, "optgroup");
45
44
  return /*#__PURE__*/ _jsxs(MenuItemGroup, {
46
45
  "aria-labelledby": labelId,
@@ -55,6 +54,6 @@ import { useEnsuredId } from "../useEnsuredId.js";
55
54
  children
56
55
  ]
57
56
  });
58
- });
57
+ }
59
58
 
60
59
  //# sourceMappingURL=OptGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/OptGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode, forwardRef } from \"react\";\n\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport {\n ListSubheader,\n type ListSubheaderProps,\n} from \"../list/ListSubheader.js\";\nimport { MenuItemGroup } from \"../menu/MenuItemGroup.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/** @since 6.0.0 */\nexport interface OptGroupProps extends Omit<ListProps, \"role\"> {\n /**\n * This is really the `children` to display in a `ListSubheader` that\n * describes the optgroup. It was named `label` to match the native\n * `<optgroup>` element.\n *\n * @see {@link labelProps} for additional styling and options.\n */\n label: ReactNode;\n\n /**\n * This can be used to apply any additional props to the `ListSubheader` that\n * describes the group of options.\n */\n labelProps?: PropsWithRef<Omit<ListSubheaderProps, \"role\" | \"children\">>;\n\n /**\n * This should be any `Option`s to display within the group.\n */\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is more of a \"convenience component\" to help enforce the\n * correct accessibility when creating an `<optgroup>` with the `Select`\n * component.\n *\n * @example Simple Example\n * ```tsx\n * import { Select } from \"@react-md/core/form/Select\";\n * import { OptGroup } from \"@react-md/core/form/OptGroup\";\n * import { Option } from \"@react-md/core/form/Option\";\n * import FavoriteIcon from \"@react-md/material-icons/FavoriteIcon\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <Select label=\"Choose an animal\">\n * <OptGroup label=\"Land\" labelProps={{ className: \"custom-class-name\" }}>\n * <Option value={0}>Cat</Option>\n * <Option value={1}>Dog</Option>\n * <Option value={2}>Tiger</Option>\n * </OptGroup>\n * <OptGroup label=\"Water\" labelProps={{ rightAddon: <FavoriteIcon /> }}>\n * <Option value={3}>Dolphin</Option>\n * <Option value={4}>Flounder</Option>\n * </OptGroup>\n * </Select>\n *\n * );\n * }\n * ```\n *\n * @see {@link https://react-md.dev/components/select | Select Demos}\n * @since 6.0.0\n */\nexport const OptGroup = forwardRef<ListElement, OptGroupProps>(\n function OptGroup(props, ref) {\n const { children, label, labelProps, ...remaining } = props;\n const labelId = useEnsuredId(labelProps?.id, \"optgroup\");\n\n return (\n <MenuItemGroup aria-labelledby={labelId} {...remaining} ref={ref}>\n <ListSubheader {...labelProps} id={labelId}>\n {label}\n </ListSubheader>\n {children}\n </MenuItemGroup>\n );\n }\n);\n"],"names":["forwardRef","ListSubheader","MenuItemGroup","useEnsuredId","OptGroup","props","ref","children","label","labelProps","remaining","labelId","id","aria-labelledby"],"mappings":"AAAA;;AAEA,SAAyBA,UAAU,QAAQ,QAAQ;AAGnD,SACEC,aAAa,QAER,2BAA2B;AAClC,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,YAAY,QAAQ,qBAAqB;AAyBlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCC,GACD,OAAO,MAAMC,yBAAWJ,WACtB,SAASI,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGC,WAAW,GAAGL;IACtD,MAAMM,UAAUR,aAAaM,YAAYG,IAAI;IAE7C,qBACE,MAACV;QAAcW,mBAAiBF;QAAU,GAAGD,SAAS;QAAEJ,KAAKA;;0BAC3D,KAACL;gBAAe,GAAGQ,UAAU;gBAAEG,IAAID;0BAChCH;;YAEFD;;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/form/OptGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactElement, type ReactNode, type Ref } from \"react\";\n\nimport { type ListElement, type ListProps } from \"../list/List.js\";\nimport {\n ListSubheader,\n type ListSubheaderProps,\n} from \"../list/ListSubheader.js\";\nimport { MenuItemGroup } from \"../menu/MenuItemGroup.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\n\n/** @since 6.0.0 */\nexport interface OptGroupProps extends Omit<ListProps, \"role\"> {\n ref?: Ref<ListElement>;\n\n /**\n * This is really the `children` to display in a `ListSubheader` that\n * describes the optgroup. It was named `label` to match the native\n * `<optgroup>` element.\n *\n * @see {@link labelProps} for additional styling and options.\n */\n label: ReactNode;\n\n /**\n * This can be used to apply any additional props to the `ListSubheader` that\n * describes the group of options.\n */\n labelProps?: PropsWithRef<Omit<ListSubheaderProps, \"role\" | \"children\">>;\n\n /**\n * This should be any `Option`s to display within the group.\n */\n children: ReactNode;\n}\n\n/**\n * **Client Component**\n *\n * This component is more of a \"convenience component\" to help enforce the\n * correct accessibility when creating an `<optgroup>` with the `Select`\n * component.\n *\n * @example Simple Example\n * ```tsx\n * import { Select } from \"@react-md/core/form/Select\";\n * import { OptGroup } from \"@react-md/core/form/OptGroup\";\n * import { Option } from \"@react-md/core/form/Option\";\n * import FavoriteIcon from \"@react-md/material-icons/FavoriteIcon\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <Select label=\"Choose an animal\">\n * <OptGroup label=\"Land\" labelProps={{ className: \"custom-class-name\" }}>\n * <Option value={0}>Cat</Option>\n * <Option value={1}>Dog</Option>\n * <Option value={2}>Tiger</Option>\n * </OptGroup>\n * <OptGroup label=\"Water\" labelProps={{ rightAddon: <FavoriteIcon /> }}>\n * <Option value={3}>Dolphin</Option>\n * <Option value={4}>Flounder</Option>\n * </OptGroup>\n * </Select>\n *\n * );\n * }\n * ```\n *\n * @see {@link https://react-md.dev/components/select | Select Demos}\n * @since 6.0.0\n */\nexport function OptGroup(props: OptGroupProps): ReactElement {\n const { ref, children, label, labelProps, ...remaining } = props;\n const labelId = useEnsuredId(labelProps?.id, \"optgroup\");\n\n return (\n <MenuItemGroup aria-labelledby={labelId} {...remaining} ref={ref}>\n <ListSubheader {...labelProps} id={labelId}>\n {label}\n </ListSubheader>\n {children}\n </MenuItemGroup>\n );\n}\n"],"names":["ListSubheader","MenuItemGroup","useEnsuredId","OptGroup","props","ref","children","label","labelProps","remaining","labelId","id","aria-labelledby"],"mappings":"AAAA;;AAKA,SACEA,aAAa,QAER,2BAA2B;AAClC,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,YAAY,QAAQ,qBAAqB;AA2BlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCC,GACD,OAAO,SAASC,SAASC,KAAoB;IAC3C,MAAM,EAAEC,GAAG,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGC,WAAW,GAAGL;IAC3D,MAAMM,UAAUR,aAAaM,YAAYG,IAAI;IAE7C,qBACE,MAACV;QAAcW,mBAAiBF;QAAU,GAAGD,SAAS;QAAEJ,KAAKA;;0BAC3D,KAACL;gBAAe,GAAGQ,UAAU;gBAAEG,IAAID;0BAChCH;;YAEFD;;;AAGP"}
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from "react";
1
+ import { type ReactElement, type ReactNode, type Ref } from "react";
2
2
  import { type TextIconSpacingProps } from "../icon/TextIconSpacing.js";
3
3
  import { type MenuItemProps } from "../menu/MenuItem.js";
4
4
  /**
@@ -42,6 +42,7 @@ export interface OptionSelectedIconProps {
42
42
  * `selectedIconAfter`, and `iconSpacingProps` props.
43
43
  */
44
44
  export interface OptionProps extends MenuItemProps, OptionSelectedIconProps {
45
+ ref?: Ref<HTMLLIElement>;
45
46
  /**
46
47
  * @defaultValue `"option"`
47
48
  */
@@ -108,4 +109,4 @@ export interface OptionProps extends MenuItemProps, OptionSelectedIconProps {
108
109
  * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
109
110
  * `selectedIconAfter`, `iconSpacingProps`, and `selectedClassName` props.
110
111
  */
111
- export declare const Option: import("react").ForwardRefExoticComponent<OptionProps & import("react").RefAttributes<HTMLLIElement>>;
112
+ export declare function Option(props: OptionProps): ReactElement;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { cnb } from "cnbuilder";
4
- import { Fragment, forwardRef } from "react";
4
+ import { Fragment } from "react";
5
5
  import { TextIconSpacing } from "../icon/TextIconSpacing.js";
6
6
  import { getIcon } from "../icon/config.js";
7
7
  import { icon } from "../icon/styles.js";
@@ -35,8 +35,8 @@ const noop = ()=>{
35
35
  * @since 6.0.0 removed the `selected` and `focused` props.
36
36
  * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,
37
37
  * `selectedIconAfter`, `iconSpacingProps`, and `selectedClassName` props.
38
- */ export const Option = /*#__PURE__*/ forwardRef(function Option(props, ref) {
39
- const { id: propId, role = "option", value, children: propChildren, onClick = noop, className, selectedClassName, selectedIcon: propSelectedIcon, unselectedIcon: propUnselectedIcon, selectedIconAfter: propSelectedIconAfter, disableSelectedIcon: propDisableSelectedIcon, textIconSpacingProps, leftAddon: propLeftAddon, leftAddonType, leftAddonClassName, rightAddon: propRightAddon, rightAddonType, rightAddonClassName, secondaryText, height: propHeight, disableTextChildren: propDisableTextChildren, ...remaining } = props;
38
+ */ export function Option(props) {
39
+ const { ref, id: propId, role = "option", value, children: propChildren, onClick = noop, className, selectedClassName, selectedIcon: propSelectedIcon, unselectedIcon: propUnselectedIcon, selectedIconAfter: propSelectedIconAfter, disableSelectedIcon: propDisableSelectedIcon, textIconSpacingProps, leftAddon: propLeftAddon, leftAddonType, leftAddonClassName, rightAddon: propRightAddon, rightAddonType, rightAddonClassName, secondaryText, height: propHeight, disableTextChildren: propDisableTextChildren, ...remaining } = props;
40
40
  const id = useEnsuredId(propId, "option");
41
41
  const { selectOption, isOptionSelected, disableSelectedIcon: contextDisableSelectedIcon, selectedIcon: contextSelectedIcon, unselectedIcon: contextUnselectedIcon, selectedIconAfter: contextSelectedIconAfter } = useListboxContext();
42
42
  const selectedIconAfter = propSelectedIconAfter ?? contextSelectedIconAfter;
@@ -111,6 +111,6 @@ const noop = ()=>{
111
111
  disableTextChildren: disableTextChildren,
112
112
  children: children
113
113
  });
114
- });
114
+ }
115
115
 
116
116
  //# sourceMappingURL=Option.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Option.tsx"],"sourcesContent":["\"use client\";\n\nimport { cnb } from \"cnbuilder\";\nimport { Fragment, type ReactNode, forwardRef } from \"react\";\n\nimport {\n TextIconSpacing,\n type TextIconSpacingProps,\n} from \"../icon/TextIconSpacing.js\";\nimport { getIcon } from \"../icon/config.js\";\nimport { icon } from \"../icon/styles.js\";\nimport { ListItemText } from \"../list/ListItemText.js\";\nimport { getListItemHeight } from \"../list/getListItemHeight.js\";\nimport { MenuItem, type MenuItemProps } from \"../menu/MenuItem.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useListboxContext } from \"./ListboxProvider.js\";\nimport { option } from \"./optionStyles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This icon is used while the option is unselected so that the selected and\n * unselected options have the same alignment.\n *\n * @since 6.0.0\n * @defaultValue `<span className=\"rmd-icon rmd-icon--svg />`\n */\nexport const DEFAULT_OPTION_UNSELECTED_ICON = (\n <span className={icon({ type: \"svg\" })} />\n);\n\n/**\n * @since 6.0.0\n */\nexport interface OptionSelectedIconProps {\n /**\n * @defaultValue `getIcon(\"selected\")`\n */\n selectedIcon?: ReactNode;\n\n /**\n * @see {@link DEFAULT_OPTION_UNSELECTED_ICON}\n * @defaultValue `<span className=\"rmd-icon rmd-icon--svg\" />`\n */\n unselectedIcon?: ReactNode;\n\n /**\n * Set this to `true` of the {@link selectedIcon}/{@link unselectedIcon}\n * should appear as the {@link rightAddon} instead of the {@link leftAddon}.\n *\n * @defaultValue `false`\n */\n selectedIconAfter?: boolean;\n\n /**\n * Set this to `true` to remove selected icon behavior from the `Option`.\n *\n * @defaultValue `false`\n */\n disableSelectedIcon?: boolean;\n}\n\n/**\n * @since 6.0.0 removed the `selected` and `focused` props.\n * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, and `iconSpacingProps` props.\n */\nexport interface OptionProps extends MenuItemProps, OptionSelectedIconProps {\n /**\n * @defaultValue `\"option\"`\n */\n role?: string;\n value: string | number | object;\n\n /**\n * An optional className to apply only while the current option is selected to\n * override any global default selected styles. It is recommended to update\n * the `react-md.$form-option-selected-styles` map first to change selected\n * style globally and then any one-off customizations through this prop.\n *\n * @example Global Change\n * ```scss\n * @use \"@react-md/core\" with (\n * // these are the defaults\n * $form-option-selected-styles: (\n * --rmd-icon-color: currentcolor,\n * background-color: colors.$blue-900,\n * color: colors.$white,\n * ),\n *\n * // so if you wanted to remove the styles globally\n * $form-option-selected-styles: (),\n * );\n * ```\n *\n * This really results in something like:\n * ```ts\n * className=\"rmd-list-item ... rmd-menu-item ... rmd-option rmd-option--selected ${selectedClassName}\"\n * ```\n */\n selectedClassName?: string;\n\n /**\n * Since the `selectedIcon`/`unselectedIcon` are rendered as\n * `leftAddon`/`rightAddon`, the provided `leftAddon`/`rightAddon` will be\n * wrapped in the {@link TextIconSpacing} component to maintain the correct\n * spacing. You can use this prop to provide any additional configuration to\n * the spacing.\n *\n * @example\n * ```tsx\n * <Option\n * leftAddon={<Avatar>A</Avatar>}\n * leftAddonType=\"avatar\"\n * value={0}\n * textIconSpacingProps={{\n * beforeClassName: \"my-custom-class-name\",\n * }}\n * >\n * Some Content\n * </Option>\n * ```\n */\n textIconSpacingProps?: Omit<TextIconSpacingProps, \"icon\" | \"children\">;\n}\n\n/**\n * **Client Component**\n *\n * This component is a wrapper around the {@link MenuItem} to implement custom\n * select option behavior.\n *\n * @see {@link https://react-md.dev/components/select | Select Demos}\n * @since 6.0.0 removed the `selected` and `focused` props.\n * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, `iconSpacingProps`, and `selectedClassName` props.\n */\nexport const Option = forwardRef<HTMLLIElement, OptionProps>(\n function Option(props, ref) {\n const {\n id: propId,\n role = \"option\",\n value,\n children: propChildren,\n onClick = noop,\n className,\n selectedClassName,\n selectedIcon: propSelectedIcon,\n unselectedIcon: propUnselectedIcon,\n selectedIconAfter: propSelectedIconAfter,\n disableSelectedIcon: propDisableSelectedIcon,\n textIconSpacingProps,\n leftAddon: propLeftAddon,\n leftAddonType,\n leftAddonClassName,\n rightAddon: propRightAddon,\n rightAddonType,\n rightAddonClassName,\n secondaryText,\n height: propHeight,\n disableTextChildren: propDisableTextChildren,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"option\");\n const {\n selectOption,\n isOptionSelected,\n disableSelectedIcon: contextDisableSelectedIcon,\n selectedIcon: contextSelectedIcon,\n unselectedIcon: contextUnselectedIcon,\n selectedIconAfter: contextSelectedIconAfter,\n } = useListboxContext();\n const selectedIconAfter = propSelectedIconAfter ?? contextSelectedIconAfter;\n const disableSelectedIcon =\n propDisableSelectedIcon ?? contextDisableSelectedIcon;\n const selected = isOptionSelected(value);\n const selectedIcon = getIcon(\n \"selected\",\n disableSelectedIcon ? null : (propSelectedIcon ?? contextSelectedIcon)\n );\n const unselectedIcon = disableSelectedIcon\n ? null\n : (propUnselectedIcon ??\n contextUnselectedIcon ??\n DEFAULT_OPTION_UNSELECTED_ICON);\n const icon = selected ? selectedIcon : unselectedIcon;\n\n let leftAddon = propLeftAddon;\n let rightAddon = propRightAddon;\n let children = propChildren;\n let disableTextChildren = propDisableTextChildren;\n if (!selectedIconAfter && icon) {\n leftAddon = icon;\n if (propLeftAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propLeftAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n } else if (icon) {\n rightAddon = icon;\n if (propRightAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propRightAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n }\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon: leftAddon === icon ? null : leftAddon,\n leftAddonType,\n rightAddon: rightAddon === icon ? null : rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <MenuItem\n {...remaining}\n aria-selected={selected || undefined}\n id={id}\n ref={ref}\n role={role}\n onClick={(event) => {\n onClick(event);\n selectOption(value);\n }}\n className={option({\n icon: !!icon,\n selected,\n selectedClassName,\n className,\n })}\n secondaryText={secondaryText}\n height={height}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonClassName={cnb(\n leftAddon === icon && \"rmd-option__icon\",\n leftAddonClassName\n )}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonClassName={cnb(\n rightAddon === icon && \"rmd-option__icon\",\n rightAddonClassName\n )}\n disableTextChildren={disableTextChildren}\n >\n {children}\n </MenuItem>\n );\n }\n);\n"],"names":["cnb","Fragment","forwardRef","TextIconSpacing","getIcon","icon","ListItemText","getListItemHeight","MenuItem","useEnsuredId","useListboxContext","option","noop","DEFAULT_OPTION_UNSELECTED_ICON","span","className","type","Option","props","ref","id","propId","role","value","children","propChildren","onClick","selectedClassName","selectedIcon","propSelectedIcon","unselectedIcon","propUnselectedIcon","selectedIconAfter","propSelectedIconAfter","disableSelectedIcon","propDisableSelectedIcon","textIconSpacingProps","leftAddon","propLeftAddon","leftAddonType","leftAddonClassName","rightAddon","propRightAddon","rightAddonType","rightAddonClassName","secondaryText","height","propHeight","disableTextChildren","propDisableTextChildren","remaining","selectOption","isOptionSelected","contextDisableSelectedIcon","contextSelectedIcon","contextUnselectedIcon","contextSelectedIconAfter","selected","Wrapper","aria-selected","undefined","event"],"mappings":"AAAA;;AAEA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,EAAkBC,UAAU,QAAQ,QAAQ;AAE7D,SACEC,eAAe,QAEV,6BAA6B;AACpC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,IAAI,QAAQ,oBAAoB;AACzC,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,QAAQ,QAA4B,sBAAsB;AACnE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,MAAM,QAAQ,oBAAoB;AAE3C,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;CAMC,GACD,OAAO,MAAMC,+CACX,KAACC;IAAKC,WAAWV,KAAK;QAAEW,MAAM;IAAM;GACpC;AAiGF;;;;;;;;;;CAUC,GACD,OAAO,MAAMC,uBAASf,WACpB,SAASe,OAAOC,KAAK,EAAEC,GAAG;IACxB,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAO,QAAQ,EACfC,KAAK,EACLC,UAAUC,YAAY,EACtBC,UAAUd,IAAI,EACdG,SAAS,EACTY,iBAAiB,EACjBC,cAAcC,gBAAgB,EAC9BC,gBAAgBC,kBAAkB,EAClCC,mBAAmBC,qBAAqB,EACxCC,qBAAqBC,uBAAuB,EAC5CC,oBAAoB,EACpBC,WAAWC,aAAa,EACxBC,aAAa,EACbC,kBAAkB,EAClBC,YAAYC,cAAc,EAC1BC,cAAc,EACdC,mBAAmB,EACnBC,aAAa,EACbC,QAAQC,UAAU,EAClBC,qBAAqBC,uBAAuB,EAC5C,GAAGC,WACJ,GAAGhC;IAEJ,MAAME,KAAKX,aAAaY,QAAQ;IAChC,MAAM,EACJ8B,YAAY,EACZC,gBAAgB,EAChBlB,qBAAqBmB,0BAA0B,EAC/CzB,cAAc0B,mBAAmB,EACjCxB,gBAAgByB,qBAAqB,EACrCvB,mBAAmBwB,wBAAwB,EAC5C,GAAG9C;IACJ,MAAMsB,oBAAoBC,yBAAyBuB;IACnD,MAAMtB,sBACJC,2BAA2BkB;IAC7B,MAAMI,WAAWL,iBAAiB7B;IAClC,MAAMK,eAAexB,QACnB,YACA8B,sBAAsB,OAAQL,oBAAoByB;IAEpD,MAAMxB,iBAAiBI,sBACnB,OACCH,sBACDwB,yBACA1C;IACJ,MAAMR,OAAOoD,WAAW7B,eAAeE;IAEvC,IAAIO,YAAYC;IAChB,IAAIG,aAAaC;IACjB,IAAIlB,WAAWC;IACf,IAAIuB,sBAAsBC;IAC1B,IAAI,CAACjB,qBAAqB3B,MAAM;QAC9BgC,YAAYhC;QACZ,IAAIiC,eAAe;YACjBU,sBAAsB;YACtB,MAAMU,UAAUT,0BAA0BhD,WAAWK;YAErDkB,yBACE,KAACrB;gBAAiB,GAAGiC,oBAAoB;gBAAE/B,MAAMiC;0BAC/C,cAAA,KAACoB;8BAASlC;;;QAGhB;IACF,OAAO,IAAInB,MAAM;QACfoC,aAAapC;QACb,IAAIqC,gBAAgB;YAClBM,sBAAsB;YACtB,MAAMU,UAAUT,0BAA0BhD,WAAWK;YAErDkB,yBACE,KAACrB;gBAAiB,GAAGiC,oBAAoB;gBAAE/B,MAAMqC;0BAC/C,cAAA,KAACgB;8BAASlC;;;QAGhB;IACF;IAEA,MAAMsB,SAASvC,kBAAkB;QAC/BuC,QAAQC;QACRV,WAAWA,cAAchC,OAAO,OAAOgC;QACvCE;QACAE,YAAYA,eAAepC,OAAO,OAAOoC;QACzCE;QACAE;IACF;IAEA,qBACE,KAACrC;QACE,GAAG0C,SAAS;QACbS,iBAAeF,YAAYG;QAC3BxC,IAAIA;QACJD,KAAKA;QACLG,MAAMA;QACNI,SAAS,CAACmC;YACRnC,QAAQmC;YACRV,aAAa5B;QACf;QACAR,WAAWJ,OAAO;YAChBN,MAAM,CAAC,CAACA;YACRoD;YACA9B;YACAZ;QACF;QACA8B,eAAeA;QACfC,QAAQA;QACRT,WAAWA;QACXE,eAAeA;QACfC,oBAAoBxC,IAClBqC,cAAchC,QAAQ,oBACtBmC;QAEFC,YAAYA;QACZE,gBAAgBA;QAChBC,qBAAqB5C,IACnByC,eAAepC,QAAQ,oBACvBuC;QAEFI,qBAAqBA;kBAEpBxB;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/form/Option.tsx"],"sourcesContent":["\"use client\";\n\nimport { cnb } from \"cnbuilder\";\nimport { Fragment, type ReactElement, type ReactNode, type Ref } from \"react\";\n\nimport {\n TextIconSpacing,\n type TextIconSpacingProps,\n} from \"../icon/TextIconSpacing.js\";\nimport { getIcon } from \"../icon/config.js\";\nimport { icon } from \"../icon/styles.js\";\nimport { ListItemText } from \"../list/ListItemText.js\";\nimport { getListItemHeight } from \"../list/getListItemHeight.js\";\nimport { MenuItem, type MenuItemProps } from \"../menu/MenuItem.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useListboxContext } from \"./ListboxProvider.js\";\nimport { option } from \"./optionStyles.js\";\n\nconst noop = (): void => {\n // do nothing\n};\n\n/**\n * This icon is used while the option is unselected so that the selected and\n * unselected options have the same alignment.\n *\n * @since 6.0.0\n * @defaultValue `<span className=\"rmd-icon rmd-icon--svg />`\n */\nexport const DEFAULT_OPTION_UNSELECTED_ICON = (\n <span className={icon({ type: \"svg\" })} />\n);\n\n/**\n * @since 6.0.0\n */\nexport interface OptionSelectedIconProps {\n /**\n * @defaultValue `getIcon(\"selected\")`\n */\n selectedIcon?: ReactNode;\n\n /**\n * @see {@link DEFAULT_OPTION_UNSELECTED_ICON}\n * @defaultValue `<span className=\"rmd-icon rmd-icon--svg\" />`\n */\n unselectedIcon?: ReactNode;\n\n /**\n * Set this to `true` of the {@link selectedIcon}/{@link unselectedIcon}\n * should appear as the {@link rightAddon} instead of the {@link leftAddon}.\n *\n * @defaultValue `false`\n */\n selectedIconAfter?: boolean;\n\n /**\n * Set this to `true` to remove selected icon behavior from the `Option`.\n *\n * @defaultValue `false`\n */\n disableSelectedIcon?: boolean;\n}\n\n/**\n * @since 6.0.0 removed the `selected` and `focused` props.\n * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, and `iconSpacingProps` props.\n */\nexport interface OptionProps extends MenuItemProps, OptionSelectedIconProps {\n ref?: Ref<HTMLLIElement>;\n\n /**\n * @defaultValue `\"option\"`\n */\n role?: string;\n value: string | number | object;\n\n /**\n * An optional className to apply only while the current option is selected to\n * override any global default selected styles. It is recommended to update\n * the `react-md.$form-option-selected-styles` map first to change selected\n * style globally and then any one-off customizations through this prop.\n *\n * @example Global Change\n * ```scss\n * @use \"@react-md/core\" with (\n * // these are the defaults\n * $form-option-selected-styles: (\n * --rmd-icon-color: currentcolor,\n * background-color: colors.$blue-900,\n * color: colors.$white,\n * ),\n *\n * // so if you wanted to remove the styles globally\n * $form-option-selected-styles: (),\n * );\n * ```\n *\n * This really results in something like:\n * ```ts\n * className=\"rmd-list-item ... rmd-menu-item ... rmd-option rmd-option--selected ${selectedClassName}\"\n * ```\n */\n selectedClassName?: string;\n\n /**\n * Since the `selectedIcon`/`unselectedIcon` are rendered as\n * `leftAddon`/`rightAddon`, the provided `leftAddon`/`rightAddon` will be\n * wrapped in the {@link TextIconSpacing} component to maintain the correct\n * spacing. You can use this prop to provide any additional configuration to\n * the spacing.\n *\n * @example\n * ```tsx\n * <Option\n * leftAddon={<Avatar>A</Avatar>}\n * leftAddonType=\"avatar\"\n * value={0}\n * textIconSpacingProps={{\n * beforeClassName: \"my-custom-class-name\",\n * }}\n * >\n * Some Content\n * </Option>\n * ```\n */\n textIconSpacingProps?: Omit<TextIconSpacingProps, \"icon\" | \"children\">;\n}\n\n/**\n * **Client Component**\n *\n * This component is a wrapper around the {@link MenuItem} to implement custom\n * select option behavior.\n *\n * @see {@link https://react-md.dev/components/select | Select Demos}\n * @since 6.0.0 removed the `selected` and `focused` props.\n * @since 6.0.0 Added the `value`, `selectedIcon`, `unselectedIcon`,\n * `selectedIconAfter`, `iconSpacingProps`, and `selectedClassName` props.\n */\nexport function Option(props: OptionProps): ReactElement {\n const {\n ref,\n id: propId,\n role = \"option\",\n value,\n children: propChildren,\n onClick = noop,\n className,\n selectedClassName,\n selectedIcon: propSelectedIcon,\n unselectedIcon: propUnselectedIcon,\n selectedIconAfter: propSelectedIconAfter,\n disableSelectedIcon: propDisableSelectedIcon,\n textIconSpacingProps,\n leftAddon: propLeftAddon,\n leftAddonType,\n leftAddonClassName,\n rightAddon: propRightAddon,\n rightAddonType,\n rightAddonClassName,\n secondaryText,\n height: propHeight,\n disableTextChildren: propDisableTextChildren,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"option\");\n const {\n selectOption,\n isOptionSelected,\n disableSelectedIcon: contextDisableSelectedIcon,\n selectedIcon: contextSelectedIcon,\n unselectedIcon: contextUnselectedIcon,\n selectedIconAfter: contextSelectedIconAfter,\n } = useListboxContext();\n const selectedIconAfter = propSelectedIconAfter ?? contextSelectedIconAfter;\n const disableSelectedIcon =\n propDisableSelectedIcon ?? contextDisableSelectedIcon;\n const selected = isOptionSelected(value);\n const selectedIcon = getIcon(\n \"selected\",\n disableSelectedIcon ? null : (propSelectedIcon ?? contextSelectedIcon)\n );\n const unselectedIcon = disableSelectedIcon\n ? null\n : (propUnselectedIcon ??\n contextUnselectedIcon ??\n DEFAULT_OPTION_UNSELECTED_ICON);\n const icon = selected ? selectedIcon : unselectedIcon;\n\n let leftAddon = propLeftAddon;\n let rightAddon = propRightAddon;\n let children = propChildren;\n let disableTextChildren = propDisableTextChildren;\n if (!selectedIconAfter && icon) {\n leftAddon = icon;\n if (propLeftAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propLeftAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n } else if (icon) {\n rightAddon = icon;\n if (propRightAddon) {\n disableTextChildren = true;\n const Wrapper = propDisableTextChildren ? Fragment : ListItemText;\n\n children = (\n <TextIconSpacing {...textIconSpacingProps} icon={propRightAddon}>\n <Wrapper>{children}</Wrapper>\n </TextIconSpacing>\n );\n }\n }\n\n const height = getListItemHeight({\n height: propHeight,\n leftAddon: leftAddon === icon ? null : leftAddon,\n leftAddonType,\n rightAddon: rightAddon === icon ? null : rightAddon,\n rightAddonType,\n secondaryText,\n });\n\n return (\n <MenuItem\n {...remaining}\n aria-selected={selected || undefined}\n id={id}\n ref={ref}\n role={role}\n onClick={(event) => {\n onClick(event);\n selectOption(value);\n }}\n className={option({\n icon: !!icon,\n selected,\n selectedClassName,\n className,\n })}\n secondaryText={secondaryText}\n height={height}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonClassName={cnb(\n leftAddon === icon && \"rmd-option__icon\",\n leftAddonClassName\n )}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonClassName={cnb(\n rightAddon === icon && \"rmd-option__icon\",\n rightAddonClassName\n )}\n disableTextChildren={disableTextChildren}\n >\n {children}\n </MenuItem>\n );\n}\n"],"names":["cnb","Fragment","TextIconSpacing","getIcon","icon","ListItemText","getListItemHeight","MenuItem","useEnsuredId","useListboxContext","option","noop","DEFAULT_OPTION_UNSELECTED_ICON","span","className","type","Option","props","ref","id","propId","role","value","children","propChildren","onClick","selectedClassName","selectedIcon","propSelectedIcon","unselectedIcon","propUnselectedIcon","selectedIconAfter","propSelectedIconAfter","disableSelectedIcon","propDisableSelectedIcon","textIconSpacingProps","leftAddon","propLeftAddon","leftAddonType","leftAddonClassName","rightAddon","propRightAddon","rightAddonType","rightAddonClassName","secondaryText","height","propHeight","disableTextChildren","propDisableTextChildren","remaining","selectOption","isOptionSelected","contextDisableSelectedIcon","contextSelectedIcon","contextUnselectedIcon","contextSelectedIconAfter","selected","Wrapper","aria-selected","undefined","event"],"mappings":"AAAA;;AAEA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,QAAQ,QAAqD,QAAQ;AAE9E,SACEC,eAAe,QAEV,6BAA6B;AACpC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,IAAI,QAAQ,oBAAoB;AACzC,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,QAAQ,QAA4B,sBAAsB;AACnE,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,MAAM,QAAQ,oBAAoB;AAE3C,MAAMC,OAAO;AACX,aAAa;AACf;AAEA;;;;;;CAMC,GACD,OAAO,MAAMC,+CACX,KAACC;IAAKC,WAAWV,KAAK;QAAEW,MAAM;IAAM;GACpC;AAmGF;;;;;;;;;;CAUC,GACD,OAAO,SAASC,OAAOC,KAAkB;IACvC,MAAM,EACJC,GAAG,EACHC,IAAIC,MAAM,EACVC,OAAO,QAAQ,EACfC,KAAK,EACLC,UAAUC,YAAY,EACtBC,UAAUd,IAAI,EACdG,SAAS,EACTY,iBAAiB,EACjBC,cAAcC,gBAAgB,EAC9BC,gBAAgBC,kBAAkB,EAClCC,mBAAmBC,qBAAqB,EACxCC,qBAAqBC,uBAAuB,EAC5CC,oBAAoB,EACpBC,WAAWC,aAAa,EACxBC,aAAa,EACbC,kBAAkB,EAClBC,YAAYC,cAAc,EAC1BC,cAAc,EACdC,mBAAmB,EACnBC,aAAa,EACbC,QAAQC,UAAU,EAClBC,qBAAqBC,uBAAuB,EAC5C,GAAGC,WACJ,GAAGhC;IAEJ,MAAME,KAAKX,aAAaY,QAAQ;IAChC,MAAM,EACJ8B,YAAY,EACZC,gBAAgB,EAChBlB,qBAAqBmB,0BAA0B,EAC/CzB,cAAc0B,mBAAmB,EACjCxB,gBAAgByB,qBAAqB,EACrCvB,mBAAmBwB,wBAAwB,EAC5C,GAAG9C;IACJ,MAAMsB,oBAAoBC,yBAAyBuB;IACnD,MAAMtB,sBACJC,2BAA2BkB;IAC7B,MAAMI,WAAWL,iBAAiB7B;IAClC,MAAMK,eAAexB,QACnB,YACA8B,sBAAsB,OAAQL,oBAAoByB;IAEpD,MAAMxB,iBAAiBI,sBACnB,OACCH,sBACDwB,yBACA1C;IACJ,MAAMR,OAAOoD,WAAW7B,eAAeE;IAEvC,IAAIO,YAAYC;IAChB,IAAIG,aAAaC;IACjB,IAAIlB,WAAWC;IACf,IAAIuB,sBAAsBC;IAC1B,IAAI,CAACjB,qBAAqB3B,MAAM;QAC9BgC,YAAYhC;QACZ,IAAIiC,eAAe;YACjBU,sBAAsB;YACtB,MAAMU,UAAUT,0BAA0B/C,WAAWI;YAErDkB,yBACE,KAACrB;gBAAiB,GAAGiC,oBAAoB;gBAAE/B,MAAMiC;0BAC/C,cAAA,KAACoB;8BAASlC;;;QAGhB;IACF,OAAO,IAAInB,MAAM;QACfoC,aAAapC;QACb,IAAIqC,gBAAgB;YAClBM,sBAAsB;YACtB,MAAMU,UAAUT,0BAA0B/C,WAAWI;YAErDkB,yBACE,KAACrB;gBAAiB,GAAGiC,oBAAoB;gBAAE/B,MAAMqC;0BAC/C,cAAA,KAACgB;8BAASlC;;;QAGhB;IACF;IAEA,MAAMsB,SAASvC,kBAAkB;QAC/BuC,QAAQC;QACRV,WAAWA,cAAchC,OAAO,OAAOgC;QACvCE;QACAE,YAAYA,eAAepC,OAAO,OAAOoC;QACzCE;QACAE;IACF;IAEA,qBACE,KAACrC;QACE,GAAG0C,SAAS;QACbS,iBAAeF,YAAYG;QAC3BxC,IAAIA;QACJD,KAAKA;QACLG,MAAMA;QACNI,SAAS,CAACmC;YACRnC,QAAQmC;YACRV,aAAa5B;QACf;QACAR,WAAWJ,OAAO;YAChBN,MAAM,CAAC,CAACA;YACRoD;YACA9B;YACAZ;QACF;QACA8B,eAAeA;QACfC,QAAQA;QACRT,WAAWA;QACXE,eAAeA;QACfC,oBAAoBvC,IAClBoC,cAAchC,QAAQ,oBACtBmC;QAEFC,YAAYA;QACZE,gBAAgBA;QAChBC,qBAAqB3C,IACnBwC,eAAepC,QAAQ,oBACvBuC;QAEFI,qBAAqBA;kBAEpBxB;;AAGP"}
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from "react";
1
+ import { type ReactElement, type ReactNode } from "react";
2
2
  import { type ButtonProps } from "../button/Button.js";
3
3
  import { type PropsWithRef } from "../types.js";
4
4
  import { type TextFieldProps } from "./TextField.js";
@@ -118,4 +118,4 @@ export interface PasswordProps extends Omit<TextFieldProps, "type" | "rightAddon
118
118
  *
119
119
  * @see {@link https://react-md.dev/components/password | Password Demos}
120
120
  */
121
- export declare const Password: import("react").ForwardRefExoticComponent<PasswordProps & import("react").RefAttributes<HTMLInputElement>>;
121
+ export declare function Password(props: PasswordProps): ReactElement;
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
3
  import { Button } from "../button/Button.js";
5
4
  import { getIcon } from "../icon/config.js";
6
5
  import { useEnsuredId } from "../useEnsuredId.js";
@@ -20,8 +19,8 @@ import { password, passwordInput, passwordInputToggle } from "./passwordStyles.j
20
19
  * ```
21
20
  *
22
21
  * @see {@link https://react-md.dev/components/password | Password Demos}
23
- */ export const Password = /*#__PURE__*/ forwardRef(function Password(props, ref) {
24
- const { id: propId, name = "password", className, inputClassName, visibilityIcon: propVisibilityIcon, visibilityLabel = "Show password", visibilityProps, ...remaining } = props;
22
+ */ export function Password(props) {
23
+ const { ref, id: propId, name = "password", className, inputClassName, visibilityIcon: propVisibilityIcon, visibilityLabel = "Show password", visibilityProps, ...remaining } = props;
25
24
  const { toggled: isPasswordVisible, toggle } = useToggle(false);
26
25
  let currentVisibilityIcon;
27
26
  if (propVisibilityIcon && typeof propVisibilityIcon === "object" && "visible" in propVisibilityIcon) {
@@ -64,6 +63,6 @@ import { password, passwordInput, passwordInputToggle } from "./passwordStyles.j
64
63
  }),
65
64
  disableRightAddonStyles: true
66
65
  });
67
- });
66
+ }
68
67
 
69
68
  //# sourceMappingURL=Password.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Password.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactNode, forwardRef } from \"react\";\n\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { getIcon } from \"../icon/config.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport { TextField, type TextFieldProps } from \"./TextField.js\";\nimport {\n password,\n passwordInput,\n passwordInputToggle,\n} from \"./passwordStyles.js\";\n\n/**\n * @example Simple Example\n * ```tsx\n * const getVisibilityIcon: GetPasswordVisibilityIcon = (isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * };\n * ```\n *\n * @param isPasswordVisible - `true` when the password is visible and in plain\n * text\n * @returns a custom icon to use for the password visibility toggle.\n */\nexport type GetPasswordVisibilityIcon = (\n isPasswordVisible: boolean\n) => ReactNode;\n\n/**\n * @example Simple Example\n * ```tsx\n * const visibilityIcon: ConfigurableVisibilityIcon = {\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * };\n * ```\n */\nexport interface ConfigurableVisibilityIcon {\n /**\n * The icon to display while the password is currently visible as plain text.\n */\n visible: ReactNode;\n\n /**\n * The icon to display while the password is currently invisible as the\n * password input.\n */\n invisible: ReactNode;\n}\n\n/**\n * @since 6.0.0 Removed the `visibilityStyle`, `visibilityClassName`, and\n * `onVisibilityClick` props in favor of `visibilityProps` object.\n * @since 6.0.0 Removed the `disableVisibility` and `rightChildren` props in\n * favor of just using a `TextField` instead of the `Password` component.\n * @since 6.0.0 Merged the `getVisibilityIcon` prop behavior into the\n * `visibilityIcon` prop.\n */\nexport interface PasswordProps extends Omit<\n TextFieldProps,\n \"type\" | \"rightAddon\"\n> {\n /**\n * @defaultValue `\"password\"`\n * @since 6.0.0 Defaults to `\"password\"`\n */\n name?: string;\n\n /**\n * @example Configurable Visibility Icon Object\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={{\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * }}\n * />\n * ```\n *\n * @example Get Password Visibility Icon Function\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={(isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * }}\n * />\n * ```\n *\n * @example Custom Icon\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={<SomeCustomComponent />}\n * />\n * ```\n *\n * @since 6.0.0 Supports dynamically getting the visibility icon with a\n * callback function.\n */\n visibilityIcon?:\n | ConfigurableVisibilityIcon\n | GetPasswordVisibilityIcon\n | ReactNode;\n\n /**\n * The `aria-label` to use for the password visibility icon button.\n *\n * @defaultValue `\"Show password\"`\n */\n visibilityLabel?: string;\n\n /**\n * Any props that should be passed to the password visibility icon button. If\n * `id`, `buttonType`, `aria-label`, `aria-pressed`, or `children` are\n * provided here, they will override the default implementation.\n */\n visibilityProps?: PropsWithRef<ButtonProps>;\n}\n\n/**\n * **Client Component**\n *\n * @example Simple Example\n * ```tsx\n * import { Password } from \"@react-md/core/form/Password\";\n *\n * function Example(): ReactElement {\n * return <Password label=\"Password\" required />;\n * }\n * ```\n *\n * @see {@link https://react-md.dev/components/password | Password Demos}\n */\nexport const Password = forwardRef<HTMLInputElement, PasswordProps>(\n function Password(props, ref) {\n const {\n id: propId,\n name = \"password\",\n className,\n inputClassName,\n visibilityIcon: propVisibilityIcon,\n visibilityLabel = \"Show password\",\n visibilityProps,\n ...remaining\n } = props;\n const { toggled: isPasswordVisible, toggle } = useToggle(false);\n\n let currentVisibilityIcon: ReactNode;\n if (\n propVisibilityIcon &&\n typeof propVisibilityIcon === \"object\" &&\n \"visible\" in propVisibilityIcon\n ) {\n currentVisibilityIcon = isPasswordVisible\n ? propVisibilityIcon.visible\n : propVisibilityIcon.invisible;\n } else if (typeof propVisibilityIcon === \"function\") {\n currentVisibilityIcon = propVisibilityIcon(isPasswordVisible);\n } else {\n currentVisibilityIcon = propVisibilityIcon;\n }\n\n const id = useEnsuredId(propId, \"password\");\n const visibilityIcon = getIcon(\"password\", currentVisibilityIcon);\n\n return (\n <TextField\n {...remaining}\n ref={ref}\n name={name}\n type={isPasswordVisible ? \"text\" : \"password\"}\n className={password({ className })}\n inputClassName={passwordInput({ className: inputClassName })}\n rightAddon={\n <Button\n id={`${id}-toggle`}\n buttonType=\"icon\"\n aria-label={visibilityLabel}\n aria-pressed={isPasswordVisible}\n // allow all props except the onClick, className, and aria-pressed to\n // be overridden. onClick can only stop default behavior with\n // `event.stopPropagation()`\n {...visibilityProps}\n className={passwordInputToggle({\n className: visibilityProps?.className,\n })}\n onClick={(event) => {\n visibilityProps?.onClick?.(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n toggle();\n }}\n >\n {visibilityProps?.children ?? visibilityIcon}\n </Button>\n }\n disableRightAddonStyles\n />\n );\n }\n);\n"],"names":["forwardRef","Button","getIcon","useEnsuredId","useToggle","TextField","password","passwordInput","passwordInputToggle","Password","props","ref","id","propId","name","className","inputClassName","visibilityIcon","propVisibilityIcon","visibilityLabel","visibilityProps","remaining","toggled","isPasswordVisible","toggle","currentVisibilityIcon","visible","invisible","type","rightAddon","buttonType","aria-label","aria-pressed","onClick","event","isPropagationStopped","children","disableRightAddonStyles"],"mappings":"AAAA;;AAEA,SAAyBA,UAAU,QAAQ,QAAQ;AAEnD,SAASC,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAA6B,iBAAiB;AAChE,SACEC,QAAQ,EACRC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAuH7B;;;;;;;;;;;;;CAaC,GACD,OAAO,MAAMC,yBAAWT,WACtB,SAASS,SAASC,KAAK,EAAEC,GAAG;IAC1B,MAAM,EACJC,IAAIC,MAAM,EACVC,OAAO,UAAU,EACjBC,SAAS,EACTC,cAAc,EACdC,gBAAgBC,kBAAkB,EAClCC,kBAAkB,eAAe,EACjCC,eAAe,EACf,GAAGC,WACJ,GAAGX;IACJ,MAAM,EAAEY,SAASC,iBAAiB,EAAEC,MAAM,EAAE,GAAGpB,UAAU;IAEzD,IAAIqB;IACJ,IACEP,sBACA,OAAOA,uBAAuB,YAC9B,aAAaA,oBACb;QACAO,wBAAwBF,oBACpBL,mBAAmBQ,OAAO,GAC1BR,mBAAmBS,SAAS;IAClC,OAAO,IAAI,OAAOT,uBAAuB,YAAY;QACnDO,wBAAwBP,mBAAmBK;IAC7C,OAAO;QACLE,wBAAwBP;IAC1B;IAEA,MAAMN,KAAKT,aAAaU,QAAQ;IAChC,MAAMI,iBAAiBf,QAAQ,YAAYuB;IAE3C,qBACE,KAACpB;QACE,GAAGgB,SAAS;QACbV,KAAKA;QACLG,MAAMA;QACNc,MAAML,oBAAoB,SAAS;QACnCR,WAAWT,SAAS;YAAES;QAAU;QAChCC,gBAAgBT,cAAc;YAAEQ,WAAWC;QAAe;QAC1Da,0BACE,KAAC5B;YACCW,IAAI,GAAGA,GAAG,OAAO,CAAC;YAClBkB,YAAW;YACXC,cAAYZ;YACZa,gBAAcT;YAIb,GAAGH,eAAe;YACnBL,WAAWP,oBAAoB;gBAC7BO,WAAWK,iBAAiBL;YAC9B;YACAkB,SAAS,CAACC;gBACRd,iBAAiBa,UAAUC;gBAC3B,IAAIA,MAAMC,oBAAoB,IAAI;oBAChC;gBACF;gBAEAX;YACF;sBAECJ,iBAAiBgB,YAAYnB;;QAGlCoB,uBAAuB;;AAG7B,GACA"}
1
+ {"version":3,"sources":["../../src/form/Password.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactElement, type ReactNode } from \"react\";\n\nimport { Button, type ButtonProps } from \"../button/Button.js\";\nimport { getIcon } from \"../icon/config.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useToggle } from \"../useToggle.js\";\nimport { TextField, type TextFieldProps } from \"./TextField.js\";\nimport {\n password,\n passwordInput,\n passwordInputToggle,\n} from \"./passwordStyles.js\";\n\n/**\n * @example Simple Example\n * ```tsx\n * const getVisibilityIcon: GetPasswordVisibilityIcon = (isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * };\n * ```\n *\n * @param isPasswordVisible - `true` when the password is visible and in plain\n * text\n * @returns a custom icon to use for the password visibility toggle.\n */\nexport type GetPasswordVisibilityIcon = (\n isPasswordVisible: boolean\n) => ReactNode;\n\n/**\n * @example Simple Example\n * ```tsx\n * const visibilityIcon: ConfigurableVisibilityIcon = {\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * };\n * ```\n */\nexport interface ConfigurableVisibilityIcon {\n /**\n * The icon to display while the password is currently visible as plain text.\n */\n visible: ReactNode;\n\n /**\n * The icon to display while the password is currently invisible as the\n * password input.\n */\n invisible: ReactNode;\n}\n\n/**\n * @since 6.0.0 Removed the `visibilityStyle`, `visibilityClassName`, and\n * `onVisibilityClick` props in favor of `visibilityProps` object.\n * @since 6.0.0 Removed the `disableVisibility` and `rightChildren` props in\n * favor of just using a `TextField` instead of the `Password` component.\n * @since 6.0.0 Merged the `getVisibilityIcon` prop behavior into the\n * `visibilityIcon` prop.\n */\nexport interface PasswordProps extends Omit<\n TextFieldProps,\n \"type\" | \"rightAddon\"\n> {\n /**\n * @defaultValue `\"password\"`\n * @since 6.0.0 Defaults to `\"password\"`\n */\n name?: string;\n\n /**\n * @example Configurable Visibility Icon Object\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={{\n * visible: <SecurityIcon />,\n * invisible: <RemoveRedEyeIcon />,\n * }}\n * />\n * ```\n *\n * @example Get Password Visibility Icon Function\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={(isPasswordVisible) => {\n * if (isPasswordVisible) {\n * return <SecurityIcon />;\n * }\n *\n * return <RemoveRedEyeIcon />;\n * }}\n * />\n * ```\n *\n * @example Custom Icon\n * ```tsx\n * <Password\n * {...props}\n * visibilityIcon={<SomeCustomComponent />}\n * />\n * ```\n *\n * @since 6.0.0 Supports dynamically getting the visibility icon with a\n * callback function.\n */\n visibilityIcon?:\n | ConfigurableVisibilityIcon\n | GetPasswordVisibilityIcon\n | ReactNode;\n\n /**\n * The `aria-label` to use for the password visibility icon button.\n *\n * @defaultValue `\"Show password\"`\n */\n visibilityLabel?: string;\n\n /**\n * Any props that should be passed to the password visibility icon button. If\n * `id`, `buttonType`, `aria-label`, `aria-pressed`, or `children` are\n * provided here, they will override the default implementation.\n */\n visibilityProps?: PropsWithRef<ButtonProps>;\n}\n\n/**\n * **Client Component**\n *\n * @example Simple Example\n * ```tsx\n * import { Password } from \"@react-md/core/form/Password\";\n *\n * function Example(): ReactElement {\n * return <Password label=\"Password\" required />;\n * }\n * ```\n *\n * @see {@link https://react-md.dev/components/password | Password Demos}\n */\nexport function Password(props: PasswordProps): ReactElement {\n const {\n ref,\n id: propId,\n name = \"password\",\n className,\n inputClassName,\n visibilityIcon: propVisibilityIcon,\n visibilityLabel = \"Show password\",\n visibilityProps,\n ...remaining\n } = props;\n const { toggled: isPasswordVisible, toggle } = useToggle(false);\n\n let currentVisibilityIcon: ReactNode;\n if (\n propVisibilityIcon &&\n typeof propVisibilityIcon === \"object\" &&\n \"visible\" in propVisibilityIcon\n ) {\n currentVisibilityIcon = isPasswordVisible\n ? propVisibilityIcon.visible\n : propVisibilityIcon.invisible;\n } else if (typeof propVisibilityIcon === \"function\") {\n currentVisibilityIcon = propVisibilityIcon(isPasswordVisible);\n } else {\n currentVisibilityIcon = propVisibilityIcon;\n }\n\n const id = useEnsuredId(propId, \"password\");\n const visibilityIcon = getIcon(\"password\", currentVisibilityIcon);\n\n return (\n <TextField\n {...remaining}\n ref={ref}\n name={name}\n type={isPasswordVisible ? \"text\" : \"password\"}\n className={password({ className })}\n inputClassName={passwordInput({ className: inputClassName })}\n rightAddon={\n <Button\n id={`${id}-toggle`}\n buttonType=\"icon\"\n aria-label={visibilityLabel}\n aria-pressed={isPasswordVisible}\n // allow all props except the onClick, className, and aria-pressed to\n // be overridden. onClick can only stop default behavior with\n // `event.stopPropagation()`\n {...visibilityProps}\n className={passwordInputToggle({\n className: visibilityProps?.className,\n })}\n onClick={(event) => {\n visibilityProps?.onClick?.(event);\n if (event.isPropagationStopped()) {\n return;\n }\n\n toggle();\n }}\n >\n {visibilityProps?.children ?? visibilityIcon}\n </Button>\n }\n disableRightAddonStyles\n />\n );\n}\n"],"names":["Button","getIcon","useEnsuredId","useToggle","TextField","password","passwordInput","passwordInputToggle","Password","props","ref","id","propId","name","className","inputClassName","visibilityIcon","propVisibilityIcon","visibilityLabel","visibilityProps","remaining","toggled","isPasswordVisible","toggle","currentVisibilityIcon","visible","invisible","type","rightAddon","buttonType","aria-label","aria-pressed","onClick","event","isPropagationStopped","children","disableRightAddonStyles"],"mappings":"AAAA;;AAIA,SAASA,MAAM,QAA0B,sBAAsB;AAC/D,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAA6B,iBAAiB;AAChE,SACEC,QAAQ,EACRC,aAAa,EACbC,mBAAmB,QACd,sBAAsB;AAuH7B;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASC,SAASC,KAAoB;IAC3C,MAAM,EACJC,GAAG,EACHC,IAAIC,MAAM,EACVC,OAAO,UAAU,EACjBC,SAAS,EACTC,cAAc,EACdC,gBAAgBC,kBAAkB,EAClCC,kBAAkB,eAAe,EACjCC,eAAe,EACf,GAAGC,WACJ,GAAGX;IACJ,MAAM,EAAEY,SAASC,iBAAiB,EAAEC,MAAM,EAAE,GAAGpB,UAAU;IAEzD,IAAIqB;IACJ,IACEP,sBACA,OAAOA,uBAAuB,YAC9B,aAAaA,oBACb;QACAO,wBAAwBF,oBACpBL,mBAAmBQ,OAAO,GAC1BR,mBAAmBS,SAAS;IAClC,OAAO,IAAI,OAAOT,uBAAuB,YAAY;QACnDO,wBAAwBP,mBAAmBK;IAC7C,OAAO;QACLE,wBAAwBP;IAC1B;IAEA,MAAMN,KAAKT,aAAaU,QAAQ;IAChC,MAAMI,iBAAiBf,QAAQ,YAAYuB;IAE3C,qBACE,KAACpB;QACE,GAAGgB,SAAS;QACbV,KAAKA;QACLG,MAAMA;QACNc,MAAML,oBAAoB,SAAS;QACnCR,WAAWT,SAAS;YAAES;QAAU;QAChCC,gBAAgBT,cAAc;YAAEQ,WAAWC;QAAe;QAC1Da,0BACE,KAAC5B;YACCW,IAAI,GAAGA,GAAG,OAAO,CAAC;YAClBkB,YAAW;YACXC,cAAYZ;YACZa,gBAAcT;YAIb,GAAGH,eAAe;YACnBL,WAAWP,oBAAoB;gBAC7BO,WAAWK,iBAAiBL;YAC9B;YACAkB,SAAS,CAACC;gBACRd,iBAAiBa,UAAUC;gBAC3B,IAAIA,MAAMC,oBAAoB,IAAI;oBAChC;gBACF;gBAEAX;YACF;sBAECJ,iBAAiBgB,YAAYnB;;QAGlCoB,uBAAuB;;AAG7B"}
@@ -1,3 +1,4 @@
1
+ import { type ReactElement } from "react";
1
2
  import { type RadioProps } from "./InputToggle.js";
2
3
  /**
3
4
  * **Client Component**
@@ -20,4 +21,4 @@ import { type RadioProps } from "./InputToggle.js";
20
21
  *
21
22
  * @see {@link https://react-md.dev/components/radio | Radio Demos}
22
23
  */
23
- export declare const Radio: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<HTMLInputElement>>;
24
+ export declare function Radio(props: RadioProps): ReactElement;
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
3
  import { InputToggle } from "./InputToggle.js";
5
4
  /**
6
5
  * **Client Component**
@@ -22,12 +21,13 @@ import { InputToggle } from "./InputToggle.js";
22
21
  * ```
23
22
  *
24
23
  * @see {@link https://react-md.dev/components/radio | Radio Demos}
25
- */ export const Radio = /*#__PURE__*/ forwardRef(function Radio(props, ref) {
24
+ */ export function Radio(props) {
25
+ const { ref, ...remaininig } = props;
26
26
  return /*#__PURE__*/ _jsx(InputToggle, {
27
- ...props,
27
+ ...remaininig,
28
28
  ref: ref,
29
29
  type: "radio"
30
30
  });
31
- });
31
+ }
32
32
 
33
33
  //# sourceMappingURL=Radio.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/Radio.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef } from \"react\";\n\nimport { InputToggle, type RadioProps } from \"./InputToggle.js\";\n\n/**\n * **Client Component**\n *\n * You'll generally want to use the `useRadioGroup` hook along with this\n * component.\n *\n * @example Simple Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup({ name: \"group\" });\n *\n * return (\n * <>\n * <Radio {...getRadioProps(\"a\")} label=\"First\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Second\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Third\" />\n * </>\n * );\n * ```\n *\n * @see {@link https://react-md.dev/components/radio | Radio Demos}\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n return <InputToggle {...props} ref={ref} type=\"radio\" />;\n }\n);\n"],"names":["forwardRef","InputToggle","Radio","props","ref","type"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,QAAQ;AAEnC,SAASC,WAAW,QAAyB,mBAAmB;AAEhE;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,MAAMC,sBAAQF,WACnB,SAASE,MAAMC,KAAK,EAAEC,GAAG;IACvB,qBAAO,KAACH;QAAa,GAAGE,KAAK;QAAEC,KAAKA;QAAKC,MAAK;;AAChD,GACA"}
1
+ {"version":3,"sources":["../../src/form/Radio.tsx"],"sourcesContent":["\"use client\";\n\nimport { type ReactElement } from \"react\";\n\nimport { InputToggle, type RadioProps } from \"./InputToggle.js\";\n\n/**\n * **Client Component**\n *\n * You'll generally want to use the `useRadioGroup` hook along with this\n * component.\n *\n * @example Simple Example\n * ```tsx\n * const { value, getRadioProps } = useRadioGroup({ name: \"group\" });\n *\n * return (\n * <>\n * <Radio {...getRadioProps(\"a\")} label=\"First\" />\n * <Radio {...getRadioProps(\"b\")} label=\"Second\" />\n * <Radio {...getRadioProps(\"c\")} label=\"Third\" />\n * </>\n * );\n * ```\n *\n * @see {@link https://react-md.dev/components/radio | Radio Demos}\n */\nexport function Radio(props: RadioProps): ReactElement {\n const { ref, ...remaininig } = props;\n\n return <InputToggle {...remaininig} ref={ref} type=\"radio\" />;\n}\n"],"names":["InputToggle","Radio","props","ref","remaininig","type"],"mappings":"AAAA;;AAIA,SAASA,WAAW,QAAyB,mBAAmB;AAEhE;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASC,MAAMC,KAAiB;IACrC,MAAM,EAAEC,GAAG,EAAE,GAAGC,YAAY,GAAGF;IAE/B,qBAAO,KAACF;QAAa,GAAGI,UAAU;QAAED,KAAKA;QAAKE,MAAK;;AACrD"}
@@ -1,9 +1,10 @@
1
- import { type CSSProperties, type HTMLAttributes, type Ref, type TextareaHTMLAttributes } from "react";
1
+ import { type CSSProperties, type HTMLAttributes, type ReactElement, type Ref, type TextareaHTMLAttributes } from "react";
2
2
  /**
3
3
  * @since 6.0.0
4
4
  * @internal
5
5
  */
6
6
  export interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElement> {
7
+ ref?: Ref<HTMLDivElement>;
7
8
  maskId: string;
8
9
  maskRef: Ref<HTMLTextAreaElement>;
9
10
  defaultValue?: TextareaHTMLAttributes<HTMLTextAreaElement>["defaultValue"];
@@ -16,4 +17,4 @@ export interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElem
16
17
  * @since 6.0.0
17
18
  * @internal
18
19
  */
19
- export declare const ResizingTextAreaWrapper: import("react").ForwardRefExoticComponent<ResizingTextAreaWrapperProps & import("react").RefAttributes<HTMLDivElement>>;
20
+ export declare const ResizingTextAreaWrapper: (props: ResizingTextAreaWrapperProps) => ReactElement;
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cnb } from "cnbuilder";
3
- import { forwardRef } from "react";
4
3
  import { textArea } from "./textAreaStyles.js";
5
4
  /**
6
5
  * @since 6.0.0
7
6
  * @internal
8
- */ export const ResizingTextAreaWrapper = /*#__PURE__*/ forwardRef(function ResizingTextAreaWrapper(props, ref) {
9
- const { className, rows, maskId, maskRef, areaStyle, areaClassName, defaultValue, disableTransition, children, ...remaining } = props;
7
+ */ export const ResizingTextAreaWrapper = function ResizingTextAreaWrapper(props) {
8
+ const { ref, className, rows, maskId, maskRef, areaStyle, areaClassName, defaultValue, disableTransition, children, ...remaining } = props;
10
9
  return /*#__PURE__*/ _jsxs("div", {
11
10
  ...remaining,
12
11
  ref: ref,
@@ -30,6 +29,6 @@ import { textArea } from "./textAreaStyles.js";
30
29
  })
31
30
  ]
32
31
  });
33
- });
32
+ };
34
33
 
35
34
  //# sourceMappingURL=ResizingTextAreaWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/ResizingTextAreaWrapper.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport {\n type CSSProperties,\n type HTMLAttributes,\n type Ref,\n type TextareaHTMLAttributes,\n forwardRef,\n} from \"react\";\n\nimport { textArea } from \"./textAreaStyles.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElement> {\n maskId: string;\n maskRef: Ref<HTMLTextAreaElement>;\n defaultValue?: TextareaHTMLAttributes<HTMLTextAreaElement>[\"defaultValue\"];\n rows: number;\n areaStyle?: CSSProperties;\n areaClassName?: string;\n disableTransition?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const ResizingTextAreaWrapper = forwardRef<\n HTMLDivElement,\n ResizingTextAreaWrapperProps\n>(function ResizingTextAreaWrapper(props, ref) {\n const {\n className,\n rows,\n maskId,\n maskRef,\n areaStyle,\n areaClassName,\n defaultValue,\n disableTransition,\n children,\n ...remaining\n } = props;\n\n return (\n <div\n {...remaining}\n ref={ref}\n className={cnb(\n \"rmd-textarea-container__inner\",\n !disableTransition && \"rmd-textarea-container__inner--animate\",\n className\n )}\n >\n {children}\n <textarea\n aria-hidden\n id={maskId}\n ref={maskRef}\n defaultValue={defaultValue}\n readOnly\n tabIndex={-1}\n rows={rows}\n style={areaStyle}\n className={textArea({\n mask: true,\n resize: \"auto\",\n className: areaClassName,\n })}\n />\n </div>\n );\n});\n"],"names":["cnb","forwardRef","textArea","ResizingTextAreaWrapper","props","ref","className","rows","maskId","maskRef","areaStyle","areaClassName","defaultValue","disableTransition","children","remaining","div","textarea","aria-hidden","id","readOnly","tabIndex","style","mask","resize"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAKEC,UAAU,QACL,QAAQ;AAEf,SAASC,QAAQ,QAAQ,sBAAsB;AAgB/C;;;CAGC,GACD,OAAO,MAAMC,wCAA0BF,WAGrC,SAASE,wBAAwBC,KAAK,EAAEC,GAAG;IAC3C,MAAM,EACJC,SAAS,EACTC,IAAI,EACJC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EACjBC,QAAQ,EACR,GAAGC,WACJ,GAAGX;IAEJ,qBACE,MAACY;QACE,GAAGD,SAAS;QACbV,KAAKA;QACLC,WAAWN,IACT,iCACA,CAACa,qBAAqB,0CACtBP;;YAGDQ;0BACD,KAACG;gBACCC,aAAW;gBACXC,IAAIX;gBACJH,KAAKI;gBACLG,cAAcA;gBACdQ,QAAQ;gBACRC,UAAU,CAAC;gBACXd,MAAMA;gBACNe,OAAOZ;gBACPJ,WAAWJ,SAAS;oBAClBqB,MAAM;oBACNC,QAAQ;oBACRlB,WAAWK;gBACb;;;;AAIR,GAAG"}
1
+ {"version":3,"sources":["../../src/form/ResizingTextAreaWrapper.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport {\n type CSSProperties,\n type HTMLAttributes,\n type ReactElement,\n type Ref,\n type TextareaHTMLAttributes,\n} from \"react\";\n\nimport { textArea } from \"./textAreaStyles.js\";\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport interface ResizingTextAreaWrapperProps extends HTMLAttributes<HTMLDivElement> {\n ref?: Ref<HTMLDivElement>;\n maskId: string;\n maskRef: Ref<HTMLTextAreaElement>;\n defaultValue?: TextareaHTMLAttributes<HTMLTextAreaElement>[\"defaultValue\"];\n rows: number;\n areaStyle?: CSSProperties;\n areaClassName?: string;\n disableTransition?: boolean;\n}\n\n/**\n * @since 6.0.0\n * @internal\n */\nexport const ResizingTextAreaWrapper = function ResizingTextAreaWrapper(\n props: ResizingTextAreaWrapperProps\n): ReactElement {\n const {\n ref,\n className,\n rows,\n maskId,\n maskRef,\n areaStyle,\n areaClassName,\n defaultValue,\n disableTransition,\n children,\n ...remaining\n } = props;\n\n return (\n <div\n {...remaining}\n ref={ref}\n className={cnb(\n \"rmd-textarea-container__inner\",\n !disableTransition && \"rmd-textarea-container__inner--animate\",\n className\n )}\n >\n {children}\n <textarea\n aria-hidden\n id={maskId}\n ref={maskRef}\n defaultValue={defaultValue}\n readOnly\n tabIndex={-1}\n rows={rows}\n style={areaStyle}\n className={textArea({\n mask: true,\n resize: \"auto\",\n className: areaClassName,\n })}\n />\n </div>\n );\n};\n"],"names":["cnb","textArea","ResizingTextAreaWrapper","props","ref","className","rows","maskId","maskRef","areaStyle","areaClassName","defaultValue","disableTransition","children","remaining","div","textarea","aria-hidden","id","readOnly","tabIndex","style","mask","resize"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAShC,SAASC,QAAQ,QAAQ,sBAAsB;AAiB/C;;;CAGC,GACD,OAAO,MAAMC,0BAA0B,SAASA,wBAC9CC,KAAmC;IAEnC,MAAM,EACJC,GAAG,EACHC,SAAS,EACTC,IAAI,EACJC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,YAAY,EACZC,iBAAiB,EACjBC,QAAQ,EACR,GAAGC,WACJ,GAAGX;IAEJ,qBACE,MAACY;QACE,GAAGD,SAAS;QACbV,KAAKA;QACLC,WAAWL,IACT,iCACA,CAACY,qBAAqB,0CACtBP;;YAGDQ;0BACD,KAACG;gBACCC,aAAW;gBACXC,IAAIX;gBACJH,KAAKI;gBACLG,cAAcA;gBACdQ,QAAQ;gBACRC,UAAU,CAAC;gBACXd,MAAMA;gBACNe,OAAOZ;gBACPJ,WAAWJ,SAAS;oBAClBqB,MAAM;oBACNC,QAAQ;oBACRlB,WAAWK;gBACb;;;;AAIR,EAAE"}