@conduction/nextcloud-vue 2.76.0 → 2.78.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/CnAiCompanion/CnAiCompanion.vue2.js +23 -0
- package/dist/esm/components/CnAiCompanion/CnAiCompanion.vue2.js.map +1 -1
- package/dist/esm/components/CnAiCompanion/CnAiCompanion.vue3.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +18 -3
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +49 -3
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +2 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +79 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +229 -203
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnGroupNameCell.vue.js +9 -0
- package/dist/esm/components/CnCellRenderer/CnGroupNameCell.vue.js.map +1 -0
- package/dist/esm/components/CnCellRenderer/CnGroupNameCell.vue2.js +50 -0
- package/dist/esm/components/CnCellRenderer/CnGroupNameCell.vue2.js.map +1 -0
- package/dist/esm/components/CnCellRenderer/CnGroupNameCell.vue3.js +13 -0
- package/dist/esm/components/CnCellRenderer/CnGroupNameCell.vue3.js.map +1 -0
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +37 -0
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js +2 -2
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +29 -4
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +48 -6
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +90 -51
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue.js +1 -1
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue2.js +45 -2
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue2.js.map +1 -1
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +16 -28
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +12 -24
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnFavouriteToggle/CnFavouriteToggle.vue2.js +7 -2
- package/dist/esm/components/CnFavouriteToggle/CnFavouriteToggle.vue2.js.map +1 -1
- package/dist/esm/components/CnFavouriteToggle/CnFavouriteToggle.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +114 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +115 -62
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js +89 -7
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js.map +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue3.js +62 -30
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue3.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +7 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js +4 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +104 -13
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +13 -9
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +199 -7
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js +155 -119
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +6 -0
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +4 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +36 -0
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +35 -23
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatusBadge/CnStatusBadge.vue2.js +6 -2
- package/dist/esm/components/CnStatusBadge/CnStatusBadge.vue2.js.map +1 -1
- package/dist/esm/components/CnStatusBadge/CnStatusBadge.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +13 -0
- 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/composables/useFormDraft.js +11 -1
- package/dist/esm/composables/useFormDraft.js.map +1 -1
- package/dist/esm/composables/useListView.js +4 -0
- package/dist/esm/composables/useListView.js.map +1 -1
- package/dist/esm/composables/useObjectPresence.js +15 -4
- package/dist/esm/composables/useObjectPresence.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +32 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +32 -1
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +500 -75
- package/dist/esm/store/plugins/interactions.js +20 -10
- package/dist/esm/store/plugins/interactions.js.map +1 -1
- package/dist/esm/store/useObjectStore.js +17 -0
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/badgeVariants.js +32 -0
- package/dist/esm/utils/badgeVariants.js.map +1 -0
- package/dist/esm/utils/builtInFormatters.js +15 -7
- package/dist/esm/utils/builtInFormatters.js.map +1 -1
- package/dist/esm/utils/groupAutocomplete.js +63 -1
- package/dist/esm/utils/groupAutocomplete.js.map +1 -1
- package/dist/esm/utils/lensAvailability.js +90 -0
- package/dist/esm/utils/lensAvailability.js.map +1 -0
- package/dist/esm/utils/personalLenses.js +13 -6
- package/dist/esm/utils/personalLenses.js.map +1 -1
- package/dist/esm/utils/recordInteractions.js +31 -13
- package/dist/esm/utils/recordInteractions.js.map +1 -1
- package/dist/esm/utils/resolveFilterTokens.js +46 -3
- package/dist/esm/utils/resolveFilterTokens.js.map +1 -1
- package/dist/esm/utils/schema.js +1 -1
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/sentinelTokens.js +4 -4
- package/dist/esm/utils/sentinelTokens.js.map +1 -1
- package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/widgetVisibility.js +46 -1
- package/dist/esm/utils/widgetVisibility.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +4389 -2890
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +500 -75
- package/l10n/en.json +32 -1
- package/l10n/nl.json +32 -1
- package/package.json +1 -1
- package/src/components/CnAiCompanion/CnAiCompanion.vue +23 -0
- package/src/components/CnAppNav/CnAppNav.vue +44 -5
- package/src/components/CnBoardView/CnBoardView.vue +2 -1
- package/src/components/CnCellRenderer/CnCellRenderer.md +1 -0
- package/src/components/CnCellRenderer/CnCellRenderer.vue +106 -9
- package/src/components/CnCellRenderer/CnGroupNameCell.vue +61 -0
- package/src/components/CnChartWidget/CnChartWidget.vue +39 -2
- package/src/components/CnDashboardPage/CnDashboardPage.vue +29 -4
- package/src/components/CnDataTable/CnDataTable.md +9 -0
- package/src/components/CnDataTable/CnDataTable.vue +87 -22
- package/src/components/CnDateRangePicker/CnDateRangePicker.vue +44 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +10 -27
- package/src/components/CnFavouriteToggle/CnFavouriteToggle.vue +7 -2
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +204 -5
- package/src/components/CnFollowToggle/CnFollowToggle.vue +118 -13
- package/src/components/CnFormDialog/CnFormDialog.vue +7 -1
- package/src/components/CnFormPage/CnFormPage.vue +4 -1
- package/src/components/CnIndexPage/CnIndexPage.md +36 -0
- package/src/components/CnIndexPage/CnIndexPage.vue +112 -19
- package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +226 -2
- package/src/components/CnObjectSidebar/CnFilesTab.vue +9 -0
- package/src/components/CnStatWidget/CnStatWidget.vue +52 -2
- package/src/components/CnStatusBadge/CnStatusBadge.vue +6 -2
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +13 -0
- package/src/composables/__tests__/useObjectPresence.spec.js +24 -0
- package/src/composables/useFormDraft.js +11 -1
- package/src/composables/useListView.js +4 -0
- package/src/composables/useObjectPresence.js +15 -4
- package/src/css/badge.css +31 -0
- package/src/css/kpi-card.css +51 -0
- package/src/css/look-board-detail.css +40 -2
- package/src/css/look-board-index.css +36 -0
- package/src/css/look-board.css +8 -0
- package/src/css/table.css +82 -17
- package/src/index.js +2 -1
- package/src/schemas/app-manifest-v2.schema.json +15 -11
- package/src/store/plugins/interactions.js +20 -10
- package/src/store/useObjectStore.js +17 -0
- package/src/utils/badgeVariants.js +29 -0
- package/src/utils/builtInFormatters.js +15 -7
- package/src/utils/groupAutocomplete.js +75 -0
- package/src/utils/index.js +1 -1
- package/src/utils/lensAvailability.js +86 -0
- package/src/utils/personalLenses.js +13 -6
- package/src/utils/recordInteractions.js +31 -13
- package/src/utils/resolveFilterTokens.js +45 -2
- package/src/utils/schema.js +1 -1
- package/src/utils/sentinelTokens.js +4 -4
- package/src/utils/validateManifestV2.compiled.js +2 -2
- package/src/utils/widgetVisibility.js +45 -0
|
@@ -502,6 +502,14 @@
|
|
|
502
502
|
color: var(--color-main-text);
|
|
503
503
|
opacity: 1;
|
|
504
504
|
}
|
|
505
|
+
|
|
506
|
+
/* ---- Status pills (screens-cell-pill-parity) ---------------------------- */
|
|
507
|
+
/* The board draws a primary pill in the deep primary ink on the light primary
|
|
508
|
+
ground ("Verzoek", "Nieuw"); the default look keeps the brighter
|
|
509
|
+
primary-element text. The other tones already match the board. */
|
|
510
|
+
.cn-look-board .cn-status-badge--primary:not(.cn-status-badge--solid):not(.cn-look-nextcloud *) {
|
|
511
|
+
color: var(--color-primary-element-light-text);
|
|
512
|
+
}
|
|
505
513
|
/*
|
|
506
514
|
* The board dialog (screens-dialog-parity, canon section 5).
|
|
507
515
|
*
|
|
@@ -1192,6 +1200,42 @@
|
|
|
1192
1200
|
margin-inline-start: 0;
|
|
1193
1201
|
}
|
|
1194
1202
|
|
|
1203
|
+
/* The header buttons keep the board's button under a theme that styles every
|
|
1204
|
+
secondary or primary button with `!important` (the nldesign theme: a
|
|
1205
|
+
primary border, 8px 16px padding): Download and the Actions menu are 40px,
|
|
1206
|
+
a grey border on the main background (PqTickets, DqZaken), the primary
|
|
1207
|
+
button is the primary fill without a border. The buildiq square is not a
|
|
1208
|
+
direct child button and keeps its own rule. */
|
|
1209
|
+
.cn-look-board .cn-index-page .cn-index-page__header-buttons > .button-vue--secondary,
|
|
1210
|
+
.cn-look-board .cn-index-page .cn-index-page__header-buttons > .action-item .button-vue {
|
|
1211
|
+
height: var(--cn-board-control-height) !important;
|
|
1212
|
+
min-height: var(--cn-board-control-height) !important;
|
|
1213
|
+
padding: 0 14px !important;
|
|
1214
|
+
border: 1px solid var(--color-border-dark) !important;
|
|
1215
|
+
border-radius: var(--cn-board-control-radius) !important;
|
|
1216
|
+
background: var(--color-main-background) !important;
|
|
1217
|
+
color: var(--color-main-text) !important;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
.cn-look-board .cn-index-page .cn-index-page__header-buttons > .button-vue--secondary:hover,
|
|
1221
|
+
.cn-look-board .cn-index-page .cn-index-page__header-buttons > .action-item .button-vue:hover {
|
|
1222
|
+
background: var(--color-background-hover) !important;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.cn-look-board .cn-index-page .cn-index-page__header-buttons > .button-vue--primary {
|
|
1226
|
+
height: var(--cn-board-control-height) !important;
|
|
1227
|
+
min-height: var(--cn-board-control-height) !important;
|
|
1228
|
+
padding: 0 16px !important;
|
|
1229
|
+
border: 0 !important;
|
|
1230
|
+
border-radius: var(--cn-board-control-radius) !important;
|
|
1231
|
+
background: var(--color-primary-element) !important;
|
|
1232
|
+
color: var(--color-primary-element-text) !important;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
.cn-look-board .cn-index-page .cn-index-page__header-buttons > .button-vue--primary:hover {
|
|
1236
|
+
background: var(--color-primary-element-hover) !important;
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1195
1239
|
/* ----------------------------------------------------------------- toolbar */
|
|
1196
1240
|
|
|
1197
1241
|
/* No band, no padding, no radius. The DOM is already in reading order (row 1,
|
|
@@ -2198,9 +2242,64 @@
|
|
|
2198
2242
|
background-color: var(--color-background-hover);
|
|
2199
2243
|
}
|
|
2200
2244
|
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2245
|
+
/* The sort control: a real button that looks like the header text, the label
|
|
2246
|
+
followed by a 14px chevron 4px after it (the "Wettelijke termijn" header on
|
|
2247
|
+
the DqWooVerzoeken board). Selector scoped under the table so it outranks
|
|
2248
|
+
Nextcloud's own `button` rule, which would otherwise give it a border, a
|
|
2249
|
+
fill, a 34px min-height and a margin. */
|
|
2250
|
+
.cn-data-table th .cn-table-header__sort {
|
|
2251
|
+
display: inline-flex;
|
|
2252
|
+
align-items: center;
|
|
2253
|
+
gap: 4px;
|
|
2254
|
+
max-width: 100%;
|
|
2255
|
+
min-width: 0;
|
|
2256
|
+
min-height: 0;
|
|
2257
|
+
margin: 0;
|
|
2258
|
+
padding: 0;
|
|
2259
|
+
border: 0;
|
|
2260
|
+
border-radius: var(--border-radius, 4px);
|
|
2261
|
+
background: transparent;
|
|
2262
|
+
color: inherit;
|
|
2263
|
+
font: inherit;
|
|
2264
|
+
font-weight: inherit;
|
|
2265
|
+
text-align: start;
|
|
2266
|
+
vertical-align: middle;
|
|
2267
|
+
cursor: pointer;
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
.cn-data-table th .cn-table-header__sort:hover,
|
|
2271
|
+
.cn-data-table th .cn-table-header__sort:focus {
|
|
2272
|
+
background: transparent;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
.cn-data-table th .cn-table-header__sort:focus-visible {
|
|
2276
|
+
outline: 2px solid var(--color-main-text);
|
|
2277
|
+
outline-offset: 2px;
|
|
2278
|
+
}
|
|
2279
|
+
|
|
2280
|
+
.cn-data-table th .cn-table-header__sort > :first-child {
|
|
2281
|
+
min-width: 0;
|
|
2282
|
+
overflow: hidden;
|
|
2283
|
+
text-overflow: ellipsis;
|
|
2284
|
+
}
|
|
2285
|
+
|
|
2286
|
+
/* The chevron. Unsorted columns show a pale down chevron, so every sortable
|
|
2287
|
+
column says it sorts; the sorted column shows the direction at full text
|
|
2288
|
+
colour. The direction is also in the header's `aria-sort`. */
|
|
2289
|
+
.cn-table-header__chevron {
|
|
2290
|
+
display: inline-flex;
|
|
2291
|
+
flex: none;
|
|
2292
|
+
color: var(--color-main-text);
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
.cn-table-header__chevron--idle {
|
|
2296
|
+
color: var(--color-text-maxcontrast);
|
|
2297
|
+
opacity: 0.5;
|
|
2298
|
+
}
|
|
2299
|
+
|
|
2300
|
+
.cn-data-table th.cn-table-header--sortable:hover .cn-table-header__chevron--idle,
|
|
2301
|
+
.cn-data-table th .cn-table-header__sort:focus-visible .cn-table-header__chevron--idle {
|
|
2302
|
+
opacity: 1;
|
|
2204
2303
|
}
|
|
2205
2304
|
|
|
2206
2305
|
/* A column carrying a `description` gets a dotted underline — the long-standing
|
|
@@ -2216,15 +2315,12 @@
|
|
|
2216
2315
|
cursor: help;
|
|
2217
2316
|
}
|
|
2218
2317
|
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
16px icon; the filled icon plus the primary colour marks an active filter,
|
|
2226
|
-
so the state never rests on colour alone. */
|
|
2227
|
-
.cn-table-header__filter {
|
|
2318
|
+
/* Header filter button (CnDataTable `filterable`): a 14px funnel directly
|
|
2319
|
+
after the sort chevron, in a 24px hit area. Muted with no filter set; with
|
|
2320
|
+
a filter set it takes the dark primary and a dot, so the state never rests
|
|
2321
|
+
on colour alone. */
|
|
2322
|
+
.cn-data-table th .cn-table-header__filter {
|
|
2323
|
+
position: relative;
|
|
2228
2324
|
display: inline-flex;
|
|
2229
2325
|
align-items: center;
|
|
2230
2326
|
justify-content: center;
|
|
@@ -2232,7 +2328,7 @@
|
|
|
2232
2328
|
min-width: 24px;
|
|
2233
2329
|
height: 24px;
|
|
2234
2330
|
min-height: 24px;
|
|
2235
|
-
margin: 0 0 0
|
|
2331
|
+
margin: 0 0 0 2px;
|
|
2236
2332
|
padding: 0;
|
|
2237
2333
|
border: none;
|
|
2238
2334
|
border-radius: var(--border-radius, 4px);
|
|
@@ -2242,18 +2338,31 @@
|
|
|
2242
2338
|
cursor: pointer;
|
|
2243
2339
|
}
|
|
2244
2340
|
|
|
2245
|
-
.cn-table-header__filter:hover {
|
|
2341
|
+
.cn-data-table th .cn-table-header__filter:hover {
|
|
2246
2342
|
background-color: var(--color-background-hover);
|
|
2247
2343
|
color: var(--color-main-text);
|
|
2248
2344
|
}
|
|
2249
2345
|
|
|
2250
|
-
.cn-table-header__filter:focus-visible {
|
|
2346
|
+
.cn-data-table th .cn-table-header__filter:focus-visible {
|
|
2251
2347
|
outline: 2px solid var(--color-main-text);
|
|
2252
2348
|
outline-offset: 0;
|
|
2253
2349
|
}
|
|
2254
2350
|
|
|
2255
|
-
.cn-table-header__filter--active
|
|
2256
|
-
|
|
2351
|
+
.cn-data-table th .cn-table-header__filter--active,
|
|
2352
|
+
.cn-data-table th .cn-table-header__filter--active:hover {
|
|
2353
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
2354
|
+
}
|
|
2355
|
+
|
|
2356
|
+
/* The active-filter dot, on the funnel's top right. */
|
|
2357
|
+
.cn-table-header__filter-dot {
|
|
2358
|
+
position: absolute;
|
|
2359
|
+
inset-block-start: 3px;
|
|
2360
|
+
inset-inline-end: 3px;
|
|
2361
|
+
width: 6px;
|
|
2362
|
+
height: 6px;
|
|
2363
|
+
border-radius: 50%;
|
|
2364
|
+
background-color: var(--color-primary-element);
|
|
2365
|
+
pointer-events: none;
|
|
2257
2366
|
}
|
|
2258
2367
|
|
|
2259
2368
|
/* Active header filters above the table, one removable chip each. */
|
|
@@ -3281,6 +3390,57 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
3281
3390
|
gap: 6px;
|
|
3282
3391
|
}
|
|
3283
3392
|
|
|
3393
|
+
/* A linked board tile is one link: the label is not underlined link text, in
|
|
3394
|
+
any layout (screens-stat-tile-parity). The NL Design theme underlines every
|
|
3395
|
+
`a` with `!important`, so the opt-out needs it too. */
|
|
3396
|
+
a.cn-kpi-card--board,
|
|
3397
|
+
a.cn-kpi-card--board:hover,
|
|
3398
|
+
a.cn-kpi-card--board:focus-visible,
|
|
3399
|
+
a.cn-kpi-card--board * {
|
|
3400
|
+
text-decoration: none !important;
|
|
3401
|
+
}
|
|
3402
|
+
|
|
3403
|
+
/* `content.iconPlacement: "end"` (DqDashboard): label left, the icon in a
|
|
3404
|
+
32px circle right, tinted by the tile's state. */
|
|
3405
|
+
.cn-kpi-card--board .cn-kpi-card__title--badge-end {
|
|
3406
|
+
justify-content: space-between;
|
|
3407
|
+
gap: 8px;
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3410
|
+
.cn-kpi-card__badge {
|
|
3411
|
+
display: inline-flex;
|
|
3412
|
+
flex: 0 0 auto;
|
|
3413
|
+
align-items: center;
|
|
3414
|
+
justify-content: center;
|
|
3415
|
+
width: 32px;
|
|
3416
|
+
height: 32px;
|
|
3417
|
+
margin-inline-start: auto;
|
|
3418
|
+
border-radius: 50%;
|
|
3419
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
3420
|
+
background: var(--color-primary-element-light, color-mix(in srgb, var(--color-primary-element) 12%, transparent));
|
|
3421
|
+
}
|
|
3422
|
+
|
|
3423
|
+
.cn-kpi-card__badge svg {
|
|
3424
|
+
width: 18px;
|
|
3425
|
+
height: 18px;
|
|
3426
|
+
fill: currentcolor;
|
|
3427
|
+
}
|
|
3428
|
+
|
|
3429
|
+
.cn-kpi-card__badge--success {
|
|
3430
|
+
color: var(--color-text-success, var(--color-success-text));
|
|
3431
|
+
background: color-mix(in srgb, var(--color-text-success, var(--color-success-text)) 12%, var(--color-main-background));
|
|
3432
|
+
}
|
|
3433
|
+
|
|
3434
|
+
.cn-kpi-card__badge--warning {
|
|
3435
|
+
color: var(--color-element-warning, var(--color-warning-text));
|
|
3436
|
+
background: color-mix(in srgb, var(--color-element-warning, var(--color-warning-text)) 12%, var(--color-main-background));
|
|
3437
|
+
}
|
|
3438
|
+
|
|
3439
|
+
.cn-kpi-card__badge--error {
|
|
3440
|
+
color: var(--color-text-error, var(--color-error-text));
|
|
3441
|
+
background: color-mix(in srgb, var(--color-text-error, var(--color-error-text)) 10%, var(--color-main-background));
|
|
3442
|
+
}
|
|
3443
|
+
|
|
3284
3444
|
.cn-kpi-card__glyph {
|
|
3285
3445
|
display: inline-flex;
|
|
3286
3446
|
flex: 0 0 auto;
|
|
@@ -3527,6 +3687,15 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
3527
3687
|
@conduction/nextcloud-vue — Status Badge
|
|
3528
3688
|
======================================== */
|
|
3529
3689
|
|
|
3690
|
+
/* The two board tones without a Nextcloud colour role (screens-cell-pill-parity).
|
|
3691
|
+
A theme may redefine them; the six role variants below use Nextcloud's own. */
|
|
3692
|
+
:root {
|
|
3693
|
+
--cn-status-purple-bg: #e8e6f6;
|
|
3694
|
+
--cn-status-purple-text: #4a3f8f;
|
|
3695
|
+
--cn-status-teal-bg: #e3f1f3;
|
|
3696
|
+
--cn-status-teal-text: #1d5e66;
|
|
3697
|
+
}
|
|
3698
|
+
|
|
3530
3699
|
.cn-status-badge {
|
|
3531
3700
|
display: inline-flex;
|
|
3532
3701
|
align-items: center;
|
|
@@ -3576,6 +3745,18 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
3576
3745
|
color: var(--color-info-text, var(--color-info, #0082c9));
|
|
3577
3746
|
}
|
|
3578
3747
|
|
|
3748
|
+
/* Work in progress ("In behandeling"), a board tone. */
|
|
3749
|
+
.cn-status-badge--purple {
|
|
3750
|
+
background-color: var(--cn-status-purple-bg);
|
|
3751
|
+
color: var(--cn-status-purple-text);
|
|
3752
|
+
}
|
|
3753
|
+
|
|
3754
|
+
/* Handed on ("Omgezet naar een zaak"), a board tone. */
|
|
3755
|
+
.cn-status-badge--teal {
|
|
3756
|
+
background-color: var(--cn-status-teal-bg);
|
|
3757
|
+
color: var(--cn-status-teal-text);
|
|
3758
|
+
}
|
|
3759
|
+
|
|
3579
3760
|
/* Solid variants — solid background with white text for use on colored backgrounds */
|
|
3580
3761
|
.cn-status-badge--solid.cn-status-badge--default {
|
|
3581
3762
|
background-color: var(--color-background-dark);
|
|
@@ -3606,6 +3787,16 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
3606
3787
|
background-color: var(--color-info, #0082c9);
|
|
3607
3788
|
color: white;
|
|
3608
3789
|
}
|
|
3790
|
+
|
|
3791
|
+
.cn-status-badge--solid.cn-status-badge--purple {
|
|
3792
|
+
background-color: var(--cn-status-purple-text);
|
|
3793
|
+
color: white;
|
|
3794
|
+
}
|
|
3795
|
+
|
|
3796
|
+
.cn-status-badge--solid.cn-status-badge--teal {
|
|
3797
|
+
background-color: var(--cn-status-teal-text);
|
|
3798
|
+
color: white;
|
|
3799
|
+
}
|
|
3609
3800
|
/* ========================================
|
|
3610
3801
|
@conduction/nextcloud-vue — Layout & Filter Utility Styles
|
|
3611
3802
|
======================================== */
|
|
@@ -5503,12 +5694,26 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
5503
5694
|
|
|
5504
5695
|
/* ---- Folder tabs ------------------------------------------------------- */
|
|
5505
5696
|
|
|
5697
|
+
/* The strip draws no line of its own (design-system pull request 147). The card under it
|
|
5698
|
+
carries its full border, top included, so the top-right corner is the
|
|
5699
|
+
card's own rounded corner instead of a strip rule running straight past it.
|
|
5700
|
+
The open tab overlaps that top border by 1px (the nav's -1px margin) and
|
|
5701
|
+
paints over it, so it flows into the card as a folder tab. */
|
|
5506
5702
|
.cn-look-board .cn-tabs--board .cn-tabs__bar {
|
|
5507
|
-
border-bottom:
|
|
5703
|
+
border-bottom: none;
|
|
5508
5704
|
gap: 4px;
|
|
5705
|
+
position: relative;
|
|
5509
5706
|
}
|
|
5510
5707
|
|
|
5708
|
+
.cn-look-board .cn-tabs.cn-tabs--board .cn-tabs__bar::after {
|
|
5709
|
+
content: none;
|
|
5710
|
+
}
|
|
5711
|
+
|
|
5712
|
+
/* Tabs sit on the card's top edge; only the open tab reaches 1px further
|
|
5713
|
+
down (min-height 35px below), over the card's top border. Top-aligned so
|
|
5714
|
+
the inactive tabs do not stretch to the open tab's height. */
|
|
5511
5715
|
.cn-look-board .cn-tabs--board .cn-tabs__nav {
|
|
5716
|
+
align-items: flex-start;
|
|
5512
5717
|
gap: 4px;
|
|
5513
5718
|
}
|
|
5514
5719
|
|
|
@@ -5529,7 +5734,11 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
5529
5734
|
border-bottom: 1px solid var(--color-main-background);
|
|
5530
5735
|
border-top: 1px solid var(--color-border-dark);
|
|
5531
5736
|
font-weight: 700;
|
|
5737
|
+
min-height: 35px;
|
|
5738
|
+
padding-bottom: 9px;
|
|
5532
5739
|
padding-top: 8px;
|
|
5740
|
+
position: relative;
|
|
5741
|
+
z-index: 1;
|
|
5533
5742
|
}
|
|
5534
5743
|
|
|
5535
5744
|
/* The count: a grey, borderless 20px badge 8px after the label. */
|
|
@@ -5566,10 +5775,30 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
5566
5775
|
.cn-look-board .cn-tabs--board .cn-tabs__content > .cn-tab > :first-child .cn-widget-wrapper,
|
|
5567
5776
|
.cn-look-board .cn-tabs--board .cn-tabs__content > .cn-tab > .cn-widget-wrapper,
|
|
5568
5777
|
.cn-look-board .cn-tabs--board .cn-tabs__content > .cn-tab > .cn-detail-card {
|
|
5569
|
-
border-top:
|
|
5778
|
+
border-top: 1px solid var(--color-border);
|
|
5779
|
+
border-radius: 0 12px 12px 12px;
|
|
5780
|
+
}
|
|
5781
|
+
|
|
5782
|
+
/* A CnTabsWidget panel is the card itself: the same full border, so it joins
|
|
5783
|
+
the open tab the same way. The top-left stays square under the first tab. */
|
|
5784
|
+
.cn-look-board .cn-tabs--board.cn-tabs-widget__tabs .cn-tabs__content {
|
|
5785
|
+
border: 1px solid var(--color-border);
|
|
5570
5786
|
border-radius: 0 12px 12px 12px;
|
|
5571
5787
|
}
|
|
5572
5788
|
|
|
5789
|
+
/* A panel of CnTabsWidget is the content block itself: the open tab flows
|
|
5790
|
+
straight into it. The widget in the panel renders chromeless, but the board
|
|
5791
|
+
card rule below (and the first-card rule above) used to give its wrapper a
|
|
5792
|
+
border and a 12px radius again, so a second card sat inside the panel. Its
|
|
5793
|
+
left edge ran down from the open tab and its rounded top-right drew a line
|
|
5794
|
+
across the top right of the content block, where DqZaak shows one sheet.
|
|
5795
|
+
Same specificity as the first-card rule and later, so it wins on order. */
|
|
5796
|
+
.cn-look-board .cn-tabs--board.cn-tabs-widget__tabs .cn-tabs__content .cn-widget-wrapper.cn-widget-wrapper--chromeless {
|
|
5797
|
+
background: transparent;
|
|
5798
|
+
border: 0;
|
|
5799
|
+
border-radius: 0;
|
|
5800
|
+
}
|
|
5801
|
+
|
|
5573
5802
|
/* ---- Body cards and side cards ----------------------------------------- */
|
|
5574
5803
|
|
|
5575
5804
|
.cn-look-board .cn-detail-page .cn-widget-wrapper,
|
|
@@ -9019,8 +9248,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9019
9248
|
.cn-cell-renderer__date--error[data-v-37d7b88f] {
|
|
9020
9249
|
color: var(--color-text-error, var(--color-error-text));
|
|
9021
9250
|
}
|
|
9251
|
+
|
|
9252
|
+
/* The text variant, not the fill: from Nextcloud 32 `--color-success` is a
|
|
9253
|
+
background colour and too pale for a 16px glyph on a light theme. */
|
|
9022
9254
|
.cn-cell-renderer__icon--success[data-v-37d7b88f] {
|
|
9023
|
-
color: var(--color-success);
|
|
9255
|
+
color: var(--color-text-success, var(--color-success-text, var(--color-success)));
|
|
9024
9256
|
}
|
|
9025
9257
|
.cn-cell-renderer__swatch-wrap[data-v-37d7b88f] {
|
|
9026
9258
|
display: inline-flex;
|
|
@@ -9356,9 +9588,64 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9356
9588
|
background-color: var(--color-background-hover);
|
|
9357
9589
|
}
|
|
9358
9590
|
|
|
9359
|
-
|
|
9360
|
-
|
|
9361
|
-
|
|
9591
|
+
/* The sort control: a real button that looks like the header text, the label
|
|
9592
|
+
followed by a 14px chevron 4px after it (the "Wettelijke termijn" header on
|
|
9593
|
+
the DqWooVerzoeken board). Selector scoped under the table so it outranks
|
|
9594
|
+
Nextcloud's own `button` rule, which would otherwise give it a border, a
|
|
9595
|
+
fill, a 34px min-height and a margin. */
|
|
9596
|
+
.cn-data-table th .cn-table-header__sort {
|
|
9597
|
+
display: inline-flex;
|
|
9598
|
+
align-items: center;
|
|
9599
|
+
gap: 4px;
|
|
9600
|
+
max-width: 100%;
|
|
9601
|
+
min-width: 0;
|
|
9602
|
+
min-height: 0;
|
|
9603
|
+
margin: 0;
|
|
9604
|
+
padding: 0;
|
|
9605
|
+
border: 0;
|
|
9606
|
+
border-radius: var(--border-radius, 4px);
|
|
9607
|
+
background: transparent;
|
|
9608
|
+
color: inherit;
|
|
9609
|
+
font: inherit;
|
|
9610
|
+
font-weight: inherit;
|
|
9611
|
+
text-align: start;
|
|
9612
|
+
vertical-align: middle;
|
|
9613
|
+
cursor: pointer;
|
|
9614
|
+
}
|
|
9615
|
+
|
|
9616
|
+
.cn-data-table th .cn-table-header__sort:hover,
|
|
9617
|
+
.cn-data-table th .cn-table-header__sort:focus {
|
|
9618
|
+
background: transparent;
|
|
9619
|
+
}
|
|
9620
|
+
|
|
9621
|
+
.cn-data-table th .cn-table-header__sort:focus-visible {
|
|
9622
|
+
outline: 2px solid var(--color-main-text);
|
|
9623
|
+
outline-offset: 2px;
|
|
9624
|
+
}
|
|
9625
|
+
|
|
9626
|
+
.cn-data-table th .cn-table-header__sort > :first-child {
|
|
9627
|
+
min-width: 0;
|
|
9628
|
+
overflow: hidden;
|
|
9629
|
+
text-overflow: ellipsis;
|
|
9630
|
+
}
|
|
9631
|
+
|
|
9632
|
+
/* The chevron. Unsorted columns show a pale down chevron, so every sortable
|
|
9633
|
+
column says it sorts; the sorted column shows the direction at full text
|
|
9634
|
+
colour. The direction is also in the header's `aria-sort`. */
|
|
9635
|
+
.cn-table-header__chevron {
|
|
9636
|
+
display: inline-flex;
|
|
9637
|
+
flex: none;
|
|
9638
|
+
color: var(--color-main-text);
|
|
9639
|
+
}
|
|
9640
|
+
|
|
9641
|
+
.cn-table-header__chevron--idle {
|
|
9642
|
+
color: var(--color-text-maxcontrast);
|
|
9643
|
+
opacity: 0.5;
|
|
9644
|
+
}
|
|
9645
|
+
|
|
9646
|
+
.cn-data-table th.cn-table-header--sortable:hover .cn-table-header__chevron--idle,
|
|
9647
|
+
.cn-data-table th .cn-table-header__sort:focus-visible .cn-table-header__chevron--idle {
|
|
9648
|
+
opacity: 1;
|
|
9362
9649
|
}
|
|
9363
9650
|
|
|
9364
9651
|
/* A column carrying a `description` gets a dotted underline — the long-standing
|
|
@@ -9374,15 +9661,12 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9374
9661
|
cursor: help;
|
|
9375
9662
|
}
|
|
9376
9663
|
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9383
|
-
16px icon; the filled icon plus the primary colour marks an active filter,
|
|
9384
|
-
so the state never rests on colour alone. */
|
|
9385
|
-
.cn-table-header__filter {
|
|
9664
|
+
/* Header filter button (CnDataTable `filterable`): a 14px funnel directly
|
|
9665
|
+
after the sort chevron, in a 24px hit area. Muted with no filter set; with
|
|
9666
|
+
a filter set it takes the dark primary and a dot, so the state never rests
|
|
9667
|
+
on colour alone. */
|
|
9668
|
+
.cn-data-table th .cn-table-header__filter {
|
|
9669
|
+
position: relative;
|
|
9386
9670
|
display: inline-flex;
|
|
9387
9671
|
align-items: center;
|
|
9388
9672
|
justify-content: center;
|
|
@@ -9390,7 +9674,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9390
9674
|
min-width: 24px;
|
|
9391
9675
|
height: 24px;
|
|
9392
9676
|
min-height: 24px;
|
|
9393
|
-
margin: 0 0 0
|
|
9677
|
+
margin: 0 0 0 2px;
|
|
9394
9678
|
padding: 0;
|
|
9395
9679
|
border: none;
|
|
9396
9680
|
border-radius: var(--border-radius, 4px);
|
|
@@ -9400,18 +9684,31 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
|
|
9400
9684
|
cursor: pointer;
|
|
9401
9685
|
}
|
|
9402
9686
|
|
|
9403
|
-
.cn-table-header__filter:hover {
|
|
9687
|
+
.cn-data-table th .cn-table-header__filter:hover {
|
|
9404
9688
|
background-color: var(--color-background-hover);
|
|
9405
9689
|
color: var(--color-main-text);
|
|
9406
9690
|
}
|
|
9407
9691
|
|
|
9408
|
-
.cn-table-header__filter:focus-visible {
|
|
9692
|
+
.cn-data-table th .cn-table-header__filter:focus-visible {
|
|
9409
9693
|
outline: 2px solid var(--color-main-text);
|
|
9410
9694
|
outline-offset: 0;
|
|
9411
9695
|
}
|
|
9412
9696
|
|
|
9413
|
-
.cn-table-header__filter--active
|
|
9414
|
-
|
|
9697
|
+
.cn-data-table th .cn-table-header__filter--active,
|
|
9698
|
+
.cn-data-table th .cn-table-header__filter--active:hover {
|
|
9699
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
9700
|
+
}
|
|
9701
|
+
|
|
9702
|
+
/* The active-filter dot, on the funnel's top right. */
|
|
9703
|
+
.cn-table-header__filter-dot {
|
|
9704
|
+
position: absolute;
|
|
9705
|
+
inset-block-start: 3px;
|
|
9706
|
+
inset-inline-end: 3px;
|
|
9707
|
+
width: 6px;
|
|
9708
|
+
height: 6px;
|
|
9709
|
+
border-radius: 50%;
|
|
9710
|
+
background-color: var(--color-primary-element);
|
|
9711
|
+
pointer-events: none;
|
|
9415
9712
|
}
|
|
9416
9713
|
|
|
9417
9714
|
/* Active header filters above the table, one removable chip each. */
|
|
@@ -14188,12 +14485,55 @@ button.cn-files-card__open[data-v-46f7e3c9]:hover {
|
|
|
14188
14485
|
flex-direction: column;
|
|
14189
14486
|
gap: 8px;
|
|
14190
14487
|
min-width: 0;
|
|
14488
|
+
position: relative;
|
|
14191
14489
|
border-radius: var(--border-radius-large, 8px);
|
|
14192
14490
|
}
|
|
14193
14491
|
.cn-files-browser--dragging[data-v-f5bdd9e2] {
|
|
14194
14492
|
outline: 2px dashed var(--color-primary-element);
|
|
14195
14493
|
outline-offset: 4px;
|
|
14196
14494
|
}
|
|
14495
|
+
.cn-files-browser__drop-overlay[data-v-f5bdd9e2] {
|
|
14496
|
+
position: absolute;
|
|
14497
|
+
inset: 0;
|
|
14498
|
+
z-index: 2;
|
|
14499
|
+
display: flex;
|
|
14500
|
+
flex-direction: column;
|
|
14501
|
+
align-items: center;
|
|
14502
|
+
justify-content: center;
|
|
14503
|
+
gap: 10px;
|
|
14504
|
+
padding: 24px;
|
|
14505
|
+
box-sizing: border-box;
|
|
14506
|
+
border: 2px dashed var(--color-primary-element);
|
|
14507
|
+
border-radius: var(--border-radius-large, 8px);
|
|
14508
|
+
background: var(--color-primary-element-light);
|
|
14509
|
+
color: var(--color-primary-element-light-text, var(--color-main-text));
|
|
14510
|
+
text-align: center;
|
|
14511
|
+
pointer-events: none;
|
|
14512
|
+
}
|
|
14513
|
+
.cn-files-browser__drop-icon[data-v-f5bdd9e2] {
|
|
14514
|
+
display: flex;
|
|
14515
|
+
align-items: center;
|
|
14516
|
+
justify-content: center;
|
|
14517
|
+
width: 56px;
|
|
14518
|
+
height: 56px;
|
|
14519
|
+
border-radius: 50%;
|
|
14520
|
+
background: var(--color-main-background);
|
|
14521
|
+
color: var(--color-primary-element);
|
|
14522
|
+
}
|
|
14523
|
+
.cn-files-browser__drop-label[data-v-f5bdd9e2] {
|
|
14524
|
+
font-size: 20px;
|
|
14525
|
+
font-weight: 700;
|
|
14526
|
+
}
|
|
14527
|
+
.cn-files-browser__drop-hint[data-v-f5bdd9e2] {
|
|
14528
|
+
display: flex;
|
|
14529
|
+
align-items: center;
|
|
14530
|
+
gap: 8px;
|
|
14531
|
+
margin: 0;
|
|
14532
|
+
padding-top: 12px;
|
|
14533
|
+
border-top: 1px solid var(--color-border);
|
|
14534
|
+
font-size: 13px;
|
|
14535
|
+
color: var(--color-text-maxcontrast);
|
|
14536
|
+
}
|
|
14197
14537
|
.cn-files-browser__bar[data-v-f5bdd9e2] {
|
|
14198
14538
|
display: flex;
|
|
14199
14539
|
align-items: center;
|
|
@@ -20622,6 +20962,57 @@ a.cn-kpi-card--stacked:focus-visible {
|
|
|
20622
20962
|
gap: 6px;
|
|
20623
20963
|
}
|
|
20624
20964
|
|
|
20965
|
+
/* A linked board tile is one link: the label is not underlined link text, in
|
|
20966
|
+
any layout (screens-stat-tile-parity). The NL Design theme underlines every
|
|
20967
|
+
`a` with `!important`, so the opt-out needs it too. */
|
|
20968
|
+
a.cn-kpi-card--board,
|
|
20969
|
+
a.cn-kpi-card--board:hover,
|
|
20970
|
+
a.cn-kpi-card--board:focus-visible,
|
|
20971
|
+
a.cn-kpi-card--board * {
|
|
20972
|
+
text-decoration: none !important;
|
|
20973
|
+
}
|
|
20974
|
+
|
|
20975
|
+
/* `content.iconPlacement: "end"` (DqDashboard): label left, the icon in a
|
|
20976
|
+
32px circle right, tinted by the tile's state. */
|
|
20977
|
+
.cn-kpi-card--board .cn-kpi-card__title--badge-end {
|
|
20978
|
+
justify-content: space-between;
|
|
20979
|
+
gap: 8px;
|
|
20980
|
+
}
|
|
20981
|
+
|
|
20982
|
+
.cn-kpi-card__badge {
|
|
20983
|
+
display: inline-flex;
|
|
20984
|
+
flex: 0 0 auto;
|
|
20985
|
+
align-items: center;
|
|
20986
|
+
justify-content: center;
|
|
20987
|
+
width: 32px;
|
|
20988
|
+
height: 32px;
|
|
20989
|
+
margin-inline-start: auto;
|
|
20990
|
+
border-radius: 50%;
|
|
20991
|
+
color: var(--color-primary-element-light-text, var(--color-primary-element));
|
|
20992
|
+
background: var(--color-primary-element-light, color-mix(in srgb, var(--color-primary-element) 12%, transparent));
|
|
20993
|
+
}
|
|
20994
|
+
|
|
20995
|
+
.cn-kpi-card__badge svg {
|
|
20996
|
+
width: 18px;
|
|
20997
|
+
height: 18px;
|
|
20998
|
+
fill: currentcolor;
|
|
20999
|
+
}
|
|
21000
|
+
|
|
21001
|
+
.cn-kpi-card__badge--success {
|
|
21002
|
+
color: var(--color-text-success, var(--color-success-text));
|
|
21003
|
+
background: color-mix(in srgb, var(--color-text-success, var(--color-success-text)) 12%, var(--color-main-background));
|
|
21004
|
+
}
|
|
21005
|
+
|
|
21006
|
+
.cn-kpi-card__badge--warning {
|
|
21007
|
+
color: var(--color-element-warning, var(--color-warning-text));
|
|
21008
|
+
background: color-mix(in srgb, var(--color-element-warning, var(--color-warning-text)) 12%, var(--color-main-background));
|
|
21009
|
+
}
|
|
21010
|
+
|
|
21011
|
+
.cn-kpi-card__badge--error {
|
|
21012
|
+
color: var(--color-text-error, var(--color-error-text));
|
|
21013
|
+
background: color-mix(in srgb, var(--color-text-error, var(--color-error-text)) 10%, var(--color-main-background));
|
|
21014
|
+
}
|
|
21015
|
+
|
|
20625
21016
|
.cn-kpi-card__glyph {
|
|
20626
21017
|
display: inline-flex;
|
|
20627
21018
|
flex: 0 0 auto;
|
|
@@ -26339,6 +26730,15 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
|
|
|
26339
26730
|
@conduction/nextcloud-vue — Status Badge
|
|
26340
26731
|
======================================== */
|
|
26341
26732
|
|
|
26733
|
+
/* The two board tones without a Nextcloud colour role (screens-cell-pill-parity).
|
|
26734
|
+
A theme may redefine them; the six role variants below use Nextcloud's own. */
|
|
26735
|
+
:root {
|
|
26736
|
+
--cn-status-purple-bg: #e8e6f6;
|
|
26737
|
+
--cn-status-purple-text: #4a3f8f;
|
|
26738
|
+
--cn-status-teal-bg: #e3f1f3;
|
|
26739
|
+
--cn-status-teal-text: #1d5e66;
|
|
26740
|
+
}
|
|
26741
|
+
|
|
26342
26742
|
.cn-status-badge {
|
|
26343
26743
|
display: inline-flex;
|
|
26344
26744
|
align-items: center;
|
|
@@ -26388,6 +26788,18 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
|
|
|
26388
26788
|
color: var(--color-info-text, var(--color-info, #0082c9));
|
|
26389
26789
|
}
|
|
26390
26790
|
|
|
26791
|
+
/* Work in progress ("In behandeling"), a board tone. */
|
|
26792
|
+
.cn-status-badge--purple {
|
|
26793
|
+
background-color: var(--cn-status-purple-bg);
|
|
26794
|
+
color: var(--cn-status-purple-text);
|
|
26795
|
+
}
|
|
26796
|
+
|
|
26797
|
+
/* Handed on ("Omgezet naar een zaak"), a board tone. */
|
|
26798
|
+
.cn-status-badge--teal {
|
|
26799
|
+
background-color: var(--cn-status-teal-bg);
|
|
26800
|
+
color: var(--cn-status-teal-text);
|
|
26801
|
+
}
|
|
26802
|
+
|
|
26391
26803
|
/* Solid variants — solid background with white text for use on colored backgrounds */
|
|
26392
26804
|
.cn-status-badge--solid.cn-status-badge--default {
|
|
26393
26805
|
background-color: var(--color-background-dark);
|
|
@@ -26419,6 +26831,16 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
|
|
|
26419
26831
|
color: white;
|
|
26420
26832
|
}
|
|
26421
26833
|
|
|
26834
|
+
.cn-status-badge--solid.cn-status-badge--purple {
|
|
26835
|
+
background-color: var(--cn-status-purple-text);
|
|
26836
|
+
color: white;
|
|
26837
|
+
}
|
|
26838
|
+
|
|
26839
|
+
.cn-status-badge--solid.cn-status-badge--teal {
|
|
26840
|
+
background-color: var(--cn-status-teal-text);
|
|
26841
|
+
color: white;
|
|
26842
|
+
}
|
|
26843
|
+
|
|
26422
26844
|
|
|
26423
26845
|
/*
|
|
26424
26846
|
* The card itself — its box, body stack, icon circle, title and value
|
|
@@ -32093,8 +32515,42 @@ button.cn-object-calendar__overflow[data-v-bea31862] {
|
|
|
32093
32515
|
}
|
|
32094
32516
|
|
|
32095
32517
|
|
|
32096
|
-
.cn-
|
|
32097
|
-
|
|
32518
|
+
.cn-follow-toggle[data-v-eec896e2] {
|
|
32519
|
+
display: inline-flex;
|
|
32520
|
+
align-items: center;
|
|
32521
|
+
gap: 4px;
|
|
32522
|
+
}
|
|
32523
|
+
.cn-follow-toggle__on[data-v-eec896e2] {
|
|
32524
|
+
color: var(--color-primary-element);
|
|
32525
|
+
}
|
|
32526
|
+
.cn-follow-toggle__popover[data-v-eec896e2] {
|
|
32527
|
+
min-width: 260px;
|
|
32528
|
+
padding: 12px;
|
|
32529
|
+
}
|
|
32530
|
+
.cn-follow-toggle__list[data-v-eec896e2] {
|
|
32531
|
+
list-style: none;
|
|
32532
|
+
margin: 0 0 8px;
|
|
32533
|
+
padding: 0;
|
|
32534
|
+
}
|
|
32535
|
+
.cn-follow-toggle__row[data-v-eec896e2] {
|
|
32536
|
+
display: flex;
|
|
32537
|
+
align-items: center;
|
|
32538
|
+
gap: 8px;
|
|
32539
|
+
padding: 4px 0;
|
|
32540
|
+
}
|
|
32541
|
+
.cn-follow-toggle__who[data-v-eec896e2] {
|
|
32542
|
+
display: flex;
|
|
32543
|
+
flex-direction: column;
|
|
32544
|
+
flex: 1 1 auto;
|
|
32545
|
+
min-width: 0;
|
|
32546
|
+
}
|
|
32547
|
+
.cn-follow-toggle__since[data-v-eec896e2] {
|
|
32548
|
+
color: var(--color-text-maxcontrast);
|
|
32549
|
+
font-size: var(--font-size-small, 13px);
|
|
32550
|
+
}
|
|
32551
|
+
.cn-follow-toggle__error[data-v-eec896e2] {
|
|
32552
|
+
margin: 8px 0 0;
|
|
32553
|
+
color: var(--color-error-text);
|
|
32098
32554
|
}
|
|
32099
32555
|
|
|
32100
32556
|
|
|
@@ -34239,42 +34695,6 @@ button.cn-object-calendar__overflow[data-v-bea31862] {
|
|
|
34239
34695
|
}
|
|
34240
34696
|
|
|
34241
34697
|
|
|
34242
|
-
.cn-follow-toggle[data-v-eec896e2] {
|
|
34243
|
-
display: inline-flex;
|
|
34244
|
-
align-items: center;
|
|
34245
|
-
gap: 4px;
|
|
34246
|
-
}
|
|
34247
|
-
.cn-follow-toggle__popover[data-v-eec896e2] {
|
|
34248
|
-
min-width: 260px;
|
|
34249
|
-
padding: 12px;
|
|
34250
|
-
}
|
|
34251
|
-
.cn-follow-toggle__list[data-v-eec896e2] {
|
|
34252
|
-
list-style: none;
|
|
34253
|
-
margin: 0 0 8px;
|
|
34254
|
-
padding: 0;
|
|
34255
|
-
}
|
|
34256
|
-
.cn-follow-toggle__row[data-v-eec896e2] {
|
|
34257
|
-
display: flex;
|
|
34258
|
-
align-items: center;
|
|
34259
|
-
gap: 8px;
|
|
34260
|
-
padding: 4px 0;
|
|
34261
|
-
}
|
|
34262
|
-
.cn-follow-toggle__who[data-v-eec896e2] {
|
|
34263
|
-
display: flex;
|
|
34264
|
-
flex-direction: column;
|
|
34265
|
-
flex: 1 1 auto;
|
|
34266
|
-
min-width: 0;
|
|
34267
|
-
}
|
|
34268
|
-
.cn-follow-toggle__since[data-v-eec896e2] {
|
|
34269
|
-
color: var(--color-text-maxcontrast);
|
|
34270
|
-
font-size: var(--font-size-small, 13px);
|
|
34271
|
-
}
|
|
34272
|
-
.cn-follow-toggle__error[data-v-eec896e2] {
|
|
34273
|
-
margin: 8px 0 0;
|
|
34274
|
-
color: var(--color-error-text);
|
|
34275
|
-
}
|
|
34276
|
-
|
|
34277
|
-
|
|
34278
34698
|
.cn-lifecycle-actions[data-v-a62ad362] {
|
|
34279
34699
|
display: flex;
|
|
34280
34700
|
flex-wrap: wrap;
|
|
@@ -35948,6 +36368,11 @@ button.cn-object-calendar__overflow[data-v-bea31862] {
|
|
|
35948
36368
|
}
|
|
35949
36369
|
|
|
35950
36370
|
|
|
36371
|
+
.cn-favourite-toggle__star[data-v-836dad16] {
|
|
36372
|
+
color: var(--color-warning);
|
|
36373
|
+
}
|
|
36374
|
+
|
|
36375
|
+
|
|
35951
36376
|
.cn-journey-review-list__items[data-v-d3c04832] {
|
|
35952
36377
|
list-style: none;
|
|
35953
36378
|
margin: 8px 0 0;
|