@llui/components 0.0.6 → 0.0.7
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/components/date-picker.d.ts +12 -0
- package/dist/components/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker.js +18 -1
- package/dist/components/file-upload.d.ts +1 -0
- package/dist/components/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload.js +1 -0
- package/dist/components/form.d.ts +115 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/form.js +102 -0
- package/dist/components/hover-card.d.ts +0 -1
- package/dist/components/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card.js +0 -1
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -0
- package/dist/components/scroll-area.d.ts +1 -0
- package/dist/components/scroll-area.d.ts.map +1 -1
- package/dist/components/scroll-area.js +1 -0
- package/dist/components/sortable.d.ts +106 -0
- package/dist/components/sortable.d.ts.map +1 -0
- package/dist/components/sortable.js +97 -0
- package/dist/components/tags-input.d.ts +0 -1
- package/dist/components/tags-input.d.ts.map +1 -1
- package/dist/components/tags-input.js +0 -1
- package/dist/components/theme-switch.d.ts +89 -0
- package/dist/components/theme-switch.d.ts.map +1 -0
- package/dist/components/theme-switch.js +96 -0
- package/dist/components/toggle-group.d.ts +0 -1
- package/dist/components/toggle-group.d.ts.map +1 -1
- package/dist/components/toggle-group.js +0 -1
- package/dist/styles/theme.css +2 -2
- package/dist/utils/validators.d.ts +34 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +83 -0
- package/package.json +4 -3
|
@@ -78,6 +78,12 @@ export interface DayCell {
|
|
|
78
78
|
* to fill the grid.
|
|
79
79
|
*/
|
|
80
80
|
export declare function monthGrid(state: DatePickerState): DayCell[];
|
|
81
|
+
/**
|
|
82
|
+
* Group a flat `DayCell[]` (from `monthGrid`) into rows of 7 — one row
|
|
83
|
+
* per week — so the view can wrap each in a `role="row"` element as
|
|
84
|
+
* required by the WAI-ARIA grid pattern.
|
|
85
|
+
*/
|
|
86
|
+
export declare function weekRows(cells: DayCell[]): DayCell[][];
|
|
81
87
|
export interface DayCellParts<_S> {
|
|
82
88
|
cell: {
|
|
83
89
|
role: 'gridcell';
|
|
@@ -109,6 +115,11 @@ export interface DatePickerParts<S> {
|
|
|
109
115
|
'data-scope': 'date-picker';
|
|
110
116
|
'data-part': 'grid';
|
|
111
117
|
};
|
|
118
|
+
row: {
|
|
119
|
+
role: 'row';
|
|
120
|
+
'data-scope': 'date-picker';
|
|
121
|
+
'data-part': 'row';
|
|
122
|
+
};
|
|
112
123
|
prevMonthTrigger: {
|
|
113
124
|
type: 'button';
|
|
114
125
|
'aria-label': string | ((s: S) => string);
|
|
@@ -138,5 +149,6 @@ export declare const datePicker: {
|
|
|
138
149
|
update: typeof update;
|
|
139
150
|
connect: typeof connect;
|
|
140
151
|
monthGrid: typeof monthGrid;
|
|
152
|
+
weekRows: typeof weekRows;
|
|
141
153
|
};
|
|
142
154
|
//# sourceMappingURL=date-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../src/components/date-picker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../src/components/date-picker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMrC;;;;;;;GAOG;AAEH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,0CAA0C;IAC1C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,0BAA0B;IAC1B,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAErB,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAuCD,wBAAgB,IAAI,CAAC,IAAI,GAAE,cAAmB,GAAG,eAAe,CAe/D;AAuBD,wBAAgB,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CA+C7F;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,EAAE,CAqD3D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAMtD;AAED,MAAM,WAAW,YAAY,CAAC,EAAE;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU,CAAA;QAChB,eAAe,EAAE,OAAO,CAAA;QACxB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;QACnC,QAAQ,EAAE,MAAM,CAAA;QAChB,YAAY,EAAE,aAAa,CAAA;QAC3B,WAAW,EAAE,UAAU,CAAA;QACvB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,EAAE,GAAG,SAAS,CAAA;QAC/B,YAAY,EAAE,EAAE,GAAG,SAAS,CAAA;QAC5B,eAAe,EAAE,EAAE,GAAG,SAAS,CAAA;QAC/B,cAAc,EAAE,EAAE,GAAG,SAAS,CAAA;QAC9B,eAAe,EAAE,EAAE,GAAG,SAAS,CAAA;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;QAChC,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAA;QACrC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;CACF;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE;QACJ,YAAY,EAAE,aAAa,CAAA;QAC3B,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;KAC1C,CAAA;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;QAC9B,YAAY,EAAE,aAAa,CAAA;QAC3B,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK,CAAA;QACX,YAAY,EAAE,aAAa,CAAA;QAC3B,WAAW,EAAE,KAAK,CAAA;KACnB,CAAA;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ,CAAA;QACd,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAA;QACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;QAC3B,YAAY,EAAE,aAAa,CAAA;QAC3B,WAAW,EAAE,oBAAoB,CAAA;QACjC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ,CAAA;QACd,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAA;QACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;QAC3B,YAAY,EAAE,aAAa,CAAA;QAC3B,WAAW,EAAE,oBAAoB,CAAA;QACjC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAA;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACpD;AAED,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,eAAe,EAC9B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EACzB,IAAI,GAAE,cAAmB,GACxB,eAAe,CAAC,CAAC,CAAC,CA0GpB;AAED,eAAO,MAAM,UAAU;;;;;;CAAiD,CAAA"}
|
|
@@ -182,6 +182,18 @@ export function monthGrid(state) {
|
|
|
182
182
|
}
|
|
183
183
|
return cells;
|
|
184
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Group a flat `DayCell[]` (from `monthGrid`) into rows of 7 — one row
|
|
187
|
+
* per week — so the view can wrap each in a `role="row"` element as
|
|
188
|
+
* required by the WAI-ARIA grid pattern.
|
|
189
|
+
*/
|
|
190
|
+
export function weekRows(cells) {
|
|
191
|
+
const rows = [];
|
|
192
|
+
for (let i = 0; i < cells.length; i += 7) {
|
|
193
|
+
rows.push(cells.slice(i, i + 7));
|
|
194
|
+
}
|
|
195
|
+
return rows;
|
|
196
|
+
}
|
|
185
197
|
export function connect(get, send, opts = {}) {
|
|
186
198
|
const locale = useContext(LocaleContext);
|
|
187
199
|
const prevLabel = opts.prevLabel ?? ((s) => locale(s).datePicker.prev);
|
|
@@ -199,6 +211,11 @@ export function connect(get, send, opts = {}) {
|
|
|
199
211
|
'data-scope': 'date-picker',
|
|
200
212
|
'data-part': 'grid',
|
|
201
213
|
},
|
|
214
|
+
row: {
|
|
215
|
+
role: 'row',
|
|
216
|
+
'data-scope': 'date-picker',
|
|
217
|
+
'data-part': 'row',
|
|
218
|
+
},
|
|
202
219
|
prevMonthTrigger: {
|
|
203
220
|
type: 'button',
|
|
204
221
|
'aria-label': prevLabel,
|
|
@@ -282,4 +299,4 @@ export function connect(get, send, opts = {}) {
|
|
|
282
299
|
}),
|
|
283
300
|
};
|
|
284
301
|
}
|
|
285
|
-
export const datePicker = { init, update, connect, monthGrid };
|
|
302
|
+
export const datePicker = { init, update, connect, monthGrid, weekRows };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/components/file-upload.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/components/file-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { Send } from '@llui/dom';
|
|
2
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
3
|
+
/**
|
|
4
|
+
* Form — submit lifecycle + touched tracking + Standard Schema validation.
|
|
5
|
+
*
|
|
6
|
+
* Values live in the parent component's state; `form` tracks submit status
|
|
7
|
+
* and which fields have been interacted with (blur), so errors are shown
|
|
8
|
+
* only after touch instead of immediately.
|
|
9
|
+
*
|
|
10
|
+
* Bring your own validation library — any Standard Schema-compatible
|
|
11
|
+
* schema works (Zod, Valibot, ArkType, etc.). See https://standardschema.dev.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { z } from 'zod'
|
|
15
|
+
* import { form, validateSchema } from '@llui/components/form'
|
|
16
|
+
*
|
|
17
|
+
* const schema = z.object({
|
|
18
|
+
* email: z.string().email(),
|
|
19
|
+
* password: z.string().min(8),
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* type Values = z.infer<typeof schema>
|
|
23
|
+
* type State = { values: Values; form: FormState }
|
|
24
|
+
*
|
|
25
|
+
* update: (state, msg) => {
|
|
26
|
+
* switch (msg.type) {
|
|
27
|
+
* case 'submit': {
|
|
28
|
+
* const result = validateSchema(schema, state.values)
|
|
29
|
+
* if (!result.isValid) {
|
|
30
|
+
* return [{ ...state, form: { ...state.form, touched: { email: true, password: true } } }, []]
|
|
31
|
+
* }
|
|
32
|
+
* return [{ ...state, form: { ...state.form, status: 'submitting' } }, [saveUserEffect]]
|
|
33
|
+
* }
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export type FormStatus = 'idle' | 'submitting' | 'submitted' | 'error';
|
|
39
|
+
export interface FormState {
|
|
40
|
+
status: FormStatus;
|
|
41
|
+
touched: Record<string, boolean>;
|
|
42
|
+
submitError: string | null;
|
|
43
|
+
}
|
|
44
|
+
export type FormMsg = {
|
|
45
|
+
type: 'touch';
|
|
46
|
+
field: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'touchAll';
|
|
49
|
+
fields: string[];
|
|
50
|
+
} | {
|
|
51
|
+
type: 'submit';
|
|
52
|
+
} | {
|
|
53
|
+
type: 'submitSuccess';
|
|
54
|
+
} | {
|
|
55
|
+
type: 'submitError';
|
|
56
|
+
error: string;
|
|
57
|
+
} | {
|
|
58
|
+
type: 'reset';
|
|
59
|
+
};
|
|
60
|
+
export declare function init(): FormState;
|
|
61
|
+
export declare function update(state: FormState, msg: FormMsg): [FormState, never[]];
|
|
62
|
+
export interface FormParts<S> {
|
|
63
|
+
root: {
|
|
64
|
+
'data-scope': 'form';
|
|
65
|
+
'data-part': 'root';
|
|
66
|
+
'data-state': (s: S) => FormStatus;
|
|
67
|
+
'aria-busy': (s: S) => 'true' | undefined;
|
|
68
|
+
};
|
|
69
|
+
field: (name: string) => {
|
|
70
|
+
'data-scope': 'form';
|
|
71
|
+
'data-part': 'field';
|
|
72
|
+
'data-touched': (s: S) => '' | undefined;
|
|
73
|
+
touched: (s: S) => boolean;
|
|
74
|
+
onBlur: (e: FocusEvent) => void;
|
|
75
|
+
};
|
|
76
|
+
submit: {
|
|
77
|
+
type: 'submit';
|
|
78
|
+
'data-scope': 'form';
|
|
79
|
+
'data-part': 'submit';
|
|
80
|
+
'data-state': (s: S) => FormStatus;
|
|
81
|
+
disabled: (s: S) => boolean;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export interface ConnectOptions {
|
|
85
|
+
id: string;
|
|
86
|
+
}
|
|
87
|
+
export declare function connect<S>(get: (s: S) => FormState, send: Send<FormMsg>, _opts: ConnectOptions): FormParts<S>;
|
|
88
|
+
export interface ValidateResult<T> {
|
|
89
|
+
isValid: boolean;
|
|
90
|
+
/** Field name → first error message. Field name is derived from the issue's path. */
|
|
91
|
+
errors: Partial<Record<keyof T, string>>;
|
|
92
|
+
/** All issues from the schema validator, unaltered. */
|
|
93
|
+
issues: readonly StandardSchemaV1.Issue[];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Run a Standard Schema synchronously against a values object. Throws if
|
|
97
|
+
* the schema returns a Promise — use sync validation only for form submit.
|
|
98
|
+
*
|
|
99
|
+
* Works with any library implementing the Standard Schema spec:
|
|
100
|
+
* Zod (v3.24+), Valibot (v1+), ArkType, etc.
|
|
101
|
+
*/
|
|
102
|
+
export declare function validateSchema<T>(schema: StandardSchemaV1<T>, values: unknown): ValidateResult<T>;
|
|
103
|
+
/**
|
|
104
|
+
* Async variant — returns a Promise. Use when the schema performs async
|
|
105
|
+
* validation (e.g. uniqueness checks against a backend).
|
|
106
|
+
*/
|
|
107
|
+
export declare function validateSchemaAsync<T>(schema: StandardSchemaV1<T>, values: unknown): Promise<ValidateResult<T>>;
|
|
108
|
+
export declare const form: {
|
|
109
|
+
init: typeof init;
|
|
110
|
+
update: typeof update;
|
|
111
|
+
connect: typeof connect;
|
|
112
|
+
validateSchema: typeof validateSchema;
|
|
113
|
+
validateSchemaAsync: typeof validateSchemaAsync;
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/components/form.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export function init() {
|
|
2
|
+
return { status: 'idle', touched: {}, submitError: null };
|
|
3
|
+
}
|
|
4
|
+
export function update(state, msg) {
|
|
5
|
+
switch (msg.type) {
|
|
6
|
+
case 'touch':
|
|
7
|
+
if (state.touched[msg.field])
|
|
8
|
+
return [state, []];
|
|
9
|
+
return [{ ...state, touched: { ...state.touched, [msg.field]: true } }, []];
|
|
10
|
+
case 'touchAll': {
|
|
11
|
+
const touched = { ...state.touched };
|
|
12
|
+
for (const f of msg.fields)
|
|
13
|
+
touched[f] = true;
|
|
14
|
+
return [{ ...state, touched }, []];
|
|
15
|
+
}
|
|
16
|
+
case 'submit':
|
|
17
|
+
return [{ ...state, status: 'submitting', submitError: null }, []];
|
|
18
|
+
case 'submitSuccess':
|
|
19
|
+
return [{ ...state, status: 'submitted', submitError: null }, []];
|
|
20
|
+
case 'submitError':
|
|
21
|
+
return [{ ...state, status: 'error', submitError: msg.error }, []];
|
|
22
|
+
case 'reset':
|
|
23
|
+
return [init(), []];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function connect(get, send, _opts) {
|
|
27
|
+
return {
|
|
28
|
+
root: {
|
|
29
|
+
'data-scope': 'form',
|
|
30
|
+
'data-part': 'root',
|
|
31
|
+
'data-state': (s) => get(s).status,
|
|
32
|
+
'aria-busy': (s) => (get(s).status === 'submitting' ? 'true' : undefined),
|
|
33
|
+
},
|
|
34
|
+
field: (name) => ({
|
|
35
|
+
'data-scope': 'form',
|
|
36
|
+
'data-part': 'field',
|
|
37
|
+
'data-touched': (s) => (get(s).touched[name] ? '' : undefined),
|
|
38
|
+
touched: (s) => !!get(s).touched[name],
|
|
39
|
+
onBlur: () => send({ type: 'touch', field: name }),
|
|
40
|
+
}),
|
|
41
|
+
submit: {
|
|
42
|
+
type: 'submit',
|
|
43
|
+
'data-scope': 'form',
|
|
44
|
+
'data-part': 'submit',
|
|
45
|
+
'data-state': (s) => get(s).status,
|
|
46
|
+
disabled: (s) => get(s).status === 'submitting',
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Run a Standard Schema synchronously against a values object. Throws if
|
|
52
|
+
* the schema returns a Promise — use sync validation only for form submit.
|
|
53
|
+
*
|
|
54
|
+
* Works with any library implementing the Standard Schema spec:
|
|
55
|
+
* Zod (v3.24+), Valibot (v1+), ArkType, etc.
|
|
56
|
+
*/
|
|
57
|
+
export function validateSchema(schema, values) {
|
|
58
|
+
const result = schema['~standard'].validate(values);
|
|
59
|
+
if (result instanceof Promise) {
|
|
60
|
+
throw new Error('[@llui/components/form] validateSchema: schema returned a Promise. ' +
|
|
61
|
+
'Form validation must be synchronous. Use `validateSchemaAsync` for async schemas.');
|
|
62
|
+
}
|
|
63
|
+
if (!result.issues) {
|
|
64
|
+
return { isValid: true, errors: {}, issues: [] };
|
|
65
|
+
}
|
|
66
|
+
const errors = {};
|
|
67
|
+
for (const issue of result.issues) {
|
|
68
|
+
const path = issue.path;
|
|
69
|
+
if (!path || path.length === 0)
|
|
70
|
+
continue;
|
|
71
|
+
const first = path[0];
|
|
72
|
+
const key = (typeof first === 'object' ? first.key : first);
|
|
73
|
+
// Only record the first error per field
|
|
74
|
+
if (errors[key] === undefined) {
|
|
75
|
+
errors[key] = issue.message;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return { isValid: false, errors, issues: result.issues };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Async variant — returns a Promise. Use when the schema performs async
|
|
82
|
+
* validation (e.g. uniqueness checks against a backend).
|
|
83
|
+
*/
|
|
84
|
+
export async function validateSchemaAsync(schema, values) {
|
|
85
|
+
const result = await schema['~standard'].validate(values);
|
|
86
|
+
if (!result.issues) {
|
|
87
|
+
return { isValid: true, errors: {}, issues: [] };
|
|
88
|
+
}
|
|
89
|
+
const errors = {};
|
|
90
|
+
for (const issue of result.issues) {
|
|
91
|
+
const path = issue.path;
|
|
92
|
+
if (!path || path.length === 0)
|
|
93
|
+
continue;
|
|
94
|
+
const first = path[0];
|
|
95
|
+
const key = (typeof first === 'object' ? first.key : first);
|
|
96
|
+
if (errors[key] === undefined) {
|
|
97
|
+
errors[key] = issue.message;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return { isValid: false, errors, issues: result.issues };
|
|
101
|
+
}
|
|
102
|
+
export const form = { init, update, connect, validateSchema, validateSchemaAsync };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../src/components/hover-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAExD,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElE;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAEnG,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAgB,IAAI,CAAC,IAAI,GAAE,aAAkB,GAAG,cAAc,CAE7D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAS1F;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAA;QACV,eAAe,EAAE,QAAQ,CAAA;QACzB,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../src/components/hover-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,6 @@ export function connect(get, send, opts) {
|
|
|
49
49
|
trigger: {
|
|
50
50
|
id: triggerId,
|
|
51
51
|
'aria-haspopup': 'dialog',
|
|
52
|
-
'aria-expanded': (s) => get(s).open,
|
|
53
52
|
'aria-controls': contentId,
|
|
54
53
|
'data-state': (s) => (get(s).open ? 'open' : 'closed'),
|
|
55
54
|
'data-scope': 'hover-card',
|
|
@@ -53,6 +53,12 @@ export * as imageCropper from './image-cropper';
|
|
|
53
53
|
export * as navigationMenu from './navigation-menu';
|
|
54
54
|
export * as qrCode from './qr-code';
|
|
55
55
|
export * as inView from './in-view';
|
|
56
|
+
export * as form from './form';
|
|
57
|
+
export * as sortable from './sortable';
|
|
58
|
+
export * as themeSwitch from './theme-switch';
|
|
59
|
+
export type { FormState, FormMsg, FormStatus, FormParts, ValidateResult } from './form';
|
|
60
|
+
export type { SortableState, SortableMsg, SortableParts, DragState } from './sortable';
|
|
61
|
+
export type { ThemeSwitchState, ThemeSwitchMsg, ThemeSwitchParts, Theme, ResolvedTheme, } from './theme-switch';
|
|
56
62
|
export type { InViewState, InViewMsg, InViewParts, ObserverOptions as InViewObserverOptions, } from './in-view';
|
|
57
63
|
export type { TimerState, TimerMsg, TimerInit, TimerParts, Direction as TimerDirection, } from './timer';
|
|
58
64
|
export type { AngleSliderState, AngleSliderMsg, AngleSliderInit, AngleSliderParts, } from './angle-slider';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -53,3 +53,6 @@ export * as imageCropper from './image-cropper';
|
|
|
53
53
|
export * as navigationMenu from './navigation-menu';
|
|
54
54
|
export * as qrCode from './qr-code';
|
|
55
55
|
export * as inView from './in-view';
|
|
56
|
+
export * as form from './form';
|
|
57
|
+
export * as sortable from './sortable';
|
|
58
|
+
export * as themeSwitch from './theme-switch';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../src/components/scroll-area.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../src/components/scroll-area.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { Send } from '@llui/dom';
|
|
2
|
+
/**
|
|
3
|
+
* Sortable — pointer-based reorderable list.
|
|
4
|
+
*
|
|
5
|
+
* State machine tracks the currently-dragged item and where it's hovering.
|
|
6
|
+
* The app owns the actual array; listen for `drop` and use `reorder(arr, from, to)`
|
|
7
|
+
* to compute the new order, or watch `currentIndex` during drag for live preview.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* type State = { items: string[]; sort: SortableState }
|
|
11
|
+
*
|
|
12
|
+
* update: (state, msg) => {
|
|
13
|
+
* switch (msg.type) {
|
|
14
|
+
* case 'sort':
|
|
15
|
+
* return [{ ...state, sort: sortable.update(state.sort, msg.msg)[0] }, []]
|
|
16
|
+
* case 'drop': {
|
|
17
|
+
* const d = state.sort.dragging
|
|
18
|
+
* if (!d) return [state, []]
|
|
19
|
+
* return [{ ...state, items: reorder(state.items, d.startIndex, d.currentIndex) }, []]
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* view: ({ send, each, text }) => {
|
|
25
|
+
* const s = sortable.connect<State>(s => s.sort, m => send({ type: 'sort', msg: m }), { id: 'list' })
|
|
26
|
+
* return [
|
|
27
|
+
* ul({ ...s.root, class: 'list' }, [
|
|
28
|
+
* ...each({
|
|
29
|
+
* items: (st) => st.items,
|
|
30
|
+
* key: (x) => x,
|
|
31
|
+
* render: ({ item, index }) => [
|
|
32
|
+
* li({ ...s.item(item(), index()), class: 'item' }, [
|
|
33
|
+
* div({ ...s.handle(item(), index()), class: 'handle' }, [text('⋮⋮')]),
|
|
34
|
+
* text(item),
|
|
35
|
+
* ]),
|
|
36
|
+
* ],
|
|
37
|
+
* }),
|
|
38
|
+
* ]),
|
|
39
|
+
* ]
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* Hook up pointermove/pointerup at the root (attachPointerHandlers) — or
|
|
44
|
+
* wire them directly via `onPointerMove` / `onPointerUp` on the root part.
|
|
45
|
+
*/
|
|
46
|
+
export interface DragState {
|
|
47
|
+
id: string;
|
|
48
|
+
startIndex: number;
|
|
49
|
+
currentIndex: number;
|
|
50
|
+
}
|
|
51
|
+
export interface SortableState {
|
|
52
|
+
dragging: DragState | null;
|
|
53
|
+
}
|
|
54
|
+
export type SortableMsg = {
|
|
55
|
+
type: 'start';
|
|
56
|
+
id: string;
|
|
57
|
+
index: number;
|
|
58
|
+
} | {
|
|
59
|
+
type: 'move';
|
|
60
|
+
index: number;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'drop';
|
|
63
|
+
} | {
|
|
64
|
+
type: 'cancel';
|
|
65
|
+
};
|
|
66
|
+
export declare function init(): SortableState;
|
|
67
|
+
export declare function update(state: SortableState, msg: SortableMsg): [SortableState, never[]];
|
|
68
|
+
export interface SortableParts<S> {
|
|
69
|
+
root: {
|
|
70
|
+
'data-scope': 'sortable';
|
|
71
|
+
'data-part': 'root';
|
|
72
|
+
'data-dragging': (s: S) => '' | undefined;
|
|
73
|
+
onPointerMove: (e: PointerEvent) => void;
|
|
74
|
+
onPointerUp: (e: PointerEvent) => void;
|
|
75
|
+
onPointerCancel: (e: PointerEvent) => void;
|
|
76
|
+
};
|
|
77
|
+
item: (id: string, index: number) => {
|
|
78
|
+
'data-scope': 'sortable';
|
|
79
|
+
'data-part': 'item';
|
|
80
|
+
'data-index': string;
|
|
81
|
+
'data-id': string;
|
|
82
|
+
'data-dragging': (s: S) => '' | undefined;
|
|
83
|
+
'data-over': (s: S) => '' | undefined;
|
|
84
|
+
};
|
|
85
|
+
handle: (id: string, index: number) => {
|
|
86
|
+
'data-scope': 'sortable';
|
|
87
|
+
'data-part': 'handle';
|
|
88
|
+
onPointerDown: (e: PointerEvent) => void;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export interface ConnectOptions {
|
|
92
|
+
id: string;
|
|
93
|
+
}
|
|
94
|
+
export declare function connect<S>(get: (s: S) => SortableState, send: Send<SortableMsg>, _opts: ConnectOptions): SortableParts<S>;
|
|
95
|
+
/**
|
|
96
|
+
* Move an item in an array from one index to another, returning a new array.
|
|
97
|
+
* Out-of-range indices are clamped to array bounds.
|
|
98
|
+
*/
|
|
99
|
+
export declare function reorder<T>(arr: readonly T[], from: number, to: number): T[];
|
|
100
|
+
export declare const sortable: {
|
|
101
|
+
init: typeof init;
|
|
102
|
+
update: typeof update;
|
|
103
|
+
connect: typeof connect;
|
|
104
|
+
reorder: typeof reorder;
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=sortable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortable.d.ts","sourceRoot":"","sources":["../../src/components/sortable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEtB,wBAAgB,IAAI,IAAI,aAAa,CAEpC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAcvF;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,IAAI,EAAE;QACJ,YAAY,EAAE,UAAU,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;QACzC,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;QACxC,WAAW,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;QACtC,eAAe,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;KAC3C,CAAA;IACD,IAAI,EAAE,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,KACV;QACH,YAAY,EAAE,UAAU,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;QACzC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;KACtC,CAAA;IACD,MAAM,EAAE,CACN,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,KACV;QACH,YAAY,EAAE,UAAU,CAAA;QACxB,WAAW,EAAE,QAAQ,CAAA;QACrB,aAAa,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAA;KACzC,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;CACX;AAED,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,EAC5B,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EACvB,KAAK,EAAE,cAAc,GACpB,aAAa,CAAC,CAAC,CAAC,CAuDlB;AAID;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,CAU3E;AAED,eAAO,MAAM,QAAQ;;;;;CAAqC,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export function init() {
|
|
2
|
+
return { dragging: null };
|
|
3
|
+
}
|
|
4
|
+
export function update(state, msg) {
|
|
5
|
+
switch (msg.type) {
|
|
6
|
+
case 'start':
|
|
7
|
+
return [{ dragging: { id: msg.id, startIndex: msg.index, currentIndex: msg.index } }, []];
|
|
8
|
+
case 'move': {
|
|
9
|
+
if (!state.dragging)
|
|
10
|
+
return [state, []];
|
|
11
|
+
if (state.dragging.currentIndex === msg.index)
|
|
12
|
+
return [state, []];
|
|
13
|
+
return [{ dragging: { ...state.dragging, currentIndex: msg.index } }, []];
|
|
14
|
+
}
|
|
15
|
+
case 'drop':
|
|
16
|
+
return state.dragging ? [{ dragging: null }, []] : [state, []];
|
|
17
|
+
case 'cancel':
|
|
18
|
+
return state.dragging ? [{ dragging: null }, []] : [state, []];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function connect(get, send, _opts) {
|
|
22
|
+
const findItemIndex = (e) => {
|
|
23
|
+
// Walk up from the element at the pointer looking for [data-part="item"]
|
|
24
|
+
const target = document.elementFromPoint(e.clientX, e.clientY);
|
|
25
|
+
if (!target)
|
|
26
|
+
return null;
|
|
27
|
+
const item = target.closest('[data-scope="sortable"][data-part="item"]');
|
|
28
|
+
if (!item)
|
|
29
|
+
return null;
|
|
30
|
+
const idxStr = item.dataset.index;
|
|
31
|
+
if (idxStr === undefined)
|
|
32
|
+
return null;
|
|
33
|
+
const idx = Number(idxStr);
|
|
34
|
+
return Number.isFinite(idx) ? idx : null;
|
|
35
|
+
};
|
|
36
|
+
return {
|
|
37
|
+
root: {
|
|
38
|
+
'data-scope': 'sortable',
|
|
39
|
+
'data-part': 'root',
|
|
40
|
+
'data-dragging': (s) => (get(s).dragging ? '' : undefined),
|
|
41
|
+
onPointerMove: (e) => {
|
|
42
|
+
if (!e.buttons)
|
|
43
|
+
return;
|
|
44
|
+
const idx = findItemIndex(e);
|
|
45
|
+
if (idx !== null)
|
|
46
|
+
send({ type: 'move', index: idx });
|
|
47
|
+
},
|
|
48
|
+
onPointerUp: () => send({ type: 'drop' }),
|
|
49
|
+
onPointerCancel: () => send({ type: 'cancel' }),
|
|
50
|
+
},
|
|
51
|
+
item: (id, index) => ({
|
|
52
|
+
'data-scope': 'sortable',
|
|
53
|
+
'data-part': 'item',
|
|
54
|
+
'data-index': String(index),
|
|
55
|
+
'data-id': id,
|
|
56
|
+
'data-dragging': (s) => (get(s).dragging?.id === id ? '' : undefined),
|
|
57
|
+
'data-over': (s) => (get(s).dragging?.currentIndex === index ? '' : undefined),
|
|
58
|
+
}),
|
|
59
|
+
handle: (id, index) => ({
|
|
60
|
+
'data-scope': 'sortable',
|
|
61
|
+
'data-part': 'handle',
|
|
62
|
+
onPointerDown: (e) => {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
const target = e.currentTarget;
|
|
65
|
+
if (target && 'setPointerCapture' in target) {
|
|
66
|
+
try {
|
|
67
|
+
;
|
|
68
|
+
target.setPointerCapture(e.pointerId);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Ignore — not all elements support pointer capture
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
send({ type: 'start', id, index });
|
|
75
|
+
},
|
|
76
|
+
}),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// ── Reorder utility ────────────────────────────────────────────
|
|
80
|
+
/**
|
|
81
|
+
* Move an item in an array from one index to another, returning a new array.
|
|
82
|
+
* Out-of-range indices are clamped to array bounds.
|
|
83
|
+
*/
|
|
84
|
+
export function reorder(arr, from, to) {
|
|
85
|
+
const len = arr.length;
|
|
86
|
+
if (len === 0)
|
|
87
|
+
return [];
|
|
88
|
+
const f = Math.max(0, Math.min(len - 1, from));
|
|
89
|
+
const t = Math.max(0, Math.min(len - 1, to));
|
|
90
|
+
if (f === t)
|
|
91
|
+
return arr.slice();
|
|
92
|
+
const result = arr.slice();
|
|
93
|
+
const [item] = result.splice(f, 1);
|
|
94
|
+
result.splice(t, 0, item);
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
export const sortable = { init, update, connect, reorder };
|
|
@@ -50,7 +50,6 @@ export declare function init(opts?: TagsInputInit): TagsInputState;
|
|
|
50
50
|
export declare function update(state: TagsInputState, msg: TagsInputMsg): [TagsInputState, never[]];
|
|
51
51
|
export interface TagItemParts<S> {
|
|
52
52
|
root: {
|
|
53
|
-
role: 'button';
|
|
54
53
|
tabIndex: (s: S) => number;
|
|
55
54
|
'data-scope': 'tags-input';
|
|
56
55
|
'data-part': 'tag';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags-input.d.ts","sourceRoot":"","sources":["../../src/components/tags-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMrC;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,4CAA4C;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AAExB,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,IAAI,CAAC,IAAI,GAAE,aAAkB,GAAG,cAAc,CAS7D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAwC1F;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE;QACJ,
|
|
1
|
+
{"version":3,"file":"tags-input.d.ts","sourceRoot":"","sources":["../../src/components/tags-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { Send } from '@llui/dom';
|
|
2
|
+
/**
|
|
3
|
+
* Theme Switch — light/dark/system theme toggle.
|
|
4
|
+
*
|
|
5
|
+
* State machine tracks the user's explicit preference (`light`, `dark`, or
|
|
6
|
+
* `system`). Use `resolveTheme()` to compute the effective theme (reading
|
|
7
|
+
* `prefers-color-scheme` when `system`), and `applyTheme()` to set
|
|
8
|
+
* `data-theme` on `<html>` so CSS selectors like `[data-theme='dark']` work.
|
|
9
|
+
*
|
|
10
|
+
* Typically wired via `onMount` or in app init:
|
|
11
|
+
* ```ts
|
|
12
|
+
* onMount(() => {
|
|
13
|
+
* applyTheme(resolveTheme(state.theme.theme))
|
|
14
|
+
* })
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* For persistence, the app reducer reads/writes `localStorage.theme` in its
|
|
18
|
+
* `init`/`update` — the state machine itself is storage-agnostic.
|
|
19
|
+
*/
|
|
20
|
+
export type Theme = 'light' | 'dark' | 'system';
|
|
21
|
+
export type ResolvedTheme = 'light' | 'dark';
|
|
22
|
+
export interface ThemeSwitchState {
|
|
23
|
+
theme: Theme;
|
|
24
|
+
}
|
|
25
|
+
export type ThemeSwitchMsg = {
|
|
26
|
+
type: 'setTheme';
|
|
27
|
+
theme: Theme;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'toggle';
|
|
30
|
+
};
|
|
31
|
+
export declare function init(theme?: Theme): ThemeSwitchState;
|
|
32
|
+
export declare function update(state: ThemeSwitchState, msg: ThemeSwitchMsg): [ThemeSwitchState, never[]];
|
|
33
|
+
/**
|
|
34
|
+
* Resolve a theme preference to the actual theme to apply. Returns 'dark' or
|
|
35
|
+
* 'light' based on the user's setting, consulting `prefers-color-scheme` for
|
|
36
|
+
* 'system'.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveTheme(theme: Theme): ResolvedTheme;
|
|
39
|
+
/**
|
|
40
|
+
* Set `data-theme="light"` or `data-theme="dark"` on `<html>`. CSS selectors
|
|
41
|
+
* like `[data-theme='dark'] { ... }` will then take effect.
|
|
42
|
+
*/
|
|
43
|
+
export declare function applyTheme(resolved: ResolvedTheme): void;
|
|
44
|
+
/**
|
|
45
|
+
* Listen for system theme changes (when user has selected 'system'). Returns
|
|
46
|
+
* a cleanup function. Call this in `onMount` and dispatch `setTheme` on
|
|
47
|
+
* change if you want the UI to auto-follow OS settings.
|
|
48
|
+
*/
|
|
49
|
+
export declare function watchSystemTheme(callback: (theme: ResolvedTheme) => void): () => void;
|
|
50
|
+
export interface ThemeSwitchParts<S> {
|
|
51
|
+
root: {
|
|
52
|
+
'data-scope': 'theme-switch';
|
|
53
|
+
'data-part': 'root';
|
|
54
|
+
role: 'group';
|
|
55
|
+
'aria-label': string;
|
|
56
|
+
};
|
|
57
|
+
option: (theme: Theme) => {
|
|
58
|
+
type: 'button';
|
|
59
|
+
'data-scope': 'theme-switch';
|
|
60
|
+
'data-part': 'option';
|
|
61
|
+
'data-theme': Theme;
|
|
62
|
+
'aria-pressed': (s: S) => boolean;
|
|
63
|
+
'aria-label': string;
|
|
64
|
+
onClick: (e: MouseEvent) => void;
|
|
65
|
+
};
|
|
66
|
+
toggle: {
|
|
67
|
+
type: 'button';
|
|
68
|
+
'data-scope': 'theme-switch';
|
|
69
|
+
'data-part': 'toggle';
|
|
70
|
+
'data-theme': (s: S) => Theme;
|
|
71
|
+
'aria-label': string;
|
|
72
|
+
onClick: (e: MouseEvent) => void;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export interface ConnectOptions {
|
|
76
|
+
id: string;
|
|
77
|
+
/** Accessible label for the theme group (default: 'Theme'). */
|
|
78
|
+
label?: string;
|
|
79
|
+
}
|
|
80
|
+
export declare function connect<S>(get: (s: S) => ThemeSwitchState, send: Send<ThemeSwitchMsg>, opts: ConnectOptions): ThemeSwitchParts<S>;
|
|
81
|
+
export declare const themeSwitch: {
|
|
82
|
+
init: typeof init;
|
|
83
|
+
update: typeof update;
|
|
84
|
+
connect: typeof connect;
|
|
85
|
+
resolveTheme: typeof resolveTheme;
|
|
86
|
+
applyTheme: typeof applyTheme;
|
|
87
|
+
watchSystemTheme: typeof watchSystemTheme;
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=theme-switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-switch.d.ts","sourceRoot":"","sources":["../../src/components/theme-switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC/C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEpF,wBAAgB,IAAI,CAAC,KAAK,GAAE,KAAgB,GAAG,gBAAgB,CAE9D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAYhG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAOxD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI,CAQrF;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE;QACJ,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,MAAM,CAAA;QACnB,IAAI,EAAE,OAAO,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;QACxB,IAAI,EAAE,QAAQ,CAAA;QACd,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,QAAQ,CAAA;QACrB,YAAY,EAAE,KAAK,CAAA;QACnB,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;QACjC,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ,CAAA;QACd,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,QAAQ,CAAA;QACrB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAA;QAC7B,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAQD,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,EAC/B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1B,IAAI,EAAE,cAAc,GACnB,gBAAgB,CAAC,CAAC,CAAC,CA2BrB;AAED,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAA"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export function init(theme = 'system') {
|
|
2
|
+
return { theme };
|
|
3
|
+
}
|
|
4
|
+
export function update(state, msg) {
|
|
5
|
+
switch (msg.type) {
|
|
6
|
+
case 'setTheme':
|
|
7
|
+
if (state.theme === msg.theme)
|
|
8
|
+
return [state, []];
|
|
9
|
+
return [{ theme: msg.theme }, []];
|
|
10
|
+
case 'toggle': {
|
|
11
|
+
// light → dark → system → light
|
|
12
|
+
const next = state.theme === 'light' ? 'dark' : state.theme === 'dark' ? 'system' : 'light';
|
|
13
|
+
return [{ theme: next }, []];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Resolve a theme preference to the actual theme to apply. Returns 'dark' or
|
|
19
|
+
* 'light' based on the user's setting, consulting `prefers-color-scheme` for
|
|
20
|
+
* 'system'.
|
|
21
|
+
*/
|
|
22
|
+
export function resolveTheme(theme) {
|
|
23
|
+
if (theme === 'dark')
|
|
24
|
+
return 'dark';
|
|
25
|
+
if (theme === 'light')
|
|
26
|
+
return 'light';
|
|
27
|
+
if (typeof window !== 'undefined' && window.matchMedia) {
|
|
28
|
+
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
29
|
+
}
|
|
30
|
+
return 'light';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Set `data-theme="light"` or `data-theme="dark"` on `<html>`. CSS selectors
|
|
34
|
+
* like `[data-theme='dark'] { ... }` will then take effect.
|
|
35
|
+
*/
|
|
36
|
+
export function applyTheme(resolved) {
|
|
37
|
+
if (typeof document === 'undefined')
|
|
38
|
+
return;
|
|
39
|
+
document.documentElement.dataset.theme = resolved;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Listen for system theme changes (when user has selected 'system'). Returns
|
|
43
|
+
* a cleanup function. Call this in `onMount` and dispatch `setTheme` on
|
|
44
|
+
* change if you want the UI to auto-follow OS settings.
|
|
45
|
+
*/
|
|
46
|
+
export function watchSystemTheme(callback) {
|
|
47
|
+
if (typeof window === 'undefined' || !window.matchMedia)
|
|
48
|
+
return () => { };
|
|
49
|
+
const mq = window.matchMedia('(prefers-color-scheme: dark)');
|
|
50
|
+
const handler = (e) => {
|
|
51
|
+
callback(e.matches ? 'dark' : 'light');
|
|
52
|
+
};
|
|
53
|
+
mq.addEventListener('change', handler);
|
|
54
|
+
return () => mq.removeEventListener('change', handler);
|
|
55
|
+
}
|
|
56
|
+
const LABELS = {
|
|
57
|
+
light: 'Light theme',
|
|
58
|
+
dark: 'Dark theme',
|
|
59
|
+
system: 'Use system theme',
|
|
60
|
+
};
|
|
61
|
+
export function connect(get, send, opts) {
|
|
62
|
+
const label = opts.label ?? 'Theme';
|
|
63
|
+
return {
|
|
64
|
+
root: {
|
|
65
|
+
'data-scope': 'theme-switch',
|
|
66
|
+
'data-part': 'root',
|
|
67
|
+
role: 'group',
|
|
68
|
+
'aria-label': label,
|
|
69
|
+
},
|
|
70
|
+
option: (theme) => ({
|
|
71
|
+
type: 'button',
|
|
72
|
+
'data-scope': 'theme-switch',
|
|
73
|
+
'data-part': 'option',
|
|
74
|
+
'data-theme': theme,
|
|
75
|
+
'aria-pressed': (s) => get(s).theme === theme,
|
|
76
|
+
'aria-label': LABELS[theme],
|
|
77
|
+
onClick: () => send({ type: 'setTheme', theme }),
|
|
78
|
+
}),
|
|
79
|
+
toggle: {
|
|
80
|
+
type: 'button',
|
|
81
|
+
'data-scope': 'theme-switch',
|
|
82
|
+
'data-part': 'toggle',
|
|
83
|
+
'data-theme': (s) => get(s).theme,
|
|
84
|
+
'aria-label': 'Toggle theme',
|
|
85
|
+
onClick: () => send({ type: 'toggle' }),
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export const themeSwitch = {
|
|
90
|
+
init,
|
|
91
|
+
update,
|
|
92
|
+
connect,
|
|
93
|
+
resolveTheme,
|
|
94
|
+
applyTheme,
|
|
95
|
+
watchSystemTheme,
|
|
96
|
+
};
|
|
@@ -62,7 +62,6 @@ export interface ToggleGroupItemParts<S> {
|
|
|
62
62
|
export interface ToggleGroupParts<S> {
|
|
63
63
|
root: {
|
|
64
64
|
role: 'group';
|
|
65
|
-
'aria-orientation': (s: S) => Orientation;
|
|
66
65
|
'aria-disabled': (s: S) => 'true' | undefined;
|
|
67
66
|
'data-scope': 'toggle-group';
|
|
68
67
|
'data-part': 'root';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../src/components/toggle-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGrC;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,iEAAiE;IACjE,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,wBAAgB,IAAI,CAAC,IAAI,GAAE,eAAoB,GAAG,gBAAgB,CAUjE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,CA8BhG;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ,CAAA;QACd,IAAI,EAAE,QAAQ,CAAA;QACd,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;QACjC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;QAC7C,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;QAC3B,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAA;QACpC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,SAAS,CAAA;QACzC,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;QAChC,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAA;KACtC,CAAA;CACF;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO,CAAA;QACb,
|
|
1
|
+
{"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../src/components/toggle-group.ts"],"names":[],"mappings":"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"}
|
package/dist/styles/theme.css
CHANGED
|
@@ -649,7 +649,7 @@
|
|
|
649
649
|
justify-content: center;
|
|
650
650
|
font-size: 1rem;
|
|
651
651
|
font-weight: 600;
|
|
652
|
-
color: var(--color-text
|
|
652
|
+
color: var(--color-text);
|
|
653
653
|
}
|
|
654
654
|
|
|
655
655
|
/* ─── Pagination ─── */
|
|
@@ -1315,7 +1315,7 @@
|
|
|
1315
1315
|
padding: var(--space-1) var(--space-2);
|
|
1316
1316
|
border: 0;
|
|
1317
1317
|
background: var(--color-surface-hover);
|
|
1318
|
-
color: var(--color-text
|
|
1318
|
+
color: var(--color-text);
|
|
1319
1319
|
font-size: 0.75rem;
|
|
1320
1320
|
font-weight: 600;
|
|
1321
1321
|
cursor: pointer;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composable validators returning `string | null` (null = valid).
|
|
3
|
+
*
|
|
4
|
+
* Use `compose(v1, v2, ...)` to run until first failure (short-circuit),
|
|
5
|
+
* or `validateAll(v1, v2, ...)` to collect all errors as `string[]`.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* const username = compose(required(), minLength(3), pattern(/^[a-z]+$/i))
|
|
9
|
+
* username('') // 'Required'
|
|
10
|
+
* username('ab') // 'Must be at least 3 characters'
|
|
11
|
+
* username('foo') // null
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export type Validator<T> = (value: T) => string | null;
|
|
15
|
+
export declare function required(message?: string): Validator<unknown>;
|
|
16
|
+
export declare function minLength(n: number, message?: string): Validator<string>;
|
|
17
|
+
export declare function maxLength(n: number, message?: string): Validator<string>;
|
|
18
|
+
export declare function pattern(regex: RegExp, message?: string): Validator<string>;
|
|
19
|
+
export declare function email(message?: string): Validator<string>;
|
|
20
|
+
export declare function url(message?: string): Validator<string>;
|
|
21
|
+
export declare function min(n: number, message?: string): Validator<number>;
|
|
22
|
+
export declare function max(n: number, message?: string): Validator<number>;
|
|
23
|
+
export declare function integer(message?: string): Validator<number>;
|
|
24
|
+
export declare function positive(message?: string): Validator<number>;
|
|
25
|
+
/**
|
|
26
|
+
* Run validators in order, returning the first error (or null if all pass).
|
|
27
|
+
*/
|
|
28
|
+
export declare function compose<T>(...validators: Validator<T>[]): Validator<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Run every validator and collect all errors. Returns empty array when valid.
|
|
31
|
+
* Use when you want to display multiple errors at once (e.g. password rules).
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateAll<T>(...validators: Validator<T>[]): (value: T) => string[];
|
|
34
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;AAStD,wBAAgB,QAAQ,CAAC,OAAO,SAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAEjE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAGxE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAGxE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,CAEpF;AAKD,wBAAgB,KAAK,CAAC,OAAO,SAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAElE;AAED,wBAAgB,GAAG,CAAC,OAAO,SAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAU9D;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAGlE;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAGlE;AAED,wBAAgB,OAAO,CAAC,OAAO,SAAuB,GAAG,SAAS,CAAC,MAAM,CAAC,CAEzE;AAED,wBAAgB,QAAQ,CAAC,OAAO,SAAqB,GAAG,SAAS,CAAC,MAAM,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAQtE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAAE,CASpF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
function isEmpty(v) {
|
|
2
|
+
if (v === null || v === undefined)
|
|
3
|
+
return true;
|
|
4
|
+
if (typeof v === 'string' && v.length === 0)
|
|
5
|
+
return true;
|
|
6
|
+
if (Array.isArray(v) && v.length === 0)
|
|
7
|
+
return true;
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
export function required(message = 'Required') {
|
|
11
|
+
return (value) => (isEmpty(value) ? message : null);
|
|
12
|
+
}
|
|
13
|
+
export function minLength(n, message) {
|
|
14
|
+
const msg = message ?? `Must be at least ${n} characters`;
|
|
15
|
+
return (value) => (value.length < n ? msg : null);
|
|
16
|
+
}
|
|
17
|
+
export function maxLength(n, message) {
|
|
18
|
+
const msg = message ?? `Must be at most ${n} characters`;
|
|
19
|
+
return (value) => (value.length > n ? msg : null);
|
|
20
|
+
}
|
|
21
|
+
export function pattern(regex, message = 'Invalid format') {
|
|
22
|
+
return (value) => (regex.test(value) ? null : message);
|
|
23
|
+
}
|
|
24
|
+
// RFC 5322 simplified — accepts most valid emails, rejects obvious garbage
|
|
25
|
+
const EMAIL_RE = /^[^\s@]+@[^\s@.]+(\.[^\s@.]+)+$/;
|
|
26
|
+
export function email(message = 'Invalid email') {
|
|
27
|
+
return (value) => (EMAIL_RE.test(value) ? null : message);
|
|
28
|
+
}
|
|
29
|
+
export function url(message = 'Invalid URL') {
|
|
30
|
+
return (value) => {
|
|
31
|
+
try {
|
|
32
|
+
const u = new URL(value);
|
|
33
|
+
if (u.protocol !== 'http:' && u.protocol !== 'https:')
|
|
34
|
+
return message;
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return message;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function min(n, message) {
|
|
43
|
+
const msg = message ?? `Must be at least ${n}`;
|
|
44
|
+
return (value) => (value < n ? msg : null);
|
|
45
|
+
}
|
|
46
|
+
export function max(n, message) {
|
|
47
|
+
const msg = message ?? `Must be at most ${n}`;
|
|
48
|
+
return (value) => (value > n ? msg : null);
|
|
49
|
+
}
|
|
50
|
+
export function integer(message = 'Must be an integer') {
|
|
51
|
+
return (value) => (Number.isInteger(value) ? null : message);
|
|
52
|
+
}
|
|
53
|
+
export function positive(message = 'Must be positive') {
|
|
54
|
+
return (value) => (value > 0 ? null : message);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Run validators in order, returning the first error (or null if all pass).
|
|
58
|
+
*/
|
|
59
|
+
export function compose(...validators) {
|
|
60
|
+
return (value) => {
|
|
61
|
+
for (const v of validators) {
|
|
62
|
+
const err = v(value);
|
|
63
|
+
if (err !== null)
|
|
64
|
+
return err;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Run every validator and collect all errors. Returns empty array when valid.
|
|
71
|
+
* Use when you want to display multiple errors at once (e.g. password rules).
|
|
72
|
+
*/
|
|
73
|
+
export function validateAll(...validators) {
|
|
74
|
+
return (value) => {
|
|
75
|
+
const errors = [];
|
|
76
|
+
for (const v of validators) {
|
|
77
|
+
const err = v(value);
|
|
78
|
+
if (err !== null)
|
|
79
|
+
errors.push(err);
|
|
80
|
+
}
|
|
81
|
+
return errors;
|
|
82
|
+
};
|
|
83
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llui/components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -463,7 +463,7 @@
|
|
|
463
463
|
"test": "vitest run"
|
|
464
464
|
},
|
|
465
465
|
"peerDependencies": {
|
|
466
|
-
"@llui/dom": "^0.0.
|
|
466
|
+
"@llui/dom": "^0.0.7"
|
|
467
467
|
},
|
|
468
468
|
"devDependencies": {
|
|
469
469
|
"@llui/dom": "workspace:*",
|
|
@@ -475,7 +475,8 @@
|
|
|
475
475
|
"./dist/styles/theme-dark.css"
|
|
476
476
|
],
|
|
477
477
|
"dependencies": {
|
|
478
|
-
"@floating-ui/dom": "^1.7.6"
|
|
478
|
+
"@floating-ui/dom": "^1.7.6",
|
|
479
|
+
"@standard-schema/spec": "^1.0.0"
|
|
479
480
|
},
|
|
480
481
|
"description": "54 headless UI components for LLui — accordion, dialog, tabs, select, tree-view, timer, tour, and more",
|
|
481
482
|
"keywords": [
|