@espressif/dashboard-ui-components 1.11.2 → 1.12.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/.claude/rules/dashboard-ui-consumption.md +176 -5
- package/.cursor/rules/dashboard-ui-consumption.mdc +163 -4
- package/CHANGELOG.md +1005 -0
- package/README.md +240 -7
- package/THIRD-PARTY-NOTICES.md +2 -1
- package/dist/alert.props-CcKo49Rb.d.ts +44 -0
- package/dist/animation/index.d.ts +3 -0
- package/dist/animation/index.js +3 -0
- package/dist/avatar.props-2q5BsX-R.d.ts +29 -0
- package/dist/button-BK-DIR_L.d.ts +21 -0
- package/dist/button-BxJ7s6sR.d.ts +76 -0
- package/dist/calendar.props-BtCzuWH1.d.ts +12 -0
- package/dist/carousel/index.d.ts +2 -0
- package/dist/carousel/index.js +2 -0
- package/dist/charts/index.d.ts +5 -0
- package/dist/charts/index.js +9 -0
- package/dist/common/app-logo/app-logo.js +1 -1
- package/dist/common/index.d.ts +9 -20
- package/dist/common/my-account-menu/my-account-menu.js +45 -13
- package/dist/common/profile-card/profile-card.js +3 -2
- package/dist/components/accordion/accordion.js +14 -5
- package/dist/components/accordion/index.d.ts +36 -0
- package/dist/components/accordion/index.js +2 -0
- package/dist/components/advanced-search-box/advanced-search-box.js +8 -2
- package/dist/components/advanced-search-box/index.d.ts +29 -0
- package/dist/components/advanced-search-box/index.js +2 -0
- package/dist/components/alert/alert.js +2 -1
- package/dist/components/alert/index.d.ts +12 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/anchored-panel/anchored-panel.js +83 -0
- package/dist/components/anchored-panel/index.d.ts +31 -0
- package/dist/components/anchored-panel/index.js +2 -0
- package/dist/components/animated-containers/index.d.ts +13 -0
- package/dist/components/animated-containers/index.js +2 -0
- package/dist/components/async-multi-select/async-multi-select.js +48 -7
- package/dist/components/async-multi-select/index.d.ts +63 -0
- package/dist/components/async-multi-select/index.js +2 -0
- package/dist/components/avatar/avatar.js +11 -4
- package/dist/components/avatar/index.d.ts +8 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar-group/avatar-group.js +35 -0
- package/dist/components/avatar-group/index.d.ts +31 -0
- package/dist/components/avatar-group/index.js +2 -0
- package/dist/components/badge/index.d.ts +14 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/breadcrumb/index.d.ts +21 -0
- package/dist/components/breadcrumb/index.js +2 -0
- package/dist/components/bubble/bubble.js +18 -0
- package/dist/components/bubble/index.d.ts +19 -0
- package/dist/components/bubble/index.js +2 -0
- package/dist/components/button/button.js +87 -25
- package/dist/components/button/flash-button.js +9 -3
- package/dist/components/button/index.d.ts +56 -0
- package/dist/components/button/index.js +6 -0
- package/dist/components/button-group/index.d.ts +16 -0
- package/dist/components/button-group/index.js +2 -0
- package/dist/components/calendar/calendar.js +5 -5
- package/dist/components/calendar/index.d.ts +11 -0
- package/dist/components/calendar/index.js +2 -0
- package/dist/components/card/index.d.ts +11 -0
- package/dist/components/card/index.js +2 -0
- package/dist/components/card-rail/card-rail.js +50 -0
- package/dist/components/card-rail/index.d.ts +30 -0
- package/dist/components/card-rail/index.js +2 -0
- package/dist/components/cards/collapsible-card.js +5 -2
- package/dist/components/cards/index.d.ts +16200 -0
- package/dist/components/cards/index.js +8 -0
- package/dist/components/cards/section-card.js +133 -8
- package/dist/components/cards/simple-card.js +5 -2
- package/dist/components/carousel/carousel.js +137 -49
- package/dist/components/carousel/index.d.ts +130 -0
- package/dist/components/carousel/index.js +2 -0
- package/dist/components/category-card/category-card.js +111 -0
- package/dist/components/category-card/index.d.ts +55 -0
- package/dist/components/category-card/index.js +2 -0
- package/dist/components/chart/area-chart.js +95 -85
- package/dist/components/chart/bar-chart.js +123 -60
- package/dist/components/chart/chart.js +127 -3
- package/dist/components/chart/composed-chart.js +109 -98
- package/dist/components/chart/donut-chart.js +23 -5
- package/dist/components/chart/index.d.ts +732 -0
- package/dist/components/chart/index.js +9 -0
- package/dist/components/chart/line-chart.js +93 -83
- package/dist/components/chart/treemap-chart.js +71 -58
- package/dist/components/check-badge/check-badge.js +25 -0
- package/dist/components/check-badge/index.d.ts +13 -0
- package/dist/components/check-badge/index.js +2 -0
- package/dist/components/checkbox/index.d.ts +8 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/choice-card/choice-card.js +99 -0
- package/dist/components/choice-card/index.d.ts +41 -0
- package/dist/components/choice-card/index.js +2 -0
- package/dist/components/circular-progress/circular-progress.js +5 -2
- package/dist/components/circular-progress/index.d.ts +23 -0
- package/dist/components/circular-progress/index.js +2 -0
- package/dist/components/code/index.d.ts +40 -0
- package/dist/components/code/index.js +2 -0
- package/dist/components/code-editor/code-editor.js +9 -3
- package/dist/components/code-editor/index.d.ts +82 -0
- package/dist/components/code-editor/index.js +2 -0
- package/dist/components/collapsible/index.d.ts +42 -0
- package/dist/components/collapsible/index.js +2 -0
- package/dist/components/column-panel/column-panel.js +38 -0
- package/dist/components/column-panel/index.d.ts +37 -0
- package/dist/components/column-panel/index.js +3 -0
- package/dist/components/column-panel/use-panel-flag.js +27 -0
- package/dist/components/combobox/index.d.ts +28 -0
- package/dist/components/combobox/index.js +2 -0
- package/dist/components/confirmation-dialog/confirmation-dialog.js +1 -1
- package/dist/components/confirmation-dialog/index.d.ts +40 -0
- package/dist/components/confirmation-dialog/index.js +3 -0
- package/dist/components/content-container/index.d.ts +16 -0
- package/dist/components/content-container/index.js +2 -0
- package/dist/components/copiable-text/index.d.ts +33 -0
- package/dist/components/copiable-text/index.js +2 -0
- package/dist/components/coverflow/_constants/coverflow-poses.js +23 -0
- package/dist/components/coverflow/_constants/coverflow-shapes.js +23 -0
- package/dist/components/coverflow/_hooks/use-coverflow.js +90 -0
- package/dist/components/coverflow/_utils/ring.js +24 -0
- package/dist/components/coverflow/coverflow.js +198 -0
- package/dist/components/coverflow/index.d.ts +105 -0
- package/dist/components/coverflow/index.js +2 -0
- package/dist/components/data-table/data-table.js +9 -2
- package/dist/components/data-table/index.d.ts +120 -0
- package/dist/components/data-table/index.js +3 -0
- package/dist/components/date-picker/date-picker.js +5 -2
- package/dist/components/date-picker/index.d.ts +50 -0
- package/dist/components/date-picker/index.js +2 -0
- package/dist/components/date-range-picker/date-range-picker.js +11 -2
- package/dist/components/date-range-picker/index.d.ts +100 -0
- package/dist/components/date-range-picker/index.js +3 -0
- package/dist/components/date-time-picker/date-time-picker.js +5 -2
- package/dist/components/date-time-picker/index.d.ts +79 -0
- package/dist/components/date-time-picker/index.js +2 -0
- package/dist/components/device-icon/index.d.ts +17 -0
- package/dist/components/device-icon/index.js +2 -0
- package/dist/components/dialog/index.d.ts +38 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/dropdown-menu/index.d.ts +57 -0
- package/dist/components/dropdown-menu/index.js +2 -0
- package/dist/components/dynamic-list/dynamic-list.js +4 -4
- package/dist/components/dynamic-list/index.d.ts +74 -0
- package/dist/components/dynamic-list/index.js +2 -0
- package/dist/components/error-display/index.d.ts +17 -0
- package/dist/components/error-display/index.js +3 -0
- package/dist/components/expandable-text/expandable-text-overlay.js +78 -0
- package/dist/components/expandable-text/expandable-text.js +73 -0
- package/dist/components/expandable-text/index.d.ts +39 -0
- package/dist/components/expandable-text/index.js +2 -0
- package/dist/components/expandable-text/use-clamped.js +23 -0
- package/dist/components/facet-filters/_hooks/use-filter-group.js +51 -0
- package/dist/components/facet-filters/active-filters.js +31 -0
- package/dist/components/facet-filters/filter-group.js +110 -0
- package/dist/components/facet-filters/filters-panel.js +59 -0
- package/dist/components/facet-filters/filters-pill.js +40 -0
- package/dist/components/facet-filters/index.d.ts +104 -0
- package/dist/components/facet-filters/index.js +6 -0
- package/dist/components/facet-filters/use-filters-collapsed.js +21 -0
- package/dist/components/feature-grid/feature-grid.js +115 -0
- package/dist/components/feature-grid/index.d.ts +53 -0
- package/dist/components/feature-grid/index.js +2 -0
- package/dist/components/file-input/file-input.js +9 -3
- package/dist/components/file-input/index.d.ts +78 -0
- package/dist/components/file-input/index.js +2 -0
- package/dist/components/file-upload/file-upload.js +10 -5
- package/dist/components/file-upload/index.d.ts +38 -0
- package/dist/components/file-upload/index.js +2 -0
- package/dist/components/filters-bar/filters-bar.js +5 -1
- package/dist/components/filters-bar/index.d.ts +26 -0
- package/dist/components/filters-bar/index.js +2 -0
- package/dist/components/flip-card/flip-card.js +147 -0
- package/dist/components/flip-card/index.d.ts +43 -0
- package/dist/components/flip-card/index.js +2 -0
- package/dist/components/floating-window/_hooks/use-drag-move.js +76 -0
- package/dist/components/floating-window/floating-window.js +97 -0
- package/dist/components/floating-window/index.d.ts +45 -0
- package/dist/components/floating-window/index.js +2 -0
- package/dist/components/form/index.d.ts +28 -0
- package/dist/components/form/index.js +2 -0
- package/dist/components/fullscreen-dialog/fullscreen-dialog.js +6 -2
- package/dist/components/fullscreen-dialog/index.d.ts +38 -0
- package/dist/components/fullscreen-dialog/index.js +2 -0
- package/dist/components/horizontal-stepper/horizontal-stepper.js +122 -0
- package/dist/components/horizontal-stepper/index.d.ts +70 -0
- package/dist/components/horizontal-stepper/index.js +2 -0
- package/dist/components/icon-avatar/index.d.ts +9 -0
- package/dist/components/icon-avatar/index.js +2 -0
- package/dist/components/icon-text-action-card/icon-text-action-card.js +9 -5
- package/dist/components/icon-text-action-card/index.d.ts +11 -0
- package/dist/components/icon-text-action-card/index.js +2 -0
- package/dist/components/identicon/identicon.js +33 -0
- package/dist/components/identicon/index.d.ts +26 -0
- package/dist/components/identicon/index.js +2 -0
- package/dist/components/illustration/index.d.ts +37 -0
- package/dist/components/illustration/index.js +3 -0
- package/dist/components/index.d.ts +177 -19529
- package/dist/components/index.js +61 -10
- package/dist/components/input/index.d.ts +15 -0
- package/dist/components/input/index.js +3 -0
- package/dist/components/input-group/index.d.ts +35 -0
- package/dist/components/input-group/index.js +2 -0
- package/dist/components/input-group/input-group.js +41 -0
- package/dist/components/input-otp/index.d.ts +63 -0
- package/dist/components/input-otp/index.js +2 -0
- package/dist/components/key-value-manager/index.d.ts +63 -0
- package/dist/components/key-value-manager/index.js +2 -0
- package/dist/components/key-value-manager/key-value-manager-table.js +7 -5
- package/dist/components/label/index.d.ts +8 -0
- package/dist/components/label/index.js +2 -0
- package/dist/components/link/index.d.ts +33 -0
- package/dist/components/link/index.js +2 -0
- package/dist/components/list/index.d.ts +9 -0
- package/dist/components/list/index.js +3 -0
- package/dist/components/list/list-item.utils.js +1 -1
- package/dist/components/list/list.js +3 -1
- package/dist/components/list-details/index.d.ts +51 -0
- package/dist/components/list-details/index.js +2 -0
- package/dist/components/list-details/list-details.js +5 -2
- package/dist/components/lottie-animation-container/index.d.ts +10 -0
- package/dist/components/lottie-animation-container/index.js +2 -0
- package/dist/components/lottie-animation-container/lottie-animation-container.js +22 -3
- package/dist/components/lottie-animations/index.d.ts +8 -0
- package/dist/components/lottie-animations/index.js +2 -0
- package/dist/components/markdown-content/index.d.ts +32 -0
- package/dist/components/markdown-content/index.js +2 -0
- package/dist/components/media-card/index.d.ts +125 -0
- package/dist/components/media-card/index.js +4 -0
- package/dist/components/media-card/media-card-image.js +59 -0
- package/dist/components/media-card/media-card-reveal.js +76 -0
- package/dist/components/media-card/media-card.classes.js +37 -0
- package/dist/components/media-card/media-card.js +91 -0
- package/dist/components/media-stage/index.d.ts +41 -0
- package/dist/components/media-stage/index.js +2 -0
- package/dist/components/media-stage/media-stage.js +48 -0
- package/dist/components/menu/index.d.ts +14 -0
- package/dist/components/menu/index.js +2 -0
- package/dist/components/message-scroller/_hooks/use-follow-bottom.js +85 -0
- package/dist/components/message-scroller/index.d.ts +29 -0
- package/dist/components/message-scroller/index.js +2 -0
- package/dist/components/message-scroller/message-scroller.js +65 -0
- package/dist/components/mini-bar-chart/index.d.ts +40 -0
- package/dist/components/mini-bar-chart/index.js +2 -0
- package/dist/components/mini-bar-chart/mini-bar-chart.js +93 -0
- package/dist/components/monospace-content/index.d.ts +43 -0
- package/dist/components/monospace-content/index.js +2 -0
- package/dist/components/monospace-content/monospace-content.js +1 -1
- package/dist/components/nav-bar/index.d.ts +148 -0
- package/dist/components/nav-bar/index.js +2 -0
- package/dist/components/nav-bar/nav-bar-details-panel.js +158 -44
- package/dist/components/nav-bar/nav-bar-mobile-menu.js +93 -27
- package/dist/components/nav-bar/nav-bar.js +256 -138
- package/dist/components/nav-bar/use-nav-bar-hover-details.js +80 -0
- package/dist/components/nav-bar/use-nav-bar-overflow.js +5 -5
- package/dist/components/notice-strip/index.d.ts +32 -0
- package/dist/components/notice-strip/index.js +2 -0
- package/dist/components/notice-strip/notice-strip.js +57 -0
- package/dist/components/option-card-group/index.d.ts +50 -0
- package/dist/components/option-card-group/index.js +2 -0
- package/dist/components/option-card-group/option-card-group.js +76 -0
- package/dist/components/overflow-badge-list/index.d.ts +63 -0
- package/dist/components/overflow-badge-list/index.js +2 -0
- package/dist/components/overflow-badge-list/overflow-badge-list.js +78 -19
- package/dist/components/page-banner/index.d.ts +33 -0
- package/dist/components/page-banner/index.js +2 -0
- package/dist/components/page-banner/page-banner.js +56 -0
- package/dist/components/page-container/index.d.ts +20 -0
- package/dist/components/page-container/index.js +3 -0
- package/dist/components/page-container/page-container.js +5 -5
- package/dist/components/pagination/index.d.ts +31 -0
- package/dist/components/pagination/index.js +3 -0
- package/dist/components/popover/index.d.ts +60 -0
- package/dist/components/popover/index.js +3 -0
- package/dist/components/preview-card/index.d.ts +24 -0
- package/dist/components/preview-card/index.js +2 -0
- package/dist/components/progress-bar/index.d.ts +32 -0
- package/dist/components/progress-bar/index.js +2 -0
- package/dist/components/progress-bar/progress-bar.js +22 -6
- package/dist/components/radio-group/index.d.ts +24 -0
- package/dist/components/radio-group/index.js +2 -0
- package/dist/components/rank-numeral/index.d.ts +30 -0
- package/dist/components/rank-numeral/index.js +2 -0
- package/dist/components/rank-numeral/rank-numeral.js +26 -0
- package/dist/components/reaction-button/index.d.ts +32 -0
- package/dist/components/reaction-button/index.js +2 -0
- package/dist/components/reaction-button/reaction-button.js +50 -0
- package/dist/components/readout/index.d.ts +31 -0
- package/dist/components/readout/index.js +2 -0
- package/dist/components/readout/readout.js +63 -0
- package/dist/components/requirement-list/index.d.ts +52 -0
- package/dist/components/requirement-list/index.js +2 -0
- package/dist/components/requirement-list/requirement-list.js +29 -8
- package/dist/components/resizable/index.d.ts +31 -0
- package/dist/components/resizable/index.js +4 -0
- package/dist/components/resizable/resizable-group.js +23 -0
- package/dist/components/resizable/resizable-panel.js +28 -0
- package/dist/components/resizable/resizable-separator.js +24 -0
- package/dist/components/reveal/index.d.ts +23 -0
- package/dist/components/reveal/index.js +2 -0
- package/dist/components/reveal/reveal.js +24 -0
- package/dist/components/scroll-area/index.d.ts +27 -0
- package/dist/components/scroll-area/index.js +2 -0
- package/dist/components/scrollable-sections/index.d.ts +58 -0
- package/dist/components/scrollable-sections/index.js +2 -0
- package/dist/components/scrollable-sections/scrollable-sections.js +11 -3
- package/dist/components/search-box/index.d.ts +32 -0
- package/dist/components/search-box/index.js +2 -0
- package/dist/components/search-box/search-box.js +18 -3
- package/dist/components/search-field-shell.js +1 -1
- package/dist/components/select/index.d.ts +44 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/selectable-card-list/checkbox-card-list.js +5 -3
- package/dist/components/selectable-card-list/index.d.ts +76 -0
- package/dist/components/selectable-card-list/index.js +2 -0
- package/dist/components/selectable-card-list/radio-card-list.js +12 -6
- package/dist/components/selectable-card-list/selectable-card-list-shared.js +24 -12
- package/dist/components/selectable-card-list/selectable-card-list.js +12 -3
- package/dist/components/separator/index.d.ts +24 -0
- package/dist/components/separator/index.js +2 -0
- package/dist/components/share-menu/index.d.ts +55 -0
- package/dist/components/share-menu/index.js +2 -0
- package/dist/components/share-menu/share-marks.js +31 -0
- package/dist/components/share-menu/share-menu.js +140 -0
- package/dist/components/share-menu/share-urls.js +15 -0
- package/dist/components/sheet/index.d.ts +41 -0
- package/dist/components/sheet/index.js +2 -0
- package/dist/components/showcase-card/index.d.ts +53 -0
- package/dist/components/showcase-card/index.js +2 -0
- package/dist/components/showcase-card/showcase-card.js +75 -0
- package/dist/components/sidebar/index.d.ts +109 -0
- package/dist/components/sidebar/index.js +4 -0
- package/dist/components/sidebar/sidebar.js +56 -40
- package/dist/components/simple-clickable-card/index.d.ts +11 -0
- package/dist/components/simple-clickable-card/index.js +2 -0
- package/dist/components/simple-clickable-card/simple-clickable-card-shared.js +2 -2
- package/dist/components/simple-clickable-card/simple-clickable-card.js +5 -2
- package/dist/components/simple-info-card/index.d.ts +25 -0
- package/dist/components/simple-info-card/index.js +2 -0
- package/dist/components/simple-info-card/simple-info-card.js +6 -3
- package/dist/components/simple-list/index.d.ts +63 -0
- package/dist/components/simple-list/index.js +2 -0
- package/dist/components/simple-list/simple-list.js +3 -1
- package/dist/components/simple-paginated-list/index.d.ts +20 -0
- package/dist/components/simple-paginated-list/index.js +2 -0
- package/dist/components/simplified-date/index.d.ts +18 -0
- package/dist/components/simplified-date/index.js +2 -0
- package/dist/components/skeleton/index.d.ts +5 -0
- package/dist/components/skeleton/index.js +2 -0
- package/dist/components/skeletons/index.d.ts +11 -0
- package/dist/components/skeletons/index.js +2 -0
- package/dist/components/sort-menu/index.d.ts +34 -0
- package/dist/components/sort-menu/index.js +2 -0
- package/dist/components/sort-menu/sort-menu.js +39 -0
- package/dist/components/spinner/index.d.ts +15 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/stat-card/index.d.ts +43 -0
- package/dist/components/stat-card/index.js +2 -0
- package/dist/components/stat-card/stat-card.js +31 -12
- package/dist/components/status-badge/index.d.ts +24 -0
- package/dist/components/status-badge/index.js +2 -0
- package/dist/components/status-badge/status-badge.js +3 -2
- package/dist/components/status-card-list/index.d.ts +24 -0
- package/dist/components/status-card-list/index.js +2 -0
- package/dist/components/status-card-list/status-card-list.js +8 -4
- package/dist/components/step-tabs/index.d.ts +94 -0
- package/dist/components/step-tabs/index.js +2 -0
- package/dist/components/step-tabs/step-tabs.js +202 -0
- package/dist/components/style-scope/index.d.ts +32 -0
- package/dist/components/style-scope/index.js +2 -0
- package/dist/components/style-scope/style-scope.js +49 -0
- package/dist/components/switch/index.d.ts +15 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/table/index.d.ts +18 -0
- package/dist/components/table/index.js +2 -0
- package/dist/components/tabs/index.d.ts +103 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tag/index.d.ts +31 -0
- package/dist/components/tag/index.js +2 -0
- package/dist/components/tag/tag.js +79 -28
- package/dist/components/tag-input/index.d.ts +36 -0
- package/dist/components/tag-input/index.js +2 -0
- package/dist/components/tag-input/tag-input.js +10 -4
- package/dist/components/text-effects/index.d.ts +53 -0
- package/dist/components/text-effects/index.js +6 -0
- package/dist/components/textarea/index.d.ts +16 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/thumbnail-strip/index.d.ts +42 -0
- package/dist/components/thumbnail-strip/index.js +2 -0
- package/dist/components/thumbnail-strip/thumbnail-strip.js +124 -0
- package/dist/components/thumbnail-strip/use-scroll-edges.js +41 -0
- package/dist/components/time-picker/index.d.ts +13 -0
- package/dist/components/time-picker/index.js +2 -0
- package/dist/components/timeline/index.d.ts +39 -0
- package/dist/components/timeline/index.js +2 -0
- package/dist/components/timeline/timeline.js +85 -0
- package/dist/components/toast/index.d.ts +56 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/toast.js +42 -32
- package/dist/components/togglable-items-list/index.d.ts +28 -0
- package/dist/components/togglable-items-list/index.js +2 -0
- package/dist/components/toggle-group/index.d.ts +35 -0
- package/dist/components/toggle-group/index.js +2 -0
- package/dist/components/toolbar/index.d.ts +58 -0
- package/dist/components/toolbar/index.js +3 -0
- package/dist/components/toolbar/toolbar-button.js +40 -0
- package/dist/components/toolbar/toolbar.js +56 -0
- package/dist/components/tooltip/index.d.ts +29 -0
- package/dist/components/tooltip/index.js +3 -0
- package/dist/components/tooltip/tooltip.js +12 -2
- package/dist/components/transfer-list/index.d.ts +36 -0
- package/dist/components/transfer-list/index.js +2 -0
- package/dist/components/transfer-list/transfer-list.js +1 -1
- package/dist/components/truncated-line-with-tooltip/index.d.ts +22 -0
- package/dist/components/truncated-line-with-tooltip/index.js +2 -0
- package/dist/components/truncated-line-with-tooltip/truncated-line-with-tooltip.js +26 -8
- package/dist/components/typography/index.d.ts +19 -0
- package/dist/components/typography/index.js +3 -0
- package/dist/components/use-mobile/index.d.ts +3 -0
- package/dist/components/use-mobile/index.js +2 -0
- package/dist/components/user-type-badge/index.d.ts +39 -0
- package/dist/components/user-type-badge/index.js +3 -0
- package/dist/components/user-type-badge/user-type-badge.js +2 -1
- package/dist/components/vertical-stepper/index.d.ts +7 -0
- package/dist/components/vertical-stepper/index.js +2 -0
- package/dist/components/vertical-stepper/vertical-stepper.js +33 -6
- package/dist/components/view-toggle/index.d.ts +38 -0
- package/dist/components/view-toggle/index.js +2 -0
- package/dist/components/view-toggle/view-toggle.js +56 -0
- package/dist/core/animate-ui/components/animate/code.js +83 -9
- package/dist/core/animate-ui/components/animate/tabs.js +234 -19
- package/dist/core/animate-ui/components/animate/tooltip.js +10 -2
- package/dist/core/animate-ui/components/base/preview-card.js +20 -3
- package/dist/core/animate-ui/components/buttons/copy.js +12 -6
- package/dist/core/animate-ui/components/radix/dialog.js +17 -3
- package/dist/core/animate-ui/components/radix/dropdown-menu.js +26 -9
- package/dist/core/animate-ui/components/radix/sheet.js +20 -4
- package/dist/core/animate-ui/components/radix/sidebar.js +9 -9
- package/dist/core/animate-ui/components/radix/toggle-group.js +103 -13
- package/dist/core/animate-ui/components/radix/toggle.js +5 -5
- package/dist/core/animate-ui/primitives/animate/code-block.js +31 -4
- package/dist/core/animate-ui/primitives/animate/shiki-highlighter.js +5 -2
- package/dist/core/animate-ui/primitives/animate/tabs.js +7 -4
- package/dist/core/animate-ui/primitives/animate/tooltip.js +10 -3
- package/dist/core/animate-ui/primitives/base/preview-card.js +2 -2
- package/dist/core/animate-ui/primitives/base/progress.js +1 -1
- package/dist/core/animate-ui/primitives/base/radio.js +3 -3
- package/dist/core/animate-ui/primitives/effects/highlight.js +1 -0
- package/dist/core/animate-ui/primitives/radix/accordion.js +1 -1
- package/dist/core/animate-ui/primitives/radix/dialog.js +6 -3
- package/dist/core/animate-ui/primitives/radix/dropdown-menu.js +2 -2
- package/dist/core/animate-ui/primitives/radix/sheet.js +7 -3
- package/dist/core/animate-ui/primitives/radix/switch.js +2 -2
- package/dist/core/animate-ui/primitives/radix/toggle-group.js +2 -2
- package/dist/core/badge.js +5 -2
- package/dist/core/breadcrumb.js +1 -1
- package/dist/core/button/button.js +8 -8
- package/dist/core/button/craft-button.js +8 -2
- package/dist/core/button.js +17 -7
- package/dist/core/card.js +23 -5
- package/dist/core/combobox/combobox.js +8 -2
- package/dist/core/command.js +3 -3
- package/dist/core/form.js +1 -1
- package/dist/core/hooks/use-nested-layer-press-guard.js +46 -0
- package/dist/core/hooks/use-on-screen.js +33 -0
- package/dist/core/hooks/use-prefers-reduced-motion.js +19 -0
- package/dist/core/hooks/use-scroll-overflow.js +20 -0
- package/dist/core/index.d.ts +30 -5
- package/dist/core/index.js +5 -2
- package/dist/core/input/input-password.js +13 -9
- package/dist/core/input/input.js +38 -12
- package/dist/core/input-otp/input-otp.js +9 -5
- package/dist/core/popover-group.js +48 -0
- package/dist/core/popover-hover.js +127 -0
- package/dist/core/popover.js +75 -6
- package/dist/core/select.js +35 -20
- package/dist/core/table.js +5 -3
- package/dist/core/textarea/textarea.js +11 -3
- package/dist/data-table/index.d.ts +4 -0
- package/dist/data-table/index.js +3 -0
- package/dist/date/index.d.ts +11 -0
- package/dist/date/index.js +7 -0
- package/dist/forms/index.d.ts +4 -0
- package/dist/forms/index.js +2 -0
- package/dist/icon-avatar.props-RYtw2eSW.d.ts +31 -0
- package/dist/icon-text-action-card.props-B2ggncUK.d.ts +53 -0
- package/dist/index.d.ts +169 -15
- package/dist/index.js +63 -10
- package/dist/input-CYI1hhGc.d.ts +38 -0
- package/dist/layouts/index.d.ts +132 -8
- package/dist/layouts/index.js +3 -1
- package/dist/layouts/minimal-workspace-layout/minimal-workspace-layout-context.js +5 -0
- package/dist/layouts/minimal-workspace-layout/minimal-workspace-layout.js +404 -0
- package/dist/layouts/minimal-workspace-layout/rail-logo.js +90 -0
- package/dist/layouts/minimal-workspace-layout/sidebar-trigger.js +42 -0
- package/dist/layouts/shared/account-menu-props.js +21 -0
- package/dist/layouts/shared/footer-branding.js +34 -0
- package/dist/layouts/shared/sidebar-logo.js +59 -0
- package/dist/layouts/workspace-layout/account-menu/account-menu.js +9 -3
- package/dist/layouts/workspace-layout/footer/footer.js +1 -1
- package/dist/layouts/workspace-layout/header/header.js +1 -1
- package/dist/layouts/workspace-layout/workspace-layout.js +28 -80
- package/dist/{list.props-x1j3CbcF.d.ts → list.props-DP_xPTqU.d.ts} +2 -1
- package/dist/markdown/index.d.ts +11 -0
- package/dist/markdown/index.js +5 -0
- package/dist/my-account-menu.props-C7DK71WC.d.ts +67 -0
- package/dist/page-container.props-JutTvKFq.d.ts +48 -0
- package/dist/resizable.props-RxFY5tm_.d.ts +44 -0
- package/dist/section-card-B7c5uc08.d.ts +84 -0
- package/dist/simple-clickable-card.props-BrPCw7CR.d.ts +51 -0
- package/dist/slot-DGErA9zi.d.ts +10 -0
- package/dist/status-badge.props-lKlEOfRt.d.ts +32 -0
- package/dist/style-axes-DSQ2DGc5.d.ts +133 -0
- package/dist/toast/index.d.ts +6 -0
- package/dist/toast/index.js +2 -0
- package/dist/tooltip-C0bYa8a3.d.ts +37 -0
- package/dist/{types-DtUxK-Am.d.ts → types-CkXflqg7.d.ts} +31 -1
- package/dist/utils/cn.js +6 -1
- package/dist/utils/color.js +35 -10
- package/dist/utils/index.d.ts +18 -2
- package/dist/utils/index.js +4 -1
- package/dist/utils/silver-shine.js +16 -1
- package/dist/utils/style-axes.js +227 -0
- package/dist/utils/variant.js +104 -8
- package/dist/utils/view-transition.js +21 -0
- package/dist/variant-D81RhpbR.d.ts +104 -0
- package/dist/vertical-stepper.props-BXYcbW70.d.ts +29 -0
- package/package.json +52 -6
- package/src/styles/colors.css +100 -4
- package/src/styles/globals.css +8 -131
- package/src/styles/style-axes.css +21 -0
- package/src/styles/theme.css +696 -0
- package/dist/app-logo.props-Ct7QBdTd.d.ts +0 -40
- package/dist/popover-ByLD3-Qv.d.ts +0 -204
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import Tooltip from "../../components/tooltip/tooltip.js";
|
|
3
|
+
import { Button } from "../../components/button/button.js";
|
|
4
|
+
import { useSidebar } from "../../core/animate-ui/components/radix/sidebar.js";
|
|
5
|
+
import { linkLogo, renderLogoForState } from "../shared/sidebar-logo.js";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { PanelLeftClose, PanelLeftOpen } from "lucide-react";
|
|
8
|
+
//#region src/layouts/minimal-workspace-layout/rail-logo.tsx
|
|
9
|
+
/** Every motion in the layout runs on the same clock. */
|
|
10
|
+
var DURATION = "var(--espd-minimal-workspace-layout-duration,450ms)";
|
|
11
|
+
/**
|
|
12
|
+
* Keeps any logo inside its box: images and SVGs scale down to the box's height
|
|
13
|
+
* and width instead of overflowing it.
|
|
14
|
+
*/
|
|
15
|
+
var fitLogo = "flex h-full w-full min-w-0 items-center overflow-hidden *:flex *:h-full *:max-w-full *:min-w-0 *:items-center [&_img]:max-h-full [&_img]:max-w-full [&_img]:object-contain [&_svg]:max-h-full [&_svg]:max-w-full";
|
|
16
|
+
var toggleButton = "size-8 shrink-0 text-[color:var(--espd-minimal-workspace-layout-sidebar-foreground,var(--color-foreground))] [&_svg]:transition-transform [&_svg]:duration-[var(--espd-duration-fast,150ms)] motion-reduce:[&_svg]:transition-none";
|
|
17
|
+
/**
|
|
18
|
+
* The logo box at the top of the sidebar.
|
|
19
|
+
*
|
|
20
|
+
* Collapsed: the minimal logo, swapped on hover (or keyboard focus) for an
|
|
21
|
+
* expand button in the same spot. Expanded: the full logo, left-aligned and
|
|
22
|
+
* clipped to the box, with a collapse button on the right. Both logos stay
|
|
23
|
+
* mounted and crossfade, so the swap never reflows the box.
|
|
24
|
+
*/
|
|
25
|
+
function RailLogo({ indexPath, linkComponent, sidebarId, expandable, expandLabel, collapseLabel, showCollapse = true, ...sources }) {
|
|
26
|
+
const { state, isMobile, setOpen } = useSidebar();
|
|
27
|
+
const collapsed = state === "collapsed" && !isMobile;
|
|
28
|
+
const minimal = linkLogo(renderLogoForState({
|
|
29
|
+
...sources,
|
|
30
|
+
collapsed: true
|
|
31
|
+
}), indexPath, linkComponent);
|
|
32
|
+
const full = linkLogo(renderLogoForState({
|
|
33
|
+
...sources,
|
|
34
|
+
collapsed: false
|
|
35
|
+
}), indexPath, linkComponent);
|
|
36
|
+
const layer = (node, visible, className) => /* @__PURE__ */ jsx("div", {
|
|
37
|
+
className: cn("absolute inset-0 flex items-center py-2 transition-[opacity,scale,visibility] ease-[var(--espd-minimal-workspace-layout-ease,cubic-bezier(0.4,0,0.2,1))] motion-reduce:transition-none", visible ? "opacity-100 scale-100" : "invisible opacity-0 scale-95", className),
|
|
38
|
+
style: { transitionDuration: DURATION },
|
|
39
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
40
|
+
className: fitLogo,
|
|
41
|
+
children: node
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
45
|
+
"data-slot": "minimal-workspace-layout-logo",
|
|
46
|
+
"data-state": collapsed ? "collapsed" : "expanded",
|
|
47
|
+
className: "group/logo relative flex h-full w-full min-w-0 items-center gap-1",
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ jsxs("div", {
|
|
50
|
+
className: "relative h-full min-w-0 flex-1",
|
|
51
|
+
children: [layer(minimal, collapsed, cn("justify-center [&>div]:justify-center [&>div>*]:w-full [&>div>*]:justify-center", expandable && "group-hover/logo:opacity-0 group-hover/logo:scale-90 group-has-[button:focus-visible]/logo:opacity-0")), layer(full, !collapsed, "justify-start")]
|
|
52
|
+
}),
|
|
53
|
+
expandable && collapsed && /* @__PURE__ */ jsx(Tooltip, {
|
|
54
|
+
content: expandLabel,
|
|
55
|
+
side: "right",
|
|
56
|
+
sideOffset: 8,
|
|
57
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
58
|
+
variant: "ghost",
|
|
59
|
+
size: "icon",
|
|
60
|
+
hideRingOnHover: true,
|
|
61
|
+
"aria-label": expandLabel,
|
|
62
|
+
"aria-expanded": false,
|
|
63
|
+
"aria-controls": sidebarId,
|
|
64
|
+
onClick: () => setOpen(true),
|
|
65
|
+
className: cn(toggleButton, "absolute top-1/2 left-1/2 -translate-1/2 opacity-0 scale-90 transition-[opacity,scale] duration-[var(--espd-duration-fast,150ms)]", "group-hover/logo:opacity-100 group-hover/logo:scale-100 focus-visible:opacity-100 focus-visible:scale-100", "hover:[&_svg]:translate-x-0.5"),
|
|
66
|
+
children: /* @__PURE__ */ jsx(PanelLeftOpen, {})
|
|
67
|
+
})
|
|
68
|
+
}),
|
|
69
|
+
expandable && showCollapse && !collapsed && !isMobile && /* @__PURE__ */ jsx(Tooltip, {
|
|
70
|
+
content: collapseLabel,
|
|
71
|
+
side: "right",
|
|
72
|
+
sideOffset: 8,
|
|
73
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
74
|
+
variant: "ghost",
|
|
75
|
+
size: "icon",
|
|
76
|
+
hideRingOnHover: true,
|
|
77
|
+
"aria-label": collapseLabel,
|
|
78
|
+
"aria-expanded": true,
|
|
79
|
+
"aria-controls": sidebarId,
|
|
80
|
+
onClick: () => setOpen(false),
|
|
81
|
+
className: cn(toggleButton, "animate-[espd-fade-in_var(--espd-duration-normal,200ms)_ease-out_both] motion-reduce:animate-none", "hover:[&_svg]:-translate-x-0.5"),
|
|
82
|
+
style: { animationDelay: `calc(${DURATION} / 2)` },
|
|
83
|
+
children: /* @__PURE__ */ jsx(PanelLeftClose, {})
|
|
84
|
+
})
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { DURATION, RailLogo };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { cn } from "../../utils/cn.js";
|
|
2
|
+
import Tooltip from "../../components/tooltip/tooltip.js";
|
|
3
|
+
import { Button } from "../../components/button/button.js";
|
|
4
|
+
import { useSidebar } from "../../core/animate-ui/components/radix/sidebar.js";
|
|
5
|
+
import { useMinimalWorkspaceLayout } from "./minimal-workspace-layout-context.js";
|
|
6
|
+
import { useEffect } from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import { PanelLeftClose, PanelLeftOpen } from "lucide-react";
|
|
9
|
+
//#region src/layouts/minimal-workspace-layout/sidebar-trigger.tsx
|
|
10
|
+
/**
|
|
11
|
+
* A button that opens the sidebar inline and closes it again: the app's own
|
|
12
|
+
* handle on a `hideWhenCollapsed` sidebar, usually placed in `topRightContent`
|
|
13
|
+
* (it also expands and collapses the icon rail). Must render inside
|
|
14
|
+
* `MinimalWorkspaceLayout`. Renders nothing when the sidebar is not
|
|
15
|
+
* `expandable`, and on mobile, where the top bar has its own menu button.
|
|
16
|
+
*/
|
|
17
|
+
function MinimalWorkspaceSidebarTrigger({ className, ...props }) {
|
|
18
|
+
const { isMobile, setOpen } = useSidebar();
|
|
19
|
+
const { sidebarId, pinned, expandable, showLabel, hideLabel, registerTrigger } = useMinimalWorkspaceLayout();
|
|
20
|
+
useEffect(() => registerTrigger(), [registerTrigger]);
|
|
21
|
+
if (!expandable || isMobile) return null;
|
|
22
|
+
const label = pinned ? hideLabel : showLabel;
|
|
23
|
+
return /* @__PURE__ */ jsx(Tooltip, {
|
|
24
|
+
content: label,
|
|
25
|
+
side: "bottom",
|
|
26
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
27
|
+
variant: "ghost",
|
|
28
|
+
size: "icon",
|
|
29
|
+
hideRingOnHover: true,
|
|
30
|
+
"data-sidebar": "trigger",
|
|
31
|
+
"aria-label": label,
|
|
32
|
+
"aria-expanded": pinned,
|
|
33
|
+
"aria-controls": sidebarId,
|
|
34
|
+
className: cn("size-9 shrink-0", className),
|
|
35
|
+
onClick: () => setOpen(!pinned),
|
|
36
|
+
...props,
|
|
37
|
+
children: pinned ? /* @__PURE__ */ jsx(PanelLeftClose, {}) : /* @__PURE__ */ jsx(PanelLeftOpen, {})
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { MinimalWorkspaceSidebarTrigger };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/layouts/shared/account-menu-props.ts
|
|
2
|
+
/** Maps a layout's account-related props onto `AccountMenu`'s. */
|
|
3
|
+
function accountMenuProps({ headerConfig, accountMenuItems, ...rest }) {
|
|
4
|
+
return {
|
|
5
|
+
userName: headerConfig?.userName,
|
|
6
|
+
userEmail: headerConfig?.userEmail,
|
|
7
|
+
userProfilePictureUrl: headerConfig?.userProfilePictureUrl,
|
|
8
|
+
avatarColor: headerConfig?.avatarColor,
|
|
9
|
+
avatarBadgeColor: headerConfig?.avatarBadgeColor,
|
|
10
|
+
onLogoutClick: rest.onLogoutClick,
|
|
11
|
+
onProfileCardClick: rest.onProfileCardClick,
|
|
12
|
+
onColorThemeChange: rest.onColorThemeChange,
|
|
13
|
+
colorTheme: rest.colorTheme,
|
|
14
|
+
onLanguageChange: rest.onLanguageChange,
|
|
15
|
+
languages: rest.languages,
|
|
16
|
+
currentLanguage: rest.currentLanguage,
|
|
17
|
+
additionalItems: accountMenuItems
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { accountMenuProps };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useSidebar } from "../../core/animate-ui/components/radix/sidebar.js";
|
|
2
|
+
import AppLogo from "../../common/app-logo/app-logo.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/layouts/shared/footer-branding.tsx
|
|
5
|
+
function EspressifFooterBranding({ darkMode }) {
|
|
6
|
+
const { state } = useSidebar();
|
|
7
|
+
return /* @__PURE__ */ jsx("a", {
|
|
8
|
+
href: "https://www.espressif.com/",
|
|
9
|
+
target: "_blank",
|
|
10
|
+
rel: "noopener noreferrer",
|
|
11
|
+
className: "no-underline flex justify-center w-full opacity-25 transition-opacity duration-500 ease-in-out hover:opacity-100",
|
|
12
|
+
"aria-label": "Espressif",
|
|
13
|
+
children: /* @__PURE__ */ jsx(AppLogo, {
|
|
14
|
+
width: 120,
|
|
15
|
+
darkMode,
|
|
16
|
+
minimal: state === "collapsed"
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Footer branding precedence:
|
|
22
|
+
* 1. Explicit `footerBranding` prop (ReactNode | false) wins.
|
|
23
|
+
* 2. Otherwise, show the Espressif default only when an internal `appName`
|
|
24
|
+
* is set AND `hideCompanyBranding` is not true.
|
|
25
|
+
* 3. Otherwise, nothing.
|
|
26
|
+
*/
|
|
27
|
+
function resolveFooterBranding({ footerBranding, appName, hideCompanyBranding, darkMode }) {
|
|
28
|
+
if (footerBranding === false) return null;
|
|
29
|
+
if (footerBranding !== void 0) return footerBranding;
|
|
30
|
+
if (appName && hideCompanyBranding !== true) return /* @__PURE__ */ jsx(EspressifFooterBranding, { darkMode });
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { EspressifFooterBranding, resolveFooterBranding };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { useSidebar } from "../../core/animate-ui/components/radix/sidebar.js";
|
|
2
|
+
import AppLogo from "../../common/app-logo/app-logo.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/layouts/shared/sidebar-logo.tsx
|
|
5
|
+
/**
|
|
6
|
+
* The sidebar logo for one state. Precedence: the `logo*` node for that state,
|
|
7
|
+
* then `logoAssets`, then the `appName` preset; `null` when none is given.
|
|
8
|
+
*/
|
|
9
|
+
function renderLogoForState({ logo, logoCollapsed, logoAssets, appName, darkMode, collapsed }) {
|
|
10
|
+
const nodeOverride = collapsed ? logoCollapsed ?? logo : logo;
|
|
11
|
+
if (nodeOverride !== void 0) return nodeOverride;
|
|
12
|
+
if (logoAssets) return /* @__PURE__ */ jsx(AppLogo, {
|
|
13
|
+
logo: logoAssets,
|
|
14
|
+
darkMode,
|
|
15
|
+
minimal: collapsed
|
|
16
|
+
});
|
|
17
|
+
if (appName) return /* @__PURE__ */ jsx(AppLogo, {
|
|
18
|
+
name: appName,
|
|
19
|
+
darkMode,
|
|
20
|
+
minimal: collapsed
|
|
21
|
+
});
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
/** Wraps a logo in the app's link to `indexPath` when both are given. */
|
|
25
|
+
function linkLogo(node, indexPath, LinkComponent) {
|
|
26
|
+
if (node === null || node === void 0) return null;
|
|
27
|
+
if (indexPath && LinkComponent) return /* @__PURE__ */ jsx(LinkComponent, {
|
|
28
|
+
to: indexPath,
|
|
29
|
+
className: "no-underline",
|
|
30
|
+
children: node
|
|
31
|
+
});
|
|
32
|
+
return node;
|
|
33
|
+
}
|
|
34
|
+
function SidebarLogo({ indexPath, linkComponent, ...sources }) {
|
|
35
|
+
const { state, isMobile } = useSidebar();
|
|
36
|
+
return linkLogo(renderLogoForState({
|
|
37
|
+
...sources,
|
|
38
|
+
collapsed: state === "collapsed" && !isMobile
|
|
39
|
+
}), indexPath, linkComponent);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Mobile top-bar logo: `logoMobile`, else a 24px minimal `AppLogo` from
|
|
43
|
+
* `logoAssets` or the `appName` preset, linked to `indexPath`.
|
|
44
|
+
*/
|
|
45
|
+
function mobileLogo({ logoMobile, logoAssets, appName, darkMode, indexPath, linkComponent }) {
|
|
46
|
+
return linkLogo(logoMobile ?? (logoAssets ? /* @__PURE__ */ jsx(AppLogo, {
|
|
47
|
+
logo: logoAssets,
|
|
48
|
+
darkMode,
|
|
49
|
+
minimal: true,
|
|
50
|
+
width: 24
|
|
51
|
+
}) : appName ? /* @__PURE__ */ jsx(AppLogo, {
|
|
52
|
+
name: appName,
|
|
53
|
+
darkMode,
|
|
54
|
+
minimal: true,
|
|
55
|
+
width: 24
|
|
56
|
+
}) : null), indexPath, linkComponent);
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
export { SidebarLogo, linkLogo, mobileLogo, renderLogoForState };
|
|
@@ -5,14 +5,15 @@ import { useMemo } from "react";
|
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
import { Check, Globe, LogOut, Palette } from "lucide-react";
|
|
7
7
|
//#region src/layouts/workspace-layout/account-menu/account-menu.tsx
|
|
8
|
-
function AccountMenu({ userName, userEmail, userProfilePictureUrl, avatarBadgeColor, onLogoutClick, onProfileCardClick, onColorThemeChange, colorTheme, onLanguageChange, languages, currentLanguage, additionalItems }) {
|
|
8
|
+
function AccountMenu({ userName, userEmail, userProfilePictureUrl, avatarColor, avatarBadgeColor, onLogoutClick, onProfileCardClick, onColorThemeChange, colorTheme, onLanguageChange, languages, currentLanguage, additionalItems, triggerVariant, side, align }) {
|
|
9
9
|
const menuItems = useMemo(() => {
|
|
10
10
|
const groups = [];
|
|
11
11
|
if (userName || userEmail) {
|
|
12
12
|
const profileCard = /* @__PURE__ */ jsx(ProfileCard, {
|
|
13
13
|
name: userName,
|
|
14
14
|
email: userEmail,
|
|
15
|
-
imageUrl: userProfilePictureUrl
|
|
15
|
+
imageUrl: userProfilePictureUrl,
|
|
16
|
+
avatarColor
|
|
16
17
|
}, "profile");
|
|
17
18
|
groups.push({
|
|
18
19
|
id: "profile",
|
|
@@ -85,6 +86,7 @@ function AccountMenu({ userName, userEmail, userProfilePictureUrl, avatarBadgeCo
|
|
|
85
86
|
userName,
|
|
86
87
|
userEmail,
|
|
87
88
|
userProfilePictureUrl,
|
|
89
|
+
avatarColor,
|
|
88
90
|
onProfileCardClick,
|
|
89
91
|
onColorThemeChange,
|
|
90
92
|
colorTheme,
|
|
@@ -99,9 +101,13 @@ function AccountMenu({ userName, userEmail, userProfilePictureUrl, avatarBadgeCo
|
|
|
99
101
|
name: userName,
|
|
100
102
|
email: userEmail,
|
|
101
103
|
imageUrl: userProfilePictureUrl,
|
|
104
|
+
avatarColor,
|
|
102
105
|
badgeColor: avatarBadgeColor,
|
|
103
106
|
menuItems,
|
|
104
|
-
minWidth: "220px"
|
|
107
|
+
minWidth: "220px",
|
|
108
|
+
triggerVariant,
|
|
109
|
+
side,
|
|
110
|
+
align
|
|
105
111
|
});
|
|
106
112
|
}
|
|
107
113
|
//#endregion
|
|
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
4
4
|
//#region src/layouts/workspace-layout/footer/footer.tsx
|
|
5
5
|
function Footer({ hidden = false }) {
|
|
6
6
|
return /* @__PURE__ */ jsx("footer", {
|
|
7
|
-
className: cn("bg-sidebar", hidden ? "h-[var(--espd-hidden-footer-height)]" : "h-[var(--espd-footer-height)]"),
|
|
7
|
+
className: cn("bg-sidebar", hidden ? "h-[var(--espd-workspace-layout-hidden-footer-height,var(--espd-hidden-footer-height))]" : "h-[var(--espd-workspace-layout-footer-height,var(--espd-footer-height))]"),
|
|
8
8
|
children: !hidden && /* @__PURE__ */ jsx("div", {
|
|
9
9
|
className: "text-[10px] text-muted-foreground h-full flex items-center justify-center tracking-normal",
|
|
10
10
|
children: /* @__PURE__ */ jsx(FooterCard, {})
|
|
@@ -12,7 +12,7 @@ function Header({ leftContent, rightContent, endContent, showSidebarTrigger = fa
|
|
|
12
12
|
style: {
|
|
13
13
|
left: isMobile ? 0 : `calc(${sidebarWidth})`,
|
|
14
14
|
width: isMobile ? "100%" : `calc(100% - ${sidebarWidth})`,
|
|
15
|
-
height: "var(--espd-header-height)"
|
|
15
|
+
height: "var(--espd-shell-header-height,var(--espd-header-height))"
|
|
16
16
|
},
|
|
17
17
|
children: /* @__PURE__ */ jsxs("div", {
|
|
18
18
|
className: "flex h-full items-center gap-3 pr-4",
|
|
@@ -1,101 +1,49 @@
|
|
|
1
|
-
import { SidebarInset, SidebarProvider
|
|
1
|
+
import { SidebarInset, SidebarProvider } from "../../core/animate-ui/components/radix/sidebar.js";
|
|
2
2
|
import Sidebar from "../../components/sidebar/sidebar.js";
|
|
3
|
-
import AppLogo from "../../common/app-logo/app-logo.js";
|
|
4
3
|
import Header from "./header/header.js";
|
|
5
4
|
import Footer from "./footer/footer.js";
|
|
6
5
|
import AccountMenu from "./account-menu/account-menu.js";
|
|
7
6
|
import WorkspaceBreadcrumbs from "./breadcrumbs/workspace-breadcrumbs.js";
|
|
8
7
|
import { deriveBreadcrumbs } from "./breadcrumbs/derive-breadcrumbs.js";
|
|
8
|
+
import { SidebarLogo, mobileLogo } from "../shared/sidebar-logo.js";
|
|
9
|
+
import { resolveFooterBranding } from "../shared/footer-branding.js";
|
|
10
|
+
import { accountMenuProps } from "../shared/account-menu-props.js";
|
|
9
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
12
|
//#region src/layouts/workspace-layout/workspace-layout.tsx
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (logoAssets) return /* @__PURE__ */ jsx(AppLogo, {
|
|
15
|
-
logo: logoAssets,
|
|
16
|
-
darkMode,
|
|
17
|
-
minimal: collapsed
|
|
18
|
-
});
|
|
19
|
-
if (appName) return /* @__PURE__ */ jsx(AppLogo, {
|
|
20
|
-
name: appName,
|
|
21
|
-
darkMode,
|
|
22
|
-
minimal: collapsed
|
|
23
|
-
});
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
function SidebarLogo({ logo, logoCollapsed, logoAssets, appName, darkMode, indexPath, linkComponent: LinkComponent }) {
|
|
27
|
-
const { state, isMobile } = useSidebar();
|
|
28
|
-
const node = renderLogoForState({
|
|
29
|
-
logo,
|
|
30
|
-
logoCollapsed,
|
|
31
|
-
logoAssets,
|
|
32
|
-
appName,
|
|
33
|
-
darkMode,
|
|
34
|
-
collapsed: state === "collapsed" && !isMobile
|
|
35
|
-
});
|
|
36
|
-
if (node === null) return null;
|
|
37
|
-
if (indexPath && LinkComponent) return /* @__PURE__ */ jsx(LinkComponent, {
|
|
38
|
-
to: indexPath,
|
|
39
|
-
className: "no-underline",
|
|
40
|
-
children: node
|
|
41
|
-
});
|
|
42
|
-
return node;
|
|
43
|
-
}
|
|
44
|
-
function EspressifFooterBranding({ darkMode }) {
|
|
45
|
-
const { state } = useSidebar();
|
|
46
|
-
return /* @__PURE__ */ jsx("a", {
|
|
47
|
-
href: "https://www.espressif.com/",
|
|
48
|
-
target: "_blank",
|
|
49
|
-
rel: "noopener noreferrer",
|
|
50
|
-
className: "no-underline flex justify-center w-full opacity-25 transition-opacity duration-500 ease-in-out hover:opacity-100",
|
|
51
|
-
"aria-label": "Espressif",
|
|
52
|
-
children: /* @__PURE__ */ jsx(AppLogo, {
|
|
53
|
-
width: 120,
|
|
54
|
-
darkMode,
|
|
55
|
-
minimal: state === "collapsed"
|
|
56
|
-
})
|
|
57
|
-
});
|
|
58
|
-
}
|
|
13
|
+
var HEADER_HEIGHT = "var(--espd-shell-header-height, var(--espd-header-height))";
|
|
14
|
+
var FOOTER_HEIGHT = "var(--espd-workspace-layout-footer-height, var(--espd-footer-height))";
|
|
15
|
+
var HIDDEN_FOOTER_HEIGHT = "var(--espd-workspace-layout-hidden-footer-height, var(--espd-hidden-footer-height))";
|
|
59
16
|
function WorkspaceLayout({ appName, logo, logoCollapsed, logoMobile, logoAssets, footerBranding, children, sidebarConfig, headerConfig, footerConfig, sidebarOpen, defaultSidebarOpen, onSidebarOpenChange, onLogoutClick, onProfileCardClick, onColorThemeChange, colorTheme, onLanguageChange, languages, currentLanguage, accountMenuItems, hideBreadcrumbs }) {
|
|
60
17
|
const SidebarLinkComp = sidebarConfig.linkComponent;
|
|
61
18
|
const hideFooter = footerConfig?.hidden ?? false;
|
|
62
19
|
const darkMode = colorTheme === "dark";
|
|
63
|
-
const contentHeight = hideFooter ?
|
|
20
|
+
const contentHeight = hideFooter ? `calc(100vh - ${HEADER_HEIGHT} - ${HIDDEN_FOOTER_HEIGHT})` : `calc(100vh - ${HEADER_HEIGHT} - ${FOOTER_HEIGHT})`;
|
|
64
21
|
const breadcrumbItems = hideBreadcrumbs ? [] : headerConfig?.breadcrumbs ?? deriveBreadcrumbs(sidebarConfig.items, sidebarConfig.currentPath, sidebarConfig.indexPath);
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
width: 24
|
|
70
|
-
}) : appName ? /* @__PURE__ */ jsx(AppLogo, {
|
|
71
|
-
name: appName,
|
|
22
|
+
const mobileLogo$1 = mobileLogo({
|
|
23
|
+
logoMobile,
|
|
24
|
+
logoAssets,
|
|
25
|
+
appName,
|
|
72
26
|
darkMode,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
})
|
|
76
|
-
const mobileLogo = mobileLogoNode && sidebarConfig.indexPath ? /* @__PURE__ */ jsx(SidebarLinkComp, {
|
|
77
|
-
to: sidebarConfig.indexPath,
|
|
78
|
-
className: "no-underline",
|
|
79
|
-
children: mobileLogoNode
|
|
80
|
-
}) : mobileLogoNode;
|
|
27
|
+
indexPath: sidebarConfig.indexPath,
|
|
28
|
+
linkComponent: SidebarLinkComp
|
|
29
|
+
});
|
|
81
30
|
const headerLeftContent = breadcrumbItems.length > 0 ? /* @__PURE__ */ jsx(WorkspaceBreadcrumbs, {
|
|
82
31
|
items: breadcrumbItems,
|
|
83
32
|
linkComponent: SidebarLinkComp,
|
|
84
33
|
collapseOnMobile: headerConfig?.collapseBreadcrumbsOnMobile ?? false
|
|
85
34
|
}) : null;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
35
|
+
const footerBrandingNode = resolveFooterBranding({
|
|
36
|
+
footerBranding,
|
|
37
|
+
appName,
|
|
38
|
+
hideCompanyBranding: sidebarConfig.hideCompanyBranding,
|
|
39
|
+
darkMode
|
|
40
|
+
});
|
|
90
41
|
const sidebarFooter = sidebarConfig.footer != null || footerBrandingNode != null ? /* @__PURE__ */ jsxs("div", {
|
|
91
42
|
className: "flex flex-col gap-2 w-full",
|
|
92
43
|
children: [sidebarConfig.footer, footerBrandingNode]
|
|
93
44
|
}) : void 0;
|
|
94
|
-
const accountMenu = /* @__PURE__ */ jsx(AccountMenu, {
|
|
95
|
-
|
|
96
|
-
userEmail: headerConfig?.userEmail,
|
|
97
|
-
userProfilePictureUrl: headerConfig?.userProfilePictureUrl,
|
|
98
|
-
avatarBadgeColor: headerConfig?.avatarBadgeColor,
|
|
45
|
+
const accountMenu = /* @__PURE__ */ jsx(AccountMenu, { ...accountMenuProps({
|
|
46
|
+
headerConfig,
|
|
99
47
|
onLogoutClick,
|
|
100
48
|
onProfileCardClick,
|
|
101
49
|
onColorThemeChange,
|
|
@@ -103,8 +51,8 @@ function WorkspaceLayout({ appName, logo, logoCollapsed, logoMobile, logoAssets,
|
|
|
103
51
|
onLanguageChange,
|
|
104
52
|
languages,
|
|
105
53
|
currentLanguage,
|
|
106
|
-
|
|
107
|
-
});
|
|
54
|
+
accountMenuItems
|
|
55
|
+
}) });
|
|
108
56
|
return /* @__PURE__ */ jsxs(SidebarProvider, {
|
|
109
57
|
open: sidebarOpen,
|
|
110
58
|
defaultOpen: defaultSidebarOpen,
|
|
@@ -121,7 +69,7 @@ function WorkspaceLayout({ appName, logo, logoCollapsed, logoMobile, logoAssets,
|
|
|
121
69
|
indexPath: sidebarConfig.indexPath,
|
|
122
70
|
linkComponent: SidebarLinkComp
|
|
123
71
|
}),
|
|
124
|
-
headerHeight:
|
|
72
|
+
headerHeight: HEADER_HEIGHT,
|
|
125
73
|
footer: sidebarFooter,
|
|
126
74
|
linkComponent: SidebarLinkComp,
|
|
127
75
|
collapsible: sidebarConfig.allowCollapsible ? "icon" : "none",
|
|
@@ -135,12 +83,12 @@ function WorkspaceLayout({ appName, logo, logoCollapsed, logoMobile, logoAssets,
|
|
|
135
83
|
rightContent: headerConfig?.rightContent,
|
|
136
84
|
endContent: accountMenu,
|
|
137
85
|
showSidebarTrigger: sidebarConfig.allowCollapsible,
|
|
138
|
-
mobileLogo
|
|
86
|
+
mobileLogo: mobileLogo$1
|
|
139
87
|
}),
|
|
140
88
|
/* @__PURE__ */ jsx("div", {
|
|
141
89
|
className: "flex flex-1 flex-col gap-4 bg-sidebar",
|
|
142
90
|
style: {
|
|
143
|
-
paddingTop:
|
|
91
|
+
paddingTop: HEADER_HEIGHT,
|
|
144
92
|
height: contentHeight
|
|
145
93
|
},
|
|
146
94
|
children: /* @__PURE__ */ jsx("main", {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import { C as Color, S as Size } from './index-BQANnKs9.js';
|
|
3
|
+
import { d as DensityProps } from './style-axes-DSQ2DGc5.js';
|
|
3
4
|
|
|
4
5
|
type ListItemVariant = Color;
|
|
5
6
|
type ListItemSize = Size;
|
|
@@ -72,7 +73,7 @@ interface ListGroup {
|
|
|
72
73
|
/** Extra classes for this group's label heading. */
|
|
73
74
|
labelClassName?: string;
|
|
74
75
|
}
|
|
75
|
-
interface ListProps {
|
|
76
|
+
interface ListProps extends DensityProps {
|
|
76
77
|
items: ListGroup[];
|
|
77
78
|
role?: ListRole;
|
|
78
79
|
showSeparators?: boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { MarkdownContent, MarkdownContentProps } from '../components/markdown-content/index.js';
|
|
2
|
+
export { Code, CodeProps } from '../components/code/index.js';
|
|
3
|
+
export { CodeEditor, CodeEditorProps } from '../components/code-editor/index.js';
|
|
4
|
+
export { MonospaceContent, MonospaceContentProps } from '../components/monospace-content/index.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
import '../style-axes-DSQ2DGc5.js';
|
|
7
|
+
import '../alert.props-CcKo49Rb.js';
|
|
8
|
+
import '../index-BQANnKs9.js';
|
|
9
|
+
import '../variant-D81RhpbR.js';
|
|
10
|
+
import '../icon-avatar.props-RYtw2eSW.js';
|
|
11
|
+
import '../icon-text-action-card.props-B2ggncUK.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Code } from "../core/animate-ui/components/animate/code.js";
|
|
2
|
+
import { MonospaceContent } from "../components/monospace-content/monospace-content.js";
|
|
3
|
+
import { MarkdownContent } from "../components/markdown-content/markdown-content.js";
|
|
4
|
+
import { CodeEditor } from "../components/code-editor/code-editor.js";
|
|
5
|
+
export { Code, CodeEditor, MarkdownContent, MonospaceContent };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { A as AppName, C as Color } from './index-BQANnKs9.js';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { a as ListGroup } from './list.props-DP_xPTqU.js';
|
|
4
|
+
|
|
5
|
+
/** A single logo image asset. */
|
|
6
|
+
interface LogoAsset {
|
|
7
|
+
src: string;
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
/** Optional per-asset alt text; falls back to the component-level `alt` prop. */
|
|
11
|
+
alt?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Light/dark variant pair. `dark` falls back to `light` when omitted. */
|
|
14
|
+
interface LogoVariantSet {
|
|
15
|
+
light: LogoAsset;
|
|
16
|
+
dark?: LogoAsset;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Nested asset config for `AppLogo`. Consumers pass this to render their own
|
|
20
|
+
* images without adding a preset to the internal registry.
|
|
21
|
+
*
|
|
22
|
+
* Selection rule at render time:
|
|
23
|
+
* `(minimal ? (config.minimal ?? config.full) : config.full).(dark ?? light)`
|
|
24
|
+
*/
|
|
25
|
+
interface LogoAssetConfig {
|
|
26
|
+
full: LogoVariantSet;
|
|
27
|
+
/** Icon-only variant used when the sidebar collapses or on mobile. Falls back to `full`. */
|
|
28
|
+
minimal?: LogoVariantSet;
|
|
29
|
+
}
|
|
30
|
+
interface AppLogoProps {
|
|
31
|
+
/** Internal preset key. Ignored when `logo` is set. */
|
|
32
|
+
name?: AppName;
|
|
33
|
+
/** Custom asset config. When set, `name` and the internal preset registry are ignored. */
|
|
34
|
+
logo?: LogoAssetConfig;
|
|
35
|
+
alt?: string;
|
|
36
|
+
darkMode?: boolean;
|
|
37
|
+
minimal?: boolean;
|
|
38
|
+
/** Override the rendered width. Height scales proportionally from the selected asset. */
|
|
39
|
+
width?: number;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
interface MyAccountMenuProps {
|
|
43
|
+
name?: string;
|
|
44
|
+
email?: string;
|
|
45
|
+
imageUrl?: string;
|
|
46
|
+
/** Passed to `Menu` content; default `200px` */
|
|
47
|
+
minWidth?: string | number;
|
|
48
|
+
menuItems: ListGroup[];
|
|
49
|
+
/** The avatar's fill behind the initial, when there is no picture; default `primary`. */
|
|
50
|
+
avatarColor?: Color;
|
|
51
|
+
/** Status dot color; ignored when `badgeIcon` is set */
|
|
52
|
+
badgeColor?: Color;
|
|
53
|
+
/** When set, shown instead of a color dot (`badgeColor` is not applied) */
|
|
54
|
+
badgeIcon?: ReactNode;
|
|
55
|
+
/**
|
|
56
|
+
* `avatar` (default): a round avatar button. `card`: a full-width row with the
|
|
57
|
+
* avatar, name and email, for sidebars. The text clips rather than wraps, so a
|
|
58
|
+
* narrow container shows the avatar alone.
|
|
59
|
+
*/
|
|
60
|
+
triggerVariant?: "avatar" | "card";
|
|
61
|
+
/** Menu placement; default `bottom`. */
|
|
62
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
63
|
+
/** Menu alignment; default `end`. */
|
|
64
|
+
align?: "start" | "center" | "end";
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export type { AppLogoProps as A, LogoAsset as L, MyAccountMenuProps as M, LogoAssetConfig as a, LogoVariantSet as b };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
type PageContainerMaxWidth = "sm" | "md" | "lg" | "xl";
|
|
4
|
+
interface GoBackLinkData {
|
|
5
|
+
show?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
/** Applied to the wrapper around the back link when `show` is true. */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** When set with a non-empty `href`, renders this component instead of the default `onBack` handler. */
|
|
11
|
+
linkComponent?: ComponentType<{
|
|
12
|
+
to: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
interface PageContainerProps {
|
|
18
|
+
maxWidth?: PageContainerMaxWidth;
|
|
19
|
+
heading?: string | ReactNode;
|
|
20
|
+
actions?: ReactNode;
|
|
21
|
+
children: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
/** When true, omits the top margin (`mt-[72px]`) reserved for a fixed workspace header. */
|
|
24
|
+
noGutters?: boolean;
|
|
25
|
+
/** When true, adds elevation shadow to the sticky header region. */
|
|
26
|
+
elevateHeading?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* When true, keeps the header region pinned below the `md` breakpoint (768px) too.
|
|
29
|
+
* By default it is pinned only from `md` up and scrolls away with the content on
|
|
30
|
+
* phones, where a pinned header would take a large share of the screen.
|
|
31
|
+
*/
|
|
32
|
+
stickyHeadingOnMobile?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Below the `md` breakpoint (768px), slides the header back in, pinned at the top,
|
|
35
|
+
* when the user scrolls up by a short distance, and slides it away again on the
|
|
36
|
+
* next scroll down. Keyboard focus moving into the header also reveals it.
|
|
37
|
+
* Ignored when {@link stickyHeadingOnMobile} is set, since the header is then
|
|
38
|
+
* always pinned. Has no effect from `md` up, where the header is always pinned.
|
|
39
|
+
* Set it to `false` to let the header scroll away for good on phones.
|
|
40
|
+
*
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
revealHeadingOnScrollUp?: boolean;
|
|
44
|
+
goBackLinkData?: GoBackLinkData;
|
|
45
|
+
onBack?: () => void;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export type { GoBackLinkData as G, PageContainerMaxWidth as P, PageContainerProps as a };
|