@conduction/nextcloud-vue 2.79.0 → 2.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js.map +1 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js +3 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +32 -3
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +13 -11
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +80 -4
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +95 -91
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js +179 -13
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js +52 -16
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +96 -4
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +158 -110
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue.js +10 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue.js.map +1 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue2.js +252 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue3.js +140 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnChipsFieldWidget/index.js +26 -0
- package/dist/esm/components/CnChipsFieldWidget/index.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue.js +10 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue2.js +354 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue3.js +172 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/index.js +27 -0
- package/dist/esm/components/CnChoicePickerWidget/index.js.map +1 -0
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js +2 -2
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +65 -5
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +19 -11
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +4 -2
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +134 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +21 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +24 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +43 -4
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnDocumentReviewList/CnDocumentReviewWidget.vue2.js +1 -1
- package/dist/esm/components/CnDocumentReviewList/CnDocumentReviewWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnDocumentReviewList/CnDocumentReviewWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFacetSidebar/CnFacetSidebar.vue2.js +7 -7
- package/dist/esm/components/CnFacetSidebar/CnFacetSidebar.vue2.js.map +1 -1
- package/dist/esm/components/CnFacetSidebar/CnFacetSidebar.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +11 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +867 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js +238 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/index.js +30 -0
- package/dist/esm/components/CnFactsWidget/index.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +10 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +626 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js +396 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/index.js +29 -0
- package/dist/esm/components/CnFieldListWidget/index.js.map +1 -0
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +302 -4
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +417 -244
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js +101 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowserColumns.js +141 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowserColumns.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +65 -17
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +4 -4
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js +78 -3
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js +74 -49
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +333 -73
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +79 -17
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +10 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js.map +1 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +99 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +48 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -0
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js +7 -7
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
- package/dist/esm/components/CnNextStepCard/CnNextStepWidget.vue2.js +1 -1
- package/dist/esm/components/CnNextStepCard/CnNextStepWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +65 -2
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +6 -2
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +63 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +8 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js +14 -0
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js +5 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js +29 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue.js +10 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue2.js +174 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue3.js +75 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnRadioCardsWidget/index.js +28 -0
- package/dist/esm/components/CnRadioCardsWidget/index.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +10 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +411 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +178 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/index.js +31 -0
- package/dist/esm/components/CnRecordListWidget/index.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue.js +10 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue2.js +222 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue3.js +64 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/index.js +30 -0
- package/dist/esm/components/CnSavedViewsWidget/index.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +10 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +351 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +71 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/index.js +35 -0
- package/dist/esm/components/CnSectionsWidget/index.js.map +1 -0
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue2.js.map +1 -1
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue3.js.map +1 -1
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue.js +10 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue2.js +347 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue3.js +184 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSettingsFormWidget/index.js +27 -0
- package/dist/esm/components/CnSettingsFormWidget/index.js.map +1 -0
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +81 -2
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +87 -6
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +1 -0
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js +84 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js +85 -41
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue.js +10 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue2.js +159 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue3.js +60 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSwitchRowsWidget/index.js +26 -0
- package/dist/esm/components/CnSwitchRowsWidget/index.js.map +1 -0
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +168 -7
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +86 -23
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue2.js +80 -1
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue3.js +75 -32
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js +10 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js.map +1 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js +269 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js +106 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnToggleTableWidget/index.js +27 -0
- package/dist/esm/components/CnToggleTableWidget/index.js.map +1 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +11 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +7 -2
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/dashboardRegistration.js +5 -0
- package/dist/esm/components/CnWidgetObjectTable/dashboardRegistration.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js +301 -6
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js +153 -55
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js.map +1 -1
- package/dist/esm/composables/useFormDraft.js +140 -9
- package/dist/esm/composables/useFormDraft.js.map +1 -1
- package/dist/esm/composables/useListView.js +4 -4
- package/dist/esm/composables/useListView.js.map +1 -1
- package/dist/esm/index.js +21 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +28 -20
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js +9 -0
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection.js +21 -0
- package/dist/esm/integrations/builtin/field-inspection.js.map +1 -1
- package/dist/esm/integrations/offline/checklistSubmission.js +141 -0
- package/dist/esm/integrations/offline/checklistSubmission.js.map +1 -0
- package/dist/esm/integrations/offline/fieldCollectionHelpers.js +70 -5
- package/dist/esm/integrations/offline/fieldCollectionHelpers.js.map +1 -1
- package/dist/esm/integrations/offline/index.js +2 -1
- package/dist/esm/integrations/offline/index.js.map +1 -1
- package/dist/esm/integrations/offline/offlineDb.js +6 -1
- package/dist/esm/integrations/offline/offlineDb.js.map +1 -1
- package/dist/esm/integrations/offline/syncReplayService.js +8 -2
- package/dist/esm/integrations/offline/syncReplayService.js.map +1 -1
- package/dist/esm/l10n/en.json.js +20 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +70 -2
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +2192 -222
- package/dist/esm/utils/contentHeaderLink.js +51 -0
- package/dist/esm/utils/contentHeaderLink.js.map +1 -0
- package/dist/esm/utils/detailActionModel.js +60 -3
- package/dist/esm/utils/detailActionModel.js.map +1 -1
- package/dist/esm/utils/facets.js +75 -3
- package/dist/esm/utils/facets.js.map +1 -1
- package/dist/esm/utils/fetchFilterCounts.js +40 -5
- package/dist/esm/utils/fetchFilterCounts.js.map +1 -1
- package/dist/esm/utils/fillTemplate.js +120 -0
- package/dist/esm/utils/fillTemplate.js.map +1 -0
- package/dist/esm/utils/initials.js +32 -0
- package/dist/esm/utils/initials.js.map +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js +11 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/objectWrite.js +59 -0
- package/dist/esm/utils/objectWrite.js.map +1 -0
- package/dist/esm/utils/pageControls.js +81 -0
- package/dist/esm/utils/pageControls.js.map +1 -0
- package/dist/esm/utils/personalLenses.js +40 -3
- package/dist/esm/utils/personalLenses.js.map +1 -1
- package/dist/esm/utils/queryPresets.js +96 -0
- package/dist/esm/utils/queryPresets.js.map +1 -0
- package/dist/esm/utils/resolveFilterTokens.js +12 -1
- package/dist/esm/utils/resolveFilterTokens.js.map +1 -1
- package/dist/esm/utils/resolveManifestTokens.js +2 -0
- package/dist/esm/utils/resolveManifestTokens.js.map +1 -1
- package/dist/esm/utils/schema.js +21 -0
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/sentinelTokens.js +22 -4
- package/dist/esm/utils/sentinelTokens.js.map +1 -1
- package/dist/esm/utils/userGroupsPeek.js +91 -0
- package/dist/esm/utils/userGroupsPeek.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/visibleWhen.js +57 -5
- package/dist/esm/utils/visibleWhen.js.map +1 -1
- package/dist/esm/utils/widgetDispatch.js +7 -1
- package/dist/esm/utils/widgetDispatch.js.map +1 -1
- package/dist/esm/utils/widgetVisibility.js +4 -57
- package/dist/esm/utils/widgetVisibility.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +19708 -9301
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +2192 -222
- package/l10n/en.json +20 -1
- package/l10n/nl.json +70 -2
- package/package.json +2 -1
- package/scripts/check-docs-mdx.mjs +108 -0
- package/src/components/CnActionButtons/CnActionButtons.vue +2 -0
- package/src/components/CnActionsBar/CnActionsBar.md +4 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +48 -11
- package/src/components/CnAppRoot/CnAppRoot.md +4 -2
- package/src/components/CnAppRoot/CnAppRoot.vue +151 -59
- package/src/components/CnBannerWidget/CnBannerWidget.vue +244 -23
- package/src/components/CnCellRenderer/CnCellRenderer.md +2 -0
- package/src/components/CnCellRenderer/CnCellRenderer.vue +235 -5
- package/src/components/CnChipsFieldWidget/CnChipsFieldWidget.vue +433 -0
- package/src/components/CnChipsFieldWidget/index.js +25 -0
- package/src/components/CnChoicePickerWidget/CnChoicePickerWidget.vue +556 -0
- package/src/components/CnChoicePickerWidget/index.js +26 -0
- package/src/components/CnConversationThread/CnConversationWidget.vue +1 -1
- package/src/components/CnDashboardGrid/CnDashboardGrid.vue +2 -2
- package/src/components/CnDashboardPage/CnDashboardPage.vue +78 -5
- package/src/components/CnDataTable/CnDataTable.vue +22 -12
- package/src/components/CnDetailPage/CnDetailPage.md +1 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +152 -6
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +66 -0
- package/src/components/CnDocumentReviewList/CnDocumentReviewWidget.vue +1 -1
- package/src/components/CnFacetSidebar/CnFacetSidebar.vue +7 -7
- package/src/components/CnFactsWidget/CnFactsWidget.vue +1190 -0
- package/src/components/CnFactsWidget/index.js +29 -0
- package/src/components/CnFieldListWidget/CnFieldListWidget.vue +1008 -0
- package/src/components/CnFieldListWidget/index.js +28 -0
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +588 -117
- package/src/components/CnFilesBrowser/filesBrowser.js +100 -0
- package/src/components/CnFilesBrowser/filesBrowserColumns.js +140 -0
- package/src/components/CnFormDialog/CnFormDialog.md +9 -3
- package/src/components/CnFormDialog/CnFormDialog.vue +69 -21
- package/src/components/CnFormPage/CnFormPage.vue +99 -3
- package/src/components/CnIndexPage/CnIndexPage.vue +309 -9
- package/src/components/CnIndexPage/CnIndexPageWidgets.vue +169 -0
- package/src/components/CnIndexSidebar/CnIndexSidebar.vue +7 -7
- package/src/components/CnNextStepCard/CnNextStepWidget.vue +1 -1
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +69 -2
- package/src/components/CnObjectSidebar/CnFilesTab.vue +70 -1
- package/src/components/CnObjectSidebar/CnNotesTab.vue +16 -0
- package/src/components/CnPageRenderer/CnPageRenderer.vue +29 -1
- package/src/components/CnRadioCardsWidget/CnRadioCardsWidget.vue +313 -0
- package/src/components/CnRadioCardsWidget/index.js +27 -0
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +652 -0
- package/src/components/CnRecordListWidget/index.js +30 -0
- package/src/components/CnSavedViewsWidget/CnSavedViewsWidget.vue +296 -0
- package/src/components/CnSavedViewsWidget/index.js +29 -0
- package/src/components/CnSectionsWidget/CnSectionsWidget.vue +489 -0
- package/src/components/CnSectionsWidget/index.js +34 -0
- package/src/components/CnSegmentedControl/CnSegmentedControl.vue +13 -0
- package/src/components/CnSettingsFormWidget/CnSettingsFormWidget.vue +555 -0
- package/src/components/CnSettingsFormWidget/index.js +26 -0
- package/src/components/CnStagesWidget/CnStagesWidget.vue +81 -2
- package/src/components/CnStatWidget/CnStatWidget.vue +88 -7
- package/src/components/CnStatsBlockWidget/CnStatsBlockWidget.vue +180 -3
- package/src/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue +226 -0
- package/src/components/CnSwitchRowsWidget/index.js +25 -0
- package/src/components/CnTabsWidget/CnTabsWidget.vue +263 -8
- package/src/components/CnTasksWidget/CnTasksWidget.vue +175 -15
- package/src/components/CnToggleTableWidget/CnToggleTableWidget.vue +386 -0
- package/src/components/CnToggleTableWidget/index.js +26 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +11 -0
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +7 -2
- package/src/components/CnWidgetObjectTable/dashboardRegistration.js +5 -0
- package/src/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue +493 -11
- package/src/components/index.js +19 -0
- package/src/composables/__tests__/useFormDraft.spec.js +69 -0
- package/src/composables/useFormDraft.js +139 -8
- package/src/composables/useListView.js +4 -4
- package/src/css/form-field.css +14 -0
- package/src/css/index-page.css +71 -0
- package/src/css/kpi-card.css +32 -0
- package/src/css/look-board-detail.css +113 -2
- package/src/css/look-board-index.css +90 -8
- package/src/css/look-board.css +109 -2
- package/src/css/table.css +19 -0
- package/src/index.js +19 -0
- package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +35 -20
- package/src/integrations/builtin/field-inspection.js +21 -0
- package/src/integrations/offline/checklistSubmission.js +137 -0
- package/src/integrations/offline/fieldCollectionHelpers.js +69 -4
- package/src/integrations/offline/index.js +3 -0
- package/src/integrations/offline/offlineDb.js +6 -1
- package/src/integrations/offline/syncReplayService.js +8 -2
- package/src/schemas/app-manifest-v2.schema.json +196 -13
- package/src/utils/contentHeaderLink.js +48 -0
- package/src/utils/detailActionModel.js +59 -2
- package/src/utils/facets.js +74 -2
- package/src/utils/fetchFilterCounts.js +39 -4
- package/src/utils/fillTemplate.js +116 -0
- package/src/utils/initials.js +29 -0
- package/src/utils/libraryWidgetKeys.js +11 -0
- package/src/utils/objectWrite.js +55 -0
- package/src/utils/pageControls.js +78 -0
- package/src/utils/personalLenses.js +39 -2
- package/src/utils/queryPresets.js +93 -0
- package/src/utils/resolveFilterTokens.js +14 -1
- package/src/utils/resolveManifestTokens.js +2 -0
- package/src/utils/schema.js +21 -0
- package/src/utils/sentinelTokens.js +22 -4
- package/src/utils/userGroupsPeek.js +87 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/visibleWhen.js +56 -4
- package/src/utils/widgetDispatch.js +7 -1
- package/src/utils/widgetVisibility.js +7 -56
|
@@ -79,9 +79,14 @@
|
|
|
79
79
|
* counterpart default to one.
|
|
80
80
|
*/
|
|
81
81
|
.cn-look-board {
|
|
82
|
-
/* Page content area: padding, max width, gap between blocks.
|
|
82
|
+
/* Page content area: padding, max width, gap between blocks. The content
|
|
83
|
+
spans the whole content area (screens-one-scroller-parity): grids grow
|
|
84
|
+
with the window and shrink only when the sidebar takes its share. A
|
|
85
|
+
1240px cap left dead space right of the content, and on a dashboard,
|
|
86
|
+
which scrolled itself, put the scrollbar beside the content instead of
|
|
87
|
+
at the window edge. */
|
|
83
88
|
--cn-board-content-padding: 24px 28px;
|
|
84
|
-
--cn-board-content-max-width:
|
|
89
|
+
--cn-board-content-max-width: none;
|
|
85
90
|
--cn-board-section-gap: 20px;
|
|
86
91
|
/* Buttons and inputs. */
|
|
87
92
|
--cn-board-control-height: 40px;
|
|
@@ -121,6 +126,15 @@
|
|
|
121
126
|
gap: var(--cn-board-section-gap);
|
|
122
127
|
}
|
|
123
128
|
|
|
129
|
+
/* One scroller: the content area. CnDashboardPage scrolls itself
|
|
130
|
+
(`height: 100%; overflow-y: auto`), which nested a second scrollbar inside
|
|
131
|
+
NcAppContent's; under the board look the page grows with its widgets and
|
|
132
|
+
NcAppContent, which already spans to the window edge, scrolls it. */
|
|
133
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) {
|
|
134
|
+
height: auto;
|
|
135
|
+
overflow-y: visible;
|
|
136
|
+
}
|
|
137
|
+
|
|
124
138
|
.cn-look-board .cn-index-page:not(.cn-look-nextcloud *) .cn-page-header,
|
|
125
139
|
.cn-look-board .cn-settings-page:not(.cn-look-nextcloud *) .cn-page-header,
|
|
126
140
|
.cn-look-board .cn-index-page:not(.cn-look-nextcloud *) .cn-index-page__below-header,
|
|
@@ -234,6 +248,27 @@
|
|
|
234
248
|
gap: 2px;
|
|
235
249
|
}
|
|
236
250
|
|
|
251
|
+
/* No scrollbars inside the navigation (screens-one-scroller-parity).
|
|
252
|
+
NcAppNavigation gives the region above the list `overflow-y: scroll`, an
|
|
253
|
+
always-on track (with arrow buttons on classic scrollbars) beside the
|
|
254
|
+
primary action that has nothing to scroll. It takes its content's height
|
|
255
|
+
instead. A menu taller than the window still scrolls (wheel, touch, focus),
|
|
256
|
+
without drawing a bar of its own; the one visible scrollbar is the page's. */
|
|
257
|
+
.cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation__body:not(.app-navigation__body--no-list) {
|
|
258
|
+
flex-shrink: 0;
|
|
259
|
+
overflow: visible;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation__list,
|
|
263
|
+
.cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation__body--no-list {
|
|
264
|
+
scrollbar-width: none;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation__list::-webkit-scrollbar,
|
|
268
|
+
.cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation__body--no-list::-webkit-scrollbar {
|
|
269
|
+
display: none;
|
|
270
|
+
}
|
|
271
|
+
|
|
237
272
|
/* The board's vertical rhythm (AppZijbalk): the primary action 20px from the
|
|
238
273
|
top, the list 20px under it, entries 2px apart. An empty search slot is a
|
|
239
274
|
flex child too and pushed everything 20px down, so it goes. */
|
|
@@ -587,6 +622,78 @@
|
|
|
587
622
|
.cn-look-board .cn-cell-renderer__age:not(.cn-look-nextcloud *) {
|
|
588
623
|
font-weight: 600;
|
|
589
624
|
}
|
|
625
|
+
|
|
626
|
+
/* ---- Record list on a dashboard card (PtDashboard) ---------------------- */
|
|
627
|
+
/* The dashboard's card body is flush, so the rows carry their own inset: the
|
|
628
|
+
board's card pads 24px at the sides and each row 14px, a soft hairline
|
|
629
|
+
between rows, the title 15px weight 600 and the meta 13px muted. A row is a
|
|
630
|
+
link, but only the hover says so: no underline on any text run, however the
|
|
631
|
+
host styles its links (`!important`, because a host rule such as
|
|
632
|
+
`#content a` outranks any class). The pill and the date sit at the right. */
|
|
633
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list {
|
|
634
|
+
padding: 0 24px 10px;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list--rows .cn-record-list__item + .cn-record-list__item {
|
|
638
|
+
border-top: 1px solid var(--color-border-dark, var(--color-border));
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row {
|
|
642
|
+
padding: 14px 0;
|
|
643
|
+
flex-wrap: wrap;
|
|
644
|
+
gap: 8px 16px;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row,
|
|
648
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row:hover,
|
|
649
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row:focus-visible,
|
|
650
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row * {
|
|
651
|
+
color: inherit;
|
|
652
|
+
text-decoration: none !important;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__title {
|
|
656
|
+
color: var(--color-main-text);
|
|
657
|
+
font-size: 15px;
|
|
658
|
+
font-weight: 600;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__meta {
|
|
662
|
+
color: var(--color-text-maxcontrast);
|
|
663
|
+
font-size: 13px;
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__trailing {
|
|
667
|
+
color: var(--color-text-maxcontrast);
|
|
668
|
+
font-size: 13px;
|
|
669
|
+
font-weight: 600;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/* Hover: the whole row takes the hover ground, 8px beyond the text so the
|
|
673
|
+
text does not move. */
|
|
674
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row--link {
|
|
675
|
+
margin-inline: -8px;
|
|
676
|
+
padding-inline: 8px;
|
|
677
|
+
border-radius: 8px;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row--link:hover,
|
|
681
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row--link:focus-visible {
|
|
682
|
+
background: var(--color-background-hover);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__row--link:hover .cn-record-list__title {
|
|
686
|
+
text-decoration: none !important;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__aside {
|
|
690
|
+
margin-inline-start: auto;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
/* The board draws no chevron after the pill and date. */
|
|
694
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-record-list__chevron {
|
|
695
|
+
display: none;
|
|
696
|
+
}
|
|
590
697
|
/*
|
|
591
698
|
* The board dialog (screens-dialog-parity, canon section 5).
|
|
592
699
|
*
|
|
@@ -874,6 +981,20 @@
|
|
|
874
981
|
min-height: var(--cn-field-height);
|
|
875
982
|
}
|
|
876
983
|
|
|
984
|
+
/* NcTextField draws its input inside `.input-field__main-wrapper`, which has a
|
|
985
|
+
FIXED height (`--default-clickable-area`, 34px on Nextcloud 34) and a 2px
|
|
986
|
+
padding ring for the focus outline. The min-height above makes the input
|
|
987
|
+
40px, so without this the input overflowed its wrapper by 6px and the help
|
|
988
|
+
line under it, which starts at the wrapper's bottom edge, sat behind the
|
|
989
|
+
input's lower border. NcSelect grows with its content, which is why only
|
|
990
|
+
plain inputs showed it. The wrapper now takes the field height plus its
|
|
991
|
+
padding ring, so the input fits and the help line starts below it.
|
|
992
|
+
@spec openspec/changes/form-draft-on-change-and-help-text-spacing/specs/form-draft-on-change-and-help-text-spacing/spec.md#requirement-help-text-starts-below-every-input */
|
|
993
|
+
.cn-look-board .cn-form-dialog__field .input-field__main-wrapper,
|
|
994
|
+
.cn-look-board .cn-form-page__field .input-field__main-wrapper {
|
|
995
|
+
height: calc(var(--cn-field-height) + 2 * var(--border-width-input-focused, 2px));
|
|
996
|
+
}
|
|
997
|
+
|
|
877
998
|
.cn-look-board .cn-form-dialog__field textarea,
|
|
878
999
|
.cn-look-board .cn-form-page__field textarea {
|
|
879
1000
|
padding: 10px 12px;
|
|
@@ -1481,7 +1602,8 @@
|
|
|
1481
1602
|
}
|
|
1482
1603
|
|
|
1483
1604
|
/* Filter: a labelled secondary button, 36px, radius 8, with the active count. */
|
|
1484
|
-
.cn-look-board .cn-actions-bar__filter-button.button-vue
|
|
1605
|
+
.cn-look-board .cn-actions-bar__filter-button.button-vue,
|
|
1606
|
+
.cn-look-board .cn-actions-bar__filter-menu .button-vue {
|
|
1485
1607
|
min-height: 36px;
|
|
1486
1608
|
height: 36px;
|
|
1487
1609
|
border-radius: 8px;
|
|
@@ -1533,6 +1655,15 @@
|
|
|
1533
1655
|
color: var(--color-main-text);
|
|
1534
1656
|
}
|
|
1535
1657
|
|
|
1658
|
+
/* A segment the page cannot open: drawn, as the boards do, but faded and inert. */
|
|
1659
|
+
.cn-look-board .cn-actions-bar--board .cn-actions-bar__view-toggle .cn-actions-bar__view-toggle-btn--disabled,
|
|
1660
|
+
.cn-look-board .cn-actions-bar--board .cn-actions-bar__view-toggle .cn-actions-bar__view-toggle-btn--disabled:hover {
|
|
1661
|
+
background: transparent !important;
|
|
1662
|
+
color: var(--color-text-maxcontrast);
|
|
1663
|
+
opacity: 0.5;
|
|
1664
|
+
cursor: not-allowed;
|
|
1665
|
+
}
|
|
1666
|
+
|
|
1536
1667
|
/* The search field: 40px, radius 8, not a pill. */
|
|
1537
1668
|
.cn-look-board .cn-actions-bar--board .cn-actions-bar__search {
|
|
1538
1669
|
flex: 1 1 260px;
|
|
@@ -1680,11 +1811,58 @@
|
|
|
1680
1811
|
border-bottom: 0;
|
|
1681
1812
|
}
|
|
1682
1813
|
|
|
1683
|
-
/* The
|
|
1814
|
+
/* The table fits its card (screens-index-table-fit-parity). Under the auto
|
|
1815
|
+
layout every one-line cell asked for its whole text up to the 22rem cap, so
|
|
1816
|
+
seven text columns made a 1500px table in a 1118px card at a 1440px
|
|
1817
|
+
viewport: the last columns and the row menus sat past the card's edge. The
|
|
1818
|
+
fixed layout shares the card's width: the selection and menu columns keep
|
|
1819
|
+
their own width, the first data column takes 18%, the others split the
|
|
1820
|
+
rest, and a value that does not fit is cut with an ellipsis (its full text
|
|
1821
|
+
stays in the cell's tooltip). A column's own `width` still wins. */
|
|
1822
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table {
|
|
1823
|
+
table-layout: fixed;
|
|
1824
|
+
width: 100%;
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table th.cn-table-head--title {
|
|
1828
|
+
width: 18%;
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1831
|
+
/* The board's data cells sit 12px apart (PqTickets), the first one 18px from
|
|
1832
|
+
the selection column; the selection and menu columns keep 16px. */
|
|
1833
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table th:not(.cn-table-col--checkbox):not(.cn-table-col--actions):not(.cn-table-col--icon),
|
|
1834
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table td:not(.cn-table-col--checkbox):not(.cn-table-col--actions):not(.cn-table-col--icon) {
|
|
1835
|
+
padding-inline: 12px;
|
|
1836
|
+
}
|
|
1837
|
+
|
|
1838
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table th.cn-table-head--title,
|
|
1839
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table td.cn-table-col--title {
|
|
1840
|
+
padding-inline-start: 18px;
|
|
1841
|
+
}
|
|
1842
|
+
|
|
1843
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table td > .cn-cell-renderer {
|
|
1844
|
+
display: block;
|
|
1845
|
+
min-width: 0;
|
|
1846
|
+
overflow: hidden;
|
|
1847
|
+
text-overflow: ellipsis;
|
|
1848
|
+
white-space: nowrap;
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1851
|
+
/* A narrow header cuts its label, not its filter funnel. */
|
|
1852
|
+
.cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table th .cn-table-header__sort:has(~ .cn-table-header__filter) {
|
|
1853
|
+
max-width: calc(100% - 26px);
|
|
1854
|
+
}
|
|
1855
|
+
|
|
1856
|
+
/* The selection column: 18px checkboxes, 28px of content after 16px of padding.
|
|
1857
|
+
The box model is set with `!important` and the widths include the padding:
|
|
1858
|
+
Nextcloud's server.css sets `box-sizing: border-box` on everything under
|
|
1859
|
+
`#content[class*="app-"]`, an id selector no class rule outranks, so a plain
|
|
1860
|
+
`content-box` here was ignored and the cell left 12px for the checkbox (the
|
|
1861
|
+
header's checkbox showed as a stray bracket). */
|
|
1684
1862
|
.cn-look-board .cn-table-container--board .cn-data-table .cn-table-col--checkbox {
|
|
1685
|
-
box-sizing:
|
|
1686
|
-
width:
|
|
1687
|
-
min-width:
|
|
1863
|
+
box-sizing: border-box !important;
|
|
1864
|
+
width: 44px;
|
|
1865
|
+
min-width: 44px;
|
|
1688
1866
|
padding-inline: 16px 0;
|
|
1689
1867
|
text-align: start;
|
|
1690
1868
|
}
|
|
@@ -1732,6 +1910,29 @@
|
|
|
1732
1910
|
font-size: 13px;
|
|
1733
1911
|
}
|
|
1734
1912
|
|
|
1913
|
+
/* An avatar in the title column (PtAccounts): a 32px chip circle, 10px before
|
|
1914
|
+
the name, the e-mail under the name beside it. The name keeps the title's
|
|
1915
|
+
weight and size, and its underline: an inline-flex box is atomic, so the
|
|
1916
|
+
cell's own underline does not reach it. */
|
|
1917
|
+
.cn-look-board .cn-table-container--board .cn-data-table .cn-cell-renderer__avatar {
|
|
1918
|
+
gap: 10px;
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
.cn-look-board .cn-table-container--board .cn-data-table .cn-cell-renderer__avatar-initials {
|
|
1922
|
+
background: var(--color-background-dark);
|
|
1923
|
+
color: var(--color-main-text);
|
|
1924
|
+
font-size: 12px;
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
.cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title .cn-cell-renderer__avatar-name {
|
|
1928
|
+
text-decoration: underline;
|
|
1929
|
+
text-underline-offset: 2px;
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
.cn-look-board .cn-table-container--board.cn-table-container--title-plain .cn-data-table td.cn-table-col--title .cn-cell-renderer__avatar-name {
|
|
1933
|
+
text-decoration: none;
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1735
1936
|
/* A status pill: 3px 10px, radius 12, 13px weight 600. The colours stay the
|
|
1736
1937
|
status colour map's. */
|
|
1737
1938
|
.cn-look-board .cn-table-container--board .cn-data-table .cn-status-badge {
|
|
@@ -1742,10 +1943,12 @@
|
|
|
1742
1943
|
line-height: 1.4;
|
|
1743
1944
|
}
|
|
1744
1945
|
|
|
1745
|
-
/* The row menu column holds one 34px button
|
|
1946
|
+
/* The row menu column holds one 34px button between 16px of padding, so 66px
|
|
1947
|
+
border to border (see the selection column for why the box model is forced). */
|
|
1746
1948
|
.cn-look-board .cn-table-container--board .cn-data-table .cn-table-col--actions {
|
|
1747
|
-
|
|
1748
|
-
|
|
1949
|
+
box-sizing: border-box !important;
|
|
1950
|
+
width: 66px;
|
|
1951
|
+
min-width: 66px;
|
|
1749
1952
|
padding-inline: 16px;
|
|
1750
1953
|
text-align: end;
|
|
1751
1954
|
}
|
|
@@ -2371,6 +2574,25 @@
|
|
|
2371
2574
|
white-space: nowrap;
|
|
2372
2575
|
}
|
|
2373
2576
|
|
|
2577
|
+
/* The secondary line of the growing column ("2026-0004" under a case title)
|
|
2578
|
+
is a line of its own with its own ellipsis. The cell does not wrap, so in
|
|
2579
|
+
the board look, where the secondary line is an inline block (the title
|
|
2580
|
+
underline cannot reach an atomic inline box), it stayed on the title's line
|
|
2581
|
+
and ran out of the tile. A full-width float is a block (computed `display:
|
|
2582
|
+
block`) that always starts under the line before it, and, being out of the
|
|
2583
|
+
flow, the cell's underline does not reach it either. The cell is a table
|
|
2584
|
+
cell, which contains its floats, so the row grows to hold the line.
|
|
2585
|
+
@spec openspec/changes/dashboard-tile-text-fits/specs/dashboard-tile-text-fits/spec.md#requirement-the-secondary-line-of-a-narrow-tables-growing-column-sits-under-the-value */
|
|
2586
|
+
.cn-data-table.cn-data-table--fit td.cn-table-col--grow .cn-table-cell__secondary {
|
|
2587
|
+
float: inline-start;
|
|
2588
|
+
clear: both;
|
|
2589
|
+
box-sizing: border-box;
|
|
2590
|
+
width: 100%;
|
|
2591
|
+
overflow: hidden;
|
|
2592
|
+
text-overflow: ellipsis;
|
|
2593
|
+
white-space: nowrap;
|
|
2594
|
+
}
|
|
2595
|
+
|
|
2374
2596
|
.cn-data-table th {
|
|
2375
2597
|
background: var(--color-background-dark);
|
|
2376
2598
|
font-weight: 500;
|
|
@@ -3569,6 +3791,38 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
3569
3791
|
font-weight: 400;
|
|
3570
3792
|
}
|
|
3571
3793
|
|
|
3794
|
+
/* A caption on a line of its own wraps, up to two lines (DqDashboard: "haalden
|
|
3795
|
+
hun termijn, naar doorlooptijd" runs over two lines in a narrow tile). The
|
|
3796
|
+
one-line rule of `.cn-kpi-card__label` is for a caption BESIDE the number,
|
|
3797
|
+
where a second line would push the tile taller; this line has the width of
|
|
3798
|
+
the tile to itself. The clamp is safe here because the element is a plain
|
|
3799
|
+
span, not a flex row (compare the title note above).
|
|
3800
|
+
@spec openspec/changes/dashboard-tile-text-fits/specs/dashboard-tile-text-fits/spec.md#requirement-a-kpi-tiles-caption-and-board-label-wrap-to-two-lines */
|
|
3801
|
+
.cn-kpi-card--stacked .cn-kpi-card__caption-line {
|
|
3802
|
+
display: -webkit-box;
|
|
3803
|
+
-webkit-box-orient: vertical;
|
|
3804
|
+
-webkit-line-clamp: 2;
|
|
3805
|
+
line-clamp: 2;
|
|
3806
|
+
white-space: normal;
|
|
3807
|
+
overflow-wrap: break-word;
|
|
3808
|
+
}
|
|
3809
|
+
|
|
3810
|
+
/* Board look: the label wraps too, up to two lines, beside its icon badge
|
|
3811
|
+
("Afgehandeld deze maand"). The clamp sits on the label's own span
|
|
3812
|
+
(`cn-kpi-card__title-text`), not on the title row, which stays the flex row
|
|
3813
|
+
that carries the badge or the range select. */
|
|
3814
|
+
.cn-kpi-card--board .cn-kpi-card__title-text {
|
|
3815
|
+
flex: 1 1 auto;
|
|
3816
|
+
min-width: 0;
|
|
3817
|
+
display: -webkit-box;
|
|
3818
|
+
-webkit-box-orient: vertical;
|
|
3819
|
+
-webkit-line-clamp: 2;
|
|
3820
|
+
line-clamp: 2;
|
|
3821
|
+
overflow: hidden;
|
|
3822
|
+
white-space: normal;
|
|
3823
|
+
overflow-wrap: break-word;
|
|
3824
|
+
}
|
|
3825
|
+
|
|
3572
3826
|
/* The 18px glyph before the label, drawn only on a link tile. */
|
|
3573
3827
|
.cn-kpi-card--board .cn-kpi-card__title {
|
|
3574
3828
|
display: flex;
|
|
@@ -4861,6 +5115,77 @@ a.cn-kpi-card--board * {
|
|
|
4861
5115
|
color: var(--color-text-maxcontrast);
|
|
4862
5116
|
font-size: 0.9em;
|
|
4863
5117
|
}
|
|
5118
|
+
|
|
5119
|
+
/* An index page with cards beside its list (`sidePanel`,
|
|
5120
|
+
screens-index-stat-row): the header rows span the page, the toolbar and the
|
|
5121
|
+
list take the first column and the side panel the second (300px, 20px
|
|
5122
|
+
apart), spanning both. Every other child (dialogs, the inline sidebar) sits
|
|
5123
|
+
in a zero-height area after them. The list row is the flexible one, so a
|
|
5124
|
+
side panel taller than the toolbar never opens a gap under the toolbar.
|
|
5125
|
+
Below 1024px the panel moves above the toolbar. */
|
|
5126
|
+
.cn-index-page--with-side-panel {
|
|
5127
|
+
display: grid;
|
|
5128
|
+
grid-template-columns: minmax(0, 1fr) var(--cn-index-side-panel-width, 300px);
|
|
5129
|
+
grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
|
|
5130
|
+
grid-template-areas:
|
|
5131
|
+
"head head"
|
|
5132
|
+
"below below"
|
|
5133
|
+
"stats stats"
|
|
5134
|
+
"bar side"
|
|
5135
|
+
"body side"
|
|
5136
|
+
"extra extra";
|
|
5137
|
+
column-gap: 20px;
|
|
5138
|
+
align-content: start;
|
|
5139
|
+
}
|
|
5140
|
+
|
|
5141
|
+
.cn-index-page--with-side-panel > * {
|
|
5142
|
+
grid-area: extra;
|
|
5143
|
+
min-width: 0;
|
|
5144
|
+
}
|
|
5145
|
+
|
|
5146
|
+
.cn-index-page--with-side-panel > :first-child {
|
|
5147
|
+
grid-area: head;
|
|
5148
|
+
}
|
|
5149
|
+
|
|
5150
|
+
.cn-index-page--with-side-panel > .cn-index-page__below-header {
|
|
5151
|
+
grid-area: below;
|
|
5152
|
+
}
|
|
5153
|
+
|
|
5154
|
+
.cn-index-page--with-side-panel > .cn-index-page__stat-row {
|
|
5155
|
+
grid-area: stats;
|
|
5156
|
+
}
|
|
5157
|
+
|
|
5158
|
+
.cn-index-page--with-side-panel > .cn-actions-bar {
|
|
5159
|
+
grid-area: bar;
|
|
5160
|
+
}
|
|
5161
|
+
|
|
5162
|
+
.cn-index-page--with-side-panel > .cn-index-page__body {
|
|
5163
|
+
grid-area: body;
|
|
5164
|
+
}
|
|
5165
|
+
|
|
5166
|
+
.cn-index-page--with-side-panel > .cn-index-page__side-panel {
|
|
5167
|
+
grid-area: side;
|
|
5168
|
+
align-self: start;
|
|
5169
|
+
}
|
|
5170
|
+
|
|
5171
|
+
@media (max-width: 1024px) {
|
|
5172
|
+
.cn-index-page--with-side-panel {
|
|
5173
|
+
grid-template-columns: minmax(0, 1fr);
|
|
5174
|
+
grid-template-areas:
|
|
5175
|
+
"head"
|
|
5176
|
+
"below"
|
|
5177
|
+
"stats"
|
|
5178
|
+
"side"
|
|
5179
|
+
"bar"
|
|
5180
|
+
"body"
|
|
5181
|
+
"extra";
|
|
5182
|
+
grid-template-rows: auto auto auto auto auto minmax(0, 1fr) auto;
|
|
5183
|
+
}
|
|
5184
|
+
|
|
5185
|
+
.cn-index-page--with-side-panel > .cn-index-page__side-panel {
|
|
5186
|
+
margin-bottom: 20px;
|
|
5187
|
+
}
|
|
5188
|
+
}
|
|
4864
5189
|
/* CnIndexSidebar — NcAppSidebar wrapper styles */
|
|
4865
5190
|
|
|
4866
5191
|
/* Tab content: limit height to container so overflow shows a scrollbar */
|
|
@@ -5859,6 +6184,61 @@ a.cn-kpi-card--board * {
|
|
|
5859
6184
|
margin-bottom: 0;
|
|
5860
6185
|
}
|
|
5861
6186
|
|
|
6187
|
+
/* The breadcrumb is a line of 14px text between the pills and the meta, as
|
|
6188
|
+
the boards draw it (screens-detail-header-row-parity). NcBreadcrumbs grows to
|
|
6189
|
+
the full row and draws each crumb as a 34px tertiary button, which pushed the
|
|
6190
|
+
pills above it and the meta under it. The doubled class outranks its scoped
|
|
6191
|
+
rules. */
|
|
6192
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs.cn-detail-page__breadcrumbs {
|
|
6193
|
+
flex: 0 1 auto;
|
|
6194
|
+
height: auto;
|
|
6195
|
+
min-height: 0;
|
|
6196
|
+
min-width: 0;
|
|
6197
|
+
width: auto;
|
|
6198
|
+
}
|
|
6199
|
+
|
|
6200
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs .breadcrumb__crumbs {
|
|
6201
|
+
gap: 8px;
|
|
6202
|
+
margin: 0;
|
|
6203
|
+
min-height: 0;
|
|
6204
|
+
padding: 0;
|
|
6205
|
+
vertical-align: middle;
|
|
6206
|
+
}
|
|
6207
|
+
|
|
6208
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs .vue-crumb.vue-crumb {
|
|
6209
|
+
gap: 8px;
|
|
6210
|
+
height: auto;
|
|
6211
|
+
min-height: 0;
|
|
6212
|
+
min-width: 0;
|
|
6213
|
+
}
|
|
6214
|
+
|
|
6215
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs .vue-crumb .button-vue.button-vue {
|
|
6216
|
+
background: transparent;
|
|
6217
|
+
border: 0;
|
|
6218
|
+
font-size: 14px;
|
|
6219
|
+
font-weight: 400;
|
|
6220
|
+
height: auto;
|
|
6221
|
+
min-height: 0;
|
|
6222
|
+
min-width: 0;
|
|
6223
|
+
padding: 0;
|
|
6224
|
+
}
|
|
6225
|
+
|
|
6226
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs .vue-crumb .button-vue__text {
|
|
6227
|
+
font-weight: inherit;
|
|
6228
|
+
line-height: 20px;
|
|
6229
|
+
padding: 0;
|
|
6230
|
+
}
|
|
6231
|
+
|
|
6232
|
+
/* The list is the link; the record's own crumb is plain muted text. */
|
|
6233
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs .vue-crumb .button-vue[aria-current='page'] {
|
|
6234
|
+
color: var(--color-text-maxcontrast);
|
|
6235
|
+
cursor: default;
|
|
6236
|
+
}
|
|
6237
|
+
|
|
6238
|
+
.cn-look-board .cn-detail-page__header-row2 .cn-detail-page__breadcrumbs .vue-crumb__separator {
|
|
6239
|
+
margin: 0;
|
|
6240
|
+
}
|
|
6241
|
+
|
|
5862
6242
|
.cn-look-board .cn-detail-page__header-dot,
|
|
5863
6243
|
.cn-look-board .cn-detail-page__header-meta {
|
|
5864
6244
|
color: var(--color-text-maxcontrast);
|
|
@@ -5919,6 +6299,15 @@ a.cn-kpi-card--board * {
|
|
|
5919
6299
|
gap: 4px;
|
|
5920
6300
|
}
|
|
5921
6301
|
|
|
6302
|
+
/* No inner scroller: tabs that do not fit the width wrap onto a second row
|
|
6303
|
+
instead of scrolling sideways (the library's default strip), so the strip
|
|
6304
|
+
has no scrollbar, no clipped tab and no fade or chevron to find the rest. */
|
|
6305
|
+
.cn-look-board .cn-tabs--board .cn-tabs__nav {
|
|
6306
|
+
flex-wrap: wrap;
|
|
6307
|
+
overflow: visible;
|
|
6308
|
+
row-gap: 4px;
|
|
6309
|
+
}
|
|
6310
|
+
|
|
5922
6311
|
.cn-look-board .cn-tabs--board .cn-tabs__nav-item {
|
|
5923
6312
|
background-color: var(--color-background-dark);
|
|
5924
6313
|
border: 1px solid var(--color-border-dark);
|
|
@@ -6001,6 +6390,22 @@ a.cn-kpi-card--board * {
|
|
|
6001
6390
|
border-radius: 0;
|
|
6002
6391
|
}
|
|
6003
6392
|
|
|
6393
|
+
/* A tab that holds a stack (`widgetIds`, screens-relation-pages): the panel
|
|
6394
|
+
draws no frame and no padding; each widget is its own card. The first card
|
|
6395
|
+
joins the open tab (the first-card rule above), the next ones stand 20px
|
|
6396
|
+
apart, as the Overzicht of DqContact and PqOrganisatie draws them. */
|
|
6397
|
+
.cn-look-board .cn-tabs--board.cn-tabs-widget__tabs .cn-tabs__content:has(> .cn-tab:not([hidden]) > .cn-tabs-widget__stack) {
|
|
6398
|
+
background: transparent;
|
|
6399
|
+
border: 0;
|
|
6400
|
+
border-radius: 0;
|
|
6401
|
+
padding: 0;
|
|
6402
|
+
}
|
|
6403
|
+
|
|
6404
|
+
/* The stack's next cards are whole cards, not joined to the strip. */
|
|
6405
|
+
.cn-look-board .cn-tabs--board .cn-tabs__content .cn-tab .cn-tabs-widget__stack-item .cn-widget-wrapper {
|
|
6406
|
+
border-radius: var(--cn-board-card-radius);
|
|
6407
|
+
}
|
|
6408
|
+
|
|
6004
6409
|
/* ---- Body cards and side cards ----------------------------------------- */
|
|
6005
6410
|
|
|
6006
6411
|
.cn-look-board .cn-detail-page .cn-widget-wrapper,
|
|
@@ -6048,12 +6453,28 @@ a.cn-kpi-card--board * {
|
|
|
6048
6453
|
padding: 0 0 10px;
|
|
6049
6454
|
}
|
|
6050
6455
|
|
|
6051
|
-
|
|
6052
|
-
|
|
6456
|
+
/* Outranks the component's own `.cn-object-data-widget__label[data-v-...]`
|
|
6457
|
+
(weight 500, 0.85em, which has the same specificity as the look's rule and
|
|
6458
|
+
wins on source order wherever a bundle, such as a companion app's, loads
|
|
6459
|
+
after this stylesheet), through the grid the labels sit in. Measured live:
|
|
6460
|
+
the labels read bold and dark where the boards (DqContact, PqKlant, ShKlant)
|
|
6461
|
+
draw them 13px, regular weight and light grey.
|
|
6462
|
+
|
|
6463
|
+
The colour carries `!important`: a theme (nldesign's element overrides) sets
|
|
6464
|
+
the ink of every `div` outside the header with a selector that has an id in
|
|
6465
|
+
its `:not()`, which no class rule outranks. */
|
|
6466
|
+
.cn-look-board .cn-object-data-widget__grid .cn-object-data-widget__label {
|
|
6467
|
+
color: var(--color-text-maxcontrast) !important;
|
|
6053
6468
|
font-size: 13px;
|
|
6054
6469
|
font-weight: 400;
|
|
6055
6470
|
}
|
|
6056
6471
|
|
|
6472
|
+
/* The facts card's labels: the same light grey, regular weight. */
|
|
6473
|
+
.cn-look-board .cn-facts-widget .cn-facts-widget__label {
|
|
6474
|
+
color: var(--color-text-maxcontrast);
|
|
6475
|
+
font-weight: 400;
|
|
6476
|
+
}
|
|
6477
|
+
|
|
6057
6478
|
.cn-look-board .cn-object-data-widget__value {
|
|
6058
6479
|
font-weight: 500;
|
|
6059
6480
|
}
|
|
@@ -6080,6 +6501,12 @@ a.cn-kpi-card--board * {
|
|
|
6080
6501
|
display: none;
|
|
6081
6502
|
}
|
|
6082
6503
|
|
|
6504
|
+
/* A side card whose widget reports a header action (screens-relation-pages:
|
|
6505
|
+
the "+ Toevoegen" of Contactkanalen and Relaties) keeps that one button. */
|
|
6506
|
+
.cn-look-board .cn-detail-page__side .cn-widget-wrapper__actions:has(.cn-detail-page__catalog-action) {
|
|
6507
|
+
display: flex;
|
|
6508
|
+
}
|
|
6509
|
+
|
|
6083
6510
|
/* The notice at the top of the side column: radius 12, padding 14px 16px. */
|
|
6084
6511
|
.cn-look-board .cn-detail-page__side-item--notice .cn-widget-wrapper,
|
|
6085
6512
|
.cn-look-board .cn-detail-page__side-item--notice .cn-banner-widget,
|
|
@@ -6305,6 +6732,15 @@ a.cn-kpi-card--board * {
|
|
|
6305
6732
|
font-size: 13px;
|
|
6306
6733
|
margin: 2px 0 0;
|
|
6307
6734
|
}
|
|
6735
|
+
|
|
6736
|
+
/* The sidebar's own open toggle (NcAppSidebar's `.app-sidebar__toggle`, drawn
|
|
6737
|
+
when the sidebar is closed) is positioned over the content's top-right
|
|
6738
|
+
corner, which in this look is the header's last button: a stray square icon
|
|
6739
|
+
on "More". The board draws none, so it is hidden on a detail page and the
|
|
6740
|
+
header menu offers "Open sidebar" instead. */
|
|
6741
|
+
.cn-look-board:has(.cn-detail-page) > .app-sidebar__toggle {
|
|
6742
|
+
display: none;
|
|
6743
|
+
}
|
|
6308
6744
|
/* CnReferencePreview — a reference that shows what it points at. */
|
|
6309
6745
|
|
|
6310
6746
|
.cn-reference-preview {
|
|
@@ -9427,11 +9863,31 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9427
9863
|
font-weight: 700;
|
|
9428
9864
|
line-height: 1;
|
|
9429
9865
|
}
|
|
9866
|
+
.cn-cell-renderer__avatar-text[data-v-37d7b88f] {
|
|
9867
|
+
display: flex;
|
|
9868
|
+
flex-direction: column;
|
|
9869
|
+
min-width: 0;
|
|
9870
|
+
}
|
|
9430
9871
|
.cn-cell-renderer__avatar-name[data-v-37d7b88f] {
|
|
9431
9872
|
min-width: 0;
|
|
9432
9873
|
overflow: hidden;
|
|
9433
9874
|
text-overflow: ellipsis;
|
|
9434
9875
|
white-space: nowrap;
|
|
9876
|
+
/* The name is the cell's text: it keeps the weight, size and colour the
|
|
9877
|
+
cell sets, as a plain value does. */
|
|
9878
|
+
font: inherit;
|
|
9879
|
+
color: inherit;
|
|
9880
|
+
}
|
|
9881
|
+
.cn-cell-renderer__avatar-secondary[data-v-37d7b88f] {
|
|
9882
|
+
min-width: 0;
|
|
9883
|
+
overflow: hidden;
|
|
9884
|
+
color: var(--color-text-maxcontrast);
|
|
9885
|
+
font-size: 13px;
|
|
9886
|
+
font-weight: 400;
|
|
9887
|
+
line-height: 1.35;
|
|
9888
|
+
text-overflow: ellipsis;
|
|
9889
|
+
text-decoration: none;
|
|
9890
|
+
white-space: nowrap;
|
|
9435
9891
|
}
|
|
9436
9892
|
|
|
9437
9893
|
/* A date that matched a rule is also set in a heavier weight, so the signal
|
|
@@ -9447,6 +9903,77 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9447
9903
|
.cn-cell-renderer__age[data-v-37d7b88f] {
|
|
9448
9904
|
white-space: nowrap;
|
|
9449
9905
|
}
|
|
9906
|
+
|
|
9907
|
+
/* The progress cell (abstract-progress-cell): a 56 x 8 bar, the percentage
|
|
9908
|
+
8px beside it in the bar's tone, and an optional age badge after them, as
|
|
9909
|
+
PqLeads' Winkans column. The value is bold, so the tone is not the only signal. */
|
|
9910
|
+
.cn-cell-renderer__progress[data-v-37d7b88f] {
|
|
9911
|
+
display: inline-flex;
|
|
9912
|
+
flex-wrap: wrap;
|
|
9913
|
+
align-items: center;
|
|
9914
|
+
gap: 4px 8px;
|
|
9915
|
+
}
|
|
9916
|
+
.cn-cell-renderer__progress-line[data-v-37d7b88f] {
|
|
9917
|
+
display: inline-flex;
|
|
9918
|
+
align-items: center;
|
|
9919
|
+
gap: 8px;
|
|
9920
|
+
white-space: nowrap;
|
|
9921
|
+
}
|
|
9922
|
+
.cn-cell-renderer__progress-bar[data-v-37d7b88f] {
|
|
9923
|
+
display: inline-block;
|
|
9924
|
+
width: 56px;
|
|
9925
|
+
height: 8px;
|
|
9926
|
+
border-radius: 4px;
|
|
9927
|
+
background: var(--color-background-dark);
|
|
9928
|
+
overflow: hidden;
|
|
9929
|
+
}
|
|
9930
|
+
.cn-cell-renderer__progress-fill[data-v-37d7b88f] {
|
|
9931
|
+
display: block;
|
|
9932
|
+
height: 100%;
|
|
9933
|
+
}
|
|
9934
|
+
.cn-cell-renderer__progress-fill--success[data-v-37d7b88f] {
|
|
9935
|
+
background: var(--color-element-success, var(--color-success));
|
|
9936
|
+
}
|
|
9937
|
+
.cn-cell-renderer__progress-fill--warning[data-v-37d7b88f] {
|
|
9938
|
+
background: var(--color-element-warning, var(--color-warning));
|
|
9939
|
+
}
|
|
9940
|
+
.cn-cell-renderer__progress-fill--error[data-v-37d7b88f] {
|
|
9941
|
+
background: var(--color-element-error, var(--color-error));
|
|
9942
|
+
}
|
|
9943
|
+
.cn-cell-renderer__progress-value[data-v-37d7b88f] {
|
|
9944
|
+
font-size: 14px;
|
|
9945
|
+
font-weight: 700;
|
|
9946
|
+
}
|
|
9947
|
+
.cn-cell-renderer__progress-value--success[data-v-37d7b88f] {
|
|
9948
|
+
color: var(--color-text-success, var(--color-success-text));
|
|
9949
|
+
}
|
|
9950
|
+
.cn-cell-renderer__progress-value--warning[data-v-37d7b88f] {
|
|
9951
|
+
color: var(--color-text-warning, var(--color-warning-text));
|
|
9952
|
+
}
|
|
9953
|
+
.cn-cell-renderer__progress-value--error[data-v-37d7b88f] {
|
|
9954
|
+
color: var(--color-text-error, var(--color-error-text));
|
|
9955
|
+
}
|
|
9956
|
+
.cn-cell-renderer__progress-badge[data-v-37d7b88f] {
|
|
9957
|
+
display: inline-block;
|
|
9958
|
+
padding: 3px 10px;
|
|
9959
|
+
border-radius: 12px;
|
|
9960
|
+
font-size: 13px;
|
|
9961
|
+
font-weight: 600;
|
|
9962
|
+
white-space: nowrap;
|
|
9963
|
+
}
|
|
9964
|
+
.cn-cell-renderer__progress-badge--error[data-v-37d7b88f] {
|
|
9965
|
+
color: var(--color-text-error, var(--color-error-text));
|
|
9966
|
+
background: var(--color-error-hover, var(--color-background-dark));
|
|
9967
|
+
background: color-mix(in srgb, var(--color-error) 12%, transparent);
|
|
9968
|
+
}
|
|
9969
|
+
.cn-cell-renderer__progress-badge--warning[data-v-37d7b88f] {
|
|
9970
|
+
color: var(--color-text-warning, var(--color-warning-text));
|
|
9971
|
+
background: color-mix(in srgb, var(--color-warning) 14%, transparent);
|
|
9972
|
+
}
|
|
9973
|
+
.cn-cell-renderer__progress-badge--success[data-v-37d7b88f] {
|
|
9974
|
+
color: var(--color-text-success, var(--color-success-text));
|
|
9975
|
+
background: color-mix(in srgb, var(--color-success) 12%, transparent);
|
|
9976
|
+
}
|
|
9450
9977
|
.cn-cell-renderer__age--success[data-v-37d7b88f] {
|
|
9451
9978
|
color: var(--color-text-success, var(--color-success-text));
|
|
9452
9979
|
}
|
|
@@ -9779,6 +10306,25 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9779
10306
|
white-space: nowrap;
|
|
9780
10307
|
}
|
|
9781
10308
|
|
|
10309
|
+
/* The secondary line of the growing column ("2026-0004" under a case title)
|
|
10310
|
+
is a line of its own with its own ellipsis. The cell does not wrap, so in
|
|
10311
|
+
the board look, where the secondary line is an inline block (the title
|
|
10312
|
+
underline cannot reach an atomic inline box), it stayed on the title's line
|
|
10313
|
+
and ran out of the tile. A full-width float is a block (computed `display:
|
|
10314
|
+
block`) that always starts under the line before it, and, being out of the
|
|
10315
|
+
flow, the cell's underline does not reach it either. The cell is a table
|
|
10316
|
+
cell, which contains its floats, so the row grows to hold the line.
|
|
10317
|
+
@spec openspec/changes/dashboard-tile-text-fits/specs/dashboard-tile-text-fits/spec.md#requirement-the-secondary-line-of-a-narrow-tables-growing-column-sits-under-the-value */
|
|
10318
|
+
.cn-data-table.cn-data-table--fit td.cn-table-col--grow .cn-table-cell__secondary {
|
|
10319
|
+
float: inline-start;
|
|
10320
|
+
clear: both;
|
|
10321
|
+
box-sizing: border-box;
|
|
10322
|
+
width: 100%;
|
|
10323
|
+
overflow: hidden;
|
|
10324
|
+
text-overflow: ellipsis;
|
|
10325
|
+
white-space: nowrap;
|
|
10326
|
+
}
|
|
10327
|
+
|
|
9782
10328
|
.cn-data-table th {
|
|
9783
10329
|
background: var(--color-background-dark);
|
|
9784
10330
|
font-weight: 500;
|
|
@@ -14884,6 +15430,70 @@ button.cn-files-card__open[data-v-46f7e3c9]:hover {
|
|
|
14884
15430
|
white-space: nowrap;
|
|
14885
15431
|
color: var(--color-text-maxcontrast);
|
|
14886
15432
|
}
|
|
15433
|
+
.cn-files-browser__col-select[data-v-f5bdd9e2] {
|
|
15434
|
+
width: 36px;
|
|
15435
|
+
text-align: center;
|
|
15436
|
+
}
|
|
15437
|
+
.cn-files-browser__select[data-v-f5bdd9e2] {
|
|
15438
|
+
width: 18px;
|
|
15439
|
+
height: 18px;
|
|
15440
|
+
margin: 0;
|
|
15441
|
+
accent-color: var(--color-primary-element);
|
|
15442
|
+
}
|
|
15443
|
+
.cn-files-browser__bulk-bar[data-v-f5bdd9e2] {
|
|
15444
|
+
display: flex;
|
|
15445
|
+
flex-wrap: wrap;
|
|
15446
|
+
align-items: center;
|
|
15447
|
+
gap: 8px;
|
|
15448
|
+
padding: 8px 12px;
|
|
15449
|
+
border-radius: var(--border-radius-large);
|
|
15450
|
+
background: var(--color-primary-element-light);
|
|
15451
|
+
}
|
|
15452
|
+
.cn-files-browser__bulk-count[data-v-f5bdd9e2] {
|
|
15453
|
+
font-weight: 600;
|
|
15454
|
+
margin-inline-end: 8px;
|
|
15455
|
+
}
|
|
15456
|
+
.cn-files-browser__facets[data-v-f5bdd9e2] {
|
|
15457
|
+
display: flex;
|
|
15458
|
+
flex-wrap: wrap;
|
|
15459
|
+
align-items: center;
|
|
15460
|
+
gap: 8px 16px;
|
|
15461
|
+
}
|
|
15462
|
+
.cn-files-browser__facet[data-v-f5bdd9e2] {
|
|
15463
|
+
display: flex;
|
|
15464
|
+
flex-wrap: wrap;
|
|
15465
|
+
gap: 6px;
|
|
15466
|
+
}
|
|
15467
|
+
.cn-files-browser__facet-chip[data-v-f5bdd9e2] {
|
|
15468
|
+
display: inline-flex;
|
|
15469
|
+
align-items: center;
|
|
15470
|
+
gap: 6px;
|
|
15471
|
+
min-height: 32px;
|
|
15472
|
+
padding: 0 12px;
|
|
15473
|
+
border: 1px solid var(--color-border-dark);
|
|
15474
|
+
border-radius: var(--border-radius-pill);
|
|
15475
|
+
background: var(--color-main-background);
|
|
15476
|
+
color: var(--color-main-text);
|
|
15477
|
+
cursor: pointer;
|
|
15478
|
+
}
|
|
15479
|
+
.cn-files-browser__facet-chip--active[data-v-f5bdd9e2] {
|
|
15480
|
+
border-color: var(--color-primary-element);
|
|
15481
|
+
background: var(--color-primary-element-light);
|
|
15482
|
+
}
|
|
15483
|
+
.cn-files-browser__group-heading[data-v-f5bdd9e2] {
|
|
15484
|
+
padding: 12px 8px 4px;
|
|
15485
|
+
text-align: start;
|
|
15486
|
+
font-weight: 700;
|
|
15487
|
+
}
|
|
15488
|
+
.cn-files-browser__group-count[data-v-f5bdd9e2] {
|
|
15489
|
+
margin-inline-start: 6px;
|
|
15490
|
+
font-weight: 400;
|
|
15491
|
+
color: var(--color-text-maxcontrast);
|
|
15492
|
+
}
|
|
15493
|
+
.cn-files-browser__no-match[data-v-f5bdd9e2] {
|
|
15494
|
+
padding: 16px 8px;
|
|
15495
|
+
color: var(--color-text-maxcontrast);
|
|
15496
|
+
}
|
|
14887
15497
|
.cn-files-browser__col-actions[data-v-f5bdd9e2] {
|
|
14888
15498
|
width: 48px;
|
|
14889
15499
|
}
|
|
@@ -21210,6 +21820,38 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
21210
21820
|
font-weight: 400;
|
|
21211
21821
|
}
|
|
21212
21822
|
|
|
21823
|
+
/* A caption on a line of its own wraps, up to two lines (DqDashboard: "haalden
|
|
21824
|
+
hun termijn, naar doorlooptijd" runs over two lines in a narrow tile). The
|
|
21825
|
+
one-line rule of `.cn-kpi-card__label` is for a caption BESIDE the number,
|
|
21826
|
+
where a second line would push the tile taller; this line has the width of
|
|
21827
|
+
the tile to itself. The clamp is safe here because the element is a plain
|
|
21828
|
+
span, not a flex row (compare the title note above).
|
|
21829
|
+
@spec openspec/changes/dashboard-tile-text-fits/specs/dashboard-tile-text-fits/spec.md#requirement-a-kpi-tiles-caption-and-board-label-wrap-to-two-lines */
|
|
21830
|
+
.cn-kpi-card--stacked .cn-kpi-card__caption-line {
|
|
21831
|
+
display: -webkit-box;
|
|
21832
|
+
-webkit-box-orient: vertical;
|
|
21833
|
+
-webkit-line-clamp: 2;
|
|
21834
|
+
line-clamp: 2;
|
|
21835
|
+
white-space: normal;
|
|
21836
|
+
overflow-wrap: break-word;
|
|
21837
|
+
}
|
|
21838
|
+
|
|
21839
|
+
/* Board look: the label wraps too, up to two lines, beside its icon badge
|
|
21840
|
+
("Afgehandeld deze maand"). The clamp sits on the label's own span
|
|
21841
|
+
(`cn-kpi-card__title-text`), not on the title row, which stays the flex row
|
|
21842
|
+
that carries the badge or the range select. */
|
|
21843
|
+
.cn-kpi-card--board .cn-kpi-card__title-text {
|
|
21844
|
+
flex: 1 1 auto;
|
|
21845
|
+
min-width: 0;
|
|
21846
|
+
display: -webkit-box;
|
|
21847
|
+
-webkit-box-orient: vertical;
|
|
21848
|
+
-webkit-line-clamp: 2;
|
|
21849
|
+
line-clamp: 2;
|
|
21850
|
+
overflow: hidden;
|
|
21851
|
+
white-space: normal;
|
|
21852
|
+
overflow-wrap: break-word;
|
|
21853
|
+
}
|
|
21854
|
+
|
|
21213
21855
|
/* The 18px glyph before the label, drawn only on a link tile. */
|
|
21214
21856
|
.cn-kpi-card--board .cn-kpi-card__title {
|
|
21215
21857
|
display: flex;
|
|
@@ -21507,6 +22149,59 @@ a.cn-kpi-card--board * {
|
|
|
21507
22149
|
gap: var(--cn-kpi-stack-gap, 12px);
|
|
21508
22150
|
}
|
|
21509
22151
|
|
|
22152
|
+
/* Rows layout: the board's "label left, number right" card body. */
|
|
22153
|
+
.cn-stats-block-widget--rows[data-v-4f8583ef] {
|
|
22154
|
+
display: flex;
|
|
22155
|
+
flex-direction: column;
|
|
22156
|
+
gap: 12px;
|
|
22157
|
+
box-sizing: border-box;
|
|
22158
|
+
padding: 20px 22px;
|
|
22159
|
+
}
|
|
22160
|
+
.cn-stats-block-widget__rows-title[data-v-4f8583ef] {
|
|
22161
|
+
margin: 0;
|
|
22162
|
+
font-size: 15px;
|
|
22163
|
+
font-weight: 600;
|
|
22164
|
+
color: var(--color-text-maxcontrast);
|
|
22165
|
+
}
|
|
22166
|
+
.cn-stats-block-widget__rows[data-v-4f8583ef] {
|
|
22167
|
+
display: flex;
|
|
22168
|
+
flex-direction: column;
|
|
22169
|
+
gap: 8px;
|
|
22170
|
+
margin: 0;
|
|
22171
|
+
font-size: 14px;
|
|
22172
|
+
}
|
|
22173
|
+
.cn-stats-block-widget__row[data-v-4f8583ef] {
|
|
22174
|
+
display: flex;
|
|
22175
|
+
align-items: baseline;
|
|
22176
|
+
justify-content: space-between;
|
|
22177
|
+
gap: 16px;
|
|
22178
|
+
}
|
|
22179
|
+
.cn-stats-block-widget__row-label[data-v-4f8583ef] {
|
|
22180
|
+
min-width: 0;
|
|
22181
|
+
margin: 0;
|
|
22182
|
+
overflow: hidden;
|
|
22183
|
+
text-overflow: ellipsis;
|
|
22184
|
+
}
|
|
22185
|
+
.cn-stats-block-widget__row-value[data-v-4f8583ef] {
|
|
22186
|
+
flex: none;
|
|
22187
|
+
margin: 0;
|
|
22188
|
+
font-size: 17px;
|
|
22189
|
+
font-weight: 700;
|
|
22190
|
+
text-align: right;
|
|
22191
|
+
}
|
|
22192
|
+
.cn-stats-block-widget__row-value--success[data-v-4f8583ef] {
|
|
22193
|
+
color: var(--color-text-success, var(--color-success-text));
|
|
22194
|
+
}
|
|
22195
|
+
.cn-stats-block-widget__row-value--warning[data-v-4f8583ef] {
|
|
22196
|
+
color: var(--color-text-warning, var(--color-warning-text));
|
|
22197
|
+
}
|
|
22198
|
+
.cn-stats-block-widget__row-value--error[data-v-4f8583ef] {
|
|
22199
|
+
color: var(--color-text-error, var(--color-error-text));
|
|
22200
|
+
}
|
|
22201
|
+
.cn-stats-block-widget__row-value--primary[data-v-4f8583ef] {
|
|
22202
|
+
color: var(--color-primary-element);
|
|
22203
|
+
}
|
|
22204
|
+
|
|
21510
22205
|
|
|
21511
22206
|
.cn-stats-block-form[data-v-20f3b26f] {
|
|
21512
22207
|
display: flex;
|
|
@@ -22025,6 +22720,20 @@ to { background-position: -200% 0;
|
|
|
22025
22720
|
.cn-banner-widget__card[data-v-3531692f] {
|
|
22026
22721
|
margin: 0;
|
|
22027
22722
|
}
|
|
22723
|
+
.cn-banner-widget__line[data-v-3531692f] {
|
|
22724
|
+
display: flex;
|
|
22725
|
+
flex-wrap: wrap;
|
|
22726
|
+
align-items: baseline;
|
|
22727
|
+
gap: 4px 20px;
|
|
22728
|
+
}
|
|
22729
|
+
.cn-banner-widget__lead[data-v-3531692f] {
|
|
22730
|
+
font-weight: 700;
|
|
22731
|
+
}
|
|
22732
|
+
.cn-banner-widget__link[data-v-3531692f] {
|
|
22733
|
+
margin-inline-start: auto;
|
|
22734
|
+
font-size: 14px;
|
|
22735
|
+
font-weight: 600;
|
|
22736
|
+
}
|
|
22028
22737
|
.cn-banner-widget__text--clickable[data-v-3531692f] {
|
|
22029
22738
|
cursor: pointer;
|
|
22030
22739
|
text-decoration: underline;
|
|
@@ -22108,6 +22817,28 @@ to { background-position: -200% 0;
|
|
|
22108
22817
|
margin: 0;
|
|
22109
22818
|
color: var(--color-text-maxcontrast);
|
|
22110
22819
|
}
|
|
22820
|
+
|
|
22821
|
+
/* Stacked (PqMijnWerk "Begin hier"): the text, then the action under it. */
|
|
22822
|
+
.cn-banner-widget--stacked[data-v-3531692f] {
|
|
22823
|
+
flex-direction: column;
|
|
22824
|
+
align-items: flex-start;
|
|
22825
|
+
gap: 10px;
|
|
22826
|
+
}
|
|
22827
|
+
.cn-banner-widget--stacked .cn-banner-widget__body[data-v-3531692f] {
|
|
22828
|
+
flex: 0 0 auto;
|
|
22829
|
+
gap: 10px;
|
|
22830
|
+
}
|
|
22831
|
+
.cn-banner-widget--stacked .cn-banner-widget__title[data-v-3531692f] {
|
|
22832
|
+
font-size: 16px;
|
|
22833
|
+
line-height: 1.4;
|
|
22834
|
+
}
|
|
22835
|
+
.cn-banner-widget--stacked .cn-banner-widget__reason[data-v-3531692f] {
|
|
22836
|
+
font-size: 14px;
|
|
22837
|
+
}
|
|
22838
|
+
.cn-banner-widget--stacked .cn-banner-widget__action[data-v-3531692f] {
|
|
22839
|
+
min-height: var(--cn-board-control-height, 40px);
|
|
22840
|
+
font-size: 14px;
|
|
22841
|
+
}
|
|
22111
22842
|
.cn-banner-widget__actions[data-v-3531692f] {
|
|
22112
22843
|
display: flex;
|
|
22113
22844
|
flex-wrap: wrap;
|
|
@@ -22279,6 +23010,18 @@ to { background-position: -200% 0;
|
|
|
22279
23010
|
box-shadow: 0 1px 2px var(--color-box-shadow);
|
|
22280
23011
|
}
|
|
22281
23012
|
|
|
23013
|
+
/* On a phone (screens-dashboard-phone) the compact group's segments are 44px
|
|
23014
|
+
high touch targets, and the group wraps onto a second row instead of
|
|
23015
|
+
running off the screen. */
|
|
23016
|
+
@media (max-width: 640px) {
|
|
23017
|
+
.cn-segmented-control.cn-segmented-control--compact[data-v-7b344b4f] {
|
|
23018
|
+
flex-wrap: wrap;
|
|
23019
|
+
}
|
|
23020
|
+
.cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option[data-v-7b344b4f] {
|
|
23021
|
+
min-height: 44px;
|
|
23022
|
+
}
|
|
23023
|
+
}
|
|
23024
|
+
|
|
22282
23025
|
|
|
22283
23026
|
.cn-header-widget[data-v-1b97430f] {
|
|
22284
23027
|
width: 100%;
|
|
@@ -23103,6 +23846,13 @@ button.cn-stepper__step[data-v-19697746] {
|
|
|
23103
23846
|
}
|
|
23104
23847
|
|
|
23105
23848
|
|
|
23849
|
+
.cn-form-page__honeypot {
|
|
23850
|
+
position: absolute;
|
|
23851
|
+
left: -10000px;
|
|
23852
|
+
width: 1px;
|
|
23853
|
+
height: 1px;
|
|
23854
|
+
overflow: hidden;
|
|
23855
|
+
}
|
|
23106
23856
|
.cn-form-page {
|
|
23107
23857
|
display: flex;
|
|
23108
23858
|
flex-direction: column;
|
|
@@ -23239,6 +23989,27 @@ button.cn-stepper__step[data-v-19697746] {
|
|
|
23239
23989
|
}
|
|
23240
23990
|
|
|
23241
23991
|
|
|
23992
|
+
.cn-detail-page__catalog-action[data-v-76c1b60f] {
|
|
23993
|
+
align-items: center;
|
|
23994
|
+
background: var(--color-primary-element-light);
|
|
23995
|
+
border: 0;
|
|
23996
|
+
border-radius: 16px;
|
|
23997
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
23998
|
+
cursor: pointer;
|
|
23999
|
+
display: inline-flex;
|
|
24000
|
+
font: inherit;
|
|
24001
|
+
font-size: 13px;
|
|
24002
|
+
font-weight: 700;
|
|
24003
|
+
gap: 6px;
|
|
24004
|
+
min-height: 32px;
|
|
24005
|
+
padding: 0 14px;
|
|
24006
|
+
white-space: nowrap;
|
|
24007
|
+
}
|
|
24008
|
+
.cn-detail-page__catalog-note[data-v-76c1b60f] {
|
|
24009
|
+
color: var(--color-text-maxcontrast);
|
|
24010
|
+
font-size: 14px;
|
|
24011
|
+
white-space: nowrap;
|
|
24012
|
+
}
|
|
23242
24013
|
.cn-detail-widget-host[data-v-76c1b60f],
|
|
23243
24014
|
.cn-detail-widget-host[data-v-76c1b60f] > * {
|
|
23244
24015
|
height: 100%;
|
|
@@ -23528,6 +24299,33 @@ button.cn-stepper__step[data-v-19697746] {
|
|
|
23528
24299
|
}
|
|
23529
24300
|
|
|
23530
24301
|
|
|
24302
|
+
/* A stack (`widgetIds`): the panel's widget, then cards 20px apart. */
|
|
24303
|
+
.cn-tabs-widget__stack[data-v-1dbd6122] {
|
|
24304
|
+
display: flex;
|
|
24305
|
+
flex-direction: column;
|
|
24306
|
+
gap: 20px;
|
|
24307
|
+
}
|
|
24308
|
+
|
|
24309
|
+
/* A gridded stack (`columns` / `layout` on the tab): 12 columns, widgets wrap
|
|
24310
|
+
onto the next row, a row's cards as tall as the tallest. Narrow, it is the
|
|
24311
|
+
plain stack again. */
|
|
24312
|
+
.cn-tabs-widget__stack--grid[data-v-1dbd6122] {
|
|
24313
|
+
display: grid;
|
|
24314
|
+
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
24315
|
+
align-items: stretch;
|
|
24316
|
+
}
|
|
24317
|
+
.cn-tabs-widget__stack--grid[data-v-1dbd6122] > * {
|
|
24318
|
+
min-width: 0;
|
|
24319
|
+
}
|
|
24320
|
+
@media (max-width: 700px) {
|
|
24321
|
+
.cn-tabs-widget__stack--grid[data-v-1dbd6122] {
|
|
24322
|
+
grid-template-columns: minmax(0, 1fr);
|
|
24323
|
+
}
|
|
24324
|
+
.cn-tabs-widget__stack--grid[data-v-1dbd6122] > * {
|
|
24325
|
+
grid-column: auto !important;
|
|
24326
|
+
}
|
|
24327
|
+
}
|
|
24328
|
+
|
|
23531
24329
|
/* The panel is the card; the strip is not inside it. There is no title bar
|
|
23532
24330
|
above the tabs either: the open tab names the panel, so a title row would
|
|
23533
24331
|
say the same thing twice and cost a row of height on a card that is mostly
|
|
@@ -23644,6 +24442,14 @@ button.cn-stepper__step[data-v-19697746] {
|
|
|
23644
24442
|
.cn-tabs-widget__tabs[data-v-1dbd6122] .cn-tab {
|
|
23645
24443
|
height: 100%;
|
|
23646
24444
|
}
|
|
24445
|
+
|
|
24446
|
+
/* A list widget's footer Add bleeds through its card's 16px content padding
|
|
24447
|
+
(margin 0 -16px -16px). The panel of a tab pads 12px, so on a tab that
|
|
24448
|
+
holds the list directly the footer stuck out 4px on the right and at the
|
|
24449
|
+
bottom and made the panel scroll. It bleeds exactly the panel's padding. */
|
|
24450
|
+
.cn-tabs-widget__tabs[data-v-1dbd6122] .cn-tabs__content > .cn-tab > .cn-detail-widget-host--bare .cn-object-list-widget__add {
|
|
24451
|
+
margin: auto -12px -12px;
|
|
24452
|
+
}
|
|
23647
24453
|
.cn-tabs-widget__title[data-v-1dbd6122] {
|
|
23648
24454
|
align-items: center;
|
|
23649
24455
|
display: inline-flex;
|
|
@@ -27599,6 +28405,50 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
27599
28405
|
font-variant-numeric: tabular-nums;
|
|
27600
28406
|
}
|
|
27601
28407
|
|
|
28408
|
+
/* List variant, after the dashboard board's My tasks card: a checkbox, the
|
|
28409
|
+
title, the subject on a muted second line and the due date at its right. */
|
|
28410
|
+
.cn-tasks-widget--list .cn-tasks-widget__row[data-v-ff399342] {
|
|
28411
|
+
align-items: flex-start;
|
|
28412
|
+
gap: 12px;
|
|
28413
|
+
padding: 12px 0;
|
|
28414
|
+
}
|
|
28415
|
+
.cn-tasks-widget--list .cn-tasks-widget__name[data-v-ff399342] {
|
|
28416
|
+
font-weight: 400;
|
|
28417
|
+
font-size: 15px;
|
|
28418
|
+
line-height: 1.35;
|
|
28419
|
+
color: var(--color-main-text);
|
|
28420
|
+
}
|
|
28421
|
+
.cn-tasks-widget__check[data-v-ff399342],
|
|
28422
|
+
.cn-tasks-widget__check-spacer[data-v-ff399342] {
|
|
28423
|
+
flex: none;
|
|
28424
|
+
width: 20px;
|
|
28425
|
+
height: 20px;
|
|
28426
|
+
margin: 1px 0 0;
|
|
28427
|
+
}
|
|
28428
|
+
.cn-tasks-widget__check[data-v-ff399342] {
|
|
28429
|
+
accent-color: var(--color-primary-element);
|
|
28430
|
+
cursor: pointer;
|
|
28431
|
+
}
|
|
28432
|
+
.cn-tasks-widget__meta--split[data-v-ff399342] {
|
|
28433
|
+
display: flex;
|
|
28434
|
+
justify-content: space-between;
|
|
28435
|
+
gap: 8px;
|
|
28436
|
+
font-size: 13px;
|
|
28437
|
+
overflow: visible;
|
|
28438
|
+
}
|
|
28439
|
+
.cn-tasks-widget__subject[data-v-ff399342] {
|
|
28440
|
+
min-width: 0;
|
|
28441
|
+
overflow: hidden;
|
|
28442
|
+
text-overflow: ellipsis;
|
|
28443
|
+
}
|
|
28444
|
+
.cn-tasks-widget--list .cn-tasks-widget__due[data-v-ff399342] {
|
|
28445
|
+
font-size: 13px;
|
|
28446
|
+
font-weight: 500;
|
|
28447
|
+
}
|
|
28448
|
+
.cn-tasks-widget--list .cn-tasks-widget__due--overdue[data-v-ff399342] {
|
|
28449
|
+
font-weight: 600;
|
|
28450
|
+
}
|
|
28451
|
+
|
|
27602
28452
|
/* Overdue: weight AND colour on top of the wording, which already says
|
|
27603
28453
|
"Overdue by N days" — the signal survives monochrome. */
|
|
27604
28454
|
.cn-tasks-widget__due--overdue[data-v-ff399342] {
|
|
@@ -27610,219 +28460,1214 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
27610
28460
|
}
|
|
27611
28461
|
|
|
27612
28462
|
|
|
27613
|
-
.cn-
|
|
28463
|
+
.cn-sections-widget[data-v-ea4f8722] {
|
|
28464
|
+
min-width: 0;
|
|
28465
|
+
}
|
|
28466
|
+
.cn-sections-widget__column[data-v-ea4f8722] {
|
|
27614
28467
|
display: flex;
|
|
27615
28468
|
flex-direction: column;
|
|
27616
|
-
gap:
|
|
28469
|
+
gap: calc(var(--default-grid-baseline, 4px) * 4);
|
|
28470
|
+
min-width: 0;
|
|
27617
28471
|
}
|
|
27618
28472
|
|
|
28473
|
+
/* A main and a side column (the settings boards: 1fr and 418px, 20px apart). */
|
|
28474
|
+
.cn-sections-widget--two-column[data-v-ea4f8722] {
|
|
28475
|
+
display: grid;
|
|
28476
|
+
grid-template-columns: minmax(0, 1fr) minmax(280px, 418px);
|
|
28477
|
+
gap: 20px;
|
|
28478
|
+
align-items: start;
|
|
28479
|
+
}
|
|
28480
|
+
@media (max-width: 1024px) {
|
|
28481
|
+
.cn-sections-widget--two-column[data-v-ea4f8722] {
|
|
28482
|
+
grid-template-columns: minmax(0, 1fr);
|
|
28483
|
+
}
|
|
28484
|
+
}
|
|
27619
28485
|
|
|
27620
|
-
.
|
|
27621
|
-
|
|
27622
|
-
|
|
27623
|
-
|
|
27624
|
-
height: 100%;
|
|
27625
|
-
min-height: var(--cn-notepad-min-height, 120px);
|
|
28486
|
+
/* A host page may space every <section>; these sections are spaced by the column gap only. */
|
|
28487
|
+
.cn-sections-widget__section[data-v-ea4f8722] {
|
|
28488
|
+
margin: 0;
|
|
28489
|
+
min-width: 0;
|
|
27626
28490
|
}
|
|
27627
|
-
|
|
27628
|
-
|
|
27629
|
-
|
|
27630
|
-
|
|
27631
|
-
|
|
27632
|
-
border: none;
|
|
27633
|
-
background: transparent;
|
|
27634
|
-
color: var(--color-main-text);
|
|
27635
|
-
font: inherit;
|
|
28491
|
+
|
|
28492
|
+
/* A rule above a section that follows a shown one. */
|
|
28493
|
+
.cn-sections-widget:not(.cn-sections-widget--cards) .cn-sections-widget__section:not(.cn-sections-widget__section--empty) ~ .cn-sections-widget__section[data-v-ea4f8722] {
|
|
28494
|
+
padding-top: calc(var(--default-grid-baseline, 4px) * 4);
|
|
28495
|
+
border-top: 1px solid var(--color-border);
|
|
27636
28496
|
}
|
|
27637
|
-
|
|
27638
|
-
|
|
27639
|
-
|
|
27640
|
-
|
|
28497
|
+
|
|
28498
|
+
/*
|
|
28499
|
+
* An empty section keeps its host mounted (display: none still mounts it, so
|
|
28500
|
+
* the widget fetches and can fill later) but takes no space, gap or rule.
|
|
28501
|
+
*/
|
|
28502
|
+
.cn-sections-widget__section--empty[data-v-ea4f8722] {
|
|
28503
|
+
display: none;
|
|
28504
|
+
}
|
|
28505
|
+
.cn-sections-widget__heading[data-v-ea4f8722] {
|
|
28506
|
+
margin: 0 0 calc(var(--default-grid-baseline, 4px) * 2);
|
|
28507
|
+
font-size: 16px;
|
|
28508
|
+
font-weight: 600;
|
|
27641
28509
|
color: var(--color-main-text);
|
|
27642
28510
|
}
|
|
27643
|
-
.cn-
|
|
27644
|
-
margin: 0;
|
|
27645
|
-
min-height: 1.2em;
|
|
28511
|
+
.cn-sections-widget__description[data-v-ea4f8722] {
|
|
28512
|
+
margin: calc(var(--default-grid-baseline, 4px) * -1) 0 calc(var(--default-grid-baseline, 4px) * 3);
|
|
27646
28513
|
color: var(--color-text-maxcontrast);
|
|
27647
|
-
font-size: 0.85em;
|
|
27648
28514
|
}
|
|
27649
|
-
|
|
27650
|
-
|
|
28515
|
+
|
|
28516
|
+
/* One card per section. */
|
|
28517
|
+
.cn-sections-widget--cards .cn-sections-widget__column[data-v-ea4f8722] {
|
|
28518
|
+
gap: 20px;
|
|
28519
|
+
}
|
|
28520
|
+
.cn-sections-widget--cards .cn-sections-widget__section[data-v-ea4f8722] {
|
|
28521
|
+
background: var(--color-main-background);
|
|
28522
|
+
border: 1px solid var(--color-border);
|
|
28523
|
+
border-radius: var(--cn-board-card-radius, var(--border-radius-large, 12px));
|
|
28524
|
+
padding: var(--cn-board-card-padding, 16px 20px);
|
|
28525
|
+
}
|
|
28526
|
+
.cn-sections-widget--cards .cn-sections-widget__heading[data-v-ea4f8722] {
|
|
28527
|
+
font-size: 18px;
|
|
28528
|
+
margin-bottom: 12px;
|
|
27651
28529
|
}
|
|
27652
28530
|
|
|
27653
28531
|
|
|
27654
|
-
.cn-
|
|
28532
|
+
.cn-facts-widget[data-v-2ca63011] {
|
|
27655
28533
|
display: flex;
|
|
27656
28534
|
flex-direction: column;
|
|
27657
|
-
gap:
|
|
28535
|
+
gap: 10px;
|
|
28536
|
+
min-width: 0;
|
|
27658
28537
|
}
|
|
27659
|
-
.cn-
|
|
27660
|
-
|
|
27661
|
-
|
|
27662
|
-
|
|
27663
|
-
|
|
27664
|
-
|
|
28538
|
+
.cn-facts-widget__rows[data-v-2ca63011] {
|
|
28539
|
+
display: grid;
|
|
28540
|
+
grid-template-columns: max-content 1fr;
|
|
28541
|
+
gap: 8px 16px;
|
|
28542
|
+
margin: 0;
|
|
28543
|
+
font-size: 14px;
|
|
27665
28544
|
}
|
|
27666
|
-
|
|
27667
|
-
|
|
27668
|
-
|
|
28545
|
+
|
|
28546
|
+
/* Each row is a grid of its own children: the wrapper takes no box. */
|
|
28547
|
+
.cn-facts-widget__row[data-v-2ca63011] {
|
|
28548
|
+
display: contents;
|
|
27669
28549
|
}
|
|
27670
|
-
|
|
27671
|
-
|
|
27672
|
-
|
|
27673
|
-
|
|
28550
|
+
|
|
28551
|
+
/* Nextcloud core styles `dt` and `dd` (text-align end, 12px padding), which
|
|
28552
|
+
pushed the label to the right of its column and added 12px around both. The
|
|
28553
|
+
class is doubled so these resets outrank that rule, and a dossiq-style
|
|
28554
|
+
`:deep()` override in an app is not needed. */
|
|
28555
|
+
.cn-facts-widget__label.cn-facts-widget__label[data-v-2ca63011] {
|
|
28556
|
+
margin: 0;
|
|
28557
|
+
padding: 0;
|
|
28558
|
+
text-align: start;
|
|
28559
|
+
color: var(--color-text-maxcontrast);
|
|
27674
28560
|
}
|
|
27675
|
-
.cn-
|
|
27676
|
-
|
|
28561
|
+
.cn-facts-widget__value.cn-facts-widget__value[data-v-2ca63011] {
|
|
28562
|
+
margin: 0;
|
|
28563
|
+
padding: 0;
|
|
28564
|
+
text-align: start;
|
|
28565
|
+
font-weight: 500;
|
|
27677
28566
|
min-width: 0;
|
|
28567
|
+
overflow-wrap: anywhere;
|
|
27678
28568
|
}
|
|
27679
|
-
.cn-
|
|
27680
|
-
|
|
27681
|
-
align-items: flex-end;
|
|
27682
|
-
gap: 12px;
|
|
27683
|
-
flex-wrap: wrap;
|
|
27684
|
-
}
|
|
27685
|
-
.cn-data-form__layout-label[data-v-10b5a40f] {
|
|
27686
|
-
align-self: center;
|
|
28569
|
+
.cn-facts-widget__title[data-v-2ca63011] {
|
|
28570
|
+
font-size: 15px;
|
|
27687
28571
|
font-weight: 600;
|
|
27688
|
-
}
|
|
27689
|
-
.cn-data-form__presets[data-v-10b5a40f] {
|
|
27690
|
-
display: inline-flex;
|
|
27691
|
-
border: 1px solid var(--color-border);
|
|
27692
|
-
border-radius: var(--border-radius-large, 8px);
|
|
27693
|
-
overflow: hidden;
|
|
27694
|
-
}
|
|
27695
|
-
.cn-data-form__preset[data-v-10b5a40f] {
|
|
27696
|
-
border: none;
|
|
27697
|
-
background: var(--color-main-background);
|
|
27698
28572
|
color: var(--color-main-text);
|
|
27699
|
-
padding: 6px 12px;
|
|
27700
|
-
cursor: pointer;
|
|
27701
|
-
border-inline-start: 1px solid var(--color-border);
|
|
27702
|
-
}
|
|
27703
|
-
.cn-data-form__preset[data-v-10b5a40f]:first-child {
|
|
27704
|
-
border-inline-start: none;
|
|
27705
28573
|
}
|
|
27706
|
-
.cn-
|
|
27707
|
-
|
|
27708
|
-
color: var(--color-
|
|
27709
|
-
font-weight: 600;
|
|
28574
|
+
.cn-facts-widget__line[data-v-2ca63011] {
|
|
28575
|
+
font-size: 13px;
|
|
28576
|
+
color: var(--color-text-maxcontrast);
|
|
27710
28577
|
}
|
|
27711
|
-
.cn-
|
|
27712
|
-
|
|
27713
|
-
|
|
28578
|
+
.cn-facts-widget__muted[data-v-2ca63011] {
|
|
28579
|
+
margin: 0;
|
|
28580
|
+
color: var(--color-text-maxcontrast);
|
|
27714
28581
|
}
|
|
27715
|
-
.cn-
|
|
27716
|
-
|
|
27717
|
-
|
|
27718
|
-
|
|
28582
|
+
.cn-facts-widget__label .hidden-visually[data-v-2ca63011] {
|
|
28583
|
+
clip-path: inset(50%);
|
|
28584
|
+
height: 1px;
|
|
28585
|
+
overflow: hidden;
|
|
28586
|
+
position: absolute;
|
|
28587
|
+
white-space: nowrap;
|
|
28588
|
+
width: 1px;
|
|
27719
28589
|
}
|
|
27720
|
-
.cn-
|
|
27721
|
-
|
|
28590
|
+
.cn-facts-widget__label--icon[data-v-2ca63011] {
|
|
28591
|
+
align-items: center;
|
|
28592
|
+
display: flex;
|
|
27722
28593
|
}
|
|
27723
|
-
.cn-
|
|
27724
|
-
|
|
27725
|
-
|
|
28594
|
+
.cn-facts-widget__value-link[data-v-2ca63011] {
|
|
28595
|
+
color: var(--color-primary-element);
|
|
28596
|
+
text-decoration: underline;
|
|
27726
28597
|
}
|
|
27727
|
-
.cn-
|
|
27728
|
-
|
|
28598
|
+
.cn-facts-widget__inline-button[data-v-2ca63011],
|
|
28599
|
+
.cn-facts-widget__icon-button[data-v-2ca63011],
|
|
28600
|
+
.cn-facts-widget__action[data-v-2ca63011] {
|
|
27729
28601
|
align-items: center;
|
|
27730
|
-
|
|
28602
|
+
cursor: pointer;
|
|
28603
|
+
display: inline-flex;
|
|
28604
|
+
font: inherit;
|
|
27731
28605
|
}
|
|
27732
|
-
.cn-
|
|
27733
|
-
|
|
28606
|
+
.cn-facts-widget__inline-button[data-v-2ca63011] {
|
|
28607
|
+
background: var(--color-main-background);
|
|
28608
|
+
border: 1px solid var(--color-border-dark);
|
|
28609
|
+
border-radius: 16px;
|
|
28610
|
+
font-size: 13px;
|
|
28611
|
+
font-weight: 600;
|
|
28612
|
+
gap: 4px;
|
|
28613
|
+
margin-inline-start: 8px;
|
|
28614
|
+
min-height: 28px;
|
|
28615
|
+
padding: 0 10px;
|
|
28616
|
+
}
|
|
28617
|
+
.cn-facts-widget__icon-button[data-v-2ca63011] {
|
|
28618
|
+
background: transparent;
|
|
28619
|
+
border: 0;
|
|
28620
|
+
border-radius: 6px;
|
|
27734
28621
|
color: var(--color-text-maxcontrast);
|
|
27735
|
-
|
|
27736
|
-
|
|
28622
|
+
margin-inline-start: 4px;
|
|
28623
|
+
padding: 2px;
|
|
28624
|
+
vertical-align: middle;
|
|
27737
28625
|
}
|
|
27738
|
-
.cn-
|
|
27739
|
-
|
|
28626
|
+
.cn-facts-widget__icon-button[data-v-2ca63011]:hover,
|
|
28627
|
+
.cn-facts-widget__icon-button[data-v-2ca63011]:focus-visible {
|
|
28628
|
+
background: var(--color-background-hover);
|
|
28629
|
+
color: var(--color-main-text);
|
|
27740
28630
|
}
|
|
27741
|
-
.cn-
|
|
27742
|
-
|
|
27743
|
-
|
|
27744
|
-
gap: 10px;
|
|
27745
|
-
align-items: center;
|
|
27746
|
-
margin-top: 8px;
|
|
28631
|
+
.cn-facts-widget__text[data-v-2ca63011] {
|
|
28632
|
+
color: var(--color-main-text);
|
|
28633
|
+
font-size: 15px;
|
|
27747
28634
|
}
|
|
27748
28635
|
|
|
27749
|
-
|
|
27750
|
-
.cn-
|
|
28636
|
+
/* A lead: an icon tile or initials beside a bold title and a muted subtitle. */
|
|
28637
|
+
.cn-facts-widget__lead[data-v-2ca63011] {
|
|
28638
|
+
align-items: center;
|
|
27751
28639
|
display: flex;
|
|
27752
|
-
flex-direction: column;
|
|
27753
28640
|
gap: 12px;
|
|
27754
28641
|
}
|
|
27755
|
-
.cn-
|
|
27756
|
-
|
|
27757
|
-
|
|
27758
|
-
|
|
27759
|
-
|
|
27760
|
-
|
|
28642
|
+
.cn-facts-widget__lead-tile[data-v-2ca63011] {
|
|
28643
|
+
align-items: center;
|
|
28644
|
+
background: var(--color-background-dark);
|
|
28645
|
+
border-radius: 8px;
|
|
28646
|
+
color: var(--color-main-text);
|
|
28647
|
+
display: flex;
|
|
28648
|
+
flex: none;
|
|
28649
|
+
font-size: 14px;
|
|
28650
|
+
font-weight: 700;
|
|
28651
|
+
height: 40px;
|
|
28652
|
+
justify-content: center;
|
|
28653
|
+
width: 40px;
|
|
27761
28654
|
}
|
|
27762
|
-
.cn-
|
|
27763
|
-
|
|
27764
|
-
|
|
27765
|
-
|
|
28655
|
+
.cn-facts-widget__lead-tile--success[data-v-2ca63011] {
|
|
28656
|
+
background: color-mix(in srgb, var(--color-success) 14%, var(--color-main-background));
|
|
28657
|
+
border-radius: 50%;
|
|
28658
|
+
color: var(--color-success-text, var(--color-success));
|
|
27766
28659
|
}
|
|
27767
|
-
|
|
27768
|
-
|
|
27769
|
-
|
|
28660
|
+
.cn-facts-widget__lead-tile--info[data-v-2ca63011] {
|
|
28661
|
+
background: var(--color-primary-element-light);
|
|
28662
|
+
border-radius: 50%;
|
|
28663
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
28664
|
+
}
|
|
28665
|
+
.cn-facts-widget__lead-text[data-v-2ca63011] {
|
|
27770
28666
|
display: flex;
|
|
27771
28667
|
flex-direction: column;
|
|
27772
|
-
|
|
28668
|
+
min-width: 0;
|
|
27773
28669
|
}
|
|
27774
|
-
.cn-
|
|
27775
|
-
|
|
27776
|
-
|
|
28670
|
+
.cn-facts-widget__lead-title[data-v-2ca63011] {
|
|
28671
|
+
font-size: 15px;
|
|
28672
|
+
}
|
|
28673
|
+
.cn-facts-widget__lead-subtitle[data-v-2ca63011] {
|
|
27777
28674
|
color: var(--color-text-maxcontrast);
|
|
28675
|
+
font-size: 13px;
|
|
28676
|
+
}
|
|
28677
|
+
.cn-facts-widget__action[data-v-2ca63011] {
|
|
28678
|
+
align-self: flex-start;
|
|
28679
|
+
background: var(--color-primary-element-light);
|
|
28680
|
+
border: 0;
|
|
28681
|
+
border-radius: 16px;
|
|
28682
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
28683
|
+
font-size: 13px;
|
|
28684
|
+
font-weight: 700;
|
|
28685
|
+
gap: 6px;
|
|
28686
|
+
min-height: 32px;
|
|
28687
|
+
padding: 0 14px;
|
|
28688
|
+
}
|
|
28689
|
+
.cn-facts-widget__action[data-v-2ca63011]:hover,
|
|
28690
|
+
.cn-facts-widget__action[data-v-2ca63011]:focus-visible {
|
|
28691
|
+
background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
|
|
28692
|
+
}
|
|
28693
|
+
.cn-facts-widget__link[data-v-2ca63011] {
|
|
28694
|
+
font-size: 14px;
|
|
28695
|
+
font-weight: 600;
|
|
28696
|
+
color: var(--color-primary-element);
|
|
28697
|
+
text-decoration: underline;
|
|
27778
28698
|
}
|
|
27779
28699
|
|
|
27780
28700
|
|
|
27781
|
-
.cn-
|
|
28701
|
+
.cn-field-list-widget[data-v-0f29a833] {
|
|
27782
28702
|
display: flex;
|
|
27783
28703
|
flex-direction: column;
|
|
27784
|
-
gap:
|
|
27785
|
-
width:
|
|
27786
|
-
}
|
|
27787
|
-
.cn-kb-search-widget__bound[data-v-e34f66e2],
|
|
27788
|
-
.cn-kb-search-widget__status[data-v-e34f66e2],
|
|
27789
|
-
.cn-kb-search-widget__empty[data-v-e34f66e2],
|
|
27790
|
-
.cn-kb-search-widget__hint[data-v-e34f66e2] {
|
|
27791
|
-
color: var(--color-text-maxcontrast);
|
|
27792
|
-
font-size: 0.9em;
|
|
27793
|
-
margin: 0;
|
|
27794
|
-
}
|
|
27795
|
-
.cn-kb-search-widget__bound[data-v-e34f66e2] {
|
|
27796
|
-
font-style: italic;
|
|
28704
|
+
gap: 12px;
|
|
28705
|
+
min-width: 0;
|
|
27797
28706
|
}
|
|
27798
|
-
.cn-
|
|
28707
|
+
.cn-field-list-widget__rows[data-v-0f29a833] {
|
|
27799
28708
|
list-style: none;
|
|
27800
|
-
padding: 0;
|
|
27801
28709
|
margin: 0;
|
|
28710
|
+
padding: 0;
|
|
27802
28711
|
display: flex;
|
|
27803
28712
|
flex-direction: column;
|
|
27804
|
-
gap: 8px;
|
|
27805
|
-
}
|
|
27806
|
-
.cn-kb-search-widget__result[data-v-e34f66e2] {
|
|
27807
|
-
border: 1px solid var(--color-border);
|
|
27808
|
-
border-radius: var(--border-radius);
|
|
27809
|
-
padding: 8px 10px;
|
|
27810
|
-
background: var(--color-main-background);
|
|
27811
28713
|
}
|
|
27812
|
-
.cn-
|
|
27813
|
-
|
|
27814
|
-
|
|
27815
|
-
text-decoration: none;
|
|
28714
|
+
.cn-field-list-widget__row[data-v-0f29a833] {
|
|
28715
|
+
padding: 10px 0;
|
|
28716
|
+
border-top: 1px solid var(--color-border);
|
|
27816
28717
|
}
|
|
27817
|
-
.cn-
|
|
27818
|
-
|
|
28718
|
+
.cn-field-list-widget__row[data-v-0f29a833]:first-child {
|
|
28719
|
+
border-top: none;
|
|
28720
|
+
padding-top: 0;
|
|
27819
28721
|
}
|
|
27820
|
-
.cn-
|
|
27821
|
-
|
|
27822
|
-
|
|
27823
|
-
|
|
28722
|
+
.cn-field-list-widget__line[data-v-0f29a833] {
|
|
28723
|
+
display: flex;
|
|
28724
|
+
align-items: center;
|
|
28725
|
+
gap: 12px;
|
|
28726
|
+
min-width: 0;
|
|
27824
28727
|
}
|
|
27825
|
-
|
|
28728
|
+
.cn-field-list-widget__avatar[data-v-0f29a833] {
|
|
28729
|
+
flex: 0 0 auto;
|
|
28730
|
+
display: inline-flex;
|
|
28731
|
+
align-items: center;
|
|
28732
|
+
justify-content: center;
|
|
28733
|
+
width: 32px;
|
|
28734
|
+
height: 32px;
|
|
28735
|
+
border-radius: 50%;
|
|
28736
|
+
background: var(--color-primary-element-light);
|
|
28737
|
+
color: var(--color-primary-element-light-text, var(--color-main-text));
|
|
28738
|
+
font-size: 12px;
|
|
28739
|
+
font-weight: 700;
|
|
28740
|
+
}
|
|
28741
|
+
.cn-field-list-widget__main[data-v-0f29a833] {
|
|
28742
|
+
display: flex;
|
|
28743
|
+
flex-direction: column;
|
|
28744
|
+
flex: 1 1 auto;
|
|
28745
|
+
min-width: 0;
|
|
28746
|
+
}
|
|
28747
|
+
.cn-field-list-widget__title[data-v-0f29a833] {
|
|
28748
|
+
font-weight: 600;
|
|
28749
|
+
overflow-wrap: anywhere;
|
|
28750
|
+
}
|
|
28751
|
+
.cn-field-list-widget__meta[data-v-0f29a833],
|
|
28752
|
+
.cn-field-list-widget__aside[data-v-0f29a833],
|
|
28753
|
+
.cn-field-list-widget__detail[data-v-0f29a833],
|
|
28754
|
+
.cn-field-list-widget__hint[data-v-0f29a833],
|
|
28755
|
+
.cn-field-list-widget__empty[data-v-0f29a833] {
|
|
28756
|
+
color: var(--color-text-maxcontrast);
|
|
28757
|
+
}
|
|
28758
|
+
.cn-field-list-widget__meta[data-v-0f29a833],
|
|
28759
|
+
.cn-field-list-widget__aside[data-v-0f29a833],
|
|
28760
|
+
.cn-field-list-widget__detail[data-v-0f29a833] {
|
|
28761
|
+
font-size: 13px;
|
|
28762
|
+
}
|
|
28763
|
+
.cn-field-list-widget__aside[data-v-0f29a833] {
|
|
28764
|
+
white-space: nowrap;
|
|
28765
|
+
}
|
|
28766
|
+
.cn-field-list-widget__detail[data-v-0f29a833],
|
|
28767
|
+
.cn-field-list-widget__hint[data-v-0f29a833],
|
|
28768
|
+
.cn-field-list-widget__empty[data-v-0f29a833] {
|
|
28769
|
+
margin: 4px 0 0;
|
|
28770
|
+
overflow-wrap: anywhere;
|
|
28771
|
+
}
|
|
28772
|
+
.cn-field-list-widget__add[data-v-0f29a833] {
|
|
28773
|
+
display: flex;
|
|
28774
|
+
flex-wrap: wrap;
|
|
28775
|
+
align-items: flex-end;
|
|
28776
|
+
gap: 8px 12px;
|
|
28777
|
+
}
|
|
28778
|
+
.cn-field-list-widget__add[data-v-0f29a833] > * {
|
|
28779
|
+
flex: 1 1 180px;
|
|
28780
|
+
}
|
|
28781
|
+
.cn-field-list-widget__add > button[data-v-0f29a833] {
|
|
28782
|
+
flex: 0 0 auto;
|
|
28783
|
+
}
|
|
28784
|
+
.cn-field-list-widget__toolbar[data-v-0f29a833] {
|
|
28785
|
+
display: flex;
|
|
28786
|
+
justify-content: flex-end;
|
|
28787
|
+
}
|
|
28788
|
+
.cn-field-list-widget__table-wrap[data-v-0f29a833] {
|
|
28789
|
+
display: flex;
|
|
28790
|
+
flex-direction: column;
|
|
28791
|
+
gap: 12px;
|
|
28792
|
+
overflow-x: auto;
|
|
28793
|
+
}
|
|
28794
|
+
.cn-field-list-widget__table[data-v-0f29a833] {
|
|
28795
|
+
width: 100%;
|
|
28796
|
+
border-collapse: collapse;
|
|
28797
|
+
}
|
|
28798
|
+
.cn-field-list-widget__th[data-v-0f29a833] {
|
|
28799
|
+
padding: 8px 12px;
|
|
28800
|
+
text-align: start;
|
|
28801
|
+
font-size: 13px;
|
|
28802
|
+
font-weight: 600;
|
|
28803
|
+
white-space: nowrap;
|
|
28804
|
+
color: var(--color-text-maxcontrast);
|
|
28805
|
+
background: var(--color-background-hover);
|
|
28806
|
+
}
|
|
28807
|
+
.cn-field-list-widget__th--menu[data-v-0f29a833],
|
|
28808
|
+
.cn-field-list-widget__td--menu[data-v-0f29a833] {
|
|
28809
|
+
width: 1%;
|
|
28810
|
+
text-align: end;
|
|
28811
|
+
}
|
|
28812
|
+
.cn-field-list-widget__tr[data-v-0f29a833] {
|
|
28813
|
+
border-top: 1px solid var(--cn-board-hairline, var(--color-border));
|
|
28814
|
+
}
|
|
28815
|
+
.cn-field-list-widget__td[data-v-0f29a833] {
|
|
28816
|
+
padding: 10px 12px;
|
|
28817
|
+
vertical-align: middle;
|
|
28818
|
+
overflow-wrap: anywhere;
|
|
28819
|
+
}
|
|
28820
|
+
.cn-field-list-widget__sr[data-v-0f29a833] {
|
|
28821
|
+
position: absolute;
|
|
28822
|
+
width: 1px;
|
|
28823
|
+
height: 1px;
|
|
28824
|
+
overflow: hidden;
|
|
28825
|
+
clip-path: inset(50%);
|
|
28826
|
+
}
|
|
28827
|
+
.cn-field-list-widget__band[data-v-0f29a833] {
|
|
28828
|
+
display: flex;
|
|
28829
|
+
flex-wrap: wrap;
|
|
28830
|
+
align-items: center;
|
|
28831
|
+
justify-content: space-between;
|
|
28832
|
+
gap: 8px 12px;
|
|
28833
|
+
padding: 12px 14px;
|
|
28834
|
+
border: 1px solid var(--color-warning);
|
|
28835
|
+
border-radius: 10px;
|
|
28836
|
+
background: color-mix(in srgb, var(--color-warning) 14%, var(--color-main-background));
|
|
28837
|
+
font-size: 14px;
|
|
28838
|
+
}
|
|
28839
|
+
|
|
28840
|
+
|
|
28841
|
+
.cn-settings-form[data-v-731c450f] {
|
|
28842
|
+
display: flex;
|
|
28843
|
+
flex-direction: column;
|
|
28844
|
+
gap: 14px;
|
|
28845
|
+
min-width: 0;
|
|
28846
|
+
}
|
|
28847
|
+
.cn-settings-form__grid[data-v-731c450f] {
|
|
28848
|
+
display: grid;
|
|
28849
|
+
gap: 14px 16px;
|
|
28850
|
+
grid-template-columns: minmax(0, 1fr);
|
|
28851
|
+
}
|
|
28852
|
+
.cn-settings-form__grid--2[data-v-731c450f] {
|
|
28853
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
28854
|
+
}
|
|
28855
|
+
.cn-settings-form__field[data-v-731c450f] {
|
|
28856
|
+
display: flex;
|
|
28857
|
+
flex-direction: column;
|
|
28858
|
+
gap: 4px;
|
|
28859
|
+
min-width: 0;
|
|
28860
|
+
}
|
|
28861
|
+
.cn-settings-form__field--wide[data-v-731c450f] {
|
|
28862
|
+
grid-column: 1 / -1;
|
|
28863
|
+
}
|
|
28864
|
+
.cn-settings-form__label[data-v-731c450f] {
|
|
28865
|
+
font-size: 13px;
|
|
28866
|
+
font-weight: 600;
|
|
28867
|
+
color: var(--color-main-text);
|
|
28868
|
+
}
|
|
28869
|
+
.cn-settings-form__control[data-v-731c450f] {
|
|
28870
|
+
width: 100%;
|
|
28871
|
+
box-sizing: border-box;
|
|
28872
|
+
height: var(--cn-board-control-height, 40px);
|
|
28873
|
+
padding: 0 12px;
|
|
28874
|
+
border: 1px solid var(--color-border-maxcontrast);
|
|
28875
|
+
border-radius: var(--cn-board-control-radius, 8px);
|
|
28876
|
+
background: var(--color-main-background);
|
|
28877
|
+
color: var(--color-main-text);
|
|
28878
|
+
font: inherit;
|
|
28879
|
+
}
|
|
28880
|
+
.cn-settings-form__file[data-v-731c450f] {
|
|
28881
|
+
display: flex;
|
|
28882
|
+
flex-wrap: wrap;
|
|
28883
|
+
align-items: center;
|
|
28884
|
+
gap: 8px;
|
|
28885
|
+
}
|
|
28886
|
+
.cn-settings-form__control--file[data-v-731c450f] {
|
|
28887
|
+
display: inline-flex;
|
|
28888
|
+
align-items: center;
|
|
28889
|
+
width: auto;
|
|
28890
|
+
min-width: 120px;
|
|
28891
|
+
flex: 0 1 auto;
|
|
28892
|
+
overflow-wrap: anywhere;
|
|
28893
|
+
}
|
|
28894
|
+
.cn-settings-form__control--placeholder[data-v-731c450f] {
|
|
28895
|
+
color: var(--color-text-maxcontrast);
|
|
28896
|
+
}
|
|
28897
|
+
.cn-settings-form__control--area[data-v-731c450f] {
|
|
28898
|
+
height: auto;
|
|
28899
|
+
padding: 10px 12px;
|
|
28900
|
+
resize: vertical;
|
|
28901
|
+
}
|
|
28902
|
+
.cn-settings-form__control[data-v-731c450f]:focus-visible {
|
|
28903
|
+
outline: 2px solid var(--color-primary-element);
|
|
28904
|
+
outline-offset: 1px;
|
|
28905
|
+
}
|
|
28906
|
+
.cn-settings-form__hint[data-v-731c450f],
|
|
28907
|
+
.cn-settings-form__error[data-v-731c450f] {
|
|
28908
|
+
margin: 0;
|
|
28909
|
+
font-size: 12px;
|
|
28910
|
+
color: var(--color-text-maxcontrast);
|
|
28911
|
+
}
|
|
28912
|
+
.cn-settings-form__error[data-v-731c450f] {
|
|
28913
|
+
color: var(--color-error-text);
|
|
28914
|
+
}
|
|
28915
|
+
.cn-settings-form__actions[data-v-731c450f] {
|
|
28916
|
+
display: flex;
|
|
28917
|
+
justify-content: flex-start;
|
|
28918
|
+
}
|
|
28919
|
+
@media (max-width: 640px) {
|
|
28920
|
+
.cn-settings-form__grid--2[data-v-731c450f] {
|
|
28921
|
+
grid-template-columns: minmax(0, 1fr);
|
|
28922
|
+
}
|
|
28923
|
+
}
|
|
28924
|
+
|
|
28925
|
+
|
|
28926
|
+
.cn-switch-rows[data-v-9dd5b4e2] {
|
|
28927
|
+
display: flex;
|
|
28928
|
+
flex-direction: column;
|
|
28929
|
+
gap: 8px;
|
|
28930
|
+
min-width: 0;
|
|
28931
|
+
}
|
|
28932
|
+
.cn-switch-rows__list[data-v-9dd5b4e2] {
|
|
28933
|
+
list-style: none;
|
|
28934
|
+
margin: 0;
|
|
28935
|
+
padding: 0;
|
|
28936
|
+
display: flex;
|
|
28937
|
+
flex-direction: column;
|
|
28938
|
+
}
|
|
28939
|
+
.cn-switch-rows__row[data-v-9dd5b4e2] {
|
|
28940
|
+
padding: 10px 0;
|
|
28941
|
+
border-top: 1px solid var(--cn-board-hairline, var(--color-border));
|
|
28942
|
+
}
|
|
28943
|
+
.cn-switch-rows__row[data-v-9dd5b4e2]:first-child {
|
|
28944
|
+
border-top: none;
|
|
28945
|
+
padding-top: 0;
|
|
28946
|
+
}
|
|
28947
|
+
.cn-switch-rows__label[data-v-9dd5b4e2] {
|
|
28948
|
+
display: block;
|
|
28949
|
+
font-weight: 600;
|
|
28950
|
+
}
|
|
28951
|
+
.cn-switch-rows__hint[data-v-9dd5b4e2] {
|
|
28952
|
+
display: block;
|
|
28953
|
+
font-size: 12px;
|
|
28954
|
+
font-weight: 400;
|
|
28955
|
+
color: var(--color-text-maxcontrast);
|
|
28956
|
+
}
|
|
28957
|
+
|
|
28958
|
+
|
|
28959
|
+
.cn-radio-cards[data-v-8aefa4a2] {
|
|
28960
|
+
display: flex;
|
|
28961
|
+
flex-direction: column;
|
|
28962
|
+
gap: 8px;
|
|
28963
|
+
min-width: 0;
|
|
28964
|
+
margin: 0;
|
|
28965
|
+
padding: 0;
|
|
28966
|
+
border: 0;
|
|
28967
|
+
}
|
|
28968
|
+
.cn-radio-cards__legend[data-v-8aefa4a2] {
|
|
28969
|
+
padding: 0;
|
|
28970
|
+
margin-bottom: 6px;
|
|
28971
|
+
font-weight: 600;
|
|
28972
|
+
}
|
|
28973
|
+
.cn-radio-cards__grid[data-v-8aefa4a2] {
|
|
28974
|
+
display: grid;
|
|
28975
|
+
gap: 10px;
|
|
28976
|
+
grid-template-columns: minmax(0, 1fr);
|
|
28977
|
+
}
|
|
28978
|
+
.cn-radio-cards__grid--2[data-v-8aefa4a2] {
|
|
28979
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
28980
|
+
}
|
|
28981
|
+
.cn-radio-cards__grid--3[data-v-8aefa4a2] {
|
|
28982
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
28983
|
+
}
|
|
28984
|
+
.cn-radio-cards__card[data-v-8aefa4a2] {
|
|
28985
|
+
position: relative;
|
|
28986
|
+
display: flex;
|
|
28987
|
+
align-items: flex-start;
|
|
28988
|
+
gap: 10px;
|
|
28989
|
+
padding: 12px 14px;
|
|
28990
|
+
border: 1px solid var(--color-border-maxcontrast);
|
|
28991
|
+
border-radius: var(--cn-board-control-radius, 8px);
|
|
28992
|
+
background: var(--color-main-background);
|
|
28993
|
+
cursor: pointer;
|
|
28994
|
+
}
|
|
28995
|
+
.cn-radio-cards__card--selected[data-v-8aefa4a2] {
|
|
28996
|
+
border-color: var(--color-primary-element);
|
|
28997
|
+
background: var(--color-primary-element-light);
|
|
28998
|
+
box-shadow: 0 0 0 1px var(--color-primary-element);
|
|
28999
|
+
}
|
|
29000
|
+
.cn-radio-cards__card[data-v-8aefa4a2]:focus-within {
|
|
29001
|
+
outline: 2px solid var(--color-primary-element);
|
|
29002
|
+
outline-offset: 2px;
|
|
29003
|
+
}
|
|
29004
|
+
|
|
29005
|
+
/* The real input stays in the DOM and in the accessibility tree; the dot is its picture. */
|
|
29006
|
+
.cn-radio-cards__input[data-v-8aefa4a2] {
|
|
29007
|
+
position: absolute;
|
|
29008
|
+
opacity: 0;
|
|
29009
|
+
inset: 0;
|
|
29010
|
+
margin: 0;
|
|
29011
|
+
cursor: pointer;
|
|
29012
|
+
}
|
|
29013
|
+
.cn-radio-cards__dot[data-v-8aefa4a2] {
|
|
29014
|
+
flex: 0 0 auto;
|
|
29015
|
+
width: 14px;
|
|
29016
|
+
height: 14px;
|
|
29017
|
+
margin-top: 3px;
|
|
29018
|
+
box-sizing: border-box;
|
|
29019
|
+
border: 1px solid var(--color-border-maxcontrast);
|
|
29020
|
+
border-radius: 50%;
|
|
29021
|
+
background: var(--color-main-background);
|
|
29022
|
+
}
|
|
29023
|
+
.cn-radio-cards__card--selected .cn-radio-cards__dot[data-v-8aefa4a2] {
|
|
29024
|
+
border: 4px solid var(--color-primary-element);
|
|
29025
|
+
}
|
|
29026
|
+
.cn-radio-cards__text[data-v-8aefa4a2] {
|
|
29027
|
+
display: flex;
|
|
29028
|
+
flex-direction: column;
|
|
29029
|
+
gap: 2px;
|
|
29030
|
+
min-width: 0;
|
|
29031
|
+
}
|
|
29032
|
+
.cn-radio-cards__title[data-v-8aefa4a2] {
|
|
29033
|
+
font-weight: 600;
|
|
29034
|
+
}
|
|
29035
|
+
.cn-radio-cards__description[data-v-8aefa4a2] {
|
|
29036
|
+
font-size: 12px;
|
|
29037
|
+
color: var(--color-text-maxcontrast);
|
|
29038
|
+
}
|
|
29039
|
+
@media (max-width: 640px) {
|
|
29040
|
+
.cn-radio-cards__grid--2[data-v-8aefa4a2],
|
|
29041
|
+
.cn-radio-cards__grid--3[data-v-8aefa4a2] {
|
|
29042
|
+
grid-template-columns: minmax(0, 1fr);
|
|
29043
|
+
}
|
|
29044
|
+
}
|
|
29045
|
+
|
|
29046
|
+
|
|
29047
|
+
.cn-chips-field[data-v-43e5bfcf] {
|
|
29048
|
+
display: flex;
|
|
29049
|
+
flex-direction: column;
|
|
29050
|
+
gap: 6px;
|
|
29051
|
+
min-width: 0;
|
|
29052
|
+
}
|
|
29053
|
+
.cn-chips-field__label[data-v-43e5bfcf] {
|
|
29054
|
+
margin: 0;
|
|
29055
|
+
font-size: 13px;
|
|
29056
|
+
font-weight: 600;
|
|
29057
|
+
}
|
|
29058
|
+
.cn-chips-field__chips[data-v-43e5bfcf] {
|
|
29059
|
+
list-style: none;
|
|
29060
|
+
margin: 0;
|
|
29061
|
+
padding: 0;
|
|
29062
|
+
display: flex;
|
|
29063
|
+
flex-wrap: wrap;
|
|
29064
|
+
align-items: center;
|
|
29065
|
+
gap: 8px;
|
|
29066
|
+
}
|
|
29067
|
+
.cn-chips-field__chip[data-v-43e5bfcf] {
|
|
29068
|
+
display: inline-flex;
|
|
29069
|
+
align-items: center;
|
|
29070
|
+
gap: 6px;
|
|
29071
|
+
padding: 4px 6px 4px 12px;
|
|
29072
|
+
border-radius: 999px;
|
|
29073
|
+
background: var(--color-primary-element-light);
|
|
29074
|
+
color: var(--color-primary-element-light-text, var(--color-main-text));
|
|
29075
|
+
font-weight: 600;
|
|
29076
|
+
overflow-wrap: anywhere;
|
|
29077
|
+
}
|
|
29078
|
+
.cn-chips-field__remove[data-v-43e5bfcf] {
|
|
29079
|
+
display: inline-flex;
|
|
29080
|
+
align-items: center;
|
|
29081
|
+
justify-content: center;
|
|
29082
|
+
width: 20px;
|
|
29083
|
+
height: 20px;
|
|
29084
|
+
padding: 0;
|
|
29085
|
+
border: 0;
|
|
29086
|
+
border-radius: 50%;
|
|
29087
|
+
background: transparent;
|
|
29088
|
+
color: inherit;
|
|
29089
|
+
font-size: 16px;
|
|
29090
|
+
line-height: 1;
|
|
29091
|
+
cursor: pointer;
|
|
29092
|
+
}
|
|
29093
|
+
.cn-chips-field__remove[data-v-43e5bfcf]:hover:not(:disabled),
|
|
29094
|
+
.cn-chips-field__remove[data-v-43e5bfcf]:focus-visible {
|
|
29095
|
+
background: var(--color-primary-element-light-hover, var(--color-background-hover));
|
|
29096
|
+
}
|
|
29097
|
+
.cn-chips-field__add[data-v-43e5bfcf] {
|
|
29098
|
+
padding: 4px 12px;
|
|
29099
|
+
border: 1px dashed var(--color-border-maxcontrast);
|
|
29100
|
+
border-radius: 999px;
|
|
29101
|
+
background: transparent;
|
|
29102
|
+
color: var(--color-main-text);
|
|
29103
|
+
font-weight: 600;
|
|
29104
|
+
cursor: pointer;
|
|
29105
|
+
}
|
|
29106
|
+
.cn-chips-field__add[data-v-43e5bfcf]:hover:not(:disabled) {
|
|
29107
|
+
background: var(--color-background-hover);
|
|
29108
|
+
}
|
|
29109
|
+
.cn-chips-field__form[data-v-43e5bfcf] {
|
|
29110
|
+
display: flex;
|
|
29111
|
+
align-items: center;
|
|
29112
|
+
gap: 8px;
|
|
29113
|
+
}
|
|
29114
|
+
.cn-chips-field__input[data-v-43e5bfcf] {
|
|
29115
|
+
height: var(--cn-board-control-height, 40px);
|
|
29116
|
+
box-sizing: border-box;
|
|
29117
|
+
padding: 0 12px;
|
|
29118
|
+
border: 1px solid var(--color-border-maxcontrast);
|
|
29119
|
+
border-radius: var(--cn-board-control-radius, 8px);
|
|
29120
|
+
background: var(--color-main-background);
|
|
29121
|
+
color: var(--color-main-text);
|
|
29122
|
+
font: inherit;
|
|
29123
|
+
}
|
|
29124
|
+
.cn-chips-field__hint[data-v-43e5bfcf],
|
|
29125
|
+
.cn-chips-field__error[data-v-43e5bfcf] {
|
|
29126
|
+
margin: 0;
|
|
29127
|
+
font-size: 12px;
|
|
29128
|
+
color: var(--color-text-maxcontrast);
|
|
29129
|
+
}
|
|
29130
|
+
.cn-chips-field__error[data-v-43e5bfcf] {
|
|
29131
|
+
color: var(--color-error-text);
|
|
29132
|
+
}
|
|
29133
|
+
|
|
29134
|
+
|
|
29135
|
+
.cn-toggle-table[data-v-53a57112] {
|
|
29136
|
+
display: flex;
|
|
29137
|
+
flex-direction: column;
|
|
29138
|
+
gap: 8px;
|
|
29139
|
+
min-width: 0;
|
|
29140
|
+
}
|
|
29141
|
+
.cn-toggle-table__table[data-v-53a57112] {
|
|
29142
|
+
width: 100%;
|
|
29143
|
+
border-collapse: collapse;
|
|
29144
|
+
}
|
|
29145
|
+
.cn-toggle-table__head[data-v-53a57112] {
|
|
29146
|
+
padding: 8px 12px;
|
|
29147
|
+
text-align: start;
|
|
29148
|
+
font-size: 13px;
|
|
29149
|
+
font-weight: 600;
|
|
29150
|
+
color: var(--color-text-maxcontrast);
|
|
29151
|
+
background: var(--color-background-hover);
|
|
29152
|
+
}
|
|
29153
|
+
.cn-toggle-table__head--toggle[data-v-53a57112],
|
|
29154
|
+
.cn-toggle-table__cell--toggle[data-v-53a57112] {
|
|
29155
|
+
width: 1%;
|
|
29156
|
+
white-space: nowrap;
|
|
29157
|
+
text-align: end;
|
|
29158
|
+
}
|
|
29159
|
+
.cn-toggle-table__row[data-v-53a57112] {
|
|
29160
|
+
border-top: 1px solid var(--cn-board-hairline, var(--color-border));
|
|
29161
|
+
}
|
|
29162
|
+
.cn-toggle-table__cell[data-v-53a57112] {
|
|
29163
|
+
padding: 10px 12px;
|
|
29164
|
+
vertical-align: middle;
|
|
29165
|
+
overflow-wrap: anywhere;
|
|
29166
|
+
}
|
|
29167
|
+
.cn-toggle-table__title[data-v-53a57112] {
|
|
29168
|
+
display: block;
|
|
29169
|
+
font-weight: 600;
|
|
29170
|
+
}
|
|
29171
|
+
.cn-toggle-table__hint[data-v-53a57112] {
|
|
29172
|
+
display: block;
|
|
29173
|
+
font-size: 12px;
|
|
29174
|
+
color: var(--color-text-maxcontrast);
|
|
29175
|
+
}
|
|
29176
|
+
.cn-toggle-table__empty[data-v-53a57112] {
|
|
29177
|
+
margin: 0;
|
|
29178
|
+
color: var(--color-text-maxcontrast);
|
|
29179
|
+
}
|
|
29180
|
+
|
|
29181
|
+
|
|
29182
|
+
.cn-choice-picker[data-v-7075cbe2] {
|
|
29183
|
+
display: flex;
|
|
29184
|
+
flex-direction: column;
|
|
29185
|
+
gap: 12px;
|
|
29186
|
+
min-width: 0;
|
|
29187
|
+
}
|
|
29188
|
+
.cn-choice-picker__cards[data-v-7075cbe2] {
|
|
29189
|
+
display: flex;
|
|
29190
|
+
flex-wrap: wrap;
|
|
29191
|
+
gap: 10px;
|
|
29192
|
+
margin: 0;
|
|
29193
|
+
padding: 0;
|
|
29194
|
+
border: 0;
|
|
29195
|
+
}
|
|
29196
|
+
.cn-choice-picker__legend[data-v-7075cbe2] {
|
|
29197
|
+
position: absolute;
|
|
29198
|
+
width: 1px;
|
|
29199
|
+
height: 1px;
|
|
29200
|
+
overflow: hidden;
|
|
29201
|
+
clip-path: inset(50%);
|
|
29202
|
+
}
|
|
29203
|
+
.cn-choice-picker__card[data-v-7075cbe2] {
|
|
29204
|
+
position: relative;
|
|
29205
|
+
display: flex;
|
|
29206
|
+
flex: 1 1 220px;
|
|
29207
|
+
align-items: center;
|
|
29208
|
+
gap: 12px;
|
|
29209
|
+
padding: 10px 12px;
|
|
29210
|
+
border: 1px solid var(--cn-board-hairline, var(--color-border));
|
|
29211
|
+
border-radius: 10px;
|
|
29212
|
+
background: var(--color-main-background);
|
|
29213
|
+
cursor: pointer;
|
|
29214
|
+
}
|
|
29215
|
+
.cn-choice-picker__card--selected[data-v-7075cbe2] {
|
|
29216
|
+
padding: 9px 11px;
|
|
29217
|
+
border: 2px solid var(--color-primary-element);
|
|
29218
|
+
}
|
|
29219
|
+
.cn-choice-picker__card--refused[data-v-7075cbe2] {
|
|
29220
|
+
cursor: not-allowed;
|
|
29221
|
+
opacity: 0.7;
|
|
29222
|
+
}
|
|
29223
|
+
.cn-choice-picker__card[data-v-7075cbe2]:focus-within {
|
|
29224
|
+
outline: 2px solid var(--color-primary-element);
|
|
29225
|
+
outline-offset: 2px;
|
|
29226
|
+
}
|
|
29227
|
+
.cn-choice-picker__input[data-v-7075cbe2] {
|
|
29228
|
+
flex: 0 0 auto;
|
|
29229
|
+
width: 18px;
|
|
29230
|
+
height: 18px;
|
|
29231
|
+
margin: 0;
|
|
29232
|
+
accent-color: var(--color-primary-element);
|
|
29233
|
+
}
|
|
29234
|
+
.cn-choice-picker__swatches[data-v-7075cbe2] {
|
|
29235
|
+
display: flex;
|
|
29236
|
+
gap: 4px;
|
|
29237
|
+
}
|
|
29238
|
+
.cn-choice-picker__swatch[data-v-7075cbe2] {
|
|
29239
|
+
width: 18px;
|
|
29240
|
+
height: 18px;
|
|
29241
|
+
box-sizing: border-box;
|
|
29242
|
+
border: 1px solid var(--color-border);
|
|
29243
|
+
border-radius: 4px;
|
|
29244
|
+
}
|
|
29245
|
+
.cn-choice-picker__text[data-v-7075cbe2] {
|
|
29246
|
+
display: flex;
|
|
29247
|
+
flex: 1 1 auto;
|
|
29248
|
+
flex-direction: column;
|
|
29249
|
+
gap: 2px;
|
|
29250
|
+
min-width: 0;
|
|
29251
|
+
}
|
|
29252
|
+
.cn-choice-picker__title[data-v-7075cbe2] {
|
|
29253
|
+
font-size: 15px;
|
|
29254
|
+
}
|
|
29255
|
+
.cn-choice-picker__refusal[data-v-7075cbe2],
|
|
29256
|
+
.cn-choice-picker__hint[data-v-7075cbe2],
|
|
29257
|
+
.cn-choice-picker__note[data-v-7075cbe2] {
|
|
29258
|
+
margin: 0;
|
|
29259
|
+
font-size: 13px;
|
|
29260
|
+
color: var(--color-text-maxcontrast);
|
|
29261
|
+
}
|
|
29262
|
+
.cn-choice-picker__warning-intro[data-v-7075cbe2] {
|
|
29263
|
+
margin: 0 0 4px;
|
|
29264
|
+
}
|
|
29265
|
+
.cn-choice-picker__warning-list[data-v-7075cbe2] {
|
|
29266
|
+
margin: 0;
|
|
29267
|
+
padding-inline-start: 18px;
|
|
29268
|
+
}
|
|
29269
|
+
.cn-choice-picker__actions[data-v-7075cbe2] {
|
|
29270
|
+
display: flex;
|
|
29271
|
+
flex-wrap: wrap;
|
|
29272
|
+
gap: 8px;
|
|
29273
|
+
}
|
|
29274
|
+
|
|
29275
|
+
|
|
29276
|
+
.cn-record-list__list[data-v-7073b362] {
|
|
29277
|
+
list-style: none;
|
|
29278
|
+
margin: 0;
|
|
29279
|
+
padding: 0;
|
|
29280
|
+
}
|
|
29281
|
+
.cn-record-list__empty[data-v-7073b362],
|
|
29282
|
+
.cn-record-list__error[data-v-7073b362] {
|
|
29283
|
+
color: var(--color-text-maxcontrast);
|
|
29284
|
+
margin: 0;
|
|
29285
|
+
}
|
|
29286
|
+
.cn-record-list__loading[data-v-7073b362] {
|
|
29287
|
+
display: flex;
|
|
29288
|
+
justify-content: center;
|
|
29289
|
+
padding: 8px 0;
|
|
29290
|
+
}
|
|
29291
|
+
|
|
29292
|
+
/* rows */
|
|
29293
|
+
.cn-record-list--rows .cn-record-list__item + .cn-record-list__item[data-v-7073b362] {
|
|
29294
|
+
border-top: 1px solid var(--color-border);
|
|
29295
|
+
}
|
|
29296
|
+
.cn-record-list__row[data-v-7073b362] {
|
|
29297
|
+
align-items: center;
|
|
29298
|
+
color: var(--color-main-text);
|
|
29299
|
+
display: flex;
|
|
29300
|
+
gap: 16px;
|
|
29301
|
+
padding: 12px 0;
|
|
29302
|
+
text-decoration: none;
|
|
29303
|
+
}
|
|
29304
|
+
.cn-record-list__row--link:hover .cn-record-list__title[data-v-7073b362],
|
|
29305
|
+
.cn-record-list__row--link:focus-visible .cn-record-list__title[data-v-7073b362] {
|
|
29306
|
+
text-decoration: underline;
|
|
29307
|
+
}
|
|
29308
|
+
.cn-record-list__avatar[data-v-7073b362] {
|
|
29309
|
+
align-items: center;
|
|
29310
|
+
background: var(--color-background-hover);
|
|
29311
|
+
border-radius: 50%;
|
|
29312
|
+
color: var(--color-main-text);
|
|
29313
|
+
display: flex;
|
|
29314
|
+
flex: none;
|
|
29315
|
+
font-size: 12px;
|
|
29316
|
+
font-weight: 700;
|
|
29317
|
+
height: 36px;
|
|
29318
|
+
justify-content: center;
|
|
29319
|
+
width: 36px;
|
|
29320
|
+
}
|
|
29321
|
+
.cn-record-list__main[data-v-7073b362] {
|
|
29322
|
+
display: flex;
|
|
29323
|
+
flex: 1 1 auto;
|
|
29324
|
+
flex-direction: column;
|
|
29325
|
+
gap: 2px;
|
|
29326
|
+
min-width: 0;
|
|
29327
|
+
}
|
|
29328
|
+
.cn-record-list__title[data-v-7073b362] {
|
|
29329
|
+
font-size: 15px;
|
|
29330
|
+
font-weight: 700;
|
|
29331
|
+
}
|
|
29332
|
+
.cn-record-list__meta[data-v-7073b362] {
|
|
29333
|
+
color: var(--color-text-maxcontrast);
|
|
29334
|
+
font-size: 13px;
|
|
29335
|
+
}
|
|
29336
|
+
.cn-record-list__aside[data-v-7073b362] {
|
|
29337
|
+
align-items: center;
|
|
29338
|
+
display: flex;
|
|
29339
|
+
flex: none;
|
|
29340
|
+
gap: 16px;
|
|
29341
|
+
}
|
|
29342
|
+
.cn-record-list__trailing[data-v-7073b362] {
|
|
29343
|
+
font-size: 14px;
|
|
29344
|
+
white-space: nowrap;
|
|
29345
|
+
}
|
|
29346
|
+
.cn-record-list__chevron[data-v-7073b362] {
|
|
29347
|
+
color: var(--color-text-maxcontrast);
|
|
29348
|
+
flex: none;
|
|
29349
|
+
}
|
|
29350
|
+
|
|
29351
|
+
/* feed */
|
|
29352
|
+
.cn-record-list--feed .cn-record-list__item + .cn-record-list__item[data-v-7073b362] {
|
|
29353
|
+
border-top: 1px solid var(--color-border);
|
|
29354
|
+
}
|
|
29355
|
+
.cn-record-list__feed-row[data-v-7073b362] {
|
|
29356
|
+
align-items: flex-start;
|
|
29357
|
+
display: flex;
|
|
29358
|
+
gap: 14px;
|
|
29359
|
+
padding: 12px 0;
|
|
29360
|
+
}
|
|
29361
|
+
.cn-record-list__feed-icon[data-v-7073b362] {
|
|
29362
|
+
align-items: center;
|
|
29363
|
+
background: var(--color-primary-element-light);
|
|
29364
|
+
border-radius: 50%;
|
|
29365
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
29366
|
+
display: flex;
|
|
29367
|
+
flex: none;
|
|
29368
|
+
height: 36px;
|
|
29369
|
+
justify-content: center;
|
|
29370
|
+
width: 36px;
|
|
29371
|
+
}
|
|
29372
|
+
.cn-record-list__text[data-v-7073b362] {
|
|
29373
|
+
font-size: 15px;
|
|
29374
|
+
}
|
|
29375
|
+
.cn-record-list--feed .cn-record-list__main[data-v-7073b362] {
|
|
29376
|
+
color: var(--color-main-text);
|
|
29377
|
+
text-decoration: none;
|
|
29378
|
+
}
|
|
29379
|
+
|
|
29380
|
+
/* inline */
|
|
29381
|
+
.cn-record-list__inline-row[data-v-7073b362] {
|
|
29382
|
+
padding: 4px 0;
|
|
29383
|
+
}
|
|
29384
|
+
.cn-record-list__label[data-v-7073b362] {
|
|
29385
|
+
margin-inline-end: 4px;
|
|
29386
|
+
}
|
|
29387
|
+
.cn-record-list__inline-title[data-v-7073b362] {
|
|
29388
|
+
color: var(--color-main-text);
|
|
29389
|
+
}
|
|
29390
|
+
a.cn-record-list__inline-title[data-v-7073b362] {
|
|
29391
|
+
color: var(--color-primary-element);
|
|
29392
|
+
text-decoration: underline;
|
|
29393
|
+
}
|
|
29394
|
+
|
|
29395
|
+
|
|
29396
|
+
/* In a narrow side column a row stacks: title, meta, then pill and date. */
|
|
29397
|
+
.cn-detail-page__side .cn-record-list__row {
|
|
29398
|
+
align-items: flex-start;
|
|
29399
|
+
flex-direction: column;
|
|
29400
|
+
gap: 6px;
|
|
29401
|
+
}
|
|
29402
|
+
.cn-detail-page__side .cn-record-list__row .cn-record-list__title {
|
|
29403
|
+
color: var(--color-primary-element);
|
|
29404
|
+
text-decoration: underline;
|
|
29405
|
+
}
|
|
29406
|
+
.cn-detail-page__side .cn-record-list__chevron {
|
|
29407
|
+
display: none;
|
|
29408
|
+
}
|
|
29409
|
+
|
|
29410
|
+
/* A row is a touch target of at least 44px on a phone. */
|
|
29411
|
+
@media (max-width: 640px) {
|
|
29412
|
+
.cn-record-list__row {
|
|
29413
|
+
min-height: 44px;
|
|
29414
|
+
}
|
|
29415
|
+
}
|
|
29416
|
+
|
|
29417
|
+
|
|
29418
|
+
.cn-saved-views-widget__list[data-v-8ca66162] {
|
|
29419
|
+
display: flex;
|
|
29420
|
+
flex-direction: column;
|
|
29421
|
+
gap: 10px;
|
|
29422
|
+
list-style: none;
|
|
29423
|
+
margin: 0;
|
|
29424
|
+
padding: 0;
|
|
29425
|
+
}
|
|
29426
|
+
.cn-saved-views-widget__link[data-v-8ca66162] {
|
|
29427
|
+
color: var(--color-primary-element);
|
|
29428
|
+
display: inline-block;
|
|
29429
|
+
font-size: 14px;
|
|
29430
|
+
font-weight: 600;
|
|
29431
|
+
min-height: 24px;
|
|
29432
|
+
text-decoration: none;
|
|
29433
|
+
}
|
|
29434
|
+
.cn-saved-views-widget__link[data-v-8ca66162]:hover,
|
|
29435
|
+
.cn-saved-views-widget__link[data-v-8ca66162]:focus-visible {
|
|
29436
|
+
text-decoration: underline;
|
|
29437
|
+
}
|
|
29438
|
+
.cn-saved-views-widget__note[data-v-8ca66162] {
|
|
29439
|
+
color: var(--color-text-maxcontrast);
|
|
29440
|
+
margin: 0;
|
|
29441
|
+
}
|
|
29442
|
+
.cn-saved-views-widget__loading[data-v-8ca66162] {
|
|
29443
|
+
display: flex;
|
|
29444
|
+
justify-content: center;
|
|
29445
|
+
padding: 8px 0;
|
|
29446
|
+
}
|
|
29447
|
+
|
|
29448
|
+
/* A phone: each link is a 44px touch target. */
|
|
29449
|
+
@media (max-width: 640px) {
|
|
29450
|
+
.cn-saved-views-widget__link[data-v-8ca66162] {
|
|
29451
|
+
align-items: center;
|
|
29452
|
+
display: inline-flex;
|
|
29453
|
+
min-height: 44px;
|
|
29454
|
+
}
|
|
29455
|
+
}
|
|
29456
|
+
|
|
29457
|
+
|
|
29458
|
+
.cn-notepad-widget-form[data-v-c752df66] {
|
|
29459
|
+
display: flex;
|
|
29460
|
+
flex-direction: column;
|
|
29461
|
+
gap: 12px;
|
|
29462
|
+
}
|
|
29463
|
+
|
|
29464
|
+
|
|
29465
|
+
.cn-notepad-widget {
|
|
29466
|
+
display: flex;
|
|
29467
|
+
flex-direction: column;
|
|
29468
|
+
gap: 4px;
|
|
29469
|
+
height: 100%;
|
|
29470
|
+
min-height: var(--cn-notepad-min-height, 120px);
|
|
29471
|
+
}
|
|
29472
|
+
.cn-notepad-widget__textarea {
|
|
29473
|
+
flex: 1 1 auto;
|
|
29474
|
+
width: 100%;
|
|
29475
|
+
min-height: 80px;
|
|
29476
|
+
resize: none;
|
|
29477
|
+
border: none;
|
|
29478
|
+
background: transparent;
|
|
29479
|
+
color: var(--color-main-text);
|
|
29480
|
+
font: inherit;
|
|
29481
|
+
}
|
|
29482
|
+
.cn-notepad-widget__rendered {
|
|
29483
|
+
flex: 1 1 auto;
|
|
29484
|
+
overflow: auto;
|
|
29485
|
+
cursor: text;
|
|
29486
|
+
color: var(--color-main-text);
|
|
29487
|
+
}
|
|
29488
|
+
.cn-notepad-widget__status {
|
|
29489
|
+
margin: 0;
|
|
29490
|
+
min-height: 1.2em;
|
|
29491
|
+
color: var(--color-text-maxcontrast);
|
|
29492
|
+
font-size: 0.85em;
|
|
29493
|
+
}
|
|
29494
|
+
.cn-notepad-widget__status--failed {
|
|
29495
|
+
color: var(--color-error-text, var(--color-error));
|
|
29496
|
+
}
|
|
29497
|
+
|
|
29498
|
+
|
|
29499
|
+
.cn-data-form[data-v-10b5a40f] {
|
|
29500
|
+
display: flex;
|
|
29501
|
+
flex-direction: column;
|
|
29502
|
+
gap: 12px;
|
|
29503
|
+
}
|
|
29504
|
+
.cn-data-form__section[data-v-10b5a40f] {
|
|
29505
|
+
margin: 8px 0 0;
|
|
29506
|
+
font-size: 0.8em;
|
|
29507
|
+
text-transform: uppercase;
|
|
29508
|
+
letter-spacing: 0.03em;
|
|
29509
|
+
color: var(--color-text-maxcontrast);
|
|
29510
|
+
}
|
|
29511
|
+
.cn-data-form__hint[data-v-10b5a40f] {
|
|
29512
|
+
color: var(--color-text-maxcontrast);
|
|
29513
|
+
font-size: 0.9em;
|
|
29514
|
+
}
|
|
29515
|
+
.cn-data-form__row2[data-v-10b5a40f] {
|
|
29516
|
+
display: flex;
|
|
29517
|
+
gap: 12px;
|
|
29518
|
+
align-items: flex-end;
|
|
29519
|
+
}
|
|
29520
|
+
.cn-data-form__row2[data-v-10b5a40f] > * {
|
|
29521
|
+
flex: 1;
|
|
29522
|
+
min-width: 0;
|
|
29523
|
+
}
|
|
29524
|
+
.cn-data-form__layout[data-v-10b5a40f] {
|
|
29525
|
+
display: flex;
|
|
29526
|
+
align-items: flex-end;
|
|
29527
|
+
gap: 12px;
|
|
29528
|
+
flex-wrap: wrap;
|
|
29529
|
+
}
|
|
29530
|
+
.cn-data-form__layout-label[data-v-10b5a40f] {
|
|
29531
|
+
align-self: center;
|
|
29532
|
+
font-weight: 600;
|
|
29533
|
+
}
|
|
29534
|
+
.cn-data-form__presets[data-v-10b5a40f] {
|
|
29535
|
+
display: inline-flex;
|
|
29536
|
+
border: 1px solid var(--color-border);
|
|
29537
|
+
border-radius: var(--border-radius-large, 8px);
|
|
29538
|
+
overflow: hidden;
|
|
29539
|
+
}
|
|
29540
|
+
.cn-data-form__preset[data-v-10b5a40f] {
|
|
29541
|
+
border: none;
|
|
29542
|
+
background: var(--color-main-background);
|
|
29543
|
+
color: var(--color-main-text);
|
|
29544
|
+
padding: 6px 12px;
|
|
29545
|
+
cursor: pointer;
|
|
29546
|
+
border-inline-start: 1px solid var(--color-border);
|
|
29547
|
+
}
|
|
29548
|
+
.cn-data-form__preset[data-v-10b5a40f]:first-child {
|
|
29549
|
+
border-inline-start: none;
|
|
29550
|
+
}
|
|
29551
|
+
.cn-data-form__preset--active[data-v-10b5a40f] {
|
|
29552
|
+
background: var(--color-primary-element);
|
|
29553
|
+
color: var(--color-primary-element-text);
|
|
29554
|
+
font-weight: 600;
|
|
29555
|
+
}
|
|
29556
|
+
.cn-data-form__columns[data-v-10b5a40f] {
|
|
29557
|
+
width: 90px;
|
|
29558
|
+
flex: 0 0 auto;
|
|
29559
|
+
}
|
|
29560
|
+
.cn-data-form__prop[data-v-10b5a40f] {
|
|
29561
|
+
border: 1px solid var(--color-border);
|
|
29562
|
+
border-radius: var(--border-radius-large, 8px);
|
|
29563
|
+
padding: 8px 10px;
|
|
29564
|
+
}
|
|
29565
|
+
.cn-data-form__prop--hidden[data-v-10b5a40f] {
|
|
29566
|
+
opacity: 0.6;
|
|
29567
|
+
}
|
|
29568
|
+
.cn-data-form__prop--dragging[data-v-10b5a40f] {
|
|
29569
|
+
opacity: 0.4;
|
|
29570
|
+
border-style: dashed;
|
|
29571
|
+
}
|
|
29572
|
+
.cn-data-form__prop-head[data-v-10b5a40f] {
|
|
29573
|
+
display: flex;
|
|
29574
|
+
align-items: center;
|
|
29575
|
+
gap: 6px;
|
|
29576
|
+
}
|
|
29577
|
+
.cn-data-form__grip[data-v-10b5a40f] {
|
|
29578
|
+
cursor: grab;
|
|
29579
|
+
color: var(--color-text-maxcontrast);
|
|
29580
|
+
letter-spacing: -2px;
|
|
29581
|
+
user-select: none;
|
|
29582
|
+
}
|
|
29583
|
+
.cn-data-form__prop-name[data-v-10b5a40f] {
|
|
29584
|
+
font-weight: 600;
|
|
29585
|
+
}
|
|
29586
|
+
.cn-data-form__prop-body[data-v-10b5a40f] {
|
|
29587
|
+
display: grid;
|
|
29588
|
+
grid-template-columns: 2fr 1fr 1fr 1.5fr;
|
|
29589
|
+
gap: 10px;
|
|
29590
|
+
align-items: center;
|
|
29591
|
+
margin-top: 8px;
|
|
29592
|
+
}
|
|
29593
|
+
|
|
29594
|
+
|
|
29595
|
+
.cn-object-geo-form[data-v-42affc2f] {
|
|
29596
|
+
display: flex;
|
|
29597
|
+
flex-direction: column;
|
|
29598
|
+
gap: 12px;
|
|
29599
|
+
}
|
|
29600
|
+
.cn-object-geo-form__section[data-v-42affc2f] {
|
|
29601
|
+
margin: 8px 0 0;
|
|
29602
|
+
font-size: 0.8em;
|
|
29603
|
+
text-transform: uppercase;
|
|
29604
|
+
letter-spacing: 0.03em;
|
|
29605
|
+
color: var(--color-text-maxcontrast);
|
|
29606
|
+
}
|
|
29607
|
+
.cn-object-geo-form__hint[data-v-42affc2f] {
|
|
29608
|
+
color: var(--color-text-maxcontrast);
|
|
29609
|
+
font-size: 0.9em;
|
|
29610
|
+
margin: 0;
|
|
29611
|
+
}
|
|
29612
|
+
|
|
29613
|
+
|
|
29614
|
+
.cn-audit-trail-form[data-v-41073462] {
|
|
29615
|
+
display: flex;
|
|
29616
|
+
flex-direction: column;
|
|
29617
|
+
gap: 12px;
|
|
29618
|
+
}
|
|
29619
|
+
.cn-audit-trail-form__hint[data-v-41073462] {
|
|
29620
|
+
margin: 0;
|
|
29621
|
+
font-size: 0.85em;
|
|
29622
|
+
color: var(--color-text-maxcontrast);
|
|
29623
|
+
}
|
|
29624
|
+
|
|
29625
|
+
|
|
29626
|
+
.cn-kb-search-widget[data-v-e34f66e2] {
|
|
29627
|
+
display: flex;
|
|
29628
|
+
flex-direction: column;
|
|
29629
|
+
gap: 10px;
|
|
29630
|
+
width: 100%;
|
|
29631
|
+
}
|
|
29632
|
+
.cn-kb-search-widget__bound[data-v-e34f66e2],
|
|
29633
|
+
.cn-kb-search-widget__status[data-v-e34f66e2],
|
|
29634
|
+
.cn-kb-search-widget__empty[data-v-e34f66e2],
|
|
29635
|
+
.cn-kb-search-widget__hint[data-v-e34f66e2] {
|
|
29636
|
+
color: var(--color-text-maxcontrast);
|
|
29637
|
+
font-size: 0.9em;
|
|
29638
|
+
margin: 0;
|
|
29639
|
+
}
|
|
29640
|
+
.cn-kb-search-widget__bound[data-v-e34f66e2] {
|
|
29641
|
+
font-style: italic;
|
|
29642
|
+
}
|
|
29643
|
+
.cn-kb-search-widget__results[data-v-e34f66e2] {
|
|
29644
|
+
list-style: none;
|
|
29645
|
+
padding: 0;
|
|
29646
|
+
margin: 0;
|
|
29647
|
+
display: flex;
|
|
29648
|
+
flex-direction: column;
|
|
29649
|
+
gap: 8px;
|
|
29650
|
+
}
|
|
29651
|
+
.cn-kb-search-widget__result[data-v-e34f66e2] {
|
|
29652
|
+
border: 1px solid var(--color-border);
|
|
29653
|
+
border-radius: var(--border-radius);
|
|
29654
|
+
padding: 8px 10px;
|
|
29655
|
+
background: var(--color-main-background);
|
|
29656
|
+
}
|
|
29657
|
+
.cn-kb-search-widget__result-title[data-v-e34f66e2] {
|
|
29658
|
+
font-weight: 600;
|
|
29659
|
+
color: var(--color-main-text);
|
|
29660
|
+
text-decoration: none;
|
|
29661
|
+
}
|
|
29662
|
+
.cn-kb-search-widget__result-title[data-v-e34f66e2]:hover {
|
|
29663
|
+
color: var(--color-primary-element);
|
|
29664
|
+
}
|
|
29665
|
+
.cn-kb-search-widget__result-snippet[data-v-e34f66e2] {
|
|
29666
|
+
font-size: 0.9em;
|
|
29667
|
+
color: var(--color-text-maxcontrast);
|
|
29668
|
+
margin-top: 4px;
|
|
29669
|
+
}
|
|
29670
|
+
|
|
27826
29671
|
/* ========================================
|
|
27827
29672
|
@conduction/nextcloud-vue — Form widgets
|
|
27828
29673
|
======================================== */
|
|
@@ -27920,6 +29765,76 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
27920
29765
|
flex-direction: column;
|
|
27921
29766
|
gap: 2px;
|
|
27922
29767
|
}
|
|
29768
|
+
|
|
29769
|
+
/* The chips: the compact segmented group, left, in the card the grid draws. */
|
|
29770
|
+
.cn-workspace-filter-widget--chips[data-v-f0d5c1c6] {
|
|
29771
|
+
flex-direction: row;
|
|
29772
|
+
flex-wrap: wrap;
|
|
29773
|
+
align-items: center;
|
|
29774
|
+
}
|
|
29775
|
+
|
|
29776
|
+
/* A bar: its controls in one row, an `align: "end"` control pushed right. */
|
|
29777
|
+
.cn-workspace-filter-widget--bar[data-v-f0d5c1c6] {
|
|
29778
|
+
flex-direction: row;
|
|
29779
|
+
flex-wrap: wrap;
|
|
29780
|
+
align-items: center;
|
|
29781
|
+
gap: 12px 16px;
|
|
29782
|
+
}
|
|
29783
|
+
|
|
29784
|
+
/* An inline control sits in a bar: label left of the control, width to its content. */
|
|
29785
|
+
.cn-workspace-filter-widget--inline[data-v-f0d5c1c6] {
|
|
29786
|
+
flex-direction: row;
|
|
29787
|
+
align-items: center;
|
|
29788
|
+
gap: 8px;
|
|
29789
|
+
width: auto;
|
|
29790
|
+
}
|
|
29791
|
+
.cn-workspace-filter-widget--inline .cn-workspace-filter-widget__label[data-v-f0d5c1c6] {
|
|
29792
|
+
font-weight: 400;
|
|
29793
|
+
color: var(--color-text-maxcontrast);
|
|
29794
|
+
}
|
|
29795
|
+
.cn-workspace-filter-widget--end[data-v-f0d5c1c6] {
|
|
29796
|
+
margin-inline-start: auto;
|
|
29797
|
+
}
|
|
29798
|
+
.cn-workspace-filter-widget--end ~ .cn-workspace-filter-widget--end[data-v-f0d5c1c6] {
|
|
29799
|
+
margin-inline-start: 0;
|
|
29800
|
+
}
|
|
29801
|
+
.cn-workspace-filter-widget__toggle[data-v-f0d5c1c6] {
|
|
29802
|
+
font-weight: 600;
|
|
29803
|
+
}
|
|
29804
|
+
|
|
29805
|
+
/* The start card: text left, control (and link) right, as PqDashboard's "Contact starten". */
|
|
29806
|
+
.cn-workspace-filter-widget--start[data-v-f0d5c1c6] {
|
|
29807
|
+
flex-direction: row;
|
|
29808
|
+
flex-wrap: wrap;
|
|
29809
|
+
align-items: center;
|
|
29810
|
+
gap: 16px 24px;
|
|
29811
|
+
}
|
|
29812
|
+
.cn-workspace-filter-widget__text[data-v-f0d5c1c6] {
|
|
29813
|
+
flex: 1 1 320px;
|
|
29814
|
+
min-width: 0;
|
|
29815
|
+
}
|
|
29816
|
+
.cn-workspace-filter-widget__title[data-v-f0d5c1c6] {
|
|
29817
|
+
margin: 0 0 4px;
|
|
29818
|
+
font-size: 17px;
|
|
29819
|
+
font-weight: 700;
|
|
29820
|
+
color: var(--color-main-text);
|
|
29821
|
+
}
|
|
29822
|
+
.cn-workspace-filter-widget__description[data-v-f0d5c1c6] {
|
|
29823
|
+
margin: 0;
|
|
29824
|
+
max-width: 420px;
|
|
29825
|
+
color: var(--color-text-maxcontrast);
|
|
29826
|
+
}
|
|
29827
|
+
.cn-workspace-filter-widget--start .cn-workspace-filter-widget__control[data-v-f0d5c1c6],
|
|
29828
|
+
.cn-workspace-filter-widget--start > .v-select[data-v-f0d5c1c6] {
|
|
29829
|
+
flex: 0 1 480px;
|
|
29830
|
+
min-width: 240px;
|
|
29831
|
+
}
|
|
29832
|
+
.cn-workspace-filter-widget__link[data-v-f0d5c1c6] {
|
|
29833
|
+
font-weight: 600;
|
|
29834
|
+
color: var(--color-primary-element);
|
|
29835
|
+
text-decoration: underline;
|
|
29836
|
+
white-space: nowrap;
|
|
29837
|
+
}
|
|
27923
29838
|
.cn-workspace-filter-widget__count[data-v-f0d5c1c6] {
|
|
27924
29839
|
margin-inline-start: 6px;
|
|
27925
29840
|
padding: 0 6px;
|
|
@@ -27929,6 +29844,27 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
27929
29844
|
font-size: 0.85em;
|
|
27930
29845
|
}
|
|
27931
29846
|
|
|
29847
|
+
/* On a phone the bar's controls take a row each (the chips already wrap), and
|
|
29848
|
+
a switch and a select are 44px touch targets. */
|
|
29849
|
+
@media (max-width: 640px) {
|
|
29850
|
+
.cn-workspace-filter-widget--bar > .cn-workspace-filter-widget--inline[data-v-f0d5c1c6] {
|
|
29851
|
+
flex: 1 1 100%;
|
|
29852
|
+
}
|
|
29853
|
+
.cn-workspace-filter-widget--bar > .cn-workspace-filter-widget--end[data-v-f0d5c1c6] {
|
|
29854
|
+
margin-inline-start: 0;
|
|
29855
|
+
}
|
|
29856
|
+
.cn-workspace-filter-widget--inline .cn-workspace-filter-widget__toggle[data-v-f0d5c1c6] {
|
|
29857
|
+
min-height: 44px;
|
|
29858
|
+
}
|
|
29859
|
+
.cn-workspace-filter-widget--inline[data-v-f0d5c1c6] .v-select {
|
|
29860
|
+
flex: 1 1 auto;
|
|
29861
|
+
min-width: 0;
|
|
29862
|
+
}
|
|
29863
|
+
.cn-workspace-filter-widget--inline[data-v-f0d5c1c6] .vs__dropdown-toggle {
|
|
29864
|
+
min-height: 44px;
|
|
29865
|
+
}
|
|
29866
|
+
}
|
|
29867
|
+
|
|
27932
29868
|
|
|
27933
29869
|
.cn-data-matrix[data-v-6e3e1a0f] {
|
|
27934
29870
|
display: flex;
|
|
@@ -32815,6 +34751,86 @@ button.cn-object-calendar__overflow[data-v-bea31862] {
|
|
|
32815
34751
|
}
|
|
32816
34752
|
|
|
32817
34753
|
|
|
34754
|
+
/*
|
|
34755
|
+
* Layout only — this component draws no KPI of its own; the tiles inside it do
|
|
34756
|
+
* (src/css/kpi-card.css). What it DOES owe the canonical look is the rhythm
|
|
34757
|
+
* around those tiles, so the gutter is the card's own `--cn-kpi-grid-gap`
|
|
34758
|
+
* rather than a number picked here. A grid whose gutter disagrees with the
|
|
34759
|
+
* card's padding reads as a different design even when every tile is
|
|
34760
|
+
* identical.
|
|
34761
|
+
*/
|
|
34762
|
+
.cn-kpi-grid[data-v-e31696e2] {
|
|
34763
|
+
display: grid;
|
|
34764
|
+
gap: var(--cn-kpi-grid-gap, 16px);
|
|
34765
|
+
margin-bottom: 24px;
|
|
34766
|
+
}
|
|
34767
|
+
|
|
34768
|
+
/*
|
|
34769
|
+
* `minmax(0, 1fr)`, not `1fr`. A grid track's default minimum is `auto`, which
|
|
34770
|
+
* refuses to shrink below its content — and the canonical KPI value is
|
|
34771
|
+
* deliberately `white-space: nowrap`, so a long number (a formatted currency
|
|
34772
|
+
* amount, a six-figure count) pushes its track wider than its share and the
|
|
34773
|
+
* whole row overflows the page. With a 0 minimum the track holds its share and
|
|
34774
|
+
* the card's own `overflow: hidden` clips instead.
|
|
34775
|
+
*/
|
|
34776
|
+
.cn-kpi-grid--cols-2[data-v-e31696e2] {
|
|
34777
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
34778
|
+
}
|
|
34779
|
+
.cn-kpi-grid--cols-3[data-v-e31696e2] {
|
|
34780
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
34781
|
+
}
|
|
34782
|
+
.cn-kpi-grid--cols-4[data-v-e31696e2] {
|
|
34783
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
34784
|
+
}
|
|
34785
|
+
|
|
34786
|
+
/* Auto: as many 200px columns as fit (screens-dashboard-parity). */
|
|
34787
|
+
.cn-kpi-grid--cols-auto[data-v-e31696e2] {
|
|
34788
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
34789
|
+
}
|
|
34790
|
+
|
|
34791
|
+
/* Responsive breakpoints */
|
|
34792
|
+
@media (max-width: 1200px) {
|
|
34793
|
+
.cn-kpi-grid--cols-4[data-v-e31696e2] {
|
|
34794
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
34795
|
+
}
|
|
34796
|
+
}
|
|
34797
|
+
@media (max-width: 900px) {
|
|
34798
|
+
.cn-kpi-grid--cols-3[data-v-e31696e2] {
|
|
34799
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
34800
|
+
}
|
|
34801
|
+
}
|
|
34802
|
+
@media (max-width: 600px) {
|
|
34803
|
+
.cn-kpi-grid--cols-2[data-v-e31696e2],
|
|
34804
|
+
.cn-kpi-grid--cols-3[data-v-e31696e2],
|
|
34805
|
+
.cn-kpi-grid--cols-4[data-v-e31696e2] {
|
|
34806
|
+
grid-template-columns: minmax(0, 1fr);
|
|
34807
|
+
}
|
|
34808
|
+
}
|
|
34809
|
+
|
|
34810
|
+
|
|
34811
|
+
.cn-index-page-widgets--stat-row[data-v-5ec0c5bc] {
|
|
34812
|
+
margin-bottom: var(--cn-board-section-gap, 20px);
|
|
34813
|
+
}
|
|
34814
|
+
.cn-index-page-widgets__cell[data-v-5ec0c5bc] {
|
|
34815
|
+
display: flex;
|
|
34816
|
+
min-width: 0;
|
|
34817
|
+
}
|
|
34818
|
+
.cn-index-page-widgets__cell[data-v-5ec0c5bc] > * {
|
|
34819
|
+
flex: 1 1 auto;
|
|
34820
|
+
min-width: 0;
|
|
34821
|
+
}
|
|
34822
|
+
|
|
34823
|
+
/* The side panel column (DqTeamwachtrij: 300px, 16px between cards). Its
|
|
34824
|
+
place beside the toolbar and the list is set by CnIndexPage
|
|
34825
|
+
(`cn-index-page--with-side-panel`, index-page.css). */
|
|
34826
|
+
.cn-index-page-widgets--side-panel[data-v-5ec0c5bc] {
|
|
34827
|
+
display: flex;
|
|
34828
|
+
flex-direction: column;
|
|
34829
|
+
gap: 16px;
|
|
34830
|
+
min-width: 0;
|
|
34831
|
+
}
|
|
34832
|
+
|
|
34833
|
+
|
|
32818
34834
|
.cn-advanced-form-dialog__json-editor[data-v-733de04c] {
|
|
32819
34835
|
display: flex;
|
|
32820
34836
|
flex-direction: column;
|
|
@@ -34090,63 +36106,6 @@ button.cn-object-calendar__overflow[data-v-bea31862] {
|
|
|
34090
36106
|
}
|
|
34091
36107
|
|
|
34092
36108
|
|
|
34093
|
-
/*
|
|
34094
|
-
* Layout only — this component draws no KPI of its own; the tiles inside it do
|
|
34095
|
-
* (src/css/kpi-card.css). What it DOES owe the canonical look is the rhythm
|
|
34096
|
-
* around those tiles, so the gutter is the card's own `--cn-kpi-grid-gap`
|
|
34097
|
-
* rather than a number picked here. A grid whose gutter disagrees with the
|
|
34098
|
-
* card's padding reads as a different design even when every tile is
|
|
34099
|
-
* identical.
|
|
34100
|
-
*/
|
|
34101
|
-
.cn-kpi-grid[data-v-e31696e2] {
|
|
34102
|
-
display: grid;
|
|
34103
|
-
gap: var(--cn-kpi-grid-gap, 16px);
|
|
34104
|
-
margin-bottom: 24px;
|
|
34105
|
-
}
|
|
34106
|
-
|
|
34107
|
-
/*
|
|
34108
|
-
* `minmax(0, 1fr)`, not `1fr`. A grid track's default minimum is `auto`, which
|
|
34109
|
-
* refuses to shrink below its content — and the canonical KPI value is
|
|
34110
|
-
* deliberately `white-space: nowrap`, so a long number (a formatted currency
|
|
34111
|
-
* amount, a six-figure count) pushes its track wider than its share and the
|
|
34112
|
-
* whole row overflows the page. With a 0 minimum the track holds its share and
|
|
34113
|
-
* the card's own `overflow: hidden` clips instead.
|
|
34114
|
-
*/
|
|
34115
|
-
.cn-kpi-grid--cols-2[data-v-e31696e2] {
|
|
34116
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
34117
|
-
}
|
|
34118
|
-
.cn-kpi-grid--cols-3[data-v-e31696e2] {
|
|
34119
|
-
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
34120
|
-
}
|
|
34121
|
-
.cn-kpi-grid--cols-4[data-v-e31696e2] {
|
|
34122
|
-
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
34123
|
-
}
|
|
34124
|
-
|
|
34125
|
-
/* Auto: as many 200px columns as fit (screens-dashboard-parity). */
|
|
34126
|
-
.cn-kpi-grid--cols-auto[data-v-e31696e2] {
|
|
34127
|
-
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
34128
|
-
}
|
|
34129
|
-
|
|
34130
|
-
/* Responsive breakpoints */
|
|
34131
|
-
@media (max-width: 1200px) {
|
|
34132
|
-
.cn-kpi-grid--cols-4[data-v-e31696e2] {
|
|
34133
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
34134
|
-
}
|
|
34135
|
-
}
|
|
34136
|
-
@media (max-width: 900px) {
|
|
34137
|
-
.cn-kpi-grid--cols-3[data-v-e31696e2] {
|
|
34138
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
34139
|
-
}
|
|
34140
|
-
}
|
|
34141
|
-
@media (max-width: 600px) {
|
|
34142
|
-
.cn-kpi-grid--cols-2[data-v-e31696e2],
|
|
34143
|
-
.cn-kpi-grid--cols-3[data-v-e31696e2],
|
|
34144
|
-
.cn-kpi-grid--cols-4[data-v-e31696e2] {
|
|
34145
|
-
grid-template-columns: minmax(0, 1fr);
|
|
34146
|
-
}
|
|
34147
|
-
}
|
|
34148
|
-
|
|
34149
|
-
|
|
34150
36109
|
.cn-export-wizard__description[data-v-59983562] {
|
|
34151
36110
|
color: var(--color-text-maxcontrast);
|
|
34152
36111
|
margin-bottom: 12px;
|
|
@@ -35535,6 +37494,17 @@ button.cn-object-calendar__overflow[data-v-bea31862] {
|
|
|
35535
37494
|
.cn-dashboard-page__content-item[data-v-824052fe] {
|
|
35536
37495
|
width: 100%;
|
|
35537
37496
|
}
|
|
37497
|
+
/* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
|
|
37498
|
+
are 44px: the widget Actions menu and the KPI tiles. */
|
|
37499
|
+
@media (max-width: 640px) {
|
|
37500
|
+
.cn-dashboard-page--board[data-v-824052fe] .cn-widget-wrapper__actions .action-item__menutoggle,
|
|
37501
|
+
.cn-dashboard-page--board[data-v-824052fe] .cn-widget-wrapper__actions .button-vue {
|
|
37502
|
+
min-height: 44px;
|
|
37503
|
+
}
|
|
37504
|
+
.cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-824052fe] {
|
|
37505
|
+
min-height: 44px;
|
|
37506
|
+
}
|
|
37507
|
+
}
|
|
35538
37508
|
|
|
35539
37509
|
|
|
35540
37510
|
/* Trigger: strip NcActions' default button chrome down to just the chip span. */
|