@pautena/react-design-system 0.0.1

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 (409) hide show
  1. package/.eslintrc.js +26 -0
  2. package/.github/workflows/ci.yml +23 -0
  3. package/.github/workflows/deploy-storybook.yaml +23 -0
  4. package/.github/workflows/publish.yml +31 -0
  5. package/.husky/pre-commit +5 -0
  6. package/.prettierignore +4 -0
  7. package/.prettierrc.js +5 -0
  8. package/.storybook/main.js +10 -0
  9. package/.storybook/preview.js +36 -0
  10. package/README.md +7 -0
  11. package/babel.config.js +3 -0
  12. package/dist/cjs/index.js +278 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/types/components/app-bar/app-bar.d.ts +2 -0
  15. package/dist/cjs/types/components/app-bar/app-bar.types.d.ts +13 -0
  16. package/dist/cjs/types/components/app-bar/index.d.ts +3 -0
  17. package/dist/cjs/types/components/app-bar/mini-app-bar/index.d.ts +1 -0
  18. package/dist/cjs/types/components/app-bar/mini-app-bar/mini-app-bar.d.ts +2 -0
  19. package/dist/cjs/types/components/bullet/bullet.d.ts +14 -0
  20. package/dist/cjs/types/components/bullet/index.d.ts +1 -0
  21. package/dist/cjs/types/components/center-container/center-container.d.ts +9 -0
  22. package/dist/cjs/types/components/center-container/index.d.ts +1 -0
  23. package/dist/cjs/types/components/drawer/drawer.context.d.ts +9 -0
  24. package/dist/cjs/types/components/drawer/drawer.d.ts +2 -0
  25. package/dist/cjs/types/components/drawer/drawer.mixins.d.ts +4 -0
  26. package/dist/cjs/types/components/drawer/drawer.mock.d.ts +3 -0
  27. package/dist/cjs/types/components/drawer/drawer.provider.d.ts +6 -0
  28. package/dist/cjs/types/components/drawer/drawer.types.d.ts +44 -0
  29. package/dist/cjs/types/components/drawer/index.d.ts +5 -0
  30. package/dist/cjs/types/components/drawer/mini-drawer/index.d.ts +1 -0
  31. package/dist/cjs/types/components/drawer/mini-drawer/mini-drawer.d.ts +1 -0
  32. package/dist/cjs/types/components/drawer-content/drawer-content.d.ts +5 -0
  33. package/dist/cjs/types/components/drawer-content/index.d.ts +1 -0
  34. package/dist/cjs/types/components/drawer-item/drawer-item.d.ts +33 -0
  35. package/dist/cjs/types/components/drawer-item/index.d.ts +1 -0
  36. package/dist/cjs/types/components/drawer-section/drawer-section.d.ts +16 -0
  37. package/dist/cjs/types/components/drawer-section/drawer-section.mock.d.ts +2 -0
  38. package/dist/cjs/types/components/drawer-section/index.d.ts +1 -0
  39. package/dist/cjs/types/components/header/header.d.ts +65 -0
  40. package/dist/cjs/types/components/header/header.dummy.d.ts +4 -0
  41. package/dist/cjs/types/components/header/index.d.ts +1 -0
  42. package/dist/cjs/types/components/index.d.ts +17 -0
  43. package/dist/cjs/types/components/label/index.d.ts +1 -0
  44. package/dist/cjs/types/components/label/label.d.ts +18 -0
  45. package/dist/cjs/types/components/link/index.d.ts +1 -0
  46. package/dist/cjs/types/components/link/link.d.ts +7 -0
  47. package/dist/cjs/types/components/loading-area/index.d.ts +1 -0
  48. package/dist/cjs/types/components/loading-area/loading-area.d.ts +4 -0
  49. package/dist/cjs/types/components/placeholder/index.d.ts +1 -0
  50. package/dist/cjs/types/components/placeholder/placeholder.d.ts +21 -0
  51. package/dist/cjs/types/components/placeholder/placeholder.mock.d.ts +2 -0
  52. package/dist/cjs/types/components/query-container/index.d.ts +1 -0
  53. package/dist/cjs/types/components/query-container/query-container.d.ts +39 -0
  54. package/dist/cjs/types/components/sign-in/index.d.ts +1 -0
  55. package/dist/cjs/types/components/sign-in/sign-in.d.ts +9 -0
  56. package/dist/cjs/types/components/tab/index.d.ts +3 -0
  57. package/dist/cjs/types/components/tab/tab-card/index.d.ts +1 -0
  58. package/dist/cjs/types/components/tab/tab-card/tab-card.d.ts +7 -0
  59. package/dist/cjs/types/components/tab/tab-card/tab-card.dummy.d.ts +7 -0
  60. package/dist/cjs/types/components/tab/tab-panel/index.d.ts +1 -0
  61. package/dist/cjs/types/components/tab/tab-panel/tab-panel.d.ts +7 -0
  62. package/dist/cjs/types/components/tab/tab.context.d.ts +4 -0
  63. package/dist/cjs/types/components/table/enhanced-remote-table/enhanced-remote-table.d.ts +13 -0
  64. package/dist/cjs/types/components/table/enhanced-remote-table/enhanced-remote-table.mock.d.ts +11 -0
  65. package/dist/cjs/types/components/table/enhanced-remote-table/index.d.ts +1 -0
  66. package/dist/cjs/types/components/table/enhanced-table/enhanced-table-head.d.ts +16 -0
  67. package/dist/cjs/types/components/table/enhanced-table/enhanced-table.d.ts +18 -0
  68. package/dist/cjs/types/components/table/enhanced-table/enhanced-table.mock.d.ts +17 -0
  69. package/dist/cjs/types/components/table/enhanced-table/index.d.ts +2 -0
  70. package/dist/cjs/types/components/table/index.d.ts +2 -0
  71. package/dist/cjs/types/components/table-list/index.d.ts +1 -0
  72. package/dist/cjs/types/components/table-list/table-list.d.ts +21 -0
  73. package/dist/cjs/types/components/value-displays/group-value-card/group-value-card.d.ts +15 -0
  74. package/dist/cjs/types/components/value-displays/group-value-card/group-value-card.mock.d.ts +1 -0
  75. package/dist/cjs/types/components/value-displays/group-value-card/index.d.ts +1 -0
  76. package/dist/cjs/types/components/value-displays/index.d.ts +4 -0
  77. package/dist/cjs/types/components/value-displays/value-boolean/index.d.ts +1 -0
  78. package/dist/cjs/types/components/value-displays/value-boolean/value-boolean.d.ts +14 -0
  79. package/dist/cjs/types/components/value-displays/value-card/index.d.ts +1 -0
  80. package/dist/cjs/types/components/value-displays/value-card/value-card.d.ts +6 -0
  81. package/dist/cjs/types/components/value-displays/value-text/index.d.ts +1 -0
  82. package/dist/cjs/types/components/value-displays/value-text/value-text.d.ts +14 -0
  83. package/dist/cjs/types/generators/generators.mock.d.ts +3 -0
  84. package/dist/cjs/types/generators/generators.model.d.ts +33 -0
  85. package/dist/cjs/types/generators/index.d.ts +4 -0
  86. package/dist/cjs/types/generators/model-form/index.d.ts +1 -0
  87. package/dist/cjs/types/generators/model-form/model-form.d.ts +8 -0
  88. package/dist/cjs/types/generators/model-router/index.d.ts +1 -0
  89. package/dist/cjs/types/generators/model-router/model-router.d.ts +35 -0
  90. package/dist/cjs/types/generators/model-router/screens/add-screen.d.ts +2 -0
  91. package/dist/cjs/types/generators/model-router/screens/details-screen.d.ts +2 -0
  92. package/dist/cjs/types/generators/model-router/screens/index.d.ts +4 -0
  93. package/dist/cjs/types/generators/model-router/screens/list-screen.d.ts +2 -0
  94. package/dist/cjs/types/generators/model-router/screens/update-screen.d.ts +2 -0
  95. package/dist/cjs/types/generators/object-details/index.d.ts +1 -0
  96. package/dist/cjs/types/generators/object-details/object-details.d.ts +6 -0
  97. package/dist/cjs/types/index.d.ts +4 -0
  98. package/dist/cjs/types/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.d.ts +10 -0
  99. package/dist/cjs/types/layouts/app-bar-with-drawer-layout/index.d.ts +1 -0
  100. package/dist/cjs/types/layouts/data-table-layout/data-table-layout.d.ts +12 -0
  101. package/dist/cjs/types/layouts/data-table-layout/index.d.ts +1 -0
  102. package/dist/cjs/types/layouts/details-layout/details-layout.d.ts +12 -0
  103. package/dist/cjs/types/layouts/details-layout/index.d.ts +1 -0
  104. package/dist/cjs/types/layouts/form-layout/form-layout.d.ts +8 -0
  105. package/dist/cjs/types/layouts/form-layout/index.d.ts +1 -0
  106. package/dist/cjs/types/layouts/header-layout/header-layout.d.ts +8 -0
  107. package/dist/cjs/types/layouts/header-layout/index.d.ts +1 -0
  108. package/dist/cjs/types/layouts/index.d.ts +7 -0
  109. package/dist/cjs/types/layouts/list-layout/index.d.ts +1 -0
  110. package/dist/cjs/types/layouts/list-layout/list-layout.d.ts +8 -0
  111. package/dist/cjs/types/layouts/tab-layout/index.d.ts +1 -0
  112. package/dist/cjs/types/layouts/tab-layout/tab-layout.d.ts +7 -0
  113. package/dist/cjs/types/providers/index.d.ts +1 -0
  114. package/dist/cjs/types/providers/notification-center/index.d.ts +1 -0
  115. package/dist/cjs/types/providers/notification-center/notification-center.context.d.ts +16 -0
  116. package/dist/cjs/types/providers/notification-center/notification-center.provider.d.ts +5 -0
  117. package/dist/cjs/types/utils/arrays.d.ts +5 -0
  118. package/dist/cjs/types/utils/arrays.test.d.ts +1 -0
  119. package/dist/cjs/types/utils/index.d.ts +2 -0
  120. package/dist/cjs/types/utils/theme.d.ts +4 -0
  121. package/dist/esm/index.js +278 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/esm/types/components/app-bar/app-bar.d.ts +2 -0
  124. package/dist/esm/types/components/app-bar/app-bar.types.d.ts +13 -0
  125. package/dist/esm/types/components/app-bar/index.d.ts +3 -0
  126. package/dist/esm/types/components/app-bar/mini-app-bar/index.d.ts +1 -0
  127. package/dist/esm/types/components/app-bar/mini-app-bar/mini-app-bar.d.ts +2 -0
  128. package/dist/esm/types/components/bullet/bullet.d.ts +14 -0
  129. package/dist/esm/types/components/bullet/index.d.ts +1 -0
  130. package/dist/esm/types/components/center-container/center-container.d.ts +9 -0
  131. package/dist/esm/types/components/center-container/index.d.ts +1 -0
  132. package/dist/esm/types/components/drawer/drawer.context.d.ts +9 -0
  133. package/dist/esm/types/components/drawer/drawer.d.ts +2 -0
  134. package/dist/esm/types/components/drawer/drawer.mixins.d.ts +4 -0
  135. package/dist/esm/types/components/drawer/drawer.mock.d.ts +3 -0
  136. package/dist/esm/types/components/drawer/drawer.provider.d.ts +6 -0
  137. package/dist/esm/types/components/drawer/drawer.types.d.ts +44 -0
  138. package/dist/esm/types/components/drawer/index.d.ts +5 -0
  139. package/dist/esm/types/components/drawer/mini-drawer/index.d.ts +1 -0
  140. package/dist/esm/types/components/drawer/mini-drawer/mini-drawer.d.ts +1 -0
  141. package/dist/esm/types/components/drawer-content/drawer-content.d.ts +5 -0
  142. package/dist/esm/types/components/drawer-content/index.d.ts +1 -0
  143. package/dist/esm/types/components/drawer-item/drawer-item.d.ts +33 -0
  144. package/dist/esm/types/components/drawer-item/index.d.ts +1 -0
  145. package/dist/esm/types/components/drawer-section/drawer-section.d.ts +16 -0
  146. package/dist/esm/types/components/drawer-section/drawer-section.mock.d.ts +2 -0
  147. package/dist/esm/types/components/drawer-section/index.d.ts +1 -0
  148. package/dist/esm/types/components/header/header.d.ts +65 -0
  149. package/dist/esm/types/components/header/header.dummy.d.ts +4 -0
  150. package/dist/esm/types/components/header/index.d.ts +1 -0
  151. package/dist/esm/types/components/index.d.ts +17 -0
  152. package/dist/esm/types/components/label/index.d.ts +1 -0
  153. package/dist/esm/types/components/label/label.d.ts +18 -0
  154. package/dist/esm/types/components/link/index.d.ts +1 -0
  155. package/dist/esm/types/components/link/link.d.ts +7 -0
  156. package/dist/esm/types/components/loading-area/index.d.ts +1 -0
  157. package/dist/esm/types/components/loading-area/loading-area.d.ts +4 -0
  158. package/dist/esm/types/components/placeholder/index.d.ts +1 -0
  159. package/dist/esm/types/components/placeholder/placeholder.d.ts +21 -0
  160. package/dist/esm/types/components/placeholder/placeholder.mock.d.ts +2 -0
  161. package/dist/esm/types/components/query-container/index.d.ts +1 -0
  162. package/dist/esm/types/components/query-container/query-container.d.ts +39 -0
  163. package/dist/esm/types/components/sign-in/index.d.ts +1 -0
  164. package/dist/esm/types/components/sign-in/sign-in.d.ts +9 -0
  165. package/dist/esm/types/components/tab/index.d.ts +3 -0
  166. package/dist/esm/types/components/tab/tab-card/index.d.ts +1 -0
  167. package/dist/esm/types/components/tab/tab-card/tab-card.d.ts +7 -0
  168. package/dist/esm/types/components/tab/tab-card/tab-card.dummy.d.ts +7 -0
  169. package/dist/esm/types/components/tab/tab-panel/index.d.ts +1 -0
  170. package/dist/esm/types/components/tab/tab-panel/tab-panel.d.ts +7 -0
  171. package/dist/esm/types/components/tab/tab.context.d.ts +4 -0
  172. package/dist/esm/types/components/table/enhanced-remote-table/enhanced-remote-table.d.ts +13 -0
  173. package/dist/esm/types/components/table/enhanced-remote-table/enhanced-remote-table.mock.d.ts +11 -0
  174. package/dist/esm/types/components/table/enhanced-remote-table/index.d.ts +1 -0
  175. package/dist/esm/types/components/table/enhanced-table/enhanced-table-head.d.ts +16 -0
  176. package/dist/esm/types/components/table/enhanced-table/enhanced-table.d.ts +18 -0
  177. package/dist/esm/types/components/table/enhanced-table/enhanced-table.mock.d.ts +17 -0
  178. package/dist/esm/types/components/table/enhanced-table/index.d.ts +2 -0
  179. package/dist/esm/types/components/table/index.d.ts +2 -0
  180. package/dist/esm/types/components/table-list/index.d.ts +1 -0
  181. package/dist/esm/types/components/table-list/table-list.d.ts +21 -0
  182. package/dist/esm/types/components/value-displays/group-value-card/group-value-card.d.ts +15 -0
  183. package/dist/esm/types/components/value-displays/group-value-card/group-value-card.mock.d.ts +1 -0
  184. package/dist/esm/types/components/value-displays/group-value-card/index.d.ts +1 -0
  185. package/dist/esm/types/components/value-displays/index.d.ts +4 -0
  186. package/dist/esm/types/components/value-displays/value-boolean/index.d.ts +1 -0
  187. package/dist/esm/types/components/value-displays/value-boolean/value-boolean.d.ts +14 -0
  188. package/dist/esm/types/components/value-displays/value-card/index.d.ts +1 -0
  189. package/dist/esm/types/components/value-displays/value-card/value-card.d.ts +6 -0
  190. package/dist/esm/types/components/value-displays/value-text/index.d.ts +1 -0
  191. package/dist/esm/types/components/value-displays/value-text/value-text.d.ts +14 -0
  192. package/dist/esm/types/generators/generators.mock.d.ts +3 -0
  193. package/dist/esm/types/generators/generators.model.d.ts +33 -0
  194. package/dist/esm/types/generators/index.d.ts +4 -0
  195. package/dist/esm/types/generators/model-form/index.d.ts +1 -0
  196. package/dist/esm/types/generators/model-form/model-form.d.ts +8 -0
  197. package/dist/esm/types/generators/model-router/index.d.ts +1 -0
  198. package/dist/esm/types/generators/model-router/model-router.d.ts +35 -0
  199. package/dist/esm/types/generators/model-router/screens/add-screen.d.ts +2 -0
  200. package/dist/esm/types/generators/model-router/screens/details-screen.d.ts +2 -0
  201. package/dist/esm/types/generators/model-router/screens/index.d.ts +4 -0
  202. package/dist/esm/types/generators/model-router/screens/list-screen.d.ts +2 -0
  203. package/dist/esm/types/generators/model-router/screens/update-screen.d.ts +2 -0
  204. package/dist/esm/types/generators/object-details/index.d.ts +1 -0
  205. package/dist/esm/types/generators/object-details/object-details.d.ts +6 -0
  206. package/dist/esm/types/index.d.ts +4 -0
  207. package/dist/esm/types/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.d.ts +10 -0
  208. package/dist/esm/types/layouts/app-bar-with-drawer-layout/index.d.ts +1 -0
  209. package/dist/esm/types/layouts/data-table-layout/data-table-layout.d.ts +12 -0
  210. package/dist/esm/types/layouts/data-table-layout/index.d.ts +1 -0
  211. package/dist/esm/types/layouts/details-layout/details-layout.d.ts +12 -0
  212. package/dist/esm/types/layouts/details-layout/index.d.ts +1 -0
  213. package/dist/esm/types/layouts/form-layout/form-layout.d.ts +8 -0
  214. package/dist/esm/types/layouts/form-layout/index.d.ts +1 -0
  215. package/dist/esm/types/layouts/header-layout/header-layout.d.ts +8 -0
  216. package/dist/esm/types/layouts/header-layout/index.d.ts +1 -0
  217. package/dist/esm/types/layouts/index.d.ts +7 -0
  218. package/dist/esm/types/layouts/list-layout/index.d.ts +1 -0
  219. package/dist/esm/types/layouts/list-layout/list-layout.d.ts +8 -0
  220. package/dist/esm/types/layouts/tab-layout/index.d.ts +1 -0
  221. package/dist/esm/types/layouts/tab-layout/tab-layout.d.ts +7 -0
  222. package/dist/esm/types/providers/index.d.ts +1 -0
  223. package/dist/esm/types/providers/notification-center/index.d.ts +1 -0
  224. package/dist/esm/types/providers/notification-center/notification-center.context.d.ts +16 -0
  225. package/dist/esm/types/providers/notification-center/notification-center.provider.d.ts +5 -0
  226. package/dist/esm/types/utils/arrays.d.ts +5 -0
  227. package/dist/esm/types/utils/arrays.test.d.ts +1 -0
  228. package/dist/esm/types/utils/index.d.ts +2 -0
  229. package/dist/esm/types/utils/theme.d.ts +4 -0
  230. package/dist/index.d.ts +594 -0
  231. package/jest.config.js +14 -0
  232. package/jest.setup.ts +5 -0
  233. package/package.json +98 -0
  234. package/rollup.config.js +40 -0
  235. package/src/components/app-bar/app-bar.stories.tsx +54 -0
  236. package/src/components/app-bar/app-bar.test.tsx +142 -0
  237. package/src/components/app-bar/app-bar.tsx +150 -0
  238. package/src/components/app-bar/app-bar.types.ts +16 -0
  239. package/src/components/app-bar/index.ts +3 -0
  240. package/src/components/app-bar/mini-app-bar/index.ts +1 -0
  241. package/src/components/app-bar/mini-app-bar/mini-app-bar.tsx +31 -0
  242. package/src/components/bullet/bullet.stories.tsx +43 -0
  243. package/src/components/bullet/bullet.test.tsx +24 -0
  244. package/src/components/bullet/bullet.tsx +30 -0
  245. package/src/components/bullet/index.ts +1 -0
  246. package/src/components/center-container/center-container.stories.tsx +50 -0
  247. package/src/components/center-container/center-container.test.tsx +16 -0
  248. package/src/components/center-container/center-container.tsx +32 -0
  249. package/src/components/center-container/index.ts +1 -0
  250. package/src/components/drawer/__snapshots__/drawer.test.tsx.snap +20 -0
  251. package/src/components/drawer/drawer.context.ts +20 -0
  252. package/src/components/drawer/drawer.mixins.ts +24 -0
  253. package/src/components/drawer/drawer.mock.tsx +100 -0
  254. package/src/components/drawer/drawer.provider.tsx +23 -0
  255. package/src/components/drawer/drawer.test.tsx +97 -0
  256. package/src/components/drawer/drawer.tsx +30 -0
  257. package/src/components/drawer/drawer.types.ts +53 -0
  258. package/src/components/drawer/index.ts +5 -0
  259. package/src/components/drawer/mini-drawer/index.ts +1 -0
  260. package/src/components/drawer/mini-drawer/mini-drawer.stories.tsx +34 -0
  261. package/src/components/drawer/mini-drawer/mini-drawer.tsx +67 -0
  262. package/src/components/drawer-content/drawer-content.stories.tsx +29 -0
  263. package/src/components/drawer-content/drawer-content.test.tsx +34 -0
  264. package/src/components/drawer-content/drawer-content.tsx +18 -0
  265. package/src/components/drawer-content/index.ts +1 -0
  266. package/src/components/drawer-item/drawer-item.stories.tsx +62 -0
  267. package/src/components/drawer-item/drawer-item.test.tsx +119 -0
  268. package/src/components/drawer-item/drawer-item.tsx +69 -0
  269. package/src/components/drawer-item/index.ts +1 -0
  270. package/src/components/drawer-section/drawer-section.mock.tsx +39 -0
  271. package/src/components/drawer-section/drawer-section.stories.tsx +28 -0
  272. package/src/components/drawer-section/drawer-section.test.tsx +44 -0
  273. package/src/components/drawer-section/drawer-section.tsx +40 -0
  274. package/src/components/drawer-section/index.ts +1 -0
  275. package/src/components/header/header.dummy.ts +55 -0
  276. package/src/components/header/header.stories.tsx +116 -0
  277. package/src/components/header/header.test.tsx +167 -0
  278. package/src/components/header/header.tsx +185 -0
  279. package/src/components/header/index.ts +1 -0
  280. package/src/components/index.ts +17 -0
  281. package/src/components/label/index.ts +1 -0
  282. package/src/components/label/label.stories.tsx +49 -0
  283. package/src/components/label/label.test.tsx +30 -0
  284. package/src/components/label/label.tsx +60 -0
  285. package/src/components/link/index.ts +1 -0
  286. package/src/components/link/link.tsx +17 -0
  287. package/src/components/loading-area/index.ts +1 -0
  288. package/src/components/loading-area/loading-area.stories.tsx +17 -0
  289. package/src/components/loading-area/loading-area.test.tsx +11 -0
  290. package/src/components/loading-area/loading-area.tsx +13 -0
  291. package/src/components/placeholder/index.ts +1 -0
  292. package/src/components/placeholder/placeholder.mock.ts +15 -0
  293. package/src/components/placeholder/placeholder.stories.tsx +44 -0
  294. package/src/components/placeholder/placeholder.test.tsx +76 -0
  295. package/src/components/placeholder/placeholder.tsx +75 -0
  296. package/src/components/query-container/index.ts +1 -0
  297. package/src/components/query-container/query-container.stories.tsx +68 -0
  298. package/src/components/query-container/query-container.test.tsx +95 -0
  299. package/src/components/query-container/query-container.tsx +71 -0
  300. package/src/components/sign-in/index.ts +1 -0
  301. package/src/components/sign-in/sign-in.stories.tsx +36 -0
  302. package/src/components/sign-in/sign-in.test.tsx +95 -0
  303. package/src/components/sign-in/sign-in.tsx +97 -0
  304. package/src/components/tab/index.ts +3 -0
  305. package/src/components/tab/tab-card/index.ts +1 -0
  306. package/src/components/tab/tab-card/tab-card.dummy.tsx +27 -0
  307. package/src/components/tab/tab-card/tab-card.stories.tsx +22 -0
  308. package/src/components/tab/tab-card/tab-card.test.tsx +53 -0
  309. package/src/components/tab/tab-card/tab-card.tsx +30 -0
  310. package/src/components/tab/tab-panel/index.ts +1 -0
  311. package/src/components/tab/tab-panel/tab-panel.test.tsx +26 -0
  312. package/src/components/tab/tab-panel/tab-panel.tsx +27 -0
  313. package/src/components/tab/tab.context.ts +5 -0
  314. package/src/components/table/enhanced-remote-table/enhanced-remote-table.mock.tsx +27 -0
  315. package/src/components/table/enhanced-remote-table/enhanced-remote-table.stories.tsx +24 -0
  316. package/src/components/table/enhanced-remote-table/enhanced-remote-table.test.tsx +77 -0
  317. package/src/components/table/enhanced-remote-table/enhanced-remote-table.tsx +74 -0
  318. package/src/components/table/enhanced-remote-table/index.ts +1 -0
  319. package/src/components/table/enhanced-table/enhanced-table-head.tsx +58 -0
  320. package/src/components/table/enhanced-table/enhanced-table.mock.tsx +93 -0
  321. package/src/components/table/enhanced-table/enhanced-table.stories.tsx +21 -0
  322. package/src/components/table/enhanced-table/enhanced-table.test.tsx +107 -0
  323. package/src/components/table/enhanced-table/enhanced-table.tsx +136 -0
  324. package/src/components/table/enhanced-table/index.ts +2 -0
  325. package/src/components/table/index.ts +2 -0
  326. package/src/components/table-list/index.ts +1 -0
  327. package/src/components/table-list/table-list.stories.tsx +75 -0
  328. package/src/components/table-list/table-list.test.tsx +283 -0
  329. package/src/components/table-list/table-list.tsx +131 -0
  330. package/src/components/value-displays/group-value-card/group-value-card.mock.tsx +35 -0
  331. package/src/components/value-displays/group-value-card/group-value-card.stories.tsx +26 -0
  332. package/src/components/value-displays/group-value-card/group-value-card.test.tsx +58 -0
  333. package/src/components/value-displays/group-value-card/group-value-card.tsx +65 -0
  334. package/src/components/value-displays/group-value-card/index.ts +1 -0
  335. package/src/components/value-displays/index.ts +4 -0
  336. package/src/components/value-displays/value-boolean/index.ts +1 -0
  337. package/src/components/value-displays/value-boolean/value-boolean.stories.tsx +25 -0
  338. package/src/components/value-displays/value-boolean/value-boolean.test.tsx +27 -0
  339. package/src/components/value-displays/value-boolean/value-boolean.tsx +33 -0
  340. package/src/components/value-displays/value-card/index.ts +1 -0
  341. package/src/components/value-displays/value-card/value-card.stories.tsx +22 -0
  342. package/src/components/value-displays/value-card/value-card.test.tsx +18 -0
  343. package/src/components/value-displays/value-card/value-card.tsx +12 -0
  344. package/src/components/value-displays/value-text/index.ts +1 -0
  345. package/src/components/value-displays/value-text/value-test.test.tsx +21 -0
  346. package/src/components/value-displays/value-text/value-text.stories.tsx +26 -0
  347. package/src/components/value-displays/value-text/value-text.tsx +32 -0
  348. package/src/generators/generators.mock.ts +215 -0
  349. package/src/generators/generators.model.ts +41 -0
  350. package/src/generators/index.ts +4 -0
  351. package/src/generators/model-form/index.ts +1 -0
  352. package/src/generators/model-form/model-form.stories.tsx +30 -0
  353. package/src/generators/model-form/model-form.test.tsx +98 -0
  354. package/src/generators/model-form/model-form.tsx +97 -0
  355. package/src/generators/model-router/index.ts +1 -0
  356. package/src/generators/model-router/model-router.stories.tsx +160 -0
  357. package/src/generators/model-router/model-router.test.tsx +633 -0
  358. package/src/generators/model-router/model-router.tsx +54 -0
  359. package/src/generators/model-router/screens/add-screen.tsx +52 -0
  360. package/src/generators/model-router/screens/details-screen.tsx +53 -0
  361. package/src/generators/model-router/screens/index.ts +4 -0
  362. package/src/generators/model-router/screens/list-screen.tsx +81 -0
  363. package/src/generators/model-router/screens/update-screen.tsx +62 -0
  364. package/src/generators/object-details/index.ts +1 -0
  365. package/src/generators/object-details/object-details.stories.tsx +20 -0
  366. package/src/generators/object-details/object-details.test.tsx +21 -0
  367. package/src/generators/object-details/object-details.tsx +70 -0
  368. package/src/index.ts +4 -0
  369. package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.stories.tsx +29 -0
  370. package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.tsx +34 -0
  371. package/src/layouts/app-bar-with-drawer-layout/index.ts +1 -0
  372. package/src/layouts/data-table-layout/data-table-layout.stories.tsx +94 -0
  373. package/src/layouts/data-table-layout/data-table-layout.tsx +30 -0
  374. package/src/layouts/data-table-layout/index.ts +1 -0
  375. package/src/layouts/details-layout/details-layout.stories.tsx +81 -0
  376. package/src/layouts/details-layout/details-layout.tsx +33 -0
  377. package/src/layouts/details-layout/index.ts +1 -0
  378. package/src/layouts/form-layout/form-layout.stories.tsx +65 -0
  379. package/src/layouts/form-layout/form-layout.tsx +18 -0
  380. package/src/layouts/form-layout/index.ts +1 -0
  381. package/src/layouts/header-layout/header-layout.stories.tsx +68 -0
  382. package/src/layouts/header-layout/header-layout.tsx +24 -0
  383. package/src/layouts/header-layout/index.ts +1 -0
  384. package/src/layouts/index.ts +7 -0
  385. package/src/layouts/list-layout/index.ts +1 -0
  386. package/src/layouts/list-layout/list-layout.stories.tsx +102 -0
  387. package/src/layouts/list-layout/list-layout.tsx +36 -0
  388. package/src/layouts/tab-layout/index.ts +1 -0
  389. package/src/layouts/tab-layout/tab-layout.stories.tsx +88 -0
  390. package/src/layouts/tab-layout/tab-layout.tsx +11 -0
  391. package/src/providers/index.ts +1 -0
  392. package/src/providers/notification-center/index.ts +1 -0
  393. package/src/providers/notification-center/notification-center.context.ts +37 -0
  394. package/src/providers/notification-center/notification-center.provider.tsx +51 -0
  395. package/src/providers/notification-center/notification-center.stories.tsx +52 -0
  396. package/src/providers/notification-center/notification-center.test.tsx +112 -0
  397. package/src/storybook.tsx +56 -0
  398. package/src/tests/assertions.ts +72 -0
  399. package/src/tests/components.tsx +60 -0
  400. package/src/tests/content-placeholder.stories.tsx +16 -0
  401. package/src/tests/index.ts +3 -0
  402. package/src/tests/skeleton-card.stories.tsx +18 -0
  403. package/src/tests/testing-library.tsx +65 -0
  404. package/src/utils/arrays.test.ts +9 -0
  405. package/src/utils/arrays.ts +7 -0
  406. package/src/utils/index.ts +2 -0
  407. package/src/utils/theme.ts +6 -0
  408. package/tsconfig.json +27 -0
  409. package/tsconfig.rollup.json +26 -0
@@ -0,0 +1 @@
1
+ export * from "./details-layout";
@@ -0,0 +1,65 @@
1
+ import { ComponentMeta } from "@storybook/react";
2
+ import { createTemplate } from "../../storybook";
3
+ import { FormLayout } from "./form-layout";
4
+ import { mockModel, createModelInstance } from "../../generators/generators.mock";
5
+ import { withRouter } from "storybook-addon-react-router-v6";
6
+ import { action } from "@storybook/addon-actions";
7
+
8
+ const breadcrumbs = [
9
+ {
10
+ id: "list",
11
+ text: "Items",
12
+ link: "/items",
13
+ },
14
+ {
15
+ id: "item",
16
+ text: "Item 1",
17
+ link: "/items/1",
18
+ },
19
+ ];
20
+
21
+ const args = {
22
+ size: 100,
23
+ dataSetType: "Commodity",
24
+ headerProps: {
25
+ title: "Lorem ipsum",
26
+ subtitle: "Dolor sit amet",
27
+ breadcrumbs,
28
+ actions: [
29
+ {
30
+ id: "new",
31
+ text: "Add",
32
+ },
33
+ ],
34
+ },
35
+ modelFormProps: {
36
+ model: mockModel,
37
+ onSubmit: action("submit model form"),
38
+ },
39
+ };
40
+
41
+ export default {
42
+ title: "Layouts/FormLayout",
43
+ component: FormLayout,
44
+ decorators: [withRouter],
45
+ parameters: {
46
+ layout: "fullscreen",
47
+ },
48
+ } as ComponentMeta<typeof FormLayout>;
49
+
50
+ const Template = createTemplate(FormLayout);
51
+
52
+ export const Add = Template.bind({});
53
+ Add.args = {
54
+ ...args,
55
+ };
56
+
57
+ export const Update = Template.bind({});
58
+ Update.args = {
59
+ ...args,
60
+ modelFormProps: {
61
+ ...args.modelFormProps,
62
+ saveButtonText: "update",
63
+ initialValues: createModelInstance(mockModel),
64
+ },
65
+ };
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { HeaderProps } from "../../components";
3
+ import { ModelFormProps, ModelForm } from "../../generators";
4
+ import { HeaderLayout } from "../header-layout";
5
+
6
+ export interface FormLayoutProps {
7
+ loading?: boolean;
8
+ headerProps: HeaderProps;
9
+ modelFormProps: ModelFormProps;
10
+ }
11
+
12
+ export const FormLayout = ({ loading, headerProps, modelFormProps }: FormLayoutProps) => {
13
+ return (
14
+ <HeaderLayout loading={loading} headerProps={headerProps}>
15
+ <ModelForm {...modelFormProps} />
16
+ </HeaderLayout>
17
+ );
18
+ };
@@ -0,0 +1 @@
1
+ export * from "./form-layout";
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+ import { ComponentMeta } from "@storybook/react";
3
+ import { createTemplate } from "../../storybook";
4
+ import { HeaderLayout } from "./header-layout";
5
+ import { withRouter } from "storybook-addon-react-router-v6";
6
+ import { SkeletonGrid } from "../../tests";
7
+ import { withFullHeight } from "../../storybook";
8
+
9
+ const breadcrumbs = [
10
+ {
11
+ id: "list",
12
+ text: "Items",
13
+ link: "/items",
14
+ },
15
+ {
16
+ id: "item",
17
+ text: "Item 1",
18
+ link: "/items/1",
19
+ },
20
+ ];
21
+
22
+ export default {
23
+ title: "Layouts/HeaderLayout",
24
+ component: HeaderLayout,
25
+ decorators: [withRouter, withFullHeight],
26
+ parameters: {
27
+ layout: "fullscreen",
28
+ },
29
+ } as ComponentMeta<typeof HeaderLayout>;
30
+
31
+ const Template = createTemplate((args) => {
32
+ return (
33
+ <HeaderLayout {...args}>
34
+ <SkeletonGrid />
35
+ </HeaderLayout>
36
+ );
37
+ });
38
+
39
+ export const Default = Template.bind({});
40
+ Default.args = {
41
+ headerProps: {
42
+ title: "Lorem ipsum",
43
+ subtitle: "Dolor sit amet",
44
+ breadcrumbs,
45
+ actions: [
46
+ {
47
+ id: "new",
48
+ text: "Add",
49
+ },
50
+ ],
51
+ },
52
+ };
53
+
54
+ export const Loading = Template.bind({});
55
+ Loading.args = {
56
+ loading: true,
57
+ headerProps: {
58
+ title: "Lorem ipsum",
59
+ subtitle: "Dolor sit amet",
60
+ breadcrumbs,
61
+ actions: [
62
+ {
63
+ id: "new",
64
+ text: "Add",
65
+ },
66
+ ],
67
+ },
68
+ };
@@ -0,0 +1,24 @@
1
+ import { Box, Container } from "@mui/material";
2
+ import React, { PropsWithChildren, useState } from "react";
3
+ import { Header, HeaderProps, TabContextProvider } from "../../components";
4
+ import { LoadingArea } from "../../components/loading-area";
5
+
6
+ interface Props {
7
+ loading?: boolean;
8
+ headerProps: HeaderProps;
9
+ }
10
+
11
+ export const HeaderLayout = ({ loading, headerProps, children }: PropsWithChildren<Props>) => {
12
+ const [tab, setTab] = useState(0);
13
+
14
+ return (
15
+ <TabContextProvider value={tab}>
16
+ <Box display="flex" flexDirection="column" height={1}>
17
+ <Header {...headerProps} selectedTab={tab} onChangeTab={(_, index) => setTab(index)} />
18
+ <Container component="main" sx={{ py: 3, flexGrow: 1 }}>
19
+ {loading ? <LoadingArea /> : children}
20
+ </Container>
21
+ </Box>
22
+ </TabContextProvider>
23
+ );
24
+ };
@@ -0,0 +1 @@
1
+ export * from "./header-layout";
@@ -0,0 +1,7 @@
1
+ export * from "./data-table-layout";
2
+ export * from "./header-layout";
3
+ export * from "./tab-layout";
4
+ export * from "./list-layout";
5
+ export * from "./app-bar-with-drawer-layout";
6
+ export * from "./details-layout";
7
+ export * from "./form-layout";
@@ -0,0 +1 @@
1
+ export * from "./list-layout";
@@ -0,0 +1,102 @@
1
+ import React from "react";
2
+ import { ComponentMeta } from "@storybook/react";
3
+ import { createTemplate } from "../../storybook";
4
+ import { ListLayout } from "./list-layout";
5
+ import { useDemoData } from "@mui/x-data-grid-generator";
6
+ import { withRouter } from "storybook-addon-react-router-v6";
7
+ import { PlaceholderIconArgs } from "../../components";
8
+ import BackupTableIcon from "@mui/icons-material/BackupTable";
9
+
10
+ const maxColumns = 3;
11
+ const editable = true;
12
+ const breadcrumbs = [
13
+ {
14
+ id: "list",
15
+ text: "Items",
16
+ link: "/items",
17
+ },
18
+ {
19
+ id: "item",
20
+ text: "Item 1",
21
+ link: "/items/1",
22
+ },
23
+ ];
24
+
25
+ const args = {
26
+ size: 100,
27
+ dataSetType: "Commodity",
28
+ headerProps: {
29
+ title: "Lorem ipsum",
30
+ subtitle: "Dolor sit amet",
31
+ breadcrumbs,
32
+ actions: [
33
+ {
34
+ id: "new",
35
+ text: "Add",
36
+ },
37
+ ],
38
+ },
39
+ listProps: {
40
+ search: true,
41
+ },
42
+ emptyPlaceholderProps: {
43
+ title: "No item has found",
44
+ subtitle: "First you have to create an item",
45
+ icon: ({ size, color }: PlaceholderIconArgs) => (
46
+ <BackupTableIcon color={color} sx={{ fontSize: size }} />
47
+ ),
48
+ actions: [
49
+ {
50
+ id: "add",
51
+ text: "Add",
52
+ href: "/item/add",
53
+ },
54
+ ],
55
+ },
56
+ };
57
+
58
+ export default {
59
+ title: "Layouts/ListLayout",
60
+ component: ListLayout,
61
+ decorators: [withRouter],
62
+ parameters: {
63
+ layout: "fullscreen",
64
+ },
65
+ } as ComponentMeta<typeof ListLayout>;
66
+
67
+ const Template = createTemplate(({ loading, dataSetType, size, listProps, ...rest }) => {
68
+ const { data } = useDemoData({
69
+ dataSet: dataSetType,
70
+ rowLength: size,
71
+ maxColumns,
72
+ editable,
73
+ });
74
+
75
+ const { rows } = data;
76
+ const columns = data.columns.map(({ field, headerName }) => ({
77
+ id: field,
78
+ label: headerName,
79
+ sort: true,
80
+ }));
81
+
82
+ return (
83
+ <ListLayout loading={loading} listProps={{ ...listProps, data: rows, columns }} {...rest} />
84
+ );
85
+ });
86
+
87
+ export const Default = Template.bind({});
88
+ Default.args = {
89
+ ...args,
90
+ };
91
+
92
+ export const Loading = Template.bind({});
93
+ Loading.args = {
94
+ ...args,
95
+ loading: true,
96
+ };
97
+
98
+ export const Empty = Template.bind({});
99
+ Empty.args = {
100
+ ...args,
101
+ size: 0,
102
+ };
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import {
3
+ BasicData,
4
+ HeaderProps,
5
+ Placeholder,
6
+ PlaceholderProps,
7
+ TableList,
8
+ TableListProps,
9
+ } from "../../components";
10
+ import { HeaderLayout } from "../header-layout";
11
+
12
+ export interface ListLayoutProps<T extends BasicData> {
13
+ loading?: boolean;
14
+ headerProps: HeaderProps;
15
+ listProps: TableListProps<T>;
16
+ emptyPlaceholderProps: PlaceholderProps;
17
+ }
18
+
19
+ export const ListLayout = <T extends BasicData>({
20
+ loading,
21
+ headerProps,
22
+ emptyPlaceholderProps,
23
+ listProps: { data, ...restListProps },
24
+ }: ListLayoutProps<T>) => {
25
+ const isEmpty = data.length === 0;
26
+
27
+ return (
28
+ <HeaderLayout loading={loading} headerProps={headerProps}>
29
+ {!isEmpty ? (
30
+ <TableList data={data} {...restListProps} />
31
+ ) : (
32
+ <Placeholder {...emptyPlaceholderProps} />
33
+ )}
34
+ </HeaderLayout>
35
+ );
36
+ };
@@ -0,0 +1 @@
1
+ export * from "./tab-layout";
@@ -0,0 +1,88 @@
1
+ import React from "react";
2
+ import { ComponentMeta } from "@storybook/react";
3
+ import { createTemplate } from "../../storybook";
4
+ import { TabLayout } from "./tab-layout";
5
+ import { withRouter } from "storybook-addon-react-router-v6";
6
+ import { Typography } from "@mui/material";
7
+ import { HeaderTab, TabPanel } from "../../components";
8
+
9
+ const breadcrumbs = [
10
+ {
11
+ id: "list",
12
+ text: "Items",
13
+ link: "/items",
14
+ },
15
+ {
16
+ id: "item",
17
+ text: "Item 1",
18
+ link: "/items/1",
19
+ },
20
+ ];
21
+
22
+ const tabs: HeaderTab[] = [
23
+ {
24
+ id: "tab1",
25
+ label: "Tab 1",
26
+ },
27
+ {
28
+ id: "tab2.1",
29
+ label: "Tab 2.1",
30
+ },
31
+ {
32
+ id: "tab2.2",
33
+ label: "Tab 2.2",
34
+ },
35
+ {
36
+ id: "tab3",
37
+ label: "Tab 3",
38
+ disabled: true,
39
+ },
40
+ {
41
+ id: "tab4",
42
+ label: "Tab 4",
43
+ },
44
+ ];
45
+
46
+ export default {
47
+ title: "Layouts/TabLayout",
48
+ component: TabLayout,
49
+ decorators: [withRouter],
50
+ parameters: {
51
+ layout: "fullscreen",
52
+ },
53
+ } as ComponentMeta<typeof TabLayout>;
54
+
55
+ const Template = createTemplate((args) => {
56
+ return (
57
+ <TabLayout {...args}>
58
+ <TabPanel index={0}>
59
+ <Typography>Panel 1</Typography>
60
+ </TabPanel>
61
+ <TabPanel index={[1, 2]}>
62
+ <Typography>Panel 2</Typography>
63
+ </TabPanel>
64
+ <TabPanel index={3}>
65
+ <Typography>Panel 3</Typography>
66
+ </TabPanel>
67
+ <TabPanel index={4}>
68
+ <Typography>Panel 4</Typography>
69
+ </TabPanel>
70
+ </TabLayout>
71
+ );
72
+ });
73
+
74
+ export const Default = Template.bind({});
75
+ Default.args = {
76
+ headerProps: {
77
+ title: "Lorem ipsum",
78
+ subtitle: "Dolor sit amet",
79
+ breadcrumbs,
80
+ tabs,
81
+ actions: [
82
+ {
83
+ id: "new",
84
+ text: "Add",
85
+ },
86
+ ],
87
+ },
88
+ };
@@ -0,0 +1,11 @@
1
+ import React, { PropsWithChildren } from "react";
2
+ import { HeaderProps } from "../../components";
3
+ import { HeaderLayout } from "../header-layout";
4
+
5
+ interface Props {
6
+ headerProps: HeaderProps;
7
+ }
8
+
9
+ export const TabLayout = ({ headerProps, children }: PropsWithChildren<Props>) => {
10
+ return <HeaderLayout headerProps={headerProps}>{children}</HeaderLayout>;
11
+ };
@@ -0,0 +1 @@
1
+ export * from "./notification-center";
@@ -0,0 +1 @@
1
+ export * from "./notification-center.provider";
@@ -0,0 +1,37 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { AlertColor } from "@mui/material";
3
+ import React from "react";
4
+
5
+ export const NotificationCenterProviderUndefinedError = new Error(
6
+ "NotificationCenterContext.Provider is required and was undefined",
7
+ );
8
+ export type SnackbarContentType =
9
+ | React.ReactElement<any, any>
10
+ | ((key: string) => React.ReactElement<any, any>);
11
+
12
+ export type SnackbarActionType = React.ReactNode | ((key: string) => React.ReactNode);
13
+
14
+ export interface Notification {
15
+ severity: AlertColor;
16
+ title?: string;
17
+ message: string;
18
+ }
19
+
20
+ export interface NotificationCenterProps {
21
+ show(notification: Notification): void;
22
+ hide(): void;
23
+ }
24
+
25
+ export const NotificationCenterContext = React.createContext<NotificationCenterProps | undefined>(
26
+ undefined,
27
+ );
28
+
29
+ export const useNotificationCenter = () => {
30
+ const context = React.useContext(NotificationCenterContext);
31
+
32
+ if (context === undefined) {
33
+ throw NotificationCenterProviderUndefinedError;
34
+ }
35
+
36
+ return context;
37
+ };
@@ -0,0 +1,51 @@
1
+ import { useState } from "react";
2
+ import { Snackbar, Alert, AlertTitle } from "@mui/material";
3
+ import React, { PropsWithChildren } from "react";
4
+ import { Notification, NotificationCenterContext } from "./notification-center.context";
5
+
6
+ export type NotificationCenterProviderProps = PropsWithChildren<{
7
+ autoHideDuration?: number;
8
+ }>;
9
+
10
+ export const NotificationCenterProvider = ({
11
+ children,
12
+ autoHideDuration = 6000,
13
+ }: NotificationCenterProviderProps) => {
14
+ const [notification, setNotification] = useState<Notification | undefined>(undefined);
15
+ const [open, setOpen] = useState(false);
16
+ const show = (notification: Notification) => {
17
+ setNotification(notification);
18
+ setOpen(true);
19
+ };
20
+
21
+ const hide = () => {
22
+ setOpen(false);
23
+ };
24
+
25
+ return (
26
+ <NotificationCenterContext.Provider
27
+ value={{
28
+ show,
29
+ hide,
30
+ }}
31
+ >
32
+ <Snackbar
33
+ open={open}
34
+ autoHideDuration={autoHideDuration}
35
+ onClose={hide}
36
+ anchorOrigin={{ vertical: "top", horizontal: "right" }}
37
+ >
38
+ <Alert
39
+ onClose={hide}
40
+ severity={notification?.severity}
41
+ aria-label={notification?.severity}
42
+ sx={{ width: "100%" }}
43
+ >
44
+ {notification?.title && <AlertTitle>{notification?.title}</AlertTitle>}
45
+ {notification?.message}
46
+ </Alert>
47
+ </Snackbar>
48
+ {children}
49
+ </NotificationCenterContext.Provider>
50
+ );
51
+ };
@@ -0,0 +1,52 @@
1
+ import React from "react";
2
+ import { ComponentMeta } from "@storybook/react";
3
+ import { NotificationCenterProvider } from "./notification-center.provider";
4
+ import { useNotificationCenter } from "./notification-center.context";
5
+ import { ContentPlaceholder } from "../../tests";
6
+ import { Button, Box } from "@mui/material";
7
+
8
+ const DummyError = {
9
+ title: "Internal Server error",
10
+ message: "Unable to save the item",
11
+ };
12
+
13
+ export default {
14
+ title: "Providers/NotificationCenter",
15
+ component: ContentPlaceholder,
16
+ decorators: [
17
+ (Story) => (
18
+ <NotificationCenterProvider>
19
+ <Story />
20
+ </NotificationCenterProvider>
21
+ ),
22
+ ],
23
+ parameters: {
24
+ layout: "fullscreen",
25
+ },
26
+ } as ComponentMeta<typeof ContentPlaceholder>;
27
+
28
+ export const Default = () => {
29
+ const { show, hide } = useNotificationCenter();
30
+
31
+ return (
32
+ <ContentPlaceholder size={3} p={2}>
33
+ <Box pb={2}>
34
+ <Button onClick={() => show({ ...DummyError, severity: "info" })} variant="contained">
35
+ Show info
36
+ </Button>
37
+ <Button onClick={() => show({ ...DummyError, severity: "success" })} variant="contained">
38
+ Show success
39
+ </Button>
40
+ <Button onClick={() => show({ ...DummyError, severity: "warning" })} variant="contained">
41
+ Show warning
42
+ </Button>
43
+ <Button onClick={() => show({ ...DummyError, severity: "error" })} variant="contained">
44
+ Show error
45
+ </Button>
46
+ <Button onClick={hide} variant="contained">
47
+ hide
48
+ </Button>
49
+ </Box>
50
+ </ContentPlaceholder>
51
+ );
52
+ };