@happyvertical/smrt-ui 0.43.4 → 0.43.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/AGENTS.md +33 -0
- package/README.md +78 -4
- package/dist/components/display/CurrencyDisplay.contract.d.ts +7 -0
- package/dist/components/display/CurrencyDisplay.contract.d.ts.map +1 -0
- package/dist/components/display/CurrencyDisplay.contract.js +1 -0
- package/dist/components/display/CurrencyDisplay.svelte +148 -17
- package/dist/components/display/CurrencyDisplay.svelte.d.ts +8 -5
- package/dist/components/display/CurrencyDisplay.svelte.d.ts.map +1 -1
- package/dist/components/display/__tests__/CurrencyDisplay.test.js +193 -3
- package/dist/components/display/__tests__/CurrencyDisplayI18nHarness.svelte +20 -0
- package/dist/components/display/__tests__/CurrencyDisplayI18nHarness.svelte.d.ts +19 -0
- package/dist/components/display/__tests__/CurrencyDisplayI18nHarness.svelte.d.ts.map +1 -0
- package/dist/components/display/__tests__/CurrencyDisplaySsrHarness.svelte +7 -0
- package/dist/components/display/__tests__/CurrencyDisplaySsrHarness.svelte.d.ts +19 -0
- package/dist/components/display/__tests__/CurrencyDisplaySsrHarness.svelte.d.ts.map +1 -0
- package/dist/components/display/currency-metadata.d.ts +2 -0
- package/dist/components/display/currency-metadata.d.ts.map +1 -0
- package/dist/components/display/currency-metadata.js +14 -0
- package/dist/components/forms/Checkbox.svelte +15 -6
- package/dist/components/forms/Checkbox.svelte.d.ts.map +1 -1
- package/dist/components/forms/Combobox.svelte +45 -10
- package/dist/components/forms/Combobox.svelte.d.ts.map +1 -1
- package/dist/components/forms/FilePicker.svelte +5 -2
- package/dist/components/forms/Form.svelte +57 -0
- package/dist/components/forms/Form.svelte.d.ts +2 -0
- package/dist/components/forms/Form.svelte.d.ts.map +1 -1
- package/dist/components/forms/Input.svelte +59 -13
- package/dist/components/forms/Input.svelte.d.ts.map +1 -1
- package/dist/components/forms/Listbox.svelte +33 -6
- package/dist/components/forms/Listbox.svelte.d.ts.map +1 -1
- package/dist/components/forms/MultiSelect.svelte +41 -19
- package/dist/components/forms/MultiSelect.svelte.d.ts.map +1 -1
- package/dist/components/forms/RadioGroup.svelte +14 -3
- package/dist/components/forms/RadioGroup.svelte.d.ts.map +1 -1
- package/dist/components/forms/RangeSlider.svelte +61 -6
- package/dist/components/forms/RangeSlider.svelte.d.ts.map +1 -1
- package/dist/components/forms/SegmentedControl.svelte +33 -6
- package/dist/components/forms/SegmentedControl.svelte.d.ts.map +1 -1
- package/dist/components/forms/Select.svelte +32 -9
- package/dist/components/forms/Select.svelte.d.ts.map +1 -1
- package/dist/components/forms/Slider.svelte +26 -6
- package/dist/components/forms/Slider.svelte.d.ts.map +1 -1
- package/dist/components/forms/StagedControlReview.svelte +637 -0
- package/dist/components/forms/StagedControlReview.svelte.d.ts +13 -0
- package/dist/components/forms/StagedControlReview.svelte.d.ts.map +1 -0
- package/dist/components/forms/Switch.svelte +16 -7
- package/dist/components/forms/Switch.svelte.d.ts.map +1 -1
- package/dist/components/forms/TagsInput.svelte +36 -8
- package/dist/components/forms/TagsInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/Textarea.svelte +20 -8
- package/dist/components/forms/Textarea.svelte.d.ts.map +1 -1
- package/dist/components/forms/ToggleButton.svelte +20 -3
- package/dist/components/forms/ToggleButton.svelte.d.ts.map +1 -1
- package/dist/components/forms/__tests__/Form.test.js +106 -0
- package/dist/components/forms/__tests__/StagedControlReview.test.js +668 -0
- package/dist/components/forms/__tests__/composite-controls.fixture.svelte +22 -4
- package/dist/components/forms/__tests__/composite-controls.fixture.svelte.d.ts +6 -2
- package/dist/components/forms/__tests__/composite-controls.fixture.svelte.d.ts.map +1 -1
- package/dist/components/forms/__tests__/composite-controls.test.js +96 -1
- package/dist/components/forms/__tests__/composite-user-edit.fixture.svelte +41 -0
- package/dist/components/forms/__tests__/composite-user-edit.fixture.svelte.d.ts +13 -0
- package/dist/components/forms/__tests__/composite-user-edit.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/control-interaction.test.js +3323 -15
- package/dist/components/forms/__tests__/core-controls.fixture.svelte +16 -5
- package/dist/components/forms/__tests__/core-controls.fixture.svelte.d.ts +1 -0
- package/dist/components/forms/__tests__/core-controls.fixture.svelte.d.ts.map +1 -1
- package/dist/components/forms/__tests__/core-controls.test.js +223 -2
- package/dist/components/forms/__tests__/decimal-sliders.fixture.svelte +25 -0
- package/dist/components/forms/__tests__/decimal-sliders.fixture.svelte.d.ts +8 -0
- package/dist/components/forms/__tests__/decimal-sliders.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/select-interaction.fixture.svelte +25 -0
- package/dist/components/forms/__tests__/select-interaction.fixture.svelte.d.ts +9 -0
- package/dist/components/forms/__tests__/select-interaction.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/staged-review-fieldset.fixture.svelte +21 -0
- package/dist/components/forms/__tests__/staged-review-fieldset.fixture.svelte.d.ts +8 -0
- package/dist/components/forms/__tests__/staged-review-fieldset.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/staged-review-outer-fieldset.fixture.svelte +23 -0
- package/dist/components/forms/__tests__/staged-review-outer-fieldset.fixture.svelte.d.ts +8 -0
- package/dist/components/forms/__tests__/staged-review-outer-fieldset.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/__tests__/staged-review.fixture.svelte +56 -0
- package/dist/components/forms/__tests__/staged-review.fixture.svelte.d.ts +12 -0
- package/dist/components/forms/__tests__/staged-review.fixture.svelte.d.ts.map +1 -0
- package/dist/components/forms/control-interaction-context.d.ts +9 -1
- package/dist/components/forms/control-interaction-context.d.ts.map +1 -1
- package/dist/components/forms/control-interaction-context.js +16 -0
- package/dist/components/forms/control-interaction.d.ts +97 -7
- package/dist/components/forms/control-interaction.d.ts.map +1 -1
- package/dist/components/forms/control-interaction.js +1019 -92
- package/dist/components/forms/control-value-validation.d.ts +19 -0
- package/dist/components/forms/control-value-validation.d.ts.map +1 -0
- package/dist/components/forms/control-value-validation.js +152 -0
- package/dist/components/forms/index.d.ts +3 -1
- package/dist/components/forms/index.d.ts.map +1 -1
- package/dist/components/forms/index.js +2 -1
- package/dist/components/forms/staged-control-review.d.ts +21 -0
- package/dist/components/forms/staged-control-review.d.ts.map +1 -0
- package/dist/components/forms/staged-control-review.js +1 -0
- package/dist/components/forms/use-control-registration.svelte.d.ts.map +1 -1
- package/dist/components/forms/use-control-registration.svelte.js +23 -4
- package/dist/i18n/strings.d.ts +3 -0
- package/dist/i18n/strings.d.ts.map +1 -1
- package/dist/i18n/strings.js +3 -0
- package/dist/i18n/strings.ui.d.ts +18 -0
- package/dist/i18n/strings.ui.d.ts.map +1 -1
- package/dist/i18n/strings.ui.js +19 -0
- package/dist/svelte/playground/InteractiveControlsPreview.svelte +3 -4
- package/dist/svelte/playground/InteractiveControlsPreview.svelte.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ControlOption } from './control-interaction.js';
|
|
2
|
+
export declare function booleanControlValue(next: unknown): boolean;
|
|
3
|
+
export declare function prepareBooleanControlValue(next: unknown): unknown;
|
|
4
|
+
export declare function prepareTextControlValue(next: unknown): unknown;
|
|
5
|
+
export declare function prepareNumberControlValue(next: unknown): unknown;
|
|
6
|
+
export declare function prepareEnabledOptionValue(options: ControlOption[], next: unknown, matchLabel?: boolean): unknown;
|
|
7
|
+
export declare function prepareEnabledOptionValues(options: ControlOption[], next: unknown): unknown;
|
|
8
|
+
export declare function validateNativeCheckedValue(element: HTMLInputElement, next: unknown): boolean;
|
|
9
|
+
export declare function validateNativeTextValue(element: HTMLTextAreaElement, next: unknown): boolean;
|
|
10
|
+
export declare function matchingOption(options: ControlOption[], next: unknown, matchLabel?: boolean): ControlOption | undefined;
|
|
11
|
+
export declare function validatesEnabledOption(options: ControlOption[], next: unknown, matchLabel?: boolean): boolean;
|
|
12
|
+
export declare function validatesEnabledOptions(options: ControlOption[], next: unknown): boolean;
|
|
13
|
+
export declare function normalizeEnabledOptions(options: ControlOption[], next: unknown): Array<string | number> | undefined;
|
|
14
|
+
export declare function normalizeCurrentOptionValues(options: ControlOption[], next: unknown): Array<string | number>;
|
|
15
|
+
export declare function numberMatchesStep(value: number, min: number, step: number): boolean;
|
|
16
|
+
export declare function validatesSteppedNumber(next: unknown, min: number, max: number, step: number): boolean;
|
|
17
|
+
export declare function snapSteppedNumber(next: number, min: number, max: number, step: number): number;
|
|
18
|
+
export declare function validatesStringArray(next: unknown, maxItems: number | undefined, allowDuplicates: boolean): boolean;
|
|
19
|
+
//# sourceMappingURL=control-value-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-value-validation.d.ts","sourceRoot":"","sources":["../../../src/components/forms/control-value-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAI1D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAMjE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAU9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAOhE;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,EACb,UAAU,UAAQ,GACjB,OAAO,CAGT;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,GACZ,OAAO,CAET;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,OAAO,GACZ,OAAO,CAKT;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,OAAO,GACZ,OAAO,CAST;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,EACb,UAAU,UAAQ,GACjB,aAAa,GAAG,SAAS,CAU3B;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,EACb,UAAU,UAAQ,GACjB,OAAO,CAGT;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,GACZ,OAAO,CAET;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,GACZ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAEpC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,aAAa,EAAE,EACxB,IAAI,EAAE,OAAO,GACZ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAExB;AAqCD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAIT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAaT;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,MAAM,CA4BR;AAoBD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,eAAe,EAAE,OAAO,GACvB,OAAO,CAKT"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
export function booleanControlValue(next) {
|
|
2
|
+
return typeof next === 'string'
|
|
3
|
+
? ['true', '1', 'yes', 'on'].includes(next.toLowerCase())
|
|
4
|
+
: Boolean(next);
|
|
5
|
+
}
|
|
6
|
+
export function prepareBooleanControlValue(next) {
|
|
7
|
+
if (typeof next === 'boolean')
|
|
8
|
+
return next;
|
|
9
|
+
if (next !== null && typeof next === 'object') {
|
|
10
|
+
throw new Error('staged_value_invalid');
|
|
11
|
+
}
|
|
12
|
+
return next;
|
|
13
|
+
}
|
|
14
|
+
export function prepareTextControlValue(next) {
|
|
15
|
+
if (next === null || next === undefined)
|
|
16
|
+
return next;
|
|
17
|
+
if (typeof next === 'string' ||
|
|
18
|
+
typeof next === 'number' ||
|
|
19
|
+
typeof next === 'boolean') {
|
|
20
|
+
return String(next);
|
|
21
|
+
}
|
|
22
|
+
throw new Error('staged_value_invalid');
|
|
23
|
+
}
|
|
24
|
+
export function prepareNumberControlValue(next) {
|
|
25
|
+
if (next === '' || next === null || next === undefined)
|
|
26
|
+
return '';
|
|
27
|
+
if (typeof next !== 'string' && typeof next !== 'number') {
|
|
28
|
+
throw new Error('staged_value_invalid');
|
|
29
|
+
}
|
|
30
|
+
const value = Number(next);
|
|
31
|
+
return Number.isFinite(value) ? value : next;
|
|
32
|
+
}
|
|
33
|
+
export function prepareEnabledOptionValue(options, next, matchLabel = false) {
|
|
34
|
+
const option = matchingOption(options, next, matchLabel);
|
|
35
|
+
return option?.value ?? next;
|
|
36
|
+
}
|
|
37
|
+
export function prepareEnabledOptionValues(options, next) {
|
|
38
|
+
return normalizeEnabledOptions(options, next) ?? next;
|
|
39
|
+
}
|
|
40
|
+
export function validateNativeCheckedValue(element, next) {
|
|
41
|
+
if (typeof next !== 'boolean')
|
|
42
|
+
return false;
|
|
43
|
+
const candidate = element.cloneNode();
|
|
44
|
+
candidate.checked = next;
|
|
45
|
+
return candidate.checkValidity();
|
|
46
|
+
}
|
|
47
|
+
export function validateNativeTextValue(element, next) {
|
|
48
|
+
const candidate = element.cloneNode();
|
|
49
|
+
candidate.value = String(next ?? '');
|
|
50
|
+
if (candidate.required && candidate.value.length === 0)
|
|
51
|
+
return false;
|
|
52
|
+
if (candidate.minLength >= 0 && candidate.value.length < candidate.minLength)
|
|
53
|
+
return false;
|
|
54
|
+
if (candidate.maxLength >= 0 && candidate.value.length > candidate.maxLength)
|
|
55
|
+
return false;
|
|
56
|
+
return candidate.checkValidity();
|
|
57
|
+
}
|
|
58
|
+
export function matchingOption(options, next, matchLabel = false) {
|
|
59
|
+
const candidate = String(next ?? '');
|
|
60
|
+
return (options.find((option) => Object.is(option.value, next)) ??
|
|
61
|
+
options.find((option) => String(option.value) === candidate ||
|
|
62
|
+
(matchLabel && option.label === candidate)));
|
|
63
|
+
}
|
|
64
|
+
export function validatesEnabledOption(options, next, matchLabel = false) {
|
|
65
|
+
const option = matchingOption(options, next, matchLabel);
|
|
66
|
+
return option !== undefined && option.disabled !== true;
|
|
67
|
+
}
|
|
68
|
+
export function validatesEnabledOptions(options, next) {
|
|
69
|
+
return normalizeEnabledOptions(options, next) !== undefined;
|
|
70
|
+
}
|
|
71
|
+
export function normalizeEnabledOptions(options, next) {
|
|
72
|
+
return normalizeOptionValues(options, next, false, false);
|
|
73
|
+
}
|
|
74
|
+
export function normalizeCurrentOptionValues(options, next) {
|
|
75
|
+
return normalizeOptionValues(options, next, true, true) ?? [];
|
|
76
|
+
}
|
|
77
|
+
function normalizeOptionValues(options, next, allowDisabled, skipInvalid) {
|
|
78
|
+
if (!Array.isArray(next))
|
|
79
|
+
return undefined;
|
|
80
|
+
const matchedIndexes = new Set();
|
|
81
|
+
const normalized = [];
|
|
82
|
+
for (const candidate of next) {
|
|
83
|
+
if (typeof candidate !== 'string' && typeof candidate !== 'number')
|
|
84
|
+
return undefined;
|
|
85
|
+
let index = options.findIndex((option) => Object.is(option.value, candidate));
|
|
86
|
+
if (index < 0) {
|
|
87
|
+
index = options.findIndex((option) => String(option.value) === String(candidate));
|
|
88
|
+
}
|
|
89
|
+
const option = options[index];
|
|
90
|
+
const invalid = !option ||
|
|
91
|
+
(!allowDisabled && option.disabled) ||
|
|
92
|
+
matchedIndexes.has(index);
|
|
93
|
+
if (invalid) {
|
|
94
|
+
if (skipInvalid)
|
|
95
|
+
continue;
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
matchedIndexes.add(index);
|
|
99
|
+
normalized.push(option.value);
|
|
100
|
+
}
|
|
101
|
+
return normalized;
|
|
102
|
+
}
|
|
103
|
+
export function numberMatchesStep(value, min, step) {
|
|
104
|
+
if (!Number.isFinite(step) || step <= 0)
|
|
105
|
+
return true;
|
|
106
|
+
const offset = (value - min) / step;
|
|
107
|
+
return Math.abs(offset - Math.round(offset)) <= 1e-9;
|
|
108
|
+
}
|
|
109
|
+
export function validatesSteppedNumber(next, min, max, step) {
|
|
110
|
+
let value;
|
|
111
|
+
try {
|
|
112
|
+
value = typeof next === 'number' ? next : Number(next);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return (Number.isFinite(value) &&
|
|
118
|
+
value >= min &&
|
|
119
|
+
value <= max &&
|
|
120
|
+
numberMatchesStep(value, min, step));
|
|
121
|
+
}
|
|
122
|
+
export function snapSteppedNumber(next, min, max, step) {
|
|
123
|
+
if (!Number.isFinite(step) || step <= 0) {
|
|
124
|
+
return Math.min(max, Math.max(min, next));
|
|
125
|
+
}
|
|
126
|
+
const snapped = min + Math.round((next - min) / step) * step;
|
|
127
|
+
const precision = Math.max(decimalPlaces(min), decimalPlaces(max), decimalPlaces(step));
|
|
128
|
+
const stable = precision <= 100
|
|
129
|
+
? Number(snapped.toFixed(precision))
|
|
130
|
+
: Number(snapped.toPrecision(Math.min(100, Math.max(significantDigits(min), significantDigits(max), significantDigits(step), significantDigits(next), significantDigits(snapped)))));
|
|
131
|
+
return Math.min(max, Math.max(min, stable));
|
|
132
|
+
}
|
|
133
|
+
function significantDigits(value) {
|
|
134
|
+
const coefficient = String(Math.abs(value)).toLowerCase().split('e')[0] ?? '';
|
|
135
|
+
const digits = coefficient.replace('.', '').replace(/^0+/, '');
|
|
136
|
+
return Math.max(1, digits.length);
|
|
137
|
+
}
|
|
138
|
+
function decimalPlaces(value) {
|
|
139
|
+
const [coefficient = '', exponentText = '0'] = String(value)
|
|
140
|
+
.toLowerCase()
|
|
141
|
+
.split('e');
|
|
142
|
+
const fractionLength = coefficient.split('.')[1]?.length ?? 0;
|
|
143
|
+
const exponent = Number(exponentText);
|
|
144
|
+
return Math.max(0, fractionLength - (Number.isFinite(exponent) ? exponent : 0));
|
|
145
|
+
}
|
|
146
|
+
export function validatesStringArray(next, maxItems, allowDuplicates) {
|
|
147
|
+
if (!Array.isArray(next) || !next.every((item) => typeof item === 'string'))
|
|
148
|
+
return false;
|
|
149
|
+
if (maxItems !== undefined && next.length > maxItems)
|
|
150
|
+
return false;
|
|
151
|
+
return allowDuplicates || new Set(next).size === next.length;
|
|
152
|
+
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
export { default as Checkbox } from './Checkbox.svelte';
|
|
15
15
|
export { default as Combobox } from './Combobox.svelte';
|
|
16
|
-
export { type ControlCapability, type ControlCommand, type ControlCommandAction, type ControlCommandContext, type ControlCommandResult, type ControlCommandSource, type ControlConstraints, type ControlIdentity, type ControlInteractionEvent, type ControlInteractionOptions, type ControlInteractionPolicy, type ControlInteractionRegistry, type ControlKind, type ControlMetadata, type ControlOption, type ControlRegistration, type ControlRuntimeState, type ControlSensitivity, type ControlSnapshot, type ControlSubject, createControlInteractionRegistry, } from './control-interaction.js';
|
|
16
|
+
export { type ControlBatchResult, type ControlCapability, type ControlCommand, type ControlCommandAction, type ControlCommandContext, type ControlCommandResult, type ControlCommandSource, type ControlConstraints, type ControlExtensionContext, type ControlIdentity, type ControlInteractionEvent, type ControlInteractionOptions, type ControlInteractionPolicy, type ControlInteractionRegistry, type ControlKind, type ControlMetadata, type ControlOption, type ControlRegistration, type ControlRuntimeState, type ControlSensitivity, type ControlSnapshot, type ControlStagedEntry, type ControlStagedProvenance, type ControlSubject, type ControlValueValidationResult, createControlInteractionRegistry, executeLocalControlBatch, executeLocalControlCommand, } from './control-interaction.js';
|
|
17
17
|
export { type ControlInteractionContextValue, getControlInteractionContext, setControlInteractionContext, tryGetControlInteractionContext, } from './control-interaction-context.js';
|
|
18
18
|
export { default as DatePicker } from './DatePicker.svelte';
|
|
19
19
|
export { default as ErrorSummary } from './ErrorSummary.svelte';
|
|
@@ -32,7 +32,9 @@ export { default as RangeSlider } from './RangeSlider.svelte';
|
|
|
32
32
|
export { default as SegmentedControl } from './SegmentedControl.svelte';
|
|
33
33
|
export { default as Select } from './Select.svelte';
|
|
34
34
|
export { default as Slider } from './Slider.svelte';
|
|
35
|
+
export { default as StagedControlReview } from './StagedControlReview.svelte';
|
|
35
36
|
export { default as Switch } from './Switch.svelte';
|
|
37
|
+
export type { StagedControlReviewLabels } from './staged-control-review.js';
|
|
36
38
|
export { default as TagsInput } from './TagsInput.svelte';
|
|
37
39
|
export { default as Textarea } from './Textarea.svelte';
|
|
38
40
|
export { default as TimePicker } from './TimePicker.svelte';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/forms/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,gCAAgC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/forms/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
export { default as Checkbox } from './Checkbox.svelte';
|
|
15
15
|
export { default as Combobox } from './Combobox.svelte';
|
|
16
|
-
export { createControlInteractionRegistry, } from './control-interaction.js';
|
|
16
|
+
export { createControlInteractionRegistry, executeLocalControlBatch, executeLocalControlCommand, } from './control-interaction.js';
|
|
17
17
|
export { getControlInteractionContext, setControlInteractionContext, tryGetControlInteractionContext, } from './control-interaction-context.js';
|
|
18
18
|
export { default as DatePicker } from './DatePicker.svelte';
|
|
19
19
|
export { default as ErrorSummary } from './ErrorSummary.svelte';
|
|
@@ -32,6 +32,7 @@ export { default as RangeSlider } from './RangeSlider.svelte';
|
|
|
32
32
|
export { default as SegmentedControl } from './SegmentedControl.svelte';
|
|
33
33
|
export { default as Select } from './Select.svelte';
|
|
34
34
|
export { default as Slider } from './Slider.svelte';
|
|
35
|
+
export { default as StagedControlReview } from './StagedControlReview.svelte';
|
|
35
36
|
export { default as Switch } from './Switch.svelte';
|
|
36
37
|
export { default as TagsInput } from './TagsInput.svelte';
|
|
37
38
|
export { default as Textarea } from './Textarea.svelte';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface StagedControlReviewLabels {
|
|
2
|
+
region: string;
|
|
3
|
+
heading: string;
|
|
4
|
+
description: string;
|
|
5
|
+
proposedBy: string;
|
|
6
|
+
stagedAt: string;
|
|
7
|
+
before: string;
|
|
8
|
+
after: string;
|
|
9
|
+
redacted: string;
|
|
10
|
+
stale: string;
|
|
11
|
+
invalid: string;
|
|
12
|
+
apply: string;
|
|
13
|
+
discard: string;
|
|
14
|
+
applyAll: string;
|
|
15
|
+
discardAll: string;
|
|
16
|
+
edit: string;
|
|
17
|
+
appliedStatus: string;
|
|
18
|
+
discardedStatus: string;
|
|
19
|
+
batchStatus: string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=staged-control-review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staged-control-review.d.ts","sourceRoot":"","sources":["../../../src/components/forms/staged-control-review.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-control-registration.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/forms/use-control-registration.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-control-registration.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/forms/use-control-registration.svelte.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,6BACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAC7C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,6BAA6B,GAAG,KAAK,GACzD,IAAI,CAkCN"}
|
|
@@ -1,15 +1,34 @@
|
|
|
1
|
+
import { onDestroy, untrack } from 'svelte';
|
|
1
2
|
import { tryGetControlInteractionContext } from './control-interaction-context.js';
|
|
2
3
|
/** Register a reactive control descriptor with the nearest Form registry. */
|
|
3
4
|
export function useControlRegistration(getDescriptor) {
|
|
4
5
|
const context = tryGetControlInteractionContext();
|
|
6
|
+
let disposeCurrent;
|
|
7
|
+
onDestroy(() => {
|
|
8
|
+
disposeCurrent?.();
|
|
9
|
+
disposeCurrent = undefined;
|
|
10
|
+
});
|
|
5
11
|
$effect(() => {
|
|
6
12
|
const descriptor = getDescriptor();
|
|
7
|
-
if (!context || descriptor === false || !descriptor.controlId)
|
|
13
|
+
if (!context || descriptor === false || !descriptor.controlId) {
|
|
14
|
+
disposeCurrent?.();
|
|
15
|
+
disposeCurrent = undefined;
|
|
8
16
|
return;
|
|
17
|
+
}
|
|
9
18
|
const { controlId, subject, ...registration } = descriptor;
|
|
10
|
-
|
|
19
|
+
const registry = context.registry;
|
|
20
|
+
const formId = context.formId;
|
|
21
|
+
const identitySubject = subject
|
|
22
|
+
? { type: subject.type, id: subject.id, label: subject.label }
|
|
23
|
+
: undefined;
|
|
24
|
+
const previousDispose = disposeCurrent;
|
|
25
|
+
disposeCurrent = untrack(() => registry.register({
|
|
11
26
|
...registration,
|
|
12
|
-
identity: { formId
|
|
13
|
-
});
|
|
27
|
+
identity: { formId, controlId, subject: identitySubject },
|
|
28
|
+
}));
|
|
29
|
+
// Register the replacement before disposing the prior descriptor. For a
|
|
30
|
+
// same-identity reactive update the old disposer then becomes a no-op,
|
|
31
|
+
// preserving staged proposals, undo history, and user-edit snapshots.
|
|
32
|
+
previousDispose?.();
|
|
14
33
|
});
|
|
15
34
|
}
|
package/dist/i18n/strings.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare const M: {
|
|
2
|
+
readonly 'ui.currency_display.invalid_code': "ui.currency_display.invalid_code";
|
|
3
|
+
readonly 'ui.currency_display.invalid_minor_unit_amount': "ui.currency_display.invalid_minor_unit_amount";
|
|
4
|
+
readonly 'ui.currency_display.no_minor_unit': "ui.currency_display.no_minor_unit";
|
|
2
5
|
readonly 'ui.data_table.select_all': "ui.data_table.select_all";
|
|
3
6
|
readonly 'ui.data_table.select_current_page': "ui.data_table.select_current_page";
|
|
4
7
|
readonly 'ui.data_table.select_row': "ui.data_table.select_row";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCZ,CAAC"}
|
package/dist/i18n/strings.js
CHANGED
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { defineMessages } from './registry.js';
|
|
14
14
|
export const M = defineMessages({
|
|
15
|
+
'ui.currency_display.invalid_code': 'Invalid currency code: {code}',
|
|
16
|
+
'ui.currency_display.invalid_minor_unit_amount': 'Invalid minor-unit amount',
|
|
17
|
+
'ui.currency_display.no_minor_unit': 'Currency code has no minor unit: {code}',
|
|
15
18
|
'ui.data_table.select_all': 'Select all rows',
|
|
16
19
|
'ui.data_table.select_current_page': 'Select all rows on this page',
|
|
17
20
|
'ui.data_table.select_row': 'Select {row}',
|
|
@@ -32,5 +32,23 @@ export declare const M: {
|
|
|
32
32
|
readonly 'ui.pagination.last_page': "ui.pagination.last_page";
|
|
33
33
|
readonly 'ui.reaction_picker.label': "ui.reaction_picker.label";
|
|
34
34
|
readonly 'ui.reaction_picker.react_with': "ui.reaction_picker.react_with";
|
|
35
|
+
readonly 'ui.staged_control_review.region': "ui.staged_control_review.region";
|
|
36
|
+
readonly 'ui.staged_control_review.heading': "ui.staged_control_review.heading";
|
|
37
|
+
readonly 'ui.staged_control_review.description': "ui.staged_control_review.description";
|
|
38
|
+
readonly 'ui.staged_control_review.proposed_by': "ui.staged_control_review.proposed_by";
|
|
39
|
+
readonly 'ui.staged_control_review.staged_at': "ui.staged_control_review.staged_at";
|
|
40
|
+
readonly 'ui.staged_control_review.before': "ui.staged_control_review.before";
|
|
41
|
+
readonly 'ui.staged_control_review.after': "ui.staged_control_review.after";
|
|
42
|
+
readonly 'ui.staged_control_review.redacted': "ui.staged_control_review.redacted";
|
|
43
|
+
readonly 'ui.staged_control_review.stale': "ui.staged_control_review.stale";
|
|
44
|
+
readonly 'ui.staged_control_review.invalid': "ui.staged_control_review.invalid";
|
|
45
|
+
readonly 'ui.staged_control_review.apply': "ui.staged_control_review.apply";
|
|
46
|
+
readonly 'ui.staged_control_review.discard': "ui.staged_control_review.discard";
|
|
47
|
+
readonly 'ui.staged_control_review.apply_all': "ui.staged_control_review.apply_all";
|
|
48
|
+
readonly 'ui.staged_control_review.discard_all': "ui.staged_control_review.discard_all";
|
|
49
|
+
readonly 'ui.staged_control_review.edit': "ui.staged_control_review.edit";
|
|
50
|
+
readonly 'ui.staged_control_review.applied_status': "ui.staged_control_review.applied_status";
|
|
51
|
+
readonly 'ui.staged_control_review.discarded_status': "ui.staged_control_review.discarded_status";
|
|
52
|
+
readonly 'ui.staged_control_review.batch_status': "ui.staged_control_review.batch_status";
|
|
35
53
|
};
|
|
36
54
|
//# sourceMappingURL=strings.ui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.ui.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.ui.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"strings.ui.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.ui.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEZ,CAAC"}
|
package/dist/i18n/strings.ui.js
CHANGED
|
@@ -44,4 +44,23 @@ export const M = defineMessages({
|
|
|
44
44
|
// chat/ReactionPicker.svelte
|
|
45
45
|
'ui.reaction_picker.label': 'Add reaction',
|
|
46
46
|
'ui.reaction_picker.react_with': 'React with {emoji}',
|
|
47
|
+
// forms/StagedControlReview.svelte
|
|
48
|
+
'ui.staged_control_review.region': 'Review proposed changes',
|
|
49
|
+
'ui.staged_control_review.heading': 'Proposed changes',
|
|
50
|
+
'ui.staged_control_review.description': 'Review changes before they update the form.',
|
|
51
|
+
'ui.staged_control_review.proposed_by': 'Proposed by',
|
|
52
|
+
'ui.staged_control_review.staged_at': 'staged',
|
|
53
|
+
'ui.staged_control_review.before': 'Current',
|
|
54
|
+
'ui.staged_control_review.after': 'Proposed',
|
|
55
|
+
'ui.staged_control_review.redacted': 'Hidden for privacy',
|
|
56
|
+
'ui.staged_control_review.stale': 'The field changed after this proposal was staged.',
|
|
57
|
+
'ui.staged_control_review.invalid': 'This proposal is not valid.',
|
|
58
|
+
'ui.staged_control_review.apply': 'Apply',
|
|
59
|
+
'ui.staged_control_review.discard': 'Discard',
|
|
60
|
+
'ui.staged_control_review.apply_all': 'Apply valid changes',
|
|
61
|
+
'ui.staged_control_review.discard_all': 'Discard valid changes',
|
|
62
|
+
'ui.staged_control_review.edit': 'Edit proposed value for',
|
|
63
|
+
'ui.staged_control_review.applied_status': 'Applied proposed change.',
|
|
64
|
+
'ui.staged_control_review.discarded_status': 'Discarded proposed change.',
|
|
65
|
+
'ui.staged_control_review.batch_status': 'Processed {completed} of {total} proposed changes.',
|
|
47
66
|
});
|
|
@@ -40,10 +40,9 @@ let tags = $state(['svelte', 'agents']);
|
|
|
40
40
|
let region = $state<string | number>('west');
|
|
41
41
|
let status = $state('Controls are ready for direct use or agent guidance.');
|
|
42
42
|
|
|
43
|
-
async function command(command: ControlCommand
|
|
43
|
+
async function command(command: ControlCommand) {
|
|
44
44
|
const result = await registry.execute(command, {
|
|
45
45
|
source: 'agent',
|
|
46
|
-
confirmed,
|
|
47
46
|
});
|
|
48
47
|
status = result.ok
|
|
49
48
|
? `${command.action} completed for ${command.identity.controlId}.`
|
|
@@ -62,10 +61,10 @@ const identity = (controlId: string) => ({
|
|
|
62
61
|
<div class="agent-actions">
|
|
63
62
|
<Button size="sm" variant="secondary" onclick={() => command({ action: 'highlight', identity: identity('country') })}>Highlight country</Button>
|
|
64
63
|
<Button size="sm" variant="secondary" onclick={() => command({ action: 'stage', identity: identity('volume'), value: 72 })}>Stage volume 72</Button>
|
|
65
|
-
<Button size="sm" onclick={() => command({ action: '
|
|
64
|
+
<Button size="sm" onclick={() => command({ action: 'stage', identity: identity('country'), value: 'us' })}>Stage country US</Button>
|
|
66
65
|
</div>
|
|
67
66
|
</header>
|
|
68
|
-
<p class="agent-status" aria-live="polite">Agent: {status}
|
|
67
|
+
<p class="agent-status" aria-live="polite">Agent: {status} Review staged changes in the form before applying or discarding them.</p>
|
|
69
68
|
|
|
70
69
|
<Form formId="foundation-demo" interactionRegistry={registry} aria-label="Foundation controls">
|
|
71
70
|
<section><h5>Choice and state</h5><div class="grid compact">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractiveControlsPreview.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/playground/InteractiveControlsPreview.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InteractiveControlsPreview.svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte/playground/InteractiveControlsPreview.svelte.ts"],"names":[],"mappings":"AAwHA,QAAA,MAAM,0BAA0B,2DAAwC,CAAC;AACzE,KAAK,0BAA0B,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAChF,eAAe,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-ui",
|
|
3
|
-
"version": "0.43.
|
|
3
|
+
"version": "0.43.6",
|
|
4
4
|
"description": "Domain-agnostic Svelte 5 UI runtime for SMRT: primitives, i18n client, theme system, and module UI registry",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
},
|
|
130
130
|
"dependencies": {
|
|
131
131
|
"esm-env": "^1.2.2",
|
|
132
|
-
"@happyvertical/smrt-types": "0.43.
|
|
132
|
+
"@happyvertical/smrt-types": "0.43.6"
|
|
133
133
|
},
|
|
134
134
|
"peerDependencies": {
|
|
135
135
|
"svelte": "^5.56.4"
|