@sentropic/design-system-vue 0.12.0 → 0.13.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.
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +235 -74
- package/dist/Calendar.js.map +1 -1
- package/dist/Popper.d.ts +58 -0
- package/dist/Popper.d.ts.map +1 -1
- package/dist/Popper.js +136 -5
- package/dist/Popper.js.map +1 -1
- package/dist/Rating.d.ts.map +1 -1
- package/dist/Rating.js +111 -18
- package/dist/Rating.js.map +1 -1
- package/dist/SelectableList.d.ts +2 -0
- package/dist/SelectableList.d.ts.map +1 -1
- package/dist/SelectableList.js +72 -21
- package/dist/SelectableList.js.map +1 -1
- package/dist/SelectableRow.d.ts +2 -2
- package/dist/SelectableRow.d.ts.map +1 -1
- package/dist/SelectableRow.js +15 -5
- package/dist/SelectableRow.js.map +1 -1
- package/dist/SlideIndicator.d.ts.map +1 -1
- package/dist/SlideIndicator.js +12 -5
- package/dist/SlideIndicator.js.map +1 -1
- package/dist/TimePicker.d.ts.map +1 -1
- package/dist/TimePicker.js +150 -14
- package/dist/TimePicker.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/Popper.js
CHANGED
|
@@ -83,11 +83,21 @@ export function computePosition(anchorRect, panelWidth, panelHeight, options) {
|
|
|
83
83
|
}
|
|
84
84
|
return { placement: joinPlacement(side, align), top, left };
|
|
85
85
|
}
|
|
86
|
+
/** Returns all keyboard-focusable children of `container`. */
|
|
87
|
+
function getFocusable(container) {
|
|
88
|
+
if (typeof window === "undefined")
|
|
89
|
+
return [];
|
|
90
|
+
return Array.from(container.querySelectorAll('a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),' +
|
|
91
|
+
'textarea:not([disabled]),[tabindex]:not([tabindex="-1"]),[contenteditable="true"]')).filter((el) => !el.closest("[disabled]"));
|
|
92
|
+
}
|
|
86
93
|
/**
|
|
87
94
|
* Float a panel next to an anchor element. Positioning is recomputed on open,
|
|
88
95
|
* scroll, and resize via `computePosition` (pure geometry shared across
|
|
89
96
|
* frameworks). Renders nothing unless `open` and an `anchor` are provided.
|
|
90
97
|
* SSR-safe: all DOM access happens inside `onMounted` / watchers.
|
|
98
|
+
*
|
|
99
|
+
* A11y: optional `trapFocus` traps keyboard focus inside the panel (Tab/Shift+Tab
|
|
100
|
+
* cycle, Escape calls `onClose`, focus restored to the pre-open element on close).
|
|
91
101
|
*/
|
|
92
102
|
export const Popper = defineComponent({
|
|
93
103
|
name: "Popper",
|
|
@@ -105,6 +115,16 @@ export const Popper = defineComponent({
|
|
|
105
115
|
strategy: { type: String, default: "absolute" },
|
|
106
116
|
portal: { type: Boolean, default: true },
|
|
107
117
|
class: { type: String, default: undefined },
|
|
118
|
+
onPlacementChange: {
|
|
119
|
+
type: Function,
|
|
120
|
+
default: undefined,
|
|
121
|
+
},
|
|
122
|
+
trapFocus: { type: Boolean, default: false },
|
|
123
|
+
closeOnEscape: { type: Boolean, default: true },
|
|
124
|
+
onClose: {
|
|
125
|
+
type: Function,
|
|
126
|
+
default: undefined,
|
|
127
|
+
},
|
|
108
128
|
},
|
|
109
129
|
emits: {
|
|
110
130
|
placementChange: (_placement) => true,
|
|
@@ -116,6 +136,9 @@ export const Popper = defineComponent({
|
|
|
116
136
|
// Placement actually applied (may differ from the requested `placement`
|
|
117
137
|
// after a flip). Defaults to the requested placement.
|
|
118
138
|
const resolvedPlacement = ref(props.placement);
|
|
139
|
+
// SSR-safe: capture the element that had focus before the panel opened.
|
|
140
|
+
// Plain variable (not ref) so writes inside watch don't trigger re-runs.
|
|
141
|
+
let preFocusEl = null;
|
|
119
142
|
function reposition() {
|
|
120
143
|
if (typeof window === "undefined")
|
|
121
144
|
return;
|
|
@@ -151,6 +174,7 @@ export const Popper = defineComponent({
|
|
|
151
174
|
if (result.placement !== resolvedPlacement.value) {
|
|
152
175
|
resolvedPlacement.value = result.placement;
|
|
153
176
|
emit("placementChange", result.placement);
|
|
177
|
+
props.onPlacementChange?.(result.placement);
|
|
154
178
|
}
|
|
155
179
|
}
|
|
156
180
|
const onScroll = () => reposition();
|
|
@@ -161,8 +185,6 @@ export const Popper = defineComponent({
|
|
|
161
185
|
return;
|
|
162
186
|
if (!props.open || !props.anchor)
|
|
163
187
|
return;
|
|
164
|
-
// Reset to the requested placement before recomputing so a re-open
|
|
165
|
-
// re-evaluates flips from scratch.
|
|
166
188
|
resolvedPlacement.value = props.placement;
|
|
167
189
|
reposition();
|
|
168
190
|
if (!listening) {
|
|
@@ -180,13 +202,120 @@ export const Popper = defineComponent({
|
|
|
180
202
|
listening = false;
|
|
181
203
|
}
|
|
182
204
|
}
|
|
205
|
+
// ─── a11y: focus management ──────────────────────────────────────────────
|
|
206
|
+
// Escape sur document (closeOnEscape).
|
|
207
|
+
let escapeCleanup = null;
|
|
208
|
+
// focusin recapture (trapFocus).
|
|
209
|
+
let focusinCleanup = null;
|
|
210
|
+
function stopA11y() {
|
|
211
|
+
escapeCleanup?.();
|
|
212
|
+
escapeCleanup = null;
|
|
213
|
+
focusinCleanup?.();
|
|
214
|
+
focusinCleanup = null;
|
|
215
|
+
}
|
|
216
|
+
function startA11y() {
|
|
217
|
+
if (typeof window === "undefined")
|
|
218
|
+
return;
|
|
219
|
+
if (!props.open)
|
|
220
|
+
return;
|
|
221
|
+
// Snapshot pre-focus element (trapFocus only).
|
|
222
|
+
if (props.trapFocus) {
|
|
223
|
+
preFocusEl = document.activeElement;
|
|
224
|
+
// Move focus into the panel after render.
|
|
225
|
+
setTimeout(() => {
|
|
226
|
+
if (!panel.value)
|
|
227
|
+
return;
|
|
228
|
+
const focusable = getFocusable(panel.value);
|
|
229
|
+
if (focusable.length > 0)
|
|
230
|
+
focusable[0].focus();
|
|
231
|
+
else
|
|
232
|
+
panel.value.focus();
|
|
233
|
+
}, 0);
|
|
234
|
+
}
|
|
235
|
+
// Escape on document.
|
|
236
|
+
if (props.closeOnEscape) {
|
|
237
|
+
const handler = (e) => {
|
|
238
|
+
if (e.key === "Escape") {
|
|
239
|
+
e.preventDefault();
|
|
240
|
+
props.onClose?.();
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
document.addEventListener("keydown", handler);
|
|
244
|
+
escapeCleanup = () => document.removeEventListener("keydown", handler);
|
|
245
|
+
}
|
|
246
|
+
// focusin recapture (trapFocus only).
|
|
247
|
+
if (props.trapFocus) {
|
|
248
|
+
const handleFocusIn = (e) => {
|
|
249
|
+
if (!panel.value)
|
|
250
|
+
return;
|
|
251
|
+
const target = e.target;
|
|
252
|
+
if (target && !panel.value.contains(target)) {
|
|
253
|
+
const focusable = getFocusable(panel.value);
|
|
254
|
+
if (focusable.length > 0)
|
|
255
|
+
focusable[0].focus();
|
|
256
|
+
else
|
|
257
|
+
panel.value.focus();
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
document.addEventListener("focusin", handleFocusIn);
|
|
261
|
+
focusinCleanup = () => document.removeEventListener("focusin", handleFocusIn);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
function stopFocusTrap() {
|
|
265
|
+
stopA11y();
|
|
266
|
+
// Restore focus only if trapFocus was active and element is still in DOM.
|
|
267
|
+
if (props.trapFocus &&
|
|
268
|
+
preFocusEl &&
|
|
269
|
+
typeof preFocusEl.focus === "function" &&
|
|
270
|
+
document.contains(preFocusEl)) {
|
|
271
|
+
preFocusEl.focus();
|
|
272
|
+
}
|
|
273
|
+
preFocusEl = null;
|
|
274
|
+
}
|
|
183
275
|
onMounted(start);
|
|
184
|
-
watch(() => [props.open, props.anchor], () => {
|
|
276
|
+
watch(() => [props.open, props.anchor], ([open]) => {
|
|
185
277
|
stop();
|
|
186
|
-
|
|
278
|
+
stopA11y();
|
|
279
|
+
if (open) {
|
|
280
|
+
start();
|
|
281
|
+
startA11y();
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
stopFocusTrap();
|
|
285
|
+
}
|
|
187
286
|
});
|
|
188
287
|
watch(() => [props.placement, props.offset, props.flip, props.shift, props.strategy], () => reposition());
|
|
189
|
-
onBeforeUnmount(
|
|
288
|
+
onBeforeUnmount(() => {
|
|
289
|
+
stop();
|
|
290
|
+
stopA11y();
|
|
291
|
+
preFocusEl = null;
|
|
292
|
+
});
|
|
293
|
+
/** Keyboard handler attached to the panel for Tab-trap cycling. */
|
|
294
|
+
function handlePanelKeydown(e) {
|
|
295
|
+
if (!props.trapFocus || !panel.value)
|
|
296
|
+
return;
|
|
297
|
+
if (e.key !== "Tab")
|
|
298
|
+
return;
|
|
299
|
+
const focusable = getFocusable(panel.value);
|
|
300
|
+
if (focusable.length === 0) {
|
|
301
|
+
e.preventDefault();
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const first = focusable[0];
|
|
305
|
+
const last = focusable[focusable.length - 1];
|
|
306
|
+
if (e.shiftKey) {
|
|
307
|
+
if (document.activeElement === first) {
|
|
308
|
+
e.preventDefault();
|
|
309
|
+
last.focus();
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
if (document.activeElement === last) {
|
|
314
|
+
e.preventDefault();
|
|
315
|
+
first.focus();
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
190
319
|
return () => {
|
|
191
320
|
if (!props.open || !props.anchor)
|
|
192
321
|
return null;
|
|
@@ -196,6 +325,8 @@ export const Popper = defineComponent({
|
|
|
196
325
|
class: classNames("st-popper", props.class),
|
|
197
326
|
"data-popper-placement": resolvedPlacement.value,
|
|
198
327
|
style: `position: ${props.strategy}; top: ${top.value}px; left: ${left.value}px;`,
|
|
328
|
+
tabindex: props.trapFocus ? -1 : undefined,
|
|
329
|
+
onKeydown: props.trapFocus ? handlePanelKeydown : undefined,
|
|
199
330
|
}, [
|
|
200
331
|
slots.default?.(),
|
|
201
332
|
props.arrow
|
package/dist/Popper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popper.js","sourceRoot":"","sources":["../src/Popper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Popper.js","sourceRoot":"","sources":["../src/Popper.ts"],"names":[],"mappings":"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"}
|
package/dist/Rating.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../src/Rating.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAK5C,MAAM,MAAM,WAAW,GAAG;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiDF,eAAO,MAAM,MAAM;;;;;;;;;;cAMgB,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;cAKpC,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;cALT,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;cAKpC,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;sBALK,MAAM,KAAK,IAAI;;;;;;;
|
|
1
|
+
{"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../src/Rating.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAK5C,MAAM,MAAM,WAAW,GAAG;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiDF,eAAO,MAAM,MAAM;;;;;;;;;;cAMgB,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;cAKpC,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;cALT,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;cAKpC,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;sBALK,MAAM,KAAK,IAAI;;;;;;;4EAoP9D,CAAC"}
|
package/dist/Rating.js
CHANGED
|
@@ -55,6 +55,8 @@ export const Rating = defineComponent({
|
|
|
55
55
|
emits: ["change", "update:modelValue"],
|
|
56
56
|
setup(props, { emit, attrs }) {
|
|
57
57
|
const internal = ref(props.value ?? 0);
|
|
58
|
+
// Refs des boutons radio pour déplacer le focus programmatiquement (mode entier).
|
|
59
|
+
const radioRefs = ref({});
|
|
58
60
|
return () => {
|
|
59
61
|
const current = props.value ?? internal.value;
|
|
60
62
|
const max = props.max;
|
|
@@ -62,6 +64,7 @@ export const Rating = defineComponent({
|
|
|
62
64
|
const stars = Array.from({ length: max }, (_, i) => i + 1);
|
|
63
65
|
// L'étoile « focusable » (tabindex 0) suit la valeur ; à 0 c'est la première.
|
|
64
66
|
const focusedStar = current > 0 ? Math.ceil(current) : 1;
|
|
67
|
+
const valueText = `${current} / ${max}`;
|
|
65
68
|
const fill = (star) => {
|
|
66
69
|
if (current >= star)
|
|
67
70
|
return "full";
|
|
@@ -96,57 +99,147 @@ export const Rating = defineComponent({
|
|
|
96
99
|
}
|
|
97
100
|
commit(next);
|
|
98
101
|
};
|
|
99
|
-
|
|
102
|
+
// Clavier pour le mode entier (radiogroup) : déplace le focus DOM.
|
|
103
|
+
const onRadioKeyDown = (event) => {
|
|
100
104
|
if (props.readonly)
|
|
101
105
|
return;
|
|
102
|
-
const step =
|
|
106
|
+
const step = 1;
|
|
103
107
|
let handled = true;
|
|
108
|
+
let next = null;
|
|
104
109
|
switch (event.key) {
|
|
105
110
|
case "ArrowRight":
|
|
106
111
|
case "ArrowUp":
|
|
107
|
-
|
|
112
|
+
next = Math.min(max, current + step);
|
|
108
113
|
break;
|
|
109
114
|
case "ArrowLeft":
|
|
110
115
|
case "ArrowDown":
|
|
111
|
-
|
|
116
|
+
// Ne pas descendre sous 1 (pas de radio "0").
|
|
117
|
+
next = Math.max(1, current - step);
|
|
112
118
|
break;
|
|
113
119
|
case "Home":
|
|
114
|
-
|
|
120
|
+
// Home → première étoile (1), pas 0.
|
|
121
|
+
next = 1;
|
|
115
122
|
break;
|
|
116
123
|
case "End":
|
|
117
|
-
|
|
124
|
+
next = max;
|
|
118
125
|
break;
|
|
119
126
|
default:
|
|
120
127
|
handled = false;
|
|
121
128
|
}
|
|
122
|
-
if (handled)
|
|
129
|
+
if (handled) {
|
|
123
130
|
event.preventDefault();
|
|
131
|
+
if (next !== null) {
|
|
132
|
+
commit(next);
|
|
133
|
+
const targetStar = next > 0 ? Math.ceil(next) : 1;
|
|
134
|
+
const targetEl = radioRefs.value[targetStar];
|
|
135
|
+
if (targetEl)
|
|
136
|
+
targetEl.focus();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
// Clavier pour le mode slider (allowHalf).
|
|
141
|
+
const onSliderKeyDown = (event) => {
|
|
142
|
+
if (props.readonly)
|
|
143
|
+
return;
|
|
144
|
+
const step = 0.5;
|
|
145
|
+
let handled = true;
|
|
146
|
+
let next = null;
|
|
147
|
+
switch (event.key) {
|
|
148
|
+
case "ArrowRight":
|
|
149
|
+
case "ArrowUp":
|
|
150
|
+
next = Math.min(max, current + step);
|
|
151
|
+
break;
|
|
152
|
+
case "ArrowLeft":
|
|
153
|
+
case "ArrowDown":
|
|
154
|
+
next = Math.max(0, current - step);
|
|
155
|
+
break;
|
|
156
|
+
case "Home":
|
|
157
|
+
next = 0;
|
|
158
|
+
break;
|
|
159
|
+
case "End":
|
|
160
|
+
next = max;
|
|
161
|
+
break;
|
|
162
|
+
default:
|
|
163
|
+
handled = false;
|
|
164
|
+
}
|
|
165
|
+
if (handled) {
|
|
166
|
+
event.preventDefault();
|
|
167
|
+
if (next !== null)
|
|
168
|
+
commit(next);
|
|
169
|
+
}
|
|
124
170
|
};
|
|
171
|
+
const baseClass = classNames("st-rating", `st-rating--${props.size}`, props.readonly && "st-rating--readonly", props.class);
|
|
172
|
+
// --- Mode readonly : role=img sur le conteneur, pas d'éléments interactifs disabled.
|
|
173
|
+
if (props.readonly) {
|
|
174
|
+
return h("div", {
|
|
175
|
+
...attrs,
|
|
176
|
+
class: baseClass,
|
|
177
|
+
role: "img",
|
|
178
|
+
"aria-label": props.label ? `${props.label} : ${valueText}` : valueText,
|
|
179
|
+
}, stars.map((star) => {
|
|
180
|
+
const state = fill(star);
|
|
181
|
+
return h("span", {
|
|
182
|
+
key: star,
|
|
183
|
+
class: classNames("st-rating__star", state === "full" && "st-rating__star--full", state === "half" && "st-rating__star--half"),
|
|
184
|
+
"aria-hidden": "true",
|
|
185
|
+
}, [
|
|
186
|
+
state === "half"
|
|
187
|
+
? StarHalfIcon(iconSize)
|
|
188
|
+
: StarIcon(iconSize, state === "full" ? "currentColor" : "none"),
|
|
189
|
+
]);
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
// --- Mode allowHalf : slider ARIA (valeurs fractionnaires).
|
|
193
|
+
if (props.allowHalf) {
|
|
194
|
+
return h("div", {
|
|
195
|
+
...attrs,
|
|
196
|
+
class: baseClass,
|
|
197
|
+
role: "slider",
|
|
198
|
+
"aria-label": props.label,
|
|
199
|
+
"aria-valuemin": 0,
|
|
200
|
+
"aria-valuemax": max,
|
|
201
|
+
"aria-valuenow": current,
|
|
202
|
+
"aria-valuetext": valueText,
|
|
203
|
+
tabindex: 0,
|
|
204
|
+
onKeydown: onSliderKeyDown,
|
|
205
|
+
}, stars.map((star) => {
|
|
206
|
+
const state = fill(star);
|
|
207
|
+
return h("span", {
|
|
208
|
+
key: star,
|
|
209
|
+
class: classNames("st-rating__star", state === "full" && "st-rating__star--full", state === "half" && "st-rating__star--half"),
|
|
210
|
+
"aria-hidden": "true",
|
|
211
|
+
onClick: (event) => onStarClick(event, star),
|
|
212
|
+
}, [
|
|
213
|
+
state === "half"
|
|
214
|
+
? StarHalfIcon(iconSize)
|
|
215
|
+
: StarIcon(iconSize, state === "full" ? "currentColor" : "none"),
|
|
216
|
+
]);
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
// --- Mode entier : radiogroup / radio avec roving tabindex.
|
|
220
|
+
// onKeydown est aussi sur le conteneur pour capturer les events qui
|
|
221
|
+
// n'ont pas encore bubblé depuis un radio enfant (tests + edge cases).
|
|
125
222
|
return h("div", {
|
|
126
223
|
...attrs,
|
|
127
|
-
class:
|
|
224
|
+
class: baseClass,
|
|
128
225
|
role: "radiogroup",
|
|
129
226
|
"aria-label": props.label,
|
|
130
|
-
|
|
227
|
+
onKeydown: onRadioKeyDown,
|
|
131
228
|
}, stars.map((star) => {
|
|
132
229
|
const state = fill(star);
|
|
133
230
|
return h("button", {
|
|
134
231
|
key: star,
|
|
232
|
+
ref: (el) => { radioRefs.value[star] = el; },
|
|
135
233
|
type: "button",
|
|
136
234
|
class: classNames("st-rating__star", state === "full" && "st-rating__star--full", state === "half" && "st-rating__star--half"),
|
|
137
235
|
role: "radio",
|
|
138
236
|
name: props.name,
|
|
139
|
-
"aria-checked":
|
|
237
|
+
"aria-checked": current === star ? "true" : "false",
|
|
140
238
|
"aria-label": `${star} / ${max}`,
|
|
141
|
-
tabindex:
|
|
142
|
-
disabled: props.readonly,
|
|
239
|
+
tabindex: star === focusedStar ? 0 : -1,
|
|
143
240
|
onClick: (event) => onStarClick(event, star),
|
|
144
|
-
onKeydown:
|
|
145
|
-
}, [
|
|
146
|
-
state === "half"
|
|
147
|
-
? StarHalfIcon(iconSize)
|
|
148
|
-
: StarIcon(iconSize, state === "full" ? "currentColor" : "none"),
|
|
149
|
-
]);
|
|
241
|
+
onKeydown: onRadioKeyDown,
|
|
242
|
+
}, [StarIcon(iconSize, state === "full" ? "currentColor" : "none")]);
|
|
150
243
|
}));
|
|
151
244
|
};
|
|
152
245
|
},
|
package/dist/Rating.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rating.js","sourceRoot":"","sources":["../src/Rating.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA0B7C,SAAS,QAAQ,CAAC,IAAY,EAAE,IAA6B;IAC3D,OAAO,CAAC,CACN,KAAK,EACL;QACE,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,WAAW;QACpB,IAAI;QACJ,MAAM,EAAE,cAAc;QACtB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,OAAO;QACzB,iBAAiB,EAAE,OAAO;QAC1B,aAAa,EAAE,MAAM;KACtB,EACD;QACE,CAAC,CAAC,SAAS,EAAE;YACX,MAAM,EACJ,gGAAgG;SACnG,CAAC;KACH,CACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,CAAC,CACN,KAAK,EACL;QACE,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,cAAc;QACtB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,OAAO;QACzB,iBAAiB,EAAE,OAAO;QAC1B,aAAa,EAAE,MAAM;KACtB,EACD;QACE,CAAC,CAAC,MAAM,EAAE;YACR,CAAC,EAAE,2DAA2D;YAC9D,IAAI,EAAE,cAAc;SACrB,CAAC;QACF,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,yDAAyD,EAAE,CAAC;KAC5E,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC;IACpC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3C,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;QACjC,QAAQ,EAAE;YACR,IAAI,EAAE,QAAoD;YAC1D,OAAO,EAAE,SAAS;SACnB;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,MAA0B,EAAE,OAAO,EAAE,IAAI,EAAE;QACzD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;KAC5C;IACD,KAAK,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACtC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Rating.js","sourceRoot":"","sources":["../src/Rating.ts"],"names":[],"mappings":"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"}
|
package/dist/SelectableList.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export type SelectableListProps = {
|
|
|
30
30
|
* `multiple` toggles rows independently. Controlled via `value`/`onChange`,
|
|
31
31
|
* otherwise it keeps its own internal selection. Pilots each child row through
|
|
32
32
|
* provide/inject (role="option" + the computed tabindex / aria-selected).
|
|
33
|
+
* Disabled rows are registered but skipped during keyboard navigation; if a
|
|
34
|
+
* disabled row holds focus, focus transfers to the next enabled row.
|
|
33
35
|
*/
|
|
34
36
|
export declare const SelectableList: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
35
37
|
label: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectableList.d.ts","sourceRoot":"","sources":["../src/SelectableList.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SelectableList.d.ts","sourceRoot":"","sources":["../src/SelectableList.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACd,MAAM,KAAK,CAAC;AAOb,MAAM,MAAM,mBAAmB,GAAG;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkBF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;cASI,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;;;;cAIzC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;;;;;;;;;;qBAMtD,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;;;;;;;;;;;;;;;cAVd,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;;;;cAIzC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;;;;;;;;;;;;sBAAlC,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI;;;;4EAqLxE,CAAC"}
|
package/dist/SelectableList.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, defineComponent, h, provide, ref, } from "vue";
|
|
1
|
+
import { computed, defineComponent, h, provide, ref, watch, } from "vue";
|
|
2
2
|
import { classNames } from "./classNames.js";
|
|
3
3
|
import { SELECTABLE_LIST_KEY, } from "./SelectableRow.js";
|
|
4
4
|
function toSet(v) {
|
|
@@ -23,6 +23,8 @@ function sortByDom(list) {
|
|
|
23
23
|
* `multiple` toggles rows independently. Controlled via `value`/`onChange`,
|
|
24
24
|
* otherwise it keeps its own internal selection. Pilots each child row through
|
|
25
25
|
* provide/inject (role="option" + the computed tabindex / aria-selected).
|
|
26
|
+
* Disabled rows are registered but skipped during keyboard navigation; if a
|
|
27
|
+
* disabled row holds focus, focus transfers to the next enabled row.
|
|
26
28
|
*/
|
|
27
29
|
export const SelectableList = defineComponent({
|
|
28
30
|
name: "SelectableList",
|
|
@@ -52,21 +54,24 @@ export const SelectableList = defineComponent({
|
|
|
52
54
|
const internal = ref(new Set());
|
|
53
55
|
const selectedValues = computed(() => controlled.value ? toSet(props.value) : internal.value);
|
|
54
56
|
// Row registry, ordered by DOM position so arrow nav matches the visual
|
|
55
|
-
// order regardless of registration timing.
|
|
57
|
+
// order regardless of registration timing. Disabled rows are included so
|
|
58
|
+
// the list can skip them during navigation and detect focus transfer.
|
|
56
59
|
const entries = ref([]);
|
|
57
60
|
// The element holding the roving tab stop (tabindex 0). Null until a row is
|
|
58
|
-
// focused; until then the FIRST
|
|
61
|
+
// focused; until then the FIRST enabled row is the default stop.
|
|
59
62
|
const tabStopEl = ref(null);
|
|
60
|
-
// Bumped on every selection / focus / registry change so child rows
|
|
61
|
-
// read `version`) re-render and recompute role / tabindex / aria-selected.
|
|
63
|
+
// Bumped on every selection / focus / registry change so child rows
|
|
64
|
+
// (which read `version`) re-render and recompute role / tabindex / aria-selected.
|
|
62
65
|
const version = ref(0);
|
|
63
66
|
function bump() {
|
|
64
67
|
version.value++;
|
|
65
68
|
}
|
|
66
|
-
|
|
69
|
+
// register/unregister called from each row on mount/update/unmount.
|
|
70
|
+
// Disabled rows are registered with disabled:true so navigate() can skip them.
|
|
71
|
+
function register(el, rowValue, rowDisabled = false) {
|
|
67
72
|
entries.value = sortByDom([
|
|
68
73
|
...entries.value.filter((e) => e.el !== el),
|
|
69
|
-
{ el, value: rowValue },
|
|
74
|
+
{ el, value: rowValue, disabled: rowDisabled },
|
|
70
75
|
]);
|
|
71
76
|
bump();
|
|
72
77
|
return () => {
|
|
@@ -76,8 +81,28 @@ export const SelectableList = defineComponent({
|
|
|
76
81
|
bump();
|
|
77
82
|
};
|
|
78
83
|
}
|
|
79
|
-
// Default roving stop = first
|
|
80
|
-
|
|
84
|
+
// Default roving stop = first non-disabled DOM-ordered row when none focused,
|
|
85
|
+
// or when the current tabStopEl has become disabled.
|
|
86
|
+
const effectiveTabStop = computed(() => {
|
|
87
|
+
if (tabStopEl.value) {
|
|
88
|
+
const entry = entries.value.find((e) => e.el === tabStopEl.value);
|
|
89
|
+
if (entry && !entry.disabled)
|
|
90
|
+
return tabStopEl.value;
|
|
91
|
+
}
|
|
92
|
+
return entries.value.find((e) => !e.disabled)?.el ?? null;
|
|
93
|
+
});
|
|
94
|
+
// Si la row qui détient le focus DOM devient disabled, transférer le focus
|
|
95
|
+
// vers la nouvelle cible de roving tabindex.
|
|
96
|
+
watch(effectiveTabStop, (newStop) => {
|
|
97
|
+
if (!newStop)
|
|
98
|
+
return;
|
|
99
|
+
if (tabStopEl.value !== null) {
|
|
100
|
+
const disabledEntry = entries.value.find((e) => e.el === tabStopEl.value && e.disabled);
|
|
101
|
+
if (disabledEntry && tabStopEl.value?.contains(document.activeElement ?? null)) {
|
|
102
|
+
newStop.focus();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
81
106
|
function valueOf(el) {
|
|
82
107
|
return entries.value.find((e) => e.el === el)?.value;
|
|
83
108
|
}
|
|
@@ -89,7 +114,6 @@ export const SelectableList = defineComponent({
|
|
|
89
114
|
return el === effectiveTabStop.value;
|
|
90
115
|
}
|
|
91
116
|
function fireChange(value) {
|
|
92
|
-
// `emit("change")` invokes the `onChange` prop/listener exactly once.
|
|
93
117
|
emit("change", value);
|
|
94
118
|
}
|
|
95
119
|
function emitNext(next) {
|
|
@@ -131,17 +155,44 @@ export const SelectableList = defineComponent({
|
|
|
131
155
|
const idx = list.findIndex((e) => e.el === el);
|
|
132
156
|
if (idx === -1)
|
|
133
157
|
return;
|
|
134
|
-
let targetIdx =
|
|
135
|
-
if (key === "ArrowDown" || key === "ArrowRight")
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
158
|
+
let targetIdx = null;
|
|
159
|
+
if (key === "ArrowDown" || key === "ArrowRight") {
|
|
160
|
+
// Walk forward, find the next non-disabled entry.
|
|
161
|
+
for (let i = idx + 1; i < list.length; i++) {
|
|
162
|
+
if (!list[i].disabled) {
|
|
163
|
+
targetIdx = i;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else if (key === "ArrowUp" || key === "ArrowLeft") {
|
|
169
|
+
// Walk backward, find the previous non-disabled entry.
|
|
170
|
+
for (let i = idx - 1; i >= 0; i--) {
|
|
171
|
+
if (!list[i].disabled) {
|
|
172
|
+
targetIdx = i;
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (key === "Home") {
|
|
178
|
+
for (let i = 0; i < list.length; i++) {
|
|
179
|
+
if (!list[i].disabled) {
|
|
180
|
+
targetIdx = i;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
else if (key === "End") {
|
|
186
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
187
|
+
if (!list[i].disabled) {
|
|
188
|
+
targetIdx = i;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// If no target found (all remaining disabled, or already at boundary), stay put.
|
|
194
|
+
if (targetIdx === null)
|
|
195
|
+
return;
|
|
145
196
|
const target = list[targetIdx]?.el;
|
|
146
197
|
if (target) {
|
|
147
198
|
tabStopEl.value = target;
|