@pautena/react-design-system 0.14.8 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/action/action-header.d.ts +1 -1
  2. package/action/action.d.ts +1 -1
  3. package/action/cjs/index.js +1 -1
  4. package/action/cjs/index.js.map +1 -1
  5. package/action/cjs/package.json +4 -4
  6. package/action/index.js +1 -1
  7. package/action/index.js.map +1 -1
  8. package/action/package.json +4 -4
  9. package/autocomplete/autocomplete.d.ts +1 -1
  10. package/autocomplete/cjs/index.js +1 -1
  11. package/autocomplete/cjs/index.js.map +1 -1
  12. package/autocomplete/cjs/package.json +2 -2
  13. package/autocomplete/index.js +1 -1
  14. package/autocomplete/index.js.map +1 -1
  15. package/autocomplete/package.json +2 -2
  16. package/board/board.d.ts +1 -1
  17. package/board/cjs/index.js +1 -1
  18. package/board/cjs/index.js.map +1 -1
  19. package/board/cjs/package.json +4 -4
  20. package/board/index.js.map +1 -1
  21. package/board/package.json +4 -4
  22. package/bootstrap-dialog/bootstrap-dialog.d.ts +1 -1
  23. package/bootstrap-dialog/cjs/index.js +1 -1
  24. package/bootstrap-dialog/cjs/index.js.map +1 -1
  25. package/bootstrap-dialog/cjs/package.json +4 -4
  26. package/bootstrap-dialog/index.js.map +1 -1
  27. package/bootstrap-dialog/package.json +4 -4
  28. package/bullet/bullet.d.ts +1 -1
  29. package/bullet/cjs/index.js +1 -1
  30. package/bullet/cjs/index.js.map +1 -1
  31. package/bullet/cjs/package.json +2 -2
  32. package/bullet/package.json +2 -2
  33. package/center-container/center-container.d.ts +1 -1
  34. package/center-container/cjs/index.js +1 -1
  35. package/center-container/cjs/index.js.map +1 -1
  36. package/center-container/cjs/package.json +2 -2
  37. package/center-container/package.json +2 -2
  38. package/cjs/index.js +1 -23
  39. package/cjs/index.js.map +1 -1
  40. package/confirm-dialog/cjs/index.js +1 -1
  41. package/confirm-dialog/cjs/index.js.map +1 -1
  42. package/confirm-dialog/cjs/package.json +4 -4
  43. package/confirm-dialog/confirm-dialog.d.ts +1 -1
  44. package/confirm-dialog/index.js.map +1 -1
  45. package/confirm-dialog/package.json +4 -4
  46. package/content/cjs/index.js +1 -1
  47. package/content/cjs/index.js.map +1 -1
  48. package/content/cjs/package.json +2 -2
  49. package/content/content.d.ts +1 -1
  50. package/content/package.json +2 -2
  51. package/content-placeholder/cjs/index.js +1 -1
  52. package/content-placeholder/cjs/index.js.map +1 -1
  53. package/content-placeholder/cjs/package.json +2 -2
  54. package/content-placeholder/content-placeholder.d.ts +1 -1
  55. package/content-placeholder/package.json +2 -2
  56. package/date-range-calendar/cjs/index.js +1 -1
  57. package/date-range-calendar/cjs/index.js.map +1 -1
  58. package/date-range-calendar/cjs/package.json +4 -4
  59. package/date-range-calendar/date-range-calendar.d.ts +1 -1
  60. package/date-range-calendar/index.js +1 -1
  61. package/date-range-calendar/index.js.map +1 -1
  62. package/date-range-calendar/package.json +4 -4
  63. package/date-range-picker/cjs/index.js +1 -1
  64. package/date-range-picker/cjs/index.js.map +1 -1
  65. package/date-range-picker/cjs/package.json +5 -5
  66. package/date-range-picker/date-range-picker.d.ts +1 -1
  67. package/date-range-picker/index.js +1 -1
  68. package/date-range-picker/index.js.map +1 -1
  69. package/date-range-picker/package.json +5 -5
  70. package/dialog/cjs/index.js +1 -1
  71. package/dialog/cjs/index.js.map +1 -1
  72. package/dialog/cjs/package.json +1 -1
  73. package/dialog/package.json +1 -1
  74. package/dialog/use-dialog.d.ts +0 -1
  75. package/drawer/cjs/index.js +1 -1
  76. package/drawer/cjs/index.js.map +1 -1
  77. package/drawer/cjs/package.json +3 -3
  78. package/drawer/drawer.d.ts +0 -1
  79. package/drawer/index.js.map +1 -1
  80. package/drawer/package.json +3 -3
  81. package/drawer-app-bar/cjs/index.js +1 -1
  82. package/drawer-app-bar/cjs/index.js.map +1 -1
  83. package/drawer-app-bar/cjs/package.json +3 -3
  84. package/drawer-app-bar/drawer-app-bar.d.ts +1 -1
  85. package/drawer-app-bar/index.js.map +1 -1
  86. package/drawer-app-bar/package.json +3 -3
  87. package/drawer-content/cjs/index.js +1 -1
  88. package/drawer-content/cjs/index.js.map +1 -1
  89. package/drawer-content/cjs/package.json +3 -4
  90. package/drawer-content/index.js +1 -1
  91. package/drawer-content/index.js.map +1 -1
  92. package/drawer-content/package.json +3 -4
  93. package/drawer-item/cjs/index.js +1 -1
  94. package/drawer-item/cjs/index.js.map +1 -1
  95. package/drawer-item/cjs/package.json +3 -4
  96. package/drawer-item/drawer-item-link.d.ts +1 -1
  97. package/drawer-item/drawer-item.d.ts +1 -1
  98. package/drawer-item/drawer-menu-item.d.ts +1 -1
  99. package/drawer-item/index.js +1 -1
  100. package/drawer-item/index.js.map +1 -1
  101. package/drawer-item/package.json +3 -4
  102. package/drawer-layout/cjs/index.js +1 -1
  103. package/drawer-layout/cjs/index.js.map +1 -1
  104. package/drawer-layout/cjs/package.json +3 -3
  105. package/drawer-layout/drawer-layout.d.ts +1 -1
  106. package/drawer-layout/index.js.map +1 -1
  107. package/drawer-layout/package.json +3 -3
  108. package/drawer-main/cjs/index.js +1 -1
  109. package/drawer-main/cjs/index.js.map +1 -1
  110. package/drawer-main/cjs/package.json +3 -3
  111. package/drawer-main/drawer-main.d.ts +1 -1
  112. package/drawer-main/index.js.map +1 -1
  113. package/drawer-main/package.json +3 -3
  114. package/drawer-provider/cjs/index.js +1 -1
  115. package/drawer-provider/cjs/index.js.map +1 -1
  116. package/drawer-provider/cjs/package.json +3 -3
  117. package/drawer-provider/drawer-context.d.ts +0 -1
  118. package/drawer-provider/drawer.provider.d.ts +1 -1
  119. package/drawer-provider/index.js.map +1 -1
  120. package/drawer-provider/package.json +3 -3
  121. package/drawer-section/cjs/index.js +1 -1
  122. package/drawer-section/cjs/index.js.map +1 -1
  123. package/drawer-section/cjs/package.json +3 -4
  124. package/drawer-section/drawer-section.d.ts +1 -1
  125. package/drawer-section/index.js +1 -1
  126. package/drawer-section/index.js.map +1 -1
  127. package/drawer-section/package.json +3 -4
  128. package/drawer-subheader/cjs/index.js +1 -1
  129. package/drawer-subheader/cjs/index.js.map +1 -1
  130. package/drawer-subheader/cjs/package.json +1 -1
  131. package/drawer-subheader/drawer-subheader.d.ts +1 -12
  132. package/drawer-subheader/package.json +1 -1
  133. package/enhanced-remote-table/cjs/index.js +1 -23
  134. package/enhanced-remote-table/cjs/index.js.map +1 -1
  135. package/enhanced-remote-table/cjs/package.json +3 -3
  136. package/enhanced-remote-table/enhanced-remote-table.d.ts +1 -1
  137. package/enhanced-remote-table/enhanced-remote-table.mock.d.ts +1 -1
  138. package/enhanced-remote-table/index.js +1 -23
  139. package/enhanced-remote-table/index.js.map +1 -1
  140. package/enhanced-remote-table/package.json +3 -3
  141. package/enhanced-table/cjs/index.js +1 -23
  142. package/enhanced-table/cjs/index.js.map +1 -1
  143. package/enhanced-table/cjs/package.json +3 -3
  144. package/enhanced-table/enhanced-table-head.d.ts +1 -1
  145. package/enhanced-table/enhanced-table.d.ts +1 -1
  146. package/enhanced-table/enhanced-table.mock.d.ts +1 -1
  147. package/enhanced-table/index.js +1 -23
  148. package/enhanced-table/index.js.map +1 -1
  149. package/enhanced-table/package.json +3 -3
  150. package/expandable-alert/cjs/index.js +1 -1
  151. package/expandable-alert/cjs/index.js.map +1 -1
  152. package/expandable-alert/cjs/package.json +4 -4
  153. package/expandable-alert/index.js.map +1 -1
  154. package/expandable-alert/package.json +4 -4
  155. package/form-dialog/cjs/index.js +1 -1
  156. package/form-dialog/cjs/index.js.map +1 -1
  157. package/form-dialog/cjs/package.json +4 -4
  158. package/form-dialog/form-dialog.d.ts +1 -1
  159. package/form-dialog/index.js.map +1 -1
  160. package/form-dialog/package.json +4 -4
  161. package/generators/cjs/index.js +1 -1
  162. package/generators/cjs/index.js.map +1 -1
  163. package/generators/index.js.map +1 -1
  164. package/group-value-card/cjs/index.js +1 -1
  165. package/group-value-card/cjs/index.js.map +1 -1
  166. package/group-value-card/cjs/package.json +2 -2
  167. package/group-value-card/group-value-card.d.ts +1 -1
  168. package/group-value-card/group-value-card.mock.d.ts +2 -2
  169. package/group-value-card/index.js.map +1 -1
  170. package/group-value-card/package.json +2 -2
  171. package/header/cjs/index.js +1 -1
  172. package/header/cjs/index.js.map +1 -1
  173. package/header/cjs/package.json +2 -3
  174. package/header/header-title.d.ts +2 -2
  175. package/header/index.js +1 -1
  176. package/header/index.js.map +1 -1
  177. package/header/package.json +2 -3
  178. package/header-layout/cjs/index.js +1 -1
  179. package/header-layout/cjs/index.js.map +1 -1
  180. package/header-layout/cjs/package.json +3 -3
  181. package/header-layout/header-layout.d.ts +1 -1
  182. package/header-layout/index.js.map +1 -1
  183. package/header-layout/package.json +3 -3
  184. package/index.d.ts +0 -1
  185. package/index.js +1 -23
  186. package/index.js.map +1 -1
  187. package/label/cjs/index.js +1 -1
  188. package/label/cjs/index.js.map +1 -1
  189. package/label/cjs/package.json +2 -2
  190. package/label/index.js.map +1 -1
  191. package/label/label.d.ts +1 -1
  192. package/label/package.json +2 -2
  193. package/link-card/cjs/index.js +1 -1
  194. package/link-card/cjs/index.js.map +1 -1
  195. package/link-card/cjs/package.json +2 -3
  196. package/link-card/index.js +1 -1
  197. package/link-card/index.js.map +1 -1
  198. package/link-card/link-card.d.ts +1 -1
  199. package/link-card/package.json +2 -3
  200. package/list-panel/cjs/index.js +1 -1
  201. package/list-panel/cjs/index.js.map +1 -1
  202. package/list-panel/cjs/package.json +2 -3
  203. package/list-panel/index.js +1 -1
  204. package/list-panel/index.js.map +1 -1
  205. package/list-panel/list-panel-panel.d.ts +1 -1
  206. package/list-panel/list-panel.context.d.ts +0 -1
  207. package/list-panel/list-panel.d.ts +1 -1
  208. package/list-panel/list-panel.mocks.d.ts +1 -1
  209. package/list-panel/package.json +2 -3
  210. package/loading-area/cjs/index.js +1 -1
  211. package/loading-area/cjs/index.js.map +1 -1
  212. package/loading-area/cjs/package.json +2 -2
  213. package/loading-area/loading-area.d.ts +1 -1
  214. package/loading-area/package.json +2 -2
  215. package/lorem-ipsum-placeholder/cjs/index.js +1 -1
  216. package/lorem-ipsum-placeholder/cjs/index.js.map +1 -1
  217. package/lorem-ipsum-placeholder/cjs/package.json +2 -2
  218. package/lorem-ipsum-placeholder/lorem-ipsum-placeholder.d.ts +1 -1
  219. package/lorem-ipsum-placeholder/package.json +2 -2
  220. package/markdown/cjs/index.js +1 -1
  221. package/markdown/cjs/index.js.map +1 -1
  222. package/markdown/cjs/package.json +3 -3
  223. package/markdown/markdown.d.ts +1 -1
  224. package/markdown/package.json +3 -3
  225. package/model-form/cjs/index.js +1 -1
  226. package/model-form/cjs/index.js.map +1 -1
  227. package/model-form/cjs/package.json +3 -3
  228. package/model-form/index.js.map +1 -1
  229. package/model-form/model-form-field.d.ts +1 -1
  230. package/model-form/model-form.d.ts +1 -1
  231. package/model-form/package.json +3 -3
  232. package/notification-center/cjs/index.js +1 -1
  233. package/notification-center/cjs/index.js.map +1 -1
  234. package/notification-center/cjs/package.json +2 -2
  235. package/notification-center/index.js +1 -1
  236. package/notification-center/index.js.map +1 -1
  237. package/notification-center/notification-center.context.d.ts +0 -1
  238. package/notification-center/notification-center.provider.d.ts +1 -1
  239. package/notification-center/package.json +2 -2
  240. package/object-details/cjs/index.js +1 -1
  241. package/object-details/cjs/index.js.map +1 -1
  242. package/object-details/cjs/package.json +6 -6
  243. package/object-details/index.js.map +1 -1
  244. package/object-details/object-details.d.ts +1 -1
  245. package/object-details/package.json +6 -6
  246. package/package.json +23 -25
  247. package/placeholder/cjs/index.js +1 -1
  248. package/placeholder/cjs/index.js.map +1 -1
  249. package/placeholder/cjs/package.json +2 -2
  250. package/placeholder/package.json +2 -2
  251. package/placeholder/placeholder.d.ts +1 -1
  252. package/query-container/cjs/index.js +1 -1
  253. package/query-container/cjs/index.js.map +1 -1
  254. package/query-container/cjs/package.json +2 -2
  255. package/query-container/index.js.map +1 -1
  256. package/query-container/package.json +2 -2
  257. package/query-container/query-container.d.ts +1 -1
  258. package/search-input/cjs/index.js +1 -1
  259. package/search-input/cjs/index.js.map +1 -1
  260. package/search-input/cjs/package.json +4 -4
  261. package/search-input/index.js.map +1 -1
  262. package/search-input/package.json +4 -4
  263. package/search-input/search-input.d.ts +1 -1
  264. package/select/cjs/index.js +1 -1
  265. package/select/cjs/index.js.map +1 -1
  266. package/select/cjs/package.json +2 -2
  267. package/select/index.js.map +1 -1
  268. package/select/package.json +2 -2
  269. package/select/select.d.ts +1 -1
  270. package/sign-in/cjs/index.js +1 -1
  271. package/sign-in/cjs/index.js.map +1 -1
  272. package/sign-in/cjs/package.json +3 -3
  273. package/sign-in/index.js.map +1 -1
  274. package/sign-in/package.json +3 -3
  275. package/sign-in/sign-in.d.ts +1 -1
  276. package/skeleton-card/cjs/index.js +1 -1
  277. package/skeleton-card/cjs/index.js.map +1 -1
  278. package/skeleton-card/cjs/package.json +2 -2
  279. package/skeleton-card/package.json +2 -2
  280. package/skeleton-card/skeleton-card.d.ts +1 -1
  281. package/skeleton-grid/cjs/index.js +1 -1
  282. package/skeleton-grid/cjs/index.js.map +1 -1
  283. package/skeleton-grid/cjs/package.json +2 -2
  284. package/skeleton-grid/package.json +2 -2
  285. package/skeleton-grid/skeleton-grid.d.ts +1 -1
  286. package/tab-card/cjs/index.js +1 -1
  287. package/tab-card/cjs/index.js.map +1 -1
  288. package/tab-card/cjs/package.json +2 -2
  289. package/tab-card/index.js.map +1 -1
  290. package/tab-card/package.json +2 -2
  291. package/tab-card/tab-card-panel.d.ts +1 -1
  292. package/tab-card/tab-card.d.ts +1 -1
  293. package/tab-card/tab-card.dummy.d.ts +2 -2
  294. package/tab-panel/cjs/index.js +1 -1
  295. package/tab-panel/cjs/index.js.map +1 -1
  296. package/tab-panel/cjs/package.json +2 -2
  297. package/tab-panel/package.json +2 -2
  298. package/tab-panel/tab-panel.d.ts +1 -2
  299. package/tab-provider/cjs/index.js +1 -1
  300. package/tab-provider/cjs/index.js.map +1 -1
  301. package/tab-provider/cjs/package.json +1 -1
  302. package/tab-provider/package.json +1 -1
  303. package/tab-provider/tab-provider.provider.d.ts +1 -1
  304. package/table-list/cjs/index.js +1 -23
  305. package/table-list/cjs/index.js.map +1 -1
  306. package/table-list/cjs/package.json +3 -3
  307. package/table-list/index.js +1 -23
  308. package/table-list/index.js.map +1 -1
  309. package/table-list/package.json +3 -3
  310. package/table-list/table-list.d.ts +1 -1
  311. package/text-field/cjs/index.js +1 -1
  312. package/text-field/cjs/index.js.map +1 -1
  313. package/text-field/cjs/package.json +2 -2
  314. package/text-field/index.js +1 -1
  315. package/text-field/index.js.map +1 -1
  316. package/text-field/package.json +2 -2
  317. package/text-field/text-field.d.ts +1 -1
  318. package/utils/cjs/index.js +1 -1
  319. package/utils/cjs/index.js.map +1 -1
  320. package/utils/cjs/package.json +1 -1
  321. package/utils/index.js.map +1 -1
  322. package/utils/package.json +1 -1
  323. package/utils/theme.d.ts +2 -2
  324. package/value-base/cjs/index.js +1 -1
  325. package/value-base/cjs/index.js.map +1 -1
  326. package/value-base/cjs/package.json +3 -3
  327. package/value-base/index.js.map +1 -1
  328. package/value-base/package.json +3 -3
  329. package/value-base/value-edit.d.ts +3 -4
  330. package/value-boolean/cjs/index.js +1 -1
  331. package/value-boolean/cjs/index.js.map +1 -1
  332. package/value-boolean/cjs/package.json +3 -3
  333. package/value-boolean/index.js.map +1 -1
  334. package/value-boolean/package.json +3 -3
  335. package/value-boolean/value-boolean.d.ts +1 -1
  336. package/value-card/cjs/index.js +1 -1
  337. package/value-card/cjs/index.js.map +1 -1
  338. package/value-card/cjs/package.json +2 -2
  339. package/value-card/package.json +2 -2
  340. package/value-card/value-card.d.ts +1 -1
  341. package/value-content/cjs/index.js +1 -1
  342. package/value-content/cjs/index.js.map +1 -1
  343. package/value-content/cjs/package.json +2 -2
  344. package/value-content/index.js.map +1 -1
  345. package/value-content/package.json +2 -2
  346. package/value-content/value-content.d.ts +1 -2
  347. package/value-datetime/cjs/index.js +1 -1
  348. package/value-datetime/cjs/index.js.map +1 -1
  349. package/value-datetime/cjs/package.json +5 -5
  350. package/value-datetime/index.js.map +1 -1
  351. package/value-datetime/package.json +5 -5
  352. package/value-datetime/value-datetime.d.ts +1 -1
  353. package/value-image/cjs/index.js +1 -1
  354. package/value-image/cjs/index.js.map +1 -1
  355. package/value-image/cjs/package.json +2 -2
  356. package/value-image/index.js.map +1 -1
  357. package/value-image/package.json +2 -2
  358. package/value-image/value-image.d.ts +1 -1
  359. package/value-item/cjs/index.js +1 -1
  360. package/value-item/cjs/index.js.map +1 -1
  361. package/value-item/cjs/package.json +2 -2
  362. package/value-item/index.js.map +1 -1
  363. package/value-item/package.json +2 -2
  364. package/value-label/cjs/index.js +1 -1
  365. package/value-label/cjs/index.js.map +1 -1
  366. package/value-label/cjs/package.json +3 -3
  367. package/value-label/index.js +1 -1
  368. package/value-label/index.js.map +1 -1
  369. package/value-label/package.json +3 -3
  370. package/value-label/value-label.d.ts +1 -1
  371. package/value-rating/cjs/index.js +1 -1
  372. package/value-rating/cjs/index.js.map +1 -1
  373. package/value-rating/cjs/package.json +3 -3
  374. package/value-rating/index.js +1 -1
  375. package/value-rating/index.js.map +1 -1
  376. package/value-rating/package.json +3 -3
  377. package/value-rating/value-rating.d.ts +1 -1
  378. package/value-text/cjs/index.js +1 -1
  379. package/value-text/cjs/index.js.map +1 -1
  380. package/value-text/cjs/package.json +3 -3
  381. package/value-text/index.js.map +1 -1
  382. package/value-text/package.json +3 -3
  383. package/value-text/value-text.d.ts +1 -1
  384. package/hooks/cjs/index.js +0 -2
  385. package/hooks/cjs/index.js.map +0 -1
  386. package/hooks/cjs/package.json +0 -11
  387. package/hooks/index.d.ts +0 -1
  388. package/hooks/index.js +0 -2
  389. package/hooks/index.js.map +0 -1
  390. package/hooks/package.json +0 -11
  391. package/hooks/routing/index.d.ts +0 -1
  392. package/hooks/routing/routing.hooks.d.ts +0 -6
  393. package/link/cjs/index.js +0 -2
  394. package/link/cjs/index.js.map +0 -1
  395. package/link/cjs/package.json +0 -12
  396. package/link/index.d.ts +0 -1
  397. package/link/index.js +0 -2
  398. package/link/index.js.map +0 -1
  399. package/link/link.d.ts +0 -7
  400. package/link/package.json +0 -12
  401. package/model-router/cjs/index.js +0 -24
  402. package/model-router/cjs/index.js.map +0 -1
  403. package/model-router/cjs/package.json +0 -16
  404. package/model-router/index.d.ts +0 -2
  405. package/model-router/index.js +0 -24
  406. package/model-router/index.js.map +0 -1
  407. package/model-router/model-router.d.ts +0 -4
  408. package/model-router/model-router.types.d.ts +0 -9
  409. package/model-router/package.json +0 -16
  410. package/model-router/screens/add-screen.d.ts +0 -16
  411. package/model-router/screens/details-screen.d.ts +0 -20
  412. package/model-router/screens/index.d.ts +0 -4
  413. package/model-router/screens/list-screen.d.ts +0 -30
  414. package/model-router/screens/screens.types.d.ts +0 -31
  415. package/model-router/screens/update-screen.d.ts +0 -29
  416. package/model-router/stories/templates.d.ts +0 -21
@@ -5,9 +5,9 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/icons-material": "^5.11.16",
9
- "@mui/lab": "^5.0.0-alpha.134",
10
- "@mui/material": "^5.13.6",
11
- "react": "^18.2.0"
8
+ "@mui/icons-material": "^6.4.5",
9
+ "@mui/lab": "^6.0.0-beta.28",
10
+ "@mui/material": "^6.4.5",
11
+ "react": "^19.0.0"
12
12
  }
13
13
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e={string:"",number:0,boolean:!1,enum:"",multienum:[],date:new Date(1970,0,1,0,0),time:new Date(1970,0,1,0,0),datetime:new Date(1970,0,1,0,0),group:{},"group[]":[],"string[]":[],"number[]":[]},t=(t,n)=>n&&n[t.id]||"default"in t&&t.default||e[t.type];exports.newInstanceFromValuesOrZeroValue=(e,n=undefined)=>{const r={};return e.fields.forEach((e=>{if("group"===e.type){const u={};e.value.forEach((r=>{u[r.id]=t(r,n&&n[e.id])})),r[e.id]=u}else r[e.id]=t(e,n)})),r};
1
+ "use strict";const e={string:"",number:0,boolean:!1,enum:"",multienum:[],date:new Date(1970,0,1,0,0),time:new Date(1970,0,1,0,0),datetime:new Date(1970,0,1,0,0),group:{},"group[]":[],"string[]":[],"number[]":[]},t=(t,n)=>n&&n[t.id]||"default"in t&&t.default||e[t.type];exports.newInstanceFromValuesOrZeroValue=(e,n=undefined)=>{const r={};return e.fields.forEach((e=>{if("group"===e.type){const u={};e.value.forEach((r=>{u[r.id]=t(r,n&&n[e.id])})),r[e.id]=u}else r[e.id]=t(e,n)})),r};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/generators/generators.model.ts"],"sourcesContent":["/**\n * MODEL TYPES\n * Types used to specify the model\n */\nexport type ModelFieldTypes =\n | \"string\"\n | \"number\"\n | \"string[]\"\n | \"number[]\"\n | \"boolean\"\n | \"enum\"\n | \"multienum\"\n | \"date\"\n | \"time\"\n | \"datetime\";\n\ntype Base = {\n id: string;\n description: string;\n name: string;\n listable?: boolean;\n updatable?: boolean;\n required?: boolean;\n};\n\ntype Breakpoints = {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n};\n\ntype StringField = {\n type: \"string\";\n};\n\ntype StringArrayField = {\n type: \"string[]\";\n};\n\ntype NumberField = {\n type: \"number\";\n};\n\ntype NumberArrayField = {\n type: \"number[]\";\n};\n\ntype BooleanField = {\n type: \"boolean\";\n};\n\ntype EnumField = {\n type: \"enum\";\n value: string[];\n};\n\ntype MultiEnumField = {\n type: \"multienum\";\n value: string[];\n};\n\ntype DateField = {\n type: \"date\";\n format: string;\n default: Date;\n};\n\ntype TimeField = {\n type: \"time\";\n format: string;\n default: Date;\n};\n\ntype DatetimeField = {\n type: \"datetime\";\n format: string;\n default: Date;\n};\n\ntype SingleFields =\n | StringField\n | NumberField\n | StringArrayField\n | NumberArrayField\n | BooleanField\n | EnumField\n | MultiEnumField\n | DateField\n | TimeField\n | DatetimeField;\n\nexport type GroupField = {\n type: \"group\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\nexport type ArrayGroupField = {\n type: \"group[]\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\ntype Fields = SingleFields | GroupField | ArrayGroupField;\nexport type ModelField = Base & Breakpoints & Fields;\n\nexport type Model = {\n fields: ModelField[];\n};\n\n/**\n * INSTANCE TYPES\n * Types used to represent an instance of a model specification\n */\nexport type BaseFieldType = string | number | boolean | Date;\nexport type ArrayFieldType = string[] | number[];\nexport type SingleFieldType = BaseFieldType | ArrayFieldType;\nexport type GroupInstanceType = { [key: string]: SingleFieldType };\nexport type ArrayInstanceType = { [key: string]: SingleFieldType }[];\nexport type FieldType = SingleFieldType | GroupInstanceType;\n\nexport interface BasicModelInstance {\n id: string;\n [key: string]: FieldType;\n}\n\n/**\n * UTILITIES\n * Some functions used in several places to help to manage models\n */\nconst InitialStateZeroValue: Record<ModelFieldTypes | \"group\" | \"group[]\", FieldType | undefined> =\n {\n string: \"\",\n number: 0,\n boolean: false,\n enum: \"\",\n multienum: [],\n date: new Date(1970, 0, 1, 0, 0),\n time: new Date(1970, 0, 1, 0, 0),\n datetime: new Date(1970, 0, 1, 0, 0),\n group: {},\n \"group[]\": [],\n \"string[]\": [],\n \"number[]\": [],\n };\n\nconst getFieldValueOrZero = (\n field: ModelField,\n values: BasicModelInstance | GroupInstanceType | undefined,\n) => {\n return (\n (values && values[field.id]) ||\n (\"default\" in field && field.default) ||\n InitialStateZeroValue[field.type]\n );\n};\n\nexport const newInstanceFromValuesOrZeroValue = <T extends BasicModelInstance>(\n model: Model,\n values: T | undefined = undefined,\n): T => {\n const obj: Record<string, FieldType | undefined> = {};\n\n model.fields.forEach((field) => {\n if (field.type === \"group\") {\n const value: GroupInstanceType = {};\n field.value.forEach((groupField) => {\n value[groupField.id] = getFieldValueOrZero(\n groupField,\n values && (values[field.id] as GroupInstanceType),\n ) as SingleFieldType;\n });\n obj[field.id] = value;\n } else {\n obj[field.id] = getFieldValueOrZero(field, values);\n }\n });\n\n return obj as T;\n};\n"],"names":["InitialStateZeroValue","string","number","boolean","enum","multienum","date","Date","time","datetime","group","getFieldValueOrZero","field","values","id","default","type","model","undefined","obj","fields","forEach","value","groupField"],"mappings":"oEAkIA,MAAMA,EACJ,CACEC,OAAQ,GACRC,OAAQ,EACRC,SAAS,EACTC,KAAM,GACNC,UAAW,GACXC,KAAM,IAAIC,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BC,KAAM,IAAID,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BE,SAAU,IAAIF,KAAK,KAAM,EAAG,EAAG,EAAG,GAClCG,MAAO,CAAE,EACT,UAAW,GACX,WAAY,GACZ,WAAY,IAGVC,EAAsB,CAC1BC,EACAC,IAGGA,GAAUA,EAAOD,EAAME,KACvB,YAAaF,GAASA,EAAMG,SAC7Bf,EAAsBY,EAAMI,+CAIgB,CAC9CC,EACAJ,EAAwBK,aAExB,MAAMC,EAA6C,CAAA,EAiBnD,OAfAF,EAAMG,OAAOC,SAAST,IACpB,GAAmB,UAAfA,EAAMI,KAAkB,CAC1B,MAAMM,EAA2B,CAAA,EACjCV,EAAMU,MAAMD,SAASE,IACnBD,EAAMC,EAAWT,IAAMH,EACrBY,EACAV,GAAWA,EAAOD,EAAME,IACN,IAEtBK,EAAIP,EAAME,IAAMQ,CACjB,MACCH,EAAIP,EAAME,IAAMH,EAAoBC,EAAOC,EAC5C,IAGIM,CAAQ"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/generators/generators.model.ts"],"sourcesContent":["/**\n * MODEL TYPES\n * Types used to specify the model\n */\nexport type ModelFieldTypes =\n | \"string\"\n | \"number\"\n | \"string[]\"\n | \"number[]\"\n | \"boolean\"\n | \"enum\"\n | \"multienum\"\n | \"date\"\n | \"time\"\n | \"datetime\";\n\ntype Base = {\n id: string;\n description: string;\n name: string;\n listable?: boolean;\n updatable?: boolean;\n required?: boolean;\n};\n\ntype Breakpoints = {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n};\n\ntype StringField = {\n type: \"string\";\n};\n\ntype StringArrayField = {\n type: \"string[]\";\n};\n\ntype NumberField = {\n type: \"number\";\n};\n\ntype NumberArrayField = {\n type: \"number[]\";\n};\n\ntype BooleanField = {\n type: \"boolean\";\n};\n\ntype EnumField = {\n type: \"enum\";\n value: string[];\n};\n\ntype MultiEnumField = {\n type: \"multienum\";\n value: string[];\n};\n\ntype DateField = {\n type: \"date\";\n format: string;\n default: Date;\n};\n\ntype TimeField = {\n type: \"time\";\n format: string;\n default: Date;\n};\n\ntype DatetimeField = {\n type: \"datetime\";\n format: string;\n default: Date;\n};\n\ntype SingleFields =\n | StringField\n | NumberField\n | StringArrayField\n | NumberArrayField\n | BooleanField\n | EnumField\n | MultiEnumField\n | DateField\n | TimeField\n | DatetimeField;\n\nexport type GroupField = {\n type: \"group\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\nexport type ArrayGroupField = {\n type: \"group[]\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\ntype Fields = SingleFields | GroupField | ArrayGroupField;\nexport type ModelField = Base & Breakpoints & Fields;\n\nexport type Model = {\n fields: ModelField[];\n};\n\n/**\n * INSTANCE TYPES\n * Types used to represent an instance of a model specification\n */\nexport type BaseFieldType = string | number | boolean | Date;\nexport type ArrayFieldType = string[] | number[];\nexport type SingleFieldType = BaseFieldType | ArrayFieldType;\nexport type GroupInstanceType = { [key: string]: SingleFieldType };\nexport type ArrayInstanceType = { [key: string]: SingleFieldType }[];\nexport type FieldType = SingleFieldType | GroupInstanceType;\n\nexport interface BasicModelInstance {\n id: string;\n [key: string]: FieldType;\n}\n\n/**\n * UTILITIES\n * Some functions used in several places to help to manage models\n */\nconst InitialStateZeroValue: Record<ModelFieldTypes | \"group\" | \"group[]\", FieldType | undefined> =\n {\n string: \"\",\n number: 0,\n boolean: false,\n enum: \"\",\n multienum: [],\n date: new Date(1970, 0, 1, 0, 0),\n time: new Date(1970, 0, 1, 0, 0),\n datetime: new Date(1970, 0, 1, 0, 0),\n group: {},\n \"group[]\": [],\n \"string[]\": [],\n \"number[]\": [],\n };\n\nconst getFieldValueOrZero = (\n field: ModelField,\n values: BasicModelInstance | GroupInstanceType | undefined,\n) => {\n return (\n (values && values[field.id]) ||\n (\"default\" in field && field.default) ||\n InitialStateZeroValue[field.type]\n );\n};\n\nexport const newInstanceFromValuesOrZeroValue = <T extends BasicModelInstance>(\n model: Model,\n values: T | undefined = undefined,\n): T => {\n const obj: Record<string, FieldType | undefined> = {};\n\n model.fields.forEach((field) => {\n if (field.type === \"group\") {\n const value: GroupInstanceType = {};\n field.value.forEach((groupField) => {\n value[groupField.id] = getFieldValueOrZero(\n groupField,\n values && (values[field.id] as GroupInstanceType),\n ) as SingleFieldType;\n });\n obj[field.id] = value;\n } else {\n obj[field.id] = getFieldValueOrZero(field, values);\n }\n });\n\n return obj as T;\n};\n"],"names":["InitialStateZeroValue","string","number","boolean","enum","multienum","date","Date","time","datetime","group","getFieldValueOrZero","field","values","id","default","type","model","undefined","obj","fields","forEach","value","groupField"],"mappings":"aAkIA,MAAMA,EACJ,CACEC,OAAQ,GACRC,OAAQ,EACRC,SAAS,EACTC,KAAM,GACNC,UAAW,GACXC,KAAM,IAAIC,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BC,KAAM,IAAID,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BE,SAAU,IAAIF,KAAK,KAAM,EAAG,EAAG,EAAG,GAClCG,MAAO,CAAE,EACT,UAAW,GACX,WAAY,GACZ,WAAY,IAGVC,EAAsB,CAC1BC,EACAC,IAGGA,GAAUA,EAAOD,EAAME,KACvB,YAAaF,GAASA,EAAMG,SAC7Bf,EAAsBY,EAAMI,+CAIgB,CAC9CC,EACAJ,EAAwBK,aAExB,MAAMC,EAA6C,CAAE,EAiBrD,OAfAF,EAAMG,OAAOC,SAAST,IACpB,GAAmB,UAAfA,EAAMI,KAAkB,CAC1B,MAAMM,EAA2B,CAAE,EACnCV,EAAMU,MAAMD,SAASE,IACnBD,EAAMC,EAAWT,IAAMH,EACrBY,EACAV,GAAWA,EAAOD,EAAME,IACN,IAEtBK,EAAIP,EAAME,IAAMQ,OAEhBH,EAAIP,EAAME,IAAMH,EAAoBC,EAAOC,MAIxCM,CAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/generators/generators.model.ts"],"sourcesContent":["/**\n * MODEL TYPES\n * Types used to specify the model\n */\nexport type ModelFieldTypes =\n | \"string\"\n | \"number\"\n | \"string[]\"\n | \"number[]\"\n | \"boolean\"\n | \"enum\"\n | \"multienum\"\n | \"date\"\n | \"time\"\n | \"datetime\";\n\ntype Base = {\n id: string;\n description: string;\n name: string;\n listable?: boolean;\n updatable?: boolean;\n required?: boolean;\n};\n\ntype Breakpoints = {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n};\n\ntype StringField = {\n type: \"string\";\n};\n\ntype StringArrayField = {\n type: \"string[]\";\n};\n\ntype NumberField = {\n type: \"number\";\n};\n\ntype NumberArrayField = {\n type: \"number[]\";\n};\n\ntype BooleanField = {\n type: \"boolean\";\n};\n\ntype EnumField = {\n type: \"enum\";\n value: string[];\n};\n\ntype MultiEnumField = {\n type: \"multienum\";\n value: string[];\n};\n\ntype DateField = {\n type: \"date\";\n format: string;\n default: Date;\n};\n\ntype TimeField = {\n type: \"time\";\n format: string;\n default: Date;\n};\n\ntype DatetimeField = {\n type: \"datetime\";\n format: string;\n default: Date;\n};\n\ntype SingleFields =\n | StringField\n | NumberField\n | StringArrayField\n | NumberArrayField\n | BooleanField\n | EnumField\n | MultiEnumField\n | DateField\n | TimeField\n | DatetimeField;\n\nexport type GroupField = {\n type: \"group\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\nexport type ArrayGroupField = {\n type: \"group[]\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\ntype Fields = SingleFields | GroupField | ArrayGroupField;\nexport type ModelField = Base & Breakpoints & Fields;\n\nexport type Model = {\n fields: ModelField[];\n};\n\n/**\n * INSTANCE TYPES\n * Types used to represent an instance of a model specification\n */\nexport type BaseFieldType = string | number | boolean | Date;\nexport type ArrayFieldType = string[] | number[];\nexport type SingleFieldType = BaseFieldType | ArrayFieldType;\nexport type GroupInstanceType = { [key: string]: SingleFieldType };\nexport type ArrayInstanceType = { [key: string]: SingleFieldType }[];\nexport type FieldType = SingleFieldType | GroupInstanceType;\n\nexport interface BasicModelInstance {\n id: string;\n [key: string]: FieldType;\n}\n\n/**\n * UTILITIES\n * Some functions used in several places to help to manage models\n */\nconst InitialStateZeroValue: Record<ModelFieldTypes | \"group\" | \"group[]\", FieldType | undefined> =\n {\n string: \"\",\n number: 0,\n boolean: false,\n enum: \"\",\n multienum: [],\n date: new Date(1970, 0, 1, 0, 0),\n time: new Date(1970, 0, 1, 0, 0),\n datetime: new Date(1970, 0, 1, 0, 0),\n group: {},\n \"group[]\": [],\n \"string[]\": [],\n \"number[]\": [],\n };\n\nconst getFieldValueOrZero = (\n field: ModelField,\n values: BasicModelInstance | GroupInstanceType | undefined,\n) => {\n return (\n (values && values[field.id]) ||\n (\"default\" in field && field.default) ||\n InitialStateZeroValue[field.type]\n );\n};\n\nexport const newInstanceFromValuesOrZeroValue = <T extends BasicModelInstance>(\n model: Model,\n values: T | undefined = undefined,\n): T => {\n const obj: Record<string, FieldType | undefined> = {};\n\n model.fields.forEach((field) => {\n if (field.type === \"group\") {\n const value: GroupInstanceType = {};\n field.value.forEach((groupField) => {\n value[groupField.id] = getFieldValueOrZero(\n groupField,\n values && (values[field.id] as GroupInstanceType),\n ) as SingleFieldType;\n });\n obj[field.id] = value;\n } else {\n obj[field.id] = getFieldValueOrZero(field, values);\n }\n });\n\n return obj as T;\n};\n"],"names":["InitialStateZeroValue","string","number","boolean","enum","multienum","date","Date","time","datetime","group","getFieldValueOrZero","field","values","id","default","type","newInstanceFromValuesOrZeroValue","model","undefined","obj","fields","forEach","value","groupField"],"mappings":"AAkIA,MAAMA,EACJ,CACEC,OAAQ,GACRC,OAAQ,EACRC,SAAS,EACTC,KAAM,GACNC,UAAW,GACXC,KAAM,IAAIC,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BC,KAAM,IAAID,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BE,SAAU,IAAIF,KAAK,KAAM,EAAG,EAAG,EAAG,GAClCG,MAAO,CAAE,EACT,UAAW,GACX,WAAY,GACZ,WAAY,IAGVC,EAAsB,CAC1BC,EACAC,IAGGA,GAAUA,EAAOD,EAAME,KACvB,YAAaF,GAASA,EAAMG,SAC7Bf,EAAsBY,EAAMI,MAInBC,EAAmC,CAC9CC,EACAL,EAAwBM,aAExB,MAAMC,EAA6C,CAAA,EAiBnD,OAfAF,EAAMG,OAAOC,SAASV,IACpB,GAAmB,UAAfA,EAAMI,KAAkB,CAC1B,MAAMO,EAA2B,CAAA,EACjCX,EAAMW,MAAMD,SAASE,IACnBD,EAAMC,EAAWV,IAAMH,EACrBa,EACAX,GAAWA,EAAOD,EAAME,IACN,IAEtBM,EAAIR,EAAME,IAAMS,CACjB,MACCH,EAAIR,EAAME,IAAMH,EAAoBC,EAAOC,EAC5C,IAGIO,CAAQ"}
1
+ {"version":3,"file":"index.js","sources":["../../src/generators/generators.model.ts"],"sourcesContent":["/**\n * MODEL TYPES\n * Types used to specify the model\n */\nexport type ModelFieldTypes =\n | \"string\"\n | \"number\"\n | \"string[]\"\n | \"number[]\"\n | \"boolean\"\n | \"enum\"\n | \"multienum\"\n | \"date\"\n | \"time\"\n | \"datetime\";\n\ntype Base = {\n id: string;\n description: string;\n name: string;\n listable?: boolean;\n updatable?: boolean;\n required?: boolean;\n};\n\ntype Breakpoints = {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n};\n\ntype StringField = {\n type: \"string\";\n};\n\ntype StringArrayField = {\n type: \"string[]\";\n};\n\ntype NumberField = {\n type: \"number\";\n};\n\ntype NumberArrayField = {\n type: \"number[]\";\n};\n\ntype BooleanField = {\n type: \"boolean\";\n};\n\ntype EnumField = {\n type: \"enum\";\n value: string[];\n};\n\ntype MultiEnumField = {\n type: \"multienum\";\n value: string[];\n};\n\ntype DateField = {\n type: \"date\";\n format: string;\n default: Date;\n};\n\ntype TimeField = {\n type: \"time\";\n format: string;\n default: Date;\n};\n\ntype DatetimeField = {\n type: \"datetime\";\n format: string;\n default: Date;\n};\n\ntype SingleFields =\n | StringField\n | NumberField\n | StringArrayField\n | NumberArrayField\n | BooleanField\n | EnumField\n | MultiEnumField\n | DateField\n | TimeField\n | DatetimeField;\n\nexport type GroupField = {\n type: \"group\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\nexport type ArrayGroupField = {\n type: \"group[]\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\ntype Fields = SingleFields | GroupField | ArrayGroupField;\nexport type ModelField = Base & Breakpoints & Fields;\n\nexport type Model = {\n fields: ModelField[];\n};\n\n/**\n * INSTANCE TYPES\n * Types used to represent an instance of a model specification\n */\nexport type BaseFieldType = string | number | boolean | Date;\nexport type ArrayFieldType = string[] | number[];\nexport type SingleFieldType = BaseFieldType | ArrayFieldType;\nexport type GroupInstanceType = { [key: string]: SingleFieldType };\nexport type ArrayInstanceType = { [key: string]: SingleFieldType }[];\nexport type FieldType = SingleFieldType | GroupInstanceType;\n\nexport interface BasicModelInstance {\n id: string;\n [key: string]: FieldType;\n}\n\n/**\n * UTILITIES\n * Some functions used in several places to help to manage models\n */\nconst InitialStateZeroValue: Record<ModelFieldTypes | \"group\" | \"group[]\", FieldType | undefined> =\n {\n string: \"\",\n number: 0,\n boolean: false,\n enum: \"\",\n multienum: [],\n date: new Date(1970, 0, 1, 0, 0),\n time: new Date(1970, 0, 1, 0, 0),\n datetime: new Date(1970, 0, 1, 0, 0),\n group: {},\n \"group[]\": [],\n \"string[]\": [],\n \"number[]\": [],\n };\n\nconst getFieldValueOrZero = (\n field: ModelField,\n values: BasicModelInstance | GroupInstanceType | undefined,\n) => {\n return (\n (values && values[field.id]) ||\n (\"default\" in field && field.default) ||\n InitialStateZeroValue[field.type]\n );\n};\n\nexport const newInstanceFromValuesOrZeroValue = <T extends BasicModelInstance>(\n model: Model,\n values: T | undefined = undefined,\n): T => {\n const obj: Record<string, FieldType | undefined> = {};\n\n model.fields.forEach((field) => {\n if (field.type === \"group\") {\n const value: GroupInstanceType = {};\n field.value.forEach((groupField) => {\n value[groupField.id] = getFieldValueOrZero(\n groupField,\n values && (values[field.id] as GroupInstanceType),\n ) as SingleFieldType;\n });\n obj[field.id] = value;\n } else {\n obj[field.id] = getFieldValueOrZero(field, values);\n }\n });\n\n return obj as T;\n};\n"],"names":["InitialStateZeroValue","string","number","boolean","enum","multienum","date","Date","time","datetime","group","getFieldValueOrZero","field","values","id","default","type","newInstanceFromValuesOrZeroValue","model","undefined","obj","fields","forEach","value","groupField"],"mappings":"AAkIA,MAAMA,EACJ,CACEC,OAAQ,GACRC,OAAQ,EACRC,SAAS,EACTC,KAAM,GACNC,UAAW,GACXC,KAAM,IAAIC,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BC,KAAM,IAAID,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BE,SAAU,IAAIF,KAAK,KAAM,EAAG,EAAG,EAAG,GAClCG,MAAO,CAAE,EACT,UAAW,GACX,WAAY,GACZ,WAAY,IAGVC,EAAsB,CAC1BC,EACAC,IAGGA,GAAUA,EAAOD,EAAME,KACvB,YAAaF,GAASA,EAAMG,SAC7Bf,EAAsBY,EAAMI,MAInBC,EAAmC,CAC9CC,EACAL,EAAwBM,aAExB,MAAMC,EAA6C,CAAE,EAiBrD,OAfAF,EAAMG,OAAOC,SAASV,IACpB,GAAmB,UAAfA,EAAMI,KAAkB,CAC1B,MAAMO,EAA2B,CAAE,EACnCX,EAAMW,MAAMD,SAASE,IACnBD,EAAMC,EAAWV,IAAMH,EACrBa,EACAX,GAAWA,EAAOD,EAAME,IACN,IAEtBM,EAAIR,EAAME,IAAMS,OAEhBH,EAAIR,EAAME,IAAMH,EAAoBC,EAAOC,MAIxCO,CAAQ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@mui/material/Grid"),t=require("@mui/material/Paper"),i=require("@mui/material/Box"),a=require("@mui/material/Typography"),l=require("@mui/material/styles"),u=require("@mui/material");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=n(r),o=n(t),s=n(i),h=n(a);exports.GroupValueCard=({title:r,subtitle:t,centered:i,children:a,dense:n})=>{const{typography:c}=l.useTheme(),g=(({lightWeight:e=100,darkWeight:r=900}={})=>{const{palette:t}=u.useTheme();return"light"===t.mode?t.grey[e]:t.grey[r]})({lightWeight:200,darkWeight:800});return e.jsxs(o.default,{sx:{paddingBottom:n?0:1},children:[e.jsxs(s.default,{bgcolor:g,px:n?1:2,py:n?.5:1,lineHeight:n?0:void 0,children:[e.jsx(h.default,{variant:n?"body1":"h6",role:"heading","aria-level":1,children:r}),t&&e.jsx(h.default,{variant:n?"caption":"body2",role:"heading","aria-level":2,lineHeight:n?c.pxToRem(15):void 0,children:t})]}),e.jsx(d.default,{container:!0,padding:1,rowSpacing:n?1:2,justifyContent:i?"center":"flex-start",children:a})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@mui/material/Grid"),i=require("@mui/material/Paper"),t=require("@mui/material/Box"),a=require("@mui/material/Typography"),l=require("@mui/material/styles"),n=require("@mui/material");exports.GroupValueCard=({title:d,subtitle:o,centered:u,children:h,dense:s})=>{const{typography:g}=l.useTheme(),m=(({lightWeight:e=100,darkWeight:r=900}={})=>{const{palette:i}=n.useTheme();return"light"===i.mode?i.grey[e]:i.grey[r]})({lightWeight:200,darkWeight:800});return e.jsxs(i,{sx:{paddingBottom:s?0:1},children:[e.jsxs(t,{bgcolor:m,px:s?1:2,py:s?.5:1,lineHeight:s?0:void 0,children:[e.jsx(a,{variant:s?"body1":"h6",role:"heading","aria-level":1,children:d}),o&&e.jsx(a,{variant:s?"caption":"body2",role:"heading","aria-level":2,lineHeight:s?g.pxToRem(15):void 0,children:o})]}),e.jsx(r,{container:!0,padding:1,rowSpacing:s?1:2,justifyContent:u?"center":"flex-start",children:h})]})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/group-value-card/group-value-card.tsx","../../../src/utils/theme.ts"],"sourcesContent":["import Grid from \"@mui/material/Grid\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { ValueItemElement } from \"../value-item\";\n\nexport interface GroupValueCardProps {\n title: string;\n subtitle?: string;\n centered?: boolean;\n children: ValueItemElement | ValueItemElement[];\n dense?: boolean;\n}\n\nexport const GroupValueCard = ({\n title,\n subtitle,\n centered,\n children,\n dense,\n}: GroupValueCardProps) => {\n const { typography } = useTheme();\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n return (\n <Paper\n sx={{\n paddingBottom: dense ? 0 : 1,\n }}\n >\n <Box\n bgcolor={defaultColor}\n px={dense ? 1 : 2}\n py={dense ? 0.5 : 1}\n lineHeight={dense ? 0 : undefined}\n >\n <Typography variant={dense ? \"body1\" : \"h6\"} role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant={dense ? \"caption\" : \"body2\"}\n role=\"heading\"\n aria-level={2}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n <Grid\n container\n padding={1}\n rowSpacing={dense ? 1 : 2}\n justifyContent={centered ? \"center\" : \"flex-start\"}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n","import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n"],"names":["title","subtitle","centered","children","dense","typography","useTheme","defaultColor","lightWeight","darkWeight","palette","mode","grey","useGetDefaultThemeColor","_jsxs","jsxs","Paper","sx","paddingBottom","Box","bgcolor","px","py","lineHeight","undefined","_jsx","jsx","Typography","variant","role","pxToRem","Grid","container","padding","rowSpacing","justifyContent"],"mappings":"yaAgB8B,EAC5BA,QACAC,WACAC,WACAC,WACAC,YAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,ECpB+B,GACrCC,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYJ,EAAAA,WACpB,MAAwB,UAAjBI,EAAQC,KAAmBD,EAAQE,KAAKJ,GAAeE,EAAQE,KAAKH,EAAW,EDejEI,CAAwB,CAAEL,YAAa,IAAKC,WAAY,MAE7E,OACEK,EAAAC,KAACC,UAAK,CACJC,GAAI,CACFC,cAAed,EAAQ,EAAI,GAC5BD,SAAA,CAEDW,OAACK,EAAAA,QACC,CAAAC,QAASb,EACTc,GAAIjB,EAAQ,EAAI,EAChBkB,GAAIlB,EAAQ,GAAM,EAClBmB,WAAYnB,EAAQ,OAAIoB,YAExBC,EAACC,IAAAC,UAAW,CAAAC,QAASxB,EAAQ,QAAU,KAAMyB,KAAK,UAAS,aAAa,EACrE1B,SAAAH,IAEFC,GACCwB,EAAAA,IAACE,EAAAA,SACCC,QAASxB,EAAQ,UAAY,QAC7ByB,KAAK,UAAS,aACF,EACZN,WAAYnB,EAAQC,EAAWyB,QAAQ,SAAMN,EAASrB,SAErDF,OAIPwB,EAACC,IAAAK,EAAI,QACH,CAAAC,WACA,EAAAC,QAAS,EACTC,WAAY9B,EAAQ,EAAI,EACxB+B,eAAgBjC,EAAW,SAAW,aAErCC,SAAAA,MAGL"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/group-value-card/group-value-card.tsx","../../../src/utils/theme.ts"],"sourcesContent":["import Grid from \"@mui/material/Grid\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { ValueItemElement } from \"../value-item\";\n\nexport interface GroupValueCardProps {\n title: string;\n subtitle?: string;\n centered?: boolean;\n children: ValueItemElement | ValueItemElement[];\n dense?: boolean;\n}\n\nexport const GroupValueCard = ({\n title,\n subtitle,\n centered,\n children,\n dense,\n}: GroupValueCardProps) => {\n const { typography } = useTheme();\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n return (\n <Paper\n sx={{\n paddingBottom: dense ? 0 : 1,\n }}\n >\n <Box\n bgcolor={defaultColor}\n px={dense ? 1 : 2}\n py={dense ? 0.5 : 1}\n lineHeight={dense ? 0 : undefined}\n >\n <Typography variant={dense ? \"body1\" : \"h6\"} role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant={dense ? \"caption\" : \"body2\"}\n role=\"heading\"\n aria-level={2}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n <Grid\n container\n padding={1}\n rowSpacing={dense ? 1 : 2}\n justifyContent={centered ? \"center\" : \"flex-start\"}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n","import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n"],"names":["title","subtitle","centered","children","dense","typography","useTheme","defaultColor","lightWeight","darkWeight","palette","mode","grey","useGetDefaultThemeColor","_jsxs","jsxs","Paper","sx","paddingBottom","Box","bgcolor","px","py","lineHeight","undefined","_jsx","jsx","Typography","variant","role","pxToRem","Grid","container","padding","rowSpacing","justifyContent"],"mappings":"0QAgB8B,EAC5BA,QACAC,WACAC,WACAC,WACAC,YAEA,MAAMC,WAAEA,GAAeC,aACjBC,ECpB+B,GACrCC,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYJ,aACpB,MAAwB,UAAjBI,EAAQC,KAAmBD,EAAQE,KAAKJ,GAAeE,EAAQE,KAAKH,EAAW,EDejEI,CAAwB,CAAEL,YAAa,IAAKC,WAAY,MAE7E,OACEK,EAAAC,KAACC,EAAK,CACJC,GAAI,CACFC,cAAed,EAAQ,EAAI,GAC5BD,SAAA,CAEDW,OAACK,EACC,CAAAC,QAASb,EACTc,GAAIjB,EAAQ,EAAI,EAChBkB,GAAIlB,EAAQ,GAAM,EAClBmB,WAAYnB,EAAQ,OAAIoB,YAExBC,EAACC,IAAAC,EAAW,CAAAC,QAASxB,EAAQ,QAAU,KAAMyB,KAAK,UAAS,aAAa,EACrE1B,SAAAH,IAEFC,GACCwB,EAACC,IAAAC,GACCC,QAASxB,EAAQ,UAAY,QAC7ByB,KAAK,UAAS,aACF,EACZN,WAAYnB,EAAQC,EAAWyB,QAAQ,SAAMN,EAASrB,SAErDF,OAIPwB,EAAAA,IAACM,EACC,CAAAC,WACA,EAAAC,QAAS,EACTC,WAAY9B,EAAQ,EAAI,EACxB+B,eAAgBjC,EAAW,SAAW,aAErCC,SAAAA,MAEG"}
@@ -5,7 +5,7 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/material": "^5.13.6",
9
- "react": "^18.2.0"
8
+ "@mui/material": "^6.4.5",
9
+ "react": "^19.0.0"
10
10
  }
11
11
  }
@@ -6,4 +6,4 @@ export interface GroupValueCardProps {
6
6
  children: ValueItemElement | ValueItemElement[];
7
7
  dense?: boolean;
8
8
  }
9
- export declare const GroupValueCard: ({ title, subtitle, centered, children, dense, }: GroupValueCardProps) => JSX.Element;
9
+ export declare const GroupValueCard: ({ title, subtitle, centered, children, dense, }: GroupValueCardProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  import { GroupValueCardProps } from "./group-value-card";
2
2
  export declare const GroupValueCardDummy: ({ dense, editable, ...rest }: GroupValueCardProps & {
3
- editable?: boolean | undefined;
4
- }) => JSX.Element;
3
+ editable?: boolean;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/theme.ts","../../src/group-value-card/group-value-card.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import Grid from \"@mui/material/Grid\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { ValueItemElement } from \"../value-item\";\n\nexport interface GroupValueCardProps {\n title: string;\n subtitle?: string;\n centered?: boolean;\n children: ValueItemElement | ValueItemElement[];\n dense?: boolean;\n}\n\nexport const GroupValueCard = ({\n title,\n subtitle,\n centered,\n children,\n dense,\n}: GroupValueCardProps) => {\n const { typography } = useTheme();\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n return (\n <Paper\n sx={{\n paddingBottom: dense ? 0 : 1,\n }}\n >\n <Box\n bgcolor={defaultColor}\n px={dense ? 1 : 2}\n py={dense ? 0.5 : 1}\n lineHeight={dense ? 0 : undefined}\n >\n <Typography variant={dense ? \"body1\" : \"h6\"} role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant={dense ? \"caption\" : \"body2\"}\n role=\"heading\"\n aria-level={2}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n <Grid\n container\n padding={1}\n rowSpacing={dense ? 1 : 2}\n justifyContent={centered ? \"center\" : \"flex-start\"}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n"],"names":["GroupValueCard","title","subtitle","centered","children","dense","typography","useTheme","defaultColor","lightWeight","darkWeight","palette","mode","grey","useGetDefaultThemeColor","_jsxs","Paper","sx","paddingBottom","Box","bgcolor","px","py","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Grid","container","padding","rowSpacing","justifyContent"],"mappings":"yRAIO,MCYMA,EAAiB,EAC5BC,QACAC,WACAC,WACAC,WACAC,YAEA,MAAMC,WAAEA,GAAeC,IACjBC,EDpB+B,GACrCC,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYJ,IACpB,MAAwB,UAAjBI,EAAQC,KAAmBD,EAAQE,KAAKJ,GAAeE,EAAQE,KAAKH,EAAW,ECejEI,CAAwB,CAAEL,YAAa,IAAKC,WAAY,MAE7E,OACEK,EAACC,EAAK,CACJC,GAAI,CACFC,cAAeb,EAAQ,EAAI,GAC5BD,SAAA,CAEDW,EAACI,EACC,CAAAC,QAASZ,EACTa,GAAIhB,EAAQ,EAAI,EAChBiB,GAAIjB,EAAQ,GAAM,EAClBkB,WAAYlB,EAAQ,OAAImB,YAExBC,EAACC,EAAW,CAAAC,QAAStB,EAAQ,QAAU,KAAMuB,KAAK,UAAS,aAAa,EACrExB,SAAAH,IAEFC,GACCuB,EAACC,GACCC,QAAStB,EAAQ,UAAY,QAC7BuB,KAAK,UAAS,aACF,EACZL,WAAYlB,EAAQC,EAAWuB,QAAQ,SAAML,EAASpB,SAErDF,OAIPuB,EAACK,EACC,CAAAC,WACA,EAAAC,QAAS,EACTC,WAAY5B,EAAQ,EAAI,EACxB6B,eAAgB/B,EAAW,SAAW,aAErCC,SAAAA,MAGL"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/theme.ts","../../src/group-value-card/group-value-card.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import Grid from \"@mui/material/Grid\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { ValueItemElement } from \"../value-item\";\n\nexport interface GroupValueCardProps {\n title: string;\n subtitle?: string;\n centered?: boolean;\n children: ValueItemElement | ValueItemElement[];\n dense?: boolean;\n}\n\nexport const GroupValueCard = ({\n title,\n subtitle,\n centered,\n children,\n dense,\n}: GroupValueCardProps) => {\n const { typography } = useTheme();\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n return (\n <Paper\n sx={{\n paddingBottom: dense ? 0 : 1,\n }}\n >\n <Box\n bgcolor={defaultColor}\n px={dense ? 1 : 2}\n py={dense ? 0.5 : 1}\n lineHeight={dense ? 0 : undefined}\n >\n <Typography variant={dense ? \"body1\" : \"h6\"} role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant={dense ? \"caption\" : \"body2\"}\n role=\"heading\"\n aria-level={2}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n <Grid\n container\n padding={1}\n rowSpacing={dense ? 1 : 2}\n justifyContent={centered ? \"center\" : \"flex-start\"}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n"],"names":["GroupValueCard","title","subtitle","centered","children","dense","typography","useTheme","defaultColor","lightWeight","darkWeight","palette","mode","grey","useGetDefaultThemeColor","_jsxs","Paper","sx","paddingBottom","Box","bgcolor","px","py","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Grid","container","padding","rowSpacing","justifyContent"],"mappings":"yRAIO,MCYMA,EAAiB,EAC5BC,QACAC,WACAC,WACAC,WACAC,YAEA,MAAMC,WAAEA,GAAeC,IACjBC,EDpB+B,GACrCC,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYJ,IACpB,MAAwB,UAAjBI,EAAQC,KAAmBD,EAAQE,KAAKJ,GAAeE,EAAQE,KAAKH,EAAW,ECejEI,CAAwB,CAAEL,YAAa,IAAKC,WAAY,MAE7E,OACEK,EAACC,EAAK,CACJC,GAAI,CACFC,cAAeb,EAAQ,EAAI,GAC5BD,SAAA,CAEDW,EAACI,EACC,CAAAC,QAASZ,EACTa,GAAIhB,EAAQ,EAAI,EAChBiB,GAAIjB,EAAQ,GAAM,EAClBkB,WAAYlB,EAAQ,OAAImB,YAExBC,EAACC,EAAW,CAAAC,QAAStB,EAAQ,QAAU,KAAMuB,KAAK,UAAS,aAAa,EACrExB,SAAAH,IAEFC,GACCuB,EAACC,GACCC,QAAStB,EAAQ,UAAY,QAC7BuB,KAAK,UAAS,aACF,EACZL,WAAYlB,EAAQC,EAAWuB,QAAQ,SAAML,EAASpB,SAErDF,OAIPuB,EAACK,EACC,CAAAC,WACA,EAAAC,QAAS,EACTC,WAAY5B,EAAQ,EAAI,EACxB6B,eAAgB/B,EAAW,SAAW,aAErCC,SAAAA,MAEG"}
@@ -5,7 +5,7 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/material": "^5.13.6",
9
- "react": "^18.2.0"
8
+ "@mui/material": "^6.4.5",
9
+ "react": "^19.0.0"
10
10
  }
11
11
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@mui/material/styles"),t=require("@mui/material/Breadcrumbs"),a=require("@mui/material/Container"),i=require("@mui/material/Box"),n=require("@mui/material/Tabs"),l=require("@mui/material/Tab"),o=require("@mui/material/Button"),s=require("react-router-dom"),u=require("react"),d=require("@mui/material/Link"),c=require("@mui/material"),h=require("@mui/material/CircularProgress"),m=require("@mui/material/Typography");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=f(t),x=f(a),b=f(i),g=f(n),y=f(l),j=f(o),v=f(d),q=f(h),T=f(m);const C=u.forwardRef(((r,t)=>{const{href:a,...i}=r;return e.jsx(s.Link,{ref:t,to:a,...i})})),k=u.forwardRef(((r,t)=>e.jsx(v.default,{...r,component:C}))),z=u.createContext([0,()=>null]);z.Provider;const B=({loading:t,children:a})=>{const{typography:i}=r.useTheme();return t?e.jsx(q.default,{color:"inherit",size:i.h4.fontSize,"aria-label":"title loading"}):"string"==typeof a?e.jsx(T.default,{variant:"h4",role:"heading","aria-level":1,children:a}):e.jsx(e.Fragment,{children:a})},w=({loading:t,children:a})=>{const{typography:i}=r.useTheme();return t?e.jsx(q.default,{color:"inherit",size:i.body1.fontSize,"aria-label":"subtitle loading"}):"string"==typeof a?e.jsx(T.default,{variant:"body1",role:"heading","aria-level":2,children:a}):e.jsx(e.Fragment,{children:a})};exports.Header=({title:t="",loadingTitle:a,subtitle:i,loadingSubtitle:n,preset:l="default",actionsVariant:o="outlined",breadcrumbs:d,actions:h,tabs:m,tabsMode:f="panel",navigationButton:v})=>{const q=(m||[]).map((e=>e.path)).filter(Boolean),{palette:T}=r.useTheme(),C=(({lightWeight:e=100,darkWeight:r=900}={})=>{const{palette:t}=c.useTheme();return"light"===t.mode?t.grey[e]:t.grey[r]})(),[L,P]=u.useContext(z),S=(e=>{const{pathname:r}=s.useLocation();for(let t=0;t<e.length;t+=1){const a=e[t],i=s.matchPath(a,r);if(null!==i)return i}return null})(q),H={default:C,primary:T.primary.main,secondary:T.secondary.main,inherit:"inherit",transparent:"transparent"},F=H[l],M={default:T.getContrastText(H.default),primary:T.primary.contrastText,secondary:T.secondary.contrastText,inherit:"inherit",transparent:T.text.primary}[l],R="panel"===f?L:S?.pattern?.path;return e.jsx(b.default,{bgcolor:F,color:M,children:e.jsxs(x.default,{children:[e.jsxs(b.default,{sx:{py:3,display:"flex",flexDirection:"row",justifyContent:"space-between"},children:[e.jsxs(b.default,{children:[v&&e.jsx(j.default,{href:v.href,size:"small",color:"inherit",LinkComponent:k,startIcon:v.icon,sx:{mb:1},children:v.text}),d?.length&&e.jsx(p.default,{color:"inherit",separator:"›","aria-label":"breadcrumb",sx:{marginTop:1},children:d.map((({id:r,link:t,text:a})=>e.jsx(k,{underline:"hover",color:"inherit",href:t,variant:"body2",role:"link",children:a},r)))}),e.jsx(B,{loading:a,children:t}),(i||n)&&e.jsx(w,{loading:n,children:i})]}),h&&e.jsx(b.default,{children:h.map((({disabled:r,id:t,href:a,onClick:i,text:n},l)=>e.jsx(j.default,{component:a?k:"button",role:"button",color:"inherit",disabled:r,variant:o,size:"small",href:a,onClick:i,sx:{mr:l!=h.length-1?1:0},children:n},t)))})]}),m&&e.jsx(g.default,{value:R,textColor:"inherit",onChange:"panel"===f?(e,r)=>P(r):void 0,children:m.map((({id:r,label:t,disabled:a,path:i,href:n})=>{const l={label:t,disabled:a};return"panel"===f?e.jsx(y.default,{...l},r):e.jsx(y.default,{...l,component:k,href:n,value:i},r)}))})]})})},exports.HeaderSubtitle=w,exports.HeaderTitle=B;
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@mui/material/styles"),i=require("@mui/material/Breadcrumbs"),t=require("@mui/material/Container"),a=require("@mui/material/Box"),n=require("@mui/material/Tabs"),l=require("@mui/material/Tab"),o=require("@mui/material/Button"),s=require("@mui/material"),d=require("react"),u=require("@mui/material/CircularProgress"),c=require("@mui/material/Typography"),h=require("@mui/material/Link");const m=d.createContext([0,()=>null]);m.Provider;const x=({loading:i,children:t})=>{const{typography:a}=r.useTheme();return i?e.jsx(u,{color:"inherit",size:a.h4.fontSize,"aria-label":"title loading"}):"string"==typeof t?e.jsx(c,{variant:"h4",role:"heading","aria-level":1,children:t}):e.jsx(e.Fragment,{children:t})},p=({loading:i,children:t})=>{const{typography:a}=r.useTheme();return i?e.jsx(u,{color:"inherit",size:a.body1.fontSize,"aria-label":"subtitle loading"}):"string"==typeof t?e.jsx(c,{variant:"body1",role:"heading","aria-level":2,children:t}):e.jsx(e.Fragment,{children:t})};exports.Header=({title:u="",loadingTitle:c,subtitle:g,loadingSubtitle:b,preset:y="default",actionsVariant:j="outlined",breadcrumbs:f,actions:q,tabs:v,tabsMode:T="panel",navigationButton:C})=>{const{palette:k}=r.useTheme(),z=(({lightWeight:e=100,darkWeight:r=900}={})=>{const{palette:i}=s.useTheme();return"light"===i.mode?i.grey[e]:i.grey[r]})(),[B,S]=d.useContext(m),H={default:z,primary:k.primary.main,secondary:k.secondary.main,inherit:"inherit",transparent:"transparent"},w=H[y],F={default:k.getContrastText(H.default),primary:k.primary.contrastText,secondary:k.secondary.contrastText,inherit:"inherit",transparent:k.text.primary}[y],L=B;return e.jsx(a,{bgcolor:w,color:F,children:e.jsxs(t,{children:[e.jsxs(a,{sx:{py:3,display:"flex",flexDirection:"row",justifyContent:"space-between"},children:[e.jsxs(a,{children:[C&&e.jsx(o,{href:C.href,size:"small",color:"inherit",LinkComponent:h,startIcon:C.icon,sx:{mb:1},children:C.text}),f?.length&&e.jsx(i,{color:"inherit",separator:"›","aria-label":"breadcrumb",sx:{marginTop:1},children:f.map((({id:r,link:i,text:t})=>e.jsx(h,{underline:"hover",color:"inherit",href:i,variant:"body2",role:"link",children:t},r)))}),e.jsx(x,{loading:c,children:u}),(g||b)&&e.jsx(p,{loading:b,children:g})]}),q&&e.jsx(a,{children:q.map((({disabled:r,id:i,href:t,onClick:a,text:n},l)=>e.jsx(o,{component:t?h:"button",role:"button",color:"inherit",disabled:r,variant:j,size:"small",href:t,onClick:a,sx:{mr:l!=q.length-1?1:0},children:n},i)))})]}),v&&e.jsx(n,{value:L,textColor:"inherit",onChange:"panel"===T?(e,r)=>S(r):void 0,children:v.map((({id:r,label:i,disabled:t,path:a,href:n})=>{const o={label:i,disabled:t};return"panel"===T?e.jsx(l,{...o},r):e.jsx(l,{...o,component:h,href:n,value:a},r)}))})]})})},exports.HeaderSubtitle=p,exports.HeaderTitle=x;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/link/link.tsx","../../../src/tab-provider/tab-provider.context.ts","../../../src/header/header-title.tsx","../../../src/header/header.tsx","../../../src/utils/theme.ts","../../../src/hooks/routing/routing.hooks.ts"],"sourcesContent":["import { Link as RouterLink, LinkProps as RouterLinkProps } from \"react-router-dom\";\nimport { forwardRef } from \"react\";\nimport MuiLink, { LinkProps } from \"@mui/material/Link\";\n\n/* eslint-disable react/display-name, @typescript-eslint/no-explicit-any */\nexport const LinkBehaviour = forwardRef<\n any,\n Omit<RouterLinkProps, \"to\"> & { href: RouterLinkProps[\"to\"] }\n>((props, ref) => {\n const { href, ...other } = props;\n return <RouterLink ref={ref} to={href} {...other} />;\n});\n\nexport const Link = forwardRef<any, LinkProps>((props, _1) => {\n return <MuiLink {...(props as any)} component={LinkBehaviour} />;\n});\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { PropsWithChildren } from \"react\";\n\nexport type HeaderTitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderTitle = ({ loading, children }: HeaderTitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress color=\"inherit\" size={typography.h4.fontSize} aria-label=\"title loading\" />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n\nexport type HeaderSubtitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderSubtitle = ({ loading, children }: HeaderSubtitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress\n color=\"inherit\"\n size={typography.body1.fontSize}\n aria-label=\"subtitle loading\"\n />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"body1\" role=\"heading\" aria-level={2}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Container from \"@mui/material/Container\";\nimport Box from \"@mui/material/Box\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Button from \"@mui/material/Button\";\nimport { Link } from \"../link\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { HeaderComponent, HeaderPreset, HeaderProps } from \"./header.types\";\nimport { useTab } from \"../tab-provider\";\nimport { useLocation } from \"react-router-dom\";\nimport { HeaderSubtitle, HeaderTitle } from \"./header-title\";\nimport { useRouteMatch } from \"../hooks\";\n\n/**\n * Section used to explain give basic information about the page\n * and put the main actions\n */\nexport const Header: HeaderComponent = ({\n title = \"\",\n loadingTitle,\n subtitle,\n loadingSubtitle,\n preset = \"default\",\n actionsVariant = \"outlined\",\n breadcrumbs,\n actions,\n tabs,\n tabsMode = \"panel\",\n navigationButton,\n}: HeaderProps) => {\n const paths = (tabs || []).map((tab) => tab.path).filter(Boolean) as string[];\n\n const { palette } = useTheme();\n const defaultColor = useGetDefaultThemeColor();\n const [selectedTab, setSelectedTab] = useTab();\n const routeMatch = useRouteMatch(paths);\n\n const bgColorPresets: Record<HeaderPreset, string> = {\n default: defaultColor,\n primary: palette.primary.main,\n secondary: palette.secondary.main,\n inherit: \"inherit\",\n transparent: \"transparent\",\n };\n const bgColor = bgColorPresets[preset];\n const textColorPresets: Record<HeaderPreset, string> = {\n default: palette.getContrastText(bgColorPresets.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n inherit: \"inherit\",\n transparent: palette.text.primary,\n };\n const textColor = textColorPresets[preset];\n\n const modedSelectedTab = tabsMode === \"panel\" ? selectedTab : routeMatch?.pattern?.path;\n\n return (\n <Box bgcolor={bgColor} color={textColor}>\n <Container>\n <Box sx={{ py: 3, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <Box>\n {navigationButton && (\n <Button\n href={navigationButton.href}\n size=\"small\"\n color=\"inherit\"\n LinkComponent={Link}\n startIcon={navigationButton.icon}\n sx={{ mb: 1 }}\n >\n {navigationButton.text}\n </Button>\n )}\n {breadcrumbs?.length && (\n <Breadcrumbs\n color=\"inherit\"\n separator=\"›\"\n aria-label=\"breadcrumb\"\n sx={{ marginTop: 1 }}\n >\n {breadcrumbs.map(({ id, link, text }) => (\n <Link\n key={id}\n underline=\"hover\"\n color=\"inherit\"\n href={link}\n variant=\"body2\"\n role=\"link\"\n >\n {text}\n </Link>\n ))}\n </Breadcrumbs>\n )}\n <HeaderTitle loading={loadingTitle}>{title}</HeaderTitle>\n {(subtitle || loadingSubtitle) && (\n <HeaderSubtitle loading={loadingSubtitle}>{subtitle}</HeaderSubtitle>\n )}\n </Box>\n {actions && (\n <Box>\n {actions.map(({ disabled, id, href, onClick, text }, i) => (\n <Button\n component={href ? Link : \"button\"}\n role=\"button\"\n color=\"inherit\"\n disabled={disabled}\n key={id}\n variant={actionsVariant}\n size=\"small\"\n href={href}\n onClick={onClick}\n sx={{ mr: i != actions.length - 1 ? 1 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n {tabs && (\n <Tabs\n value={modedSelectedTab}\n textColor=\"inherit\"\n onChange={tabsMode === \"panel\" ? (_, index) => setSelectedTab(index) : undefined}\n >\n {tabs.map(({ id, label, disabled, path, href }) => {\n const tabProps = { label, disabled };\n if (tabsMode === \"panel\") {\n return <Tab key={id} {...tabProps} />;\n } else {\n return <Tab key={id} {...tabProps} component={Link} href={href} value={path} />;\n }\n })}\n </Tabs>\n )}\n </Container>\n </Box>\n );\n};\n","import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { useEffect, useRef } from \"react\";\nimport { matchPath, useLocation, useNavigate } from \"react-router-dom\";\n\nexport interface NavigateWhenValueChangesOptions<T> {\n from: T;\n to: T;\n}\n\nexport const useNavigateWhenValueChanges = <T>(\n path: string,\n value: T | undefined,\n { from, to }: NavigateWhenValueChangesOptions<T>,\n) => {\n const prevRef = useRef<T>();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (prevRef.current === from && value === to) {\n navigate(path);\n }\n prevRef.current = value;\n }, [value]);\n};\n\nexport const useRouteMatch = (patterns: string[]) => {\n const { pathname } = useLocation();\n\n for (let i = 0; i < patterns.length; i += 1) {\n const pattern = patterns[i];\n const possibleMatch = matchPath(pattern, pathname);\n if (possibleMatch !== null) {\n return possibleMatch;\n }\n }\n\n return null;\n};\n"],"names":["LinkBehaviour","forwardRef","props","ref","href","other","_jsx","jsx","RouterLink","to","Link","_1","MuiLink","component","TabContext","createContext","Provider","HeaderTitle","loading","children","typography","useTheme","CircularProgress","color","size","h4","fontSize","Typography","variant","role","_Fragment","Fragment","HeaderSubtitle","body1","title","loadingTitle","subtitle","loadingSubtitle","preset","actionsVariant","breadcrumbs","actions","tabs","tabsMode","navigationButton","paths","map","tab","path","filter","Boolean","palette","defaultColor","lightWeight","darkWeight","mode","grey","useGetDefaultThemeColor","selectedTab","setSelectedTab","useContext","routeMatch","patterns","pathname","useLocation","i","length","pattern","possibleMatch","matchPath","useRouteMatch","bgColorPresets","default","primary","main","secondary","inherit","transparent","bgColor","textColor","getContrastText","contrastText","text","modedSelectedTab","Box","bgcolor","_jsxs","Container","sx","py","display","flexDirection","justifyContent","Button","LinkComponent","startIcon","icon","mb","Breadcrumbs","separator","marginTop","id","link","underline","disabled","onClick","mr","Tabs","value","onChange","_","index","undefined","label","tabProps","Tab"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/theme.ts","../../../src/tab-provider/tab-provider.context.ts","../../../src/header/header-title.tsx","../../../src/header/header.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { PropsWithChildren } from \"react\";\n\nexport type HeaderTitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderTitle = ({ loading, children }: HeaderTitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress color=\"inherit\" size={typography.h4.fontSize} aria-label=\"title loading\" />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n\nexport type HeaderSubtitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderSubtitle = ({ loading, children }: HeaderSubtitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress\n color=\"inherit\"\n size={typography.body1.fontSize}\n aria-label=\"subtitle loading\"\n />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"body1\" role=\"heading\" aria-level={2}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Container from \"@mui/material/Container\";\nimport Box from \"@mui/material/Box\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Button from \"@mui/material/Button\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { HeaderComponent, HeaderPreset, HeaderProps } from \"./header.types\";\nimport { useTab } from \"../tab-provider\";\nimport { HeaderSubtitle, HeaderTitle } from \"./header-title\";\nimport Link from \"@mui/material/Link\";\n\n/**\n * Section used to explain give basic information about the page\n * and put the main actions\n */\nexport const Header: HeaderComponent = ({\n title = \"\",\n loadingTitle,\n subtitle,\n loadingSubtitle,\n preset = \"default\",\n actionsVariant = \"outlined\",\n breadcrumbs,\n actions,\n tabs,\n tabsMode = \"panel\",\n navigationButton,\n}: HeaderProps) => {\n const { palette } = useTheme();\n const defaultColor = useGetDefaultThemeColor();\n const [selectedTab, setSelectedTab] = useTab();\n\n const bgColorPresets: Record<HeaderPreset, string> = {\n default: defaultColor,\n primary: palette.primary.main,\n secondary: palette.secondary.main,\n inherit: \"inherit\",\n transparent: \"transparent\",\n };\n const bgColor = bgColorPresets[preset];\n const textColorPresets: Record<HeaderPreset, string> = {\n default: palette.getContrastText(bgColorPresets.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n inherit: \"inherit\",\n transparent: palette.text.primary,\n };\n const textColor = textColorPresets[preset];\n\n const modedSelectedTab = selectedTab;\n\n return (\n <Box bgcolor={bgColor} color={textColor}>\n <Container>\n <Box sx={{ py: 3, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <Box>\n {navigationButton && (\n <Button\n href={navigationButton.href}\n size=\"small\"\n color=\"inherit\"\n LinkComponent={Link}\n startIcon={navigationButton.icon}\n sx={{ mb: 1 }}\n >\n {navigationButton.text}\n </Button>\n )}\n {breadcrumbs?.length && (\n <Breadcrumbs\n color=\"inherit\"\n separator=\"›\"\n aria-label=\"breadcrumb\"\n sx={{ marginTop: 1 }}\n >\n {breadcrumbs.map(({ id, link, text }) => (\n <Link\n key={id}\n underline=\"hover\"\n color=\"inherit\"\n href={link}\n variant=\"body2\"\n role=\"link\"\n >\n {text}\n </Link>\n ))}\n </Breadcrumbs>\n )}\n <HeaderTitle loading={loadingTitle}>{title}</HeaderTitle>\n {(subtitle || loadingSubtitle) && (\n <HeaderSubtitle loading={loadingSubtitle}>{subtitle}</HeaderSubtitle>\n )}\n </Box>\n {actions && (\n <Box>\n {actions.map(({ disabled, id, href, onClick, text }, i) => (\n <Button\n component={href ? Link : \"button\"}\n role=\"button\"\n color=\"inherit\"\n disabled={disabled}\n key={id}\n variant={actionsVariant}\n size=\"small\"\n href={href}\n onClick={onClick}\n sx={{ mr: i != actions.length - 1 ? 1 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n {tabs && (\n <Tabs\n value={modedSelectedTab}\n textColor=\"inherit\"\n onChange={tabsMode === \"panel\" ? (_, index) => setSelectedTab(index) : undefined}\n >\n {tabs.map(({ id, label, disabled, path, href }) => {\n const tabProps = { label, disabled };\n if (tabsMode === \"panel\") {\n return <Tab key={id} {...tabProps} />;\n } else {\n return <Tab key={id} {...tabProps} component={Link} href={href} value={path} />;\n }\n })}\n </Tabs>\n )}\n </Container>\n </Box>\n );\n};\n"],"names":["TabContext","createContext","Provider","HeaderTitle","loading","children","typography","useTheme","_jsx","CircularProgress","color","size","h4","fontSize","Typography","variant","role","jsx","_Fragment","Fragment","HeaderSubtitle","body1","title","loadingTitle","subtitle","loadingSubtitle","preset","actionsVariant","breadcrumbs","actions","tabs","tabsMode","navigationButton","palette","defaultColor","lightWeight","darkWeight","mode","grey","useGetDefaultThemeColor","selectedTab","setSelectedTab","useContext","bgColorPresets","default","primary","main","secondary","inherit","transparent","bgColor","textColor","getContrastText","contrastText","text","modedSelectedTab","Box","bgcolor","_jsxs","Container","sx","py","display","flexDirection","justifyContent","Button","href","LinkComponent","Link","startIcon","icon","mb","length","Breadcrumbs","separator","marginTop","map","id","link","underline","disabled","onClick","i","component","mr","Tabs","value","onChange","_","index","undefined","label","path","tabProps","Tab"],"mappings":"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"}
@@ -5,8 +5,7 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/material": "^5.13.6",
9
- "react": "^18.2.0",
10
- "react-router-dom": "^6.14.0"
8
+ "@mui/material": "^6.4.5",
9
+ "react": "^19.0.0"
11
10
  }
12
11
  }
@@ -2,8 +2,8 @@ import { PropsWithChildren } from "react";
2
2
  export type HeaderTitleProps = PropsWithChildren<{
3
3
  loading?: boolean;
4
4
  }>;
5
- export declare const HeaderTitle: ({ loading, children }: HeaderTitleProps) => JSX.Element;
5
+ export declare const HeaderTitle: ({ loading, children }: HeaderTitleProps) => import("react/jsx-runtime").JSX.Element;
6
6
  export type HeaderSubtitleProps = PropsWithChildren<{
7
7
  loading?: boolean;
8
8
  }>;
9
- export declare const HeaderSubtitle: ({ loading, children }: HeaderSubtitleProps) => JSX.Element;
9
+ export declare const HeaderSubtitle: ({ loading, children }: HeaderSubtitleProps) => import("react/jsx-runtime").JSX.Element;
package/header/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as r,Fragment as e,jsxs as t}from"react/jsx-runtime";import{useTheme as i}from"@mui/material/styles";import a from"@mui/material/Breadcrumbs";import n from"@mui/material/Container";import o from"@mui/material/Box";import l from"@mui/material/Tabs";import m from"@mui/material/Tab";import d from"@mui/material/Button";import{Link as c,useLocation as s,matchPath as h}from"react-router-dom";import{forwardRef as p,createContext as u,useContext as f}from"react";import g from"@mui/material/Link";import{useTheme as b}from"@mui/material";import y from"@mui/material/CircularProgress";import x from"@mui/material/Typography";const v=p(((e,t)=>{const{href:i,...a}=e;return r(c,{ref:t,to:i,...a})})),C=p(((e,t)=>r(g,{...e,component:v}))),T=u([0,()=>null]);T.Provider;const k=({loading:t,children:a})=>{const{typography:n}=i();return t?r(y,{color:"inherit",size:n.h4.fontSize,"aria-label":"title loading"}):"string"==typeof a?r(x,{variant:"h4",role:"heading","aria-level":1,children:a}):r(e,{children:a})},z=({loading:t,children:a})=>{const{typography:n}=i();return t?r(y,{color:"inherit",size:n.body1.fontSize,"aria-label":"subtitle loading"}):"string"==typeof a?r(x,{variant:"body1",role:"heading","aria-level":2,children:a}):r(e,{children:a})},B=({title:e="",loadingTitle:c,subtitle:p,loadingSubtitle:u,preset:g="default",actionsVariant:y="outlined",breadcrumbs:x,actions:v,tabs:B,tabsMode:L="panel",navigationButton:S})=>{const j=(B||[]).map((r=>r.path)).filter(Boolean),{palette:w}=i(),P=(({lightWeight:r=100,darkWeight:e=900}={})=>{const{palette:t}=b();return"light"===t.mode?t.grey[r]:t.grey[e]})(),[W,D]=f(T),I=(r=>{const{pathname:e}=s();for(let t=0;t<r.length;t+=1){const i=r[t],a=h(i,e);if(null!==a)return a}return null})(j),M={default:P,primary:w.primary.main,secondary:w.secondary.main,inherit:"inherit",transparent:"transparent"},V=M[g],q={default:w.getContrastText(M.default),primary:w.primary.contrastText,secondary:w.secondary.contrastText,inherit:"inherit",transparent:w.text.primary}[g],A="panel"===L?W:I?.pattern?.path;return r(o,{bgcolor:V,color:q,children:t(n,{children:[t(o,{sx:{py:3,display:"flex",flexDirection:"row",justifyContent:"space-between"},children:[t(o,{children:[S&&r(d,{href:S.href,size:"small",color:"inherit",LinkComponent:C,startIcon:S.icon,sx:{mb:1},children:S.text}),x?.length&&r(a,{color:"inherit",separator:"›","aria-label":"breadcrumb",sx:{marginTop:1},children:x.map((({id:e,link:t,text:i})=>r(C,{underline:"hover",color:"inherit",href:t,variant:"body2",role:"link",children:i},e)))}),r(k,{loading:c,children:e}),(p||u)&&r(z,{loading:u,children:p})]}),v&&r(o,{children:v.map((({disabled:e,id:t,href:i,onClick:a,text:n},o)=>r(d,{component:i?C:"button",role:"button",color:"inherit",disabled:e,variant:y,size:"small",href:i,onClick:a,sx:{mr:o!=v.length-1?1:0},children:n},t)))})]}),B&&r(l,{value:A,textColor:"inherit",onChange:"panel"===L?(r,e)=>D(e):void 0,children:B.map((({id:e,label:t,disabled:i,path:a,href:n})=>{const o={label:t,disabled:i};return r(m,"panel"===L?{...o}:{...o,component:C,href:n,value:a},e)}))})]})})};export{B as Header,z as HeaderSubtitle,k as HeaderTitle};
1
+ import{jsx as r,Fragment as e,jsxs as i}from"react/jsx-runtime";import{useTheme as t}from"@mui/material/styles";import a from"@mui/material/Breadcrumbs";import n from"@mui/material/Container";import o from"@mui/material/Box";import l from"@mui/material/Tabs";import m from"@mui/material/Tab";import d from"@mui/material/Button";import{useTheme as c}from"@mui/material";import{createContext as s,useContext as h}from"react";import p from"@mui/material/CircularProgress";import u from"@mui/material/Typography";import f from"@mui/material/Link";const b=s([0,()=>null]);b.Provider;const g=({loading:i,children:a})=>{const{typography:n}=t();return i?r(p,{color:"inherit",size:n.h4.fontSize,"aria-label":"title loading"}):"string"==typeof a?r(u,{variant:"h4",role:"heading","aria-level":1,children:a}):r(e,{children:a})},y=({loading:i,children:a})=>{const{typography:n}=t();return i?r(p,{color:"inherit",size:n.body1.fontSize,"aria-label":"subtitle loading"}):"string"==typeof a?r(u,{variant:"body1",role:"heading","aria-level":2,children:a}):r(e,{children:a})},x=({title:e="",loadingTitle:s,subtitle:p,loadingSubtitle:u,preset:x="default",actionsVariant:v="outlined",breadcrumbs:C,actions:T,tabs:k,tabsMode:z="panel",navigationButton:B})=>{const{palette:S}=t(),j=(({lightWeight:r=100,darkWeight:e=900}={})=>{const{palette:i}=c();return"light"===i.mode?i.grey[r]:i.grey[e]})(),[w,L]=h(b),P={default:j,primary:S.primary.main,secondary:S.secondary.main,inherit:"inherit",transparent:"transparent"},W=P[x],D={default:S.getContrastText(P.default),primary:S.primary.contrastText,secondary:S.secondary.contrastText,inherit:"inherit",transparent:S.text.primary},I=w;return r(o,{bgcolor:W,color:D[x],children:i(n,{children:[i(o,{sx:{py:3,display:"flex",flexDirection:"row",justifyContent:"space-between"},children:[i(o,{children:[B&&r(d,{href:B.href,size:"small",color:"inherit",LinkComponent:f,startIcon:B.icon,sx:{mb:1},children:B.text}),C?.length&&r(a,{color:"inherit",separator:"›","aria-label":"breadcrumb",sx:{marginTop:1},children:C.map((({id:e,link:i,text:t})=>r(f,{underline:"hover",color:"inherit",href:i,variant:"body2",role:"link",children:t},e)))}),r(g,{loading:s,children:e}),(p||u)&&r(y,{loading:u,children:p})]}),T&&r(o,{children:T.map((({disabled:e,id:i,href:t,onClick:a,text:n},o)=>r(d,{component:t?f:"button",role:"button",color:"inherit",disabled:e,variant:v,size:"small",href:t,onClick:a,sx:{mr:o!=T.length-1?1:0},children:n},i)))})]}),k&&r(l,{value:I,textColor:"inherit",onChange:"panel"===z?(r,e)=>L(e):void 0,children:k.map((({id:e,label:i,disabled:t,path:a,href:n})=>{const o={label:i,disabled:t};return r(m,"panel"===z?{...o}:{...o,component:f,href:n,value:a},e)}))})]})})};export{x as Header,y as HeaderSubtitle,g as HeaderTitle};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/link/link.tsx","../../src/tab-provider/tab-provider.context.ts","../../src/header/header-title.tsx","../../src/header/header.tsx","../../src/utils/theme.ts","../../src/hooks/routing/routing.hooks.ts"],"sourcesContent":["import { Link as RouterLink, LinkProps as RouterLinkProps } from \"react-router-dom\";\nimport { forwardRef } from \"react\";\nimport MuiLink, { LinkProps } from \"@mui/material/Link\";\n\n/* eslint-disable react/display-name, @typescript-eslint/no-explicit-any */\nexport const LinkBehaviour = forwardRef<\n any,\n Omit<RouterLinkProps, \"to\"> & { href: RouterLinkProps[\"to\"] }\n>((props, ref) => {\n const { href, ...other } = props;\n return <RouterLink ref={ref} to={href} {...other} />;\n});\n\nexport const Link = forwardRef<any, LinkProps>((props, _1) => {\n return <MuiLink {...(props as any)} component={LinkBehaviour} />;\n});\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { PropsWithChildren } from \"react\";\n\nexport type HeaderTitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderTitle = ({ loading, children }: HeaderTitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress color=\"inherit\" size={typography.h4.fontSize} aria-label=\"title loading\" />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n\nexport type HeaderSubtitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderSubtitle = ({ loading, children }: HeaderSubtitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress\n color=\"inherit\"\n size={typography.body1.fontSize}\n aria-label=\"subtitle loading\"\n />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"body1\" role=\"heading\" aria-level={2}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Container from \"@mui/material/Container\";\nimport Box from \"@mui/material/Box\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Button from \"@mui/material/Button\";\nimport { Link } from \"../link\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { HeaderComponent, HeaderPreset, HeaderProps } from \"./header.types\";\nimport { useTab } from \"../tab-provider\";\nimport { useLocation } from \"react-router-dom\";\nimport { HeaderSubtitle, HeaderTitle } from \"./header-title\";\nimport { useRouteMatch } from \"../hooks\";\n\n/**\n * Section used to explain give basic information about the page\n * and put the main actions\n */\nexport const Header: HeaderComponent = ({\n title = \"\",\n loadingTitle,\n subtitle,\n loadingSubtitle,\n preset = \"default\",\n actionsVariant = \"outlined\",\n breadcrumbs,\n actions,\n tabs,\n tabsMode = \"panel\",\n navigationButton,\n}: HeaderProps) => {\n const paths = (tabs || []).map((tab) => tab.path).filter(Boolean) as string[];\n\n const { palette } = useTheme();\n const defaultColor = useGetDefaultThemeColor();\n const [selectedTab, setSelectedTab] = useTab();\n const routeMatch = useRouteMatch(paths);\n\n const bgColorPresets: Record<HeaderPreset, string> = {\n default: defaultColor,\n primary: palette.primary.main,\n secondary: palette.secondary.main,\n inherit: \"inherit\",\n transparent: \"transparent\",\n };\n const bgColor = bgColorPresets[preset];\n const textColorPresets: Record<HeaderPreset, string> = {\n default: palette.getContrastText(bgColorPresets.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n inherit: \"inherit\",\n transparent: palette.text.primary,\n };\n const textColor = textColorPresets[preset];\n\n const modedSelectedTab = tabsMode === \"panel\" ? selectedTab : routeMatch?.pattern?.path;\n\n return (\n <Box bgcolor={bgColor} color={textColor}>\n <Container>\n <Box sx={{ py: 3, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <Box>\n {navigationButton && (\n <Button\n href={navigationButton.href}\n size=\"small\"\n color=\"inherit\"\n LinkComponent={Link}\n startIcon={navigationButton.icon}\n sx={{ mb: 1 }}\n >\n {navigationButton.text}\n </Button>\n )}\n {breadcrumbs?.length && (\n <Breadcrumbs\n color=\"inherit\"\n separator=\"›\"\n aria-label=\"breadcrumb\"\n sx={{ marginTop: 1 }}\n >\n {breadcrumbs.map(({ id, link, text }) => (\n <Link\n key={id}\n underline=\"hover\"\n color=\"inherit\"\n href={link}\n variant=\"body2\"\n role=\"link\"\n >\n {text}\n </Link>\n ))}\n </Breadcrumbs>\n )}\n <HeaderTitle loading={loadingTitle}>{title}</HeaderTitle>\n {(subtitle || loadingSubtitle) && (\n <HeaderSubtitle loading={loadingSubtitle}>{subtitle}</HeaderSubtitle>\n )}\n </Box>\n {actions && (\n <Box>\n {actions.map(({ disabled, id, href, onClick, text }, i) => (\n <Button\n component={href ? Link : \"button\"}\n role=\"button\"\n color=\"inherit\"\n disabled={disabled}\n key={id}\n variant={actionsVariant}\n size=\"small\"\n href={href}\n onClick={onClick}\n sx={{ mr: i != actions.length - 1 ? 1 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n {tabs && (\n <Tabs\n value={modedSelectedTab}\n textColor=\"inherit\"\n onChange={tabsMode === \"panel\" ? (_, index) => setSelectedTab(index) : undefined}\n >\n {tabs.map(({ id, label, disabled, path, href }) => {\n const tabProps = { label, disabled };\n if (tabsMode === \"panel\") {\n return <Tab key={id} {...tabProps} />;\n } else {\n return <Tab key={id} {...tabProps} component={Link} href={href} value={path} />;\n }\n })}\n </Tabs>\n )}\n </Container>\n </Box>\n );\n};\n","import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { useEffect, useRef } from \"react\";\nimport { matchPath, useLocation, useNavigate } from \"react-router-dom\";\n\nexport interface NavigateWhenValueChangesOptions<T> {\n from: T;\n to: T;\n}\n\nexport const useNavigateWhenValueChanges = <T>(\n path: string,\n value: T | undefined,\n { from, to }: NavigateWhenValueChangesOptions<T>,\n) => {\n const prevRef = useRef<T>();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (prevRef.current === from && value === to) {\n navigate(path);\n }\n prevRef.current = value;\n }, [value]);\n};\n\nexport const useRouteMatch = (patterns: string[]) => {\n const { pathname } = useLocation();\n\n for (let i = 0; i < patterns.length; i += 1) {\n const pattern = patterns[i];\n const possibleMatch = matchPath(pattern, pathname);\n if (possibleMatch !== null) {\n return possibleMatch;\n }\n }\n\n return null;\n};\n"],"names":["LinkBehaviour","forwardRef","props","ref","href","other","_jsx","RouterLink","to","Link","_1","MuiLink","component","TabContext","createContext","Provider","HeaderTitle","loading","children","typography","useTheme","CircularProgress","color","size","h4","fontSize","Typography","variant","role","_Fragment","HeaderSubtitle","body1","Header","title","loadingTitle","subtitle","loadingSubtitle","preset","actionsVariant","breadcrumbs","actions","tabs","tabsMode","navigationButton","paths","map","tab","path","filter","Boolean","palette","defaultColor","lightWeight","darkWeight","mode","grey","useGetDefaultThemeColor","selectedTab","setSelectedTab","useContext","routeMatch","patterns","pathname","useLocation","i","length","pattern","possibleMatch","matchPath","useRouteMatch","bgColorPresets","default","primary","main","secondary","inherit","transparent","bgColor","textColor","getContrastText","contrastText","text","modedSelectedTab","Box","bgcolor","_jsxs","Container","sx","py","display","flexDirection","justifyContent","Button","LinkComponent","startIcon","icon","mb","Breadcrumbs","separator","marginTop","id","link","underline","disabled","onClick","mr","Tabs","value","onChange","_","index","undefined","label","tabProps","Tab"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/theme.ts","../../src/tab-provider/tab-provider.context.ts","../../src/header/header-title.tsx","../../src/header/header.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { PropsWithChildren } from \"react\";\n\nexport type HeaderTitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderTitle = ({ loading, children }: HeaderTitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress color=\"inherit\" size={typography.h4.fontSize} aria-label=\"title loading\" />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n\nexport type HeaderSubtitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderSubtitle = ({ loading, children }: HeaderSubtitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress\n color=\"inherit\"\n size={typography.body1.fontSize}\n aria-label=\"subtitle loading\"\n />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"body1\" role=\"heading\" aria-level={2}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Container from \"@mui/material/Container\";\nimport Box from \"@mui/material/Box\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Button from \"@mui/material/Button\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { HeaderComponent, HeaderPreset, HeaderProps } from \"./header.types\";\nimport { useTab } from \"../tab-provider\";\nimport { HeaderSubtitle, HeaderTitle } from \"./header-title\";\nimport Link from \"@mui/material/Link\";\n\n/**\n * Section used to explain give basic information about the page\n * and put the main actions\n */\nexport const Header: HeaderComponent = ({\n title = \"\",\n loadingTitle,\n subtitle,\n loadingSubtitle,\n preset = \"default\",\n actionsVariant = \"outlined\",\n breadcrumbs,\n actions,\n tabs,\n tabsMode = \"panel\",\n navigationButton,\n}: HeaderProps) => {\n const { palette } = useTheme();\n const defaultColor = useGetDefaultThemeColor();\n const [selectedTab, setSelectedTab] = useTab();\n\n const bgColorPresets: Record<HeaderPreset, string> = {\n default: defaultColor,\n primary: palette.primary.main,\n secondary: palette.secondary.main,\n inherit: \"inherit\",\n transparent: \"transparent\",\n };\n const bgColor = bgColorPresets[preset];\n const textColorPresets: Record<HeaderPreset, string> = {\n default: palette.getContrastText(bgColorPresets.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n inherit: \"inherit\",\n transparent: palette.text.primary,\n };\n const textColor = textColorPresets[preset];\n\n const modedSelectedTab = selectedTab;\n\n return (\n <Box bgcolor={bgColor} color={textColor}>\n <Container>\n <Box sx={{ py: 3, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <Box>\n {navigationButton && (\n <Button\n href={navigationButton.href}\n size=\"small\"\n color=\"inherit\"\n LinkComponent={Link}\n startIcon={navigationButton.icon}\n sx={{ mb: 1 }}\n >\n {navigationButton.text}\n </Button>\n )}\n {breadcrumbs?.length && (\n <Breadcrumbs\n color=\"inherit\"\n separator=\"›\"\n aria-label=\"breadcrumb\"\n sx={{ marginTop: 1 }}\n >\n {breadcrumbs.map(({ id, link, text }) => (\n <Link\n key={id}\n underline=\"hover\"\n color=\"inherit\"\n href={link}\n variant=\"body2\"\n role=\"link\"\n >\n {text}\n </Link>\n ))}\n </Breadcrumbs>\n )}\n <HeaderTitle loading={loadingTitle}>{title}</HeaderTitle>\n {(subtitle || loadingSubtitle) && (\n <HeaderSubtitle loading={loadingSubtitle}>{subtitle}</HeaderSubtitle>\n )}\n </Box>\n {actions && (\n <Box>\n {actions.map(({ disabled, id, href, onClick, text }, i) => (\n <Button\n component={href ? Link : \"button\"}\n role=\"button\"\n color=\"inherit\"\n disabled={disabled}\n key={id}\n variant={actionsVariant}\n size=\"small\"\n href={href}\n onClick={onClick}\n sx={{ mr: i != actions.length - 1 ? 1 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n {tabs && (\n <Tabs\n value={modedSelectedTab}\n textColor=\"inherit\"\n onChange={tabsMode === \"panel\" ? (_, index) => setSelectedTab(index) : undefined}\n >\n {tabs.map(({ id, label, disabled, path, href }) => {\n const tabProps = { label, disabled };\n if (tabsMode === \"panel\") {\n return <Tab key={id} {...tabProps} />;\n } else {\n return <Tab key={id} {...tabProps} component={Link} href={href} value={path} />;\n }\n })}\n </Tabs>\n )}\n </Container>\n </Box>\n );\n};\n"],"names":["TabContext","createContext","Provider","HeaderTitle","loading","children","typography","useTheme","_jsx","CircularProgress","color","size","h4","fontSize","Typography","variant","role","_Fragment","HeaderSubtitle","body1","Header","title","loadingTitle","subtitle","loadingSubtitle","preset","actionsVariant","breadcrumbs","actions","tabs","tabsMode","navigationButton","palette","defaultColor","lightWeight","darkWeight","mode","grey","useGetDefaultThemeColor","selectedTab","setSelectedTab","useContext","bgColorPresets","default","primary","main","secondary","inherit","transparent","bgColor","textColorPresets","getContrastText","contrastText","text","modedSelectedTab","Box","bgcolor","_jsxs","Container","sx","py","display","flexDirection","justifyContent","Button","href","LinkComponent","Link","startIcon","icon","mb","length","Breadcrumbs","separator","marginTop","map","id","link","underline","disabled","onClick","i","component","mr","Tabs","value","textColor","onChange","_","index","undefined","label","path","tabProps","Tab"],"mappings":"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"}
@@ -5,8 +5,7 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/material": "^5.13.6",
9
- "react": "^18.2.0",
10
- "react-router-dom": "^6.14.0"
8
+ "@mui/material": "^6.4.5",
9
+ "react": "^19.0.0"
11
10
  }
12
11
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@mui/material/Box"),t=require("@mui/material/LinearProgress"),i=require("@mui/material/CircularProgress"),l=require("react"),a=require("@mui/icons-material/ReportProblem"),n=require("@mui/material/Typography"),s=require("@mui/material/Button");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=u(r),c=u(t),d=u(i),h=u(a),x=u(n),f=u(s);const m=()=>e.jsx(o.default,{width:1,height:1,display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(d.default,{})}),j=l.createContext([0,()=>null]).Provider,g=({children:r,initialValue:t=0})=>{const i=l.useState(t);return e.jsx(j,{value:i,children:r})},p=({title:r,subtitle:t,icon:i,iconSize:l=200,actions:a})=>e.jsxs(o.default,{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",textAlign:"center",children:[i&&i({size:l,color:"primary"}),e.jsx(x.default,{variant:"h4",role:"heading","aria-level":1,children:r}),e.jsx(x.default,{variant:"subtitle1",role:"heading","aria-level":2,sx:{mt:2},children:t}),a&&e.jsx(o.default,{sx:{pt:2},children:a.map((({id:r,text:t,href:i,onClick:l},n)=>e.jsx(f.default,{role:"button",variant:"contained",href:i,onClick:l,sx:{mr:n<a.length-1?2:0},children:t},r)))})]}),y=()=>e.jsx(h.default,{color:"error",sx:{width:200,height:200}});exports.HeaderLayout=({loading:r,children:t,fetching:i,error:l})=>{const[a,n]=t;return e.jsx(g,{children:e.jsxs(o.default,{display:"flex",flexDirection:"column",height:1,children:[a,i&&e.jsx(o.default,{width:1,children:e.jsx(c.default,{})}),r&&e.jsx(m,{}),l&&e.jsx(o.default,{mt:4,children:e.jsx(p,{icon:l.icon||y,title:l.title||"There has been an error",subtitle:l.message})}),!r&&!l&&n]})})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@mui/material/Box"),i=require("@mui/material/LinearProgress"),t=require("@mui/material/CircularProgress"),n=require("react"),l=require("@mui/icons-material/ReportProblem"),a=require("@mui/material/Typography"),s=require("@mui/material/Button");const c=()=>e.jsx(r,{width:1,height:1,display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(t,{})}),o=n.createContext([0,()=>null]).Provider,u=({children:r,initialValue:i=0})=>{const t=n.useState(i);return e.jsx(o,{value:t,children:r})},h=({title:i,subtitle:t,icon:n,iconSize:l=200,actions:c})=>e.jsxs(r,{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",textAlign:"center",children:[n&&n({size:l,color:"primary"}),e.jsx(a,{variant:"h4",role:"heading","aria-level":1,children:i}),e.jsx(a,{variant:"subtitle1",role:"heading","aria-level":2,sx:{mt:2},children:t}),c&&e.jsx(r,{sx:{pt:2},children:c.map((({id:r,text:i,href:t,onClick:n},l)=>e.jsx(s,{role:"button",variant:"contained",href:t,onClick:n,sx:{mr:l<c.length-1?2:0},children:i},r)))})]}),x=()=>e.jsx(l,{color:"error",sx:{width:200,height:200}});exports.HeaderLayout=({loading:t,children:n,fetching:l,error:a})=>{const[s,o]=n;return e.jsx(u,{children:e.jsxs(r,{display:"flex",flexDirection:"column",height:1,children:[s,l&&e.jsx(r,{width:1,children:e.jsx(i,{})}),t&&e.jsx(c,{}),a&&e.jsx(r,{mt:4,children:e.jsx(h,{icon:a.icon||x,title:a.title||"There has been an error",subtitle:a.message})}),!t&&!a&&o]})})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/loading-area/loading-area.tsx","../../../src/tab-provider/tab-provider.context.ts","../../../src/tab-provider/tab-provider.provider.tsx","../../../src/placeholder/placeholder.tsx","../../../src/header-layout/header-layout.tsx"],"sourcesContent":["import CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\n/**\n * Displays a centered loading indicator\n */\nexport const LoadingArea = () => {\n return (\n <Box width={1} height={1} display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <CircularProgress />\n </Box>\n );\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import { PropsWithChildren, useState } from \"react\";\nimport { TabContextProvider } from \"./tab-provider.context\";\n\ntype TabProviderProps = PropsWithChildren<{\n initialValue?: number;\n}>;\n\nexport const TabProvider = ({ children, initialValue = 0 }: TabProviderProps) => {\n const tabState = useState(initialValue);\n\n return <TabContextProvider value={tabState}>{children}</TabContextProvider>;\n};\n","import { ReactElement } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\n\ntype IconColor =\n | \"inherit\"\n | \"action\"\n | \"disabled\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\";\n\nexport interface PlaceholderAction {\n id: string;\n text: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface PlaceholderIconArgs {\n size: number;\n color: IconColor;\n}\n\nexport type PlaceholderIcon = ({ size, color }: PlaceholderIconArgs) => ReactElement;\n\nexport interface PlaceholderProps {\n title: string;\n subtitle: string;\n iconSize?: number;\n icon?: PlaceholderIcon;\n actions?: PlaceholderAction[];\n}\n\nexport const Placeholder = ({\n title,\n subtitle,\n icon,\n iconSize = 200,\n actions,\n}: PlaceholderProps) => {\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n textAlign=\"center\"\n >\n {icon && icon({ size: iconSize, color: \"primary\" })}\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n <Typography variant=\"subtitle1\" role=\"heading\" aria-level={2} sx={{ mt: 2 }}>\n {subtitle}\n </Typography>\n {actions && (\n <Box sx={{ pt: 2 }}>\n {actions.map(({ id, text, href, onClick }, index) => (\n <Button\n key={id}\n role=\"button\"\n variant=\"contained\"\n href={href}\n onClick={onClick}\n sx={{ mr: index < actions.length - 1 ? 2 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport { LoadingArea } from \"../loading-area\";\nimport { TabProvider } from \"../tab-provider\";\nimport ReportProblemIcon from \"@mui/icons-material/ReportProblem\";\nimport { Placeholder, PlaceholderIcon } from \"../placeholder\";\nimport { HeaderElement } from \"../header\";\nimport { ContentElement } from \"../content\";\n\nexport interface HeaderLayoutError {\n icon?: PlaceholderIcon;\n title?: string;\n message: string;\n}\n\nexport interface HeaderLayoutProps {\n loading?: boolean;\n fetching?: boolean;\n error?: HeaderLayoutError;\n children: [HeaderElement, ContentElement];\n}\n\nconst DefaultErrorIcon = () => <ReportProblemIcon color=\"error\" sx={{ width: 200, height: 200 }} />;\n\nexport const HeaderLayout = ({ loading, children, fetching, error }: HeaderLayoutProps) => {\n const [headerElement, contentElement] = children;\n\n return (\n <TabProvider>\n <Box display=\"flex\" flexDirection=\"column\" height={1}>\n {headerElement}\n {fetching && (\n <Box width={1}>\n <LinearProgress />\n </Box>\n )}\n {loading && <LoadingArea />}\n {error && (\n <Box mt={4}>\n <Placeholder\n icon={error.icon || DefaultErrorIcon}\n title={error.title || \"There has been an error\"}\n subtitle={error.message}\n />\n </Box>\n )}\n {!loading && !error && contentElement}\n </Box>\n </TabProvider>\n );\n};\n"],"names":["LoadingArea","_jsx","jsx","Box","width","height","display","justifyContent","alignItems","children","CircularProgress","TabContextProvider","createContext","Provider","TabProvider","initialValue","tabState","useState","value","Placeholder","title","subtitle","icon","iconSize","actions","_jsxs","jsxs","flexDirection","textAlign","size","color","Typography","variant","role","sx","mt","pt","map","id","text","href","onClick","index","Button","mr","length","DefaultErrorIcon","ReportProblemIcon","loading","fetching","error","headerElement","contentElement","LinearProgress","message"],"mappings":"4dAMO,MAAMA,EAAc,IAEvBC,EAAAC,IAACC,EAAG,QAAA,CAACC,MAAO,EAAGC,OAAQ,EAAGC,QAAQ,OAAOC,eAAe,SAASC,WAAW,SAAQC,SAClFR,EAACC,IAAAQ,UAAmB,CAAA,KCHbC,EAJaC,EAAAA,cAA0D,CAClF,EACA,IAAM,OAEqCC,SCChCC,EAAc,EAAGL,WAAUM,eAAe,MACrD,MAAMC,EAAWC,WAASF,GAE1B,OAAOd,EAAAA,IAACU,EAAmB,CAAAO,MAAOF,EAAQP,SAAGA,GAA8B,EC4BhEU,EAAc,EACzBC,QACAC,WACAC,OACAC,WAAW,IACXC,aAGEC,EAACC,KAAAvB,UACC,CAAAG,QAAQ,OACRqB,cAAc,SACdpB,eAAe,SACfC,WAAW,SACXoB,UAAU,SAAQnB,SAAA,CAEjBa,GAAQA,EAAK,CAAEO,KAAMN,EAAUO,MAAO,YACvC7B,EAAAA,IAAC8B,EAAU,QAAA,CAACC,QAAQ,KAAKC,KAAK,UAAS,aAAa,EAACxB,SAClDW,IAEHnB,MAAC8B,UAAU,CAACC,QAAQ,YAAYC,KAAK,UAAS,aAAa,EAAGC,GAAI,CAAEC,GAAI,GAAG1B,SACxEY,IAEFG,GACCvB,EAAAA,IAACE,EAAG,SAAC+B,GAAI,CAAEE,GAAI,GACZ3B,SAAAe,EAAQa,KAAI,EAAGC,KAAIC,OAAMC,OAAMC,WAAWC,IACzCzC,EAACC,IAAAyC,WAECV,KAAK,SACLD,QAAQ,YACRQ,KAAMA,EACNC,QAASA,EACTP,GAAI,CAAEU,GAAIF,EAAQlB,EAAQqB,OAAS,EAAI,EAAI,GAE1CpC,SAAA8B,GAPID,UC1CbQ,EAAmB,IAAM7C,MAAC8C,UAAiB,CAACjB,MAAM,QAAQI,GAAI,CAAE9B,MAAO,IAAKC,OAAQ,4BAE9D,EAAG2C,UAASvC,WAAUwC,WAAUC,YAC1D,MAAOC,EAAeC,GAAkB3C,EAExC,OACER,EAACC,IAAAY,YACCW,EAAAA,KAACtB,EAAAA,SAAIG,QAAQ,OAAOqB,cAAc,SAAStB,OAAQ,YAChD8C,EACAF,GACChD,EAAAA,IAACE,EAAAA,QAAG,CAACC,MAAO,WACVH,EAACC,IAAAmD,EAAc,cAGlBL,GAAW/C,MAACD,EAAW,IACvBkD,GACCjD,EAACC,IAAAC,EAAG,SAACgC,GAAI,EACP1B,SAAAR,EAAAA,IAACkB,EACC,CAAAG,KAAM4B,EAAM5B,MAAQwB,EACpB1B,MAAO8B,EAAM9B,OAAS,0BACtBC,SAAU6B,EAAMI,aAIpBN,IAAYE,GAASE,MAG3B"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/loading-area/loading-area.tsx","../../../src/tab-provider/tab-provider.context.ts","../../../src/tab-provider/tab-provider.provider.tsx","../../../src/placeholder/placeholder.tsx","../../../src/header-layout/header-layout.tsx"],"sourcesContent":["import CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\n/**\n * Displays a centered loading indicator\n */\nexport const LoadingArea = () => {\n return (\n <Box width={1} height={1} display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <CircularProgress />\n </Box>\n );\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import { PropsWithChildren, useState } from \"react\";\nimport { TabContextProvider } from \"./tab-provider.context\";\n\ntype TabProviderProps = PropsWithChildren<{\n initialValue?: number;\n}>;\n\nexport const TabProvider = ({ children, initialValue = 0 }: TabProviderProps) => {\n const tabState = useState(initialValue);\n\n return <TabContextProvider value={tabState}>{children}</TabContextProvider>;\n};\n","import { ReactElement } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\n\ntype IconColor =\n | \"inherit\"\n | \"action\"\n | \"disabled\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\";\n\nexport interface PlaceholderAction {\n id: string;\n text: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface PlaceholderIconArgs {\n size: number;\n color: IconColor;\n}\n\nexport type PlaceholderIcon = ({ size, color }: PlaceholderIconArgs) => ReactElement;\n\nexport interface PlaceholderProps {\n title: string;\n subtitle: string;\n iconSize?: number;\n icon?: PlaceholderIcon;\n actions?: PlaceholderAction[];\n}\n\nexport const Placeholder = ({\n title,\n subtitle,\n icon,\n iconSize = 200,\n actions,\n}: PlaceholderProps) => {\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n textAlign=\"center\"\n >\n {icon && icon({ size: iconSize, color: \"primary\" })}\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n <Typography variant=\"subtitle1\" role=\"heading\" aria-level={2} sx={{ mt: 2 }}>\n {subtitle}\n </Typography>\n {actions && (\n <Box sx={{ pt: 2 }}>\n {actions.map(({ id, text, href, onClick }, index) => (\n <Button\n key={id}\n role=\"button\"\n variant=\"contained\"\n href={href}\n onClick={onClick}\n sx={{ mr: index < actions.length - 1 ? 2 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport { LoadingArea } from \"../loading-area\";\nimport { TabProvider } from \"../tab-provider\";\nimport ReportProblemIcon from \"@mui/icons-material/ReportProblem\";\nimport { Placeholder, PlaceholderIcon } from \"../placeholder\";\nimport { HeaderElement } from \"../header\";\nimport { ContentElement } from \"../content\";\n\nexport interface HeaderLayoutError {\n icon?: PlaceholderIcon;\n title?: string;\n message: string;\n}\n\nexport interface HeaderLayoutProps {\n loading?: boolean;\n fetching?: boolean;\n error?: HeaderLayoutError;\n children: [HeaderElement, ContentElement];\n}\n\nconst DefaultErrorIcon = () => <ReportProblemIcon color=\"error\" sx={{ width: 200, height: 200 }} />;\n\nexport const HeaderLayout = ({ loading, children, fetching, error }: HeaderLayoutProps) => {\n const [headerElement, contentElement] = children;\n\n return (\n <TabProvider>\n <Box display=\"flex\" flexDirection=\"column\" height={1}>\n {headerElement}\n {fetching && (\n <Box width={1}>\n <LinearProgress />\n </Box>\n )}\n {loading && <LoadingArea />}\n {error && (\n <Box mt={4}>\n <Placeholder\n icon={error.icon || DefaultErrorIcon}\n title={error.title || \"There has been an error\"}\n subtitle={error.message}\n />\n </Box>\n )}\n {!loading && !error && contentElement}\n </Box>\n </TabProvider>\n );\n};\n"],"names":["LoadingArea","_jsx","Box","width","height","display","justifyContent","alignItems","children","CircularProgress","TabContextProvider","createContext","Provider","TabProvider","initialValue","tabState","useState","value","Placeholder","title","subtitle","icon","iconSize","actions","_jsxs","jsxs","flexDirection","textAlign","size","color","Typography","variant","role","sx","mt","pt","map","id","text","href","onClick","index","Button","mr","length","DefaultErrorIcon","ReportProblemIcon","loading","fetching","error","headerElement","contentElement","jsx","LinearProgress","message"],"mappings":"+SAMO,MAAMA,EAAc,IAEvBC,EAAAA,IAACC,EAAG,CAACC,MAAO,EAAGC,OAAQ,EAAGC,QAAQ,OAAOC,eAAe,SAASC,WAAW,SAAQC,SAClFP,EAAAA,IAACQ,EAAmB,CAAA,KCHbC,EAJaC,EAAAA,cAA0D,CAClF,EACA,IAAM,OAEqCC,SCChCC,EAAc,EAAGL,WAAUM,eAAe,MACrD,MAAMC,EAAWC,EAAQA,SAACF,GAE1B,OAAOb,EAAAA,IAACS,EAAmB,CAAAO,MAAOF,EAAQP,SAAGA,GAA8B,EC4BhEU,EAAc,EACzBC,QACAC,WACAC,OACAC,WAAW,IACXC,aAGEC,EAACC,KAAAvB,EACC,CAAAG,QAAQ,OACRqB,cAAc,SACdpB,eAAe,SACfC,WAAW,SACXoB,UAAU,SAAQnB,SAAA,CAEjBa,GAAQA,EAAK,CAAEO,KAAMN,EAAUO,MAAO,YACvC5B,EAAAA,IAAC6B,EAAU,CAACC,QAAQ,KAAKC,KAAK,UAAS,aAAa,EAACxB,SAClDW,IAEHlB,EAAAA,IAAC6B,EAAU,CAACC,QAAQ,YAAYC,KAAK,UAAS,aAAa,EAAGC,GAAI,CAAEC,GAAI,GAAG1B,SACxEY,IAEFG,GACCtB,MAACC,GAAI+B,GAAI,CAAEE,GAAI,GACZ3B,SAAAe,EAAQa,KAAI,EAAGC,KAAIC,OAAMC,OAAMC,WAAWC,IACzCxC,EAAAA,IAACyC,GAECV,KAAK,SACLD,QAAQ,YACRQ,KAAMA,EACNC,QAASA,EACTP,GAAI,CAAEU,GAAIF,EAAQlB,EAAQqB,OAAS,EAAI,EAAI,GAE1CpC,SAAA8B,GAPID,UC1CbQ,EAAmB,IAAM5C,MAAC6C,EAAiB,CAACjB,MAAM,QAAQI,GAAI,CAAE9B,MAAO,IAAKC,OAAQ,4BAE9D,EAAG2C,UAASvC,WAAUwC,WAAUC,YAC1D,MAAOC,EAAeC,GAAkB3C,EAExC,OACEP,EAACmD,IAAAvC,YACCW,EAAAA,KAACtB,GAAIG,QAAQ,OAAOqB,cAAc,SAAStB,OAAQ,YAChD8C,EACAF,GACC/C,EAAAA,IAACC,EAAG,CAACC,MAAO,WACVF,EAACmD,IAAAC,QAGJN,GAAW9C,MAACD,EAAW,IACvBiD,GACChD,EAACmD,IAAAlD,GAAIgC,GAAI,EACP1B,SAAAP,EAAAmD,IAAClC,EACC,CAAAG,KAAM4B,EAAM5B,MAAQwB,EACpB1B,MAAO8B,EAAM9B,OAAS,0BACtBC,SAAU6B,EAAMK,aAIpBP,IAAYE,GAASE,MAEb"}
@@ -5,8 +5,8 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/icons-material": "^5.11.16",
9
- "@mui/material": "^5.13.6",
10
- "react": "^18.2.0"
8
+ "@mui/icons-material": "^6.4.5",
9
+ "@mui/material": "^6.4.5",
10
+ "react": "^19.0.0"
11
11
  }
12
12
  }
@@ -12,4 +12,4 @@ export interface HeaderLayoutProps {
12
12
  error?: HeaderLayoutError;
13
13
  children: [HeaderElement, ContentElement];
14
14
  }
15
- export declare const HeaderLayout: ({ loading, children, fetching, error }: HeaderLayoutProps) => JSX.Element;
15
+ export declare const HeaderLayout: ({ loading, children, fetching, error }: HeaderLayoutProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/loading-area/loading-area.tsx","../../src/tab-provider/tab-provider.context.ts","../../src/tab-provider/tab-provider.provider.tsx","../../src/placeholder/placeholder.tsx","../../src/header-layout/header-layout.tsx"],"sourcesContent":["import CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\n/**\n * Displays a centered loading indicator\n */\nexport const LoadingArea = () => {\n return (\n <Box width={1} height={1} display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <CircularProgress />\n </Box>\n );\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import { PropsWithChildren, useState } from \"react\";\nimport { TabContextProvider } from \"./tab-provider.context\";\n\ntype TabProviderProps = PropsWithChildren<{\n initialValue?: number;\n}>;\n\nexport const TabProvider = ({ children, initialValue = 0 }: TabProviderProps) => {\n const tabState = useState(initialValue);\n\n return <TabContextProvider value={tabState}>{children}</TabContextProvider>;\n};\n","import { ReactElement } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\n\ntype IconColor =\n | \"inherit\"\n | \"action\"\n | \"disabled\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\";\n\nexport interface PlaceholderAction {\n id: string;\n text: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface PlaceholderIconArgs {\n size: number;\n color: IconColor;\n}\n\nexport type PlaceholderIcon = ({ size, color }: PlaceholderIconArgs) => ReactElement;\n\nexport interface PlaceholderProps {\n title: string;\n subtitle: string;\n iconSize?: number;\n icon?: PlaceholderIcon;\n actions?: PlaceholderAction[];\n}\n\nexport const Placeholder = ({\n title,\n subtitle,\n icon,\n iconSize = 200,\n actions,\n}: PlaceholderProps) => {\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n textAlign=\"center\"\n >\n {icon && icon({ size: iconSize, color: \"primary\" })}\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n <Typography variant=\"subtitle1\" role=\"heading\" aria-level={2} sx={{ mt: 2 }}>\n {subtitle}\n </Typography>\n {actions && (\n <Box sx={{ pt: 2 }}>\n {actions.map(({ id, text, href, onClick }, index) => (\n <Button\n key={id}\n role=\"button\"\n variant=\"contained\"\n href={href}\n onClick={onClick}\n sx={{ mr: index < actions.length - 1 ? 2 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport { LoadingArea } from \"../loading-area\";\nimport { TabProvider } from \"../tab-provider\";\nimport ReportProblemIcon from \"@mui/icons-material/ReportProblem\";\nimport { Placeholder, PlaceholderIcon } from \"../placeholder\";\nimport { HeaderElement } from \"../header\";\nimport { ContentElement } from \"../content\";\n\nexport interface HeaderLayoutError {\n icon?: PlaceholderIcon;\n title?: string;\n message: string;\n}\n\nexport interface HeaderLayoutProps {\n loading?: boolean;\n fetching?: boolean;\n error?: HeaderLayoutError;\n children: [HeaderElement, ContentElement];\n}\n\nconst DefaultErrorIcon = () => <ReportProblemIcon color=\"error\" sx={{ width: 200, height: 200 }} />;\n\nexport const HeaderLayout = ({ loading, children, fetching, error }: HeaderLayoutProps) => {\n const [headerElement, contentElement] = children;\n\n return (\n <TabProvider>\n <Box display=\"flex\" flexDirection=\"column\" height={1}>\n {headerElement}\n {fetching && (\n <Box width={1}>\n <LinearProgress />\n </Box>\n )}\n {loading && <LoadingArea />}\n {error && (\n <Box mt={4}>\n <Placeholder\n icon={error.icon || DefaultErrorIcon}\n title={error.title || \"There has been an error\"}\n subtitle={error.message}\n />\n </Box>\n )}\n {!loading && !error && contentElement}\n </Box>\n </TabProvider>\n );\n};\n"],"names":["LoadingArea","_jsx","Box","width","height","display","justifyContent","alignItems","children","CircularProgress","TabContextProvider","createContext","Provider","TabProvider","initialValue","tabState","useState","value","Placeholder","title","subtitle","icon","iconSize","actions","_jsxs","flexDirection","textAlign","size","color","Typography","variant","role","sx","mt","pt","map","id","text","href","onClick","index","Button","mr","length","DefaultErrorIcon","ReportProblemIcon","HeaderLayout","loading","fetching","error","headerElement","contentElement","LinearProgress","message"],"mappings":"8VAMO,MAAMA,EAAc,IAEvBC,EAACC,EAAG,CAACC,MAAO,EAAGC,OAAQ,EAAGC,QAAQ,OAAOC,eAAe,SAASC,WAAW,SAAQC,SAClFP,EAACQ,EAAmB,CAAA,KCHbC,EAJaC,EAA0D,CAClF,EACA,IAAM,OAEqCC,SCChCC,EAAc,EAAGL,WAAUM,eAAe,MACrD,MAAMC,EAAWC,EAASF,GAE1B,OAAOb,EAACS,EAAmB,CAAAO,MAAOF,EAAQP,SAAGA,GAA8B,EC4BhEU,EAAc,EACzBC,QACAC,WACAC,OACAC,WAAW,IACXC,aAGEC,EAACtB,EACC,CAAAG,QAAQ,OACRoB,cAAc,SACdnB,eAAe,SACfC,WAAW,SACXmB,UAAU,SAAQlB,SAAA,CAEjBa,GAAQA,EAAK,CAAEM,KAAML,EAAUM,MAAO,YACvC3B,EAAC4B,EAAU,CAACC,QAAQ,KAAKC,KAAK,UAAS,aAAa,EAACvB,SAClDW,IAEHlB,EAAC4B,EAAU,CAACC,QAAQ,YAAYC,KAAK,UAAS,aAAa,EAAGC,GAAI,CAAEC,GAAI,GAAGzB,SACxEY,IAEFG,GACCtB,EAACC,GAAI8B,GAAI,CAAEE,GAAI,GACZ1B,SAAAe,EAAQY,KAAI,EAAGC,KAAIC,OAAMC,OAAMC,WAAWC,IACzCvC,EAACwC,GAECV,KAAK,SACLD,QAAQ,YACRQ,KAAMA,EACNC,QAASA,EACTP,GAAI,CAAEU,GAAIF,EAAQjB,EAAQoB,OAAS,EAAI,EAAI,GAE1CnC,SAAA6B,GAPID,UC1CbQ,EAAmB,IAAM3C,EAAC4C,EAAiB,CAACjB,MAAM,QAAQI,GAAI,CAAE7B,MAAO,IAAKC,OAAQ,OAE7E0C,EAAe,EAAGC,UAASvC,WAAUwC,WAAUC,YAC1D,MAAOC,EAAeC,GAAkB3C,EAExC,OACEP,EAACY,YACCW,EAACtB,GAAIG,QAAQ,OAAOoB,cAAc,SAASrB,OAAQ,YAChD8C,EACAF,GACC/C,EAACC,EAAG,CAACC,MAAO,WACVF,EAACmD,QAGJL,GAAW9C,EAACD,EAAW,IACvBiD,GACChD,EAACC,GAAI+B,GAAI,EACPzB,SAAAP,EAACiB,EACC,CAAAG,KAAM4B,EAAM5B,MAAQuB,EACpBzB,MAAO8B,EAAM9B,OAAS,0BACtBC,SAAU6B,EAAMI,aAIpBN,IAAYE,GAASE,MAG3B"}
1
+ {"version":3,"file":"index.js","sources":["../../src/loading-area/loading-area.tsx","../../src/tab-provider/tab-provider.context.ts","../../src/tab-provider/tab-provider.provider.tsx","../../src/placeholder/placeholder.tsx","../../src/header-layout/header-layout.tsx"],"sourcesContent":["import CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\n/**\n * Displays a centered loading indicator\n */\nexport const LoadingArea = () => {\n return (\n <Box width={1} height={1} display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <CircularProgress />\n </Box>\n );\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import { PropsWithChildren, useState } from \"react\";\nimport { TabContextProvider } from \"./tab-provider.context\";\n\ntype TabProviderProps = PropsWithChildren<{\n initialValue?: number;\n}>;\n\nexport const TabProvider = ({ children, initialValue = 0 }: TabProviderProps) => {\n const tabState = useState(initialValue);\n\n return <TabContextProvider value={tabState}>{children}</TabContextProvider>;\n};\n","import { ReactElement } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\n\ntype IconColor =\n | \"inherit\"\n | \"action\"\n | \"disabled\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\";\n\nexport interface PlaceholderAction {\n id: string;\n text: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface PlaceholderIconArgs {\n size: number;\n color: IconColor;\n}\n\nexport type PlaceholderIcon = ({ size, color }: PlaceholderIconArgs) => ReactElement;\n\nexport interface PlaceholderProps {\n title: string;\n subtitle: string;\n iconSize?: number;\n icon?: PlaceholderIcon;\n actions?: PlaceholderAction[];\n}\n\nexport const Placeholder = ({\n title,\n subtitle,\n icon,\n iconSize = 200,\n actions,\n}: PlaceholderProps) => {\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n textAlign=\"center\"\n >\n {icon && icon({ size: iconSize, color: \"primary\" })}\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n <Typography variant=\"subtitle1\" role=\"heading\" aria-level={2} sx={{ mt: 2 }}>\n {subtitle}\n </Typography>\n {actions && (\n <Box sx={{ pt: 2 }}>\n {actions.map(({ id, text, href, onClick }, index) => (\n <Button\n key={id}\n role=\"button\"\n variant=\"contained\"\n href={href}\n onClick={onClick}\n sx={{ mr: index < actions.length - 1 ? 2 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport { LoadingArea } from \"../loading-area\";\nimport { TabProvider } from \"../tab-provider\";\nimport ReportProblemIcon from \"@mui/icons-material/ReportProblem\";\nimport { Placeholder, PlaceholderIcon } from \"../placeholder\";\nimport { HeaderElement } from \"../header\";\nimport { ContentElement } from \"../content\";\n\nexport interface HeaderLayoutError {\n icon?: PlaceholderIcon;\n title?: string;\n message: string;\n}\n\nexport interface HeaderLayoutProps {\n loading?: boolean;\n fetching?: boolean;\n error?: HeaderLayoutError;\n children: [HeaderElement, ContentElement];\n}\n\nconst DefaultErrorIcon = () => <ReportProblemIcon color=\"error\" sx={{ width: 200, height: 200 }} />;\n\nexport const HeaderLayout = ({ loading, children, fetching, error }: HeaderLayoutProps) => {\n const [headerElement, contentElement] = children;\n\n return (\n <TabProvider>\n <Box display=\"flex\" flexDirection=\"column\" height={1}>\n {headerElement}\n {fetching && (\n <Box width={1}>\n <LinearProgress />\n </Box>\n )}\n {loading && <LoadingArea />}\n {error && (\n <Box mt={4}>\n <Placeholder\n icon={error.icon || DefaultErrorIcon}\n title={error.title || \"There has been an error\"}\n subtitle={error.message}\n />\n </Box>\n )}\n {!loading && !error && contentElement}\n </Box>\n </TabProvider>\n );\n};\n"],"names":["LoadingArea","_jsx","Box","width","height","display","justifyContent","alignItems","children","CircularProgress","TabContextProvider","createContext","Provider","TabProvider","initialValue","tabState","useState","value","Placeholder","title","subtitle","icon","iconSize","actions","_jsxs","flexDirection","textAlign","size","color","Typography","variant","role","sx","mt","pt","map","id","text","href","onClick","index","Button","mr","length","DefaultErrorIcon","ReportProblemIcon","HeaderLayout","loading","fetching","error","headerElement","contentElement","LinearProgress","message"],"mappings":"8VAMO,MAAMA,EAAc,IAEvBC,EAACC,EAAG,CAACC,MAAO,EAAGC,OAAQ,EAAGC,QAAQ,OAAOC,eAAe,SAASC,WAAW,SAAQC,SAClFP,EAACQ,EAAmB,CAAA,KCHbC,EAJaC,EAA0D,CAClF,EACA,IAAM,OAEqCC,SCChCC,EAAc,EAAGL,WAAUM,eAAe,MACrD,MAAMC,EAAWC,EAASF,GAE1B,OAAOb,EAACS,EAAmB,CAAAO,MAAOF,EAAQP,SAAGA,GAA8B,EC4BhEU,EAAc,EACzBC,QACAC,WACAC,OACAC,WAAW,IACXC,aAGEC,EAACtB,EACC,CAAAG,QAAQ,OACRoB,cAAc,SACdnB,eAAe,SACfC,WAAW,SACXmB,UAAU,SAAQlB,SAAA,CAEjBa,GAAQA,EAAK,CAAEM,KAAML,EAAUM,MAAO,YACvC3B,EAAC4B,EAAU,CAACC,QAAQ,KAAKC,KAAK,UAAS,aAAa,EAACvB,SAClDW,IAEHlB,EAAC4B,EAAU,CAACC,QAAQ,YAAYC,KAAK,UAAS,aAAa,EAAGC,GAAI,CAAEC,GAAI,GAAGzB,SACxEY,IAEFG,GACCtB,EAACC,GAAI8B,GAAI,CAAEE,GAAI,GACZ1B,SAAAe,EAAQY,KAAI,EAAGC,KAAIC,OAAMC,OAAMC,WAAWC,IACzCvC,EAACwC,GAECV,KAAK,SACLD,QAAQ,YACRQ,KAAMA,EACNC,QAASA,EACTP,GAAI,CAAEU,GAAIF,EAAQjB,EAAQoB,OAAS,EAAI,EAAI,GAE1CnC,SAAA6B,GAPID,UC1CbQ,EAAmB,IAAM3C,EAAC4C,EAAiB,CAACjB,MAAM,QAAQI,GAAI,CAAE7B,MAAO,IAAKC,OAAQ,OAE7E0C,EAAe,EAAGC,UAASvC,WAAUwC,WAAUC,YAC1D,MAAOC,EAAeC,GAAkB3C,EAExC,OACEP,EAACY,YACCW,EAACtB,GAAIG,QAAQ,OAAOoB,cAAc,SAASrB,OAAQ,YAChD8C,EACAF,GACC/C,EAACC,EAAG,CAACC,MAAO,WACVF,EAACmD,QAGJL,GAAW9C,EAACD,EAAW,IACvBiD,GACChD,EAACC,GAAI+B,GAAI,EACPzB,SAAAP,EAACiB,EACC,CAAAG,KAAM4B,EAAM5B,MAAQuB,EACpBzB,MAAO8B,EAAM9B,OAAS,0BACtBC,SAAU6B,EAAMI,aAIpBN,IAAYE,GAASE,MAEb"}
@@ -5,8 +5,8 @@
5
5
  "module": "./index.js",
6
6
  "types": "./index.d.ts",
7
7
  "dependencies": {
8
- "@mui/icons-material": "^5.11.16",
9
- "@mui/material": "^5.13.6",
10
- "react": "^18.2.0"
8
+ "@mui/icons-material": "^6.4.5",
9
+ "@mui/material": "^6.4.5",
10
+ "react": "^19.0.0"
11
11
  }
12
12
  }
package/index.d.ts CHANGED
@@ -51,7 +51,6 @@ export * from "./header-layout";
51
51
  export * from "./notification-center";
52
52
  export * from "./tab-provider";
53
53
  export * from "./object-details";
54
- export * from "./model-router";
55
54
  export * from "./generators";
56
55
  export * from "./model-form";
57
56
  export * from "./table-list";