@plumile/ui 0.1.134 → 0.1.142
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/README.md +129 -15
- package/lib/esm/admin/organisms/admin_sidebar/AdminSidebar.js +4 -4
- package/lib/esm/admin/organisms/admin_sidebar/adminSidebar.css.js +0 -2
- package/lib/esm/admin/organisms/admin_topbar/adminTopbar.css.js +1 -0
- package/lib/esm/admin/templates/admin_shell_layout/AdminShellLayout.js +2 -2
- package/lib/esm/admin/templates/admin_shell_layout/AdminShellLayout.js.map +1 -1
- package/lib/esm/atomic/atoms/badge/Badge.js.map +1 -1
- package/lib/esm/atomic/atoms/error_message/ErrorMessage.js +9 -8
- package/lib/esm/atomic/atoms/error_message/ErrorMessage.js.map +1 -1
- package/lib/esm/atomic/atoms/error_message/errorMessage.css.js +1 -0
- package/lib/esm/atomic/molecules/card/Card.js +17 -19
- package/lib/esm/atomic/molecules/card/Card.js.map +1 -1
- package/lib/esm/atomic/molecules/empty-state/EmptyState.css.js +80 -2
- package/lib/esm/atomic/molecules/empty-state/EmptyState.css.js.map +1 -1
- package/lib/esm/atomic/molecules/empty-state/EmptyState.js +50 -28
- package/lib/esm/atomic/molecules/empty-state/EmptyState.js.map +1 -1
- package/lib/esm/atomic/molecules/form_error/FormError.js +29 -19
- package/lib/esm/atomic/molecules/form_error/FormError.js.map +1 -1
- package/lib/esm/atomic/molecules/form_error/formError.css.js +1 -1
- package/lib/esm/atomic/molecules/form_error/formError.css.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownDelete.css.js +0 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownHeading.css.js +1 -0
- package/lib/esm/atomic/molecules/tabs/Tabs.js +82 -28
- package/lib/esm/atomic/molecules/tabs/Tabs.js.map +1 -1
- package/lib/esm/atomic/molecules/tabs/tabs.css.js +50 -8
- package/lib/esm/atomic/molecules/tabs/tabs.css.js.map +1 -1
- package/lib/esm/atomic/organisms/sidebar/NavigationSidebar.js +48 -48
- package/lib/esm/atomic/organisms/sidebar/NavigationSidebar.js.map +1 -1
- package/lib/esm/backoffice/atoms/status_badge/StatusBadge.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.js +38 -0
- package/lib/esm/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.js +35 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.js +16 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.js +25 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js +37 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.js +19 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js +15 -32
- package/lib/esm/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.js +11 -0
- package/lib/esm/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_form_section/BackofficeFormSection.js +17 -18
- package/lib/esm/backoffice/molecules/backoffice_form_section/BackofficeFormSection.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.js +12 -0
- package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.js +15 -20
- package/lib/esm/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js +23 -16
- package/lib/esm/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.js +2 -2
- package/lib/esm/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.js +11 -0
- package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.js +55 -0
- package/lib/esm/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_list_footer/backofficeListFooter.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_list_footer/backofficeListFooter.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.js +15 -0
- package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.js +63 -0
- package/lib/esm/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_picker/BackofficePicker.js +76 -0
- package/lib/esm/backoffice/molecules/backoffice_picker/BackofficePicker.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_picker/backofficePicker.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_picker/backofficePicker.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.js +23 -0
- package/lib/esm/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.js +18 -0
- package/lib/esm/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.js +28 -0
- package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.js +8 -0
- package/lib/esm/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.js +60 -0
- package/lib/esm/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.js.map +1 -0
- package/lib/esm/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.js +14 -0
- package/lib/esm/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.js.map +1 -0
- package/lib/esm/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.js +1 -1
- package/lib/esm/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/confirm_dialog/ConfirmDialog.js +3 -3
- package/lib/esm/backoffice/molecules/confirm_dialog/ConfirmDialog.js.map +1 -1
- package/lib/esm/backoffice/molecules/global_search_input/GlobalSearchInput.js +4 -4
- package/lib/esm/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.js +1 -1
- package/lib/esm/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_item/SidebarNavItem.js +60 -60
- package/lib/esm/backoffice/molecules/sidebar_nav_item/SidebarNavItem.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js +2 -2
- package/lib/esm/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_section/SidebarNavSection.js +96 -96
- package/lib/esm/backoffice/molecules/sidebar_nav_section/SidebarNavSection.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js +2 -2
- package/lib/esm/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js +52 -52
- package/lib/esm/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js.map +1 -1
- package/lib/esm/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.js +6 -6
- package/lib/esm/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.js.map +1 -1
- package/lib/esm/backoffice/organisms/audit_timeline/AuditTimeline.js +69 -34
- package/lib/esm/backoffice/organisms/audit_timeline/AuditTimeline.js.map +1 -1
- package/lib/esm/backoffice/organisms/audit_timeline/auditTimeline.css.js +22 -2
- package/lib/esm/backoffice/organisms/audit_timeline/auditTimeline.css.js.map +1 -1
- package/lib/esm/backoffice/organisms/backoffice_data_table/BackofficeDataTable.js +4 -4
- package/lib/esm/backoffice/organisms/backoffice_data_table/BackofficeDataTable.js.map +1 -1
- package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js +70 -40
- package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js.map +1 -1
- package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js +66 -3
- package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js.map +1 -1
- package/lib/esm/components/dashboard/activity_card/ActivityCard.js +4 -4
- package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.js +9 -0
- package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.js +30 -0
- package/lib/esm/components/dashboard/dashboard_metric_group/DashboardMetricGroup.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.css.js +8 -0
- package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.css.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.js +16 -0
- package/lib/esm/components/dashboard/dashboard_panel/DashboardPanel.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.js +8 -0
- package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.js +27 -0
- package/lib/esm/components/dashboard/dashboard_quick_actions/DashboardQuickActions.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.css.js +8 -0
- package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.css.js.map +1 -0
- package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.js +28 -0
- package/lib/esm/components/dashboard/dashboard_status_list/DashboardStatusList.js.map +1 -0
- package/lib/esm/components/dashboard/metric_card/MetricCard.css.js +30 -2
- package/lib/esm/components/dashboard/metric_card/MetricCard.css.js.map +1 -1
- package/lib/esm/components/dashboard/metric_card/MetricCard.js +40 -26
- package/lib/esm/components/dashboard/metric_card/MetricCard.js.map +1 -1
- package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.css.js +23 -2
- package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.css.js.map +1 -1
- package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.js +16 -4
- package/lib/esm/components/dashboard/metric_tile_group/MetricTileGroup.js.map +1 -1
- package/lib/esm/components/dashboard/status_summary_panel/StatusSummaryPanel.js +4 -4
- package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.css.js +14 -2
- package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.css.js.map +1 -1
- package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.js +46 -25
- package/lib/esm/components/dashboard/timeline_event_row/TimelineEventRow.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.css.js +19 -19
- package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.js +142 -76
- package/lib/esm/components/data-table/DataTable.js.map +1 -1
- package/lib/esm/components/data-table/ResponsiveRecordList.js.map +1 -1
- package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js +2 -2
- package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js.map +1 -1
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js +177 -170
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -1
- package/lib/esm/components/feedback/InlineBanner.js +49 -0
- package/lib/esm/components/feedback/InlineBanner.js.map +1 -0
- package/lib/esm/components/feedback/OperationFeedback.css.js +2 -2
- package/lib/esm/components/feedback/OperationFeedback.css.js.map +1 -1
- package/lib/esm/components/feedback/OperationFeedback.js +20 -24
- package/lib/esm/components/feedback/OperationFeedback.js.map +1 -1
- package/lib/esm/components/feedback/inlineBanner.css.js +19 -0
- package/lib/esm/components/feedback/inlineBanner.css.js.map +1 -0
- package/lib/esm/components/infinite/InfiniteScrollTrigger.js +31 -23
- package/lib/esm/components/infinite/InfiniteScrollTrigger.js.map +1 -1
- package/lib/esm/components/layout/ActionPanel.css.js +2 -2
- package/lib/esm/components/layout/ActionPanel.css.js.map +1 -1
- package/lib/esm/components/layout/ActionPanel.js +29 -35
- package/lib/esm/components/layout/ActionPanel.js.map +1 -1
- package/lib/esm/components/layout/PageShell.css.js +2 -20
- package/lib/esm/components/layout/PageShell.css.js.map +1 -1
- package/lib/esm/components/layout/PageShell.js +155 -279
- package/lib/esm/components/layout/PageShell.js.map +1 -1
- package/lib/esm/components/layout/ResizableSplitView.css.js +8 -0
- package/lib/esm/components/layout/ResizableSplitView.css.js.map +1 -0
- package/lib/esm/components/layout/ResizableSplitView.js +176 -0
- package/lib/esm/components/layout/ResizableSplitView.js.map +1 -0
- package/lib/esm/components/layout/Surface.css.js +41 -0
- package/lib/esm/components/layout/Surface.css.js.map +1 -0
- package/lib/esm/components/layout/Surface.js +61 -0
- package/lib/esm/components/layout/Surface.js.map +1 -0
- package/lib/esm/components/layout/toolbar/Toolbar.css.js +64 -0
- package/lib/esm/components/layout/toolbar/Toolbar.css.js.map +1 -0
- package/lib/esm/components/layout/toolbar/Toolbar.js +36 -0
- package/lib/esm/components/layout/toolbar/Toolbar.js.map +1 -0
- package/lib/esm/components/navigation/sidebar/SidebarNavigation.js +89 -0
- package/lib/esm/components/navigation/sidebar/SidebarNavigation.js.map +1 -0
- package/lib/esm/components/navigation/sidebar/SidebarNavigationItem.js +2 -0
- package/lib/esm/components/navigation/sidebar/SidebarNavigationSection.js +2 -0
- package/lib/esm/components/navigation/sidebar/SidebarProfileMenu.js +2 -0
- package/lib/esm/components/navigation/sidebar/sidebarNavigation.css.js +48 -0
- package/lib/esm/components/navigation/sidebar/sidebarNavigation.css.js.map +1 -0
- package/lib/esm/components/subscriptions/RefetchNeededBanner.js +16 -23
- package/lib/esm/components/subscriptions/RefetchNeededBanner.js.map +1 -1
- package/lib/esm/i18n/locales/en/ui.js +16 -5
- package/lib/esm/i18n/locales/en/ui.js.map +1 -1
- package/lib/esm/i18n/locales/fr/ui.js +16 -5
- package/lib/esm/i18n/locales/fr/ui.js.map +1 -1
- package/lib/esm/index.js +237 -233
- package/lib/esm/internal/data-table/virtualization.js +1 -1
- package/lib/esm/internal/data-table/virtualization.js.map +1 -1
- package/lib/esm/internal/infinite/infiniteLoad.js +23 -0
- package/lib/esm/internal/infinite/infiniteLoad.js.map +1 -0
- package/lib/esm/node_modules/dompurify/dist/purify.es.js +290 -246
- package/lib/esm/node_modules/dompurify/dist/purify.es.js.map +1 -1
- package/lib/esm/node_modules/katex/dist/katex.js +1561 -1599
- package/lib/esm/node_modules/katex/dist/katex.js.map +1 -1
- package/lib/esm/style.css +1 -1
- package/lib/esm/theme/backofficeTheme.css.js +100 -0
- package/lib/esm/theme/backofficeTheme.css.js.map +1 -1
- package/lib/esm/theme/publicTheme.css.js +100 -0
- package/lib/esm/theme/publicTheme.css.js.map +1 -1
- package/lib/esm/theme/theme.css.js +200 -0
- package/lib/esm/theme/themeContract.css.js +359 -309
- package/lib/esm/theme/themeContract.css.js.map +1 -1
- package/lib/types/admin/templates/admin_shell_layout/AdminShellLayout.d.ts +4 -4
- package/lib/types/admin/templates/admin_shell_layout/AdminShellLayout.d.ts.map +1 -1
- package/lib/types/atomic/atoms/badge/Badge.d.ts +3 -3
- package/lib/types/atomic/atoms/badge/Badge.d.ts.map +1 -1
- package/lib/types/atomic/atoms/error_message/ErrorMessage.d.ts +1 -1
- package/lib/types/atomic/atoms/error_message/ErrorMessage.d.ts.map +1 -1
- package/lib/types/atomic/molecules/card/Card.d.ts.map +1 -1
- package/lib/types/atomic/molecules/empty-state/EmptyState.css.d.ts +56 -5
- package/lib/types/atomic/molecules/empty-state/EmptyState.css.d.ts.map +1 -1
- package/lib/types/atomic/molecules/empty-state/EmptyState.d.ts +14 -4
- package/lib/types/atomic/molecules/empty-state/EmptyState.d.ts.map +1 -1
- package/lib/types/atomic/molecules/form_error/FormError.d.ts +5 -2
- package/lib/types/atomic/molecules/form_error/FormError.d.ts.map +1 -1
- package/lib/types/atomic/molecules/form_error/formError.css.d.ts.map +1 -1
- package/lib/types/atomic/molecules/tabs/Tabs.d.ts +16 -7
- package/lib/types/atomic/molecules/tabs/Tabs.d.ts.map +1 -1
- package/lib/types/atomic/molecules/tabs/tabs.css.d.ts +21 -2
- package/lib/types/atomic/molecules/tabs/tabs.css.d.ts.map +1 -1
- package/lib/types/backoffice/atoms/status_badge/StatusBadge.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.d.ts +21 -0
- package/lib/types/backoffice/molecules/backoffice_audit_metadata_panel/BackofficeAuditMetadataPanel.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.d.ts +17 -0
- package/lib/types/backoffice/molecules/backoffice_detail_field/BackofficeDetailField.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.d.ts +14 -0
- package/lib/types/backoffice/molecules/backoffice_detail_field/backofficeDetailField.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.d.ts +11 -0
- package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/BackofficeDetailFlagTag.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.d.ts +4 -0
- package/lib/types/backoffice/molecules/backoffice_detail_flag_tag/backofficeDetailFlagTag.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.d.ts +12 -0
- package/lib/types/backoffice/molecules/backoffice_detail_section/BackofficeDetailSection.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.d.ts +6 -0
- package/lib/types/backoffice/molecules/backoffice_detail_section/backofficeDetailSection.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.d.ts +13 -0
- package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/BackofficeDetailTaggedValue.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.d.ts +3 -0
- package/lib/types/backoffice/molecules/backoffice_detail_tagged_value/backofficeDetailTaggedValue.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.d.ts +9 -0
- package/lib/types/backoffice/molecules/backoffice_enum_label/BackofficeEnumLabel.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_form_section/BackofficeFormSection.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.d.ts +0 -3
- package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.d.ts +5 -0
- package/lib/types/backoffice/molecules/backoffice_json_viewer/LazyBackofficeJsonViewer.helpers.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.d.ts +8 -2
- package/lib/types/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.d.ts +3 -0
- package/lib/types/backoffice/molecules/backoffice_key_value_list/backofficeKeyValueList.css.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.d.ts +23 -0
- package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.d.ts +25 -0
- package/lib/types/backoffice/molecules/backoffice_list_footer/BackofficeListFooter.helpers.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/{backoffice_infinite_list_status/backofficeInfiniteListStatus.css.d.ts → backoffice_list_footer/backofficeListFooter.css.d.ts} +3 -2
- package/lib/types/backoffice/molecules/backoffice_list_footer/backofficeListFooter.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.d.ts +26 -0
- package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.d.ts +7 -0
- package/lib/types/backoffice/molecules/backoffice_payload_viewer/BackofficePayloadViewer.helpers.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.d.ts +6 -0
- package/lib/types/backoffice/molecules/backoffice_payload_viewer/backofficePayloadViewer.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_picker/BackofficePicker.d.ts +35 -0
- package/lib/types/backoffice/molecules/backoffice_picker/BackofficePicker.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_picker/backofficePicker.css.d.ts +9 -0
- package/lib/types/backoffice/molecules/backoffice_picker/backofficePicker.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.d.ts +10 -0
- package/lib/types/backoffice/molecules/backoffice_reference_value/BackofficeReferenceValue.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.d.ts +3 -0
- package/lib/types/backoffice/molecules/backoffice_reference_value/backofficeReferenceValue.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.d.ts +15 -0
- package/lib/types/backoffice/molecules/backoffice_scope_stack/BackofficeScopeStack.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.d.ts +8 -0
- package/lib/types/backoffice/molecules/backoffice_status_group/BackofficeStatusGroup.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.d.ts +14 -0
- package/lib/types/backoffice/molecules/backoffice_status_meta_badge/BackofficeStatusMetaBadge.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.d.ts +2 -0
- package/lib/types/backoffice/molecules/backoffice_status_meta_badge/backofficeStatusMetaBadge.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.d.ts +22 -0
- package/lib/types/backoffice/molecules/backoffice_toolbar/BackofficeToolbar.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.d.ts +18 -0
- package/lib/types/backoffice/molecules/backoffice_toolbar/backofficeToolbar.css.d.ts.map +1 -0
- package/lib/types/backoffice/molecules/bulk_actions_bar/bulkActionsBar.css.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_collapse_toggle/sidebarCollapseToggle.css.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_nav_item/SidebarNavItem.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.d.ts +1 -0
- package/lib/types/backoffice/molecules/sidebar_nav_item/sidebarNavItem.css.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.d.ts +2 -0
- package/lib/types/backoffice/molecules/sidebar_nav_section/sidebarNavSection.css.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.d.ts.map +1 -1
- package/lib/types/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.d.ts +8 -0
- package/lib/types/backoffice/molecules/sidebar_profile_menu/sidebarProfileMenu.css.d.ts.map +1 -1
- package/lib/types/backoffice/organisms/audit_timeline/AuditTimeline.d.ts +20 -2
- package/lib/types/backoffice/organisms/audit_timeline/AuditTimeline.d.ts.map +1 -1
- package/lib/types/backoffice/organisms/audit_timeline/auditTimeline.css.d.ts +32 -2
- package/lib/types/backoffice/organisms/audit_timeline/auditTimeline.css.d.ts.map +1 -1
- package/lib/types/backoffice/organisms/backoffice_data_table/BackofficeDataTable.d.ts +2 -2
- package/lib/types/backoffice/organisms/backoffice_data_table/BackofficeDataTable.d.ts.map +1 -1
- package/lib/types/backoffice/templates/detail_page_template/DetailPageTemplate.d.ts +12 -1
- package/lib/types/backoffice/templates/detail_page_template/DetailPageTemplate.d.ts.map +1 -1
- package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts +25 -4
- package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts.map +1 -1
- package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.d.ts +4 -0
- package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.css.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.d.ts +19 -0
- package/lib/types/components/dashboard/dashboard_metric_group/DashboardMetricGroup.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.css.d.ts +2 -0
- package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.css.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.d.ts +11 -0
- package/lib/types/components/dashboard/dashboard_panel/DashboardPanel.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.d.ts +5 -0
- package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.css.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.d.ts +14 -0
- package/lib/types/components/dashboard/dashboard_quick_actions/DashboardQuickActions.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.css.d.ts +6 -0
- package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.css.d.ts.map +1 -0
- package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.d.ts +14 -0
- package/lib/types/components/dashboard/dashboard_status_list/DashboardStatusList.d.ts.map +1 -0
- package/lib/types/components/dashboard/metric_card/MetricCard.css.d.ts +38 -1
- package/lib/types/components/dashboard/metric_card/MetricCard.css.d.ts.map +1 -1
- package/lib/types/components/dashboard/metric_card/MetricCard.d.ts +7 -1
- package/lib/types/components/dashboard/metric_card/MetricCard.d.ts.map +1 -1
- package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.css.d.ts +17 -1
- package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.css.d.ts.map +1 -1
- package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.d.ts +4 -1
- package/lib/types/components/dashboard/metric_tile_group/MetricTileGroup.d.ts.map +1 -1
- package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.css.d.ts +31 -2
- package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.css.d.ts.map +1 -1
- package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.d.ts +8 -3
- package/lib/types/components/dashboard/timeline_event_row/TimelineEventRow.d.ts.map +1 -1
- package/lib/types/components/data-table/DataTable.css.d.ts +1 -0
- package/lib/types/components/data-table/DataTable.css.d.ts.map +1 -1
- package/lib/types/components/data-table/DataTable.d.ts +54 -3
- package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
- package/lib/types/components/data-table/ResponsiveRecordList.d.ts +1 -4
- package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -1
- package/lib/types/components/data-table/VirtualizedConnectionTable.css.d.ts +0 -1
- package/lib/types/components/data-table/VirtualizedConnectionTable.css.d.ts.map +1 -1
- package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts +11 -5
- package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts.map +1 -1
- package/lib/types/{backoffice/molecules/inline_banner → components/feedback}/InlineBanner.d.ts +4 -2
- package/lib/types/components/feedback/InlineBanner.d.ts.map +1 -0
- package/lib/types/components/feedback/OperationFeedback.css.d.ts +0 -1
- package/lib/types/components/feedback/OperationFeedback.css.d.ts.map +1 -1
- package/lib/types/components/feedback/OperationFeedback.d.ts.map +1 -1
- package/lib/types/components/feedback/inlineBanner.css.d.ts.map +1 -0
- package/lib/types/components/infinite/InfiniteScrollTrigger.d.ts.map +1 -1
- package/lib/types/components/layout/ActionPanel.css.d.ts +1 -0
- package/lib/types/components/layout/ActionPanel.css.d.ts.map +1 -1
- package/lib/types/components/layout/ActionPanel.d.ts.map +1 -1
- package/lib/types/components/layout/PageShell.css.d.ts +1 -14
- package/lib/types/components/layout/PageShell.css.d.ts.map +1 -1
- package/lib/types/components/layout/PageShell.d.ts +1 -3
- package/lib/types/components/layout/PageShell.d.ts.map +1 -1
- package/lib/types/components/layout/ResizableSplitView.css.d.ts +8 -0
- package/lib/types/components/layout/ResizableSplitView.css.d.ts.map +1 -0
- package/lib/types/components/layout/ResizableSplitView.d.ts +27 -0
- package/lib/types/components/layout/ResizableSplitView.d.ts.map +1 -0
- package/lib/types/components/layout/Surface.css.d.ts +31 -0
- package/lib/types/components/layout/Surface.css.d.ts.map +1 -0
- package/lib/types/components/layout/Surface.d.ts +30 -0
- package/lib/types/components/layout/Surface.d.ts.map +1 -0
- package/lib/types/components/layout/toolbar/Toolbar.css.d.ts +40 -0
- package/lib/types/components/layout/toolbar/Toolbar.css.d.ts.map +1 -0
- package/lib/types/components/layout/toolbar/Toolbar.d.ts +35 -0
- package/lib/types/components/layout/toolbar/Toolbar.d.ts.map +1 -0
- package/lib/types/components/navigation/sidebar/SidebarNavigation.d.ts +57 -0
- package/lib/types/components/navigation/sidebar/SidebarNavigation.d.ts.map +1 -0
- package/lib/types/components/navigation/sidebar/SidebarNavigationItem.d.ts +2 -0
- package/lib/types/components/navigation/sidebar/SidebarNavigationItem.d.ts.map +1 -0
- package/lib/types/components/navigation/sidebar/SidebarNavigationSection.d.ts +2 -0
- package/lib/types/components/navigation/sidebar/SidebarNavigationSection.d.ts.map +1 -0
- package/lib/types/components/navigation/sidebar/SidebarProfileMenu.d.ts +2 -0
- package/lib/types/components/navigation/sidebar/SidebarProfileMenu.d.ts.map +1 -0
- package/lib/types/components/navigation/sidebar/sidebarNavigation.css.d.ts +19 -0
- package/lib/types/components/navigation/sidebar/sidebarNavigation.css.d.ts.map +1 -0
- package/lib/types/components/subscriptions/RefetchNeededBanner.d.ts.map +1 -1
- package/lib/types/i18n/resources.d.ts +32 -14
- package/lib/types/i18n/resources.d.ts.map +1 -1
- package/lib/types/index.d.ts +33 -33
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/internal/data-table/virtualization.d.ts +2 -2
- package/lib/types/internal/data-table/virtualization.d.ts.map +1 -1
- package/lib/types/internal/infinite/infiniteLoad.d.ts +27 -0
- package/lib/types/internal/infinite/infiniteLoad.d.ts.map +1 -0
- package/lib/types/theme/backofficeTheme.css.d.ts +100 -0
- package/lib/types/theme/backofficeTheme.css.d.ts.map +1 -1
- package/lib/types/theme/publicTheme.css.d.ts +100 -0
- package/lib/types/theme/publicTheme.css.d.ts.map +1 -1
- package/lib/types/theme/sprinkles.css.d.ts +2 -2
- package/lib/types/theme/themeContract.css.d.ts +50 -0
- package/lib/types/theme/themeContract.css.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/i18n/locales/en/ui.json +16 -7
- package/src/i18n/locales/fr/ui.json +16 -7
- package/lib/esm/atomic/molecules/card/Card.css.js +0 -8
- package/lib/esm/atomic/molecules/card/Card.css.js.map +0 -1
- package/lib/esm/atomic/molecules/form/FormErrorBanner.css.js +0 -8
- package/lib/esm/atomic/molecules/form/FormErrorBanner.css.js.map +0 -1
- package/lib/esm/atomic/molecules/form/FormErrorBanner.js +0 -17
- package/lib/esm/atomic/molecules/form/FormErrorBanner.js.map +0 -1
- package/lib/esm/atomic/templates/detail-page/DetailPage.js +0 -49
- package/lib/esm/atomic/templates/detail-page/DetailPage.js.map +0 -1
- package/lib/esm/atomic/templates/detail-page/detailPage.css.js +0 -8
- package/lib/esm/atomic/templates/detail-page/detailPage.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.js +0 -33
- package/lib/esm/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.js +0 -36
- package/lib/esm/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.js +0 -37
- package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js +0 -35
- package/lib/esm/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js +0 -41
- package/lib/esm/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.js +0 -8
- package/lib/esm/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_tabs/BackofficeTabs.js +0 -46
- package/lib/esm/backoffice/molecules/backoffice_tabs/BackofficeTabs.js.map +0 -1
- package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js +0 -17
- package/lib/esm/backoffice/molecules/backoffice_tabs/backofficeTabs.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/inline_banner/InlineBanner.js +0 -46
- package/lib/esm/backoffice/molecules/inline_banner/InlineBanner.js.map +0 -1
- package/lib/esm/backoffice/molecules/inline_banner/inlineBanner.css.js +0 -19
- package/lib/esm/backoffice/molecules/inline_banner/inlineBanner.css.js.map +0 -1
- package/lib/esm/backoffice/molecules/table_toolbar/TableToolbar.js +0 -41
- package/lib/esm/backoffice/molecules/table_toolbar/TableToolbar.js.map +0 -1
- package/lib/esm/backoffice/molecules/table_toolbar/tableToolbar.css.js +0 -8
- package/lib/esm/backoffice/molecules/table_toolbar/tableToolbar.css.js.map +0 -1
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js +0 -26
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js.map +0 -1
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.js +0 -8
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.js.map +0 -1
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/helpers.js +0 -18
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/helpers.js.map +0 -1
- package/lib/esm/components/dashboard/section_nav/SectionNav.css.js +0 -8
- package/lib/esm/components/dashboard/section_nav/SectionNav.css.js.map +0 -1
- package/lib/esm/components/dashboard/section_nav/SectionNav.js +0 -25
- package/lib/esm/components/dashboard/section_nav/SectionNav.js.map +0 -1
- package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js +0 -8
- package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.css.js.map +0 -1
- package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.js +0 -24
- package/lib/esm/components/dashboard/segmented_nav/SegmentedNav.js.map +0 -1
- package/lib/esm/components/layout/AppShell.js +0 -19
- package/lib/esm/components/layout/AppShell.js.map +0 -1
- package/lib/esm/components/layout/SidebarPageLayout.js +0 -16
- package/lib/esm/components/layout/SidebarPageLayout.js.map +0 -1
- package/lib/esm/components/layout/SplitViewLayout.css.js +0 -8
- package/lib/esm/components/layout/SplitViewLayout.css.js.map +0 -1
- package/lib/esm/components/layout/SplitViewLayout.js +0 -18
- package/lib/esm/components/layout/SplitViewLayout.js.map +0 -1
- package/lib/esm/components/layout/TabsContentLayout.css.js +0 -8
- package/lib/esm/components/layout/TabsContentLayout.css.js.map +0 -1
- package/lib/esm/components/layout/TabsContentLayout.js +0 -31
- package/lib/esm/components/layout/TabsContentLayout.js.map +0 -1
- package/lib/esm/components/layout/ToolbarRow.css.js +0 -8
- package/lib/esm/components/layout/ToolbarRow.css.js.map +0 -1
- package/lib/esm/components/layout/ToolbarRow.js +0 -12
- package/lib/esm/components/layout/ToolbarRow.js.map +0 -1
- package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js +0 -8
- package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js.map +0 -1
- package/lib/types/atomic/molecules/card/Card.css.d.ts +0 -5
- package/lib/types/atomic/molecules/card/Card.css.d.ts.map +0 -1
- package/lib/types/atomic/molecules/form/FormErrorBanner.css.d.ts +0 -2
- package/lib/types/atomic/molecules/form/FormErrorBanner.css.d.ts.map +0 -1
- package/lib/types/atomic/molecules/form/FormErrorBanner.d.ts +0 -7
- package/lib/types/atomic/molecules/form/FormErrorBanner.d.ts.map +0 -1
- package/lib/types/atomic/templates/detail-page/DetailPage.d.ts +0 -19
- package/lib/types/atomic/templates/detail-page/DetailPage.d.ts.map +0 -1
- package/lib/types/atomic/templates/detail-page/detailPage.css.d.ts +0 -9
- package/lib/types/atomic/templates/detail-page/detailPage.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.d.ts +0 -10
- package/lib/types/backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.d.ts +0 -7
- package/lib/types/backoffice/molecules/backoffice_detail_layout/backofficeDetailLayout.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.d.ts +0 -6
- package/lib/types/backoffice/molecules/backoffice_empty_state/backofficeEmptyState.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.d.ts +0 -13
- package/lib/types/backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.d.ts +0 -6
- package/lib/types/backoffice/molecules/backoffice_filters_bar/backofficeFiltersBar.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.d.ts +0 -5
- package/lib/types/backoffice/molecules/backoffice_form_section/backofficeFormSection.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.d.ts +0 -16
- package/lib/types/backoffice/molecules/backoffice_infinite_list_status/BackofficeInfiniteListStatus.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_infinite_list_status/backofficeInfiniteListStatus.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts +0 -13
- package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts +0 -5
- package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.d.ts +0 -16
- package/lib/types/backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.d.ts +0 -10
- package/lib/types/backoffice/molecules/backoffice_table_toolbar/backofficeTableToolbar.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_tabs/BackofficeTabs.d.ts +0 -19
- package/lib/types/backoffice/molecules/backoffice_tabs/BackofficeTabs.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/backoffice_tabs/backofficeTabs.css.d.ts +0 -15
- package/lib/types/backoffice/molecules/backoffice_tabs/backofficeTabs.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/inline_banner/InlineBanner.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/inline_banner/inlineBanner.css.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/table_toolbar/TableToolbar.d.ts +0 -13
- package/lib/types/backoffice/molecules/table_toolbar/TableToolbar.d.ts.map +0 -1
- package/lib/types/backoffice/molecules/table_toolbar/tableToolbar.css.d.ts +0 -6
- package/lib/types/backoffice/molecules/table_toolbar/tableToolbar.css.d.ts.map +0 -1
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.d.ts +0 -31
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.d.ts.map +0 -1
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.d.ts +0 -5
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/backofficeVirtualizedConnectionTable.css.d.ts.map +0 -1
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/helpers.d.ts +0 -5
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/helpers.d.ts.map +0 -1
- package/lib/types/components/dashboard/section_nav/SectionNav.css.d.ts +0 -4
- package/lib/types/components/dashboard/section_nav/SectionNav.css.d.ts.map +0 -1
- package/lib/types/components/dashboard/section_nav/SectionNav.d.ts +0 -15
- package/lib/types/components/dashboard/section_nav/SectionNav.d.ts.map +0 -1
- package/lib/types/components/dashboard/segmented_nav/SegmentedNav.css.d.ts +0 -4
- package/lib/types/components/dashboard/segmented_nav/SegmentedNav.css.d.ts.map +0 -1
- package/lib/types/components/dashboard/segmented_nav/SegmentedNav.d.ts +0 -15
- package/lib/types/components/dashboard/segmented_nav/SegmentedNav.d.ts.map +0 -1
- package/lib/types/components/layout/AppShell.d.ts +0 -17
- package/lib/types/components/layout/AppShell.d.ts.map +0 -1
- package/lib/types/components/layout/SidebarPageLayout.d.ts +0 -15
- package/lib/types/components/layout/SidebarPageLayout.d.ts.map +0 -1
- package/lib/types/components/layout/SplitViewLayout.css.d.ts +0 -3
- package/lib/types/components/layout/SplitViewLayout.css.d.ts.map +0 -1
- package/lib/types/components/layout/SplitViewLayout.d.ts +0 -11
- package/lib/types/components/layout/SplitViewLayout.d.ts.map +0 -1
- package/lib/types/components/layout/TabsContentLayout.css.d.ts +0 -6
- package/lib/types/components/layout/TabsContentLayout.css.d.ts.map +0 -1
- package/lib/types/components/layout/TabsContentLayout.d.ts +0 -9
- package/lib/types/components/layout/TabsContentLayout.d.ts.map +0 -1
- package/lib/types/components/layout/ToolbarRow.css.d.ts +0 -2
- package/lib/types/components/layout/ToolbarRow.css.d.ts.map +0 -1
- package/lib/types/components/layout/ToolbarRow.d.ts +0 -8
- package/lib/types/components/layout/ToolbarRow.d.ts.map +0 -1
- package/lib/types/components/subscriptions/RefetchNeededBanner.css.d.ts +0 -5
- package/lib/types/components/subscriptions/RefetchNeededBanner.css.d.ts.map +0 -1
- /package/lib/types/{backoffice/molecules/inline_banner → components/feedback}/inlineBanner.css.d.ts +0 -0
|
@@ -1,111 +1,51 @@
|
|
|
1
1
|
import { cx as e } from "../../theme/tools.js";
|
|
2
2
|
import { useUiTranslation as t } from "../../i18n/useUiTranslation.js";
|
|
3
3
|
import { ModalCloseSvg as n } from "../../icons/ModalCloseSvg.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import _ from "
|
|
4
|
+
import { Tabs as r } from "../../atomic/molecules/tabs/Tabs.js";
|
|
5
|
+
import { actionGroup as i, breadcrumbCurrent as ee, breadcrumbItem as a, breadcrumbLink as o, breadcrumbList as s, breadcrumbNav as c, breadcrumbSeparator as l, content as u, contentContained as d, header as te, headerLeading as ne, headerRow as re, mainColumn as ie, mainColumnContained as ae, mainColumnWithSidePanel as oe, mobileSidebarBackdrop as se, mobileSidebarBackdropOpen as ce, page as le, pageContained as ue, pageSplitView as de, pageWithSidePanel as fe, secondaryAction as f, shell as pe, sidePanel as p, sidePanelSurface as m } from "./PageShell.css.js";
|
|
6
|
+
import { ResizableSplitView as me } from "./ResizableSplitView.js";
|
|
7
|
+
import { MenuSvg as h } from "../../icons/MenuSvg.js";
|
|
8
|
+
import { useCallback as g, useEffect as _, useRef as v, useState as y } from "react";
|
|
9
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
10
|
+
import he from "@plumile/router/routing/Link.js";
|
|
9
11
|
//#region src/components/layout/PageShell.tsx
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return !Number.isFinite(t) || t <= 0 ? null : t;
|
|
17
|
-
} catch {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
}, C = (e) => {
|
|
21
|
-
if (!(typeof window > "u")) try {
|
|
22
|
-
window.localStorage.setItem(x, String(e));
|
|
23
|
-
} catch {}
|
|
24
|
-
}, w = (e) => {
|
|
25
|
-
let t = e;
|
|
26
|
-
return typeof window < "u" && (t = window.innerWidth), t * y;
|
|
27
|
-
}, T = (e, t) => typeof e.isActive == "boolean" ? e.isActive : e.href != null && t != null ? t === e.href : !1, E = ({ actions: y, breadcrumb: x, breadcrumbSlot: E, children: D, contentClassName: Te, contentScrollMode: Ee = "page", desktopSidebarOpen: O = !0, mobileSidebar: De, onOpenDesktopSidebar: Oe, openDesktopSidebarLabel: ke, sidebar: k, sidePanel: A, tabs: j }) => {
|
|
28
|
-
let { t: M } = t(), N = A != null, P = Ee === "contained", F = null;
|
|
29
|
-
P && (F = ne);
|
|
30
|
-
let I = p(null), L = p(null), R = p(null), z = p(null), B = p(null), V = p(null), [H, U] = m(() => S() ?? Se), W = p(H), [Ae, G] = m(!1), [K, je] = m(!1), [q, J] = m(!1), Y = d(() => {
|
|
31
|
-
J(!1);
|
|
32
|
-
}, []), Me = d(() => {
|
|
12
|
+
var ge = 520, _e = 360, ve = .5, ye = 480, S = 1024, C = "plumile:page-shell:side-panel-width", w = "a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])", T = (e, t) => typeof e.isActive == "boolean" ? e.isActive : e.href != null && t != null ? t === e.href : !1, E = ({ actions: T, breadcrumb: E, breadcrumbSlot: D, children: O, contentClassName: k, contentScrollMode: A = "page", desktopSidebarOpen: j = !0, mobileSidebar: M, onOpenDesktopSidebar: N, openDesktopSidebarLabel: P, sidebar: F, sidePanel: I, tabs: L }) => {
|
|
13
|
+
let { t: R } = t(), z = I != null, B = F != null || M != null, V = A === "contained", H = null;
|
|
14
|
+
V && (H = d);
|
|
15
|
+
let be = v(null), U = v(null), W = v(null), G = v(null), K = v(null), [q, xe] = y(!1), [J, Y] = y(!1), X = g(() => {
|
|
16
|
+
Y(!1);
|
|
17
|
+
}, []), Z = g(() => {
|
|
33
18
|
if (typeof document < "u") {
|
|
34
19
|
let { activeElement: e } = document;
|
|
35
|
-
e instanceof HTMLElement && (
|
|
20
|
+
e instanceof HTMLElement && (K.current = e);
|
|
36
21
|
}
|
|
37
|
-
|
|
38
|
-
}, [])
|
|
39
|
-
|
|
40
|
-
if (t == null) return;
|
|
41
|
-
let { width: n } = t.getBoundingClientRect(), r = Math.max(0, Math.min(w(n), n - b)), i = Math.min(v, r);
|
|
42
|
-
r <= 0 && (i = 0);
|
|
43
|
-
let a = Math.max(i, Math.min(e, Math.max(i, r)));
|
|
44
|
-
W.current = a, U(a);
|
|
45
|
-
}, []), Z = d((e) => {
|
|
46
|
-
if (typeof window > "u" || !N || K) return;
|
|
47
|
-
let t = I.current;
|
|
48
|
-
if (t == null) return;
|
|
49
|
-
let n = t.getBoundingClientRect(), r = H;
|
|
50
|
-
G(!0);
|
|
51
|
-
let i = (t) => {
|
|
52
|
-
let i = 0;
|
|
53
|
-
if ("touches" in t) {
|
|
54
|
-
let e = t.touches[0];
|
|
55
|
-
if (e == null) return;
|
|
56
|
-
i = e.clientX;
|
|
57
|
-
} else i = t.clientX;
|
|
58
|
-
let a = r + (e - i), o = Math.max(0, Math.min(w(n.width), n.width - b)), s = Math.min(v, o);
|
|
59
|
-
o <= 0 && (s = 0);
|
|
60
|
-
let c = Math.max(s, Math.min(a, Math.max(s, o)));
|
|
61
|
-
W.current = c, U(c);
|
|
62
|
-
}, a = () => {
|
|
63
|
-
G(!1), C(W.current);
|
|
64
|
-
let e = V.current;
|
|
65
|
-
e?.move != null && (window.removeEventListener("mousemove", e.move), window.removeEventListener("touchmove", e.move)), e?.up != null && (window.removeEventListener("mouseup", e.up), window.removeEventListener("touchend", e.up), window.removeEventListener("touchcancel", e.up)), V.current = null;
|
|
66
|
-
};
|
|
67
|
-
V.current = {
|
|
68
|
-
move: i,
|
|
69
|
-
up: a
|
|
70
|
-
}, window.addEventListener("mousemove", i), window.addEventListener("touchmove", i, { passive: !1 }), window.addEventListener("mouseup", a), window.addEventListener("touchend", a), window.addEventListener("touchcancel", a);
|
|
71
|
-
}, [
|
|
72
|
-
N,
|
|
73
|
-
K,
|
|
74
|
-
H
|
|
75
|
-
]);
|
|
76
|
-
f(() => {
|
|
77
|
-
W.current = H;
|
|
78
|
-
}, [H]), f(() => {
|
|
22
|
+
Y(!0);
|
|
23
|
+
}, []);
|
|
24
|
+
_(() => {
|
|
79
25
|
if (typeof window > "u") return () => {};
|
|
80
|
-
let e = window.matchMedia(`(max-width: ${
|
|
81
|
-
|
|
26
|
+
let e = window.matchMedia(`(max-width: ${S - 1}px)`), t = () => {
|
|
27
|
+
xe(e.matches);
|
|
82
28
|
};
|
|
83
29
|
return t(), e.addEventListener("change", t), () => {
|
|
84
30
|
e.removeEventListener("change", t);
|
|
85
31
|
};
|
|
86
|
-
}, []),
|
|
87
|
-
|
|
32
|
+
}, []), _(() => {
|
|
33
|
+
!q && J && X();
|
|
88
34
|
}, [
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
]),
|
|
93
|
-
!
|
|
94
|
-
}, [
|
|
95
|
-
Y,
|
|
96
|
-
q,
|
|
97
|
-
K
|
|
98
|
-
]), f(() => {
|
|
99
|
-
if (!q) return () => {};
|
|
35
|
+
X,
|
|
36
|
+
J,
|
|
37
|
+
q
|
|
38
|
+
]), _(() => {
|
|
39
|
+
if (!J) return () => {};
|
|
100
40
|
let e = (e) => {
|
|
101
41
|
if (e.key === "Escape") {
|
|
102
|
-
|
|
42
|
+
X();
|
|
103
43
|
return;
|
|
104
44
|
}
|
|
105
45
|
if (e.key !== "Tab") return;
|
|
106
|
-
let t =
|
|
46
|
+
let t = U.current;
|
|
107
47
|
if (t == null) return;
|
|
108
|
-
let n = Array.from(t.querySelectorAll(
|
|
48
|
+
let n = Array.from(t.querySelectorAll(w)).filter((e) => e.offsetParent != null || e === document.activeElement), r = n[0], i = n[n.length - 1];
|
|
109
49
|
if (r == null || i == null) {
|
|
110
50
|
e.preventDefault();
|
|
111
51
|
return;
|
|
@@ -115,237 +55,173 @@ var Se = 520, v = 360, y = .5, b = 480, Ce = 1024, x = "plumile:page-shell:side-
|
|
|
115
55
|
return;
|
|
116
56
|
}
|
|
117
57
|
!e.shiftKey && document.activeElement === i && (e.preventDefault(), r.focus());
|
|
118
|
-
}, t =
|
|
119
|
-
return
|
|
58
|
+
}, t = W.current;
|
|
59
|
+
return G.current?.focus(), window.addEventListener("keydown", e), () => {
|
|
120
60
|
window.removeEventListener("keydown", e);
|
|
121
|
-
let n =
|
|
122
|
-
n != null && document.contains(n) ? n.focus() : t?.focus(),
|
|
61
|
+
let n = K.current;
|
|
62
|
+
n != null && document.contains(n) ? n.focus() : t?.focus(), K.current = null;
|
|
123
63
|
};
|
|
124
|
-
}, [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}, []);
|
|
128
|
-
let Q;
|
|
129
|
-
typeof window < "u" && (Q = window.location.pathname);
|
|
130
|
-
let Ne = () => {
|
|
131
|
-
if (E != null) return /* @__PURE__ */ h("div", {
|
|
64
|
+
}, [X, J]);
|
|
65
|
+
let Se = () => {
|
|
66
|
+
if (D != null) return /* @__PURE__ */ b("div", {
|
|
132
67
|
className: c,
|
|
133
|
-
children:
|
|
68
|
+
children: D
|
|
134
69
|
});
|
|
135
|
-
if (
|
|
136
|
-
let e =
|
|
137
|
-
let n = t ===
|
|
138
|
-
if (e.href != null && !n)
|
|
70
|
+
if (E == null || E.length === 0) return null;
|
|
71
|
+
let e = E.flatMap((e, t) => {
|
|
72
|
+
let n = t === E.length - 1, r = `${e.href ?? "crumb"}-${t}`, i;
|
|
73
|
+
if (e.href != null && !n) i = /* @__PURE__ */ b(he, {
|
|
139
74
|
to: e.href,
|
|
140
75
|
className: o,
|
|
141
76
|
children: e.label
|
|
142
77
|
});
|
|
143
78
|
else {
|
|
144
79
|
let t = o;
|
|
145
|
-
n && (t =
|
|
80
|
+
n && (t = ee), i = /* @__PURE__ */ b("span", {
|
|
146
81
|
className: t,
|
|
147
82
|
children: e.label
|
|
148
83
|
});
|
|
149
84
|
}
|
|
150
|
-
let
|
|
85
|
+
let s = /* @__PURE__ */ b("li", {
|
|
151
86
|
className: a,
|
|
152
|
-
children:
|
|
87
|
+
children: i
|
|
153
88
|
}, r);
|
|
154
|
-
return n ? [
|
|
155
|
-
className:
|
|
89
|
+
return n ? [s] : [s, /* @__PURE__ */ b("li", {
|
|
90
|
+
className: l,
|
|
156
91
|
"aria-hidden": "true",
|
|
157
92
|
children: "/"
|
|
158
93
|
}, `${r}-sep`)];
|
|
159
94
|
});
|
|
160
|
-
return /* @__PURE__ */
|
|
95
|
+
return /* @__PURE__ */ b("nav", {
|
|
161
96
|
className: c,
|
|
162
|
-
"aria-label":
|
|
163
|
-
children: /* @__PURE__ */
|
|
97
|
+
"aria-label": R("navigation.breadcrumb"),
|
|
98
|
+
children: /* @__PURE__ */ b("ol", {
|
|
164
99
|
className: s,
|
|
165
100
|
children: e
|
|
166
101
|
})
|
|
167
102
|
});
|
|
168
|
-
},
|
|
169
|
-
if (
|
|
170
|
-
let e =
|
|
171
|
-
return
|
|
172
|
-
className:
|
|
173
|
-
children:
|
|
174
|
-
})), /* @__PURE__ */
|
|
175
|
-
className:
|
|
176
|
-
children: [e.map((e, t) => /* @__PURE__ */
|
|
177
|
-
className:
|
|
103
|
+
}, Ce = () => {
|
|
104
|
+
if (T == null || T.main == null && (T.secondary ?? []).length === 0) return null;
|
|
105
|
+
let e = T.secondary ?? [], t = null;
|
|
106
|
+
return T.main != null && (t = /* @__PURE__ */ b("div", {
|
|
107
|
+
className: f,
|
|
108
|
+
children: T.main
|
|
109
|
+
})), /* @__PURE__ */ x("div", {
|
|
110
|
+
className: i,
|
|
111
|
+
children: [e.map((e, t) => /* @__PURE__ */ b("div", {
|
|
112
|
+
className: f,
|
|
178
113
|
children: e
|
|
179
114
|
}, `secondary-${t}`)), t]
|
|
180
115
|
});
|
|
181
|
-
},
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
onMouseDown: (e) => {
|
|
242
|
-
e.preventDefault(), Z(e.clientX);
|
|
243
|
-
},
|
|
244
|
-
onTouchStart: (e) => {
|
|
245
|
-
let t = e.touches[0];
|
|
246
|
-
t != null && Z(t.clientX);
|
|
247
|
-
},
|
|
248
|
-
onKeyDown: Ie
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
let ze = k;
|
|
252
|
-
K && (ze = De ?? k);
|
|
253
|
-
let Be = O || K, $ = ke;
|
|
254
|
-
return $ ??= M("navigation.pageShell.openNavigation"), /* @__PURE__ */ g("div", {
|
|
255
|
-
className: me,
|
|
116
|
+
}, we = () => L == null || L.length === 0 ? null : /* @__PURE__ */ b(r, {
|
|
117
|
+
items: L.map((e) => ({
|
|
118
|
+
id: e.id,
|
|
119
|
+
label: e.label,
|
|
120
|
+
to: e.href,
|
|
121
|
+
isActive: e.isActive
|
|
122
|
+
})),
|
|
123
|
+
variant: "page"
|
|
124
|
+
}), Q = F;
|
|
125
|
+
q && (Q = M ?? F);
|
|
126
|
+
let Te = B && (j || q), $ = P;
|
|
127
|
+
$ ??= R("navigation.pageShell.openNavigation");
|
|
128
|
+
let Ee = /* @__PURE__ */ x("div", {
|
|
129
|
+
className: e(ie, {
|
|
130
|
+
[oe]: z,
|
|
131
|
+
[ae]: V
|
|
132
|
+
}),
|
|
133
|
+
children: [/* @__PURE__ */ x("div", {
|
|
134
|
+
className: te,
|
|
135
|
+
children: [/* @__PURE__ */ x("div", {
|
|
136
|
+
className: re,
|
|
137
|
+
children: [/* @__PURE__ */ x("div", {
|
|
138
|
+
className: ne,
|
|
139
|
+
children: [
|
|
140
|
+
B && !q && !j && /* @__PURE__ */ b("button", {
|
|
141
|
+
type: "button",
|
|
142
|
+
className: "_1kley2de _1kley2dd txvbqbdsb txvbqbdqf txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y txvbqb7g txvbqb76 txvbqb7t",
|
|
143
|
+
onClick: N,
|
|
144
|
+
"aria-label": $,
|
|
145
|
+
title: $,
|
|
146
|
+
children: /* @__PURE__ */ b(h, {
|
|
147
|
+
width: 18,
|
|
148
|
+
height: 18,
|
|
149
|
+
"aria-hidden": "true"
|
|
150
|
+
})
|
|
151
|
+
}),
|
|
152
|
+
B && q && /* @__PURE__ */ b("button", {
|
|
153
|
+
ref: W,
|
|
154
|
+
type: "button",
|
|
155
|
+
className: "_1kley2dc txvbqbdq5 txvbqbdsl txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y",
|
|
156
|
+
onClick: Z,
|
|
157
|
+
"aria-expanded": J,
|
|
158
|
+
"aria-label": R("navigation.pageShell.openNavigation"),
|
|
159
|
+
children: /* @__PURE__ */ b(h, {
|
|
160
|
+
width: 18,
|
|
161
|
+
height: 18,
|
|
162
|
+
"aria-hidden": "true"
|
|
163
|
+
})
|
|
164
|
+
}),
|
|
165
|
+
Se()
|
|
166
|
+
]
|
|
167
|
+
}), Ce()]
|
|
168
|
+
}), we()]
|
|
169
|
+
}), /* @__PURE__ */ b("div", {
|
|
170
|
+
className: e(u, H, k),
|
|
171
|
+
children: O
|
|
172
|
+
})]
|
|
173
|
+
});
|
|
174
|
+
return /* @__PURE__ */ x("div", {
|
|
175
|
+
className: pe,
|
|
256
176
|
children: [
|
|
257
|
-
/* @__PURE__ */
|
|
258
|
-
className: e(
|
|
177
|
+
/* @__PURE__ */ b("div", {
|
|
178
|
+
className: e(se, { [ce]: q && J }),
|
|
259
179
|
"aria-hidden": "true",
|
|
260
|
-
onClick:
|
|
180
|
+
onClick: X
|
|
261
181
|
}),
|
|
262
|
-
|
|
263
|
-
ref:
|
|
264
|
-
className: e("
|
|
265
|
-
"aria-hidden":
|
|
266
|
-
inert:
|
|
267
|
-
children: [/* @__PURE__ */
|
|
268
|
-
ref:
|
|
182
|
+
Te && /* @__PURE__ */ x("div", {
|
|
183
|
+
ref: U,
|
|
184
|
+
className: e("_1kley2d5 txvbqb11ki txvbqb16gq txvbqbipm txvbqbf7y txvbqbdr8 txvbqbusr", "_1kley2d6", { _1kley2d7: q && J }),
|
|
185
|
+
"aria-hidden": q && !J,
|
|
186
|
+
inert: q && !J,
|
|
187
|
+
children: [/* @__PURE__ */ b("button", {
|
|
188
|
+
ref: G,
|
|
269
189
|
type: "button",
|
|
270
|
-
className: "
|
|
271
|
-
onClick:
|
|
272
|
-
"aria-label":
|
|
273
|
-
children: /* @__PURE__ */
|
|
190
|
+
className: "_1kley2df txvbqbdq5 txvbqbdsl txvbqb11kv txvbqb11jp txvbqb11l8 txvbqb11ml txvbqb16gq txvbqb16i3 txvbqb18w4 txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv",
|
|
191
|
+
onClick: X,
|
|
192
|
+
"aria-label": R("navigation.pageShell.closeNavigation"),
|
|
193
|
+
children: /* @__PURE__ */ b(n, {
|
|
274
194
|
width: 18,
|
|
275
195
|
height: 18,
|
|
276
196
|
"aria-hidden": "true"
|
|
277
197
|
})
|
|
278
|
-
}), /* @__PURE__ */
|
|
279
|
-
className: "_1kley2d8
|
|
280
|
-
children:
|
|
198
|
+
}), /* @__PURE__ */ b("div", {
|
|
199
|
+
className: "_1kley2d9 _1kley2d8 txvbqbdr8 txvbqbi1f",
|
|
200
|
+
children: Q
|
|
281
201
|
})]
|
|
282
202
|
}),
|
|
283
|
-
/* @__PURE__ */
|
|
284
|
-
ref:
|
|
285
|
-
className: e(
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
children: [/* @__PURE__ */ g("div", {
|
|
302
|
-
className: ie,
|
|
303
|
-
children: [
|
|
304
|
-
!K && !O && /* @__PURE__ */ h("button", {
|
|
305
|
-
type: "button",
|
|
306
|
-
className: "_1kley2dd _1kley2dc txvbqbdsb txvbqbdqf txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y txvbqb7g txvbqb76 txvbqb7t",
|
|
307
|
-
onClick: Oe,
|
|
308
|
-
"aria-label": $,
|
|
309
|
-
title: $,
|
|
310
|
-
children: /* @__PURE__ */ h(u, {
|
|
311
|
-
width: 18,
|
|
312
|
-
height: 18,
|
|
313
|
-
"aria-hidden": "true"
|
|
314
|
-
})
|
|
315
|
-
}),
|
|
316
|
-
K && /* @__PURE__ */ h("button", {
|
|
317
|
-
ref: R,
|
|
318
|
-
type: "button",
|
|
319
|
-
className: "_1kley2db txvbqbdq5 txvbqbdsl txvbqbey txvbqbjtp txvbqb17jd txvbqbhos txvbqb2gm txvbqb2et txvbqb1uy txvbqb17h txvbqb196b txvbqb19c9 txvbqbv txvbqbf7y",
|
|
320
|
-
onClick: Me,
|
|
321
|
-
"aria-expanded": q,
|
|
322
|
-
"aria-label": M("navigation.pageShell.openNavigation"),
|
|
323
|
-
children: /* @__PURE__ */ h(u, {
|
|
324
|
-
width: 18,
|
|
325
|
-
height: 18,
|
|
326
|
-
"aria-hidden": "true"
|
|
327
|
-
})
|
|
328
|
-
}),
|
|
329
|
-
Ne()
|
|
330
|
-
]
|
|
331
|
-
}), Pe()]
|
|
332
|
-
}), Fe()]
|
|
333
|
-
}), /* @__PURE__ */ h("div", {
|
|
334
|
-
className: e(te, F, Te),
|
|
335
|
-
children: D
|
|
336
|
-
})]
|
|
337
|
-
}),
|
|
338
|
-
Re,
|
|
339
|
-
Le
|
|
340
|
-
]
|
|
203
|
+
/* @__PURE__ */ b("div", {
|
|
204
|
+
ref: be,
|
|
205
|
+
className: e(le, { [ue]: V }),
|
|
206
|
+
"aria-hidden": q && J,
|
|
207
|
+
inert: q && J,
|
|
208
|
+
children: /* @__PURE__ */ b(me, {
|
|
209
|
+
main: Ee,
|
|
210
|
+
sidePanel: I,
|
|
211
|
+
className: e(de, { [fe]: z }),
|
|
212
|
+
sidePanelClassName: e(p, m),
|
|
213
|
+
defaultSidePanelWidth: ge,
|
|
214
|
+
minSidePanelWidth: _e,
|
|
215
|
+
maxSidePanelRatio: ve,
|
|
216
|
+
minMainWidth: ye,
|
|
217
|
+
stackedBreakpoint: S,
|
|
218
|
+
storageKey: C,
|
|
219
|
+
resizerLabel: R("layout.pageShell.resizeSidePanel")
|
|
220
|
+
})
|
|
341
221
|
})
|
|
342
222
|
]
|
|
343
223
|
});
|
|
344
|
-
}, D = {
|
|
345
|
-
readStoredSidePanelWidth: S,
|
|
346
|
-
resolveMaxSidePanelWidth: w,
|
|
347
|
-
resolveIsActive: T
|
|
348
|
-
};
|
|
224
|
+
}, D = { resolveIsActive: T };
|
|
349
225
|
//#endregion
|
|
350
226
|
export { E as PageShell, D as __test };
|
|
351
227
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageShell.js","names":[],"sources":["../../../../src/components/layout/PageShell.tsx"],"sourcesContent":["import Link from '@plumile/router/routing/Link.js';\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type JSX,\n type ReactNode,\n type KeyboardEvent,\n type CSSProperties,\n} from 'react';\n\nimport * as styles from './PageShell.css.js';\nimport { MenuSvg } from '../../icons/MenuSvg.js';\nimport { ModalCloseSvg } from '../../icons/ModalCloseSvg.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nexport type BreadcrumbItem = {\n label: ReactNode;\n href?: string;\n};\n\nexport type PageShellTab = {\n id: string;\n label: ReactNode;\n href?: string;\n isActive?: boolean;\n};\n\nexport type PageShellActions = {\n main?: ReactNode;\n secondary?: ReactNode[];\n};\n\nexport type PageShellContentScrollMode = 'page' | 'contained';\n\nconst DEFAULT_SIDE_PANEL_WIDTH = 520;\nconst MIN_SIDE_PANEL_WIDTH = 360;\nconst MAX_SIDE_PANEL_RATIO = 0.5;\nconst MIN_MAIN_WIDTH = 480;\nconst SPLIT_BREAKPOINT = 1024;\nconst SIDE_PANEL_WIDTH_STORAGE_KEY = 'plumile:page-shell:side-panel-width';\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nconst readStoredSidePanelWidth = (): number | null => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n try {\n const stored = window.localStorage.getItem(SIDE_PANEL_WIDTH_STORAGE_KEY);\n if (stored == null) {\n return null;\n }\n const parsed = Number(stored);\n if (!Number.isFinite(parsed) || parsed <= 0) {\n return null;\n }\n return parsed;\n } catch {\n return null;\n }\n};\n\nconst persistSidePanelWidth = (width: number): void => {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n window.localStorage.setItem(SIDE_PANEL_WIDTH_STORAGE_KEY, String(width));\n } catch {\n // ignore quota / permission errors\n }\n};\n\nconst resolveMaxSidePanelWidth = (containerWidth: number): number => {\n let viewWidth = containerWidth;\n if (typeof window !== 'undefined') {\n viewWidth = window.innerWidth;\n }\n return viewWidth * MAX_SIDE_PANEL_RATIO;\n};\n\ntype ResizeMoveHandler = (event: MouseEvent | TouchEvent) => void;\ntype ResizeUpHandler = () => void;\ntype ActiveResizeHandlers = {\n move?: ResizeMoveHandler | null;\n up?: ResizeUpHandler | null;\n};\n\ntype Props = {\n sidebar: ReactNode;\n mobileSidebar?: ReactNode;\n desktopSidebarOpen?: boolean;\n onOpenDesktopSidebar?: () => void;\n openDesktopSidebarLabel?: string;\n children: ReactNode;\n breadcrumb?: BreadcrumbItem[];\n breadcrumbSlot?: ReactNode;\n tabs?: PageShellTab[];\n actions?: PageShellActions;\n sidePanel?: ReactNode;\n contentClassName?: string;\n contentScrollMode?: PageShellContentScrollMode;\n};\n\nconst resolveIsActive = (tab: PageShellTab, pathname?: string): boolean => {\n if (typeof tab.isActive === 'boolean') {\n return tab.isActive;\n }\n\n if (tab.href != null && pathname != null) {\n return pathname === tab.href;\n }\n\n return false;\n};\n\nexport const PageShell = ({\n actions,\n breadcrumb,\n breadcrumbSlot,\n children,\n contentClassName,\n contentScrollMode = 'page',\n desktopSidebarOpen = true,\n mobileSidebar,\n onOpenDesktopSidebar,\n openDesktopSidebarLabel,\n sidebar,\n sidePanel,\n tabs,\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n const hasSidePanel = sidePanel != null;\n const isContainedScroll = contentScrollMode === 'contained';\n let containedContentClassName: string | null = null;\n if (isContainedScroll) {\n containedContentClassName = styles.contentContained;\n }\n const pageRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarToggleRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarCloseRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarPreviousFocusRef = useRef<HTMLElement | null>(null);\n const activeResizeHandlersRef = useRef<ActiveResizeHandlers | null>(null);\n const [sidePanelWidth, setSidePanelWidth] = useState(() => {\n const stored = readStoredSidePanelWidth();\n return stored ?? DEFAULT_SIDE_PANEL_WIDTH;\n });\n const sidePanelWidthSnapshotRef = useRef(sidePanelWidth);\n const [isResizingPanel, setIsResizingPanel] = useState(false);\n const [isStackedLayout, setIsStackedLayout] = useState(false);\n const [isMobileSidebarOpen, setIsMobileSidebarOpen] = useState(false);\n\n const closeMobileSidebar = useCallback(() => {\n setIsMobileSidebarOpen(false);\n }, []);\n\n const openMobileSidebar = useCallback(() => {\n if (typeof document !== 'undefined') {\n const { activeElement } = document;\n if (activeElement instanceof HTMLElement) {\n mobileSidebarPreviousFocusRef.current = activeElement;\n }\n }\n setIsMobileSidebarOpen(true);\n }, []);\n\n const clampSidePanelWidth = useCallback((candidateWidth: number): void => {\n const container = pageRef.current;\n if (container == null) {\n return;\n }\n\n const { width } = container.getBoundingClientRect();\n const maxWidth = Math.max(\n 0,\n Math.min(resolveMaxSidePanelWidth(width), width - MIN_MAIN_WIDTH),\n );\n const minWidth = Math.min(MIN_SIDE_PANEL_WIDTH, maxWidth);\n let safeMin = minWidth;\n if (maxWidth <= 0) {\n safeMin = 0;\n }\n const safeMax = Math.max(safeMin, maxWidth);\n const clampedWidth = Math.max(safeMin, Math.min(candidateWidth, safeMax));\n sidePanelWidthSnapshotRef.current = clampedWidth;\n setSidePanelWidth(clampedWidth);\n }, []);\n\n const startResizing = useCallback(\n (startClientX: number): void => {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (!hasSidePanel || isStackedLayout) {\n return;\n }\n\n const container = pageRef.current;\n if (container == null) {\n return;\n }\n\n const rect = container.getBoundingClientRect();\n const currentWidth = sidePanelWidth;\n setIsResizingPanel(true);\n\n const moveHandler: ResizeMoveHandler = (event) => {\n let clientX = 0;\n if ('touches' in event) {\n const touch = event.touches[0];\n if (touch == null) {\n return;\n }\n clientX = touch.clientX;\n } else {\n clientX = event.clientX;\n }\n\n const deltaX = startClientX - clientX;\n const nextWidth = currentWidth + deltaX;\n\n const maxWidth = Math.max(\n 0,\n Math.min(\n resolveMaxSidePanelWidth(rect.width),\n rect.width - MIN_MAIN_WIDTH,\n ),\n );\n const minWidth = Math.min(MIN_SIDE_PANEL_WIDTH, maxWidth);\n let safeMin = minWidth;\n if (maxWidth <= 0) {\n safeMin = 0;\n }\n const safeMax = Math.max(safeMin, maxWidth);\n\n const clampedWidth = Math.max(safeMin, Math.min(nextWidth, safeMax));\n sidePanelWidthSnapshotRef.current = clampedWidth;\n setSidePanelWidth(clampedWidth);\n };\n\n const upHandler: ResizeUpHandler = () => {\n setIsResizingPanel(false);\n persistSidePanelWidth(sidePanelWidthSnapshotRef.current);\n const handlers = activeResizeHandlersRef.current;\n if (handlers?.move != null) {\n window.removeEventListener('mousemove', handlers.move);\n window.removeEventListener('touchmove', handlers.move);\n }\n if (handlers?.up != null) {\n window.removeEventListener('mouseup', handlers.up);\n window.removeEventListener('touchend', handlers.up);\n window.removeEventListener('touchcancel', handlers.up);\n }\n activeResizeHandlersRef.current = null;\n };\n\n activeResizeHandlersRef.current = { move: moveHandler, up: upHandler };\n\n window.addEventListener('mousemove', moveHandler);\n window.addEventListener('touchmove', moveHandler, { passive: false });\n window.addEventListener('mouseup', upHandler);\n window.addEventListener('touchend', upHandler);\n window.addEventListener('touchcancel', upHandler);\n },\n [hasSidePanel, isStackedLayout, sidePanelWidth],\n );\n\n useEffect(() => {\n sidePanelWidthSnapshotRef.current = sidePanelWidth;\n }, [sidePanelWidth]);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(\n `(max-width: ${SPLIT_BREAKPOINT - 1}px)`,\n );\n const handleMediaChange = () => {\n setIsStackedLayout(mediaQuery.matches);\n };\n\n handleMediaChange();\n mediaQuery.addEventListener('change', handleMediaChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleMediaChange);\n };\n }, []);\n\n useEffect(() => {\n if (hasSidePanel) {\n clampSidePanelWidth(sidePanelWidth);\n }\n }, [hasSidePanel, sidePanelWidth, clampSidePanelWidth]);\n\n useEffect(() => {\n if (!isStackedLayout && isMobileSidebarOpen) {\n closeMobileSidebar();\n }\n }, [closeMobileSidebar, isMobileSidebarOpen, isStackedLayout]);\n\n useEffect(() => {\n if (!isMobileSidebarOpen) {\n return () => {};\n }\n\n const handleEscape = (event: globalThis.KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeMobileSidebar();\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n const sidebarElement = mobileSidebarRef.current;\n if (sidebarElement == null) {\n return;\n }\n\n const focusableElements = Array.from(\n sidebarElement.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => {\n return (\n element.offsetParent != null || element === document.activeElement\n );\n });\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n if (firstElement == null || lastElement == null) {\n event.preventDefault();\n return;\n }\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n return;\n }\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n };\n\n const fallbackFocusElement = mobileSidebarToggleRef.current;\n mobileSidebarCloseRef.current?.focus();\n\n window.addEventListener('keydown', handleEscape);\n return () => {\n window.removeEventListener('keydown', handleEscape);\n const previousFocus = mobileSidebarPreviousFocusRef.current;\n if (previousFocus != null && document.contains(previousFocus)) {\n previousFocus.focus();\n } else {\n fallbackFocusElement?.focus();\n }\n mobileSidebarPreviousFocusRef.current = null;\n };\n }, [closeMobileSidebar, isMobileSidebarOpen]);\n\n useEffect(() => {\n return () => {\n const handlers = activeResizeHandlersRef.current;\n if (handlers?.move != null) {\n window.removeEventListener('mousemove', handlers.move);\n window.removeEventListener('touchmove', handlers.move);\n }\n if (handlers?.up != null) {\n window.removeEventListener('mouseup', handlers.up);\n window.removeEventListener('touchend', handlers.up);\n window.removeEventListener('touchcancel', handlers.up);\n }\n };\n }, []);\n\n let currentPath: string | undefined;\n if (typeof window !== 'undefined') {\n currentPath = window.location.pathname;\n }\n\n const renderBreadcrumb = (): JSX.Element | null => {\n if (breadcrumbSlot != null) {\n return <div className={styles.breadcrumbNav}>{breadcrumbSlot}</div>;\n }\n\n if (breadcrumb == null || breadcrumb.length === 0) {\n return null;\n }\n\n const items = breadcrumb.flatMap((item, index) => {\n const isLast = index === breadcrumb.length - 1;\n const key = `${item.href ?? 'crumb'}-${index}`;\n let content: JSX.Element;\n if (item.href != null && !isLast) {\n content = (\n <Link to={item.href} className={styles.breadcrumbLink}>\n {item.label}\n </Link>\n );\n } else {\n let breadcrumbClass = styles.breadcrumbLink;\n if (isLast) {\n breadcrumbClass = styles.breadcrumbCurrent;\n }\n content = <span className={breadcrumbClass}>{item.label}</span>;\n }\n\n const renderedItem = (\n <li key={key} className={styles.breadcrumbItem}>\n {content}\n </li>\n );\n\n if (isLast) {\n return [renderedItem];\n }\n\n return [\n renderedItem,\n <li\n key={`${key}-sep`}\n className={styles.breadcrumbSeparator}\n aria-hidden=\"true\"\n >\n /\n </li>,\n ];\n });\n\n return (\n <nav\n className={styles.breadcrumbNav}\n aria-label={t('navigation.breadcrumb')}\n >\n <ol className={styles.breadcrumbList}>{items}</ol>\n </nav>\n );\n };\n\n const renderActions = (): JSX.Element | null => {\n if (\n actions == null ||\n (actions.main == null && (actions.secondary ?? []).length === 0)\n ) {\n return null;\n }\n\n const secondaryNodes = actions.secondary ?? [];\n\n let mainActionNode: JSX.Element | null = null;\n if (actions.main != null) {\n mainActionNode = (\n <div className={styles.secondaryAction}>{actions.main}</div>\n );\n }\n\n return (\n <div className={styles.actionGroup}>\n {secondaryNodes.map((node, index) => {\n return (\n <div key={`secondary-${index}`} className={styles.secondaryAction}>\n {node}\n </div>\n );\n })}\n {mainActionNode}\n </div>\n );\n };\n\n const renderTabs = (): JSX.Element | null => {\n if (tabs == null || tabs.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.tabsRow}>\n {tabs.map((tab) => {\n const isActive = resolveIsActive(tab, currentPath);\n let tabState: 'default' | 'active' = 'default';\n if (isActive) {\n tabState = 'active';\n }\n let tabMode: 'static' | 'link' = 'link';\n if (tab.href == null) {\n tabMode = 'static';\n }\n const className = styles.tabRecipe({\n state: tabState,\n mode: tabMode,\n });\n const key = tab.id;\n let ariaCurrent: 'page' | undefined;\n if (isActive) {\n ariaCurrent = 'page';\n }\n\n if (tab.href != null) {\n return (\n <Link\n key={key}\n to={tab.href}\n className={className}\n aria-current={ariaCurrent}\n >\n {tab.label}\n </Link>\n );\n }\n\n return (\n <span key={key} className={className} aria-current={ariaCurrent}>\n {tab.label}\n </span>\n );\n })}\n </div>\n );\n };\n\n const handleResizerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (isStackedLayout) {\n return;\n }\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n event.preventDefault();\n let delta = 16;\n if (event.key === 'ArrowRight') {\n delta = -16;\n }\n clampSidePanelWidth(sidePanelWidth + delta);\n persistSidePanelWidth(sidePanelWidthSnapshotRef.current);\n }\n },\n [clampSidePanelWidth, isStackedLayout, sidePanelWidth],\n );\n\n let sidePanelNode: JSX.Element | null = null;\n if (hasSidePanel) {\n const sidePanelClasses = [styles.sidePanel, styles.sidePanelSurface];\n let sidePanelStyle: CSSProperties | undefined;\n if (!isStackedLayout) {\n sidePanelClasses.push(styles.sidePanelResizable);\n sidePanelStyle = {\n width: `${sidePanelWidth}px`,\n };\n }\n sidePanelNode = (\n <aside className={cx(...sidePanelClasses)} style={sidePanelStyle}>\n {sidePanel}\n </aside>\n );\n }\n\n let resizerNode: JSX.Element | null = null;\n if (hasSidePanel) {\n let resizerActive = 'false';\n if (isResizingPanel) {\n resizerActive = 'true';\n }\n let resizerMin = MIN_SIDE_PANEL_WIDTH;\n let resizerMax = Math.max(MIN_SIDE_PANEL_WIDTH, sidePanelWidth);\n const pageElement = pageRef.current;\n if (pageElement != null) {\n const { width } = pageElement.getBoundingClientRect();\n const maxWidth = Math.max(\n 0,\n Math.min(resolveMaxSidePanelWidth(width), width - MIN_MAIN_WIDTH),\n );\n resizerMin = Math.min(MIN_SIDE_PANEL_WIDTH, maxWidth);\n if (maxWidth <= 0) {\n resizerMin = 0;\n }\n resizerMax = Math.max(resizerMin, maxWidth);\n }\n resizerNode = (\n <div\n className={cx(\n styles.sidePanelResizer,\n styles.sidePanelResizerHiddenOnMobile,\n )}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={t('layout.pageShell.resizeSidePanel')}\n aria-valuemin={Math.round(resizerMin)}\n aria-valuemax={Math.round(resizerMax)}\n aria-valuenow={Math.round(sidePanelWidth)}\n tabIndex={0}\n data-active={resizerActive}\n onMouseDown={(event) => {\n event.preventDefault();\n startResizing(event.clientX);\n }}\n onTouchStart={(event) => {\n const touch = event.touches[0];\n if (touch != null) {\n startResizing(touch.clientX);\n }\n }}\n onKeyDown={handleResizerKeyDown}\n />\n );\n }\n\n let sidebarContent = sidebar;\n if (isStackedLayout) {\n sidebarContent = mobileSidebar ?? sidebar;\n }\n const shouldRenderDesktopSidebar = desktopSidebarOpen || isStackedLayout;\n let resolvedOpenDesktopSidebarLabel = openDesktopSidebarLabel;\n resolvedOpenDesktopSidebarLabel ??= t('navigation.pageShell.openNavigation');\n\n return (\n <div className={styles.shell}>\n <div\n className={cx(styles.mobileSidebarBackdrop, {\n [styles.mobileSidebarBackdropOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden=\"true\"\n onClick={closeMobileSidebar}\n />\n {shouldRenderDesktopSidebar && (\n <div\n ref={mobileSidebarRef}\n className={cx(styles.sidebarColumn, styles.sidebarColumnMobile, {\n [styles.sidebarColumnMobileOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden={isStackedLayout && !isMobileSidebarOpen}\n inert={isStackedLayout && !isMobileSidebarOpen}\n >\n <button\n ref={mobileSidebarCloseRef}\n type=\"button\"\n className={styles.mobileSidebarClose}\n onClick={closeMobileSidebar}\n aria-label={t('navigation.pageShell.closeNavigation')}\n >\n <ModalCloseSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n <div className={styles.sidebarInner}>{sidebarContent}</div>\n </div>\n )}\n <div\n ref={pageRef}\n className={cx(styles.page, {\n [styles.pageWithSidePanel]: hasSidePanel,\n [styles.pageContained]: isContainedScroll,\n })}\n aria-hidden={isStackedLayout && isMobileSidebarOpen}\n inert={isStackedLayout && isMobileSidebarOpen}\n >\n <div\n className={cx(styles.mainColumn, {\n [styles.mainColumnWithSidePanel]: hasSidePanel,\n [styles.mainColumnContained]: isContainedScroll,\n })}\n >\n <div className={styles.header}>\n <div className={styles.headerRow}>\n <div className={styles.headerLeading}>\n {!isStackedLayout && !desktopSidebarOpen && (\n <button\n type=\"button\"\n className={styles.desktopSidebarToggle}\n onClick={onOpenDesktopSidebar}\n aria-label={resolvedOpenDesktopSidebarLabel}\n title={resolvedOpenDesktopSidebarLabel}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {isStackedLayout && (\n <button\n ref={mobileSidebarToggleRef}\n type=\"button\"\n className={styles.mobileSidebarToggle}\n onClick={openMobileSidebar}\n aria-expanded={isMobileSidebarOpen}\n aria-label={t('navigation.pageShell.openNavigation')}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {renderBreadcrumb()}\n </div>\n {renderActions()}\n </div>\n {renderTabs()}\n </div>\n <div\n className={cx(\n styles.content,\n containedContentClassName,\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n {resizerNode}\n {sidePanelNode}\n </div>\n </div>\n );\n};\n\nexport const __test = {\n readStoredSidePanelWidth,\n resolveMaxSidePanelWidth,\n resolveIsActive,\n} as const;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PageShell.js","names":[],"sources":["../../../../src/components/layout/PageShell.tsx"],"sourcesContent":["import Link from '@plumile/router/routing/Link.js';\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport * as styles from './PageShell.css.js';\nimport { ResizableSplitView } from './ResizableSplitView.js';\nimport { Tabs, type TabItem } from '../../atomic/molecules/tabs/Tabs.js';\nimport { MenuSvg } from '../../icons/MenuSvg.js';\nimport { ModalCloseSvg } from '../../icons/ModalCloseSvg.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nexport type BreadcrumbItem = {\n label: ReactNode;\n href?: string;\n};\n\nexport type PageShellTab = {\n id: string;\n label: ReactNode;\n href?: string;\n isActive?: boolean;\n};\n\nexport type PageShellActions = {\n main?: ReactNode;\n secondary?: ReactNode[];\n};\n\nexport type PageShellContentScrollMode = 'page' | 'contained';\n\nconst DEFAULT_SIDE_PANEL_WIDTH = 520;\nconst MIN_SIDE_PANEL_WIDTH = 360;\nconst MAX_SIDE_PANEL_RATIO = 0.5;\nconst MIN_MAIN_WIDTH = 480;\nconst SPLIT_BREAKPOINT = 1024;\nconst SIDE_PANEL_WIDTH_STORAGE_KEY = 'plumile:page-shell:side-panel-width';\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\ntype Props = {\n sidebar?: ReactNode;\n mobileSidebar?: ReactNode;\n desktopSidebarOpen?: boolean;\n onOpenDesktopSidebar?: () => void;\n openDesktopSidebarLabel?: string;\n children: ReactNode;\n breadcrumb?: BreadcrumbItem[];\n breadcrumbSlot?: ReactNode;\n tabs?: PageShellTab[];\n actions?: PageShellActions;\n sidePanel?: ReactNode;\n contentClassName?: string;\n contentScrollMode?: PageShellContentScrollMode;\n};\n\nconst resolveIsActive = (tab: PageShellTab, pathname?: string): boolean => {\n if (typeof tab.isActive === 'boolean') {\n return tab.isActive;\n }\n\n if (tab.href != null && pathname != null) {\n return pathname === tab.href;\n }\n\n return false;\n};\n\nexport const PageShell = ({\n actions,\n breadcrumb,\n breadcrumbSlot,\n children,\n contentClassName,\n contentScrollMode = 'page',\n desktopSidebarOpen = true,\n mobileSidebar,\n onOpenDesktopSidebar,\n openDesktopSidebarLabel,\n sidebar,\n sidePanel,\n tabs,\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n const hasSidePanel = sidePanel != null;\n const hasSidebar = sidebar != null || mobileSidebar != null;\n const isContainedScroll = contentScrollMode === 'contained';\n let containedContentClassName: string | null = null;\n if (isContainedScroll) {\n containedContentClassName = styles.contentContained;\n }\n const pageRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarRef = useRef<HTMLDivElement | null>(null);\n const mobileSidebarToggleRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarCloseRef = useRef<HTMLButtonElement | null>(null);\n const mobileSidebarPreviousFocusRef = useRef<HTMLElement | null>(null);\n const [isStackedLayout, setIsStackedLayout] = useState(false);\n const [isMobileSidebarOpen, setIsMobileSidebarOpen] = useState(false);\n\n const closeMobileSidebar = useCallback(() => {\n setIsMobileSidebarOpen(false);\n }, []);\n\n const openMobileSidebar = useCallback(() => {\n if (typeof document !== 'undefined') {\n const { activeElement } = document;\n if (activeElement instanceof HTMLElement) {\n mobileSidebarPreviousFocusRef.current = activeElement;\n }\n }\n setIsMobileSidebarOpen(true);\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(\n `(max-width: ${SPLIT_BREAKPOINT - 1}px)`,\n );\n const handleMediaChange = () => {\n setIsStackedLayout(mediaQuery.matches);\n };\n\n handleMediaChange();\n mediaQuery.addEventListener('change', handleMediaChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleMediaChange);\n };\n }, []);\n\n useEffect(() => {\n if (!isStackedLayout && isMobileSidebarOpen) {\n closeMobileSidebar();\n }\n }, [closeMobileSidebar, isMobileSidebarOpen, isStackedLayout]);\n\n useEffect(() => {\n if (!isMobileSidebarOpen) {\n return () => {};\n }\n\n const handleEscape = (event: globalThis.KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeMobileSidebar();\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n const sidebarElement = mobileSidebarRef.current;\n if (sidebarElement == null) {\n return;\n }\n\n const focusableElements = Array.from(\n sidebarElement.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => {\n return (\n element.offsetParent != null || element === document.activeElement\n );\n });\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n if (firstElement == null || lastElement == null) {\n event.preventDefault();\n return;\n }\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n return;\n }\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n };\n\n const fallbackFocusElement = mobileSidebarToggleRef.current;\n mobileSidebarCloseRef.current?.focus();\n\n window.addEventListener('keydown', handleEscape);\n return () => {\n window.removeEventListener('keydown', handleEscape);\n const previousFocus = mobileSidebarPreviousFocusRef.current;\n if (previousFocus != null && document.contains(previousFocus)) {\n previousFocus.focus();\n } else {\n fallbackFocusElement?.focus();\n }\n mobileSidebarPreviousFocusRef.current = null;\n };\n }, [closeMobileSidebar, isMobileSidebarOpen]);\n\n const renderBreadcrumb = (): JSX.Element | null => {\n if (breadcrumbSlot != null) {\n return <div className={styles.breadcrumbNav}>{breadcrumbSlot}</div>;\n }\n\n if (breadcrumb == null || breadcrumb.length === 0) {\n return null;\n }\n\n const items = breadcrumb.flatMap((item, index) => {\n const isLast = index === breadcrumb.length - 1;\n const key = `${item.href ?? 'crumb'}-${index}`;\n let content: JSX.Element;\n if (item.href != null && !isLast) {\n content = (\n <Link to={item.href} className={styles.breadcrumbLink}>\n {item.label}\n </Link>\n );\n } else {\n let breadcrumbClass = styles.breadcrumbLink;\n if (isLast) {\n breadcrumbClass = styles.breadcrumbCurrent;\n }\n content = <span className={breadcrumbClass}>{item.label}</span>;\n }\n\n const renderedItem = (\n <li key={key} className={styles.breadcrumbItem}>\n {content}\n </li>\n );\n\n if (isLast) {\n return [renderedItem];\n }\n\n return [\n renderedItem,\n <li\n key={`${key}-sep`}\n className={styles.breadcrumbSeparator}\n aria-hidden=\"true\"\n >\n /\n </li>,\n ];\n });\n\n return (\n <nav\n className={styles.breadcrumbNav}\n aria-label={t('navigation.breadcrumb')}\n >\n <ol className={styles.breadcrumbList}>{items}</ol>\n </nav>\n );\n };\n\n const renderActions = (): JSX.Element | null => {\n if (\n actions == null ||\n (actions.main == null && (actions.secondary ?? []).length === 0)\n ) {\n return null;\n }\n\n const secondaryNodes = actions.secondary ?? [];\n\n let mainActionNode: JSX.Element | null = null;\n if (actions.main != null) {\n mainActionNode = (\n <div className={styles.secondaryAction}>{actions.main}</div>\n );\n }\n\n return (\n <div className={styles.actionGroup}>\n {secondaryNodes.map((node, index) => {\n return (\n <div key={`secondary-${index}`} className={styles.secondaryAction}>\n {node}\n </div>\n );\n })}\n {mainActionNode}\n </div>\n );\n };\n\n const renderTabs = (): JSX.Element | null => {\n if (tabs == null || tabs.length === 0) {\n return null;\n }\n\n const tabItems: TabItem[] = tabs.map((tab) => {\n return {\n id: tab.id,\n label: tab.label,\n to: tab.href,\n isActive: tab.isActive,\n };\n });\n\n return <Tabs items={tabItems} variant=\"page\" />;\n };\n\n let sidebarContent = sidebar;\n if (isStackedLayout) {\n sidebarContent = mobileSidebar ?? sidebar;\n }\n const shouldRenderDesktopSidebar =\n hasSidebar && (desktopSidebarOpen || isStackedLayout);\n let resolvedOpenDesktopSidebarLabel = openDesktopSidebarLabel;\n resolvedOpenDesktopSidebarLabel ??= t('navigation.pageShell.openNavigation');\n\n const mainNode = (\n <div\n className={cx(styles.mainColumn, {\n [styles.mainColumnWithSidePanel]: hasSidePanel,\n [styles.mainColumnContained]: isContainedScroll,\n })}\n >\n <div className={styles.header}>\n <div className={styles.headerRow}>\n <div className={styles.headerLeading}>\n {hasSidebar && !isStackedLayout && !desktopSidebarOpen && (\n <button\n type=\"button\"\n className={styles.desktopSidebarToggle}\n onClick={onOpenDesktopSidebar}\n aria-label={resolvedOpenDesktopSidebarLabel}\n title={resolvedOpenDesktopSidebarLabel}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {hasSidebar && isStackedLayout && (\n <button\n ref={mobileSidebarToggleRef}\n type=\"button\"\n className={styles.mobileSidebarToggle}\n onClick={openMobileSidebar}\n aria-expanded={isMobileSidebarOpen}\n aria-label={t('navigation.pageShell.openNavigation')}\n >\n <MenuSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n )}\n {renderBreadcrumb()}\n </div>\n {renderActions()}\n </div>\n {renderTabs()}\n </div>\n <div\n className={cx(\n styles.content,\n containedContentClassName,\n contentClassName,\n )}\n >\n {children}\n </div>\n </div>\n );\n\n return (\n <div className={styles.shell}>\n <div\n className={cx(styles.mobileSidebarBackdrop, {\n [styles.mobileSidebarBackdropOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden=\"true\"\n onClick={closeMobileSidebar}\n />\n {shouldRenderDesktopSidebar && (\n <div\n ref={mobileSidebarRef}\n className={cx(styles.sidebarColumn, styles.sidebarColumnMobile, {\n [styles.sidebarColumnMobileOpen]:\n isStackedLayout && isMobileSidebarOpen,\n })}\n aria-hidden={isStackedLayout && !isMobileSidebarOpen}\n inert={isStackedLayout && !isMobileSidebarOpen}\n >\n <button\n ref={mobileSidebarCloseRef}\n type=\"button\"\n className={styles.mobileSidebarClose}\n onClick={closeMobileSidebar}\n aria-label={t('navigation.pageShell.closeNavigation')}\n >\n <ModalCloseSvg width={18} height={18} aria-hidden=\"true\" />\n </button>\n <div className={styles.sidebarInner}>{sidebarContent}</div>\n </div>\n )}\n <div\n ref={pageRef}\n className={cx(styles.page, {\n [styles.pageContained]: isContainedScroll,\n })}\n aria-hidden={isStackedLayout && isMobileSidebarOpen}\n inert={isStackedLayout && isMobileSidebarOpen}\n >\n <ResizableSplitView\n main={mainNode}\n sidePanel={sidePanel}\n className={cx(styles.pageSplitView, {\n [styles.pageWithSidePanel]: hasSidePanel,\n })}\n sidePanelClassName={cx(styles.sidePanel, styles.sidePanelSurface)}\n defaultSidePanelWidth={DEFAULT_SIDE_PANEL_WIDTH}\n minSidePanelWidth={MIN_SIDE_PANEL_WIDTH}\n maxSidePanelRatio={MAX_SIDE_PANEL_RATIO}\n minMainWidth={MIN_MAIN_WIDTH}\n stackedBreakpoint={SPLIT_BREAKPOINT}\n storageKey={SIDE_PANEL_WIDTH_STORAGE_KEY}\n resizerLabel={t('layout.pageShell.resizeSidePanel')}\n />\n </div>\n </div>\n );\n};\n\nexport const __test = {\n resolveIsActive,\n} as const;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* empty css */
|
|
2
|
+
/* empty css */
|
|
3
|
+
//#region src/components/layout/ResizableSplitView.css.ts
|
|
4
|
+
var e = "_1sh6osj1 _1sh6osj0 txvbqbdr8 txvbqbe8 txvbqbfeg txvbqbt9i txvbqb17w0", t = "_1sh6osj2 txvbqbf6i txvbqbffj", n = "_1sh6osj3 txvbqbf65", r = "_1sh6osj5 _1sh6osj4 txvbqbdxd txvbqbt9i", i = "_1sh6osj6 txvbqbdyg txvbqbt9i", a = "_1sh6osj7 txvbqb17w0", o = "_1sh6osj9 _1sh6osj8 txvbqbhh txvbqb1933 txvbqbb txvbqbdyg txvbqbtay txvbqb11js txvbqb17h7";
|
|
5
|
+
//#endregion
|
|
6
|
+
export { r as main, o as resizer, e as root, n as rootSplit, t as rootStacked, i as sidePanel, a as sidePanelStacked };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=ResizableSplitView.css.js.map
|