@setsquare/ui 0.1.0 → 0.2.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/CHANGELOG.md +46 -0
- package/README.md +36 -1
- package/dist/index.d.ts +20 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/labels.d.ts +11 -0
- package/dist/lib/labels.d.ts.map +1 -0
- package/dist/lib/labels.js +15 -0
- package/dist/lib/labels.js.map +1 -0
- package/dist/shell/app-header.d.ts +4 -1
- package/dist/shell/app-header.d.ts.map +1 -1
- package/dist/shell/app-header.js +2 -2
- package/dist/shell/app-header.js.map +1 -1
- package/dist/shell/dashboard-shell.d.ts +1 -1
- package/dist/shell/dashboard-shell.d.ts.map +1 -1
- package/dist/shell/dashboard-shell.js +10 -14
- package/dist/shell/dashboard-shell.js.map +1 -1
- package/dist/shell/right-panel.d.ts +7 -1
- package/dist/shell/right-panel.d.ts.map +1 -1
- package/dist/shell/right-panel.js +6 -3
- package/dist/shell/right-panel.js.map +1 -1
- package/dist/shell/sidebar.d.ts +16 -2
- package/dist/shell/sidebar.d.ts.map +1 -1
- package/dist/shell/sidebar.js +17 -8
- package/dist/shell/sidebar.js.map +1 -1
- package/dist/styles/theme.css +2 -1
- package/dist/ui/alert.d.ts +16 -2
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +11 -4
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/calendar.d.ts +9 -2
- package/dist/ui/calendar.d.ts.map +1 -1
- package/dist/ui/calendar.js +6 -6
- package/dist/ui/calendar.js.map +1 -1
- package/dist/ui/checkbox.d.ts +5 -2
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +4 -4
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code-block.d.ts +10 -1
- package/dist/ui/code-block.d.ts.map +1 -1
- package/dist/ui/code-block.js +6 -3
- package/dist/ui/code-block.js.map +1 -1
- package/dist/ui/combo-box.d.ts +3 -2
- package/dist/ui/combo-box.d.ts.map +1 -1
- package/dist/ui/combo-box.js +2 -2
- package/dist/ui/combo-box.js.map +1 -1
- package/dist/ui/copy-button.d.ts +12 -1
- package/dist/ui/copy-button.d.ts.map +1 -1
- package/dist/ui/copy-button.js +18 -5
- package/dist/ui/copy-button.js.map +1 -1
- package/dist/ui/date-field.d.ts +22 -5
- package/dist/ui/date-field.d.ts.map +1 -1
- package/dist/ui/date-field.js +23 -17
- package/dist/ui/date-field.js.map +1 -1
- package/dist/ui/dialog.d.ts +19 -2
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +14 -8
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/error-state.d.ts +17 -1
- package/dist/ui/error-state.d.ts.map +1 -1
- package/dist/ui/error-state.js +15 -5
- package/dist/ui/error-state.js.map +1 -1
- package/dist/ui/field.d.ts +8 -1
- package/dist/ui/field.d.ts.map +1 -1
- package/dist/ui/field.js +2 -2
- package/dist/ui/field.js.map +1 -1
- package/dist/ui/file-upload.d.ts +33 -1
- package/dist/ui/file-upload.d.ts.map +1 -1
- package/dist/ui/file-upload.js +43 -15
- package/dist/ui/file-upload.js.map +1 -1
- package/dist/ui/form.d.ts +3 -2
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +17 -9
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/link-card.d.ts +6 -4
- package/dist/ui/link-card.d.ts.map +1 -1
- package/dist/ui/link-card.js +4 -5
- package/dist/ui/link-card.js.map +1 -1
- package/dist/ui/number-field.d.ts +3 -2
- package/dist/ui/number-field.d.ts.map +1 -1
- package/dist/ui/number-field.js +2 -2
- package/dist/ui/number-field.js.map +1 -1
- package/dist/ui/pagination.d.ts +30 -0
- package/dist/ui/pagination.d.ts.map +1 -0
- package/dist/ui/pagination.js +48 -0
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/radio-group.d.ts +3 -1
- package/dist/ui/radio-group.d.ts.map +1 -1
- package/dist/ui/radio-group.js +2 -2
- package/dist/ui/radio-group.js.map +1 -1
- package/dist/ui/search.d.ts +23 -5
- package/dist/ui/search.d.ts.map +1 -1
- package/dist/ui/search.js +24 -10
- package/dist/ui/search.js.map +1 -1
- package/dist/ui/select.d.ts +3 -2
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +2 -2
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/selection-bar.d.ts +14 -1
- package/dist/ui/selection-bar.d.ts.map +1 -1
- package/dist/ui/selection-bar.js +15 -6
- package/dist/ui/selection-bar.js.map +1 -1
- package/dist/ui/sheet.d.ts +6 -1
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +2 -2
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/tabs.d.ts +43 -0
- package/dist/ui/tabs.d.ts.map +1 -0
- package/dist/ui/tabs.js +37 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/text-field.d.ts +4 -3
- package/dist/ui/text-field.d.ts.map +1 -1
- package/dist/ui/text-field.js +4 -4
- package/dist/ui/text-field.js.map +1 -1
- package/dist/ui/theme-switcher.d.ts +14 -1
- package/dist/ui/theme-switcher.d.ts.map +1 -1
- package/dist/ui/theme-switcher.js +15 -4
- package/dist/ui/theme-switcher.js.map +1 -1
- package/dist/ui/toast.d.ts +7 -1
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +2 -11
- package/dist/ui/toast.js.map +1 -1
- package/package.json +21 -20
- package/templates/next/prefetch-on-intent.ts +10 -3
package/dist/ui/file-upload.d.ts
CHANGED
|
@@ -16,6 +16,37 @@ export interface FileRejection {
|
|
|
16
16
|
file: File;
|
|
17
17
|
reason: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* A file upload's words, for the `labels` prop. `{name}` is a file's name; `{types}` is `acceptedTypesLabel`
|
|
21
|
+
* (or the extensions, listed in English); `{size}` and `{max}` are sizes in the page's locale, or a count.
|
|
22
|
+
*/
|
|
23
|
+
export interface FileUploadLabels {
|
|
24
|
+
/** On the drop area while something is dragged over it. */
|
|
25
|
+
dropToAdd: string;
|
|
26
|
+
dropFiles: string;
|
|
27
|
+
dropFile: string;
|
|
28
|
+
chooseFiles: string;
|
|
29
|
+
chooseFile: string;
|
|
30
|
+
/** A file's progress bar. */
|
|
31
|
+
uploadingFile: string;
|
|
32
|
+
uploading: string;
|
|
33
|
+
uploaded: string;
|
|
34
|
+
/** Said before an error, to a screen reader. */
|
|
35
|
+
errorPrefix: string;
|
|
36
|
+
/** A failed upload with no `error` of its own. */
|
|
37
|
+
failed: string;
|
|
38
|
+
retry: string;
|
|
39
|
+
dismiss: string;
|
|
40
|
+
cancel: string;
|
|
41
|
+
remove: string;
|
|
42
|
+
/** Announced when a file finishes. */
|
|
43
|
+
announceUploaded: string;
|
|
44
|
+
/** Announced when one fails; `{error}` is its `error`, or nothing. */
|
|
45
|
+
announceFailed: string;
|
|
46
|
+
wrongType: string;
|
|
47
|
+
tooBig: string;
|
|
48
|
+
tooMany: string;
|
|
49
|
+
}
|
|
19
50
|
export interface FileUploadProps {
|
|
20
51
|
label: string;
|
|
21
52
|
/** What to upload, and the limits in words: "PDF or PNG, up to 10 MB each". */
|
|
@@ -38,6 +69,7 @@ export interface FileUploadProps {
|
|
|
38
69
|
/** Also told about files that were turned away (they are listed with the reason either way). */
|
|
39
70
|
onReject?: (rejections: FileRejection[]) => void;
|
|
40
71
|
isDisabled?: boolean;
|
|
72
|
+
labels?: Partial<FileUploadLabels>;
|
|
41
73
|
className?: string;
|
|
42
74
|
}
|
|
43
75
|
/** "2.4 MB", in the page's locale. */
|
|
@@ -50,5 +82,5 @@ export declare function formatBytes(bytes: number): string;
|
|
|
50
82
|
* in the list with a reason that says what to do. Additions, completions and failures are announced once
|
|
51
83
|
* each through a polite live region. Removing a file moves focus to the next file, or back to "Choose files".
|
|
52
84
|
*/
|
|
53
|
-
export declare function FileUpload({ label, description, acceptedFileTypes, acceptedTypesLabel, maxFileSize, maxFiles, allowsMultiple, items, onSelect, onRemove, onRetry, onReject, isDisabled, className, }: FileUploadProps): import("react").JSX.Element;
|
|
85
|
+
export declare function FileUpload({ label, description, acceptedFileTypes, acceptedTypesLabel, maxFileSize, maxFiles, allowsMultiple, items, onSelect, onRemove, onRetry, onReject, isDisabled, labels: given, className, }: FileUploadProps): import("react").JSX.Element;
|
|
54
86
|
//# sourceMappingURL=file-upload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/file-upload.js
CHANGED
|
@@ -4,9 +4,31 @@ import { useId, useRef, useState } from 'react';
|
|
|
4
4
|
import { DropZone as RACDropZone, FileTrigger, ProgressBar as RACProgressBar, Text, isFileDropItem, } from 'react-aria-components';
|
|
5
5
|
import { CircleAlert, CircleCheck, FileText, RotateCcw, Upload, X } from 'lucide-react';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
7
|
+
import { fill, withLabels } from '../lib/labels.js';
|
|
7
8
|
import { Button } from './button.js';
|
|
8
9
|
import { fieldStack } from './field.js';
|
|
9
10
|
import { IconButton } from './icon-button.js';
|
|
11
|
+
const fileUploadLabels = {
|
|
12
|
+
dropToAdd: 'Drop to add',
|
|
13
|
+
dropFiles: 'Drop files here',
|
|
14
|
+
dropFile: 'Drop a file here',
|
|
15
|
+
chooseFiles: 'Choose files',
|
|
16
|
+
chooseFile: 'Choose a file',
|
|
17
|
+
uploadingFile: 'Uploading {name}',
|
|
18
|
+
uploading: 'Uploading',
|
|
19
|
+
uploaded: 'Uploaded',
|
|
20
|
+
errorPrefix: 'Error: ',
|
|
21
|
+
failed: 'It didn’t upload. Try again.',
|
|
22
|
+
retry: 'Try uploading {name} again',
|
|
23
|
+
dismiss: 'Dismiss {name}',
|
|
24
|
+
cancel: 'Cancel {name}',
|
|
25
|
+
remove: 'Remove {name}',
|
|
26
|
+
announceUploaded: '{name} uploaded',
|
|
27
|
+
announceFailed: "{name} didn't upload. {error}",
|
|
28
|
+
wrongType: "{name} isn't {types}. Choose {types}.",
|
|
29
|
+
tooBig: '{name} is {size}. Choose a file under {max}.',
|
|
30
|
+
tooMany: "{name} wasn't added: you can add up to {max} files. Remove one to add another.",
|
|
31
|
+
};
|
|
10
32
|
const units = ['byte', 'kilobyte', 'megabyte', 'gigabyte'];
|
|
11
33
|
/** "2.4 MB", in the page's locale. */
|
|
12
34
|
export function formatBytes(bytes) {
|
|
@@ -53,7 +75,8 @@ function typesLabel(accepted) {
|
|
|
53
75
|
* in the list with a reason that says what to do. Additions, completions and failures are announced once
|
|
54
76
|
* each through a polite live region. Removing a file moves focus to the next file, or back to "Choose files".
|
|
55
77
|
*/
|
|
56
|
-
export function FileUpload({ label, description, acceptedFileTypes, acceptedTypesLabel, maxFileSize, maxFiles, allowsMultiple = true, items, onSelect, onRemove, onRetry, onReject, isDisabled, className, }) {
|
|
78
|
+
export function FileUpload({ label, description, acceptedFileTypes, acceptedTypesLabel, maxFileSize, maxFiles, allowsMultiple = true, items, onSelect, onRemove, onRetry, onReject, isDisabled, labels: given, className, }) {
|
|
79
|
+
const labels = withLabels(fileUploadLabels, given);
|
|
57
80
|
const labelId = useId();
|
|
58
81
|
const descriptionId = useId();
|
|
59
82
|
const listRef = useRef(null);
|
|
@@ -71,9 +94,9 @@ export function FileUpload({ label, description, acceptedFileTypes, acceptedType
|
|
|
71
94
|
const was = before.get(item.id);
|
|
72
95
|
if (was && was !== item.status) {
|
|
73
96
|
if (item.status === 'done')
|
|
74
|
-
messages.push(
|
|
97
|
+
messages.push(fill(labels.announceUploaded, { name: item.name }));
|
|
75
98
|
if (item.status === 'error')
|
|
76
|
-
messages.push(
|
|
99
|
+
messages.push(fill(labels.announceFailed, { name: item.name, error: item.error ?? '' }).trim());
|
|
77
100
|
}
|
|
78
101
|
}
|
|
79
102
|
setPrevItems(items);
|
|
@@ -88,19 +111,26 @@ export function FileUpload({ label, description, acceptedFileTypes, acceptedType
|
|
|
88
111
|
if (acceptedFileTypes?.length && !matchesType(file, acceptedFileTypes)) {
|
|
89
112
|
no.push({
|
|
90
113
|
file,
|
|
91
|
-
reason:
|
|
114
|
+
reason: fill(labels.wrongType, {
|
|
115
|
+
name: file.name,
|
|
116
|
+
types: acceptedTypesLabel ?? typesLabel(acceptedFileTypes),
|
|
117
|
+
}),
|
|
92
118
|
});
|
|
93
119
|
}
|
|
94
120
|
else if (maxFileSize != null && file.size > maxFileSize) {
|
|
95
121
|
no.push({
|
|
96
122
|
file,
|
|
97
|
-
reason:
|
|
123
|
+
reason: fill(labels.tooBig, {
|
|
124
|
+
name: file.name,
|
|
125
|
+
size: formatBytes(file.size),
|
|
126
|
+
max: formatBytes(maxFileSize),
|
|
127
|
+
}),
|
|
98
128
|
});
|
|
99
129
|
}
|
|
100
130
|
else if (room <= 0) {
|
|
101
131
|
no.push({
|
|
102
132
|
file,
|
|
103
|
-
reason:
|
|
133
|
+
reason: fill(labels.tooMany, { name: file.name, max: maxFiles ?? 0 }),
|
|
104
134
|
});
|
|
105
135
|
}
|
|
106
136
|
else {
|
|
@@ -152,18 +182,16 @@ export function FileUpload({ label, description, acceptedFileTypes, acceptedType
|
|
|
152
182
|
...rejected.map((r) => ({ kind: 'rejected', ...r })),
|
|
153
183
|
];
|
|
154
184
|
return (_jsxs("div", { role: "group", "aria-labelledby": labelId, "aria-describedby": description ? descriptionId : undefined, className: cn(fieldStack, 'max-w-[36rem]', className), children: [_jsx("span", { id: labelId, className: "block text-sm leading-5 font-semibold text-foreground", children: label }), description && (_jsx("p", { id: descriptionId, className: "max-w-(--measure) text-[13px] leading-5 text-muted-foreground", children: description })), _jsx(RACDropZone, { isDisabled: isDisabled, getDropOperation: () => 'copy', onDrop: onDrop, className: cn('relative flex flex-col items-center gap-3 rounded-lg border-2 border-dashed border-input bg-card px-4 py-6 text-center outline-none', 'data-drop-target:border-solid data-drop-target:border-primary data-drop-target:bg-brand-subtle data-focus-visible:focus-ring data-disabled:opacity-60'), children: ({ isDropTarget }) => (_jsxs(_Fragment, { children: [_jsx(Upload, { "aria-hidden": "true", className: "size-6 text-muted-foreground" }), _jsx(Text, { slot: "label", className: "text-sm leading-5 text-foreground", children: isDropTarget
|
|
155
|
-
?
|
|
185
|
+
? labels.dropToAdd
|
|
156
186
|
: allowsMultiple
|
|
157
|
-
?
|
|
158
|
-
:
|
|
187
|
+
? labels.dropFiles
|
|
188
|
+
: labels.dropFile }), _jsx("span", { "aria-hidden": "true", className: "-my-1 text-[13px] leading-5 text-muted-foreground", children: "or" }), _jsx(FileTrigger, { acceptedFileTypes: acceptedFileTypes, allowsMultiple: allowsMultiple, onSelect: (list) => list && accept(Array.from(list)), children: _jsx(Button, { ref: triggerRef, isDisabled: isDisabled, children: allowsMultiple ? labels.chooseFiles : labels.chooseFile }) })] })) }), rows.length > 0 && (_jsx("ul", { ref: listRef, "aria-label": `${label}: files`, className: "mt-1 flex flex-col gap-2", children: rows.map((row) => (_jsxs("li", { "data-file-row": row.id, className: cn('flex items-start gap-3 rounded-md border px-3 py-2', row.kind === 'rejected' || row.status === 'error'
|
|
159
189
|
? 'border-destructive'
|
|
160
|
-
: 'border-border'), children: [row.kind === 'rejected' || row.status === 'error' ? (_jsx(CircleAlert, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-destructive" })) : row.status === 'done' ? (_jsx(CircleCheck, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-success" })) : (_jsx(FileText, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-muted-foreground" })), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx("span", { className: "text-sm leading-5 font-semibold [overflow-wrap:anywhere]", children: row.name }), _jsxs("span", { className: "text-[13px] leading-5 text-muted-foreground", children: [formatBytes(row.size), row.kind === 'item' && row.status === 'done' &&
|
|
161
|
-
|
|
162
|
-
: (row.error ?? 'It didn’t upload. Try again.')] }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [row.kind === 'item' && row.status === 'error' && onRetry && (_jsx(IconButton, { label: `Try uploading ${row.name} again`, icon: RotateCcw, visualSize: "icon-sm", onPress: () => onRetry(row.id) })), _jsx(IconButton, { label: row.kind === 'rejected'
|
|
163
|
-
? `Dismiss ${row.name}`
|
|
190
|
+
: 'border-border'), children: [row.kind === 'rejected' || row.status === 'error' ? (_jsx(CircleAlert, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-destructive" })) : row.status === 'done' ? (_jsx(CircleCheck, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-success" })) : (_jsx(FileText, { "aria-hidden": "true", className: "mt-0.5 size-5 shrink-0 text-muted-foreground" })), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx("span", { className: "text-sm leading-5 font-semibold [overflow-wrap:anywhere]", children: row.name }), _jsxs("span", { className: "text-[13px] leading-5 text-muted-foreground", children: [formatBytes(row.size), row.kind === 'item' && row.status === 'done' && ` · ${labels.uploaded}`, row.kind === 'item' && row.status === 'uploading' && ` · ${labels.uploading}`, row.kind === 'rejected' && ' · Not added', row.kind === 'item' && row.status === 'error' && ' · Not uploaded'] }), row.kind === 'item' && row.status === 'uploading' && (_jsx(RACProgressBar, { "aria-label": fill(labels.uploadingFile, { name: row.name }), value: row.progress, isIndeterminate: row.progress == null, className: "flex items-center gap-3", children: ({ percentage, valueText }) => (_jsxs(_Fragment, { children: [_jsx("div", { className: "h-2 flex-1 overflow-hidden rounded-full border border-input bg-muted aaa:h-3", children: _jsx("div", { className: cn('h-full rounded-full bg-primary transition-[width] duration-(--duration-fast) motion-reduce:transition-none', row.progress == null && 'w-1/3 animate-pulse'), style: row.progress == null ? undefined : { width: `${percentage ?? 0}%` } }) }), row.progress != null && (_jsx("span", { className: "text-[13px] text-muted-foreground tabular-nums", children: valueText }))] })) })), (row.kind === 'rejected' || row.status === 'error') && (_jsxs("span", { className: "text-[13px] leading-5 font-semibold text-destructive", children: [_jsx("span", { className: "sr-only", children: labels.errorPrefix }), row.kind === 'rejected' ? row.reason : (row.error ?? labels.failed)] }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [row.kind === 'item' && row.status === 'error' && onRetry && (_jsx(IconButton, { label: fill(labels.retry, { name: row.name }), icon: RotateCcw, visualSize: "icon-sm", onPress: () => onRetry(row.id) })), _jsx(IconButton, { label: row.kind === 'rejected'
|
|
191
|
+
? fill(labels.dismiss, { name: row.name })
|
|
164
192
|
: row.status === 'uploading'
|
|
165
|
-
?
|
|
166
|
-
:
|
|
193
|
+
? fill(labels.cancel, { name: row.name })
|
|
194
|
+
: fill(labels.remove, { name: row.name }), icon: X, visualSize: "icon-sm", onPress: () => removeAndRefocus(row.id, () => row.kind === 'rejected'
|
|
167
195
|
? setRejected((r) => r.filter((x) => x.id !== row.id))
|
|
168
196
|
: onRemove(row.id)) })] })] }, row.id))) })), _jsx("p", { role: "status", className: "sr-only", children: announcement })] }));
|
|
169
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAChE,OAAO,EACL,QAAQ,IAAI,WAAW,EACvB,WAAW,EACX,WAAW,IAAI,cAAc,EAC7B,IAAI,EACJ,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA+C9C,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AACpE,sCAAsC;AACtC,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,CAAC,IAAI,IAAI,CAAC;QACV,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;QACtC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QACvC,qBAAqB,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAAU,EAAE,QAAkB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QAC1B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAC3C,CAAC;IACF,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC;QACtB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,OAAO;QACrC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;AAC9E,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,cAAc,GAAG,IAAI,EACrB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,SAAS,GACO;IAChB,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,KAAK,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzB,4GAA4G;IAC5G,8DAA8D;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;oBACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,QAAQ,CAAC,MAAM;YAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;QAC/B,MAAM,EAAE,GAAW,EAAE,CAAC;QACtB,MAAM,EAAE,GAAoB,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,iBAAiB,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;gBACvE,EAAE,CAAC,IAAI,CAAC;oBACN,IAAI;oBACJ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU,kBAAkB,IAAI,UAAU,CAAC,iBAAiB,CAAC,YAAY,kBAAkB,IAAI,UAAU,CAAC,iBAAiB,CAAC,GAAG;iBACpJ,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;gBAC1D,EAAE,CAAC,IAAI,CAAC;oBACN,IAAI;oBACJ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,WAAW,CAAC,WAAW,CAAC,GAAG;iBACtG,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrB,EAAE,CAAC,IAAI,CAAC;oBACN,IAAI;oBACJ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,oCAAoC,QAAQ,oCAAoC;iBACrG,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,MAAM;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YACf,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjB,GAAG,CAAC;gBACJ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE;oBAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;oBACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;oBACjB,MAAM,EAAE,CAAC,CAAC,MAAM;iBACjB,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,EAAE,CAAC,MAAM;YACX,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,cAAc,CAAC,CAAC;QACpF,IAAI,EAAE,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,sBAAsB,CAAC,CAAC;QAChG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAyC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,2FAA2F;IAC3F,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,MAAkB,EAAE,EAAE;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAc,iBAAiB,CAAC,IAAI,EAAE,CACxE,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;QAC/C,MAAM,EAAE,CAAC;QACT,qBAAqB,CAAC,GAAG,EAAE;YACzB,MAAM,MAAM,GAAG,WAAW;gBACxB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAC5B,mBAAmB,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CACtD;gBACH,CAAC,CAAC,IAAI,CAAC;YACT,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG;QACX,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5D,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;KAC9D,CAAC;IAEF,OAAO,CACL,eACE,IAAI,EAAC,OAAO,qBACK,OAAO,sBACN,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EACzD,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS,CAAC,aAErD,eAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,uDAAuD,YACjF,KAAK,GACD,EACN,WAAW,IAAI,CACd,YACE,EAAE,EAAE,aAAa,EACjB,SAAS,EAAC,+DAA+D,YAExE,WAAW,GACV,CACL,EAED,KAAC,WAAW,IACV,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,EAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,CACX,qIAAqI,EACrI,uJAAuJ,CACxJ,YAEA,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CACrB,8BACE,KAAC,MAAM,mBAAa,MAAM,EAAC,SAAS,EAAC,8BAA8B,GAAG,EAEtE,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,mCAAmC,YAC7D,YAAY;gCACX,CAAC,CAAC,aAAa;gCACf,CAAC,CAAC,cAAc;oCACd,CAAC,CAAC,iBAAiB;oCACnB,CAAC,CAAC,kBAAkB,GACnB,EACP,8BAAkB,MAAM,EAAC,SAAS,EAAC,mDAAmD,mBAE/E,EACP,KAAC,WAAW,IACV,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAEpD,KAAC,MAAM,IAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,YAC5C,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,GAC3C,GACG,IACb,CACJ,GACW,EAEb,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,aAAI,GAAG,EAAE,OAAO,gBAAc,GAAG,KAAK,SAAS,EAAE,SAAS,EAAC,0BAA0B,YAClF,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,+BAEiB,GAAG,CAAC,EAAE,EACrB,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;wBAC/C,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,eAAe,CACpB,aAEA,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACnD,KAAC,WAAW,mBACE,MAAM,EAClB,SAAS,EAAC,yCAAyC,GACnD,CACH,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAC1B,KAAC,WAAW,mBAAa,MAAM,EAAC,SAAS,EAAC,qCAAqC,GAAG,CACnF,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,mBACK,MAAM,EAClB,SAAS,EAAC,8CAA8C,GACxD,CACH,EACD,eAAK,SAAS,EAAC,oCAAoC,aAEjD,eAAM,SAAS,EAAC,0DAA0D,YACvE,GAAG,CAAC,IAAI,GACJ,EACP,gBAAM,SAAS,EAAC,6CAA6C,aAC1D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EACrB,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,aAAa,EAC7D,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,cAAc,EACnE,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,cAAc,EACzC,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,iBAAiB,IAC9D,EACN,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,CACpD,KAAC,cAAc,kBACD,aAAa,GAAG,CAAC,IAAI,EAAE,EACnC,KAAK,EAAE,GAAG,CAAC,QAAQ,EACnB,eAAe,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI,EACrC,SAAS,EAAC,yBAAyB,YAElC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC9B,8BACE,cAAK,SAAS,EAAC,8EAA8E,YAC3F,cACE,SAAS,EAAE,EAAE,CACX,4GAA4G,EAC5G,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,qBAAqB,CAC9C,EACD,KAAK,EACH,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,GAErE,GACE,EACL,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,CACvB,eAAM,SAAS,EAAC,gDAAgD,YAC7D,SAAS,GACL,CACR,IACA,CACJ,GACc,CAClB,EACA,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,CACtD,gBAAM,SAAS,EAAC,sDAAsD,aACpE,eAAM,SAAS,EAAC,SAAS,wBAAe,EACvC,GAAG,CAAC,IAAI,KAAK,UAAU;4CACtB,CAAC,CAAC,GAAG,CAAC,MAAM;4CACZ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,8BAA8B,CAAC,IAC5C,CACR,IACG,EACN,eAAK,SAAS,EAAC,kCAAkC,aAC9C,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,IAAI,CAC3D,KAAC,UAAU,IACT,KAAK,EAAE,iBAAiB,GAAG,CAAC,IAAI,QAAQ,EACxC,IAAI,EAAE,SAAS,EACf,UAAU,EAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAC9B,CACH,EACD,KAAC,UAAU,IACT,KAAK,EACH,GAAG,CAAC,IAAI,KAAK,UAAU;wCACrB,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE;wCACvB,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW;4CAC1B,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE;4CACtB,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,EAE5B,IAAI,EAAE,CAAC,EACP,UAAU,EAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CACZ,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAC5B,GAAG,CAAC,IAAI,KAAK,UAAU;wCACrB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;wCACtD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CACrB,GAEH,IACE,KAnGD,GAAG,CAAC,EAAE,CAoGR,CACN,CAAC,GACC,CACN,EACD,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,YACjC,YAAY,GACX,IACA,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/ui/file-upload.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/form.d.ts
CHANGED
|
@@ -28,9 +28,10 @@ export interface FormProps extends Omit<RACFormProps, 'className'> {
|
|
|
28
28
|
/**
|
|
29
29
|
* React Aria Form, validated natively on submit: invalid fields show their message and the first gets focus;
|
|
30
30
|
* the ErrorSummary lists them all. Server errors (`validationErrors`, keyed by field name) show the same way,
|
|
31
|
-
* and the summary takes focus because no field has it.
|
|
31
|
+
* and the summary takes focus because no field has it. A `ref` reaches the `<form>`, as well as the one Form
|
|
32
|
+
* keeps for itself.
|
|
32
33
|
*/
|
|
33
|
-
export declare
|
|
34
|
+
export declare const Form: import("react").ForwardRefExoticComponent<FormProps & import("react").RefAttributes<HTMLFormElement>>;
|
|
34
35
|
export interface FormSectionProps {
|
|
35
36
|
title: string;
|
|
36
37
|
description?: ReactNode;
|
package/dist/ui/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/ui/form.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/ui/form.tsx"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAmB,KAAK,SAAS,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGxF,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAA4B,EAC5B,SAAS,EACT,SAAS,GACV,EAAE,iBAAiB,sCA+CnB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;IAChE,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,uGAgFf,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAwBxF;AAED,6GAA6G;AAC7G,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAW/F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAgB,EAChB,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAkBA"}
|
package/dist/ui/form.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useId, useLayoutEffect, useRef, useState, } from 'react';
|
|
3
|
+
import { forwardRef, useCallback, useEffect, useId, useLayoutEffect, useRef, useState, } from 'react';
|
|
4
4
|
import { Form as RACForm } from 'react-aria-components';
|
|
5
5
|
import { CircleAlert, CircleCheck } from 'lucide-react';
|
|
6
6
|
import { cn } from '../lib/cn.js';
|
|
@@ -42,10 +42,10 @@ function fieldTarget(el) {
|
|
|
42
42
|
}
|
|
43
43
|
/** The message a field is showing — what the summary must repeat word for word. */
|
|
44
44
|
function shownMessage(root, fallback) {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
const shown = root?.querySelector('[data-field-error-text]');
|
|
46
|
+
// Without the hidden prefix ("Error: ", or a product's own word for it).
|
|
47
|
+
const prefix = shown?.querySelector('[data-field-error-prefix]')?.textContent ?? '';
|
|
48
|
+
const text = shown?.textContent?.slice(prefix.length).trim();
|
|
49
49
|
return text || fallback;
|
|
50
50
|
}
|
|
51
51
|
function collectErrors(form) {
|
|
@@ -69,10 +69,18 @@ function collectErrors(form) {
|
|
|
69
69
|
/**
|
|
70
70
|
* React Aria Form, validated natively on submit: invalid fields show their message and the first gets focus;
|
|
71
71
|
* the ErrorSummary lists them all. Server errors (`validationErrors`, keyed by field name) show the same way,
|
|
72
|
-
* and the summary takes focus because no field has it.
|
|
72
|
+
* and the summary takes focus because no field has it. A `ref` reaches the `<form>`, as well as the one Form
|
|
73
|
+
* keeps for itself.
|
|
73
74
|
*/
|
|
74
|
-
export function Form({ necessityIndicator = 'required', errorSummary = true, validationErrors, onSubmit, className, children, ...props }) {
|
|
75
|
+
export const Form = forwardRef(function Form({ necessityIndicator = 'required', errorSummary = true, validationErrors, onSubmit, className, children, ...props }, forwardedRef) {
|
|
75
76
|
const ref = useRef(null);
|
|
77
|
+
const setRef = useCallback((node) => {
|
|
78
|
+
ref.current = node;
|
|
79
|
+
if (typeof forwardedRef === 'function')
|
|
80
|
+
forwardedRef(node);
|
|
81
|
+
else if (forwardedRef)
|
|
82
|
+
forwardedRef.current = node;
|
|
83
|
+
}, [forwardedRef]);
|
|
76
84
|
const [errors, setErrors] = useState([]);
|
|
77
85
|
const [fromServer, setFromServer] = useState(false);
|
|
78
86
|
useEffect(() => {
|
|
@@ -113,11 +121,11 @@ export function Form({ necessityIndicator = 'required', errorSummary = true, val
|
|
|
113
121
|
});
|
|
114
122
|
return () => cancelAnimationFrame(frame);
|
|
115
123
|
}, [validationErrors]);
|
|
116
|
-
return (_jsx(NecessityContext.Provider, { value: necessityIndicator, children: _jsxs(RACForm, { ref:
|
|
124
|
+
return (_jsx(NecessityContext.Provider, { value: necessityIndicator, children: _jsxs(RACForm, { ref: setRef, ...props, validationErrors: validationErrors, onSubmit: (e) => {
|
|
117
125
|
setErrors([]);
|
|
118
126
|
onSubmit?.(e);
|
|
119
127
|
}, className: cn('flex flex-col gap-(--field-gap)', className), children: [errorSummary && _jsx(ErrorSummary, { errors: errors, autoFocus: fromServer }), children] }) }));
|
|
120
|
-
}
|
|
128
|
+
});
|
|
121
129
|
/** A titled group of related fields: heading and hint on the left at wide sizes, fields on the right. */
|
|
122
130
|
export function FormSection({ title, description, children, className }) {
|
|
123
131
|
const id = useId();
|
package/dist/ui/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/ui/form.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/ui/form.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/link-card.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
import { type LinkProps as RACLinkProps } from 'react-aria-components';
|
|
3
3
|
import { type IconProp } from './icon.js';
|
|
4
4
|
export interface LinkCardProps extends Omit<RACLinkProps, 'className' | 'children'> {
|
|
5
5
|
href: string;
|
|
6
|
-
/** The heading
|
|
6
|
+
/** The heading; the start of the link's name. */
|
|
7
7
|
title: ReactNode;
|
|
8
8
|
headingLevel?: 2 | 3 | 4;
|
|
9
|
-
/** Muted text under the title; the link's
|
|
9
|
+
/** Muted text under the title; the rest of the link's name. */
|
|
10
10
|
description?: ReactNode;
|
|
11
11
|
icon?: IconProp;
|
|
12
12
|
/** Layer 1, the target: the whole card. */
|
|
@@ -15,7 +15,9 @@ export interface LinkCardProps extends Omit<RACLinkProps, 'className' | 'childre
|
|
|
15
15
|
visualClassName?: string;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* A card that is one link: the whole card is the `<a>`, named by
|
|
18
|
+
* A card that is one link: the whole card is the `<a>`, named by everything it shows, heading first. Naming it
|
|
19
|
+
* by the heading alone would leave the description out of a name that has to contain the visible text (2.5.3,
|
|
20
|
+
* as axe and the Setsquare SDK measure it), so a list of links reads the description too: keep it short. It
|
|
19
21
|
* holds no other control, since a link can't contain one. Three layers: the link is the target, the card is
|
|
20
22
|
* the paint (hover, focus ring), the text is the content. No overlay stretches a link over a card.
|
|
21
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-card.d.ts","sourceRoot":"","sources":["../../src/ui/link-card.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"link-card.d.ts","sourceRoot":"","sources":["../../src/ui/link-card.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,KAAK,SAAS,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGxF,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,UAAU,CAAC;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,YAAgB,EAChB,WAAW,EACX,IAAI,EACJ,SAAS,EACT,eAAe,EACf,GAAG,KAAK,EACT,EAAE,aAAa,+BA8Bf"}
|
package/dist/ui/link-card.js
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useId } from 'react';
|
|
4
3
|
import { Link as RACLink } from 'react-aria-components';
|
|
5
4
|
import { ArrowRight } from 'lucide-react';
|
|
6
5
|
import { cn } from '../lib/cn.js';
|
|
7
6
|
import { renderIcon } from './icon.js';
|
|
8
7
|
/**
|
|
9
|
-
* A card that is one link: the whole card is the `<a>`, named by
|
|
8
|
+
* A card that is one link: the whole card is the `<a>`, named by everything it shows, heading first. Naming it
|
|
9
|
+
* by the heading alone would leave the description out of a name that has to contain the visible text (2.5.3,
|
|
10
|
+
* as axe and the Setsquare SDK measure it), so a list of links reads the description too: keep it short. It
|
|
10
11
|
* holds no other control, since a link can't contain one. Three layers: the link is the target, the card is
|
|
11
12
|
* the paint (hover, focus ring), the text is the content. No overlay stretches a link over a card.
|
|
12
13
|
*/
|
|
13
14
|
export function LinkCard({ href, title, headingLevel = 3, description, icon, className, visualClassName, ...props }) {
|
|
14
|
-
const titleId = useId();
|
|
15
|
-
const descriptionId = useId();
|
|
16
15
|
const Heading = `h${headingLevel}`;
|
|
17
|
-
return (_jsx(RACLink, { ...props, href: href,
|
|
16
|
+
return (_jsx(RACLink, { ...props, href: href, className: cn('group/link-card relative flex min-h-target min-w-target cursor-pointer text-foreground no-underline outline-none', className), children: _jsxs("div", { className: cn('card-surface flex w-full flex-col gap-2 group-data-hovered/link-card:bg-accent group-data-focus-visible/link-card:focus-ring', visualClassName), children: [icon && (_jsx("span", { className: "mb-2 inline-flex size-10 items-center justify-center rounded-md bg-brand-subtle text-brand", children: renderIcon(icon, 'size-5') })), _jsxs(Heading, { className: "flex items-start gap-2 text-subheading group-data-hovered/link-card:underline", children: [_jsx("span", { className: "min-w-0", children: title }), _jsx(ArrowRight, { "aria-hidden": "true", className: "mt-1 size-4 shrink-0" })] }), description && _jsx("p", { className: "text-body text-muted-foreground", children: description })] }) }));
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=link-card.js.map
|
package/dist/ui/link-card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-card.js","sourceRoot":"","sources":["../../src/ui/link-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"link-card.js","sourceRoot":"","sources":["../../src/ui/link-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,IAAI,IAAI,OAAO,EAAkC,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAiB,MAAM,WAAW,CAAC;AAgBtD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,YAAY,GAAG,CAAC,EAChB,WAAW,EACX,IAAI,EACJ,SAAS,EACT,eAAe,EACf,GAAG,KAAK,EACM;IACd,MAAM,OAAO,GAAG,IAAI,YAAY,EAAwB,CAAC;IACzD,OAAO,CACL,KAAC,OAAO,OACF,KAAK,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,kHAAkH,EAClH,SAAS,CACV,YAED,eACE,SAAS,EAAE,EAAE,CACX,8HAA8H,EAC9H,eAAe,CAChB,aAEA,IAAI,IAAI,CACP,eAAM,SAAS,EAAC,4FAA4F,YACzG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,GACtB,CACR,EACD,MAAC,OAAO,IAAC,SAAS,EAAC,+EAA+E,aAChG,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,EACxC,KAAC,UAAU,mBAAa,MAAM,EAAC,SAAS,EAAC,sBAAsB,GAAG,IAC1D,EACT,WAAW,IAAI,YAAG,SAAS,EAAC,iCAAiC,YAAE,WAAW,GAAK,IAC5E,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import { type NumberFieldProps as RACNumberFieldProps } from 'react-aria-components';
|
|
3
|
-
import { type FieldWidth } from './field.js';
|
|
3
|
+
import { type FieldWidth, type FieldLabels } from './field.js';
|
|
4
4
|
export interface NumberFieldProps extends Omit<RACNumberFieldProps, 'className' | 'children' | 'validate'> {
|
|
5
5
|
label: string;
|
|
6
6
|
description?: ReactNode;
|
|
@@ -8,6 +8,7 @@ export interface NumberFieldProps extends Omit<RACNumberFieldProps, 'className'
|
|
|
8
8
|
requiredMessage?: string;
|
|
9
9
|
validate?: (value: number) => string | string[] | true | null | undefined;
|
|
10
10
|
width?: FieldWidth;
|
|
11
|
+
labels?: Partial<FieldLabels>;
|
|
11
12
|
className?: string;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
@@ -15,5 +16,5 @@ export interface NumberFieldProps extends Omit<RACNumberFieldProps, 'className'
|
|
|
15
16
|
* 28px painted button that stays 4px from the box's edge at every level. Arrow keys and typing work too;
|
|
16
17
|
* min and max clamp on blur.
|
|
17
18
|
*/
|
|
18
|
-
export declare function NumberField({ label, description, errorMessage, requiredMessage, validate, width, className, ...props }: NumberFieldProps): import("react").JSX.Element;
|
|
19
|
+
export declare function NumberField({ label, description, errorMessage, requiredMessage, validate, width, labels, className, ...props }: NumberFieldProps): import("react").JSX.Element;
|
|
19
20
|
//# sourceMappingURL=number-field.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAIL,KAAK,gBAAgB,IAAI,mBAAmB,EAC7C,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAUL,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAIL,KAAK,gBAAgB,IAAI,mBAAmB,EAC7C,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAUL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,mBAAmB,EACnB,WAAW,GAAG,UAAU,GAAG,UAAU,CACtC;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1E,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,KAAY,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAkDlB"}
|
package/dist/ui/number-field.js
CHANGED
|
@@ -10,10 +10,10 @@ import { FieldDescription, FieldError, FieldLabel, fieldBox, fieldInput, fieldSt
|
|
|
10
10
|
* 28px painted button that stays 4px from the box's edge at every level. Arrow keys and typing work too;
|
|
11
11
|
* min and max clamp on blur.
|
|
12
12
|
*/
|
|
13
|
-
export function NumberField({ label, description, errorMessage, requiredMessage, validate, width = 'sm', className, ...props }) {
|
|
13
|
+
export function NumberField({ label, description, errorMessage, requiredMessage, validate, width = 'sm', labels, className, ...props }) {
|
|
14
14
|
return (_jsxs(RACNumberField, { ...props, validate: withRequired(props.isRequired, requiredMessage ?? `Enter ${lcFirst(label)}`, (v) => v == null || Number.isNaN(v), validate), className: cn(fieldStack, fieldWidths[width],
|
|
15
15
|
// Two stepper targets plus room for five digits. At AAA the targets are 44px, so a narrow field
|
|
16
16
|
// grows past its width rather than squeezing the number (min-width wins over max-width).
|
|
17
|
-
'min-w-[calc(2*max(var(--target-min),var(--control-height-sm))+5ch+1.5rem)]', className), children: [_jsx(FieldLabel, { isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { requiredMessage: requiredMessage ?? `Enter ${lcFirst(label)}`, children: errorMessage }), _jsxs(Group, { className: fieldBox, children: [_jsx(Button, { slot: "decrement", variant: "ghost", visualSize: "icon-sm", className: "ms-1 justify-start", visualClassName: "[&_svg]:size-4", children: _jsx(Minus, { "aria-hidden": "true" }) }), _jsx(Input, { className: cn(fieldInput, 'px-2 text-center tabular-nums') }), _jsx(Button, { slot: "increment", variant: "ghost", visualSize: "icon-sm", className: "me-1 justify-end", visualClassName: "[&_svg]:size-4", children: _jsx(Plus, { "aria-hidden": "true" }) })] })] }));
|
|
17
|
+
'min-w-[calc(2*max(var(--target-min),var(--control-height-sm))+5ch+1.5rem)]', className), children: [_jsx(FieldLabel, { isRequired: props.isRequired, children: label }), description && _jsx(FieldDescription, { children: description }), _jsx(FieldError, { errorPrefix: labels?.errorPrefix, requiredMessage: requiredMessage ?? `Enter ${lcFirst(label)}`, children: errorMessage }), _jsxs(Group, { className: fieldBox, children: [_jsx(Button, { slot: "decrement", variant: "ghost", visualSize: "icon-sm", className: "ms-1 justify-start", visualClassName: "[&_svg]:size-4", children: _jsx(Minus, { "aria-hidden": "true" }) }), _jsx(Input, { className: cn(fieldInput, 'px-2 text-center tabular-nums') }), _jsx(Button, { slot: "increment", variant: "ghost", visualSize: "icon-sm", className: "me-1 justify-end", visualClassName: "[&_svg]:size-4", children: _jsx(Plus, { "aria-hidden": "true" }) })] })] }));
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=number-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-field.js","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,EACL,KAAK,EACL,WAAW,IAAI,cAAc,GAE9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAY,
|
|
1
|
+
{"version":3,"file":"number-field.js","sourceRoot":"","sources":["../../src/ui/number-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,EACL,KAAK,EACL,WAAW,IAAI,cAAc,GAE9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAY,GAGb,MAAM,YAAY,CAAC;AAgBpB;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACS;IACjB,OAAO,CACL,MAAC,cAAc,OACT,KAAK,EACT,QAAQ,EAAE,YAAY,CACpB,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EACnC,QAAQ,CACT,EACD,SAAS,EAAE,EAAE,CACX,UAAU,EACV,WAAW,CAAC,KAAK,CAAC;QAClB,gGAAgG;QAChG,yFAAyF;QACzF,4EAA4E,EAC5E,SAAS,CACV,aAED,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IACT,WAAW,EAAE,MAAM,EAAE,WAAW,EAChC,eAAe,EAAE,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,YAE5D,YAAY,GACF,EACb,MAAC,KAAK,IAAC,SAAS,EAAE,QAAQ,aACxB,KAAC,MAAM,IACL,IAAI,EAAC,WAAW,EAChB,OAAO,EAAC,OAAO,EACf,UAAU,EAAC,SAAS,EACpB,SAAS,EAAC,oBAAoB,EAC9B,eAAe,EAAC,gBAAgB,YAEhC,KAAC,KAAK,mBAAa,MAAM,GAAG,GACrB,EACT,KAAC,KAAK,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,+BAA+B,CAAC,GAAI,EACrE,KAAC,MAAM,IACL,IAAI,EAAC,WAAW,EAChB,OAAO,EAAC,OAAO,EACf,UAAU,EAAC,SAAS,EACpB,SAAS,EAAC,kBAAkB,EAC5B,eAAe,EAAC,gBAAgB,YAEhC,KAAC,IAAI,mBAAa,MAAM,GAAG,GACpB,IACH,IACO,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Pagination's words, for the `labels` prop. `{page}` is a page number. */
|
|
2
|
+
export interface PaginationLabels {
|
|
3
|
+
/** Names the navigation landmark. */
|
|
4
|
+
pagination: string;
|
|
5
|
+
previous: string;
|
|
6
|
+
next: string;
|
|
7
|
+
/** A page link's name around its number, which is all it shows: "Page {page}". */
|
|
8
|
+
page: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PaginationProps {
|
|
11
|
+
/** The current page, from 1. */
|
|
12
|
+
page: number;
|
|
13
|
+
pageCount: number;
|
|
14
|
+
/**
|
|
15
|
+
* Where a page is: a function, or a string with `{page}` in it ("/projects?page={page}&sort=name"), which a
|
|
16
|
+
* server component can pass where it can't pass a function.
|
|
17
|
+
*/
|
|
18
|
+
href: string | ((page: number) => string);
|
|
19
|
+
labels?: Partial<PaginationLabels>;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Links to the pages of a long list: Previous, the first and last pages, the ones either side of the current one,
|
|
24
|
+
* and Next. Every page is a link, so it works with JavaScript off and goes through your router's
|
|
25
|
+
* `RouterProvider` when it is on. The current page is marked `aria-current="page"` and painted as the primary
|
|
26
|
+
* button: fill and weight, not colour alone. Previous and Next are left out at the ends rather than disabled.
|
|
27
|
+
* Nothing renders for a single page.
|
|
28
|
+
*/
|
|
29
|
+
export declare function Pagination({ page, pageCount, href, labels: given, className }: PaginationProps): import("react").JSX.Element | null;
|
|
30
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"AAQA,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;CACd;AASD,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,sCA4C9F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Link } from 'react-aria-components';
|
|
4
|
+
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
5
|
+
import { cn } from '../lib/cn.js';
|
|
6
|
+
import { fill, withLabels } from '../lib/labels.js';
|
|
7
|
+
const paginationLabels = {
|
|
8
|
+
pagination: 'Pagination',
|
|
9
|
+
previous: 'Previous',
|
|
10
|
+
next: 'Next',
|
|
11
|
+
page: 'Page {page}',
|
|
12
|
+
};
|
|
13
|
+
/** First, last, and the pages either side of the current one, with a gap where pages are left out. */
|
|
14
|
+
function pageWindow(current, last) {
|
|
15
|
+
const pages = [...new Set([1, last, current - 1, current, current + 1])]
|
|
16
|
+
.filter((n) => n >= 1 && n <= last)
|
|
17
|
+
.toSorted((a, b) => a - b);
|
|
18
|
+
const out = [];
|
|
19
|
+
let previous = 0;
|
|
20
|
+
for (const n of pages) {
|
|
21
|
+
if (n - previous > 1)
|
|
22
|
+
out.push({ key: `gap-${previous}-${n}`, gap: true });
|
|
23
|
+
out.push({ key: `page-${n}`, page: n });
|
|
24
|
+
previous = n;
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Links to the pages of a long list: Previous, the first and last pages, the ones either side of the current one,
|
|
30
|
+
* and Next. Every page is a link, so it works with JavaScript off and goes through your router's
|
|
31
|
+
* `RouterProvider` when it is on. The current page is marked `aria-current="page"` and painted as the primary
|
|
32
|
+
* button: fill and weight, not colour alone. Previous and Next are left out at the ends rather than disabled.
|
|
33
|
+
* Nothing renders for a single page.
|
|
34
|
+
*/
|
|
35
|
+
export function Pagination({ page, pageCount, href, labels: given, className }) {
|
|
36
|
+
if (pageCount <= 1)
|
|
37
|
+
return null;
|
|
38
|
+
const labels = withLabels(paginationLabels, given);
|
|
39
|
+
const to = (n) => (typeof href === 'function' ? href(n) : fill(href, { page: n }));
|
|
40
|
+
// A page link shows its number; the words around it ("Page …") are for its name, which keeps the number (2.5.3).
|
|
41
|
+
const [before, after = ''] = labels.page.split('{page}');
|
|
42
|
+
return (_jsx("nav", { "aria-label": labels.pagination, className: cn('min-w-0', className), children: _jsxs("ul", { role: "list", className: "flex flex-wrap items-center gap-1", children: [page > 1 && (_jsx("li", { children: _jsxs(PageLink, { href: to(page - 1), rel: "prev", children: [_jsx(ChevronLeft, { "aria-hidden": "true", className: "size-4" }), labels.previous] }) })), pageWindow(page, pageCount).map((entry) => 'gap' in entry ? (_jsx("li", { "aria-hidden": "true", className: "px-1 text-sm text-muted-foreground", children: "\u2026" }, entry.key)) : (_jsx("li", { children: _jsxs(PageLink, { href: to(entry.page), isCurrent: entry.page === page, children: [before && _jsx("span", { className: "sr-only", children: before }), entry.page, after && _jsx("span", { className: "sr-only", children: after })] }) }, entry.key))), page < pageCount && (_jsx("li", { children: _jsxs(PageLink, { href: to(page + 1), rel: "next", children: [labels.next, _jsx(ChevronRight, { "aria-hidden": "true", className: "size-4" })] }) }))] }) }));
|
|
43
|
+
}
|
|
44
|
+
/** Three layers: the link is the target, at least --target-min both ways; the painted box carries hover, focus and current. */
|
|
45
|
+
function PageLink({ href, rel, isCurrent, children, }) {
|
|
46
|
+
return (_jsx(Link, { href: href, rel: rel, "aria-current": isCurrent ? 'page' : undefined, className: "group/page relative inline-flex min-h-target min-w-target cursor-pointer items-center justify-center no-underline outline-none", children: _jsx("span", { className: cn('inline-flex h-control min-w-control items-center justify-center gap-1 rounded-md px-2 text-sm font-medium text-foreground tabular-nums', 'group-data-hovered/page:bg-accent group-data-focus-visible/page:focus-ring', 'group-aria-[current=page]/page:bg-primary group-aria-[current=page]/page:font-bold group-aria-[current=page]/page:text-primary-foreground'), children: children }) }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"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"}
|