@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.
- package/action/action-header.d.ts +1 -1
- package/action/action.d.ts +1 -1
- package/action/cjs/index.js +1 -1
- package/action/cjs/index.js.map +1 -1
- package/action/cjs/package.json +4 -4
- package/action/index.js +1 -1
- package/action/index.js.map +1 -1
- package/action/package.json +4 -4
- package/autocomplete/autocomplete.d.ts +1 -1
- package/autocomplete/cjs/index.js +1 -1
- package/autocomplete/cjs/index.js.map +1 -1
- package/autocomplete/cjs/package.json +2 -2
- package/autocomplete/index.js +1 -1
- package/autocomplete/index.js.map +1 -1
- package/autocomplete/package.json +2 -2
- package/board/board.d.ts +1 -1
- package/board/cjs/index.js +1 -1
- package/board/cjs/index.js.map +1 -1
- package/board/cjs/package.json +4 -4
- package/board/index.js.map +1 -1
- package/board/package.json +4 -4
- package/bootstrap-dialog/bootstrap-dialog.d.ts +1 -1
- package/bootstrap-dialog/cjs/index.js +1 -1
- package/bootstrap-dialog/cjs/index.js.map +1 -1
- package/bootstrap-dialog/cjs/package.json +4 -4
- package/bootstrap-dialog/index.js.map +1 -1
- package/bootstrap-dialog/package.json +4 -4
- package/bullet/bullet.d.ts +1 -1
- package/bullet/cjs/index.js +1 -1
- package/bullet/cjs/index.js.map +1 -1
- package/bullet/cjs/package.json +2 -2
- package/bullet/package.json +2 -2
- package/center-container/center-container.d.ts +1 -1
- package/center-container/cjs/index.js +1 -1
- package/center-container/cjs/index.js.map +1 -1
- package/center-container/cjs/package.json +2 -2
- package/center-container/package.json +2 -2
- package/cjs/index.js +1 -23
- package/cjs/index.js.map +1 -1
- package/confirm-dialog/cjs/index.js +1 -1
- package/confirm-dialog/cjs/index.js.map +1 -1
- package/confirm-dialog/cjs/package.json +4 -4
- package/confirm-dialog/confirm-dialog.d.ts +1 -1
- package/confirm-dialog/index.js.map +1 -1
- package/confirm-dialog/package.json +4 -4
- package/content/cjs/index.js +1 -1
- package/content/cjs/index.js.map +1 -1
- package/content/cjs/package.json +2 -2
- package/content/content.d.ts +1 -1
- package/content/package.json +2 -2
- package/content-placeholder/cjs/index.js +1 -1
- package/content-placeholder/cjs/index.js.map +1 -1
- package/content-placeholder/cjs/package.json +2 -2
- package/content-placeholder/content-placeholder.d.ts +1 -1
- package/content-placeholder/package.json +2 -2
- package/date-range-calendar/cjs/index.js +1 -1
- package/date-range-calendar/cjs/index.js.map +1 -1
- package/date-range-calendar/cjs/package.json +4 -4
- package/date-range-calendar/date-range-calendar.d.ts +1 -1
- package/date-range-calendar/index.js +1 -1
- package/date-range-calendar/index.js.map +1 -1
- package/date-range-calendar/package.json +4 -4
- package/date-range-picker/cjs/index.js +1 -1
- package/date-range-picker/cjs/index.js.map +1 -1
- package/date-range-picker/cjs/package.json +5 -5
- package/date-range-picker/date-range-picker.d.ts +1 -1
- package/date-range-picker/index.js +1 -1
- package/date-range-picker/index.js.map +1 -1
- package/date-range-picker/package.json +5 -5
- package/dialog/cjs/index.js +1 -1
- package/dialog/cjs/index.js.map +1 -1
- package/dialog/cjs/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dialog/use-dialog.d.ts +0 -1
- package/drawer/cjs/index.js +1 -1
- package/drawer/cjs/index.js.map +1 -1
- package/drawer/cjs/package.json +3 -3
- package/drawer/drawer.d.ts +0 -1
- package/drawer/index.js.map +1 -1
- package/drawer/package.json +3 -3
- package/drawer-app-bar/cjs/index.js +1 -1
- package/drawer-app-bar/cjs/index.js.map +1 -1
- package/drawer-app-bar/cjs/package.json +3 -3
- package/drawer-app-bar/drawer-app-bar.d.ts +1 -1
- package/drawer-app-bar/index.js.map +1 -1
- package/drawer-app-bar/package.json +3 -3
- package/drawer-content/cjs/index.js +1 -1
- package/drawer-content/cjs/index.js.map +1 -1
- package/drawer-content/cjs/package.json +3 -4
- package/drawer-content/index.js +1 -1
- package/drawer-content/index.js.map +1 -1
- package/drawer-content/package.json +3 -4
- package/drawer-item/cjs/index.js +1 -1
- package/drawer-item/cjs/index.js.map +1 -1
- package/drawer-item/cjs/package.json +3 -4
- package/drawer-item/drawer-item-link.d.ts +1 -1
- package/drawer-item/drawer-item.d.ts +1 -1
- package/drawer-item/drawer-menu-item.d.ts +1 -1
- package/drawer-item/index.js +1 -1
- package/drawer-item/index.js.map +1 -1
- package/drawer-item/package.json +3 -4
- package/drawer-layout/cjs/index.js +1 -1
- package/drawer-layout/cjs/index.js.map +1 -1
- package/drawer-layout/cjs/package.json +3 -3
- package/drawer-layout/drawer-layout.d.ts +1 -1
- package/drawer-layout/index.js.map +1 -1
- package/drawer-layout/package.json +3 -3
- package/drawer-main/cjs/index.js +1 -1
- package/drawer-main/cjs/index.js.map +1 -1
- package/drawer-main/cjs/package.json +3 -3
- package/drawer-main/drawer-main.d.ts +1 -1
- package/drawer-main/index.js.map +1 -1
- package/drawer-main/package.json +3 -3
- package/drawer-provider/cjs/index.js +1 -1
- package/drawer-provider/cjs/index.js.map +1 -1
- package/drawer-provider/cjs/package.json +3 -3
- package/drawer-provider/drawer-context.d.ts +0 -1
- package/drawer-provider/drawer.provider.d.ts +1 -1
- package/drawer-provider/index.js.map +1 -1
- package/drawer-provider/package.json +3 -3
- package/drawer-section/cjs/index.js +1 -1
- package/drawer-section/cjs/index.js.map +1 -1
- package/drawer-section/cjs/package.json +3 -4
- package/drawer-section/drawer-section.d.ts +1 -1
- package/drawer-section/index.js +1 -1
- package/drawer-section/index.js.map +1 -1
- package/drawer-section/package.json +3 -4
- package/drawer-subheader/cjs/index.js +1 -1
- package/drawer-subheader/cjs/index.js.map +1 -1
- package/drawer-subheader/cjs/package.json +1 -1
- package/drawer-subheader/drawer-subheader.d.ts +1 -12
- package/drawer-subheader/package.json +1 -1
- package/enhanced-remote-table/cjs/index.js +1 -23
- package/enhanced-remote-table/cjs/index.js.map +1 -1
- package/enhanced-remote-table/cjs/package.json +3 -3
- package/enhanced-remote-table/enhanced-remote-table.d.ts +1 -1
- package/enhanced-remote-table/enhanced-remote-table.mock.d.ts +1 -1
- package/enhanced-remote-table/index.js +1 -23
- package/enhanced-remote-table/index.js.map +1 -1
- package/enhanced-remote-table/package.json +3 -3
- package/enhanced-table/cjs/index.js +1 -23
- package/enhanced-table/cjs/index.js.map +1 -1
- package/enhanced-table/cjs/package.json +3 -3
- package/enhanced-table/enhanced-table-head.d.ts +1 -1
- package/enhanced-table/enhanced-table.d.ts +1 -1
- package/enhanced-table/enhanced-table.mock.d.ts +1 -1
- package/enhanced-table/index.js +1 -23
- package/enhanced-table/index.js.map +1 -1
- package/enhanced-table/package.json +3 -3
- package/expandable-alert/cjs/index.js +1 -1
- package/expandable-alert/cjs/index.js.map +1 -1
- package/expandable-alert/cjs/package.json +4 -4
- package/expandable-alert/index.js.map +1 -1
- package/expandable-alert/package.json +4 -4
- package/form-dialog/cjs/index.js +1 -1
- package/form-dialog/cjs/index.js.map +1 -1
- package/form-dialog/cjs/package.json +4 -4
- package/form-dialog/form-dialog.d.ts +1 -1
- package/form-dialog/index.js.map +1 -1
- package/form-dialog/package.json +4 -4
- package/generators/cjs/index.js +1 -1
- package/generators/cjs/index.js.map +1 -1
- package/generators/index.js.map +1 -1
- package/group-value-card/cjs/index.js +1 -1
- package/group-value-card/cjs/index.js.map +1 -1
- package/group-value-card/cjs/package.json +2 -2
- package/group-value-card/group-value-card.d.ts +1 -1
- package/group-value-card/group-value-card.mock.d.ts +2 -2
- package/group-value-card/index.js.map +1 -1
- package/group-value-card/package.json +2 -2
- package/header/cjs/index.js +1 -1
- package/header/cjs/index.js.map +1 -1
- package/header/cjs/package.json +2 -3
- package/header/header-title.d.ts +2 -2
- package/header/index.js +1 -1
- package/header/index.js.map +1 -1
- package/header/package.json +2 -3
- package/header-layout/cjs/index.js +1 -1
- package/header-layout/cjs/index.js.map +1 -1
- package/header-layout/cjs/package.json +3 -3
- package/header-layout/header-layout.d.ts +1 -1
- package/header-layout/index.js.map +1 -1
- package/header-layout/package.json +3 -3
- package/index.d.ts +0 -1
- package/index.js +1 -23
- package/index.js.map +1 -1
- package/label/cjs/index.js +1 -1
- package/label/cjs/index.js.map +1 -1
- package/label/cjs/package.json +2 -2
- package/label/index.js.map +1 -1
- package/label/label.d.ts +1 -1
- package/label/package.json +2 -2
- package/link-card/cjs/index.js +1 -1
- package/link-card/cjs/index.js.map +1 -1
- package/link-card/cjs/package.json +2 -3
- package/link-card/index.js +1 -1
- package/link-card/index.js.map +1 -1
- package/link-card/link-card.d.ts +1 -1
- package/link-card/package.json +2 -3
- package/list-panel/cjs/index.js +1 -1
- package/list-panel/cjs/index.js.map +1 -1
- package/list-panel/cjs/package.json +2 -3
- package/list-panel/index.js +1 -1
- package/list-panel/index.js.map +1 -1
- package/list-panel/list-panel-panel.d.ts +1 -1
- package/list-panel/list-panel.context.d.ts +0 -1
- package/list-panel/list-panel.d.ts +1 -1
- package/list-panel/list-panel.mocks.d.ts +1 -1
- package/list-panel/package.json +2 -3
- package/loading-area/cjs/index.js +1 -1
- package/loading-area/cjs/index.js.map +1 -1
- package/loading-area/cjs/package.json +2 -2
- package/loading-area/loading-area.d.ts +1 -1
- package/loading-area/package.json +2 -2
- package/lorem-ipsum-placeholder/cjs/index.js +1 -1
- package/lorem-ipsum-placeholder/cjs/index.js.map +1 -1
- package/lorem-ipsum-placeholder/cjs/package.json +2 -2
- package/lorem-ipsum-placeholder/lorem-ipsum-placeholder.d.ts +1 -1
- package/lorem-ipsum-placeholder/package.json +2 -2
- package/markdown/cjs/index.js +1 -1
- package/markdown/cjs/index.js.map +1 -1
- package/markdown/cjs/package.json +3 -3
- package/markdown/markdown.d.ts +1 -1
- package/markdown/package.json +3 -3
- package/model-form/cjs/index.js +1 -1
- package/model-form/cjs/index.js.map +1 -1
- package/model-form/cjs/package.json +3 -3
- package/model-form/index.js.map +1 -1
- package/model-form/model-form-field.d.ts +1 -1
- package/model-form/model-form.d.ts +1 -1
- package/model-form/package.json +3 -3
- package/notification-center/cjs/index.js +1 -1
- package/notification-center/cjs/index.js.map +1 -1
- package/notification-center/cjs/package.json +2 -2
- package/notification-center/index.js +1 -1
- package/notification-center/index.js.map +1 -1
- package/notification-center/notification-center.context.d.ts +0 -1
- package/notification-center/notification-center.provider.d.ts +1 -1
- package/notification-center/package.json +2 -2
- package/object-details/cjs/index.js +1 -1
- package/object-details/cjs/index.js.map +1 -1
- package/object-details/cjs/package.json +6 -6
- package/object-details/index.js.map +1 -1
- package/object-details/object-details.d.ts +1 -1
- package/object-details/package.json +6 -6
- package/package.json +23 -25
- package/placeholder/cjs/index.js +1 -1
- package/placeholder/cjs/index.js.map +1 -1
- package/placeholder/cjs/package.json +2 -2
- package/placeholder/package.json +2 -2
- package/placeholder/placeholder.d.ts +1 -1
- package/query-container/cjs/index.js +1 -1
- package/query-container/cjs/index.js.map +1 -1
- package/query-container/cjs/package.json +2 -2
- package/query-container/index.js.map +1 -1
- package/query-container/package.json +2 -2
- package/query-container/query-container.d.ts +1 -1
- package/search-input/cjs/index.js +1 -1
- package/search-input/cjs/index.js.map +1 -1
- package/search-input/cjs/package.json +4 -4
- package/search-input/index.js.map +1 -1
- package/search-input/package.json +4 -4
- package/search-input/search-input.d.ts +1 -1
- package/select/cjs/index.js +1 -1
- package/select/cjs/index.js.map +1 -1
- package/select/cjs/package.json +2 -2
- package/select/index.js.map +1 -1
- package/select/package.json +2 -2
- package/select/select.d.ts +1 -1
- package/sign-in/cjs/index.js +1 -1
- package/sign-in/cjs/index.js.map +1 -1
- package/sign-in/cjs/package.json +3 -3
- package/sign-in/index.js.map +1 -1
- package/sign-in/package.json +3 -3
- package/sign-in/sign-in.d.ts +1 -1
- package/skeleton-card/cjs/index.js +1 -1
- package/skeleton-card/cjs/index.js.map +1 -1
- package/skeleton-card/cjs/package.json +2 -2
- package/skeleton-card/package.json +2 -2
- package/skeleton-card/skeleton-card.d.ts +1 -1
- package/skeleton-grid/cjs/index.js +1 -1
- package/skeleton-grid/cjs/index.js.map +1 -1
- package/skeleton-grid/cjs/package.json +2 -2
- package/skeleton-grid/package.json +2 -2
- package/skeleton-grid/skeleton-grid.d.ts +1 -1
- package/tab-card/cjs/index.js +1 -1
- package/tab-card/cjs/index.js.map +1 -1
- package/tab-card/cjs/package.json +2 -2
- package/tab-card/index.js.map +1 -1
- package/tab-card/package.json +2 -2
- package/tab-card/tab-card-panel.d.ts +1 -1
- package/tab-card/tab-card.d.ts +1 -1
- package/tab-card/tab-card.dummy.d.ts +2 -2
- package/tab-panel/cjs/index.js +1 -1
- package/tab-panel/cjs/index.js.map +1 -1
- package/tab-panel/cjs/package.json +2 -2
- package/tab-panel/package.json +2 -2
- package/tab-panel/tab-panel.d.ts +1 -2
- package/tab-provider/cjs/index.js +1 -1
- package/tab-provider/cjs/index.js.map +1 -1
- package/tab-provider/cjs/package.json +1 -1
- package/tab-provider/package.json +1 -1
- package/tab-provider/tab-provider.provider.d.ts +1 -1
- package/table-list/cjs/index.js +1 -23
- package/table-list/cjs/index.js.map +1 -1
- package/table-list/cjs/package.json +3 -3
- package/table-list/index.js +1 -23
- package/table-list/index.js.map +1 -1
- package/table-list/package.json +3 -3
- package/table-list/table-list.d.ts +1 -1
- package/text-field/cjs/index.js +1 -1
- package/text-field/cjs/index.js.map +1 -1
- package/text-field/cjs/package.json +2 -2
- package/text-field/index.js +1 -1
- package/text-field/index.js.map +1 -1
- package/text-field/package.json +2 -2
- package/text-field/text-field.d.ts +1 -1
- package/utils/cjs/index.js +1 -1
- package/utils/cjs/index.js.map +1 -1
- package/utils/cjs/package.json +1 -1
- package/utils/index.js.map +1 -1
- package/utils/package.json +1 -1
- package/utils/theme.d.ts +2 -2
- package/value-base/cjs/index.js +1 -1
- package/value-base/cjs/index.js.map +1 -1
- package/value-base/cjs/package.json +3 -3
- package/value-base/index.js.map +1 -1
- package/value-base/package.json +3 -3
- package/value-base/value-edit.d.ts +3 -4
- package/value-boolean/cjs/index.js +1 -1
- package/value-boolean/cjs/index.js.map +1 -1
- package/value-boolean/cjs/package.json +3 -3
- package/value-boolean/index.js.map +1 -1
- package/value-boolean/package.json +3 -3
- package/value-boolean/value-boolean.d.ts +1 -1
- package/value-card/cjs/index.js +1 -1
- package/value-card/cjs/index.js.map +1 -1
- package/value-card/cjs/package.json +2 -2
- package/value-card/package.json +2 -2
- package/value-card/value-card.d.ts +1 -1
- package/value-content/cjs/index.js +1 -1
- package/value-content/cjs/index.js.map +1 -1
- package/value-content/cjs/package.json +2 -2
- package/value-content/index.js.map +1 -1
- package/value-content/package.json +2 -2
- package/value-content/value-content.d.ts +1 -2
- package/value-datetime/cjs/index.js +1 -1
- package/value-datetime/cjs/index.js.map +1 -1
- package/value-datetime/cjs/package.json +5 -5
- package/value-datetime/index.js.map +1 -1
- package/value-datetime/package.json +5 -5
- package/value-datetime/value-datetime.d.ts +1 -1
- package/value-image/cjs/index.js +1 -1
- package/value-image/cjs/index.js.map +1 -1
- package/value-image/cjs/package.json +2 -2
- package/value-image/index.js.map +1 -1
- package/value-image/package.json +2 -2
- package/value-image/value-image.d.ts +1 -1
- package/value-item/cjs/index.js +1 -1
- package/value-item/cjs/index.js.map +1 -1
- package/value-item/cjs/package.json +2 -2
- package/value-item/index.js.map +1 -1
- package/value-item/package.json +2 -2
- package/value-label/cjs/index.js +1 -1
- package/value-label/cjs/index.js.map +1 -1
- package/value-label/cjs/package.json +3 -3
- package/value-label/index.js +1 -1
- package/value-label/index.js.map +1 -1
- package/value-label/package.json +3 -3
- package/value-label/value-label.d.ts +1 -1
- package/value-rating/cjs/index.js +1 -1
- package/value-rating/cjs/index.js.map +1 -1
- package/value-rating/cjs/package.json +3 -3
- package/value-rating/index.js +1 -1
- package/value-rating/index.js.map +1 -1
- package/value-rating/package.json +3 -3
- package/value-rating/value-rating.d.ts +1 -1
- package/value-text/cjs/index.js +1 -1
- package/value-text/cjs/index.js.map +1 -1
- package/value-text/cjs/package.json +3 -3
- package/value-text/index.js.map +1 -1
- package/value-text/package.json +3 -3
- package/value-text/value-text.d.ts +1 -1
- package/hooks/cjs/index.js +0 -2
- package/hooks/cjs/index.js.map +0 -1
- package/hooks/cjs/package.json +0 -11
- package/hooks/index.d.ts +0 -1
- package/hooks/index.js +0 -2
- package/hooks/index.js.map +0 -1
- package/hooks/package.json +0 -11
- package/hooks/routing/index.d.ts +0 -1
- package/hooks/routing/routing.hooks.d.ts +0 -6
- package/link/cjs/index.js +0 -2
- package/link/cjs/index.js.map +0 -1
- package/link/cjs/package.json +0 -12
- package/link/index.d.ts +0 -1
- package/link/index.js +0 -2
- package/link/index.js.map +0 -1
- package/link/link.d.ts +0 -7
- package/link/package.json +0 -12
- package/model-router/cjs/index.js +0 -24
- package/model-router/cjs/index.js.map +0 -1
- package/model-router/cjs/package.json +0 -16
- package/model-router/index.d.ts +0 -2
- package/model-router/index.js +0 -24
- package/model-router/index.js.map +0 -1
- package/model-router/model-router.d.ts +0 -4
- package/model-router/model-router.types.d.ts +0 -9
- package/model-router/package.json +0 -16
- package/model-router/screens/add-screen.d.ts +0 -16
- package/model-router/screens/details-screen.d.ts +0 -20
- package/model-router/screens/index.d.ts +0 -4
- package/model-router/screens/list-screen.d.ts +0 -30
- package/model-router/screens/screens.types.d.ts +0 -31
- package/model-router/screens/update-screen.d.ts +0 -29
- package/model-router/stories/templates.d.ts +0 -21
package/form-dialog/package.json
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@mui/icons-material": "^
|
|
9
|
-
"@mui/lab": "^
|
|
10
|
-
"@mui/material": "^
|
|
11
|
-
"react": "^
|
|
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
|
}
|
package/generators/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
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":"
|
|
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"}
|
package/generators/index.js.map
CHANGED
|
@@ -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,
|
|
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";
|
|
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":"
|
|
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"}
|
|
@@ -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
|
|
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,
|
|
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"}
|
package/header/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
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
|
package/header/cjs/index.js.map
CHANGED
|
@@ -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":"8pBAKO,MAAMA,EAAgBC,EAAUA,YAGrC,CAACC,EAAOC,KACR,MAAMC,KAAEA,KAASC,GAAUH,EAC3B,OAAOI,EAACC,IAAAC,OAAW,CAAAL,IAAKA,EAAKM,GAAIL,KAAUC,GAAS,IAGzCK,EAAOT,EAAUA,YAAiB,CAACC,EAAOS,IAC9CL,EAAAA,IAACM,EAAAA,QAAa,IAAAV,EAAeW,UAAWb,MCZpCc,EAAaC,EAAAA,cAA0D,CAClF,EACA,IAAM,OAE0BD,EAAWE,SACtC,MCAMC,EAAc,EAAGC,UAASC,eACrC,MAAMC,WAAEA,GAAeC,EAAAA,WAEvB,OAAIH,EAEAZ,MAACgB,EAAAA,SAAiBC,MAAM,UAAUC,KAAMJ,EAAWK,GAAGC,sBAAqB,kBAIvD,iBAAbP,EAEPb,MAACqB,EAAAA,QAAW,CAAAC,QAAQ,KAAKC,KAAK,UAAsB,aAAA,WACjDV,IAKAb,EAAAC,IAAAuB,EAAAC,SAAA,CAAAZ,SAAGA,GAAY,EAKXa,EAAiB,EAAGd,UAASC,eACxC,MAAMC,WAAEA,GAAeC,EAAAA,WAEvB,OAAIH,EAEAZ,MAACgB,EAAAA,SACCC,MAAM,UACNC,KAAMJ,EAAWa,MAAMP,sBACZ,qBAKO,iBAAbP,EAEPb,MAACqB,EAAAA,QAAW,CAAAC,QAAQ,QAAQC,KAAK,UAAsB,aAAA,WACpDV,IAKAb,EAAAC,IAAAuB,EAAAC,SAAA,CAAAZ,SAAGA,GAAY,iBC/Be,EACrCe,QAAQ,GACRC,eACAC,WACAC,kBACAC,SAAS,UACTC,iBAAiB,WACjBC,cACAC,UACAC,OACAC,WAAW,QACXC,uBAEA,MAAMC,GAASH,GAAQ,IAAII,KAAKC,GAAQA,EAAIC,OAAMC,OAAOC,UAEnDC,QAAEA,GAAY9B,EAAAA,WACd+B,EC/B+B,GACrCC,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMH,QAAEA,GAAY9B,EAAAA,WACpB,MAAwB,UAAjB8B,EAAQI,KAAmBJ,EAAQK,KAAKH,GAAeF,EAAQK,KAAKF,EAAW,ED0BjEG,IACdC,EAAaC,GF7BMC,EAAUA,WAAC9C,GE8B/B+C,EEbqB,CAACC,IAC5B,MAAMC,SAAEA,GAAaC,EAAAA,cAErB,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAASI,OAAQD,GAAK,EAAG,CAC3C,MAAME,EAAUL,EAASG,GACnBG,EAAgBC,EAAAA,UAAUF,EAASJ,GACzC,GAAsB,OAAlBK,EACF,OAAOA,CAEV,CAED,OAAO,IAAI,EFEQE,CAAczB,GAE3B0B,EAA+C,CACnDC,QAASpB,EACTqB,QAAStB,EAAQsB,QAAQC,KACzBC,UAAWxB,EAAQwB,UAAUD,KAC7BE,QAAS,UACTC,YAAa,eAETC,EAAUP,EAAejC,GAQzByC,EAPiD,CACrDP,QAASrB,EAAQ6B,gBAAgBT,EAAeC,SAChDC,QAAStB,EAAQsB,QAAQQ,aACzBN,UAAWxB,EAAQwB,UAAUM,aAC7BL,QAAS,UACTC,YAAa1B,EAAQ+B,KAAKT,SAEOnC,GAE7B6C,EAAgC,UAAbxC,EAAuBe,EAAcG,GAAYM,SAASnB,KAEnF,OACE1C,MAAC8E,EAAAA,QAAI,CAAAC,QAASP,EAASvD,MAAOwD,EAC5B5D,SAAAmE,OAACC,EAAAA,QACC,CAAApE,SAAA,CAAAmE,EAAAA,KAACF,EAAG,QAAC,CAAAI,GAAI,CAAEC,GAAI,EAAGC,QAAS,OAAQC,cAAe,MAAOC,eAAgB,iBAAiBzE,SAAA,CACxFmE,OAACF,EAAAA,QAAG,CAAAjE,SAAA,CACDyB,GACCtC,EAACC,IAAAsF,WACCzF,KAAMwC,EAAiBxC,KACvBoB,KAAK,QACLD,MAAM,UACNuE,cAAepF,EACfqF,UAAWnD,EAAiBoD,KAC5BR,GAAI,CAAES,GAAI,GAAG9E,SAEZyB,EAAiBsC,OAGrB1C,GAAa0B,QACZ5D,MAAC4F,EAAAA,QAAW,CACV3E,MAAM,UACN4E,UAAU,IAAG,aACF,aACXX,GAAI,CAAEY,UAAW,GAEhBjF,SAAAqB,EAAYM,KAAI,EAAGuD,KAAIC,OAAMpB,UAC5B5E,EAACC,IAAAG,EAEC,CAAA6F,UAAU,QACVhF,MAAM,UACNnB,KAAMkG,EACN1E,QAAQ,QACRC,KAAK,OAEJV,SAAA+D,GAPImB,OAYb/F,EAAAA,IAACW,EAAW,CAACC,QAASiB,EAAehB,SAAAe,KACnCE,GAAYC,IACZ/B,EAACC,IAAAyB,EAAe,CAAAd,QAASmB,EAAelB,SAAGiB,OAG9CK,GACCnC,MAAC8E,UAAG,CAAAjE,SACDsB,EAAQK,KAAI,EAAG0D,WAAUH,KAAIjG,OAAMqG,UAASvB,QAAQjB,IACnD3D,MAACuF,EAAAA,SACChF,UAAWT,EAAOM,EAAO,SACzBmB,KAAK,SACLN,MAAM,UACNiF,SAAUA,EAEV5E,QAASW,EACTf,KAAK,QACLpB,KAAMA,EACNqG,QAASA,EACTjB,GAAI,CAAEkB,GAAIzC,GAAKxB,EAAQyB,OAAS,EAAI,EAAI,GAEvC/C,SAAA+D,GAPImB,UAad3D,GACCpC,EAAAC,IAACoG,UACC,CAAAC,MAAOzB,EACPJ,UAAU,UACV8B,SAAuB,UAAblE,EAAuB,CAACmE,EAAGC,IAAUpD,EAAeoD,QAASC,WAEtEtE,EAAKI,KAAI,EAAGuD,KAAIY,QAAOT,WAAUxD,OAAM5C,WACtC,MAAM8G,EAAW,CAAED,QAAOT,YAC1B,MAAiB,UAAb7D,EACKrC,EAAAA,IAAC6G,EAAAA,QAAG,IAAcD,GAARb,GAEV/F,MAAC6G,EAAG,QAAA,IAAcD,EAAUrG,UAAWH,EAAMN,KAAMA,EAAMwG,MAAO5D,GAAtDqD,EAClB,UAMX"}
|
|
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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"}
|
package/header/cjs/package.json
CHANGED
package/header/header-title.d.ts
CHANGED
|
@@ -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
|
|
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
|
package/header/index.js.map
CHANGED
|
@@ -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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"}
|
package/header/package.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
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","
|
|
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"}
|
|
@@ -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,
|
|
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"}
|
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";
|