react-miui 0.32.3 → 0.34.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 (621) hide show
  1. package/.claude/settings.json +12 -0
  2. package/.claude/settings.local.json +11 -1
  3. package/.storybook/main.ts +4 -1
  4. package/.storybook/preview.tsx +10 -4
  5. package/CHANGELOG.md +16 -0
  6. package/dist/components/form/Checkbox.styled.d.ts +6 -6
  7. package/dist/components/form/ColorPicker.styled.d.ts +5 -5
  8. package/dist/components/form/Label.d.ts +3 -3
  9. package/dist/components/form/Label.styled.d.ts +5 -5
  10. package/dist/components/form/Select.styled.d.ts +3 -3
  11. package/dist/components/form/Toggle.d.ts +3 -3
  12. package/dist/components/form/Toggle.styled.d.ts +5 -5
  13. package/dist/components/form/choice/Choice.styled.d.ts +3 -3
  14. package/dist/components/form/choice/ChoiceItem.styled.d.ts +2 -2
  15. package/dist/components/form/input/Input.css.d.ts +47 -1
  16. package/dist/components/form/input/Input.css.d.ts.map +1 -1
  17. package/dist/components/form/input/Input.css.js +49 -1
  18. package/dist/components/form/input/Input.css.js.map +1 -1
  19. package/dist/components/form/input/Input.d.ts +5 -1
  20. package/dist/components/form/input/Input.d.ts.map +1 -1
  21. package/dist/components/form/input/Input.js +28 -5
  22. package/dist/components/form/input/Input.js.map +1 -1
  23. package/dist/components/form/input/Input.styled.d.ts +183 -10
  24. package/dist/components/form/input/Input.styled.d.ts.map +1 -1
  25. package/dist/components/form/input/Input.styled.js +5 -1
  26. package/dist/components/form/input/Input.styled.js.map +1 -1
  27. package/dist/components/form/textarea/TextArea.d.ts +6 -1
  28. package/dist/components/form/textarea/TextArea.d.ts.map +1 -1
  29. package/dist/components/form/textarea/TextArea.js +32 -4
  30. package/dist/components/form/textarea/TextArea.js.map +1 -1
  31. package/dist/components/form/textarea/TextArea.styled.d.ts +177 -4
  32. package/dist/components/form/textarea/TextArea.styled.d.ts.map +1 -1
  33. package/dist/components/form/textarea/TextArea.styled.js +10 -2
  34. package/dist/components/form/textarea/TextArea.styled.js.map +1 -1
  35. package/dist/components/layout/card/Card.styled.d.ts +3 -3
  36. package/dist/components/layout/header/Header.styled.d.ts +9 -9
  37. package/dist/components/layout/header/HeaderIconAction.styled.d.ts +8 -8
  38. package/dist/components/layout/header/StickyHeader.d.ts +3 -3
  39. package/dist/components/layout/header/StickyHeader.styled.d.ts +6 -6
  40. package/dist/components/layout/list/Header.d.ts +7 -7
  41. package/dist/components/layout/list/Item.d.ts +8 -8
  42. package/dist/components/layout/list/Item.styled.d.ts +9 -9
  43. package/dist/components/layout/list/Label.d.ts +2 -2
  44. package/dist/components/layout/list/List.d.ts +18 -18
  45. package/dist/components/layout/list/Value.d.ts +2 -2
  46. package/dist/components/layout/section/SearchContainer.d.ts +2 -2
  47. package/dist/components/layout/section/Section.d.ts +5 -5
  48. package/dist/components/layout/section/SectionContainer.d.ts +2 -2
  49. package/dist/components/layout/table/Table.styled.d.ts +3 -3
  50. package/dist/components/native/index.d.ts +2 -2
  51. package/dist/components/ui/action/Action.styled.d.ts +8 -8
  52. package/dist/components/ui/action/EqualActions.styled.d.ts +3 -3
  53. package/dist/components/ui/button/Button.styled.d.ts +3 -3
  54. package/dist/components/ui/directionPad/Button.styled.d.ts +4 -4
  55. package/dist/components/ui/directionPad/Middle.styled.d.ts +2 -2
  56. package/dist/components/ui/directionPad/Pad.styled.d.ts +4 -4
  57. package/dist/components/ui/drawer/Drawer.d.ts +10 -1
  58. package/dist/components/ui/drawer/Drawer.d.ts.map +1 -1
  59. package/dist/components/ui/drawer/Drawer.js +135 -15
  60. package/dist/components/ui/drawer/Drawer.js.map +1 -1
  61. package/dist/components/ui/drawer/Drawer.styled.d.ts +90 -5
  62. package/dist/components/ui/drawer/Drawer.styled.d.ts.map +1 -1
  63. package/dist/components/ui/drawer/Drawer.styled.js +13 -1
  64. package/dist/components/ui/drawer/Drawer.styled.js.map +1 -1
  65. package/dist/components/ui/keyValue/KeyValue.styled.d.ts +13 -13
  66. package/dist/components/ui/line/Line.d.ts +3 -3
  67. package/dist/components/ui/message/Message.styled.d.ts +3 -3
  68. package/dist/components/ui/modal/Modal.d.ts +2 -2
  69. package/dist/components/ui/modal/Modal.d.ts.map +1 -1
  70. package/dist/components/ui/modal/Modal.js.map +1 -1
  71. package/dist/components/ui/modal/Modal.styled.d.ts +10 -10
  72. package/dist/components/ui/modal/ModalButtons.styled.d.ts +5 -5
  73. package/dist/components/ui/pop/Pop.styled.d.ts +12 -12
  74. package/dist/components/ui/progress/Progress.styled.d.ts +8 -8
  75. package/dist/components/ui/stats/Stats.styled.d.ts +11 -11
  76. package/dist/components/ui/tabs/Item.styled.d.ts +2 -2
  77. package/dist/components/ui/tabs/Selector.styled.d.ts +5 -5
  78. package/dist/components/ui/toaster/Toaster.d.ts +8 -15
  79. package/dist/components/ui/toaster/Toaster.d.ts.map +1 -1
  80. package/dist/components/ui/toaster/Toaster.js +31 -55
  81. package/dist/components/ui/toaster/Toaster.js.map +1 -1
  82. package/dist/components/ui/toolButton/ToolButton.styled.d.ts +3 -3
  83. package/dist/components/ui/tooltip/Tooltip.d.ts +30 -0
  84. package/dist/components/ui/tooltip/Tooltip.d.ts.map +1 -0
  85. package/dist/components/ui/tooltip/Tooltip.js +81 -0
  86. package/dist/components/ui/tooltip/Tooltip.js.map +1 -0
  87. package/dist/components/ui/tooltip/Tooltip.styled.d.ts +173 -0
  88. package/dist/components/ui/tooltip/Tooltip.styled.d.ts.map +1 -0
  89. package/dist/components/ui/{toaster/Notification.js → tooltip/Tooltip.styled.js} +30 -18
  90. package/dist/components/ui/tooltip/Tooltip.styled.js.map +1 -0
  91. package/dist/components/utils/Gap.d.ts +3 -3
  92. package/dist/components/utils/Spacer.d.ts +2 -2
  93. package/dist/index.d.ts +1 -0
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +1 -0
  96. package/dist/index.js.map +1 -1
  97. package/dist/theme.d.ts +86 -86
  98. package/docs/assets/highlight.css +7 -0
  99. package/docs/assets/navigation.js +1 -1
  100. package/docs/assets/search.js +1 -1
  101. package/docs/classes/index.Pop.html +18 -18
  102. package/docs/documents/Test.html +2 -2
  103. package/docs/enums/index.ICON.html +2 -2
  104. package/docs/functions/index.Action.html +5 -5
  105. package/docs/functions/index.Button.html +5 -5
  106. package/docs/functions/index.Card.html +4 -4
  107. package/docs/functions/index.Checkbox.html +5 -5
  108. package/docs/functions/index.Choice.html +4 -4
  109. package/docs/functions/index.ColorPicker.html +5 -5
  110. package/docs/functions/index.CoveringLoader.html +5 -5
  111. package/docs/functions/index.DirectionPad.html +4 -4
  112. package/docs/functions/index.Drawer.html +4 -4
  113. package/docs/functions/index.EqualActions.html +4 -4
  114. package/docs/functions/index.FullLoader.html +5 -5
  115. package/docs/functions/index.Gap.html +4 -4
  116. package/docs/functions/index.HandleEsc.html +6 -6
  117. package/docs/functions/index.Header.html +5 -5
  118. package/docs/functions/index.HeaderIconAction.html +5 -5
  119. package/docs/functions/index.Icon-1.html +4 -4
  120. package/docs/functions/index.If.html +6 -6
  121. package/docs/functions/index.Input.html +1 -1
  122. package/docs/functions/index.KeyValue.html +4 -4
  123. package/docs/functions/index.Label.html +4 -4
  124. package/docs/functions/index.Line.html +5 -5
  125. package/docs/functions/index.List.html +4 -4
  126. package/docs/functions/index.Loader.html +5 -5
  127. package/docs/functions/index.Loading.html +6 -6
  128. package/docs/functions/index.Message.html +5 -5
  129. package/docs/functions/index.Modal.html +4 -4
  130. package/docs/functions/index.ModalButtons.html +4 -4
  131. package/docs/functions/index.PopLoader.html +5 -5
  132. package/docs/functions/index.PopOption.html +4 -4
  133. package/docs/functions/index.Progress.html +4 -4
  134. package/docs/functions/index.SearchContainer.html +4 -4
  135. package/docs/functions/index.Section.html +5 -5
  136. package/docs/functions/index.Select.html +4 -4
  137. package/docs/functions/index.Selector.html +4 -4
  138. package/docs/functions/index.Spacer.html +4 -4
  139. package/docs/functions/index.Stats.html +4 -4
  140. package/docs/functions/index.StickyHeader.html +5 -5
  141. package/docs/functions/index.Table.html +4 -4
  142. package/docs/functions/index.TextArea.html +4 -4
  143. package/docs/functions/index.ToasterProvider.html +29 -0
  144. package/docs/functions/index.Toggle.html +5 -5
  145. package/docs/functions/index.ToolButton.html +5 -5
  146. package/docs/functions/index.Tooltip.html +18 -0
  147. package/docs/functions/index.TooltipProvider.html +6 -0
  148. package/docs/functions/index.borderPxToRem.html +1 -1
  149. package/docs/functions/index.createTheme.html +1 -1
  150. package/docs/functions/index.css.html +1 -1
  151. package/docs/functions/index.dimensionsPxToRem.html +1 -1
  152. package/docs/functions/index.fontPxToRem.html +1 -1
  153. package/docs/functions/index.getCssText.html +1 -1
  154. package/docs/functions/index.globalCss.html +2 -2
  155. package/docs/functions/index.injectGlobalStyles.html +1 -1
  156. package/docs/functions/index.keyframes.html +1 -1
  157. package/docs/functions/index.pxToRem.html +1 -1
  158. package/docs/functions/index.styled.html +1 -1
  159. package/docs/functions/index.toast.html +12 -0
  160. package/docs/functions/index.useToaster.html +1 -1
  161. package/docs/index.html +2 -2
  162. package/docs/interfaces/index.IconProps.html +2 -2
  163. package/docs/interfaces/index.InputCustomProps.html +7 -2
  164. package/docs/interfaces/index.LoaderProps.html +6 -6
  165. package/docs/interfaces/index.StickyHeaderProps.html +4 -4
  166. package/docs/interfaces/index.ToasterProviderProps.html +28 -0
  167. package/docs/interfaces/index.TooltipProps.html +36 -0
  168. package/docs/interfaces/index.TooltipProviderProps.html +13 -0
  169. package/docs/modules/index.html +1 -1
  170. package/docs/modules.html +1 -1
  171. package/docs/types/index.ActionProps.html +1 -1
  172. package/docs/types/index.CardProps.html +1 -1
  173. package/docs/types/index.CheckboxProps.html +2 -2
  174. package/docs/types/index.ChoiceProps.html +1 -1
  175. package/docs/types/index.ColorPickerProps.html +1 -1
  176. package/docs/types/index.DirectionPadProps.html +1 -1
  177. package/docs/types/index.DrawerFrom.html +1 -0
  178. package/docs/types/index.DrawerProps.html +28 -1
  179. package/docs/types/index.EqualActionsProps.html +1 -1
  180. package/docs/types/index.HeaderProps.html +1 -1
  181. package/docs/types/index.InputProps.html +1 -1
  182. package/docs/types/index.KeyValueProps.html +1 -1
  183. package/docs/types/index.LabelProps.html +1 -1
  184. package/docs/types/index.OverwriteProps.html +1 -1
  185. package/docs/types/index.ProgressProps.html +2 -2
  186. package/docs/types/index.SelectProps.html +1 -1
  187. package/docs/types/index.SelectorProps.html +1 -1
  188. package/docs/types/index.Stat.html +1 -1
  189. package/docs/types/index.StatsProps.html +1 -1
  190. package/docs/types/index.TextAreaProps.html +1 -1
  191. package/docs/types/index.ThemeCSS.html +1 -1
  192. package/docs/types/index.ToggleProps.html +2 -2
  193. package/docs/variables/index.ActionBadgeSelector.html +1 -1
  194. package/docs/variables/index.ActionCircleSelector.html +1 -1
  195. package/docs/variables/index.CheckboxCheckmarkWrapperSelector.html +1 -1
  196. package/docs/variables/index.CheckboxTextLabelSelector.html +1 -1
  197. package/docs/variables/index.ChoiceItemSelector.html +1 -1
  198. package/docs/variables/index.ColorPickerColorDisplaySelector.html +1 -1
  199. package/docs/variables/index.DirectionPadButtonDotSelector.html +1 -1
  200. package/docs/variables/index.DirectionPadButtonSelector.html +1 -1
  201. package/docs/variables/index.DirectionPadLineSelector.html +1 -1
  202. package/docs/variables/index.DirectionPadMiddleSelector.html +1 -1
  203. package/docs/variables/index.DrawerContentSelector.html +1 -1
  204. package/docs/variables/index.HeaderAfterSelector.html +1 -1
  205. package/docs/variables/index.HeaderBeforeSelector.html +1 -1
  206. package/docs/variables/index.HeaderContentsSelector.html +1 -1
  207. package/docs/variables/index.HeaderIconActionIconSelector.html +1 -1
  208. package/docs/variables/index.InputContainerSelector.html +1 -0
  209. package/docs/variables/index.InputInputSelector.html +1 -1
  210. package/docs/variables/index.InputLabelSelector.html +1 -0
  211. package/docs/variables/index.InputPrefixSelector.html +1 -1
  212. package/docs/variables/index.InputSuffixSelector.html +1 -1
  213. package/docs/variables/index.KeyValueIconSelector.html +1 -1
  214. package/docs/variables/index.KeyValueItemSelector.html +1 -1
  215. package/docs/variables/index.KeyValueKeySelector.html +1 -1
  216. package/docs/variables/index.KeyValuePairSelector.html +1 -1
  217. package/docs/variables/index.KeyValueValueSelector.html +1 -1
  218. package/docs/variables/index.LabelTextSelector.html +1 -1
  219. package/docs/variables/index.ListItemInnerContainerClassNameSelector.html +1 -1
  220. package/docs/variables/index.ModalContainerSelector.html +1 -1
  221. package/docs/variables/index.ModalRemovePaddingSelector.html +1 -1
  222. package/docs/variables/index.ModalTitleSelector.html +1 -1
  223. package/docs/variables/index.PopListSelector.html +1 -1
  224. package/docs/variables/index.PopOptionButtonSelector.html +1 -1
  225. package/docs/variables/index.PopOptionIconSelector.html +1 -1
  226. package/docs/variables/index.PopOverlaySelector.html +1 -1
  227. package/docs/variables/index.ProgressBackgroundSelector.html +1 -1
  228. package/docs/variables/index.ProgressValueSelector.html +1 -1
  229. package/docs/variables/index.SelectorItemSelector.html +1 -1
  230. package/docs/variables/index.StatsItemSelector.html +1 -1
  231. package/docs/variables/index.StatsLabelSelector.html +1 -1
  232. package/docs/variables/index.StatsSeparatorSelector.html +1 -1
  233. package/docs/variables/index.StatsValueSelector.html +1 -1
  234. package/docs/variables/index.TextAreaLabelSelector.html +1 -0
  235. package/docs/variables/index.TextAreaTextAreaSelector.html +1 -0
  236. package/docs/variables/index.TextAreaWrapperSelector.html +1 -0
  237. package/docs/variables/index.ToggleStyledToggleSelector.html +1 -1
  238. package/docs/variables/index.TooltipContentSelector.html +1 -0
  239. package/docs/variables/index.config.html +1 -1
  240. package/docs/variables/index.cssReset.html +2 -2
  241. package/docs/variables/index.darkTheme.html +1 -1
  242. package/docs/variables/index.miuiScrollbars.html +1 -1
  243. package/docs/variables/index.theme.html +1 -1
  244. package/esm/components/form/Checkbox.styled.d.ts +6 -6
  245. package/esm/components/form/ColorPicker.styled.d.ts +5 -5
  246. package/esm/components/form/Label.d.ts +3 -3
  247. package/esm/components/form/Label.styled.d.ts +5 -5
  248. package/esm/components/form/Select.styled.d.ts +3 -3
  249. package/esm/components/form/Toggle.d.ts +3 -3
  250. package/esm/components/form/Toggle.styled.d.ts +5 -5
  251. package/esm/components/form/choice/Choice.styled.d.ts +3 -3
  252. package/esm/components/form/choice/ChoiceItem.styled.d.ts +2 -2
  253. package/esm/components/form/input/Input.css.d.ts +47 -1
  254. package/esm/components/form/input/Input.css.d.ts.map +1 -1
  255. package/esm/components/form/input/Input.css.js +47 -1
  256. package/esm/components/form/input/Input.css.js.map +1 -1
  257. package/esm/components/form/input/Input.d.ts +5 -1
  258. package/esm/components/form/input/Input.d.ts.map +1 -1
  259. package/esm/components/form/input/Input.js +27 -6
  260. package/esm/components/form/input/Input.js.map +1 -1
  261. package/esm/components/form/input/Input.styled.d.ts +183 -10
  262. package/esm/components/form/input/Input.styled.d.ts.map +1 -1
  263. package/esm/components/form/input/Input.styled.js +4 -2
  264. package/esm/components/form/input/Input.styled.js.map +1 -1
  265. package/esm/components/form/textarea/TextArea.d.ts +6 -1
  266. package/esm/components/form/textarea/TextArea.d.ts.map +1 -1
  267. package/esm/components/form/textarea/TextArea.js +31 -6
  268. package/esm/components/form/textarea/TextArea.js.map +1 -1
  269. package/esm/components/form/textarea/TextArea.styled.d.ts +177 -4
  270. package/esm/components/form/textarea/TextArea.styled.d.ts.map +1 -1
  271. package/esm/components/form/textarea/TextArea.styled.js +14 -4
  272. package/esm/components/form/textarea/TextArea.styled.js.map +1 -1
  273. package/esm/components/layout/card/Card.styled.d.ts +3 -3
  274. package/esm/components/layout/header/Header.styled.d.ts +9 -9
  275. package/esm/components/layout/header/HeaderIconAction.styled.d.ts +8 -8
  276. package/esm/components/layout/header/StickyHeader.d.ts +3 -3
  277. package/esm/components/layout/header/StickyHeader.styled.d.ts +6 -6
  278. package/esm/components/layout/list/Header.d.ts +7 -7
  279. package/esm/components/layout/list/Item.d.ts +8 -8
  280. package/esm/components/layout/list/Item.styled.d.ts +9 -9
  281. package/esm/components/layout/list/Label.d.ts +2 -2
  282. package/esm/components/layout/list/List.d.ts +18 -18
  283. package/esm/components/layout/list/Value.d.ts +2 -2
  284. package/esm/components/layout/section/SearchContainer.d.ts +2 -2
  285. package/esm/components/layout/section/Section.d.ts +5 -5
  286. package/esm/components/layout/section/SectionContainer.d.ts +2 -2
  287. package/esm/components/layout/table/Table.styled.d.ts +3 -3
  288. package/esm/components/native/index.d.ts +2 -2
  289. package/esm/components/ui/action/Action.styled.d.ts +8 -8
  290. package/esm/components/ui/action/EqualActions.styled.d.ts +3 -3
  291. package/esm/components/ui/button/Button.styled.d.ts +3 -3
  292. package/esm/components/ui/directionPad/Button.styled.d.ts +4 -4
  293. package/esm/components/ui/directionPad/Middle.styled.d.ts +2 -2
  294. package/esm/components/ui/directionPad/Pad.styled.d.ts +4 -4
  295. package/esm/components/ui/drawer/Drawer.d.ts +10 -1
  296. package/esm/components/ui/drawer/Drawer.d.ts.map +1 -1
  297. package/esm/components/ui/drawer/Drawer.js +139 -15
  298. package/esm/components/ui/drawer/Drawer.js.map +1 -1
  299. package/esm/components/ui/drawer/Drawer.styled.d.ts +90 -5
  300. package/esm/components/ui/drawer/Drawer.styled.d.ts.map +1 -1
  301. package/esm/components/ui/drawer/Drawer.styled.js +12 -1
  302. package/esm/components/ui/drawer/Drawer.styled.js.map +1 -1
  303. package/esm/components/ui/keyValue/KeyValue.styled.d.ts +13 -13
  304. package/esm/components/ui/line/Line.d.ts +3 -3
  305. package/esm/components/ui/message/Message.styled.d.ts +3 -3
  306. package/esm/components/ui/modal/Modal.d.ts +2 -2
  307. package/esm/components/ui/modal/Modal.d.ts.map +1 -1
  308. package/esm/components/ui/modal/Modal.js.map +1 -1
  309. package/esm/components/ui/modal/Modal.styled.d.ts +10 -10
  310. package/esm/components/ui/modal/ModalButtons.styled.d.ts +5 -5
  311. package/esm/components/ui/pop/Pop.styled.d.ts +12 -12
  312. package/esm/components/ui/progress/Progress.styled.d.ts +8 -8
  313. package/esm/components/ui/stats/Stats.styled.d.ts +11 -11
  314. package/esm/components/ui/tabs/Item.styled.d.ts +2 -2
  315. package/esm/components/ui/tabs/Selector.styled.d.ts +5 -5
  316. package/esm/components/ui/toaster/Toaster.d.ts +8 -15
  317. package/esm/components/ui/toaster/Toaster.d.ts.map +1 -1
  318. package/esm/components/ui/toaster/Toaster.js +19 -74
  319. package/esm/components/ui/toaster/Toaster.js.map +1 -1
  320. package/esm/components/ui/toolButton/ToolButton.styled.d.ts +3 -3
  321. package/esm/components/ui/tooltip/Tooltip.d.ts +30 -0
  322. package/esm/components/ui/tooltip/Tooltip.d.ts.map +1 -0
  323. package/esm/components/ui/tooltip/Tooltip.js +43 -0
  324. package/esm/components/ui/tooltip/Tooltip.js.map +1 -0
  325. package/esm/components/ui/tooltip/Tooltip.styled.d.ts +173 -0
  326. package/esm/components/ui/tooltip/Tooltip.styled.d.ts.map +1 -0
  327. package/esm/components/ui/tooltip/Tooltip.styled.js +28 -0
  328. package/esm/components/ui/tooltip/Tooltip.styled.js.map +1 -0
  329. package/esm/components/utils/Gap.d.ts +3 -3
  330. package/esm/components/utils/Spacer.d.ts +2 -2
  331. package/esm/index.d.ts +1 -0
  332. package/esm/index.d.ts.map +1 -1
  333. package/esm/index.js +1 -0
  334. package/esm/index.js.map +1 -1
  335. package/esm/theme.d.ts +86 -86
  336. package/package.json +22 -20
  337. package/patches/{@stitches+react+1.2.8.patch → @stitches__react@1.2.8.patch} +6 -6
  338. package/pnpm-workspace.yaml +3 -0
  339. package/src/bugfixes/ToastsFromModal.stories.tsx +59 -0
  340. package/src/components/form/input/Input.css.ts +52 -0
  341. package/src/components/form/input/Input.stories.tsx +32 -1
  342. package/src/components/form/input/Input.styled.ts +7 -1
  343. package/src/components/form/input/Input.tsx +67 -13
  344. package/src/components/form/textarea/TextArea.stories.tsx +25 -1
  345. package/src/components/form/textarea/TextArea.styled.ts +17 -3
  346. package/src/components/form/textarea/TextArea.tsx +76 -12
  347. package/src/components/ui/drawer/Drawer.stories.tsx +143 -59
  348. package/src/components/ui/drawer/Drawer.styled.ts +13 -0
  349. package/src/components/ui/drawer/Drawer.tsx +214 -20
  350. package/src/components/ui/modal/Modal.tsx +0 -1
  351. package/src/components/ui/modal/ModalButtons.stories.tsx +3 -3
  352. package/src/components/ui/toaster/Toaster.stories.tsx +160 -30
  353. package/src/components/ui/toaster/Toaster.tsx +28 -94
  354. package/src/components/ui/tooltip/Tooltip.stories.tsx +285 -0
  355. package/src/components/ui/tooltip/Tooltip.styled.ts +36 -0
  356. package/src/components/ui/tooltip/Tooltip.tsx +195 -0
  357. package/src/index.ts +1 -0
  358. package/storybook-static/assets/Action.stories-DBtNlWQo.js +1 -0
  359. package/storybook-static/assets/Button.stories-DFO8nsTN.js +1 -0
  360. package/storybook-static/assets/Card.stories-BoCt66U4.js +1 -0
  361. package/storybook-static/assets/Checkbox.stories-C58YeH4u.js +1 -0
  362. package/storybook-static/assets/Choice.stories-Cf7UbPxn.js +1 -0
  363. package/storybook-static/assets/Color-23OOGO2C-CELuW8GR.js +1 -0
  364. package/storybook-static/assets/ColorPicker.stories-Dc7-AuPQ.js +1 -0
  365. package/storybook-static/assets/CoveringLoader.stories-DrUQAhI6.js +1 -0
  366. package/storybook-static/assets/DocsRenderer-LL677BLK-BOcEjZ28.js +755 -0
  367. package/storybook-static/assets/Drawer.stories-D3_-TuT0.js +1 -0
  368. package/storybook-static/assets/EqualActions.stories-CwjZlkUA.js +1 -0
  369. package/storybook-static/assets/FullLoader.stories-DFAaVMfI.js +1 -0
  370. package/storybook-static/assets/Header.stories-BN7BuQx2.js +1 -0
  371. package/storybook-static/assets/Header.stories-CzPBNEkp.js +1 -0
  372. package/storybook-static/assets/HeaderIconAction.stories-Dm3Q-BVW.js +1 -0
  373. package/storybook-static/assets/Icon.stories-D1YeVBlB.js +1 -0
  374. package/storybook-static/assets/Input.stories-Cbj2X3kT.js +197 -0
  375. package/storybook-static/assets/Item.stories-CmjyxdgQ.js +1 -0
  376. package/storybook-static/assets/KeyValue.stories-CogaZP09.js +1 -0
  377. package/storybook-static/assets/Label.stories-B6pCT45X.js +1 -0
  378. package/storybook-static/assets/Label.stories-BR3gNHqM.js +1 -0
  379. package/storybook-static/assets/Line.stories-BJLer7gg.js +1 -0
  380. package/storybook-static/assets/List.stories-MSQY1Rdo.js +1 -0
  381. package/storybook-static/assets/Loader.stories-CbN84qNp.js +1 -0
  382. package/storybook-static/assets/Loading.stories-BOANGXsc.js +1 -0
  383. package/storybook-static/assets/Message.stories-_51K9ZDn.js +1 -0
  384. package/storybook-static/assets/Modal.stories-CixfvMuM.js +1 -0
  385. package/storybook-static/assets/ModalButtons.stories-DHHsnoGB.js +1 -0
  386. package/storybook-static/assets/Pad.stories-hrKerezi.js +1 -0
  387. package/storybook-static/assets/Pop.stories-BTlQGve1.js +1 -0
  388. package/storybook-static/assets/PopLoader.stories-CyskY4fX.js +1 -0
  389. package/storybook-static/assets/Progress.stories-BLMPF6Ju.js +1 -0
  390. package/storybook-static/assets/Section.stories-M-QRH2_i.js +1 -0
  391. package/storybook-static/assets/Select.stories-BJjJqLTa.js +1 -0
  392. package/storybook-static/assets/Selector.stories-BxHyFnYo.js +1 -0
  393. package/storybook-static/assets/Stats.stories-VB0pi5k5.js +1 -0
  394. package/storybook-static/assets/StickyHeader.stories-BnxgnjJW.js +3 -0
  395. package/storybook-static/assets/Table.stories-6F-WrDBs.js +1 -0
  396. package/storybook-static/assets/TextArea.stories-DqzHYgIv.js +1 -0
  397. package/storybook-static/assets/Toaster.stories-C0ktk0DW.js +1 -0
  398. package/storybook-static/assets/Toggle.stories-tBlD8SJi.js +1 -0
  399. package/storybook-static/assets/ToolButton.stories-0rGBGqAt.js +1 -0
  400. package/storybook-static/assets/Value.stories-CFT20m8r.js +1 -0
  401. package/storybook-static/assets/WithTooltip-65CFNBJE-CEiAC9o_.js +9 -0
  402. package/storybook-static/assets/formatter-EIJCOSYU-3FZOx6vn.js +1 -0
  403. package/storybook-static/assets/iframe-DvhcA1iZ.js +1244 -0
  404. package/storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
  405. package/storybook-static/assets/react-18-oqx706Mo.js +1 -0
  406. package/storybook-static/assets/syntaxhighlighter-W7WJGI2T-D7f2o1Z3.js +6 -0
  407. package/storybook-static/favicon-wrapper.svg +46 -0
  408. package/storybook-static/favicon.svg +1 -0
  409. package/storybook-static/iframe.html +709 -0
  410. package/storybook-static/index.html +146 -0
  411. package/storybook-static/index.json +1 -0
  412. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  413. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  414. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  415. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  416. package/storybook-static/project.json +1 -0
  417. package/storybook-static/sb-addons/docs-1/manager-bundle.js +3 -0
  418. package/storybook-static/sb-addons/onboarding-2/manager-bundle.js +97 -0
  419. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +630 -0
  420. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  421. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  422. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  423. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  424. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  425. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  426. package/storybook-static/sb-manager/globals-runtime.js +76749 -0
  427. package/storybook-static/sb-manager/globals.js +24 -0
  428. package/storybook-static/sb-manager/manager-stores.js +23 -0
  429. package/storybook-static/sb-manager/runtime.js +27463 -0
  430. package/storybook-static/vite-inject-mocker-entry.js +2 -0
  431. package/dist/components/ui/toaster/Notification.d.ts +0 -9
  432. package/dist/components/ui/toaster/Notification.d.ts.map +0 -1
  433. package/dist/components/ui/toaster/Notification.js.map +0 -1
  434. package/dist/components/ui/toaster/Toaster.styled.d.ts +0 -89
  435. package/dist/components/ui/toaster/Toaster.styled.d.ts.map +0 -1
  436. package/dist/components/ui/toaster/Toaster.styled.js +0 -39
  437. package/dist/components/ui/toaster/Toaster.styled.js.map +0 -1
  438. package/dist/components/ui/toaster/types.d.ts +0 -7
  439. package/dist/components/ui/toaster/types.d.ts.map +0 -1
  440. package/dist/components/ui/toaster/types.js +0 -3
  441. package/dist/components/ui/toaster/types.js.map +0 -1
  442. package/docs/classes/index.ToasterProvider.html +0 -120
  443. package/esm/components/form/Checkbox.stories.d.ts +0 -9
  444. package/esm/components/form/Checkbox.stories.d.ts.map +0 -1
  445. package/esm/components/form/Checkbox.stories.js +0 -80
  446. package/esm/components/form/Checkbox.stories.js.map +0 -1
  447. package/esm/components/form/ColorPicker.stories.d.ts +0 -10
  448. package/esm/components/form/ColorPicker.stories.d.ts.map +0 -1
  449. package/esm/components/form/ColorPicker.stories.js +0 -75
  450. package/esm/components/form/ColorPicker.stories.js.map +0 -1
  451. package/esm/components/form/Label.stories.d.ts +0 -11
  452. package/esm/components/form/Label.stories.d.ts.map +0 -1
  453. package/esm/components/form/Label.stories.js +0 -43
  454. package/esm/components/form/Label.stories.js.map +0 -1
  455. package/esm/components/form/Select.stories.d.ts +0 -8
  456. package/esm/components/form/Select.stories.d.ts.map +0 -1
  457. package/esm/components/form/Select.stories.js +0 -24
  458. package/esm/components/form/Select.stories.js.map +0 -1
  459. package/esm/components/form/Toggle.stories.d.ts +0 -14
  460. package/esm/components/form/Toggle.stories.d.ts.map +0 -1
  461. package/esm/components/form/Toggle.stories.js +0 -76
  462. package/esm/components/form/Toggle.stories.js.map +0 -1
  463. package/esm/components/form/choice/Choice.stories.d.ts +0 -10
  464. package/esm/components/form/choice/Choice.stories.d.ts.map +0 -1
  465. package/esm/components/form/choice/Choice.stories.js +0 -80
  466. package/esm/components/form/choice/Choice.stories.js.map +0 -1
  467. package/esm/components/form/input/Input.stories.d.ts +0 -10
  468. package/esm/components/form/input/Input.stories.d.ts.map +0 -1
  469. package/esm/components/form/input/Input.stories.js +0 -54
  470. package/esm/components/form/input/Input.stories.js.map +0 -1
  471. package/esm/components/form/textarea/TextArea.stories.d.ts +0 -8
  472. package/esm/components/form/textarea/TextArea.stories.d.ts.map +0 -1
  473. package/esm/components/form/textarea/TextArea.stories.js +0 -19
  474. package/esm/components/form/textarea/TextArea.stories.js.map +0 -1
  475. package/esm/components/icons/Icon.stories.d.ts +0 -10
  476. package/esm/components/icons/Icon.stories.d.ts.map +0 -1
  477. package/esm/components/icons/Icon.stories.js +0 -49
  478. package/esm/components/icons/Icon.stories.js.map +0 -1
  479. package/esm/components/layout/card/Card.stories.d.ts +0 -11
  480. package/esm/components/layout/card/Card.stories.d.ts.map +0 -1
  481. package/esm/components/layout/card/Card.stories.js +0 -39
  482. package/esm/components/layout/card/Card.stories.js.map +0 -1
  483. package/esm/components/layout/header/Header.stories.d.ts +0 -11
  484. package/esm/components/layout/header/Header.stories.d.ts.map +0 -1
  485. package/esm/components/layout/header/Header.stories.js +0 -56
  486. package/esm/components/layout/header/Header.stories.js.map +0 -1
  487. package/esm/components/layout/header/HeaderIconAction.stories.d.ts +0 -10
  488. package/esm/components/layout/header/HeaderIconAction.stories.d.ts.map +0 -1
  489. package/esm/components/layout/header/HeaderIconAction.stories.js +0 -43
  490. package/esm/components/layout/header/HeaderIconAction.stories.js.map +0 -1
  491. package/esm/components/layout/header/StickyHeader.stories.d.ts +0 -9
  492. package/esm/components/layout/header/StickyHeader.stories.d.ts.map +0 -1
  493. package/esm/components/layout/header/StickyHeader.stories.js +0 -60
  494. package/esm/components/layout/header/StickyHeader.stories.js.map +0 -1
  495. package/esm/components/layout/list/Header.stories.d.ts +0 -8
  496. package/esm/components/layout/list/Header.stories.d.ts.map +0 -1
  497. package/esm/components/layout/list/Header.stories.js +0 -27
  498. package/esm/components/layout/list/Header.stories.js.map +0 -1
  499. package/esm/components/layout/list/Item.stories.d.ts +0 -11
  500. package/esm/components/layout/list/Item.stories.d.ts.map +0 -1
  501. package/esm/components/layout/list/Item.stories.js +0 -98
  502. package/esm/components/layout/list/Item.stories.js.map +0 -1
  503. package/esm/components/layout/list/Label.stories.d.ts +0 -8
  504. package/esm/components/layout/list/Label.stories.d.ts.map +0 -1
  505. package/esm/components/layout/list/Label.stories.js +0 -29
  506. package/esm/components/layout/list/Label.stories.js.map +0 -1
  507. package/esm/components/layout/list/List.stories.d.ts +0 -9
  508. package/esm/components/layout/list/List.stories.d.ts.map +0 -1
  509. package/esm/components/layout/list/List.stories.js +0 -46
  510. package/esm/components/layout/list/List.stories.js.map +0 -1
  511. package/esm/components/layout/list/Value.stories.d.ts +0 -8
  512. package/esm/components/layout/list/Value.stories.d.ts.map +0 -1
  513. package/esm/components/layout/list/Value.stories.js +0 -23
  514. package/esm/components/layout/list/Value.stories.js.map +0 -1
  515. package/esm/components/layout/section/Section.stories.d.ts +0 -8
  516. package/esm/components/layout/section/Section.stories.d.ts.map +0 -1
  517. package/esm/components/layout/section/Section.stories.js +0 -31
  518. package/esm/components/layout/section/Section.stories.js.map +0 -1
  519. package/esm/components/layout/table/Table.stories.d.ts +0 -8
  520. package/esm/components/layout/table/Table.stories.d.ts.map +0 -1
  521. package/esm/components/layout/table/Table.stories.js +0 -49
  522. package/esm/components/layout/table/Table.stories.js.map +0 -1
  523. package/esm/components/ui/action/Action.stories.d.ts +0 -11
  524. package/esm/components/ui/action/Action.stories.d.ts.map +0 -1
  525. package/esm/components/ui/action/Action.stories.js +0 -58
  526. package/esm/components/ui/action/Action.stories.js.map +0 -1
  527. package/esm/components/ui/action/EqualActions.stories.d.ts +0 -10
  528. package/esm/components/ui/action/EqualActions.stories.d.ts.map +0 -1
  529. package/esm/components/ui/action/EqualActions.stories.js +0 -38
  530. package/esm/components/ui/action/EqualActions.stories.js.map +0 -1
  531. package/esm/components/ui/button/Button.stories.d.ts +0 -9
  532. package/esm/components/ui/button/Button.stories.d.ts.map +0 -1
  533. package/esm/components/ui/button/Button.stories.js +0 -35
  534. package/esm/components/ui/button/Button.stories.js.map +0 -1
  535. package/esm/components/ui/directionPad/Pad.stories.d.ts +0 -10
  536. package/esm/components/ui/directionPad/Pad.stories.d.ts.map +0 -1
  537. package/esm/components/ui/directionPad/Pad.stories.js +0 -79
  538. package/esm/components/ui/directionPad/Pad.stories.js.map +0 -1
  539. package/esm/components/ui/drawer/Drawer.stories.d.ts +0 -11
  540. package/esm/components/ui/drawer/Drawer.stories.d.ts.map +0 -1
  541. package/esm/components/ui/drawer/Drawer.stories.js +0 -102
  542. package/esm/components/ui/drawer/Drawer.stories.js.map +0 -1
  543. package/esm/components/ui/keyValue/KeyValue.stories.d.ts +0 -11
  544. package/esm/components/ui/keyValue/KeyValue.stories.d.ts.map +0 -1
  545. package/esm/components/ui/keyValue/KeyValue.stories.js +0 -98
  546. package/esm/components/ui/keyValue/KeyValue.stories.js.map +0 -1
  547. package/esm/components/ui/line/Line.stories.d.ts +0 -8
  548. package/esm/components/ui/line/Line.stories.d.ts.map +0 -1
  549. package/esm/components/ui/line/Line.stories.js +0 -27
  550. package/esm/components/ui/line/Line.stories.js.map +0 -1
  551. package/esm/components/ui/loader/CoveringLoader.stories.d.ts +0 -8
  552. package/esm/components/ui/loader/CoveringLoader.stories.d.ts.map +0 -1
  553. package/esm/components/ui/loader/CoveringLoader.stories.js +0 -50
  554. package/esm/components/ui/loader/CoveringLoader.stories.js.map +0 -1
  555. package/esm/components/ui/loader/FullLoader.stories.d.ts +0 -8
  556. package/esm/components/ui/loader/FullLoader.stories.d.ts.map +0 -1
  557. package/esm/components/ui/loader/FullLoader.stories.js +0 -19
  558. package/esm/components/ui/loader/FullLoader.stories.js.map +0 -1
  559. package/esm/components/ui/loader/Loader.stories.d.ts +0 -8
  560. package/esm/components/ui/loader/Loader.stories.d.ts.map +0 -1
  561. package/esm/components/ui/loader/Loader.stories.js +0 -23
  562. package/esm/components/ui/loader/Loader.stories.js.map +0 -1
  563. package/esm/components/ui/loader/Loading.stories.d.ts +0 -8
  564. package/esm/components/ui/loader/Loading.stories.d.ts.map +0 -1
  565. package/esm/components/ui/loader/Loading.stories.js +0 -32
  566. package/esm/components/ui/loader/Loading.stories.js.map +0 -1
  567. package/esm/components/ui/loader/PopLoader.stories.d.ts +0 -8
  568. package/esm/components/ui/loader/PopLoader.stories.d.ts.map +0 -1
  569. package/esm/components/ui/loader/PopLoader.stories.js +0 -24
  570. package/esm/components/ui/loader/PopLoader.stories.js.map +0 -1
  571. package/esm/components/ui/message/Message.stories.d.ts +0 -9
  572. package/esm/components/ui/message/Message.stories.d.ts.map +0 -1
  573. package/esm/components/ui/message/Message.stories.js +0 -43
  574. package/esm/components/ui/message/Message.stories.js.map +0 -1
  575. package/esm/components/ui/modal/Modal.stories.d.ts +0 -10
  576. package/esm/components/ui/modal/Modal.stories.d.ts.map +0 -1
  577. package/esm/components/ui/modal/Modal.stories.js +0 -84
  578. package/esm/components/ui/modal/Modal.stories.js.map +0 -1
  579. package/esm/components/ui/modal/ModalButtons.stories.d.ts +0 -8
  580. package/esm/components/ui/modal/ModalButtons.stories.d.ts.map +0 -1
  581. package/esm/components/ui/modal/ModalButtons.stories.js +0 -19
  582. package/esm/components/ui/modal/ModalButtons.stories.js.map +0 -1
  583. package/esm/components/ui/pop/Pop.stories.d.ts +0 -8
  584. package/esm/components/ui/pop/Pop.stories.d.ts.map +0 -1
  585. package/esm/components/ui/pop/Pop.stories.js +0 -65
  586. package/esm/components/ui/pop/Pop.stories.js.map +0 -1
  587. package/esm/components/ui/progress/Progress.stories.d.ts +0 -9
  588. package/esm/components/ui/progress/Progress.stories.d.ts.map +0 -1
  589. package/esm/components/ui/progress/Progress.stories.js +0 -29
  590. package/esm/components/ui/progress/Progress.stories.js.map +0 -1
  591. package/esm/components/ui/stats/Stats.stories.d.ts +0 -11
  592. package/esm/components/ui/stats/Stats.stories.d.ts.map +0 -1
  593. package/esm/components/ui/stats/Stats.stories.js +0 -104
  594. package/esm/components/ui/stats/Stats.stories.js.map +0 -1
  595. package/esm/components/ui/tabs/Selector.stories.d.ts +0 -12
  596. package/esm/components/ui/tabs/Selector.stories.d.ts.map +0 -1
  597. package/esm/components/ui/tabs/Selector.stories.js +0 -110
  598. package/esm/components/ui/tabs/Selector.stories.js.map +0 -1
  599. package/esm/components/ui/toaster/Notification.d.ts +0 -9
  600. package/esm/components/ui/toaster/Notification.d.ts.map +0 -1
  601. package/esm/components/ui/toaster/Notification.js +0 -17
  602. package/esm/components/ui/toaster/Notification.js.map +0 -1
  603. package/esm/components/ui/toaster/Toaster.stories.d.ts +0 -7
  604. package/esm/components/ui/toaster/Toaster.stories.d.ts.map +0 -1
  605. package/esm/components/ui/toaster/Toaster.stories.js +0 -39
  606. package/esm/components/ui/toaster/Toaster.stories.js.map +0 -1
  607. package/esm/components/ui/toaster/Toaster.styled.d.ts +0 -89
  608. package/esm/components/ui/toaster/Toaster.styled.d.ts.map +0 -1
  609. package/esm/components/ui/toaster/Toaster.styled.js +0 -36
  610. package/esm/components/ui/toaster/Toaster.styled.js.map +0 -1
  611. package/esm/components/ui/toaster/types.d.ts +0 -7
  612. package/esm/components/ui/toaster/types.d.ts.map +0 -1
  613. package/esm/components/ui/toaster/types.js +0 -2
  614. package/esm/components/ui/toaster/types.js.map +0 -1
  615. package/esm/components/ui/toolButton/ToolButton.stories.d.ts +0 -8
  616. package/esm/components/ui/toolButton/ToolButton.stories.d.ts.map +0 -1
  617. package/esm/components/ui/toolButton/ToolButton.stories.js +0 -29
  618. package/esm/components/ui/toolButton/ToolButton.stories.js.map +0 -1
  619. package/src/components/ui/toaster/Notification.tsx +0 -39
  620. package/src/components/ui/toaster/Toaster.styled.ts +0 -42
  621. package/src/components/ui/toaster/types.ts +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-miui",
3
- "version": "0.32.3",
3
+ "version": "0.34.0",
4
4
  "author": "Jacek Nowacki",
5
5
  "license": "MIT",
6
6
  "exports": {
@@ -16,37 +16,39 @@
16
16
  "dependencies": {
17
17
  "@bedrock-layout/use-forwarded-ref": "^2.0.17",
18
18
  "@ezez/utils": "^3.0.0",
19
+ "@radix-ui/react-tooltip": "^1.2.8",
19
20
  "@stitches/react": "^1.2.8",
20
21
  "classnames": "^2.5.1",
21
- "oop-timers": "^5.1.0",
22
- "patch-package": "^8.0.1"
22
+ "oop-timers": "^5.2.1",
23
+ "sonner": "^2.0.7"
23
24
  },
24
25
  "devDependencies": {
25
- "@babel/core": "^7.26.0",
26
- "@babel/preset-env": "^7.26.0",
27
- "@babel/preset-typescript": "^7.26.0",
28
- "@ezez/eslint": "^9.39.3",
29
- "@ezez/hooks": "^2.2.0",
26
+ "@babel/core": "^7.29.0",
27
+ "@babel/preset-env": "^7.29.5",
28
+ "@babel/preset-typescript": "^7.28.5",
29
+ "@ezez/eslint": "^9.39.4",
30
+ "@ezez/hooks": "^2.3.1",
30
31
  "@icon-park/react": "^1.4.2",
31
- "@storybook/addon-docs": "^9.1.10",
32
- "@storybook/addon-onboarding": "^9.1.10",
33
- "@storybook/react-vite": "^9.1.10",
32
+ "@storybook/addon-docs": "^10.4.0",
33
+ "@storybook/addon-onboarding": "^10.4.0",
34
+ "@storybook/react-vite": "^10.4.0",
34
35
  "@types/jest": "^29.5.14",
35
- "@types/react": "^18.3.12",
36
- "@types/react-dom": "^18.3.1",
36
+ "@types/react": "^18.3.28",
37
+ "@types/react-dom": "^18.3.7",
37
38
  "babel-plugin-module-extension": "^0.1.3",
38
- "babel-plugin-module-resolver": "^5.0.2",
39
- "eslint-plugin-storybook": "^10.2.8",
40
- "jest": "^30.2.0",
39
+ "babel-plugin-module-resolver": "^5.0.3",
40
+ "eslint-plugin-storybook": "^10.4.0",
41
+ "jest": "^30.4.2",
41
42
  "must": "^0.13.4",
42
- "prettier": "^3.4.2",
43
+ "prettier": "^3.8.3",
43
44
  "react": "^18.3.1",
44
45
  "react-dom": "^18.3.1",
45
- "react-use": "^17.5.1",
46
+ "react-use": "^17.6.0",
46
47
  "resolve-tspaths": "^0.8.23",
47
- "storybook": "^9.1.10",
48
+ "storybook": "^10.4.0",
48
49
  "typedoc": "0.27.6",
49
- "typescript": "^5.7.3"
50
+ "typescript": "^5.9.3",
51
+ "vite": "^7.3.2"
50
52
  },
51
53
  "peerDependencies": {
52
54
  "react": "^18.2.0",
@@ -1,7 +1,7 @@
1
- diff --git a/node_modules/@stitches/react/types/css-util.d.ts b/node_modules/@stitches/react/types/css-util.d.ts
1
+ diff --git a/types/css-util.d.ts b/types/css-util.d.ts
2
2
  index 1668fc2ab56c421894c547b2e5a988166cd90e5f..cfdad3f208ef7f57c89de7fb94cdaecbd7378c63 100644
3
- --- a/node_modules/@stitches/react/types/css-util.d.ts
4
- +++ b/node_modules/@stitches/react/types/css-util.d.ts
3
+ --- a/types/css-util.d.ts
4
+ +++ b/types/css-util.d.ts
5
5
  @@ -117,3 +117,11 @@ export type $$ScaleValue = typeof $$ScaleValue
6
6
  export declare const $$ThemeValue: unique symbol
7
7
 
@@ -15,10 +15,10 @@ index 1668fc2ab56c421894c547b2e5a988166cd90e5f..cfdad3f208ef7f57c89de7fb94cdaecb
15
15
  + readonly [K in $$ScaleValue]: T;
16
16
  +}
17
17
 
18
- diff --git a/node_modules/@stitches/react/types/index.d.ts b/node_modules/@stitches/react/types/index.d.ts
18
+ diff --git a/types/index.d.ts b/types/index.d.ts
19
19
  index 8dbcc9cad3f6c556a3f370065dd95300a02dd973..dafadd22e8b6285aadee2630936a7918c9c5b02b 100644
20
- --- a/node_modules/@stitches/react/types/index.d.ts
21
- +++ b/node_modules/@stitches/react/types/index.d.ts
20
+ --- a/types/index.d.ts
21
+ +++ b/types/index.d.ts
22
22
  @@ -35,7 +35,7 @@ export type ComponentProps<Component> = Component extends ((...args: any[]) => a
23
23
  /** Returns a type that expects a value to be a kind of CSS property value. */
24
24
  export type PropertyValue<Property extends keyof CSSUtil.CSSProperties, Config = null> = (
@@ -0,0 +1,3 @@
1
+ allowBuilds:
2
+ esbuild: false
3
+ unrs-resolver: false
@@ -0,0 +1,59 @@
1
+ import React, { useCallback, useState } from "react";
2
+
3
+ import type { Meta, StoryObj } from "@storybook/react-vite";
4
+
5
+ import { Button } from "../components/ui/button/Button";
6
+ import { Modal } from "../components/ui/modal/Modal";
7
+ import { ModalButtons } from "../components/ui/modal/ModalButtons";
8
+ import { toast } from "../components/ui/toaster/Toaster";
9
+
10
+ const docs = [
11
+ "Real-world setup: the storybook preview wraps every story in a stacking context",
12
+ "(`transform: translateZ(0)` above `ToasterProvider`), which mirrors what real apps",
13
+ "tend to do unintentionally.",
14
+ "",
15
+ "**Without the fix:** sonner's huge z-index is trapped inside that stacking context.",
16
+ "The modal portals to `document.body` and renders on top — the toast is hidden.",
17
+ "",
18
+ "**With the fix:** `ToasterProvider` portals `<SonnerToaster>` to `document.body`,",
19
+ "escaping the stacking context. The toast renders above the modal.",
20
+ ].join("\n");
21
+
22
+ const meta: Meta = {
23
+ title: "Bugfixes/Toasts from a Modal",
24
+ tags: ["bugfixes"],
25
+ parameters: { docs: { description: { component: docs } } },
26
+ };
27
+
28
+ type Story = StoryObj;
29
+
30
+ const ToastFromModal: Story = {
31
+ render: () => {
32
+ const [open, setOpen] = useState(false);
33
+
34
+ const handleOpen = useCallback(() => { setOpen(true); }, []);
35
+ const handleClose = useCallback(() => { setOpen(false); }, []);
36
+ const handleToast = useCallback(() => {
37
+ toast.success("I should appear above the modal");
38
+ }, []);
39
+
40
+ return (
41
+ <div>
42
+ <Button onClick={handleOpen}>Open modal</Button>
43
+ <Modal onClose={handleClose} isOpen={open} title={"Repro"} position={"bottom"} full={true}>
44
+ <p>Click the button — the toast must appear above this modal.</p>
45
+ <ModalButtons>
46
+ <ModalButtons.Button onClick={handleClose}>Cancel</ModalButtons.Button>
47
+ <ModalButtons.Button variant={"main"} onClick={handleToast}>
48
+ Show toast
49
+ </ModalButtons.Button>
50
+ </ModalButtons>
51
+ </Modal>
52
+ </div>
53
+ );
54
+ },
55
+ };
56
+
57
+ export { ToastFromModal };
58
+
59
+ export default meta;
@@ -40,6 +40,7 @@ const wrapper = {
40
40
  padding: `0 ${dimensionsPxToRem(36)}`,
41
41
  border: `${borderPxToRem(1)} solid $border`,
42
42
  alignItems: "center",
43
+ position: "relative",
43
44
 
44
45
  variants: {
45
46
  disabled: {
@@ -64,9 +65,60 @@ const wrapper = {
64
65
  },
65
66
  } satisfies ThemeCSS;
66
67
 
68
+ const inputContainer = {
69
+ position: "relative",
70
+ display: "flex",
71
+ flex: 1,
72
+ alignSelf: "stretch",
73
+ alignItems: "center",
74
+ backgroundColor: "inherit",
75
+ } satisfies ThemeCSS;
76
+
77
+ const label = {
78
+ position: "absolute",
79
+ left: 0,
80
+ color: "$sub",
81
+ pointerEvents: "none",
82
+ backgroundColor: "inherit",
83
+ padding: `0 ${dimensionsPxToRem(12)}`,
84
+ marginLeft: `-${dimensionsPxToRem(12)}`,
85
+ maxWidth: "100%",
86
+ whiteSpace: "nowrap",
87
+ overflow: "hidden",
88
+ textOverflow: "ellipsis",
89
+ transition: "top 150ms ease, font-size 150ms ease, color 150ms ease",
90
+ top: "50%",
91
+ transform: "translateY(-50%)",
92
+ fontSize: fontPxToRem(25),
93
+ lineHeight: 1,
94
+
95
+ variants: {
96
+ floating: {
97
+ true: {
98
+ top: 0,
99
+ fontSize: fontPxToRem(17),
100
+ color: "$text",
101
+ },
102
+ },
103
+ error: {
104
+ true: {},
105
+ },
106
+ },
107
+
108
+ compoundVariants: [
109
+ {
110
+ floating: true,
111
+ error: true,
112
+ css: { color: "$red1" },
113
+ },
114
+ ],
115
+ } satisfies ThemeCSS;
116
+
67
117
  export {
68
118
  input,
69
119
  wrapper,
120
+ inputContainer,
121
+ label,
70
122
  focusCSS,
71
123
  errorCSS,
72
124
  };
@@ -44,6 +44,7 @@ const Mixed: Story = {
44
44
  <Input prefix={"Text prefix"} value={"Polly W. Wilson"} />
45
45
  <Input prefix={"Disabled"} value={"Clayton J. Foster"} disabled={true} />
46
46
  <Input prefix={"Read only"} value={"Norma J. Gomez"} readOnly={true} />
47
+ <Input prefix={"Error state"} placeholder={"Placeholder"} value={""} error={true} />
47
48
  <Input
48
49
  placeholder={"With suggestions, try country name"}
49
50
  suggestions={countries}
@@ -53,6 +54,36 @@ const Mixed: Story = {
53
54
  ),
54
55
  };
55
56
 
57
+ const WithLabel: Story = {
58
+ args: {
59
+ label: "Capacity",
60
+ placeholder: "Enter value in kWh",
61
+ prefix: <Icon name={ICON.battery} />,
62
+ suffix: "kWh",
63
+ },
64
+ };
65
+
66
+ const FloatingLabel: Story = {
67
+ render: () => (
68
+ <Gap>
69
+ <Input label={"Pinned label (default)"} placeholder={"Placeholder visible"} />
70
+ <Input label={"Floating label"} pinnedLabel={false} placeholder={"Visible on focus"} />
71
+ <Input label={"Only label, no placeholder"} pinnedLabel={false} />
72
+ <Input label={"With prefix"} pinnedLabel={false} prefix={<Icon name={ICON.battery} />} />
73
+ <Input
74
+ label={"With prefix and suffix"}
75
+ pinnedLabel={false}
76
+ prefix={<Icon name={ICON.battery} />}
77
+ suffix={"kWh"}
78
+ />
79
+ <Input label={"Prefilled"} pinnedLabel={false} defaultValue={"Some value"} />
80
+ <Input label={"Error state"} pinnedLabel={false} error={true} />
81
+ <Input label={"Disabled"} pinnedLabel={false} disabled={true} />
82
+ <Input label={"Read only"} pinnedLabel={false} readOnly={true} defaultValue={"Read-only value"} />
83
+ </Gap>
84
+ ),
85
+ };
86
+
56
87
  const InputRef: Story = {
57
88
  render: () => {
58
89
  const ref = React.useRef<HTMLInputElement>(null);
@@ -73,7 +104,7 @@ const InputRef: Story = {
73
104
  };
74
105
 
75
106
  export {
76
- Primary, Mixed, InputRef,
107
+ Primary, Mixed, WithLabel, FloatingLabel, InputRef,
77
108
  };
78
109
 
79
110
  export default meta;
@@ -1,10 +1,14 @@
1
1
  import { dimensionsPxToRem, styled } from "../../../theme";
2
- import { input, wrapper } from "./Input.css";
2
+ import { input, inputContainer, label, wrapper } from "./Input.css";
3
3
 
4
4
  const StyledInput = styled("input", input);
5
5
 
6
6
  const StyledWrapper = styled("div", wrapper);
7
7
 
8
+ const StyledInputContainer = styled("div", inputContainer);
9
+
10
+ const StyledLabel = styled("label", label);
11
+
8
12
  const StyledPrefix = styled("div", {
9
13
  marginRight: dimensionsPxToRem(36),
10
14
  display: "flex",
@@ -20,6 +24,8 @@ const StyledSuffix = styled("div", {
20
24
  export {
21
25
  StyledInput,
22
26
  StyledWrapper,
27
+ StyledInputContainer,
28
+ StyledLabel,
23
29
  StyledPrefix,
24
30
  StyledSuffix,
25
31
  };
@@ -3,13 +3,27 @@ import React, { useCallback, useId, useRef, useState } from "react";
3
3
  import type { ObjectValue, Value } from "../../../types/form";
4
4
 
5
5
  import { Suggestions } from "../Suggestions";
6
- import { StyledInput, StyledPrefix, StyledSuffix, StyledWrapper } from "./Input.styled";
6
+ import {
7
+ StyledInput,
8
+ StyledInputContainer,
9
+ StyledLabel,
10
+ StyledPrefix,
11
+ StyledSuffix,
12
+ StyledWrapper,
13
+ } from "./Input.styled";
7
14
 
8
15
  interface CustomProps<T extends string> {
9
16
  children?: never;
10
17
  prefix?: React.ReactNode;
11
18
  suffix?: React.ReactNode;
12
19
  error?: boolean;
20
+ label?: string;
21
+ /**
22
+ * When `true` (default), the label stays anchored to the top of the input.
23
+ * When `false`, the label sits inside the input like a placeholder and floats up
24
+ * on focus or when the input has a value.
25
+ */
26
+ pinnedLabel?: boolean;
13
27
  suggestions?: Array<Value<T>>;
14
28
  onSuggestionMatch?: (value: Exclude<Value<T>, ObjectValue>, __chromiumPickedFromList: boolean) => void;
15
29
  }
@@ -26,10 +40,22 @@ const InputInner = <T extends string>({ // eslint-disable-line max-lines-per-fun
26
40
  suggestions,
27
41
  onSuggestionMatch,
28
42
  error,
43
+ label,
44
+ pinnedLabel = true,
45
+ placeholder,
46
+ id,
29
47
  ...props
30
48
  }: Props<T>, ref: React.Ref<HTMLInputElement>) => {
31
49
  const [focused, setFocused] = useState(false);
50
+ const [internalHasValue, setInternalHasValue] = useState(() => {
51
+ return Boolean(props.value ?? props.defaultValue);
52
+ });
53
+ const isControlled = props.value !== undefined;
54
+ const hasValue = isControlled ? Boolean(props.value) : internalHasValue;
55
+
32
56
  const suggestionsId = useId();
57
+ const generatedInputId = useId();
58
+ const inputId = id ?? (label ? generatedInputId : undefined);
33
59
  const infoRef = useRef<{ picked?: boolean }>({});
34
60
 
35
61
  const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>) => {
@@ -51,6 +77,9 @@ const InputInner = <T extends string>({ // eslint-disable-line max-lines-per-fun
51
77
  }, [onKeyDown]);
52
78
 
53
79
  const handleChange: React.ChangeEventHandler<HTMLInputElement> = useCallback((e) => {
80
+ if (!isControlled) {
81
+ setInternalHasValue(Boolean(e.currentTarget.value));
82
+ }
54
83
  if (!suggestions) {
55
84
  onChange?.(e);
56
85
  return;
@@ -67,7 +96,7 @@ const InputInner = <T extends string>({ // eslint-disable-line max-lines-per-fun
67
96
  }
68
97
  infoRef.current.picked = false;
69
98
  onChange?.(e);
70
- }, [suggestions, onChange, onSuggestionMatch]);
99
+ }, [isControlled, suggestions, onChange, onSuggestionMatch]);
71
100
 
72
101
  const prefixElem = prefix ? <StyledPrefix>{prefix}</StyledPrefix> : null;
73
102
  const suffixElem = suffix ? <StyledSuffix>{suffix}</StyledSuffix> : null;
@@ -77,6 +106,22 @@ const InputInner = <T extends string>({ // eslint-disable-line max-lines-per-fun
77
106
  extraProps.list = suggestionsId;
78
107
  }
79
108
 
109
+ const floating = Boolean(label) && (pinnedLabel || focused || hasValue);
110
+ const showPlaceholder = !label || floating;
111
+ const effectivePlaceholder = showPlaceholder ? placeholder : undefined;
112
+
113
+ const labelElem = label
114
+ ? (
115
+ <StyledLabel
116
+ htmlFor={inputId}
117
+ floating={floating}
118
+ error={Boolean(error)}
119
+ >
120
+ {label}
121
+ </StyledLabel>
122
+ )
123
+ : null;
124
+
80
125
  return (
81
126
  <StyledWrapper
82
127
  className={className}
@@ -86,17 +131,22 @@ const InputInner = <T extends string>({ // eslint-disable-line max-lines-per-fun
86
131
  error={Boolean(error)}
87
132
  >
88
133
  {prefixElem}
89
- <StyledInput
90
- ref={ref}
91
- {...props}
92
- {...extraProps}
93
- onChange={handleChange}
94
- onKeyDown={handleKeyDown}
95
- onFocus={handleFocus}
96
- onBlur={handleBlur}
97
- data-error={Boolean(error)}
98
- />
99
- <Suggestions id={suggestionsId} suggestions={suggestions} />
134
+ <StyledInputContainer>
135
+ {labelElem}
136
+ <StyledInput
137
+ ref={ref}
138
+ {...props}
139
+ {...extraProps}
140
+ id={inputId}
141
+ placeholder={effectivePlaceholder}
142
+ onChange={handleChange}
143
+ onKeyDown={handleKeyDown}
144
+ onFocus={handleFocus}
145
+ onBlur={handleBlur}
146
+ data-error={Boolean(error)}
147
+ />
148
+ <Suggestions id={suggestionsId} suggestions={suggestions} />
149
+ </StyledInputContainer>
100
150
  {suffixElem}
101
151
  </StyledWrapper>
102
152
  );
@@ -110,12 +160,16 @@ const Input = InputRef as <T extends string>(
110
160
  props: Props<T> & React.RefAttributes<HTMLInputElement>,
111
161
  ) => React.ReactElement;
112
162
 
163
+ const InputContainerSelector = StyledInputContainer.toString();
164
+ const InputLabelSelector = StyledLabel.toString();
113
165
  const InputInputSelector = StyledInput.toString();
114
166
  const InputPrefixSelector = StyledPrefix.toString();
115
167
  const InputSuffixSelector = StyledSuffix.toString();
116
168
 
117
169
  export {
118
170
  Input,
171
+ InputContainerSelector,
172
+ InputLabelSelector,
119
173
  InputInputSelector,
120
174
  InputPrefixSelector,
121
175
  InputSuffixSelector,
@@ -1,5 +1,8 @@
1
+ import React from "react";
2
+
1
3
  import type { Meta, StoryObj } from "@storybook/react-vite";
2
4
 
5
+ import { Gap } from "../../utils/Gap";
3
6
  import { TextArea } from "./TextArea";
4
7
 
5
8
  const meta: Meta = {
@@ -21,8 +24,29 @@ const Primary: Story = {
21
24
  },
22
25
  };
23
26
 
27
+ const WithLabel: Story = {
28
+ args: {
29
+ label: "Description",
30
+ placeholder: "Type something here",
31
+ },
32
+ };
33
+
34
+ const FloatingLabel: Story = {
35
+ render: () => (
36
+ <Gap>
37
+ <TextArea label={"Pinned label (default)"} placeholder={"Placeholder visible"} />
38
+ <TextArea label={"Floating label"} pinnedLabel={false} placeholder={"Visible on focus"} />
39
+ <TextArea label={"Only label, no placeholder"} pinnedLabel={false} />
40
+ <TextArea label={"Prefilled"} pinnedLabel={false} defaultValue={"Some value"} />
41
+ <TextArea label={"Error state"} pinnedLabel={false} error={true} />
42
+ <TextArea label={"Disabled"} pinnedLabel={false} disabled={true} />
43
+ <TextArea label={"Read only"} pinnedLabel={false} readOnly={true} defaultValue={"Read-only value"} />
44
+ </Gap>
45
+ ),
46
+ };
47
+
24
48
  export {
25
- Primary,
49
+ Primary, WithLabel, FloatingLabel,
26
50
  };
27
51
 
28
52
  export default meta;
@@ -1,18 +1,32 @@
1
1
  import { miuiScrollbars } from "../../../scrollbars.css";
2
- import { dimensionsPxToRem, styled } from "../../../theme";
3
- import { input, wrapper } from "../input/Input.css";
2
+ import { dimensionsPxToRem, fontPxToRem, styled } from "../../../theme";
3
+ import { input, label as inputLabel, wrapper } from "../input/Input.css";
4
+
5
+ const StyledTextAreaWrapper = styled("div", {
6
+ ...wrapper,
7
+ display: "block",
8
+ padding: 0,
9
+ });
4
10
 
5
11
  const StyledTextArea = styled("textarea", {
6
12
  ...miuiScrollbars,
7
13
  ...input,
8
- ...wrapper,
9
14
 
15
+ backgroundColor: "transparent",
10
16
  padding: `1.2em ${dimensionsPxToRem(36)}`,
11
17
  height: "unset",
12
18
  resize: "vertical",
13
19
  minHeight: dimensionsPxToRem(103),
14
20
  });
15
21
 
22
+ const StyledLabel = styled("label", inputLabel, {
23
+ top: `calc(${fontPxToRem(25)} * 1.7)`,
24
+ left: dimensionsPxToRem(36),
25
+ transform: "translateY(-50%)",
26
+ });
27
+
16
28
  export {
29
+ StyledTextAreaWrapper,
17
30
  StyledTextArea,
31
+ StyledLabel,
18
32
  };
@@ -1,20 +1,42 @@
1
- import React, { forwardRef, useCallback, useState } from "react";
1
+ import React, { forwardRef, useCallback, useId, useState } from "react";
2
2
 
3
- import { StyledTextArea } from "./TextArea.styled";
3
+ import { StyledLabel, StyledTextArea, StyledTextAreaWrapper } from "./TextArea.styled";
4
4
 
5
5
  interface Props {
6
6
  children?: never;
7
7
  error?: boolean;
8
+ label?: string;
9
+ /**
10
+ * When `true` (default), the label stays anchored to the top of the textarea.
11
+ * When `false`, the label sits inside the textarea like a placeholder and floats up
12
+ * on focus or when the textarea has a value.
13
+ */
14
+ pinnedLabel?: boolean;
8
15
  }
9
16
 
10
17
  type TextAreaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & Props;
11
18
 
19
+ // eslint-disable-next-line max-lines-per-function
12
20
  const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(({
13
21
  children,
14
- onFocus, onBlur,
22
+ className,
23
+ onFocus, onBlur, onChange,
24
+ error,
25
+ label,
26
+ pinnedLabel = true,
27
+ placeholder,
28
+ id,
15
29
  ...props
16
30
  }, ref) => {
17
31
  const [focused, setFocused] = useState(false);
32
+ const [internalHasValue, setInternalHasValue] = useState(() => {
33
+ return Boolean(props.value ?? props.defaultValue);
34
+ });
35
+ const isControlled = props.value !== undefined;
36
+ const hasValue = isControlled ? Boolean(props.value) : internalHasValue;
37
+
38
+ const generatedInputId = useId();
39
+ const inputId = id ?? (label ? generatedInputId : undefined);
18
40
 
19
41
  const handleFocus = useCallback((e: React.FocusEvent<HTMLTextAreaElement>) => {
20
42
  setFocused(true);
@@ -26,21 +48,63 @@ const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(({
26
48
  onBlur?.(e);
27
49
  }, [onBlur]);
28
50
 
51
+ const handleChange = useCallback((e: React.ChangeEvent<HTMLTextAreaElement>) => {
52
+ if (!isControlled) {
53
+ setInternalHasValue(Boolean(e.currentTarget.value));
54
+ }
55
+ onChange?.(e);
56
+ }, [isControlled, onChange]);
57
+
58
+ const floating = Boolean(label) && (pinnedLabel || focused || hasValue);
59
+ const showPlaceholder = !label || floating;
60
+ const effectivePlaceholder = showPlaceholder ? placeholder : undefined;
61
+
62
+ const labelElem = label
63
+ ? (
64
+ <StyledLabel
65
+ htmlFor={inputId}
66
+ floating={floating}
67
+ error={Boolean(error)}
68
+ >
69
+ {label}
70
+ </StyledLabel>
71
+ )
72
+ : null;
73
+
29
74
  return (
30
- <StyledTextArea
31
- {...props}
32
- ref={ref}
75
+ <StyledTextAreaWrapper
76
+ className={className}
77
+ focused={focused}
33
78
  disabled={Boolean(props.disabled)}
34
79
  readOnly={Boolean(props.readOnly)}
35
- focused={focused}
36
- onFocus={handleFocus}
37
- onBlur={handleBlur}
38
- />
80
+ error={Boolean(error)}
81
+ >
82
+ {labelElem}
83
+ <StyledTextArea
84
+ {...props}
85
+ ref={ref}
86
+ id={inputId}
87
+ placeholder={effectivePlaceholder}
88
+ onFocus={handleFocus}
89
+ onBlur={handleBlur}
90
+ onChange={handleChange}
91
+ data-error={Boolean(error)}
92
+ />
93
+ </StyledTextAreaWrapper>
39
94
  );
40
95
  });
41
96
 
42
97
  TextArea.displayName = "TextArea";
43
- TextArea.toString = () => StyledTextArea.toString();
98
+ TextArea.toString = () => StyledTextAreaWrapper.toString();
99
+
100
+ const TextAreaWrapperSelector = StyledTextAreaWrapper.toString();
101
+ const TextAreaTextAreaSelector = StyledTextArea.toString();
102
+ const TextAreaLabelSelector = StyledLabel.toString();
44
103
 
45
- export { TextArea };
104
+ export {
105
+ TextArea,
106
+ TextAreaWrapperSelector,
107
+ TextAreaTextAreaSelector,
108
+ TextAreaLabelSelector,
109
+ };
46
110
  export type { TextAreaProps };