@conduction/nextcloud-vue 2.100.0 → 2.102.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 (168) hide show
  1. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +22 -0
  2. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +8 -6
  4. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  5. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  6. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +29 -4
  7. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  8. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js +9 -1
  9. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  10. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue.js +1 -1
  11. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js +22 -1
  12. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  13. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +26 -16
  14. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  15. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  16. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +70 -6
  17. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +105 -74
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  20. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue.js +9 -0
  21. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue.js.map +1 -0
  22. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue2.js +139 -0
  23. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue2.js.map +1 -0
  24. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue3.js +76 -0
  25. package/dist/esm/components/CnExportsWidget/CnExportsWidget.vue3.js.map +1 -0
  26. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  27. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +160 -2
  28. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  29. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +206 -94
  30. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  31. package/dist/esm/components/CnFilesBrowser/filesReview.js +61 -0
  32. package/dist/esm/components/CnFilesBrowser/filesReview.js.map +1 -0
  33. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue.js +9 -0
  34. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue.js.map +1 -0
  35. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue2.js +279 -0
  36. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue2.js.map +1 -0
  37. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue3.js +122 -0
  38. package/dist/esm/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue3.js.map +1 -0
  39. package/dist/esm/components/CnGroupedCardsWidget/index.js +29 -0
  40. package/dist/esm/components/CnGroupedCardsWidget/index.js.map +1 -0
  41. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +320 -74
  42. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  43. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +323 -213
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  45. package/dist/esm/components/CnIndexPage/useNamedSource.js +30 -3
  46. package/dist/esm/components/CnIndexPage/useNamedSource.js.map +1 -1
  47. package/dist/esm/components/CnMapWidget/CnMapWidget.vue.js +1 -1
  48. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js +15 -0
  49. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js.map +1 -1
  50. package/dist/esm/components/CnMapWidget/CnMapWidget.vue3.js.map +1 -1
  51. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue.js +1 -1
  52. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue2.js +25 -1
  53. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue2.js.map +1 -1
  54. package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue3.js.map +1 -1
  55. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue.js +1 -1
  56. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +14 -1
  57. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  58. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +14 -6
  59. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  60. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  61. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +10 -0
  62. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  63. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +6 -1
  64. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  65. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +1 -1
  66. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +91 -4
  67. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -1
  68. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +63 -38
  69. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -1
  70. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue.js +1 -1
  71. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +106 -4
  72. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
  73. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js +70 -25
  74. package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
  75. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue.js +9 -0
  76. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue.js.map +1 -0
  77. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue2.js +175 -0
  78. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue2.js.map +1 -0
  79. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue3.js +77 -0
  80. package/dist/esm/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue3.js.map +1 -0
  81. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
  82. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +35 -2
  83. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  84. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  85. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +4 -0
  86. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  87. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  88. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  89. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
  90. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +2 -23
  91. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  92. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  93. package/dist/esm/composables/indexSources.js +176 -20
  94. package/dist/esm/composables/indexSources.js.map +1 -1
  95. package/dist/esm/composables/useEndpointSource.js +28 -6
  96. package/dist/esm/composables/useEndpointSource.js.map +1 -1
  97. package/dist/esm/index.js +1 -0
  98. package/dist/esm/index.js.map +1 -1
  99. package/dist/esm/l10n/en.json.js +41 -1
  100. package/dist/esm/l10n/en.json.js.map +1 -1
  101. package/dist/esm/l10n/nl.json.js +39 -1
  102. package/dist/esm/l10n/nl.json.js.map +1 -1
  103. package/dist/esm/library-style.js +1 -1
  104. package/dist/esm/nextcloud-vue.css +939 -376
  105. package/dist/esm/utils/builtInFormatters.js +24 -4
  106. package/dist/esm/utils/builtInFormatters.js.map +1 -1
  107. package/dist/esm/utils/languageMapText.js +50 -0
  108. package/dist/esm/utils/languageMapText.js.map +1 -0
  109. package/dist/esm/utils/libraryWidgetKeys.js +3 -0
  110. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  111. package/dist/esm/utils/mapList.js +71 -0
  112. package/dist/esm/utils/mapList.js.map +1 -0
  113. package/dist/esm/utils/rowClassRules.js +43 -0
  114. package/dist/esm/utils/rowClassRules.js.map +1 -0
  115. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  116. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  117. package/dist/esm/utils/visibleWhen.js +19 -2
  118. package/dist/esm/utils/visibleWhen.js.map +1 -1
  119. package/dist/nextcloud-vue.cjs.js +9681 -7136
  120. package/dist/nextcloud-vue.cjs.js.map +2 -2
  121. package/dist/nextcloud-vue.css +939 -376
  122. package/l10n/en.json +41 -1
  123. package/l10n/nl.json +39 -1
  124. package/package.json +1 -1
  125. package/src/components/CnActionsBar/CnActionsBar.md +1 -0
  126. package/src/components/CnActionsBar/CnActionsBar.vue +31 -4
  127. package/src/components/CnChartWidget/CnChartWidget.md +3 -2
  128. package/src/components/CnChartWidget/CnChartWidget.vue +42 -4
  129. package/src/components/CnChoiceCards/CnChoiceCards.md +39 -0
  130. package/src/components/CnChoiceCards/CnChoiceCards.vue +93 -16
  131. package/src/components/CnDashboardPage/CnDashboardPage.vue +110 -21
  132. package/src/components/CnExportsWidget/CnExportsWidget.vue +233 -0
  133. package/src/components/CnExportsWidget/index.js +7 -0
  134. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +324 -0
  135. package/src/components/CnFilesBrowser/filesReview.js +57 -0
  136. package/src/components/CnGroupedCardsWidget/CnGroupedCardsWidget.vue +433 -0
  137. package/src/components/CnGroupedCardsWidget/index.js +28 -0
  138. package/src/components/CnIndexPage/CnIndexPage.md +5 -1
  139. package/src/components/CnIndexPage/CnIndexPage.vue +313 -9
  140. package/src/components/CnIndexPage/useNamedSource.js +30 -3
  141. package/src/components/CnMapWidget/CnMapWidget.vue +37 -0
  142. package/src/components/CnMenuWidget/CnMenuWidget.vue +25 -1
  143. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +29 -1
  144. package/src/components/CnObjectSidebar/CnFilesTab.vue +15 -0
  145. package/src/components/CnOrderedListField/CnOrderedListField.vue +151 -5
  146. package/src/components/CnQuickFilterBar/CnQuickFilterBar.md +1 -0
  147. package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +159 -5
  148. package/src/components/CnSavedViewAlertWidget/CnSavedViewAlertWidget.vue +272 -0
  149. package/src/components/CnSavedViewAlertWidget/index.js +7 -0
  150. package/src/components/CnSetupWizard/CnSetupWizard.vue +35 -2
  151. package/src/components/CnWidgetGrid/builtInWidgets.js +4 -0
  152. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  153. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +2 -23
  154. package/src/components/index.js +3 -0
  155. package/src/composables/indexSources.js +175 -19
  156. package/src/composables/useEndpointSource.js +28 -6
  157. package/src/css/index-page.css +117 -0
  158. package/src/css/look-board-index.css +10 -0
  159. package/src/css/look-board.css +44 -0
  160. package/src/index.js +1 -0
  161. package/src/schemas/app-manifest-v2.schema.json +85 -3
  162. package/src/utils/builtInFormatters.js +24 -4
  163. package/src/utils/languageMapText.js +46 -0
  164. package/src/utils/libraryWidgetKeys.js +3 -0
  165. package/src/utils/mapList.js +67 -0
  166. package/src/utils/rowClassRules.js +39 -0
  167. package/src/utils/validateManifestV2.compiled.js +3 -3
  168. package/src/utils/visibleWhen.js +19 -2
@@ -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 *),
@@ -2355,6 +2399,16 @@
2355
2399
  gap: 8px;
2356
2400
  }
2357
2401
 
2402
+ /* `quickFilterPlacement: "toolbar"` (DqTeamwachtrij): the chips take the room
2403
+ the Filter button and the view switch leave on row 1, so the three stay on
2404
+ one row in the column beside a side panel; the chips that do not fit move
2405
+ into the overflow chip (CnQuickFilterBar `fit`) instead of pushing the
2406
+ buttons onto a row of their own. */
2407
+ .cn-look-board.cn-index-page--quick-filters-toolbar .cn-actions-bar--board > .cn-actions-bar__row--views > .cn-quick-filter-bar {
2408
+ flex: 1 1 0;
2409
+ min-width: 0;
2410
+ }
2411
+
2358
2412
  /* Row 2: the search field and the active filters on a line of their own. */
2359
2413
  .cn-look-board .cn-actions-bar--board > .cn-actions-bar__row--search {
2360
2414
  display: flex;
@@ -6020,6 +6074,123 @@ a.cn-kpi-card--board * {
6020
6074
  min-height: 300px;
6021
6075
  }
6022
6076
 
6077
+ /* The map with its numbered list (`mapConfig.list`, DqZakenKaart): one framed
6078
+ card, the map taking the larger share and the list beside it, stacking
6079
+ under a narrow width. */
6080
+ .cn-index-page__map-card {
6081
+ display: flex;
6082
+ flex: 1;
6083
+ flex-wrap: wrap;
6084
+ gap: 16px;
6085
+ min-height: 0;
6086
+ padding: 16px;
6087
+ border: 1px solid var(--color-border);
6088
+ border-radius: var(--cn-board-card-radius, 12px);
6089
+ background: var(--color-main-background);
6090
+ }
6091
+
6092
+ .cn-index-page__map-card .cn-index-page__map {
6093
+ flex: 3 1 420px;
6094
+ min-width: 0;
6095
+ }
6096
+
6097
+ .cn-index-page__map-side {
6098
+ display: flex;
6099
+ flex: 2 1 320px;
6100
+ flex-direction: column;
6101
+ gap: 12px;
6102
+ min-width: 0;
6103
+ overflow-y: auto;
6104
+ }
6105
+
6106
+ .cn-index-page__map-list {
6107
+ display: flex;
6108
+ flex-direction: column;
6109
+ margin: 0;
6110
+ padding: 0;
6111
+ border: 1px solid var(--color-border);
6112
+ border-radius: 10px;
6113
+ list-style: none;
6114
+ }
6115
+
6116
+ .cn-index-page__map-item {
6117
+ display: flex;
6118
+ gap: 12px;
6119
+ padding: 12px 14px;
6120
+ }
6121
+
6122
+ .cn-index-page__map-item + .cn-index-page__map-item {
6123
+ border-top: 1px solid var(--color-border);
6124
+ }
6125
+
6126
+ .cn-index-page__map-item--active {
6127
+ background: var(--color-primary-element-light);
6128
+ }
6129
+
6130
+ .cn-index-page__map-number {
6131
+ display: inline-flex;
6132
+ flex: none;
6133
+ align-items: center;
6134
+ justify-content: center;
6135
+ width: 26px;
6136
+ height: 26px;
6137
+ border-radius: 13px;
6138
+ background: var(--color-primary-element);
6139
+ color: var(--color-primary-element-text);
6140
+ font-size: 13px;
6141
+ font-weight: 700;
6142
+ }
6143
+
6144
+ .cn-index-page__map-item--active .cn-index-page__map-number {
6145
+ background: var(--color-primary-element-light-text);
6146
+ }
6147
+
6148
+ .cn-index-page__map-text {
6149
+ display: flex;
6150
+ flex: 1;
6151
+ flex-direction: column;
6152
+ gap: 4px;
6153
+ min-width: 0;
6154
+ }
6155
+
6156
+ .cn-index-page__map-title {
6157
+ margin: 0;
6158
+ padding: 0;
6159
+ border: 0;
6160
+ background: none;
6161
+ color: var(--color-main-text);
6162
+ font: inherit;
6163
+ font-size: 15px;
6164
+ font-weight: 600;
6165
+ line-height: 1.35;
6166
+ text-align: start;
6167
+ cursor: pointer;
6168
+ }
6169
+
6170
+ .cn-index-page__map-sub,
6171
+ .cn-index-page__map-due {
6172
+ color: var(--color-text-maxcontrast);
6173
+ font-size: 13px;
6174
+ }
6175
+
6176
+ .cn-index-page__map-pills {
6177
+ display: flex;
6178
+ flex-wrap: wrap;
6179
+ align-items: center;
6180
+ gap: 6px;
6181
+ }
6182
+
6183
+ .cn-index-page__map-missing {
6184
+ display: flex;
6185
+ flex-direction: column;
6186
+ align-items: flex-start;
6187
+ gap: 8px;
6188
+ padding: 14px;
6189
+ border: 1px solid var(--color-border);
6190
+ border-radius: 10px;
6191
+ font-size: 14px;
6192
+ }
6193
+
6023
6194
  /* Opt-in folder navigation pane (left of the list). */
6024
6195
  .cn-index-page__folder-pane {
6025
6196
  flex: 0 0 240px;
@@ -9792,7 +9963,7 @@ a.cn-kpi-card--board * {
9792
9963
  }
9793
9964
 
9794
9965
 
9795
- .cn-chart-widget[data-v-0b737464] {
9966
+ .cn-chart-widget[data-v-7d7200f4] {
9796
9967
  width: 100%;
9797
9968
  /* A chart FITS its container — it is never a scroll region. apexcharts
9798
9969
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -9814,13 +9985,13 @@ a.cn-kpi-card--board * {
9814
9985
  takes what is left, so the chart is sized by the box rather than sizing it.
9815
9986
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
9816
9987
  the thing that produces the overflow it was meant to prevent. */
9817
- .cn-chart-widget--fit[data-v-0b737464] {
9988
+ .cn-chart-widget--fit[data-v-7d7200f4] {
9818
9989
  height: 100%;
9819
9990
  min-height: 0;
9820
9991
  display: flex;
9821
9992
  flex-direction: column;
9822
9993
  }
9823
- .cn-chart-widget__canvas[data-v-0b737464] {
9994
+ .cn-chart-widget__canvas[data-v-7d7200f4] {
9824
9995
  min-width: 0;
9825
9996
  max-width: 100%;
9826
9997
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -9833,14 +10004,14 @@ a.cn-kpi-card--board * {
9833
10004
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
9834
10005
  minimum, which beats the container when the container is narrower. Cap the
9835
10006
  painted box so the inline width cannot push past the widget's border. */
9836
- .cn-chart-widget[data-v-0b737464] .apexcharts-canvas,
9837
- .cn-chart-widget[data-v-0b737464] .apexcharts-canvas svg {
10007
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas,
10008
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas svg {
9838
10009
  max-width: 100%;
9839
10010
  }
9840
10011
 
9841
10012
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
9842
10013
  descender space under the chart. */
9843
- .cn-chart-widget[data-v-0b737464] .apexcharts-canvas svg {
10014
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas svg {
9844
10015
  display: block;
9845
10016
  }
9846
10017
 
@@ -9848,24 +10019,24 @@ a.cn-kpi-card--board * {
9848
10019
  would grow to its content, i.e. to the chart, and the percentage height would
9849
10020
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
9850
10021
  sub-pixel rounding difference from reintroducing a scrollbar. */
9851
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-0b737464] {
10022
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-7d7200f4] {
9852
10023
  flex: 1 1 0;
9853
10024
  min-height: 0;
9854
10025
  overflow: hidden;
9855
10026
  }
9856
- .cn-chart-widget__fallback[data-v-0b737464] {
10027
+ .cn-chart-widget__fallback[data-v-7d7200f4] {
9857
10028
  display: flex;
9858
10029
  align-items: center;
9859
10030
  justify-content: center;
9860
10031
  min-height: 150px;
9861
10032
  color: var(--color-text-maxcontrast);
9862
10033
  }
9863
- .cn-chart-widget__html[data-v-0b737464] {
10034
+ .cn-chart-widget__html[data-v-7d7200f4] {
9864
10035
  display: flex;
9865
10036
  flex-direction: column;
9866
10037
  gap: 12px;
9867
10038
  }
9868
- .cn-chart-widget__bar-list[data-v-0b737464] {
10039
+ .cn-chart-widget__bar-list[data-v-7d7200f4] {
9869
10040
  display: flex;
9870
10041
  flex-direction: column;
9871
10042
  gap: 10px;
@@ -9873,7 +10044,7 @@ a.cn-kpi-card--board * {
9873
10044
  margin: 0;
9874
10045
  padding: 0;
9875
10046
  }
9876
- .cn-chart-widget__bar-line[data-v-0b737464] {
10047
+ .cn-chart-widget__bar-line[data-v-7d7200f4] {
9877
10048
  align-items: center;
9878
10049
  background: none;
9879
10050
  border: 0;
@@ -9888,93 +10059,100 @@ a.cn-kpi-card--board * {
9888
10059
  text-align: start;
9889
10060
  width: 100%;
9890
10061
  }
9891
- .cn-chart-widget__bar-line--drill[data-v-0b737464] {
10062
+ .cn-chart-widget__bar-line--drill[data-v-7d7200f4] {
9892
10063
  border-radius: var(--border-radius-small, 4px);
9893
10064
  cursor: pointer;
9894
10065
  }
9895
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-0b737464],
9896
- .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-0b737464] {
10066
+ .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-7d7200f4],
10067
+ .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-7d7200f4] {
9897
10068
  text-decoration: underline;
9898
10069
  }
9899
- .cn-chart-widget__bar-label[data-v-0b737464] {
10070
+ .cn-chart-widget__bar-label[data-v-7d7200f4] {
9900
10071
  overflow: hidden;
9901
10072
  text-overflow: ellipsis;
9902
10073
  white-space: nowrap;
9903
10074
  }
9904
- .cn-chart-widget__bar-track[data-v-0b737464] {
10075
+ .cn-chart-widget__bar-track[data-v-7d7200f4] {
9905
10076
  background: var(--color-background-dark);
9906
10077
  border-radius: 4px;
9907
10078
  display: block;
9908
10079
  height: 14px;
9909
10080
  overflow: hidden;
9910
10081
  }
9911
- .cn-chart-widget__bar-fill[data-v-0b737464] {
10082
+ .cn-chart-widget__bar-fill[data-v-7d7200f4] {
9912
10083
  background: var(--color-primary-element);
9913
10084
  display: block;
9914
10085
  height: 100%;
9915
10086
  }
9916
- .cn-chart-widget__bar-value[data-v-0b737464] {
10087
+ .cn-chart-widget__bar-value[data-v-7d7200f4] {
9917
10088
  font-weight: 600;
9918
10089
  text-align: end;
9919
10090
  white-space: nowrap;
9920
10091
  }
9921
- .cn-chart-widget__footnote[data-v-0b737464] {
10092
+ .cn-chart-widget__footnote[data-v-7d7200f4] {
9922
10093
  color: var(--color-text-maxcontrast);
9923
10094
  margin: 0;
9924
10095
  }
9925
- .cn-chart-widget__matrix[data-v-0b737464] {
10096
+
10097
+ /* Under an ApexCharts plot the footnote is a sibling of the canvas, so it keeps
10098
+ its own line height while the canvas takes the rest of a fitted column. */
10099
+ .cn-chart-widget > .cn-chart-widget__footnote[data-v-7d7200f4] {
10100
+ flex: 0 0 auto;
10101
+ margin-top: 8px;
10102
+ }
10103
+ .cn-chart-widget__matrix[data-v-7d7200f4] {
9926
10104
  display: grid;
9927
10105
  gap: 4px;
9928
10106
  }
9929
- .cn-chart-widget__matrix-row[data-v-0b737464] {
10107
+ .cn-chart-widget__matrix-row[data-v-7d7200f4] {
9930
10108
  display: contents;
9931
10109
  }
9932
- .cn-chart-widget__matrix-head[data-v-0b737464] {
10110
+ .cn-chart-widget__matrix-head[data-v-7d7200f4] {
9933
10111
  color: var(--color-text-maxcontrast);
9934
10112
  padding: 6px;
9935
10113
  }
9936
- .cn-chart-widget__matrix-label[data-v-0b737464] {
10114
+ .cn-chart-widget__matrix-label[data-v-7d7200f4] {
9937
10115
  padding: 10px 6px;
9938
10116
  }
9939
- .cn-chart-widget__matrix-cell[data-v-0b737464] {
10117
+ .cn-chart-widget__matrix-cell[data-v-7d7200f4] {
9940
10118
  border-radius: 6px;
9941
10119
  padding: 10px;
9942
10120
  text-align: center;
9943
10121
  }
9944
- .cn-chart-widget__matrix-cell--success[data-v-0b737464] {
10122
+ .cn-chart-widget__matrix-cell--success[data-v-7d7200f4] {
9945
10123
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
9946
10124
  }
9947
- .cn-chart-widget__matrix-cell--warning[data-v-0b737464] {
10125
+ .cn-chart-widget__matrix-cell--warning[data-v-7d7200f4] {
9948
10126
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
9949
10127
  }
9950
- .cn-chart-widget__matrix-cell--error[data-v-0b737464] {
10128
+ .cn-chart-widget__matrix-cell--error[data-v-7d7200f4] {
9951
10129
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
9952
10130
  }
9953
- .cn-chart-widget__matrix-cell--danger[data-v-0b737464] {
10131
+ .cn-chart-widget__matrix-cell--danger[data-v-7d7200f4] {
9954
10132
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
9955
10133
  }
9956
- .cn-chart-widget__matrix-cell--current[data-v-0b737464] {
10134
+ .cn-chart-widget__matrix-cell--current[data-v-7d7200f4] {
9957
10135
  font-weight: 700;
9958
10136
  outline: 3px solid var(--color-primary-element);
9959
10137
  outline-offset: -3px;
9960
10138
  }
9961
- .cn-chart-widget__matrix-cell--1[data-v-0b737464] {
10139
+ .cn-chart-widget__matrix-cell--1[data-v-7d7200f4] {
9962
10140
  background: var(--color-primary-element-light);
9963
10141
  color: var(--color-primary-element-light-text);
9964
10142
  }
9965
- .cn-chart-widget__matrix-cell--2[data-v-0b737464] {
10143
+ .cn-chart-widget__matrix-cell--2[data-v-7d7200f4] {
9966
10144
  background: color-mix(in srgb, var(--color-primary-element) 30%, var(--color-main-background));
9967
10145
  color: var(--color-main-text);
9968
10146
  }
9969
- .cn-chart-widget__matrix-cell--3[data-v-0b737464] {
10147
+ .cn-chart-widget__matrix-cell--3[data-v-7d7200f4] {
9970
10148
  background: color-mix(in srgb, var(--color-primary-element) 65%, var(--color-main-background));
9971
10149
  color: var(--color-primary-element-text);
9972
10150
  }
9973
- .cn-chart-widget__matrix-cell--4[data-v-0b737464] {
10151
+ .cn-chart-widget__matrix-cell--4[data-v-7d7200f4] {
9974
10152
  background: var(--color-primary-element);
9975
10153
  color: var(--color-primary-element-text);
9976
10154
  }
9977
- .cn-chart-widget__empty[data-v-0b737464] {
10155
+ .cn-chart-widget__empty[data-v-7d7200f4] {
9978
10156
  display: flex;
9979
10157
  align-items: center;
9980
10158
  justify-content: center;
@@ -9989,25 +10167,25 @@ a.cn-kpi-card--board * {
9989
10167
  content-sized case; in fit mode they take the leftover space and centre in it
9990
10168
  instead, since the floor would overflow a short tile. Declared after the base
9991
10169
  rules so the cascade order matches specificity (no-descending-specificity). */
9992
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-0b737464],
9993
- .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-0b737464] {
10170
+ .cn-chart-widget--fit .cn-chart-widget__empty[data-v-7d7200f4],
10171
+ .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-7d7200f4] {
9994
10172
  flex: 1 1 0;
9995
10173
  min-height: 0;
9996
10174
  }
9997
- .cn-chart-widget__error[data-v-0b737464] {
10175
+ .cn-chart-widget__error[data-v-7d7200f4] {
9998
10176
  font-size: 14px;
9999
10177
  margin: 0;
10000
10178
  }
10001
10179
 
10002
10180
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
10003
10181
  mirroring the dashboard date-range pill styling. */
10004
- .cn-chart-widget__views[data-v-0b737464] {
10182
+ .cn-chart-widget__views[data-v-7d7200f4] {
10005
10183
  display: flex;
10006
10184
  gap: 4px;
10007
10185
  margin-bottom: 6px;
10008
10186
  justify-content: flex-end;
10009
10187
  }
10010
- .cn-chart-widget__view-pill[data-v-0b737464] {
10188
+ .cn-chart-widget__view-pill[data-v-7d7200f4] {
10011
10189
  padding: 2px 10px;
10012
10190
  border: 1px solid var(--color-border);
10013
10191
  border-radius: 999px;
@@ -10016,7 +10194,7 @@ a.cn-kpi-card--board * {
10016
10194
  font-size: 12px;
10017
10195
  cursor: pointer;
10018
10196
  }
10019
- .cn-chart-widget__view-pill--active[data-v-0b737464] {
10197
+ .cn-chart-widget__view-pill--active[data-v-7d7200f4] {
10020
10198
  background: var(--color-primary-element-light, #aad2ed);
10021
10199
  color: var(--color-main-text);
10022
10200
  border-color: var(--color-primary-element, #0082c9);
@@ -10045,8 +10223,8 @@ a.cn-kpi-card--board * {
10045
10223
  each override below therefore carries one more class than the apexcharts rule
10046
10224
  it replaces, and holds even without the scope attribute this block compiles
10047
10225
  with. */
10048
- .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-light,
10049
- .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-dark {
10226
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-light,
10227
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-dark {
10050
10228
  background: var(--color-main-background);
10051
10229
  border: 1px solid var(--color-border);
10052
10230
  color: var(--color-main-text);
@@ -10055,8 +10233,8 @@ a.cn-kpi-card--board * {
10055
10233
 
10056
10234
  /* The title row is the date/category header ("Aug 26"). Its own background is
10057
10235
  what made it unreadable rather than merely off-theme. */
10058
- .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10059
- .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
10236
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10237
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
10060
10238
  background: var(--color-background-hover);
10061
10239
  border-bottom: 1px solid var(--color-border);
10062
10240
  color: var(--color-main-text);
@@ -10065,8 +10243,8 @@ a.cn-kpi-card--board * {
10065
10243
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
10066
10244
  here and only overrides them for its dark theme, so the base rule has to be
10067
10245
  replaced too — not just the theme variants. */
10068
- .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip,
10069
- .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip {
10246
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip,
10247
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip {
10070
10248
  background: var(--color-main-background);
10071
10249
  border: 1px solid var(--color-border);
10072
10250
  color: var(--color-main-text);
@@ -10075,55 +10253,55 @@ a.cn-kpi-card--board * {
10075
10253
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
10076
10254
  edge, `::after` the fill. Both need the tokens the box above uses, or the
10077
10255
  arrow keeps the old palette and reads as a stray light wedge. */
10078
- .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-bottom::after,
10079
- .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-top::after {
10256
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-bottom::after,
10257
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-top::after {
10080
10258
  border-bottom-color: var(--color-main-background);
10081
10259
  border-top-color: var(--color-main-background);
10082
10260
  }
10083
- .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-bottom::before,
10084
- .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-top::before {
10261
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-bottom::before,
10262
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-top::before {
10085
10263
  border-bottom-color: var(--color-border);
10086
10264
  border-top-color: var(--color-border);
10087
10265
  }
10088
- .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-left::after,
10089
- .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-right::after {
10266
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-left::after,
10267
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-right::after {
10090
10268
  border-left-color: var(--color-main-background);
10091
10269
  border-right-color: var(--color-main-background);
10092
10270
  }
10093
- .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-left::before,
10094
- .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-right::before {
10271
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-left::before,
10272
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-right::before {
10095
10273
  border-left-color: var(--color-border);
10096
10274
  border-right-color: var(--color-border);
10097
10275
  }
10098
10276
 
10099
10277
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
10100
10278
  hardcoded `#fff` panel under inherited near-white text. */
10101
- .cn-chart-widget[data-v-0b737464] .apexcharts-menu {
10279
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-menu {
10102
10280
  background: var(--color-main-background);
10103
10281
  border: 1px solid var(--color-border);
10104
10282
  color: var(--color-main-text);
10105
10283
  }
10106
- .cn-chart-widget[data-v-0b737464] .apexcharts-menu .apexcharts-menu-item:hover {
10284
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-menu .apexcharts-menu-item:hover {
10107
10285
  background: var(--color-background-hover);
10108
10286
  }
10109
10287
 
10110
10288
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
10111
10289
  vanishes against a dark background. One selector per icon class, matching
10112
10290
  apexcharts' own list, to clear its (0,3,1) hover rules. */
10113
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-menu-icon svg,
10114
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-reset-icon svg,
10115
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-selection-icon svg,
10116
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoom-icon svg,
10117
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
10118
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
10291
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-menu-icon svg,
10292
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-reset-icon svg,
10293
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-selection-icon svg,
10294
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoom-icon svg,
10295
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
10296
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
10119
10297
  fill: var(--color-text-maxcontrast);
10120
10298
  }
10121
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
10122
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
10123
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
10124
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
10125
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
10126
- .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
10299
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
10300
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
10301
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
10302
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
10303
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
10304
+ .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
10127
10305
  fill: var(--color-main-text);
10128
10306
  }
10129
10307
 
@@ -11189,24 +11367,24 @@ svg.leaflet-image-layer.leaflet-interactive path {
11189
11367
  line-height: 30px;
11190
11368
  }
11191
11369
 
11192
- .cn-map-widget[data-v-62ad3809] {
11370
+ .cn-map-widget[data-v-21c47690] {
11193
11371
  position: relative;
11194
11372
  width: 100%;
11195
11373
  min-height: 200px;
11196
11374
  }
11197
- .cn-map-widget__leaflet[data-v-62ad3809] {
11375
+ .cn-map-widget__leaflet[data-v-21c47690] {
11198
11376
  width: 100%;
11199
11377
  height: 100%;
11200
11378
  /* Leaflet paints its container #ddd, which reads as a white flash before the
11201
11379
  tiles arrive — and a bright one in a dark theme. */
11202
11380
  background: var(--color-background-dark);
11203
11381
  }
11204
- .cn-map-widget__note[data-v-62ad3809] {
11382
+ .cn-map-widget__note[data-v-21c47690] {
11205
11383
  margin: 4px 0 0;
11206
11384
  font-size: 13px;
11207
11385
  color: var(--color-text-maxcontrast);
11208
11386
  }
11209
- .cn-map-widget__fallback[data-v-62ad3809] {
11387
+ .cn-map-widget__fallback[data-v-21c47690] {
11210
11388
  display: flex;
11211
11389
  align-items: center;
11212
11390
  justify-content: center;
@@ -11214,11 +11392,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
11214
11392
  min-height: 150px;
11215
11393
  color: var(--color-text-maxcontrast);
11216
11394
  }
11217
- .cn-map-widget__error[data-v-62ad3809] {
11395
+ .cn-map-widget__error[data-v-21c47690] {
11218
11396
  font-size: 14px;
11219
11397
  margin: 0;
11220
11398
  }
11221
- .cn-map-widget__legend[data-v-62ad3809] {
11399
+ .cn-map-widget__legend[data-v-21c47690] {
11222
11400
  position: absolute;
11223
11401
  top: 12px;
11224
11402
  right: 12px;
@@ -11231,7 +11409,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
11231
11409
 
11232
11410
  /* Fullscreen overlay. A CSS-fixed box rather than the Fullscreen API, so it needs
11233
11411
  no permission prompt; the z-index clears the Nextcloud header. */
11234
- .cn-map-widget--fullscreen[data-v-62ad3809] {
11412
+ .cn-map-widget--fullscreen[data-v-21c47690] {
11235
11413
  position: fixed;
11236
11414
  top: 0;
11237
11415
  left: 0;
@@ -11244,7 +11422,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
11244
11422
  Leaflet's default white-on-grey buttons.
11245
11423
  ::v-deep is required — Leaflet builds the control DOM via L.DomUtil.create, so
11246
11424
  those nodes never receive this SFC's scoped data-v attribute. */
11247
- .cn-map-widget[data-v-62ad3809] .cn-map-widget__control {
11425
+ .cn-map-widget[data-v-21c47690] .cn-map-widget__control {
11248
11426
  display: flex;
11249
11427
  align-items: center;
11250
11428
  justify-content: center;
@@ -11253,12 +11431,32 @@ svg.leaflet-image-layer.leaflet-interactive path {
11253
11431
  color: var(--color-main-text);
11254
11432
  background: var(--color-main-background);
11255
11433
  }
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 {
11434
+ .cn-map-widget[data-v-21c47690] .cn-map-widget__control:hover,
11435
+ .cn-map-widget[data-v-21c47690] .cn-map-widget__control:focus-visible {
11258
11436
  background: var(--color-background-hover);
11259
11437
  }
11260
11438
 
11261
11439
 
11440
+ /* A numbered pin (`properties.markerNumber`): a 26px primary circle with its
11441
+ number in white, the active one darker. Unscoped, because Leaflet creates
11442
+ the marker element outside the template. */
11443
+ .cn-map-widget__pin {
11444
+ display: flex;
11445
+ align-items: center;
11446
+ justify-content: center;
11447
+ border: 2px solid var(--color-main-background);
11448
+ border-radius: 50%;
11449
+ background: var(--color-primary-element);
11450
+ color: var(--color-primary-element-text);
11451
+ font-size: 13px;
11452
+ font-weight: 700;
11453
+ box-sizing: border-box;
11454
+ }
11455
+ .cn-map-widget__pin--active {
11456
+ background: var(--color-primary-element-light-text);
11457
+ }
11458
+
11459
+
11262
11460
  .cn-map-widget-form[data-v-ab71a77e] {
11263
11461
  display: flex;
11264
11462
  flex-direction: column;
@@ -17041,7 +17239,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17041
17239
  }
17042
17240
 
17043
17241
 
17044
- .cn-files-browser[data-v-5da9ca42] {
17242
+ .cn-files-browser[data-v-53e4bcc2] {
17045
17243
  display: flex;
17046
17244
  flex-direction: column;
17047
17245
  gap: 8px;
@@ -17049,11 +17247,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17049
17247
  position: relative;
17050
17248
  border-radius: var(--border-radius-large, 8px);
17051
17249
  }
17052
- .cn-files-browser--dragging[data-v-5da9ca42] {
17250
+ .cn-files-browser--dragging[data-v-53e4bcc2] {
17053
17251
  outline: 2px dashed var(--color-primary-element);
17054
17252
  outline-offset: 4px;
17055
17253
  }
17056
- .cn-files-browser__drop-overlay[data-v-5da9ca42] {
17254
+ .cn-files-browser__drop-overlay[data-v-53e4bcc2] {
17057
17255
  position: absolute;
17058
17256
  inset: 0;
17059
17257
  z-index: 2;
@@ -17071,7 +17269,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17071
17269
  text-align: center;
17072
17270
  pointer-events: none;
17073
17271
  }
17074
- .cn-files-browser__drop-icon[data-v-5da9ca42] {
17272
+ .cn-files-browser__drop-icon[data-v-53e4bcc2] {
17075
17273
  display: flex;
17076
17274
  align-items: center;
17077
17275
  justify-content: center;
@@ -17081,11 +17279,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17081
17279
  background: var(--color-main-background);
17082
17280
  color: var(--color-primary-element);
17083
17281
  }
17084
- .cn-files-browser__drop-label[data-v-5da9ca42] {
17282
+ .cn-files-browser__drop-label[data-v-53e4bcc2] {
17085
17283
  font-size: 20px;
17086
17284
  font-weight: 700;
17087
17285
  }
17088
- .cn-files-browser__drop-hint[data-v-5da9ca42] {
17286
+ .cn-files-browser__drop-hint[data-v-53e4bcc2] {
17089
17287
  display: flex;
17090
17288
  align-items: center;
17091
17289
  gap: 8px;
@@ -17095,14 +17293,14 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17095
17293
  font-size: 13px;
17096
17294
  color: var(--color-text-maxcontrast);
17097
17295
  }
17098
- .cn-files-browser__bar[data-v-5da9ca42] {
17296
+ .cn-files-browser__bar[data-v-53e4bcc2] {
17099
17297
  display: flex;
17100
17298
  align-items: center;
17101
17299
  justify-content: space-between;
17102
17300
  gap: 8px;
17103
17301
  min-width: 0;
17104
17302
  }
17105
- .cn-files-browser__crumbs[data-v-5da9ca42] {
17303
+ .cn-files-browser__crumbs[data-v-53e4bcc2] {
17106
17304
  min-width: 0;
17107
17305
  flex: 1 1 auto;
17108
17306
  }
@@ -17110,13 +17308,13 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17110
17308
  /* The crumbs give way, the controls do not: a long crumb (a folder named
17111
17309
  after a uuid) shrank the upload button to "Bestanden..." while the crumbs
17112
17310
  kept their width. */
17113
- .cn-files-browser__bar[data-v-5da9ca42] > :not(.cn-files-browser__crumbs) {
17311
+ .cn-files-browser__bar[data-v-53e4bcc2] > :not(.cn-files-browser__crumbs) {
17114
17312
  flex-shrink: 0;
17115
17313
  }
17116
- .cn-files-browser__file-input[data-v-5da9ca42] {
17314
+ .cn-files-browser__file-input[data-v-53e4bcc2] {
17117
17315
  display: none;
17118
17316
  }
17119
- .cn-files-browser__uploads[data-v-5da9ca42] {
17317
+ .cn-files-browser__uploads[data-v-53e4bcc2] {
17120
17318
  list-style: none;
17121
17319
  margin: 0;
17122
17320
  padding: 0;
@@ -17124,40 +17322,40 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17124
17322
  flex-direction: column;
17125
17323
  gap: 4px;
17126
17324
  }
17127
- .cn-files-browser__upload[data-v-5da9ca42] {
17325
+ .cn-files-browser__upload[data-v-53e4bcc2] {
17128
17326
  display: flex;
17129
17327
  flex-direction: column;
17130
17328
  gap: 2px;
17131
17329
  }
17132
- .cn-files-browser__upload-name[data-v-5da9ca42] {
17330
+ .cn-files-browser__upload-name[data-v-53e4bcc2] {
17133
17331
  font-size: 13px;
17134
17332
  }
17135
- .cn-files-browser__upload-error[data-v-5da9ca42] {
17333
+ .cn-files-browser__upload-error[data-v-53e4bcc2] {
17136
17334
  color: var(--color-error);
17137
17335
  font-size: 13px;
17138
17336
  }
17139
- .cn-files-browser__loading[data-v-5da9ca42] {
17337
+ .cn-files-browser__loading[data-v-53e4bcc2] {
17140
17338
  padding: 24px 0;
17141
17339
  }
17142
17340
 
17143
17341
  /* `sideCards`: the list and, while a file is selected, a column of cards. */
17144
- .cn-files-browser__body--with-side[data-v-5da9ca42] {
17342
+ .cn-files-browser__body--with-side[data-v-53e4bcc2] {
17145
17343
  display: grid;
17146
17344
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
17147
17345
  align-items: start;
17148
17346
  gap: 16px;
17149
17347
  }
17150
17348
  @media (max-width: 900px) {
17151
- .cn-files-browser__body--with-side[data-v-5da9ca42] {
17349
+ .cn-files-browser__body--with-side[data-v-53e4bcc2] {
17152
17350
  grid-template-columns: minmax(0, 1fr);
17153
17351
  }
17154
17352
  }
17155
- .cn-files-browser__side[data-v-5da9ca42] {
17353
+ .cn-files-browser__side[data-v-53e4bcc2] {
17156
17354
  display: flex;
17157
17355
  flex-direction: column;
17158
17356
  gap: 12px;
17159
17357
  }
17160
- .cn-files-browser__side-card[data-v-5da9ca42] {
17358
+ .cn-files-browser__side-card[data-v-53e4bcc2] {
17161
17359
  display: flex;
17162
17360
  flex-direction: column;
17163
17361
  gap: 10px;
@@ -17166,27 +17364,27 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17166
17364
  border-radius: var(--border-radius-large);
17167
17365
  background: var(--color-main-background);
17168
17366
  }
17169
- .cn-files-browser__side-title[data-v-5da9ca42] {
17367
+ .cn-files-browser__side-title[data-v-53e4bcc2] {
17170
17368
  margin: 0;
17171
17369
  font-size: 15px;
17172
17370
  font-weight: 700;
17173
17371
  overflow-wrap: anywhere;
17174
17372
  }
17175
- .cn-files-browser__side-facts[data-v-5da9ca42] {
17373
+ .cn-files-browser__side-facts[data-v-53e4bcc2] {
17176
17374
  display: grid;
17177
17375
  grid-template-columns: max-content minmax(0, 1fr);
17178
17376
  gap: 6px 12px;
17179
17377
  margin: 0;
17180
17378
  font-size: 14px;
17181
17379
  }
17182
- .cn-files-browser__side-facts dt[data-v-5da9ca42] {
17380
+ .cn-files-browser__side-facts dt[data-v-53e4bcc2] {
17183
17381
  color: var(--color-text-maxcontrast);
17184
17382
  }
17185
- .cn-files-browser__side-facts dd[data-v-5da9ca42] {
17383
+ .cn-files-browser__side-facts dd[data-v-53e4bcc2] {
17186
17384
  margin: 0;
17187
17385
  overflow-wrap: anywhere;
17188
17386
  }
17189
- .cn-files-browser__side-actions[data-v-5da9ca42] {
17387
+ .cn-files-browser__side-actions[data-v-53e4bcc2] {
17190
17388
  display: flex;
17191
17389
  flex-wrap: wrap;
17192
17390
  gap: 8px;
@@ -17194,35 +17392,35 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17194
17392
 
17195
17393
  /* A value drawn in a tone (`colorMap` on a column that is not a badge): the
17196
17394
  text in the tone's colour, as the boards write a restricted level. */
17197
- .cn-files-browser__tone[data-v-5da9ca42] {
17395
+ .cn-files-browser__tone[data-v-53e4bcc2] {
17198
17396
  font-weight: 600;
17199
17397
  }
17200
- .cn-files-browser__tone--success[data-v-5da9ca42] {
17398
+ .cn-files-browser__tone--success[data-v-53e4bcc2] {
17201
17399
  color: var(--color-success-text, var(--color-success));
17202
17400
  }
17203
- .cn-files-browser__tone--warning[data-v-5da9ca42] {
17401
+ .cn-files-browser__tone--warning[data-v-53e4bcc2] {
17204
17402
  color: var(--color-warning-text, var(--color-warning));
17205
17403
  }
17206
- .cn-files-browser__tone--error[data-v-5da9ca42] {
17404
+ .cn-files-browser__tone--error[data-v-53e4bcc2] {
17207
17405
  color: var(--color-error-text, var(--color-error));
17208
17406
  }
17209
- .cn-files-browser__tone--primary[data-v-5da9ca42],
17210
- .cn-files-browser__tone--info[data-v-5da9ca42] {
17407
+ .cn-files-browser__tone--primary[data-v-53e4bcc2],
17408
+ .cn-files-browser__tone--info[data-v-53e4bcc2] {
17211
17409
  color: var(--color-primary-element-light-text, var(--color-primary-element));
17212
17410
  }
17213
- .cn-files-browser__table[data-v-5da9ca42] {
17411
+ .cn-files-browser__table[data-v-53e4bcc2] {
17214
17412
  width: 100%;
17215
17413
  border-collapse: collapse;
17216
17414
  table-layout: fixed;
17217
17415
  }
17218
- .cn-files-browser__table th[data-v-5da9ca42] {
17416
+ .cn-files-browser__table th[data-v-53e4bcc2] {
17219
17417
  text-align: start;
17220
17418
  font-weight: normal;
17221
17419
  color: var(--color-text-maxcontrast);
17222
17420
  padding: 4px 8px;
17223
17421
  border-bottom: 1px solid var(--color-border);
17224
17422
  }
17225
- .cn-files-browser__sort[data-v-5da9ca42] {
17423
+ .cn-files-browser__sort[data-v-53e4bcc2] {
17226
17424
  background: none;
17227
17425
  border: none;
17228
17426
  padding: 0;
@@ -17233,46 +17431,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17233
17431
  align-items: center;
17234
17432
  gap: 2px;
17235
17433
  }
17236
- .cn-files-browser__sort[data-v-5da9ca42]:hover,
17237
- .cn-files-browser__sort[data-v-5da9ca42]:focus-visible {
17434
+ .cn-files-browser__sort[data-v-53e4bcc2]:hover,
17435
+ .cn-files-browser__sort[data-v-53e4bcc2]:focus-visible {
17238
17436
  color: var(--color-main-text);
17239
17437
  }
17240
- .cn-files-browser__row[data-v-5da9ca42] {
17438
+ .cn-files-browser__row[data-v-53e4bcc2] {
17241
17439
  cursor: pointer;
17242
17440
  }
17243
- .cn-files-browser__row[data-v-5da9ca42]:hover,
17244
- .cn-files-browser__row[data-v-5da9ca42]:focus-within {
17441
+ .cn-files-browser__row[data-v-53e4bcc2]:hover,
17442
+ .cn-files-browser__row[data-v-53e4bcc2]:focus-within {
17245
17443
  background-color: var(--color-background-hover);
17246
17444
  }
17247
- .cn-files-browser__table td[data-v-5da9ca42] {
17445
+ .cn-files-browser__table td[data-v-53e4bcc2] {
17248
17446
  padding: 4px 8px;
17249
17447
  border-bottom: 1px solid var(--color-border);
17250
17448
  vertical-align: middle;
17251
17449
  }
17252
- .cn-files-browser__col-icon[data-v-5da9ca42] {
17450
+ .cn-files-browser__col-icon[data-v-53e4bcc2] {
17253
17451
  width: 48px;
17254
17452
  }
17255
- .cn-files-browser__col-size[data-v-5da9ca42] {
17453
+ .cn-files-browser__col-size[data-v-53e4bcc2] {
17256
17454
  width: 96px;
17257
17455
  white-space: nowrap;
17258
17456
  color: var(--color-text-maxcontrast);
17259
17457
  }
17260
- .cn-files-browser__col-mtime[data-v-5da9ca42] {
17458
+ .cn-files-browser__col-mtime[data-v-53e4bcc2] {
17261
17459
  width: 140px;
17262
17460
  white-space: nowrap;
17263
17461
  color: var(--color-text-maxcontrast);
17264
17462
  }
17265
- .cn-files-browser__col-select[data-v-5da9ca42] {
17463
+ .cn-files-browser__col-select[data-v-53e4bcc2] {
17266
17464
  width: 36px;
17267
17465
  text-align: center;
17268
17466
  }
17269
- .cn-files-browser__select[data-v-5da9ca42] {
17467
+ .cn-files-browser__select[data-v-53e4bcc2] {
17270
17468
  width: 18px;
17271
17469
  height: 18px;
17272
17470
  margin: 0;
17273
17471
  accent-color: var(--color-primary-element);
17274
17472
  }
17275
- .cn-files-browser__bulk-bar[data-v-5da9ca42] {
17473
+ .cn-files-browser__bulk-bar[data-v-53e4bcc2] {
17276
17474
  display: flex;
17277
17475
  flex-wrap: wrap;
17278
17476
  align-items: center;
@@ -17281,22 +17479,91 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17281
17479
  border-radius: var(--border-radius-large);
17282
17480
  background: var(--color-primary-element-light);
17283
17481
  }
17284
- .cn-files-browser__bulk-count[data-v-5da9ca42] {
17482
+ .cn-files-browser__bulk-count[data-v-53e4bcc2] {
17285
17483
  font-weight: 600;
17286
17484
  margin-inline-end: 8px;
17287
17485
  }
17288
- .cn-files-browser__facets[data-v-5da9ca42] {
17486
+ .cn-files-browser__review[data-v-53e4bcc2] {
17487
+ display: flex;
17488
+ flex-direction: column;
17489
+ gap: 10px;
17490
+ margin-block-end: 12px;
17491
+ padding: 14px 16px;
17492
+ border-radius: 10px;
17493
+ background: var(--color-background-hover);
17494
+ }
17495
+ .cn-files-browser__review-head[data-v-53e4bcc2] {
17496
+ display: flex;
17497
+ flex-wrap: wrap;
17498
+ align-items: baseline;
17499
+ justify-content: space-between;
17500
+ gap: 8px;
17501
+ }
17502
+ .cn-files-browser__review-title[data-v-53e4bcc2] {
17503
+ font-size: 15px;
17504
+ }
17505
+ .cn-files-browser__review-sub[data-v-53e4bcc2] {
17506
+ color: var(--color-text-maxcontrast);
17507
+ font-size: 13px;
17508
+ }
17509
+ .cn-files-browser__review-bar[data-v-53e4bcc2] {
17510
+ display: flex;
17511
+ height: 8px;
17512
+ overflow: hidden;
17513
+ border-radius: 4px;
17514
+ background: var(--color-border);
17515
+ }
17516
+ .cn-files-browser__review-legend[data-v-53e4bcc2] {
17517
+ display: flex;
17518
+ flex-wrap: wrap;
17519
+ gap: 8px 18px;
17520
+ margin: 0;
17521
+ padding: 0;
17522
+ font-size: 14px;
17523
+ list-style: none;
17524
+ }
17525
+ .cn-files-browser__review-legend li[data-v-53e4bcc2] {
17526
+ display: inline-flex;
17527
+ align-items: center;
17528
+ gap: 8px;
17529
+ }
17530
+ .cn-files-browser__review-dot[data-v-53e4bcc2] {
17531
+ width: 10px;
17532
+ height: 10px;
17533
+ border-radius: 5px;
17534
+ }
17535
+ .cn-files-browser__review-part--success[data-v-53e4bcc2] {
17536
+ background: var(--color-success-text, var(--color-success));
17537
+ }
17538
+ .cn-files-browser__review-part--warning[data-v-53e4bcc2] {
17539
+ background: var(--color-warning);
17540
+ }
17541
+ .cn-files-browser__review-part--error[data-v-53e4bcc2] {
17542
+ background: var(--color-error-text, var(--color-error));
17543
+ }
17544
+ .cn-files-browser__review-part--info[data-v-53e4bcc2] {
17545
+ background: var(--color-primary-element);
17546
+ }
17547
+ .cn-files-browser__review-part--default[data-v-53e4bcc2] {
17548
+ background: var(--color-border-dark);
17549
+ }
17550
+ .cn-files-browser__row-button[data-v-53e4bcc2] {
17551
+ display: inline-flex;
17552
+ margin-inline-end: 8px;
17553
+ vertical-align: middle;
17554
+ }
17555
+ .cn-files-browser__facets[data-v-53e4bcc2] {
17289
17556
  display: flex;
17290
17557
  flex-wrap: wrap;
17291
17558
  align-items: center;
17292
17559
  gap: 8px 16px;
17293
17560
  }
17294
- .cn-files-browser__facet[data-v-5da9ca42] {
17561
+ .cn-files-browser__facet[data-v-53e4bcc2] {
17295
17562
  display: flex;
17296
17563
  flex-wrap: wrap;
17297
17564
  gap: 6px;
17298
17565
  }
17299
- .cn-files-browser__facet-chip[data-v-5da9ca42] {
17566
+ .cn-files-browser__facet-chip[data-v-53e4bcc2] {
17300
17567
  display: inline-flex;
17301
17568
  align-items: center;
17302
17569
  gap: 6px;
@@ -17308,65 +17575,83 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17308
17575
  color: var(--color-main-text);
17309
17576
  cursor: pointer;
17310
17577
  }
17311
- .cn-files-browser__facet-chip--active[data-v-5da9ca42] {
17578
+ .cn-files-browser__facet-chip--active[data-v-53e4bcc2] {
17312
17579
  border-color: var(--color-primary-element);
17313
17580
  background: var(--color-primary-element-light);
17314
17581
  }
17315
- .cn-files-browser__group-heading[data-v-5da9ca42] {
17582
+ .cn-files-browser__group-heading[data-v-53e4bcc2] {
17316
17583
  padding: 12px 8px 4px;
17317
17584
  text-align: start;
17318
17585
  font-weight: 700;
17319
17586
  }
17320
- .cn-files-browser__group-count[data-v-5da9ca42] {
17587
+ .cn-files-browser__group-count[data-v-53e4bcc2] {
17321
17588
  margin-inline-start: 6px;
17322
17589
  font-weight: 400;
17323
17590
  color: var(--color-text-maxcontrast);
17324
17591
  }
17325
- .cn-files-browser__no-match[data-v-5da9ca42] {
17592
+ .cn-files-browser__no-match[data-v-53e4bcc2] {
17326
17593
  padding: 16px 8px;
17327
17594
  color: var(--color-text-maxcontrast);
17328
17595
  }
17329
- .cn-files-browser__col-actions[data-v-5da9ca42] {
17596
+ .cn-files-browser__col-actions[data-v-53e4bcc2] {
17330
17597
  width: 48px;
17598
+ white-space: nowrap;
17331
17599
  }
17332
- .cn-files-browser__col-name[data-v-5da9ca42] {
17600
+ .cn-files-browser__col-actions[data-v-53e4bcc2]:has(.cn-files-browser__row-button) {
17601
+ width: auto;
17602
+ }
17603
+ .cn-files-browser__col-name[data-v-53e4bcc2] {
17333
17604
  min-width: 0;
17334
17605
  }
17335
- .cn-files-browser__name[data-v-5da9ca42] {
17606
+ .cn-files-browser__name[data-v-53e4bcc2] {
17336
17607
  display: block;
17337
17608
  overflow: hidden;
17338
17609
  text-overflow: ellipsis;
17339
17610
  white-space: nowrap;
17340
17611
  }
17341
- .cn-files-browser__row--linked[data-v-5da9ca42] {
17612
+ .cn-files-browser__name-secondary[data-v-53e4bcc2] {
17613
+ display: block;
17614
+ overflow: hidden;
17615
+ color: var(--color-text-maxcontrast);
17616
+ font-size: 13px;
17617
+ text-overflow: ellipsis;
17618
+ white-space: nowrap;
17619
+ }
17620
+ .cn-files-browser__footnote[data-v-53e4bcc2] {
17621
+ margin: 0;
17622
+ padding-top: 12px;
17623
+ color: var(--color-text-maxcontrast);
17624
+ font-size: 13px;
17625
+ }
17626
+ .cn-files-browser__row--linked[data-v-53e4bcc2] {
17342
17627
  color: var(--color-text-maxcontrast);
17343
17628
  }
17344
- .cn-files-browser__note[data-v-5da9ca42] {
17629
+ .cn-files-browser__note[data-v-53e4bcc2] {
17345
17630
  color: var(--color-text-maxcontrast);
17346
17631
  display: block;
17347
17632
  font-size: var(--font-size-small, 13px);
17348
17633
  }
17349
- .cn-files-browser__note-link[data-v-5da9ca42] {
17634
+ .cn-files-browser__note-link[data-v-53e4bcc2] {
17350
17635
  color: inherit;
17351
17636
  text-decoration: underline;
17352
17637
  }
17353
- .cn-files-browser__row--folder .cn-files-browser__name[data-v-5da9ca42] {
17638
+ .cn-files-browser__row--folder .cn-files-browser__name[data-v-53e4bcc2] {
17354
17639
  font-weight: 600;
17355
17640
  }
17356
- .cn-files-browser__mime[data-v-5da9ca42],
17357
- .cn-files-browser__thumb[data-v-5da9ca42] {
17641
+ .cn-files-browser__mime[data-v-53e4bcc2],
17642
+ .cn-files-browser__thumb[data-v-53e4bcc2] {
17358
17643
  width: 32px;
17359
17644
  height: 32px;
17360
17645
  display: block;
17361
17646
  }
17362
- .cn-files-browser__thumb[data-v-5da9ca42] {
17647
+ .cn-files-browser__thumb[data-v-53e4bcc2] {
17363
17648
  object-fit: cover;
17364
17649
  border-radius: var(--border-radius, 4px);
17365
17650
  }
17366
- .cn-files-browser__new-folder[data-v-5da9ca42] {
17651
+ .cn-files-browser__new-folder[data-v-53e4bcc2] {
17367
17652
  padding: 8px 0;
17368
17653
  }
17369
- .hidden-visually[data-v-5da9ca42] {
17654
+ .hidden-visually[data-v-53e4bcc2] {
17370
17655
  position: absolute;
17371
17656
  width: 1px;
17372
17657
  height: 1px;
@@ -17376,9 +17661,9 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17376
17661
  }
17377
17662
 
17378
17663
 
17379
- .cn-sidebar-tab[data-v-0442340e] { padding: 12px;
17664
+ .cn-sidebar-tab[data-v-68d47344] { padding: 12px;
17380
17665
  }
17381
- .cn-sidebar-tab__upload-error[data-v-0442340e] {
17666
+ .cn-sidebar-tab__upload-error[data-v-68d47344] {
17382
17667
  padding: 8px 12px;
17383
17668
  margin-bottom: 8px;
17384
17669
  border-radius: var(--border-radius, 4px);
@@ -17386,7 +17671,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17386
17671
  color: var(--color-error, #e53935);
17387
17672
  font-size: 13px;
17388
17673
  }
17389
- .cn-sidebar-tab__dropzone[data-v-0442340e] {
17674
+ .cn-sidebar-tab__dropzone[data-v-68d47344] {
17390
17675
  display: flex;
17391
17676
  flex-direction: column;
17392
17677
  align-items: center;
@@ -17399,46 +17684,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
17399
17684
  cursor: pointer;
17400
17685
  transition: border-color 0.15s ease, background-color 0.15s ease;
17401
17686
  }
17402
- .cn-sidebar-tab__dropzone[data-v-0442340e]:hover {
17687
+ .cn-sidebar-tab__dropzone[data-v-68d47344]:hover {
17403
17688
  border-color: var(--color-primary-element);
17404
17689
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.08));
17405
17690
  }
17406
- .cn-sidebar-tab__dropzone--active[data-v-0442340e] {
17691
+ .cn-sidebar-tab__dropzone--active[data-v-68d47344] {
17407
17692
  border-color: var(--color-primary-element);
17408
17693
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.12));
17409
17694
  }
17410
- .cn-sidebar-tab__share[data-v-0442340e] { margin-bottom: 12px;
17695
+ .cn-sidebar-tab__share[data-v-68d47344] { margin-bottom: 12px;
17411
17696
  }
17412
- .cn-sidebar-tab__dropzone-icon[data-v-0442340e] { color: var(--color-text-maxcontrast);
17697
+ .cn-sidebar-tab__dropzone-icon[data-v-68d47344] { color: var(--color-text-maxcontrast);
17413
17698
  }
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);
17699
+ .cn-sidebar-tab__dropzone--active .cn-sidebar-tab__dropzone-icon[data-v-68d47344],
17700
+ .cn-sidebar-tab__dropzone:hover .cn-sidebar-tab__dropzone-icon[data-v-68d47344] { color: var(--color-primary-element);
17416
17701
  }
17417
- .cn-sidebar-tab__dropzone-text[data-v-0442340e] { font-size: 13px; color: var(--color-text-maxcontrast);
17702
+ .cn-sidebar-tab__dropzone-text[data-v-68d47344] { font-size: 13px; color: var(--color-text-maxcontrast);
17418
17703
  }
17419
- .cn-sidebar-tab__file-input[data-v-0442340e] { display: none;
17704
+ .cn-sidebar-tab__file-input[data-v-68d47344] { display: none;
17420
17705
  }
17421
- .cn-sidebar-tab__empty[data-v-0442340e] {
17706
+ .cn-sidebar-tab__empty[data-v-68d47344] {
17422
17707
  text-align: center;
17423
17708
  padding: 24px 12px;
17424
17709
  color: var(--color-text-maxcontrast);
17425
17710
  font-size: 13px;
17426
17711
  }
17427
- .cn-sidebar-tab__list[data-v-0442340e] { display: flex; flex-direction: column; gap: 2px;
17712
+ .cn-sidebar-tab__list[data-v-68d47344] { display: flex; flex-direction: column; gap: 2px;
17428
17713
  }
17429
- .cn-sidebar-tab__mime[data-v-0442340e],
17430
- .cn-sidebar-tab__thumb[data-v-0442340e] {
17714
+ .cn-sidebar-tab__mime[data-v-68d47344],
17715
+ .cn-sidebar-tab__thumb[data-v-68d47344] {
17431
17716
  width: 32px;
17432
17717
  height: 32px;
17433
17718
  display: block;
17434
17719
  }
17435
- .cn-sidebar-tab__thumb[data-v-0442340e] {
17720
+ .cn-sidebar-tab__thumb[data-v-68d47344] {
17436
17721
  object-fit: cover;
17437
17722
  border-radius: var(--border-radius, 4px);
17438
17723
  }
17439
- .cn-sidebar-tab__meta[data-v-0442340e] { color: var(--color-text-maxcontrast);
17724
+ .cn-sidebar-tab__meta[data-v-68d47344] { color: var(--color-text-maxcontrast);
17440
17725
  }
17441
- .cn-sidebar-tab__load-more[data-v-0442340e] { margin-top: 8px;
17726
+ .cn-sidebar-tab__load-more[data-v-68d47344] { margin-top: 8px;
17442
17727
  }
17443
17728
 
17444
17729
 
@@ -21879,7 +22164,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21879
22164
  Horizontal overflow is owned by `.cn-table-container` (overflow-x: auto); a
21880
22165
  second scroll container here would produce a nested scrollbar, so this host
21881
22166
  stays plain. */
21882
- .cn-object-list-widget[data-v-535337c7] {
22167
+ .cn-object-list-widget[data-v-aeadc210] {
21883
22168
  width: 100%;
21884
22169
  height: 100%;
21885
22170
  display: flex;
@@ -21891,10 +22176,10 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21891
22176
  relative` is set only in the dropping state so a widget without a drop zone
21892
22177
  keeps the containing block it had — an unconditional rule here would
21893
22178
  re-parent any absolutely-positioned descendant a host has placed. */
21894
- .cn-object-list-widget--dropping[data-v-535337c7] {
22179
+ .cn-object-list-widget--dropping[data-v-aeadc210] {
21895
22180
  position: relative;
21896
22181
  }
21897
- .cn-object-list-widget__drop-overlay[data-v-535337c7] {
22182
+ .cn-object-list-widget__drop-overlay[data-v-aeadc210] {
21898
22183
  position: absolute;
21899
22184
  inset: 0;
21900
22185
  z-index: 2;
@@ -21912,7 +22197,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21912
22197
  and the drop would land on nothing. */
21913
22198
  pointer-events: none;
21914
22199
  }
21915
- .cn-object-list-widget__table[data-v-535337c7] {
22200
+ .cn-object-list-widget__table[data-v-aeadc210] {
21916
22201
  flex: 1 1 auto;
21917
22202
  min-height: 0;
21918
22203
  overflow: hidden;
@@ -21921,16 +22206,16 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21921
22206
  /* The empty state is CnWidgetEmptyState now — it brings its own layout, so
21922
22207
  all this rule still owns is letting it claim the cell's leftover height
21923
22208
  (ADR-062: it fits the cell, it never forces one). */
21924
- .cn-object-list-widget__empty[data-v-535337c7] {
22209
+ .cn-object-list-widget__empty[data-v-aeadc210] {
21925
22210
  flex: 1 1 auto;
21926
22211
  min-height: 0;
21927
22212
  }
21928
22213
 
21929
22214
  /* The pager sits flush at the bottom of the card, above "View all". */
21930
- .cn-object-list-widget__pager[data-v-535337c7] {
22215
+ .cn-object-list-widget__pager[data-v-aeadc210] {
21931
22216
  flex-shrink: 0;
21932
22217
  }
21933
- .cn-object-list-widget__view-all[data-v-535337c7] {
22218
+ .cn-object-list-widget__view-all[data-v-aeadc210] {
21934
22219
  align-self: flex-start;
21935
22220
  background: none;
21936
22221
  border: none;
@@ -21941,21 +22226,26 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21941
22226
  padding: 4px;
21942
22227
  text-decoration: none;
21943
22228
  }
21944
- .cn-object-list-widget__view-all[data-v-535337c7]:hover,
21945
- .cn-object-list-widget__view-all[data-v-535337c7]:focus-visible {
22229
+ .cn-object-list-widget__view-all[data-v-aeadc210]:hover,
22230
+ .cn-object-list-widget__view-all[data-v-aeadc210]:focus-visible {
21946
22231
  text-decoration: underline;
21947
22232
  }
21948
- .cn-object-list-widget__more[data-v-535337c7] {
22233
+ .cn-object-list-widget__more[data-v-aeadc210] {
21949
22234
  color: var(--color-text-maxcontrast);
21950
22235
  font-size: 0.85em;
21951
22236
  margin: 4px 0 0;
21952
22237
  padding: 4px;
21953
22238
  }
22239
+ .cn-object-list-widget__footnote[data-v-aeadc210] {
22240
+ color: var(--color-text-maxcontrast);
22241
+ font-size: 13px;
22242
+ margin: 8px 0 0;
22243
+ }
21954
22244
 
21955
22245
  /* Footer Add — same pattern as the integration leaves' footer action
21956
22246
  ("Open in Calendar"): full-width, centered, divider-topped, pinned to
21957
22247
  the card bottom. */
21958
- .cn-object-list-widget__add[data-v-535337c7] {
22248
+ .cn-object-list-widget__add[data-v-aeadc210] {
21959
22249
  align-self: stretch;
21960
22250
  border-top: 1px solid var(--color-border);
21961
22251
  /* Bleed through the host card's 16px content padding so the divider
@@ -21963,31 +22253,31 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21963
22253
  margin: auto -16px -16px;
21964
22254
  padding: 4px;
21965
22255
  }
21966
- .cn-object-list-widget__error[data-v-535337c7] {
22256
+ .cn-object-list-widget__error[data-v-aeadc210] {
21967
22257
  color: var(--color-text-maxcontrast);
21968
22258
  font-size: 0.85em;
21969
22259
  margin: 4px 0 0;
21970
22260
  }
21971
- .cn-object-list-widget__prompt[data-v-535337c7] {
22261
+ .cn-object-list-widget__prompt[data-v-aeadc210] {
21972
22262
  color: var(--color-text-maxcontrast);
21973
22263
  font-style: italic;
21974
22264
  padding: 16px 4px;
21975
22265
  margin: 0;
21976
22266
  text-align: center;
21977
22267
  }
21978
- .cn-object-list-widget__facet[data-v-535337c7] {
22268
+ .cn-object-list-widget__facet[data-v-aeadc210] {
21979
22269
  display: flex;
21980
22270
  align-items: center;
21981
22271
  flex-wrap: wrap;
21982
22272
  gap: 6px;
21983
22273
  padding: 0 4px 8px;
21984
22274
  }
21985
- .cn-object-list-widget__facet-label[data-v-535337c7] {
22275
+ .cn-object-list-widget__facet-label[data-v-aeadc210] {
21986
22276
  color: var(--color-text-maxcontrast);
21987
22277
  font-size: 0.85em;
21988
22278
  font-weight: 600;
21989
22279
  }
21990
- .cn-object-list-widget__facet-chip[data-v-535337c7] {
22280
+ .cn-object-list-widget__facet-chip[data-v-aeadc210] {
21991
22281
  background-color: var(--color-background-hover);
21992
22282
  border: 1px solid var(--color-border);
21993
22283
  border-radius: var(--border-radius-pill, 16px);
@@ -21997,13 +22287,13 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21997
22287
  font-size: 0.85em;
21998
22288
  padding: 2px 10px;
21999
22289
  }
22000
- .cn-object-list-widget__facet-chip--active[data-v-535337c7] {
22290
+ .cn-object-list-widget__facet-chip--active[data-v-aeadc210] {
22001
22291
  background-color: var(--color-primary-element-light);
22002
22292
  border-color: var(--color-primary-element);
22003
22293
  color: var(--color-primary-element-text, var(--color-main-text));
22004
22294
  }
22005
- .cn-object-list-widget__facet-clear[data-v-535337c7],
22006
- .cn-object-list-widget__bulk-clear[data-v-535337c7] {
22295
+ .cn-object-list-widget__facet-clear[data-v-aeadc210],
22296
+ .cn-object-list-widget__bulk-clear[data-v-aeadc210] {
22007
22297
  background: none;
22008
22298
  border: none;
22009
22299
  color: var(--color-primary-element);
@@ -22012,11 +22302,11 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22012
22302
  font-size: 0.85em;
22013
22303
  padding: 2px 4px;
22014
22304
  }
22015
- .cn-object-list-widget__facet-clear[data-v-535337c7]:hover,
22016
- .cn-object-list-widget__bulk-clear[data-v-535337c7]:hover {
22305
+ .cn-object-list-widget__facet-clear[data-v-aeadc210]:hover,
22306
+ .cn-object-list-widget__bulk-clear[data-v-aeadc210]:hover {
22017
22307
  text-decoration: underline;
22018
22308
  }
22019
- .cn-object-list-widget__bulk-bar[data-v-535337c7] {
22309
+ .cn-object-list-widget__bulk-bar[data-v-aeadc210] {
22020
22310
  align-items: center;
22021
22311
  background-color: var(--color-primary-element-light);
22022
22312
  border-radius: var(--border-radius, 8px);
@@ -22026,10 +22316,10 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22026
22316
  margin: 0 0 8px;
22027
22317
  padding: 6px 10px;
22028
22318
  }
22029
- .cn-object-list-widget__bulk-count[data-v-535337c7] {
22319
+ .cn-object-list-widget__bulk-count[data-v-aeadc210] {
22030
22320
  font-weight: 600;
22031
22321
  }
22032
- .cn-object-list-widget__bulk-action[data-v-535337c7] {
22322
+ .cn-object-list-widget__bulk-action[data-v-aeadc210] {
22033
22323
  background-color: var(--color-main-background);
22034
22324
  border: 1px solid var(--color-border);
22035
22325
  border-radius: var(--border-radius, 8px);
@@ -22037,25 +22327,25 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22037
22327
  font: inherit;
22038
22328
  padding: 4px 10px;
22039
22329
  }
22040
- .cn-object-list-widget__bulk-action--destructive[data-v-535337c7] {
22330
+ .cn-object-list-widget__bulk-action--destructive[data-v-aeadc210] {
22041
22331
  border-color: var(--color-error);
22042
22332
  color: var(--color-error);
22043
22333
  }
22044
- .cn-object-list-widget__groups[data-v-535337c7] {
22334
+ .cn-object-list-widget__groups[data-v-aeadc210] {
22045
22335
  display: flex;
22046
22336
  flex-direction: column;
22047
22337
  gap: 16px;
22048
22338
  min-height: 0;
22049
22339
  overflow: auto;
22050
22340
  }
22051
- .cn-object-list-widget__group-heading[data-v-535337c7] {
22341
+ .cn-object-list-widget__group-heading[data-v-aeadc210] {
22052
22342
  color: var(--color-text-maxcontrast);
22053
22343
  font-size: 0.85em;
22054
22344
  font-weight: 600;
22055
22345
  margin: 0 0 4px;
22056
22346
  text-transform: uppercase;
22057
22347
  }
22058
- .cn-object-list-widget__upload[data-v-535337c7] {
22348
+ .cn-object-list-widget__upload[data-v-aeadc210] {
22059
22349
  background-color: var(--color-main-background);
22060
22350
  border: 1px solid var(--color-border);
22061
22351
  border-radius: var(--border-radius, 8px);
@@ -22064,7 +22354,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22064
22354
  margin: 8px 0 0;
22065
22355
  padding: 6px 12px;
22066
22356
  }
22067
- .cn-object-list-widget__upload-input[data-v-535337c7] {
22357
+ .cn-object-list-widget__upload-input[data-v-aeadc210] {
22068
22358
  display: none;
22069
22359
  }
22070
22360
 
@@ -25078,6 +25368,56 @@ to { background-position: -200% 0;
25078
25368
  }
25079
25369
 
25080
25370
 
25371
+ .cn-exports-widget__list[data-v-1a295cca] {
25372
+ display: flex;
25373
+ flex-direction: column;
25374
+ margin: 0;
25375
+ padding: 0;
25376
+ list-style: none;
25377
+ }
25378
+ .cn-exports-widget__row[data-v-1a295cca] {
25379
+ display: flex;
25380
+ align-items: center;
25381
+ gap: 12px;
25382
+ padding: 10px 0;
25383
+ }
25384
+ .cn-exports-widget__row + .cn-exports-widget__row[data-v-1a295cca] {
25385
+ border-top: 1px solid var(--color-border);
25386
+ }
25387
+ .cn-exports-widget__text[data-v-1a295cca] {
25388
+ display: flex;
25389
+ flex: 1;
25390
+ flex-direction: column;
25391
+ gap: 2px;
25392
+ min-width: 0;
25393
+ }
25394
+ .cn-exports-widget__name[data-v-1a295cca] {
25395
+ overflow: hidden;
25396
+ font-size: 14px;
25397
+ font-weight: 600;
25398
+ text-overflow: ellipsis;
25399
+ white-space: nowrap;
25400
+ }
25401
+ .cn-exports-widget__meta[data-v-1a295cca],
25402
+ .cn-exports-widget__muted[data-v-1a295cca] {
25403
+ color: var(--color-text-maxcontrast);
25404
+ font-size: 13px;
25405
+ }
25406
+ .cn-exports-widget__muted[data-v-1a295cca] {
25407
+ margin: 0;
25408
+ }
25409
+ .cn-exports-widget__tag[data-v-1a295cca] {
25410
+ flex: none;
25411
+ padding: 3px 10px;
25412
+ border-radius: 12px;
25413
+ background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 18%, transparent));
25414
+ color: var(--color-warning-text, var(--color-main-text));
25415
+ font-size: 13px;
25416
+ font-weight: 600;
25417
+ white-space: nowrap;
25418
+ }
25419
+
25420
+
25081
25421
  .cn-segmented-control[data-v-128aa2ef] {
25082
25422
  display: inline-flex;
25083
25423
  gap: 4px;
@@ -25454,6 +25794,45 @@ to { background-position: -200% 0;
25454
25794
  }
25455
25795
 
25456
25796
 
25797
+ .cn-saved-view-alert[data-v-4439a3f3] {
25798
+ display: flex;
25799
+ flex-direction: column;
25800
+ gap: 12px;
25801
+ font-size: 14px;
25802
+ }
25803
+ .cn-saved-view-alert__facts[data-v-4439a3f3] {
25804
+ display: grid;
25805
+ grid-template-columns: max-content 1fr;
25806
+ gap: 6px 16px;
25807
+ margin: 0;
25808
+ }
25809
+ .cn-saved-view-alert__facts dt[data-v-4439a3f3] {
25810
+ color: var(--color-text-maxcontrast);
25811
+ }
25812
+ .cn-saved-view-alert__facts dd[data-v-4439a3f3] {
25813
+ margin: 0;
25814
+ font-weight: 500;
25815
+ }
25816
+ .cn-saved-view-alert__switch-text[data-v-4439a3f3] {
25817
+ display: flex;
25818
+ flex-direction: column;
25819
+ gap: 2px;
25820
+ }
25821
+ .cn-saved-view-alert__hint[data-v-4439a3f3],
25822
+ .cn-saved-view-alert__empty[data-v-4439a3f3] {
25823
+ color: var(--color-text-maxcontrast);
25824
+ font-size: 13px;
25825
+ }
25826
+ .cn-saved-view-alert__empty[data-v-4439a3f3],
25827
+ .cn-saved-view-alert__error[data-v-4439a3f3] {
25828
+ margin: 0;
25829
+ }
25830
+ .cn-saved-view-alert__error[data-v-4439a3f3] {
25831
+ color: var(--color-error-text, var(--color-error));
25832
+ font-size: 13px;
25833
+ }
25834
+
25835
+
25457
25836
  .cn-text-widget[data-v-f00a6820] {
25458
25837
  width: 100%;
25459
25838
  height: 100%;
@@ -26160,16 +26539,16 @@ button.cn-stepper__step[data-v-776581d4] {
26160
26539
  }
26161
26540
 
26162
26541
 
26163
- .cn-widget-object-table[data-v-d8f8d15a] {
26542
+ .cn-widget-object-table[data-v-dfdcad2a] {
26164
26543
  width: 100%;
26165
26544
  }
26166
- .cn-widget-object-table__footer[data-v-d8f8d15a] {
26545
+ .cn-widget-object-table__footer[data-v-dfdcad2a] {
26167
26546
  display: flex;
26168
26547
  gap: 4px;
26169
26548
  padding: 4px 8px;
26170
26549
  border-top: 1px solid var(--color-border);
26171
26550
  }
26172
- .cn-widget-object-table__error[data-v-d8f8d15a] {
26551
+ .cn-widget-object-table__error[data-v-dfdcad2a] {
26173
26552
  color: var(--color-text-error, var(--color-error-text));
26174
26553
  font-size: 0.85em;
26175
26554
  margin: 4px 8px 0;
@@ -28441,14 +28820,14 @@ button.cn-stepper__step[data-v-776581d4] {
28441
28820
  }
28442
28821
 
28443
28822
 
28444
- .cn-menu-widget[data-v-2a4e786e] {
28823
+ .cn-menu-widget[data-v-2edac2f0] {
28445
28824
  width: 100%;
28446
28825
  height: 100%;
28447
28826
  padding: 4px;
28448
28827
  color: var(--color-main-text);
28449
28828
  font-size: 14px;
28450
28829
  }
28451
- .cn-menu-widget__empty[data-v-2a4e786e] {
28830
+ .cn-menu-widget__empty[data-v-2edac2f0] {
28452
28831
  display: flex;
28453
28832
  align-items: center;
28454
28833
  gap: 8px;
@@ -28458,13 +28837,13 @@ button.cn-stepper__step[data-v-776581d4] {
28458
28837
  border: 1px dashed var(--color-border);
28459
28838
  border-radius: var(--border-radius);
28460
28839
  }
28461
- .cn-menu-widget__empty--clickable[data-v-2a4e786e] {
28840
+ .cn-menu-widget__empty--clickable[data-v-2edac2f0] {
28462
28841
  cursor: pointer;
28463
28842
  }
28464
- .cn-menu-widget__empty-icon[data-v-2a4e786e] {
28843
+ .cn-menu-widget__empty-icon[data-v-2edac2f0] {
28465
28844
  font-size: 18px;
28466
28845
  }
28467
- .cn-menu-widget__bar[data-v-2a4e786e] {
28846
+ .cn-menu-widget__bar[data-v-2edac2f0] {
28468
28847
  display: flex;
28469
28848
  flex-direction: row;
28470
28849
  gap: 4px;
@@ -28472,17 +28851,17 @@ button.cn-stepper__step[data-v-776581d4] {
28472
28851
  padding: 0;
28473
28852
  list-style: none;
28474
28853
  }
28475
- .cn-menu-widget__bar--vertical[data-v-2a4e786e] {
28854
+ .cn-menu-widget__bar--vertical[data-v-2edac2f0] {
28476
28855
  flex-direction: column;
28477
28856
  }
28478
- .cn-menu-widget__bar-item[data-v-2a4e786e] {
28857
+ .cn-menu-widget__bar-item[data-v-2edac2f0] {
28479
28858
  position: relative;
28480
28859
  list-style: none;
28481
28860
  }
28482
- .cn-menu-widget__bar-button[data-v-2a4e786e],
28483
- .cn-menu-widget__dropdown-item[data-v-2a4e786e],
28484
- .cn-menu-widget__mega-group-title[data-v-2a4e786e],
28485
- .cn-menu-widget__mega-leaf[data-v-2a4e786e] {
28861
+ .cn-menu-widget__bar-button[data-v-2edac2f0],
28862
+ .cn-menu-widget__dropdown-item[data-v-2edac2f0],
28863
+ .cn-menu-widget__mega-group-title[data-v-2edac2f0],
28864
+ .cn-menu-widget__mega-leaf[data-v-2edac2f0] {
28486
28865
  display: inline-flex;
28487
28866
  align-items: center;
28488
28867
  gap: 6px;
@@ -28498,35 +28877,35 @@ button.cn-stepper__step[data-v-776581d4] {
28498
28877
  box-sizing: border-box;
28499
28878
  width: 100%;
28500
28879
  }
28501
- .cn-menu-widget__mega-group-title[data-v-2a4e786e] {
28880
+ .cn-menu-widget__mega-group-title[data-v-2edac2f0] {
28502
28881
  font-weight: 600;
28503
28882
  }
28504
- .cn-menu-widget__bar-button[data-v-2a4e786e]:hover,
28505
- .cn-menu-widget__dropdown-item[data-v-2a4e786e]:hover,
28506
- .cn-menu-widget__mega-group-title[data-v-2a4e786e]:hover,
28507
- .cn-menu-widget__mega-leaf[data-v-2a4e786e]:hover {
28883
+ .cn-menu-widget__bar-button[data-v-2edac2f0]:hover,
28884
+ .cn-menu-widget__dropdown-item[data-v-2edac2f0]:hover,
28885
+ .cn-menu-widget__mega-group-title[data-v-2edac2f0]:hover,
28886
+ .cn-menu-widget__mega-leaf[data-v-2edac2f0]:hover {
28508
28887
  background: var(--color-background-hover);
28509
28888
  }
28510
- .cn-menu-widget__bar-button[data-v-2a4e786e]:focus-visible,
28511
- .cn-menu-widget__dropdown-item[data-v-2a4e786e]:focus-visible {
28889
+ .cn-menu-widget__bar-button[data-v-2edac2f0]:focus-visible,
28890
+ .cn-menu-widget__dropdown-item[data-v-2edac2f0]:focus-visible {
28512
28891
  outline: 2px solid var(--color-primary);
28513
28892
  outline-offset: 2px;
28514
28893
  }
28515
- .cn-menu-widget__icon[data-v-2a4e786e] {
28894
+ .cn-menu-widget__icon[data-v-2edac2f0] {
28516
28895
  display: inline-flex;
28517
28896
  align-items: center;
28518
28897
  justify-content: center;
28519
28898
  width: 20px;
28520
28899
  height: 20px;
28521
28900
  }
28522
- .cn-menu-widget__icon--hidden[data-v-2a4e786e] {
28901
+ .cn-menu-widget__icon--hidden[data-v-2edac2f0] {
28523
28902
  visibility: hidden;
28524
28903
  }
28525
- .cn-menu-widget__caret[data-v-2a4e786e] {
28904
+ .cn-menu-widget__caret[data-v-2edac2f0] {
28526
28905
  margin-left: auto;
28527
28906
  font-size: 10px;
28528
28907
  }
28529
- .cn-menu-widget__dropdown[data-v-2a4e786e] {
28908
+ .cn-menu-widget__dropdown[data-v-2edac2f0] {
28530
28909
  position: absolute;
28531
28910
  top: 100%;
28532
28911
  left: 0;
@@ -28540,10 +28919,10 @@ button.cn-stepper__step[data-v-776581d4] {
28540
28919
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
28541
28920
  list-style: none;
28542
28921
  }
28543
- .cn-menu-widget__dropdown-item-wrap[data-v-2a4e786e] {
28922
+ .cn-menu-widget__dropdown-item-wrap[data-v-2edac2f0] {
28544
28923
  position: relative;
28545
28924
  }
28546
- .cn-menu-widget__flyout[data-v-2a4e786e] {
28925
+ .cn-menu-widget__flyout[data-v-2edac2f0] {
28547
28926
  position: absolute;
28548
28927
  top: 0;
28549
28928
  left: 100%;
@@ -28556,7 +28935,7 @@ button.cn-stepper__step[data-v-776581d4] {
28556
28935
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
28557
28936
  list-style: none;
28558
28937
  }
28559
- .cn-menu-widget__mega-panel[data-v-2a4e786e] {
28938
+ .cn-menu-widget__mega-panel[data-v-2edac2f0] {
28560
28939
  margin-top: 4px;
28561
28940
  padding: 12px;
28562
28941
  display: grid;
@@ -28566,35 +28945,35 @@ button.cn-stepper__step[data-v-776581d4] {
28566
28945
  border: 1px solid var(--color-border);
28567
28946
  border-radius: var(--border-radius);
28568
28947
  }
28569
- .cn-menu-widget__mega-leaves[data-v-2a4e786e] {
28948
+ .cn-menu-widget__mega-leaves[data-v-2edac2f0] {
28570
28949
  margin: 4px 0 0;
28571
28950
  padding: 0;
28572
28951
  list-style: none;
28573
28952
  }
28574
- .cn-menu-widget__tree[data-v-2a4e786e] {
28953
+ .cn-menu-widget__tree[data-v-2edac2f0] {
28575
28954
  margin: 0;
28576
28955
  padding: 0;
28577
28956
  list-style: none;
28578
28957
  }
28579
28958
 
28580
28959
  /* Active-item highlight variants. */
28581
- .cn-menu-widget--highlight-underline .cn-menu-widget__item--active[data-v-2a4e786e] {
28960
+ .cn-menu-widget--highlight-underline .cn-menu-widget__item--active[data-v-2edac2f0] {
28582
28961
  border-bottom: 3px solid var(--color-primary);
28583
28962
  }
28584
- .cn-menu-widget--highlight-underline .cn-menu-widget__item--in-path[data-v-2a4e786e] {
28963
+ .cn-menu-widget--highlight-underline .cn-menu-widget__item--in-path[data-v-2edac2f0] {
28585
28964
  border-bottom: 2px solid var(--color-primary);
28586
28965
  opacity: 0.85;
28587
28966
  }
28588
- .cn-menu-widget--highlight-background .cn-menu-widget__item--active[data-v-2a4e786e],
28589
- .cn-menu-widget--highlight-background .cn-menu-widget__item--in-path[data-v-2a4e786e] {
28967
+ .cn-menu-widget--highlight-background .cn-menu-widget__item--active[data-v-2edac2f0],
28968
+ .cn-menu-widget--highlight-background .cn-menu-widget__item--in-path[data-v-2edac2f0] {
28590
28969
  background: var(--color-primary-element-light, rgba(0, 112, 192, 0.1));
28591
28970
  color: var(--color-primary);
28592
28971
  }
28593
- .cn-menu-widget--highlight-left-bar .cn-menu-widget__item--active[data-v-2a4e786e] {
28972
+ .cn-menu-widget--highlight-left-bar .cn-menu-widget__item--active[data-v-2edac2f0] {
28594
28973
  border-left: 5px solid var(--color-primary);
28595
28974
  padding-left: 6px;
28596
28975
  }
28597
- .cn-menu-widget--highlight-left-bar .cn-menu-widget__item--in-path[data-v-2a4e786e] {
28976
+ .cn-menu-widget--highlight-left-bar .cn-menu-widget__item--in-path[data-v-2edac2f0] {
28598
28977
  border-left: 4px solid var(--color-primary);
28599
28978
  padding-left: 7px;
28600
28979
  opacity: 0.85;
@@ -30906,6 +31285,85 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30906
31285
  }
30907
31286
 
30908
31287
 
31288
+ .cn-grouped-cards__grid[data-v-cf2cd50a] {
31289
+ display: grid;
31290
+ grid-template-columns: repeat(var(--cn-grouped-cards-columns, 2), minmax(0, 1fr));
31291
+ gap: 16px;
31292
+ }
31293
+ @media (max-width: 700px) {
31294
+ .cn-grouped-cards__grid[data-v-cf2cd50a] {
31295
+ grid-template-columns: minmax(0, 1fr);
31296
+ }
31297
+ }
31298
+ .cn-grouped-cards__group[data-v-cf2cd50a] {
31299
+ display: flex;
31300
+ flex-direction: column;
31301
+ gap: 8px;
31302
+ padding: 12px 14px 14px;
31303
+ border-radius: var(--border-radius-large, 10px);
31304
+ background: var(--color-background-hover);
31305
+ }
31306
+ .cn-grouped-cards__group--extra[data-v-cf2cd50a] {
31307
+ background: transparent;
31308
+ border: 1px dashed var(--color-border-dark);
31309
+ }
31310
+ .cn-grouped-cards__group-header[data-v-cf2cd50a] {
31311
+ display: flex;
31312
+ align-items: center;
31313
+ justify-content: space-between;
31314
+ gap: 8px;
31315
+ }
31316
+ .cn-grouped-cards__group-title[data-v-cf2cd50a] {
31317
+ margin: 0;
31318
+ font-size: 15px;
31319
+ font-weight: 600;
31320
+ color: var(--color-main-text);
31321
+ }
31322
+ .cn-grouped-cards__count[data-v-cf2cd50a] {
31323
+ padding: 2px 8px;
31324
+ border-radius: var(--border-radius-pill, 12px);
31325
+ background: var(--color-main-background);
31326
+ color: var(--color-text-maxcontrast);
31327
+ font-size: 12px;
31328
+ font-weight: 600;
31329
+ white-space: nowrap;
31330
+ }
31331
+ .cn-grouped-cards__items[data-v-cf2cd50a] {
31332
+ display: flex;
31333
+ flex-direction: column;
31334
+ gap: 8px;
31335
+ margin: 0;
31336
+ padding: 0;
31337
+ list-style: none;
31338
+ }
31339
+ .cn-grouped-cards__item[data-v-cf2cd50a] {
31340
+ display: flex;
31341
+ flex-direction: column;
31342
+ gap: 2px;
31343
+ padding: 10px 12px;
31344
+ border: 1px solid var(--color-border);
31345
+ border-radius: var(--border-radius-large, 8px);
31346
+ background: var(--color-main-background);
31347
+ }
31348
+ .cn-grouped-cards__item-title[data-v-cf2cd50a] {
31349
+ font-weight: 600;
31350
+ color: var(--color-main-text);
31351
+ }
31352
+ .cn-grouped-cards__item-meta[data-v-cf2cd50a],
31353
+ .cn-grouped-cards__extra-text[data-v-cf2cd50a],
31354
+ .cn-grouped-cards__group-empty[data-v-cf2cd50a],
31355
+ .cn-grouped-cards__state[data-v-cf2cd50a] {
31356
+ margin: 0;
31357
+ color: var(--color-text-maxcontrast);
31358
+ font-size: 13px;
31359
+ }
31360
+ .cn-grouped-cards__loading[data-v-cf2cd50a] {
31361
+ display: flex;
31362
+ justify-content: center;
31363
+ padding: 8px 0;
31364
+ }
31365
+
31366
+
30909
31367
  .cn-checklist-run__form[data-v-56cee1aa] {
30910
31368
  display: flex;
30911
31369
  flex-direction: column;
@@ -36891,26 +37349,26 @@ to {
36891
37349
  text-decoration: underline;
36892
37350
  }
36893
37351
  @charset "UTF-8";
36894
- .cn-choice-cards[data-v-8d2b4ff4] {
37352
+ .cn-choice-cards[data-v-22c5fe42] {
36895
37353
  border: none;
36896
37354
  padding: 0;
36897
37355
  margin: 0;
36898
37356
  min-inline-size: 0;
36899
37357
  }
36900
37358
 
36901
- .cn-choice-cards__legend[data-v-8d2b4ff4] {
37359
+ .cn-choice-cards__legend[data-v-22c5fe42] {
36902
37360
  padding: 0;
36903
37361
  margin-block-end: 8px;
36904
37362
  font-weight: bold;
36905
37363
  }
36906
37364
 
36907
- .cn-choice-cards__loading[data-v-8d2b4ff4] {
37365
+ .cn-choice-cards__loading[data-v-22c5fe42] {
36908
37366
  display: flex;
36909
37367
  justify-content: center;
36910
37368
  padding: 24px 0;
36911
37369
  }
36912
37370
 
36913
- .cn-choice-cards__grid[data-v-8d2b4ff4] {
37371
+ .cn-choice-cards__grid[data-v-22c5fe42] {
36914
37372
  display: grid;
36915
37373
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
36916
37374
  gap: 12px;
@@ -36922,26 +37380,26 @@ to {
36922
37380
  padding: 12px;
36923
37381
  }
36924
37382
 
36925
- .cn-choice-cards__cell[data-v-8d2b4ff4] {
37383
+ .cn-choice-cards__cell[data-v-22c5fe42] {
36926
37384
  display: flex;
36927
37385
  flex-direction: column;
36928
37386
  gap: 8px;
36929
37387
  min-inline-size: 0;
36930
37388
  }
36931
37389
 
36932
- .cn-choice-cards__actions[data-v-8d2b4ff4] {
37390
+ .cn-choice-cards__actions[data-v-22c5fe42] {
36933
37391
  display: flex;
36934
37392
  flex-direction: column;
36935
37393
  gap: 4px;
36936
37394
  }
36937
37395
 
36938
- .cn-choice-cards__option[data-v-8d2b4ff4] {
37396
+ .cn-choice-cards__option[data-v-22c5fe42] {
36939
37397
  position: relative;
36940
37398
  display: block;
36941
37399
  cursor: pointer;
36942
37400
  }
36943
37401
 
36944
- .cn-choice-cards__input[data-v-8d2b4ff4] {
37402
+ .cn-choice-cards__input[data-v-22c5fe42] {
36945
37403
  position: absolute;
36946
37404
  inset-block-start: 16px;
36947
37405
  inset-inline-end: 14px;
@@ -36951,7 +37409,7 @@ to {
36951
37409
  }
36952
37410
 
36953
37411
  /* Room for the input, so a long title never runs underneath it. */
36954
- .cn-choice-cards__option[data-v-8d2b4ff4] .cn-card {
37412
+ .cn-choice-cards__option[data-v-22c5fe42] .cn-card {
36955
37413
  padding-inline-end: 44px;
36956
37414
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
36957
37415
  }
@@ -36962,99 +37420,144 @@ to {
36962
37420
  touches a card, and the grid twitches. The border colour below already
36963
37421
  carries hover, so the scale is dropped: at (0,3,0) this beats the global
36964
37422
  `.cn-card:hover` at (0,2,0). */
36965
- .cn-choice-cards__option[data-v-8d2b4ff4]:hover .cn-card {
37423
+ .cn-choice-cards__option[data-v-22c5fe42]:hover .cn-card {
36966
37424
  border-color: var(--color-primary-element);
36967
37425
  transform: none;
36968
37426
  }
36969
37427
 
36970
37428
  /* 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 {
37429
+ .cn-choice-cards__input[data-v-22c5fe42]:focus-visible + .cn-card {
36972
37430
  outline: 2px solid var(--color-primary-element);
36973
37431
  outline-offset: 2px;
36974
37432
  }
36975
37433
 
36976
- .cn-choice-cards__input[data-v-8d2b4ff4]:disabled {
37434
+ .cn-choice-cards__input[data-v-22c5fe42]:disabled {
36977
37435
  cursor: default;
36978
37436
  }
36979
37437
 
36980
- .cn-choice-cards__input[data-v-8d2b4ff4]:disabled + .cn-card {
37438
+ .cn-choice-cards__option--disabled .cn-choice-cards__input[data-v-22c5fe42] + .cn-card {
36981
37439
  opacity: 0.6;
36982
37440
  }
36983
37441
 
36984
- .cn-choice-cards__rows[data-v-8d2b4ff4] {
37442
+ .cn-choice-cards__rows[data-v-22c5fe42] {
36985
37443
  display: flex;
36986
37444
  flex-direction: column;
36987
37445
  gap: 8px;
36988
37446
  }
36989
37447
 
36990
- .cn-choice-cards__row[data-v-8d2b4ff4] {
37448
+ /* 12px 14px, as the boards draw an option row (DqVolgendeStap, DqBesluit). */
37449
+ .cn-choice-cards__row[data-v-22c5fe42] {
36991
37450
  display: flex;
36992
37451
  align-items: flex-start;
36993
37452
  gap: 12px;
36994
- padding: 14px 16px;
37453
+ padding: 12px 14px;
36995
37454
  border: 1px solid var(--color-border);
36996
37455
  border-radius: var(--border-radius-large, 8px);
36997
37456
  background: var(--color-main-background);
36998
37457
  cursor: pointer;
36999
37458
  }
37000
37459
 
37001
- .cn-choice-cards__row[data-v-8d2b4ff4]:hover {
37460
+ .cn-choice-cards__row[data-v-22c5fe42]:hover {
37002
37461
  border-color: var(--color-border-dark);
37003
37462
  }
37004
37463
 
37005
- .cn-choice-cards__row--selected[data-v-8d2b4ff4],
37006
- .cn-choice-cards__row--selected[data-v-8d2b4ff4]:hover {
37464
+ .cn-choice-cards__row--selected[data-v-22c5fe42],
37465
+ .cn-choice-cards__row--selected[data-v-22c5fe42]:hover {
37007
37466
  border-color: var(--color-primary-element);
37008
37467
  /* The second pixel of the 2px selected border, without moving the content. */
37009
37468
  box-shadow: inset 0 0 0 1px var(--color-primary-element);
37010
37469
  background: var(--color-primary-element-light);
37011
37470
  }
37012
37471
 
37013
- .cn-choice-cards__row--disabled[data-v-8d2b4ff4] {
37472
+ /* An option this record does not allow: the grey ground and the muted ink,
37473
+ still legible (DqVolgendeStap), not faded. */
37474
+ .cn-choice-cards__row--disabled[data-v-22c5fe42],
37475
+ .cn-choice-cards__row--disabled[data-v-22c5fe42]:hover {
37476
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
37477
+ border-color: var(--color-border);
37478
+ background: var(--color-background-hover);
37479
+ color: var(--color-text-maxcontrast);
37480
+ cursor: default;
37481
+ }
37482
+
37483
+ /* The title takes the muted ink itself: a theme that colours every label
37484
+ with `!important` (thematiq) would otherwise hand it the label colour. */
37485
+ .cn-choice-cards__row--disabled .cn-choice-cards__row-title[data-v-22c5fe42] {
37486
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
37487
+ color: var(--color-text-maxcontrast);
37488
+ }
37489
+
37490
+ /* The chosen option's fields share the selected row's frame: the cell draws
37491
+ the 2px primary border and the ground, the row inside it draws none, and
37492
+ the fields sit under the text, indented to it (DqVolgendeStap). */
37493
+ .cn-choice-cards__cell--with-details[data-v-22c5fe42] {
37494
+ border: 1px solid var(--color-primary-element);
37495
+ border-radius: var(--border-radius-large, 8px);
37496
+ box-shadow: inset 0 0 0 1px var(--color-primary-element);
37497
+ background: var(--color-primary-element-light);
37498
+ }
37499
+
37500
+ .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-22c5fe42],
37501
+ .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-22c5fe42]:hover {
37502
+ border-color: transparent;
37503
+ box-shadow: none;
37504
+ background: transparent;
37505
+ }
37506
+
37507
+ .cn-choice-cards__details[data-v-22c5fe42] {
37508
+ display: flex;
37509
+ flex-direction: column;
37510
+ gap: 14px;
37511
+ padding: 0 14px 14px 44px;
37512
+ }
37513
+
37514
+ .cn-choice-cards__row--readonly[data-v-22c5fe42] {
37014
37515
  cursor: default;
37015
- opacity: 0.6;
37016
37516
  }
37017
37517
 
37018
- .cn-choice-cards__row[data-v-8d2b4ff4]:has(.cn-choice-cards__row-input:focus-visible) {
37518
+ .cn-choice-cards__row--readonly[data-v-22c5fe42]:not(.cn-choice-cards__row--selected):hover {
37519
+ border-color: var(--color-border);
37520
+ }
37521
+
37522
+ .cn-choice-cards__row[data-v-22c5fe42]:has(.cn-choice-cards__row-input:focus-visible) {
37019
37523
  outline: 2px solid var(--color-primary-element);
37020
37524
  outline-offset: 2px;
37021
37525
  }
37022
37526
 
37023
- .cn-choice-cards__row-input[data-v-8d2b4ff4] {
37527
+ .cn-choice-cards__row-input[data-v-22c5fe42] {
37024
37528
  flex: none;
37025
37529
  margin: 2px 0 0;
37026
37530
  accent-color: var(--color-primary-element);
37027
37531
  cursor: inherit;
37028
37532
  }
37029
37533
 
37030
- .cn-choice-cards__row-icon[data-v-8d2b4ff4] {
37534
+ .cn-choice-cards__row-icon[data-v-22c5fe42] {
37031
37535
  flex: none;
37032
37536
  }
37033
37537
 
37034
- .cn-choice-cards__row-text[data-v-8d2b4ff4] {
37538
+ .cn-choice-cards__row-text[data-v-22c5fe42] {
37035
37539
  display: flex;
37036
37540
  flex-direction: column;
37037
37541
  gap: 2px;
37038
37542
  min-width: 0;
37039
37543
  }
37040
37544
 
37041
- .cn-choice-cards__row-title[data-v-8d2b4ff4] {
37545
+ .cn-choice-cards__row-title[data-v-22c5fe42] {
37042
37546
  font-size: 15px;
37043
37547
  font-weight: 600;
37044
37548
  }
37045
37549
 
37046
- .cn-choice-cards__row-description[data-v-8d2b4ff4] {
37550
+ /* Regular weight on the span itself: a theme that sets every label bold
37551
+ with `!important` (thematiq) reaches a span that only inherits. */
37552
+ .cn-choice-cards__row-description[data-v-22c5fe42],
37553
+ .cn-choice-cards__reason[data-v-22c5fe42] {
37554
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
37047
37555
  font-size: 13px;
37556
+ font-weight: 400;
37048
37557
  color: var(--color-text-maxcontrast);
37049
37558
  }
37050
37559
 
37051
- .cn-choice-cards__reason[data-v-8d2b4ff4] {
37052
- font-size: 13px;
37053
- color: var(--color-text-maxcontrast);
37054
- font-style: italic;
37055
- }
37056
-
37057
- .cn-choice-cards__reason--card[data-v-8d2b4ff4] {
37560
+ .cn-choice-cards__reason--card[data-v-22c5fe42] {
37058
37561
  display: block;
37059
37562
  margin-block-start: 4px;
37060
37563
  }
@@ -37069,28 +37572,28 @@ to {
37069
37572
  }
37070
37573
 
37071
37574
 
37072
- .cn-setup-step[data-v-32874a44] {
37575
+ .cn-setup-step[data-v-44988d3d] {
37073
37576
  display: flex;
37074
37577
  flex-direction: column;
37075
37578
  gap: 12px;
37076
37579
  }
37077
- .cn-setup-step__intro[data-v-32874a44] {
37580
+ .cn-setup-step__intro[data-v-44988d3d] {
37078
37581
  margin: 0;
37079
37582
  font-size: 15px;
37080
37583
  line-height: 1.5;
37081
37584
  }
37082
- .cn-setup-step__note[data-v-32874a44] {
37585
+ .cn-setup-step__note[data-v-44988d3d] {
37083
37586
  margin: 0;
37084
37587
  font-size: 13px;
37085
37588
  color: var(--color-text-maxcontrast);
37086
37589
  }
37087
- .cn-setup-step__nav[data-v-32874a44] {
37590
+ .cn-setup-step__nav[data-v-44988d3d] {
37088
37591
  display: flex;
37089
37592
  justify-content: flex-end;
37090
37593
  gap: 8px;
37091
37594
  margin-top: 8px;
37092
37595
  }
37093
- .cn-setup-step__running[data-v-32874a44] {
37596
+ .cn-setup-step__running[data-v-44988d3d] {
37094
37597
  display: flex;
37095
37598
  align-items: center;
37096
37599
  justify-content: center;
@@ -37098,43 +37601,43 @@ to {
37098
37601
  padding: 24px 0;
37099
37602
  color: var(--color-text-maxcontrast);
37100
37603
  }
37101
- .cn-setup-load-result[data-v-32874a44] {
37604
+ .cn-setup-load-result[data-v-44988d3d] {
37102
37605
  margin: 0;
37103
37606
  font-size: var(--font-size-small, 13px);
37104
37607
  }
37105
- .cn-setup-load-result--success[data-v-32874a44] {
37608
+ .cn-setup-load-result--success[data-v-44988d3d] {
37106
37609
  color: var(--color-success-text, var(--color-success));
37107
37610
  }
37108
- .cn-setup-load-result--error[data-v-32874a44] {
37611
+ .cn-setup-load-result--error[data-v-44988d3d] {
37109
37612
  color: var(--color-error-text, var(--color-error));
37110
37613
  }
37111
- .cn-setup-field[data-v-32874a44] {
37614
+ .cn-setup-field[data-v-44988d3d] {
37112
37615
  display: flex;
37113
37616
  flex-direction: column;
37114
37617
  }
37115
- .cn-setup-summary[data-v-32874a44] {
37618
+ .cn-setup-summary[data-v-44988d3d] {
37116
37619
  list-style: none;
37117
37620
  padding: 0;
37118
37621
  margin: 0;
37119
37622
  }
37120
- .cn-setup-summary__item[data-v-32874a44] {
37623
+ .cn-setup-summary__item[data-v-44988d3d] {
37121
37624
  display: flex;
37122
37625
  align-items: center;
37123
37626
  gap: 8px;
37124
37627
  padding: 4px 0;
37125
37628
  color: var(--color-text-maxcontrast);
37126
37629
  }
37127
- .cn-setup-summary__item--done[data-v-32874a44] {
37630
+ .cn-setup-summary__item--done[data-v-44988d3d] {
37128
37631
  color: var(--color-main-text);
37129
37632
  }
37130
- .cn-setup-summary__mark[data-v-32874a44] {
37633
+ .cn-setup-summary__mark[data-v-44988d3d] {
37131
37634
  font-weight: bold;
37132
37635
  color: var(--color-success);
37133
37636
  }
37134
- .cn-setup-summary__label[data-v-32874a44] {
37637
+ .cn-setup-summary__label[data-v-44988d3d] {
37135
37638
  flex: 0 0 auto;
37136
37639
  }
37137
- .cn-setup-summary__value[data-v-32874a44] {
37640
+ .cn-setup-summary__value[data-v-44988d3d] {
37138
37641
  margin-inline-start: auto;
37139
37642
  font-weight: 600;
37140
37643
  color: var(--color-main-text);
@@ -37142,7 +37645,7 @@ to {
37142
37645
 
37143
37646
  /* An on-demand step that did not run says so quietly: it is a choice the
37144
37647
  user did not make, not a failure. */
37145
- .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-32874a44] {
37648
+ .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-44988d3d] {
37146
37649
  font-weight: normal;
37147
37650
  color: var(--color-text-maxcontrast);
37148
37651
  }
@@ -37798,16 +38301,16 @@ to {
37798
38301
  }
37799
38302
 
37800
38303
 
37801
- .cn-ordered-list-field[data-v-3ab313d4] {
38304
+ .cn-ordered-list-field[data-v-ca9d4198] {
37802
38305
  display: flex;
37803
38306
  flex-direction: column;
37804
38307
  gap: 10px;
37805
38308
  }
37806
- .cn-ordered-list-field__label[data-v-3ab313d4] {
38309
+ .cn-ordered-list-field__label[data-v-ca9d4198] {
37807
38310
  margin: 0;
37808
38311
  font-weight: 600;
37809
38312
  }
37810
- .cn-ordered-list-field__rows[data-v-3ab313d4] {
38313
+ .cn-ordered-list-field__rows[data-v-ca9d4198] {
37811
38314
  display: flex;
37812
38315
  flex-direction: column;
37813
38316
  margin: 0;
@@ -37816,34 +38319,66 @@ to {
37816
38319
  border-radius: var(--border-radius-element, 8px);
37817
38320
  list-style: none;
37818
38321
  }
37819
- .cn-ordered-list-field__row[data-v-3ab313d4] {
38322
+ .cn-ordered-list-field__row[data-v-ca9d4198] {
37820
38323
  display: flex;
37821
38324
  align-items: center;
37822
38325
  gap: 10px;
37823
38326
  min-height: 44px;
37824
38327
  padding: 2px 6px 2px 12px;
37825
38328
  }
37826
- .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-3ab313d4] {
38329
+ .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-ca9d4198] {
37827
38330
  border-top: 1px solid var(--color-border);
37828
38331
  }
37829
- .cn-ordered-list-field__position[data-v-3ab313d4] {
38332
+ .cn-ordered-list-field__row--dragging[data-v-ca9d4198] {
38333
+ opacity: 0.5;
38334
+ }
38335
+
38336
+ /* Where a dragged row will land: a primary line on the row's top edge. */
38337
+ .cn-ordered-list-field__row--over[data-v-ca9d4198] {
38338
+ box-shadow: inset 0 2px 0 var(--color-primary-element);
38339
+ }
38340
+ .cn-ordered-list-field__handle[data-v-ca9d4198] {
38341
+ display: inline-flex;
38342
+ flex: none;
38343
+ align-items: center;
38344
+ justify-content: center;
38345
+ width: 28px;
38346
+ min-width: 28px;
38347
+ height: 34px;
38348
+ min-height: 34px;
38349
+ margin: 0 -6px 0 -8px;
38350
+ padding: 0;
38351
+ border: 0;
38352
+ border-radius: var(--border-radius-element, 8px);
38353
+ background: transparent;
38354
+ color: var(--color-text-maxcontrast);
38355
+ cursor: grab;
38356
+ }
38357
+ .cn-ordered-list-field__handle[data-v-ca9d4198]:active {
38358
+ cursor: grabbing;
38359
+ }
38360
+ .cn-ordered-list-field__handle[data-v-ca9d4198]:focus-visible {
38361
+ outline: 2px solid var(--color-primary-element);
38362
+ outline-offset: 1px;
38363
+ }
38364
+ .cn-ordered-list-field__position[data-v-ca9d4198] {
37830
38365
  flex: none;
37831
38366
  min-width: 18px;
37832
38367
  color: var(--color-text-maxcontrast);
37833
38368
  font-size: 13px;
37834
38369
  font-variant-numeric: tabular-nums;
37835
38370
  }
37836
- .cn-ordered-list-field__text[data-v-3ab313d4] {
38371
+ .cn-ordered-list-field__text[data-v-ca9d4198] {
37837
38372
  flex: 1 1 auto;
37838
38373
  min-width: 0;
37839
38374
  overflow-wrap: anywhere;
37840
38375
  }
37841
- .cn-ordered-list-field__actions[data-v-3ab313d4] {
38376
+ .cn-ordered-list-field__actions[data-v-ca9d4198] {
37842
38377
  display: flex;
37843
38378
  flex: none;
37844
38379
  gap: 2px;
37845
38380
  }
37846
- .cn-ordered-list-field__button[data-v-3ab313d4] {
38381
+ .cn-ordered-list-field__button[data-v-ca9d4198] {
37847
38382
  display: inline-flex;
37848
38383
  align-items: center;
37849
38384
  justify-content: center;
@@ -37859,22 +38394,22 @@ to {
37859
38394
  color: var(--color-main-text);
37860
38395
  cursor: pointer;
37861
38396
  }
37862
- .cn-ordered-list-field__button[data-v-3ab313d4]:hover:not(:disabled) {
38397
+ .cn-ordered-list-field__button[data-v-ca9d4198]:hover:not(:disabled) {
37863
38398
  background: var(--color-background-hover);
37864
38399
  }
37865
- .cn-ordered-list-field__button[data-v-3ab313d4]:focus-visible {
38400
+ .cn-ordered-list-field__button[data-v-ca9d4198]:focus-visible {
37866
38401
  outline: 2px solid var(--color-primary-element);
37867
38402
  outline-offset: 1px;
37868
38403
  }
37869
- .cn-ordered-list-field__button[data-v-3ab313d4]:disabled {
38404
+ .cn-ordered-list-field__button[data-v-ca9d4198]:disabled {
37870
38405
  opacity: 0.4;
37871
38406
  cursor: default;
37872
38407
  }
37873
- .cn-ordered-list-field__empty[data-v-3ab313d4] {
38408
+ .cn-ordered-list-field__empty[data-v-ca9d4198] {
37874
38409
  margin: 0;
37875
38410
  color: var(--color-text-maxcontrast);
37876
38411
  }
37877
- .cn-ordered-list-field__tile[data-v-3ab313d4] {
38412
+ .cn-ordered-list-field__tile[data-v-ca9d4198] {
37878
38413
  display: inline-flex;
37879
38414
  flex: none;
37880
38415
  align-items: center;
@@ -37885,15 +38420,15 @@ to {
37885
38420
  background: var(--color-background-dark);
37886
38421
  color: var(--color-main-text);
37887
38422
  }
37888
- .cn-ordered-list-field__name[data-v-3ab313d4] {
38423
+ .cn-ordered-list-field__name[data-v-ca9d4198] {
37889
38424
  display: block;
37890
38425
  }
37891
- .cn-ordered-list-field__description[data-v-3ab313d4] {
38426
+ .cn-ordered-list-field__description[data-v-ca9d4198] {
37892
38427
  display: block;
37893
38428
  color: var(--color-text-maxcontrast);
37894
38429
  font-size: 13px;
37895
38430
  }
37896
- .cn-ordered-list-field__option[data-v-3ab313d4] {
38431
+ .cn-ordered-list-field__option[data-v-ca9d4198] {
37897
38432
  display: flex;
37898
38433
  align-items: center;
37899
38434
  gap: 10px;
@@ -38833,7 +39368,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38833
39368
  }
38834
39369
 
38835
39370
 
38836
- .cn-quick-filter-bar[data-v-ed2d2a38] {
39371
+ .cn-quick-filter-bar[data-v-2d5e5fa6] {
38837
39372
  display: flex;
38838
39373
  flex-wrap: wrap;
38839
39374
  align-items: center;
@@ -38842,7 +39377,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38842
39377
  border-bottom: 1px solid var(--color-border);
38843
39378
  background: var(--color-main-background);
38844
39379
  }
38845
- .cn-quick-filter-bar__tabs[data-v-ed2d2a38] {
39380
+ .cn-quick-filter-bar__tabs[data-v-2d5e5fa6] {
38846
39381
  display: flex;
38847
39382
  flex-wrap: wrap;
38848
39383
  align-items: center;
@@ -38852,7 +39387,35 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38852
39387
  /* Inline variant — bare strip for embedding inside another bar (e.g. the
38853
39388
  CnActionsBar #filters slot), so it reads as a control beside the view toggle
38854
39389
  rather than a separate bordered row. */
38855
- .cn-quick-filter-bar--inline[data-v-ed2d2a38] {
39390
+ /* With `fit`: one line, as wide as it is given; the chips it cannot hold
39391
+ are in the overflow chip. The measuring copy takes no room and is never
39392
+ seen or read. */
39393
+ .cn-quick-filter-bar--fit[data-v-2d5e5fa6] {
39394
+ position: relative;
39395
+ flex-wrap: nowrap;
39396
+ min-width: 0;
39397
+ }
39398
+ .cn-quick-filter-bar--fit .cn-quick-filter-bar__tabs[data-v-2d5e5fa6] {
39399
+ flex-wrap: nowrap;
39400
+ min-width: 0;
39401
+ }
39402
+ .cn-quick-filter-bar__measure[data-v-2d5e5fa6] {
39403
+ position: absolute;
39404
+ inset-block-start: 0;
39405
+ inset-inline-start: 0;
39406
+ display: flex;
39407
+ gap: 8px;
39408
+ width: 0;
39409
+ height: 0;
39410
+ overflow: hidden;
39411
+ visibility: hidden;
39412
+ pointer-events: none;
39413
+ white-space: nowrap;
39414
+ }
39415
+ .cn-quick-filter-bar__measure[data-v-2d5e5fa6] > * {
39416
+ flex: none;
39417
+ }
39418
+ .cn-quick-filter-bar--inline[data-v-2d5e5fa6] {
38856
39419
  padding: 0;
38857
39420
  border-bottom: none;
38858
39421
  background: transparent;
@@ -38860,13 +39423,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38860
39423
 
38861
39424
  /* Dropdown variant — give the NcSelect a sensible minimum so multi-select
38862
39425
  chips have room without stretching the whole bar. */
38863
- .cn-quick-filter-bar--dropdown[data-v-ed2d2a38] {
39426
+ .cn-quick-filter-bar--dropdown[data-v-2d5e5fa6] {
38864
39427
  align-items: center;
38865
39428
  }
38866
- .cn-quick-filter-bar__select[data-v-ed2d2a38] {
39429
+ .cn-quick-filter-bar__select[data-v-2d5e5fa6] {
38867
39430
  min-width: 220px;
38868
39431
  }
38869
- .cn-quick-filter-bar__tab[data-v-ed2d2a38] {
39432
+ .cn-quick-filter-bar__tab[data-v-2d5e5fa6] {
38870
39433
  display: inline-flex;
38871
39434
  align-items: center;
38872
39435
  gap: 6px;
@@ -38880,20 +39443,20 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38880
39443
  cursor: pointer;
38881
39444
  transition: background-color 120ms, color 120ms, border-color 120ms;
38882
39445
  }
38883
- .cn-quick-filter-bar__tab[data-v-ed2d2a38]:hover,
38884
- .cn-quick-filter-bar__tab[data-v-ed2d2a38]:focus-visible {
39446
+ .cn-quick-filter-bar__tab[data-v-2d5e5fa6]:hover,
39447
+ .cn-quick-filter-bar__tab[data-v-2d5e5fa6]:focus-visible {
38885
39448
  background: var(--color-background-hover);
38886
39449
  outline: none;
38887
39450
  }
38888
- .cn-quick-filter-bar__tab--active[data-v-ed2d2a38] {
39451
+ .cn-quick-filter-bar__tab--active[data-v-2d5e5fa6] {
38889
39452
  background: var(--color-primary-element, var(--color-primary, #4376fc));
38890
39453
  color: var(--color-primary-element-text, #fff);
38891
39454
  border-color: var(--color-primary-element, var(--color-primary, #4376fc));
38892
39455
  }
38893
- .cn-quick-filter-bar__icon[data-v-ed2d2a38] {
39456
+ .cn-quick-filter-bar__icon[data-v-2d5e5fa6] {
38894
39457
  display: inline-flex;
38895
39458
  }
38896
- .cn-quick-filter-bar__label[data-v-ed2d2a38] {
39459
+ .cn-quick-filter-bar__label[data-v-2d5e5fa6] {
38897
39460
  line-height: 1;
38898
39461
  }
38899
39462
 
@@ -38901,7 +39464,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38901
39464
  (primary) fill as well as on the resting one. The count's text starts with
38902
39465
  a space: the chip is a flex row, so the space is not drawn, but it keeps a
38903
39466
  screen reader from reading label and count as one word. */
38904
- .cn-quick-filter-bar__count[data-v-ed2d2a38] {
39467
+ .cn-quick-filter-bar__count[data-v-2d5e5fa6] {
38905
39468
  min-width: 1.5em;
38906
39469
  padding: 2px 6px;
38907
39470
  border: 1px solid currentColor;
@@ -38914,26 +39477,26 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38914
39477
 
38915
39478
  /* NcPopover wraps its trigger in a plain `<div class="v-popper">`, which as a
38916
39479
  block would drop the chip onto its own line under the strip. */
38917
- .cn-quick-filter-bar[data-v-ed2d2a38] > .v-popper {
39480
+ .cn-quick-filter-bar[data-v-2d5e5fa6] > .v-popper {
38918
39481
  display: inline-flex;
38919
39482
  }
38920
39483
 
38921
39484
  /* The `⋯` glyph is the chip's whole content while no hidden lens is on, so the
38922
39485
  pill tightens to a circle rather than sitting as a wide empty capsule. */
38923
- .cn-quick-filter-bar__more[data-v-ed2d2a38] {
39486
+ .cn-quick-filter-bar__more[data-v-2d5e5fa6] {
38924
39487
  gap: 4px;
38925
39488
  }
38926
- .cn-quick-filter-bar__more--icon-only[data-v-ed2d2a38] {
39489
+ .cn-quick-filter-bar__more--icon-only[data-v-2d5e5fa6] {
38927
39490
  padding: 4px 8px;
38928
39491
  }
38929
- .cn-quick-filter-bar__more[aria-expanded='true'][data-v-ed2d2a38] {
39492
+ .cn-quick-filter-bar__more[aria-expanded='true'][data-v-2d5e5fa6] {
38930
39493
  border-color: var(--color-primary-element, var(--color-primary, #4376fc));
38931
39494
  }
38932
- .cn-quick-filter-bar__more-panel[data-v-ed2d2a38] {
39495
+ .cn-quick-filter-bar__more-panel[data-v-2d5e5fa6] {
38933
39496
  padding: 10px 12px 12px;
38934
39497
  max-width: 280px;
38935
39498
  }
38936
- .cn-quick-filter-bar__more-heading[data-v-ed2d2a38] {
39499
+ .cn-quick-filter-bar__more-heading[data-v-2d5e5fa6] {
38937
39500
  margin: 0 0 8px;
38938
39501
  font-size: 12px;
38939
39502
  font-weight: 600;
@@ -38942,17 +39505,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
38942
39505
 
38943
39506
  /* The hidden lenses stay chips — the panel is more of the strip, not a
38944
39507
  different control that happens to hold the same filters. */
38945
- .cn-quick-filter-bar__more-list[data-v-ed2d2a38] {
39508
+ .cn-quick-filter-bar__more-list[data-v-2d5e5fa6] {
38946
39509
  display: flex;
38947
39510
  flex-wrap: wrap;
38948
39511
  gap: 8px;
38949
39512
  max-height: 320px;
38950
39513
  overflow-y: auto;
38951
39514
  }
38952
- .cn-quick-filter-bar__more-item[data-v-ed2d2a38] {
39515
+ .cn-quick-filter-bar__more-item[data-v-2d5e5fa6] {
38953
39516
  max-width: 100%;
38954
39517
  }
38955
- .cn-quick-filter-bar__more-item .cn-quick-filter-bar__label[data-v-ed2d2a38] {
39518
+ .cn-quick-filter-bar__more-item .cn-quick-filter-bar__label[data-v-2d5e5fa6] {
38956
39519
  overflow: hidden;
38957
39520
  text-overflow: ellipsis;
38958
39521
  white-space: nowrap;
@@ -40422,7 +40985,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40422
40985
  }
40423
40986
 
40424
40987
 
40425
- .cn-dashboard-page[data-v-40c6b068] {
40988
+ .cn-dashboard-page[data-v-35fed42f] {
40426
40989
  padding: 20px;
40427
40990
  max-width: 1800px;
40428
40991
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -40436,7 +40999,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40436
40999
  overflow-y: auto;
40437
41000
  box-sizing: border-box;
40438
41001
  }
40439
- .cn-dashboard-page__header[data-v-40c6b068] {
41002
+ .cn-dashboard-page__header[data-v-35fed42f] {
40440
41003
  display: flex;
40441
41004
  justify-content: space-between;
40442
41005
  align-items: flex-start;
@@ -40448,21 +41011,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40448
41011
  room. Only the HEADER shifts right — body widgets keep full width. */
40449
41012
  padding-inline-start: 56px;
40450
41013
  }
40451
- .cn-dashboard-page__header-left[data-v-40c6b068] {
41014
+ .cn-dashboard-page__header-left[data-v-35fed42f] {
40452
41015
  min-width: 0;
40453
41016
  }
40454
- .cn-dashboard-page__title-row[data-v-40c6b068] {
41017
+ .cn-dashboard-page__title-row[data-v-35fed42f] {
40455
41018
  display: flex;
40456
41019
  align-items: center;
40457
41020
  flex-wrap: wrap;
40458
41021
  gap: 12px;
40459
41022
  }
40460
- .cn-dashboard-page__title[data-v-40c6b068] {
41023
+ .cn-dashboard-page__title[data-v-35fed42f] {
40461
41024
  margin: 0;
40462
41025
  font-size: 20px;
40463
41026
  font-weight: 700;
40464
41027
  }
40465
- .cn-dashboard-page__description[data-v-40c6b068] {
41028
+ .cn-dashboard-page__description[data-v-35fed42f] {
40466
41029
  margin: 4px 0 0;
40467
41030
  font-size: 14px;
40468
41031
  color: var(--color-text-maxcontrast);
@@ -40470,19 +41033,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40470
41033
 
40471
41034
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
40472
41035
  under it, and 40px buttons with a 10px gap. */
40473
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-40c6b068] {
41036
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-35fed42f] {
40474
41037
  font-size: 28px;
40475
41038
  font-weight: 700;
40476
41039
  line-height: 1.2;
40477
41040
  }
40478
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-40c6b068] {
41041
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-35fed42f] {
40479
41042
  margin: 6px 0 0;
40480
41043
  font-size: 15px;
40481
41044
  }
40482
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-40c6b068] {
41045
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-35fed42f] {
40483
41046
  gap: 10px;
40484
41047
  }
40485
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-40c6b068] .button-vue {
41048
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-35fed42f] .button-vue {
40486
41049
  min-height: var(--cn-board-control-height, 40px);
40487
41050
  height: var(--cn-board-control-height, 40px);
40488
41051
  }
@@ -40490,17 +41053,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40490
41053
  /* The switch row under the header (screens-dashboard-greeting-header): the
40491
41054
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
40492
41055
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
40493
- .cn-dashboard-page__switch-row[data-v-40c6b068] {
41056
+ .cn-dashboard-page__switch-row[data-v-35fed42f] {
40494
41057
  display: flex;
40495
41058
  flex-wrap: wrap;
40496
41059
  align-items: center;
40497
41060
  gap: 10px;
40498
41061
  margin-bottom: var(--cn-board-section-gap, 20px);
40499
41062
  }
40500
- .cn-dashboard-page__switch-row-spacer[data-v-40c6b068] {
41063
+ .cn-dashboard-page__switch-row-spacer[data-v-35fed42f] {
40501
41064
  flex: 1 1 auto;
40502
41065
  }
40503
- .cn-dashboard-page__view-link[data-v-40c6b068] {
41066
+ .cn-dashboard-page__view-link[data-v-35fed42f] {
40504
41067
  display: inline-flex;
40505
41068
  align-items: center;
40506
41069
  gap: 6px;
@@ -40514,37 +41077,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40514
41077
  white-space: nowrap;
40515
41078
  text-decoration: none !important;
40516
41079
  }
40517
- .cn-dashboard-page__view-link[data-v-40c6b068]:hover {
41080
+ .cn-dashboard-page__view-link[data-v-35fed42f]:hover {
40518
41081
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
40519
41082
  }
40520
- .cn-dashboard-page__view-link[data-v-40c6b068]:focus-visible {
41083
+ .cn-dashboard-page__view-link[data-v-35fed42f]:focus-visible {
40521
41084
  outline: 2px solid var(--color-main-text);
40522
41085
  outline-offset: 2px;
40523
41086
  }
40524
- .cn-dashboard-page__view-link-icon[data-v-40c6b068] {
41087
+ .cn-dashboard-page__view-link-icon[data-v-35fed42f] {
40525
41088
  display: inline-flex;
40526
41089
  }
40527
41090
 
40528
41091
  /* 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] {
41092
+ .cn-dashboard-page__date-range--segmented[data-v-35fed42f] {
40530
41093
  margin-bottom: 16px;
40531
41094
  }
40532
41095
 
40533
41096
  /* The period group at the end of the description line. */
40534
- .cn-dashboard-page__description--with-period[data-v-40c6b068] {
41097
+ .cn-dashboard-page__description--with-period[data-v-35fed42f] {
40535
41098
  align-items: center;
40536
41099
  display: flex;
40537
41100
  flex-wrap: wrap;
40538
41101
  gap: 8px;
40539
41102
  }
40540
- .cn-dashboard-page__date-segmented[data-v-40c6b068] {
41103
+ .cn-dashboard-page__date-segmented[data-v-35fed42f] {
40541
41104
  display: flex;
40542
41105
  align-items: center;
40543
41106
  gap: 8px;
40544
41107
  }
40545
41108
 
40546
41109
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
40547
- .cn-dashboard-page__kpi-row[data-v-40c6b068] {
41110
+ .cn-dashboard-page__kpi-row[data-v-35fed42f] {
40548
41111
  margin-bottom: var(--cn-board-section-gap, 16px);
40549
41112
  }
40550
41113
 
@@ -40552,15 +41115,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40552
41115
  the cards started a margin to the right of the KPI row and the header. The
40553
41116
  grid reaches out by that margin, so the card edges line up with the page's
40554
41117
  (dashboard-grid-flush). */
40555
- .cn-dashboard-page--board[data-v-40c6b068] .cn-dashboard-grid {
41118
+ .cn-dashboard-page--board[data-v-35fed42f] .cn-dashboard-grid {
40556
41119
  width: auto;
40557
41120
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
40558
41121
  }
40559
- .cn-dashboard-page__kpi-cell[data-v-40c6b068] {
41122
+ .cn-dashboard-page__kpi-cell[data-v-35fed42f] {
40560
41123
  display: flex;
40561
41124
  min-width: 0;
40562
41125
  }
40563
- .cn-dashboard-page__kpi-cell[data-v-40c6b068] > * {
41126
+ .cn-dashboard-page__kpi-cell[data-v-35fed42f] > * {
40564
41127
  flex: 1 1 auto;
40565
41128
  min-width: 0;
40566
41129
  }
@@ -40573,7 +41136,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40573
41136
  scoped chip rules then silently don't match and the chip collapses into
40574
41137
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
40575
41138
  data-testid is stable across chunks, so those rules match regardless. */
40576
- .cn-dashboard-page__header-actions[data-v-40c6b068] {
41139
+ .cn-dashboard-page__header-actions[data-v-35fed42f] {
40577
41140
  display: flex;
40578
41141
  align-items: center;
40579
41142
  gap: 8px;
@@ -40589,19 +41152,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40589
41152
 
40590
41153
  /* Date-range header band. Kept compact so it doesn't open a tall gap
40591
41154
  above the grid; the pills variant is a single tidy toggle row. */
40592
- .cn-dashboard-page__date-range[data-v-40c6b068] {
41155
+ .cn-dashboard-page__date-range[data-v-35fed42f] {
40593
41156
  margin-bottom: 12px;
40594
41157
  }
40595
- .cn-dashboard-page__date-range--pills[data-v-40c6b068] {
41158
+ .cn-dashboard-page__date-range--pills[data-v-35fed42f] {
40596
41159
  margin-bottom: 8px;
40597
41160
  }
40598
- .cn-dashboard-page__date-pills[data-v-40c6b068] {
41161
+ .cn-dashboard-page__date-pills[data-v-35fed42f] {
40599
41162
  display: flex;
40600
41163
  align-items: center;
40601
41164
  flex-wrap: wrap;
40602
41165
  gap: 6px;
40603
41166
  }
40604
- .cn-dashboard-page__date-pill[data-v-40c6b068] {
41167
+ .cn-dashboard-page__date-pill[data-v-35fed42f] {
40605
41168
  display: inline-flex;
40606
41169
  align-items: center;
40607
41170
  padding: 5px 14px;
@@ -40616,77 +41179,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40616
41179
  cursor: pointer;
40617
41180
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
40618
41181
  }
40619
- .cn-dashboard-page__date-pill[data-v-40c6b068]:hover {
41182
+ .cn-dashboard-page__date-pill[data-v-35fed42f]:hover {
40620
41183
  background: var(--color-background-hover);
40621
41184
  }
40622
- .cn-dashboard-page__date-pill[data-v-40c6b068]:focus-visible {
41185
+ .cn-dashboard-page__date-pill[data-v-35fed42f]:focus-visible {
40623
41186
  outline: 2px solid var(--color-primary-element);
40624
41187
  outline-offset: 2px;
40625
41188
  }
40626
- .cn-dashboard-page__date-pill--active[data-v-40c6b068] {
41189
+ .cn-dashboard-page__date-pill--active[data-v-35fed42f] {
40627
41190
  background: var(--color-primary-element);
40628
41191
  border-color: var(--color-primary-element);
40629
41192
  color: var(--color-primary-element-text);
40630
41193
  }
40631
- .cn-dashboard-page__date-pill--active[data-v-40c6b068]:hover {
41194
+ .cn-dashboard-page__date-pill--active[data-v-35fed42f]:hover {
40632
41195
  background: var(--color-primary-element-hover, var(--color-primary-element));
40633
41196
  }
40634
41197
 
40635
41198
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
40636
41199
  so it reads as an escape hatch rather than a primary option. */
40637
- .cn-dashboard-page__date-pill--custom[data-v-40c6b068] {
41200
+ .cn-dashboard-page__date-pill--custom[data-v-35fed42f] {
40638
41201
  border-style: dashed;
40639
41202
  color: var(--color-text-maxcontrast);
40640
41203
  }
40641
- .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .action-item__menutoggle {
41204
+ .cn-dashboard-page__date-pill-custom[data-v-35fed42f] .action-item__menutoggle {
40642
41205
  min-width: 0;
40643
41206
  min-height: 0;
40644
41207
  padding: 0;
40645
41208
  background: transparent;
40646
41209
  border: none;
40647
41210
  }
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 {
41211
+ .cn-dashboard-page__date-pill-custom[data-v-35fed42f] .button-vue,
41212
+ .cn-dashboard-page__date-pill-custom[data-v-35fed42f] .button-vue__wrapper,
41213
+ .cn-dashboard-page__date-pill-custom[data-v-35fed42f] .button-vue__icon {
40651
41214
  width: auto !important;
40652
41215
  min-width: 0 !important;
40653
41216
  overflow: visible !important;
40654
41217
  }
40655
- .cn-dashboard-page__empty[data-v-40c6b068] {
41218
+ .cn-dashboard-page__empty[data-v-35fed42f] {
40656
41219
  padding: 60px 20px;
40657
41220
  }
40658
41221
 
40659
41222
  /* The page's view switch on a page without a header row: at the end of its
40660
41223
  own row, above the grids, where the header would have put it. */
40661
- .cn-dashboard-page__view-switch[data-v-40c6b068] {
41224
+ .cn-dashboard-page__view-switch[data-v-35fed42f] {
40662
41225
  display: flex;
40663
41226
  justify-content: flex-end;
40664
41227
  margin-bottom: 12px;
40665
41228
  }
40666
41229
 
40667
41230
  /* A view the switch shows with nothing to draw. */
40668
- .cn-page-view-region--empty[data-v-40c6b068] {
41231
+ .cn-page-view-region--empty[data-v-35fed42f] {
40669
41232
  padding: 40px 20px;
40670
41233
  }
40671
- .cn-dashboard-page__page-filters[data-v-40c6b068] {
41234
+ .cn-dashboard-page__page-filters[data-v-35fed42f] {
40672
41235
  display: flex;
40673
41236
  flex-wrap: wrap;
40674
41237
  gap: 16px;
40675
41238
  align-items: flex-end;
40676
41239
  margin-bottom: 12px;
40677
41240
  }
40678
- .cn-dashboard-page__page-filter[data-v-40c6b068] {
41241
+ .cn-dashboard-page__page-filter[data-v-35fed42f] {
40679
41242
  display: flex;
40680
41243
  flex-direction: column;
40681
41244
  gap: 4px;
40682
41245
  min-width: 200px;
40683
41246
  }
40684
- .cn-dashboard-page__page-filter-label[data-v-40c6b068] {
41247
+ .cn-dashboard-page__page-filter-label[data-v-35fed42f] {
40685
41248
  font-size: 0.85em;
40686
41249
  font-weight: 600;
40687
41250
  color: var(--color-text-maxcontrast);
40688
41251
  }
40689
- .cn-dashboard-page__widget-edit[data-v-40c6b068] {
41252
+ .cn-dashboard-page__widget-edit[data-v-35fed42f] {
40690
41253
  position: absolute;
40691
41254
  top: 4px;
40692
41255
  inset-inline-end: 4px;
@@ -40705,8 +41268,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40705
41268
  and centre the card. */
40706
41269
  /* `safe` centre so an overflowing tile does not spill out of the top, where
40707
41270
  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 {
41271
+ .cn-dashboard-page__card-fit[data-v-35fed42f] .cn-widget-wrapper__content,
41272
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-35fed42f] .cn-widget-wrapper__content {
40710
41273
  overflow: hidden;
40711
41274
  display: flex;
40712
41275
  flex-direction: column;
@@ -40722,7 +41285,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40722
41285
  shows up as a scrollbar the user has to drag to see the whole graph. Same
40723
41286
  shape as the card-fit rule above, minus the padding: chart tiles render
40724
41287
  `flush`, and apexcharts already draws its own margins. */
40725
- .cn-dashboard-page__chart-fit[data-v-40c6b068] .cn-widget-wrapper__content {
41288
+ .cn-dashboard-page__chart-fit[data-v-35fed42f] .cn-widget-wrapper__content {
40726
41289
  overflow: hidden;
40727
41290
  display: flex;
40728
41291
  flex-direction: column;
@@ -40732,13 +41295,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40732
41295
  /* Card content (stat / gauge / delta) must fit the tile width: let the
40733
41296
  widget shrink and its value/label truncate instead of pushing past the
40734
41297
  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 {
41298
+ .cn-dashboard-page__card-fit[data-v-35fed42f] .cn-stat-widget,
41299
+ .cn-dashboard-page__card-fit[data-v-35fed42f] .cn-gauge-widget,
41300
+ .cn-dashboard-page__card-fit[data-v-35fed42f] .cn-delta-widget {
40738
41301
  min-width: 0;
40739
41302
  max-width: 100%;
40740
41303
  }
40741
- .cn-dashboard-page__unknown[data-v-40c6b068] {
41304
+ .cn-dashboard-page__unknown[data-v-35fed42f] {
40742
41305
  display: flex;
40743
41306
  align-items: center;
40744
41307
  justify-content: center;
@@ -40749,31 +41312,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40749
41312
  }
40750
41313
 
40751
41314
  /* widget-ref content items */
40752
- .cn-dashboard-page__content[data-v-40c6b068] {
41315
+ .cn-dashboard-page__content[data-v-35fed42f] {
40753
41316
  display: flex;
40754
41317
  flex-direction: column;
40755
41318
  gap: 16px;
40756
41319
  }
40757
- .cn-dashboard-page__content-item[data-v-40c6b068] {
41320
+ .cn-dashboard-page__content-item[data-v-35fed42f] {
40758
41321
  width: 100%;
40759
41322
  }
40760
41323
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
40761
41324
  are 44px: the widget Actions menu and the KPI tiles. */
40762
41325
  @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 {
41326
+ .cn-dashboard-page--board[data-v-35fed42f] .cn-widget-wrapper__actions .action-item__menutoggle,
41327
+ .cn-dashboard-page--board[data-v-35fed42f] .cn-widget-wrapper__actions .button-vue {
40765
41328
  min-height: 44px;
40766
41329
  }
40767
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-40c6b068] {
41330
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-35fed42f] {
40768
41331
  min-height: 44px;
40769
41332
  }
40770
41333
 
40771
41334
  /* The widget Actions menu shows its icon only, so the card title keeps
40772
41335
  the room; the name stays for assistive tech. */
40773
- .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle {
41336
+ .cn-dashboard-page--board[data-v-35fed42f] .cn-widget-wrapper__actions .action-item__menutoggle {
40774
41337
  min-width: 44px;
40775
41338
  }
40776
- .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
41339
+ .cn-dashboard-page--board[data-v-35fed42f] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
40777
41340
  position: absolute;
40778
41341
  width: 1px;
40779
41342
  height: 1px;
@@ -40785,7 +41348,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40785
41348
 
40786
41349
  /* What a registry widget reports for its card header (`header` event): the
40787
41350
  note beside the link ("3 in total") and one action, as on a detail page. */
40788
- .cn-dashboard-page__widget-count[data-v-40c6b068] {
41351
+ .cn-dashboard-page__widget-count[data-v-35fed42f] {
40789
41352
  align-self: center;
40790
41353
  padding: 1px 8px;
40791
41354
  border-radius: 10px;
@@ -40794,13 +41357,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40794
41357
  font-size: 13px;
40795
41358
  font-weight: 600;
40796
41359
  }
40797
- .cn-dashboard-page__widget-note[data-v-40c6b068] {
41360
+ .cn-dashboard-page__widget-note[data-v-35fed42f] {
40798
41361
  align-self: center;
40799
41362
  color: var(--color-text-maxcontrast);
40800
41363
  font-size: 14px;
40801
41364
  white-space: nowrap;
40802
41365
  }
40803
- .cn-dashboard-page__widget-action[data-v-40c6b068] {
41366
+ .cn-dashboard-page__widget-action[data-v-35fed42f] {
40804
41367
  display: inline-flex;
40805
41368
  align-items: center;
40806
41369
  align-self: center;
@@ -40816,7 +41379,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40816
41379
  white-space: nowrap;
40817
41380
  cursor: pointer;
40818
41381
  }
40819
- .cn-dashboard-page__widget-action[data-v-40c6b068]:focus-visible {
41382
+ .cn-dashboard-page__widget-action[data-v-35fed42f]:focus-visible {
40820
41383
  outline: 2px solid var(--color-primary-element);
40821
41384
  outline-offset: 2px;
40822
41385
  }