@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.
- package/dist/esm/nextcloud-vue.css +62 -0
- package/dist/nextcloud-vue.css +62 -0
- package/package.json +1 -1
- package/src/css/kpi-card.css +30 -0
|
@@ -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/dist/nextcloud-vue.css
CHANGED
|
@@ -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.
|
|
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>",
|
package/src/css/kpi-card.css
CHANGED
|
@@ -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
|