@conduction/nextcloud-vue 2.100.0 → 2.101.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.
Files changed (127) hide show
  1. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue.js +1 -1
  2. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js +22 -1
  3. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  4. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +26 -16
  5. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  6. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  7. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +51 -7
  8. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  9. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +104 -73
  10. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  11. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue.js +9 -0
  12. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue.js.map +1 -0
  13. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue2.js +139 -0
  14. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue2.js.map +1 -0
  15. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue3.js +76 -0
  16. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue3.js.map +1 -0
  17. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  18. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +160 -2
  19. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  20. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +206 -94
  21. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  22. package/dist/esm/components/CnFilesBrowser/filesReview.js +61 -0
  23. package/dist/esm/components/CnFilesBrowser/filesReview.js.map +1 -0
  24. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue.js +9 -0
  25. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue.js.map +1 -0
  26. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue2.js +279 -0
  27. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue2.js.map +1 -0
  28. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue3.js +122 -0
  29. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue3.js.map +1 -0
  30. package/dist/esm/components/CnGroupedCardsWidget/index.js +29 -0
  31. package/dist/esm/components/CnGroupedCardsWidget/index.js.map +1 -0
  32. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +251 -71
  33. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  34. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +317 -209
  35. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  36. package/dist/esm/components/CnIndexPage/useNamedSource.js +4 -1
  37. package/dist/esm/components/CnIndexPage/useNamedSource.js.map +1 -1
  38. package/dist/esm/components/CnMapWidget/CnMapWidget.vue.js +1 -1
  39. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js +15 -0
  40. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js.map +1 -1
  41. package/dist/esm/components/CnMapWidget/CnMapWidget.vue3.js.map +1 -1
  42. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue.js +1 -1
  43. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +14 -1
  44. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  45. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +14 -6
  46. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  47. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  48. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +10 -0
  49. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  50. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +6 -1
  51. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  52. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +1 -1
  53. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +91 -4
  54. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -1
  55. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +63 -38
  56. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -1
  57. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue.js +9 -0
  58. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue.js.map +1 -0
  59. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue2.js +175 -0
  60. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue2.js.map +1 -0
  61. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue3.js +77 -0
  62. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue3.js.map +1 -0
  63. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
  64. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +35 -2
  65. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  66. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  67. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +4 -0
  68. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  69. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  70. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  71. package/dist/esm/composables/indexSources.js +167 -20
  72. package/dist/esm/composables/indexSources.js.map +1 -1
  73. package/dist/esm/composables/useEndpointSource.js +28 -6
  74. package/dist/esm/composables/useEndpointSource.js.map +1 -1
  75. package/dist/esm/index.js +1 -0
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/l10n/en.json.js +37 -1
  78. package/dist/esm/l10n/en.json.js.map +1 -1
  79. package/dist/esm/l10n/nl.json.js +35 -1
  80. package/dist/esm/l10n/nl.json.js.map +1 -1
  81. package/dist/esm/library-style.js +1 -1
  82. package/dist/esm/nextcloud-vue.css +769 -251
  83. package/dist/esm/utils/languageMapText.js +50 -0
  84. package/dist/esm/utils/languageMapText.js.map +1 -0
  85. package/dist/esm/utils/libraryWidgetKeys.js +3 -0
  86. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  87. package/dist/esm/utils/mapList.js +71 -0
  88. package/dist/esm/utils/mapList.js.map +1 -0
  89. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  90. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  91. package/dist/nextcloud-vue.cjs.js +8977 -6843
  92. package/dist/nextcloud-vue.cjs.js.map +2 -2
  93. package/dist/nextcloud-vue.css +769 -251
  94. package/l10n/en.json +37 -1
  95. package/l10n/nl.json +35 -1
  96. package/package.json +1 -1
  97. package/src/components/CnChoiceCards/CnChoiceCards.md +39 -0
  98. package/src/components/CnChoiceCards/CnChoiceCards.vue +93 -16
  99. package/src/components/CnDashboardPage/CnDashboardPage.vue +89 -20
  100. package/src/components/CnExportsWidget/CnExportsWidget.vue +233 -0
  101. package/src/components/CnExportsWidget/index.js +7 -0
  102. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +324 -0
  103. package/src/components/CnFilesBrowser/filesReview.js +57 -0
  104. package/src/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue +433 -0
  105. package/src/components/CnGroupedCardsWidget/index.js +28 -0
  106. package/src/components/CnIndexPage/CnIndexPage.vue +240 -4
  107. package/src/components/CnIndexPage/useNamedSource.js +4 -1
  108. package/src/components/CnMapWidget/CnMapWidget.vue +37 -0
  109. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +29 -1
  110. package/src/components/CnObjectSidebar/CnFilesTab.vue +15 -0
  111. package/src/components/CnOrderedListField/CnOrderedListField.vue +151 -5
  112. package/src/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue +272 -0
  113. package/src/components/CnSavedViewAlertWidget/index.js +7 -0
  114. package/src/components/CnSetupWizard/CnSetupWizard.vue +35 -2
  115. package/src/components/CnWidgetGrid/builtInWidgets.js +4 -0
  116. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  117. package/src/components/index.js +3 -0
  118. package/src/composables/indexSources.js +166 -19
  119. package/src/composables/useEndpointSource.js +28 -6
  120. package/src/css/index-page.css +117 -0
  121. package/src/css/look-board.css +44 -0
  122. package/src/index.js +1 -0
  123. package/src/schemas/app-manifest-v2.schema.json +31 -1
  124. package/src/utils/languageMapText.js +46 -0
  125. package/src/utils/libraryWidgetKeys.js +3 -0
  126. package/src/utils/mapList.js +67 -0
  127. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -166,6 +166,50 @@
166
166
  padding-inline-start: 56px;
167
167
  }
168
168
 
169
+ /* The dashboard header as the board draws it (DqTermijnen): the actions on
170
+ the title's row, the description and its segmented period under both, at
171
+ the header's full width. As two flex columns the description sat in the
172
+ title's column only, so a long period group wrapped under its text and the
173
+ actions dropped to a line of their own. The title column never shrinks
174
+ below its longest word; the actions wrap their buttons first.
175
+ @spec openspec/changes/dashboard-board-header-row/specs/dashboard-page/spec.md#requirement-the-board-dashboard-header-keeps-its-actions-on-the-title-row */
176
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-dashboard-page__header {
177
+ display: grid;
178
+ grid-template-columns: minmax(min-content, 1fr) auto;
179
+ align-items: start;
180
+ column-gap: 16px;
181
+ row-gap: 0;
182
+ }
183
+
184
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-dashboard-page__header-left {
185
+ display: contents;
186
+ }
187
+
188
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-dashboard-page__title-row {
189
+ grid-column: 1;
190
+ grid-row: 1;
191
+ align-self: center;
192
+ }
193
+
194
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-dashboard-page__header-left > :not(.cn-dashboard-page__title-row) {
195
+ grid-column: 1 / -1;
196
+ }
197
+
198
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-dashboard-page__header > .cn-dashboard-page__header-actions {
199
+ grid-column: 2;
200
+ grid-row: 1;
201
+ justify-content: flex-end;
202
+ margin-inline-start: 0;
203
+ }
204
+
205
+ /* A stat tile in the board's KPI row carries the board's own 18px 20px inset
206
+ (`cn-kpi-card--board`), so the card-fit cell adds none of its own: with
207
+ both the label sat 29px from the tile's top and 37px from its side, and
208
+ the row stood about 1.4 times the board's height. */
209
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-dashboard-page__kpi-cell .cn-dashboard-page__card-fit .cn-widget-wrapper__content:has(> .cn-kpi-card--board.cn-kpi-card--stacked) {
210
+ padding: 0;
211
+ }
212
+
169
213
  /* ---- The header button ------------------------------------------------- */
170
214
  .cn-look-board .cn-index-page__header-buttons:not(.cn-look-nextcloud *),
171
215
  .cn-look-board .cn-detail-page__header-actions:not(.cn-look-nextcloud *),
@@ -6020,6 +6064,123 @@ a.cn-kpi-card--board * {
6020
6064
  min-height: 300px;
6021
6065
  }
6022
6066
 
6067
+ /* The map with its numbered list (`mapConfig.list`, DqZakenKaart): one framed
6068
+ card, the map taking the larger share and the list beside it, stacking
6069
+ under a narrow width. */
6070
+ .cn-index-page__map-card {
6071
+ display: flex;
6072
+ flex: 1;
6073
+ flex-wrap: wrap;
6074
+ gap: 16px;
6075
+ min-height: 0;
6076
+ padding: 16px;
6077
+ border: 1px solid var(--color-border);
6078
+ border-radius: var(--cn-board-card-radius, 12px);
6079
+ background: var(--color-main-background);
6080
+ }
6081
+
6082
+ .cn-index-page__map-card .cn-index-page__map {
6083
+ flex: 3 1 420px;
6084
+ min-width: 0;
6085
+ }
6086
+
6087
+ .cn-index-page__map-side {
6088
+ display: flex;
6089
+ flex: 2 1 320px;
6090
+ flex-direction: column;
6091
+ gap: 12px;
6092
+ min-width: 0;
6093
+ overflow-y: auto;
6094
+ }
6095
+
6096
+ .cn-index-page__map-list {
6097
+ display: flex;
6098
+ flex-direction: column;
6099
+ margin: 0;
6100
+ padding: 0;
6101
+ border: 1px solid var(--color-border);
6102
+ border-radius: 10px;
6103
+ list-style: none;
6104
+ }
6105
+
6106
+ .cn-index-page__map-item {
6107
+ display: flex;
6108
+ gap: 12px;
6109
+ padding: 12px 14px;
6110
+ }
6111
+
6112
+ .cn-index-page__map-item + .cn-index-page__map-item {
6113
+ border-top: 1px solid var(--color-border);
6114
+ }
6115
+
6116
+ .cn-index-page__map-item--active {
6117
+ background: var(--color-primary-element-light);
6118
+ }
6119
+
6120
+ .cn-index-page__map-number {
6121
+ display: inline-flex;
6122
+ flex: none;
6123
+ align-items: center;
6124
+ justify-content: center;
6125
+ width: 26px;
6126
+ height: 26px;
6127
+ border-radius: 13px;
6128
+ background: var(--color-primary-element);
6129
+ color: var(--color-primary-element-text);
6130
+ font-size: 13px;
6131
+ font-weight: 700;
6132
+ }
6133
+
6134
+ .cn-index-page__map-item--active .cn-index-page__map-number {
6135
+ background: var(--color-primary-element-light-text);
6136
+ }
6137
+
6138
+ .cn-index-page__map-text {
6139
+ display: flex;
6140
+ flex: 1;
6141
+ flex-direction: column;
6142
+ gap: 4px;
6143
+ min-width: 0;
6144
+ }
6145
+
6146
+ .cn-index-page__map-title {
6147
+ margin: 0;
6148
+ padding: 0;
6149
+ border: 0;
6150
+ background: none;
6151
+ color: var(--color-main-text);
6152
+ font: inherit;
6153
+ font-size: 15px;
6154
+ font-weight: 600;
6155
+ line-height: 1.35;
6156
+ text-align: start;
6157
+ cursor: pointer;
6158
+ }
6159
+
6160
+ .cn-index-page__map-sub,
6161
+ .cn-index-page__map-due {
6162
+ color: var(--color-text-maxcontrast);
6163
+ font-size: 13px;
6164
+ }
6165
+
6166
+ .cn-index-page__map-pills {
6167
+ display: flex;
6168
+ flex-wrap: wrap;
6169
+ align-items: center;
6170
+ gap: 6px;
6171
+ }
6172
+
6173
+ .cn-index-page__map-missing {
6174
+ display: flex;
6175
+ flex-direction: column;
6176
+ align-items: flex-start;
6177
+ gap: 8px;
6178
+ padding: 14px;
6179
+ border: 1px solid var(--color-border);
6180
+ border-radius: 10px;
6181
+ font-size: 14px;
6182
+ }
6183
+
6023
6184
  /* Opt-in folder navigation pane (left of the list). */
6024
6185
  .cn-index-page__folder-pane {
6025
6186
  flex: 0 0 240px;
@@ -11189,24 +11350,24 @@ svg.leaflet-image-layer.leaflet-interactive path {
11189
11350
  line-height: 30px;
11190
11351
  }
11191
11352
 
11192
- .cn-map-widget[data-v-62ad3809] {
11353
+ .cn-map-widget[data-v-21c47690] {
11193
11354
  position: relative;
11194
11355
  width: 100%;
11195
11356
  min-height: 200px;
11196
11357
  }
11197
- .cn-map-widget__leaflet[data-v-62ad3809] {
11358
+ .cn-map-widget__leaflet[data-v-21c47690] {
11198
11359
  width: 100%;
11199
11360
  height: 100%;
11200
11361
  /* Leaflet paints its container #ddd, which reads as a white flash before the
11201
11362
  tiles arrive — and a bright one in a dark theme. */
11202
11363
  background: var(--color-background-dark);
11203
11364
  }
11204
- .cn-map-widget__note[data-v-62ad3809] {
11365
+ .cn-map-widget__note[data-v-21c47690] {
11205
11366
  margin: 4px 0 0;
11206
11367
  font-size: 13px;
11207
11368
  color: var(--color-text-maxcontrast);
11208
11369
  }
11209
- .cn-map-widget__fallback[data-v-62ad3809] {
11370
+ .cn-map-widget__fallback[data-v-21c47690] {
11210
11371
  display: flex;
11211
11372
  align-items: center;
11212
11373
  justify-content: center;
@@ -11214,11 +11375,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
11214
11375
  min-height: 150px;
11215
11376
  color: var(--color-text-maxcontrast);
11216
11377
  }
11217
- .cn-map-widget__error[data-v-62ad3809] {
11378
+ .cn-map-widget__error[data-v-21c47690] {
11218
11379
  font-size: 14px;
11219
11380
  margin: 0;
11220
11381
  }
11221
- .cn-map-widget__legend[data-v-62ad3809] {
11382
+ .cn-map-widget__legend[data-v-21c47690] {
11222
11383
  position: absolute;
11223
11384
  top: 12px;
11224
11385
  right: 12px;
@@ -11231,7 +11392,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
11231
11392
 
11232
11393
  /* Fullscreen overlay. A CSS-fixed box rather than the Fullscreen API, so it needs
11233
11394
  no permission prompt; the z-index clears the Nextcloud header. */
11234
- .cn-map-widget--fullscreen[data-v-62ad3809] {
11395
+ .cn-map-widget--fullscreen[data-v-21c47690] {
11235
11396
  position: fixed;
11236
11397
  top: 0;
11237
11398
  left: 0;
@@ -11244,7 +11405,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
11244
11405
  Leaflet's default white-on-grey buttons.
11245
11406
  ::v-deep is required — Leaflet builds the control DOM via L.DomUtil.create, so
11246
11407
  those nodes never receive this SFC's scoped data-v attribute. */
11247
- .cn-map-widget[data-v-62ad3809] .cn-map-widget__control {
11408
+ .cn-map-widget[data-v-21c47690] .cn-map-widget__control {
11248
11409
  display: flex;
11249
11410
  align-items: center;
11250
11411
  justify-content: center;
@@ -11253,12 +11414,32 @@ svg.leaflet-image-layer.leaflet-interactive path {
11253
11414
  color: var(--color-main-text);
11254
11415
  background: var(--color-main-background);
11255
11416
  }
11256
- .cn-map-widget[data-v-62ad3809] .cn-map-widget__control:hover,
11257
- .cn-map-widget[data-v-62ad3809] .cn-map-widget__control:focus-visible {
11417
+ .cn-map-widget[data-v-21c47690] .cn-map-widget__control:hover,
11418
+ .cn-map-widget[data-v-21c47690] .cn-map-widget__control:focus-visible {
11258
11419
  background: var(--color-background-hover);
11259
11420
  }
11260
11421
 
11261
11422
 
11423
+ /* A numbered pin (`properties.markerNumber`): a 26px primary circle with its
11424
+ number in white, the active one darker. Unscoped, because Leaflet creates
11425
+ the marker element outside the template. */
11426
+ .cn-map-widget__pin {
11427
+ display: flex;
11428
+ align-items: center;
11429
+ justify-content: center;
11430
+ border: 2px solid var(--color-main-background);
11431
+ border-radius: 50%;
11432
+ background: var(--color-primary-element);
11433
+ color: var(--color-primary-element-text);
11434
+ font-size: 13px;
11435
+ font-weight: 700;
11436
+ box-sizing: border-box;
11437
+ }
11438
+ .cn-map-widget__pin--active {
11439
+ background: var(--color-primary-element-light-text);
11440
+ }
11441
+
11442
+
11262
11443
  .cn-map-widget-form[data-v-ab71a77e] {
11263
11444
  display: flex;
11264
11445
  flex-direction: column;
@@ -17041,7 +17222,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17041
17222
  }
17042
17223
 
17043
17224
 
17044
- .cn-files-browser[data-v-5da9ca42] {
17225
+ .cn-files-browser[data-v-53e4bcc2] {
17045
17226
  display: flex;
17046
17227
  flex-direction: column;
17047
17228
  gap: 8px;
@@ -17049,11 +17230,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17049
17230
  position: relative;
17050
17231
  border-radius: var(--border-radius-large, 8px);
17051
17232
  }
17052
- .cn-files-browser--dragging[data-v-5da9ca42] {
17233
+ .cn-files-browser--dragging[data-v-53e4bcc2] {
17053
17234
  outline: 2px dashed var(--color-primary-element);
17054
17235
  outline-offset: 4px;
17055
17236
  }
17056
- .cn-files-browser__drop-overlay[data-v-5da9ca42] {
17237
+ .cn-files-browser__drop-overlay[data-v-53e4bcc2] {
17057
17238
  position: absolute;
17058
17239
  inset: 0;
17059
17240
  z-index: 2;
@@ -17071,7 +17252,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17071
17252
  text-align: center;
17072
17253
  pointer-events: none;
17073
17254
  }
17074
- .cn-files-browser__drop-icon[data-v-5da9ca42] {
17255
+ .cn-files-browser__drop-icon[data-v-53e4bcc2] {
17075
17256
  display: flex;
17076
17257
  align-items: center;
17077
17258
  justify-content: center;
@@ -17081,11 +17262,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17081
17262
  background: var(--color-main-background);
17082
17263
  color: var(--color-primary-element);
17083
17264
  }
17084
- .cn-files-browser__drop-label[data-v-5da9ca42] {
17265
+ .cn-files-browser__drop-label[data-v-53e4bcc2] {
17085
17266
  font-size: 20px;
17086
17267
  font-weight: 700;
17087
17268
  }
17088
- .cn-files-browser__drop-hint[data-v-5da9ca42] {
17269
+ .cn-files-browser__drop-hint[data-v-53e4bcc2] {
17089
17270
  display: flex;
17090
17271
  align-items: center;
17091
17272
  gap: 8px;
@@ -17095,14 +17276,14 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17095
17276
  font-size: 13px;
17096
17277
  color: var(--color-text-maxcontrast);
17097
17278
  }
17098
- .cn-files-browser__bar[data-v-5da9ca42] {
17279
+ .cn-files-browser__bar[data-v-53e4bcc2] {
17099
17280
  display: flex;
17100
17281
  align-items: center;
17101
17282
  justify-content: space-between;
17102
17283
  gap: 8px;
17103
17284
  min-width: 0;
17104
17285
  }
17105
- .cn-files-browser__crumbs[data-v-5da9ca42] {
17286
+ .cn-files-browser__crumbs[data-v-53e4bcc2] {
17106
17287
  min-width: 0;
17107
17288
  flex: 1 1 auto;
17108
17289
  }
@@ -17110,13 +17291,13 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17110
17291
  /* The crumbs give way, the controls do not: a long crumb (a folder named
17111
17292
  after a uuid) shrank the upload button to "Bestanden..." while the crumbs
17112
17293
  kept their width. */
17113
- .cn-files-browser__bar[data-v-5da9ca42] > :not(.cn-files-browser__crumbs) {
17294
+ .cn-files-browser__bar[data-v-53e4bcc2] > :not(.cn-files-browser__crumbs) {
17114
17295
  flex-shrink: 0;
17115
17296
  }
17116
- .cn-files-browser__file-input[data-v-5da9ca42] {
17297
+ .cn-files-browser__file-input[data-v-53e4bcc2] {
17117
17298
  display: none;
17118
17299
  }
17119
- .cn-files-browser__uploads[data-v-5da9ca42] {
17300
+ .cn-files-browser__uploads[data-v-53e4bcc2] {
17120
17301
  list-style: none;
17121
17302
  margin: 0;
17122
17303
  padding: 0;
@@ -17124,40 +17305,40 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17124
17305
  flex-direction: column;
17125
17306
  gap: 4px;
17126
17307
  }
17127
- .cn-files-browser__upload[data-v-5da9ca42] {
17308
+ .cn-files-browser__upload[data-v-53e4bcc2] {
17128
17309
  display: flex;
17129
17310
  flex-direction: column;
17130
17311
  gap: 2px;
17131
17312
  }
17132
- .cn-files-browser__upload-name[data-v-5da9ca42] {
17313
+ .cn-files-browser__upload-name[data-v-53e4bcc2] {
17133
17314
  font-size: 13px;
17134
17315
  }
17135
- .cn-files-browser__upload-error[data-v-5da9ca42] {
17316
+ .cn-files-browser__upload-error[data-v-53e4bcc2] {
17136
17317
  color: var(--color-error);
17137
17318
  font-size: 13px;
17138
17319
  }
17139
- .cn-files-browser__loading[data-v-5da9ca42] {
17320
+ .cn-files-browser__loading[data-v-53e4bcc2] {
17140
17321
  padding: 24px 0;
17141
17322
  }
17142
17323
 
17143
17324
  /* `sideCards`: the list and, while a file is selected, a column of cards. */
17144
- .cn-files-browser__body--with-side[data-v-5da9ca42] {
17325
+ .cn-files-browser__body--with-side[data-v-53e4bcc2] {
17145
17326
  display: grid;
17146
17327
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
17147
17328
  align-items: start;
17148
17329
  gap: 16px;
17149
17330
  }
17150
17331
  @media (max-width: 900px) {
17151
- .cn-files-browser__body--with-side[data-v-5da9ca42] {
17332
+ .cn-files-browser__body--with-side[data-v-53e4bcc2] {
17152
17333
  grid-template-columns: minmax(0, 1fr);
17153
17334
  }
17154
17335
  }
17155
- .cn-files-browser__side[data-v-5da9ca42] {
17336
+ .cn-files-browser__side[data-v-53e4bcc2] {
17156
17337
  display: flex;
17157
17338
  flex-direction: column;
17158
17339
  gap: 12px;
17159
17340
  }
17160
- .cn-files-browser__side-card[data-v-5da9ca42] {
17341
+ .cn-files-browser__side-card[data-v-53e4bcc2] {
17161
17342
  display: flex;
17162
17343
  flex-direction: column;
17163
17344
  gap: 10px;
@@ -17166,27 +17347,27 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17166
17347
  border-radius: var(--border-radius-large);
17167
17348
  background: var(--color-main-background);
17168
17349
  }
17169
- .cn-files-browser__side-title[data-v-5da9ca42] {
17350
+ .cn-files-browser__side-title[data-v-53e4bcc2] {
17170
17351
  margin: 0;
17171
17352
  font-size: 15px;
17172
17353
  font-weight: 700;
17173
17354
  overflow-wrap: anywhere;
17174
17355
  }
17175
- .cn-files-browser__side-facts[data-v-5da9ca42] {
17356
+ .cn-files-browser__side-facts[data-v-53e4bcc2] {
17176
17357
  display: grid;
17177
17358
  grid-template-columns: max-content minmax(0, 1fr);
17178
17359
  gap: 6px 12px;
17179
17360
  margin: 0;
17180
17361
  font-size: 14px;
17181
17362
  }
17182
- .cn-files-browser__side-facts dt[data-v-5da9ca42] {
17363
+ .cn-files-browser__side-facts dt[data-v-53e4bcc2] {
17183
17364
  color: var(--color-text-maxcontrast);
17184
17365
  }
17185
- .cn-files-browser__side-facts dd[data-v-5da9ca42] {
17366
+ .cn-files-browser__side-facts dd[data-v-53e4bcc2] {
17186
17367
  margin: 0;
17187
17368
  overflow-wrap: anywhere;
17188
17369
  }
17189
- .cn-files-browser__side-actions[data-v-5da9ca42] {
17370
+ .cn-files-browser__side-actions[data-v-53e4bcc2] {
17190
17371
  display: flex;
17191
17372
  flex-wrap: wrap;
17192
17373
  gap: 8px;
@@ -17194,35 +17375,35 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17194
17375
 
17195
17376
  /* A value drawn in a tone (`colorMap` on a column that is not a badge): the
17196
17377
  text in the tone's colour, as the boards write a restricted level. */
17197
- .cn-files-browser__tone[data-v-5da9ca42] {
17378
+ .cn-files-browser__tone[data-v-53e4bcc2] {
17198
17379
  font-weight: 600;
17199
17380
  }
17200
- .cn-files-browser__tone--success[data-v-5da9ca42] {
17381
+ .cn-files-browser__tone--success[data-v-53e4bcc2] {
17201
17382
  color: var(--color-success-text, var(--color-success));
17202
17383
  }
17203
- .cn-files-browser__tone--warning[data-v-5da9ca42] {
17384
+ .cn-files-browser__tone--warning[data-v-53e4bcc2] {
17204
17385
  color: var(--color-warning-text, var(--color-warning));
17205
17386
  }
17206
- .cn-files-browser__tone--error[data-v-5da9ca42] {
17387
+ .cn-files-browser__tone--error[data-v-53e4bcc2] {
17207
17388
  color: var(--color-error-text, var(--color-error));
17208
17389
  }
17209
- .cn-files-browser__tone--primary[data-v-5da9ca42],
17210
- .cn-files-browser__tone--info[data-v-5da9ca42] {
17390
+ .cn-files-browser__tone--primary[data-v-53e4bcc2],
17391
+ .cn-files-browser__tone--info[data-v-53e4bcc2] {
17211
17392
  color: var(--color-primary-element-light-text, var(--color-primary-element));
17212
17393
  }
17213
- .cn-files-browser__table[data-v-5da9ca42] {
17394
+ .cn-files-browser__table[data-v-53e4bcc2] {
17214
17395
  width: 100%;
17215
17396
  border-collapse: collapse;
17216
17397
  table-layout: fixed;
17217
17398
  }
17218
- .cn-files-browser__table th[data-v-5da9ca42] {
17399
+ .cn-files-browser__table th[data-v-53e4bcc2] {
17219
17400
  text-align: start;
17220
17401
  font-weight: normal;
17221
17402
  color: var(--color-text-maxcontrast);
17222
17403
  padding: 4px 8px;
17223
17404
  border-bottom: 1px solid var(--color-border);
17224
17405
  }
17225
- .cn-files-browser__sort[data-v-5da9ca42] {
17406
+ .cn-files-browser__sort[data-v-53e4bcc2] {
17226
17407
  background: none;
17227
17408
  border: none;
17228
17409
  padding: 0;
@@ -17233,46 +17414,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17233
17414
  align-items: center;
17234
17415
  gap: 2px;
17235
17416
  }
17236
- .cn-files-browser__sort[data-v-5da9ca42]:hover,
17237
- .cn-files-browser__sort[data-v-5da9ca42]:focus-visible {
17417
+ .cn-files-browser__sort[data-v-53e4bcc2]:hover,
17418
+ .cn-files-browser__sort[data-v-53e4bcc2]:focus-visible {
17238
17419
  color: var(--color-main-text);
17239
17420
  }
17240
- .cn-files-browser__row[data-v-5da9ca42] {
17421
+ .cn-files-browser__row[data-v-53e4bcc2] {
17241
17422
  cursor: pointer;
17242
17423
  }
17243
- .cn-files-browser__row[data-v-5da9ca42]:hover,
17244
- .cn-files-browser__row[data-v-5da9ca42]:focus-within {
17424
+ .cn-files-browser__row[data-v-53e4bcc2]:hover,
17425
+ .cn-files-browser__row[data-v-53e4bcc2]:focus-within {
17245
17426
  background-color: var(--color-background-hover);
17246
17427
  }
17247
- .cn-files-browser__table td[data-v-5da9ca42] {
17428
+ .cn-files-browser__table td[data-v-53e4bcc2] {
17248
17429
  padding: 4px 8px;
17249
17430
  border-bottom: 1px solid var(--color-border);
17250
17431
  vertical-align: middle;
17251
17432
  }
17252
- .cn-files-browser__col-icon[data-v-5da9ca42] {
17433
+ .cn-files-browser__col-icon[data-v-53e4bcc2] {
17253
17434
  width: 48px;
17254
17435
  }
17255
- .cn-files-browser__col-size[data-v-5da9ca42] {
17436
+ .cn-files-browser__col-size[data-v-53e4bcc2] {
17256
17437
  width: 96px;
17257
17438
  white-space: nowrap;
17258
17439
  color: var(--color-text-maxcontrast);
17259
17440
  }
17260
- .cn-files-browser__col-mtime[data-v-5da9ca42] {
17441
+ .cn-files-browser__col-mtime[data-v-53e4bcc2] {
17261
17442
  width: 140px;
17262
17443
  white-space: nowrap;
17263
17444
  color: var(--color-text-maxcontrast);
17264
17445
  }
17265
- .cn-files-browser__col-select[data-v-5da9ca42] {
17446
+ .cn-files-browser__col-select[data-v-53e4bcc2] {
17266
17447
  width: 36px;
17267
17448
  text-align: center;
17268
17449
  }
17269
- .cn-files-browser__select[data-v-5da9ca42] {
17450
+ .cn-files-browser__select[data-v-53e4bcc2] {
17270
17451
  width: 18px;
17271
17452
  height: 18px;
17272
17453
  margin: 0;
17273
17454
  accent-color: var(--color-primary-element);
17274
17455
  }
17275
- .cn-files-browser__bulk-bar[data-v-5da9ca42] {
17456
+ .cn-files-browser__bulk-bar[data-v-53e4bcc2] {
17276
17457
  display: flex;
17277
17458
  flex-wrap: wrap;
17278
17459
  align-items: center;
@@ -17281,22 +17462,91 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17281
17462
  border-radius: var(--border-radius-large);
17282
17463
  background: var(--color-primary-element-light);
17283
17464
  }
17284
- .cn-files-browser__bulk-count[data-v-5da9ca42] {
17465
+ .cn-files-browser__bulk-count[data-v-53e4bcc2] {
17285
17466
  font-weight: 600;
17286
17467
  margin-inline-end: 8px;
17287
17468
  }
17288
- .cn-files-browser__facets[data-v-5da9ca42] {
17469
+ .cn-files-browser__review[data-v-53e4bcc2] {
17470
+ display: flex;
17471
+ flex-direction: column;
17472
+ gap: 10px;
17473
+ margin-block-end: 12px;
17474
+ padding: 14px 16px;
17475
+ border-radius: 10px;
17476
+ background: var(--color-background-hover);
17477
+ }
17478
+ .cn-files-browser__review-head[data-v-53e4bcc2] {
17479
+ display: flex;
17480
+ flex-wrap: wrap;
17481
+ align-items: baseline;
17482
+ justify-content: space-between;
17483
+ gap: 8px;
17484
+ }
17485
+ .cn-files-browser__review-title[data-v-53e4bcc2] {
17486
+ font-size: 15px;
17487
+ }
17488
+ .cn-files-browser__review-sub[data-v-53e4bcc2] {
17489
+ color: var(--color-text-maxcontrast);
17490
+ font-size: 13px;
17491
+ }
17492
+ .cn-files-browser__review-bar[data-v-53e4bcc2] {
17493
+ display: flex;
17494
+ height: 8px;
17495
+ overflow: hidden;
17496
+ border-radius: 4px;
17497
+ background: var(--color-border);
17498
+ }
17499
+ .cn-files-browser__review-legend[data-v-53e4bcc2] {
17500
+ display: flex;
17501
+ flex-wrap: wrap;
17502
+ gap: 8px 18px;
17503
+ margin: 0;
17504
+ padding: 0;
17505
+ font-size: 14px;
17506
+ list-style: none;
17507
+ }
17508
+ .cn-files-browser__review-legend li[data-v-53e4bcc2] {
17509
+ display: inline-flex;
17510
+ align-items: center;
17511
+ gap: 8px;
17512
+ }
17513
+ .cn-files-browser__review-dot[data-v-53e4bcc2] {
17514
+ width: 10px;
17515
+ height: 10px;
17516
+ border-radius: 5px;
17517
+ }
17518
+ .cn-files-browser__review-part--success[data-v-53e4bcc2] {
17519
+ background: var(--color-success-text, var(--color-success));
17520
+ }
17521
+ .cn-files-browser__review-part--warning[data-v-53e4bcc2] {
17522
+ background: var(--color-warning);
17523
+ }
17524
+ .cn-files-browser__review-part--error[data-v-53e4bcc2] {
17525
+ background: var(--color-error-text, var(--color-error));
17526
+ }
17527
+ .cn-files-browser__review-part--info[data-v-53e4bcc2] {
17528
+ background: var(--color-primary-element);
17529
+ }
17530
+ .cn-files-browser__review-part--default[data-v-53e4bcc2] {
17531
+ background: var(--color-border-dark);
17532
+ }
17533
+ .cn-files-browser__row-button[data-v-53e4bcc2] {
17534
+ display: inline-flex;
17535
+ margin-inline-end: 8px;
17536
+ vertical-align: middle;
17537
+ }
17538
+ .cn-files-browser__facets[data-v-53e4bcc2] {
17289
17539
  display: flex;
17290
17540
  flex-wrap: wrap;
17291
17541
  align-items: center;
17292
17542
  gap: 8px 16px;
17293
17543
  }
17294
- .cn-files-browser__facet[data-v-5da9ca42] {
17544
+ .cn-files-browser__facet[data-v-53e4bcc2] {
17295
17545
  display: flex;
17296
17546
  flex-wrap: wrap;
17297
17547
  gap: 6px;
17298
17548
  }
17299
- .cn-files-browser__facet-chip[data-v-5da9ca42] {
17549
+ .cn-files-browser__facet-chip[data-v-53e4bcc2] {
17300
17550
  display: inline-flex;
17301
17551
  align-items: center;
17302
17552
  gap: 6px;
@@ -17308,65 +17558,83 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17308
17558
  color: var(--color-main-text);
17309
17559
  cursor: pointer;
17310
17560
  }
17311
- .cn-files-browser__facet-chip--active[data-v-5da9ca42] {
17561
+ .cn-files-browser__facet-chip--active[data-v-53e4bcc2] {
17312
17562
  border-color: var(--color-primary-element);
17313
17563
  background: var(--color-primary-element-light);
17314
17564
  }
17315
- .cn-files-browser__group-heading[data-v-5da9ca42] {
17565
+ .cn-files-browser__group-heading[data-v-53e4bcc2] {
17316
17566
  padding: 12px 8px 4px;
17317
17567
  text-align: start;
17318
17568
  font-weight: 700;
17319
17569
  }
17320
- .cn-files-browser__group-count[data-v-5da9ca42] {
17570
+ .cn-files-browser__group-count[data-v-53e4bcc2] {
17321
17571
  margin-inline-start: 6px;
17322
17572
  font-weight: 400;
17323
17573
  color: var(--color-text-maxcontrast);
17324
17574
  }
17325
- .cn-files-browser__no-match[data-v-5da9ca42] {
17575
+ .cn-files-browser__no-match[data-v-53e4bcc2] {
17326
17576
  padding: 16px 8px;
17327
17577
  color: var(--color-text-maxcontrast);
17328
17578
  }
17329
- .cn-files-browser__col-actions[data-v-5da9ca42] {
17579
+ .cn-files-browser__col-actions[data-v-53e4bcc2] {
17330
17580
  width: 48px;
17581
+ white-space: nowrap;
17582
+ }
17583
+ .cn-files-browser__col-actions[data-v-53e4bcc2]:has(.cn-files-browser__row-button) {
17584
+ width: auto;
17331
17585
  }
17332
- .cn-files-browser__col-name[data-v-5da9ca42] {
17586
+ .cn-files-browser__col-name[data-v-53e4bcc2] {
17333
17587
  min-width: 0;
17334
17588
  }
17335
- .cn-files-browser__name[data-v-5da9ca42] {
17589
+ .cn-files-browser__name[data-v-53e4bcc2] {
17336
17590
  display: block;
17337
17591
  overflow: hidden;
17338
17592
  text-overflow: ellipsis;
17339
17593
  white-space: nowrap;
17340
17594
  }
17341
- .cn-files-browser__row--linked[data-v-5da9ca42] {
17595
+ .cn-files-browser__name-secondary[data-v-53e4bcc2] {
17596
+ display: block;
17597
+ overflow: hidden;
17342
17598
  color: var(--color-text-maxcontrast);
17599
+ font-size: 13px;
17600
+ text-overflow: ellipsis;
17601
+ white-space: nowrap;
17343
17602
  }
17344
- .cn-files-browser__note[data-v-5da9ca42] {
17603
+ .cn-files-browser__footnote[data-v-53e4bcc2] {
17604
+ margin: 0;
17605
+ padding-top: 12px;
17606
+ color: var(--color-text-maxcontrast);
17607
+ font-size: 13px;
17608
+ }
17609
+ .cn-files-browser__row--linked[data-v-53e4bcc2] {
17610
+ color: var(--color-text-maxcontrast);
17611
+ }
17612
+ .cn-files-browser__note[data-v-53e4bcc2] {
17345
17613
  color: var(--color-text-maxcontrast);
17346
17614
  display: block;
17347
17615
  font-size: var(--font-size-small, 13px);
17348
17616
  }
17349
- .cn-files-browser__note-link[data-v-5da9ca42] {
17617
+ .cn-files-browser__note-link[data-v-53e4bcc2] {
17350
17618
  color: inherit;
17351
17619
  text-decoration: underline;
17352
17620
  }
17353
- .cn-files-browser__row--folder .cn-files-browser__name[data-v-5da9ca42] {
17621
+ .cn-files-browser__row--folder .cn-files-browser__name[data-v-53e4bcc2] {
17354
17622
  font-weight: 600;
17355
17623
  }
17356
- .cn-files-browser__mime[data-v-5da9ca42],
17357
- .cn-files-browser__thumb[data-v-5da9ca42] {
17624
+ .cn-files-browser__mime[data-v-53e4bcc2],
17625
+ .cn-files-browser__thumb[data-v-53e4bcc2] {
17358
17626
  width: 32px;
17359
17627
  height: 32px;
17360
17628
  display: block;
17361
17629
  }
17362
- .cn-files-browser__thumb[data-v-5da9ca42] {
17630
+ .cn-files-browser__thumb[data-v-53e4bcc2] {
17363
17631
  object-fit: cover;
17364
17632
  border-radius: var(--border-radius, 4px);
17365
17633
  }
17366
- .cn-files-browser__new-folder[data-v-5da9ca42] {
17634
+ .cn-files-browser__new-folder[data-v-53e4bcc2] {
17367
17635
  padding: 8px 0;
17368
17636
  }
17369
- .hidden-visually[data-v-5da9ca42] {
17637
+ .hidden-visually[data-v-53e4bcc2] {
17370
17638
  position: absolute;
17371
17639
  width: 1px;
17372
17640
  height: 1px;
@@ -17376,9 +17644,9 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17376
17644
  }
17377
17645
 
17378
17646
 
17379
- .cn-sidebar-tab[data-v-0442340e] { padding: 12px;
17647
+ .cn-sidebar-tab[data-v-68d47344] { padding: 12px;
17380
17648
  }
17381
- .cn-sidebar-tab__upload-error[data-v-0442340e] {
17649
+ .cn-sidebar-tab__upload-error[data-v-68d47344] {
17382
17650
  padding: 8px 12px;
17383
17651
  margin-bottom: 8px;
17384
17652
  border-radius: var(--border-radius, 4px);
@@ -17386,7 +17654,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17386
17654
  color: var(--color-error, #e53935);
17387
17655
  font-size: 13px;
17388
17656
  }
17389
- .cn-sidebar-tab__dropzone[data-v-0442340e] {
17657
+ .cn-sidebar-tab__dropzone[data-v-68d47344] {
17390
17658
  display: flex;
17391
17659
  flex-direction: column;
17392
17660
  align-items: center;
@@ -17399,46 +17667,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17399
17667
  cursor: pointer;
17400
17668
  transition: border-color 0.15s ease, background-color 0.15s ease;
17401
17669
  }
17402
- .cn-sidebar-tab__dropzone[data-v-0442340e]:hover {
17670
+ .cn-sidebar-tab__dropzone[data-v-68d47344]:hover {
17403
17671
  border-color: var(--color-primary-element);
17404
17672
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.08));
17405
17673
  }
17406
- .cn-sidebar-tab__dropzone--active[data-v-0442340e] {
17674
+ .cn-sidebar-tab__dropzone--active[data-v-68d47344] {
17407
17675
  border-color: var(--color-primary-element);
17408
17676
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.12));
17409
17677
  }
17410
- .cn-sidebar-tab__share[data-v-0442340e] { margin-bottom: 12px;
17678
+ .cn-sidebar-tab__share[data-v-68d47344] { margin-bottom: 12px;
17411
17679
  }
17412
- .cn-sidebar-tab__dropzone-icon[data-v-0442340e] { color: var(--color-text-maxcontrast);
17680
+ .cn-sidebar-tab__dropzone-icon[data-v-68d47344] { color: var(--color-text-maxcontrast);
17413
17681
  }
17414
- .cn-sidebar-tab__dropzone--active .cn-sidebar-tab__dropzone-icon[data-v-0442340e],
17415
- .cn-sidebar-tab__dropzone:hover .cn-sidebar-tab__dropzone-icon[data-v-0442340e] { color: var(--color-primary-element);
17682
+ .cn-sidebar-tab__dropzone--active .cn-sidebar-tab__dropzone-icon[data-v-68d47344],
17683
+ .cn-sidebar-tab__dropzone:hover .cn-sidebar-tab__dropzone-icon[data-v-68d47344] { color: var(--color-primary-element);
17416
17684
  }
17417
- .cn-sidebar-tab__dropzone-text[data-v-0442340e] { font-size: 13px; color: var(--color-text-maxcontrast);
17685
+ .cn-sidebar-tab__dropzone-text[data-v-68d47344] { font-size: 13px; color: var(--color-text-maxcontrast);
17418
17686
  }
17419
- .cn-sidebar-tab__file-input[data-v-0442340e] { display: none;
17687
+ .cn-sidebar-tab__file-input[data-v-68d47344] { display: none;
17420
17688
  }
17421
- .cn-sidebar-tab__empty[data-v-0442340e] {
17689
+ .cn-sidebar-tab__empty[data-v-68d47344] {
17422
17690
  text-align: center;
17423
17691
  padding: 24px 12px;
17424
17692
  color: var(--color-text-maxcontrast);
17425
17693
  font-size: 13px;
17426
17694
  }
17427
- .cn-sidebar-tab__list[data-v-0442340e] { display: flex; flex-direction: column; gap: 2px;
17695
+ .cn-sidebar-tab__list[data-v-68d47344] { display: flex; flex-direction: column; gap: 2px;
17428
17696
  }
17429
- .cn-sidebar-tab__mime[data-v-0442340e],
17430
- .cn-sidebar-tab__thumb[data-v-0442340e] {
17697
+ .cn-sidebar-tab__mime[data-v-68d47344],
17698
+ .cn-sidebar-tab__thumb[data-v-68d47344] {
17431
17699
  width: 32px;
17432
17700
  height: 32px;
17433
17701
  display: block;
17434
17702
  }
17435
- .cn-sidebar-tab__thumb[data-v-0442340e] {
17703
+ .cn-sidebar-tab__thumb[data-v-68d47344] {
17436
17704
  object-fit: cover;
17437
17705
  border-radius: var(--border-radius, 4px);
17438
17706
  }
17439
- .cn-sidebar-tab__meta[data-v-0442340e] { color: var(--color-text-maxcontrast);
17707
+ .cn-sidebar-tab__meta[data-v-68d47344] { color: var(--color-text-maxcontrast);
17440
17708
  }
17441
- .cn-sidebar-tab__load-more[data-v-0442340e] { margin-top: 8px;
17709
+ .cn-sidebar-tab__load-more[data-v-68d47344] { margin-top: 8px;
17442
17710
  }
17443
17711
 
17444
17712
 
@@ -21879,7 +22147,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21879
22147
  Horizontal overflow is owned by `.cn-table-container` (overflow-x: auto); a
21880
22148
  second scroll container here would produce a nested scrollbar, so this host
21881
22149
  stays plain. */
21882
- .cn-object-list-widget[data-v-535337c7] {
22150
+ .cn-object-list-widget[data-v-aeadc210] {
21883
22151
  width: 100%;
21884
22152
  height: 100%;
21885
22153
  display: flex;
@@ -21891,10 +22159,10 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21891
22159
  relative` is set only in the dropping state so a widget without a drop zone
21892
22160
  keeps the containing block it had — an unconditional rule here would
21893
22161
  re-parent any absolutely-positioned descendant a host has placed. */
21894
- .cn-object-list-widget--dropping[data-v-535337c7] {
22162
+ .cn-object-list-widget--dropping[data-v-aeadc210] {
21895
22163
  position: relative;
21896
22164
  }
21897
- .cn-object-list-widget__drop-overlay[data-v-535337c7] {
22165
+ .cn-object-list-widget__drop-overlay[data-v-aeadc210] {
21898
22166
  position: absolute;
21899
22167
  inset: 0;
21900
22168
  z-index: 2;
@@ -21912,7 +22180,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21912
22180
  and the drop would land on nothing. */
21913
22181
  pointer-events: none;
21914
22182
  }
21915
- .cn-object-list-widget__table[data-v-535337c7] {
22183
+ .cn-object-list-widget__table[data-v-aeadc210] {
21916
22184
  flex: 1 1 auto;
21917
22185
  min-height: 0;
21918
22186
  overflow: hidden;
@@ -21921,16 +22189,16 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21921
22189
  /* The empty state is CnWidgetEmptyState now — it brings its own layout, so
21922
22190
  all this rule still owns is letting it claim the cell's leftover height
21923
22191
  (ADR-062: it fits the cell, it never forces one). */
21924
- .cn-object-list-widget__empty[data-v-535337c7] {
22192
+ .cn-object-list-widget__empty[data-v-aeadc210] {
21925
22193
  flex: 1 1 auto;
21926
22194
  min-height: 0;
21927
22195
  }
21928
22196
 
21929
22197
  /* The pager sits flush at the bottom of the card, above "View all". */
21930
- .cn-object-list-widget__pager[data-v-535337c7] {
22198
+ .cn-object-list-widget__pager[data-v-aeadc210] {
21931
22199
  flex-shrink: 0;
21932
22200
  }
21933
- .cn-object-list-widget__view-all[data-v-535337c7] {
22201
+ .cn-object-list-widget__view-all[data-v-aeadc210] {
21934
22202
  align-self: flex-start;
21935
22203
  background: none;
21936
22204
  border: none;
@@ -21941,21 +22209,26 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21941
22209
  padding: 4px;
21942
22210
  text-decoration: none;
21943
22211
  }
21944
- .cn-object-list-widget__view-all[data-v-535337c7]:hover,
21945
- .cn-object-list-widget__view-all[data-v-535337c7]:focus-visible {
22212
+ .cn-object-list-widget__view-all[data-v-aeadc210]:hover,
22213
+ .cn-object-list-widget__view-all[data-v-aeadc210]:focus-visible {
21946
22214
  text-decoration: underline;
21947
22215
  }
21948
- .cn-object-list-widget__more[data-v-535337c7] {
22216
+ .cn-object-list-widget__more[data-v-aeadc210] {
21949
22217
  color: var(--color-text-maxcontrast);
21950
22218
  font-size: 0.85em;
21951
22219
  margin: 4px 0 0;
21952
22220
  padding: 4px;
21953
22221
  }
22222
+ .cn-object-list-widget__footnote[data-v-aeadc210] {
22223
+ color: var(--color-text-maxcontrast);
22224
+ font-size: 13px;
22225
+ margin: 8px 0 0;
22226
+ }
21954
22227
 
21955
22228
  /* Footer Add — same pattern as the integration leaves' footer action
21956
22229
  ("Open in Calendar"): full-width, centered, divider-topped, pinned to
21957
22230
  the card bottom. */
21958
- .cn-object-list-widget__add[data-v-535337c7] {
22231
+ .cn-object-list-widget__add[data-v-aeadc210] {
21959
22232
  align-self: stretch;
21960
22233
  border-top: 1px solid var(--color-border);
21961
22234
  /* Bleed through the host card's 16px content padding so the divider
@@ -21963,31 +22236,31 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21963
22236
  margin: auto -16px -16px;
21964
22237
  padding: 4px;
21965
22238
  }
21966
- .cn-object-list-widget__error[data-v-535337c7] {
22239
+ .cn-object-list-widget__error[data-v-aeadc210] {
21967
22240
  color: var(--color-text-maxcontrast);
21968
22241
  font-size: 0.85em;
21969
22242
  margin: 4px 0 0;
21970
22243
  }
21971
- .cn-object-list-widget__prompt[data-v-535337c7] {
22244
+ .cn-object-list-widget__prompt[data-v-aeadc210] {
21972
22245
  color: var(--color-text-maxcontrast);
21973
22246
  font-style: italic;
21974
22247
  padding: 16px 4px;
21975
22248
  margin: 0;
21976
22249
  text-align: center;
21977
22250
  }
21978
- .cn-object-list-widget__facet[data-v-535337c7] {
22251
+ .cn-object-list-widget__facet[data-v-aeadc210] {
21979
22252
  display: flex;
21980
22253
  align-items: center;
21981
22254
  flex-wrap: wrap;
21982
22255
  gap: 6px;
21983
22256
  padding: 0 4px 8px;
21984
22257
  }
21985
- .cn-object-list-widget__facet-label[data-v-535337c7] {
22258
+ .cn-object-list-widget__facet-label[data-v-aeadc210] {
21986
22259
  color: var(--color-text-maxcontrast);
21987
22260
  font-size: 0.85em;
21988
22261
  font-weight: 600;
21989
22262
  }
21990
- .cn-object-list-widget__facet-chip[data-v-535337c7] {
22263
+ .cn-object-list-widget__facet-chip[data-v-aeadc210] {
21991
22264
  background-color: var(--color-background-hover);
21992
22265
  border: 1px solid var(--color-border);
21993
22266
  border-radius: var(--border-radius-pill, 16px);
@@ -21997,13 +22270,13 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21997
22270
  font-size: 0.85em;
21998
22271
  padding: 2px 10px;
21999
22272
  }
22000
- .cn-object-list-widget__facet-chip--active[data-v-535337c7] {
22273
+ .cn-object-list-widget__facet-chip--active[data-v-aeadc210] {
22001
22274
  background-color: var(--color-primary-element-light);
22002
22275
  border-color: var(--color-primary-element);
22003
22276
  color: var(--color-primary-element-text, var(--color-main-text));
22004
22277
  }
22005
- .cn-object-list-widget__facet-clear[data-v-535337c7],
22006
- .cn-object-list-widget__bulk-clear[data-v-535337c7] {
22278
+ .cn-object-list-widget__facet-clear[data-v-aeadc210],
22279
+ .cn-object-list-widget__bulk-clear[data-v-aeadc210] {
22007
22280
  background: none;
22008
22281
  border: none;
22009
22282
  color: var(--color-primary-element);
@@ -22012,11 +22285,11 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22012
22285
  font-size: 0.85em;
22013
22286
  padding: 2px 4px;
22014
22287
  }
22015
- .cn-object-list-widget__facet-clear[data-v-535337c7]:hover,
22016
- .cn-object-list-widget__bulk-clear[data-v-535337c7]:hover {
22288
+ .cn-object-list-widget__facet-clear[data-v-aeadc210]:hover,
22289
+ .cn-object-list-widget__bulk-clear[data-v-aeadc210]:hover {
22017
22290
  text-decoration: underline;
22018
22291
  }
22019
- .cn-object-list-widget__bulk-bar[data-v-535337c7] {
22292
+ .cn-object-list-widget__bulk-bar[data-v-aeadc210] {
22020
22293
  align-items: center;
22021
22294
  background-color: var(--color-primary-element-light);
22022
22295
  border-radius: var(--border-radius, 8px);
@@ -22026,10 +22299,10 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22026
22299
  margin: 0 0 8px;
22027
22300
  padding: 6px 10px;
22028
22301
  }
22029
- .cn-object-list-widget__bulk-count[data-v-535337c7] {
22302
+ .cn-object-list-widget__bulk-count[data-v-aeadc210] {
22030
22303
  font-weight: 600;
22031
22304
  }
22032
- .cn-object-list-widget__bulk-action[data-v-535337c7] {
22305
+ .cn-object-list-widget__bulk-action[data-v-aeadc210] {
22033
22306
  background-color: var(--color-main-background);
22034
22307
  border: 1px solid var(--color-border);
22035
22308
  border-radius: var(--border-radius, 8px);
@@ -22037,25 +22310,25 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22037
22310
  font: inherit;
22038
22311
  padding: 4px 10px;
22039
22312
  }
22040
- .cn-object-list-widget__bulk-action--destructive[data-v-535337c7] {
22313
+ .cn-object-list-widget__bulk-action--destructive[data-v-aeadc210] {
22041
22314
  border-color: var(--color-error);
22042
22315
  color: var(--color-error);
22043
22316
  }
22044
- .cn-object-list-widget__groups[data-v-535337c7] {
22317
+ .cn-object-list-widget__groups[data-v-aeadc210] {
22045
22318
  display: flex;
22046
22319
  flex-direction: column;
22047
22320
  gap: 16px;
22048
22321
  min-height: 0;
22049
22322
  overflow: auto;
22050
22323
  }
22051
- .cn-object-list-widget__group-heading[data-v-535337c7] {
22324
+ .cn-object-list-widget__group-heading[data-v-aeadc210] {
22052
22325
  color: var(--color-text-maxcontrast);
22053
22326
  font-size: 0.85em;
22054
22327
  font-weight: 600;
22055
22328
  margin: 0 0 4px;
22056
22329
  text-transform: uppercase;
22057
22330
  }
22058
- .cn-object-list-widget__upload[data-v-535337c7] {
22331
+ .cn-object-list-widget__upload[data-v-aeadc210] {
22059
22332
  background-color: var(--color-main-background);
22060
22333
  border: 1px solid var(--color-border);
22061
22334
  border-radius: var(--border-radius, 8px);
@@ -22064,7 +22337,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22064
22337
  margin: 8px 0 0;
22065
22338
  padding: 6px 12px;
22066
22339
  }
22067
- .cn-object-list-widget__upload-input[data-v-535337c7] {
22340
+ .cn-object-list-widget__upload-input[data-v-aeadc210] {
22068
22341
  display: none;
22069
22342
  }
22070
22343
 
@@ -25078,6 +25351,56 @@ to { background-position: -200% 0;
25078
25351
  }
25079
25352
 
25080
25353
 
25354
+ .cn-exports-widget__list[data-v-1a295cca] {
25355
+ display: flex;
25356
+ flex-direction: column;
25357
+ margin: 0;
25358
+ padding: 0;
25359
+ list-style: none;
25360
+ }
25361
+ .cn-exports-widget__row[data-v-1a295cca] {
25362
+ display: flex;
25363
+ align-items: center;
25364
+ gap: 12px;
25365
+ padding: 10px 0;
25366
+ }
25367
+ .cn-exports-widget__row + .cn-exports-widget__row[data-v-1a295cca] {
25368
+ border-top: 1px solid var(--color-border);
25369
+ }
25370
+ .cn-exports-widget__text[data-v-1a295cca] {
25371
+ display: flex;
25372
+ flex: 1;
25373
+ flex-direction: column;
25374
+ gap: 2px;
25375
+ min-width: 0;
25376
+ }
25377
+ .cn-exports-widget__name[data-v-1a295cca] {
25378
+ overflow: hidden;
25379
+ font-size: 14px;
25380
+ font-weight: 600;
25381
+ text-overflow: ellipsis;
25382
+ white-space: nowrap;
25383
+ }
25384
+ .cn-exports-widget__meta[data-v-1a295cca],
25385
+ .cn-exports-widget__muted[data-v-1a295cca] {
25386
+ color: var(--color-text-maxcontrast);
25387
+ font-size: 13px;
25388
+ }
25389
+ .cn-exports-widget__muted[data-v-1a295cca] {
25390
+ margin: 0;
25391
+ }
25392
+ .cn-exports-widget__tag[data-v-1a295cca] {
25393
+ flex: none;
25394
+ padding: 3px 10px;
25395
+ border-radius: 12px;
25396
+ background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 18%, transparent));
25397
+ color: var(--color-warning-text, var(--color-main-text));
25398
+ font-size: 13px;
25399
+ font-weight: 600;
25400
+ white-space: nowrap;
25401
+ }
25402
+
25403
+
25081
25404
  .cn-segmented-control[data-v-128aa2ef] {
25082
25405
  display: inline-flex;
25083
25406
  gap: 4px;
@@ -25454,6 +25777,45 @@ to { background-position: -200% 0;
25454
25777
  }
25455
25778
 
25456
25779
 
25780
+ .cn-saved-view-alert[data-v-4439a3f3] {
25781
+ display: flex;
25782
+ flex-direction: column;
25783
+ gap: 12px;
25784
+ font-size: 14px;
25785
+ }
25786
+ .cn-saved-view-alert__facts[data-v-4439a3f3] {
25787
+ display: grid;
25788
+ grid-template-columns: max-content 1fr;
25789
+ gap: 6px 16px;
25790
+ margin: 0;
25791
+ }
25792
+ .cn-saved-view-alert__facts dt[data-v-4439a3f3] {
25793
+ color: var(--color-text-maxcontrast);
25794
+ }
25795
+ .cn-saved-view-alert__facts dd[data-v-4439a3f3] {
25796
+ margin: 0;
25797
+ font-weight: 500;
25798
+ }
25799
+ .cn-saved-view-alert__switch-text[data-v-4439a3f3] {
25800
+ display: flex;
25801
+ flex-direction: column;
25802
+ gap: 2px;
25803
+ }
25804
+ .cn-saved-view-alert__hint[data-v-4439a3f3],
25805
+ .cn-saved-view-alert__empty[data-v-4439a3f3] {
25806
+ color: var(--color-text-maxcontrast);
25807
+ font-size: 13px;
25808
+ }
25809
+ .cn-saved-view-alert__empty[data-v-4439a3f3],
25810
+ .cn-saved-view-alert__error[data-v-4439a3f3] {
25811
+ margin: 0;
25812
+ }
25813
+ .cn-saved-view-alert__error[data-v-4439a3f3] {
25814
+ color: var(--color-error-text, var(--color-error));
25815
+ font-size: 13px;
25816
+ }
25817
+
25818
+
25457
25819
  .cn-text-widget[data-v-f00a6820] {
25458
25820
  width: 100%;
25459
25821
  height: 100%;
@@ -30906,6 +31268,85 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30906
31268
  }
30907
31269
 
30908
31270
 
31271
+ .cn-grouped-cards__grid[data-v-cf2cd50a] {
31272
+ display: grid;
31273
+ grid-template-columns: repeat(var(--cn-grouped-cards-columns, 2), minmax(0, 1fr));
31274
+ gap: 16px;
31275
+ }
31276
+ @media (max-width: 700px) {
31277
+ .cn-grouped-cards__grid[data-v-cf2cd50a] {
31278
+ grid-template-columns: minmax(0, 1fr);
31279
+ }
31280
+ }
31281
+ .cn-grouped-cards__group[data-v-cf2cd50a] {
31282
+ display: flex;
31283
+ flex-direction: column;
31284
+ gap: 8px;
31285
+ padding: 12px 14px 14px;
31286
+ border-radius: var(--border-radius-large, 10px);
31287
+ background: var(--color-background-hover);
31288
+ }
31289
+ .cn-grouped-cards__group--extra[data-v-cf2cd50a] {
31290
+ background: transparent;
31291
+ border: 1px dashed var(--color-border-dark);
31292
+ }
31293
+ .cn-grouped-cards__group-header[data-v-cf2cd50a] {
31294
+ display: flex;
31295
+ align-items: center;
31296
+ justify-content: space-between;
31297
+ gap: 8px;
31298
+ }
31299
+ .cn-grouped-cards__group-title[data-v-cf2cd50a] {
31300
+ margin: 0;
31301
+ font-size: 15px;
31302
+ font-weight: 600;
31303
+ color: var(--color-main-text);
31304
+ }
31305
+ .cn-grouped-cards__count[data-v-cf2cd50a] {
31306
+ padding: 2px 8px;
31307
+ border-radius: var(--border-radius-pill, 12px);
31308
+ background: var(--color-main-background);
31309
+ color: var(--color-text-maxcontrast);
31310
+ font-size: 12px;
31311
+ font-weight: 600;
31312
+ white-space: nowrap;
31313
+ }
31314
+ .cn-grouped-cards__items[data-v-cf2cd50a] {
31315
+ display: flex;
31316
+ flex-direction: column;
31317
+ gap: 8px;
31318
+ margin: 0;
31319
+ padding: 0;
31320
+ list-style: none;
31321
+ }
31322
+ .cn-grouped-cards__item[data-v-cf2cd50a] {
31323
+ display: flex;
31324
+ flex-direction: column;
31325
+ gap: 2px;
31326
+ padding: 10px 12px;
31327
+ border: 1px solid var(--color-border);
31328
+ border-radius: var(--border-radius-large, 8px);
31329
+ background: var(--color-main-background);
31330
+ }
31331
+ .cn-grouped-cards__item-title[data-v-cf2cd50a] {
31332
+ font-weight: 600;
31333
+ color: var(--color-main-text);
31334
+ }
31335
+ .cn-grouped-cards__item-meta[data-v-cf2cd50a],
31336
+ .cn-grouped-cards__extra-text[data-v-cf2cd50a],
31337
+ .cn-grouped-cards__group-empty[data-v-cf2cd50a],
31338
+ .cn-grouped-cards__state[data-v-cf2cd50a] {
31339
+ margin: 0;
31340
+ color: var(--color-text-maxcontrast);
31341
+ font-size: 13px;
31342
+ }
31343
+ .cn-grouped-cards__loading[data-v-cf2cd50a] {
31344
+ display: flex;
31345
+ justify-content: center;
31346
+ padding: 8px 0;
31347
+ }
31348
+
31349
+
30909
31350
  .cn-checklist-run__form[data-v-56cee1aa] {
30910
31351
  display: flex;
30911
31352
  flex-direction: column;
@@ -36891,26 +37332,26 @@ to {
36891
37332
  text-decoration: underline;
36892
37333
  }
36893
37334
  @charset "UTF-8";
36894
- .cn-choice-cards[data-v-8d2b4ff4] {
37335
+ .cn-choice-cards[data-v-22c5fe42] {
36895
37336
  border: none;
36896
37337
  padding: 0;
36897
37338
  margin: 0;
36898
37339
  min-inline-size: 0;
36899
37340
  }
36900
37341
 
36901
- .cn-choice-cards__legend[data-v-8d2b4ff4] {
37342
+ .cn-choice-cards__legend[data-v-22c5fe42] {
36902
37343
  padding: 0;
36903
37344
  margin-block-end: 8px;
36904
37345
  font-weight: bold;
36905
37346
  }
36906
37347
 
36907
- .cn-choice-cards__loading[data-v-8d2b4ff4] {
37348
+ .cn-choice-cards__loading[data-v-22c5fe42] {
36908
37349
  display: flex;
36909
37350
  justify-content: center;
36910
37351
  padding: 24px 0;
36911
37352
  }
36912
37353
 
36913
- .cn-choice-cards__grid[data-v-8d2b4ff4] {
37354
+ .cn-choice-cards__grid[data-v-22c5fe42] {
36914
37355
  display: grid;
36915
37356
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
36916
37357
  gap: 12px;
@@ -36922,26 +37363,26 @@ to {
36922
37363
  padding: 12px;
36923
37364
  }
36924
37365
 
36925
- .cn-choice-cards__cell[data-v-8d2b4ff4] {
37366
+ .cn-choice-cards__cell[data-v-22c5fe42] {
36926
37367
  display: flex;
36927
37368
  flex-direction: column;
36928
37369
  gap: 8px;
36929
37370
  min-inline-size: 0;
36930
37371
  }
36931
37372
 
36932
- .cn-choice-cards__actions[data-v-8d2b4ff4] {
37373
+ .cn-choice-cards__actions[data-v-22c5fe42] {
36933
37374
  display: flex;
36934
37375
  flex-direction: column;
36935
37376
  gap: 4px;
36936
37377
  }
36937
37378
 
36938
- .cn-choice-cards__option[data-v-8d2b4ff4] {
37379
+ .cn-choice-cards__option[data-v-22c5fe42] {
36939
37380
  position: relative;
36940
37381
  display: block;
36941
37382
  cursor: pointer;
36942
37383
  }
36943
37384
 
36944
- .cn-choice-cards__input[data-v-8d2b4ff4] {
37385
+ .cn-choice-cards__input[data-v-22c5fe42] {
36945
37386
  position: absolute;
36946
37387
  inset-block-start: 16px;
36947
37388
  inset-inline-end: 14px;
@@ -36951,7 +37392,7 @@ to {
36951
37392
  }
36952
37393
 
36953
37394
  /* Room for the input, so a long title never runs underneath it. */
36954
- .cn-choice-cards__option[data-v-8d2b4ff4] .cn-card {
37395
+ .cn-choice-cards__option[data-v-22c5fe42] .cn-card {
36955
37396
  padding-inline-end: 44px;
36956
37397
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
36957
37398
  }
@@ -36962,99 +37403,144 @@ to {
36962
37403
  touches a card, and the grid twitches. The border colour below already
36963
37404
  carries hover, so the scale is dropped: at (0,3,0) this beats the global
36964
37405
  `.cn-card:hover` at (0,2,0). */
36965
- .cn-choice-cards__option[data-v-8d2b4ff4]:hover .cn-card {
37406
+ .cn-choice-cards__option[data-v-22c5fe42]:hover .cn-card {
36966
37407
  border-color: var(--color-primary-element);
36967
37408
  transform: none;
36968
37409
  }
36969
37410
 
36970
37411
  /* The focus ring belongs on the card, not on the small input inside it. */
36971
- .cn-choice-cards__input[data-v-8d2b4ff4]:focus-visible + .cn-card {
37412
+ .cn-choice-cards__input[data-v-22c5fe42]:focus-visible + .cn-card {
36972
37413
  outline: 2px solid var(--color-primary-element);
36973
37414
  outline-offset: 2px;
36974
37415
  }
36975
37416
 
36976
- .cn-choice-cards__input[data-v-8d2b4ff4]:disabled {
37417
+ .cn-choice-cards__input[data-v-22c5fe42]:disabled {
36977
37418
  cursor: default;
36978
37419
  }
36979
37420
 
36980
- .cn-choice-cards__input[data-v-8d2b4ff4]:disabled + .cn-card {
37421
+ .cn-choice-cards__option--disabled .cn-choice-cards__input[data-v-22c5fe42] + .cn-card {
36981
37422
  opacity: 0.6;
36982
37423
  }
36983
37424
 
36984
- .cn-choice-cards__rows[data-v-8d2b4ff4] {
37425
+ .cn-choice-cards__rows[data-v-22c5fe42] {
36985
37426
  display: flex;
36986
37427
  flex-direction: column;
36987
37428
  gap: 8px;
36988
37429
  }
36989
37430
 
36990
- .cn-choice-cards__row[data-v-8d2b4ff4] {
37431
+ /* 12px 14px, as the boards draw an option row (DqVolgendeStap, DqBesluit). */
37432
+ .cn-choice-cards__row[data-v-22c5fe42] {
36991
37433
  display: flex;
36992
37434
  align-items: flex-start;
36993
37435
  gap: 12px;
36994
- padding: 14px 16px;
37436
+ padding: 12px 14px;
36995
37437
  border: 1px solid var(--color-border);
36996
37438
  border-radius: var(--border-radius-large, 8px);
36997
37439
  background: var(--color-main-background);
36998
37440
  cursor: pointer;
36999
37441
  }
37000
37442
 
37001
- .cn-choice-cards__row[data-v-8d2b4ff4]:hover {
37443
+ .cn-choice-cards__row[data-v-22c5fe42]:hover {
37002
37444
  border-color: var(--color-border-dark);
37003
37445
  }
37004
37446
 
37005
- .cn-choice-cards__row--selected[data-v-8d2b4ff4],
37006
- .cn-choice-cards__row--selected[data-v-8d2b4ff4]:hover {
37447
+ .cn-choice-cards__row--selected[data-v-22c5fe42],
37448
+ .cn-choice-cards__row--selected[data-v-22c5fe42]:hover {
37007
37449
  border-color: var(--color-primary-element);
37008
37450
  /* The second pixel of the 2px selected border, without moving the content. */
37009
37451
  box-shadow: inset 0 0 0 1px var(--color-primary-element);
37010
37452
  background: var(--color-primary-element-light);
37011
37453
  }
37012
37454
 
37013
- .cn-choice-cards__row--disabled[data-v-8d2b4ff4] {
37455
+ /* An option this record does not allow: the grey ground and the muted ink,
37456
+ still legible (DqVolgendeStap), not faded. */
37457
+ .cn-choice-cards__row--disabled[data-v-22c5fe42],
37458
+ .cn-choice-cards__row--disabled[data-v-22c5fe42]:hover {
37459
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
37460
+ border-color: var(--color-border);
37461
+ background: var(--color-background-hover);
37462
+ color: var(--color-text-maxcontrast);
37014
37463
  cursor: default;
37015
- opacity: 0.6;
37016
37464
  }
37017
37465
 
37018
- .cn-choice-cards__row[data-v-8d2b4ff4]:has(.cn-choice-cards__row-input:focus-visible) {
37466
+ /* The title takes the muted ink itself: a theme that colours every label
37467
+ with `!important` (thematiq) would otherwise hand it the label colour. */
37468
+ .cn-choice-cards__row--disabled .cn-choice-cards__row-title[data-v-22c5fe42] {
37469
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
37470
+ color: var(--color-text-maxcontrast);
37471
+ }
37472
+
37473
+ /* The chosen option's fields share the selected row's frame: the cell draws
37474
+ the 2px primary border and the ground, the row inside it draws none, and
37475
+ the fields sit under the text, indented to it (DqVolgendeStap). */
37476
+ .cn-choice-cards__cell--with-details[data-v-22c5fe42] {
37477
+ border: 1px solid var(--color-primary-element);
37478
+ border-radius: var(--border-radius-large, 8px);
37479
+ box-shadow: inset 0 0 0 1px var(--color-primary-element);
37480
+ background: var(--color-primary-element-light);
37481
+ }
37482
+
37483
+ .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-22c5fe42],
37484
+ .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-22c5fe42]:hover {
37485
+ border-color: transparent;
37486
+ box-shadow: none;
37487
+ background: transparent;
37488
+ }
37489
+
37490
+ .cn-choice-cards__details[data-v-22c5fe42] {
37491
+ display: flex;
37492
+ flex-direction: column;
37493
+ gap: 14px;
37494
+ padding: 0 14px 14px 44px;
37495
+ }
37496
+
37497
+ .cn-choice-cards__row--readonly[data-v-22c5fe42] {
37498
+ cursor: default;
37499
+ }
37500
+
37501
+ .cn-choice-cards__row--readonly[data-v-22c5fe42]:not(.cn-choice-cards__row--selected):hover {
37502
+ border-color: var(--color-border);
37503
+ }
37504
+
37505
+ .cn-choice-cards__row[data-v-22c5fe42]:has(.cn-choice-cards__row-input:focus-visible) {
37019
37506
  outline: 2px solid var(--color-primary-element);
37020
37507
  outline-offset: 2px;
37021
37508
  }
37022
37509
 
37023
- .cn-choice-cards__row-input[data-v-8d2b4ff4] {
37510
+ .cn-choice-cards__row-input[data-v-22c5fe42] {
37024
37511
  flex: none;
37025
37512
  margin: 2px 0 0;
37026
37513
  accent-color: var(--color-primary-element);
37027
37514
  cursor: inherit;
37028
37515
  }
37029
37516
 
37030
- .cn-choice-cards__row-icon[data-v-8d2b4ff4] {
37517
+ .cn-choice-cards__row-icon[data-v-22c5fe42] {
37031
37518
  flex: none;
37032
37519
  }
37033
37520
 
37034
- .cn-choice-cards__row-text[data-v-8d2b4ff4] {
37521
+ .cn-choice-cards__row-text[data-v-22c5fe42] {
37035
37522
  display: flex;
37036
37523
  flex-direction: column;
37037
37524
  gap: 2px;
37038
37525
  min-width: 0;
37039
37526
  }
37040
37527
 
37041
- .cn-choice-cards__row-title[data-v-8d2b4ff4] {
37528
+ .cn-choice-cards__row-title[data-v-22c5fe42] {
37042
37529
  font-size: 15px;
37043
37530
  font-weight: 600;
37044
37531
  }
37045
37532
 
37046
- .cn-choice-cards__row-description[data-v-8d2b4ff4] {
37047
- font-size: 13px;
37048
- color: var(--color-text-maxcontrast);
37049
- }
37050
-
37051
- .cn-choice-cards__reason[data-v-8d2b4ff4] {
37533
+ /* Regular weight on the span itself: a theme that sets every label bold
37534
+ with `!important` (thematiq) reaches a span that only inherits. */
37535
+ .cn-choice-cards__row-description[data-v-22c5fe42],
37536
+ .cn-choice-cards__reason[data-v-22c5fe42] {
37537
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
37052
37538
  font-size: 13px;
37539
+ font-weight: 400;
37053
37540
  color: var(--color-text-maxcontrast);
37054
- font-style: italic;
37055
37541
  }
37056
37542
 
37057
- .cn-choice-cards__reason--card[data-v-8d2b4ff4] {
37543
+ .cn-choice-cards__reason--card[data-v-22c5fe42] {
37058
37544
  display: block;
37059
37545
  margin-block-start: 4px;
37060
37546
  }
@@ -37069,28 +37555,28 @@ to {
37069
37555
  }
37070
37556
 
37071
37557
 
37072
- .cn-setup-step[data-v-32874a44] {
37558
+ .cn-setup-step[data-v-44988d3d] {
37073
37559
  display: flex;
37074
37560
  flex-direction: column;
37075
37561
  gap: 12px;
37076
37562
  }
37077
- .cn-setup-step__intro[data-v-32874a44] {
37563
+ .cn-setup-step__intro[data-v-44988d3d] {
37078
37564
  margin: 0;
37079
37565
  font-size: 15px;
37080
37566
  line-height: 1.5;
37081
37567
  }
37082
- .cn-setup-step__note[data-v-32874a44] {
37568
+ .cn-setup-step__note[data-v-44988d3d] {
37083
37569
  margin: 0;
37084
37570
  font-size: 13px;
37085
37571
  color: var(--color-text-maxcontrast);
37086
37572
  }
37087
- .cn-setup-step__nav[data-v-32874a44] {
37573
+ .cn-setup-step__nav[data-v-44988d3d] {
37088
37574
  display: flex;
37089
37575
  justify-content: flex-end;
37090
37576
  gap: 8px;
37091
37577
  margin-top: 8px;
37092
37578
  }
37093
- .cn-setup-step__running[data-v-32874a44] {
37579
+ .cn-setup-step__running[data-v-44988d3d] {
37094
37580
  display: flex;
37095
37581
  align-items: center;
37096
37582
  justify-content: center;
@@ -37098,43 +37584,43 @@ to {
37098
37584
  padding: 24px 0;
37099
37585
  color: var(--color-text-maxcontrast);
37100
37586
  }
37101
- .cn-setup-load-result[data-v-32874a44] {
37587
+ .cn-setup-load-result[data-v-44988d3d] {
37102
37588
  margin: 0;
37103
37589
  font-size: var(--font-size-small, 13px);
37104
37590
  }
37105
- .cn-setup-load-result--success[data-v-32874a44] {
37591
+ .cn-setup-load-result--success[data-v-44988d3d] {
37106
37592
  color: var(--color-success-text, var(--color-success));
37107
37593
  }
37108
- .cn-setup-load-result--error[data-v-32874a44] {
37594
+ .cn-setup-load-result--error[data-v-44988d3d] {
37109
37595
  color: var(--color-error-text, var(--color-error));
37110
37596
  }
37111
- .cn-setup-field[data-v-32874a44] {
37597
+ .cn-setup-field[data-v-44988d3d] {
37112
37598
  display: flex;
37113
37599
  flex-direction: column;
37114
37600
  }
37115
- .cn-setup-summary[data-v-32874a44] {
37601
+ .cn-setup-summary[data-v-44988d3d] {
37116
37602
  list-style: none;
37117
37603
  padding: 0;
37118
37604
  margin: 0;
37119
37605
  }
37120
- .cn-setup-summary__item[data-v-32874a44] {
37606
+ .cn-setup-summary__item[data-v-44988d3d] {
37121
37607
  display: flex;
37122
37608
  align-items: center;
37123
37609
  gap: 8px;
37124
37610
  padding: 4px 0;
37125
37611
  color: var(--color-text-maxcontrast);
37126
37612
  }
37127
- .cn-setup-summary__item--done[data-v-32874a44] {
37613
+ .cn-setup-summary__item--done[data-v-44988d3d] {
37128
37614
  color: var(--color-main-text);
37129
37615
  }
37130
- .cn-setup-summary__mark[data-v-32874a44] {
37616
+ .cn-setup-summary__mark[data-v-44988d3d] {
37131
37617
  font-weight: bold;
37132
37618
  color: var(--color-success);
37133
37619
  }
37134
- .cn-setup-summary__label[data-v-32874a44] {
37620
+ .cn-setup-summary__label[data-v-44988d3d] {
37135
37621
  flex: 0 0 auto;
37136
37622
  }
37137
- .cn-setup-summary__value[data-v-32874a44] {
37623
+ .cn-setup-summary__value[data-v-44988d3d] {
37138
37624
  margin-inline-start: auto;
37139
37625
  font-weight: 600;
37140
37626
  color: var(--color-main-text);
@@ -37142,7 +37628,7 @@ to {
37142
37628
 
37143
37629
  /* An on-demand step that did not run says so quietly: it is a choice the
37144
37630
  user did not make, not a failure. */
37145
- .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-32874a44] {
37631
+ .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-44988d3d] {
37146
37632
  font-weight: normal;
37147
37633
  color: var(--color-text-maxcontrast);
37148
37634
  }
@@ -37798,16 +38284,16 @@ to {
37798
38284
  }
37799
38285
 
37800
38286
 
37801
- .cn-ordered-list-field[data-v-3ab313d4] {
38287
+ .cn-ordered-list-field[data-v-ca9d4198] {
37802
38288
  display: flex;
37803
38289
  flex-direction: column;
37804
38290
  gap: 10px;
37805
38291
  }
37806
- .cn-ordered-list-field__label[data-v-3ab313d4] {
38292
+ .cn-ordered-list-field__label[data-v-ca9d4198] {
37807
38293
  margin: 0;
37808
38294
  font-weight: 600;
37809
38295
  }
37810
- .cn-ordered-list-field__rows[data-v-3ab313d4] {
38296
+ .cn-ordered-list-field__rows[data-v-ca9d4198] {
37811
38297
  display: flex;
37812
38298
  flex-direction: column;
37813
38299
  margin: 0;
@@ -37816,34 +38302,66 @@ to {
37816
38302
  border-radius: var(--border-radius-element, 8px);
37817
38303
  list-style: none;
37818
38304
  }
37819
- .cn-ordered-list-field__row[data-v-3ab313d4] {
38305
+ .cn-ordered-list-field__row[data-v-ca9d4198] {
37820
38306
  display: flex;
37821
38307
  align-items: center;
37822
38308
  gap: 10px;
37823
38309
  min-height: 44px;
37824
38310
  padding: 2px 6px 2px 12px;
37825
38311
  }
37826
- .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-3ab313d4] {
38312
+ .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-ca9d4198] {
37827
38313
  border-top: 1px solid var(--color-border);
37828
38314
  }
37829
- .cn-ordered-list-field__position[data-v-3ab313d4] {
38315
+ .cn-ordered-list-field__row--dragging[data-v-ca9d4198] {
38316
+ opacity: 0.5;
38317
+ }
38318
+
38319
+ /* Where a dragged row will land: a primary line on the row's top edge. */
38320
+ .cn-ordered-list-field__row--over[data-v-ca9d4198] {
38321
+ box-shadow: inset 0 2px 0 var(--color-primary-element);
38322
+ }
38323
+ .cn-ordered-list-field__handle[data-v-ca9d4198] {
38324
+ display: inline-flex;
38325
+ flex: none;
38326
+ align-items: center;
38327
+ justify-content: center;
38328
+ width: 28px;
38329
+ min-width: 28px;
38330
+ height: 34px;
38331
+ min-height: 34px;
38332
+ margin: 0 -6px 0 -8px;
38333
+ padding: 0;
38334
+ border: 0;
38335
+ border-radius: var(--border-radius-element, 8px);
38336
+ background: transparent;
38337
+ color: var(--color-text-maxcontrast);
38338
+ cursor: grab;
38339
+ }
38340
+ .cn-ordered-list-field__handle[data-v-ca9d4198]:active {
38341
+ cursor: grabbing;
38342
+ }
38343
+ .cn-ordered-list-field__handle[data-v-ca9d4198]:focus-visible {
38344
+ outline: 2px solid var(--color-primary-element);
38345
+ outline-offset: 1px;
38346
+ }
38347
+ .cn-ordered-list-field__position[data-v-ca9d4198] {
37830
38348
  flex: none;
37831
38349
  min-width: 18px;
37832
38350
  color: var(--color-text-maxcontrast);
37833
38351
  font-size: 13px;
37834
38352
  font-variant-numeric: tabular-nums;
37835
38353
  }
37836
- .cn-ordered-list-field__text[data-v-3ab313d4] {
38354
+ .cn-ordered-list-field__text[data-v-ca9d4198] {
37837
38355
  flex: 1 1 auto;
37838
38356
  min-width: 0;
37839
38357
  overflow-wrap: anywhere;
37840
38358
  }
37841
- .cn-ordered-list-field__actions[data-v-3ab313d4] {
38359
+ .cn-ordered-list-field__actions[data-v-ca9d4198] {
37842
38360
  display: flex;
37843
38361
  flex: none;
37844
38362
  gap: 2px;
37845
38363
  }
37846
- .cn-ordered-list-field__button[data-v-3ab313d4] {
38364
+ .cn-ordered-list-field__button[data-v-ca9d4198] {
37847
38365
  display: inline-flex;
37848
38366
  align-items: center;
37849
38367
  justify-content: center;
@@ -37859,22 +38377,22 @@ to {
37859
38377
  color: var(--color-main-text);
37860
38378
  cursor: pointer;
37861
38379
  }
37862
- .cn-ordered-list-field__button[data-v-3ab313d4]:hover:not(:disabled) {
38380
+ .cn-ordered-list-field__button[data-v-ca9d4198]:hover:not(:disabled) {
37863
38381
  background: var(--color-background-hover);
37864
38382
  }
37865
- .cn-ordered-list-field__button[data-v-3ab313d4]:focus-visible {
38383
+ .cn-ordered-list-field__button[data-v-ca9d4198]:focus-visible {
37866
38384
  outline: 2px solid var(--color-primary-element);
37867
38385
  outline-offset: 1px;
37868
38386
  }
37869
- .cn-ordered-list-field__button[data-v-3ab313d4]:disabled {
38387
+ .cn-ordered-list-field__button[data-v-ca9d4198]:disabled {
37870
38388
  opacity: 0.4;
37871
38389
  cursor: default;
37872
38390
  }
37873
- .cn-ordered-list-field__empty[data-v-3ab313d4] {
38391
+ .cn-ordered-list-field__empty[data-v-ca9d4198] {
37874
38392
  margin: 0;
37875
38393
  color: var(--color-text-maxcontrast);
37876
38394
  }
37877
- .cn-ordered-list-field__tile[data-v-3ab313d4] {
38395
+ .cn-ordered-list-field__tile[data-v-ca9d4198] {
37878
38396
  display: inline-flex;
37879
38397
  flex: none;
37880
38398
  align-items: center;
@@ -37885,15 +38403,15 @@ to {
37885
38403
  background: var(--color-background-dark);
37886
38404
  color: var(--color-main-text);
37887
38405
  }
37888
- .cn-ordered-list-field__name[data-v-3ab313d4] {
38406
+ .cn-ordered-list-field__name[data-v-ca9d4198] {
37889
38407
  display: block;
37890
38408
  }
37891
- .cn-ordered-list-field__description[data-v-3ab313d4] {
38409
+ .cn-ordered-list-field__description[data-v-ca9d4198] {
37892
38410
  display: block;
37893
38411
  color: var(--color-text-maxcontrast);
37894
38412
  font-size: 13px;
37895
38413
  }
37896
- .cn-ordered-list-field__option[data-v-3ab313d4] {
38414
+ .cn-ordered-list-field__option[data-v-ca9d4198] {
37897
38415
  display: flex;
37898
38416
  align-items: center;
37899
38417
  gap: 10px;
@@ -40422,7 +40940,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40422
40940
  }
40423
40941
 
40424
40942
 
40425
- .cn-dashboard-page[data-v-40c6b068] {
40943
+ .cn-dashboard-page[data-v-54c2437f] {
40426
40944
  padding: 20px;
40427
40945
  max-width: 1800px;
40428
40946
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -40436,7 +40954,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40436
40954
  overflow-y: auto;
40437
40955
  box-sizing: border-box;
40438
40956
  }
40439
- .cn-dashboard-page__header[data-v-40c6b068] {
40957
+ .cn-dashboard-page__header[data-v-54c2437f] {
40440
40958
  display: flex;
40441
40959
  justify-content: space-between;
40442
40960
  align-items: flex-start;
@@ -40448,21 +40966,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40448
40966
  room. Only the HEADER shifts right — body widgets keep full width. */
40449
40967
  padding-inline-start: 56px;
40450
40968
  }
40451
- .cn-dashboard-page__header-left[data-v-40c6b068] {
40969
+ .cn-dashboard-page__header-left[data-v-54c2437f] {
40452
40970
  min-width: 0;
40453
40971
  }
40454
- .cn-dashboard-page__title-row[data-v-40c6b068] {
40972
+ .cn-dashboard-page__title-row[data-v-54c2437f] {
40455
40973
  display: flex;
40456
40974
  align-items: center;
40457
40975
  flex-wrap: wrap;
40458
40976
  gap: 12px;
40459
40977
  }
40460
- .cn-dashboard-page__title[data-v-40c6b068] {
40978
+ .cn-dashboard-page__title[data-v-54c2437f] {
40461
40979
  margin: 0;
40462
40980
  font-size: 20px;
40463
40981
  font-weight: 700;
40464
40982
  }
40465
- .cn-dashboard-page__description[data-v-40c6b068] {
40983
+ .cn-dashboard-page__description[data-v-54c2437f] {
40466
40984
  margin: 4px 0 0;
40467
40985
  font-size: 14px;
40468
40986
  color: var(--color-text-maxcontrast);
@@ -40470,19 +40988,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40470
40988
 
40471
40989
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
40472
40990
  under it, and 40px buttons with a 10px gap. */
40473
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-40c6b068] {
40991
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-54c2437f] {
40474
40992
  font-size: 28px;
40475
40993
  font-weight: 700;
40476
40994
  line-height: 1.2;
40477
40995
  }
40478
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-40c6b068] {
40996
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-54c2437f] {
40479
40997
  margin: 6px 0 0;
40480
40998
  font-size: 15px;
40481
40999
  }
40482
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-40c6b068] {
41000
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-54c2437f] {
40483
41001
  gap: 10px;
40484
41002
  }
40485
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-40c6b068] .button-vue {
41003
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-54c2437f] .button-vue {
40486
41004
  min-height: var(--cn-board-control-height, 40px);
40487
41005
  height: var(--cn-board-control-height, 40px);
40488
41006
  }
@@ -40490,17 +41008,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40490
41008
  /* The switch row under the header (screens-dashboard-greeting-header): the
40491
41009
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
40492
41010
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
40493
- .cn-dashboard-page__switch-row[data-v-40c6b068] {
41011
+ .cn-dashboard-page__switch-row[data-v-54c2437f] {
40494
41012
  display: flex;
40495
41013
  flex-wrap: wrap;
40496
41014
  align-items: center;
40497
41015
  gap: 10px;
40498
41016
  margin-bottom: var(--cn-board-section-gap, 20px);
40499
41017
  }
40500
- .cn-dashboard-page__switch-row-spacer[data-v-40c6b068] {
41018
+ .cn-dashboard-page__switch-row-spacer[data-v-54c2437f] {
40501
41019
  flex: 1 1 auto;
40502
41020
  }
40503
- .cn-dashboard-page__view-link[data-v-40c6b068] {
41021
+ .cn-dashboard-page__view-link[data-v-54c2437f] {
40504
41022
  display: inline-flex;
40505
41023
  align-items: center;
40506
41024
  gap: 6px;
@@ -40514,37 +41032,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40514
41032
  white-space: nowrap;
40515
41033
  text-decoration: none !important;
40516
41034
  }
40517
- .cn-dashboard-page__view-link[data-v-40c6b068]:hover {
41035
+ .cn-dashboard-page__view-link[data-v-54c2437f]:hover {
40518
41036
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
40519
41037
  }
40520
- .cn-dashboard-page__view-link[data-v-40c6b068]:focus-visible {
41038
+ .cn-dashboard-page__view-link[data-v-54c2437f]:focus-visible {
40521
41039
  outline: 2px solid var(--color-main-text);
40522
41040
  outline-offset: 2px;
40523
41041
  }
40524
- .cn-dashboard-page__view-link-icon[data-v-40c6b068] {
41042
+ .cn-dashboard-page__view-link-icon[data-v-54c2437f] {
40525
41043
  display: inline-flex;
40526
41044
  }
40527
41045
 
40528
41046
  /* The period group, in a row of its own between the header and the KPI row. */
40529
- .cn-dashboard-page__date-range--segmented[data-v-40c6b068] {
41047
+ .cn-dashboard-page__date-range--segmented[data-v-54c2437f] {
40530
41048
  margin-bottom: 16px;
40531
41049
  }
40532
41050
 
40533
41051
  /* The period group at the end of the description line. */
40534
- .cn-dashboard-page__description--with-period[data-v-40c6b068] {
41052
+ .cn-dashboard-page__description--with-period[data-v-54c2437f] {
40535
41053
  align-items: center;
40536
41054
  display: flex;
40537
41055
  flex-wrap: wrap;
40538
41056
  gap: 8px;
40539
41057
  }
40540
- .cn-dashboard-page__date-segmented[data-v-40c6b068] {
41058
+ .cn-dashboard-page__date-segmented[data-v-54c2437f] {
40541
41059
  display: flex;
40542
41060
  align-items: center;
40543
41061
  gap: 8px;
40544
41062
  }
40545
41063
 
40546
41064
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
40547
- .cn-dashboard-page__kpi-row[data-v-40c6b068] {
41065
+ .cn-dashboard-page__kpi-row[data-v-54c2437f] {
40548
41066
  margin-bottom: var(--cn-board-section-gap, 16px);
40549
41067
  }
40550
41068
 
@@ -40552,15 +41070,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40552
41070
  the cards started a margin to the right of the KPI row and the header. The
40553
41071
  grid reaches out by that margin, so the card edges line up with the page's
40554
41072
  (dashboard-grid-flush). */
40555
- .cn-dashboard-page--board[data-v-40c6b068] .cn-dashboard-grid {
41073
+ .cn-dashboard-page--board[data-v-54c2437f] .cn-dashboard-grid {
40556
41074
  width: auto;
40557
41075
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
40558
41076
  }
40559
- .cn-dashboard-page__kpi-cell[data-v-40c6b068] {
41077
+ .cn-dashboard-page__kpi-cell[data-v-54c2437f] {
40560
41078
  display: flex;
40561
41079
  min-width: 0;
40562
41080
  }
40563
- .cn-dashboard-page__kpi-cell[data-v-40c6b068] > * {
41081
+ .cn-dashboard-page__kpi-cell[data-v-54c2437f] > * {
40564
41082
  flex: 1 1 auto;
40565
41083
  min-width: 0;
40566
41084
  }
@@ -40573,7 +41091,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40573
41091
  scoped chip rules then silently don't match and the chip collapses into
40574
41092
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
40575
41093
  data-testid is stable across chunks, so those rules match regardless. */
40576
- .cn-dashboard-page__header-actions[data-v-40c6b068] {
41094
+ .cn-dashboard-page__header-actions[data-v-54c2437f] {
40577
41095
  display: flex;
40578
41096
  align-items: center;
40579
41097
  gap: 8px;
@@ -40589,19 +41107,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40589
41107
 
40590
41108
  /* Date-range header band. Kept compact so it doesn't open a tall gap
40591
41109
  above the grid; the pills variant is a single tidy toggle row. */
40592
- .cn-dashboard-page__date-range[data-v-40c6b068] {
41110
+ .cn-dashboard-page__date-range[data-v-54c2437f] {
40593
41111
  margin-bottom: 12px;
40594
41112
  }
40595
- .cn-dashboard-page__date-range--pills[data-v-40c6b068] {
41113
+ .cn-dashboard-page__date-range--pills[data-v-54c2437f] {
40596
41114
  margin-bottom: 8px;
40597
41115
  }
40598
- .cn-dashboard-page__date-pills[data-v-40c6b068] {
41116
+ .cn-dashboard-page__date-pills[data-v-54c2437f] {
40599
41117
  display: flex;
40600
41118
  align-items: center;
40601
41119
  flex-wrap: wrap;
40602
41120
  gap: 6px;
40603
41121
  }
40604
- .cn-dashboard-page__date-pill[data-v-40c6b068] {
41122
+ .cn-dashboard-page__date-pill[data-v-54c2437f] {
40605
41123
  display: inline-flex;
40606
41124
  align-items: center;
40607
41125
  padding: 5px 14px;
@@ -40616,77 +41134,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40616
41134
  cursor: pointer;
40617
41135
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
40618
41136
  }
40619
- .cn-dashboard-page__date-pill[data-v-40c6b068]:hover {
41137
+ .cn-dashboard-page__date-pill[data-v-54c2437f]:hover {
40620
41138
  background: var(--color-background-hover);
40621
41139
  }
40622
- .cn-dashboard-page__date-pill[data-v-40c6b068]:focus-visible {
41140
+ .cn-dashboard-page__date-pill[data-v-54c2437f]:focus-visible {
40623
41141
  outline: 2px solid var(--color-primary-element);
40624
41142
  outline-offset: 2px;
40625
41143
  }
40626
- .cn-dashboard-page__date-pill--active[data-v-40c6b068] {
41144
+ .cn-dashboard-page__date-pill--active[data-v-54c2437f] {
40627
41145
  background: var(--color-primary-element);
40628
41146
  border-color: var(--color-primary-element);
40629
41147
  color: var(--color-primary-element-text);
40630
41148
  }
40631
- .cn-dashboard-page__date-pill--active[data-v-40c6b068]:hover {
41149
+ .cn-dashboard-page__date-pill--active[data-v-54c2437f]:hover {
40632
41150
  background: var(--color-primary-element-hover, var(--color-primary-element));
40633
41151
  }
40634
41152
 
40635
41153
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
40636
41154
  so it reads as an escape hatch rather than a primary option. */
40637
- .cn-dashboard-page__date-pill--custom[data-v-40c6b068] {
41155
+ .cn-dashboard-page__date-pill--custom[data-v-54c2437f] {
40638
41156
  border-style: dashed;
40639
41157
  color: var(--color-text-maxcontrast);
40640
41158
  }
40641
- .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .action-item__menutoggle {
41159
+ .cn-dashboard-page__date-pill-custom[data-v-54c2437f] .action-item__menutoggle {
40642
41160
  min-width: 0;
40643
41161
  min-height: 0;
40644
41162
  padding: 0;
40645
41163
  background: transparent;
40646
41164
  border: none;
40647
41165
  }
40648
- .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .button-vue,
40649
- .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .button-vue__wrapper,
40650
- .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .button-vue__icon {
41166
+ .cn-dashboard-page__date-pill-custom[data-v-54c2437f] .button-vue,
41167
+ .cn-dashboard-page__date-pill-custom[data-v-54c2437f] .button-vue__wrapper,
41168
+ .cn-dashboard-page__date-pill-custom[data-v-54c2437f] .button-vue__icon {
40651
41169
  width: auto !important;
40652
41170
  min-width: 0 !important;
40653
41171
  overflow: visible !important;
40654
41172
  }
40655
- .cn-dashboard-page__empty[data-v-40c6b068] {
41173
+ .cn-dashboard-page__empty[data-v-54c2437f] {
40656
41174
  padding: 60px 20px;
40657
41175
  }
40658
41176
 
40659
41177
  /* The page's view switch on a page without a header row: at the end of its
40660
41178
  own row, above the grids, where the header would have put it. */
40661
- .cn-dashboard-page__view-switch[data-v-40c6b068] {
41179
+ .cn-dashboard-page__view-switch[data-v-54c2437f] {
40662
41180
  display: flex;
40663
41181
  justify-content: flex-end;
40664
41182
  margin-bottom: 12px;
40665
41183
  }
40666
41184
 
40667
41185
  /* A view the switch shows with nothing to draw. */
40668
- .cn-page-view-region--empty[data-v-40c6b068] {
41186
+ .cn-page-view-region--empty[data-v-54c2437f] {
40669
41187
  padding: 40px 20px;
40670
41188
  }
40671
- .cn-dashboard-page__page-filters[data-v-40c6b068] {
41189
+ .cn-dashboard-page__page-filters[data-v-54c2437f] {
40672
41190
  display: flex;
40673
41191
  flex-wrap: wrap;
40674
41192
  gap: 16px;
40675
41193
  align-items: flex-end;
40676
41194
  margin-bottom: 12px;
40677
41195
  }
40678
- .cn-dashboard-page__page-filter[data-v-40c6b068] {
41196
+ .cn-dashboard-page__page-filter[data-v-54c2437f] {
40679
41197
  display: flex;
40680
41198
  flex-direction: column;
40681
41199
  gap: 4px;
40682
41200
  min-width: 200px;
40683
41201
  }
40684
- .cn-dashboard-page__page-filter-label[data-v-40c6b068] {
41202
+ .cn-dashboard-page__page-filter-label[data-v-54c2437f] {
40685
41203
  font-size: 0.85em;
40686
41204
  font-weight: 600;
40687
41205
  color: var(--color-text-maxcontrast);
40688
41206
  }
40689
- .cn-dashboard-page__widget-edit[data-v-40c6b068] {
41207
+ .cn-dashboard-page__widget-edit[data-v-54c2437f] {
40690
41208
  position: absolute;
40691
41209
  top: 4px;
40692
41210
  inset-inline-end: 4px;
@@ -40705,8 +41223,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40705
41223
  and centre the card. */
40706
41224
  /* `safe` centre so an overflowing tile does not spill out of the top, where
40707
41225
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
40708
- .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-widget-wrapper__content,
40709
- .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-40c6b068] .cn-widget-wrapper__content {
41226
+ .cn-dashboard-page__card-fit[data-v-54c2437f] .cn-widget-wrapper__content,
41227
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-54c2437f] .cn-widget-wrapper__content {
40710
41228
  overflow: hidden;
40711
41229
  display: flex;
40712
41230
  flex-direction: column;
@@ -40722,7 +41240,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40722
41240
  shows up as a scrollbar the user has to drag to see the whole graph. Same
40723
41241
  shape as the card-fit rule above, minus the padding: chart tiles render
40724
41242
  `flush`, and apexcharts already draws its own margins. */
40725
- .cn-dashboard-page__chart-fit[data-v-40c6b068] .cn-widget-wrapper__content {
41243
+ .cn-dashboard-page__chart-fit[data-v-54c2437f] .cn-widget-wrapper__content {
40726
41244
  overflow: hidden;
40727
41245
  display: flex;
40728
41246
  flex-direction: column;
@@ -40732,13 +41250,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40732
41250
  /* Card content (stat / gauge / delta) must fit the tile width: let the
40733
41251
  widget shrink and its value/label truncate instead of pushing past the
40734
41252
  tile edge (the horizontal clip on long currency values). */
40735
- .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-stat-widget,
40736
- .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-gauge-widget,
40737
- .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-delta-widget {
41253
+ .cn-dashboard-page__card-fit[data-v-54c2437f] .cn-stat-widget,
41254
+ .cn-dashboard-page__card-fit[data-v-54c2437f] .cn-gauge-widget,
41255
+ .cn-dashboard-page__card-fit[data-v-54c2437f] .cn-delta-widget {
40738
41256
  min-width: 0;
40739
41257
  max-width: 100%;
40740
41258
  }
40741
- .cn-dashboard-page__unknown[data-v-40c6b068] {
41259
+ .cn-dashboard-page__unknown[data-v-54c2437f] {
40742
41260
  display: flex;
40743
41261
  align-items: center;
40744
41262
  justify-content: center;
@@ -40749,31 +41267,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40749
41267
  }
40750
41268
 
40751
41269
  /* widget-ref content items */
40752
- .cn-dashboard-page__content[data-v-40c6b068] {
41270
+ .cn-dashboard-page__content[data-v-54c2437f] {
40753
41271
  display: flex;
40754
41272
  flex-direction: column;
40755
41273
  gap: 16px;
40756
41274
  }
40757
- .cn-dashboard-page__content-item[data-v-40c6b068] {
41275
+ .cn-dashboard-page__content-item[data-v-54c2437f] {
40758
41276
  width: 100%;
40759
41277
  }
40760
41278
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
40761
41279
  are 44px: the widget Actions menu and the KPI tiles. */
40762
41280
  @media (max-width: 640px) {
40763
- .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle,
40764
- .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .button-vue {
41281
+ .cn-dashboard-page--board[data-v-54c2437f] .cn-widget-wrapper__actions .action-item__menutoggle,
41282
+ .cn-dashboard-page--board[data-v-54c2437f] .cn-widget-wrapper__actions .button-vue {
40765
41283
  min-height: 44px;
40766
41284
  }
40767
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-40c6b068] {
41285
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-54c2437f] {
40768
41286
  min-height: 44px;
40769
41287
  }
40770
41288
 
40771
41289
  /* The widget Actions menu shows its icon only, so the card title keeps
40772
41290
  the room; the name stays for assistive tech. */
40773
- .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle {
41291
+ .cn-dashboard-page--board[data-v-54c2437f] .cn-widget-wrapper__actions .action-item__menutoggle {
40774
41292
  min-width: 44px;
40775
41293
  }
40776
- .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
41294
+ .cn-dashboard-page--board[data-v-54c2437f] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
40777
41295
  position: absolute;
40778
41296
  width: 1px;
40779
41297
  height: 1px;
@@ -40785,7 +41303,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40785
41303
 
40786
41304
  /* What a registry widget reports for its card header (`header` event): the
40787
41305
  note beside the link ("3 in total") and one action, as on a detail page. */
40788
- .cn-dashboard-page__widget-count[data-v-40c6b068] {
41306
+ .cn-dashboard-page__widget-count[data-v-54c2437f] {
40789
41307
  align-self: center;
40790
41308
  padding: 1px 8px;
40791
41309
  border-radius: 10px;
@@ -40794,13 +41312,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40794
41312
  font-size: 13px;
40795
41313
  font-weight: 600;
40796
41314
  }
40797
- .cn-dashboard-page__widget-note[data-v-40c6b068] {
41315
+ .cn-dashboard-page__widget-note[data-v-54c2437f] {
40798
41316
  align-self: center;
40799
41317
  color: var(--color-text-maxcontrast);
40800
41318
  font-size: 14px;
40801
41319
  white-space: nowrap;
40802
41320
  }
40803
- .cn-dashboard-page__widget-action[data-v-40c6b068] {
41321
+ .cn-dashboard-page__widget-action[data-v-54c2437f] {
40804
41322
  display: inline-flex;
40805
41323
  align-items: center;
40806
41324
  align-self: center;
@@ -40816,7 +41334,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40816
41334
  white-space: nowrap;
40817
41335
  cursor: pointer;
40818
41336
  }
40819
- .cn-dashboard-page__widget-action[data-v-40c6b068]:focus-visible {
41337
+ .cn-dashboard-page__widget-action[data-v-54c2437f]:focus-visible {
40820
41338
  outline: 2px solid var(--color-primary-element);
40821
41339
  outline-offset: 2px;
40822
41340
  }