react-miui 0.32.2 → 0.33.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 (573) hide show
  1. package/.claude/settings.local.json +8 -1
  2. package/.storybook/main.ts +4 -1
  3. package/CHANGELOG.md +11 -0
  4. package/dist/components/form/Checkbox.styled.d.ts +6 -6
  5. package/dist/components/form/ColorPicker.styled.d.ts +5 -5
  6. package/dist/components/form/Label.d.ts +3 -3
  7. package/dist/components/form/Label.styled.d.ts +5 -5
  8. package/dist/components/form/Select.styled.d.ts +3 -3
  9. package/dist/components/form/Toggle.d.ts +3 -3
  10. package/dist/components/form/Toggle.styled.d.ts +5 -5
  11. package/dist/components/form/choice/Choice.styled.d.ts +3 -3
  12. package/dist/components/form/choice/ChoiceItem.styled.d.ts +2 -2
  13. package/dist/components/form/input/Input.css.d.ts +47 -1
  14. package/dist/components/form/input/Input.css.d.ts.map +1 -1
  15. package/dist/components/form/input/Input.css.js +49 -1
  16. package/dist/components/form/input/Input.css.js.map +1 -1
  17. package/dist/components/form/input/Input.d.ts +5 -1
  18. package/dist/components/form/input/Input.d.ts.map +1 -1
  19. package/dist/components/form/input/Input.js +28 -5
  20. package/dist/components/form/input/Input.js.map +1 -1
  21. package/dist/components/form/input/Input.styled.d.ts +183 -10
  22. package/dist/components/form/input/Input.styled.d.ts.map +1 -1
  23. package/dist/components/form/input/Input.styled.js +5 -1
  24. package/dist/components/form/input/Input.styled.js.map +1 -1
  25. package/dist/components/form/textarea/TextArea.d.ts +6 -1
  26. package/dist/components/form/textarea/TextArea.d.ts.map +1 -1
  27. package/dist/components/form/textarea/TextArea.js +32 -4
  28. package/dist/components/form/textarea/TextArea.js.map +1 -1
  29. package/dist/components/form/textarea/TextArea.styled.d.ts +177 -4
  30. package/dist/components/form/textarea/TextArea.styled.d.ts.map +1 -1
  31. package/dist/components/form/textarea/TextArea.styled.js +10 -2
  32. package/dist/components/form/textarea/TextArea.styled.js.map +1 -1
  33. package/dist/components/layout/card/Card.styled.d.ts +3 -3
  34. package/dist/components/layout/header/Header.styled.d.ts +9 -9
  35. package/dist/components/layout/header/HeaderIconAction.styled.d.ts +8 -8
  36. package/dist/components/layout/header/StickyHeader.d.ts +3 -3
  37. package/dist/components/layout/header/StickyHeader.styled.d.ts +6 -6
  38. package/dist/components/layout/list/Header.d.ts +7 -7
  39. package/dist/components/layout/list/Item.d.ts +8 -8
  40. package/dist/components/layout/list/Item.styled.d.ts +9 -9
  41. package/dist/components/layout/list/Label.d.ts +2 -2
  42. package/dist/components/layout/list/List.d.ts +18 -18
  43. package/dist/components/layout/list/Value.d.ts +2 -2
  44. package/dist/components/layout/section/SearchContainer.d.ts +2 -2
  45. package/dist/components/layout/section/Section.d.ts +5 -5
  46. package/dist/components/layout/section/SectionContainer.d.ts +2 -2
  47. package/dist/components/layout/table/Table.styled.d.ts +3 -3
  48. package/dist/components/native/index.d.ts +2 -2
  49. package/dist/components/ui/action/Action.styled.d.ts +8 -8
  50. package/dist/components/ui/action/EqualActions.styled.d.ts +3 -3
  51. package/dist/components/ui/button/Button.styled.d.ts +3 -3
  52. package/dist/components/ui/directionPad/Button.styled.d.ts +4 -4
  53. package/dist/components/ui/directionPad/Middle.styled.d.ts +2 -2
  54. package/dist/components/ui/directionPad/Pad.styled.d.ts +4 -4
  55. package/dist/components/ui/drawer/Drawer.styled.d.ts +4 -4
  56. package/dist/components/ui/keyValue/KeyValue.styled.d.ts +13 -13
  57. package/dist/components/ui/line/Line.d.ts +3 -3
  58. package/dist/components/ui/loader/CoveringLoader.d.ts.map +1 -1
  59. package/dist/components/ui/loader/CoveringLoader.js +2 -3
  60. package/dist/components/ui/loader/CoveringLoader.js.map +1 -1
  61. package/dist/components/ui/message/Message.styled.d.ts +3 -3
  62. package/dist/components/ui/modal/Modal.d.ts +2 -2
  63. package/dist/components/ui/modal/Modal.d.ts.map +1 -1
  64. package/dist/components/ui/modal/Modal.js.map +1 -1
  65. package/dist/components/ui/modal/Modal.styled.d.ts +10 -10
  66. package/dist/components/ui/modal/ModalButtons.styled.d.ts +5 -5
  67. package/dist/components/ui/pop/Pop.styled.d.ts +12 -12
  68. package/dist/components/ui/progress/Progress.styled.d.ts +8 -8
  69. package/dist/components/ui/stats/Stats.styled.d.ts +11 -11
  70. package/dist/components/ui/tabs/Item.styled.d.ts +2 -2
  71. package/dist/components/ui/tabs/Selector.styled.d.ts +5 -5
  72. package/dist/components/ui/toaster/Toaster.d.ts +8 -15
  73. package/dist/components/ui/toaster/Toaster.d.ts.map +1 -1
  74. package/dist/components/ui/toaster/Toaster.js +25 -55
  75. package/dist/components/ui/toaster/Toaster.js.map +1 -1
  76. package/dist/components/ui/toolButton/ToolButton.styled.d.ts +3 -3
  77. package/dist/components/utils/Gap.d.ts +3 -3
  78. package/dist/components/utils/Spacer.d.ts +2 -2
  79. package/dist/theme.d.ts +86 -86
  80. package/docs/assets/navigation.js +1 -1
  81. package/docs/assets/search.js +1 -1
  82. package/docs/classes/index.Pop.html +18 -18
  83. package/docs/documents/Test.html +2 -2
  84. package/docs/enums/index.ICON.html +2 -2
  85. package/docs/functions/index.Action.html +5 -5
  86. package/docs/functions/index.Button.html +5 -5
  87. package/docs/functions/index.Card.html +4 -4
  88. package/docs/functions/index.Checkbox.html +5 -5
  89. package/docs/functions/index.Choice.html +4 -4
  90. package/docs/functions/index.ColorPicker.html +5 -5
  91. package/docs/functions/index.CoveringLoader.html +5 -5
  92. package/docs/functions/index.DirectionPad.html +4 -4
  93. package/docs/functions/index.Drawer.html +4 -4
  94. package/docs/functions/index.EqualActions.html +4 -4
  95. package/docs/functions/index.FullLoader.html +5 -5
  96. package/docs/functions/index.Gap.html +4 -4
  97. package/docs/functions/index.HandleEsc.html +6 -6
  98. package/docs/functions/index.Header.html +5 -5
  99. package/docs/functions/index.HeaderIconAction.html +5 -5
  100. package/docs/functions/index.Icon-1.html +4 -4
  101. package/docs/functions/index.If.html +6 -6
  102. package/docs/functions/index.Input.html +1 -1
  103. package/docs/functions/index.KeyValue.html +4 -4
  104. package/docs/functions/index.Label.html +4 -4
  105. package/docs/functions/index.Line.html +5 -5
  106. package/docs/functions/index.List.html +4 -4
  107. package/docs/functions/index.Loader.html +5 -5
  108. package/docs/functions/index.Loading.html +6 -6
  109. package/docs/functions/index.Message.html +5 -5
  110. package/docs/functions/index.Modal.html +4 -4
  111. package/docs/functions/index.ModalButtons.html +4 -4
  112. package/docs/functions/index.PopLoader.html +5 -5
  113. package/docs/functions/index.PopOption.html +4 -4
  114. package/docs/functions/index.Progress.html +4 -4
  115. package/docs/functions/index.SearchContainer.html +4 -4
  116. package/docs/functions/index.Section.html +5 -5
  117. package/docs/functions/index.Select.html +4 -4
  118. package/docs/functions/index.Selector.html +4 -4
  119. package/docs/functions/index.Spacer.html +4 -4
  120. package/docs/functions/index.Stats.html +4 -4
  121. package/docs/functions/index.StickyHeader.html +5 -5
  122. package/docs/functions/index.Table.html +4 -4
  123. package/docs/functions/index.TextArea.html +4 -4
  124. package/docs/functions/index.ToasterProvider.html +29 -0
  125. package/docs/functions/index.Toggle.html +5 -5
  126. package/docs/functions/index.ToolButton.html +5 -5
  127. package/docs/functions/index.borderPxToRem.html +1 -1
  128. package/docs/functions/index.createTheme.html +1 -1
  129. package/docs/functions/index.css.html +1 -1
  130. package/docs/functions/index.dimensionsPxToRem.html +1 -1
  131. package/docs/functions/index.fontPxToRem.html +1 -1
  132. package/docs/functions/index.getCssText.html +1 -1
  133. package/docs/functions/index.globalCss.html +2 -2
  134. package/docs/functions/index.injectGlobalStyles.html +1 -1
  135. package/docs/functions/index.keyframes.html +1 -1
  136. package/docs/functions/index.pxToRem.html +1 -1
  137. package/docs/functions/index.styled.html +1 -1
  138. package/docs/functions/index.toast.html +12 -0
  139. package/docs/functions/index.useToaster.html +1 -1
  140. package/docs/index.html +2 -2
  141. package/docs/interfaces/index.IconProps.html +2 -2
  142. package/docs/interfaces/index.InputCustomProps.html +7 -2
  143. package/docs/interfaces/index.LoaderProps.html +6 -6
  144. package/docs/interfaces/index.StickyHeaderProps.html +4 -4
  145. package/docs/interfaces/index.ToasterProviderProps.html +28 -0
  146. package/docs/modules/index.html +1 -1
  147. package/docs/modules.html +1 -1
  148. package/docs/types/index.ActionProps.html +1 -1
  149. package/docs/types/index.CardProps.html +1 -1
  150. package/docs/types/index.CheckboxProps.html +2 -2
  151. package/docs/types/index.ChoiceProps.html +1 -1
  152. package/docs/types/index.ColorPickerProps.html +1 -1
  153. package/docs/types/index.DirectionPadProps.html +1 -1
  154. package/docs/types/index.DrawerProps.html +1 -1
  155. package/docs/types/index.EqualActionsProps.html +1 -1
  156. package/docs/types/index.HeaderProps.html +1 -1
  157. package/docs/types/index.InputProps.html +1 -1
  158. package/docs/types/index.KeyValueProps.html +1 -1
  159. package/docs/types/index.LabelProps.html +1 -1
  160. package/docs/types/index.OverwriteProps.html +1 -1
  161. package/docs/types/index.ProgressProps.html +2 -2
  162. package/docs/types/index.SelectProps.html +1 -1
  163. package/docs/types/index.SelectorProps.html +1 -1
  164. package/docs/types/index.Stat.html +1 -1
  165. package/docs/types/index.StatsProps.html +1 -1
  166. package/docs/types/index.TextAreaProps.html +1 -1
  167. package/docs/types/index.ThemeCSS.html +1 -1
  168. package/docs/types/index.ToggleProps.html +2 -2
  169. package/docs/variables/index.ActionBadgeSelector.html +1 -1
  170. package/docs/variables/index.ActionCircleSelector.html +1 -1
  171. package/docs/variables/index.CheckboxCheckmarkWrapperSelector.html +1 -1
  172. package/docs/variables/index.CheckboxTextLabelSelector.html +1 -1
  173. package/docs/variables/index.ChoiceItemSelector.html +1 -1
  174. package/docs/variables/index.ColorPickerColorDisplaySelector.html +1 -1
  175. package/docs/variables/index.DirectionPadButtonDotSelector.html +1 -1
  176. package/docs/variables/index.DirectionPadButtonSelector.html +1 -1
  177. package/docs/variables/index.DirectionPadLineSelector.html +1 -1
  178. package/docs/variables/index.DirectionPadMiddleSelector.html +1 -1
  179. package/docs/variables/index.DrawerContentSelector.html +1 -1
  180. package/docs/variables/index.HeaderAfterSelector.html +1 -1
  181. package/docs/variables/index.HeaderBeforeSelector.html +1 -1
  182. package/docs/variables/index.HeaderContentsSelector.html +1 -1
  183. package/docs/variables/index.HeaderIconActionIconSelector.html +1 -1
  184. package/docs/variables/index.InputContainerSelector.html +1 -0
  185. package/docs/variables/index.InputInputSelector.html +1 -1
  186. package/docs/variables/index.InputLabelSelector.html +1 -0
  187. package/docs/variables/index.InputPrefixSelector.html +1 -1
  188. package/docs/variables/index.InputSuffixSelector.html +1 -1
  189. package/docs/variables/index.KeyValueIconSelector.html +1 -1
  190. package/docs/variables/index.KeyValueItemSelector.html +1 -1
  191. package/docs/variables/index.KeyValueKeySelector.html +1 -1
  192. package/docs/variables/index.KeyValuePairSelector.html +1 -1
  193. package/docs/variables/index.KeyValueValueSelector.html +1 -1
  194. package/docs/variables/index.LabelTextSelector.html +1 -1
  195. package/docs/variables/index.ListItemInnerContainerClassNameSelector.html +1 -1
  196. package/docs/variables/index.ModalContainerSelector.html +1 -1
  197. package/docs/variables/index.ModalRemovePaddingSelector.html +1 -1
  198. package/docs/variables/index.ModalTitleSelector.html +1 -1
  199. package/docs/variables/index.PopListSelector.html +1 -1
  200. package/docs/variables/index.PopOptionButtonSelector.html +1 -1
  201. package/docs/variables/index.PopOptionIconSelector.html +1 -1
  202. package/docs/variables/index.PopOverlaySelector.html +1 -1
  203. package/docs/variables/index.ProgressBackgroundSelector.html +1 -1
  204. package/docs/variables/index.ProgressValueSelector.html +1 -1
  205. package/docs/variables/index.SelectorItemSelector.html +1 -1
  206. package/docs/variables/index.StatsItemSelector.html +1 -1
  207. package/docs/variables/index.StatsLabelSelector.html +1 -1
  208. package/docs/variables/index.StatsSeparatorSelector.html +1 -1
  209. package/docs/variables/index.StatsValueSelector.html +1 -1
  210. package/docs/variables/index.TextAreaLabelSelector.html +1 -0
  211. package/docs/variables/index.TextAreaTextAreaSelector.html +1 -0
  212. package/docs/variables/index.TextAreaWrapperSelector.html +1 -0
  213. package/docs/variables/index.ToggleStyledToggleSelector.html +1 -1
  214. package/docs/variables/index.config.html +1 -1
  215. package/docs/variables/index.cssReset.html +2 -2
  216. package/docs/variables/index.darkTheme.html +1 -1
  217. package/docs/variables/index.miuiScrollbars.html +1 -1
  218. package/docs/variables/index.theme.html +1 -1
  219. package/esm/components/form/Checkbox.styled.d.ts +6 -6
  220. package/esm/components/form/ColorPicker.styled.d.ts +5 -5
  221. package/esm/components/form/Label.d.ts +3 -3
  222. package/esm/components/form/Label.styled.d.ts +5 -5
  223. package/esm/components/form/Select.styled.d.ts +3 -3
  224. package/esm/components/form/Toggle.d.ts +3 -3
  225. package/esm/components/form/Toggle.styled.d.ts +5 -5
  226. package/esm/components/form/choice/Choice.styled.d.ts +3 -3
  227. package/esm/components/form/choice/ChoiceItem.styled.d.ts +2 -2
  228. package/esm/components/form/input/Input.css.d.ts +47 -1
  229. package/esm/components/form/input/Input.css.d.ts.map +1 -1
  230. package/esm/components/form/input/Input.css.js +47 -1
  231. package/esm/components/form/input/Input.css.js.map +1 -1
  232. package/esm/components/form/input/Input.d.ts +5 -1
  233. package/esm/components/form/input/Input.d.ts.map +1 -1
  234. package/esm/components/form/input/Input.js +27 -6
  235. package/esm/components/form/input/Input.js.map +1 -1
  236. package/esm/components/form/input/Input.styled.d.ts +183 -10
  237. package/esm/components/form/input/Input.styled.d.ts.map +1 -1
  238. package/esm/components/form/input/Input.styled.js +4 -2
  239. package/esm/components/form/input/Input.styled.js.map +1 -1
  240. package/esm/components/form/textarea/TextArea.d.ts +6 -1
  241. package/esm/components/form/textarea/TextArea.d.ts.map +1 -1
  242. package/esm/components/form/textarea/TextArea.js +31 -6
  243. package/esm/components/form/textarea/TextArea.js.map +1 -1
  244. package/esm/components/form/textarea/TextArea.styled.d.ts +177 -4
  245. package/esm/components/form/textarea/TextArea.styled.d.ts.map +1 -1
  246. package/esm/components/form/textarea/TextArea.styled.js +14 -4
  247. package/esm/components/form/textarea/TextArea.styled.js.map +1 -1
  248. package/esm/components/layout/card/Card.styled.d.ts +3 -3
  249. package/esm/components/layout/header/Header.styled.d.ts +9 -9
  250. package/esm/components/layout/header/HeaderIconAction.styled.d.ts +8 -8
  251. package/esm/components/layout/header/StickyHeader.d.ts +3 -3
  252. package/esm/components/layout/header/StickyHeader.styled.d.ts +6 -6
  253. package/esm/components/layout/list/Header.d.ts +7 -7
  254. package/esm/components/layout/list/Item.d.ts +8 -8
  255. package/esm/components/layout/list/Item.styled.d.ts +9 -9
  256. package/esm/components/layout/list/Label.d.ts +2 -2
  257. package/esm/components/layout/list/List.d.ts +18 -18
  258. package/esm/components/layout/list/Value.d.ts +2 -2
  259. package/esm/components/layout/section/SearchContainer.d.ts +2 -2
  260. package/esm/components/layout/section/Section.d.ts +5 -5
  261. package/esm/components/layout/section/SectionContainer.d.ts +2 -2
  262. package/esm/components/layout/table/Table.styled.d.ts +3 -3
  263. package/esm/components/native/index.d.ts +2 -2
  264. package/esm/components/ui/action/Action.styled.d.ts +8 -8
  265. package/esm/components/ui/action/EqualActions.styled.d.ts +3 -3
  266. package/esm/components/ui/button/Button.styled.d.ts +3 -3
  267. package/esm/components/ui/directionPad/Button.styled.d.ts +4 -4
  268. package/esm/components/ui/directionPad/Middle.styled.d.ts +2 -2
  269. package/esm/components/ui/directionPad/Pad.styled.d.ts +4 -4
  270. package/esm/components/ui/drawer/Drawer.styled.d.ts +4 -4
  271. package/esm/components/ui/keyValue/KeyValue.styled.d.ts +13 -13
  272. package/esm/components/ui/line/Line.d.ts +3 -3
  273. package/esm/components/ui/loader/CoveringLoader.d.ts.map +1 -1
  274. package/esm/components/ui/loader/CoveringLoader.js +2 -3
  275. package/esm/components/ui/loader/CoveringLoader.js.map +1 -1
  276. package/esm/components/ui/message/Message.styled.d.ts +3 -3
  277. package/esm/components/ui/modal/Modal.d.ts +2 -2
  278. package/esm/components/ui/modal/Modal.d.ts.map +1 -1
  279. package/esm/components/ui/modal/Modal.js.map +1 -1
  280. package/esm/components/ui/modal/Modal.styled.d.ts +10 -10
  281. package/esm/components/ui/modal/ModalButtons.styled.d.ts +5 -5
  282. package/esm/components/ui/pop/Pop.styled.d.ts +12 -12
  283. package/esm/components/ui/progress/Progress.styled.d.ts +8 -8
  284. package/esm/components/ui/stats/Stats.styled.d.ts +11 -11
  285. package/esm/components/ui/tabs/Item.styled.d.ts +2 -2
  286. package/esm/components/ui/tabs/Selector.styled.d.ts +5 -5
  287. package/esm/components/ui/toaster/Toaster.d.ts +8 -15
  288. package/esm/components/ui/toaster/Toaster.d.ts.map +1 -1
  289. package/esm/components/ui/toaster/Toaster.js +13 -74
  290. package/esm/components/ui/toaster/Toaster.js.map +1 -1
  291. package/esm/components/ui/toolButton/ToolButton.styled.d.ts +3 -3
  292. package/esm/components/utils/Gap.d.ts +3 -3
  293. package/esm/components/utils/Spacer.d.ts +2 -2
  294. package/esm/theme.d.ts +86 -86
  295. package/package.json +21 -22
  296. package/patches/{@stitches+react+1.2.8.patch → @stitches__react@1.2.8.patch} +6 -6
  297. package/src/components/form/input/Input.css.ts +52 -0
  298. package/src/components/form/input/Input.stories.tsx +32 -1
  299. package/src/components/form/input/Input.styled.ts +7 -1
  300. package/src/components/form/input/Input.tsx +67 -13
  301. package/src/components/form/textarea/TextArea.stories.tsx +25 -1
  302. package/src/components/form/textarea/TextArea.styled.ts +17 -3
  303. package/src/components/form/textarea/TextArea.tsx +76 -12
  304. package/src/components/ui/loader/CoveringLoader.tsx +3 -4
  305. package/src/components/ui/modal/Modal.tsx +0 -1
  306. package/src/components/ui/modal/ModalButtons.stories.tsx +3 -3
  307. package/src/components/ui/toaster/Toaster.stories.tsx +160 -30
  308. package/src/components/ui/toaster/Toaster.tsx +24 -100
  309. package/storybook-static/assets/Action.stories-DBtNlWQo.js +1 -0
  310. package/storybook-static/assets/Button.stories-DFO8nsTN.js +1 -0
  311. package/storybook-static/assets/Card.stories-BoCt66U4.js +1 -0
  312. package/storybook-static/assets/Checkbox.stories-C58YeH4u.js +1 -0
  313. package/storybook-static/assets/Choice.stories-Cf7UbPxn.js +1 -0
  314. package/storybook-static/assets/Color-23OOGO2C-CELuW8GR.js +1 -0
  315. package/storybook-static/assets/ColorPicker.stories-Dc7-AuPQ.js +1 -0
  316. package/storybook-static/assets/CoveringLoader.stories-DrUQAhI6.js +1 -0
  317. package/storybook-static/assets/DocsRenderer-LL677BLK-BOcEjZ28.js +755 -0
  318. package/storybook-static/assets/Drawer.stories-D3_-TuT0.js +1 -0
  319. package/storybook-static/assets/EqualActions.stories-CwjZlkUA.js +1 -0
  320. package/storybook-static/assets/FullLoader.stories-DFAaVMfI.js +1 -0
  321. package/storybook-static/assets/Header.stories-BN7BuQx2.js +1 -0
  322. package/storybook-static/assets/Header.stories-CzPBNEkp.js +1 -0
  323. package/storybook-static/assets/HeaderIconAction.stories-Dm3Q-BVW.js +1 -0
  324. package/storybook-static/assets/Icon.stories-D1YeVBlB.js +1 -0
  325. package/storybook-static/assets/Input.stories-Cbj2X3kT.js +197 -0
  326. package/storybook-static/assets/Item.stories-CmjyxdgQ.js +1 -0
  327. package/storybook-static/assets/KeyValue.stories-CogaZP09.js +1 -0
  328. package/storybook-static/assets/Label.stories-B6pCT45X.js +1 -0
  329. package/storybook-static/assets/Label.stories-BR3gNHqM.js +1 -0
  330. package/storybook-static/assets/Line.stories-BJLer7gg.js +1 -0
  331. package/storybook-static/assets/List.stories-MSQY1Rdo.js +1 -0
  332. package/storybook-static/assets/Loader.stories-CbN84qNp.js +1 -0
  333. package/storybook-static/assets/Loading.stories-BOANGXsc.js +1 -0
  334. package/storybook-static/assets/Message.stories-_51K9ZDn.js +1 -0
  335. package/storybook-static/assets/Modal.stories-CixfvMuM.js +1 -0
  336. package/storybook-static/assets/ModalButtons.stories-DHHsnoGB.js +1 -0
  337. package/storybook-static/assets/Pad.stories-hrKerezi.js +1 -0
  338. package/storybook-static/assets/Pop.stories-BTlQGve1.js +1 -0
  339. package/storybook-static/assets/PopLoader.stories-CyskY4fX.js +1 -0
  340. package/storybook-static/assets/Progress.stories-BLMPF6Ju.js +1 -0
  341. package/storybook-static/assets/Section.stories-M-QRH2_i.js +1 -0
  342. package/storybook-static/assets/Select.stories-BJjJqLTa.js +1 -0
  343. package/storybook-static/assets/Selector.stories-BxHyFnYo.js +1 -0
  344. package/storybook-static/assets/Stats.stories-VB0pi5k5.js +1 -0
  345. package/storybook-static/assets/StickyHeader.stories-BnxgnjJW.js +3 -0
  346. package/storybook-static/assets/Table.stories-6F-WrDBs.js +1 -0
  347. package/storybook-static/assets/TextArea.stories-DqzHYgIv.js +1 -0
  348. package/storybook-static/assets/Toaster.stories-C0ktk0DW.js +1 -0
  349. package/storybook-static/assets/Toggle.stories-tBlD8SJi.js +1 -0
  350. package/storybook-static/assets/ToolButton.stories-0rGBGqAt.js +1 -0
  351. package/storybook-static/assets/Value.stories-CFT20m8r.js +1 -0
  352. package/storybook-static/assets/WithTooltip-65CFNBJE-CEiAC9o_.js +9 -0
  353. package/storybook-static/assets/formatter-EIJCOSYU-3FZOx6vn.js +1 -0
  354. package/storybook-static/assets/iframe-DvhcA1iZ.js +1244 -0
  355. package/storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
  356. package/storybook-static/assets/react-18-oqx706Mo.js +1 -0
  357. package/storybook-static/assets/syntaxhighlighter-W7WJGI2T-D7f2o1Z3.js +6 -0
  358. package/storybook-static/favicon-wrapper.svg +46 -0
  359. package/storybook-static/favicon.svg +1 -0
  360. package/storybook-static/iframe.html +709 -0
  361. package/storybook-static/index.html +146 -0
  362. package/storybook-static/index.json +1 -0
  363. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  364. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  365. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  366. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  367. package/storybook-static/project.json +1 -0
  368. package/storybook-static/sb-addons/docs-1/manager-bundle.js +3 -0
  369. package/storybook-static/sb-addons/onboarding-2/manager-bundle.js +97 -0
  370. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +630 -0
  371. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  372. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  373. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  374. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  375. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  376. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  377. package/storybook-static/sb-manager/globals-runtime.js +76749 -0
  378. package/storybook-static/sb-manager/globals.js +24 -0
  379. package/storybook-static/sb-manager/manager-stores.js +23 -0
  380. package/storybook-static/sb-manager/runtime.js +27463 -0
  381. package/storybook-static/vite-inject-mocker-entry.js +2 -0
  382. package/dist/components/ui/toaster/Notification.d.ts +0 -9
  383. package/dist/components/ui/toaster/Notification.d.ts.map +0 -1
  384. package/dist/components/ui/toaster/Notification.js +0 -53
  385. package/dist/components/ui/toaster/Notification.js.map +0 -1
  386. package/dist/components/ui/toaster/Toaster.styled.d.ts +0 -89
  387. package/dist/components/ui/toaster/Toaster.styled.d.ts.map +0 -1
  388. package/dist/components/ui/toaster/Toaster.styled.js +0 -39
  389. package/dist/components/ui/toaster/Toaster.styled.js.map +0 -1
  390. package/dist/components/ui/toaster/types.d.ts +0 -7
  391. package/dist/components/ui/toaster/types.d.ts.map +0 -1
  392. package/dist/components/ui/toaster/types.js +0 -3
  393. package/dist/components/ui/toaster/types.js.map +0 -1
  394. package/docs/classes/index.ToasterProvider.html +0 -120
  395. package/esm/components/form/Checkbox.stories.d.ts +0 -9
  396. package/esm/components/form/Checkbox.stories.d.ts.map +0 -1
  397. package/esm/components/form/Checkbox.stories.js +0 -80
  398. package/esm/components/form/Checkbox.stories.js.map +0 -1
  399. package/esm/components/form/ColorPicker.stories.d.ts +0 -10
  400. package/esm/components/form/ColorPicker.stories.d.ts.map +0 -1
  401. package/esm/components/form/ColorPicker.stories.js +0 -75
  402. package/esm/components/form/ColorPicker.stories.js.map +0 -1
  403. package/esm/components/form/Label.stories.d.ts +0 -11
  404. package/esm/components/form/Label.stories.d.ts.map +0 -1
  405. package/esm/components/form/Label.stories.js +0 -43
  406. package/esm/components/form/Label.stories.js.map +0 -1
  407. package/esm/components/form/Select.stories.d.ts +0 -8
  408. package/esm/components/form/Select.stories.d.ts.map +0 -1
  409. package/esm/components/form/Select.stories.js +0 -24
  410. package/esm/components/form/Select.stories.js.map +0 -1
  411. package/esm/components/form/Toggle.stories.d.ts +0 -14
  412. package/esm/components/form/Toggle.stories.d.ts.map +0 -1
  413. package/esm/components/form/Toggle.stories.js +0 -76
  414. package/esm/components/form/Toggle.stories.js.map +0 -1
  415. package/esm/components/form/choice/Choice.stories.d.ts +0 -10
  416. package/esm/components/form/choice/Choice.stories.d.ts.map +0 -1
  417. package/esm/components/form/choice/Choice.stories.js +0 -80
  418. package/esm/components/form/choice/Choice.stories.js.map +0 -1
  419. package/esm/components/form/input/Input.stories.d.ts +0 -10
  420. package/esm/components/form/input/Input.stories.d.ts.map +0 -1
  421. package/esm/components/form/input/Input.stories.js +0 -54
  422. package/esm/components/form/input/Input.stories.js.map +0 -1
  423. package/esm/components/form/textarea/TextArea.stories.d.ts +0 -8
  424. package/esm/components/form/textarea/TextArea.stories.d.ts.map +0 -1
  425. package/esm/components/form/textarea/TextArea.stories.js +0 -19
  426. package/esm/components/form/textarea/TextArea.stories.js.map +0 -1
  427. package/esm/components/icons/Icon.stories.d.ts +0 -10
  428. package/esm/components/icons/Icon.stories.d.ts.map +0 -1
  429. package/esm/components/icons/Icon.stories.js +0 -49
  430. package/esm/components/icons/Icon.stories.js.map +0 -1
  431. package/esm/components/layout/card/Card.stories.d.ts +0 -11
  432. package/esm/components/layout/card/Card.stories.d.ts.map +0 -1
  433. package/esm/components/layout/card/Card.stories.js +0 -39
  434. package/esm/components/layout/card/Card.stories.js.map +0 -1
  435. package/esm/components/layout/header/Header.stories.d.ts +0 -11
  436. package/esm/components/layout/header/Header.stories.d.ts.map +0 -1
  437. package/esm/components/layout/header/Header.stories.js +0 -56
  438. package/esm/components/layout/header/Header.stories.js.map +0 -1
  439. package/esm/components/layout/header/HeaderIconAction.stories.d.ts +0 -10
  440. package/esm/components/layout/header/HeaderIconAction.stories.d.ts.map +0 -1
  441. package/esm/components/layout/header/HeaderIconAction.stories.js +0 -43
  442. package/esm/components/layout/header/HeaderIconAction.stories.js.map +0 -1
  443. package/esm/components/layout/header/StickyHeader.stories.d.ts +0 -9
  444. package/esm/components/layout/header/StickyHeader.stories.d.ts.map +0 -1
  445. package/esm/components/layout/header/StickyHeader.stories.js +0 -60
  446. package/esm/components/layout/header/StickyHeader.stories.js.map +0 -1
  447. package/esm/components/layout/list/Header.stories.d.ts +0 -8
  448. package/esm/components/layout/list/Header.stories.d.ts.map +0 -1
  449. package/esm/components/layout/list/Header.stories.js +0 -27
  450. package/esm/components/layout/list/Header.stories.js.map +0 -1
  451. package/esm/components/layout/list/Item.stories.d.ts +0 -11
  452. package/esm/components/layout/list/Item.stories.d.ts.map +0 -1
  453. package/esm/components/layout/list/Item.stories.js +0 -98
  454. package/esm/components/layout/list/Item.stories.js.map +0 -1
  455. package/esm/components/layout/list/Label.stories.d.ts +0 -8
  456. package/esm/components/layout/list/Label.stories.d.ts.map +0 -1
  457. package/esm/components/layout/list/Label.stories.js +0 -29
  458. package/esm/components/layout/list/Label.stories.js.map +0 -1
  459. package/esm/components/layout/list/List.stories.d.ts +0 -9
  460. package/esm/components/layout/list/List.stories.d.ts.map +0 -1
  461. package/esm/components/layout/list/List.stories.js +0 -46
  462. package/esm/components/layout/list/List.stories.js.map +0 -1
  463. package/esm/components/layout/list/Value.stories.d.ts +0 -8
  464. package/esm/components/layout/list/Value.stories.d.ts.map +0 -1
  465. package/esm/components/layout/list/Value.stories.js +0 -23
  466. package/esm/components/layout/list/Value.stories.js.map +0 -1
  467. package/esm/components/layout/section/Section.stories.d.ts +0 -8
  468. package/esm/components/layout/section/Section.stories.d.ts.map +0 -1
  469. package/esm/components/layout/section/Section.stories.js +0 -31
  470. package/esm/components/layout/section/Section.stories.js.map +0 -1
  471. package/esm/components/layout/table/Table.stories.d.ts +0 -8
  472. package/esm/components/layout/table/Table.stories.d.ts.map +0 -1
  473. package/esm/components/layout/table/Table.stories.js +0 -49
  474. package/esm/components/layout/table/Table.stories.js.map +0 -1
  475. package/esm/components/ui/action/Action.stories.d.ts +0 -11
  476. package/esm/components/ui/action/Action.stories.d.ts.map +0 -1
  477. package/esm/components/ui/action/Action.stories.js +0 -58
  478. package/esm/components/ui/action/Action.stories.js.map +0 -1
  479. package/esm/components/ui/action/EqualActions.stories.d.ts +0 -10
  480. package/esm/components/ui/action/EqualActions.stories.d.ts.map +0 -1
  481. package/esm/components/ui/action/EqualActions.stories.js +0 -38
  482. package/esm/components/ui/action/EqualActions.stories.js.map +0 -1
  483. package/esm/components/ui/button/Button.stories.d.ts +0 -9
  484. package/esm/components/ui/button/Button.stories.d.ts.map +0 -1
  485. package/esm/components/ui/button/Button.stories.js +0 -35
  486. package/esm/components/ui/button/Button.stories.js.map +0 -1
  487. package/esm/components/ui/directionPad/Pad.stories.d.ts +0 -10
  488. package/esm/components/ui/directionPad/Pad.stories.d.ts.map +0 -1
  489. package/esm/components/ui/directionPad/Pad.stories.js +0 -79
  490. package/esm/components/ui/directionPad/Pad.stories.js.map +0 -1
  491. package/esm/components/ui/drawer/Drawer.stories.d.ts +0 -11
  492. package/esm/components/ui/drawer/Drawer.stories.d.ts.map +0 -1
  493. package/esm/components/ui/drawer/Drawer.stories.js +0 -102
  494. package/esm/components/ui/drawer/Drawer.stories.js.map +0 -1
  495. package/esm/components/ui/keyValue/KeyValue.stories.d.ts +0 -11
  496. package/esm/components/ui/keyValue/KeyValue.stories.d.ts.map +0 -1
  497. package/esm/components/ui/keyValue/KeyValue.stories.js +0 -98
  498. package/esm/components/ui/keyValue/KeyValue.stories.js.map +0 -1
  499. package/esm/components/ui/line/Line.stories.d.ts +0 -8
  500. package/esm/components/ui/line/Line.stories.d.ts.map +0 -1
  501. package/esm/components/ui/line/Line.stories.js +0 -27
  502. package/esm/components/ui/line/Line.stories.js.map +0 -1
  503. package/esm/components/ui/loader/CoveringLoader.stories.d.ts +0 -8
  504. package/esm/components/ui/loader/CoveringLoader.stories.d.ts.map +0 -1
  505. package/esm/components/ui/loader/CoveringLoader.stories.js +0 -50
  506. package/esm/components/ui/loader/CoveringLoader.stories.js.map +0 -1
  507. package/esm/components/ui/loader/FullLoader.stories.d.ts +0 -8
  508. package/esm/components/ui/loader/FullLoader.stories.d.ts.map +0 -1
  509. package/esm/components/ui/loader/FullLoader.stories.js +0 -19
  510. package/esm/components/ui/loader/FullLoader.stories.js.map +0 -1
  511. package/esm/components/ui/loader/Loader.stories.d.ts +0 -8
  512. package/esm/components/ui/loader/Loader.stories.d.ts.map +0 -1
  513. package/esm/components/ui/loader/Loader.stories.js +0 -23
  514. package/esm/components/ui/loader/Loader.stories.js.map +0 -1
  515. package/esm/components/ui/loader/Loading.stories.d.ts +0 -8
  516. package/esm/components/ui/loader/Loading.stories.d.ts.map +0 -1
  517. package/esm/components/ui/loader/Loading.stories.js +0 -32
  518. package/esm/components/ui/loader/Loading.stories.js.map +0 -1
  519. package/esm/components/ui/loader/PopLoader.stories.d.ts +0 -8
  520. package/esm/components/ui/loader/PopLoader.stories.d.ts.map +0 -1
  521. package/esm/components/ui/loader/PopLoader.stories.js +0 -24
  522. package/esm/components/ui/loader/PopLoader.stories.js.map +0 -1
  523. package/esm/components/ui/message/Message.stories.d.ts +0 -9
  524. package/esm/components/ui/message/Message.stories.d.ts.map +0 -1
  525. package/esm/components/ui/message/Message.stories.js +0 -43
  526. package/esm/components/ui/message/Message.stories.js.map +0 -1
  527. package/esm/components/ui/modal/Modal.stories.d.ts +0 -10
  528. package/esm/components/ui/modal/Modal.stories.d.ts.map +0 -1
  529. package/esm/components/ui/modal/Modal.stories.js +0 -84
  530. package/esm/components/ui/modal/Modal.stories.js.map +0 -1
  531. package/esm/components/ui/modal/ModalButtons.stories.d.ts +0 -8
  532. package/esm/components/ui/modal/ModalButtons.stories.d.ts.map +0 -1
  533. package/esm/components/ui/modal/ModalButtons.stories.js +0 -19
  534. package/esm/components/ui/modal/ModalButtons.stories.js.map +0 -1
  535. package/esm/components/ui/pop/Pop.stories.d.ts +0 -8
  536. package/esm/components/ui/pop/Pop.stories.d.ts.map +0 -1
  537. package/esm/components/ui/pop/Pop.stories.js +0 -65
  538. package/esm/components/ui/pop/Pop.stories.js.map +0 -1
  539. package/esm/components/ui/progress/Progress.stories.d.ts +0 -9
  540. package/esm/components/ui/progress/Progress.stories.d.ts.map +0 -1
  541. package/esm/components/ui/progress/Progress.stories.js +0 -29
  542. package/esm/components/ui/progress/Progress.stories.js.map +0 -1
  543. package/esm/components/ui/stats/Stats.stories.d.ts +0 -11
  544. package/esm/components/ui/stats/Stats.stories.d.ts.map +0 -1
  545. package/esm/components/ui/stats/Stats.stories.js +0 -104
  546. package/esm/components/ui/stats/Stats.stories.js.map +0 -1
  547. package/esm/components/ui/tabs/Selector.stories.d.ts +0 -12
  548. package/esm/components/ui/tabs/Selector.stories.d.ts.map +0 -1
  549. package/esm/components/ui/tabs/Selector.stories.js +0 -110
  550. package/esm/components/ui/tabs/Selector.stories.js.map +0 -1
  551. package/esm/components/ui/toaster/Notification.d.ts +0 -9
  552. package/esm/components/ui/toaster/Notification.d.ts.map +0 -1
  553. package/esm/components/ui/toaster/Notification.js +0 -17
  554. package/esm/components/ui/toaster/Notification.js.map +0 -1
  555. package/esm/components/ui/toaster/Toaster.stories.d.ts +0 -7
  556. package/esm/components/ui/toaster/Toaster.stories.d.ts.map +0 -1
  557. package/esm/components/ui/toaster/Toaster.stories.js +0 -39
  558. package/esm/components/ui/toaster/Toaster.stories.js.map +0 -1
  559. package/esm/components/ui/toaster/Toaster.styled.d.ts +0 -89
  560. package/esm/components/ui/toaster/Toaster.styled.d.ts.map +0 -1
  561. package/esm/components/ui/toaster/Toaster.styled.js +0 -36
  562. package/esm/components/ui/toaster/Toaster.styled.js.map +0 -1
  563. package/esm/components/ui/toaster/types.d.ts +0 -7
  564. package/esm/components/ui/toaster/types.d.ts.map +0 -1
  565. package/esm/components/ui/toaster/types.js +0 -2
  566. package/esm/components/ui/toaster/types.js.map +0 -1
  567. package/esm/components/ui/toolButton/ToolButton.stories.d.ts +0 -8
  568. package/esm/components/ui/toolButton/ToolButton.stories.d.ts.map +0 -1
  569. package/esm/components/ui/toolButton/ToolButton.stories.js +0 -29
  570. package/esm/components/ui/toolButton/ToolButton.stories.js.map +0 -1
  571. package/src/components/ui/toaster/Notification.tsx +0 -39
  572. package/src/components/ui/toaster/Toaster.styled.ts +0 -42
  573. package/src/components/ui/toaster/types.ts +0 -9
@@ -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> = (
@@ -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 };
@@ -40,8 +40,6 @@ const CoveringLoader = forwardRef<HTMLElement, Props>(({ // eslint-disable-line
40
40
  const id = "miui-" + useId().replace(/:/gu, "-");
41
41
  const stylesheet = useRef<HTMLStyleElement>();
42
42
 
43
- const currentRef = innerRef.current;
44
-
45
43
  useEffect(() => {
46
44
  const styleEl = document.createElement("style");
47
45
  document.head.appendChild(styleEl);
@@ -54,7 +52,7 @@ const CoveringLoader = forwardRef<HTMLElement, Props>(({ // eslint-disable-line
54
52
 
55
53
  // eslint-disable-next-line max-lines-per-function,max-statements
56
54
  const effect = () => {
57
- const current = currentRef as HTMLElement | null;
55
+ const current = innerRef.current as HTMLElement | null;
58
56
  if (current !== null && !(current instanceof HTMLElement)) {
59
57
  throw new Error(
60
58
  "CoveringLoader child ref is not an HTMLElement, got: (" + typeof current + ") " + String(current),
@@ -141,7 +139,8 @@ ${inertCss}`;
141
139
  };
142
140
  };
143
141
 
144
- useEffect(effect, [currentRef, spinnerBg, show, color, size, speed, mode, inertMode, id]);
142
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- innerRef.current must be read inside effect, not at render time
143
+ useEffect(effect, [innerRef.current, spinnerBg, show, color, size, speed, mode, inertMode, id]);
145
144
 
146
145
  return cloneElement(Children.only(children), {
147
146
  ref: innerRef,
@@ -137,7 +137,6 @@ const ModalBase = forwardRef<HTMLDivElement, Props>(({
137
137
  css.marginBottom = NEGATIVE_PADDING;
138
138
  }
139
139
 
140
- // @ts-expect-error TODO handle types correctly
141
140
  return React.cloneElement(child, { css });
142
141
  }
143
142
  return child;
@@ -16,16 +16,16 @@ type Story = StoryObj<typeof ModalButtons>;
16
16
  const Primary: Story = {
17
17
  args: {},
18
18
  render: () => (
19
- <Modal onClose={() => null} isOpen={true} title={"System message"}>
19
+ <Modal onClose={() => {}} isOpen={true} title={"System message"}>
20
20
  <div>
21
21
  Check out these pretty buttons. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
22
22
  consectetur, diam eget aliquam tincidunt, diam nisl ultrices velit, nec aliquet nunc diam eget.
23
23
  </div>
24
24
  <ModalButtons>
25
- <ModalButtons.Button onClick={() => null}>
25
+ <ModalButtons.Button onClick={() => {}}>
26
26
  Cancel
27
27
  </ModalButtons.Button>
28
- <ModalButtons.Button variant={"main"} onClick={() => null}>
28
+ <ModalButtons.Button variant={"main"} onClick={() => {}}>
29
29
  Ok
30
30
  </ModalButtons.Button>
31
31
  </ModalButtons>