@conduction/nextcloud-vue 2.106.0 → 2.107.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 (135) hide show
  1. package/dist/esm/components/CnActionDialog/CnActionDialog.vue.js +9 -0
  2. package/dist/esm/components/CnActionDialog/CnActionDialog.vue.js.map +1 -0
  3. package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js +338 -0
  4. package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js.map +1 -0
  5. package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js +249 -0
  6. package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js.map +1 -0
  7. package/dist/esm/components/CnAdvancedFormDialog/CnPropertiesTab.vue2.js +2 -2
  8. package/dist/esm/components/CnAdvancedFormDialog/CnPropertiesTab.vue2.js.map +1 -1
  9. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  10. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +145 -138
  11. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  12. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +102 -2
  13. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  14. package/dist/esm/components/CnAppRoot/CnAppRoot.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 +83 -6
  17. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +4 -2
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  20. package/dist/esm/components/CnIcon/semanticIcons.js +2 -2
  21. package/dist/esm/components/CnIcon/semanticIcons.js.map +1 -1
  22. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +389 -20
  23. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  24. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +68 -35
  25. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  26. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +22 -2
  27. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  28. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js +69 -5
  29. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
  30. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js +38 -5
  31. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
  32. package/dist/esm/components/CnMapWidget/CnMapWidget.vue.js +1 -1
  33. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js +7 -1
  34. package/dist/esm/components/CnMapWidget/CnMapWidget.vue2.js.map +1 -1
  35. package/dist/esm/components/CnMapWidget/CnMapWidget.vue3.js.map +1 -1
  36. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue.js +8 -0
  37. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue.js.map +1 -0
  38. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue2.js +297 -0
  39. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue2.js.map +1 -0
  40. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue3.js +24 -0
  41. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue3.js.map +1 -0
  42. package/dist/esm/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue.js +9 -0
  43. package/dist/esm/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue.js.map +1 -0
  44. package/dist/esm/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue2.js +95 -0
  45. package/dist/esm/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue2.js.map +1 -0
  46. package/dist/esm/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue3.js +123 -0
  47. package/dist/esm/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue3.js.map +1 -0
  48. package/dist/esm/components/CnSavedViewShareDialog/CnSavedViewShareDialog.vue.js +1 -1
  49. package/dist/esm/components/CnSavedViewShareDialog/CnSavedViewShareDialog.vue2.js +13 -5
  50. package/dist/esm/components/CnSavedViewShareDialog/CnSavedViewShareDialog.vue2.js.map +1 -1
  51. package/dist/esm/components/CnSavedViewShareDialog/CnSavedViewShareDialog.vue3.js +3 -1
  52. package/dist/esm/components/CnSavedViewShareDialog/CnSavedViewShareDialog.vue3.js.map +1 -1
  53. package/dist/esm/components/CnSavedViewShareFields/CnSavedViewShareFields.vue.js +1 -1
  54. package/dist/esm/components/CnSavedViewShareFields/CnSavedViewShareFields.vue2.js +49 -23
  55. package/dist/esm/components/CnSavedViewShareFields/CnSavedViewShareFields.vue2.js.map +1 -1
  56. package/dist/esm/components/CnSavedViewShareFields/CnSavedViewShareFields.vue3.js +74 -27
  57. package/dist/esm/components/CnSavedViewShareFields/CnSavedViewShareFields.vue3.js.map +1 -1
  58. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue.js +0 -1
  59. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue.js.map +1 -1
  60. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue2.js +18 -413
  61. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue2.js.map +1 -1
  62. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js +27 -214
  63. package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js.map +1 -1
  64. package/dist/esm/components/CnSavedViewsPanel/CnSavedViewsPanel.vue.js +9 -0
  65. package/dist/esm/components/CnSavedViewsPanel/CnSavedViewsPanel.vue.js.map +1 -0
  66. package/dist/esm/components/CnSavedViewsPanel/CnSavedViewsPanel.vue2.js +190 -0
  67. package/dist/esm/components/CnSavedViewsPanel/CnSavedViewsPanel.vue2.js.map +1 -0
  68. package/dist/esm/components/CnSavedViewsPanel/CnSavedViewsPanel.vue3.js +270 -0
  69. package/dist/esm/components/CnSavedViewsPanel/CnSavedViewsPanel.vue3.js.map +1 -0
  70. package/dist/esm/index.js +4 -0
  71. package/dist/esm/index.js.map +1 -1
  72. package/dist/esm/l10n/en.json.js +56 -1
  73. package/dist/esm/l10n/en.json.js.map +1 -1
  74. package/dist/esm/l10n/nl.json.js +56 -1
  75. package/dist/esm/l10n/nl.json.js.map +1 -1
  76. package/dist/esm/library-style.js +1 -1
  77. package/dist/esm/mixins/savedViewsList.js +235 -0
  78. package/dist/esm/mixins/savedViewsList.js.map +1 -0
  79. package/dist/esm/nextcloud-vue.css +348 -108
  80. package/dist/esm/utils/actionsDispatcher.js +2 -2
  81. package/dist/esm/utils/actionsDispatcher.js.map +1 -1
  82. package/dist/esm/utils/builtInModals.js +39 -0
  83. package/dist/esm/utils/builtInModals.js.map +1 -0
  84. package/dist/esm/utils/mapMarkerColor.js +121 -0
  85. package/dist/esm/utils/mapMarkerColor.js.map +1 -0
  86. package/dist/esm/utils/mergeManifestDelta.js +4 -0
  87. package/dist/esm/utils/mergeManifestDelta.js.map +1 -1
  88. package/dist/esm/utils/savedViewHelpers.js +59 -7
  89. package/dist/esm/utils/savedViewHelpers.js.map +1 -1
  90. package/dist/esm/utils/savedViewMenu.js +154 -0
  91. package/dist/esm/utils/savedViewMenu.js.map +1 -0
  92. package/dist/esm/utils/searchGroupSharees.js +50 -15
  93. package/dist/esm/utils/searchGroupSharees.js.map +1 -1
  94. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  95. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  96. package/dist/nextcloud-vue.cjs.js +13351 -10855
  97. package/dist/nextcloud-vue.cjs.js.map +2 -2
  98. package/dist/nextcloud-vue.css +348 -108
  99. package/l10n/en.json +56 -1
  100. package/l10n/nl.json +56 -1
  101. package/package.json +1 -1
  102. package/src/components/CnActionDialog/CnActionDialog.vue +545 -0
  103. package/src/components/CnActionDialog/index.js +12 -0
  104. package/src/components/CnAppNav/CnAppNav.vue +17 -0
  105. package/src/components/CnAppRoot/CnAppRoot.vue +102 -2
  106. package/src/components/CnDashboardPage/CnDashboardPage.vue +86 -7
  107. package/src/components/CnIndexPage/CnIndexPage.vue +409 -23
  108. package/src/components/CnIndexPage/useSelfFetchList.js +21 -1
  109. package/src/components/CnIndexSidebar/CnIndexSidebar.md +2 -0
  110. package/src/components/CnIndexSidebar/CnIndexSidebar.vue +91 -1
  111. package/src/components/CnMapWidget/CnMapWidget.vue +16 -1
  112. package/src/components/CnPartyPicker/CnPartyPicker.vue +317 -0
  113. package/src/components/CnPartyPicker/index.js +11 -0
  114. package/src/components/CnSavedViewEditDialog/CnSavedViewEditDialog.vue +192 -0
  115. package/src/components/CnSavedViewEditDialog/index.js +11 -0
  116. package/src/components/CnSavedViewShareDialog/CnSavedViewShareDialog.vue +21 -6
  117. package/src/components/CnSavedViewShareFields/CnSavedViewShareFields.vue +130 -37
  118. package/src/components/CnSavedViewsControl/CnSavedViewsControl.vue +36 -599
  119. package/src/components/CnSavedViewsPanel/CnSavedViewsPanel.vue +459 -0
  120. package/src/components/CnSavedViewsPanel/index.js +11 -0
  121. package/src/components/index.js +4 -0
  122. package/src/css/index-page.css +16 -0
  123. package/src/css/look-board-index.css +5 -3
  124. package/src/css/look-board.css +18 -3
  125. package/src/index.js +4 -0
  126. package/src/mixins/savedViewsList.js +231 -0
  127. package/src/schemas/app-manifest-v2.schema.json +98 -3
  128. package/src/utils/actionsDispatcher.js +2 -2
  129. package/src/utils/builtInModals.js +35 -0
  130. package/src/utils/mapMarkerColor.js +117 -0
  131. package/src/utils/mergeManifestDelta.js +4 -0
  132. package/src/utils/savedViewHelpers.js +58 -6
  133. package/src/utils/savedViewMenu.js +150 -0
  134. package/src/utils/searchGroupSharees.js +49 -14
  135. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -238,6 +238,18 @@
238
238
  padding: 0;
239
239
  }
240
240
 
241
+ /* ---- Button weight ------------------------------------------------------ */
242
+ /* The boards draw a labelled button at 600 (DqZaken "Downloaden", DqZaak's
243
+ header, dialog footers, toolbar and row actions). An NcButton reads its
244
+ weight from --font-weight-element, which Nextcloud sets to 500; the board
245
+ look sets 600 on each button, so every NcButton on a board page draws the
246
+ board's weight without a rule per surface. Breadcrumb buttons keep the
247
+ crumb weight.
248
+ @spec openspec/changes/board-button-weight/specs/board-button-weight/spec.md#requirement-a-board-button-draws-at-600 */
249
+ .cn-look-board .button-vue:not(.cn-look-nextcloud *):not(.vue-crumb *) {
250
+ --font-weight-element: 600;
251
+ }
252
+
241
253
  /* ---- The header button ------------------------------------------------- */
242
254
  .cn-look-board .cn-index-page__header-buttons:not(.cn-look-nextcloud *),
243
255
  .cn-look-board .cn-detail-page__header-actions:not(.cn-look-nextcloud *),
@@ -1151,9 +1163,12 @@
1151
1163
  color: var(--cn-status-badge-ink);
1152
1164
  }
1153
1165
 
1154
- /* Every board pill is 13px at 600 on a 3px 10px pad with a 12px corner
1155
- (DqZaak's header pills, DqZaken's status column). */
1156
- .cn-look-board .cn-status-badge:not(.cn-status-badge--small):not(.cn-look-nextcloud *) {
1166
+ /* Every board tag is 13px at 600 on a 3px 10px pad with a 12px corner, 21px
1167
+ tall (DqZaak's header pills, DqZaken's status column, DqZaaktype's version
1168
+ tag). The boards draw one tag size, so a small badge takes it too: it was
1169
+ a 17.8px full pill at 500.
1170
+ @spec openspec/changes/board-tags-shape/specs/board-tags-shape/spec.md#requirement-a-board-tag-is-a-21px-rounded-rectangle */
1171
+ .cn-look-board .cn-status-badge:not(.cn-look-nextcloud *) {
1157
1172
  padding: 3px 10px;
1158
1173
  border-radius: 12px;
1159
1174
  font-size: 13px;
@@ -3159,14 +3174,16 @@
3159
3174
  line-height: 16px;
3160
3175
  }
3161
3176
 
3162
- /* A status pill: 3px 10px, radius 12, 13px weight 600. The colours stay the
3163
- status colour map's. */
3177
+ /* A status pill: 3px 10px, radius 12, 13px weight 600, 21px tall on a
3178
+ normal line (a 1.4 line made it 24.2). The colours stay the status colour
3179
+ map's.
3180
+ @spec openspec/changes/board-tags-shape/specs/board-tags-shape/spec.md#requirement-a-board-tag-is-a-21px-rounded-rectangle */
3164
3181
  .cn-look-board .cn-table-container--board .cn-data-table .cn-status-badge {
3165
3182
  padding: 3px 10px;
3166
3183
  border-radius: 12px;
3167
3184
  font-size: 13px;
3168
3185
  font-weight: 600;
3169
- line-height: 1.4;
3186
+ line-height: normal;
3170
3187
  }
3171
3188
 
3172
3189
  /* The row menu column holds one 34px button between 16px of padding, so 66px
@@ -6526,6 +6543,22 @@ a.cn-kpi-card--board * {
6526
6543
  font-size: 14px;
6527
6544
  }
6528
6545
 
6546
+ /* The map's count line and the note when a map that plots every row hit its
6547
+ limit. */
6548
+ .cn-index-page__map-count {
6549
+ display: flex;
6550
+ flex-wrap: wrap;
6551
+ align-items: center;
6552
+ gap: 8px 16px;
6553
+ padding: 12px 16px;
6554
+ color: var(--color-text-maxcontrast);
6555
+ font-size: 14px;
6556
+ }
6557
+
6558
+ .cn-index-page__map-cap {
6559
+ color: var(--color-warning-text, var(--color-main-text));
6560
+ }
6561
+
6529
6562
  /* Table view owns both scroll axes. With the page column scrolling instead, the
6530
6563
  table's horizontal scrollbar sat at the bottom of the (taller-than-viewport)
6531
6564
  table, so it only appeared after scrolling down, and the pagination was
@@ -11953,24 +11986,24 @@ svg.leaflet-image-layer.leaflet-interactive path {
11953
11986
  line-height: 30px;
11954
11987
  }
11955
11988
 
11956
- .cn-map-widget[data-v-21c47690] {
11989
+ .cn-map-widget[data-v-3c7d18d6] {
11957
11990
  position: relative;
11958
11991
  width: 100%;
11959
11992
  min-height: 200px;
11960
11993
  }
11961
- .cn-map-widget__leaflet[data-v-21c47690] {
11994
+ .cn-map-widget__leaflet[data-v-3c7d18d6] {
11962
11995
  width: 100%;
11963
11996
  height: 100%;
11964
11997
  /* Leaflet paints its container #ddd, which reads as a white flash before the
11965
11998
  tiles arrive — and a bright one in a dark theme. */
11966
11999
  background: var(--color-background-dark);
11967
12000
  }
11968
- .cn-map-widget__note[data-v-21c47690] {
12001
+ .cn-map-widget__note[data-v-3c7d18d6] {
11969
12002
  margin: 4px 0 0;
11970
12003
  font-size: 13px;
11971
12004
  color: var(--color-text-maxcontrast);
11972
12005
  }
11973
- .cn-map-widget__fallback[data-v-21c47690] {
12006
+ .cn-map-widget__fallback[data-v-3c7d18d6] {
11974
12007
  display: flex;
11975
12008
  align-items: center;
11976
12009
  justify-content: center;
@@ -11978,11 +12011,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
11978
12011
  min-height: 150px;
11979
12012
  color: var(--color-text-maxcontrast);
11980
12013
  }
11981
- .cn-map-widget__error[data-v-21c47690] {
12014
+ .cn-map-widget__error[data-v-3c7d18d6] {
11982
12015
  font-size: 14px;
11983
12016
  margin: 0;
11984
12017
  }
11985
- .cn-map-widget__legend[data-v-21c47690] {
12018
+ .cn-map-widget__legend[data-v-3c7d18d6] {
11986
12019
  position: absolute;
11987
12020
  top: 12px;
11988
12021
  right: 12px;
@@ -11995,7 +12028,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
11995
12028
 
11996
12029
  /* Fullscreen overlay. A CSS-fixed box rather than the Fullscreen API, so it needs
11997
12030
  no permission prompt; the z-index clears the Nextcloud header. */
11998
- .cn-map-widget--fullscreen[data-v-21c47690] {
12031
+ .cn-map-widget--fullscreen[data-v-3c7d18d6] {
11999
12032
  position: fixed;
12000
12033
  top: 0;
12001
12034
  left: 0;
@@ -12008,7 +12041,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
12008
12041
  Leaflet's default white-on-grey buttons.
12009
12042
  ::v-deep is required — Leaflet builds the control DOM via L.DomUtil.create, so
12010
12043
  those nodes never receive this SFC's scoped data-v attribute. */
12011
- .cn-map-widget[data-v-21c47690] .cn-map-widget__control {
12044
+ .cn-map-widget[data-v-3c7d18d6] .cn-map-widget__control {
12012
12045
  display: flex;
12013
12046
  align-items: center;
12014
12047
  justify-content: center;
@@ -12017,8 +12050,8 @@ svg.leaflet-image-layer.leaflet-interactive path {
12017
12050
  color: var(--color-main-text);
12018
12051
  background: var(--color-main-background);
12019
12052
  }
12020
- .cn-map-widget[data-v-21c47690] .cn-map-widget__control:hover,
12021
- .cn-map-widget[data-v-21c47690] .cn-map-widget__control:focus-visible {
12053
+ .cn-map-widget[data-v-3c7d18d6] .cn-map-widget__control:hover,
12054
+ .cn-map-widget[data-v-3c7d18d6] .cn-map-widget__control:focus-visible {
12022
12055
  background: var(--color-background-hover);
12023
12056
  }
12024
12057
 
@@ -12038,6 +12071,14 @@ svg.leaflet-image-layer.leaflet-interactive path {
12038
12071
  font-weight: 700;
12039
12072
  box-sizing: border-box;
12040
12073
  }
12074
+ .cn-map-widget__pin-fill {
12075
+ display: flex;
12076
+ align-items: center;
12077
+ justify-content: center;
12078
+ width: 100%;
12079
+ height: 100%;
12080
+ border-radius: 50%;
12081
+ }
12041
12082
  .cn-map-widget__pin--active {
12042
12083
  background: var(--color-primary-element-light-text);
12043
12084
  }
@@ -40045,6 +40086,91 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40045
40086
  }
40046
40087
 
40047
40088
 
40089
+ .cn-saved-views-panel[data-v-4fb62f2c] {
40090
+ display: flex;
40091
+ flex-direction: column;
40092
+ gap: 8px;
40093
+ }
40094
+ .cn-saved-views-panel__head[data-v-4fb62f2c] {
40095
+ display: flex;
40096
+ flex-direction: column;
40097
+ gap: 4px;
40098
+ }
40099
+ .cn-saved-views-panel__section[data-v-4fb62f2c] {
40100
+ margin: 8px 0 0;
40101
+ font-size: var(--font-size-small, 13px);
40102
+ color: var(--color-text-maxcontrast);
40103
+ }
40104
+ .cn-saved-views-panel__note[data-v-4fb62f2c] {
40105
+ margin: 0;
40106
+ color: var(--color-text-maxcontrast);
40107
+ }
40108
+ .cn-saved-views-panel__labels[data-v-4fb62f2c] {
40109
+ display: flex;
40110
+ flex-wrap: wrap;
40111
+ gap: 4px;
40112
+ }
40113
+ .cn-saved-views-panel__label[data-v-4fb62f2c] {
40114
+ min-height: var(--default-clickable-area);
40115
+ padding: 0 12px;
40116
+ border: 1px solid var(--color-border-dark);
40117
+ border-radius: var(--border-radius-pill);
40118
+ background: var(--color-main-background);
40119
+ color: var(--color-main-text);
40120
+ }
40121
+ .cn-saved-views-panel__label[aria-pressed='true'][data-v-4fb62f2c] {
40122
+ background: var(--color-primary-element-light);
40123
+ color: var(--color-primary-element-light-text);
40124
+ }
40125
+ .cn-saved-views-panel__list[data-v-4fb62f2c] {
40126
+ list-style: none;
40127
+ margin: 0;
40128
+ padding: 0;
40129
+ }
40130
+ .cn-saved-views-panel__row[data-v-4fb62f2c] {
40131
+ display: flex;
40132
+ align-items: center;
40133
+ gap: 4px;
40134
+ border-radius: var(--border-radius-element, var(--border-radius-large));
40135
+ }
40136
+ .cn-saved-views-panel__row--selected[data-v-4fb62f2c] {
40137
+ background: var(--color-primary-element-light);
40138
+ }
40139
+ .cn-saved-views-panel__name[data-v-4fb62f2c] {
40140
+ flex: 1 1 auto;
40141
+ min-width: 0;
40142
+ min-height: var(--default-clickable-area);
40143
+ padding: 0 8px;
40144
+ border: 0;
40145
+ background: transparent;
40146
+ color: var(--color-main-text);
40147
+ text-align: start;
40148
+ overflow: hidden;
40149
+ text-overflow: ellipsis;
40150
+ white-space: nowrap;
40151
+ }
40152
+ .cn-saved-views-panel__name[data-v-4fb62f2c] {
40153
+ display: flex;
40154
+ flex-direction: column;
40155
+ justify-content: center;
40156
+ align-items: flex-start;
40157
+ }
40158
+ .cn-saved-views-panel__name-text[data-v-4fb62f2c],
40159
+ .cn-saved-views-panel__subline[data-v-4fb62f2c] {
40160
+ max-width: 100%;
40161
+ overflow: hidden;
40162
+ text-overflow: ellipsis;
40163
+ }
40164
+ .cn-saved-views-panel__subline[data-v-4fb62f2c] {
40165
+ font-size: var(--font-size-small, 13px);
40166
+ color: var(--color-text-maxcontrast);
40167
+ }
40168
+ .cn-saved-views-panel__name[data-v-4fb62f2c]:focus-visible {
40169
+ outline: 2px solid var(--color-primary-element);
40170
+ outline-offset: -2px;
40171
+ }
40172
+
40173
+
40048
40174
  .cn-date-range-picker[data-v-57616240] {
40049
40175
  display: flex;
40050
40176
  align-items: center;
@@ -40282,6 +40408,33 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40282
40408
  }
40283
40409
 
40284
40410
 
40411
+ .cn-edit-view__intro[data-v-60baacaa],
40412
+ .cn-edit-view__note[data-v-60baacaa] {
40413
+ margin: 0;
40414
+ }
40415
+ .cn-edit-view__note[data-v-60baacaa] {
40416
+ color: var(--color-text-maxcontrast);
40417
+ }
40418
+ .cn-edit-view__criteria[data-v-60baacaa] {
40419
+ display: flex;
40420
+ flex-direction: column;
40421
+ gap: 4px;
40422
+ border: 0;
40423
+ margin: 0;
40424
+ padding: 0;
40425
+ }
40426
+ .cn-edit-view__criteria legend[data-v-60baacaa] {
40427
+ font-weight: bold;
40428
+ margin-bottom: 4px;
40429
+ }
40430
+ .cn-edit-view[data-v-60baacaa] {
40431
+ display: flex;
40432
+ flex-direction: column;
40433
+ gap: 12px;
40434
+ padding-block: 8px;
40435
+ }
40436
+
40437
+
40285
40438
  .cn-view-presentation[data-v-36149399] {
40286
40439
  display: flex;
40287
40440
  flex-direction: column;
@@ -40328,46 +40481,45 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
40328
40481
  }
40329
40482
 
40330
40483
 
40331
- /* NcActionButtonGroup gives every child `flex: 1 1` (equal width) by
40332
- default; override so the name button grows and the delete icon stays
40333
- compact. :deep() is required — these li's belong to NcActionButtonGroup's
40334
- own scope, not this component's. */
40335
- .cn-saved-view-row[data-v-55facfc2] .nc-button-group-content {
40336
- gap: 0;
40337
- }
40338
-
40339
- /* Anchored on the FIRST child, not the last: a row carries one or two buttons
40340
- depending on ownership, so "the last one" is the name button on a row that
40341
- has only that. */
40342
- .cn-saved-view-row[data-v-55facfc2] .nc-button-group-content > li {
40343
- flex: 0 0 auto;
40344
- }
40345
- .cn-saved-view-row[data-v-55facfc2] .nc-button-group-content > li:first-child {
40346
- flex: 1 1 auto;
40347
- }
40348
-
40349
- /* NcActionButtonGroup also centers .action-button content (fine for an
40350
- icon-only toolbar button, wrong for a row with a name) — restore the
40351
- normal left-aligned NcActionButton look for the name button. */
40352
- .cn-saved-view-row[data-v-55facfc2] .nc-button-group-content > li:first-child .action-button {
40353
- justify-content: flex-start;
40354
- }
40355
-
40356
-
40357
- .cn-saved-view-share__modes[data-v-50093771] {
40484
+ .cn-saved-view-share__modes[data-v-1ffd06b8] {
40358
40485
  list-style: none;
40359
40486
  margin: 8px 0 0;
40360
40487
  padding: 0;
40361
40488
  }
40362
- .cn-saved-view-share__mode[data-v-50093771] {
40489
+ .cn-saved-view-share__mode[data-v-1ffd06b8] {
40363
40490
  display: flex;
40364
40491
  align-items: center;
40365
40492
  justify-content: space-between;
40366
- gap: 12px;
40493
+ flex-wrap: wrap;
40494
+ gap: 8px 12px;
40495
+ }
40496
+ .cn-saved-view-share__who[data-v-1ffd06b8] {
40497
+ display: flex;
40498
+ flex-direction: column;
40499
+ flex: 1 1 160px;
40500
+ min-width: 0;
40501
+ }
40502
+ .cn-saved-view-share__kind[data-v-1ffd06b8],
40503
+ .cn-saved-view-share__hint[data-v-1ffd06b8] {
40504
+ margin: 0;
40505
+ font-size: var(--font-size-small, 13px);
40506
+ color: var(--color-text-maxcontrast);
40507
+ }
40508
+ .cn-saved-view-share__rights[data-v-1ffd06b8] {
40509
+ display: flex;
40510
+ gap: 8px;
40511
+ }
40512
+ .cn-saved-view-share__caption[data-v-1ffd06b8] {
40513
+ margin: 8px 0 0;
40514
+ font-size: var(--default-font-size);
40515
+ font-weight: bold;
40367
40516
  }
40368
40517
 
40369
40518
 
40370
- .cn-share-view[data-v-f44dbce0] {
40519
+ .cn-share-view__intro[data-v-346505e6] {
40520
+ margin: 0;
40521
+ }
40522
+ .cn-share-view[data-v-346505e6] {
40371
40523
  display: flex;
40372
40524
  flex-direction: column;
40373
40525
  gap: 12px;
@@ -41312,6 +41464,86 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41312
41464
  }
41313
41465
 
41314
41466
 
41467
+ .cn-action-dialog[data-v-53fea6f0] {
41468
+ display: flex;
41469
+ flex-direction: column;
41470
+ gap: 16px;
41471
+ }
41472
+ .cn-action-dialog__summary[data-v-53fea6f0] {
41473
+ display: flex;
41474
+ align-items: center;
41475
+ gap: 10px;
41476
+ padding: 12px 14px;
41477
+ border: 1px solid var(--color-border);
41478
+ border-radius: var(--border-radius-large, 8px);
41479
+ }
41480
+ .cn-action-dialog__summary-text[data-v-53fea6f0] {
41481
+ display: flex;
41482
+ flex: 1 1 auto;
41483
+ flex-direction: column;
41484
+ min-width: 0;
41485
+ }
41486
+ .cn-action-dialog__badge[data-v-53fea6f0] {
41487
+ padding: 3px 10px;
41488
+ border-radius: 12px;
41489
+ background: var(--color-background-dark);
41490
+ font-size: 13px;
41491
+ font-weight: 600;
41492
+ white-space: nowrap;
41493
+ }
41494
+ .cn-action-dialog__title[data-v-53fea6f0] {
41495
+ margin: 0 0 8px;
41496
+ font-size: 15px;
41497
+ font-weight: 700;
41498
+ }
41499
+ .cn-action-dialog__facts[data-v-53fea6f0] {
41500
+ display: grid;
41501
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
41502
+ gap: 8px 16px;
41503
+ margin: 0;
41504
+ }
41505
+ .cn-action-dialog__facts dt[data-v-53fea6f0] {
41506
+ color: var(--color-text-maxcontrast);
41507
+ font-size: 13px;
41508
+ }
41509
+ .cn-action-dialog__facts dd[data-v-53fea6f0] {
41510
+ margin: 0;
41511
+ }
41512
+ .cn-action-dialog__checks[data-v-53fea6f0] {
41513
+ display: flex;
41514
+ flex-direction: column;
41515
+ gap: 8px;
41516
+ margin: 0;
41517
+ padding: 0;
41518
+ list-style: none;
41519
+ }
41520
+ .cn-action-dialog__check[data-v-53fea6f0] {
41521
+ display: flex;
41522
+ flex-wrap: wrap;
41523
+ align-items: center;
41524
+ gap: 8px;
41525
+ }
41526
+ .cn-action-dialog__check-icon[data-v-53fea6f0] {
41527
+ color: var(--color-text-maxcontrast);
41528
+ }
41529
+ .cn-action-dialog__check-icon--met[data-v-53fea6f0] {
41530
+ color: var(--color-success-text, var(--color-success));
41531
+ }
41532
+ .cn-action-dialog__muted[data-v-53fea6f0] {
41533
+ color: var(--color-text-maxcontrast);
41534
+ font-size: 14px;
41535
+ }
41536
+ .cn-action-dialog__field[data-v-53fea6f0] {
41537
+ display: flex;
41538
+ flex-direction: column;
41539
+ gap: 4px;
41540
+ }
41541
+ .cn-action-dialog__error[data-v-53fea6f0] {
41542
+ margin: 0;
41543
+ color: var(--color-error-text, var(--color-error));
41544
+ }
41545
+
41546
+
41315
41547
  .cn-relation-link[data-v-6559b00a] {
41316
41548
  padding: 20px;
41317
41549
  display: flex;
@@ -41745,7 +41977,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41745
41977
  }
41746
41978
 
41747
41979
 
41748
- .cn-dashboard-page[data-v-61decc06] {
41980
+ .cn-dashboard-page[data-v-6991cea0] {
41749
41981
  padding: 20px;
41750
41982
  max-width: 1800px;
41751
41983
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -41759,7 +41991,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41759
41991
  overflow-y: auto;
41760
41992
  box-sizing: border-box;
41761
41993
  }
41762
- .cn-dashboard-page__header[data-v-61decc06] {
41994
+ .cn-dashboard-page__header[data-v-6991cea0] {
41763
41995
  display: flex;
41764
41996
  justify-content: space-between;
41765
41997
  align-items: flex-start;
@@ -41771,21 +42003,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41771
42003
  room. Only the HEADER shifts right — body widgets keep full width. */
41772
42004
  padding-inline-start: 56px;
41773
42005
  }
41774
- .cn-dashboard-page__header-left[data-v-61decc06] {
42006
+ .cn-dashboard-page__header-left[data-v-6991cea0] {
41775
42007
  min-width: 0;
41776
42008
  }
41777
- .cn-dashboard-page__title-row[data-v-61decc06] {
42009
+ .cn-dashboard-page__title-row[data-v-6991cea0] {
41778
42010
  display: flex;
41779
42011
  align-items: center;
41780
42012
  flex-wrap: wrap;
41781
42013
  gap: 12px;
41782
42014
  }
41783
- .cn-dashboard-page__title[data-v-61decc06] {
42015
+ .cn-dashboard-page__title[data-v-6991cea0] {
41784
42016
  margin: 0;
41785
42017
  font-size: 20px;
41786
42018
  font-weight: 700;
41787
42019
  }
41788
- .cn-dashboard-page__description[data-v-61decc06] {
42020
+ .cn-dashboard-page__description[data-v-6991cea0] {
41789
42021
  margin: 4px 0 0;
41790
42022
  font-size: 14px;
41791
42023
  color: var(--color-text-maxcontrast);
@@ -41793,19 +42025,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41793
42025
 
41794
42026
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
41795
42027
  under it, and 40px buttons with a 10px gap. */
41796
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-61decc06] {
42028
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-6991cea0] {
41797
42029
  font-size: 28px;
41798
42030
  font-weight: 700;
41799
42031
  line-height: 1.2;
41800
42032
  }
41801
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-61decc06] {
42033
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-6991cea0] {
41802
42034
  margin: 6px 0 0;
41803
42035
  font-size: 15px;
41804
42036
  }
41805
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-61decc06] {
42037
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-6991cea0] {
41806
42038
  gap: 10px;
41807
42039
  }
41808
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-61decc06] .button-vue {
42040
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-6991cea0] .button-vue {
41809
42041
  min-height: var(--cn-board-control-height, 40px);
41810
42042
  height: var(--cn-board-control-height, 40px);
41811
42043
  }
@@ -41813,17 +42045,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41813
42045
  /* The switch row under the header (screens-dashboard-greeting-header): the
41814
42046
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
41815
42047
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
41816
- .cn-dashboard-page__switch-row[data-v-61decc06] {
42048
+ .cn-dashboard-page__switch-row[data-v-6991cea0] {
41817
42049
  display: flex;
41818
42050
  flex-wrap: wrap;
41819
42051
  align-items: center;
41820
42052
  gap: 10px;
41821
42053
  margin-bottom: var(--cn-board-section-gap, 20px);
41822
42054
  }
41823
- .cn-dashboard-page__switch-row-spacer[data-v-61decc06] {
42055
+ .cn-dashboard-page__switch-row-spacer[data-v-6991cea0] {
41824
42056
  flex: 1 1 auto;
41825
42057
  }
41826
- .cn-dashboard-page__view-link[data-v-61decc06] {
42058
+ .cn-dashboard-page__view-link[data-v-6991cea0] {
41827
42059
  display: inline-flex;
41828
42060
  align-items: center;
41829
42061
  gap: 6px;
@@ -41837,37 +42069,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41837
42069
  white-space: nowrap;
41838
42070
  text-decoration: none !important;
41839
42071
  }
41840
- .cn-dashboard-page__view-link[data-v-61decc06]:hover {
42072
+ .cn-dashboard-page__view-link[data-v-6991cea0]:hover {
41841
42073
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
41842
42074
  }
41843
- .cn-dashboard-page__view-link[data-v-61decc06]:focus-visible {
42075
+ .cn-dashboard-page__view-link[data-v-6991cea0]:focus-visible {
41844
42076
  outline: 2px solid var(--color-main-text);
41845
42077
  outline-offset: 2px;
41846
42078
  }
41847
- .cn-dashboard-page__view-link-icon[data-v-61decc06] {
42079
+ .cn-dashboard-page__view-link-icon[data-v-6991cea0] {
41848
42080
  display: inline-flex;
41849
42081
  }
41850
42082
 
41851
42083
  /* The period group, in a row of its own between the header and the KPI row. */
41852
- .cn-dashboard-page__date-range--segmented[data-v-61decc06] {
42084
+ .cn-dashboard-page__date-range--segmented[data-v-6991cea0] {
41853
42085
  margin-bottom: 16px;
41854
42086
  }
41855
42087
 
41856
42088
  /* The period group at the end of the description line. */
41857
- .cn-dashboard-page__description--with-period[data-v-61decc06] {
42089
+ .cn-dashboard-page__description--with-period[data-v-6991cea0] {
41858
42090
  align-items: center;
41859
42091
  display: flex;
41860
42092
  flex-wrap: wrap;
41861
42093
  gap: 8px;
41862
42094
  }
41863
- .cn-dashboard-page__date-segmented[data-v-61decc06] {
42095
+ .cn-dashboard-page__date-segmented[data-v-6991cea0] {
41864
42096
  display: flex;
41865
42097
  align-items: center;
41866
42098
  gap: 8px;
41867
42099
  }
41868
42100
 
41869
42101
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
41870
- .cn-dashboard-page__kpi-row[data-v-61decc06] {
42102
+ .cn-dashboard-page__kpi-row[data-v-6991cea0] {
41871
42103
  margin-bottom: var(--cn-board-section-gap, 16px);
41872
42104
  }
41873
42105
 
@@ -41875,15 +42107,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41875
42107
  the cards started a margin to the right of the KPI row and the header. The
41876
42108
  grid reaches out by that margin, so the card edges line up with the page's
41877
42109
  (dashboard-grid-flush). */
41878
- .cn-dashboard-page--board[data-v-61decc06] .cn-dashboard-grid {
42110
+ .cn-dashboard-page--board[data-v-6991cea0] .cn-dashboard-grid {
41879
42111
  width: auto;
41880
42112
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
41881
42113
  }
41882
- .cn-dashboard-page__kpi-cell[data-v-61decc06] {
42114
+ .cn-dashboard-page__kpi-cell[data-v-6991cea0] {
41883
42115
  display: flex;
41884
42116
  min-width: 0;
41885
42117
  }
41886
- .cn-dashboard-page__kpi-cell[data-v-61decc06] > * {
42118
+ .cn-dashboard-page__kpi-cell[data-v-6991cea0] > * {
41887
42119
  flex: 1 1 auto;
41888
42120
  min-width: 0;
41889
42121
  }
@@ -41896,7 +42128,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41896
42128
  scoped chip rules then silently don't match and the chip collapses into
41897
42129
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
41898
42130
  data-testid is stable across chunks, so those rules match regardless. */
41899
- .cn-dashboard-page__header-actions[data-v-61decc06] {
42131
+ .cn-dashboard-page__header-actions[data-v-6991cea0] {
41900
42132
  display: flex;
41901
42133
  align-items: center;
41902
42134
  gap: 8px;
@@ -41912,19 +42144,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41912
42144
 
41913
42145
  /* Date-range header band. Kept compact so it doesn't open a tall gap
41914
42146
  above the grid; the pills variant is a single tidy toggle row. */
41915
- .cn-dashboard-page__date-range[data-v-61decc06] {
42147
+ .cn-dashboard-page__date-range[data-v-6991cea0] {
41916
42148
  margin-bottom: 12px;
41917
42149
  }
41918
- .cn-dashboard-page__date-range--pills[data-v-61decc06] {
42150
+ .cn-dashboard-page__date-range--pills[data-v-6991cea0] {
41919
42151
  margin-bottom: 8px;
41920
42152
  }
41921
- .cn-dashboard-page__date-pills[data-v-61decc06] {
42153
+ .cn-dashboard-page__date-pills[data-v-6991cea0] {
41922
42154
  display: flex;
41923
42155
  align-items: center;
41924
42156
  flex-wrap: wrap;
41925
42157
  gap: 6px;
41926
42158
  }
41927
- .cn-dashboard-page__date-pill[data-v-61decc06] {
42159
+ .cn-dashboard-page__date-pill[data-v-6991cea0] {
41928
42160
  display: inline-flex;
41929
42161
  align-items: center;
41930
42162
  padding: 5px 14px;
@@ -41939,77 +42171,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41939
42171
  cursor: pointer;
41940
42172
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
41941
42173
  }
41942
- .cn-dashboard-page__date-pill[data-v-61decc06]:hover {
42174
+ .cn-dashboard-page__date-pill[data-v-6991cea0]:hover {
41943
42175
  background: var(--color-background-hover);
41944
42176
  }
41945
- .cn-dashboard-page__date-pill[data-v-61decc06]:focus-visible {
42177
+ .cn-dashboard-page__date-pill[data-v-6991cea0]:focus-visible {
41946
42178
  outline: 2px solid var(--color-primary-element);
41947
42179
  outline-offset: 2px;
41948
42180
  }
41949
- .cn-dashboard-page__date-pill--active[data-v-61decc06] {
42181
+ .cn-dashboard-page__date-pill--active[data-v-6991cea0] {
41950
42182
  background: var(--color-primary-element);
41951
42183
  border-color: var(--color-primary-element);
41952
42184
  color: var(--color-primary-element-text);
41953
42185
  }
41954
- .cn-dashboard-page__date-pill--active[data-v-61decc06]:hover {
42186
+ .cn-dashboard-page__date-pill--active[data-v-6991cea0]:hover {
41955
42187
  background: var(--color-primary-element-hover, var(--color-primary-element));
41956
42188
  }
41957
42189
 
41958
42190
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
41959
42191
  so it reads as an escape hatch rather than a primary option. */
41960
- .cn-dashboard-page__date-pill--custom[data-v-61decc06] {
42192
+ .cn-dashboard-page__date-pill--custom[data-v-6991cea0] {
41961
42193
  border-style: dashed;
41962
42194
  color: var(--color-text-maxcontrast);
41963
42195
  }
41964
- .cn-dashboard-page__date-pill-custom[data-v-61decc06] .action-item__menutoggle {
42196
+ .cn-dashboard-page__date-pill-custom[data-v-6991cea0] .action-item__menutoggle {
41965
42197
  min-width: 0;
41966
42198
  min-height: 0;
41967
42199
  padding: 0;
41968
42200
  background: transparent;
41969
42201
  border: none;
41970
42202
  }
41971
- .cn-dashboard-page__date-pill-custom[data-v-61decc06] .button-vue,
41972
- .cn-dashboard-page__date-pill-custom[data-v-61decc06] .button-vue__wrapper,
41973
- .cn-dashboard-page__date-pill-custom[data-v-61decc06] .button-vue__icon {
42203
+ .cn-dashboard-page__date-pill-custom[data-v-6991cea0] .button-vue,
42204
+ .cn-dashboard-page__date-pill-custom[data-v-6991cea0] .button-vue__wrapper,
42205
+ .cn-dashboard-page__date-pill-custom[data-v-6991cea0] .button-vue__icon {
41974
42206
  width: auto !important;
41975
42207
  min-width: 0 !important;
41976
42208
  overflow: visible !important;
41977
42209
  }
41978
- .cn-dashboard-page__empty[data-v-61decc06] {
42210
+ .cn-dashboard-page__empty[data-v-6991cea0] {
41979
42211
  padding: 60px 20px;
41980
42212
  }
41981
42213
 
41982
42214
  /* The page's view switch on a page without a header row: at the end of its
41983
42215
  own row, above the grids, where the header would have put it. */
41984
- .cn-dashboard-page__view-switch[data-v-61decc06] {
42216
+ .cn-dashboard-page__view-switch[data-v-6991cea0] {
41985
42217
  display: flex;
41986
42218
  justify-content: flex-end;
41987
42219
  margin-bottom: 12px;
41988
42220
  }
41989
42221
 
41990
42222
  /* A view the switch shows with nothing to draw. */
41991
- .cn-page-view-region--empty[data-v-61decc06] {
42223
+ .cn-page-view-region--empty[data-v-6991cea0] {
41992
42224
  padding: 40px 20px;
41993
42225
  }
41994
- .cn-dashboard-page__page-filters[data-v-61decc06] {
42226
+ .cn-dashboard-page__page-filters[data-v-6991cea0] {
41995
42227
  display: flex;
41996
42228
  flex-wrap: wrap;
41997
42229
  gap: 16px;
41998
42230
  align-items: flex-end;
41999
42231
  margin-bottom: 12px;
42000
42232
  }
42001
- .cn-dashboard-page__page-filter[data-v-61decc06] {
42233
+ .cn-dashboard-page__page-filter[data-v-6991cea0] {
42002
42234
  display: flex;
42003
42235
  flex-direction: column;
42004
42236
  gap: 4px;
42005
42237
  min-width: 200px;
42006
42238
  }
42007
- .cn-dashboard-page__page-filter-label[data-v-61decc06] {
42239
+ .cn-dashboard-page__page-filter-label[data-v-6991cea0] {
42008
42240
  font-size: 0.85em;
42009
42241
  font-weight: 600;
42010
42242
  color: var(--color-text-maxcontrast);
42011
42243
  }
42012
- .cn-dashboard-page__widget-edit[data-v-61decc06] {
42244
+ .cn-dashboard-page__widget-edit[data-v-6991cea0] {
42013
42245
  position: absolute;
42014
42246
  top: 4px;
42015
42247
  inset-inline-end: 4px;
@@ -42028,8 +42260,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42028
42260
  and centre the card. */
42029
42261
  /* `safe` centre so an overflowing tile does not spill out of the top, where
42030
42262
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
42031
- .cn-dashboard-page__card-fit[data-v-61decc06] .cn-widget-wrapper__content,
42032
- .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-61decc06] .cn-widget-wrapper__content {
42263
+ .cn-dashboard-page__card-fit[data-v-6991cea0] .cn-widget-wrapper__content,
42264
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-6991cea0] .cn-widget-wrapper__content {
42033
42265
  overflow: hidden;
42034
42266
  display: flex;
42035
42267
  flex-direction: column;
@@ -42045,7 +42277,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42045
42277
  shows up as a scrollbar the user has to drag to see the whole graph. Same
42046
42278
  shape as the card-fit rule above, minus the padding: chart tiles render
42047
42279
  `flush`, and apexcharts already draws its own margins. */
42048
- .cn-dashboard-page__chart-fit[data-v-61decc06] .cn-widget-wrapper__content {
42280
+ .cn-dashboard-page__chart-fit[data-v-6991cea0] .cn-widget-wrapper__content {
42049
42281
  overflow: hidden;
42050
42282
  display: flex;
42051
42283
  flex-direction: column;
@@ -42055,13 +42287,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42055
42287
  /* Card content (stat / gauge / delta) must fit the tile width: let the
42056
42288
  widget shrink and its value/label truncate instead of pushing past the
42057
42289
  tile edge (the horizontal clip on long currency values). */
42058
- .cn-dashboard-page__card-fit[data-v-61decc06] .cn-stat-widget,
42059
- .cn-dashboard-page__card-fit[data-v-61decc06] .cn-gauge-widget,
42060
- .cn-dashboard-page__card-fit[data-v-61decc06] .cn-delta-widget {
42290
+ .cn-dashboard-page__card-fit[data-v-6991cea0] .cn-stat-widget,
42291
+ .cn-dashboard-page__card-fit[data-v-6991cea0] .cn-gauge-widget,
42292
+ .cn-dashboard-page__card-fit[data-v-6991cea0] .cn-delta-widget {
42061
42293
  min-width: 0;
42062
42294
  max-width: 100%;
42063
42295
  }
42064
- .cn-dashboard-page__unknown[data-v-61decc06] {
42296
+ .cn-dashboard-page__unknown[data-v-6991cea0] {
42065
42297
  display: flex;
42066
42298
  align-items: center;
42067
42299
  justify-content: center;
@@ -42072,31 +42304,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42072
42304
  }
42073
42305
 
42074
42306
  /* widget-ref content items */
42075
- .cn-dashboard-page__content[data-v-61decc06] {
42307
+ .cn-dashboard-page__content[data-v-6991cea0] {
42076
42308
  display: flex;
42077
42309
  flex-direction: column;
42078
42310
  gap: 16px;
42079
42311
  }
42080
- .cn-dashboard-page__content-item[data-v-61decc06] {
42312
+ .cn-dashboard-page__content-item[data-v-6991cea0] {
42081
42313
  width: 100%;
42082
42314
  }
42083
42315
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
42084
42316
  are 44px: the widget Actions menu and the KPI tiles. */
42085
42317
  @media (max-width: 640px) {
42086
- .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .action-item__menutoggle,
42087
- .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .button-vue {
42318
+ .cn-dashboard-page--board[data-v-6991cea0] .cn-widget-wrapper__actions .action-item__menutoggle,
42319
+ .cn-dashboard-page--board[data-v-6991cea0] .cn-widget-wrapper__actions .button-vue {
42088
42320
  min-height: 44px;
42089
42321
  }
42090
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-61decc06] {
42322
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-6991cea0] {
42091
42323
  min-height: 44px;
42092
42324
  }
42093
42325
 
42094
42326
  /* The widget Actions menu shows its icon only, so the card title keeps
42095
42327
  the room; the name stays for assistive tech. */
42096
- .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .action-item__menutoggle {
42328
+ .cn-dashboard-page--board[data-v-6991cea0] .cn-widget-wrapper__actions .action-item__menutoggle {
42097
42329
  min-width: 44px;
42098
42330
  }
42099
- .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
42331
+ .cn-dashboard-page--board[data-v-6991cea0] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
42100
42332
  position: absolute;
42101
42333
  width: 1px;
42102
42334
  height: 1px;
@@ -42108,7 +42340,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42108
42340
 
42109
42341
  /* What a registry widget reports for its card header (`header` event): the
42110
42342
  note beside the link ("3 in total") and one action, as on a detail page. */
42111
- .cn-dashboard-page__widget-count[data-v-61decc06] {
42343
+ .cn-dashboard-page__widget-count[data-v-6991cea0] {
42112
42344
  align-self: center;
42113
42345
  padding: 1px 8px;
42114
42346
  border-radius: 10px;
@@ -42117,13 +42349,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42117
42349
  font-size: 13px;
42118
42350
  font-weight: 600;
42119
42351
  }
42120
- .cn-dashboard-page__widget-note[data-v-61decc06] {
42352
+ .cn-dashboard-page__widget-note[data-v-6991cea0] {
42121
42353
  align-self: center;
42122
42354
  color: var(--color-text-maxcontrast);
42123
42355
  font-size: 14px;
42124
42356
  white-space: nowrap;
42125
42357
  }
42126
- .cn-dashboard-page__widget-action[data-v-61decc06] {
42358
+ .cn-dashboard-page__widget-action[data-v-6991cea0] {
42127
42359
  display: inline-flex;
42128
42360
  align-items: center;
42129
42361
  align-self: center;
@@ -42139,7 +42371,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42139
42371
  white-space: nowrap;
42140
42372
  cursor: pointer;
42141
42373
  }
42142
- .cn-dashboard-page__widget-action[data-v-61decc06]:focus-visible {
42374
+ .cn-dashboard-page__widget-action[data-v-6991cea0]:focus-visible {
42143
42375
  outline: 2px solid var(--color-primary-element);
42144
42376
  outline-offset: 2px;
42145
42377
  }
@@ -45524,6 +45756,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45524
45756
  }
45525
45757
 
45526
45758
 
45759
+ .cn-app-nav__hint {
45760
+ list-style: none;
45761
+ padding: 4px 12px 8px 16px;
45762
+ font-size: 13px;
45763
+ line-height: 1.4;
45764
+ color: var(--color-text-maxcontrast);
45765
+ }
45766
+
45527
45767
  /* The emblem beside the app name (`nav.brand.emblem`). A theme sets
45528
45768
  --nldesign-emblem-url for `emblem: true`, and --cn-nav-emblem-size for both. */
45529
45769
  .cn-app-nav__brand-emblem {