@conduction/nextcloud-vue 2.61.0 → 2.63.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/CnAdminActionCard/CnAdminActionCard.vue.js +10 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js.map +1 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js +189 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js.map +1 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js +72 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js.map +1 -0
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +394 -27
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +99 -9
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +39 -18
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js +79 -2
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js +38 -25
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue2.js +21 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue2.js.map +1 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue3.js +4 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue3.js.map +1 -1
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +53 -37
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +30 -6
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -2
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js +10 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +293 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +189 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +256 -23
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +119 -51
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js +3 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js.map +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +234 -9
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +96 -57
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +51 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +5 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/selfModeActions.js +3 -3
- package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
- package/dist/esm/components/CnLinkCardsPage/CnLinkCardsPage.vue2.js.map +1 -1
- package/dist/esm/components/CnLinkCardsPage/CnLinkCardsPage.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +36 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +4 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +53 -0
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +22 -5
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnReportsPage/CnReportsPage.vue2.js.map +1 -1
- package/dist/esm/components/CnReportsPage/CnReportsPage.vue3.js.map +1 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js +121 -12
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js.map +1 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js +3 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +326 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +112 -26
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
- package/dist/esm/components/CnStorePage/CnStorePage.vue2.js.map +1 -1
- package/dist/esm/components/CnStorePage/CnStorePage.vue3.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +10 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +337 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js +102 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +34 -0
- package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -0
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +131 -8
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js +40 -38
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +8 -6
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/components/CnWikiPage/CnWikiPage.vue2.js.map +1 -1
- package/dist/esm/components/CnWikiPage/CnWikiPage.vue3.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
- package/dist/esm/composables/useDependencyCheck.js +65 -0
- package/dist/esm/composables/useDependencyCheck.js.map +1 -0
- package/dist/esm/composables/useWalkthrough.js +218 -6
- package/dist/esm/composables/useWalkthrough.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +48 -0
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +48 -0
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +557 -9
- package/dist/esm/store/useObjectStore.js +8 -0
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/columnFilters.js +311 -0
- package/dist/esm/utils/columnFilters.js.map +1 -0
- package/dist/esm/utils/groupAutocomplete.js +123 -0
- package/dist/esm/utils/groupAutocomplete.js.map +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js +2 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/pickerOptions.js +198 -0
- package/dist/esm/utils/pickerOptions.js.map +1 -0
- package/dist/esm/utils/schema.js +83 -7
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/timelineEvents.js +174 -0
- package/dist/esm/utils/timelineEvents.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/walkthroughSignals.js +88 -0
- package/dist/esm/utils/walkthroughSignals.js.map +1 -0
- package/dist/nextcloud-vue.cjs.js +9779 -5236
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +557 -9
- package/l10n/en.json +48 -0
- package/l10n/nl.json +48 -0
- package/package.json +3 -2
- package/scripts/manifest-schema-hash.js +41 -0
- package/scripts/record-manifest-schema-hash.js +52 -0
- package/src/components/CnAdminActionCard/CnAdminActionCard.vue +234 -0
- package/src/components/CnAdminActionCard/index.js +4 -0
- package/src/components/CnAppNav/CnAppNav.vue +394 -27
- package/src/components/CnAppRoot/CnAppRoot.vue +129 -15
- package/src/components/CnBannerWidget/CnBannerWidget.vue +113 -2
- package/src/components/CnBrandStripe/CnBrandStripe.md +16 -0
- package/src/components/CnBrandStripe/CnBrandStripe.vue +58 -5
- package/src/components/CnChoiceCards/CnChoiceCards.vue +56 -31
- package/src/components/CnDashboardPage/CnDashboardPage.vue +32 -8
- package/src/components/CnDataTable/CnColumnFilterPopover.vue +524 -0
- package/src/components/CnDataTable/CnDataTable.md +4 -1
- package/src/components/CnDataTable/CnDataTable.vue +302 -21
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +2 -2
- package/src/components/CnFieldHelper/CnFieldHelper.vue +4 -2
- package/src/components/CnFormDialog/CnFormDialog.vue +290 -31
- package/src/components/CnIndexPage/CnIndexPage.vue +55 -2
- package/src/components/CnIndexPage/selfModeActions.js +3 -3
- package/src/components/CnLinkCardsPage/CnLinkCardsPage.vue +35 -2
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +39 -1
- package/src/components/CnObjectSidebar/CnFilesTab.vue +65 -0
- package/src/components/CnReportsPage/CnReportsPage.vue +7 -0
- package/src/components/CnResourceSelect/CnResourceSelect.vue +123 -12
- package/src/components/CnSetupWizard/CnSetupWizard.vue +392 -3
- package/src/components/CnStorePage/CnStorePage.vue +7 -0
- package/src/components/CnTimelineWidget/CnTimelineWidget.vue +477 -0
- package/src/components/CnTimelineWidget/dashboardRegistration.js +32 -0
- package/src/components/CnTimelineWidget/index.js +4 -0
- package/src/components/CnWalkthrough/CnWalkthrough.vue +143 -10
- package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
- package/src/components/CnWikiPage/CnWikiPage.vue +7 -0
- package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
- package/src/components/index.js +2 -0
- package/src/composables/useDependencyCheck.js +61 -0
- package/src/composables/useWalkthrough.js +217 -5
- package/src/css/dashboard.css +49 -0
- package/src/css/detail-page.css +19 -0
- package/src/css/table.css +82 -2
- package/src/index.js +2 -0
- package/src/public/index.js +5 -0
- package/src/schemas/app-manifest-v2.schema.json +23 -1
- package/src/store/useObjectStore.js +8 -0
- package/src/utils/columnFilters.js +324 -0
- package/src/utils/groupAutocomplete.js +119 -0
- package/src/utils/libraryWidgetKeys.js +2 -0
- package/src/utils/pickerOptions.js +194 -0
- package/src/utils/schema.js +83 -7
- package/src/utils/timelineEvents.js +171 -0
- package/src/utils/validateManifestV2.compiled.js +2 -2
- package/src/utils/walkthroughSignals.js +94 -0
|
@@ -325,8 +325,88 @@
|
|
|
325
325
|
outline-offset: -2px;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
/*
|
|
329
|
-
|
|
328
|
+
/* Header filter button (CnDataTable `filterable`). 24px hit area with the
|
|
329
|
+
16px icon; the filled icon plus the primary colour marks an active filter,
|
|
330
|
+
so the state never rests on colour alone. */
|
|
331
|
+
.cn-table-header__filter {
|
|
332
|
+
display: inline-flex;
|
|
333
|
+
align-items: center;
|
|
334
|
+
justify-content: center;
|
|
335
|
+
width: 24px;
|
|
336
|
+
min-width: 24px;
|
|
337
|
+
height: 24px;
|
|
338
|
+
min-height: 24px;
|
|
339
|
+
margin: 0 0 0 4px;
|
|
340
|
+
padding: 0;
|
|
341
|
+
border: none;
|
|
342
|
+
border-radius: var(--border-radius, 4px);
|
|
343
|
+
background: transparent;
|
|
344
|
+
color: var(--color-text-maxcontrast);
|
|
345
|
+
vertical-align: middle;
|
|
346
|
+
cursor: pointer;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.cn-table-header__filter:hover {
|
|
350
|
+
background-color: var(--color-background-hover);
|
|
351
|
+
color: var(--color-main-text);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.cn-table-header__filter:focus-visible {
|
|
355
|
+
outline: 2px solid var(--color-main-text);
|
|
356
|
+
outline-offset: 0;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.cn-table-header__filter--active {
|
|
360
|
+
color: var(--color-primary-element);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/* Active header filters above the table, one removable chip each. */
|
|
364
|
+
.cn-data-table__filter-chips {
|
|
365
|
+
display: flex;
|
|
366
|
+
flex-wrap: wrap;
|
|
367
|
+
gap: 6px;
|
|
368
|
+
margin: 0 0 8px;
|
|
369
|
+
padding: 0;
|
|
370
|
+
list-style: none;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.cn-data-table__filter-chip {
|
|
374
|
+
display: inline-flex;
|
|
375
|
+
align-items: center;
|
|
376
|
+
gap: 4px;
|
|
377
|
+
padding: 2px 4px 2px 10px;
|
|
378
|
+
border: 1px solid var(--color-border-dark);
|
|
379
|
+
border-radius: var(--border-radius-pill, 16px);
|
|
380
|
+
background-color: var(--color-background-dark);
|
|
381
|
+
color: var(--color-main-text);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.cn-data-table__filter-chip-remove {
|
|
385
|
+
display: inline-flex;
|
|
386
|
+
align-items: center;
|
|
387
|
+
justify-content: center;
|
|
388
|
+
width: 24px;
|
|
389
|
+
min-width: 24px;
|
|
390
|
+
height: 24px;
|
|
391
|
+
min-height: 24px;
|
|
392
|
+
margin: 0;
|
|
393
|
+
padding: 0;
|
|
394
|
+
border: none;
|
|
395
|
+
border-radius: 50%;
|
|
396
|
+
background: transparent;
|
|
397
|
+
color: var(--color-main-text);
|
|
398
|
+
cursor: pointer;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
.cn-data-table__filter-chip-remove:hover {
|
|
402
|
+
background-color: var(--color-background-hover);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.cn-data-table__filter-chip-remove:focus-visible {
|
|
406
|
+
outline: 2px solid var(--color-main-text);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/* Multi-column sort priority badge (1, 2, 3), rendered only when two or more rendered, sortable columns are sorted. */
|
|
330
410
|
.cn-table-sort-badge {
|
|
331
411
|
display: inline-flex;
|
|
332
412
|
align-items: center;
|
|
@@ -2585,6 +2665,55 @@
|
|
|
2585
2665
|
.cn-dashboard-list__item:hover {
|
|
2586
2666
|
background: var(--color-background-hover);
|
|
2587
2667
|
}
|
|
2668
|
+
|
|
2669
|
+
/* "Install <app>" placeholder in a widget whose app is missing.
|
|
2670
|
+
*
|
|
2671
|
+
* NcEmptyContent centres its content with `justify-content: center`. In a
|
|
2672
|
+
* two-row dashboard tile (about 150px inside an `overflow: hidden` wrapper)
|
|
2673
|
+
* the icon, name, description and button are taller than the tile, and plain
|
|
2674
|
+
* `center` overflows on BOTH sides, so the top ran out of the widget and the
|
|
2675
|
+
* name was cut off. `safe center` falls back to the start edge when the
|
|
2676
|
+
* content does not fit, the spacing is compact, and what still does not fit
|
|
2677
|
+
* scrolls instead of being clipped. Shared by CnDashboardPage and
|
|
2678
|
+
* CnDetailWidgetHost (`cn-requires-app`). The class is doubled to outrank
|
|
2679
|
+
* NcEmptyContent's own scoped rules (`.empty-content[data-v-…]`) whatever
|
|
2680
|
+
* order the stylesheets load in. */
|
|
2681
|
+
.cn-requires-app.cn-requires-app.empty-content,
|
|
2682
|
+
.cn-requires-app.cn-requires-app .empty-content {
|
|
2683
|
+
justify-content: safe center;
|
|
2684
|
+
min-height: 0;
|
|
2685
|
+
max-height: 100%;
|
|
2686
|
+
overflow: auto;
|
|
2687
|
+
margin: 0;
|
|
2688
|
+
padding: calc(2 * var(--default-grid-baseline, 4px));
|
|
2689
|
+
gap: var(--default-grid-baseline, 4px);
|
|
2690
|
+
box-sizing: border-box;
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2693
|
+
.cn-requires-app.cn-requires-app .empty-content__icon {
|
|
2694
|
+
width: auto;
|
|
2695
|
+
height: auto;
|
|
2696
|
+
min-height: 0;
|
|
2697
|
+
margin: 0;
|
|
2698
|
+
opacity: 0.7;
|
|
2699
|
+
}
|
|
2700
|
+
|
|
2701
|
+
.cn-requires-app.cn-requires-app .empty-content__name {
|
|
2702
|
+
margin: 0;
|
|
2703
|
+
font-size: var(--default-font-size, 15px);
|
|
2704
|
+
font-weight: 600;
|
|
2705
|
+
text-align: center;
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2708
|
+
.cn-requires-app.cn-requires-app .empty-content__description {
|
|
2709
|
+
margin: 0;
|
|
2710
|
+
text-align: center;
|
|
2711
|
+
font-size: 0.9em;
|
|
2712
|
+
}
|
|
2713
|
+
|
|
2714
|
+
.cn-requires-app.cn-requires-app .empty-content__action {
|
|
2715
|
+
margin-top: var(--default-grid-baseline, 4px);
|
|
2716
|
+
}
|
|
2588
2717
|
/* ========================================
|
|
2589
2718
|
@conduction/nextcloud-vue — CnDetailPage Styles
|
|
2590
2719
|
======================================== */
|
|
@@ -2693,6 +2822,25 @@
|
|
|
2693
2822
|
flex-shrink: 0;
|
|
2694
2823
|
}
|
|
2695
2824
|
|
|
2825
|
+
/* Every control in the header sits on one line at one height. The lifecycle
|
|
2826
|
+
bar carries `margin: 0 0 8px` for its place above a page body; in the
|
|
2827
|
+
header that margin pushed its buttons up and made the row 8px taller, so
|
|
2828
|
+
the Edit button beside it read as the bigger one. A consumer's actions
|
|
2829
|
+
component can bring its own margins too, so they are reset here as well. */
|
|
2830
|
+
.cn-detail-page .cn-detail-page__header-actions .cn-lifecycle-actions {
|
|
2831
|
+
margin: 0;
|
|
2832
|
+
flex-wrap: nowrap;
|
|
2833
|
+
}
|
|
2834
|
+
|
|
2835
|
+
.cn-detail-page .cn-detail-page__header-actions > * {
|
|
2836
|
+
margin-block: 0;
|
|
2837
|
+
}
|
|
2838
|
+
|
|
2839
|
+
.cn-detail-page .cn-detail-page__header-actions .button-vue {
|
|
2840
|
+
min-height: var(--default-clickable-area);
|
|
2841
|
+
block-size: var(--default-clickable-area);
|
|
2842
|
+
}
|
|
2843
|
+
|
|
2696
2844
|
/* The sentence a refused lock acquire left behind, under the locked banner. */
|
|
2697
2845
|
.cn-detail-page__lock-refusal {
|
|
2698
2846
|
margin: 0 0 calc(3 * var(--default-grid-baseline));
|
|
@@ -5960,6 +6108,101 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
5960
6108
|
}
|
|
5961
6109
|
|
|
5962
6110
|
|
|
6111
|
+
.cn-column-filter[data-v-2cb54356] {
|
|
6112
|
+
z-index: 10000;
|
|
6113
|
+
display: flex;
|
|
6114
|
+
flex-direction: column;
|
|
6115
|
+
gap: 8px;
|
|
6116
|
+
box-sizing: border-box;
|
|
6117
|
+
max-height: 60vh;
|
|
6118
|
+
overflow-y: auto;
|
|
6119
|
+
padding: 12px;
|
|
6120
|
+
background: var(--color-main-background);
|
|
6121
|
+
color: var(--color-main-text);
|
|
6122
|
+
border: 1px solid var(--color-border-dark);
|
|
6123
|
+
border-radius: var(--border-radius-large, 8px);
|
|
6124
|
+
box-shadow: 0 2px 8px var(--color-box-shadow);
|
|
6125
|
+
font-weight: normal;
|
|
6126
|
+
text-align: start;
|
|
6127
|
+
}
|
|
6128
|
+
.cn-column-filter__heading[data-v-2cb54356] {
|
|
6129
|
+
margin: 0;
|
|
6130
|
+
font-weight: bold;
|
|
6131
|
+
}
|
|
6132
|
+
.cn-column-filter__options[data-v-2cb54356] {
|
|
6133
|
+
display: flex;
|
|
6134
|
+
flex-direction: column;
|
|
6135
|
+
gap: 4px;
|
|
6136
|
+
margin: 0;
|
|
6137
|
+
padding: 0;
|
|
6138
|
+
border: none;
|
|
6139
|
+
}
|
|
6140
|
+
.cn-column-filter__option[data-v-2cb54356] {
|
|
6141
|
+
display: flex;
|
|
6142
|
+
align-items: center;
|
|
6143
|
+
gap: 8px;
|
|
6144
|
+
min-height: 32px;
|
|
6145
|
+
cursor: pointer;
|
|
6146
|
+
}
|
|
6147
|
+
.cn-column-filter__range[data-v-2cb54356] {
|
|
6148
|
+
display: flex;
|
|
6149
|
+
gap: 8px;
|
|
6150
|
+
}
|
|
6151
|
+
.cn-column-filter__field[data-v-2cb54356] {
|
|
6152
|
+
display: flex;
|
|
6153
|
+
flex: 1 1 0;
|
|
6154
|
+
flex-direction: column;
|
|
6155
|
+
gap: 4px;
|
|
6156
|
+
min-width: 0;
|
|
6157
|
+
}
|
|
6158
|
+
.cn-column-filter__label[data-v-2cb54356] {
|
|
6159
|
+
font-size: var(--font-size-small, 13px);
|
|
6160
|
+
color: var(--color-text-maxcontrast);
|
|
6161
|
+
}
|
|
6162
|
+
.cn-column-filter__input[data-v-2cb54356] {
|
|
6163
|
+
width: 100%;
|
|
6164
|
+
box-sizing: border-box;
|
|
6165
|
+
margin: 0;
|
|
6166
|
+
}
|
|
6167
|
+
.cn-column-filter__hint[data-v-2cb54356] {
|
|
6168
|
+
margin: 0;
|
|
6169
|
+
color: var(--color-text-maxcontrast);
|
|
6170
|
+
}
|
|
6171
|
+
.cn-column-filter__actions[data-v-2cb54356] {
|
|
6172
|
+
display: flex;
|
|
6173
|
+
justify-content: flex-end;
|
|
6174
|
+
gap: 8px;
|
|
6175
|
+
}
|
|
6176
|
+
.cn-column-filter__button[data-v-2cb54356] {
|
|
6177
|
+
min-height: 34px;
|
|
6178
|
+
padding: 0 12px;
|
|
6179
|
+
border: 1px solid var(--color-border-dark);
|
|
6180
|
+
border-radius: var(--border-radius-element, 8px);
|
|
6181
|
+
background: var(--color-main-background);
|
|
6182
|
+
color: var(--color-main-text);
|
|
6183
|
+
cursor: pointer;
|
|
6184
|
+
}
|
|
6185
|
+
.cn-column-filter__button--primary[data-v-2cb54356] {
|
|
6186
|
+
border-color: var(--color-primary-element);
|
|
6187
|
+
background: var(--color-primary-element);
|
|
6188
|
+
color: var(--color-primary-element-text);
|
|
6189
|
+
}
|
|
6190
|
+
.cn-column-filter__button[data-v-2cb54356]:focus-visible,
|
|
6191
|
+
.cn-column-filter__input[data-v-2cb54356]:focus-visible,
|
|
6192
|
+
.cn-column-filter__option input[data-v-2cb54356]:focus-visible {
|
|
6193
|
+
outline: 2px solid var(--color-primary-element);
|
|
6194
|
+
outline-offset: 2px;
|
|
6195
|
+
}
|
|
6196
|
+
.cn-column-filter__sr-only[data-v-2cb54356] {
|
|
6197
|
+
position: absolute;
|
|
6198
|
+
width: 1px;
|
|
6199
|
+
height: 1px;
|
|
6200
|
+
overflow: hidden;
|
|
6201
|
+
clip-path: inset(50%);
|
|
6202
|
+
white-space: nowrap;
|
|
6203
|
+
}
|
|
6204
|
+
|
|
6205
|
+
|
|
5963
6206
|
.cn-fk-resolve-cell[data-v-471db666] {
|
|
5964
6207
|
white-space: nowrap;
|
|
5965
6208
|
overflow: hidden;
|
|
@@ -6360,8 +6603,88 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
6360
6603
|
outline-offset: -2px;
|
|
6361
6604
|
}
|
|
6362
6605
|
|
|
6363
|
-
/*
|
|
6364
|
-
|
|
6606
|
+
/* Header filter button (CnDataTable `filterable`). 24px hit area with the
|
|
6607
|
+
16px icon; the filled icon plus the primary colour marks an active filter,
|
|
6608
|
+
so the state never rests on colour alone. */
|
|
6609
|
+
.cn-table-header__filter {
|
|
6610
|
+
display: inline-flex;
|
|
6611
|
+
align-items: center;
|
|
6612
|
+
justify-content: center;
|
|
6613
|
+
width: 24px;
|
|
6614
|
+
min-width: 24px;
|
|
6615
|
+
height: 24px;
|
|
6616
|
+
min-height: 24px;
|
|
6617
|
+
margin: 0 0 0 4px;
|
|
6618
|
+
padding: 0;
|
|
6619
|
+
border: none;
|
|
6620
|
+
border-radius: var(--border-radius, 4px);
|
|
6621
|
+
background: transparent;
|
|
6622
|
+
color: var(--color-text-maxcontrast);
|
|
6623
|
+
vertical-align: middle;
|
|
6624
|
+
cursor: pointer;
|
|
6625
|
+
}
|
|
6626
|
+
|
|
6627
|
+
.cn-table-header__filter:hover {
|
|
6628
|
+
background-color: var(--color-background-hover);
|
|
6629
|
+
color: var(--color-main-text);
|
|
6630
|
+
}
|
|
6631
|
+
|
|
6632
|
+
.cn-table-header__filter:focus-visible {
|
|
6633
|
+
outline: 2px solid var(--color-main-text);
|
|
6634
|
+
outline-offset: 0;
|
|
6635
|
+
}
|
|
6636
|
+
|
|
6637
|
+
.cn-table-header__filter--active {
|
|
6638
|
+
color: var(--color-primary-element);
|
|
6639
|
+
}
|
|
6640
|
+
|
|
6641
|
+
/* Active header filters above the table, one removable chip each. */
|
|
6642
|
+
.cn-data-table__filter-chips {
|
|
6643
|
+
display: flex;
|
|
6644
|
+
flex-wrap: wrap;
|
|
6645
|
+
gap: 6px;
|
|
6646
|
+
margin: 0 0 8px;
|
|
6647
|
+
padding: 0;
|
|
6648
|
+
list-style: none;
|
|
6649
|
+
}
|
|
6650
|
+
|
|
6651
|
+
.cn-data-table__filter-chip {
|
|
6652
|
+
display: inline-flex;
|
|
6653
|
+
align-items: center;
|
|
6654
|
+
gap: 4px;
|
|
6655
|
+
padding: 2px 4px 2px 10px;
|
|
6656
|
+
border: 1px solid var(--color-border-dark);
|
|
6657
|
+
border-radius: var(--border-radius-pill, 16px);
|
|
6658
|
+
background-color: var(--color-background-dark);
|
|
6659
|
+
color: var(--color-main-text);
|
|
6660
|
+
}
|
|
6661
|
+
|
|
6662
|
+
.cn-data-table__filter-chip-remove {
|
|
6663
|
+
display: inline-flex;
|
|
6664
|
+
align-items: center;
|
|
6665
|
+
justify-content: center;
|
|
6666
|
+
width: 24px;
|
|
6667
|
+
min-width: 24px;
|
|
6668
|
+
height: 24px;
|
|
6669
|
+
min-height: 24px;
|
|
6670
|
+
margin: 0;
|
|
6671
|
+
padding: 0;
|
|
6672
|
+
border: none;
|
|
6673
|
+
border-radius: 50%;
|
|
6674
|
+
background: transparent;
|
|
6675
|
+
color: var(--color-main-text);
|
|
6676
|
+
cursor: pointer;
|
|
6677
|
+
}
|
|
6678
|
+
|
|
6679
|
+
.cn-data-table__filter-chip-remove:hover {
|
|
6680
|
+
background-color: var(--color-background-hover);
|
|
6681
|
+
}
|
|
6682
|
+
|
|
6683
|
+
.cn-data-table__filter-chip-remove:focus-visible {
|
|
6684
|
+
outline: 2px solid var(--color-main-text);
|
|
6685
|
+
}
|
|
6686
|
+
|
|
6687
|
+
/* Multi-column sort priority badge (1, 2, 3), rendered only when two or more rendered, sortable columns are sorted. */
|
|
6365
6688
|
.cn-table-sort-badge {
|
|
6366
6689
|
display: inline-flex;
|
|
6367
6690
|
align-items: center;
|
|
@@ -15143,6 +15466,10 @@ a.cn-xwiki-card__title[data-v-54e85fe3]:hover {
|
|
|
15143
15466
|
font-size: 0.9em;
|
|
15144
15467
|
margin-inline-end: auto;
|
|
15145
15468
|
}
|
|
15469
|
+
.cn-form-dialog__switch-wrapper[data-v-c3eeb0a2] {
|
|
15470
|
+
display: flex;
|
|
15471
|
+
flex-direction: column;
|
|
15472
|
+
}
|
|
15146
15473
|
.cn-form-dialog__form[data-v-c3eeb0a2] {
|
|
15147
15474
|
display: flex;
|
|
15148
15475
|
flex-direction: column;
|
|
@@ -17513,6 +17840,30 @@ to { background-position: -200% 0;
|
|
|
17513
17840
|
color: inherit;
|
|
17514
17841
|
}
|
|
17515
17842
|
|
|
17843
|
+
/* The check failed. Muted text, no fill, no severity colour: it is a note
|
|
17844
|
+
that something is not known, not a warning. */
|
|
17845
|
+
.cn-banner-widget--unchecked[data-v-3531692f] {
|
|
17846
|
+
box-sizing: border-box;
|
|
17847
|
+
margin: 0;
|
|
17848
|
+
padding: 8px 12px;
|
|
17849
|
+
color: var(--color-text-maxcontrast);
|
|
17850
|
+
font-size: 0.9em;
|
|
17851
|
+
cursor: help;
|
|
17852
|
+
}
|
|
17853
|
+
|
|
17854
|
+
/* The reason, for assistive technology; sighted readers get the tooltip. */
|
|
17855
|
+
.cn-banner-widget__unchecked-reason[data-v-3531692f] {
|
|
17856
|
+
position: absolute;
|
|
17857
|
+
width: 1px;
|
|
17858
|
+
height: 1px;
|
|
17859
|
+
margin: -1px;
|
|
17860
|
+
padding: 0;
|
|
17861
|
+
overflow: hidden;
|
|
17862
|
+
clip-path: inset(50%);
|
|
17863
|
+
white-space: nowrap;
|
|
17864
|
+
border: 0;
|
|
17865
|
+
}
|
|
17866
|
+
|
|
17516
17867
|
/* Attention card. The severity edge is an inset shadow, so it takes no width. */
|
|
17517
17868
|
.cn-banner-widget--attention[data-v-3531692f] {
|
|
17518
17869
|
--cn-banner-accent: var(--color-primary-element);
|
|
@@ -18010,6 +18361,83 @@ to { background-position: -200% 0;
|
|
|
18010
18361
|
}
|
|
18011
18362
|
|
|
18012
18363
|
|
|
18364
|
+
.cn-timeline-widget[data-v-621fcccf] {
|
|
18365
|
+
display: flex;
|
|
18366
|
+
flex-direction: column;
|
|
18367
|
+
gap: 8px;
|
|
18368
|
+
}
|
|
18369
|
+
.cn-timeline-widget__title[data-v-621fcccf] {
|
|
18370
|
+
margin: 0;
|
|
18371
|
+
font-size: var(--font-size-large, 1.1em);
|
|
18372
|
+
}
|
|
18373
|
+
.cn-timeline-widget__loading[data-v-621fcccf] {
|
|
18374
|
+
display: flex;
|
|
18375
|
+
align-items: center;
|
|
18376
|
+
gap: 8px;
|
|
18377
|
+
color: var(--color-text-maxcontrast);
|
|
18378
|
+
}
|
|
18379
|
+
.cn-timeline-widget__empty[data-v-621fcccf] {
|
|
18380
|
+
margin: 0;
|
|
18381
|
+
color: var(--color-text-maxcontrast);
|
|
18382
|
+
}
|
|
18383
|
+
.cn-timeline-widget__list[data-v-621fcccf] {
|
|
18384
|
+
margin: 0;
|
|
18385
|
+
padding: 0;
|
|
18386
|
+
list-style: none;
|
|
18387
|
+
}
|
|
18388
|
+
.cn-timeline-widget__event[data-v-621fcccf] {
|
|
18389
|
+
position: relative;
|
|
18390
|
+
display: flex;
|
|
18391
|
+
gap: 12px;
|
|
18392
|
+
padding-block-end: 12px;
|
|
18393
|
+
}
|
|
18394
|
+
|
|
18395
|
+
/* The line between dots: drawn from each dot down to the next event. */
|
|
18396
|
+
.cn-timeline-widget__event[data-v-621fcccf]:not(:last-child)::before {
|
|
18397
|
+
content: '';
|
|
18398
|
+
position: absolute;
|
|
18399
|
+
inset-block: 14px 0;
|
|
18400
|
+
inset-inline-start: 5px;
|
|
18401
|
+
border-inline-start: 2px solid var(--color-border-dark);
|
|
18402
|
+
}
|
|
18403
|
+
.cn-timeline-widget__dot[data-v-621fcccf] {
|
|
18404
|
+
flex: 0 0 auto;
|
|
18405
|
+
width: 12px;
|
|
18406
|
+
height: 12px;
|
|
18407
|
+
margin-block-start: 4px;
|
|
18408
|
+
border-radius: 50%;
|
|
18409
|
+
background-color: var(--color-primary-element);
|
|
18410
|
+
}
|
|
18411
|
+
|
|
18412
|
+
/* Upcoming: a hollow dot, plus the word "Upcoming" beside the date. */
|
|
18413
|
+
.cn-timeline-widget__event--upcoming .cn-timeline-widget__dot[data-v-621fcccf] {
|
|
18414
|
+
box-sizing: border-box;
|
|
18415
|
+
border: 2px solid var(--color-primary-element);
|
|
18416
|
+
background-color: var(--color-main-background);
|
|
18417
|
+
}
|
|
18418
|
+
.cn-timeline-widget__body[data-v-621fcccf] {
|
|
18419
|
+
min-width: 0;
|
|
18420
|
+
}
|
|
18421
|
+
.cn-timeline-widget__when[data-v-621fcccf] {
|
|
18422
|
+
font-size: var(--font-size-small, 13px);
|
|
18423
|
+
color: var(--color-text-maxcontrast);
|
|
18424
|
+
}
|
|
18425
|
+
.cn-timeline-widget__badge[data-v-621fcccf] {
|
|
18426
|
+
margin-inline-start: 8px;
|
|
18427
|
+
font-size: var(--font-size-small, 13px);
|
|
18428
|
+
font-weight: bold;
|
|
18429
|
+
color: var(--color-main-text);
|
|
18430
|
+
}
|
|
18431
|
+
.cn-timeline-widget__label[data-v-621fcccf] {
|
|
18432
|
+
margin: 0;
|
|
18433
|
+
font-weight: bold;
|
|
18434
|
+
}
|
|
18435
|
+
.cn-timeline-widget__detail[data-v-621fcccf] {
|
|
18436
|
+
margin: 0;
|
|
18437
|
+
overflow-wrap: anywhere;
|
|
18438
|
+
}
|
|
18439
|
+
|
|
18440
|
+
|
|
18013
18441
|
.cn-object-card[data-v-6f672c8f] {
|
|
18014
18442
|
display: flex;
|
|
18015
18443
|
gap: 12px;
|
|
@@ -23292,6 +23720,17 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
23292
23720
|
}
|
|
23293
23721
|
|
|
23294
23722
|
|
|
23723
|
+
.cn-admin-action-card__description[data-v-57907ee5] {
|
|
23724
|
+
margin: 0 0 12px;
|
|
23725
|
+
color: var(--color-text-maxcontrast);
|
|
23726
|
+
}
|
|
23727
|
+
.cn-admin-action-card__footer[data-v-57907ee5] {
|
|
23728
|
+
display: flex;
|
|
23729
|
+
gap: 8px;
|
|
23730
|
+
margin-block: 8px;
|
|
23731
|
+
}
|
|
23732
|
+
|
|
23733
|
+
|
|
23295
23734
|
.cn-version-info__card[data-v-3dc855b2] {
|
|
23296
23735
|
background: var(--color-background-hover);
|
|
23297
23736
|
border: 1px solid var(--color-border);
|
|
@@ -23676,6 +24115,19 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
23676
24115
|
padding: 12px;
|
|
23677
24116
|
}
|
|
23678
24117
|
|
|
24118
|
+
.cn-choice-cards__cell[data-v-93473002] {
|
|
24119
|
+
display: flex;
|
|
24120
|
+
flex-direction: column;
|
|
24121
|
+
gap: 8px;
|
|
24122
|
+
min-inline-size: 0;
|
|
24123
|
+
}
|
|
24124
|
+
|
|
24125
|
+
.cn-choice-cards__actions[data-v-93473002] {
|
|
24126
|
+
display: flex;
|
|
24127
|
+
flex-direction: column;
|
|
24128
|
+
gap: 4px;
|
|
24129
|
+
}
|
|
24130
|
+
|
|
23679
24131
|
.cn-choice-cards__option[data-v-93473002] {
|
|
23680
24132
|
position: relative;
|
|
23681
24133
|
display: block;
|
|
@@ -23838,6 +24290,16 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-75628
|
|
|
23838
24290
|
padding: 24px 0;
|
|
23839
24291
|
color: var(--color-text-maxcontrast);
|
|
23840
24292
|
}
|
|
24293
|
+
.cn-setup-load-result[data-v-75b2078b] {
|
|
24294
|
+
margin: 0;
|
|
24295
|
+
font-size: var(--font-size-small, 13px);
|
|
24296
|
+
}
|
|
24297
|
+
.cn-setup-load-result--success[data-v-75b2078b] {
|
|
24298
|
+
color: var(--color-success-text, var(--color-success));
|
|
24299
|
+
}
|
|
24300
|
+
.cn-setup-load-result--error[data-v-75b2078b] {
|
|
24301
|
+
color: var(--color-error-text, var(--color-error));
|
|
24302
|
+
}
|
|
23841
24303
|
.cn-setup-field[data-v-75b2078b] {
|
|
23842
24304
|
display: flex;
|
|
23843
24305
|
flex-direction: column;
|
|
@@ -28668,6 +29130,10 @@ to {
|
|
|
28668
29130
|
padding: 16px;
|
|
28669
29131
|
pointer-events: auto;
|
|
28670
29132
|
}
|
|
29133
|
+
.cn-walkthrough__card--docked[data-v-5691d49a] {
|
|
29134
|
+
inset-block-end: 16px;
|
|
29135
|
+
inset-inline-start: 16px;
|
|
29136
|
+
}
|
|
28671
29137
|
.cn-walkthrough__close[data-v-5691d49a] {
|
|
28672
29138
|
/* !important beats NcButton's own `position: relative`, which would otherwise
|
|
28673
29139
|
leave the close button in-flow at the card's top-left. */
|
|
@@ -31815,6 +32281,13 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
31815
32281
|
.cn-wiki-page__header[data-v-25a3d3cf] {
|
|
31816
32282
|
margin-bottom: 16px;
|
|
31817
32283
|
}
|
|
32284
|
+
|
|
32285
|
+
/* Without a sidebar the title starts at the left edge of the content, under
|
|
32286
|
+
the Nextcloud navigation toggle button (44px wide). Clear it as CnPageHeader
|
|
32287
|
+
does. With a sidebar the tree sits there instead and the title is clear. */
|
|
32288
|
+
.cn-wiki-page:not(.cn-wiki-page--has-sidebar) .cn-wiki-page__header[data-v-25a3d3cf] {
|
|
32289
|
+
padding-inline-start: 56px;
|
|
32290
|
+
}
|
|
31818
32291
|
.cn-wiki-page__title[data-v-25a3d3cf] {
|
|
31819
32292
|
font-size: 1.6em;
|
|
31820
32293
|
margin: 0;
|
|
@@ -31874,6 +32347,13 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
31874
32347
|
.cn-reports-page[data-v-41525752] {
|
|
31875
32348
|
padding: 16px;
|
|
31876
32349
|
}
|
|
32350
|
+
|
|
32351
|
+
/* Clear the Nextcloud navigation toggle button (44px wide, absolutely
|
|
32352
|
+
positioned at the left edge of .app-content) plus 12px breathing room, as
|
|
32353
|
+
CnPageHeader does. Only the header shifts; the body keeps the full width. */
|
|
32354
|
+
.cn-reports-page__header[data-v-41525752] {
|
|
32355
|
+
padding-inline-start: 56px;
|
|
32356
|
+
}
|
|
31877
32357
|
.cn-reports-page__title[data-v-41525752] {
|
|
31878
32358
|
margin: 0 0 4px;
|
|
31879
32359
|
}
|
|
@@ -31930,6 +32410,13 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
31930
32410
|
padding: 16px;
|
|
31931
32411
|
max-width: 1200px;
|
|
31932
32412
|
}
|
|
32413
|
+
|
|
32414
|
+
/* Clear the Nextcloud navigation toggle button (44px wide, absolutely
|
|
32415
|
+
positioned at the left edge of .app-content) plus 12px breathing room, as
|
|
32416
|
+
CnPageHeader does. Only the header shifts; the body keeps the full width. */
|
|
32417
|
+
.cn-store-page__header[data-v-25c8171b] {
|
|
32418
|
+
padding-inline-start: 56px;
|
|
32419
|
+
}
|
|
31933
32420
|
.cn-store-page__heading[data-v-25c8171b] {
|
|
31934
32421
|
display: flex;
|
|
31935
32422
|
flex-wrap: wrap;
|
|
@@ -32019,6 +32506,13 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
32019
32506
|
gap: calc(6 * var(--default-grid-baseline));
|
|
32020
32507
|
padding: calc(5 * var(--default-grid-baseline));
|
|
32021
32508
|
}
|
|
32509
|
+
|
|
32510
|
+
/* Clear the Nextcloud navigation toggle button (44px wide, absolutely
|
|
32511
|
+
positioned at the left edge of .app-content) plus 12px breathing room, as
|
|
32512
|
+
CnPageHeader does. Only the header shifts; the cards keep the full width. */
|
|
32513
|
+
.cn-link-cards-page__header[data-v-2f9a546b] {
|
|
32514
|
+
padding-inline-start: 56px;
|
|
32515
|
+
}
|
|
32022
32516
|
.cn-link-cards-page__title[data-v-2f9a546b] {
|
|
32023
32517
|
margin: 0 0 var(--default-grid-baseline);
|
|
32024
32518
|
}
|
|
@@ -32063,11 +32557,31 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
32063
32557
|
gap: calc(3 * var(--default-grid-baseline));
|
|
32064
32558
|
min-width: 0;
|
|
32065
32559
|
padding: calc(4 * var(--default-grid-baseline));
|
|
32066
|
-
|
|
32560
|
+
transition: background-color var(--animation-quick, 100ms) ease, border-color var(--animation-quick, 100ms) ease, box-shadow var(--animation-quick, 100ms) ease;
|
|
32561
|
+
}
|
|
32562
|
+
|
|
32563
|
+
/* A card is a link, and it must not look like a line of prose. A theme may
|
|
32564
|
+
underline every link with `!important` (thematiq: `a { text-decoration:
|
|
32565
|
+
underline !important }`, specificity 0,0,1). Among `!important` rules the
|
|
32566
|
+
higher specificity wins, so this class rule has to carry it too; without it
|
|
32567
|
+
the label and the description both rendered underlined on a live Nextcloud. */
|
|
32568
|
+
.cn-link-cards-page__card[data-v-2f9a546b],
|
|
32569
|
+
.cn-link-cards-page__card[data-v-2f9a546b]:hover,
|
|
32570
|
+
.cn-link-cards-page__card[data-v-2f9a546b]:focus,
|
|
32571
|
+
.cn-link-cards-page__card[data-v-2f9a546b]:active {
|
|
32572
|
+
text-decoration: none !important;
|
|
32067
32573
|
}
|
|
32574
|
+
|
|
32575
|
+
/* Hover moves the whole card: border, background and a soft lift. */
|
|
32068
32576
|
.cn-link-cards-page__card[data-v-2f9a546b]:hover {
|
|
32069
32577
|
background: var(--color-background-hover);
|
|
32070
32578
|
border-color: var(--color-primary-element);
|
|
32579
|
+
box-shadow: 0 2px 6px var(--color-box-shadow);
|
|
32580
|
+
}
|
|
32581
|
+
@media (prefers-reduced-motion: reduce) {
|
|
32582
|
+
.cn-link-cards-page__card[data-v-2f9a546b] {
|
|
32583
|
+
transition: none;
|
|
32584
|
+
}
|
|
32071
32585
|
}
|
|
32072
32586
|
.cn-link-cards-page__card[data-v-2f9a546b]:focus-visible {
|
|
32073
32587
|
border-color: var(--color-primary-element);
|
|
@@ -32084,8 +32598,15 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
32084
32598
|
gap: var(--default-grid-baseline);
|
|
32085
32599
|
min-width: 0;
|
|
32086
32600
|
}
|
|
32601
|
+
|
|
32602
|
+
/* The label is the card's title. Its colour is set here, on the span, because
|
|
32603
|
+
a theme may force its link colour on the `a` itself; an inherited link
|
|
32604
|
+
colour made the title read as a hyperlink. */
|
|
32087
32605
|
.cn-link-cards-page__label[data-v-2f9a546b] {
|
|
32088
|
-
|
|
32606
|
+
color: var(--color-main-text);
|
|
32607
|
+
font-size: 1.05em;
|
|
32608
|
+
font-weight: 700;
|
|
32609
|
+
line-height: 1.3;
|
|
32089
32610
|
overflow-wrap: anywhere;
|
|
32090
32611
|
}
|
|
32091
32612
|
.cn-link-cards-page__card-description[data-v-2f9a546b] {
|
|
@@ -33636,6 +34157,11 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
33636
34157
|
margin-bottom: 12px;
|
|
33637
34158
|
color: var(--color-text-maxcontrast);
|
|
33638
34159
|
}
|
|
34160
|
+
.cn-app-root__walkthrough-actions {
|
|
34161
|
+
display: flex;
|
|
34162
|
+
flex-wrap: wrap;
|
|
34163
|
+
gap: 8px;
|
|
34164
|
+
}
|
|
33639
34165
|
.cn-app-root__integrations-hint {
|
|
33640
34166
|
margin-bottom: 12px;
|
|
33641
34167
|
color: var(--color-text-maxcontrast);
|
|
@@ -34308,15 +34834,40 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
34308
34834
|
|
|
34309
34835
|
|
|
34310
34836
|
.cn-brand-stripe[data-v-6fdfa763] {
|
|
34837
|
+
--cn-brand-stripe-first: var(--cn-brand-stripe-ratio-1, 1);
|
|
34838
|
+
--cn-brand-stripe-second: var(--cn-brand-stripe-ratio-2, 1);
|
|
34839
|
+
--cn-brand-stripe-total: calc(
|
|
34840
|
+
var(--cn-brand-stripe-first) + var(--cn-brand-stripe-second) + var(--cn-brand-stripe-ratio-3, 1)
|
|
34841
|
+
);
|
|
34842
|
+
--cn-brand-stripe-stop-1: calc(var(--cn-brand-stripe-first) / var(--cn-brand-stripe-total) * 100%);
|
|
34843
|
+
--cn-brand-stripe-stop-2: calc(
|
|
34844
|
+
(var(--cn-brand-stripe-first) + var(--cn-brand-stripe-second)) / var(--cn-brand-stripe-total) * 100%
|
|
34845
|
+
);
|
|
34846
|
+
--cn-brand-stripe-direction: to right;
|
|
34847
|
+
--cn-brand-stripe-bands: linear-gradient(
|
|
34848
|
+
var(--cn-brand-stripe-direction),
|
|
34849
|
+
var(--cn-brand-stripe-color-1, var(--color-primary-element)) 0 var(--cn-brand-stripe-stop-1),
|
|
34850
|
+
var(--cn-brand-stripe-color-2, var(--color-primary-element)) var(--cn-brand-stripe-stop-1) var(--cn-brand-stripe-stop-2),
|
|
34851
|
+
var(--cn-brand-stripe-color-3, var(--color-primary-element)) var(--cn-brand-stripe-stop-2) 100%
|
|
34852
|
+
);
|
|
34311
34853
|
display: flex;
|
|
34312
34854
|
flex: none;
|
|
34313
34855
|
width: 100%;
|
|
34314
34856
|
height: var(--cn-brand-stripe-height, 4px);
|
|
34857
|
+
background-image: var(--cn-brand-stripe-image, var(--cn-brand-stripe-bands));
|
|
34858
|
+
background-repeat: repeat-x;
|
|
34859
|
+
background-size: auto 100%;
|
|
34860
|
+
}
|
|
34861
|
+
.cn-brand-stripe--inverse[data-v-6fdfa763] {
|
|
34862
|
+
background-image: var(--cn-brand-stripe-image-inverse, var(--cn-brand-stripe-image, var(--cn-brand-stripe-bands)));
|
|
34315
34863
|
}
|
|
34316
34864
|
.cn-brand-stripe--vertical[data-v-6fdfa763] {
|
|
34865
|
+
--cn-brand-stripe-direction: to bottom;
|
|
34317
34866
|
flex-direction: column;
|
|
34318
34867
|
width: var(--cn-brand-stripe-height, 4px);
|
|
34319
34868
|
height: 100%;
|
|
34869
|
+
background-repeat: repeat-y;
|
|
34870
|
+
background-size: 100% auto;
|
|
34320
34871
|
}
|
|
34321
34872
|
.cn-brand-stripe__band[data-v-6fdfa763] {
|
|
34322
34873
|
flex-basis: 0;
|
|
@@ -34324,15 +34875,12 @@ a.cn-integration-card__title[data-v-f7e9bbfa]:hover {
|
|
|
34324
34875
|
}
|
|
34325
34876
|
.cn-brand-stripe__band--1[data-v-6fdfa763] {
|
|
34326
34877
|
flex-grow: var(--cn-brand-stripe-ratio-1, 1);
|
|
34327
|
-
background-color: var(--cn-brand-stripe-color-1, var(--color-primary-element));
|
|
34328
34878
|
}
|
|
34329
34879
|
.cn-brand-stripe__band--2[data-v-6fdfa763] {
|
|
34330
34880
|
flex-grow: var(--cn-brand-stripe-ratio-2, 1);
|
|
34331
|
-
background-color: var(--cn-brand-stripe-color-2, var(--color-primary-element));
|
|
34332
34881
|
}
|
|
34333
34882
|
.cn-brand-stripe__band--3[data-v-6fdfa763] {
|
|
34334
34883
|
flex-grow: var(--cn-brand-stripe-ratio-3, 1);
|
|
34335
|
-
background-color: var(--cn-brand-stripe-color-3, var(--color-primary-element));
|
|
34336
34884
|
}
|
|
34337
34885
|
@media print {
|
|
34338
34886
|
.cn-brand-stripe[data-v-6fdfa763] {
|