@pautena/react-design-system 0.14.7 → 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 +1 -1
- package/label/index.js.map +1 -1
- package/label/label.d.ts +5 -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/colors.d.ts +1 -0
- 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 +3 -2
- 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/dialog/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react");exports.useDialog=(s=!1)=>{const[t,r]=e.useState(s);return{isOpen:t,open:()=>r(!0),close:()=>r(!1),setIsOpen:r}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dialog/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/dialog/use-dialog.ts"],"sourcesContent":["import { useState } from \"react\";\n\nexport const useDialog = (intialOpen = false) => {\n const [isOpen, setIsOpen] = useState(intialOpen);\n\n const open = () => setIsOpen(true);\n const close = () => setIsOpen(false);\n\n return { isOpen, open, close, setIsOpen };\n};\n"],"names":["intialOpen","isOpen","setIsOpen","useState","open","close"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/dialog/use-dialog.ts"],"sourcesContent":["import { useState } from \"react\";\n\nexport const useDialog = (intialOpen = false) => {\n const [isOpen, setIsOpen] = useState(intialOpen);\n\n const open = () => setIsOpen(true);\n const close = () => setIsOpen(false);\n\n return { isOpen, open, close, setIsOpen };\n};\n"],"names":["intialOpen","isOpen","setIsOpen","useState","open","close"],"mappings":"sDAEyB,CAACA,GAAa,KACrC,MAAOC,EAAQC,GAAaC,EAAAA,SAASH,GAKrC,MAAO,CAAEC,SAAQG,KAHJ,IAAMF,GAAU,GAGNG,MAFT,IAAMH,GAAU,GAEAA,YAAW"}
|
package/dialog/cjs/package.json
CHANGED
package/dialog/package.json
CHANGED
package/dialog/use-dialog.d.ts
CHANGED
package/drawer/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/Drawer"),t=require("@mui/material/Paper"),n=require("@mui/material/Divider"),a=require("@mui/material/IconButton"),s=require("@mui/icons-material/ChevronLeft"),o=require("react");const p=o.createContext(void 0),d=new Error("DrawerContext.Provider is required and was undefined"),l=e=>({width:240,transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.enteringScreen}),overflowX:"hidden"}),c=e=>({transition:e.transitions.create("width",{easing:e.transitions.easing.sharp,duration:e.transitions.duration.leavingScreen}),overflowX:"hidden",width:`calc(${e.spacing(7)} + 1px)`,[e.breakpoints.up("sm")]:{width:`calc(${e.spacing(8)} + 1px)`}}),m=r.styled("div")((({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"flex-end",padding:e.spacing(0,1),...e.mixins.toolbar}))),u={temporary:!0,mini:!0,persistent:!0,clipped:!1},h={temporary:"temporary",mini:"permanent",clipped:"permanent",persistent:"persistent"},w=()=>({}),x={mini:(e,r)=>({boxSizing:"border-box",[`& .${t.paperClasses.root}`]:{zIndex:r.zIndex.drawer-1}}),temporary:w,clipped:w,persistent:w};exports.Drawer=({children:t,...w})=>{const g=r.useTheme(),{state:v,switchState:y,underAppBar:f,close:C,drawerWidth:q,variant:j}=(()=>{const e=o.useContext(p);if(void 0===e)throw d;return e})(),D={width:q,flexShrink:0,whiteSpace:"nowrap",..."open"===v&&{...l(g),[`& .${i.drawerClasses.paper}`]:l(g)},..."open"!==v&&{...c(g),[`& .${i.drawerClasses.paper}`]:c(g)},...x[j](v,g)};return e.jsxs(i,{open:"open"===v,variant:h[j],role:"menu","aria-hidden":"close"===v,onClose:C,sx:D,...w,children:[e.jsx(m,{children:!f&&u[j]&&e.jsx(a,{onClick:y,children:e.jsx(s,{})})}),e.jsx(n,{}),t]})},exports.DrawerHeader=m,exports.getDrawerItemColors=(e,r)=>({color:r?e.palette.primary.main:void 0,fontWeight:r?e.typography.fontWeightBold:e.typography.fontWeightMedium});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/drawer/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/drawer-provider/drawer-context.ts","../../../src/drawer-provider/drawer-mixins.ts","../../../src/drawer/drawer.tsx","../../../src/drawer/drawer.types.ts"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { Theme, CSSObject } from \"@mui/material/styles\";\n\nexport const drawerWidth = 240;\n\nexport const openedMixin = (theme: Theme): CSSObject => ({\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: \"hidden\",\n});\n\nexport const closedMixin = (theme: Theme): CSSObject => ({\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: `calc(${theme.spacing(7)} + 1px)`,\n [theme.breakpoints.up(\"sm\")]: {\n width: `calc(${theme.spacing(8)} + 1px)`,\n },\n});\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"../bullet\";\nimport { LabelVariant } from \"../label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"../drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","openedMixin","theme","width","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","spacing","breakpoints","up","DrawerHeader","styled","display","alignItems","justifyContent","padding","mixins","toolbar","showCloseButton","temporary","mini","persistent","clipped","muiDrawerVariant","NoopSxGenerator","variantsSx","state","boxSizing","paperClasses","root","zIndex","drawer","children","rest","useTheme","switchState","underAppBar","close","drawerWidth","variant","context","useContext","useDrawer","sx","flexShrink","whiteSpace","drawerClasses","paper","_jsxs","MuiDrawer","open","role","onClose","_jsx","IconButton","onClick","ChevronLeftIcon","Divider","selected","color","palette","primary","main","fontWeight","typography","fontWeightBold","fontWeightMedium"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/drawer-provider/drawer-context.ts","../../../src/drawer-provider/drawer-mixins.ts","../../../src/drawer/drawer.tsx","../../../src/drawer/drawer.types.ts"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { Theme, CSSObject } from \"@mui/material/styles\";\n\nexport const drawerWidth = 240;\n\nexport const openedMixin = (theme: Theme): CSSObject => ({\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: \"hidden\",\n});\n\nexport const closedMixin = (theme: Theme): CSSObject => ({\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: `calc(${theme.spacing(7)} + 1px)`,\n [theme.breakpoints.up(\"sm\")]: {\n width: `calc(${theme.spacing(8)} + 1px)`,\n },\n});\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"../bullet\";\nimport { LabelVariant } from \"../label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"../drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","openedMixin","theme","width","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","spacing","breakpoints","up","DrawerHeader","styled","display","alignItems","justifyContent","padding","mixins","toolbar","showCloseButton","temporary","mini","persistent","clipped","muiDrawerVariant","NoopSxGenerator","variantsSx","state","boxSizing","paperClasses","root","zIndex","drawer","children","rest","useTheme","switchState","underAppBar","close","drawerWidth","variant","context","useContext","useDrawer","sx","flexShrink","whiteSpace","drawerClasses","paper","_jsxs","jsxs","MuiDrawer","open","role","onClose","_jsx","jsx","IconButton","onClick","ChevronLeftIcon","Divider","selected","color","palette","primary","main","fontWeight","typography","fontWeightBold","fontWeightMedium"],"mappings":"8RAgBO,MAAMA,EAAgBC,EAAaA,mBAAiCC,GAC9DC,EAAoB,IAAIC,MAAM,wDCb9BC,EAAeC,IAA6B,CACvDC,MAHyB,IAIzBC,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASC,iBAEvCC,UAAW,WAGAC,EAAeV,IAA6B,CACvDE,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASI,gBAEvCF,UAAW,SACXR,MAAO,QAAQD,EAAMY,QAAQ,YAC7B,CAACZ,EAAMa,YAAYC,GAAG,OAAQ,CAC5Bb,MAAO,QAAQD,EAAMY,QAAQ,eCXpBG,EAAeC,EAAAA,OAAO,MAAPA,EAAc,EAAGhB,YAAa,CACxDiB,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASpB,EAAMY,QAAQ,EAAG,MACvBZ,EAAMqB,OAAOC,YAGZC,EAAkD,CACtDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAoF,CACxFJ,UAAW,YACXC,KAAM,YACNE,QAAS,YACTD,WAAY,cAIRG,EAAkB,KAAO,CAAE,GAC3BC,EAA2D,CAC/DL,KAAM,CAACM,EAAoB/B,KAAkB,CAC3CgC,UAAW,aACX,CAAC,MAAMC,eAAaC,QAAS,CAC3BC,OAAQnC,EAAMmC,OAAOC,OAAS,KAGlCZ,UAAWK,EACXF,QAASE,EACTH,WAAYG,kBAGyB,EAAGQ,cAAaC,MACrD,MAAMtC,EAAQuC,EAAAA,YACRR,MAAEA,EAAKS,YAAEA,EAAWC,YAAEA,EAAWC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GF7BtC,MACvB,MAAMC,EAAUC,EAAUA,WAACpD,GAE3B,QAAgBE,IAAZiD,EACF,MAAMhD,EAGR,OAAOgD,CAAO,EEsB2DE,GAEnEC,EAAU,CACd/C,MAAO0C,EACPM,WAAY,EACZC,WAAY,YACE,SAAVnB,GAAoB,IACnBhC,EAAYC,GACf,CAAC,MAAMmD,EAAaA,cAACC,SAAUrD,EAAYC,OAE/B,SAAV+B,GAAoB,IACnBrB,EAAYV,GACf,CAAC,MAAMmD,EAAaA,cAACC,SAAU1C,EAAYV,OAE1C8B,EAAWc,GAASb,EAAO/B,IAGhC,OACEqD,EAAAC,KAACC,EAAS,CACRC,KAAgB,SAAVzB,EACNa,QAAShB,EAAiBgB,GAC1Ba,KAAK,OACQ,cAAU,UAAV1B,EACb2B,QAAShB,EACTM,GAAIA,KACAV,EAEJD,SAAA,CAAAsB,EAAAC,IAAC7C,EAAY,CAAAsB,UACTI,GAAelB,EAAgBqB,IAC/Be,EAACC,IAAAC,GAAWC,QAAStB,EAAWH,SAC9BsB,MAACI,EAAkB,CAAA,OAIzBJ,MAACK,EAAU,CAAA,GACV3B,IACS,qDCVmB,CAACrC,EAAciE,KAAmC,CACnFC,MAAOD,EAAWjE,EAAMmE,QAAQC,QAAQC,UAAOzE,EAC/C0E,WAAYL,EAAWjE,EAAMuE,WAAWC,eAAiBxE,EAAMuE,WAAWE"}
|
package/drawer/cjs/package.json
CHANGED
package/drawer/drawer.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { Theme } from "@mui/material/styles";
|
|
3
2
|
import { DrawerComponent } from "./drawer.types";
|
|
4
3
|
export declare const DrawerHeader: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
package/drawer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/drawer-provider/drawer-context.ts","../../src/drawer-provider/drawer-mixins.ts","../../src/drawer/drawer.tsx","../../src/drawer/drawer.types.ts"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { Theme, CSSObject } from \"@mui/material/styles\";\n\nexport const drawerWidth = 240;\n\nexport const openedMixin = (theme: Theme): CSSObject => ({\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: \"hidden\",\n});\n\nexport const closedMixin = (theme: Theme): CSSObject => ({\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: `calc(${theme.spacing(7)} + 1px)`,\n [theme.breakpoints.up(\"sm\")]: {\n width: `calc(${theme.spacing(8)} + 1px)`,\n },\n});\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"../bullet\";\nimport { LabelVariant } from \"../label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"../drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","openedMixin","theme","width","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","spacing","breakpoints","up","DrawerHeader","styled","display","alignItems","justifyContent","padding","mixins","toolbar","showCloseButton","temporary","mini","persistent","clipped","muiDrawerVariant","NoopSxGenerator","variantsSx","state","boxSizing","paperClasses","root","zIndex","drawer","Drawer","children","rest","useTheme","switchState","underAppBar","close","drawerWidth","variant","context","useContext","useDrawer","sx","flexShrink","whiteSpace","drawerClasses","paper","_jsxs","MuiDrawer","open","role","onClose","_jsx","IconButton","onClick","ChevronLeftIcon","Divider","getDrawerItemColors","selected","color","palette","primary","main","fontWeight","typography","fontWeightBold","fontWeightMedium"],"mappings":"2YAgBO,MAAMA,EAAgBC,OAA8CC,GAC9DC,EAAoB,IAAIC,MAAM,wDCb9BC,EAAeC,IAA6B,CACvDC,MAHyB,IAIzBC,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASC,iBAEvCC,UAAW,WAGAC,EAAeV,IAA6B,CACvDE,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASI,gBAEvCF,UAAW,SACXR,MAAO,QAAQD,EAAMY,QAAQ,YAC7B,CAACZ,EAAMa,YAAYC,GAAG,OAAQ,CAC5Bb,MAAO,QAAQD,EAAMY,QAAQ,eCXpBG,EAAeC,EAAO,MAAPA,EAAc,EAAGhB,YAAa,CACxDiB,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASpB,EAAMY,QAAQ,EAAG,MACvBZ,EAAMqB,OAAOC,YAGZC,EAAkD,CACtDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAoF,CACxFJ,UAAW,YACXC,KAAM,YACNE,QAAS,YACTD,WAAY,cAIRG,EAAkB,KAAO,CAAE,GAC3BC,EAA2D,CAC/DL,KAAM,CAACM,EAAoB/B,KAAkB,CAC3CgC,UAAW,aACX,CAAC,MAAMC,EAAaC,QAAS,CAC3BC,OAAQnC,EAAMmC,OAAOC,OAAS,KAGlCZ,UAAWK,EACXF,QAASE,EACTH,WAAYG,GAGDQ,EAA0B,EAAGC,cAAaC,MACrD,MAAMvC,EAAQwC,KACRT,MAAEA,EAAKU,YAAEA,EAAWC,YAAEA,EAAWC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GF7BtC,MACvB,MAAMC,EAAUC,EAAWrD,GAE3B,QAAgBE,IAAZkD,EACF,MAAMjD,EAGR,OAAOiD,CAAO,EEsB2DE,GAEnEC,EAAU,CACdhD,MAAO2C,EACPM,WAAY,EACZC,WAAY,YACE,SAAVpB,GAAoB,IACnBhC,EAAYC,GACf,CAAC,MAAMoD,EAAcC,SAAUtD,EAAYC,OAE/B,SAAV+B,GAAoB,IACnBrB,EAAYV,GACf,CAAC,MAAMoD,EAAcC,SAAU3C,EAAYV,OAE1C8B,EAAWe,GAASd,EAAO/B,IAGhC,OACEsD,EAACC,EAAS,CACRC,KAAgB,SAAVzB,EACNc,QAASjB,EAAiBiB,GAC1BY,KAAK,OACQ,cAAU,UAAV1B,EACb2B,QAASf,EACTM,GAAIA,KACAV,EAEJD,SAAA,CAAAqB,EAAC5C,EAAY,CAAAuB,UACTI,GAAenB,EAAgBsB,IAC/Bc,EAACC,GAAWC,QAASpB,EAAWH,SAC9BqB,EAACG,EAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/drawer-provider/drawer-context.ts","../../src/drawer-provider/drawer-mixins.ts","../../src/drawer/drawer.tsx","../../src/drawer/drawer.types.ts"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { Theme, CSSObject } from \"@mui/material/styles\";\n\nexport const drawerWidth = 240;\n\nexport const openedMixin = (theme: Theme): CSSObject => ({\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: \"hidden\",\n});\n\nexport const closedMixin = (theme: Theme): CSSObject => ({\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: `calc(${theme.spacing(7)} + 1px)`,\n [theme.breakpoints.up(\"sm\")]: {\n width: `calc(${theme.spacing(8)} + 1px)`,\n },\n});\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"../bullet\";\nimport { LabelVariant } from \"../label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"../drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","openedMixin","theme","width","transition","transitions","create","easing","sharp","duration","enteringScreen","overflowX","closedMixin","leavingScreen","spacing","breakpoints","up","DrawerHeader","styled","display","alignItems","justifyContent","padding","mixins","toolbar","showCloseButton","temporary","mini","persistent","clipped","muiDrawerVariant","NoopSxGenerator","variantsSx","state","boxSizing","paperClasses","root","zIndex","drawer","Drawer","children","rest","useTheme","switchState","underAppBar","close","drawerWidth","variant","context","useContext","useDrawer","sx","flexShrink","whiteSpace","drawerClasses","paper","_jsxs","MuiDrawer","open","role","onClose","_jsx","IconButton","onClick","ChevronLeftIcon","Divider","getDrawerItemColors","selected","color","palette","primary","main","fontWeight","typography","fontWeightBold","fontWeightMedium"],"mappings":"2YAgBO,MAAMA,EAAgBC,OAA8CC,GAC9DC,EAAoB,IAAIC,MAAM,wDCb9BC,EAAeC,IAA6B,CACvDC,MAHyB,IAIzBC,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASC,iBAEvCC,UAAW,WAGAC,EAAeV,IAA6B,CACvDE,WAAYF,EAAMG,YAAYC,OAAO,QAAS,CAC5CC,OAAQL,EAAMG,YAAYE,OAAOC,MACjCC,SAAUP,EAAMG,YAAYI,SAASI,gBAEvCF,UAAW,SACXR,MAAO,QAAQD,EAAMY,QAAQ,YAC7B,CAACZ,EAAMa,YAAYC,GAAG,OAAQ,CAC5Bb,MAAO,QAAQD,EAAMY,QAAQ,eCXpBG,EAAeC,EAAO,MAAPA,EAAc,EAAGhB,YAAa,CACxDiB,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASpB,EAAMY,QAAQ,EAAG,MACvBZ,EAAMqB,OAAOC,YAGZC,EAAkD,CACtDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAoF,CACxFJ,UAAW,YACXC,KAAM,YACNE,QAAS,YACTD,WAAY,cAIRG,EAAkB,KAAO,CAAE,GAC3BC,EAA2D,CAC/DL,KAAM,CAACM,EAAoB/B,KAAkB,CAC3CgC,UAAW,aACX,CAAC,MAAMC,EAAaC,QAAS,CAC3BC,OAAQnC,EAAMmC,OAAOC,OAAS,KAGlCZ,UAAWK,EACXF,QAASE,EACTH,WAAYG,GAGDQ,EAA0B,EAAGC,cAAaC,MACrD,MAAMvC,EAAQwC,KACRT,MAAEA,EAAKU,YAAEA,EAAWC,YAAEA,EAAWC,MAAEA,EAAKC,YAAEA,EAAWC,QAAEA,GF7BtC,MACvB,MAAMC,EAAUC,EAAWrD,GAE3B,QAAgBE,IAAZkD,EACF,MAAMjD,EAGR,OAAOiD,CAAO,EEsB2DE,GAEnEC,EAAU,CACdhD,MAAO2C,EACPM,WAAY,EACZC,WAAY,YACE,SAAVpB,GAAoB,IACnBhC,EAAYC,GACf,CAAC,MAAMoD,EAAcC,SAAUtD,EAAYC,OAE/B,SAAV+B,GAAoB,IACnBrB,EAAYV,GACf,CAAC,MAAMoD,EAAcC,SAAU3C,EAAYV,OAE1C8B,EAAWe,GAASd,EAAO/B,IAGhC,OACEsD,EAACC,EAAS,CACRC,KAAgB,SAAVzB,EACNc,QAASjB,EAAiBiB,GAC1BY,KAAK,OACQ,cAAU,UAAV1B,EACb2B,QAASf,EACTM,GAAIA,KACAV,EAEJD,SAAA,CAAAqB,EAAC5C,EAAY,CAAAuB,UACTI,GAAenB,EAAgBsB,IAC/Bc,EAACC,GAAWC,QAASpB,EAAWH,SAC9BqB,EAACG,EAAkB,CAAA,OAIzBH,EAACI,EAAU,CAAA,GACVzB,IACS,ECVH0B,EAAsB,CAAChE,EAAciE,KAAmC,CACnFC,MAAOD,EAAWjE,EAAMmE,QAAQC,QAAQC,UAAOzE,EAC/C0E,WAAYL,EAAWjE,EAAMuE,WAAWC,eAAiBxE,EAAMuE,WAAWE"}
|
package/drawer/package.json
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("@mui/material/AppBar"),i=require("@mui/material/Toolbar"),t=require("@mui/material/IconButton"),a=require("@mui/material/Typography"),n=require("@mui/material/styles"),s=require("@mui/icons-material/Menu");require("@mui/material/Drawer"),require("@mui/material/Paper"),require("@mui/material/Divider"),require("@mui/icons-material/ChevronLeft");var o=require("react");const d=o.createContext(void 0),u=new Error("DrawerContext.Provider is required and was undefined");n.styled("div")((({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"flex-end",padding:e.spacing(0,1),...e.mixins.toolbar})));const l={temporary:!1,mini:!0,persistent:!0,clipped:!0},m={temporary:()=>!0,mini:e=>"open"!==e,persistent:()=>!0,clipped:()=>!1};exports.DrawerAppBar=({title:p,sx:c,children:h,...x})=>{const g=n.useTheme(),{state:v,variant:q,switchState:w,drawerWidth:y,underAppBar:f}=(()=>{const e=o.useContext(d);if(void 0===e)throw u;return e})(),j=l[q]&&!f&&{transition:g.transitions.create(["width","margin"],{easing:g.transitions.easing.sharp,duration:g.transitions.duration.leavingScreen}),..."open"===v&&{marginLeft:y,width:`calc(100% - ${y}px)`,transition:g.transitions.create(["width","margin"],{easing:g.transitions.easing.sharp,duration:g.transitions.duration.enteringScreen})}}||{};return e.jsx(r,{position:f?"fixed":void 0,...x,sx:{...c,...j,zIndex:e=>e.zIndex.drawer+(f?1:0)},children:e.jsxs(i,{children:[e.jsx(t,{color:"inherit","aria-label":"open drawer",onClick:w,edge:"start",sx:{marginRight:5,display:m[q](v)?void 0:"none"},children:e.jsx(s,{})}),p&&e.jsx(a,{variant:"h6",component:"h1",role:"heading","aria-level":1,noWrap:!0,children:p}),h]})})};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/drawer-provider/drawer-context.ts","../../../src/drawer/drawer.tsx","../../../src/drawer-app-bar/drawer-app-bar.tsx"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import MuiAppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme, Theme } from \"@mui/material/styles\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport { useDrawer } from \"../drawer-provider\";\nimport { AppBarProps as MuiAppBarProps } from \"@mui/material\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nconst moveWithDrawer: Record<DrawerVariant, boolean> = {\n temporary: false,\n mini: true,\n persistent: true,\n clipped: true,\n};\n\nconst showMenuButton: Record<DrawerVariant, (state: DrawerState) => boolean> = {\n temporary: () => true,\n mini: (state) => state !== \"open\",\n persistent: () => true,\n clipped: () => false,\n};\n\nexport interface DrawerAppBarProps extends MuiAppBarProps {\n title?: string;\n}\n\nexport const DrawerAppBar = ({ title, sx, children, ...rest }: DrawerAppBarProps) => {\n const theme = useTheme();\n const { state, variant, switchState, drawerWidth, underAppBar } = useDrawer();\n\n const rootSx =\n (moveWithDrawer[variant] &&\n !underAppBar && {\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(state === \"open\" && {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }),\n }) ||\n {};\n\n return (\n <MuiAppBar\n position={underAppBar ? \"fixed\" : undefined}\n {...rest}\n sx={{\n ...sx,\n ...rootSx,\n zIndex: (theme: Theme) => theme.zIndex.drawer + (underAppBar ? 1 : 0),\n }}\n >\n <Toolbar>\n <IconButton\n color=\"inherit\"\n aria-label=\"open drawer\"\n onClick={switchState}\n edge=\"start\"\n sx={{\n marginRight: 5,\n display: showMenuButton[variant](state) ? undefined : \"none\",\n }}\n >\n <MenuIcon />\n </IconButton>\n {title && (\n <Typography variant=\"h6\" component=\"h1\" role=\"heading\" aria-level={1} noWrap>\n {title}\n </Typography>\n )}\n {children}\n </Toolbar>\n </MuiAppBar>\n );\n};\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","styled","theme","display","alignItems","justifyContent","padding","spacing","mixins","toolbar","moveWithDrawer","temporary","mini","persistent","clipped","showMenuButton","state","title","sx","children","rest","useTheme","variant","switchState","drawerWidth","underAppBar","context","useContext","useDrawer","rootSx","transition","transitions","create","easing","sharp","duration","leavingScreen","marginLeft","width","enteringScreen","_jsx","jsx","MuiAppBar","position","zIndex","drawer","_jsxs","Toolbar","IconButton","color","onClick","edge","marginRight","MenuIcon","Typography","component","role","noWrap"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/drawer-provider/drawer-context.ts","../../../src/drawer/drawer.tsx","../../../src/drawer-app-bar/drawer-app-bar.tsx"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import MuiAppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme, Theme } from \"@mui/material/styles\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport { useDrawer } from \"../drawer-provider\";\nimport { AppBarProps as MuiAppBarProps } from \"@mui/material\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nconst moveWithDrawer: Record<DrawerVariant, boolean> = {\n temporary: false,\n mini: true,\n persistent: true,\n clipped: true,\n};\n\nconst showMenuButton: Record<DrawerVariant, (state: DrawerState) => boolean> = {\n temporary: () => true,\n mini: (state) => state !== \"open\",\n persistent: () => true,\n clipped: () => false,\n};\n\nexport interface DrawerAppBarProps extends MuiAppBarProps {\n title?: string;\n}\n\nexport const DrawerAppBar = ({ title, sx, children, ...rest }: DrawerAppBarProps) => {\n const theme = useTheme();\n const { state, variant, switchState, drawerWidth, underAppBar } = useDrawer();\n\n const rootSx =\n (moveWithDrawer[variant] &&\n !underAppBar && {\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(state === \"open\" && {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }),\n }) ||\n {};\n\n return (\n <MuiAppBar\n position={underAppBar ? \"fixed\" : undefined}\n {...rest}\n sx={{\n ...sx,\n ...rootSx,\n zIndex: (theme: Theme) => theme.zIndex.drawer + (underAppBar ? 1 : 0),\n }}\n >\n <Toolbar>\n <IconButton\n color=\"inherit\"\n aria-label=\"open drawer\"\n onClick={switchState}\n edge=\"start\"\n sx={{\n marginRight: 5,\n display: showMenuButton[variant](state) ? undefined : \"none\",\n }}\n >\n <MenuIcon />\n </IconButton>\n {title && (\n <Typography variant=\"h6\" component=\"h1\" role=\"heading\" aria-level={1} noWrap>\n {title}\n </Typography>\n )}\n {children}\n </Toolbar>\n </MuiAppBar>\n );\n};\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","styled","theme","display","alignItems","justifyContent","padding","spacing","mixins","toolbar","moveWithDrawer","temporary","mini","persistent","clipped","showMenuButton","state","title","sx","children","rest","useTheme","variant","switchState","drawerWidth","underAppBar","context","useContext","useDrawer","rootSx","transition","transitions","create","easing","sharp","duration","leavingScreen","marginLeft","width","enteringScreen","_jsx","jsx","MuiAppBar","position","zIndex","drawer","_jsxs","Toolbar","IconButton","color","onClick","edge","marginRight","MenuIcon","Typography","component","role","noWrap"],"mappings":"2aAgBO,MAAMA,EAAgBC,EAAaA,mBAAiCC,GAC9DC,EAAoB,IAAIC,MAAM,wDCPfC,EAAMA,OAAC,MAAPA,EAAc,EAAGC,YAAa,CACxDC,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASJ,EAAMK,QAAQ,EAAG,MACvBL,EAAMM,OAAOC,YCLlB,MAAMC,EAAiD,CACrDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAyE,CAC7EJ,UAAW,KAAM,EACjBC,KAAOI,GAAoB,SAAVA,EACjBH,WAAY,KAAM,EAClBC,QAAS,KAAM,wBAOW,EAAGG,QAAOC,KAAIC,cAAaC,MACrD,MAAMlB,EAAQmB,EAAAA,YACRL,MAAEA,EAAKM,QAAEA,EAAOC,YAAEA,EAAWC,YAAEA,EAAWC,YAAEA,GFX3B,MACvB,MAAMC,EAAUC,EAAUA,WAAC/B,GAE3B,QAAgBE,IAAZ4B,EACF,MAAM3B,EAGR,OAAO2B,CAAO,EEIoDE,GAE5DC,EACHnB,EAAeY,KACbG,GAAe,CACdK,WAAY5B,EAAM6B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQ/B,EAAM6B,YAAYE,OAAOC,MACjCC,SAAUjC,EAAM6B,YAAYI,SAASC,mBAEzB,SAAVpB,GAAoB,CACtBqB,WAAYb,EACZc,MAAO,eAAed,OACtBM,WAAY5B,EAAM6B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQ/B,EAAM6B,YAAYE,OAAOC,MACjCC,SAAUjC,EAAM6B,YAAYI,SAASI,oBAI7C,CAAE,EAEJ,OACEC,EAACC,IAAAC,GACCC,SAAUlB,EAAc,aAAU3B,KAC9BsB,EACJF,GAAI,IACCA,KACAW,EACHe,OAAS1C,GAAiBA,EAAM0C,OAAOC,QAAUpB,EAAc,EAAI,IAGrEN,SAAA2B,EAAAA,KAACC,EACC,CAAA5B,SAAA,CAAAqB,EAAAC,IAACO,EACC,CAAAC,MAAM,UAAS,aACJ,cACXC,QAAS3B,EACT4B,KAAK,QACLjC,GAAI,CACFkC,YAAa,EACbjD,QAASY,EAAeO,GAASN,QAASlB,EAAY,QACvDqB,SAEDqB,EAAAA,IAACa,EAAW,CAAA,KAEbpC,GACCuB,EAAAC,IAACa,EAAW,CAAAhC,QAAQ,KAAKiC,UAAU,KAAKC,KAAK,UAAsB,aAAA,EAAGC,QAAM,EAAAtC,SACzEF,IAGJE,MAEO"}
|
|
@@ -2,4 +2,4 @@ import { AppBarProps as MuiAppBarProps } from "@mui/material";
|
|
|
2
2
|
export interface DrawerAppBarProps extends MuiAppBarProps {
|
|
3
3
|
title?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare const DrawerAppBar: ({ title, sx, children, ...rest }: DrawerAppBarProps) => JSX.Element;
|
|
5
|
+
export declare const DrawerAppBar: ({ title, sx, children, ...rest }: DrawerAppBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/drawer-provider/drawer-context.ts","../../src/drawer/drawer.tsx","../../src/drawer-app-bar/drawer-app-bar.tsx"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import MuiAppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme, Theme } from \"@mui/material/styles\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport { useDrawer } from \"../drawer-provider\";\nimport { AppBarProps as MuiAppBarProps } from \"@mui/material\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nconst moveWithDrawer: Record<DrawerVariant, boolean> = {\n temporary: false,\n mini: true,\n persistent: true,\n clipped: true,\n};\n\nconst showMenuButton: Record<DrawerVariant, (state: DrawerState) => boolean> = {\n temporary: () => true,\n mini: (state) => state !== \"open\",\n persistent: () => true,\n clipped: () => false,\n};\n\nexport interface DrawerAppBarProps extends MuiAppBarProps {\n title?: string;\n}\n\nexport const DrawerAppBar = ({ title, sx, children, ...rest }: DrawerAppBarProps) => {\n const theme = useTheme();\n const { state, variant, switchState, drawerWidth, underAppBar } = useDrawer();\n\n const rootSx =\n (moveWithDrawer[variant] &&\n !underAppBar && {\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(state === \"open\" && {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }),\n }) ||\n {};\n\n return (\n <MuiAppBar\n position={underAppBar ? \"fixed\" : undefined}\n {...rest}\n sx={{\n ...sx,\n ...rootSx,\n zIndex: (theme: Theme) => theme.zIndex.drawer + (underAppBar ? 1 : 0),\n }}\n >\n <Toolbar>\n <IconButton\n color=\"inherit\"\n aria-label=\"open drawer\"\n onClick={switchState}\n edge=\"start\"\n sx={{\n marginRight: 5,\n display: showMenuButton[variant](state) ? undefined : \"none\",\n }}\n >\n <MenuIcon />\n </IconButton>\n {title && (\n <Typography variant=\"h6\" component=\"h1\" role=\"heading\" aria-level={1} noWrap>\n {title}\n </Typography>\n )}\n {children}\n </Toolbar>\n </MuiAppBar>\n );\n};\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","styled","theme","display","alignItems","justifyContent","padding","spacing","mixins","toolbar","moveWithDrawer","temporary","mini","persistent","clipped","showMenuButton","state","DrawerAppBar","title","sx","children","rest","useTheme","variant","switchState","drawerWidth","underAppBar","context","useContext","useDrawer","rootSx","transition","transitions","create","easing","sharp","duration","leavingScreen","marginLeft","width","enteringScreen","_jsx","MuiAppBar","position","zIndex","drawer","_jsxs","Toolbar","IconButton","color","onClick","edge","marginRight","MenuIcon","Typography","component","role","noWrap"],"mappings":"oeAgBO,MAAMA,EAAgBC,OAA8CC,GAC9DC,EAAoB,IAAIC,MAAM,wDCPfC,EAAO,MAAPA,EAAc,EAAGC,YAAa,CACxDC,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASJ,EAAMK,QAAQ,EAAG,MACvBL,EAAMM,OAAOC,YCLlB,MAAMC,EAAiD,CACrDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAyE,CAC7EJ,UAAW,KAAM,EACjBC,KAAOI,GAAoB,SAAVA,EACjBH,WAAY,KAAM,EAClBC,QAAS,KAAM,GAOJG,EAAe,EAAGC,QAAOC,KAAIC,cAAaC,MACrD,MAAMnB,EAAQoB,KACRN,MAAEA,EAAKO,QAAEA,EAAOC,YAAEA,EAAWC,YAAEA,EAAWC,YAAEA,GFX3B,MACvB,MAAMC,EAAUC,EAAWhC,GAE3B,QAAgBE,IAAZ6B,EACF,MAAM5B,EAGR,OAAO4B,CAAO,EEIoDE,GAE5DC,EACHpB,EAAea,KACbG,GAAe,CACdK,WAAY7B,EAAM8B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQhC,EAAM8B,YAAYE,OAAOC,MACjCC,SAAUlC,EAAM8B,YAAYI,SAASC,mBAEzB,SAAVrB,GAAoB,CACtBsB,WAAYb,EACZc,MAAO,eAAed,OACtBM,WAAY7B,EAAM8B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQhC,EAAM8B,YAAYE,OAAOC,MACjCC,SAAUlC,EAAM8B,YAAYI,SAASI,oBAI7C,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/drawer-provider/drawer-context.ts","../../src/drawer/drawer.tsx","../../src/drawer-app-bar/drawer-app-bar.tsx"],"sourcesContent":["import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import MuiAppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme, Theme } from \"@mui/material/styles\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport { useDrawer } from \"../drawer-provider\";\nimport { AppBarProps as MuiAppBarProps } from \"@mui/material\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nconst moveWithDrawer: Record<DrawerVariant, boolean> = {\n temporary: false,\n mini: true,\n persistent: true,\n clipped: true,\n};\n\nconst showMenuButton: Record<DrawerVariant, (state: DrawerState) => boolean> = {\n temporary: () => true,\n mini: (state) => state !== \"open\",\n persistent: () => true,\n clipped: () => false,\n};\n\nexport interface DrawerAppBarProps extends MuiAppBarProps {\n title?: string;\n}\n\nexport const DrawerAppBar = ({ title, sx, children, ...rest }: DrawerAppBarProps) => {\n const theme = useTheme();\n const { state, variant, switchState, drawerWidth, underAppBar } = useDrawer();\n\n const rootSx =\n (moveWithDrawer[variant] &&\n !underAppBar && {\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(state === \"open\" && {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }),\n }) ||\n {};\n\n return (\n <MuiAppBar\n position={underAppBar ? \"fixed\" : undefined}\n {...rest}\n sx={{\n ...sx,\n ...rootSx,\n zIndex: (theme: Theme) => theme.zIndex.drawer + (underAppBar ? 1 : 0),\n }}\n >\n <Toolbar>\n <IconButton\n color=\"inherit\"\n aria-label=\"open drawer\"\n onClick={switchState}\n edge=\"start\"\n sx={{\n marginRight: 5,\n display: showMenuButton[variant](state) ? undefined : \"none\",\n }}\n >\n <MenuIcon />\n </IconButton>\n {title && (\n <Typography variant=\"h6\" component=\"h1\" role=\"heading\" aria-level={1} noWrap>\n {title}\n </Typography>\n )}\n {children}\n </Toolbar>\n </MuiAppBar>\n );\n};\n"],"names":["DrawerContext","createContext","undefined","UndefinedProvider","Error","styled","theme","display","alignItems","justifyContent","padding","spacing","mixins","toolbar","moveWithDrawer","temporary","mini","persistent","clipped","showMenuButton","state","DrawerAppBar","title","sx","children","rest","useTheme","variant","switchState","drawerWidth","underAppBar","context","useContext","useDrawer","rootSx","transition","transitions","create","easing","sharp","duration","leavingScreen","marginLeft","width","enteringScreen","_jsx","MuiAppBar","position","zIndex","drawer","_jsxs","Toolbar","IconButton","color","onClick","edge","marginRight","MenuIcon","Typography","component","role","noWrap"],"mappings":"oeAgBO,MAAMA,EAAgBC,OAA8CC,GAC9DC,EAAoB,IAAIC,MAAM,wDCPfC,EAAO,MAAPA,EAAc,EAAGC,YAAa,CACxDC,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASJ,EAAMK,QAAQ,EAAG,MACvBL,EAAMM,OAAOC,YCLlB,MAAMC,EAAiD,CACrDC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,SAAS,GAGLC,EAAyE,CAC7EJ,UAAW,KAAM,EACjBC,KAAOI,GAAoB,SAAVA,EACjBH,WAAY,KAAM,EAClBC,QAAS,KAAM,GAOJG,EAAe,EAAGC,QAAOC,KAAIC,cAAaC,MACrD,MAAMnB,EAAQoB,KACRN,MAAEA,EAAKO,QAAEA,EAAOC,YAAEA,EAAWC,YAAEA,EAAWC,YAAEA,GFX3B,MACvB,MAAMC,EAAUC,EAAWhC,GAE3B,QAAgBE,IAAZ6B,EACF,MAAM5B,EAGR,OAAO4B,CAAO,EEIoDE,GAE5DC,EACHpB,EAAea,KACbG,GAAe,CACdK,WAAY7B,EAAM8B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQhC,EAAM8B,YAAYE,OAAOC,MACjCC,SAAUlC,EAAM8B,YAAYI,SAASC,mBAEzB,SAAVrB,GAAoB,CACtBsB,WAAYb,EACZc,MAAO,eAAed,OACtBM,WAAY7B,EAAM8B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQhC,EAAM8B,YAAYE,OAAOC,MACjCC,SAAUlC,EAAM8B,YAAYI,SAASI,oBAI7C,CAAE,EAEJ,OACEC,EAACC,GACCC,SAAUjB,EAAc,aAAU5B,KAC9BuB,EACJF,GAAI,IACCA,KACAW,EACHc,OAAS1C,GAAiBA,EAAM0C,OAAOC,QAAUnB,EAAc,EAAI,IAGrEN,SAAA0B,EAACC,EACC,CAAA3B,SAAA,CAAAqB,EAACO,EACC,CAAAC,MAAM,UAAS,aACJ,cACXC,QAAS1B,EACT2B,KAAK,QACLhC,GAAI,CACFiC,YAAa,EACbjD,QAASY,EAAeQ,GAASP,QAASlB,EAAY,QACvDsB,SAEDqB,EAACY,EAAW,CAAA,KAEbnC,GACCuB,EAACa,EAAW,CAAA/B,QAAQ,KAAKgC,UAAU,KAAKC,KAAK,UAAsB,aAAA,EAAGC,QAAM,EAAArC,SACzEF,IAGJE,MAEO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("@mui/material/List"),i=require("@mui/material/styles"),r=require("@mui/material/ListSubheader"),a=require("@mui/material/ListItemButton"),s=require("@mui/material/ListItemIcon"),l=require("@mui/material/ListItemText"),o=require("@mui/material/Collapse"),n=require("@mui/material/Popover"),m=require("react");require("@mui/material/Drawer"),require("@mui/material/Paper"),require("@mui/material/Divider"),require("@mui/material/IconButton"),require("@mui/icons-material/ChevronLeft");var c=require("@mui/icons-material/ExpandMore"),u=require("@mui/icons-material/ChevronRight"),d=require("@mui/material/Avatar"),p=require("@mui/material/ListItemAvatar"),x=require("@mui/material/Link"),h=require("@mui/material/Badge"),g=require("@mui/material/Box");const v=i.styled(r,{shouldForwardProp:e=>"size"!==e})((({size:e,theme:t})=>({lineHeight:"small"===e?t.typography.pxToRem(40):void 0}))),y=m.createContext(void 0),f=new Error("DrawerContext.Provider is required and was undefined"),j=()=>{const e=m.useContext(y);if(void 0===e)throw f;return e};i.styled("div")((({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"flex-end",padding:e.spacing(0,1),...e.mixins.toolbar})));const b=(e,t)=>({color:t?e.palette.primary.main:void 0,fontWeight:t?e.typography.fontWeightBold:e.typography.fontWeightMedium}),q="RdsBullet-root",T=({variant:t="primary",sx:i})=>e.jsx(h,{color:t,variant:"dot",className:q,role:"bullet","aria-describedby":t,sx:i}),z=({text:t,color:r,variant:a="default",textTransform:s="capitalize",sx:l})=>{const{palette:o,typography:n}=i.useTheme(),m={default:"light"===o.mode?o.grey[100]:o.grey[900],primary:o.primary.light,secondary:o.secondary.light,info:o.info.light,warning:o.warning.light,error:o.error.light,success:o.success.light},c={default:o.getContrastText(m.default),primary:o.primary.contrastText,secondary:o.secondary.contrastText,info:o.info.contrastText,warning:o.warning.contrastText,error:o.error.contrastText,success:o.success.contrastText},u=r||m[a],d=r?o.getContrastText(r):c[a];return e.jsx(g,{height:24,minWidth:22,display:"inline-flex",justifyContent:"center",alignItems:"center",bgcolor:u,color:d,fontSize:n.caption.fontSize,fontWeight:n.fontWeightBold,lineHeight:0,textTransform:s,whiteSpace:"nowrap",borderRadius:2,role:"label","aria-label":`${t} ${a} label`,py:0,px:1,sx:{cursor:"default",...l},children:t})},C=i.styled(x)((({theme:e})=>({color:e.palette.text.primary}))),w={minWidth:0,justifyContent:"center",marginRight:"auto"},W=({text:t,icon:r,avatar:o,label:n,bullet:m,href:c,selected:u,size:x="medium",level:h,sx:g})=>{const{state:v}=j(),y=i.useTheme(),{color:f,fontWeight:q}=b(y,u);return e.jsxs(a,{LinkComponent:C,dense:"small"===x,"aria-label":t,href:c,selected:u,sx:{...g,pl:"open"===v?y.spacing(2+1.5*h):void 0,..."collapse"===v&&{paddingHorizontal:y.spacing(2.5),justifyContent:"center"}},children:[r&&e.jsx(s,{sx:{color:f,..."collapse"===v&&0===h&&w},children:r}),o&&e.jsx(p,{sx:{..."collapse"===v&&0===h&&w},children:e.jsx(d,{alt:o.alt,src:o.src,sx:{..."small"===x&&{width:24,height:24},..."collapse"===v&&{width:30,height:30}}})}),e.jsx(l,{disableTypography:!0,primary:t,sx:{color:f,fontWeight:q,opacity:"collapse"===v&&0===h?0:void 0}}),n&&"open"===v&&e.jsx(z,{text:n.text,variant:n.variant,sx:{ml:2}}),m&&"open"===v&&e.jsx(T,{variant:m.variant,sx:{ml:2}})]})},I=({item:t,size:i="medium",level:r=0})=>{const{selectedItemId:a}=j();if("items"in t){const{id:s,text:l,icon:o,items:n}=t,m=n.some((e=>e.id===a));return e.jsx(L,{size:i,selected:s===a||m,text:l,icon:o,items:n,level:r})}{const{id:s,text:l,icon:o,avatar:n,label:m,bullet:c,href:u}=t;return e.jsx(W,{selected:s===a,size:i,text:l,icon:o,avatar:n,label:m,bullet:c,href:u,level:r})}},L=({text:r,icon:d,selected:p,items:x,size:h="medium",level:g,sx:v={}})=>{const{state:y}=j(),f=m.useRef(null),{palette:q,spacing:T}=i.useTheme(),[z,C]=m.useState(!1),{color:w,fontWeight:W}=b(i.useTheme(),p),L=e.jsx(t,{component:"div",disablePadding:!0,children:x.map((t=>e.jsx(I,{level:g+1,item:t,size:h},t.id)))}),B="collapse"===y&&0===g?{position:"absolute",right:0}:{};return e.jsxs(e.Fragment,{children:[e.jsxs(a,{ref:f,selected:p,"aria-label":r,onClick:()=>C((e=>!e)),dense:"small"===h,sx:{...v,pl:"open"===y?T(2+1.5*g):void 0,backgroundColor:z?q.action.hover:void 0},children:[d&&e.jsx(s,{sx:{color:w},children:d}),e.jsx(l,{disableTypography:!0,primary:r,sx:{color:w,fontWeight:W,opacity:"collapse"===y&&0===g?0:void 0}}),z&&"open"===y?e.jsx(c,{sx:[{color:w,ml:2},B]}):e.jsx(u,{sx:[{color:w,ml:2},B]})]}),"open"===y?e.jsx(o,{in:z,timeout:"auto",unmountOnExit:!0,"aria-label":`${r} collapse submenu`,children:L}):e.jsx(n,{open:z,PaperProps:{elevation:0,variant:"outlined"},"aria-label":`${r} popover submenu`,anchorEl:f.current,onClose:()=>C(!1),anchorOrigin:{vertical:"top",horizontal:"right"},children:L})]})},B=({title:r,items:a,size:s="medium"})=>{const{state:l}=j(),{spacing:o}=i.useTheme();return e.jsxs(e.Fragment,{children:[r&&"open"===l&&e.jsx(v,{size:s,role:"heading",children:r}),e.jsx(t,{sx:{paddingTop:"small"===s?o(0):void 0,paddingY:"collapse"===l?0:void 0},children:a.map((t=>e.jsx(I,{item:t,size:s},t.id)))})]})};exports.DrawerContent=({nav:{items:t},size:i="medium"})=>e.jsx(e.Fragment,{children:t.map((({title:t,items:r},a)=>e.jsx(B,{title:t,items:r,size:i},a)))});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/drawer-subheader/drawer-subheader.tsx","../../../src/drawer-provider/drawer-context.ts","../../../src/drawer/drawer.tsx","../../../src/drawer/drawer.types.ts","../../../src/bullet/bullet.tsx","../../../src/label/label.tsx","../../../src/link/link.tsx","../../../src/drawer-item/drawer-item-link.tsx","../../../src/drawer-item/drawer-item.tsx","../../../src/drawer-item/drawer-menu-item.tsx","../../../src/drawer-section/drawer-section.tsx","../../../src/drawer-content/drawer-content.tsx"],"sourcesContent":["import ListSubheader, { ListSubheaderProps } from \"@mui/material/ListSubheader\";\nimport { styled } from \"@mui/material/styles\";\nimport { DrawerSize } from \"../drawer\";\n\nexport interface DrawerSubheaderProps extends ListSubheaderProps {\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport const DrawerSubheader = styled(ListSubheader, {\n shouldForwardProp: (prop) => prop !== \"size\",\n})<DrawerSubheaderProps>(({ size, theme }) => ({\n lineHeight: size === \"small\" ? theme.typography.pxToRem(40) : undefined,\n}));\n","import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"../bullet\";\nimport { LabelVariant } from \"../label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"../drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n","import Badge from \"@mui/material/Badge\";\nimport { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type BulletVariant = \"primary\" | \"secondary\" | \"default\" | \"info\" | \"warning\" | \"error\";\n\nexport const bulletClasses = {\n root: \"RdsBullet-root\",\n};\n\nexport interface BulletProps {\n /**\n * Color palette used to draw the component\n */\n variant?: BulletVariant;\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Dot to attract the user attention\n */\nexport const Bullet = ({ variant = \"primary\", sx }: BulletProps) => {\n return (\n <Badge\n color={variant}\n variant=\"dot\"\n className={bulletClasses.root}\n role=\"bullet\"\n aria-describedby={variant}\n sx={sx}\n />\n );\n};\n","import Box from \"@mui/material/Box\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\n\nexport type LabelVariant =\n | \"primary\"\n | \"secondary\"\n | \"default\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport const labelClasses = {\n root: \"RdsLabel-root\",\n};\n\nexport interface LabelProps {\n /**\n * Content of the component\n */\n text: string;\n /**\n * Color palette used to draw the component\n */\n variant?: LabelVariant;\n\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n\n /**\n * Show the text as uppercase\n */\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\";\n}\n\n/**\n * Compact element to represent a text\n */\nexport const Label = ({\n text,\n variant = \"default\",\n textTransform = \"capitalize\",\n sx,\n}: LabelProps) => {\n const { palette, typography } = useTheme();\n\n const backgroundColor: Record<LabelVariant, string> = {\n default: palette.mode === \"light\" ? palette.grey[100] : palette.grey[900],\n primary: palette.primary.light,\n secondary: palette.secondary.light,\n info: palette.info.light,\n warning: palette.warning.light,\n error: palette.error.light,\n success: palette.success.light,\n };\n\n const textColor: Record<LabelVariant, string> = {\n default: palette.getContrastText(backgroundColor.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n info: palette.info.contrastText,\n warning: palette.warning.contrastText,\n error: palette.error.contrastText,\n success: palette.success.contrastText,\n };\n\n return (\n <Box\n height={24}\n minWidth={22}\n display=\"inline-flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n bgcolor={backgroundColor[variant]}\n color={textColor[variant]}\n fontSize={typography.caption.fontSize}\n fontWeight={typography.fontWeightBold}\n lineHeight={0}\n textTransform={textTransform}\n whiteSpace=\"nowrap\"\n borderRadius={2}\n role=\"label\"\n aria-label={`${text} ${variant} label`}\n py={0}\n px={1}\n sx={{ cursor: \"default\", ...sx }}\n >\n {text}\n </Box>\n );\n};\n","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 { ReactElement } from \"react\";\nimport Avatar from \"@mui/material/Avatar\";\nimport ListItemAvatar from \"@mui/material/ListItemAvatar\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport { Bullet } from \"../bullet\";\nimport { Label } from \"../label\";\nimport {\n DrawerItemAvatar,\n DrawerItemBullet,\n DrawerItemLabel,\n DrawerSize,\n getDrawerItemColors,\n} from \"../drawer/drawer.types\";\nimport { Link } from \"../link\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerItemLinkProps {\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n /**\n * Text displayed inside the item\n */\n text: string;\n /**\n * Url where the user is going to be redirected\n * if the item is clicked\n */\n href: string;\n /**\n * Icon displayed to the left\n */\n icon?: ReactElement;\n /**\n * Avatar displayed to the left\n */\n avatar?: DrawerItemAvatar;\n /**\n * Label with extra info displayed to the right\n */\n label?: DrawerItemLabel;\n /**\n * Bullet to attract the user attention displyed to the right\n */\n bullet?: DrawerItemBullet;\n /**\n * The item has to be marked as selected\n */\n selected?: boolean;\n /**\n * Deep level of this item inside the submenus\n */\n level: number;\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst StyledLink = styled(Link)(({ theme }) => {\n return {\n color: theme.palette.text.primary,\n };\n});\n\nconst sxCollapsedIcon = {\n minWidth: 0,\n justifyContent: \"center\",\n marginRight: \"auto\",\n};\n\n/**\n * Clicable item inside a drawer\n */\nexport const DrawerItemLink = ({\n text,\n icon,\n avatar,\n label,\n bullet,\n href,\n selected,\n size = \"medium\",\n level,\n sx,\n}: DrawerItemLinkProps) => {\n const { state } = useDrawer();\n const theme = useTheme();\n const { color, fontWeight } = getDrawerItemColors(theme, selected);\n\n return (\n <ListItemButton\n LinkComponent={StyledLink}\n dense={size === \"small\"}\n aria-label={text}\n href={href}\n selected={selected}\n sx={{\n ...sx,\n pl: state === \"open\" ? theme.spacing(2 + 1.5 * level) : undefined,\n ...(state === \"collapse\" && {\n paddingHorizontal: theme.spacing(2.5),\n justifyContent: \"center\",\n }),\n }}\n >\n {icon && (\n <ListItemIcon sx={{ color, ...(state === \"collapse\" && level === 0 && sxCollapsedIcon) }}>\n {icon}\n </ListItemIcon>\n )}\n {avatar && (\n <ListItemAvatar\n sx={{\n ...(state === \"collapse\" && level === 0 && sxCollapsedIcon),\n }}\n >\n <Avatar\n alt={avatar.alt}\n src={avatar.src}\n sx={{\n ...(size === \"small\" && { width: 24, height: 24 }),\n ...(state === \"collapse\" && { width: 30, height: 30 }),\n }}\n />\n </ListItemAvatar>\n )}\n <ListItemText\n disableTypography\n primary={text}\n sx={{ color, fontWeight, opacity: state === \"collapse\" && level === 0 ? 0 : undefined }}\n />\n {label && state === \"open\" && (\n <Label text={label.text} variant={label.variant} sx={{ ml: 2 }} />\n )}\n {bullet && state === \"open\" && <Bullet variant={bullet.variant} sx={{ ml: 2 }} />}\n </ListItemButton>\n );\n};\n","import { DrawerMenuItem } from \"./drawer-menu-item\";\nimport { DrawerNavigationItem, DrawerSize } from \"../drawer/drawer.types\";\nimport { DrawerItemLink } from \"./drawer-item-link\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerItemProps {\n /**\n * Data to be rendered\n */\n item: DrawerNavigationItem;\n /**\n * Size of the item\n */\n size?: DrawerSize;\n /**\n * Deep level of this item inside the submenus\n */\n level?: number;\n}\n\nexport const DrawerItem = ({ item, size = \"medium\", level = 0 }: DrawerItemProps) => {\n const { selectedItemId } = useDrawer();\n if (\"items\" in item) {\n const { id, text, icon, items } = item;\n const childrenSelected = items.some((item) => item.id === selectedItemId);\n return (\n <DrawerMenuItem\n size={size}\n selected={id === selectedItemId || childrenSelected}\n text={text}\n icon={icon}\n items={items}\n level={level}\n />\n );\n } else {\n const { id, text, icon, avatar, label, bullet, href } = item;\n return (\n <DrawerItemLink\n selected={id === selectedItemId}\n size={size}\n text={text}\n icon={icon}\n avatar={avatar}\n label={label}\n bullet={bullet}\n href={href}\n level={level}\n />\n );\n }\n};\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport List from \"@mui/material/List\";\nimport Popover from \"@mui/material/Popover\";\nimport { SxProps, useTheme, Theme } from \"@mui/material/styles\";\nimport { ReactElement, useState, useRef } from \"react\";\nimport { DrawerNavigationItem, DrawerSize, getDrawerItemColors } from \"../drawer\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ChevronRightIcon from \"@mui/icons-material/ChevronRight\";\nimport { DrawerItem } from \"./drawer-item\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerMenuItemProps {\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n /**\n * Text displayed inside the item\n */\n text: string;\n /**\n * Icon displayed to the left\n */\n icon?: ReactElement;\n /**\n * The item has to be marked as selected\n */\n selected?: boolean;\n /**\n * Items that are going to be displayed inside\n * the collapsable\n */\n items: DrawerNavigationItem[];\n /**\n * Deep level of this item inside the submenus\n */\n level: number;\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n}\n\nexport const DrawerMenuItem = ({\n text,\n icon,\n selected,\n items,\n size = \"medium\",\n level,\n sx = {},\n}: DrawerMenuItemProps) => {\n const { state } = useDrawer();\n const anchorEl = useRef<HTMLDivElement | null>(null);\n const { palette, spacing } = useTheme();\n const [menuOpen, setMenuOpen] = useState(false);\n const { color, fontWeight } = getDrawerItemColors(useTheme(), selected);\n\n const submenu = (\n <List component=\"div\" disablePadding>\n {items.map((item) => (\n <DrawerItem key={item.id} level={level + 1} item={item} size={size} />\n ))}\n </List>\n );\n\n const collapsedButtonSx =\n state === \"collapse\" && level === 0\n ? {\n position: \"absolute\",\n right: 0,\n }\n : {};\n\n return (\n <>\n <ListItemButton\n ref={anchorEl}\n selected={selected}\n aria-label={text}\n onClick={() => setMenuOpen((o) => !o)}\n dense={size === \"small\"}\n sx={{\n ...sx,\n pl: state === \"open\" ? spacing(2 + 1.5 * level) : undefined,\n backgroundColor: menuOpen ? palette.action.hover : undefined,\n }}\n >\n {icon && <ListItemIcon sx={{ color }}>{icon}</ListItemIcon>}\n <ListItemText\n disableTypography\n primary={text}\n sx={{ color, fontWeight, opacity: state === \"collapse\" && level === 0 ? 0 : undefined }}\n />\n {menuOpen && state === \"open\" ? (\n <ExpandMoreIcon sx={[{ color, ml: 2 }, collapsedButtonSx]} />\n ) : (\n <ChevronRightIcon sx={[{ color, ml: 2 }, collapsedButtonSx]} />\n )}\n </ListItemButton>\n {state === \"open\" ? (\n <Collapse\n in={menuOpen}\n timeout=\"auto\"\n unmountOnExit\n aria-label={`${text} collapse submenu`}\n >\n {submenu}\n </Collapse>\n ) : (\n <Popover\n open={menuOpen}\n PaperProps={{\n elevation: 0,\n variant: \"outlined\",\n }}\n aria-label={`${text} popover submenu`}\n anchorEl={anchorEl.current}\n onClose={() => setMenuOpen(false)}\n anchorOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n {submenu}\n </Popover>\n )}\n </>\n );\n};\n","import List from \"@mui/material/List\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { DrawerNavigationItem, DrawerSize } from \"../drawer\";\nimport { DrawerSubheader } from \"../drawer-subheader\";\nimport { DrawerItem } from \"../drawer-item\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerSectionProps {\n /**\n * Section title\n */\n title?: string;\n /**\n * List of items of that section\n */\n items: DrawerNavigationItem[];\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\n/**\n * Render a group of items inside the drawer\n * with an optional title\n */\nexport const DrawerSection = ({ title, items, size = \"medium\" }: DrawerSectionProps) => {\n const { state } = useDrawer();\n const { spacing } = useTheme();\n return (\n <>\n {title && state === \"open\" && (\n <DrawerSubheader size={size} role=\"heading\">\n {title}\n </DrawerSubheader>\n )}\n <List\n sx={{\n paddingTop: size === \"small\" ? spacing(0) : undefined,\n paddingY: state === \"collapse\" ? 0 : undefined,\n }}\n >\n {items.map((item) => (\n <DrawerItem key={item.id} item={item} size={size} />\n ))}\n </List>\n </>\n );\n};\n","import { DrawerSection } from \"../drawer-section\";\nimport { DrawerContentComponent, DrawerContentProps } from \"../drawer\";\n\n/**\n * Content to be shown inside a navigation\n */\nexport const DrawerContent: DrawerContentComponent = ({\n nav: { items },\n size = \"medium\",\n}: DrawerContentProps) => {\n return (\n <>\n {items.map(({ title, items }, i) => (\n <DrawerSection key={i} title={title} items={items} size={size} />\n ))}\n </>\n );\n};\n"],"names":["DrawerSubheader","styled","ListSubheader","shouldForwardProp","prop","size","theme","lineHeight","typography","pxToRem","undefined","DrawerContext","createContext","UndefinedProvider","Error","useDrawer","context","useContext","display","alignItems","justifyContent","padding","spacing","mixins","toolbar","getDrawerItemColors","selected","color","palette","primary","main","fontWeight","fontWeightBold","fontWeightMedium","bulletClasses","Bullet","variant","sx","_jsx","Badge","className","role","Label","text","textTransform","useTheme","backgroundColor","default","mode","grey","light","secondary","info","warning","error","success","textColor","getContrastText","contrastText","Box","height","minWidth","bgcolor","fontSize","caption","whiteSpace","borderRadius","py","px","cursor","children","LinkBehaviour","forwardRef","props","ref","href","other","jsx","RouterLink","to","Link","_1","MuiLink","component","StyledLink","sxCollapsedIcon","marginRight","DrawerItemLink","icon","avatar","label","bullet","level","state","_jsxs","ListItemButton","LinkComponent","dense","pl","paddingHorizontal","ListItemIcon","ListItemAvatar","Avatar","alt","src","width","ListItemText","disableTypography","opacity","ml","DrawerItem","item","selectedItemId","id","items","childrenSelected","some","DrawerMenuItem","anchorEl","useRef","menuOpen","setMenuOpen","useState","submenu","List","disablePadding","map","collapsedButtonSx","position","right","_Fragment","onClick","o","action","hover","ExpandMoreIcon","ChevronRightIcon","Collapse","in","timeout","unmountOnExit","Popover","open","PaperProps","elevation","current","onClose","anchorOrigin","vertical","horizontal","DrawerSection","title","jsxs","paddingTop","paddingY","nav","i"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/drawer-subheader/drawer-subheader.tsx","../../../src/drawer-provider/drawer-context.ts","../../../src/drawer/drawer.tsx","../../../src/drawer/drawer.types.ts","../../../src/bullet/bullet.tsx","../../../src/label/label.tsx","../../../src/drawer-item/drawer-item-link.tsx","../../../src/drawer-item/drawer-item.tsx","../../../src/drawer-item/drawer-menu-item.tsx","../../../src/drawer-section/drawer-section.tsx","../../../src/drawer-content/drawer-content.tsx"],"sourcesContent":["import ListSubheader, { ListSubheaderProps } from \"@mui/material/ListSubheader\";\nimport { styled } from \"@mui/material/styles\";\nimport { DrawerSize } from \"../drawer\";\n\nexport interface DrawerSubheaderProps extends ListSubheaderProps {\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport const DrawerSubheader = styled(ListSubheader, {\n shouldForwardProp: (prop) => prop !== \"size\",\n})<DrawerSubheaderProps>(({ size, theme }) => ({\n lineHeight: size === \"small\" ? theme.typography.pxToRem(40) : undefined,\n}));\n","import { useContext, createContext } from \"react\";\nimport { DrawerState, DrawerVariant } from \"../drawer\";\n\nexport interface DrawerContextProps {\n selectedItemId?: string;\n state: DrawerState;\n variant: DrawerVariant;\n drawerWidth: number;\n underAppBar: boolean;\n switchState(): void;\n close(): void;\n collapse(): void;\n open(): void;\n setState: (state: DrawerState) => void;\n}\n\nexport const DrawerContext = createContext<DrawerContextProps | undefined>(undefined);\nexport const UndefinedProvider = new Error(\"DrawerContext.Provider is required and was undefined\");\n\nexport const useDrawer = () => {\n const context = useContext(DrawerContext);\n\n if (context === undefined) {\n throw UndefinedProvider;\n }\n\n return context;\n};\n","import { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport MuiDrawer, { drawerClasses } from \"@mui/material/Drawer\";\nimport { paperClasses } from \"@mui/material/Paper\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport { DrawerComponent, DrawerProps, DrawerState, DrawerVariant } from \"./drawer.types\";\nimport { useDrawer } from \"../drawer-provider/drawer-context\";\nimport { closedMixin, openedMixin } from \"../drawer-provider/drawer-mixins\";\n\nexport const DrawerHeader = styled(\"div\")(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n ...theme.mixins.toolbar,\n}));\n\nconst showCloseButton: Record<DrawerVariant, boolean> = {\n temporary: true,\n mini: true,\n persistent: true,\n clipped: false,\n};\n\nconst muiDrawerVariant: Record<DrawerVariant, \"permanent\" | \"persistent\" | \"temporary\"> = {\n temporary: \"temporary\",\n mini: \"permanent\",\n clipped: \"permanent\",\n persistent: \"persistent\",\n};\n\ntype SxGenerator = (state: DrawerState, theme: Theme) => SxProps<Theme>;\nconst NoopSxGenerator = () => ({});\nconst variantsSx: Readonly<Record<DrawerVariant, SxGenerator>> = {\n mini: (state: DrawerState, theme: Theme) => ({\n boxSizing: \"border-box\",\n [`& .${paperClasses.root}`]: {\n zIndex: theme.zIndex.drawer - 1,\n },\n }),\n temporary: NoopSxGenerator,\n clipped: NoopSxGenerator,\n persistent: NoopSxGenerator,\n};\n\nexport const Drawer: DrawerComponent = ({ children, ...rest }: DrawerProps) => {\n const theme = useTheme();\n const { state, switchState, underAppBar, close, drawerWidth, variant } = useDrawer();\n\n const sx: any = {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n ...(state === \"open\" && {\n ...openedMixin(theme),\n [`& .${drawerClasses.paper}`]: openedMixin(theme),\n }),\n ...(state !== \"open\" && {\n ...closedMixin(theme),\n [`& .${drawerClasses.paper}`]: closedMixin(theme),\n }),\n ...variantsSx[variant](state, theme),\n };\n\n return (\n <MuiDrawer\n open={state === \"open\"}\n variant={muiDrawerVariant[variant]}\n role=\"menu\"\n aria-hidden={state === \"close\"}\n onClose={close}\n sx={sx}\n {...rest}\n >\n <DrawerHeader>\n {!underAppBar && showCloseButton[variant] && (\n <IconButton onClick={switchState}>\n <ChevronLeftIcon />\n </IconButton>\n )}\n </DrawerHeader>\n <Divider />\n {children}\n </MuiDrawer>\n );\n};\n","import { FunctionComponent, ReactElement } from \"react\";\nimport { BulletVariant } from \"../bullet\";\nimport { LabelVariant } from \"../label\";\nimport { DrawerProps as MuiDrawerProps } from \"@mui/material/Drawer\";\nimport { Theme } from \"@mui/material/styles\";\nimport { DrawerAppBarProps } from \"../drawer-app-bar\";\n\nexport type DrawerVariant = \"temporary\" | \"mini\" | \"persistent\" | \"clipped\";\nexport type DrawerState = \"open\" | \"collapse\" | \"close\";\nexport type DrawerSize = \"small\" | \"medium\";\n\nexport interface DrawerItemAvatar {\n src: string;\n alt: string;\n}\n\nexport interface DrawerItemLabel {\n text: string;\n variant: LabelVariant;\n}\n\nexport interface DrawerItemBullet {\n variant: BulletVariant;\n}\n\nexport interface DrawerNavigationItemLink {\n id: string;\n text: string;\n href: string;\n icon?: ReactElement;\n avatar?: DrawerItemAvatar;\n label?: DrawerItemLabel;\n bullet?: DrawerItemBullet;\n}\n\nexport type DrawerNavigationItemCollapsable = Pick<\n DrawerNavigationItemLink,\n \"id\" | \"text\" | \"icon\"\n> & {\n items: DrawerNavigationItem[];\n};\n\nexport type DrawerNavigationItem = DrawerNavigationItemLink | DrawerNavigationItemCollapsable;\n\nexport interface DrawerNavigationSection {\n title?: string;\n items: DrawerNavigationItem[];\n}\n\nexport interface DrawerNavigation {\n items: DrawerNavigationSection[];\n}\n\nexport interface DrawerContentProps {\n /**\n * Object with the content that has to be rendered\n */\n nav: DrawerNavigation;\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\nexport type DrawerContentComponent = FunctionComponent<DrawerContentProps>;\nexport type DrawerContentElement = ReactElement<DrawerContentProps, DrawerContentComponent>;\n\nexport interface DrawerProps extends MuiDrawerProps {\n children: DrawerContentElement;\n}\n\nexport type DrawerComponent = FunctionComponent<DrawerProps>;\nexport type DrawerElement = ReactElement<DrawerProps, DrawerComponent>;\n\nexport const getDrawerItemColors = (theme: Theme, selected: boolean | undefined) => ({\n color: selected ? theme.palette.primary.main : undefined,\n fontWeight: selected ? theme.typography.fontWeightBold : theme.typography.fontWeightMedium,\n});\n\nexport type DrawerAppBarComponent = FunctionComponent<DrawerAppBarProps>;\nexport type DrawerAppBarElement = ReactElement<DrawerAppBarProps, DrawerAppBarComponent>;\n","import Badge from \"@mui/material/Badge\";\nimport { SxProps, Theme } from \"@mui/material/styles\";\n\nexport type BulletVariant = \"primary\" | \"secondary\" | \"default\" | \"info\" | \"warning\" | \"error\";\n\nexport const bulletClasses = {\n root: \"RdsBullet-root\",\n};\n\nexport interface BulletProps {\n /**\n * Color palette used to draw the component\n */\n variant?: BulletVariant;\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Dot to attract the user attention\n */\nexport const Bullet = ({ variant = \"primary\", sx }: BulletProps) => {\n return (\n <Badge\n color={variant}\n variant=\"dot\"\n className={bulletClasses.root}\n role=\"bullet\"\n aria-describedby={variant}\n sx={sx}\n />\n );\n};\n","import Box from \"@mui/material/Box\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\n\nexport type LabelVariant =\n | \"primary\"\n | \"secondary\"\n | \"default\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport const labelClasses = {\n root: \"RdsLabel-root\",\n};\n\nexport interface LabelProps {\n /**\n * Content of the component\n */\n text: string;\n /**\n * Color palette used to draw the component\n */\n variant?: LabelVariant;\n /**\n * Background color. Overrides variant\n */\n color?: string;\n\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n\n /**\n * Show the text as uppercase\n */\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\";\n}\n\n/**\n * Compact element to represent a text\n */\nexport const Label = ({\n text,\n color: colorProp,\n variant = \"default\",\n textTransform = \"capitalize\",\n sx,\n}: LabelProps) => {\n const { palette, typography } = useTheme();\n\n const backgroundColor: Record<LabelVariant, string> = {\n default: palette.mode === \"light\" ? palette.grey[100] : palette.grey[900],\n primary: palette.primary.light,\n secondary: palette.secondary.light,\n info: palette.info.light,\n warning: palette.warning.light,\n error: palette.error.light,\n success: palette.success.light,\n };\n\n const textColor: Record<LabelVariant, string> = {\n default: palette.getContrastText(backgroundColor.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n info: palette.info.contrastText,\n warning: palette.warning.contrastText,\n error: palette.error.contrastText,\n success: palette.success.contrastText,\n };\n\n const bgcolor = colorProp ? colorProp : backgroundColor[variant];\n const color = colorProp ? palette.getContrastText(colorProp) : textColor[variant];\n\n return (\n <Box\n height={24}\n minWidth={22}\n display=\"inline-flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n bgcolor={bgcolor}\n color={color}\n fontSize={typography.caption.fontSize}\n fontWeight={typography.fontWeightBold}\n lineHeight={0}\n textTransform={textTransform}\n whiteSpace=\"nowrap\"\n borderRadius={2}\n role=\"label\"\n aria-label={`${text} ${variant} label`}\n py={0}\n px={1}\n sx={{ cursor: \"default\", ...sx }}\n >\n {text}\n </Box>\n );\n};\n","import { ReactElement } from \"react\";\nimport Avatar from \"@mui/material/Avatar\";\nimport ListItemAvatar from \"@mui/material/ListItemAvatar\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Link from \"@mui/material/Link\";\nimport { SxProps, Theme, styled, useTheme } from \"@mui/material/styles\";\nimport { Bullet } from \"../bullet\";\nimport { Label } from \"../label\";\nimport {\n DrawerItemAvatar,\n DrawerItemBullet,\n DrawerItemLabel,\n DrawerSize,\n getDrawerItemColors,\n} from \"../drawer/drawer.types\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerItemLinkProps {\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n /**\n * Text displayed inside the item\n */\n text: string;\n /**\n * Url where the user is going to be redirected\n * if the item is clicked\n */\n href: string;\n /**\n * Icon displayed to the left\n */\n icon?: ReactElement;\n /**\n * Avatar displayed to the left\n */\n avatar?: DrawerItemAvatar;\n /**\n * Label with extra info displayed to the right\n */\n label?: DrawerItemLabel;\n /**\n * Bullet to attract the user attention displyed to the right\n */\n bullet?: DrawerItemBullet;\n /**\n * The item has to be marked as selected\n */\n selected?: boolean;\n /**\n * Deep level of this item inside the submenus\n */\n level: number;\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst StyledLink = styled(Link)(({ theme }) => {\n return {\n color: theme.palette.text.primary,\n };\n});\n\nconst sxCollapsedIcon = {\n minWidth: 0,\n justifyContent: \"center\",\n marginRight: \"auto\",\n};\n\n/**\n * Clicable item inside a drawer\n */\nexport const DrawerItemLink = ({\n text,\n icon,\n avatar,\n label,\n bullet,\n href,\n selected,\n size = \"medium\",\n level,\n sx,\n}: DrawerItemLinkProps) => {\n const { state } = useDrawer();\n const theme = useTheme();\n const { color, fontWeight } = getDrawerItemColors(theme, selected);\n\n return (\n <ListItemButton\n LinkComponent={StyledLink}\n dense={size === \"small\"}\n aria-label={text}\n href={href}\n selected={selected}\n sx={{\n ...sx,\n pl: state === \"open\" ? theme.spacing(2 + 1.5 * level) : undefined,\n ...(state === \"collapse\" && {\n paddingHorizontal: theme.spacing(2.5),\n justifyContent: \"center\",\n }),\n }}\n >\n {icon && (\n <ListItemIcon sx={{ color, ...(state === \"collapse\" && level === 0 && sxCollapsedIcon) }}>\n {icon}\n </ListItemIcon>\n )}\n {avatar && (\n <ListItemAvatar\n sx={{\n ...(state === \"collapse\" && level === 0 && sxCollapsedIcon),\n }}\n >\n <Avatar\n alt={avatar.alt}\n src={avatar.src}\n sx={{\n ...(size === \"small\" && { width: 24, height: 24 }),\n ...(state === \"collapse\" && { width: 30, height: 30 }),\n }}\n />\n </ListItemAvatar>\n )}\n <ListItemText\n disableTypography\n primary={text}\n sx={{ color, fontWeight, opacity: state === \"collapse\" && level === 0 ? 0 : undefined }}\n />\n {label && state === \"open\" && (\n <Label text={label.text} variant={label.variant} sx={{ ml: 2 }} />\n )}\n {bullet && state === \"open\" && <Bullet variant={bullet.variant} sx={{ ml: 2 }} />}\n </ListItemButton>\n );\n};\n","import { DrawerMenuItem } from \"./drawer-menu-item\";\nimport { DrawerNavigationItem, DrawerSize } from \"../drawer/drawer.types\";\nimport { DrawerItemLink } from \"./drawer-item-link\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerItemProps {\n /**\n * Data to be rendered\n */\n item: DrawerNavigationItem;\n /**\n * Size of the item\n */\n size?: DrawerSize;\n /**\n * Deep level of this item inside the submenus\n */\n level?: number;\n}\n\nexport const DrawerItem = ({ item, size = \"medium\", level = 0 }: DrawerItemProps) => {\n const { selectedItemId } = useDrawer();\n if (\"items\" in item) {\n const { id, text, icon, items } = item;\n const childrenSelected = items.some((item) => item.id === selectedItemId);\n return (\n <DrawerMenuItem\n size={size}\n selected={id === selectedItemId || childrenSelected}\n text={text}\n icon={icon}\n items={items}\n level={level}\n />\n );\n } else {\n const { id, text, icon, avatar, label, bullet, href } = item;\n return (\n <DrawerItemLink\n selected={id === selectedItemId}\n size={size}\n text={text}\n icon={icon}\n avatar={avatar}\n label={label}\n bullet={bullet}\n href={href}\n level={level}\n />\n );\n }\n};\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport List from \"@mui/material/List\";\nimport Popover from \"@mui/material/Popover\";\nimport { SxProps, useTheme, Theme } from \"@mui/material/styles\";\nimport { ReactElement, useState, useRef } from \"react\";\nimport { DrawerNavigationItem, DrawerSize, getDrawerItemColors } from \"../drawer\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ChevronRightIcon from \"@mui/icons-material/ChevronRight\";\nimport { DrawerItem } from \"./drawer-item\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerMenuItemProps {\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n /**\n * Text displayed inside the item\n */\n text: string;\n /**\n * Icon displayed to the left\n */\n icon?: ReactElement;\n /**\n * The item has to be marked as selected\n */\n selected?: boolean;\n /**\n * Items that are going to be displayed inside\n * the collapsable\n */\n items: DrawerNavigationItem[];\n /**\n * Deep level of this item inside the submenus\n */\n level: number;\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n}\n\nexport const DrawerMenuItem = ({\n text,\n icon,\n selected,\n items,\n size = \"medium\",\n level,\n sx = {},\n}: DrawerMenuItemProps) => {\n const { state } = useDrawer();\n const anchorEl = useRef<HTMLDivElement | null>(null);\n const { palette, spacing } = useTheme();\n const [menuOpen, setMenuOpen] = useState(false);\n const { color, fontWeight } = getDrawerItemColors(useTheme(), selected);\n\n const submenu = (\n <List component=\"div\" disablePadding>\n {items.map((item) => (\n <DrawerItem key={item.id} level={level + 1} item={item} size={size} />\n ))}\n </List>\n );\n\n const collapsedButtonSx =\n state === \"collapse\" && level === 0\n ? {\n position: \"absolute\",\n right: 0,\n }\n : {};\n\n return (\n <>\n <ListItemButton\n ref={anchorEl}\n selected={selected}\n aria-label={text}\n onClick={() => setMenuOpen((o) => !o)}\n dense={size === \"small\"}\n sx={{\n ...sx,\n pl: state === \"open\" ? spacing(2 + 1.5 * level) : undefined,\n backgroundColor: menuOpen ? palette.action.hover : undefined,\n }}\n >\n {icon && <ListItemIcon sx={{ color }}>{icon}</ListItemIcon>}\n <ListItemText\n disableTypography\n primary={text}\n sx={{ color, fontWeight, opacity: state === \"collapse\" && level === 0 ? 0 : undefined }}\n />\n {menuOpen && state === \"open\" ? (\n <ExpandMoreIcon sx={[{ color, ml: 2 }, collapsedButtonSx]} />\n ) : (\n <ChevronRightIcon sx={[{ color, ml: 2 }, collapsedButtonSx]} />\n )}\n </ListItemButton>\n {state === \"open\" ? (\n <Collapse\n in={menuOpen}\n timeout=\"auto\"\n unmountOnExit\n aria-label={`${text} collapse submenu`}\n >\n {submenu}\n </Collapse>\n ) : (\n <Popover\n open={menuOpen}\n PaperProps={{\n elevation: 0,\n variant: \"outlined\",\n }}\n aria-label={`${text} popover submenu`}\n anchorEl={anchorEl.current}\n onClose={() => setMenuOpen(false)}\n anchorOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n >\n {submenu}\n </Popover>\n )}\n </>\n );\n};\n","import List from \"@mui/material/List\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { DrawerNavigationItem, DrawerSize } from \"../drawer\";\nimport { DrawerSubheader } from \"../drawer-subheader\";\nimport { DrawerItem } from \"../drawer-item\";\nimport { useDrawer } from \"../drawer-provider\";\n\nexport interface DrawerSectionProps {\n /**\n * Section title\n */\n title?: string;\n /**\n * List of items of that section\n */\n items: DrawerNavigationItem[];\n /**\n * Item size. default to medium\n */\n size?: DrawerSize;\n}\n\n/**\n * Render a group of items inside the drawer\n * with an optional title\n */\nexport const DrawerSection = ({ title, items, size = \"medium\" }: DrawerSectionProps) => {\n const { state } = useDrawer();\n const { spacing } = useTheme();\n return (\n <>\n {title && state === \"open\" && (\n <DrawerSubheader size={size} role=\"heading\">\n {title}\n </DrawerSubheader>\n )}\n <List\n sx={{\n paddingTop: size === \"small\" ? spacing(0) : undefined,\n paddingY: state === \"collapse\" ? 0 : undefined,\n }}\n >\n {items.map((item) => (\n <DrawerItem key={item.id} item={item} size={size} />\n ))}\n </List>\n </>\n );\n};\n","import { DrawerSection } from \"../drawer-section\";\nimport { DrawerContentComponent, DrawerContentProps } from \"../drawer\";\n\n/**\n * Content to be shown inside a navigation\n */\nexport const DrawerContent: DrawerContentComponent = ({\n nav: { items },\n size = \"medium\",\n}: DrawerContentProps) => {\n return (\n <>\n {items.map(({ title, items }, i) => (\n <DrawerSection key={i} title={title} items={items} size={size} />\n ))}\n </>\n );\n};\n"],"names":["DrawerSubheader","styled","ListSubheader","shouldForwardProp","prop","size","theme","lineHeight","typography","pxToRem","undefined","DrawerContext","createContext","UndefinedProvider","Error","useDrawer","context","useContext","display","alignItems","justifyContent","padding","spacing","mixins","toolbar","getDrawerItemColors","selected","color","palette","primary","main","fontWeight","fontWeightBold","fontWeightMedium","bulletClasses","Bullet","variant","sx","_jsx","Badge","className","role","Label","text","colorProp","textTransform","useTheme","backgroundColor","default","mode","grey","light","secondary","info","warning","error","success","textColor","getContrastText","contrastText","bgcolor","Box","height","minWidth","fontSize","caption","whiteSpace","borderRadius","py","px","cursor","children","StyledLink","Link","sxCollapsedIcon","marginRight","DrawerItemLink","icon","avatar","label","bullet","href","level","state","_jsxs","ListItemButton","LinkComponent","dense","pl","paddingHorizontal","ListItemIcon","jsx","ListItemAvatar","Avatar","alt","src","width","ListItemText","disableTypography","opacity","ml","DrawerItem","item","selectedItemId","id","items","childrenSelected","some","DrawerMenuItem","anchorEl","useRef","menuOpen","setMenuOpen","useState","submenu","List","component","disablePadding","map","collapsedButtonSx","position","right","_Fragment","ref","onClick","o","action","hover","ExpandMoreIcon","ChevronRightIcon","Collapse","in","timeout","unmountOnExit","Popover","open","PaperProps","elevation","current","onClose","anchorOrigin","vertical","horizontal","DrawerSection","title","jsxs","paddingTop","paddingY","nav","i"],"mappings":"wyBAWO,MAAMA,EAAkBC,EAAMA,OAACC,EAAe,CACnDC,kBAAoBC,GAAkB,SAATA,GADAH,EAEN,EAAGI,OAAMC,YAAa,CAC7CC,WAAqB,UAATF,EAAmBC,EAAME,WAAWC,QAAQ,SAAMC,MCEnDC,EAAgBC,EAAaA,mBAAiCF,GAC9DG,EAAoB,IAAIC,MAAM,wDAE9BC,EAAY,KACvB,MAAMC,EAAUC,EAAUA,WAACN,GAE3B,QAAgBD,IAAZM,EACF,MAAMH,EAGR,OAAOG,CAAO,EChBYf,EAAMA,OAAC,MAAPA,EAAc,EAAGK,YAAa,CACxDY,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBC,QAASf,EAAMgB,QAAQ,EAAG,MACvBhB,EAAMiB,OAAOC,YC2DX,MAAMC,EAAsB,CAACnB,EAAcoB,KAAmC,CACnFC,MAAOD,EAAWpB,EAAMsB,QAAQC,QAAQC,UAAOpB,EAC/CqB,WAAYL,EAAWpB,EAAME,WAAWwB,eAAiB1B,EAAME,WAAWyB,mBCvE/DC,EACL,iBAiBKC,EAAS,EAAGC,UAAU,UAAWC,QAE1CC,EAAAA,IAACC,EAAK,CACJZ,MAAOS,EACPA,QAAQ,MACRI,UAAWN,EACXO,KAAK,SAAQ,mBACKL,EAClBC,GAAIA,ICaGK,EAAQ,EACnBC,OACAhB,MAAOiB,EACPR,UAAU,UACVS,gBAAgB,aAChBR,SAEA,MAAMT,QAAEA,EAAOpB,WAAEA,GAAesC,aAE1BC,EAAgD,CACpDC,QAA0B,UAAjBpB,EAAQqB,KAAmBrB,EAAQsB,KAAK,KAAOtB,EAAQsB,KAAK,KACrErB,QAASD,EAAQC,QAAQsB,MACzBC,UAAWxB,EAAQwB,UAAUD,MAC7BE,KAAMzB,EAAQyB,KAAKF,MACnBG,QAAS1B,EAAQ0B,QAAQH,MACzBI,MAAO3B,EAAQ2B,MAAMJ,MACrBK,QAAS5B,EAAQ4B,QAAQL,OAGrBM,EAA0C,CAC9CT,QAASpB,EAAQ8B,gBAAgBX,EAAgBC,SACjDnB,QAASD,EAAQC,QAAQ8B,aACzBP,UAAWxB,EAAQwB,UAAUO,aAC7BN,KAAMzB,EAAQyB,KAAKM,aACnBL,QAAS1B,EAAQ0B,QAAQK,aACzBJ,MAAO3B,EAAQ2B,MAAMI,aACrBH,QAAS5B,EAAQ4B,QAAQG,cAGrBC,EAAUhB,GAAwBG,EAAgBX,GAClDT,EAAQiB,EAAYhB,EAAQ8B,gBAAgBd,GAAaa,EAAUrB,GAEzE,OACEE,MAACuB,EAAG,CACFC,OAAQ,GACRC,SAAU,GACV7C,QAAQ,cACRE,eAAe,SACfD,WAAW,SACXyC,QAASA,EACTjC,MAAOA,EACPqC,SAAUxD,EAAWyD,QAAQD,SAC7BjC,WAAYvB,EAAWwB,eACvBzB,WAAY,EACZsC,cAAeA,EACfqB,WAAW,SACXC,aAAc,EACd1B,KAAK,qBACO,GAAGE,KAAQP,UACvBgC,GAAI,EACJC,GAAI,EACJhC,GAAI,CAAEiC,OAAQ,aAAcjC,GAE3BkC,SAAA5B,GACG,ECjCJ6B,EAAavE,EAAAA,OAAOwE,EAAPxE,EAAa,EAAGK,YAC1B,CACLqB,MAAOrB,EAAMsB,QAAQe,KAAKd,YAIxB6C,EAAkB,CACtBX,SAAU,EACV3C,eAAgB,SAChBuD,YAAa,QAMFC,EAAiB,EAC5BjC,OACAkC,OACAC,SACAC,QACAC,SACAC,OACAvD,WACArB,OAAO,SACP6E,QACA7C,SAEA,MAAM8C,MAAEA,GAAUpE,IACZT,EAAQwC,EAAAA,YACRnB,MAAEA,EAAKI,WAAEA,GAAeN,EAAoBnB,EAAOoB,GAEzD,OACE0D,EAAAA,KAACC,EACC,CAAAC,cAAed,EACfe,MAAgB,UAATlF,EACK,aAAAsC,EACZsC,KAAMA,EACNvD,SAAUA,EACVW,GAAI,IACCA,EACHmD,GAAc,SAAVL,EAAmB7E,EAAMgB,QAAQ,EAAI,IAAM4D,QAASxE,KAC1C,aAAVyE,GAAwB,CAC1BM,kBAAmBnF,EAAMgB,QAAQ,KACjCF,eAAgB,WAEnBmD,SAAA,CAEAM,GACCvC,EAAAA,IAACoD,GAAarD,GAAI,CAAEV,WAAqB,aAAVwD,GAAkC,IAAVD,GAAeR,GAAkBH,SACrFM,IAGJC,GACCxC,EAAAqD,IAACC,EAAc,CACbvD,GAAI,IACY,aAAV8C,GAAkC,IAAVD,GAAeR,GAC5CH,SAEDjC,EAAAA,IAACuD,EAAM,CACLC,IAAKhB,EAAOgB,IACZC,IAAKjB,EAAOiB,IACZ1D,GAAI,IACW,UAAThC,GAAoB,CAAE2F,MAAO,GAAIlC,OAAQ,OAC/B,aAAVqB,GAAwB,CAAEa,MAAO,GAAIlC,OAAQ,SAKzDxB,EAAAA,IAAC2D,EACC,CAAAC,qBACArE,QAASc,EACTN,GAAI,CAAEV,QAAOI,aAAYoE,QAAmB,aAAVhB,GAAkC,IAAVD,EAAc,OAAIxE,KAE7EqE,GAAmB,SAAVI,GACR7C,EAAAA,IAACI,GAAMC,KAAMoC,EAAMpC,KAAMP,QAAS2C,EAAM3C,QAASC,GAAI,CAAE+D,GAAI,KAE5DpB,GAAoB,SAAVG,GAAoB7C,EAAAA,IAACH,GAAOC,QAAS4C,EAAO5C,QAASC,GAAI,CAAE+D,GAAI,OAC3D,EC1HRC,EAAa,EAAGC,OAAMjG,OAAO,SAAU6E,QAAQ,MAC1D,MAAMqB,eAAEA,GAAmBxF,IAC3B,GAAI,UAAWuF,EAAM,CACnB,MAAME,GAAEA,EAAE7D,KAAEA,EAAIkC,KAAEA,EAAI4B,MAAEA,GAAUH,EAC5BI,EAAmBD,EAAME,MAAML,GAASA,EAAKE,KAAOD,IAC1D,OACEjE,EAAAA,IAACsE,EAAc,CACbvG,KAAMA,EACNqB,SAAU8E,IAAOD,GAAkBG,EACnC/D,KAAMA,EACNkC,KAAMA,EACN4B,MAAOA,EACPvB,MAAOA,IAGN,CACL,MAAMsB,GAAEA,EAAE7D,KAAEA,EAAIkC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,OAAEA,EAAMC,KAAEA,GAASqB,EACxD,OACEhE,MAACsC,GACClD,SAAU8E,IAAOD,EACjBlG,KAAMA,EACNsC,KAAMA,EACNkC,KAAMA,EACNC,OAAQA,EACRC,MAAOA,EACPC,OAAQA,EACRC,KAAMA,EACNC,MAAOA,MCDF0B,EAAiB,EAC5BjE,OACAkC,OACAnD,WACA+E,QACApG,OAAO,SACP6E,QACA7C,KAAK,CAAE,MAEP,MAAM8C,MAAEA,GAAUpE,IACZ8F,EAAWC,EAAMA,OAAwB,OACzClF,QAAEA,EAAON,QAAEA,GAAYwB,cACtBiE,EAAUC,GAAeC,EAAAA,UAAS,IACnCtF,MAAEA,EAAKI,WAAEA,GAAeN,EAAoBqB,EAAAA,WAAYpB,GAExDwF,EACJ5E,EAAAqD,IAACwB,EAAK,CAAAC,UAAU,MAAMC,gBACnB,EAAA9C,SAAAkC,EAAMa,KAAKhB,GACVhE,EAAAA,IAAC+D,EAAyB,CAAAnB,MAAOA,EAAQ,EAAGoB,KAAMA,EAAMjG,KAAMA,GAA7CiG,EAAKE,QAKtBe,EACM,aAAVpC,GAAkC,IAAVD,EACpB,CACEsC,SAAU,WACVC,MAAO,GAET,CAAE,EAER,OACErC,OACEsC,EAAAA,SAAA,CAAAnD,SAAA,CAAAa,EAAAA,KAACC,EAAc,CACbsC,IAAKd,EACLnF,SAAUA,EAAQ,aACNiB,EACZiF,QAAS,IAAMZ,GAAaa,IAAOA,IACnCtC,MAAgB,UAATlF,EACPgC,GAAI,IACCA,EACHmD,GAAc,SAAVL,EAAmB7D,EAAQ,EAAI,IAAM4D,QAASxE,EAClDqC,gBAAiBgE,EAAWnF,EAAQkG,OAAOC,WAAQrH,GACpD6D,SAAA,CAEAM,GAAQvC,EAACqD,IAAAD,GAAarD,GAAI,CAAEV,SAAO4C,SAAGM,IACvCvC,EAACqD,IAAAM,EACC,CAAAC,mBACA,EAAArE,QAASc,EACTN,GAAI,CAAEV,QAAOI,aAAYoE,QAAmB,aAAVhB,GAAkC,IAAVD,EAAc,OAAIxE,KAE7EqG,GAAsB,SAAV5B,EACX7C,EAACqD,IAAAqC,EAAe,CAAA3F,GAAI,CAAC,CAAEV,QAAOyE,GAAI,GAAKmB,KAEvCjF,EAACqD,IAAAsC,EAAiB,CAAA5F,GAAI,CAAC,CAAEV,QAAOyE,GAAI,GAAKmB,QAGlC,SAAVpC,EACC7C,MAAC4F,EACC,CAAAC,GAAIpB,EACJqB,QAAQ,OACRC,eAAa,EAAA,aACD,GAAG1F,qBAEd4B,SAAA2C,IAGH5E,EAAAA,IAACgG,EAAO,CACNC,KAAMxB,EACNyB,WAAY,CACVC,UAAW,EACXrG,QAAS,YAEC,aAAA,GAAGO,oBACfkE,SAAUA,EAAS6B,QACnBC,QAAS,IAAM3B,GAAY,GAC3B4B,aAAc,CACZC,SAAU,MACVC,WAAY,SACbvE,SAEA2C,MAGJ,ECxGM6B,EAAgB,EAAGC,QAAOvC,QAAOpG,OAAO,aACnD,MAAM8E,MAAEA,GAAUpE,KACZO,QAAEA,GAAYwB,aACpB,OACEsC,EAAA6D,KAAAvB,WAAA,CAAAnD,SAAA,CACGyE,GAAmB,SAAV7D,GACR7C,EAAAqD,IAAC3F,EAAe,CAACK,KAAMA,EAAMoC,KAAK,UAAS8B,SACxCyE,IAGL1G,EAACqD,IAAAwB,EACC,CAAA9E,GAAI,CACF6G,WAAqB,UAAT7I,EAAmBiB,EAAQ,QAAKZ,EAC5CyI,SAAoB,aAAVhE,EAAuB,OAAIzE,GACtC6D,SAEAkC,EAAMa,KAAKhB,GACVhE,EAACqD,IAAAU,GAAyBC,KAAMA,EAAMjG,KAAMA,GAA3BiG,EAAKE,UAGzB,wBCxC8C,EACnD4C,KAAO3C,SACPpG,OAAO,YAGLiC,MACGoF,EAAAA,SAAA,CAAAnD,SAAAkC,EAAMa,KAAI,EAAG0B,QAAOvC,SAAS4C,IAC5B/G,EAAAA,IAACyG,EAAa,CAASC,MAAOA,EAAOvC,MAAOA,EAAOpG,KAAMA,GAArCgJ"}
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@mui/icons-material": "^
|
|
9
|
-
"@mui/material": "^
|
|
10
|
-
"react": "^
|
|
11
|
-
"react-router-dom": "^6.14.0"
|
|
8
|
+
"@mui/icons-material": "^6.4.5",
|
|
9
|
+
"@mui/material": "^6.4.5",
|
|
10
|
+
"react": "^19.0.0"
|
|
12
11
|
}
|
|
13
12
|
}
|