@conduction/nextcloud-vue 2.31.0 → 2.31.1

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.
@@ -1076,6 +1076,37 @@
1076
1076
  outline-offset: 2px;
1077
1077
  }
1078
1078
 
1079
+ /* ── Card-fit tiles: the WRAPPER is the card, so the hover goes on the wrapper ──
1080
+ A stat / gauge / delta tile is rendered `flush` and then given its padding
1081
+ back by the card-fit rule (`padding: 8px 14px`, CnDashboardPage), so that a
1082
+ short KPI tile does not scroll. That leaves the KPI INSET inside the
1083
+ wrapper, and the wrapper is what draws the border, the radius and the
1084
+ background the user reads as "the card".
1085
+
1086
+ The `--clickable:hover` border above therefore paints a SECOND rounded box
1087
+ 8-14px inside the first, which reads as a card inside a card. Measured: a
1088
+ card-fit stat widget sits 9px from the wrapper's top and 15px from its left,
1089
+ while a non-card-fit stats block sits at 1px and so lands on the wrapper's
1090
+ own edge. That is the whole difference, and it is why only the card-fit
1091
+ variants show the effect.
1092
+
1093
+ So: suppress the inner border, and give the affordance to the wrapper, which
1094
+ is the edge being hovered. `:has()` is Baseline since 2023 and is already
1095
+ used across this stylesheet set (table.css, dashboard.css, detail-page.css).
1096
+ Both card-fit hosts are covered: dashboard pages and detail pages. */
1097
+
1098
+ .cn-dashboard-page__card-fit .cn-kpi-card--clickable:hover,
1099
+ .cn-detail-page__card-fit .cn-kpi-card--clickable:hover {
1100
+ border-color: transparent;
1101
+ box-shadow: none;
1102
+ }
1103
+
1104
+ .cn-dashboard-page__card-fit:has(.cn-kpi-card--clickable:hover),
1105
+ .cn-detail-page__card-fit:has(.cn-kpi-card--clickable:hover) {
1106
+ border-color: var(--color-primary-element);
1107
+ box-shadow: 0 2px 8px var(--color-box-shadow);
1108
+ }
1109
+
1079
1110
  /* Vertical: the icon stacked ABOVE a centred number — the pre-2026-08-30
1080
1111
  canonical look, now opt-in via `content.layout: 'vertical'`. For a tile that
1081
1112
  is taller than it is wide, where a sideways row would leave the card empty
@@ -8415,6 +8446,37 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
8415
8446
  outline-offset: 2px;
8416
8447
  }
8417
8448
 
8449
+ /* ── Card-fit tiles: the WRAPPER is the card, so the hover goes on the wrapper ──
8450
+ A stat / gauge / delta tile is rendered `flush` and then given its padding
8451
+ back by the card-fit rule (`padding: 8px 14px`, CnDashboardPage), so that a
8452
+ short KPI tile does not scroll. That leaves the KPI INSET inside the
8453
+ wrapper, and the wrapper is what draws the border, the radius and the
8454
+ background the user reads as "the card".
8455
+
8456
+ The `--clickable:hover` border above therefore paints a SECOND rounded box
8457
+ 8-14px inside the first, which reads as a card inside a card. Measured: a
8458
+ card-fit stat widget sits 9px from the wrapper's top and 15px from its left,
8459
+ while a non-card-fit stats block sits at 1px and so lands on the wrapper's
8460
+ own edge. That is the whole difference, and it is why only the card-fit
8461
+ variants show the effect.
8462
+
8463
+ So: suppress the inner border, and give the affordance to the wrapper, which
8464
+ is the edge being hovered. `:has()` is Baseline since 2023 and is already
8465
+ used across this stylesheet set (table.css, dashboard.css, detail-page.css).
8466
+ Both card-fit hosts are covered: dashboard pages and detail pages. */
8467
+
8468
+ .cn-dashboard-page__card-fit .cn-kpi-card--clickable:hover,
8469
+ .cn-detail-page__card-fit .cn-kpi-card--clickable:hover {
8470
+ border-color: transparent;
8471
+ box-shadow: none;
8472
+ }
8473
+
8474
+ .cn-dashboard-page__card-fit:has(.cn-kpi-card--clickable:hover),
8475
+ .cn-detail-page__card-fit:has(.cn-kpi-card--clickable:hover) {
8476
+ border-color: var(--color-primary-element);
8477
+ box-shadow: 0 2px 8px var(--color-box-shadow);
8478
+ }
8479
+
8418
8480
  /* Vertical: the icon stacked ABOVE a centred number — the pre-2026-08-30
8419
8481
  canonical look, now opt-in via `content.layout: 'vertical'`. For a tile that
8420
8482
  is taller than it is wide, where a sideways row would leave the card empty
@@ -1076,6 +1076,37 @@
1076
1076
  outline-offset: 2px;
1077
1077
  }
1078
1078
 
1079
+ /* ── Card-fit tiles: the WRAPPER is the card, so the hover goes on the wrapper ──
1080
+ A stat / gauge / delta tile is rendered `flush` and then given its padding
1081
+ back by the card-fit rule (`padding: 8px 14px`, CnDashboardPage), so that a
1082
+ short KPI tile does not scroll. That leaves the KPI INSET inside the
1083
+ wrapper, and the wrapper is what draws the border, the radius and the
1084
+ background the user reads as "the card".
1085
+
1086
+ The `--clickable:hover` border above therefore paints a SECOND rounded box
1087
+ 8-14px inside the first, which reads as a card inside a card. Measured: a
1088
+ card-fit stat widget sits 9px from the wrapper's top and 15px from its left,
1089
+ while a non-card-fit stats block sits at 1px and so lands on the wrapper's
1090
+ own edge. That is the whole difference, and it is why only the card-fit
1091
+ variants show the effect.
1092
+
1093
+ So: suppress the inner border, and give the affordance to the wrapper, which
1094
+ is the edge being hovered. `:has()` is Baseline since 2023 and is already
1095
+ used across this stylesheet set (table.css, dashboard.css, detail-page.css).
1096
+ Both card-fit hosts are covered: dashboard pages and detail pages. */
1097
+
1098
+ .cn-dashboard-page__card-fit .cn-kpi-card--clickable:hover,
1099
+ .cn-detail-page__card-fit .cn-kpi-card--clickable:hover {
1100
+ border-color: transparent;
1101
+ box-shadow: none;
1102
+ }
1103
+
1104
+ .cn-dashboard-page__card-fit:has(.cn-kpi-card--clickable:hover),
1105
+ .cn-detail-page__card-fit:has(.cn-kpi-card--clickable:hover) {
1106
+ border-color: var(--color-primary-element);
1107
+ box-shadow: 0 2px 8px var(--color-box-shadow);
1108
+ }
1109
+
1079
1110
  /* Vertical: the icon stacked ABOVE a centred number — the pre-2026-08-30
1080
1111
  canonical look, now opt-in via `content.layout: 'vertical'`. For a tile that
1081
1112
  is taller than it is wide, where a sideways row would leave the card empty
@@ -8415,6 +8446,37 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
8415
8446
  outline-offset: 2px;
8416
8447
  }
8417
8448
 
8449
+ /* ── Card-fit tiles: the WRAPPER is the card, so the hover goes on the wrapper ──
8450
+ A stat / gauge / delta tile is rendered `flush` and then given its padding
8451
+ back by the card-fit rule (`padding: 8px 14px`, CnDashboardPage), so that a
8452
+ short KPI tile does not scroll. That leaves the KPI INSET inside the
8453
+ wrapper, and the wrapper is what draws the border, the radius and the
8454
+ background the user reads as "the card".
8455
+
8456
+ The `--clickable:hover` border above therefore paints a SECOND rounded box
8457
+ 8-14px inside the first, which reads as a card inside a card. Measured: a
8458
+ card-fit stat widget sits 9px from the wrapper's top and 15px from its left,
8459
+ while a non-card-fit stats block sits at 1px and so lands on the wrapper's
8460
+ own edge. That is the whole difference, and it is why only the card-fit
8461
+ variants show the effect.
8462
+
8463
+ So: suppress the inner border, and give the affordance to the wrapper, which
8464
+ is the edge being hovered. `:has()` is Baseline since 2023 and is already
8465
+ used across this stylesheet set (table.css, dashboard.css, detail-page.css).
8466
+ Both card-fit hosts are covered: dashboard pages and detail pages. */
8467
+
8468
+ .cn-dashboard-page__card-fit .cn-kpi-card--clickable:hover,
8469
+ .cn-detail-page__card-fit .cn-kpi-card--clickable:hover {
8470
+ border-color: transparent;
8471
+ box-shadow: none;
8472
+ }
8473
+
8474
+ .cn-dashboard-page__card-fit:has(.cn-kpi-card--clickable:hover),
8475
+ .cn-detail-page__card-fit:has(.cn-kpi-card--clickable:hover) {
8476
+ border-color: var(--color-primary-element);
8477
+ box-shadow: 0 2px 8px var(--color-box-shadow);
8478
+ }
8479
+
8418
8480
  /* Vertical: the icon stacked ABOVE a centred number — the pre-2026-08-30
8419
8481
  canonical look, now opt-in via `content.layout: 'vertical'`. For a tile that
8420
8482
  is taller than it is wide, where a sideways row would leave the card empty
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conduction/nextcloud-vue",
3
- "version": "2.31.0",
3
+ "version": "2.31.1",
4
4
  "description": "Shared Vue component library for Conduction Nextcloud apps — complements @nextcloud/vue with higher-level components, OpenRegister integration, and NL Design System support",
5
5
  "license": "EUPL-1.2",
6
6
  "author": "Conduction B.V. <info@conduction.nl>",
@@ -294,6 +294,36 @@
294
294
  outline-offset: 2px;
295
295
  }
296
296
 
297
+ /* ── Card-fit tiles: the WRAPPER is the card, so the hover goes on the wrapper ──
298
+ A stat / gauge / delta tile is rendered `flush` and then given its padding
299
+ back by the card-fit rule (`padding: 8px 14px`, CnDashboardPage), so that a
300
+ short KPI tile does not scroll. That leaves the KPI INSET inside the
301
+ wrapper, and the wrapper is what draws the border, the radius and the
302
+ background the user reads as "the card".
303
+
304
+ The `--clickable:hover` border above therefore paints a SECOND rounded box
305
+ 8-14px inside the first, which reads as a card inside a card. Measured: a
306
+ card-fit stat widget sits 9px from the wrapper's top and 15px from its left,
307
+ while a non-card-fit stats block sits at 1px and so lands on the wrapper's
308
+ own edge. That is the whole difference, and it is why only the card-fit
309
+ variants show the effect.
310
+
311
+ So: suppress the inner border, and give the affordance to the wrapper, which
312
+ is the edge being hovered. `:has()` is Baseline since 2023 and is already
313
+ used across this stylesheet set (table.css, dashboard.css, detail-page.css).
314
+ Both card-fit hosts are covered: dashboard pages and detail pages. */
315
+ .cn-dashboard-page__card-fit .cn-kpi-card--clickable:hover,
316
+ .cn-detail-page__card-fit .cn-kpi-card--clickable:hover {
317
+ border-color: transparent;
318
+ box-shadow: none;
319
+ }
320
+
321
+ .cn-dashboard-page__card-fit:has(.cn-kpi-card--clickable:hover),
322
+ .cn-detail-page__card-fit:has(.cn-kpi-card--clickable:hover) {
323
+ border-color: var(--color-primary-element);
324
+ box-shadow: 0 2px 8px var(--color-box-shadow);
325
+ }
326
+
297
327
  /* Vertical: the icon stacked ABOVE a centred number — the pre-2026-08-30
298
328
  canonical look, now opt-in via `content.layout: 'vertical'`. For a tile that
299
329
  is taller than it is wide, where a sideways row would leave the card empty