@proyecto-viviana/solid-stately 0.4.1 → 0.5.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/collections/types.d.ts +3 -0
- package/dist/index.js +994 -992
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/src/calendar/createDateFieldState.ts +15 -11
- package/src/calendar/createRangeCalendarState.ts +2 -1
- package/src/calendar/intl/index.ts +168 -140
- package/src/collections/ListCollection.ts +9 -1
- package/src/collections/createListState.ts +13 -1
- package/src/collections/types.ts +3 -0
- package/src/color/Color.ts +5 -7
- package/src/color/intl/index.ts +852 -852
- package/src/combobox/createComboBoxState.ts +18 -3
- package/src/tabs/createTabListState.ts +9 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proyecto-viviana/solid-stately",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "A 1-1 SolidJS port of React Stately - headless state management for UI components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"headless",
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
"state",
|
|
11
11
|
"stately"
|
|
12
12
|
],
|
|
13
|
+
"homepage": "https://ui.proyectoviviana.org/solid-spectrum/ecosystem",
|
|
14
|
+
"bugs": "https://github.com/proyecto-viviana/ui/issues",
|
|
13
15
|
"license": "MIT",
|
|
14
16
|
"repository": {
|
|
15
17
|
"type": "git",
|
|
@@ -307,7 +307,9 @@ export function createDateFieldState<T extends DateValue = DateValue>(
|
|
|
307
307
|
};
|
|
308
308
|
|
|
309
309
|
// The current value, converted to the display calendar.
|
|
310
|
-
const calendarValue = createMemo<DateValue | null>(
|
|
310
|
+
const calendarValue = createMemo<DateValue | null>(
|
|
311
|
+
() => convertValue(rawValue(), calendar()) ?? null,
|
|
312
|
+
);
|
|
311
313
|
|
|
312
314
|
const initialValue = untrack(calendarValue);
|
|
313
315
|
|
|
@@ -352,7 +354,9 @@ export function createDateFieldState<T extends DateValue = DateValue>(
|
|
|
352
354
|
shouldForceLeadingZeros: props.shouldForceLeadingZeros,
|
|
353
355
|
}));
|
|
354
356
|
|
|
355
|
-
const dateFormatter = createMemo(
|
|
357
|
+
const dateFormatter = createMemo(
|
|
358
|
+
() => new DateFormatter(locale(), getFormatOptions({}, formatOpts())),
|
|
359
|
+
);
|
|
356
360
|
const resolvedOptions = createMemo(() => dateFormatter().resolvedOptions());
|
|
357
361
|
|
|
358
362
|
const displaySegments = createMemo<DateSegmentType[]>(() => {
|
|
@@ -632,9 +636,7 @@ function processSegments(
|
|
|
632
636
|
const isPlaceholder =
|
|
633
637
|
EDITABLE_SEGMENTS[type] === true &&
|
|
634
638
|
displayValue[segment.type as keyof IncompleteDate] == null;
|
|
635
|
-
const placeholder = EDITABLE_SEGMENTS[type]
|
|
636
|
-
? getPlaceholder(type, segment.value, locale)
|
|
637
|
-
: "";
|
|
639
|
+
const placeholder = EDITABLE_SEGMENTS[type] ? getPlaceholder(type, segment.value, locale) : "";
|
|
638
640
|
const limits = displayValue.getSegmentLimits(type);
|
|
639
641
|
const dateSegment: DateSegment = {
|
|
640
642
|
type,
|
|
@@ -736,13 +738,12 @@ export function getFormatOptions(
|
|
|
736
738
|
let endIdx = keys.indexOf(granularity);
|
|
737
739
|
if (endIdx < 0) endIdx = 2;
|
|
738
740
|
if (startIdx > endIdx) throw new Error("maxGranularity must be greater than granularity");
|
|
739
|
-
const opts: Record<string, unknown> = keys
|
|
740
|
-
(
|
|
741
|
+
const opts: Record<string, unknown> = keys
|
|
742
|
+
.slice(startIdx, endIdx + 1)
|
|
743
|
+
.reduce((acc: Record<string, unknown>, key) => {
|
|
741
744
|
acc[key] = merged[key];
|
|
742
745
|
return acc;
|
|
743
|
-
},
|
|
744
|
-
{},
|
|
745
|
-
);
|
|
746
|
+
}, {});
|
|
746
747
|
if (options.hourCycle != null) opts.hour12 = options.hourCycle === 12;
|
|
747
748
|
opts.timeZone = options.timeZone || "UTC";
|
|
748
749
|
const hasTime = granularity === "hour" || granularity === "minute" || granularity === "second";
|
|
@@ -751,7 +752,10 @@ export function getFormatOptions(
|
|
|
751
752
|
return opts as Intl.DateTimeFormatOptions;
|
|
752
753
|
}
|
|
753
754
|
|
|
754
|
-
function convertValue(
|
|
755
|
+
function convertValue(
|
|
756
|
+
value: DateValue | null | undefined,
|
|
757
|
+
calendar: Calendar,
|
|
758
|
+
): DateValue | null | undefined {
|
|
755
759
|
if (value === null) return null;
|
|
756
760
|
if (!value) return undefined;
|
|
757
761
|
return toCalendar(value, calendar);
|
|
@@ -858,7 +858,8 @@ export function createRangeCalendarState<T extends DateValue = CalendarDate>(
|
|
|
858
858
|
|
|
859
859
|
const start = v.start as unknown as DateValue;
|
|
860
860
|
const end = v.end as unknown as DateValue;
|
|
861
|
-
const startTimeZone =
|
|
861
|
+
const startTimeZone =
|
|
862
|
+
"timeZone" in start ? (start as { timeZone: string }).timeZone : undefined;
|
|
862
863
|
const startGranularity = "minute" in start ? "minute" : "day";
|
|
863
864
|
const endTimeZone = "timeZone" in end ? (end as { timeZone: string }).timeZone : undefined;
|
|
864
865
|
const endGranularity = "minute" in end ? "minute" : "day";
|
|
@@ -13,217 +13,245 @@ type DateFieldErrorMessage = string | ((args: DateFieldErrorArgs) => string);
|
|
|
13
13
|
|
|
14
14
|
const errorStrings: Record<string, Record<DateFieldErrorKey, DateFieldErrorMessage>> = {
|
|
15
15
|
"ar-AE": {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
rangeOverflow: (args) =>
|
|
17
|
+
`\u{64A}\u{62C}\u{628} \u{623}\u{646} \u{62A}\u{643}\u{648}\u{646} \u{627}\u{644}\u{642}\u{64A}\u{645}\u{629} ${args.maxValue} \u{623}\u{648} \u{642}\u{628}\u{644} \u{630}\u{644}\u{643}.`,
|
|
18
|
+
rangeReversed: `\u{62A}\u{627}\u{631}\u{64A}\u{62E} \u{627}\u{644}\u{628}\u{62F}\u{621} \u{64A}\u{62C}\u{628} \u{623}\u{646} \u{64A}\u{643}\u{648}\u{646} \u{642}\u{628}\u{644} \u{62A}\u{627}\u{631}\u{64A}\u{62E} \u{627}\u{644}\u{627}\u{646}\u{62A}\u{647}\u{627}\u{621}.`,
|
|
19
|
+
rangeUnderflow: (args) =>
|
|
20
|
+
`\u{64A}\u{62C}\u{628} \u{623}\u{646} \u{62A}\u{643}\u{648}\u{646} \u{627}\u{644}\u{642}\u{64A}\u{645}\u{629} ${args.minValue} \u{623}\u{648} \u{628}\u{639}\u{62F} \u{630}\u{644}\u{643}.`,
|
|
21
|
+
unavailableDate: `\u{627}\u{644}\u{628}\u{64A}\u{627}\u{646}\u{627}\u{62A} \u{627}\u{644}\u{645}\u{62D}\u{62F}\u{62F}\u{629} \u{63A}\u{64A}\u{631} \u{645}\u{62A}\u{627}\u{62D}\u{629}.`,
|
|
20
22
|
},
|
|
21
23
|
"bg-BG": {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
rangeOverflow: (args) =>
|
|
25
|
+
`\u{421}\u{442}\u{43E}\u{439}\u{43D}\u{43E}\u{441}\u{442}\u{442}\u{430} \u{442}\u{440}\u{44F}\u{431}\u{432}\u{430} \u{434}\u{430} \u{435} ${args.maxValue} \u{438}\u{43B}\u{438} \u{43F}\u{43E}-\u{440}\u{430}\u{43D}\u{43D}\u{430}.`,
|
|
26
|
+
rangeReversed: `\u{41D}\u{430}\u{447}\u{430}\u{43B}\u{43D}\u{430}\u{442}\u{430} \u{434}\u{430}\u{442}\u{430} \u{442}\u{440}\u{44F}\u{431}\u{432}\u{430} \u{434}\u{430} \u{435} \u{43F}\u{440}\u{435}\u{434}\u{438} \u{43A}\u{440}\u{430}\u{439}\u{43D}\u{430}\u{442}\u{430}.`,
|
|
27
|
+
rangeUnderflow: (args) =>
|
|
28
|
+
`\u{421}\u{442}\u{43E}\u{439}\u{43D}\u{43E}\u{441}\u{442}\u{442}\u{430} \u{442}\u{440}\u{44F}\u{431}\u{432}\u{430} \u{434}\u{430} \u{435} ${args.minValue} \u{438}\u{43B}\u{438} \u{43F}\u{43E}-\u{43A}\u{44A}\u{441}\u{43D}\u{43E}.`,
|
|
29
|
+
unavailableDate: `\u{418}\u{437}\u{431}\u{440}\u{430}\u{43D}\u{430}\u{442}\u{430} \u{434}\u{430}\u{442}\u{430} \u{43D}\u{435} \u{435} \u{43D}\u{430}\u{43B}\u{438}\u{447}\u{43D}\u{430}.`,
|
|
26
30
|
},
|
|
27
31
|
"cs-CZ": {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
rangeOverflow: (args) =>
|
|
33
|
+
`Hodnota mus\xed b\xfdt ${args.maxValue} nebo d\u{159}\xedv\u{11B}j\u{161}\xed.`,
|
|
34
|
+
rangeReversed: `Datum zah\xe1jen\xed mus\xed p\u{159}edch\xe1zet datu ukon\u{10D}en\xed.`,
|
|
35
|
+
rangeUnderflow: (args) =>
|
|
36
|
+
`Hodnota mus\xed b\xfdt ${args.minValue} nebo pozd\u{11B}j\u{161}\xed.`,
|
|
37
|
+
unavailableDate: `Vybran\xe9 datum nen\xed k dispozici.`,
|
|
32
38
|
},
|
|
33
39
|
"da-DK": {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
rangeOverflow: (args) => `V\xe6rdien skal v\xe6re ${args.maxValue} eller tidligere.`,
|
|
41
|
+
rangeReversed: `Startdatoen skal v\xe6re f\xf8r slutdatoen.`,
|
|
42
|
+
rangeUnderflow: (args) => `V\xe6rdien skal v\xe6re ${args.minValue} eller nyere.`,
|
|
43
|
+
unavailableDate: `Den valgte dato er ikke tilg\xe6ngelig.`,
|
|
38
44
|
},
|
|
39
45
|
"de-DE": {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
rangeOverflow: (args) => `Der Wert muss ${args.maxValue} oder fr\xfcher sein.`,
|
|
47
|
+
rangeReversed: `Das Startdatum muss vor dem Enddatum liegen.`,
|
|
48
|
+
rangeUnderflow: (args) => `Der Wert muss ${args.minValue} oder sp\xe4ter sein.`,
|
|
49
|
+
unavailableDate: `Das ausgew\xe4hlte Datum ist nicht verf\xfcgbar.`,
|
|
44
50
|
},
|
|
45
51
|
"el-GR": {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
rangeOverflow: (args) =>
|
|
53
|
+
`\u{397} \u{3C4}\u{3B9}\u{3BC}\u{3AE} \u{3C0}\u{3C1}\u{3AD}\u{3C0}\u{3B5}\u{3B9} \u{3BD}\u{3B1} \u{3B5}\u{3AF}\u{3BD}\u{3B1}\u{3B9} ${args.maxValue} \u{3AE} \u{3C0}\u{3B1}\u{3BB}\u{3B1}\u{3B9}\u{3CC}\u{3C4}\u{3B5}\u{3C1}\u{3B7}.`,
|
|
54
|
+
rangeReversed: `\u{397} \u{3B7}\u{3BC}\u{3B5}\u{3C1}\u{3BF}\u{3BC}\u{3B7}\u{3BD}\u{3AF}\u{3B1} \u{3AD}\u{3BD}\u{3B1}\u{3C1}\u{3BE}\u{3B7}\u{3C2} \u{3C0}\u{3C1}\u{3AD}\u{3C0}\u{3B5}\u{3B9} \u{3BD}\u{3B1} \u{3B5}\u{3AF}\u{3BD}\u{3B1}\u{3B9} \u{3C0}\u{3C1}\u{3B9}\u{3BD} \u{3B1}\u{3C0}\u{3CC} \u{3C4}\u{3B7}\u{3BD} \u{3B7}\u{3BC}\u{3B5}\u{3C1}\u{3BF}\u{3BC}\u{3B7}\u{3BD}\u{3AF}\u{3B1} \u{3BB}\u{3AE}\u{3BE}\u{3B7}\u{3C2}.`,
|
|
55
|
+
rangeUnderflow: (args) =>
|
|
56
|
+
`\u{397} \u{3C4}\u{3B9}\u{3BC}\u{3AE} \u{3C0}\u{3C1}\u{3AD}\u{3C0}\u{3B5}\u{3B9} \u{3BD}\u{3B1} \u{3B5}\u{3AF}\u{3BD}\u{3B1}\u{3B9} ${args.minValue} \u{3AE} \u{3BC}\u{3B5}\u{3C4}\u{3B1}\u{3B3}\u{3B5}\u{3BD}\u{3AD}\u{3C3}\u{3C4}\u{3B5}\u{3C1}\u{3B7}.`,
|
|
57
|
+
unavailableDate: `\u{397} \u{3B5}\u{3C0}\u{3B9}\u{3BB}\u{3B5}\u{3B3}\u{3BC}\u{3AD}\u{3BD}\u{3B7} \u{3B7}\u{3BC}\u{3B5}\u{3C1}\u{3BF}\u{3BC}\u{3B7}\u{3BD}\u{3AF}\u{3B1} \u{3B4}\u{3B5}\u{3BD} \u{3B5}\u{3AF}\u{3BD}\u{3B1}\u{3B9} \u{3B4}\u{3B9}\u{3B1}\u{3B8}\u{3AD}\u{3C3}\u{3B9}\u{3BC}\u{3B7}.`,
|
|
50
58
|
},
|
|
51
59
|
"en-US": {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
rangeUnderflow: (args) => `Value must be ${args.minValue} or later.`,
|
|
61
|
+
rangeOverflow: (args) => `Value must be ${args.maxValue} or earlier.`,
|
|
62
|
+
rangeReversed: `Start date must be before end date.`,
|
|
63
|
+
unavailableDate: `Selected date unavailable.`,
|
|
56
64
|
},
|
|
57
65
|
"es-ES": {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
rangeOverflow: (args) => `El valor debe ser ${args.maxValue} o anterior.`,
|
|
67
|
+
rangeReversed: `La fecha de inicio debe ser anterior a la fecha de finalizaci\xf3n.`,
|
|
68
|
+
rangeUnderflow: (args) => `El valor debe ser ${args.minValue} o posterior.`,
|
|
69
|
+
unavailableDate: `Fecha seleccionada no disponible.`,
|
|
62
70
|
},
|
|
63
71
|
"et-EE": {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
rangeOverflow: (args) => `V\xe4\xe4rtus peab olema ${args.maxValue} v\xf5i varasem.`,
|
|
73
|
+
rangeReversed: `Alguskuup\xe4ev peab olema enne l\xf5ppkuup\xe4eva.`,
|
|
74
|
+
rangeUnderflow: (args) => `V\xe4\xe4rtus peab olema ${args.minValue} v\xf5i hilisem.`,
|
|
75
|
+
unavailableDate: `Valitud kuup\xe4ev pole saadaval.`,
|
|
68
76
|
},
|
|
69
77
|
"fi-FI": {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
78
|
+
rangeOverflow: (args) => `Arvon on oltava ${args.maxValue} tai sit\xe4 aikaisempi.`,
|
|
79
|
+
rangeReversed: `Aloitusp\xe4iv\xe4n on oltava ennen lopetusp\xe4iv\xe4\xe4.`,
|
|
80
|
+
rangeUnderflow: (args) => `Arvon on oltava ${args.minValue} tai sit\xe4 my\xf6h\xe4isempi.`,
|
|
81
|
+
unavailableDate: `Valittu p\xe4iv\xe4m\xe4\xe4r\xe4 ei ole k\xe4ytett\xe4viss\xe4.`,
|
|
74
82
|
},
|
|
75
83
|
"fr-FR": {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
rangeOverflow: (args) => `La valeur doit \xeatre ${args.maxValue} ou ant\xe9rieure.`,
|
|
85
|
+
rangeReversed: `La date de d\xe9but doit \xeatre ant\xe9rieure \xe0 la date de fin.`,
|
|
86
|
+
rangeUnderflow: (args) => `La valeur doit \xeatre ${args.minValue} ou ult\xe9rieure.`,
|
|
87
|
+
unavailableDate: `La date s\xe9lectionn\xe9e n\u{2019}est pas disponible.`,
|
|
80
88
|
},
|
|
81
89
|
"he-IL": {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
rangeOverflow: (args) =>
|
|
91
|
+
`\u{5D4}\u{5E2}\u{5E8}\u{5DA} \u{5D7}\u{5D9}\u{5D9}\u{5D1} \u{5DC}\u{5D4}\u{5D9}\u{5D5}\u{5EA} ${args.maxValue} \u{5D0}\u{5D5} \u{5DE}\u{5D5}\u{5E7}\u{5D3}\u{5DD} \u{5D9}\u{5D5}\u{5EA}\u{5E8}.`,
|
|
92
|
+
rangeReversed: `\u{5EA}\u{5D0}\u{5E8}\u{5D9}\u{5DA} \u{5D4}\u{5D4}\u{5EA}\u{5D7}\u{5DC}\u{5D4} \u{5D7}\u{5D9}\u{5D9}\u{5D1} \u{5DC}\u{5D4}\u{5D9}\u{5D5}\u{5EA} \u{5DC}\u{5E4}\u{5E0}\u{5D9} \u{5EA}\u{5D0}\u{5E8}\u{5D9}\u{5DA} \u{5D4}\u{5E1}\u{5D9}\u{5D5}\u{5DD}.`,
|
|
93
|
+
rangeUnderflow: (args) =>
|
|
94
|
+
`\u{5D4}\u{5E2}\u{5E8}\u{5DA} \u{5D7}\u{5D9}\u{5D9}\u{5D1} \u{5DC}\u{5D4}\u{5D9}\u{5D5}\u{5EA} ${args.minValue} \u{5D0}\u{5D5} \u{5DE}\u{5D0}\u{5D5}\u{5D7}\u{5E8} \u{5D9}\u{5D5}\u{5EA}\u{5E8}.`,
|
|
95
|
+
unavailableDate: `\u{5D4}\u{5EA}\u{5D0}\u{5E8}\u{5D9}\u{5DA} \u{5D4}\u{5E0}\u{5D1}\u{5D7}\u{5E8} \u{5D0}\u{5D9}\u{5E0}\u{5D5} \u{5D6}\u{5DE}\u{5D9}\u{5DF}.`,
|
|
86
96
|
},
|
|
87
97
|
"hr-HR": {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
98
|
+
rangeOverflow: (args) => `Vrijednost mora biti ${args.maxValue} ili ranije.`,
|
|
99
|
+
rangeReversed: `Datum po\u{10D}etka mora biti prije datuma zavr\u{161}etka.`,
|
|
100
|
+
rangeUnderflow: (args) => `Vrijednost mora biti ${args.minValue} ili kasnije.`,
|
|
101
|
+
unavailableDate: `Odabrani datum nije dostupan.`,
|
|
92
102
|
},
|
|
93
103
|
"hu-HU": {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
104
|
+
rangeOverflow: (args) => `Az \xe9rt\xe9knek ${args.maxValue} vagy kor\xe1bbinak kell lennie.`,
|
|
105
|
+
rangeReversed: `A kezd\u{151} d\xe1tumnak a befejez\u{151} d\xe1tumn\xe1l kor\xe1bbinak kell lennie.`,
|
|
106
|
+
rangeUnderflow: (args) =>
|
|
107
|
+
`Az \xe9rt\xe9knek ${args.minValue} vagy k\xe9s\u{151}bbinek kell lennie.`,
|
|
108
|
+
unavailableDate: `A kiv\xe1lasztott d\xe1tum nem \xe9rhet\u{151} el.`,
|
|
98
109
|
},
|
|
99
110
|
"it-IT": {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
111
|
+
rangeOverflow: (args) => `Il valore deve essere ${args.maxValue} o precedente.`,
|
|
112
|
+
rangeReversed: `La data di inizio deve essere antecedente alla data di fine.`,
|
|
113
|
+
rangeUnderflow: (args) => `Il valore deve essere ${args.minValue} o successivo.`,
|
|
114
|
+
unavailableDate: `Data selezionata non disponibile.`,
|
|
104
115
|
},
|
|
105
116
|
"ja-JP": {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
117
|
+
rangeOverflow: (args) =>
|
|
118
|
+
`\u{5024}\u{306F} ${args.maxValue} \u{4EE5}\u{4E0B}\u{306B}\u{3059}\u{308B}\u{5FC5}\u{8981}\u{304C}\u{3042}\u{308A}\u{307E}\u{3059}\u{3002}`,
|
|
119
|
+
rangeReversed: `\u{958B}\u{59CB}\u{65E5}\u{306F}\u{7D42}\u{4E86}\u{65E5}\u{3088}\u{308A}\u{524D}\u{306B}\u{3059}\u{308B}\u{5FC5}\u{8981}\u{304C}\u{3042}\u{308A}\u{307E}\u{3059}\u{3002}`,
|
|
120
|
+
rangeUnderflow: (args) =>
|
|
121
|
+
`\u{5024}\u{306F} ${args.minValue} \u{4EE5}\u{4E0A}\u{306B}\u{3059}\u{308B}\u{5FC5}\u{8981}\u{304C}\u{3042}\u{308A}\u{307E}\u{3059}\u{3002}`,
|
|
122
|
+
unavailableDate: `\u{9078}\u{629E}\u{3057}\u{305F}\u{65E5}\u{4ED8}\u{306F}\u{4F7F}\u{7528}\u{3067}\u{304D}\u{307E}\u{305B}\u{3093}\u{3002}`,
|
|
110
123
|
},
|
|
111
124
|
"ko-KR": {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
125
|
+
rangeOverflow: (args) =>
|
|
126
|
+
`\u{AC12}\u{C740} ${args.maxValue} \u{C774}\u{C804}\u{C774}\u{C5B4}\u{C57C} \u{D569}\u{B2C8}\u{B2E4}.`,
|
|
127
|
+
rangeReversed: `\u{C2DC}\u{C791}\u{C77C}\u{C740} \u{C885}\u{B8CC}\u{C77C} \u{C774}\u{C804}\u{C774}\u{C5B4}\u{C57C} \u{D569}\u{B2C8}\u{B2E4}.`,
|
|
128
|
+
rangeUnderflow: (args) =>
|
|
129
|
+
`\u{AC12}\u{C740} ${args.minValue} \u{C774}\u{D6C4}\u{C5EC}\u{C57C} \u{D569}\u{B2C8}\u{B2E4}.`,
|
|
130
|
+
unavailableDate: `\u{C120}\u{D0DD}\u{D55C} \u{B0A0}\u{C9DC}\u{B97C} \u{C0AC}\u{C6A9}\u{D560} \u{C218} \u{C5C6}\u{C2B5}\u{B2C8}\u{B2E4}.`,
|
|
116
131
|
},
|
|
117
132
|
"lt-LT": {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
133
|
+
rangeOverflow: (args) =>
|
|
134
|
+
`Reik\u{161}m\u{117} turi b\u{16B}ti ${args.maxValue} arba ankstesn\u{117}.`,
|
|
135
|
+
rangeReversed: `Prad\u{17E}ios data turi b\u{16B}ti ankstesn\u{117} nei pabaigos data.`,
|
|
136
|
+
rangeUnderflow: (args) =>
|
|
137
|
+
`Reik\u{161}m\u{117} turi b\u{16B}ti ${args.minValue} arba naujesn\u{117}.`,
|
|
138
|
+
unavailableDate: `Pasirinkta data nepasiekiama.`,
|
|
122
139
|
},
|
|
123
140
|
"lv-LV": {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
141
|
+
rangeOverflow: (args) =>
|
|
142
|
+
`V\u{113}rt\u{12B}bai ir j\u{101}b\u{16B}t ${args.maxValue} vai agr\u{101}kai.`,
|
|
143
|
+
rangeReversed: `S\u{101}kuma datumam ir j\u{101}b\u{16B}t pirms beigu datuma.`,
|
|
144
|
+
rangeUnderflow: (args) =>
|
|
145
|
+
`V\u{113}rt\u{12B}bai ir j\u{101}b\u{16B}t ${args.minValue} vai v\u{113}l\u{101}kai.`,
|
|
146
|
+
unavailableDate: `Atlas\u{12B}tais datums nav pieejams.`,
|
|
128
147
|
},
|
|
129
148
|
"nb-NO": {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
149
|
+
rangeOverflow: (args) => `Verdien m\xe5 v\xe6re ${args.maxValue} eller tidligere.`,
|
|
150
|
+
rangeReversed: `Startdatoen m\xe5 v\xe6re f\xf8r sluttdatoen.`,
|
|
151
|
+
rangeUnderflow: (args) => `Verdien m\xe5 v\xe6re ${args.minValue} eller senere.`,
|
|
152
|
+
unavailableDate: `Valgt dato utilgjengelig.`,
|
|
134
153
|
},
|
|
135
154
|
"nl-NL": {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
155
|
+
rangeOverflow: (args) => `Waarde moet ${args.maxValue} of eerder zijn.`,
|
|
156
|
+
rangeReversed: `De startdatum moet voor de einddatum liggen.`,
|
|
157
|
+
rangeUnderflow: (args) => `Waarde moet ${args.minValue} of later zijn.`,
|
|
158
|
+
unavailableDate: `Geselecteerde datum niet beschikbaar.`,
|
|
140
159
|
},
|
|
141
160
|
"pl-PL": {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
161
|
+
rangeOverflow: (args) =>
|
|
162
|
+
`Warto\u{15B}\u{107} musi mie\u{107} warto\u{15B}\u{107} ${args.maxValue} lub wcze\u{15B}niejsz\u{105}.`,
|
|
163
|
+
rangeReversed: `Data rozpocz\u{119}cia musi by\u{107} wcze\u{15B}niejsza ni\u{17C} data zako\u{144}czenia.`,
|
|
164
|
+
rangeUnderflow: (args) =>
|
|
165
|
+
`Warto\u{15B}\u{107} musi mie\u{107} warto\u{15B}\u{107} ${args.minValue} lub p\xf3\u{17A}niejsz\u{105}.`,
|
|
166
|
+
unavailableDate: `Wybrana data jest niedost\u{119}pna.`,
|
|
146
167
|
},
|
|
147
168
|
"pt-BR": {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
169
|
+
rangeOverflow: (args) => `O valor deve ser ${args.maxValue} ou anterior.`,
|
|
170
|
+
rangeReversed: `A data inicial deve ser anterior \xe0 data final.`,
|
|
171
|
+
rangeUnderflow: (args) => `O valor deve ser ${args.minValue} ou posterior.`,
|
|
172
|
+
unavailableDate: `Data selecionada indispon\xedvel.`,
|
|
152
173
|
},
|
|
153
174
|
"pt-PT": {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
175
|
+
rangeOverflow: (args) => `O valor tem de ser ${args.maxValue} ou anterior.`,
|
|
176
|
+
rangeReversed: `A data de in\xedcio deve ser anterior \xe0 data de fim.`,
|
|
177
|
+
rangeUnderflow: (args) => `O valor tem de ser ${args.minValue} ou posterior.`,
|
|
178
|
+
unavailableDate: `Data selecionada indispon\xedvel.`,
|
|
158
179
|
},
|
|
159
180
|
"ro-RO": {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
181
|
+
rangeOverflow: (args) => `Valoarea trebuie s\u{103} fie ${args.maxValue} sau anterioar\u{103}.`,
|
|
182
|
+
rangeReversed: `Data de \xeenceput trebuie s\u{103} fie anterioar\u{103} datei de sf\xe2r\u{219}it.`,
|
|
183
|
+
rangeUnderflow: (args) =>
|
|
184
|
+
`Valoarea trebuie s\u{103} fie ${args.minValue} sau ulterioar\u{103}.`,
|
|
185
|
+
unavailableDate: `Data selectat\u{103} nu este disponibil\u{103}.`,
|
|
164
186
|
},
|
|
165
187
|
"ru-RU": {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
188
|
+
rangeOverflow: (args) =>
|
|
189
|
+
`\u{417}\u{43D}\u{430}\u{447}\u{435}\u{43D}\u{438}\u{435} \u{434}\u{43E}\u{43B}\u{436}\u{43D}\u{43E} \u{431}\u{44B}\u{442}\u{44C} \u{43D}\u{435} \u{43F}\u{43E}\u{437}\u{436}\u{435} ${args.maxValue}.`,
|
|
190
|
+
rangeReversed: `\u{414}\u{430}\u{442}\u{430} \u{43D}\u{430}\u{447}\u{430}\u{43B}\u{430} \u{434}\u{43E}\u{43B}\u{436}\u{43D}\u{430} \u{43F}\u{440}\u{435}\u{434}\u{448}\u{435}\u{441}\u{442}\u{432}\u{43E}\u{432}\u{430}\u{442}\u{44C} \u{434}\u{430}\u{442}\u{435} \u{43E}\u{43A}\u{43E}\u{43D}\u{447}\u{430}\u{43D}\u{438}\u{44F}.`,
|
|
191
|
+
rangeUnderflow: (args) =>
|
|
192
|
+
`\u{417}\u{43D}\u{430}\u{447}\u{435}\u{43D}\u{438}\u{435} \u{434}\u{43E}\u{43B}\u{436}\u{43D}\u{43E} \u{431}\u{44B}\u{442}\u{44C} \u{43D}\u{435} \u{440}\u{430}\u{43D}\u{44C}\u{448}\u{435} ${args.minValue}.`,
|
|
193
|
+
unavailableDate: `\u{412}\u{44B}\u{431}\u{440}\u{430}\u{43D}\u{43D}\u{430}\u{44F} \u{434}\u{430}\u{442}\u{430} \u{43D}\u{435}\u{434}\u{43E}\u{441}\u{442}\u{443}\u{43F}\u{43D}\u{430}.`,
|
|
170
194
|
},
|
|
171
195
|
"sk-SK": {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
196
|
+
rangeOverflow: (args) => `Hodnota mus\xed by\u{165} ${args.maxValue} alebo skor\u{161}ia.`,
|
|
197
|
+
rangeReversed: `D\xe1tum za\u{10D}iatku mus\xed by\u{165} skor\u{161}\xed ako d\xe1tum konca.`,
|
|
198
|
+
rangeUnderflow: (args) => `Hodnota mus\xed by\u{165} ${args.minValue} alebo neskor\u{161}ia.`,
|
|
199
|
+
unavailableDate: `Vybrat\xfd d\xe1tum je nedostupn\xfd.`,
|
|
176
200
|
},
|
|
177
201
|
"sl-SI": {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
202
|
+
rangeOverflow: (args) => `Vrednost mora biti ${args.maxValue} ali starej\u{161}a.`,
|
|
203
|
+
rangeReversed: `Za\u{10D}etni datum mora biti pred kon\u{10D}nim datumom.`,
|
|
204
|
+
rangeUnderflow: (args) => `Vrednost mora biti ${args.minValue} ali novej\u{161}a.`,
|
|
205
|
+
unavailableDate: `Izbrani datum ni na voljo.`,
|
|
182
206
|
},
|
|
183
207
|
"sr-SP": {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
208
|
+
rangeOverflow: (args) => `Vrednost mora da bude ${args.maxValue} ili starija.`,
|
|
209
|
+
rangeReversed: `Datum po\u{10D}etka mora biti pre datuma zavr\u{161}etka.`,
|
|
210
|
+
rangeUnderflow: (args) => `Vrednost mora da bude ${args.minValue} ili novija.`,
|
|
211
|
+
unavailableDate: `Izabrani datum nije dostupan.`,
|
|
188
212
|
},
|
|
189
213
|
"sv-SE": {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
214
|
+
rangeOverflow: (args) => `V\xe4rdet m\xe5ste vara ${args.maxValue} eller tidigare.`,
|
|
215
|
+
rangeReversed: `Startdatumet m\xe5ste vara f\xf6re slutdatumet.`,
|
|
216
|
+
rangeUnderflow: (args) => `V\xe4rdet m\xe5ste vara ${args.minValue} eller senare.`,
|
|
217
|
+
unavailableDate: `Det valda datumet \xe4r inte tillg\xe4ngligt.`,
|
|
194
218
|
},
|
|
195
219
|
"tr-TR": {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
220
|
+
rangeOverflow: (args) => `De\u{11F}er, ${args.maxValue} veya \xf6ncesi olmal\u{131}d\u{131}r.`,
|
|
221
|
+
rangeReversed: `Ba\u{15F}lang\u{131}\xe7 tarihi biti\u{15F} tarihinden \xf6nce olmal\u{131}d\u{131}r.`,
|
|
222
|
+
rangeUnderflow: (args) =>
|
|
223
|
+
`De\u{11F}er, ${args.minValue} veya sonras\u{131} olmal\u{131}d\u{131}r.`,
|
|
224
|
+
unavailableDate: `Se\xe7ilen tarih kullan\u{131}lam\u{131}yor.`,
|
|
200
225
|
},
|
|
201
226
|
"uk-UA": {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
227
|
+
rangeOverflow: (args) =>
|
|
228
|
+
`\u{417}\u{43D}\u{430}\u{447}\u{435}\u{43D}\u{43D}\u{44F} \u{43C}\u{430}\u{454} \u{431}\u{443}\u{442}\u{438} \u{43D}\u{435} \u{43F}\u{456}\u{437}\u{43D}\u{456}\u{448}\u{435} ${args.maxValue}.`,
|
|
229
|
+
rangeReversed: `\u{414}\u{430}\u{442}\u{430} \u{43F}\u{43E}\u{447}\u{430}\u{442}\u{43A}\u{443} \u{43C}\u{430}\u{454} \u{43F}\u{435}\u{440}\u{435}\u{434}\u{443}\u{432}\u{430}\u{442}\u{438} \u{434}\u{430}\u{442}\u{456} \u{437}\u{430}\u{432}\u{435}\u{440}\u{448}\u{435}\u{43D}\u{43D}\u{44F}.`,
|
|
230
|
+
rangeUnderflow: (args) =>
|
|
231
|
+
`\u{417}\u{43D}\u{430}\u{447}\u{435}\u{43D}\u{43D}\u{44F} \u{43C}\u{430}\u{454} \u{431}\u{443}\u{442}\u{438} \u{43D}\u{435} \u{440}\u{430}\u{43D}\u{456}\u{448}\u{435} ${args.minValue}.`,
|
|
232
|
+
unavailableDate: `\u{412}\u{438}\u{431}\u{440}\u{430}\u{43D}\u{430} \u{434}\u{430}\u{442}\u{430} \u{43D}\u{435}\u{434}\u{43E}\u{441}\u{442}\u{443}\u{43F}\u{43D}\u{430}.`,
|
|
206
233
|
},
|
|
207
234
|
"zh-CN": {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
235
|
+
rangeOverflow: (args) =>
|
|
236
|
+
`\u{503C}\u{5FC5}\u{987B}\u{662F} ${args.maxValue} \u{6216}\u{66F4}\u{65E9}\u{65E5}\u{671F}\u{3002}`,
|
|
237
|
+
rangeReversed: `\u{5F00}\u{59CB}\u{65E5}\u{671F}\u{5FC5}\u{987B}\u{65E9}\u{4E8E}\u{7ED3}\u{675F}\u{65E5}\u{671F}\u{3002}`,
|
|
238
|
+
rangeUnderflow: (args) =>
|
|
239
|
+
`\u{503C}\u{5FC5}\u{987B}\u{662F} ${args.minValue} \u{6216}\u{66F4}\u{665A}\u{65E5}\u{671F}\u{3002}`,
|
|
240
|
+
unavailableDate: `\u{6240}\u{9009}\u{65E5}\u{671F}\u{4E0D}\u{53EF}\u{7528}\u{3002}`,
|
|
212
241
|
},
|
|
213
242
|
"zh-TW": {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
243
|
+
rangeOverflow: (args) =>
|
|
244
|
+
`\u{503C}\u{5FC5}\u{9808}\u{662F} ${args.maxValue} \u{6216}\u{66F4}\u{65E9}\u{3002}`,
|
|
245
|
+
rangeReversed: `\u{958B}\u{59CB}\u{65E5}\u{671F}\u{5FC5}\u{9808}\u{5728}\u{7D50}\u{675F}\u{65E5}\u{671F}\u{4E4B}\u{524D}\u{3002}`,
|
|
246
|
+
rangeUnderflow: (args) =>
|
|
247
|
+
`\u{503C}\u{5FC5}\u{9808}\u{662F} ${args.minValue} \u{6216}\u{66F4}\u{665A}\u{3002}`,
|
|
248
|
+
unavailableDate: `\u{6240}\u{9078}\u{65E5}\u{671F}\u{7121}\u{6CD5}\u{4F7F}\u{7528}\u{3002}`,
|
|
218
249
|
},
|
|
219
250
|
};
|
|
220
251
|
|
|
221
252
|
const DEFAULT_LOCALE = "en-US";
|
|
222
253
|
|
|
223
|
-
function getMessageForLocale(
|
|
224
|
-
key: DateFieldErrorKey,
|
|
225
|
-
locale: string,
|
|
226
|
-
): DateFieldErrorMessage {
|
|
254
|
+
function getMessageForLocale(key: DateFieldErrorKey, locale: string): DateFieldErrorMessage {
|
|
227
255
|
const exact = errorStrings[locale];
|
|
228
256
|
if (exact && exact[key] != null) return exact[key];
|
|
229
257
|
|
|
@@ -160,7 +160,15 @@ export function createListCollection<T>(
|
|
|
160
160
|
},
|
|
161
161
|
getTextValue = (item: T) => {
|
|
162
162
|
const o = item as CollectionItemLike;
|
|
163
|
-
|
|
163
|
+
// See createListState: `String(item)` yields "[object Object]" for a plain
|
|
164
|
+
// object, so widen to name/title and fall back to the item's key.
|
|
165
|
+
return (
|
|
166
|
+
o.textValue ??
|
|
167
|
+
o.label ??
|
|
168
|
+
o.name ??
|
|
169
|
+
o.title ??
|
|
170
|
+
(item != null && typeof item === "object" ? String(o.key ?? o.id ?? "") : String(item))
|
|
171
|
+
);
|
|
164
172
|
},
|
|
165
173
|
getDisabled = (item: T) => (item as CollectionItemLike).isDisabled ?? false,
|
|
166
174
|
} = options;
|
|
@@ -83,7 +83,19 @@ export function createListState<T = unknown>(
|
|
|
83
83
|
const nodes: CollectionNode<T>[] = items.map((item, index) => {
|
|
84
84
|
const o = item as CollectionItemLike;
|
|
85
85
|
const key = p.getKey?.(item) ?? o.key ?? o.id ?? index;
|
|
86
|
-
|
|
86
|
+
// Derive the item's display text. Prefer an explicit getter/field, then the
|
|
87
|
+
// conventional display fields (label/name/title). `String(item)` is the last
|
|
88
|
+
// resort — right for a primitive item (a bare string/number) but useless for
|
|
89
|
+
// a plain object, where it yields "[object Object]". That default surfaced
|
|
90
|
+
// verbatim in a ComboBox/Picker input for `{ id, name }`-shaped items, so fall
|
|
91
|
+
// back to the item's key rather than "[object Object]".
|
|
92
|
+
const textValue =
|
|
93
|
+
p.getTextValue?.(item) ??
|
|
94
|
+
o.textValue ??
|
|
95
|
+
o.label ??
|
|
96
|
+
o.name ??
|
|
97
|
+
o.title ??
|
|
98
|
+
(item != null && typeof item === "object" ? String(key) : String(item));
|
|
87
99
|
const isDisabled = p.getDisabled?.(item) ?? o.isDisabled ?? false;
|
|
88
100
|
|
|
89
101
|
return {
|
package/src/collections/types.ts
CHANGED
|
@@ -109,6 +109,9 @@ export interface CollectionItemLike {
|
|
|
109
109
|
id?: Key;
|
|
110
110
|
textValue?: string;
|
|
111
111
|
label?: string;
|
|
112
|
+
/** Conventional display fields, read when no textValue/label/getTextValue is given. */
|
|
113
|
+
name?: string;
|
|
114
|
+
title?: string;
|
|
112
115
|
isDisabled?: boolean;
|
|
113
116
|
}
|
|
114
117
|
|
package/src/color/Color.ts
CHANGED
|
@@ -16,11 +16,7 @@ import type {
|
|
|
16
16
|
HSLColor,
|
|
17
17
|
HSBColor,
|
|
18
18
|
} from "./types";
|
|
19
|
-
import {
|
|
20
|
-
getColorStringForLocale,
|
|
21
|
-
formatColorMessage,
|
|
22
|
-
type ColorStringKey,
|
|
23
|
-
} from "./intl";
|
|
19
|
+
import { getColorStringForLocale, formatColorMessage, type ColorStringKey } from "./intl";
|
|
24
20
|
|
|
25
21
|
// Channel ranges
|
|
26
22
|
const RGB_CHANNEL_RANGE: ColorChannelRange = {
|
|
@@ -230,7 +226,7 @@ function getOklchHueName(l: number, c: number, h: number, locale: string): [stri
|
|
|
230
226
|
}
|
|
231
227
|
|
|
232
228
|
const name = getColorStringForLocale(hueName as ColorStringKey, locale).toLocaleLowerCase(
|
|
233
|
-
locale
|
|
229
|
+
locale,
|
|
234
230
|
);
|
|
235
231
|
return [name, l];
|
|
236
232
|
}
|
|
@@ -282,7 +278,9 @@ function getColorNameFromColor(color: Color, locale: string): string {
|
|
|
282
278
|
|
|
283
279
|
const alpha = color.getChannelValue("alpha");
|
|
284
280
|
if (alpha < 1) {
|
|
285
|
-
const percentTransparent = new Intl.NumberFormat(locale, { style: "percent" }).format(
|
|
281
|
+
const percentTransparent = new Intl.NumberFormat(locale, { style: "percent" }).format(
|
|
282
|
+
1 - alpha,
|
|
283
|
+
);
|
|
286
284
|
return formatColorMessage("transparentColorName", locale, {
|
|
287
285
|
lightness,
|
|
288
286
|
chroma,
|