@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
|
@@ -75,38 +75,38 @@ var t = e({
|
|
|
75
75
|
} },
|
|
76
76
|
defaultVariants: { kind: "default" },
|
|
77
77
|
compoundVariants: []
|
|
78
|
-
}), _ = "ysn8461p txvbqbfd0 txvbqb19c9", v = "ysn8461q txvbqb19c9", y = "ysn8461r", b = e({
|
|
79
|
-
defaultClassName: "
|
|
78
|
+
}), _ = "ysn8461p txvbqbfd0 txvbqb19c9", v = "ysn8461q txvbqb19c9", y = "ysn8461r txvbqb18xk txvbqbusr txvbqb16g0 txvbqbt9i", b = "ysn8461s", x = e({
|
|
79
|
+
defaultClassName: "ysn8461w",
|
|
80
80
|
variantClassNames: { align: {
|
|
81
|
-
left: "
|
|
82
|
-
center: "
|
|
83
|
-
right: "
|
|
81
|
+
left: "ysn8461x ysn8461t txvbqbjuf txvbqb16ex",
|
|
82
|
+
center: "ysn8461y ysn8461u txvbqbjtp txvbqb16fa",
|
|
83
|
+
right: "ysn8461z ysn8461v txvbqbju2 txvbqb16fn"
|
|
84
84
|
} },
|
|
85
85
|
defaultVariants: {},
|
|
86
86
|
compoundVariants: []
|
|
87
|
-
}),
|
|
88
|
-
defaultClassName: "
|
|
87
|
+
}), S = e({
|
|
88
|
+
defaultClassName: "ysn84620",
|
|
89
89
|
variantClassNames: { state: {
|
|
90
|
-
default: "
|
|
91
|
-
selected: "
|
|
92
|
-
muted: "
|
|
93
|
-
danger: "
|
|
90
|
+
default: "ysn84621",
|
|
91
|
+
selected: "ysn84622",
|
|
92
|
+
muted: "ysn84623",
|
|
93
|
+
danger: "ysn84624"
|
|
94
94
|
} },
|
|
95
95
|
defaultVariants: {},
|
|
96
96
|
compoundVariants: []
|
|
97
|
-
}),
|
|
98
|
-
defaultClassName: "
|
|
97
|
+
}), C = "ysn84625", w = "ysn84626 txvbqb9w txvbqb19cb txvbqb16fa", T = e({
|
|
98
|
+
defaultClassName: "ysn84627",
|
|
99
99
|
variantClassNames: { minVisibleAt: {
|
|
100
|
-
sm: "
|
|
101
|
-
md: "
|
|
102
|
-
lg: "
|
|
103
|
-
xl: "
|
|
104
|
-
xxl: "
|
|
100
|
+
sm: "ysn84628",
|
|
101
|
+
md: "ysn84629",
|
|
102
|
+
lg: "ysn8462a",
|
|
103
|
+
xl: "ysn8462b",
|
|
104
|
+
xxl: "ysn8462c"
|
|
105
105
|
} },
|
|
106
106
|
defaultVariants: {},
|
|
107
107
|
compoundVariants: []
|
|
108
108
|
});
|
|
109
109
|
//#endregion
|
|
110
|
-
export {
|
|
110
|
+
export { x as alignRecipe, d as body, f as bodyContained, g as cell, t as container, n as containerWithContainedBody, l as densityRecipe, w as emptyCell, C as emptyRow, r as header, u as headerCell, i as headerRow, T as hideBelowRecipe, _ as primaryCell, v as primaryHeaderCell, p as row, m as rowEven, h as rowOdd, S as rowStateRecipe, y as singleLineCell, b as stickyHeader, o as tableCellFontSizeVar, a as tableCellPaddingVar, s as tableEmptyRowPaddingVar, c as tableRowMinHeightVar };
|
|
111
111
|
|
|
112
112
|
//# sourceMappingURL=DataTable.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.css.js","names":[],"sources":["../../../../src/components/data-table/DataTable.css.ts"],"sourcesContent":["import {\n style,\n createVar,\n fallbackVar,\n type StyleRule,\n} from '@vanilla-extract/css';\nimport { recipe } from '@vanilla-extract/recipes';\n\nimport { vars } from '../../theme/themeContract.css.js';\n\nimport {\n DATA_TABLE_BREAKPOINT_ENTRIES,\n type DataTableBreakpoint,\n} from './tableBreakpoints.js';\nimport { sprinkles } from '../../theme/sprinkles.css.js';\n\nexport const container = recipe({\n base: sprinkles({\n display: 'flex',\n flexDirection: 'column',\n width: 'full',\n containerType: 'inline-size',\n }),\n variants: {\n kind: {\n default: sprinkles({\n backgroundColor: 'surface',\n borderColor: 'border',\n borderRadius: 'lg',\n borderStyle: 'solid',\n borderWidth: 'default',\n overflowX: 'auto',\n overflowY: 'hidden',\n }),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n borderRadius: 'none',\n borderStyle: 'none',\n borderWidth: 0,\n overflow: 'visible',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const containerWithContainedBody = sprinkles({\n height: 'full',\n minHeight: 0,\n overflow: 'hidden',\n});\n\nexport const header = recipe({\n variants: {\n kind: {\n default: style([\n sprinkles({\n borderWidth: 0,\n borderStyle: 'solid',\n borderBottomWidth: 'default',\n borderBottomColor: 'borderSubtle',\n backgroundColor: 'surfaceMuted',\n }),\n {\n backgroundImage: `linear-gradient(90deg, color-mix(in srgb, ${vars.colors.primaryLight} 55%, transparent), transparent 64%)`,\n },\n ]),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderStyle: 'solid',\n borderBottomWidth: 'default',\n borderBottomColor: 'brandSecondaryOrange-20',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const headerRow = sprinkles({\n display: 'grid',\n width: 'full',\n alignItems: 'stretch',\n});\n\nexport const tableCellPaddingVar = createVar();\nexport const tableCellFontSizeVar = createVar();\nexport const tableEmptyRowPaddingVar = createVar();\nexport const tableRowMinHeightVar = createVar();\n\nexport const densityRecipe = recipe({\n variants: {\n density: {\n compact: {\n vars: {\n [tableCellPaddingVar]: `${vars.spacing[2]} ${vars.spacing[3]}`,\n [tableCellFontSizeVar]: vars.fontSize.sm,\n [tableEmptyRowPaddingVar]: `${vars.spacing[4]} ${vars.spacing[3]}`,\n [tableRowMinHeightVar]: vars.spacing[9],\n },\n },\n default: {\n vars: {\n [tableCellPaddingVar]: `${vars.spacing[3]} ${vars.spacing[4]}`,\n [tableCellFontSizeVar]: vars.fontSize.sm,\n [tableEmptyRowPaddingVar]: `${vars.spacing[6]} ${vars.spacing[4]}`,\n [tableRowMinHeightVar]: vars.spacing[10],\n },\n },\n comfortable: {\n vars: {\n [tableCellPaddingVar]: `${vars.spacing[3]} ${vars.spacing[5]}`,\n [tableCellFontSizeVar]: vars.fontSize.base,\n [tableEmptyRowPaddingVar]: `${vars.spacing[7]} ${vars.spacing[5]}`,\n [tableRowMinHeightVar]: vars.spacing[12],\n },\n },\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport const headerCell = recipe({\n base: sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n gap: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n variants: {\n kind: {\n default: style([\n sprinkles({\n color: 'textSecondary',\n fontWeight: 'semibold',\n letterSpacing: 'capsNarrow',\n textTransform: 'uppercase',\n }),\n {\n padding: fallbackVar(\n tableCellPaddingVar,\n `${vars.spacing[3]} ${vars.spacing[4]}`,\n ),\n fontSize: fallbackVar(tableCellFontSizeVar, vars.fontSize.sm),\n minHeight: fallbackVar(tableRowMinHeightVar, vars.spacing[10]),\n selectors: {\n '&:last-child': {\n borderRight: 'none',\n },\n },\n },\n ]),\n brandTable: sprinkles({\n color: 'black-300',\n fontWeight: 'bold',\n fontSize: 'xs',\n letterSpacing: 'caps',\n textTransform: 'uppercase',\n paddingY: 4,\n paddingX: 0,\n borderRightWidth: 0,\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const body = recipe({\n base: sprinkles({\n display: 'flex',\n flexDirection: 'column',\n }),\n variants: {\n kind: {\n default: {},\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const bodyContained = style([\n sprinkles({\n flex: 1,\n minHeight: 0,\n }),\n {\n overflowY: 'auto',\n scrollbarWidth: 'thin',\n scrollbarColor: `${vars.colors.border} transparent`,\n },\n]);\n\nexport const row = recipe({\n base: sprinkles({\n alignItems: 'stretch',\n borderStyle: 'solid',\n borderWidth: 0,\n display: 'grid',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n variants: {\n kind: {\n default: style([\n sprinkles({\n backgroundColor: 'surface',\n borderBottomColor: 'borderLight',\n borderBottomWidth: 'default',\n }),\n {\n selectors: {\n '&:last-child': {\n borderBottomWidth: 0,\n },\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${vars.colors.surfaceMuted} 84%, ${vars.colors.primaryLight})`,\n },\n },\n },\n ]),\n brandTable: style([\n sprinkles({\n backgroundColor: 'transparent',\n borderBottomColor: 'brandSecondaryOrange-20',\n borderBottomWidth: 'default',\n }),\n {\n selectors: {\n '&:last-child': {\n borderBottomWidth: 0,\n },\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n },\n ]),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const rowEven = recipe({\n variants: {\n kind: {\n default: sprinkles({\n backgroundColor: 'surfaceSecondary',\n }),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const rowOdd = recipe({\n variants: {\n kind: {\n default: sprinkles({\n backgroundColor: 'surface',\n }),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const cell = recipe({\n base: sprinkles({\n alignItems: 'center',\n display: 'flex',\n gap: 2,\n minWidth: 0,\n overflow: 'hidden',\n }),\n variants: {\n kind: {\n default: style([\n sprinkles({\n color: 'textSecondary',\n }),\n {\n padding: fallbackVar(\n tableCellPaddingVar,\n `${vars.spacing[3]} ${vars.spacing[4]}`,\n ),\n fontSize: fallbackVar(tableCellFontSizeVar, vars.fontSize.sm),\n minHeight: fallbackVar(tableRowMinHeightVar, vars.spacing[10]),\n selectors: {\n '&:last-child': {\n borderRight: 'none',\n },\n },\n },\n ]),\n brandTable: sprinkles({\n color: 'text',\n fontWeight: 'semibold',\n fontSize: 'sm',\n paddingY: 4,\n paddingX: 0,\n borderRightWidth: 0,\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const primaryCell = sprinkles({\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const primaryHeaderCell = sprinkles({\n color: 'text',\n});\n\nexport const stickyHeader = style({\n position: 'sticky',\n top: 0,\n zIndex: vars.zIndex[10],\n});\n\nexport const alignRecipe = recipe({\n variants: {\n align: {\n left: sprinkles({\n justifyContent: 'flex-start',\n textAlign: 'left',\n }),\n center: sprinkles({\n justifyContent: 'center',\n textAlign: 'center',\n }),\n right: sprinkles({\n justifyContent: 'flex-end',\n textAlign: 'end',\n }),\n },\n },\n});\n\nexport const rowStateRecipe = recipe({\n variants: {\n state: {\n default: {},\n selected: {\n backgroundColor: vars.colors.primaryLight,\n },\n muted: {\n opacity: 0.72,\n },\n danger: {\n backgroundColor: vars.colors['red-50'],\n },\n },\n },\n});\n\nexport const emptyRow = style({\n padding: fallbackVar(\n tableEmptyRowPaddingVar,\n `${vars.spacing[6]} ${vars.spacing[4]}`,\n ),\n});\n\nexport const emptyCell = sprinkles({\n fontSize: 'base',\n color: 'textSecondary',\n textAlign: 'center',\n});\n\nconst hideBelowMap: Record<DataTableBreakpoint, StyleRule> = {} as Record<\n DataTableBreakpoint,\n StyleRule\n>;\n\nDATA_TABLE_BREAKPOINT_ENTRIES.forEach(([breakpoint, width]) => {\n hideBelowMap[breakpoint] = {\n '@container': {\n [`(max-width: ${width - 0.5}px)`]: {\n visibility: 'hidden',\n opacity: 0,\n pointerEvents: 'none',\n paddingInline: 0,\n paddingBlock: 0,\n borderRight: 'none',\n overflow: 'hidden',\n },\n },\n };\n});\n\nexport const hideBelowRecipe = recipe({\n variants: {\n minVisibleAt: hideBelowMap,\n },\n});\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"DataTable.css.js","names":[],"sources":["../../../../src/components/data-table/DataTable.css.ts"],"sourcesContent":["import {\n style,\n createVar,\n fallbackVar,\n type StyleRule,\n} from '@vanilla-extract/css';\nimport { recipe } from '@vanilla-extract/recipes';\n\nimport { vars } from '../../theme/themeContract.css.js';\n\nimport {\n DATA_TABLE_BREAKPOINT_ENTRIES,\n type DataTableBreakpoint,\n} from './tableBreakpoints.js';\nimport { sprinkles } from '../../theme/sprinkles.css.js';\n\nexport const container = recipe({\n base: sprinkles({\n display: 'flex',\n flexDirection: 'column',\n width: 'full',\n containerType: 'inline-size',\n }),\n variants: {\n kind: {\n default: sprinkles({\n backgroundColor: 'surface',\n borderColor: 'border',\n borderRadius: 'lg',\n borderStyle: 'solid',\n borderWidth: 'default',\n overflowX: 'auto',\n overflowY: 'hidden',\n }),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n borderRadius: 'none',\n borderStyle: 'none',\n borderWidth: 0,\n overflow: 'visible',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const containerWithContainedBody = sprinkles({\n height: 'full',\n minHeight: 0,\n overflow: 'hidden',\n});\n\nexport const header = recipe({\n variants: {\n kind: {\n default: style([\n sprinkles({\n borderWidth: 0,\n borderStyle: 'solid',\n borderBottomWidth: 'default',\n borderBottomColor: 'borderSubtle',\n backgroundColor: 'surfaceMuted',\n }),\n {\n backgroundImage: `linear-gradient(90deg, color-mix(in srgb, ${vars.colors.primaryLight} 55%, transparent), transparent 64%)`,\n },\n ]),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderStyle: 'solid',\n borderBottomWidth: 'default',\n borderBottomColor: 'brandSecondaryOrange-20',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const headerRow = sprinkles({\n display: 'grid',\n width: 'full',\n alignItems: 'stretch',\n});\n\nexport const tableCellPaddingVar = createVar();\nexport const tableCellFontSizeVar = createVar();\nexport const tableEmptyRowPaddingVar = createVar();\nexport const tableRowMinHeightVar = createVar();\n\nexport const densityRecipe = recipe({\n variants: {\n density: {\n compact: {\n vars: {\n [tableCellPaddingVar]: `${vars.spacing[2]} ${vars.spacing[3]}`,\n [tableCellFontSizeVar]: vars.fontSize.sm,\n [tableEmptyRowPaddingVar]: `${vars.spacing[4]} ${vars.spacing[3]}`,\n [tableRowMinHeightVar]: vars.spacing[9],\n },\n },\n default: {\n vars: {\n [tableCellPaddingVar]: `${vars.spacing[3]} ${vars.spacing[4]}`,\n [tableCellFontSizeVar]: vars.fontSize.sm,\n [tableEmptyRowPaddingVar]: `${vars.spacing[6]} ${vars.spacing[4]}`,\n [tableRowMinHeightVar]: vars.spacing[10],\n },\n },\n comfortable: {\n vars: {\n [tableCellPaddingVar]: `${vars.spacing[3]} ${vars.spacing[5]}`,\n [tableCellFontSizeVar]: vars.fontSize.base,\n [tableEmptyRowPaddingVar]: `${vars.spacing[7]} ${vars.spacing[5]}`,\n [tableRowMinHeightVar]: vars.spacing[12],\n },\n },\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport const headerCell = recipe({\n base: sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n gap: 2,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n variants: {\n kind: {\n default: style([\n sprinkles({\n color: 'textSecondary',\n fontWeight: 'semibold',\n letterSpacing: 'capsNarrow',\n textTransform: 'uppercase',\n }),\n {\n padding: fallbackVar(\n tableCellPaddingVar,\n `${vars.spacing[3]} ${vars.spacing[4]}`,\n ),\n fontSize: fallbackVar(tableCellFontSizeVar, vars.fontSize.sm),\n minHeight: fallbackVar(tableRowMinHeightVar, vars.spacing[10]),\n selectors: {\n '&:last-child': {\n borderRight: 'none',\n },\n },\n },\n ]),\n brandTable: sprinkles({\n color: 'black-300',\n fontWeight: 'bold',\n fontSize: 'xs',\n letterSpacing: 'caps',\n textTransform: 'uppercase',\n paddingY: 4,\n paddingX: 0,\n borderRightWidth: 0,\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const body = recipe({\n base: sprinkles({\n display: 'flex',\n flexDirection: 'column',\n }),\n variants: {\n kind: {\n default: {},\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const bodyContained = style([\n sprinkles({\n flex: 1,\n minHeight: 0,\n }),\n {\n overflowY: 'auto',\n scrollbarWidth: 'thin',\n scrollbarColor: `${vars.colors.border} transparent`,\n },\n]);\n\nexport const row = recipe({\n base: sprinkles({\n alignItems: 'stretch',\n borderStyle: 'solid',\n borderWidth: 0,\n display: 'grid',\n transitionProperty: 'colors',\n transitionDuration: 150,\n transitionTimingFunction: 'ease',\n }),\n variants: {\n kind: {\n default: style([\n sprinkles({\n backgroundColor: 'surface',\n borderBottomColor: 'borderLight',\n borderBottomWidth: 'default',\n }),\n {\n selectors: {\n '&:last-child': {\n borderBottomWidth: 0,\n },\n '&:hover': {\n backgroundColor: `color-mix(in srgb, ${vars.colors.surfaceMuted} 84%, ${vars.colors.primaryLight})`,\n },\n },\n },\n ]),\n brandTable: style([\n sprinkles({\n backgroundColor: 'transparent',\n borderBottomColor: 'brandSecondaryOrange-20',\n borderBottomWidth: 'default',\n }),\n {\n selectors: {\n '&:last-child': {\n borderBottomWidth: 0,\n },\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n },\n ]),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const rowEven = recipe({\n variants: {\n kind: {\n default: sprinkles({\n backgroundColor: 'surfaceSecondary',\n }),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const rowOdd = recipe({\n variants: {\n kind: {\n default: sprinkles({\n backgroundColor: 'surface',\n }),\n brandTable: sprinkles({\n backgroundColor: 'transparent',\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const cell = recipe({\n base: sprinkles({\n alignItems: 'center',\n display: 'flex',\n gap: 2,\n minWidth: 0,\n overflow: 'hidden',\n }),\n variants: {\n kind: {\n default: style([\n sprinkles({\n color: 'textSecondary',\n }),\n {\n padding: fallbackVar(\n tableCellPaddingVar,\n `${vars.spacing[3]} ${vars.spacing[4]}`,\n ),\n fontSize: fallbackVar(tableCellFontSizeVar, vars.fontSize.sm),\n minHeight: fallbackVar(tableRowMinHeightVar, vars.spacing[10]),\n selectors: {\n '&:last-child': {\n borderRight: 'none',\n },\n },\n },\n ]),\n brandTable: sprinkles({\n color: 'text',\n fontWeight: 'semibold',\n fontSize: 'sm',\n paddingY: 4,\n paddingX: 0,\n borderRightWidth: 0,\n }),\n },\n },\n defaultVariants: {\n kind: 'default',\n },\n});\n\nexport const primaryCell = sprinkles({\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const primaryHeaderCell = sprinkles({\n color: 'text',\n});\n\nexport const singleLineCell = sprinkles({\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n minWidth: 0,\n});\n\nexport const stickyHeader = style({\n position: 'sticky',\n top: 0,\n zIndex: vars.zIndex[10],\n});\n\nexport const alignRecipe = recipe({\n variants: {\n align: {\n left: sprinkles({\n justifyContent: 'flex-start',\n textAlign: 'left',\n }),\n center: sprinkles({\n justifyContent: 'center',\n textAlign: 'center',\n }),\n right: sprinkles({\n justifyContent: 'flex-end',\n textAlign: 'end',\n }),\n },\n },\n});\n\nexport const rowStateRecipe = recipe({\n variants: {\n state: {\n default: {},\n selected: {\n backgroundColor: vars.colors.primaryLight,\n },\n muted: {\n opacity: 0.72,\n },\n danger: {\n backgroundColor: vars.colors['red-50'],\n },\n },\n },\n});\n\nexport const emptyRow = style({\n padding: fallbackVar(\n tableEmptyRowPaddingVar,\n `${vars.spacing[6]} ${vars.spacing[4]}`,\n ),\n});\n\nexport const emptyCell = sprinkles({\n fontSize: 'base',\n color: 'textSecondary',\n textAlign: 'center',\n});\n\nconst hideBelowMap: Record<DataTableBreakpoint, StyleRule> = {} as Record<\n DataTableBreakpoint,\n StyleRule\n>;\n\nDATA_TABLE_BREAKPOINT_ENTRIES.forEach(([breakpoint, width]) => {\n hideBelowMap[breakpoint] = {\n '@container': {\n [`(max-width: ${width - 0.5}px)`]: {\n visibility: 'hidden',\n opacity: 0,\n pointerEvents: 'none',\n paddingInline: 0,\n paddingBlock: 0,\n borderRight: 'none',\n overflow: 'hidden',\n },\n },\n };\n});\n\nexport const hideBelowRecipe = recipe({\n variants: {\n minVisibleAt: hideBelowMap,\n },\n});\n"],"mappings":""}
|
|
@@ -1,88 +1,154 @@
|
|
|
1
1
|
import { cx as e } from "../../theme/tools.js";
|
|
2
2
|
import { useUiTranslation as t } from "../../i18n/useUiTranslation.js";
|
|
3
|
-
import { alignRecipe as n, body as r, bodyContained as i, cell as a, container as o, containerWithContainedBody as s, densityRecipe as
|
|
4
|
-
import { buildDataTableInlineTemplate as
|
|
5
|
-
import {
|
|
3
|
+
import { alignRecipe as n, body as r, bodyContained as i, cell as a, container as o, containerWithContainedBody as s, densityRecipe as c, emptyRow as l, header as u, headerCell as d, headerRow as f, hideBelowRecipe as p, primaryCell as m, primaryHeaderCell as h, row as g, rowEven as _, rowOdd as v, rowStateRecipe as y, singleLineCell as b, stickyHeader as x } from "./DataTable.css.js";
|
|
4
|
+
import { buildDataTableInlineTemplate as S } from "../../internal/data-table/layout.js";
|
|
5
|
+
import { forwardRef as C } from "react";
|
|
6
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
6
7
|
//#region src/components/data-table/DataTable.tsx
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
8
|
+
var E = (e) => e ?? "default", D = (e) => e ?? "default", O = (e) => e == null ? null : p({ minVisibleAt: e }), k = ({ columnCount: e, gridTemplateClassName: t, gridTemplateColumns: n }) => {
|
|
9
|
+
if (t == null) return S(e, n);
|
|
10
|
+
}, A = ({ density: e, gridTemplateClassName: t }) => {
|
|
11
|
+
let n = [c({ density: D(e) })];
|
|
12
|
+
return t != null && n.push(t), n;
|
|
13
|
+
}, j = C(({ children: n, className: r, kind: i, bodyScrollMode: a = "page", classes: c, ariaLabel: l, ariaLabelledBy: u }, d) => {
|
|
14
|
+
let { t: f } = t(), p;
|
|
15
|
+
u ?? (p = l ?? f("common.table.label"));
|
|
16
|
+
let m = a === "contained", h = null;
|
|
17
|
+
return m && (h = s), /* @__PURE__ */ w("div", {
|
|
18
|
+
ref: d,
|
|
19
|
+
className: e(o({ kind: E(i) }), h, c?.container, r),
|
|
20
|
+
role: "table",
|
|
21
|
+
"aria-label": p,
|
|
22
|
+
"aria-labelledby": u,
|
|
23
|
+
"data-scroll-mode": a,
|
|
24
|
+
children: n
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
j.displayName = "DataTableRoot";
|
|
28
|
+
var M = ({ columns: t, kind: r, density: i, headerBehavior: a, headerClassName: o, gridTemplateClassName: s, gridTemplateColumns: c, classes: l }) => {
|
|
29
|
+
let p = E(r), m = k({
|
|
30
|
+
columnCount: t.length,
|
|
31
|
+
gridTemplateClassName: s,
|
|
32
|
+
gridTemplateColumns: c
|
|
33
|
+
}), g = A({
|
|
34
|
+
density: i,
|
|
35
|
+
gridTemplateClassName: s
|
|
36
|
+
}), _;
|
|
37
|
+
a?.offsetTop != null && (_ = { top: a.offsetTop });
|
|
38
|
+
let v = null;
|
|
39
|
+
return a?.sticky === !0 && (v = x), /* @__PURE__ */ w("div", {
|
|
40
|
+
className: e(u({ kind: p }), v, l?.header, o),
|
|
41
|
+
style: _,
|
|
42
|
+
role: "rowgroup",
|
|
43
|
+
children: /* @__PURE__ */ w("div", {
|
|
44
|
+
className: e(f, l?.headerRow, ...g),
|
|
45
|
+
role: "row",
|
|
46
|
+
style: m,
|
|
47
|
+
children: t.map((t) => {
|
|
48
|
+
let r = [d({ kind: p }), l?.headerCell], i = O(t.minVisibleAt);
|
|
49
|
+
return i != null && r.push(i), t.className != null && r.push(t.className), t.isPrimary && r.push(h, l?.primaryHeaderCell), t.align != null && r.push(n({ align: t.align })), /* @__PURE__ */ w("div", {
|
|
50
|
+
role: "columnheader",
|
|
51
|
+
className: e(...r),
|
|
52
|
+
children: t.header
|
|
53
|
+
}, t.id);
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
}, N = C(({ children: t, className: n, kind: a, bodyScrollMode: o = "page", classes: s }, c) => {
|
|
58
|
+
let l = o === "contained", u = null;
|
|
59
|
+
return l && (u = i), /* @__PURE__ */ w("div", {
|
|
60
|
+
ref: c,
|
|
61
|
+
className: e(r({ kind: E(a) }), u, s?.body, n),
|
|
62
|
+
role: "rowgroup",
|
|
63
|
+
"data-scroll-mode": o,
|
|
64
|
+
children: t
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
N.displayName = "DataTableBody";
|
|
68
|
+
var P = ({ row: t, index: r, columns: i, getRowId: o, kind: s, density: c, rowClassName: l, rowState: u, gridTemplateClassName: d, gridTemplateColumns: f, classes: p, style: h, cellMode: x = "normal" }) => {
|
|
69
|
+
let S = E(s), C = k({
|
|
70
|
+
columnCount: i.length,
|
|
71
|
+
gridTemplateClassName: d,
|
|
72
|
+
gridTemplateColumns: f
|
|
73
|
+
}), T = [g({ kind: S }), p?.row], D = u?.(t, r);
|
|
74
|
+
D != null && T.push(y({ state: D })), r % 2 == 0 ? T.push(_({ kind: S }), p?.rowEven) : T.push(v({ kind: S }), p?.rowOdd), T.push(...A({
|
|
75
|
+
density: c,
|
|
76
|
+
gridTemplateClassName: d
|
|
77
|
+
}));
|
|
78
|
+
let j = l?.(t, r);
|
|
79
|
+
return j != null && T.push(j), /* @__PURE__ */ w("div", {
|
|
24
80
|
role: "row",
|
|
25
|
-
|
|
81
|
+
className: e(...T),
|
|
82
|
+
style: {
|
|
83
|
+
...C,
|
|
84
|
+
...h
|
|
85
|
+
},
|
|
86
|
+
children: i.map((r) => {
|
|
87
|
+
let i = [a({ kind: S }), p?.cell], o = O(r.minVisibleAt);
|
|
88
|
+
return o != null && i.push(o), x === "singleLine" && i.push(b), r.className != null && i.push(r.className), r.isPrimary && i.push(m, p?.primaryCell), r.align != null && i.push(n({ align: r.align })), /* @__PURE__ */ w("div", {
|
|
89
|
+
role: "cell",
|
|
90
|
+
className: e(...i),
|
|
91
|
+
children: r.cell(t)
|
|
92
|
+
}, r.id);
|
|
93
|
+
})
|
|
94
|
+
}, o(t, r));
|
|
95
|
+
}, F = ({ emptyState: n, density: r, classes: i }) => {
|
|
96
|
+
let { t: a } = t(), o = n ?? /* @__PURE__ */ w("div", {
|
|
97
|
+
className: e("ysn84626 txvbqb9w txvbqb19cb txvbqb16fa", i?.emptyCell),
|
|
98
|
+
children: a("common.table.empty")
|
|
99
|
+
});
|
|
100
|
+
return /* @__PURE__ */ w("div", {
|
|
101
|
+
className: e(l, c({ density: D(r) }), i?.emptyRow),
|
|
102
|
+
role: "row",
|
|
103
|
+
children: /* @__PURE__ */ w("div", {
|
|
26
104
|
role: "cell",
|
|
27
|
-
children:
|
|
105
|
+
children: o
|
|
28
106
|
})
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return i != null && r.push(i), t.className != null && r.push(t.className), t.isPrimary && r.push(f, I?.primaryHeaderCell), t.align != null && r.push(n({ align: t.align })), /* @__PURE__ */ b("div", {
|
|
71
|
-
role: "columnheader",
|
|
72
|
-
className: e(...r),
|
|
73
|
-
children: t.header
|
|
74
|
-
}, t.id);
|
|
75
|
-
})
|
|
76
|
-
})
|
|
77
|
-
}), /* @__PURE__ */ x("div", {
|
|
78
|
-
className: e(r({ kind: V }), $, I?.body, D),
|
|
79
|
-
role: "rowgroup",
|
|
80
|
-
"data-scroll-mode": P,
|
|
81
|
-
children: [Z, z]
|
|
107
|
+
});
|
|
108
|
+
}, I = ({ columns: e, rows: t, getRowId: n, emptyState: r, className: i, headerClassName: a, bodyClassName: o, rowClassName: s, gridTemplateClassName: c, gridTemplateColumns: l, kind: u, density: d, headerBehavior: f, bodyScrollMode: p = "page", rowState: m, classes: h, ariaLabel: g, ariaLabelledBy: _, bodyFooterNode: v }) => {
|
|
109
|
+
let y;
|
|
110
|
+
return y = t.length === 0 ? /* @__PURE__ */ w(F, {
|
|
111
|
+
emptyState: r,
|
|
112
|
+
density: d,
|
|
113
|
+
classes: h
|
|
114
|
+
}) : t.map((t, r) => /* @__PURE__ */ w(P, {
|
|
115
|
+
row: t,
|
|
116
|
+
index: r,
|
|
117
|
+
columns: e,
|
|
118
|
+
getRowId: n,
|
|
119
|
+
kind: u,
|
|
120
|
+
density: d,
|
|
121
|
+
rowClassName: s,
|
|
122
|
+
rowState: m,
|
|
123
|
+
gridTemplateClassName: c,
|
|
124
|
+
gridTemplateColumns: l,
|
|
125
|
+
classes: h
|
|
126
|
+
}, n(t, r))), /* @__PURE__ */ T(j, {
|
|
127
|
+
className: i,
|
|
128
|
+
kind: u,
|
|
129
|
+
bodyScrollMode: p,
|
|
130
|
+
classes: h,
|
|
131
|
+
ariaLabel: g,
|
|
132
|
+
ariaLabelledBy: _,
|
|
133
|
+
children: [/* @__PURE__ */ w(M, {
|
|
134
|
+
columns: e,
|
|
135
|
+
kind: u,
|
|
136
|
+
density: d,
|
|
137
|
+
headerBehavior: f,
|
|
138
|
+
headerClassName: a,
|
|
139
|
+
gridTemplateClassName: c,
|
|
140
|
+
gridTemplateColumns: l,
|
|
141
|
+
classes: h
|
|
142
|
+
}), /* @__PURE__ */ T(N, {
|
|
143
|
+
className: o,
|
|
144
|
+
kind: u,
|
|
145
|
+
bodyScrollMode: p,
|
|
146
|
+
classes: h,
|
|
147
|
+
children: [y, v]
|
|
82
148
|
})]
|
|
83
149
|
});
|
|
84
150
|
};
|
|
85
151
|
//#endregion
|
|
86
|
-
export {
|
|
152
|
+
export { I as DataTable, N as DataTableBody, F as DataTableEmptyRow, M as DataTableHeader, j as DataTableRoot, P as DataTableRow };
|
|
87
153
|
|
|
88
154
|
//# sourceMappingURL=DataTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import { type CSSProperties, type JSX, type ReactNode } from 'react';\n\nimport * as styles from './DataTable.css.js';\nimport type { DataTableBreakpoint } from './tableBreakpoints.js';\nimport { buildDataTableInlineTemplate } from '../../internal/data-table/layout.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\nimport type { SlotClasses } from '../../styles/slots.js';\n\nexport type DataTableColumn<Row> = {\n id: string;\n header: JSX.Element | string;\n cell: (row: Row) => JSX.Element | string | null;\n minVisibleAt?: DataTableBreakpoint;\n className?: string;\n isPrimary?: boolean;\n align?: 'left' | 'center' | 'right';\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type GetRowId<Row> = (row: Row, index: number) => string;\n\nexport type DataTableKind = NonNullable<\n Parameters<typeof styles.container>[0]\n>['kind'];\n\nexport type DataTableDensity = NonNullable<\n Parameters<typeof styles.densityRecipe>[0]\n>['density'];\n\nexport type DataTableRowState = NonNullable<\n Parameters<typeof styles.rowStateRecipe>[0]\n>['state'];\n\nexport type DataTableHeaderBehavior = {\n sticky?: boolean;\n offsetTop?: number;\n};\n\nexport type DataTableBodyScrollMode = 'page' | 'contained';\n\ntype DataTableSlot =\n | 'container'\n | 'header'\n | 'headerRow'\n | 'headerCell'\n | 'primaryHeaderCell'\n | 'body'\n | 'row'\n | 'rowEven'\n | 'rowOdd'\n | 'cell'\n | 'primaryCell'\n | 'emptyRow'\n | 'emptyCell';\n\nexport type DataTableProps<Row> = {\n columns: readonly DataTableColumn<Row>[];\n rows: readonly Row[];\n getRowId: GetRowId<Row>;\n emptyState?: JSX.Element;\n className?: string;\n headerClassName?: string;\n bodyClassName?: string;\n rowClassName?: (row: Row, index: number) => string | null | undefined;\n gridTemplateClassName?: string;\n gridTemplateColumns?: string;\n kind?: DataTableKind;\n density?: DataTableDensity;\n headerBehavior?: DataTableHeaderBehavior;\n bodyScrollMode?: DataTableBodyScrollMode;\n rowState?: (row: Row, index: number) => DataTableRowState;\n classes?: SlotClasses<DataTableSlot>;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n bodyFooterNode?: ReactNode;\n};\n\nconst getVisibilityClass = (minVisibleAt?: DataTableBreakpoint) => {\n if (minVisibleAt == null) {\n return null;\n }\n\n return styles.hideBelowRecipe({ minVisibleAt });\n};\n\n/**\n * Generic responsive data table component.\n */\nexport const DataTable = <Row,>({\n columns,\n rows,\n getRowId,\n emptyState,\n className,\n headerClassName,\n bodyClassName,\n rowClassName,\n gridTemplateClassName,\n gridTemplateColumns,\n kind,\n density,\n headerBehavior,\n bodyScrollMode = 'page',\n rowState,\n classes,\n ariaLabel,\n ariaLabelledBy,\n bodyFooterNode,\n}: DataTableProps<Row>): JSX.Element => {\n const { t } = useUiTranslation();\n const resolvedKind: DataTableKind = kind ?? 'default';\n const resolvedAriaLabel = ariaLabel ?? t('common.table.label');\n let tableAriaLabel: string | undefined = resolvedAriaLabel;\n if (ariaLabelledBy != null) {\n tableAriaLabel = undefined;\n }\n const defaultEmptyState = (\n <div className={cx(styles.emptyCell, classes?.emptyCell)}>\n {t('common.table.empty')}\n </div>\n ) as JSX.Element;\n const resolvedEmptyState = emptyState ?? defaultEmptyState;\n const showEmpty = rows.length === 0;\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n\n let inlineTemplateStyle: CSSProperties | undefined;\n if (gridTemplateClassName == null) {\n inlineTemplateStyle = buildDataTableInlineTemplate(\n columns.length,\n gridTemplateColumns,\n );\n }\n let headerStickyClass: string | null = null;\n if (headerBehavior?.sticky === true) {\n headerStickyClass = styles.stickyHeader;\n }\n let headerStyle: CSSProperties | undefined;\n if (headerBehavior?.offsetTop != null) {\n headerStyle = { top: headerBehavior.offsetTop };\n }\n\n const resolvedDensity: DataTableDensity = density ?? 'default';\n const sharedRowClasses: string[] = [\n styles.densityRecipe({ density: resolvedDensity }),\n ];\n if (gridTemplateClassName != null) {\n sharedRowClasses.push(gridTemplateClassName);\n }\n\n let rowsContent: JSX.Element;\n if (showEmpty) {\n rowsContent = (\n <div className={cx(styles.emptyRow, classes?.emptyRow)} role=\"row\">\n <div role=\"cell\">{resolvedEmptyState}</div>\n </div>\n );\n } else {\n rowsContent = (\n <>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const rowClasses = [styles.row({ kind: resolvedKind }), classes?.row];\n const state = rowState?.(row, index);\n if (state != null) {\n rowClasses.push(styles.rowStateRecipe({ state }));\n }\n if (index % 2 === 0) {\n rowClasses.push(\n styles.rowEven({ kind: resolvedKind }),\n classes?.rowEven,\n );\n } else {\n rowClasses.push(\n styles.rowOdd({ kind: resolvedKind }),\n classes?.rowOdd,\n );\n }\n for (const sharedClass of sharedRowClasses) {\n rowClasses.push(sharedClass);\n }\n\n if (rowClassName != null) {\n const customClass = rowClassName(row, index);\n if (customClass != null) {\n rowClasses.push(customClass);\n }\n }\n\n return (\n <div\n key={rowId}\n role=\"row\"\n className={cx(...rowClasses)}\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const cellClasses = [\n styles.cell({ kind: resolvedKind }),\n classes?.cell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n\n if (visibilityClass != null) {\n cellClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n cellClasses.push(column.className);\n }\n if (column.isPrimary) {\n cellClasses.push(styles.primaryCell, classes?.primaryCell);\n }\n if (column.align != null) {\n cellClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n const content = column.cell(row);\n\n return (\n <div\n key={column.id}\n role=\"cell\"\n className={cx(...cellClasses)}\n >\n {content}\n </div>\n );\n })}\n </div>\n );\n })}\n </>\n );\n }\n\n let containedContainerClassName: string | null = null;\n let containedBodyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedContainerClassName = styles.containerWithContainedBody;\n containedBodyClassName = styles.bodyContained;\n }\n\n return (\n <div\n className={cx(\n styles.container({ kind: resolvedKind }),\n containedContainerClassName,\n classes?.container,\n className,\n )}\n role=\"table\"\n aria-label={tableAriaLabel}\n aria-labelledby={ariaLabelledBy}\n data-scroll-mode={bodyScrollMode}\n >\n <div\n className={cx(\n styles.header({ kind: resolvedKind }),\n headerStickyClass,\n classes?.header,\n headerClassName,\n )}\n style={headerStyle}\n role=\"rowgroup\"\n >\n <div\n className={cx(\n styles.headerRow,\n classes?.headerRow,\n ...sharedRowClasses,\n )}\n role=\"row\"\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const headerClasses = [\n styles.headerCell({ kind: resolvedKind }),\n classes?.headerCell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n headerClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n headerClasses.push(column.className);\n }\n if (column.isPrimary) {\n headerClasses.push(\n styles.primaryHeaderCell,\n classes?.primaryHeaderCell,\n );\n }\n if (column.align != null) {\n headerClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n return (\n <div\n key={column.id}\n role=\"columnheader\"\n className={cx(...headerClasses)}\n >\n {column.header}\n </div>\n );\n })}\n </div>\n </div>\n\n <div\n className={cx(\n styles.body({ kind: resolvedKind }),\n containedBodyClassName,\n classes?.body,\n bodyClassName,\n )}\n role=\"rowgroup\"\n data-scroll-mode={bodyScrollMode}\n >\n {rowsContent}\n {bodyFooterNode}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import {\n forwardRef,\n type CSSProperties,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport * as styles from './DataTable.css.js';\nimport type { DataTableBreakpoint } from './tableBreakpoints.js';\nimport { buildDataTableInlineTemplate } from '../../internal/data-table/layout.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\nimport type { SlotClasses } from '../../styles/slots.js';\nimport { cx } from '../../theme/tools.js';\n\nexport type DataTableColumn<Row> = {\n id: string;\n header: JSX.Element | string;\n cell: (row: Row) => JSX.Element | string | null;\n minVisibleAt?: DataTableBreakpoint;\n className?: string;\n isPrimary?: boolean;\n align?: 'left' | 'center' | 'right';\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type GetRowId<Row> = (row: Row, index: number) => string;\n\nexport type DataTableKind = NonNullable<\n Parameters<typeof styles.container>[0]\n>['kind'];\n\nexport type DataTableDensity = NonNullable<\n Parameters<typeof styles.densityRecipe>[0]\n>['density'];\n\nexport type DataTableRowState = NonNullable<\n Parameters<typeof styles.rowStateRecipe>[0]\n>['state'];\n\nexport type DataTableHeaderBehavior = {\n sticky?: boolean;\n offsetTop?: number;\n};\n\nexport type DataTableBodyScrollMode = 'page' | 'contained';\n\nexport type DataTableSlot =\n | 'container'\n | 'header'\n | 'headerRow'\n | 'headerCell'\n | 'primaryHeaderCell'\n | 'body'\n | 'row'\n | 'rowEven'\n | 'rowOdd'\n | 'cell'\n | 'primaryCell'\n | 'emptyRow'\n | 'emptyCell';\n\nexport type DataTableCellMode = 'normal' | 'singleLine';\n\nexport type DataTablePrimitiveLayoutProps = {\n gridTemplateClassName?: string;\n gridTemplateColumns?: string;\n};\n\nexport type DataTableRootProps = {\n children: ReactNode;\n className?: string;\n kind?: DataTableKind;\n bodyScrollMode?: DataTableBodyScrollMode;\n classes?: Pick<SlotClasses<DataTableSlot>, 'container'>;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n};\n\nexport type DataTableHeaderProps<Row> = DataTablePrimitiveLayoutProps & {\n columns: readonly DataTableColumn<Row>[];\n kind?: DataTableKind;\n density?: DataTableDensity;\n headerBehavior?: DataTableHeaderBehavior;\n headerClassName?: string;\n classes?: Pick<\n SlotClasses<DataTableSlot>,\n 'header' | 'headerRow' | 'headerCell' | 'primaryHeaderCell'\n >;\n};\n\nexport type DataTableBodyProps = {\n children: ReactNode;\n className?: string;\n kind?: DataTableKind;\n bodyScrollMode?: DataTableBodyScrollMode;\n classes?: Pick<SlotClasses<DataTableSlot>, 'body'>;\n};\n\nexport type DataTableRowProps<Row> = DataTablePrimitiveLayoutProps & {\n row: Row;\n index: number;\n columns: readonly DataTableColumn<Row>[];\n getRowId: GetRowId<Row>;\n kind?: DataTableKind;\n density?: DataTableDensity;\n rowClassName?: (row: Row, index: number) => string | null | undefined;\n rowState?: (row: Row, index: number) => DataTableRowState;\n classes?: Pick<\n SlotClasses<DataTableSlot>,\n 'row' | 'rowEven' | 'rowOdd' | 'cell' | 'primaryCell'\n >;\n style?: CSSProperties;\n cellMode?: DataTableCellMode;\n};\n\nexport type DataTableEmptyRowProps = {\n emptyState?: JSX.Element;\n density?: DataTableDensity;\n classes?: Pick<SlotClasses<DataTableSlot>, 'emptyRow' | 'emptyCell'>;\n};\n\nexport type DataTableProps<Row> = {\n columns: readonly DataTableColumn<Row>[];\n rows: readonly Row[];\n getRowId: GetRowId<Row>;\n emptyState?: JSX.Element;\n className?: string;\n headerClassName?: string;\n bodyClassName?: string;\n rowClassName?: (row: Row, index: number) => string | null | undefined;\n gridTemplateClassName?: string;\n gridTemplateColumns?: string;\n kind?: DataTableKind;\n density?: DataTableDensity;\n headerBehavior?: DataTableHeaderBehavior;\n bodyScrollMode?: DataTableBodyScrollMode;\n rowState?: (row: Row, index: number) => DataTableRowState;\n classes?: SlotClasses<DataTableSlot>;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n bodyFooterNode?: ReactNode;\n};\n\nconst resolveKind = (kind?: DataTableKind): DataTableKind => {\n return kind ?? 'default';\n};\n\nconst resolveDensity = (density?: DataTableDensity): DataTableDensity => {\n return density ?? 'default';\n};\n\nconst getVisibilityClass = (minVisibleAt?: DataTableBreakpoint) => {\n if (minVisibleAt == null) {\n return null;\n }\n\n return styles.hideBelowRecipe({ minVisibleAt });\n};\n\nconst getInlineTemplateStyle = ({\n columnCount,\n gridTemplateClassName,\n gridTemplateColumns,\n}: DataTablePrimitiveLayoutProps & {\n columnCount: number;\n}): CSSProperties | undefined => {\n if (gridTemplateClassName != null) {\n return undefined;\n }\n return buildDataTableInlineTemplate(columnCount, gridTemplateColumns);\n};\n\nconst getGridRowClasses = ({\n density,\n gridTemplateClassName,\n}: DataTablePrimitiveLayoutProps & {\n density?: DataTableDensity;\n}): string[] => {\n const rowClasses = [\n styles.densityRecipe({ density: resolveDensity(density) }),\n ];\n if (gridTemplateClassName != null) {\n rowClasses.push(gridTemplateClassName);\n }\n return rowClasses;\n};\n\nexport const DataTableRoot = forwardRef<HTMLDivElement, DataTableRootProps>(\n (\n {\n children,\n className,\n kind,\n bodyScrollMode = 'page',\n classes,\n ariaLabel,\n ariaLabelledBy,\n },\n ref,\n ): JSX.Element => {\n const { t } = useUiTranslation();\n let tableAriaLabel: string | undefined;\n if (ariaLabelledBy == null) {\n tableAriaLabel = ariaLabel ?? t('common.table.label');\n }\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n let containedClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedClassName = styles.containerWithContainedBody;\n }\n\n return (\n <div\n ref={ref}\n className={cx(\n styles.container({ kind: resolveKind(kind) }),\n containedClassName,\n classes?.container,\n className,\n )}\n role=\"table\"\n aria-label={tableAriaLabel}\n aria-labelledby={ariaLabelledBy}\n data-scroll-mode={bodyScrollMode}\n >\n {children}\n </div>\n );\n },\n);\n\nDataTableRoot.displayName = 'DataTableRoot';\n\nexport const DataTableHeader = <Row,>({\n columns,\n kind,\n density,\n headerBehavior,\n headerClassName,\n gridTemplateClassName,\n gridTemplateColumns,\n classes,\n}: DataTableHeaderProps<Row>): JSX.Element => {\n const resolvedKind = resolveKind(kind);\n const inlineTemplateStyle = getInlineTemplateStyle({\n columnCount: columns.length,\n gridTemplateClassName,\n gridTemplateColumns,\n });\n const gridRowClasses = getGridRowClasses({\n density,\n gridTemplateClassName,\n });\n let headerStyle: CSSProperties | undefined;\n if (headerBehavior?.offsetTop != null) {\n headerStyle = { top: headerBehavior.offsetTop };\n }\n let stickyHeaderClassName: string | null = null;\n if (headerBehavior?.sticky === true) {\n stickyHeaderClassName = styles.stickyHeader;\n }\n\n return (\n <div\n className={cx(\n styles.header({ kind: resolvedKind }),\n stickyHeaderClassName,\n classes?.header,\n headerClassName,\n )}\n style={headerStyle}\n role=\"rowgroup\"\n >\n <div\n className={cx(styles.headerRow, classes?.headerRow, ...gridRowClasses)}\n role=\"row\"\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const headerClasses = [\n styles.headerCell({ kind: resolvedKind }),\n classes?.headerCell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n headerClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n headerClasses.push(column.className);\n }\n if (column.isPrimary) {\n headerClasses.push(\n styles.primaryHeaderCell,\n classes?.primaryHeaderCell,\n );\n }\n if (column.align != null) {\n headerClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n return (\n <div\n key={column.id}\n role=\"columnheader\"\n className={cx(...headerClasses)}\n >\n {column.header}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport const DataTableBody = forwardRef<HTMLDivElement, DataTableBodyProps>(\n (\n { children, className, kind, bodyScrollMode = 'page', classes },\n ref,\n ): JSX.Element => {\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n let containedClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedClassName = styles.bodyContained;\n }\n\n return (\n <div\n ref={ref}\n className={cx(\n styles.body({ kind: resolveKind(kind) }),\n containedClassName,\n classes?.body,\n className,\n )}\n role=\"rowgroup\"\n data-scroll-mode={bodyScrollMode}\n >\n {children}\n </div>\n );\n },\n);\n\nDataTableBody.displayName = 'DataTableBody';\n\nexport const DataTableRow = <Row,>({\n row,\n index,\n columns,\n getRowId,\n kind,\n density,\n rowClassName,\n rowState,\n gridTemplateClassName,\n gridTemplateColumns,\n classes,\n style,\n cellMode = 'normal',\n}: DataTableRowProps<Row>): JSX.Element => {\n const resolvedKind = resolveKind(kind);\n const inlineTemplateStyle = getInlineTemplateStyle({\n columnCount: columns.length,\n gridTemplateClassName,\n gridTemplateColumns,\n });\n const rowClasses = [styles.row({ kind: resolvedKind }), classes?.row];\n const state = rowState?.(row, index);\n if (state != null) {\n rowClasses.push(styles.rowStateRecipe({ state }));\n }\n if (index % 2 === 0) {\n rowClasses.push(styles.rowEven({ kind: resolvedKind }), classes?.rowEven);\n } else {\n rowClasses.push(styles.rowOdd({ kind: resolvedKind }), classes?.rowOdd);\n }\n rowClasses.push(...getGridRowClasses({ density, gridTemplateClassName }));\n\n const customClass = rowClassName?.(row, index);\n if (customClass != null) {\n rowClasses.push(customClass);\n }\n\n return (\n <div\n key={getRowId(row, index)}\n role=\"row\"\n className={cx(...rowClasses)}\n style={{ ...inlineTemplateStyle, ...style }}\n >\n {columns.map((column) => {\n const cellClasses = [\n styles.cell({ kind: resolvedKind }),\n classes?.cell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n\n if (visibilityClass != null) {\n cellClasses.push(visibilityClass);\n }\n if (cellMode === 'singleLine') {\n cellClasses.push(styles.singleLineCell);\n }\n if (column.className != null) {\n cellClasses.push(column.className);\n }\n if (column.isPrimary) {\n cellClasses.push(styles.primaryCell, classes?.primaryCell);\n }\n if (column.align != null) {\n cellClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n return (\n <div key={column.id} role=\"cell\" className={cx(...cellClasses)}>\n {column.cell(row)}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport const DataTableEmptyRow = ({\n emptyState,\n density,\n classes,\n}: DataTableEmptyRowProps): JSX.Element => {\n const { t } = useUiTranslation();\n const resolvedEmptyState = emptyState ?? (\n <div className={cx(styles.emptyCell, classes?.emptyCell)}>\n {t('common.table.empty')}\n </div>\n );\n\n return (\n <div\n className={cx(\n styles.emptyRow,\n styles.densityRecipe({ density: resolveDensity(density) }),\n classes?.emptyRow,\n )}\n role=\"row\"\n >\n <div role=\"cell\">{resolvedEmptyState}</div>\n </div>\n );\n};\n\n/**\n * Generic responsive data table component.\n */\nexport const DataTable = <Row,>({\n columns,\n rows,\n getRowId,\n emptyState,\n className,\n headerClassName,\n bodyClassName,\n rowClassName,\n gridTemplateClassName,\n gridTemplateColumns,\n kind,\n density,\n headerBehavior,\n bodyScrollMode = 'page',\n rowState,\n classes,\n ariaLabel,\n ariaLabelledBy,\n bodyFooterNode,\n}: DataTableProps<Row>): JSX.Element => {\n let rowsContent: ReactNode;\n if (rows.length === 0) {\n rowsContent = (\n <DataTableEmptyRow\n emptyState={emptyState}\n density={density}\n classes={classes}\n />\n );\n } else {\n rowsContent = rows.map((row, index) => {\n return (\n <DataTableRow\n key={getRowId(row, index)}\n row={row}\n index={index}\n columns={columns}\n getRowId={getRowId}\n kind={kind}\n density={density}\n rowClassName={rowClassName}\n rowState={rowState}\n gridTemplateClassName={gridTemplateClassName}\n gridTemplateColumns={gridTemplateColumns}\n classes={classes}\n />\n );\n });\n }\n\n return (\n <DataTableRoot\n className={className}\n kind={kind}\n bodyScrollMode={bodyScrollMode}\n classes={classes}\n ariaLabel={ariaLabel}\n ariaLabelledBy={ariaLabelledBy}\n >\n <DataTableHeader\n columns={columns}\n kind={kind}\n density={density}\n headerBehavior={headerBehavior}\n headerClassName={headerClassName}\n gridTemplateClassName={gridTemplateClassName}\n gridTemplateColumns={gridTemplateColumns}\n classes={classes}\n />\n <DataTableBody\n className={bodyClassName}\n kind={kind}\n bodyScrollMode={bodyScrollMode}\n classes={classes}\n >\n {rowsContent}\n {bodyFooterNode}\n </DataTableBody>\n </DataTableRoot>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsiveRecordList.js","names":[],"sources":["../../../../src/components/data-table/ResponsiveRecordList.tsx"],"sourcesContent":["import { useEffect, useState, type JSX, type ReactNode } from 'react';\n\nimport {\n DataTable,\n type DataTableColumn,\n type DataTableDensity,\n type DataTableProps,\n} from './DataTable.js';\nimport * as styles from './ResponsiveRecordList.css.js';\nimport { cx } from '../../theme/tools.js';\n\nconst CARDS_MEDIA_QUERY = '(max-width: 767px)';\n\nexport type ResponsiveRecordListMode = 'table' | 'cards' | 'auto';\nexport type ResponsiveRecordListDensity = DataTableDensity;\n\nexport type ResponsiveRecordListColumn<Row> = DataTableColumn<Row> & {\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type ResponsiveRecordListProps<Row> = Omit<\n DataTableProps<Row>,\n 'columns'\n> & {\n columns: readonly ResponsiveRecordListColumn<Row>[];\n mode?: ResponsiveRecordListMode;\n density?: ResponsiveRecordListDensity;\n renderAction?: (row: Row) => ReactNode;\n};\n\nconst renderCellText = <Row,>(\n column: ResponsiveRecordListColumn<Row> | null,\n row: Row,\n): ReactNode => {\n if (column == null) {\n return null;\n }\n return column.cell(row);\n};\n\nconst findColumn = <Row,>(\n columns: readonly ResponsiveRecordListColumn<Row>[],\n role: ResponsiveRecordListColumn<Row>['mobileRole'],\n): ResponsiveRecordListColumn<Row> | null => {\n return (\n columns.find((column) => {\n return column.mobileRole === role;\n }) ?? null\n );\n};\n\nconst isMetaColumn = <Row,>(\n column: ResponsiveRecordListColumn<Row>,\n): boolean => {\n if (column.mobileRole === 'hidden') {\n return false;\n }\n if (column.mobileRole === 'meta') {\n return true;\n }\n if (column.mobileRole != null) {\n return false;\n }\n return column.priority === 'important' || column.priority === 'secondary';\n};\n\nconst useIsCardsViewport = (): boolean => {\n const [matches, setMatches] = useState(() => {\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia(CARDS_MEDIA_QUERY).matches;\n });\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(CARDS_MEDIA_QUERY);\n const handleChange = () => {\n setMatches(mediaQuery.matches);\n };\n\n handleChange();\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, []);\n\n return matches;\n};\n\nexport const ResponsiveRecordList = <Row,>({\n columns,\n rows,\n getRowId,\n mode = 'auto',\n density = 'compact',\n renderAction,\n className,\n bodyScrollMode,\n ...tableProps\n}: ResponsiveRecordListProps<Row>): JSX.Element => {\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n const isCardsViewport = useIsCardsViewport();\n let containedRootClassName: string | null = null;\n let cardsViewportClassName: string | undefined;\n let containedCardsOnlyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedRootClassName = styles.containedRoot;\n cardsViewportClassName = styles.cardsViewport;\n containedCardsOnlyClassName = styles.cardsViewport;\n }\n const titleColumn =\n findColumn(columns, 'title') ??\n columns.find((column) => {\n return column.isPrimary === true || column.priority === 'primary';\n }) ??\n columns[0] ??\n null;\n const subtitleColumn = findColumn(columns, 'subtitle');\n const badgeColumns = columns.filter((column) => {\n return column.mobileRole === 'badge' || column.mobileRole === 'status';\n });\n const metaColumns = columns.filter((column) => {\n return (\n column !== titleColumn &&\n column !== subtitleColumn &&\n isMetaColumn(column)\n );\n });\n\n let cards: JSX.Element = <>{tableProps.emptyState ?? null}</>;\n if (rows.length > 0) {\n cards = (\n <div className={styles.cards}>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const title = renderCellText(titleColumn, row);\n const subtitle = renderCellText(subtitleColumn, row);\n const action = renderAction?.(row);\n let subtitleNode: JSX.Element | null = null;\n if (subtitle != null && subtitle !== '') {\n subtitleNode = (\n <div className={styles.cardSubtitle}>{subtitle}</div>\n );\n }\n let actionNode: JSX.Element | null = null;\n if (action != null) {\n actionNode = <div className={styles.cardActions}>{action}</div>;\n }\n let badgeNode: JSX.Element | null = null;\n if (badgeColumns.length > 0) {\n badgeNode = (\n <div className={styles.cardBadges}>\n {badgeColumns.map((column) => {\n return <span key={column.id}>{column.cell(row)}</span>;\n })}\n </div>\n );\n }\n let metaNode: JSX.Element | null = null;\n if (metaColumns.length > 0) {\n metaNode = (\n <dl className={styles.cardMetaGrid}>\n {metaColumns.map((column) => {\n return (\n <div key={column.id} className={styles.cardMetaItem}>\n <dt className={styles.cardMetaLabel}>{column.header}</dt>\n <dd className={styles.cardMetaValue}>\n {column.cell(row)}\n </dd>\n </div>\n );\n })}\n </dl>\n );\n }\n\n return (\n <article key={rowId} className={styles.card({ density })}>\n <div className={styles.cardHeader}>\n <div className={styles.cardTitleGroup}>\n <div className={styles.cardTitle}>{title}</div>\n {subtitleNode}\n </div>\n {actionNode}\n </div>\n {badgeNode}\n {metaNode}\n </article>\n );\n })}\n </div>\n );\n }\n\n if (mode === 'cards') {\n return (\n <div className={cx(className, containedRootClassName)}>\n <div className={cardsViewportClassName}>\n {cards}\n {tableProps.bodyFooterNode}\n </div>\n </div>\n );\n }\n\n if (mode === 'table') {\n return (\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n className={className}\n density={density}\n bodyScrollMode={bodyScrollMode}\n bodyFooterNode={tableProps.bodyFooterNode}\n />\n );\n }\n\n let tableBodyFooterNode = tableProps.bodyFooterNode;\n let cardsBodyFooterNode: ReactNode = null;\n if (isCardsViewport) {\n tableBodyFooterNode = null;\n cardsBodyFooterNode = tableProps.bodyFooterNode;\n }\n\n return (\n <div className={cx(className, containedRootClassName)}>\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n density={density}\n className={styles.tableOnly}\n bodyScrollMode={bodyScrollMode}\n bodyFooterNode={tableBodyFooterNode}\n />\n <div className={cx(styles.cardsOnly, containedCardsOnlyClassName)}>\n {cards}\n {cardsBodyFooterNode}\n </div>\n </div>\n );\n};\n\nexport default ResponsiveRecordList;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResponsiveRecordList.js","names":[],"sources":["../../../../src/components/data-table/ResponsiveRecordList.tsx"],"sourcesContent":["import { useEffect, useState, type JSX, type ReactNode } from 'react';\n\nimport {\n DataTable,\n type DataTableColumn,\n type DataTableDensity,\n type DataTableProps,\n} from './DataTable.js';\nimport * as styles from './ResponsiveRecordList.css.js';\nimport { cx } from '../../theme/tools.js';\n\nconst CARDS_MEDIA_QUERY = '(max-width: 767px)';\n\nexport type ResponsiveRecordListMode = 'table' | 'cards' | 'auto';\nexport type ResponsiveRecordListDensity = DataTableDensity;\nexport type ResponsiveRecordListColumn<Row> = DataTableColumn<Row>;\n\nexport type ResponsiveRecordListProps<Row> = Omit<\n DataTableProps<Row>,\n 'columns'\n> & {\n columns: readonly ResponsiveRecordListColumn<Row>[];\n mode?: ResponsiveRecordListMode;\n density?: ResponsiveRecordListDensity;\n renderAction?: (row: Row) => ReactNode;\n};\n\nconst renderCellText = <Row,>(\n column: ResponsiveRecordListColumn<Row> | null,\n row: Row,\n): ReactNode => {\n if (column == null) {\n return null;\n }\n return column.cell(row);\n};\n\nconst findColumn = <Row,>(\n columns: readonly ResponsiveRecordListColumn<Row>[],\n role: ResponsiveRecordListColumn<Row>['mobileRole'],\n): ResponsiveRecordListColumn<Row> | null => {\n return (\n columns.find((column) => {\n return column.mobileRole === role;\n }) ?? null\n );\n};\n\nconst isMetaColumn = <Row,>(\n column: ResponsiveRecordListColumn<Row>,\n): boolean => {\n if (column.mobileRole === 'hidden') {\n return false;\n }\n if (column.mobileRole === 'meta') {\n return true;\n }\n if (column.mobileRole != null) {\n return false;\n }\n return column.priority === 'important' || column.priority === 'secondary';\n};\n\nconst useIsCardsViewport = (): boolean => {\n const [matches, setMatches] = useState(() => {\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia(CARDS_MEDIA_QUERY).matches;\n });\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(CARDS_MEDIA_QUERY);\n const handleChange = () => {\n setMatches(mediaQuery.matches);\n };\n\n handleChange();\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, []);\n\n return matches;\n};\n\nexport const ResponsiveRecordList = <Row,>({\n columns,\n rows,\n getRowId,\n mode = 'auto',\n density = 'compact',\n renderAction,\n className,\n bodyScrollMode,\n ...tableProps\n}: ResponsiveRecordListProps<Row>): JSX.Element => {\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n const isCardsViewport = useIsCardsViewport();\n let containedRootClassName: string | null = null;\n let cardsViewportClassName: string | undefined;\n let containedCardsOnlyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedRootClassName = styles.containedRoot;\n cardsViewportClassName = styles.cardsViewport;\n containedCardsOnlyClassName = styles.cardsViewport;\n }\n const titleColumn =\n findColumn(columns, 'title') ??\n columns.find((column) => {\n return column.isPrimary === true || column.priority === 'primary';\n }) ??\n columns[0] ??\n null;\n const subtitleColumn = findColumn(columns, 'subtitle');\n const badgeColumns = columns.filter((column) => {\n return column.mobileRole === 'badge' || column.mobileRole === 'status';\n });\n const metaColumns = columns.filter((column) => {\n return (\n column !== titleColumn &&\n column !== subtitleColumn &&\n isMetaColumn(column)\n );\n });\n\n let cards: JSX.Element = <>{tableProps.emptyState ?? null}</>;\n if (rows.length > 0) {\n cards = (\n <div className={styles.cards}>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const title = renderCellText(titleColumn, row);\n const subtitle = renderCellText(subtitleColumn, row);\n const action = renderAction?.(row);\n let subtitleNode: JSX.Element | null = null;\n if (subtitle != null && subtitle !== '') {\n subtitleNode = (\n <div className={styles.cardSubtitle}>{subtitle}</div>\n );\n }\n let actionNode: JSX.Element | null = null;\n if (action != null) {\n actionNode = <div className={styles.cardActions}>{action}</div>;\n }\n let badgeNode: JSX.Element | null = null;\n if (badgeColumns.length > 0) {\n badgeNode = (\n <div className={styles.cardBadges}>\n {badgeColumns.map((column) => {\n return <span key={column.id}>{column.cell(row)}</span>;\n })}\n </div>\n );\n }\n let metaNode: JSX.Element | null = null;\n if (metaColumns.length > 0) {\n metaNode = (\n <dl className={styles.cardMetaGrid}>\n {metaColumns.map((column) => {\n return (\n <div key={column.id} className={styles.cardMetaItem}>\n <dt className={styles.cardMetaLabel}>{column.header}</dt>\n <dd className={styles.cardMetaValue}>\n {column.cell(row)}\n </dd>\n </div>\n );\n })}\n </dl>\n );\n }\n\n return (\n <article key={rowId} className={styles.card({ density })}>\n <div className={styles.cardHeader}>\n <div className={styles.cardTitleGroup}>\n <div className={styles.cardTitle}>{title}</div>\n {subtitleNode}\n </div>\n {actionNode}\n </div>\n {badgeNode}\n {metaNode}\n </article>\n );\n })}\n </div>\n );\n }\n\n if (mode === 'cards') {\n return (\n <div className={cx(className, containedRootClassName)}>\n <div className={cardsViewportClassName}>\n {cards}\n {tableProps.bodyFooterNode}\n </div>\n </div>\n );\n }\n\n if (mode === 'table') {\n return (\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n className={className}\n density={density}\n bodyScrollMode={bodyScrollMode}\n bodyFooterNode={tableProps.bodyFooterNode}\n />\n );\n }\n\n let tableBodyFooterNode = tableProps.bodyFooterNode;\n let cardsBodyFooterNode: ReactNode = null;\n if (isCardsViewport) {\n tableBodyFooterNode = null;\n cardsBodyFooterNode = tableProps.bodyFooterNode;\n }\n\n return (\n <div className={cx(className, containedRootClassName)}>\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n density={density}\n className={styles.tableOnly}\n bodyScrollMode={bodyScrollMode}\n bodyFooterNode={tableBodyFooterNode}\n />\n <div className={cx(styles.cardsOnly, containedCardsOnlyClassName)}>\n {cards}\n {cardsBodyFooterNode}\n </div>\n </div>\n );\n};\n\nexport default ResponsiveRecordList;\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* empty css */
|
|
2
2
|
/* empty css */
|
|
3
3
|
//#region src/components/data-table/VirtualizedConnectionTable.css.ts
|
|
4
|
-
var e = "_1ifyzte0
|
|
4
|
+
var e = "_1ifyzte0 txvbqb11js", t = "_1ifyzte1 txvbqb17w0", n = "_1ifyzte2 txvbqb17w0 txvbqbhlj";
|
|
5
5
|
//#endregion
|
|
6
|
-
export {
|
|
6
|
+
export { e as bodyViewport, n as sentinel, t as spacer };
|
|
7
7
|
|
|
8
8
|
//# sourceMappingURL=VirtualizedConnectionTable.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedConnectionTable.css.js","names":[],"sources":["../../../../src/components/data-table/VirtualizedConnectionTable.css.ts"],"sourcesContent":["import { sprinkles } from '../../theme/sprinkles.css.js';\n\nexport const
|
|
1
|
+
{"version":3,"file":"VirtualizedConnectionTable.css.js","names":[],"sources":["../../../../src/components/data-table/VirtualizedConnectionTable.css.ts"],"sourcesContent":["import { sprinkles } from '../../theme/sprinkles.css.js';\n\nexport const bodyViewport = sprinkles({\n position: 'relative',\n});\n\nexport const spacer = sprinkles({\n width: 'full',\n});\n\nexport const sentinel = sprinkles({\n width: 'full',\n height: 1,\n});\n"],"mappings":""}
|