@pautena/react-design-system 0.4.2 → 0.4.4

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 (444) hide show
  1. package/dist/cjs/index.js +4 -12
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/app-bar.types.d.ts +2 -2
  4. package/dist/cjs/types/components/app-bars/index.d.ts +1 -0
  5. package/dist/cjs/types/components/containers/content/content.types.d.ts +4 -0
  6. package/dist/cjs/types/components/containers/index.d.ts +2 -0
  7. package/dist/cjs/types/components/{bullet → data-display/bullet}/bullet.d.ts +1 -1
  8. package/dist/cjs/types/components/{header → data-display/header}/header.dummy.d.ts +1 -1
  9. package/dist/cjs/types/components/{header → data-display/header}/header.types.d.ts +6 -6
  10. package/dist/cjs/types/components/data-display/index.d.ts +3 -0
  11. package/dist/{esm/types/components → cjs/types/components/data-display}/label/label.d.ts +1 -1
  12. package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.provider.d.ts +1 -1
  13. package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.types.d.ts +14 -7
  14. package/dist/cjs/types/components/drawers/drawer-collapsable-item/drawer-collapsable-item.d.ts +26 -0
  15. package/dist/cjs/types/components/drawers/drawer-collapsable-item/index.d.ts +1 -0
  16. package/dist/cjs/types/components/{drawer-item → drawers/drawer-item}/drawer-item.d.ts +10 -1
  17. package/dist/{esm/types/components → cjs/types/components/drawers}/drawer-section/drawer-section.d.ts +5 -1
  18. package/dist/cjs/types/components/drawers/index.d.ts +4 -0
  19. package/dist/cjs/types/components/feedback/index.d.ts +2 -0
  20. package/dist/cjs/types/components/{query-container → feedback/query-container}/query-container.d.ts +1 -1
  21. package/dist/cjs/types/components/index.d.ts +9 -18
  22. package/dist/cjs/types/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.d.ts +1 -2
  23. package/dist/cjs/types/components/inputs/index.d.ts +2 -0
  24. package/dist/cjs/types/components/{sign-in → inputs/sign-in}/sign-in.d.ts +2 -3
  25. package/dist/cjs/types/components/navigation/index.d.ts +1 -0
  26. package/dist/cjs/types/components/navigation/link/link.d.ts +7 -0
  27. package/dist/cjs/types/components/navigation/tab/tab-card/tab-card.d.ts +5 -0
  28. package/dist/cjs/types/components/navigation/tab/tab-card/tab-card.dummy.d.ts +6 -0
  29. package/dist/cjs/types/components/placeholders/content-placeholder/content-placeholder.d.ts +6 -0
  30. package/dist/cjs/types/components/placeholders/content-placeholder/index.d.ts +1 -0
  31. package/dist/cjs/types/components/placeholders/index.d.ts +5 -0
  32. package/dist/cjs/types/components/placeholders/lorem-ipsum-placeholder/index.d.ts +1 -0
  33. package/dist/cjs/types/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.d.ts +8 -0
  34. package/dist/{esm/types/components → cjs/types/components/placeholders}/placeholder/placeholder.d.ts +1 -1
  35. package/dist/cjs/types/components/placeholders/skeleton-card/index.d.ts +1 -0
  36. package/dist/cjs/types/components/placeholders/skeleton-card/skeleton-card.d.ts +5 -0
  37. package/dist/cjs/types/components/placeholders/skeleton-grid/index.d.ts +1 -0
  38. package/dist/cjs/types/components/placeholders/skeleton-grid/skeleton-grid.d.ts +4 -0
  39. package/dist/cjs/types/components/tables/enhanced-remote-table/enhanced-remote-table.d.ts +12 -0
  40. package/dist/cjs/types/components/tables/enhanced-remote-table/enhanced-remote-table.mock.d.ts +11 -0
  41. package/dist/cjs/types/components/tables/enhanced-table/enhanced-table-head.d.ts +16 -0
  42. package/dist/{esm/types/components/table → cjs/types/components/tables}/enhanced-table/enhanced-table.d.ts +2 -2
  43. package/dist/cjs/types/components/{table → tables}/enhanced-table/enhanced-table.mock.d.ts +6 -7
  44. package/dist/cjs/types/components/value-displays/group-value-card/group-value-card.d.ts +7 -4
  45. package/dist/cjs/types/components/value-displays/group-value-card/group-value-card.mock.d.ts +2 -1
  46. package/dist/cjs/types/components/value-displays/index.d.ts +1 -0
  47. package/dist/cjs/types/components/value-displays/value-boolean/value-boolean.d.ts +3 -11
  48. package/dist/cjs/types/components/value-displays/value-card/value-card.d.ts +1 -1
  49. package/dist/cjs/types/components/value-displays/value-content/index.d.ts +1 -0
  50. package/dist/cjs/types/components/value-displays/value-content/value-content.d.ts +24 -0
  51. package/dist/cjs/types/components/value-displays/value-datetime/value-datetime.d.ts +3 -10
  52. package/dist/cjs/types/components/value-displays/value-displays.types.d.ts +15 -0
  53. package/dist/cjs/types/components/value-displays/value-image/index.d.ts +1 -0
  54. package/dist/cjs/types/components/value-displays/value-image/value-image.d.ts +11 -0
  55. package/dist/cjs/types/components/value-displays/value-text/value-text.d.ts +3 -11
  56. package/dist/cjs/types/generators/generators.mock.d.ts +2 -1
  57. package/dist/cjs/types/generators/generators.model.d.ts +36 -20
  58. package/dist/cjs/types/generators/generators.model.test.d.ts +1 -0
  59. package/dist/cjs/types/generators/index.d.ts +1 -0
  60. package/dist/cjs/types/generators/model-router/model-router.d.ts +1 -1
  61. package/dist/cjs/types/generators/model-router/screens/add-screen.d.ts +1 -1
  62. package/dist/cjs/types/generators/model-router/screens/details-screen.d.ts +1 -1
  63. package/dist/cjs/types/generators/model-router/screens/list-screen.d.ts +1 -1
  64. package/dist/cjs/types/generators/model-router/screens/update-screen.d.ts +1 -1
  65. package/dist/cjs/types/{components → generators}/table-list/table-list.d.ts +3 -3
  66. package/dist/cjs/types/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.d.ts +2 -2
  67. package/dist/cjs/types/layouts/header-layout/header-layout.d.ts +1 -2
  68. package/dist/cjs/types/providers/notification-center/notification-center.context.d.ts +0 -2
  69. package/dist/cjs/types/providers/notification-center/notification-center.provider.d.ts +1 -1
  70. package/dist/cjs/types/providers/tab-provider/tab-provider.provider.d.ts +1 -1
  71. package/dist/cjs/types/utils/theme.d.ts +1 -1
  72. package/dist/esm/index.js +4 -12
  73. package/dist/esm/index.js.map +1 -1
  74. package/dist/esm/types/components/{app-bar → app-bars/app-bar}/app-bar.types.d.ts +2 -2
  75. package/dist/esm/types/components/app-bars/index.d.ts +1 -0
  76. package/dist/esm/types/components/containers/content/content.types.d.ts +4 -0
  77. package/dist/esm/types/components/containers/index.d.ts +2 -0
  78. package/dist/esm/types/components/{bullet → data-display/bullet}/bullet.d.ts +1 -1
  79. package/dist/esm/types/components/{header → data-display/header}/header.dummy.d.ts +1 -1
  80. package/dist/esm/types/components/{header → data-display/header}/header.types.d.ts +6 -6
  81. package/dist/esm/types/components/data-display/index.d.ts +3 -0
  82. package/dist/{cjs/types/components → esm/types/components/data-display}/label/label.d.ts +1 -1
  83. package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.provider.d.ts +1 -1
  84. package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.types.d.ts +14 -7
  85. package/dist/esm/types/components/drawers/drawer-collapsable-item/drawer-collapsable-item.d.ts +26 -0
  86. package/dist/esm/types/components/drawers/drawer-collapsable-item/index.d.ts +1 -0
  87. package/dist/esm/types/components/{drawer-item → drawers/drawer-item}/drawer-item.d.ts +10 -1
  88. package/dist/{cjs/types/components → esm/types/components/drawers}/drawer-section/drawer-section.d.ts +5 -1
  89. package/dist/esm/types/components/drawers/index.d.ts +4 -0
  90. package/dist/esm/types/components/feedback/index.d.ts +2 -0
  91. package/dist/esm/types/components/{query-container → feedback/query-container}/query-container.d.ts +1 -1
  92. package/dist/esm/types/components/index.d.ts +9 -18
  93. package/dist/esm/types/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.d.ts +1 -2
  94. package/dist/esm/types/components/inputs/index.d.ts +2 -0
  95. package/dist/esm/types/components/{sign-in → inputs/sign-in}/sign-in.d.ts +2 -3
  96. package/dist/esm/types/components/navigation/index.d.ts +1 -0
  97. package/dist/esm/types/components/navigation/link/link.d.ts +7 -0
  98. package/dist/esm/types/components/navigation/tab/tab-card/tab-card.d.ts +5 -0
  99. package/dist/esm/types/components/navigation/tab/tab-card/tab-card.dummy.d.ts +6 -0
  100. package/dist/esm/types/components/placeholders/content-placeholder/content-placeholder.d.ts +6 -0
  101. package/dist/esm/types/components/placeholders/content-placeholder/index.d.ts +1 -0
  102. package/dist/esm/types/components/placeholders/index.d.ts +5 -0
  103. package/dist/esm/types/components/placeholders/lorem-ipsum-placeholder/index.d.ts +1 -0
  104. package/dist/esm/types/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.d.ts +8 -0
  105. package/dist/{cjs/types/components → esm/types/components/placeholders}/placeholder/placeholder.d.ts +1 -1
  106. package/dist/esm/types/components/placeholders/skeleton-card/index.d.ts +1 -0
  107. package/dist/esm/types/components/placeholders/skeleton-card/skeleton-card.d.ts +5 -0
  108. package/dist/esm/types/components/placeholders/skeleton-grid/index.d.ts +1 -0
  109. package/dist/esm/types/components/placeholders/skeleton-grid/skeleton-grid.d.ts +4 -0
  110. package/dist/esm/types/components/tables/enhanced-remote-table/enhanced-remote-table.d.ts +12 -0
  111. package/dist/esm/types/components/tables/enhanced-remote-table/enhanced-remote-table.mock.d.ts +11 -0
  112. package/dist/esm/types/components/tables/enhanced-table/enhanced-table-head.d.ts +16 -0
  113. package/dist/{cjs/types/components/table → esm/types/components/tables}/enhanced-table/enhanced-table.d.ts +2 -2
  114. package/dist/esm/types/components/{table → tables}/enhanced-table/enhanced-table.mock.d.ts +6 -7
  115. package/dist/esm/types/components/value-displays/group-value-card/group-value-card.d.ts +7 -4
  116. package/dist/esm/types/components/value-displays/group-value-card/group-value-card.mock.d.ts +2 -1
  117. package/dist/esm/types/components/value-displays/index.d.ts +1 -0
  118. package/dist/esm/types/components/value-displays/value-boolean/value-boolean.d.ts +3 -11
  119. package/dist/esm/types/components/value-displays/value-card/value-card.d.ts +1 -1
  120. package/dist/esm/types/components/value-displays/value-content/index.d.ts +1 -0
  121. package/dist/esm/types/components/value-displays/value-content/value-content.d.ts +24 -0
  122. package/dist/esm/types/components/value-displays/value-datetime/value-datetime.d.ts +3 -10
  123. package/dist/esm/types/components/value-displays/value-displays.types.d.ts +15 -0
  124. package/dist/esm/types/components/value-displays/value-image/index.d.ts +1 -0
  125. package/dist/esm/types/components/value-displays/value-image/value-image.d.ts +11 -0
  126. package/dist/esm/types/components/value-displays/value-text/value-text.d.ts +3 -11
  127. package/dist/esm/types/generators/generators.mock.d.ts +2 -1
  128. package/dist/esm/types/generators/generators.model.d.ts +36 -20
  129. package/dist/esm/types/generators/generators.model.test.d.ts +1 -0
  130. package/dist/esm/types/generators/index.d.ts +1 -0
  131. package/dist/esm/types/generators/model-router/model-router.d.ts +1 -1
  132. package/dist/esm/types/generators/model-router/screens/add-screen.d.ts +1 -1
  133. package/dist/esm/types/generators/model-router/screens/details-screen.d.ts +1 -1
  134. package/dist/esm/types/generators/model-router/screens/list-screen.d.ts +1 -1
  135. package/dist/esm/types/generators/model-router/screens/update-screen.d.ts +1 -1
  136. package/dist/esm/types/{components → generators}/table-list/table-list.d.ts +3 -3
  137. package/dist/esm/types/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.d.ts +2 -2
  138. package/dist/esm/types/layouts/header-layout/header-layout.d.ts +1 -2
  139. package/dist/esm/types/providers/notification-center/notification-center.context.d.ts +0 -2
  140. package/dist/esm/types/providers/notification-center/notification-center.provider.d.ts +1 -1
  141. package/dist/esm/types/providers/tab-provider/tab-provider.provider.d.ts +1 -1
  142. package/dist/esm/types/utils/theme.d.ts +1 -1
  143. package/dist/index.d.ts +338 -288
  144. package/package.json +50 -44
  145. package/src/components/{app-bar → app-bars/app-bar}/app-bar.stories.tsx +5 -4
  146. package/src/components/{app-bar → app-bars/app-bar}/app-bar.test.tsx +2 -2
  147. package/src/components/{app-bar → app-bars/app-bar}/app-bar.tsx +1 -1
  148. package/src/components/{app-bar → app-bars/app-bar}/mini-app-bar/mini-app-bar.tsx +2 -2
  149. package/src/components/app-bars/app-bars.stories.mdx +10 -0
  150. package/src/components/app-bars/index.ts +1 -0
  151. package/src/components/components.stories.mdx +19 -0
  152. package/src/components/{center-container → containers/center-container}/center-container.stories.tsx +3 -3
  153. package/src/components/{center-container → containers/center-container}/center-container.test.tsx +1 -1
  154. package/src/components/containers/containers.stories.mdx +11 -0
  155. package/src/components/{content → containers/content}/content.stories.tsx +3 -3
  156. package/src/components/{content → containers/content}/content.test.tsx +1 -1
  157. package/src/components/containers/index.ts +2 -0
  158. package/src/components/{bullet → data-display/bullet}/bullet.stories.tsx +2 -2
  159. package/src/components/{bullet → data-display/bullet}/bullet.test.tsx +1 -1
  160. package/src/components/data-display/data-display.stories.mdx +12 -0
  161. package/src/components/{header → data-display/header}/header.dummy.ts +1 -1
  162. package/src/components/{header → data-display/header}/header.stories.tsx +2 -8
  163. package/src/components/{header → data-display/header}/header.test.tsx +2 -2
  164. package/src/components/{header → data-display/header}/header.tsx +2 -2
  165. package/src/components/data-display/index.ts +3 -0
  166. package/src/components/{label → data-display/label}/label.stories.tsx +2 -2
  167. package/src/components/{label → data-display/label}/label.test.tsx +1 -1
  168. package/src/components/{drawer → drawers/drawer}/__snapshots__/drawer.test.tsx.snap +3 -3
  169. package/src/components/{drawer → drawers/drawer}/drawer.mock.tsx +27 -0
  170. package/src/components/{drawer → drawers/drawer}/drawer.test.tsx +8 -8
  171. package/src/components/{drawer → drawers/drawer}/drawer.types.ts +12 -3
  172. package/src/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.stories.tsx +3 -3
  173. package/src/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.tsx +1 -2
  174. package/src/components/drawers/drawer-collapsable-item/drawer-collapsable-item.test.tsx +62 -0
  175. package/src/components/drawers/drawer-collapsable-item/drawer-collapsable-item.tsx +78 -0
  176. package/src/components/drawers/drawer-collapsable-item/index.ts +1 -0
  177. package/src/components/{drawer-content → drawers/drawer-content}/drawer-content.stories.tsx +3 -3
  178. package/src/components/drawers/drawer-content/drawer-content.test.tsx +59 -0
  179. package/src/components/{drawer-content → drawers/drawer-content}/drawer-content.tsx +5 -4
  180. package/src/components/{drawer-item → drawers/drawer-item}/drawer-item.stories.tsx +2 -3
  181. package/src/components/{drawer-item → drawers/drawer-item}/drawer-item.test.tsx +3 -3
  182. package/src/components/{drawer-item → drawers/drawer-item}/drawer-item.tsx +23 -5
  183. package/src/components/{drawer-section → drawers/drawer-section}/drawer-section.stories.tsx +3 -3
  184. package/src/components/{drawer-section → drawers/drawer-section}/drawer-section.test.tsx +1 -1
  185. package/src/components/drawers/drawer-section/drawer-section.tsx +65 -0
  186. package/src/components/drawers/drawers.stories.mdx +13 -0
  187. package/src/components/drawers/index.ts +4 -0
  188. package/src/components/feedback/feedback.stories.mdx +12 -0
  189. package/src/components/feedback/index.ts +2 -0
  190. package/src/components/{loading-area → feedback/loading-area}/loading-area.stories.tsx +2 -2
  191. package/src/components/{loading-area → feedback/loading-area}/loading-area.test.tsx +2 -1
  192. package/src/components/{query-container → feedback/query-container}/query-container.stories.tsx +2 -2
  193. package/src/components/{query-container → feedback/query-container}/query-container.test.tsx +2 -1
  194. package/src/components/index.ts +9 -18
  195. package/src/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.stories.tsx +12 -12
  196. package/src/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.test.tsx +9 -4
  197. package/src/components/{enhanced-select → inputs/enhanced-select}/enhanced-select.tsx +2 -4
  198. package/src/components/inputs/index.ts +2 -0
  199. package/src/components/inputs/inputs.stories.mdx +11 -0
  200. package/src/components/{sign-in → inputs/sign-in}/sign-in.stories.tsx +2 -2
  201. package/src/components/{sign-in → inputs/sign-in}/sign-in.test.tsx +2 -1
  202. package/src/components/{sign-in → inputs/sign-in}/sign-in.tsx +3 -3
  203. package/src/components/navigation/index.ts +1 -0
  204. package/src/components/{link → navigation/link}/link.tsx +2 -2
  205. package/src/components/navigation/navigation.stories.mdx +10 -0
  206. package/src/components/{tab → navigation/tab}/tab-card/tab-card.dummy.tsx +3 -3
  207. package/src/components/{tab → navigation/tab}/tab-card/tab-card.stories.tsx +4 -4
  208. package/src/components/{tab → navigation/tab}/tab-card/tab-card.test.tsx +1 -1
  209. package/src/components/{tab → navigation/tab}/tab-card/tab-card.tsx +3 -3
  210. package/src/components/{tab → navigation/tab}/tab-panel/tab-panel.test.tsx +1 -1
  211. package/src/{tests → components/placeholders/content-placeholder}/content-placeholder.stories.tsx +3 -4
  212. package/src/components/placeholders/content-placeholder/content-placeholder.tsx +17 -0
  213. package/src/components/placeholders/content-placeholder/index.ts +1 -0
  214. package/src/components/placeholders/index.ts +5 -0
  215. package/src/components/placeholders/lorem-ipsum-placeholder/index.ts +1 -0
  216. package/src/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.stories.tsx +15 -0
  217. package/src/components/placeholders/lorem-ipsum-placeholder/lorem-ipsum-placeholder.tsx +26 -0
  218. package/src/components/{placeholder → placeholders/placeholder}/placeholder.stories.tsx +2 -2
  219. package/src/components/{placeholder → placeholders/placeholder}/placeholder.test.tsx +3 -2
  220. package/src/components/placeholders/placeholders.stories.mdx +14 -0
  221. package/src/components/placeholders/skeleton-card/index.ts +1 -0
  222. package/src/{tests → components/placeholders/skeleton-card}/skeleton-card.stories.tsx +3 -3
  223. package/src/components/placeholders/skeleton-card/skeleton-card.tsx +17 -0
  224. package/src/components/placeholders/skeleton-grid/index.ts +1 -0
  225. package/src/components/placeholders/skeleton-grid/skeleton-grid.stories.tsx +15 -0
  226. package/src/components/placeholders/skeleton-grid/skeleton-grid.tsx +20 -0
  227. package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.mock.tsx +7 -6
  228. package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.stories.tsx +1 -1
  229. package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.test.tsx +3 -3
  230. package/src/components/{table → tables}/enhanced-remote-table/enhanced-remote-table.tsx +8 -8
  231. package/src/components/{table → tables}/enhanced-table/enhanced-table-head.tsx +14 -9
  232. package/src/components/{table → tables}/enhanced-table/enhanced-table.mock.tsx +12 -6
  233. package/src/components/{table → tables}/enhanced-table/enhanced-table.stories.tsx +1 -1
  234. package/src/components/{table → tables}/enhanced-table/enhanced-table.test.tsx +6 -5
  235. package/src/components/{table → tables}/enhanced-table/enhanced-table.tsx +8 -8
  236. package/src/components/tables/table.stories.mdx +11 -0
  237. package/src/components/value-displays/group-value-card/group-value-card.mock.tsx +2 -2
  238. package/src/components/value-displays/group-value-card/group-value-card.stories.tsx +25 -2
  239. package/src/components/value-displays/group-value-card/group-value-card.test.tsx +7 -2
  240. package/src/components/value-displays/group-value-card/group-value-card.tsx +13 -4
  241. package/src/components/value-displays/index.ts +1 -0
  242. package/src/components/value-displays/value-boolean/value-boolean.stories.tsx +1 -1
  243. package/src/components/value-displays/value-boolean/value-boolean.test.tsx +15 -3
  244. package/src/components/value-displays/value-boolean/value-boolean.tsx +18 -18
  245. package/src/components/value-displays/value-card/value-card.stories.tsx +1 -1
  246. package/src/components/value-displays/value-card/value-card.test.tsx +1 -1
  247. package/src/components/value-displays/value-content/index.ts +1 -0
  248. package/src/components/value-displays/value-content/value-content.stories.tsx +20 -0
  249. package/src/components/value-displays/value-content/value-content.test.tsx +50 -0
  250. package/src/components/value-displays/value-content/value-content.tsx +54 -0
  251. package/src/components/value-displays/value-datetime/value-datetime.stories.tsx +14 -1
  252. package/src/components/value-displays/value-datetime/value-datetime.test.tsx +24 -5
  253. package/src/components/value-displays/value-datetime/value-datetime.tsx +16 -23
  254. package/src/components/value-displays/value-displays.stories.mdx +16 -0
  255. package/src/components/value-displays/value-displays.types.ts +18 -0
  256. package/src/components/value-displays/value-image/index.ts +1 -0
  257. package/src/components/value-displays/value-image/value-image.stories.tsx +28 -0
  258. package/src/components/value-displays/value-image/value-image.test.tsx +22 -0
  259. package/src/components/value-displays/value-image/value-image.tsx +24 -0
  260. package/src/components/value-displays/value-text/value-text.stories.tsx +12 -1
  261. package/src/components/value-displays/value-text/value-text.test.tsx +19 -5
  262. package/src/components/value-displays/value-text/value-text.tsx +16 -22
  263. package/src/generators/generators.mock.ts +25 -22
  264. package/src/generators/generators.model.test.ts +77 -0
  265. package/src/generators/generators.model.ts +78 -6
  266. package/src/generators/generators.stories.mdx +13 -0
  267. package/src/generators/index.ts +1 -0
  268. package/src/generators/model-form/model-form.test.tsx +11 -14
  269. package/src/generators/model-form/model-form.tsx +33 -65
  270. package/src/generators/model-router/model-router.test.tsx +45 -32
  271. package/src/generators/model-router/screens/add-screen.tsx +2 -1
  272. package/src/generators/model-router/screens/details-screen.tsx +2 -1
  273. package/src/generators/model-router/screens/list-screen.tsx +3 -2
  274. package/src/generators/model-router/screens/update-screen.tsx +4 -5
  275. package/src/generators/model-router/stories/model-router.stories.tsx +2 -2
  276. package/src/generators/object-details/object-details.test.tsx +2 -1
  277. package/src/generators/object-details/object-details.tsx +18 -9
  278. package/src/{components → generators}/table-list/table-list.stories.tsx +28 -18
  279. package/src/{components → generators}/table-list/table-list.test.tsx +13 -8
  280. package/src/{components → generators}/table-list/table-list.tsx +24 -13
  281. package/src/hooks/routing/routing.test.tsx +1 -1
  282. package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.stories.tsx +3 -4
  283. package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.test.tsx +2 -1
  284. package/src/layouts/app-bar-with-drawer-layout/app-bar-with-drawer-layout.tsx +3 -3
  285. package/src/layouts/header-layout/header-layout.stories.tsx +16 -8
  286. package/src/layouts/header-layout/header-layout.test.tsx +1 -1
  287. package/src/layouts/header-layout/header-layout.tsx +2 -2
  288. package/src/layouts/layouts.stories.mdx +11 -0
  289. package/src/providers/notification-center/notification-center.context.ts +0 -6
  290. package/src/providers/notification-center/notification-center.stories.tsx +2 -2
  291. package/src/providers/notification-center/notification-center.test.tsx +6 -7
  292. package/src/stories/Introduction.stories.mdx +10 -185
  293. package/src/stories/getting-started.stories.mdx +23 -0
  294. package/src/storybook.tsx +1 -1
  295. package/src/tests/actions.ts +4 -0
  296. package/src/tests/assertions.ts +18 -10
  297. package/src/tests/datatable-placeholder/datatable-placeholder.stories.tsx +15 -0
  298. package/src/tests/datatable-placeholder/datatable-placeholder.tsx +40 -0
  299. package/src/tests/datatable-placeholder/index.ts +1 -0
  300. package/src/tests/file-mock.ts +1 -0
  301. package/src/tests/mocks.ts +21 -0
  302. package/src/tests/testing-library.tsx +11 -8
  303. package/src/types/index.d.ts +4 -0
  304. package/src/types.d.ts +4 -0
  305. package/dist/cjs/types/components/content/content.types.d.ts +0 -4
  306. package/dist/cjs/types/components/link/link.d.ts +0 -7
  307. package/dist/cjs/types/components/tab/tab-card/tab-card.d.ts +0 -6
  308. package/dist/cjs/types/components/tab/tab-card/tab-card.dummy.d.ts +0 -7
  309. package/dist/cjs/types/components/table/enhanced-remote-table/enhanced-remote-table.d.ts +0 -13
  310. package/dist/cjs/types/components/table/enhanced-remote-table/enhanced-remote-table.mock.d.ts +0 -11
  311. package/dist/cjs/types/components/table/enhanced-table/enhanced-table-head.d.ts +0 -16
  312. package/dist/esm/types/components/content/content.types.d.ts +0 -4
  313. package/dist/esm/types/components/link/link.d.ts +0 -7
  314. package/dist/esm/types/components/tab/tab-card/tab-card.d.ts +0 -6
  315. package/dist/esm/types/components/tab/tab-card/tab-card.dummy.d.ts +0 -7
  316. package/dist/esm/types/components/table/enhanced-remote-table/enhanced-remote-table.d.ts +0 -13
  317. package/dist/esm/types/components/table/enhanced-remote-table/enhanced-remote-table.mock.d.ts +0 -11
  318. package/dist/esm/types/components/table/enhanced-table/enhanced-table-head.d.ts +0 -16
  319. package/src/components/drawer-content/drawer-content.test.tsx +0 -34
  320. package/src/components/drawer-section/drawer-section.tsx +0 -40
  321. package/src/tests/components.tsx +0 -60
  322. package/src/tests/index.ts +0 -4
  323. /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/app-bar.d.ts +0 -0
  324. /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/index.d.ts +0 -0
  325. /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/index.d.ts +0 -0
  326. /package/dist/cjs/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/mini-app-bar.d.ts +0 -0
  327. /package/dist/cjs/types/components/{center-container → containers/center-container}/center-container.d.ts +0 -0
  328. /package/dist/cjs/types/components/{center-container → containers/center-container}/index.d.ts +0 -0
  329. /package/dist/cjs/types/components/{content → containers/content}/content.d.ts +0 -0
  330. /package/dist/cjs/types/components/{content → containers/content}/index.d.ts +0 -0
  331. /package/dist/cjs/types/components/{bullet → data-display/bullet}/index.d.ts +0 -0
  332. /package/dist/cjs/types/components/{header → data-display/header}/header.d.ts +0 -0
  333. /package/dist/cjs/types/components/{header → data-display/header}/index.d.ts +0 -0
  334. /package/dist/cjs/types/components/{label → data-display/label}/index.d.ts +0 -0
  335. /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.context.d.ts +0 -0
  336. /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.d.ts +0 -0
  337. /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.mixins.d.ts +0 -0
  338. /package/dist/cjs/types/components/{drawer → drawers/drawer}/drawer.mock.d.ts +0 -0
  339. /package/dist/cjs/types/components/{drawer → drawers/drawer}/index.d.ts +0 -0
  340. /package/dist/cjs/types/components/{drawer → drawers/drawer}/mini-drawer/index.d.ts +0 -0
  341. /package/dist/cjs/types/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.d.ts +0 -0
  342. /package/dist/cjs/types/components/{drawer-content → drawers/drawer-content}/drawer-content.d.ts +0 -0
  343. /package/dist/cjs/types/components/{drawer-content → drawers/drawer-content}/index.d.ts +0 -0
  344. /package/dist/cjs/types/components/{drawer-item → drawers/drawer-item}/index.d.ts +0 -0
  345. /package/dist/cjs/types/components/{drawer-section → drawers/drawer-section}/drawer-section.mock.d.ts +0 -0
  346. /package/dist/cjs/types/components/{drawer-section → drawers/drawer-section}/index.d.ts +0 -0
  347. /package/dist/cjs/types/components/{loading-area → feedback/loading-area}/index.d.ts +0 -0
  348. /package/dist/cjs/types/components/{loading-area → feedback/loading-area}/loading-area.d.ts +0 -0
  349. /package/dist/cjs/types/components/{query-container → feedback/query-container}/index.d.ts +0 -0
  350. /package/dist/cjs/types/components/{enhanced-select → inputs/enhanced-select}/index.d.ts +0 -0
  351. /package/dist/cjs/types/components/{sign-in → inputs/sign-in}/index.d.ts +0 -0
  352. /package/dist/cjs/types/components/{link → navigation/link}/index.d.ts +0 -0
  353. /package/dist/cjs/types/components/{tab → navigation/tab}/index.d.ts +0 -0
  354. /package/dist/cjs/types/components/{tab → navigation/tab}/tab-card/index.d.ts +0 -0
  355. /package/dist/cjs/types/components/{tab → navigation/tab}/tab-panel/index.d.ts +0 -0
  356. /package/dist/cjs/types/components/{tab → navigation/tab}/tab-panel/tab-panel.d.ts +0 -0
  357. /package/dist/cjs/types/components/{placeholder → placeholders/placeholder}/index.d.ts +0 -0
  358. /package/dist/cjs/types/components/{placeholder → placeholders/placeholder}/placeholder.mock.d.ts +0 -0
  359. /package/dist/cjs/types/components/{table → tables}/enhanced-remote-table/index.d.ts +0 -0
  360. /package/dist/cjs/types/components/{table → tables}/enhanced-table/index.d.ts +0 -0
  361. /package/dist/cjs/types/components/{table → tables}/index.d.ts +0 -0
  362. /package/dist/cjs/types/{components → generators}/table-list/index.d.ts +0 -0
  363. /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/app-bar.d.ts +0 -0
  364. /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/index.d.ts +0 -0
  365. /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/index.d.ts +0 -0
  366. /package/dist/esm/types/components/{app-bar → app-bars/app-bar}/mini-app-bar/mini-app-bar.d.ts +0 -0
  367. /package/dist/esm/types/components/{center-container → containers/center-container}/center-container.d.ts +0 -0
  368. /package/dist/esm/types/components/{center-container → containers/center-container}/index.d.ts +0 -0
  369. /package/dist/esm/types/components/{content → containers/content}/content.d.ts +0 -0
  370. /package/dist/esm/types/components/{content → containers/content}/index.d.ts +0 -0
  371. /package/dist/esm/types/components/{bullet → data-display/bullet}/index.d.ts +0 -0
  372. /package/dist/esm/types/components/{header → data-display/header}/header.d.ts +0 -0
  373. /package/dist/esm/types/components/{header → data-display/header}/index.d.ts +0 -0
  374. /package/dist/esm/types/components/{label → data-display/label}/index.d.ts +0 -0
  375. /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.context.d.ts +0 -0
  376. /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.d.ts +0 -0
  377. /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.mixins.d.ts +0 -0
  378. /package/dist/esm/types/components/{drawer → drawers/drawer}/drawer.mock.d.ts +0 -0
  379. /package/dist/esm/types/components/{drawer → drawers/drawer}/index.d.ts +0 -0
  380. /package/dist/esm/types/components/{drawer → drawers/drawer}/mini-drawer/index.d.ts +0 -0
  381. /package/dist/esm/types/components/{drawer → drawers/drawer}/mini-drawer/mini-drawer.d.ts +0 -0
  382. /package/dist/esm/types/components/{drawer-content → drawers/drawer-content}/drawer-content.d.ts +0 -0
  383. /package/dist/esm/types/components/{drawer-content → drawers/drawer-content}/index.d.ts +0 -0
  384. /package/dist/esm/types/components/{drawer-item → drawers/drawer-item}/index.d.ts +0 -0
  385. /package/dist/esm/types/components/{drawer-section → drawers/drawer-section}/drawer-section.mock.d.ts +0 -0
  386. /package/dist/esm/types/components/{drawer-section → drawers/drawer-section}/index.d.ts +0 -0
  387. /package/dist/esm/types/components/{loading-area → feedback/loading-area}/index.d.ts +0 -0
  388. /package/dist/esm/types/components/{loading-area → feedback/loading-area}/loading-area.d.ts +0 -0
  389. /package/dist/esm/types/components/{query-container → feedback/query-container}/index.d.ts +0 -0
  390. /package/dist/esm/types/components/{enhanced-select → inputs/enhanced-select}/index.d.ts +0 -0
  391. /package/dist/esm/types/components/{sign-in → inputs/sign-in}/index.d.ts +0 -0
  392. /package/dist/esm/types/components/{link → navigation/link}/index.d.ts +0 -0
  393. /package/dist/esm/types/components/{tab → navigation/tab}/index.d.ts +0 -0
  394. /package/dist/esm/types/components/{tab → navigation/tab}/tab-card/index.d.ts +0 -0
  395. /package/dist/esm/types/components/{tab → navigation/tab}/tab-panel/index.d.ts +0 -0
  396. /package/dist/esm/types/components/{tab → navigation/tab}/tab-panel/tab-panel.d.ts +0 -0
  397. /package/dist/esm/types/components/{placeholder → placeholders/placeholder}/index.d.ts +0 -0
  398. /package/dist/esm/types/components/{placeholder → placeholders/placeholder}/placeholder.mock.d.ts +0 -0
  399. /package/dist/esm/types/components/{table → tables}/enhanced-remote-table/index.d.ts +0 -0
  400. /package/dist/esm/types/components/{table → tables}/enhanced-table/index.d.ts +0 -0
  401. /package/dist/esm/types/components/{table → tables}/index.d.ts +0 -0
  402. /package/dist/esm/types/{components → generators}/table-list/index.d.ts +0 -0
  403. /package/src/components/{app-bar → app-bars/app-bar}/app-bar.types.ts +0 -0
  404. /package/src/components/{app-bar → app-bars/app-bar}/index.ts +0 -0
  405. /package/src/components/{app-bar → app-bars/app-bar}/mini-app-bar/index.ts +0 -0
  406. /package/src/components/{center-container → containers/center-container}/center-container.tsx +0 -0
  407. /package/src/components/{center-container → containers/center-container}/index.ts +0 -0
  408. /package/src/components/{content → containers/content}/content.tsx +0 -0
  409. /package/src/components/{content → containers/content}/content.types.ts +0 -0
  410. /package/src/components/{content → containers/content}/index.ts +0 -0
  411. /package/src/components/{bullet → data-display/bullet}/bullet.tsx +0 -0
  412. /package/src/components/{bullet → data-display/bullet}/index.ts +0 -0
  413. /package/src/components/{header → data-display/header}/header.types.ts +0 -0
  414. /package/src/components/{header → data-display/header}/index.ts +0 -0
  415. /package/src/components/{label → data-display/label}/index.ts +0 -0
  416. /package/src/components/{label → data-display/label}/label.tsx +0 -0
  417. /package/src/components/{drawer → drawers/drawer}/drawer.context.ts +0 -0
  418. /package/src/components/{drawer → drawers/drawer}/drawer.mixins.ts +0 -0
  419. /package/src/components/{drawer → drawers/drawer}/drawer.provider.tsx +0 -0
  420. /package/src/components/{drawer → drawers/drawer}/drawer.tsx +0 -0
  421. /package/src/components/{drawer → drawers/drawer}/index.ts +0 -0
  422. /package/src/components/{drawer → drawers/drawer}/mini-drawer/index.ts +0 -0
  423. /package/src/components/{drawer-content → drawers/drawer-content}/index.ts +0 -0
  424. /package/src/components/{drawer-item → drawers/drawer-item}/index.ts +0 -0
  425. /package/src/components/{drawer-section → drawers/drawer-section}/drawer-section.mock.tsx +0 -0
  426. /package/src/components/{drawer-section → drawers/drawer-section}/index.ts +0 -0
  427. /package/src/components/{loading-area → feedback/loading-area}/index.ts +0 -0
  428. /package/src/components/{loading-area → feedback/loading-area}/loading-area.tsx +0 -0
  429. /package/src/components/{query-container → feedback/query-container}/index.ts +0 -0
  430. /package/src/components/{query-container → feedback/query-container}/query-container.tsx +0 -0
  431. /package/src/components/{enhanced-select → inputs/enhanced-select}/index.ts +0 -0
  432. /package/src/components/{sign-in → inputs/sign-in}/index.ts +0 -0
  433. /package/src/components/{link → navigation/link}/index.ts +0 -0
  434. /package/src/components/{tab → navigation/tab}/index.ts +0 -0
  435. /package/src/components/{tab → navigation/tab}/tab-card/index.ts +0 -0
  436. /package/src/components/{tab → navigation/tab}/tab-panel/index.ts +0 -0
  437. /package/src/components/{tab → navigation/tab}/tab-panel/tab-panel.tsx +0 -0
  438. /package/src/components/{placeholder → placeholders/placeholder}/index.ts +0 -0
  439. /package/src/components/{placeholder → placeholders/placeholder}/placeholder.mock.ts +0 -0
  440. /package/src/components/{placeholder → placeholders/placeholder}/placeholder.tsx +0 -0
  441. /package/src/components/{table → tables}/enhanced-remote-table/index.ts +0 -0
  442. /package/src/components/{table → tables}/enhanced-table/index.ts +0 -0
  443. /package/src/components/{table → tables}/index.ts +0 -0
  444. /package/src/{components → generators}/table-list/index.ts +0 -0
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import React, { ChangeEvent } from "react";
3
2
  import { ReactNode, useState } from "react";
4
3
  import {
@@ -15,11 +14,12 @@ import {
15
14
  import Search from "@mui/icons-material/Search";
16
15
  import { EnhancedTableHead, HeadCell, Order } from "./enhanced-table-head";
17
16
 
18
- function getFilter<T>(columns: HeadCell[], search: string) {
17
+ function getFilter<T>(columns: HeadCell<T>[], search: string) {
19
18
  return (d: T) => {
20
19
  return (
21
20
  !search ||
22
21
  columns.some((col) => {
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
23
  let value = (d as any)[col.id];
24
24
  if (value?.toLowerCase) {
25
25
  value = value.toLowerCase();
@@ -30,7 +30,7 @@ function getFilter<T>(columns: HeadCell[], search: string) {
30
30
  };
31
31
  }
32
32
 
33
- function getComparator(order: Order, orderBy: any): (a: any, b: any) => number {
33
+ function getComparator<T>(order: Order, orderBy: keyof T): (a: T, b: T) => number {
34
34
  return order === "desc"
35
35
  ? (a, b) => descendingComparator(a, b, orderBy)
36
36
  : (a, b) => -descendingComparator(a, b, orderBy);
@@ -48,10 +48,10 @@ function descendingComparator<T>(a: T, b: T, orderBy: keyof T) {
48
48
  interface Props<T> {
49
49
  readonly data: T[];
50
50
  search?: boolean;
51
- defaultSort: string;
51
+ defaultSort: keyof T;
52
52
  defaultOrder?: Order;
53
53
  loading?: boolean;
54
- columns: HeadCell[];
54
+ columns: HeadCell<T>[];
55
55
  children: (data: T[]) => ReactNode;
56
56
  }
57
57
 
@@ -66,9 +66,9 @@ export const EnhancedTable = <T,>({
66
66
  }: Props<T>) => {
67
67
  const [searchFilter, setSearchFilter] = useState<string>("");
68
68
  const [order, setOrder] = useState<Order>(defaultOrder);
69
- const [orderBy, setOrderBy] = useState(defaultSort);
69
+ const [orderBy, setOrderBy] = useState<keyof T>(defaultSort);
70
70
 
71
- const handleRequestSort = (property: string) => {
71
+ const handleRequestSort = (property: keyof T) => {
72
72
  const isAsc = orderBy === property && order === "asc";
73
73
  setOrder(isAsc ? "desc" : "asc");
74
74
  setOrderBy(property);
@@ -95,7 +95,7 @@ export const EnhancedTable = <T,>({
95
95
  </InputAdornment>
96
96
  ),
97
97
  }}
98
- onChange={(e: ChangeEvent<any>) => setSearchFilter(e.target.value)}
98
+ onChange={(e: ChangeEvent<HTMLInputElement>) => setSearchFilter(e.target.value)}
99
99
  />
100
100
  </Box>
101
101
  )}
@@ -0,0 +1,11 @@
1
+ import { Meta } from '@storybook/addon-docs';
2
+ import LinkTo from '@storybook/addon-links/react';
3
+
4
+ <Meta title="Components/Tables/Introduction" />
5
+
6
+ # Tables
7
+
8
+ <ul>
9
+ <li><LinkTo kind="Components/Tables/EnhancedRemoteTable">EnhancedRemoteTable</LinkTo></li>
10
+ <li><LinkTo kind="Components/Tables/EnhancedTable">EnhancedTable</LinkTo></li>
11
+ </ul>
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
2
  import { ValueBoolean } from "../value-boolean/value-boolean";
3
3
  import { ValueText } from "../value-text";
4
- import { GroupValueCard, GroupValueItem } from "./group-value-card";
4
+ import { GroupValueCard, GroupValueCardProps, GroupValueItem } from "./group-value-card";
5
5
 
6
- export const GroupValueCardDummy = (props) => {
6
+ export const GroupValueCardDummy = (props: GroupValueCardProps) => {
7
7
  return (
8
8
  <GroupValueCard {...props}>
9
9
  <GroupValueItem xs={12} sm={6} md={4}>
@@ -1,10 +1,15 @@
1
1
  import { ComponentMeta } from "@storybook/react";
2
- import { GroupValueCard } from "./group-value-card";
2
+ import { GroupValueCard, GroupValueItem } from "./group-value-card";
3
3
  import { createTemplate, withPadding } from "../../../storybook";
4
4
  import { GroupValueCardDummy } from "./group-value-card.mock";
5
+ import { ValueImage } from "../value-image";
6
+ import workInProgressImg from "../../../stories/assets/work-in-progress.jpg";
7
+ import React from "react";
8
+ import { ValueContent } from "../value-content";
9
+ import { DatatablePlaceholder } from "~/tests/datatable-placeholder";
5
10
 
6
11
  export default {
7
- title: "Value displays/GroupValueCard",
12
+ title: "Components/Value displays/GroupValueCard",
8
13
  component: GroupValueCard,
9
14
  decorators: [withPadding(2)],
10
15
  parameters: {
@@ -24,3 +29,21 @@ export const WihtoutSubtitle = Template.bind({});
24
29
  WihtoutSubtitle.args = {
25
30
  title: "Hello world",
26
31
  };
32
+
33
+ export const WithImage = () => (
34
+ <GroupValueCard centered title="Hello world" subtitle="Lorem ipsum sit amet">
35
+ <GroupValueItem xs={12} bordered={false}>
36
+ <ValueImage label="Lorem ipsum" value={workInProgressImg} />
37
+ </GroupValueItem>
38
+ </GroupValueCard>
39
+ );
40
+
41
+ export const WithDataTable = () => (
42
+ <GroupValueCard title="Hello world" subtitle="Lorem ipsum sit amet">
43
+ <GroupValueItem xs={12} bordered={false}>
44
+ <ValueContent label="lorem ipsum">
45
+ <DatatablePlaceholder />
46
+ </ValueContent>
47
+ </GroupValueItem>
48
+ </GroupValueCard>
49
+ );
@@ -1,13 +1,18 @@
1
- import { render, screen } from "../../../tests";
1
+ import { render, screen } from "~/tests/testing-library";
2
2
  import React from "react";
3
3
  import { GroupValueCardDummy } from "./group-value-card.mock";
4
+ import { LoremIpsumPlaceholder } from "~/components/placeholders";
4
5
 
5
6
  describe("GroupValueCard", () => {
6
7
  const renderComponent = ({
7
8
  title = "Hello world",
8
9
  subtitle = undefined,
9
10
  }: { title?: string; subtitle?: string } = {}) => {
10
- return render(<GroupValueCardDummy title={title} subtitle={subtitle} />);
11
+ return render(
12
+ <GroupValueCardDummy title={title} subtitle={subtitle}>
13
+ <LoremIpsumPlaceholder />
14
+ </GroupValueCardDummy>,
15
+ );
11
16
  };
12
17
  it("would render a title", () => {
13
18
  renderComponent({ title: "Hello world" });
@@ -2,7 +2,9 @@ import { Grid, Paper, GridProps, Box, Typography } from "@mui/material";
2
2
  import React, { FunctionComponent, PropsWithChildren, ReactElement } from "react";
3
3
  import { useGetDefaultThemeColor } from "../../../utils/theme";
4
4
 
5
- export type GroupValueItemProps = PropsWithChildren<Omit<GridProps, "item" | "container">>;
5
+ export type GroupValueItemProps = PropsWithChildren<
6
+ Omit<GridProps, "item" | "container"> & { bordered?: boolean }
7
+ >;
6
8
  export type GroupValueItemComponent = FunctionComponent<GroupValueItemProps>;
7
9
  export type GroupValueItemElement = ReactElement<GroupValueItemProps, GroupValueItemComponent>;
8
10
 
@@ -12,6 +14,7 @@ export const groupValueItemClasses = {
12
14
 
13
15
  export const GroupValueItem: GroupValueItemComponent = ({
14
16
  children,
17
+ bordered = true,
15
18
  ...rest
16
19
  }: GroupValueItemProps) => {
17
20
  const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });
@@ -21,7 +24,7 @@ export const GroupValueItem: GroupValueItemComponent = ({
21
24
  <Box
22
25
  px={1}
23
26
  sx={{
24
- borderLeft: `solid ${defaultColor} 1px`,
27
+ borderLeft: bordered ? `solid ${defaultColor} 1px` : "none",
25
28
  }}
26
29
  >
27
30
  {children}
@@ -33,10 +36,11 @@ export const GroupValueItem: GroupValueItemComponent = ({
33
36
  export interface GroupValueCardProps {
34
37
  title: string;
35
38
  subtitle?: string;
39
+ centered?: boolean;
36
40
  children: GroupValueItemElement | GroupValueItemElement[];
37
41
  }
38
42
 
39
- export const GroupValueCard = ({ title, subtitle, children }: GroupValueCardProps) => {
43
+ export const GroupValueCard = ({ title, subtitle, centered, children }: GroupValueCardProps) => {
40
44
  const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });
41
45
 
42
46
  return (
@@ -55,7 +59,12 @@ export const GroupValueCard = ({ title, subtitle, children }: GroupValueCardProp
55
59
  </Typography>
56
60
  )}
57
61
  </Box>
58
- <Grid container margin={2} rowSpacing={2}>
62
+ <Grid
63
+ container
64
+ padding={1}
65
+ rowSpacing={2}
66
+ justifyContent={centered ? "center" : "flex-start"}
67
+ >
59
68
  {children}
60
69
  </Grid>
61
70
  </Paper>
@@ -3,3 +3,4 @@ export * from "./value-card";
3
3
  export * from "./value-boolean";
4
4
  export * from "./value-datetime";
5
5
  export * from "./group-value-card";
6
+ export * from "./value-displays.types";
@@ -3,7 +3,7 @@ import { ValueBoolean } from "./value-boolean";
3
3
  import { createTemplate } from "../../../storybook";
4
4
 
5
5
  export default {
6
- title: "Value displays/ValueBoolean",
6
+ title: "Components/Value displays/ValueBoolean",
7
7
  component: ValueBoolean,
8
8
  parameters: {
9
9
  layout: "centered",
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
2
  import { ValueBoolean } from "./value-boolean";
3
- import { render, screen } from "../../../tests";
3
+ import { render, screen } from "~/tests/testing-library";
4
4
 
5
5
  describe("ValueBoolean", () => {
6
- const renderComponent = ({ value }: { value: boolean }) => {
7
- return render(<ValueBoolean label="Hello world" value={value} />);
6
+ const renderComponent = ({ value, placeholder }: { value?: boolean; placeholder?: string }) => {
7
+ return render(<ValueBoolean label="Hello world" value={value} placeholder={placeholder} />);
8
8
  };
9
9
 
10
10
  it("would render the label", () => {
@@ -24,4 +24,16 @@ describe("ValueBoolean", () => {
24
24
 
25
25
  expect(screen.getByTestId("CloseIcon")).toBeInTheDocument();
26
26
  });
27
+
28
+ it("should render the placeholder if value is undefined", () => {
29
+ renderComponent({ value: undefined });
30
+
31
+ expect(screen.getByText(/-/i)).toBeInTheDocument();
32
+ });
33
+
34
+ it("should render the custom placeholder if value is undefined and placeholder has value", () => {
35
+ renderComponent({ value: undefined, placeholder: "_" });
36
+
37
+ expect(screen.getByText(/_/i)).toBeInTheDocument();
38
+ });
27
39
  });
@@ -1,33 +1,33 @@
1
- import { Box, Typography, useTheme } from "@mui/material";
1
+ import { Typography, useTheme } from "@mui/material";
2
2
  import React from "react";
3
3
  import CheckIcon from "@mui/icons-material/Check";
4
4
  import CloseIcon from "@mui/icons-material/Close";
5
+ import { BaseValueProps, DefaultPlaceholder } from "../value-displays.types";
6
+ import { ValueContent } from "../value-content";
5
7
 
6
- export interface ValueBooleanProps {
7
- /**
8
- * Name of the displayed value
9
- */
10
- label: string;
11
- /**
12
- * Value displayed
13
- */
14
- value: boolean;
15
- }
8
+ export type ValueBooleanProps = BaseValueProps<boolean>;
16
9
 
17
10
  /**
18
11
  * Displays a boolean value with a label
19
12
  */
20
- export const ValueBoolean = ({ label, value }: ValueBooleanProps) => {
13
+ export const ValueBoolean = ({
14
+ label,
15
+ value,
16
+ placeholder = DefaultPlaceholder,
17
+ }: ValueBooleanProps) => {
21
18
  const { typography } = useTheme();
22
19
 
23
20
  const iconSx = { fontSize: typography.h5.fontSize };
24
21
 
25
22
  return (
26
- <Box>
27
- <Typography variant="subtitle2" role="label">
28
- {label}
29
- </Typography>
30
- {value ? <CheckIcon color="success" sx={iconSx} /> : <CloseIcon color="error" sx={iconSx} />}
31
- </Box>
23
+ <ValueContent label={label}>
24
+ {value === undefined ? (
25
+ <Typography variant="h5">{placeholder}</Typography>
26
+ ) : value ? (
27
+ <CheckIcon color="success" sx={iconSx} />
28
+ ) : (
29
+ <CloseIcon color="error" sx={iconSx} />
30
+ )}
31
+ </ValueContent>
32
32
  );
33
33
  };
@@ -5,7 +5,7 @@ import { createTemplate } from "../../../storybook";
5
5
  import { ValueText } from "../value-text";
6
6
 
7
7
  export default {
8
- title: "Value displays/ValueCard",
8
+ title: "Components/Value displays/ValueCard",
9
9
  component: ValueCard,
10
10
  parameters: {
11
11
  layout: "centered",
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { ValueCard } from "./value-card";
3
- import { render, screen } from "../../../tests";
3
+ import { render, screen } from "~/tests/testing-library";
4
4
  import { ReactElement } from "react";
5
5
  import { ValueText } from "../value-text";
6
6
 
@@ -0,0 +1 @@
1
+ export * from "./value-content";
@@ -0,0 +1,20 @@
1
+ import { ComponentMeta } from "@storybook/react";
2
+ import { ValueContent } from "./value-content";
3
+ import { withContainer } from "../../../storybook";
4
+ import { Typography } from "@mui/material";
5
+ import React from "react";
6
+
7
+ export default {
8
+ title: "Components/Value displays/ValueContent",
9
+ component: ValueContent,
10
+ decorators: [withContainer({ width: 200 })],
11
+ parameters: {
12
+ layout: "centered",
13
+ },
14
+ } as ComponentMeta<typeof ValueContent>;
15
+
16
+ export const Default = () => (
17
+ <ValueContent label="lorem ipsum">
18
+ <Typography>Demo content</Typography>
19
+ </ValueContent>
20
+ );
@@ -0,0 +1,50 @@
1
+ import React from "react";
2
+ import { Typography } from "@mui/material";
3
+ import { render, screen } from "~/tests/testing-library";
4
+ import { ValueContent } from "./value-content";
5
+ import userEvent from "@testing-library/user-event";
6
+
7
+ describe("ValueContent", () => {
8
+ const renderComponent = ({ tooltip }: { tooltip?: string } = {}) => {
9
+ render(
10
+ <ValueContent label="lorem ipsum" tooltip={tooltip} tooltipEnterDelay={0}>
11
+ <Typography>Test content</Typography>
12
+ </ValueContent>,
13
+ );
14
+ };
15
+
16
+ it("should render a label", () => {
17
+ renderComponent();
18
+
19
+ expect(screen.getByRole("label", { name: /lorem ipsum/i })).toBeInTheDocument();
20
+ });
21
+
22
+ describe("tooltip", () => {
23
+ it("should render a tooltip if is defined and the user hovers the value", async () => {
24
+ renderComponent({ tooltip: "dolor sit amet" });
25
+
26
+ await userEvent.hover(screen.getByText(/test content/i));
27
+
28
+ expect(await screen.findByRole("tooltip", { name: /dolor sit amet/i })).toBeInTheDocument();
29
+ });
30
+
31
+ it("shouldn't render a tooltip if it's not defined", () => {
32
+ renderComponent({ tooltip: undefined });
33
+
34
+ expect(screen.queryByRole("tooltip", { name: /dolor sit amet/i })).not.toBeInTheDocument();
35
+ });
36
+ });
37
+
38
+ describe("children", () => {
39
+ it("should render the children if tooltip is defined", () => {
40
+ renderComponent({ tooltip: "dolor sit amet" });
41
+
42
+ expect(screen.getByText(/test content/i)).toBeInTheDocument();
43
+ });
44
+ it("should render the children if tooltip is undefined", () => {
45
+ renderComponent({ tooltip: undefined });
46
+
47
+ expect(screen.getByText(/test content/i)).toBeInTheDocument();
48
+ });
49
+ });
50
+ });
@@ -0,0 +1,54 @@
1
+ import { Box, Tooltip, Typography } from "@mui/material";
2
+ import React from "react";
3
+
4
+ export const getValueContentLabelId = (label: string): string =>
5
+ `label-${label.replace(/ /g, "-")}`;
6
+
7
+ export interface ValueContentProps {
8
+ /**
9
+ * Name of the displayed value
10
+ */
11
+ label: string;
12
+
13
+ /**
14
+ * If defined, a tooltip is going to be added arround the children;
15
+ */
16
+ tooltip?: string;
17
+
18
+ /**
19
+ * Timeout before the tooltip appears when the user hovers the value
20
+ */
21
+ tooltipEnterDelay?: number;
22
+
23
+ /**
24
+ * Component that's going to be renderd under the label
25
+ */
26
+ children: React.ReactElement<any, any>;
27
+ }
28
+
29
+ /**
30
+ * Displays a string value with a label
31
+ */
32
+ export const ValueContent = ({
33
+ label,
34
+ tooltip,
35
+ tooltipEnterDelay = 2000,
36
+ children,
37
+ }: ValueContentProps) => {
38
+ const id = getValueContentLabelId(label);
39
+
40
+ return (
41
+ <Box width={1}>
42
+ <Typography variant="subtitle2" role="label" id={id}>
43
+ {label}
44
+ </Typography>
45
+ {tooltip ? (
46
+ <Tooltip title={tooltip} placement="top" enterDelay={tooltipEnterDelay}>
47
+ {children}
48
+ </Tooltip>
49
+ ) : (
50
+ children
51
+ )}
52
+ </Box>
53
+ );
54
+ };
@@ -3,7 +3,7 @@ import { ValueDatetime } from "./value-datetime";
3
3
  import { createTemplate, withContainer } from "../../../storybook";
4
4
 
5
5
  export default {
6
- title: "Value displays/ValueDate",
6
+ title: "Components/Value displays/ValueDatetime",
7
7
  component: ValueDatetime,
8
8
  decorators: [withContainer({ width: 200 })],
9
9
  parameters: {
@@ -19,3 +19,16 @@ Default.args = {
19
19
  value: new Date(2022, 8, 22),
20
20
  format: "yyyy/MM/dd",
21
21
  };
22
+
23
+ export const Placeholder = Template.bind({});
24
+ Placeholder.args = {
25
+ label: "Lorem",
26
+ format: "yyyy/MM/dd",
27
+ };
28
+
29
+ export const CustomPlaceholder = Template.bind({});
30
+ CustomPlaceholder.args = {
31
+ label: "Lorem",
32
+ format: "yyyy/MM/dd",
33
+ placeholder: ".",
34
+ };
@@ -1,23 +1,42 @@
1
1
  import React from "react";
2
- import { render, screen } from "../../../tests";
2
+ import { render, screen } from "~/tests/testing-library";
3
3
  import { ValueDatetime } from "./value-datetime";
4
4
 
5
+ const DummyValue = new Date(2022, 7, 10);
6
+
5
7
  describe("ValueDatetime", () => {
6
- const renderComponent = () => {
8
+ const renderComponent = ({ value, placeholder }: { value?: Date; placeholder?: string }) => {
7
9
  return render(
8
- <ValueDatetime label="Hello world" value={new Date(2022, 7, 10)} format="dd-MM-yyyy" />,
10
+ <ValueDatetime
11
+ label="Hello world"
12
+ value={value}
13
+ placeholder={placeholder}
14
+ format="dd-MM-yyyy"
15
+ />,
9
16
  );
10
17
  };
11
18
 
12
19
  it("would render the label", () => {
13
- renderComponent();
20
+ renderComponent({ value: DummyValue });
14
21
 
15
22
  expect(screen.getByRole("label", { name: /hello world/i })).toBeInTheDocument();
16
23
  });
17
24
 
18
25
  it("would render the value", () => {
19
- renderComponent();
26
+ renderComponent({ value: DummyValue });
20
27
 
21
28
  expect(screen.getByText(/10-08-2022/i)).toBeInTheDocument();
22
29
  });
30
+
31
+ it("should render the placeholder if value is undefined", () => {
32
+ renderComponent({ value: undefined });
33
+
34
+ expect(screen.getByText(/-/i)).toBeInTheDocument();
35
+ });
36
+
37
+ it("should render the custom placeholder if value is undefined and placeholder has value", () => {
38
+ renderComponent({ value: undefined, placeholder: "_" });
39
+
40
+ expect(screen.getByText(/_/i)).toBeInTheDocument();
41
+ });
23
42
  });
@@ -1,17 +1,10 @@
1
- import { Box, Tooltip, Typography } from "@mui/material";
1
+ import { Typography } from "@mui/material";
2
2
  import React from "react";
3
3
  import { format } from "date-fns";
4
+ import { BaseValueProps, DefaultPlaceholder } from "../value-displays.types";
5
+ import { getValueContentLabelId, ValueContent } from "../value-content";
4
6
 
5
- export interface ValueDatetimeProps {
6
- /**
7
- * Name of the displayed value
8
- */
9
- label: string;
10
- /**
11
- * Value displayed
12
- */
13
- value: Date;
14
-
7
+ export interface ValueDatetimeProps extends BaseValueProps<Date> {
15
8
  /**
16
9
  * Datetime format
17
10
  */
@@ -21,20 +14,20 @@ export interface ValueDatetimeProps {
21
14
  /**
22
15
  * Displays a formated datetime with a label
23
16
  */
24
- export const ValueDatetime = ({ label, value, format: fmt }: ValueDatetimeProps) => {
25
- const id = `label-${label.replace(/ /g, "-")}`;
26
- const formatedValue = format(value, fmt);
17
+ export const ValueDatetime = ({
18
+ label,
19
+ value: valueProp,
20
+ format: fmt,
21
+ placeholder = DefaultPlaceholder,
22
+ }: ValueDatetimeProps) => {
23
+ const id = getValueContentLabelId(label);
24
+ const value = (valueProp && format(valueProp, fmt)) || placeholder;
27
25
 
28
26
  return (
29
- <Box>
30
- <Typography variant="subtitle2" role="label" id={id}>
31
- {label}
27
+ <ValueContent label={label} tooltip={value}>
28
+ <Typography variant="h5" noWrap aria-labelledby={id}>
29
+ {value}
32
30
  </Typography>
33
- <Tooltip title={formatedValue} placement="top" enterDelay={2000}>
34
- <Typography variant="h5" noWrap aria-labelledby={id}>
35
- {formatedValue}
36
- </Typography>
37
- </Tooltip>
38
- </Box>
31
+ </ValueContent>
39
32
  );
40
33
  };
@@ -0,0 +1,16 @@
1
+ import { Meta } from '@storybook/addon-docs';
2
+ import LinkTo from '@storybook/addon-links/react';
3
+
4
+ <Meta title="Components/Value displays/Introduction" />
5
+
6
+ # Value Displays
7
+
8
+ <ul>
9
+ <li><LinkTo kind="Components/Value displays/GroupValueCard">GroupValueCard</LinkTo></li>
10
+ <li><LinkTo kind="Components/Value displays/ValueBoolean">ValueBoolean</LinkTo></li>
11
+ <li><LinkTo kind="Components/Value displays/ValueCard">ValueCard</LinkTo></li>
12
+ <li><LinkTo kind="Components/Value displays/ValueContent">ValueContent</LinkTo></li>
13
+ <li><LinkTo kind="Components/Value displays/ValueDatetime">ValueDatetime</LinkTo></li>
14
+ <li><LinkTo kind="Components/Value displays/ValueImage">ValueImage</LinkTo></li>
15
+ <li><LinkTo kind="Components/Value displays/ValueText">ValueText</LinkTo></li>
16
+ </ul>
@@ -0,0 +1,18 @@
1
+ export interface BaseValueProps<T> {
2
+ /**
3
+ * Name of the displayed value
4
+ */
5
+ label: string;
6
+
7
+ /**
8
+ * Value displayed
9
+ */
10
+ value?: T;
11
+
12
+ /**
13
+ * String rendered if value is undefined
14
+ */
15
+ placeholder?: string;
16
+ }
17
+
18
+ export const DefaultPlaceholder = "-";
@@ -0,0 +1 @@
1
+ export * from "./value-image";
@@ -0,0 +1,28 @@
1
+ import { ComponentMeta } from "@storybook/react";
2
+ import { ValueImage } from "./value-image";
3
+ import { createTemplate, withContainer } from "../../../storybook";
4
+ import workInProgressImg from "../../../stories/assets/work-in-progress.jpg";
5
+
6
+ export default {
7
+ title: "Components/Value displays/ValueImage",
8
+ component: ValueImage,
9
+ decorators: [withContainer({ width: 200 })],
10
+ parameters: {
11
+ layout: "centered",
12
+ },
13
+ } as ComponentMeta<typeof ValueImage>;
14
+
15
+ const Template = createTemplate(ValueImage);
16
+
17
+ export const Default = Template.bind({});
18
+ Default.args = {
19
+ label: "Lorem",
20
+ value: workInProgressImg,
21
+ };
22
+
23
+ export const CustomSize = Template.bind({});
24
+ CustomSize.args = {
25
+ label: "Lorem",
26
+ value: workInProgressImg,
27
+ size: 250,
28
+ };