origam 2.18.4 → 2.18.6
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/CHANGELOG.md +215 -0
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +10 -10
- package/dist/src/assets/css/tokens/light.css +5 -5
- package/dist/src/assets/css/tokens/origam-utilities.css +30 -12
- package/dist/src/assets/locales/en.json +9 -0
- package/dist/src/assets/locales/fr.json +9 -0
- package/dist/src/assets/scss/tokens/_dark.scss +10 -10
- package/dist/src/assets/scss/tokens/_light.scss +5 -5
- package/dist/src/assets/scss/tokens/_origam-utilities.scss +30 -12
- package/dist/src/components/Calendar/OrigamCalendar.vue +2 -2
- package/dist/src/components/Chart/OrigamChartMap.vue +1 -1
- package/dist/src/components/DataTable/OrigamDataTable.vue +18 -1
- package/dist/src/components/DataTable/OrigamDataTableGroupHeaderRow.vue +4 -0
- package/dist/src/components/DatePicker/OrigamDatePickerControls.vue +5 -0
- package/dist/src/components/Field/OrigamField.vue +47 -8
- package/dist/src/components/InfiniteScroll/OrigamInfiniteScroll.vue +17 -0
- package/dist/src/components/InlineEdit/OrigamInlineEdit.vue +2 -2
- package/dist/src/components/List/OrigamListGroup.vue +7 -0
- package/dist/src/components/RatingField/OrigamRatingField.vue +2 -2
- package/dist/src/components/Slide/OrigamSlideGroup.vue +5 -0
- package/package.json +1 -1
|
@@ -2064,7 +2064,7 @@
|
|
|
2064
2064
|
--origam-picker---z-index: var(--origam-zIndex---dropdown);
|
|
2065
2065
|
--origam-picker---transition-duration: var(--origam-motion__duration---medium);
|
|
2066
2066
|
--origam-picker---transition-timing-function: var(--origam-motion__easing---standard);
|
|
2067
|
-
--origam-picker-title---color:
|
|
2067
|
+
--origam-picker-title---color: currentColor;
|
|
2068
2068
|
--origam-picker-title---font-size: 0.75rem;
|
|
2069
2069
|
--origam-picker-title---font-weight: 400;
|
|
2070
2070
|
--origam-picker-title---letter-spacing: 0.1667em;
|
|
@@ -2833,11 +2833,11 @@
|
|
|
2833
2833
|
--origam-chart-range-selector__btn---font-size: var(--origam-font__size---sm);
|
|
2834
2834
|
--origam-chart-range-selector__btn--hover---background-color: rgba(0, 0, 0, 0.06);
|
|
2835
2835
|
--origam-chart-range-selector__btn--hover---color: #111827;
|
|
2836
|
-
--origam-chart-range-selector__btn--active---background-color:
|
|
2836
|
+
--origam-chart-range-selector__btn--active---background-color: var(--origam-color__action--primary---bg);
|
|
2837
2837
|
--origam-chart-range-selector__btn--active---border-color: rgba(0, 0, 0, 0);
|
|
2838
|
-
--origam-chart-range-selector__btn--active---color: var(--origam-
|
|
2839
|
-
--origam-chart-range-selector__btn--active--hover---background-color:
|
|
2840
|
-
--origam-chart-range-selector__btn--active--hover---color: var(--origam-
|
|
2838
|
+
--origam-chart-range-selector__btn--active---color: var(--origam-color__action--primary---fg);
|
|
2839
|
+
--origam-chart-range-selector__btn--active--hover---background-color: var(--origam-color__action--primary---bgHover);
|
|
2840
|
+
--origam-chart-range-selector__btn--active--hover---color: var(--origam-color__action--primary---fg);
|
|
2841
2841
|
--origam-chart-sparkline__bar---border-radius: 1;
|
|
2842
2842
|
--origam-chart-sparkline__marker-min---stroke: rgba(0, 0, 0, 0);
|
|
2843
2843
|
--origam-chart-sparkline__marker-max---stroke: rgba(0, 0, 0, 0);
|
|
@@ -4800,7 +4800,7 @@
|
|
|
4800
4800
|
--origam-picker---z-index: var(--origam-zIndex---dropdown);
|
|
4801
4801
|
--origam-picker---transition-duration: var(--origam-motion__duration---medium);
|
|
4802
4802
|
--origam-picker---transition-timing-function: var(--origam-motion__easing---standard);
|
|
4803
|
-
--origam-picker-title---color:
|
|
4803
|
+
--origam-picker-title---color: currentColor;
|
|
4804
4804
|
--origam-picker-title---font-size: 0.75rem;
|
|
4805
4805
|
--origam-picker-title---font-weight: 400;
|
|
4806
4806
|
--origam-picker-title---letter-spacing: 0.1667em;
|
|
@@ -5569,11 +5569,11 @@
|
|
|
5569
5569
|
--origam-chart-range-selector__btn---font-size: var(--origam-font__size---sm);
|
|
5570
5570
|
--origam-chart-range-selector__btn--hover---background-color: rgba(0, 0, 0, 0.06);
|
|
5571
5571
|
--origam-chart-range-selector__btn--hover---color: #111827;
|
|
5572
|
-
--origam-chart-range-selector__btn--active---background-color:
|
|
5572
|
+
--origam-chart-range-selector__btn--active---background-color: var(--origam-color__action--primary---bg);
|
|
5573
5573
|
--origam-chart-range-selector__btn--active---border-color: rgba(0, 0, 0, 0);
|
|
5574
|
-
--origam-chart-range-selector__btn--active---color: var(--origam-
|
|
5575
|
-
--origam-chart-range-selector__btn--active--hover---background-color:
|
|
5576
|
-
--origam-chart-range-selector__btn--active--hover---color: var(--origam-
|
|
5574
|
+
--origam-chart-range-selector__btn--active---color: var(--origam-color__action--primary---fg);
|
|
5575
|
+
--origam-chart-range-selector__btn--active--hover---background-color: var(--origam-color__action--primary---bgHover);
|
|
5576
|
+
--origam-chart-range-selector__btn--active--hover---color: var(--origam-color__action--primary---fg);
|
|
5577
5577
|
--origam-chart-sparkline__bar---border-radius: 1;
|
|
5578
5578
|
--origam-chart-sparkline__marker-min---stroke: rgba(0, 0, 0, 0);
|
|
5579
5579
|
--origam-chart-sparkline__marker-max---stroke: rgba(0, 0, 0, 0);
|
|
@@ -1968,7 +1968,7 @@
|
|
|
1968
1968
|
--origam-picker---z-index: var(--origam-zIndex---dropdown);
|
|
1969
1969
|
--origam-picker---transition-duration: var(--origam-motion__duration---medium);
|
|
1970
1970
|
--origam-picker---transition-timing-function: var(--origam-motion__easing---standard);
|
|
1971
|
-
--origam-picker-title---color:
|
|
1971
|
+
--origam-picker-title---color: currentColor;
|
|
1972
1972
|
--origam-picker-title---font-size: 0.75rem;
|
|
1973
1973
|
--origam-picker-title---font-weight: 400;
|
|
1974
1974
|
--origam-picker-title---letter-spacing: 0.1667em;
|
|
@@ -2737,11 +2737,11 @@
|
|
|
2737
2737
|
--origam-chart-range-selector__btn---font-size: var(--origam-font__size---sm);
|
|
2738
2738
|
--origam-chart-range-selector__btn--hover---background-color: rgba(0, 0, 0, 0.06);
|
|
2739
2739
|
--origam-chart-range-selector__btn--hover---color: #111827;
|
|
2740
|
-
--origam-chart-range-selector__btn--active---background-color:
|
|
2740
|
+
--origam-chart-range-selector__btn--active---background-color: var(--origam-color__action--primary---bg);
|
|
2741
2741
|
--origam-chart-range-selector__btn--active---border-color: rgba(0, 0, 0, 0);
|
|
2742
|
-
--origam-chart-range-selector__btn--active---color: var(--origam-
|
|
2743
|
-
--origam-chart-range-selector__btn--active--hover---background-color:
|
|
2744
|
-
--origam-chart-range-selector__btn--active--hover---color: var(--origam-
|
|
2742
|
+
--origam-chart-range-selector__btn--active---color: var(--origam-color__action--primary---fg);
|
|
2743
|
+
--origam-chart-range-selector__btn--active--hover---background-color: var(--origam-color__action--primary---bgHover);
|
|
2744
|
+
--origam-chart-range-selector__btn--active--hover---color: var(--origam-color__action--primary---fg);
|
|
2745
2745
|
--origam-chart-sparkline__bar---border-radius: 1;
|
|
2746
2746
|
--origam-chart-sparkline__marker-min---stroke: rgba(0, 0, 0, 0);
|
|
2747
2747
|
--origam-chart-sparkline__marker-max---stroke: rgba(0, 0, 0, 0);
|
|
@@ -23,22 +23,40 @@
|
|
|
23
23
|
/* import below the component layer. */
|
|
24
24
|
|
|
25
25
|
/* ── Foreground color (intent) ───────────────────────────────── */
|
|
26
|
-
|
|
26
|
+
/* */
|
|
27
|
+
/* The intent's own colour, AS TEXT, on a neutral surface. These */
|
|
28
|
+
/* MUST mirror `tokenForegroundForIntent()` */
|
|
29
|
+
/* (utils/Commons/color.util.ts) — that helper is what the inline */
|
|
30
|
+
/* `color:` declaration uses for the very same `color="{intent}"` */
|
|
31
|
+
/* prop, and an inline declaration outranks this class. Reading */
|
|
32
|
+
/* `---fg` here made the two channels disagree on 5 of 7 intents: */
|
|
33
|
+
/* `---fg` is the on-intent foreground (white), legible only ON */
|
|
34
|
+
/* the saturated `---bg`, so a standalone `.origam--color-primary` */
|
|
35
|
+
/* painted white-on-white. Pair it with `.origam--bg-*` below */
|
|
36
|
+
/* when you want the on-intent foreground instead. See #818. */
|
|
37
|
+
.origam--color-primary { color: var(--origam-color__action--primary---fgSubtle); }
|
|
27
38
|
.origam--color-secondary { color: var(--origam-color__action--secondary---fg); }
|
|
28
|
-
.origam--color-success { color: var(--origam-color__feedback--success---
|
|
29
|
-
.origam--color-warning { color: var(--origam-color__feedback--warning---
|
|
30
|
-
.origam--color-danger { color: var(--origam-color__feedback--danger---
|
|
31
|
-
.origam--color-info { color: var(--origam-color__feedback--info---
|
|
39
|
+
.origam--color-success { color: var(--origam-color__feedback--success---fgSubtle); }
|
|
40
|
+
.origam--color-warning { color: var(--origam-color__feedback--warning---fgSubtle); }
|
|
41
|
+
.origam--color-danger { color: var(--origam-color__feedback--danger---fgSubtle); }
|
|
42
|
+
.origam--color-info { color: var(--origam-color__feedback--info---fgSubtle); }
|
|
32
43
|
.origam--color-neutral { color: var(--origam-color__text---primary); }
|
|
33
44
|
|
|
34
45
|
/* ── Background color (intent) ───────────────────────────────── */
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.origam--bg-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
/* */
|
|
47
|
+
/* Each intent surface carries its PAIRED on-intent foreground, */
|
|
48
|
+
/* the same auto-pairing `useColor()` already performs on the */
|
|
49
|
+
/* inline channel ("lets `bgColor=primary` alone auto-pair the */
|
|
50
|
+
/* right text colour"). Without it, `.origam--bg-primary` on bare */
|
|
51
|
+
/* markup inherited the page's dark ink onto a saturated surface. */
|
|
52
|
+
/* Every pair below is >= 4.5:1 in the light token set. See #818. */
|
|
53
|
+
.origam--bg-primary { background-color: var(--origam-color__action--primary---bg); color: var(--origam-color__action--primary---fg); }
|
|
54
|
+
.origam--bg-secondary { background-color: var(--origam-color__action--secondary---bg); color: var(--origam-color__action--secondary---fg); }
|
|
55
|
+
.origam--bg-success { background-color: var(--origam-color__feedback--success---bg); color: var(--origam-color__feedback--success---fg); }
|
|
56
|
+
.origam--bg-warning { background-color: var(--origam-color__feedback--warning---bg); color: var(--origam-color__feedback--warning---fg); }
|
|
57
|
+
.origam--bg-danger { background-color: var(--origam-color__feedback--danger---bg); color: var(--origam-color__feedback--danger---fg); }
|
|
58
|
+
.origam--bg-info { background-color: var(--origam-color__feedback--info---bg); color: var(--origam-color__feedback--info---fg); }
|
|
59
|
+
.origam--bg-neutral { background-color: var(--origam-color__surface---default); color: var(--origam-color__text---primary); }
|
|
42
60
|
|
|
43
61
|
/* ── Elevation (box-shadow) ───────────────────────────────── */
|
|
44
62
|
.origam--shadow-none { box-shadow: var(--origam-shadow---none); }
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"placeholder": "Enter date"
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
|
+
"date_picker_controls": {
|
|
55
|
+
"prev": "Previous",
|
|
56
|
+
"next": "Next",
|
|
57
|
+
"toggle_year": "Toggle year selection"
|
|
58
|
+
},
|
|
54
59
|
"no_data_text": "No data available",
|
|
55
60
|
"bracket": {
|
|
56
61
|
"aria_label": "Tournament bracket",
|
|
@@ -199,6 +204,10 @@
|
|
|
199
204
|
"expand_row": "Expand row",
|
|
200
205
|
"collapse_row": "Collapse row"
|
|
201
206
|
},
|
|
207
|
+
"data_table_group_header_row": {
|
|
208
|
+
"expand_group": "Expand group",
|
|
209
|
+
"collapse_group": "Collapse group"
|
|
210
|
+
},
|
|
202
211
|
"rating": {
|
|
203
212
|
"aria_label": {
|
|
204
213
|
"item": "Rating {0} of {1}"
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"placeholder": "Entrer une date"
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
|
+
"date_picker_controls": {
|
|
55
|
+
"prev": "Précédent",
|
|
56
|
+
"next": "Suivant",
|
|
57
|
+
"toggle_year": "Basculer la sélection de l'année"
|
|
58
|
+
},
|
|
54
59
|
"no_data_text": "Aucune donnée disponible",
|
|
55
60
|
"bracket": {
|
|
56
61
|
"aria_label": "Tableau du tournoi",
|
|
@@ -199,6 +204,10 @@
|
|
|
199
204
|
"expand_row": "Développer la ligne",
|
|
200
205
|
"collapse_row": "Réduire la ligne"
|
|
201
206
|
},
|
|
207
|
+
"data_table_group_header_row": {
|
|
208
|
+
"expand_group": "Développer le groupe",
|
|
209
|
+
"collapse_group": "Réduire le groupe"
|
|
210
|
+
},
|
|
202
211
|
"rating": {
|
|
203
212
|
"aria_label": {
|
|
204
213
|
"item": "Note de {0} sur {1}"
|
|
@@ -2064,7 +2064,7 @@
|
|
|
2064
2064
|
--origam-picker---z-index: var(--origam-zIndex---dropdown);
|
|
2065
2065
|
--origam-picker---transition-duration: var(--origam-motion__duration---medium);
|
|
2066
2066
|
--origam-picker---transition-timing-function: var(--origam-motion__easing---standard);
|
|
2067
|
-
--origam-picker-title---color:
|
|
2067
|
+
--origam-picker-title---color: currentColor;
|
|
2068
2068
|
--origam-picker-title---font-size: 0.75rem;
|
|
2069
2069
|
--origam-picker-title---font-weight: 400;
|
|
2070
2070
|
--origam-picker-title---letter-spacing: 0.1667em;
|
|
@@ -2833,11 +2833,11 @@
|
|
|
2833
2833
|
--origam-chart-range-selector__btn---font-size: var(--origam-font__size---sm);
|
|
2834
2834
|
--origam-chart-range-selector__btn--hover---background-color: rgba(0, 0, 0, 0.06);
|
|
2835
2835
|
--origam-chart-range-selector__btn--hover---color: #111827;
|
|
2836
|
-
--origam-chart-range-selector__btn--active---background-color:
|
|
2836
|
+
--origam-chart-range-selector__btn--active---background-color: var(--origam-color__action--primary---bg);
|
|
2837
2837
|
--origam-chart-range-selector__btn--active---border-color: rgba(0, 0, 0, 0);
|
|
2838
|
-
--origam-chart-range-selector__btn--active---color: var(--origam-
|
|
2839
|
-
--origam-chart-range-selector__btn--active--hover---background-color:
|
|
2840
|
-
--origam-chart-range-selector__btn--active--hover---color: var(--origam-
|
|
2838
|
+
--origam-chart-range-selector__btn--active---color: var(--origam-color__action--primary---fg);
|
|
2839
|
+
--origam-chart-range-selector__btn--active--hover---background-color: var(--origam-color__action--primary---bgHover);
|
|
2840
|
+
--origam-chart-range-selector__btn--active--hover---color: var(--origam-color__action--primary---fg);
|
|
2841
2841
|
--origam-chart-sparkline__bar---border-radius: 1;
|
|
2842
2842
|
--origam-chart-sparkline__marker-min---stroke: rgba(0, 0, 0, 0);
|
|
2843
2843
|
--origam-chart-sparkline__marker-max---stroke: rgba(0, 0, 0, 0);
|
|
@@ -4800,7 +4800,7 @@
|
|
|
4800
4800
|
--origam-picker---z-index: var(--origam-zIndex---dropdown);
|
|
4801
4801
|
--origam-picker---transition-duration: var(--origam-motion__duration---medium);
|
|
4802
4802
|
--origam-picker---transition-timing-function: var(--origam-motion__easing---standard);
|
|
4803
|
-
--origam-picker-title---color:
|
|
4803
|
+
--origam-picker-title---color: currentColor;
|
|
4804
4804
|
--origam-picker-title---font-size: 0.75rem;
|
|
4805
4805
|
--origam-picker-title---font-weight: 400;
|
|
4806
4806
|
--origam-picker-title---letter-spacing: 0.1667em;
|
|
@@ -5569,11 +5569,11 @@
|
|
|
5569
5569
|
--origam-chart-range-selector__btn---font-size: var(--origam-font__size---sm);
|
|
5570
5570
|
--origam-chart-range-selector__btn--hover---background-color: rgba(0, 0, 0, 0.06);
|
|
5571
5571
|
--origam-chart-range-selector__btn--hover---color: #111827;
|
|
5572
|
-
--origam-chart-range-selector__btn--active---background-color:
|
|
5572
|
+
--origam-chart-range-selector__btn--active---background-color: var(--origam-color__action--primary---bg);
|
|
5573
5573
|
--origam-chart-range-selector__btn--active---border-color: rgba(0, 0, 0, 0);
|
|
5574
|
-
--origam-chart-range-selector__btn--active---color: var(--origam-
|
|
5575
|
-
--origam-chart-range-selector__btn--active--hover---background-color:
|
|
5576
|
-
--origam-chart-range-selector__btn--active--hover---color: var(--origam-
|
|
5574
|
+
--origam-chart-range-selector__btn--active---color: var(--origam-color__action--primary---fg);
|
|
5575
|
+
--origam-chart-range-selector__btn--active--hover---background-color: var(--origam-color__action--primary---bgHover);
|
|
5576
|
+
--origam-chart-range-selector__btn--active--hover---color: var(--origam-color__action--primary---fg);
|
|
5577
5577
|
--origam-chart-sparkline__bar---border-radius: 1;
|
|
5578
5578
|
--origam-chart-sparkline__marker-min---stroke: rgba(0, 0, 0, 0);
|
|
5579
5579
|
--origam-chart-sparkline__marker-max---stroke: rgba(0, 0, 0, 0);
|
|
@@ -1968,7 +1968,7 @@
|
|
|
1968
1968
|
--origam-picker---z-index: var(--origam-zIndex---dropdown);
|
|
1969
1969
|
--origam-picker---transition-duration: var(--origam-motion__duration---medium);
|
|
1970
1970
|
--origam-picker---transition-timing-function: var(--origam-motion__easing---standard);
|
|
1971
|
-
--origam-picker-title---color:
|
|
1971
|
+
--origam-picker-title---color: currentColor;
|
|
1972
1972
|
--origam-picker-title---font-size: 0.75rem;
|
|
1973
1973
|
--origam-picker-title---font-weight: 400;
|
|
1974
1974
|
--origam-picker-title---letter-spacing: 0.1667em;
|
|
@@ -2737,11 +2737,11 @@
|
|
|
2737
2737
|
--origam-chart-range-selector__btn---font-size: var(--origam-font__size---sm);
|
|
2738
2738
|
--origam-chart-range-selector__btn--hover---background-color: rgba(0, 0, 0, 0.06);
|
|
2739
2739
|
--origam-chart-range-selector__btn--hover---color: #111827;
|
|
2740
|
-
--origam-chart-range-selector__btn--active---background-color:
|
|
2740
|
+
--origam-chart-range-selector__btn--active---background-color: var(--origam-color__action--primary---bg);
|
|
2741
2741
|
--origam-chart-range-selector__btn--active---border-color: rgba(0, 0, 0, 0);
|
|
2742
|
-
--origam-chart-range-selector__btn--active---color: var(--origam-
|
|
2743
|
-
--origam-chart-range-selector__btn--active--hover---background-color:
|
|
2744
|
-
--origam-chart-range-selector__btn--active--hover---color: var(--origam-
|
|
2742
|
+
--origam-chart-range-selector__btn--active---color: var(--origam-color__action--primary---fg);
|
|
2743
|
+
--origam-chart-range-selector__btn--active--hover---background-color: var(--origam-color__action--primary---bgHover);
|
|
2744
|
+
--origam-chart-range-selector__btn--active--hover---color: var(--origam-color__action--primary---fg);
|
|
2745
2745
|
--origam-chart-sparkline__bar---border-radius: 1;
|
|
2746
2746
|
--origam-chart-sparkline__marker-min---stroke: rgba(0, 0, 0, 0);
|
|
2747
2747
|
--origam-chart-sparkline__marker-max---stroke: rgba(0, 0, 0, 0);
|
|
@@ -23,22 +23,40 @@
|
|
|
23
23
|
/* import below the component layer. */
|
|
24
24
|
|
|
25
25
|
/* ── Foreground color (intent) ───────────────────────────────── */
|
|
26
|
-
|
|
26
|
+
/* */
|
|
27
|
+
/* The intent's own colour, AS TEXT, on a neutral surface. These */
|
|
28
|
+
/* MUST mirror `tokenForegroundForIntent()` */
|
|
29
|
+
/* (utils/Commons/color.util.ts) — that helper is what the inline */
|
|
30
|
+
/* `color:` declaration uses for the very same `color="{intent}"` */
|
|
31
|
+
/* prop, and an inline declaration outranks this class. Reading */
|
|
32
|
+
/* `---fg` here made the two channels disagree on 5 of 7 intents: */
|
|
33
|
+
/* `---fg` is the on-intent foreground (white), legible only ON */
|
|
34
|
+
/* the saturated `---bg`, so a standalone `.origam--color-primary` */
|
|
35
|
+
/* painted white-on-white. Pair it with `.origam--bg-*` below */
|
|
36
|
+
/* when you want the on-intent foreground instead. See #818. */
|
|
37
|
+
.origam--color-primary { color: var(--origam-color__action--primary---fgSubtle); }
|
|
27
38
|
.origam--color-secondary { color: var(--origam-color__action--secondary---fg); }
|
|
28
|
-
.origam--color-success { color: var(--origam-color__feedback--success---
|
|
29
|
-
.origam--color-warning { color: var(--origam-color__feedback--warning---
|
|
30
|
-
.origam--color-danger { color: var(--origam-color__feedback--danger---
|
|
31
|
-
.origam--color-info { color: var(--origam-color__feedback--info---
|
|
39
|
+
.origam--color-success { color: var(--origam-color__feedback--success---fgSubtle); }
|
|
40
|
+
.origam--color-warning { color: var(--origam-color__feedback--warning---fgSubtle); }
|
|
41
|
+
.origam--color-danger { color: var(--origam-color__feedback--danger---fgSubtle); }
|
|
42
|
+
.origam--color-info { color: var(--origam-color__feedback--info---fgSubtle); }
|
|
32
43
|
.origam--color-neutral { color: var(--origam-color__text---primary); }
|
|
33
44
|
|
|
34
45
|
/* ── Background color (intent) ───────────────────────────────── */
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.origam--bg-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
/* */
|
|
47
|
+
/* Each intent surface carries its PAIRED on-intent foreground, */
|
|
48
|
+
/* the same auto-pairing `useColor()` already performs on the */
|
|
49
|
+
/* inline channel ("lets `bgColor=primary` alone auto-pair the */
|
|
50
|
+
/* right text colour"). Without it, `.origam--bg-primary` on bare */
|
|
51
|
+
/* markup inherited the page's dark ink onto a saturated surface. */
|
|
52
|
+
/* Every pair below is >= 4.5:1 in the light token set. See #818. */
|
|
53
|
+
.origam--bg-primary { background-color: var(--origam-color__action--primary---bg); color: var(--origam-color__action--primary---fg); }
|
|
54
|
+
.origam--bg-secondary { background-color: var(--origam-color__action--secondary---bg); color: var(--origam-color__action--secondary---fg); }
|
|
55
|
+
.origam--bg-success { background-color: var(--origam-color__feedback--success---bg); color: var(--origam-color__feedback--success---fg); }
|
|
56
|
+
.origam--bg-warning { background-color: var(--origam-color__feedback--warning---bg); color: var(--origam-color__feedback--warning---fg); }
|
|
57
|
+
.origam--bg-danger { background-color: var(--origam-color__feedback--danger---bg); color: var(--origam-color__feedback--danger---fg); }
|
|
58
|
+
.origam--bg-info { background-color: var(--origam-color__feedback--info---bg); color: var(--origam-color__feedback--info---fg); }
|
|
59
|
+
.origam--bg-neutral { background-color: var(--origam-color__surface---default); color: var(--origam-color__text---primary); }
|
|
42
60
|
|
|
43
61
|
/* ── Elevation (box-shadow) ───────────────────────────────── */
|
|
44
62
|
.origam--shadow-none { box-shadow: var(--origam-shadow---none); }
|
|
@@ -88,6 +88,8 @@
|
|
|
88
88
|
<div
|
|
89
89
|
v-if="resolvedView === CALENDAR_VIEW.MONTH"
|
|
90
90
|
class="origam-calendar__body origam-calendar__body--month"
|
|
91
|
+
role="grid"
|
|
92
|
+
:aria-label="ariaMonthLabel"
|
|
91
93
|
data-cy="origam-calendar-body-month"
|
|
92
94
|
>
|
|
93
95
|
<div
|
|
@@ -110,8 +112,6 @@
|
|
|
110
112
|
</div>
|
|
111
113
|
<div
|
|
112
114
|
class="origam-calendar__month-grid"
|
|
113
|
-
role="grid"
|
|
114
|
-
:aria-label="ariaMonthLabel"
|
|
115
115
|
>
|
|
116
116
|
<div
|
|
117
117
|
v-for="(weekRow, rowIndex) in monthGrid"
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
:data-cy="`origam-chart-map-country-${ country.code }`"
|
|
84
84
|
:tabindex="country.hasData ? 0 : -1"
|
|
85
85
|
:role="country.hasData ? 'button' : undefined"
|
|
86
|
-
:aria-label="countryAriaLabel(country)"
|
|
86
|
+
:aria-label="country.hasData ? countryAriaLabel(country) : undefined"
|
|
87
87
|
@click="onCountryActivate(country, $event)"
|
|
88
88
|
@keydown.enter.prevent="onCountryActivate(country, $event)"
|
|
89
89
|
@keydown.space.prevent="onCountryActivate(country, $event)"
|
|
@@ -422,7 +422,24 @@ defineExpose({
|
|
|
422
422
|
}
|
|
423
423
|
|
|
424
424
|
&--loading {
|
|
425
|
-
|
|
425
|
+
/*********************************************************
|
|
426
|
+
* #818 — le voile de chargement epargne les EN-TETES
|
|
427
|
+
*
|
|
428
|
+
* @description
|
|
429
|
+
* Un libelle de colonne n'est pas la donnee en cours de
|
|
430
|
+
* rafraichissement : c'est la structure du tableau, elle
|
|
431
|
+
* reste lisible pendant le chargement. Le voile s'applique
|
|
432
|
+
* donc au corps, pas a l'en-tete.
|
|
433
|
+
*
|
|
434
|
+
* @description
|
|
435
|
+
* Mesure axe-core (Chromium, theme origam clair) : l'en-tete
|
|
436
|
+
* peint `--origam-color__action--primary---fgSubtle`
|
|
437
|
+
* (#6d28d9) ; a 0.5 sur blanc il composite en #b694ec, soit
|
|
438
|
+
* 2.38:1 — tres sous les 4.5:1 de l'AA. Remonter l'opacite ne
|
|
439
|
+
* sauve pas la regle : il faudrait >= 0.82 pour repasser AA,
|
|
440
|
+
* et un voile a 0.82 n'est plus un voile.
|
|
441
|
+
********************************************************/
|
|
442
|
+
&:deep(.origam-data-table-cell:not(.origam-data-table-header-cell)) {
|
|
426
443
|
opacity: var(--origam-data-table--loading---opacity, var(--origam-data-table__loading---opacity, 0.5));
|
|
427
444
|
}
|
|
428
445
|
}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
>
|
|
16
16
|
<origam-data-table-column-cell class="origam-data-table-group-header-row__column">
|
|
17
17
|
<origam-btn
|
|
18
|
+
:aria-expanded="isGroupOpen(item)"
|
|
19
|
+
:aria-label="isGroupOpen(item) ? t('origam.data_table_group_header_row.collapse_group') : t('origam.data_table_group_header_row.expand_group')"
|
|
18
20
|
:icon="groupIcon"
|
|
19
21
|
size="small"
|
|
20
22
|
variant="text"
|
|
@@ -54,6 +56,7 @@ import OrigamCheckboxBtn from "../Checkbox/OrigamCheckboxBtn.vue";
|
|
|
54
56
|
import OrigamDataTableColumnCell from "./OrigamDataTableColumnCell.vue";
|
|
55
57
|
import { useGroupBy } from "../../composables/DataTable/group.composable";
|
|
56
58
|
import { useHeaders } from "../../composables/DataTable/headers.composable";
|
|
59
|
+
import { useLocale } from "../../composables/Commons/locale.composable";
|
|
57
60
|
import { useProps } from "../../composables/Commons/props.composable";
|
|
58
61
|
import { useSelection } from "../../composables/DataTable/select.composable";
|
|
59
62
|
import { useStyle } from "../../composables/Commons/style.composable";
|
|
@@ -74,6 +77,7 @@ const props = defineProps({
|
|
|
74
77
|
defineEmits([]);
|
|
75
78
|
defineSlots();
|
|
76
79
|
const { filterProps } = useProps(props);
|
|
80
|
+
const { t } = useLocale();
|
|
77
81
|
const { isGroupOpen, toggleGroup, extractRows } = useGroupBy();
|
|
78
82
|
const { isSelected, isSomeSelected, select } = useSelection();
|
|
79
83
|
const { columns } = useHeaders();
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
<origam-btn
|
|
19
19
|
key="mode-btn"
|
|
20
|
+
:aria-label="t('origam.date_picker_controls.toggle_year')"
|
|
20
21
|
:disabled="disableYear"
|
|
21
22
|
:icon="modeIcon"
|
|
22
23
|
class="origam-date-picker-controls__mode-btn"
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
<origam-btn-group>
|
|
36
37
|
<template #default>
|
|
37
38
|
<origam-btn
|
|
39
|
+
:aria-label="t('origam.date_picker_controls.prev')"
|
|
38
40
|
:disabled="disablePrev"
|
|
39
41
|
:icon="prevIcon"
|
|
40
42
|
:rounded="0"
|
|
@@ -42,6 +44,7 @@
|
|
|
42
44
|
/>
|
|
43
45
|
|
|
44
46
|
<origam-btn
|
|
47
|
+
:aria-label="t('origam.date_picker_controls.next')"
|
|
45
48
|
:disabled="disableNext"
|
|
46
49
|
:icon="nextIcon"
|
|
47
50
|
:rounded="0"
|
|
@@ -58,6 +61,7 @@ import OrigamBtn from "../Btn/OrigamBtn.vue";
|
|
|
58
61
|
import OrigamBtnGroup from "../Btn/OrigamBtnGroup.vue";
|
|
59
62
|
import OrigamSpacer from "../Grids/OrigamSpacer.vue";
|
|
60
63
|
import { useUnsupportedProp } from "../../composables/Commons/unsupportedProp.composable";
|
|
64
|
+
import { useLocale } from "../../composables/Commons/locale.composable";
|
|
61
65
|
import { useProps } from "../../composables/Commons/props.composable";
|
|
62
66
|
import { useStyle } from "../../composables/Commons/style.composable";
|
|
63
67
|
import { DATE_MODE } from "../../enums/DatePicker/date-picker.enum";
|
|
@@ -94,6 +98,7 @@ useUnsupportedProp(
|
|
|
94
98
|
const emits = defineEmits(["click:year", "click:month", "click:prev", "click:next"]);
|
|
95
99
|
defineSlots();
|
|
96
100
|
const { filterProps } = useProps(props);
|
|
101
|
+
const { t } = useLocale();
|
|
97
102
|
const disableMonth = computed(() => {
|
|
98
103
|
return props.disabled || props.disabledMonth;
|
|
99
104
|
});
|
|
@@ -1021,10 +1021,18 @@ defineExpose({
|
|
|
1021
1021
|
border-radius: var(--origam-field---border-radius, 8px) var(--origam-field---border-radius, 8px) 0 0;
|
|
1022
1022
|
--origam-field__input---padding-top: var(--origam-field__input---padding-block-filled);
|
|
1023
1023
|
|
|
1024
|
+
// #818 — meme correctif que les variantes `outlined` /
|
|
1025
|
+
// `underlined` : l'alpha du trait passe sur `border-color`,
|
|
1026
|
+
// sans quoi le groupe de composition delave le label flottant
|
|
1027
|
+
// monte dans `__outline--notch`.
|
|
1024
1028
|
#{$this}__outlines {
|
|
1025
1029
|
#{$this}__outline {
|
|
1026
|
-
border-bottom: 1px solid
|
|
1027
|
-
|
|
1030
|
+
border-bottom: 1px solid color-mix(
|
|
1031
|
+
in srgb,
|
|
1032
|
+
var(--origam-field---border-color, currentColor)
|
|
1033
|
+
calc(var(--origam-field--variant-filled---border-opacity, .42) * 100%),
|
|
1034
|
+
transparent
|
|
1035
|
+
);
|
|
1028
1036
|
}
|
|
1029
1037
|
}
|
|
1030
1038
|
|
|
@@ -1032,7 +1040,7 @@ defineExpose({
|
|
|
1032
1040
|
&#{$this}--focused {
|
|
1033
1041
|
#{$this}__outlines {
|
|
1034
1042
|
#{$this}__outline {
|
|
1035
|
-
|
|
1043
|
+
border-bottom-color: var(--origam-field---border-color, currentColor);
|
|
1036
1044
|
}
|
|
1037
1045
|
}
|
|
1038
1046
|
}
|
|
@@ -1065,9 +1073,32 @@ defineExpose({
|
|
|
1065
1073
|
background: var(--origam-field---background-color, var(--origam-field---variant-outlined-background-color, transparent));
|
|
1066
1074
|
|
|
1067
1075
|
#{$this}__outline {
|
|
1068
|
-
|
|
1076
|
+
/*********************************************************
|
|
1077
|
+
* #818 — l'alpha du trait vit sur la COULEUR, pas sur la boite
|
|
1078
|
+
*
|
|
1079
|
+
* @description
|
|
1080
|
+
* `opacity` sur `__outline` cree un groupe de composition
|
|
1081
|
+
* qui delave TOUT le sous-arbre. Or `__outline--notch`
|
|
1082
|
+
* n'est pas vide : le label flottant y est monte (voir le
|
|
1083
|
+
* template). Le label heritait donc du .38 destine au seul
|
|
1084
|
+
* trait de bordure — mesure axe-core, Chromium :
|
|
1085
|
+
* #6d28d9 a .38 sur blanc = #c8adf1, soit 1.96:1, tres
|
|
1086
|
+
* sous les 4.5:1 de l'AA.
|
|
1087
|
+
*
|
|
1088
|
+
* @description
|
|
1089
|
+
* Porter l'alpha sur `border-color` rend EXACTEMENT le meme
|
|
1090
|
+
* trait (la boite n'a ni fond ni autre contenu peint :
|
|
1091
|
+
* `__outlines` est en `position: absolute` /
|
|
1092
|
+
* `pointer-events: none`, les pattes ne portent que des
|
|
1093
|
+
* bordures) et laisse le label a son opacite pleine.
|
|
1094
|
+
********************************************************/
|
|
1095
|
+
border-color: color-mix(
|
|
1096
|
+
in srgb,
|
|
1097
|
+
var(--origam-field---border-color, var(--origam-field__outline---border-color, currentColor))
|
|
1098
|
+
calc(var(--origam-field---border-opacity, var(--origam-field__outline---border-opacity, .38)) * 100%),
|
|
1099
|
+
transparent
|
|
1100
|
+
);
|
|
1069
1101
|
border-style: var(--origam-field__outline---border-style, solid);
|
|
1070
|
-
opacity: var(--origam-field---border-opacity, var(--origam-field__outline---border-opacity, .38));
|
|
1071
1102
|
|
|
1072
1103
|
&--start {
|
|
1073
1104
|
border-top-width: var(--origam-field---border-width);
|
|
@@ -1131,11 +1162,19 @@ defineExpose({
|
|
|
1131
1162
|
--origam-field---border-width: 1px;
|
|
1132
1163
|
--origam-field---border-opacity: .38;
|
|
1133
1164
|
|
|
1165
|
+
// #818 — meme raison que la variante `outlined` ci-dessus :
|
|
1166
|
+
// l'alpha passe sur `border-color` pour ne plus delaver le
|
|
1167
|
+
// label flottant, enfant de `__outline--notch`. La transition
|
|
1168
|
+
// suit la couleur puisque c'est elle qui porte desormais l'alpha.
|
|
1134
1169
|
#{$this}__outline {
|
|
1135
|
-
border-color:
|
|
1170
|
+
border-color: color-mix(
|
|
1171
|
+
in srgb,
|
|
1172
|
+
var(--origam-field---border-color, var(--origam-field__outline---border-color, currentColor))
|
|
1173
|
+
calc(var(--origam-field---border-opacity, var(--origam-field__outline---border-opacity, .38)) * 100%),
|
|
1174
|
+
transparent
|
|
1175
|
+
);
|
|
1136
1176
|
border-style: var(--origam-field__outline---border-style, solid);
|
|
1137
|
-
|
|
1138
|
-
transition: opacity var(--origam-field__outline---transition-duration, .25s) var(--origam-field__outline---transition-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1177
|
+
transition: border-color var(--origam-field__outline---transition-duration, .25s) var(--origam-field__outline---transition-easing, cubic-bezier(.4, 0, .2, 1));
|
|
1139
1178
|
border-width: 0;
|
|
1140
1179
|
|
|
1141
1180
|
&--start {
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
ref="rootEl"
|
|
6
6
|
:class="infiniteScrollClasses"
|
|
7
7
|
:style="infiniteScrollStyles"
|
|
8
|
+
:tabindex="hasFocusableDescendant ? undefined : 0"
|
|
8
9
|
>
|
|
9
10
|
<div class="origam-infinite-scroll__side" role="status" aria-live="polite" :style="typographyStyles">
|
|
10
11
|
<template v-if="hasStartIntersect">
|
|
@@ -129,6 +130,7 @@ import { IN_BROWSER } from "../../consts/Commons/commons.const";
|
|
|
129
130
|
import { DIRECTION } from "../../enums/Commons/direction.enum";
|
|
130
131
|
import { INFINITE_SCROLL_MODE, INFINITE_SCROLL_SIDE, INFINITE_SCROLL_STATUS } from "../../enums/InfiniteScroll/infinite-scroll.enum";
|
|
131
132
|
import { PROGRESS_TYPE } from "../../enums/Progress/progress.enum";
|
|
133
|
+
import { focusableChildren } from "../../utils/Commons/commons.util";
|
|
132
134
|
const props = defineProps({
|
|
133
135
|
side: { type: null, required: false, default: INFINITE_SCROLL_SIDE.END },
|
|
134
136
|
mode: { type: null, required: false, default: INFINITE_SCROLL_MODE.INTERSECT },
|
|
@@ -159,6 +161,21 @@ const { typographyStyles } = useTypography(props, "infinite-scroll__loader");
|
|
|
159
161
|
const { colorClasses, colorStyles } = useBothColor(toRef(props, "bgColor"), toRef(props, "color"));
|
|
160
162
|
const rootEl = ref();
|
|
161
163
|
const isIntersecting = shallowRef(false);
|
|
164
|
+
const hasFocusableDescendant = shallowRef(false);
|
|
165
|
+
let focusableObserver;
|
|
166
|
+
const refreshHasFocusableDescendant = () => {
|
|
167
|
+
if (!rootEl.value) return;
|
|
168
|
+
hasFocusableDescendant.value = focusableChildren(rootEl.value).length > 0;
|
|
169
|
+
};
|
|
170
|
+
onMounted(() => {
|
|
171
|
+
if (!IN_BROWSER || !rootEl.value) return;
|
|
172
|
+
refreshHasFocusableDescendant();
|
|
173
|
+
focusableObserver = new MutationObserver(refreshHasFocusableDescendant);
|
|
174
|
+
focusableObserver.observe(rootEl.value, { childList: true, subtree: true });
|
|
175
|
+
});
|
|
176
|
+
onBeforeUnmount(() => {
|
|
177
|
+
focusableObserver?.disconnect();
|
|
178
|
+
});
|
|
162
179
|
const propertyDirection = computed(() => {
|
|
163
180
|
return props.direction === DIRECTION.VERTICAL ? "scrollTop" : "scrollLeft";
|
|
164
181
|
});
|
|
@@ -339,7 +339,7 @@ const handleFocusOut = (event) => {
|
|
|
339
339
|
const next = event.relatedTarget;
|
|
340
340
|
if (root && next instanceof Node && root.contains(next)) return;
|
|
341
341
|
noteTransition(true);
|
|
342
|
-
|
|
342
|
+
confirm();
|
|
343
343
|
};
|
|
344
344
|
const restoreFocusAfterEdit = async () => {
|
|
345
345
|
if (!restoreFocusOnLeave) return;
|
|
@@ -350,7 +350,7 @@ const restoreFocusAfterEdit = async () => {
|
|
|
350
350
|
};
|
|
351
351
|
watch(isEditing, async (next) => {
|
|
352
352
|
if (!next) {
|
|
353
|
-
|
|
353
|
+
restoreFocusAfterEdit();
|
|
354
354
|
return;
|
|
355
355
|
}
|
|
356
356
|
if (!props.autoFocus) return;
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
:is="tag"
|
|
4
4
|
:id="styleId"
|
|
5
5
|
v-contrast
|
|
6
|
+
:aria-labelledby="id"
|
|
6
7
|
:class="listGroupClasses"
|
|
8
|
+
:role="groupRole"
|
|
7
9
|
:style="listGroupStyles"
|
|
8
10
|
>
|
|
9
11
|
<origam-defaults-provider :defaults="slotDefaults">
|
|
@@ -65,6 +67,7 @@ import { useStateFlag } from "../../composables/Commons/stateFlag.composable";
|
|
|
65
67
|
import { useStyle } from "../../composables/Commons/style.composable";
|
|
66
68
|
import vContrast from "../../directives/Contrast/contrast.directive";
|
|
67
69
|
import { omitUndefined } from "../../utils/Commons/commons.util";
|
|
70
|
+
import { LIST_ITEM_ROLE } from "../../enums/List/list-item.enum";
|
|
68
71
|
import { MDI_ICONS } from "../../enums/Commons/mdi.enum";
|
|
69
72
|
const props = defineProps({
|
|
70
73
|
collapseIcon: { type: null, required: false, default: MDI_ICONS.CHEVRON_UP },
|
|
@@ -147,6 +150,10 @@ const id = computed(() => `origam-list-group--id-${String(_id.value)}`);
|
|
|
147
150
|
const list = useList();
|
|
148
151
|
const { isBooted } = useSsrBoot();
|
|
149
152
|
const transition = ref({ component: OrigamExpandY });
|
|
153
|
+
const groupRole = computed(() => {
|
|
154
|
+
if (!list) return void 0;
|
|
155
|
+
return list.itemRole.value === LIST_ITEM_ROLE.OPTION ? "group" : LIST_ITEM_ROLE.LISTITEM;
|
|
156
|
+
});
|
|
150
157
|
const toggleIcon = computed(() => {
|
|
151
158
|
if (isOpen.value) {
|
|
152
159
|
return props.collapseIcon;
|
|
@@ -336,13 +336,13 @@ const eventState = computed(() => {
|
|
|
336
336
|
if (!props.disabled && !props.readonly) {
|
|
337
337
|
model.value = normalizedValue.value === value && props.clearable ? 0 : value;
|
|
338
338
|
}
|
|
339
|
-
|
|
339
|
+
nextTick(() => resyncRadios(e?.target));
|
|
340
340
|
};
|
|
341
341
|
const onChange = (e) => {
|
|
342
342
|
if (!props.disabled && !props.readonly) {
|
|
343
343
|
model.value = value;
|
|
344
344
|
}
|
|
345
|
-
|
|
345
|
+
nextTick(() => resyncRadios(e?.target));
|
|
346
346
|
};
|
|
347
347
|
return {
|
|
348
348
|
onMouseenter: props.hover ? onMouseenter : void 0,
|