react-miui 0.18.1 → 0.20.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 (326) hide show
  1. package/.storybook/main.ts +17 -0
  2. package/.storybook/preview.tsx +28 -0
  3. package/CHANGELOG.md +27 -3
  4. package/README.md +2 -0
  5. package/dist/components/form/TextArea.js +1 -1
  6. package/dist/components/form/TextArea.js.map +1 -1
  7. package/dist/components/form/index.d.ts +2 -0
  8. package/dist/components/form/index.d.ts.map +1 -0
  9. package/dist/components/form/index.js +18 -0
  10. package/dist/components/form/index.js.map +1 -0
  11. package/dist/components/form/{Input.d.ts → input/Input.d.ts} +1 -1
  12. package/dist/components/form/input/Input.d.ts.map +1 -0
  13. package/dist/components/form/{Input.js → input/Input.js} +7 -13
  14. package/dist/components/form/input/Input.js.map +1 -0
  15. package/dist/components/form/input/Input.module.scss +7 -0
  16. package/dist/components/form/input/Input.stories.d.ts +9 -0
  17. package/dist/components/form/input/Input.stories.d.ts.map +1 -0
  18. package/dist/components/form/input/Input.stories.js +46 -0
  19. package/dist/components/form/input/Input.stories.js.map +1 -0
  20. package/dist/components/form/input/Input.styled.d.ts +294 -0
  21. package/dist/components/form/input/Input.styled.d.ts.map +1 -0
  22. package/dist/components/form/input/Input.styled.js +65 -0
  23. package/dist/components/form/input/Input.styled.js.map +1 -0
  24. package/dist/components/layout/header/Header.module.scss +12 -0
  25. package/dist/components/layout/header/HeaderIconAction.module.scss +5 -2
  26. package/dist/components/layout/list/Value.d.ts +1 -7
  27. package/dist/components/layout/list/Value.d.ts.map +1 -1
  28. package/dist/components/layout/list/Value.js +2 -10
  29. package/dist/components/layout/list/Value.js.map +1 -1
  30. package/dist/components/layout/list/Value.styled.d.ts +74 -0
  31. package/dist/components/layout/list/Value.styled.d.ts.map +1 -0
  32. package/dist/components/layout/list/Value.styled.js +13 -0
  33. package/dist/components/layout/list/Value.styled.js.map +1 -0
  34. package/dist/components/ui/loader/CoveringLoader.d.ts +8 -0
  35. package/dist/components/ui/loader/CoveringLoader.d.ts.map +1 -0
  36. package/dist/components/ui/loader/CoveringLoader.js +45 -0
  37. package/dist/components/ui/loader/CoveringLoader.js.map +1 -0
  38. package/dist/components/ui/loader/CoveringLoader.stories.d.ts +8 -0
  39. package/dist/components/ui/loader/CoveringLoader.stories.d.ts.map +1 -0
  40. package/dist/components/ui/loader/CoveringLoader.stories.js +31 -0
  41. package/dist/components/ui/loader/CoveringLoader.stories.js.map +1 -0
  42. package/dist/components/ui/loader/FullLoader.d.ts +6 -0
  43. package/dist/components/ui/loader/FullLoader.d.ts.map +1 -0
  44. package/dist/components/ui/loader/FullLoader.js +22 -0
  45. package/dist/components/ui/loader/FullLoader.js.map +1 -0
  46. package/dist/components/ui/loader/FullLoader.stories.d.ts +8 -0
  47. package/dist/components/ui/loader/FullLoader.stories.d.ts.map +1 -0
  48. package/dist/components/ui/loader/FullLoader.stories.js +25 -0
  49. package/dist/components/ui/loader/FullLoader.stories.js.map +1 -0
  50. package/dist/components/ui/loader/Loader.d.ts +11 -0
  51. package/dist/components/ui/loader/Loader.d.ts.map +1 -0
  52. package/dist/components/ui/loader/Loader.js +61 -0
  53. package/dist/components/ui/loader/Loader.js.map +1 -0
  54. package/dist/components/ui/loader/Loader.stories.d.ts +8 -0
  55. package/dist/components/ui/loader/Loader.stories.d.ts.map +1 -0
  56. package/dist/components/ui/loader/Loader.stories.js +26 -0
  57. package/dist/components/ui/loader/Loader.stories.js.map +1 -0
  58. package/dist/components/ui/loader/Loading.d.ts +9 -0
  59. package/dist/components/ui/loader/Loading.d.ts.map +1 -0
  60. package/dist/components/ui/loader/Loading.js +20 -0
  61. package/dist/components/ui/loader/Loading.js.map +1 -0
  62. package/dist/components/ui/loader/Loading.stories.d.ts +8 -0
  63. package/dist/components/ui/loader/Loading.stories.d.ts.map +1 -0
  64. package/dist/components/ui/loader/Loading.stories.js +38 -0
  65. package/dist/components/ui/loader/Loading.stories.js.map +1 -0
  66. package/dist/components/ui/loader/PopLoader.d.ts +6 -0
  67. package/dist/components/ui/loader/PopLoader.d.ts.map +1 -0
  68. package/dist/components/ui/loader/PopLoader.js +39 -0
  69. package/dist/components/ui/loader/PopLoader.js.map +1 -0
  70. package/dist/components/ui/loader/PopLoader.stories.d.ts +8 -0
  71. package/dist/components/ui/loader/PopLoader.stories.d.ts.map +1 -0
  72. package/dist/components/ui/loader/PopLoader.stories.js +30 -0
  73. package/dist/components/ui/loader/PopLoader.stories.js.map +1 -0
  74. package/dist/components/ui/message/Message.d.ts +83 -5
  75. package/dist/components/ui/message/Message.d.ts.map +1 -1
  76. package/dist/components/ui/message/Message.js +2 -15
  77. package/dist/components/ui/message/Message.js.map +1 -1
  78. package/dist/components/ui/message/Message.stories.d.ts +9 -0
  79. package/dist/components/ui/message/Message.stories.d.ts.map +1 -0
  80. package/dist/components/ui/message/Message.stories.js +50 -0
  81. package/dist/components/ui/message/Message.stories.js.map +1 -0
  82. package/dist/components/ui/message/Message.styled.d.ts +77 -0
  83. package/dist/components/ui/message/Message.styled.d.ts.map +1 -0
  84. package/dist/components/ui/message/Message.styled.js +44 -0
  85. package/dist/components/ui/message/Message.styled.js.map +1 -0
  86. package/dist/components/ui/pop/Pop.js.map +1 -1
  87. package/dist/components/ui/pop/PopOption.d.ts +1 -2
  88. package/dist/components/ui/pop/PopOption.d.ts.map +1 -1
  89. package/dist/components/ui/pop/PopOption.js +1 -2
  90. package/dist/components/ui/pop/PopOption.js.map +1 -1
  91. package/dist/index.d.ts +9 -1
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +12 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/theme.css-reset.d.ts +3 -0
  96. package/dist/theme.css-reset.d.ts.map +1 -0
  97. package/dist/theme.css-reset.js +121 -0
  98. package/dist/theme.css-reset.js.map +1 -0
  99. package/dist/theme.d.ts +744 -0
  100. package/dist/theme.d.ts.map +1 -0
  101. package/dist/theme.js +92 -0
  102. package/dist/theme.js.map +1 -0
  103. package/dist/utils/index.d.ts +0 -1
  104. package/dist/utils/index.d.ts.map +1 -1
  105. package/dist/utils/index.js +0 -1
  106. package/dist/utils/index.js.map +1 -1
  107. package/docs/assets/main.js +1 -1
  108. package/docs/assets/search.js +1 -1
  109. package/docs/assets/style.css +4 -5
  110. package/docs/classes/Drawer.html +14 -14
  111. package/docs/classes/Pop.html +14 -14
  112. package/docs/classes/ToasterProvider.html +10 -10
  113. package/docs/enums/ICON.html +14 -14
  114. package/docs/functions/Action.html +13 -4
  115. package/docs/functions/Button.html +13 -4
  116. package/docs/functions/Card.html +13 -4
  117. package/docs/functions/Checkbox.html +13 -4
  118. package/docs/functions/Choice.html +14 -5
  119. package/docs/functions/CoveringLoader.html +112 -0
  120. package/docs/functions/DirectionPad.html +13 -4
  121. package/docs/functions/EqualActions.html +13 -4
  122. package/docs/functions/FullLoader.html +111 -0
  123. package/docs/functions/HandleEsc.html +13 -4
  124. package/docs/functions/Header.html +13 -4
  125. package/docs/functions/HeaderIconAction.html +13 -4
  126. package/docs/functions/Icon-1.html +13 -4
  127. package/docs/functions/If.html +13 -4
  128. package/docs/functions/Input.html +16 -5
  129. package/docs/functions/Item-1.html +13 -4
  130. package/docs/functions/KeyValue.html +13 -4
  131. package/docs/functions/Label.html +13 -4
  132. package/docs/functions/List-1.html +13 -4
  133. package/docs/functions/Loader.html +113 -0
  134. package/docs/functions/Loading.html +115 -0
  135. package/docs/functions/Message.html +51 -9
  136. package/docs/functions/Modal-1.html +13 -4
  137. package/docs/functions/ModalButtons-1.html +13 -4
  138. package/docs/functions/PopLoader.html +113 -0
  139. package/docs/functions/PopOption.html +13 -4
  140. package/docs/functions/SearchContainer.html +13 -4
  141. package/docs/functions/Section-1.html +13 -4
  142. package/docs/functions/Select.html +13 -4
  143. package/docs/functions/Selector.html +14 -5
  144. package/docs/functions/Spacer.html +13 -4
  145. package/docs/functions/Stats.html +13 -4
  146. package/docs/functions/StickyHeader-1.html +13 -4
  147. package/docs/functions/StickyHeader.Content.html +5 -5
  148. package/docs/functions/Table.html +13 -4
  149. package/docs/functions/TextArea.html +13 -4
  150. package/docs/functions/Toggle.html +13 -4
  151. package/docs/functions/getCssText.html +102 -0
  152. package/docs/functions/styled.html +118 -0
  153. package/docs/functions/useToaster.html +14 -5
  154. package/docs/index.html +15 -4
  155. package/docs/modules/Item.html +7 -7
  156. package/docs/modules/List.html +6 -6
  157. package/docs/modules/Modal.html +6 -6
  158. package/docs/modules/ModalButtons.html +6 -6
  159. package/docs/modules/Section.html +6 -6
  160. package/docs/modules/StickyHeader.html +6 -6
  161. package/docs/modules.html +28 -4
  162. package/docs/pages/tutorials/Test.html +13 -4
  163. package/docs/types/ThemeCSS.html +98 -0
  164. package/docs/variables/Item.Label.html +5 -5
  165. package/docs/variables/Item.Value.html +6 -6
  166. package/docs/variables/List.Header.html +5 -5
  167. package/docs/variables/Modal.NegateMargin.html +5 -5
  168. package/docs/variables/ModalButtons.Button.html +5 -5
  169. package/docs/variables/Section.Container.html +5 -5
  170. package/docs/variables/cssReset.html +100 -0
  171. package/esm/components/form/TextArea.js +1 -1
  172. package/esm/components/form/TextArea.js.map +1 -1
  173. package/esm/components/form/index.d.ts +2 -0
  174. package/esm/components/form/index.d.ts.map +1 -0
  175. package/esm/components/form/index.js +2 -0
  176. package/esm/components/form/index.js.map +1 -0
  177. package/esm/components/form/{Input.d.ts → input/Input.d.ts} +1 -1
  178. package/esm/components/form/input/Input.d.ts.map +1 -0
  179. package/esm/components/form/{Input.js → input/Input.js} +8 -14
  180. package/esm/components/form/input/Input.js.map +1 -0
  181. package/esm/components/form/input/Input.module.scss +7 -0
  182. package/esm/components/form/input/Input.stories.d.ts +9 -0
  183. package/esm/components/form/input/Input.stories.d.ts.map +1 -0
  184. package/esm/components/form/input/Input.stories.js +39 -0
  185. package/esm/components/form/input/Input.stories.js.map +1 -0
  186. package/esm/components/form/input/Input.styled.d.ts +294 -0
  187. package/esm/components/form/input/Input.styled.d.ts.map +1 -0
  188. package/esm/components/form/input/Input.styled.js +59 -0
  189. package/esm/components/form/input/Input.styled.js.map +1 -0
  190. package/esm/components/layout/header/Header.module.scss +12 -0
  191. package/esm/components/layout/header/HeaderIconAction.module.scss +5 -2
  192. package/esm/components/layout/list/Value.d.ts +1 -7
  193. package/esm/components/layout/list/Value.d.ts.map +1 -1
  194. package/esm/components/layout/list/Value.js +1 -7
  195. package/esm/components/layout/list/Value.js.map +1 -1
  196. package/esm/components/layout/list/Value.styled.d.ts +74 -0
  197. package/esm/components/layout/list/Value.styled.d.ts.map +1 -0
  198. package/esm/components/layout/list/Value.styled.js +10 -0
  199. package/esm/components/layout/list/Value.styled.js.map +1 -0
  200. package/esm/components/ui/loader/CoveringLoader.d.ts +8 -0
  201. package/esm/components/ui/loader/CoveringLoader.d.ts.map +1 -0
  202. package/esm/components/ui/loader/CoveringLoader.js +27 -0
  203. package/esm/components/ui/loader/CoveringLoader.js.map +1 -0
  204. package/esm/components/ui/loader/CoveringLoader.stories.d.ts +8 -0
  205. package/esm/components/ui/loader/CoveringLoader.stories.d.ts.map +1 -0
  206. package/esm/components/ui/loader/CoveringLoader.stories.js +25 -0
  207. package/esm/components/ui/loader/CoveringLoader.stories.js.map +1 -0
  208. package/esm/components/ui/loader/FullLoader.d.ts +6 -0
  209. package/esm/components/ui/loader/FullLoader.d.ts.map +1 -0
  210. package/esm/components/ui/loader/FullLoader.js +16 -0
  211. package/esm/components/ui/loader/FullLoader.js.map +1 -0
  212. package/esm/components/ui/loader/FullLoader.stories.d.ts +8 -0
  213. package/esm/components/ui/loader/FullLoader.stories.d.ts.map +1 -0
  214. package/esm/components/ui/loader/FullLoader.stories.js +19 -0
  215. package/esm/components/ui/loader/FullLoader.stories.js.map +1 -0
  216. package/esm/components/ui/loader/Loader.d.ts +11 -0
  217. package/esm/components/ui/loader/Loader.d.ts.map +1 -0
  218. package/esm/components/ui/loader/Loader.js +23 -0
  219. package/esm/components/ui/loader/Loader.js.map +1 -0
  220. package/esm/components/ui/loader/Loader.stories.d.ts +8 -0
  221. package/esm/components/ui/loader/Loader.stories.d.ts.map +1 -0
  222. package/esm/components/ui/loader/Loader.stories.js +23 -0
  223. package/esm/components/ui/loader/Loader.stories.js.map +1 -0
  224. package/esm/components/ui/loader/Loading.d.ts +9 -0
  225. package/esm/components/ui/loader/Loading.d.ts.map +1 -0
  226. package/esm/components/ui/loader/Loading.js +14 -0
  227. package/esm/components/ui/loader/Loading.js.map +1 -0
  228. package/esm/components/ui/loader/Loading.stories.d.ts +8 -0
  229. package/esm/components/ui/loader/Loading.stories.d.ts.map +1 -0
  230. package/esm/components/ui/loader/Loading.stories.js +32 -0
  231. package/esm/components/ui/loader/Loading.stories.js.map +1 -0
  232. package/esm/components/ui/loader/PopLoader.d.ts +6 -0
  233. package/esm/components/ui/loader/PopLoader.d.ts.map +1 -0
  234. package/esm/components/ui/loader/PopLoader.js +21 -0
  235. package/esm/components/ui/loader/PopLoader.js.map +1 -0
  236. package/esm/components/ui/loader/PopLoader.stories.d.ts +8 -0
  237. package/esm/components/ui/loader/PopLoader.stories.d.ts.map +1 -0
  238. package/esm/components/ui/loader/PopLoader.stories.js +24 -0
  239. package/esm/components/ui/loader/PopLoader.stories.js.map +1 -0
  240. package/esm/components/ui/message/Message.d.ts +83 -5
  241. package/esm/components/ui/message/Message.d.ts.map +1 -1
  242. package/esm/components/ui/message/Message.js +2 -12
  243. package/esm/components/ui/message/Message.js.map +1 -1
  244. package/esm/components/ui/message/Message.stories.d.ts +9 -0
  245. package/esm/components/ui/message/Message.stories.d.ts.map +1 -0
  246. package/esm/components/ui/message/Message.stories.js +43 -0
  247. package/esm/components/ui/message/Message.stories.js.map +1 -0
  248. package/esm/components/ui/message/Message.styled.d.ts +77 -0
  249. package/esm/components/ui/message/Message.styled.d.ts.map +1 -0
  250. package/esm/components/ui/message/Message.styled.js +41 -0
  251. package/esm/components/ui/message/Message.styled.js.map +1 -0
  252. package/esm/components/ui/pop/Pop.js.map +1 -1
  253. package/esm/components/ui/pop/PopOption.d.ts +1 -2
  254. package/esm/components/ui/pop/PopOption.d.ts.map +1 -1
  255. package/esm/components/ui/pop/PopOption.js +1 -2
  256. package/esm/components/ui/pop/PopOption.js.map +1 -1
  257. package/esm/index.d.ts +9 -1
  258. package/esm/index.d.ts.map +1 -1
  259. package/esm/index.js +8 -1
  260. package/esm/index.js.map +1 -1
  261. package/esm/theme.css-reset.d.ts +3 -0
  262. package/esm/theme.css-reset.d.ts.map +1 -0
  263. package/esm/theme.css-reset.js +118 -0
  264. package/esm/theme.css-reset.js.map +1 -0
  265. package/esm/theme.d.ts +744 -0
  266. package/esm/theme.d.ts.map +1 -0
  267. package/esm/theme.js +78 -0
  268. package/esm/theme.js.map +1 -0
  269. package/esm/utils/index.d.ts +0 -1
  270. package/esm/utils/index.d.ts.map +1 -1
  271. package/esm/utils/index.js +0 -1
  272. package/esm/utils/index.js.map +1 -1
  273. package/package.json +37 -31
  274. package/src/components/form/TextArea.tsx +1 -1
  275. package/src/components/form/index.ts +1 -0
  276. package/src/components/form/input/Input.module.scss +7 -0
  277. package/src/components/form/input/Input.stories.tsx +59 -0
  278. package/src/components/form/input/Input.styled.ts +72 -0
  279. package/src/components/form/{Input.tsx → input/Input.tsx} +19 -20
  280. package/src/components/layout/header/Header.module.scss +12 -0
  281. package/src/components/layout/header/HeaderIconAction.module.scss +5 -2
  282. package/src/components/layout/list/Value.styled.ts +13 -0
  283. package/src/components/layout/list/Value.tsx +1 -18
  284. package/src/components/ui/loader/CoveringLoader.stories.tsx +37 -0
  285. package/src/components/ui/loader/CoveringLoader.tsx +53 -0
  286. package/src/components/ui/loader/FullLoader.stories.tsx +34 -0
  287. package/src/components/ui/loader/FullLoader.tsx +24 -0
  288. package/src/components/ui/loader/Loader.stories.tsx +32 -0
  289. package/src/components/ui/loader/Loader.tsx +92 -0
  290. package/src/components/ui/loader/Loading.stories.tsx +49 -0
  291. package/src/components/ui/loader/Loading.tsx +29 -0
  292. package/src/components/ui/loader/PopLoader.stories.tsx +38 -0
  293. package/src/components/ui/loader/PopLoader.tsx +33 -0
  294. package/src/components/ui/message/Message.stories.tsx +61 -0
  295. package/src/components/ui/message/Message.styled.ts +45 -0
  296. package/src/components/ui/message/Message.tsx +26 -15
  297. package/src/components/ui/pop/PopOption.tsx +2 -6
  298. package/src/demo/Demo.tsx +2 -0
  299. package/src/demo/NextLink.tsx +1 -1
  300. package/src/demo/components/ui/pop/Pop.tsx +13 -11
  301. package/src/index.ts +12 -1
  302. package/src/theme.css-reset.ts +132 -0
  303. package/src/theme.ts +128 -0
  304. package/src/utils/index.ts +0 -1
  305. package/typedoc.cjs +5 -0
  306. package/dist/components/form/Input.d.ts.map +0 -1
  307. package/dist/components/form/Input.js.map +0 -1
  308. package/dist/components/form/Input.module.scss +0 -69
  309. package/dist/components/layout/list/Value.module.scss +0 -7
  310. package/dist/utils/useRandomId.d.ts +0 -3
  311. package/dist/utils/useRandomId.d.ts.map +0 -1
  312. package/dist/utils/useRandomId.js +0 -13
  313. package/dist/utils/useRandomId.js.map +0 -1
  314. package/esm/components/form/Input.d.ts.map +0 -1
  315. package/esm/components/form/Input.js.map +0 -1
  316. package/esm/components/form/Input.module.scss +0 -69
  317. package/esm/components/layout/list/Value.module.scss +0 -7
  318. package/esm/utils/useRandomId.d.ts +0 -3
  319. package/esm/utils/useRandomId.d.ts.map +0 -1
  320. package/esm/utils/useRandomId.js +0 -10
  321. package/esm/utils/useRandomId.js.map +0 -1
  322. package/src/components/form/Input.module.scss +0 -69
  323. package/src/components/layout/list/Value.module.scss +0 -7
  324. package/src/utils/useRandomId.ts +0 -13
  325. /package/{template/.prettierignore → .prettierignore} +0 -0
  326. /package/{template/.prettierrc.json → .prettierrc.json} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS1D,QAAA,MAAM,OAAO,OAAQ,MAAM,WAAoB,CAAC;AAChD,QAAA,MAAM,iBAAiB,OAAQ,MAAM,WAAoC,CAAC;AAC1E,QAAA,MAAM,aAAa,OAAQ,MAAM,WAAgC,CAAC;AAClE,QAAA,MAAM,WAAW,OAAQ,MAAM,WAA8B,CAAC;AAE9D,QAAA,MACI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAkFU,MAAM;;;;gBACN,MAAM;;;;kBACJ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFR,MAAM;;;;gBACN,MAAM;;;;kBACJ,MAAM;;;;KAnFxB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiFa,MAAM;;;;gBACN,MAAM;;;;kBACJ,MAAM;;;;;;;;;;;;;;;mbAlFxB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAgFO,MAAM;;;;oBACN,MAAM;;;;sBACJ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFR,MAAM;;;;gBACN,MAAM;;;;kBACJ,MAAM;;;;2BAjFxB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA+EO,MAAM;;;;oBACN,MAAM;;;;sBACJ,MAAM;;;;;;;;GAhFxB,UAAU,gBACV,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACL,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4KACX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA2EU,MAAM;;;;oBACN,MAAM;;;;sBACJ,MAAM;;;;;CAE1B,CAAC;AAEH,KAAK,QAAQ,GAAG,WAAW,CAAC,OAAO,MAAM,CAAC,CAAC;AAE3C,KAAK,cAAc,CAEf,CAAC,SAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAExD,KAAK,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,IAC5D,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEhD,YAAY,EACR,QAAQ,EACR,cAAc,GACjB,CAAC;AAEF,OAAO,EACH,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAEzE,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,WAAW,GACd,CAAC"}
package/esm/theme.js ADDED
@@ -0,0 +1,78 @@
1
+ import { createStitches } from "@stitches/react";
2
+ const RATIOS = {
3
+ dimensions: 3,
4
+ border: 2.666666,
5
+ font: 1.666666,
6
+ };
7
+ const pxToRem = (px) => `${px / 16}rem`;
8
+ const dimensionsPxToRem = (px) => pxToRem(px / RATIOS.dimensions);
9
+ const borderPxToRem = (px) => pxToRem(px / RATIOS.border);
10
+ const fontPxToRem = (px) => pxToRem(px / RATIOS.font);
11
+ const { styled, css, globalCss, keyframes, getCssText, theme, createTheme, config, } = createStitches({
12
+ theme: {
13
+ colors: {
14
+ background: "white",
15
+ mainColor: "#008ad2",
16
+ mainColorAlt: "#006AA9",
17
+ activeBg: "#e7e7e7",
18
+ inactiveBg: "#d3d3de",
19
+ inactiveDarkBg: "#999",
20
+ toggleHandleBg: "#e0e0e0",
21
+ toggleHandleBorder: "#cdcdcd",
22
+ toggleBgDisabled: "#f0f0f0",
23
+ toggleHandleBorderDisabled: "#c29f7d",
24
+ toggleHandleBgDisabled: "#deae84",
25
+ icon: "#636363",
26
+ border: "#d5d5d5",
27
+ buttonBorder: "#bababa",
28
+ headerBorder: "#c8c8c9",
29
+ headerBg: "#efeff0",
30
+ headerText: "#484848",
31
+ text: "#323232",
32
+ sub: "#959595",
33
+ popText: "#666",
34
+ toolbarBorder: "#ababab",
35
+ toolbarBg: "#f8f8f8",
36
+ modalBg: "#f7f7f7",
37
+ modalButtonBg: "#f8f8f8",
38
+ modalButtonBorder: "#c2c2c2",
39
+ inputDisabledBg: "#f3f3f3",
40
+ inputDisabledText: "#959595",
41
+ choiceBg: "#ffffff",
42
+ choiceText: "#999999",
43
+ choiceActiveBg: "#f3f3f3",
44
+ choiceActiveText: "#313131",
45
+ choiceBorder: "#cfcfcf",
46
+ selectorText: "#606060",
47
+ selectorActive: "#008ad2",
48
+ blue1: "#038bf4",
49
+ blue2: "#b7d6f5",
50
+ blue3: "#dbe6ff",
51
+ orange1: "#ff7200",
52
+ orange1Darker: "#cc5b00",
53
+ purple1: "#7357e8",
54
+ green1: "#3ec234",
55
+ green1Darker: "#38af2f",
56
+ pink1: "#ff388f",
57
+ red1: "#ea2700",
58
+ yellow1: "#ffde9d",
59
+ yellow2: "#e4a429",
60
+ yellow3: "#fff5db",
61
+ pinky1: "#f5c0b7",
62
+ pinky2: "#e07b67",
63
+ pinky3: "#ffe1db",
64
+ grey1: "#737373",
65
+ focusColor: "#dcaf00",
66
+ scrollbarsThumb: "#737373",
67
+ scrollbarsBg: "transparent",
68
+ tableStripedBg: "#fafafa",
69
+ },
70
+ },
71
+ utils: {
72
+ mx: (value) => ({ marginLeft: value, marginRight: value }),
73
+ my: (value) => ({ marginTop: value, marginBottom: value }),
74
+ size: (value) => ({ width: value, height: value }),
75
+ },
76
+ });
77
+ export { styled, css, globalCss, keyframes, getCssText, theme, createTheme, config, pxToRem, dimensionsPxToRem, borderPxToRem, fontPxToRem, };
78
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export * from "./makeVariants.js";
2
2
  export * from "./toObjectValue.js";
3
3
  export * from "./useKeyPress.js";
4
- export * from "./useRandomId.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from "./makeVariants.js";
2
2
  export * from "./toObjectValue.js";
3
3
  export * from "./useKeyPress.js";
4
- export * from "./useRandomId.js";
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "react-miui",
3
- "version": "0.18.1",
3
+ "version": "0.20.0",
4
4
  "author": "Jacek Nowacki",
5
5
  "license": "MIT",
6
6
  "scripts": {
7
7
  "test": "NODE_ENV=test jest",
8
- "docs": "typedoc src/index.ts --skipErrorChecking --out docs --includeVersion --pluginPages ./pagesconfig.json",
8
+ "docs": "typedoc src/index.ts --skipErrorChecking --out docs --includeVersion",
9
9
  "compile": "yarn compile:esm && yarn compile:cjs",
10
10
  "compile:esm": "rm -rf esm && tsc --project tsconfig.esm.json && node ./build-scripts/compile.esm.after.mjs",
11
11
  "compile:cjs": "rm -rf dist && tsc --project tsconfig.cjs.json && node ./build-scripts/compile.cjs.after.mjs",
@@ -14,12 +14,13 @@
14
14
  "lint:fix": "yarn lint --fix",
15
15
  "prepack": "yarn compile",
16
16
  "prepublishOnly": "yarn audit && yarn lint && yarn test && yarn docs",
17
- "start:dev": "next dev",
17
+ "start:dev": "yarn storybook",
18
18
  "deploy:dev": "next build && next export && netlify deploy --dir out",
19
- "prepare": "husky install",
20
19
  "updates": "npx --yes npm-check-updates --dep prod",
21
20
  "updates:dev": "npx --yes npm-check-updates --dep dev",
22
- "updates:all": "npx --yes npm-check-updates"
21
+ "updates:all": "npx --yes npm-check-updates",
22
+ "storybook": "storybook dev -p 6006",
23
+ "build:storybook": "storybook build"
23
24
  },
24
25
  "exports": {
25
26
  "./global.scss": "./src/global.scss",
@@ -33,56 +34,61 @@
33
34
  "types": "./esm/index.d.ts",
34
35
  "module": "./esm/index.js",
35
36
  "dependencies": {
37
+ "@stitches/react": "^1.2.8",
36
38
  "classnames": "^2.3.2",
37
- "nodemon": "^2.0.20",
38
- "oop-timers": "^4.0.1"
39
+ "oop-timers": "^5.0.0"
39
40
  },
40
41
  "devDependencies": {
41
- "@babel/core": "^7.19.3",
42
- "@babel/preset-env": "^7.19.3",
43
- "@babel/preset-typescript": "^7.18.6",
44
- "@dzek69/eslint-config-base": "^2.3.0",
45
- "@dzek69/eslint-config-import": "^1.0.0",
42
+ "@babel/core": "^7.21.4",
43
+ "@babel/preset-env": "^7.21.4",
44
+ "@babel/preset-typescript": "^7.21.4",
45
+ "@dzek69/eslint-config-base": "^2.4.0",
46
+ "@dzek69/eslint-config-import": "^1.2.0",
46
47
  "@dzek69/eslint-config-import-typescript": "^1.0.0",
47
48
  "@dzek69/eslint-config-react": "^1.2.2",
48
- "@dzek69/eslint-config-typescript": "^1.0.2",
49
- "@knodes/typedoc-plugin-pages": "^0.23.1",
50
- "@types/jest": "^29.2.0",
49
+ "@dzek69/eslint-config-typescript": "^1.1.0",
50
+ "@icon-park/react": "^1.4.2",
51
+ "@knodes/typedoc-plugin-pages": "^0.23.4",
52
+ "@storybook/addon-essentials": "^7.0.11",
53
+ "@storybook/addon-interactions": "^7.0.11",
54
+ "@storybook/addon-links": "^7.0.11",
55
+ "@storybook/blocks": "^7.0.11",
56
+ "@storybook/nextjs": "^7.0.11",
57
+ "@storybook/react": "^7.0.11",
58
+ "@storybook/testing-library": "^0.0.14-next.2",
59
+ "@types/jest": "^29.5.0",
51
60
  "@types/react": "^18.0.27",
52
61
  "@types/react-dom": "^18.0.10",
53
- "@typescript-eslint/eslint-plugin": "^5.38.1",
54
- "@typescript-eslint/parser": "^5.38.1",
62
+ "@typescript-eslint/eslint-plugin": "^5.58.0",
63
+ "@typescript-eslint/parser": "^5.58.0",
55
64
  "babel-plugin-module-extension": "^0.1.3",
56
65
  "babel-plugin-module-resolver": "^5.0.0",
57
- "eslint": "^8.24.0",
58
- "eslint-plugin-import": "^2.26.0",
66
+ "eslint": "^8.38.0",
67
+ "eslint-plugin-import": "^2.27.5",
59
68
  "eslint-plugin-react": "^7.24.0",
69
+ "eslint-plugin-storybook": "^0.6.12",
60
70
  "fast-glob": "^3.2.7",
61
- "fs-extra": "^10.1.0",
62
- "husky": "^8.0.1",
63
- "jest": "^29.2.2",
71
+ "fs-extra": "^11.1.1",
72
+ "jest": "^29.5.0",
64
73
  "must": "^0.13.4",
65
74
  "next": "^13.1.6",
75
+ "nodemon": "^2.0.22",
76
+ "prettier": "^2.8.7",
66
77
  "react": "^18.2.0",
67
78
  "react-dom": "^18.2.0",
68
79
  "react-use": "^17.4.0",
69
80
  "sass": "^1.35.2",
81
+ "storybook": "^7.0.11",
70
82
  "ts-node": "^10.9.1",
71
- "typedoc": "^0.23.15",
72
- "typescript": "^4.9.5",
73
- "prettier": "^2.8.3"
83
+ "typedoc": "^0.23.28",
84
+ "typescript": "^5.0.4"
74
85
  },
75
86
  "peerDependencies": {
76
87
  "react": "^18.2.0",
77
88
  "react-dom": "^18.2.0"
78
89
  },
79
- "husky": {
80
- "hooks": {
81
- "pre-push": "yarn prepublishOnly && yarn compile"
82
- }
83
- },
84
90
  "libraryTemplate": {
85
- "version": "3.7.1",
91
+ "version": "3.9.1",
86
92
  "language": "typescript",
87
93
  "fixDefaultForCommonJS": true,
88
94
  "jsx": true
@@ -2,7 +2,7 @@ import React, { useCallback, useState } from "react";
2
2
 
3
3
  import classnames from "classnames";
4
4
 
5
- import styles from "./Input.module.scss";
5
+ import styles from "./input/Input.module.scss";
6
6
 
7
7
  interface Props {
8
8
  children?: never;
@@ -0,0 +1 @@
1
+ export * from "./input/Input.js";
@@ -0,0 +1,7 @@
1
+ .textarea {
2
+ padding: 1.2em calc(36px / var(--ratio-dimensions));
3
+ height: unset;
4
+ resize: vertical;
5
+ min-height: calc(103px * 3 / var(--ratio-dimensions))
6
+ }
7
+
@@ -0,0 +1,59 @@
1
+ import React from "react";
2
+
3
+ import type { StoryObj, Meta } from "@storybook/react";
4
+
5
+ import { Icon, ICON } from "../../icons/Icon.js";
6
+ import { countries } from "../../../demo/components/form/countries.const";
7
+
8
+ import { Input } from "./Input.js";
9
+
10
+ const meta: Meta<typeof Input> = {
11
+ title: "Components/Form/Input",
12
+ component: Input,
13
+ tags: ["autodocs", "form"],
14
+ argTypes: {
15
+ prefix: {
16
+ type: "string",
17
+ },
18
+ suffix: {
19
+ type: "string",
20
+ },
21
+ },
22
+ };
23
+
24
+ type Story = StoryObj<typeof Input>;
25
+
26
+ const Primary: Story = {
27
+ args: {
28
+ placeholder: "Capacity",
29
+ prefix: <Icon name={ICON.battery} />,
30
+ suffix: "kWh",
31
+ },
32
+ };
33
+
34
+ const handleSuggestionMatch = (s: string, picked: boolean) => {
35
+ alert("Suggestion " + (picked ? "picked" : "matched") + " : " + s);
36
+ };
37
+
38
+ const Mixed: Story = {
39
+ render: () => (
40
+ <>
41
+ <Input placeholder={"Capacity"} prefix={<Icon name={ICON.battery} />} suffix={"kWh"} />
42
+ <Input value={"William J. Welter"} />
43
+ <Input prefix={"Text prefix"} value={"Polly W. Wilson"} />
44
+ <Input prefix={"Disabled"} value={"Clayton J. Foster"} disabled={true} />
45
+ <Input prefix={"Read only"} value={"Norma J. Gomez"} readOnly={true} />
46
+ <Input
47
+ placeholder={"With suggestions, try country name"}
48
+ suggestions={countries}
49
+ onSuggestionMatch={handleSuggestionMatch}
50
+ />
51
+ </>
52
+ ),
53
+ };
54
+
55
+ export {
56
+ Primary, Mixed,
57
+ };
58
+
59
+ export default meta;
@@ -0,0 +1,72 @@
1
+ import { borderPxToRem, dimensionsPxToRem, fontPxToRem, styled } from "../../../theme.js";
2
+
3
+ const StyledInput = styled("input", {
4
+ "height": dimensionsPxToRem(103),
5
+ "fontSize": fontPxToRem(34),
6
+ "color": "$text",
7
+ "border": "none",
8
+ "display": "block",
9
+ "width": "100%",
10
+ "background": "none",
11
+ "fontFamily": "inherit",
12
+ "padding": "1.2em 0",
13
+ "flex": 1,
14
+
15
+ "&::placeholder": {
16
+ color: "$sub",
17
+ },
18
+ });
19
+
20
+ const StyledWrapper = styled("div", {
21
+ background: "white",
22
+ display: "inline-flex",
23
+ width: "100%",
24
+ borderRadius: "2px",
25
+ padding: `0 ${dimensionsPxToRem(36)}`,
26
+ border: `${borderPxToRem(1)} solid $border`,
27
+ alignItems: "center",
28
+
29
+ variants: {
30
+ disabled: {
31
+ true: {
32
+ background: "$inputDisabledBg",
33
+ color: "$inputDisabledText",
34
+
35
+ [StyledInput.toString()]: {
36
+ color: "$inputDisabledText",
37
+ },
38
+ },
39
+ },
40
+ readOnly: {
41
+ true: {
42
+ color: "$inputDisabledText",
43
+
44
+ [StyledInput.toString()]: {
45
+ color: "$inputDisabledText",
46
+ },
47
+ },
48
+ },
49
+ focused: {
50
+ true: {
51
+ borderColor: "$focusColor",
52
+ },
53
+ },
54
+ },
55
+ });
56
+
57
+ const StyledPrefix = styled("div", {
58
+ marginRight: dimensionsPxToRem(36),
59
+ display: "flex",
60
+ });
61
+
62
+ const StyledSuffix = styled("div", {
63
+ marginLeft: dimensionsPxToRem(36),
64
+ display: "flex",
65
+ });
66
+
67
+ export {
68
+ StyledInput,
69
+ StyledWrapper,
70
+ StyledPrefix,
71
+ StyledSuffix,
72
+ };
@@ -1,13 +1,11 @@
1
- import React, { useCallback, useState } from "react";
1
+ import React, { useCallback, useId, useState } from "react";
2
2
 
3
- import classnames from "classnames";
3
+ import type { ObjectValue, Value } from "../../../types/form";
4
4
 
5
- import type { ObjectValue, Value } from "../../types/form";
5
+ import { Suggestions } from "../Suggestions.js";
6
6
 
7
- import { useRandomId } from "../../utils/index.js";
8
-
9
- import { Suggestions } from "./Suggestions.js";
10
7
  import styles from "./Input.module.scss";
8
+ import { StyledInput, StyledWrapper, StyledPrefix, StyledSuffix } from "./Input.styled";
11
9
 
12
10
  interface CustomProps<T extends string> {
13
11
  children?: never;
@@ -19,8 +17,10 @@ interface CustomProps<T extends string> {
19
17
 
20
18
  type Props<T extends string> = Omit<React.InputHTMLAttributes<HTMLInputElement>, "prefix"> & CustomProps<T>;
21
19
 
22
- // eslint-disable-next-line max-lines-per-function
23
- const Input = <T extends string>({
20
+ /**
21
+ * Input component.
22
+ */
23
+ const Input = <T extends string>({ // eslint-disable-line max-lines-per-function
24
24
  className, children,
25
25
  prefix, suffix,
26
26
  onFocus, onBlur, onKeyDown, onChange,
@@ -29,7 +29,7 @@ const Input = <T extends string>({
29
29
  ...props
30
30
  }: Props<T>): ReturnType<React.FC<Props<T>>> => {
31
31
  const [focused, setFocused] = useState(false);
32
- const suggestionsId = useRandomId();
32
+ const suggestionsId = useId();
33
33
  const [info] = useState<{ picked?: boolean }>({});
34
34
 
35
35
  const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>) => {
@@ -69,14 +69,8 @@ const Input = <T extends string>({
69
69
  onChange?.(e);
70
70
  }, [suggestions]);
71
71
 
72
- const wrapperCls = classnames(styles.wrapper, {
73
- [styles.wrapperFocused]: focused,
74
- [styles.disabled]: props.disabled,
75
- [styles.readOnly]: props.readOnly,
76
- }, className);
77
-
78
- const prefixElem = prefix ? <div className={styles.prefix}>{prefix}</div> : null;
79
- const suffixElem = suffix ? <div className={styles.suffix}>{suffix}</div> : null;
72
+ const prefixElem = prefix ? <StyledPrefix>{prefix}</StyledPrefix> : null;
73
+ const suffixElem = suffix ? <StyledSuffix>{suffix}</StyledSuffix> : null;
80
74
 
81
75
  const extraProps: { list?: string } = {};
82
76
  if (suggestions) {
@@ -84,9 +78,14 @@ const Input = <T extends string>({
84
78
  }
85
79
 
86
80
  return (
87
- <div className={wrapperCls}>
81
+ <StyledWrapper
82
+ className={className}
83
+ focused={Boolean(focused)}
84
+ disabled={Boolean(props.disabled)}
85
+ readOnly={Boolean(props.readOnly)}
86
+ >
88
87
  {prefixElem}
89
- <input
88
+ <StyledInput
90
89
  {...props}
91
90
  {...extraProps}
92
91
  onChange={handleChange}
@@ -97,7 +96,7 @@ const Input = <T extends string>({
97
96
  />
98
97
  <Suggestions id={suggestionsId} suggestions={suggestions} />
99
98
  {suffixElem}
100
- </div>
99
+ </StyledWrapper>
101
100
  );
102
101
  };
103
102
 
@@ -64,10 +64,22 @@
64
64
  .header--top, .header--bottom {
65
65
  .before {
66
66
  margin-right: calc(50px / var(--ratio-dimensions));
67
+ height: 100%;
68
+ padding: 7px 0;
69
+ box-sizing: border-box;
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: center;
67
73
  }
68
74
 
69
75
  .after {
70
76
  margin-left: calc(50px / var(--ratio-dimensions));
77
+ height: 100%;
78
+ padding: 7px 0;
79
+ box-sizing: border-box;
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
71
83
  }
72
84
 
73
85
  .actions {
@@ -1,8 +1,11 @@
1
1
  .btn, .a {
2
- padding: 7px;
2
+ height: 100%;
3
+ aspect-ratio: 1;
3
4
  background: none;
4
5
  border-radius: 666px;
5
- display: inline-block;
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
6
9
  border: calc(2px / var(--ratio-border)) solid transparent;
7
10
  color: currentColor;
8
11
 
@@ -0,0 +1,13 @@
1
+ import { styled } from "../../../theme.js";
2
+
3
+ const StyledValue = styled("div", {
4
+ color: "var(--icon)",
5
+ fontSize: "calc(26px / var(--ratio-font))",
6
+ display: "flex",
7
+ justifyContent: "flex-end",
8
+ flex: 1,
9
+ });
10
+
11
+ export {
12
+ StyledValue,
13
+ };
@@ -1,18 +1 @@
1
- import React from "react";
2
-
3
- import classnames from "classnames";
4
-
5
- import styles from "./Value.module.scss";
6
-
7
- interface Props {
8
- className?: string;
9
- children: React.ReactNode;
10
- }
11
-
12
- const Value: React.FC<Props> = (props) => {
13
- return (
14
- <div className={classnames(styles.value, props.className)}>{props.children}</div>
15
- );
16
- };
17
-
18
- export { Value };
1
+ export { StyledValue as Value } from "./Value.styled.js";
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+
3
+ import type { StoryObj, Meta } from "@storybook/react";
4
+
5
+ import { CoveringLoader } from "./CoveringLoader.js";
6
+
7
+ const meta: Meta = {
8
+ title: "Components/UI/Loader/CoveringLoader",
9
+ component: CoveringLoader,
10
+ tags: ["autodocs", "ui"],
11
+ };
12
+
13
+ type Story = StoryObj<typeof CoveringLoader>;
14
+
15
+ const Primary: Story = {
16
+ args: {},
17
+ render: () => {
18
+ return (
19
+ <CoveringLoader show={true}>
20
+ <div style={{ background: "#f0f0f0" }}>
21
+ some contents<br />
22
+ some contents Lorem ipsum etc
23
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quibusdam.
24
+ some contents<br />
25
+ some contents<br />
26
+ some contents<br />
27
+ </div>
28
+ </CoveringLoader>
29
+ );
30
+ },
31
+ };
32
+
33
+ export {
34
+ Primary,
35
+ };
36
+
37
+ export default meta;
@@ -0,0 +1,53 @@
1
+ import React from "react";
2
+
3
+ import type { Loader } from "./Loader";
4
+
5
+ import { styled } from "../../../theme.js";
6
+
7
+ import { FullLoader } from "./FullLoader.js";
8
+
9
+ interface Props extends React.ComponentProps<typeof Loader> {
10
+ /**
11
+ * Contents to render underneath the loader
12
+ */
13
+ children: React.ReactNode;
14
+ }
15
+
16
+ const Container = styled("div", {
17
+ position: "relative",
18
+ });
19
+
20
+ const TailSpin = styled("div", {
21
+ position: "absolute",
22
+ left: 0,
23
+ right: 0,
24
+ top: 0,
25
+ bottom: 0,
26
+ });
27
+
28
+ const Content = styled("div", {
29
+ opacity: 0.3,
30
+ });
31
+
32
+ /**
33
+ * A loader that renders in the middle of available space, but also covers the contents.
34
+ * Contents opacity is lowered.
35
+ */
36
+ const CoveringLoader: React.FC<Props> = ({ show, children, ...props }) => {
37
+ if (!show) {
38
+ return <>{children}</>;
39
+ }
40
+
41
+ return (
42
+ <Container>
43
+ <TailSpin>
44
+ <FullLoader {...props} />
45
+ </TailSpin>
46
+ <Content>
47
+ {children}
48
+ </Content>
49
+ </Container>
50
+ );
51
+ };
52
+
53
+ export { CoveringLoader };