@setsquare/ui 0.2.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/NOTICE +1 -1
- package/README.md +13 -6
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/page-items.d.ts +10 -0
- package/dist/lib/page-items.d.ts.map +1 -0
- package/dist/lib/page-items.js +26 -0
- package/dist/lib/page-items.js.map +1 -0
- package/dist/lint/index.d.ts.map +1 -1
- package/dist/lint/index.js +4 -0
- package/dist/lint/index.js.map +1 -1
- package/dist/shell/sidebar.d.ts +23 -0
- package/dist/shell/sidebar.d.ts.map +1 -1
- package/dist/shell/sidebar.js +22 -3
- package/dist/shell/sidebar.js.map +1 -1
- package/dist/styles/theme.css +548 -0
- package/dist/styles/tokens.css +8 -0
- package/dist/testing/index.d.ts +3 -2
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +30 -2
- package/dist/testing/index.js.map +1 -1
- package/dist/tokens.json +20 -0
- package/dist/ui/feature-card.d.ts.map +1 -1
- package/dist/ui/feature-card.js.map +1 -1
- package/dist/ui/pagination.d.ts +69 -14
- package/dist/ui/pagination.d.ts.map +1 -1
- package/dist/ui/pagination.js +177 -32
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/tabs.d.ts +82 -15
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +274 -16
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/time-of-day-icon.d.ts.map +1 -1
- package/dist/ui/time-of-day-icon.js.map +1 -1
- package/dist/ui/tree.d.ts +53 -0
- package/dist/ui/tree.d.ts.map +1 -0
- package/dist/ui/tree.js +36 -0
- package/dist/ui/tree.js.map +1 -0
- package/package.json +21 -25
- package/templates/next/page-transition.tsx +1 -1
package/dist/ui/pagination.js
CHANGED
|
@@ -1,48 +1,193 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { useEffect, useId, useLayoutEffect, useRef, useState, } from 'react';
|
|
4
|
+
import { Link, useLocale } from 'react-aria-components';
|
|
5
|
+
import { ChevronLeft, ChevronRight, CircleAlert } from 'lucide-react';
|
|
5
6
|
import { cn } from '../lib/cn.js';
|
|
6
7
|
import { fill, withLabels } from '../lib/labels.js';
|
|
8
|
+
import { pageItems } from '../lib/page-items.js';
|
|
9
|
+
import { Button } from './button.js';
|
|
10
|
+
import { Option } from './list-box.js';
|
|
11
|
+
import { Select } from './select.js';
|
|
7
12
|
const paginationLabels = {
|
|
8
13
|
pagination: 'Pagination',
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
noun: 'results',
|
|
15
|
+
range: '{from}–{to} of {total}',
|
|
16
|
+
rangeTo: ' to ',
|
|
17
|
+
empty: 'No {noun}',
|
|
18
|
+
rowsPerPage: 'Rows per page',
|
|
19
|
+
page: 'Page {page} of {noun}',
|
|
20
|
+
previous: 'Previous page of {noun}',
|
|
21
|
+
next: 'Next page of {noun}',
|
|
22
|
+
field: 'Page',
|
|
23
|
+
of: 'of {last}',
|
|
24
|
+
go: 'Go',
|
|
25
|
+
outOfRange: 'Enter a page from 1 to {last}',
|
|
26
|
+
loading: 'Loading page {page}…',
|
|
27
|
+
errorPrefix: 'Error: ',
|
|
12
28
|
};
|
|
13
|
-
/**
|
|
14
|
-
|
|
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
|
-
}
|
|
29
|
+
/** An arrow's place, the same with the arrow or without, so the row keeps its length at the ends. */
|
|
30
|
+
const arrowSlot = 'flex w-[max(var(--target-min),var(--control-height))] min-h-target';
|
|
28
31
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
32
|
+
* The footer of a long list: Rows per page, the range ("21–30 of 212 projects") and the pages. Up to 20 pages
|
|
33
|
+
* it shows numbers, seven slots at most, so the row never changes length; above that, a "Page [n] of N" field.
|
|
34
|
+
* Every page is a link, so it works with JavaScript off, and goes through your router's `RouterProvider` when it
|
|
35
|
+
* is on; the field is a GET form that keeps the rest of the query. The current page is `aria-current="page"`,
|
|
36
|
+
* painted as the primary button: fill and weight, not colour alone. Previous and Next are left out at the ends,
|
|
37
|
+
* with their place kept.
|
|
34
38
|
*/
|
|
35
|
-
export function Pagination(
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
export function Pagination(props) {
|
|
40
|
+
const { href, pageParam = 'page', fieldAbove = 20, labels: given, className } = props;
|
|
41
|
+
const meta = props.meta;
|
|
42
|
+
const current = meta ? meta.current_page : props.page;
|
|
43
|
+
const last = Math.max(1, meta ? meta.last_page : props.pageCount);
|
|
38
44
|
const labels = withLabels(paginationLabels, given);
|
|
45
|
+
const noun = labels.noun;
|
|
46
|
+
const { locale } = useLocale();
|
|
47
|
+
const format = (n) => new Intl.NumberFormat(locale).format(n);
|
|
39
48
|
const to = (n) => (typeof href === 'function' ? href(n) : fill(href, { page: n }));
|
|
40
|
-
//
|
|
49
|
+
// Which way the last change went, for the range's figures and the current page.
|
|
50
|
+
const [seen, setSeen] = useState({
|
|
51
|
+
page: current,
|
|
52
|
+
per: meta?.per_page,
|
|
53
|
+
moved: false,
|
|
54
|
+
forward: true,
|
|
55
|
+
});
|
|
56
|
+
if (seen.page !== current || seen.per !== meta?.per_page) {
|
|
57
|
+
setSeen({
|
|
58
|
+
page: current,
|
|
59
|
+
per: meta?.per_page,
|
|
60
|
+
moved: true,
|
|
61
|
+
forward: seen.page !== current ? current > seen.page : (meta?.per_page ?? 0) > (seen.per ?? 0),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Pending: the control you used, from the moment it's pressed until the page changes.
|
|
65
|
+
const [pending, setPending] = useState(null);
|
|
66
|
+
const [sayingFor, setSayingFor] = useState(null);
|
|
67
|
+
const saying = !!pending && sayingFor === pending;
|
|
68
|
+
if (pending && pending.from !== current)
|
|
69
|
+
setPending(null);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (!pending)
|
|
72
|
+
return;
|
|
73
|
+
// The message waits as long as the mark does (--duration-loading-delay), so a fast page says nothing.
|
|
74
|
+
const delay = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--duration-loading-delay')) || 400;
|
|
75
|
+
const timer = setTimeout(() => setSayingFor(pending), delay);
|
|
76
|
+
return () => clearTimeout(timer);
|
|
77
|
+
}, [pending]);
|
|
78
|
+
// Focus after paging: Previous and Next keep it unless they've gone at an end; a page number moves it to the
|
|
79
|
+
// new current page; the field keeps it.
|
|
80
|
+
const intent = useRef(null);
|
|
81
|
+
const currentRef = useRef(null);
|
|
82
|
+
const fieldRef = useRef(null);
|
|
83
|
+
useLayoutEffect(() => {
|
|
84
|
+
const kind = intent.current;
|
|
85
|
+
intent.current = null;
|
|
86
|
+
if (!kind)
|
|
87
|
+
return;
|
|
88
|
+
const gone = (kind === 'prev' && current === 1) || (kind === 'next' && current === last);
|
|
89
|
+
if (kind === 'field')
|
|
90
|
+
fieldRef.current?.focus();
|
|
91
|
+
else if (kind === 'num' || gone)
|
|
92
|
+
(currentRef.current ?? fieldRef.current)?.focus();
|
|
93
|
+
}, [current, last]);
|
|
94
|
+
const press = (kind, page) => (e) => {
|
|
95
|
+
// A new tab or window leaves this page as it is.
|
|
96
|
+
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey)
|
|
97
|
+
return;
|
|
98
|
+
intent.current = kind;
|
|
99
|
+
setPending({ kind, page, from: current });
|
|
100
|
+
};
|
|
101
|
+
const fieldId = useId();
|
|
102
|
+
const [error, setError] = useState('');
|
|
103
|
+
const [errorPage, setErrorPage] = useState(current);
|
|
104
|
+
if (errorPage !== current) {
|
|
105
|
+
setErrorPage(current);
|
|
106
|
+
setError('');
|
|
107
|
+
}
|
|
108
|
+
const showSelect = !!meta && !!props.onPerPageChange;
|
|
109
|
+
const options = (meta && props.perPageOptions) || [10, 25, 50];
|
|
110
|
+
if (!meta && last <= 1)
|
|
111
|
+
return null;
|
|
112
|
+
const range = meta && (_jsx(Range, { meta: meta, labels: labels, format: format, moved: seen.moved, forward: seen.forward }));
|
|
113
|
+
return (_jsxs("div", { className: cn('@container/pagination relative w-full', className), children: [_jsxs("div", { className: "flex flex-wrap items-end justify-between gap-x-6 gap-y-3 @max-[560px]/pagination:flex-col @max-[560px]/pagination:items-stretch", children: [showSelect && (meta.total > Math.min(...options) || meta.last_page > 1) && (_jsx(Select, { label: labels.rowsPerPage, width: "xs", selectedKey: String(meta.per_page), onSelectionChange: (key) => {
|
|
114
|
+
const per = Number(key);
|
|
115
|
+
if (!per || per === meta.per_page)
|
|
116
|
+
return;
|
|
117
|
+
props.onPerPageChange?.(per, meta.from ? Math.floor((meta.from - 1) / per) + 1 : 1);
|
|
118
|
+
}, children: options.map((n) => (_jsx(Option, { id: String(n), children: format(n) }, n))) })), range && _jsx("div", { className: "flex min-h-control-target items-center", children: range }), last > 1 && (_jsxs("nav", { "aria-label": labels.pagination, "aria-busy": pending ? true : undefined, "data-moved": seen.moved ? '' : undefined, className: "relative min-w-0 @max-[560px]/pagination:self-start", style: { '--pagination-slot': `calc(${String(last).length}ch + 16px)` }, children: [_jsx("span", { role: "status", className: "sr-only", children: pending && saying ? fill(labels.loading, { page: format(pending.page) }) : '' }), _jsxs("div", { className: "flex items-center gap-1", children: [current > 1 ? (_jsx(Arrow, { href: to(current - 1), rel: "prev", label: fill(labels.previous, { noun }), pending: pending?.kind === 'prev', onPress: press('prev', current - 1) })) : (_jsx("span", { "aria-hidden": "true", className: arrowSlot })), last <= fieldAbove ? (_jsx(Numbers, { current: current, last: last, to: to, labels: labels, format: format, pending: pending, press: press, currentRef: currentRef })) : (_jsx(PageField, { id: fieldId, error: error, setError: setError, current: current, last: last, to: to, pageParam: pageParam, labels: labels, format: format, fieldRef: fieldRef, pending: pending?.kind === 'field', onGo: (n) => {
|
|
119
|
+
intent.current = 'field';
|
|
120
|
+
setPending({ kind: 'field', page: n, from: current });
|
|
121
|
+
} })), current < last ? (_jsx(Arrow, { href: to(current + 1), rel: "next", label: fill(labels.next, { noun }), pending: pending?.kind === 'next', onPress: press('next', current + 1) })) : (_jsx("span", { "aria-hidden": "true", className: arrowSlot }))] })] }))] }), last > fieldAbove && (_jsx("div", { role: "alert", id: `${fieldId}-error`, children: error && (_jsxs("p", { className: "mt-2 flex items-center gap-1.5 text-[13px] leading-5 font-semibold text-destructive", children: [_jsx(CircleAlert, { "aria-hidden": "true", className: "size-4 shrink-0" }), _jsxs("span", { children: [_jsx("span", { className: "sr-only", children: labels.errorPrefix }), error] })] })) }))] }));
|
|
122
|
+
}
|
|
123
|
+
/** "21–30 of 212 projects": the figures bold, the noun muted, and the dash read as "to". */
|
|
124
|
+
function Range({ meta, labels, format, moved, forward, }) {
|
|
125
|
+
if (!meta.total || meta.from == null || meta.to == null)
|
|
126
|
+
return (_jsx("p", { role: "status", className: "text-sm text-muted-foreground", children: fill(labels.empty, { noun: labels.noun }) }));
|
|
127
|
+
const match = /^(.*?)\{from\}(.*?)\{to\}(.*)$/.exec(labels.range);
|
|
128
|
+
const [, before = '', between = '', after = ''] = match ?? ['', '', '', labels.range];
|
|
129
|
+
const values = { total: format(meta.total), from: format(meta.from), to: format(meta.to) };
|
|
130
|
+
return (_jsxs("p", { role: "status", className: "text-sm text-muted-foreground tabular-nums", children: [_jsxs("span", { "data-direction": moved ? (forward ? 'forward' : 'back') : undefined, className: "pagination-roll font-semibold text-foreground", children: [fill(before, values), values.from, _jsx("span", { "aria-hidden": "true", children: between }), _jsx("span", { className: "sr-only", children: labels.rangeTo }), values.to, fill(after, values)] }, `${meta.from}-${meta.to}-${meta.total}`), ' ', labels.noun] }));
|
|
131
|
+
}
|
|
132
|
+
function Numbers({ current, last, to, labels, format, pending, press, currentRef, }) {
|
|
133
|
+
// A page link shows its number; the words around it are for its name, which keeps the number (2.5.3).
|
|
41
134
|
const [before, after = ''] = labels.page.split('{page}');
|
|
42
|
-
return (_jsx("
|
|
135
|
+
return (_jsx("ul", { role: "list", className: "flex min-w-0 flex-wrap gap-1", children: pageItems(current, last).map((item) => (_jsx("li", { className: "flex w-[max(var(--target-min),var(--control-height),var(--pagination-slot))] justify-center", children: typeof item === 'number' ? (_jsxs(PageLink, { href: to(item), isCurrent: item === current, pending: pending?.kind === 'num' && pending.page === item, onPress: press('num', item), ref: item === current ? currentRef : undefined, children: [before && _jsx("span", { className: "sr-only", children: fill(before, { noun: labels.noun }) }), format(item), after && _jsx("span", { className: "sr-only", children: fill(after, { noun: labels.noun }) })] })) : (_jsx("span", { "aria-hidden": "true", className: "inline-flex h-control w-full items-center justify-center text-sm tracking-[1px] text-muted-foreground", children: "\u2026" })) }, typeof item === 'number' ? `page-${item}` : item))) }));
|
|
136
|
+
}
|
|
137
|
+
/** "Page [n] of N", a GET form that keeps the rest of the query. With JavaScript it goes through the router. */
|
|
138
|
+
function PageField({ id, error, setError, current, last, to, pageParam, labels, format, fieldRef, pending, onGo, }) {
|
|
139
|
+
const [value, setValue] = useState(String(current));
|
|
140
|
+
// A new page shows its own number; the field itself stays, so focus stays in it.
|
|
141
|
+
const [shown, setShown] = useState(current);
|
|
142
|
+
if (shown !== current) {
|
|
143
|
+
setShown(current);
|
|
144
|
+
setValue(String(current));
|
|
145
|
+
}
|
|
146
|
+
const [target, setTarget] = useState(null);
|
|
147
|
+
const link = useRef(null);
|
|
148
|
+
// Where the form goes without JavaScript: the page's own path, with the rest of its query as hidden fields.
|
|
149
|
+
const url = new URL(to(1), 'http://pagination.invalid');
|
|
150
|
+
const action = /^[a-z][a-z\d+.-]*:/i.test(to(1)) ? url.origin + url.pathname : url.pathname;
|
|
151
|
+
const hidden = [...url.searchParams].filter(([name]) => name !== pageParam);
|
|
152
|
+
const changed = value.trim() !== '' && value.trim() !== String(current);
|
|
153
|
+
const digits = Math.max(2, String(last).length);
|
|
154
|
+
// Navigate through the same link machinery as the page links, so a RouterProvider handles it.
|
|
155
|
+
useEffect(() => {
|
|
156
|
+
if (target != null)
|
|
157
|
+
link.current?.click();
|
|
158
|
+
}, [target]);
|
|
159
|
+
const submit = (e) => {
|
|
160
|
+
e.preventDefault();
|
|
161
|
+
const raw = value.trim();
|
|
162
|
+
const n = /^\d+$/.test(raw) ? Number(raw) : NaN;
|
|
163
|
+
if (!(n >= 1 && n <= last)) {
|
|
164
|
+
setError(fill(labels.outOfRange, { last: format(last) }));
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (n === current)
|
|
168
|
+
return;
|
|
169
|
+
onGo(n);
|
|
170
|
+
setTarget(n);
|
|
171
|
+
};
|
|
172
|
+
return (_jsxs("form", { action: action, method: "get", noValidate: true, onSubmit: submit, className: "mx-1 inline-flex min-w-0 flex-wrap items-center gap-2", children: [hidden.map(([name, v]) => (_jsx("input", { type: "hidden", name: name, value: v }, name))), _jsx("label", { htmlFor: id, className: "text-sm font-semibold text-foreground", children: labels.field }), _jsx("div", { "data-invalid": error ? '' : undefined, className: cn('field-paint flex has-[input:focus]:before:focus-ring data-invalid:before:border-destructive data-invalid:before:shadow-[inset_0_0_0_1px_var(--destructive)]', pending && 'pagination-field-pending'), children: _jsx("input", { ref: fieldRef, id: id, name: pageParam, inputMode: "numeric", autoComplete: "off", value: value, "aria-invalid": error ? true : undefined, "aria-describedby": `${id}-of ${id}-error`, onChange: (e) => {
|
|
173
|
+
setValue(e.target.value);
|
|
174
|
+
setError('');
|
|
175
|
+
}, onKeyDown: (e) => {
|
|
176
|
+
if (e.key !== 'Escape' || value === String(current))
|
|
177
|
+
return;
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
setValue(String(current));
|
|
180
|
+
setError('');
|
|
181
|
+
}, style: { width: `calc(${digits + 1}ch + 2 * var(--control-pad-x) + 2px)` }, className: "field-input cursor-text px-(--control-pad-x) text-center text-sm font-bold text-foreground tabular-nums" }) }), _jsx("span", { id: `${id}-of`, className: "text-sm whitespace-nowrap text-muted-foreground tabular-nums", children: fill(labels.of, { last: format(last) }) }), changed && (_jsx("span", { className: "pagination-go inline-flex", children: _jsx(Button, { type: "submit", isPending: pending, children: labels.go }) })), target != null && (_jsx("span", { hidden: true, children: _jsx(Link, { ref: link, href: to(target), children: format(target) }) }))] }));
|
|
43
182
|
}
|
|
44
183
|
/** 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:
|
|
184
|
+
function PageLink({ href, rel, isCurrent, pending, onPress, ref, label, className, children, }) {
|
|
185
|
+
return (_jsx(Link, { ref: ref, href: href, rel: rel, "aria-current": isCurrent ? 'page' : undefined, "aria-label": label, "data-pending": pending ? '' : undefined, onPress: onPress, className: cn('group/page relative inline-flex min-h-target w-full min-w-target cursor-pointer items-center justify-center no-underline outline-none data-pending:cursor-wait', className), children: _jsx("span", { className: "pagination-paint group-data-focus-visible/page:focus-ring", children: children }) }));
|
|
186
|
+
}
|
|
187
|
+
function Arrow({ href, rel, label, pending, onPress, }) {
|
|
188
|
+
const Icon = rel === 'prev' ? ChevronLeft : ChevronRight;
|
|
189
|
+
return (_jsxs(PageLink, { href: href, rel: rel, pending: pending, onPress: onPress, className: arrowSlot, children: [_jsx(Icon, { "aria-hidden": "true", className: cn('size-4 transition-transform duration-(--duration-fast) motion-reduce:transition-none aaa:translate-x-0!', rel === 'prev'
|
|
190
|
+
? 'group-data-hovered/page:-translate-x-0.5'
|
|
191
|
+
: 'group-data-hovered/page:translate-x-0.5') }), _jsx("span", { className: "sr-only", children: label })] }));
|
|
47
192
|
}
|
|
48
193
|
//# sourceMappingURL=pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,SAAS,EACT,KAAK,EACL,eAAe,EACf,MAAM,EACN,QAAQ,GAKT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAA6B,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA8BrC,MAAM,gBAAgB,GAAqB;IACzC,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,eAAe;IAC5B,IAAI,EAAE,uBAAuB;IAC7B,QAAQ,EAAE,yBAAyB;IACnC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,MAAM;IACb,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,+BAA+B;IAC3C,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,SAAS;CACvB,CAAC;AA0DF,qGAAqG;AACrG,MAAM,SAAS,GAAG,oEAAoE,CAAC;AAEvF;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACtF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3F,gFAAgF;IAChF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,IAAI,EAAE,QAAQ;QACnB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC;QACzD,OAAO,CAAC;YACN,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,IAAI,EAAE,QAAQ;YACnB,KAAK,EAAE,IAAI;YACX,OAAO,EACL,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACxF,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoD,IAAI,CAAC,CAAC;IAChG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC;IAClD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,sGAAsG;QACtG,MAAM,KAAK,GACT,UAAU,CACR,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CACxF,IAAI,GAAG,CAAC;QACX,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,6GAA6G;IAC7G,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;QACzF,IAAI,IAAI,KAAK,OAAO;YAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;aAC3C,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI;YAAE,CAAC,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IACrF,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,KAAK,GAAG,CAAC,IAAU,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC,CAAa,EAAE,EAAE;QAC5D,iDAAiD;QACjD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO;QAC7D,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACrD,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAG,IAAI,IAAI,CACpB,KAAC,KAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,CAChG,CAAC;IAEF,OAAO,CAEL,eAAK,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,SAAS,CAAC,aACpE,eAAK,SAAS,EAAC,iIAAiI,aAC7I,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAC1E,KAAC,MAAM,IACL,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,KAAK,EAAC,IAAI,EACV,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAClC,iBAAiB,EAAE,CAAC,GAAe,EAAE,EAAE;4BACrC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;4BACxB,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ;gCAAE,OAAO;4BAC1C,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtF,CAAC,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,KAAC,MAAM,IAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,YAC1B,MAAM,CAAC,CAAC,CAAC,IADC,CAAC,CAEL,CACV,CAAC,GACK,CACV,EACA,KAAK,IAAI,cAAK,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAO,EAC9E,IAAI,GAAG,CAAC,IAAI,CACX,6BACc,MAAM,CAAC,UAAU,eAClB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,gBACzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACvC,SAAS,EAAC,qDAAqD,EAC/D,KAAK,EACH,EAAE,mBAAmB,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,YAAY,EAAmB,aAGnF,eAAM,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,YACpC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GACzE,EAGP,eAAK,SAAS,EAAC,yBAAyB,aACrC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CACb,KAAC,KAAK,IACJ,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,EACrB,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,EACjC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,GACnC,CACH,CAAC,CAAC,CAAC,CACF,8BAAkB,MAAM,EAAC,SAAS,EAAE,SAAS,GAAI,CAClD,EACA,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CACpB,KAAC,OAAO,IACN,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,GACtB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IACR,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,OAAO,EAClC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;4CACV,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;4CACzB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;wCACxD,CAAC,GACD,CACH,EACA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAChB,KAAC,KAAK,IACJ,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,EACrB,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAClC,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,EACjC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,GACnC,CACH,CAAC,CAAC,CAAC,CACF,8BAAkB,MAAM,EAAC,SAAS,EAAE,SAAS,GAAI,CAClD,IACG,IACF,CACP,IACG,EAEL,IAAI,GAAG,UAAU,IAAI,CACpB,cAAK,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,GAAG,OAAO,QAAQ,YACrC,KAAK,IAAI,CACR,aAAG,SAAS,EAAC,qFAAqF,aAChG,KAAC,WAAW,mBAAa,MAAM,EAAC,SAAS,EAAC,iBAAiB,GAAG,EAC9D,2BACE,eAAM,SAAS,EAAC,SAAS,YAAE,MAAM,CAAC,WAAW,GAAQ,EACpD,KAAK,IACD,IACL,CACL,GACG,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,SAAS,KAAK,CAAC,EACb,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,GAOR;IACC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI;QACrD,OAAO,CACL,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GACxC,CACL,CAAC;IACJ,MAAM,KAAK,GAAG,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3F,OAAO,CACL,aAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,4CAA4C,aACrE,kCAGkB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAClE,SAAS,EAAC,+CAA+C,aAExD,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EACpB,MAAM,CAAC,IAAI,EACZ,8BAAkB,MAAM,YAAE,OAAO,GAAQ,EACzC,eAAM,SAAS,EAAC,SAAS,YAAE,MAAM,CAAC,OAAO,GAAQ,EAChD,MAAM,CAAC,EAAE,EACT,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,KATf,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAUvC,EAAC,GAAG,EACV,MAAM,CAAC,IAAI,IACV,CACL,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,OAAO,EACP,IAAI,EACJ,EAAE,EACF,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,EACL,UAAU,GAUX;IACC,sGAAsG;IACtG,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,OAAO,CAEL,aAAI,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,8BAA8B,YACrD,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACtC,aAEE,SAAS,EAAC,6FAA6F,YAEtG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC1B,MAAC,QAAQ,IACP,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EACd,SAAS,EAAE,IAAI,KAAK,OAAO,EAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EACzD,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAC3B,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,aAE7C,MAAM,IAAI,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAQ,EAChF,MAAM,CAAC,IAAI,CAAC,EACZ,KAAK,IAAI,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAQ,IACtE,CACZ,CAAC,CAAC,CAAC,CACF,8BACc,MAAM,EAClB,SAAS,EAAC,uGAAuG,uBAG5G,CACR,IAtBI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAuBlD,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,gHAAgH;AAChH,SAAS,SAAS,CAAC,EACjB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,EAAE,EACF,SAAS,EACT,MAAM,EACN,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,GAcL;IACC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,iFAAiF;IACjF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAC7C,4GAA4G;IAC5G,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5F,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAEhD,8FAA8F;IAC9F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,CAAC,CAA6B,EAAE,EAAE;QAC/C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,CAAC,CAAC,CAAC;QACR,SAAS,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,CACL,gBACE,MAAM,EAAE,MAAM,EACd,MAAM,EAAC,KAAK,EACZ,UAAU,QACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAC,uDAAuD,aAEhE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,gBAAkB,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAxC,IAAI,CAAwC,CACzD,CAAC,EACF,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,uCAAuC,YAClE,MAAM,CAAC,KAAK,GACP,EACR,8BACgB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACpC,SAAS,EAAE,EAAE,CACX,6JAA6J,EAC7J,OAAO,IAAI,0BAA0B,CACtC,YAED,gBACE,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,SAAS,EACf,SAAS,EAAC,SAAS,EACnB,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,KAAK,kBACE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,sBACpB,GAAG,EAAE,OAAO,EAAE,QAAQ,EACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACzB,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBACf,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC;4BAAE,OAAO;wBAC5D,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACf,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,sCAAsC,EAAE,EAC1E,SAAS,EAAC,yGAAyG,GACnH,GACE,EACN,eACE,EAAE,EAAE,GAAG,EAAE,KAAK,EACd,SAAS,EAAC,8DAA8D,YAEvE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GACnC,EACN,OAAO,IAAI,CACV,eAAM,SAAS,EAAC,2BAA2B,YACzC,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,OAAO,YACrC,MAAM,CAAC,EAAE,GACH,GACJ,CACR,EACA,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,MAAM,kBACV,KAAC,IAAI,IAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAC9B,MAAM,CAAC,MAAM,CAAC,GACV,GACF,CACR,IACI,CACR,CAAC;AACJ,CAAC;AAED,+HAA+H;AAC/H,SAAS,QAAQ,CAAC,EAChB,IAAI,EACJ,GAAG,EACH,SAAS,EACT,OAAO,EACP,OAAO,EACP,GAAG,EACH,KAAK,EACL,SAAS,EACT,QAAQ,GAWT;IACC,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,kBACM,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gBAChC,KAAK,kBACH,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CACX,gKAAgK,EAChK,SAAS,CACV,YAED,eAAM,SAAS,EAAC,2DAA2D,YAAE,QAAQ,GAAQ,GACxF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EACb,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACP,OAAO,GAOR;IACC,MAAM,IAAI,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IACzD,OAAO,CACL,MAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,aACtF,KAAC,IAAI,mBACS,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,yGAAyG,EACzG,GAAG,KAAK,MAAM;oBACZ,CAAC,CAAC,0CAA0C;oBAC5C,CAAC,CAAC,yCAAyC,CAC9C,GACD,EACF,eAAM,SAAS,EAAC,SAAS,YAAE,KAAK,GAAQ,IAC/B,CACZ,CAAC;AACJ,CAAC"}
|
package/dist/ui/tabs.d.ts
CHANGED
|
@@ -1,43 +1,110 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
import { type Key, type TabListProps as RACTabListProps, type TabPanelProps as RACTabPanelProps, type TabProps as RACTabProps, type TabsProps as RACTabsProps } from 'react-aria-components';
|
|
4
|
+
import { type IconProp } from './icon.js';
|
|
5
|
+
/** Tabs' words, for the `labels` prop. `{name}` is a tab's name. */
|
|
6
|
+
export interface TabsLabels {
|
|
7
|
+
/** Added to a tab's name for its count, which shows as a number only: "Files, 8". */
|
|
8
|
+
count: string;
|
|
9
|
+
/** Added to a tab's name for its badge's words: "Notes, 2 new notes". */
|
|
10
|
+
badge: string;
|
|
11
|
+
/** A tooltip for a tab with a count: "Files (8)". */
|
|
12
|
+
tipCount: string;
|
|
13
|
+
/** A tooltip for a tab with a badge: "Settings · 1 to check". */
|
|
14
|
+
tipBadge: string;
|
|
15
|
+
/** Said politely when an important badge rises, with `announceBadges`: "Settings: 2 settings need attention". */
|
|
16
|
+
badgeRise: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* What a closed tab shows. `expanding`: icons, and the selected tab opens to show its name. `text`: every name,
|
|
20
|
+
* no icons. `icon`: icons only; names are in tooltips. A tab without an icon always shows its name.
|
|
21
|
+
*/
|
|
22
|
+
export type TabsDisplay = 'expanding' | 'text' | 'icon';
|
|
23
|
+
/**
|
|
24
|
+
* What happens to a panel you leave. `visited`: kept once it has been shown, with its state, scroll position and
|
|
25
|
+
* drafts. `all`: every panel rendered from the start, hidden until chosen. `unmount`: gone until it is chosen
|
|
26
|
+
* again. Kept panels are hidden with React's `<Activity>`, which also stops their effects.
|
|
27
|
+
*/
|
|
28
|
+
export type TabsHiddenPanels = 'visited' | 'all' | 'unmount';
|
|
29
|
+
/** Something new on a tab, shown while it is closed: a count or a dot. */
|
|
30
|
+
export interface TabBadge {
|
|
31
|
+
/** The number shown; above 99 it shows "99+". Leave it out, with `dot`, for a dot. */
|
|
32
|
+
count?: number;
|
|
33
|
+
dot?: boolean;
|
|
34
|
+
/** What a screen reader hears after the tab's name: "2 new notes". */
|
|
35
|
+
label: string;
|
|
36
|
+
/** What the tooltip says after the name: "2 new". Defaults to `label`. */
|
|
37
|
+
short?: string;
|
|
38
|
+
/** The destructive colour and a ring that stays, and a pulse that plays three times when it appears or rises. */
|
|
39
|
+
important?: boolean;
|
|
40
|
+
/** Fades out a second after the tab is opened, then calls `onBadgeClear` so the app can mark the items read. */
|
|
41
|
+
clearOnOpen?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface TabsProps extends Omit<RACTabsProps, 'className' | 'children'> {
|
|
44
|
+
children: ReactNode;
|
|
45
|
+
/** Default `expanding`. */
|
|
46
|
+
display?: TabsDisplay;
|
|
47
|
+
/** Default `visited`. */
|
|
48
|
+
hiddenPanels?: TabsHiddenPanels;
|
|
49
|
+
/** Called once a `clearOnOpen` badge has gone, with its tab's id. */
|
|
50
|
+
onBadgeClear?: (id: Key) => void;
|
|
51
|
+
/** Politely announce a rise in an important badge ("Settings: 2 settings need attention"). Default off. */
|
|
52
|
+
announceBadges?: boolean;
|
|
53
|
+
labels?: Partial<TabsLabels>;
|
|
3
54
|
className?: string;
|
|
4
55
|
}
|
|
5
56
|
/**
|
|
6
57
|
* Views of the same thing, one at a time: a TabList and a TabPanel for each tab. Arrow keys move between tabs and
|
|
7
58
|
* show each as focus reaches it; Tab moves on to the panel. Use them for peers people switch between, not for
|
|
8
59
|
* steps in order (that's a form) or for navigation between pages (that's links).
|
|
60
|
+
*
|
|
61
|
+
* `orientation="vertical"` puts the tabs in a rail beside the panel. Narrower than 480px the rail becomes a row
|
|
62
|
+
* above it, and the arrow keys and `aria-orientation` follow.
|
|
9
63
|
*/
|
|
10
|
-
export declare function Tabs({ className, ...props }: TabsProps):
|
|
64
|
+
export declare function Tabs({ display, hiddenPanels, orientation, onBadgeClear, announceBadges, labels: given, className, children, ...props }: TabsProps): React.JSX.Element;
|
|
11
65
|
export interface TabListProps<T extends object> extends Omit<RACTabListProps<T>, 'className'> {
|
|
12
66
|
/** What the tabs switch between: "Project details". */
|
|
13
67
|
'aria-label': string;
|
|
14
68
|
className?: string;
|
|
15
69
|
}
|
|
16
70
|
/**
|
|
17
|
-
* The
|
|
18
|
-
*
|
|
71
|
+
* The tabs. In a row they wrap rather than scroll when they don't fit, so no tab is ever hidden off the edge at
|
|
72
|
+
* 320px (1.4.10). In a rail they are 104px wide tiles, and the selected one grows downwards to show its name.
|
|
19
73
|
*/
|
|
20
|
-
export declare function TabList<T extends object>({ className, ...props }: TabListProps<T>):
|
|
21
|
-
export interface TabProps extends Omit<RACTabProps, 'className'> {
|
|
74
|
+
export declare function TabList<T extends object>({ className, ...props }: TabListProps<T>): React.JSX.Element;
|
|
75
|
+
export interface TabProps extends Omit<RACTabProps, 'className' | 'children'> {
|
|
76
|
+
/** The tab's name. */
|
|
77
|
+
children: ReactNode;
|
|
78
|
+
/** The name as plain text, for its tooltip and announcements, when `children` isn't a string. */
|
|
79
|
+
textValue?: string;
|
|
80
|
+
/** Shown closed; the name opens beside it when the tab is selected. A server component passes the element. */
|
|
81
|
+
icon?: IconProp;
|
|
82
|
+
/** A number after the name ("Files 8"), and in its name as ", 8". Not shown in a rail. */
|
|
83
|
+
count?: number;
|
|
84
|
+
badge?: TabBadge;
|
|
22
85
|
/** Layer 1, the target. */
|
|
23
86
|
className?: string;
|
|
24
87
|
/** Layer 2, the painted tab. */
|
|
25
88
|
visualClassName?: string;
|
|
26
89
|
}
|
|
27
90
|
/**
|
|
28
|
-
* A tab in three layers. The tab is the target (Layer 1), at least --target-min both ways. The
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
91
|
+
* A tab in three layers. The tab is the target (Layer 1), at least --target-min both ways. The pill inside it
|
|
92
|
+
* (Layer 2) takes the hover ground and the focus ring. Selected, it takes the brand-subtle ground and a bold name,
|
|
93
|
+
* and its icon turns brand; where the name doesn't open to mark it (text and icon only), a brand marker does, so
|
|
94
|
+
* selection never rests on the fill alone.
|
|
95
|
+
*
|
|
96
|
+
* A tab whose name isn't showing has a tooltip: on hover after 500ms (at once if another just closed), on keyboard
|
|
97
|
+
* focus at once, closed by Escape from anywhere. The tooltip is hidden from assistive tech, because the tab's name
|
|
98
|
+
* is already its own collapsed label.
|
|
32
99
|
*/
|
|
33
|
-
export declare function Tab({ className, visualClassName, children, ...props }: TabProps):
|
|
34
|
-
export interface TabPanelProps extends Omit<RACTabPanelProps, 'className'> {
|
|
100
|
+
export declare function Tab({ id, icon, count, badge, className, visualClassName, children, textValue, ...props }: TabProps): React.JSX.Element;
|
|
101
|
+
export interface TabPanelProps extends Omit<RACTabPanelProps, 'className' | 'shouldForceMount'> {
|
|
35
102
|
className?: string;
|
|
36
103
|
}
|
|
37
104
|
/**
|
|
38
105
|
* A tab's content. With nothing focusable inside, React Aria makes the panel itself a tab stop so a keyboard
|
|
39
106
|
* reaches it after the tabs; it shows the focus ring then. Positioned, so hidden text inside it is placed against
|
|
40
|
-
* it.
|
|
107
|
+
* it. It comes in from the side the selection moved towards (a fade alone at AAA).
|
|
41
108
|
*/
|
|
42
|
-
export declare function TabPanel({ className, ...props }: TabPanelProps):
|
|
109
|
+
export declare function TabPanel({ className, id, ...props }: TabPanelProps): React.JSX.Element | null;
|
|
43
110
|
//# sourceMappingURL=tabs.d.ts.map
|
package/dist/ui/tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,YAAY,IAAI,eAAe,EACpC,KAAK,aAAa,IAAI,gBAAgB,EACtC,KAAK,QAAQ,IAAI,WAAW,EAC5B,KAAK,SAAS,IAAI,YAAY,EAC/B,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/ui/tabs.tsx"],"names":[],"mappings":"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"}
|