@polyxd/react 0.1.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/LICENSE +202 -0
- package/NOTICE +177 -0
- package/README.md +39 -0
- package/dist/components/avatar.d.ts +10 -0
- package/dist/components/avatar.js +47 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/chart.d.ts +5 -0
- package/dist/components/chart.js +98 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/content.d.ts +23 -0
- package/dist/components/content.js +108 -0
- package/dist/components/content.js.map +1 -0
- package/dist/components/filter.d.ts +9 -0
- package/dist/components/filter.js +97 -0
- package/dist/components/filter.js.map +1 -0
- package/dist/components/flow.d.ts +22 -0
- package/dist/components/flow.js +143 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.js +19 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inputs.d.ts +38 -0
- package/dist/components/inputs.js +230 -0
- package/dist/components/inputs.js.map +1 -0
- package/dist/components/navigation.d.ts +8 -0
- package/dist/components/navigation.js +51 -0
- package/dist/components/navigation.js.map +1 -0
- package/dist/components/structure.d.ts +25 -0
- package/dist/components/structure.js +58 -0
- package/dist/components/structure.js.map +1 -0
- package/dist/components/table.d.ts +9 -0
- package/dist/components/table.js +144 -0
- package/dist/components/table.js.map +1 -0
- package/dist/context.d.ts +93 -0
- package/dist/context.js +42 -0
- package/dist/context.js.map +1 -0
- package/dist/data.d.ts +26 -0
- package/dist/data.js +52 -0
- package/dist/data.js.map +1 -0
- package/dist/format.d.ts +12 -0
- package/dist/format.js +51 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/surface.d.ts +37 -0
- package/dist/surface.js +80 -0
- package/dist/surface.js.map +1 -0
- package/package.json +53 -0
- package/src/styles.css +2182 -0
- package/themes/antd.css +300 -0
- package/themes/bootstrap.css +300 -0
- package/themes/carbon.css +310 -0
- package/themes/chakra.css +300 -0
- package/themes/fluent.css +300 -0
- package/themes/govuk.css +150 -0
- package/themes/mantine.css +300 -0
- package/themes/material3.css +300 -0
- package/themes/polaris.css +300 -0
- package/themes/primer.css +300 -0
- package/themes/radix.css +300 -0
- package/themes/shadcn.css +300 -0
- package/themes/spectrum.css +300 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId, useState } from "react";
|
|
3
|
+
import { Checkbox, RadioGroup, Slider, Switch } from "radix-ui";
|
|
4
|
+
import { resolveFormat, useBindings, useSurface } from "../context.js";
|
|
5
|
+
import { asList, absolute, childPointer, get } from "../data.js";
|
|
6
|
+
import { currencySymbol, formatValue } from "../format.js";
|
|
7
|
+
import { Render, useA11y } from "../surface.js";
|
|
8
|
+
import { Children } from "./structure.js";
|
|
9
|
+
import { Avatar, Icon } from "./avatar.js";
|
|
10
|
+
/**
|
|
11
|
+
* The required mark. It is aria-hidden on purpose: every control it appears on also carries the
|
|
12
|
+
* native `required` / `aria-required`, which is what a screen reader announces. The asterisk is
|
|
13
|
+
* for the eye, and a form that has one explains it once (see RequiredLegend).
|
|
14
|
+
*/
|
|
15
|
+
const RequiredMark = () => (_jsx("span", { className: "pxd-required", "aria-hidden": "true", children: "*" }));
|
|
16
|
+
/** Label + help + control, with help associated to the control. */
|
|
17
|
+
function Field({ label, help, required, children, id, helpId }) {
|
|
18
|
+
return (_jsxs("div", { className: "pxd-field", children: [_jsxs("label", { className: "pxd-field-label", htmlFor: id, children: [label, required && _jsx(RequiredMark, {})] }), help && (_jsx("p", { className: "pxd-field-help", id: helpId, children: help })), children] }));
|
|
19
|
+
}
|
|
20
|
+
const INPUT_TYPE = { email: "email", phone: "tel", url: "url", search: "search", number: "text", currency: "text", text: "text" };
|
|
21
|
+
export function TextInput({ node }) {
|
|
22
|
+
const b = useBindings();
|
|
23
|
+
const s = useSurface();
|
|
24
|
+
const id = useId();
|
|
25
|
+
const helpId = useId();
|
|
26
|
+
const kind = node.kind ?? "text";
|
|
27
|
+
const raw = b.value(node.value);
|
|
28
|
+
const numeric = kind === "number" || kind === "currency";
|
|
29
|
+
const [draft, setDraft] = useState(null);
|
|
30
|
+
// While typing, show exactly what was typed; otherwise show the stored value (currency to 2 places).
|
|
31
|
+
const stored = raw === null || raw === undefined ? "" : kind === "currency" && typeof raw === "number" ? raw.toFixed(2) : String(raw);
|
|
32
|
+
const shown = draft ?? stored;
|
|
33
|
+
const v = node.validation ?? {};
|
|
34
|
+
const help = node.help !== undefined ? b.text(node.help) : undefined;
|
|
35
|
+
const common = {
|
|
36
|
+
id,
|
|
37
|
+
className: "pxd-input",
|
|
38
|
+
"aria-describedby": help ? helpId : undefined,
|
|
39
|
+
required: node.required,
|
|
40
|
+
autoComplete: node.autocomplete,
|
|
41
|
+
...useA11y(node),
|
|
42
|
+
};
|
|
43
|
+
const onChange = (text) => {
|
|
44
|
+
if (!numeric)
|
|
45
|
+
return b.write(node.value, text);
|
|
46
|
+
setDraft(text);
|
|
47
|
+
const n = Number(text.replace(/[^\d.-]/g, ""));
|
|
48
|
+
b.write(node.value, text.trim() === "" || Number.isNaN(n) ? null : n);
|
|
49
|
+
};
|
|
50
|
+
const invalid = (e) => {
|
|
51
|
+
if (v.message)
|
|
52
|
+
e.currentTarget.setCustomValidity(b.text(v.message));
|
|
53
|
+
};
|
|
54
|
+
const clear = (e) => e.currentTarget.setCustomValidity("");
|
|
55
|
+
if (kind === "search") {
|
|
56
|
+
// A search field: icon and placeholder inside a pill; the label remains its accessible name.
|
|
57
|
+
const placeholder = node.placeholder !== undefined ? b.text(node.placeholder) : undefined;
|
|
58
|
+
return (_jsxs("div", { className: "pxd-search", children: [_jsx("label", { className: "pxd-sr-only", htmlFor: id, children: b.text(node.label) }), _jsx(Icon, { name: "search" }), _jsx("input", { ...common, className: "pxd-search-input", type: "search", placeholder: placeholder, value: shown, onChange: (e) => onChange(e.target.value) })] }));
|
|
59
|
+
}
|
|
60
|
+
if (node.size === "hero" && numeric) {
|
|
61
|
+
// The one number this surface is about: large, centred, currency symbol dimmed.
|
|
62
|
+
return (_jsxs("div", { className: "pxd-hero-field", children: [_jsx("label", { className: "pxd-hero-label", htmlFor: id, children: b.text(node.label) }), _jsxs("div", { className: "pxd-hero-input", children: [kind === "currency" && (_jsx("span", { className: "pxd-hero-symbol", "aria-hidden": "true", children: currencySymbol(b.text(node.currency) || "USD", s.locale) })), _jsx("input", { ...common, className: "pxd-hero-value", type: "text", inputMode: kind === "currency" ? "decimal" : "numeric", pattern: "-?[0-9]*[.,]?[0-9]*", placeholder: "0", size: Math.max(1, shown.length || 1), value: shown, onChange: (e) => onChange(e.target.value), onBlur: () => setDraft(null), onInvalid: invalid, onInput: clear })] }), help && (_jsx("p", { className: "pxd-field-help pxd-hero-help", id: helpId, children: help }))] }));
|
|
63
|
+
}
|
|
64
|
+
const control = kind === "multiline" ? (_jsx("textarea", { ...common, rows: 3, value: shown, maxLength: v.maxLength, minLength: v.minLength, onChange: (e) => onChange(e.target.value), onInvalid: invalid, onInput: clear })) : (_jsxs("div", { className: kind === "currency" ? "pxd-input-adorned" : undefined, children: [kind === "currency" && (_jsx("span", { className: "pxd-input-prefix", "aria-hidden": "true", children: currencySymbol(b.text(node.currency) || "USD", s.locale) })), _jsx("input", { ...common, type: INPUT_TYPE[kind] ?? "text", inputMode: kind === "currency" ? "decimal" : kind === "number" ? "numeric" : undefined, pattern: numeric ? "-?[0-9]*[.,]?[0-9]*" : undefined, value: shown, maxLength: v.maxLength, minLength: v.minLength, onChange: (e) => onChange(e.target.value), onBlur: () => setDraft(null), onInvalid: invalid, onInput: clear })] }));
|
|
65
|
+
return (_jsx(Field, { label: b.text(node.label), help: help, required: node.required, id: id, helpId: helpId, children: control }));
|
|
66
|
+
}
|
|
67
|
+
/** A Choice's options, from literal options or host data. */
|
|
68
|
+
export function optionsOf(node, data, scope, text) {
|
|
69
|
+
const o = node.options;
|
|
70
|
+
if (Array.isArray(o))
|
|
71
|
+
return o.map((x) => ({ value: x.value, label: text(x.label), description: x.description !== undefined ? text(x.description) : undefined }));
|
|
72
|
+
const pointer = absolute(o.path, scope);
|
|
73
|
+
const items = asList(get(data, pointer));
|
|
74
|
+
return items.map((_, i) => {
|
|
75
|
+
const p = { pointer: childPointer(pointer, i) };
|
|
76
|
+
const at = (path) => (path ? get(data, absolute(path, p)) : undefined);
|
|
77
|
+
return {
|
|
78
|
+
value: at(o.valuePath),
|
|
79
|
+
label: String(at(o.labelPath) ?? ""),
|
|
80
|
+
description: o.descriptionPath ? String(at(o.descriptionPath) ?? "") || undefined : undefined,
|
|
81
|
+
avatar: o.avatarPath || o.imagePath ? at(o.avatarPath ?? o.imagePath) ?? "" : undefined,
|
|
82
|
+
recent: o.recentPath ? Boolean(at(o.recentPath)) : false,
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function useOptions(node) {
|
|
87
|
+
const b = useBindings();
|
|
88
|
+
const s = useSurface();
|
|
89
|
+
return optionsOf(node, s.data, b.scope, b.text);
|
|
90
|
+
}
|
|
91
|
+
/** An option's visible label (its accessible name) and optional description (its accessible description). */
|
|
92
|
+
function OptionText({ id, label, description }) {
|
|
93
|
+
return (_jsxs("div", { className: "pxd-option-text", children: [_jsx("label", { htmlFor: id, children: label }), description && (_jsx("span", { className: "pxd-option-description", id: `${id}-desc`, children: description }))] }));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Choice picks its control from the options' number and shape (see the Choice rendering rules):
|
|
97
|
+
* people or things with faces → a picker (recent row, then a list); ≤ 6 short options → chips;
|
|
98
|
+
* otherwise radios or checkboxes, searchable past 10.
|
|
99
|
+
*/
|
|
100
|
+
export function Choice({ node }) {
|
|
101
|
+
const b = useBindings();
|
|
102
|
+
const labelId = useId();
|
|
103
|
+
const helpId = useId();
|
|
104
|
+
const options = useOptions(node);
|
|
105
|
+
const [query, setQuery] = useState("");
|
|
106
|
+
const multiple = node.mode === "multiple";
|
|
107
|
+
const value = b.value(node.value);
|
|
108
|
+
const key = (v) => JSON.stringify(v);
|
|
109
|
+
const help = node.help !== undefined ? b.text(node.help) : undefined;
|
|
110
|
+
const withFaces = options.some((o) => o.avatar !== undefined);
|
|
111
|
+
const searchable = options.length > 10 || (withFaces && options.length > 6);
|
|
112
|
+
const matches = (o) => !query || `${o.label} ${o.description ?? ""}`.toLowerCase().includes(query.toLowerCase());
|
|
113
|
+
const chips = !withFaces && options.length <= 6 && options.every((o) => o.label.length <= 24 && !o.description);
|
|
114
|
+
const a11y = useA11y(node);
|
|
115
|
+
const label = b.text(node.label);
|
|
116
|
+
const heading = (_jsxs("div", { className: "pxd-field-label", id: labelId, children: [label, node.required && _jsx(RequiredMark, {})] }));
|
|
117
|
+
const search = searchable && (_jsxs("div", { className: "pxd-search pxd-search-compact", children: [_jsx(Icon, { name: "search" }), _jsx("input", { type: "search", className: "pxd-search-input", placeholder: withFaces ? "Search by name" : "Filter options", "aria-label": `Search ${label}`, value: query, onChange: (e) => setQuery(e.target.value) })] }));
|
|
118
|
+
if (multiple) {
|
|
119
|
+
const selected = Array.isArray(value) ? value : [];
|
|
120
|
+
const isOn = (v) => selected.some((x) => key(x) === key(v));
|
|
121
|
+
const toggle = (v) => b.write(node.value, isOn(v) ? selected.filter((x) => key(x) !== key(v)) : [...selected, v]);
|
|
122
|
+
if (chips) {
|
|
123
|
+
return (_jsxs("div", { className: "pxd-field pxd-choice", role: "group", "aria-labelledby": labelId, "aria-describedby": help ? helpId : undefined, ...a11y, children: [heading, help && _jsx("p", { className: "pxd-field-help", id: helpId, children: help }), _jsx("div", { className: "pxd-chips", children: options.map((o) => (_jsxs(Checkbox.Root, { className: "pxd-chip", checked: isOn(o.value), onCheckedChange: () => toggle(o.value), children: [_jsx(Checkbox.Indicator, { className: "pxd-chip-check", children: _jsx(Icon, { name: "check", size: 18 }) }), o.label] }, key(o.value)))) })] }));
|
|
124
|
+
}
|
|
125
|
+
if (withFaces) {
|
|
126
|
+
// People are recognised by face and name, whether you pick one or several.
|
|
127
|
+
const recent = query ? [] : options.filter((o) => o.recent);
|
|
128
|
+
const rest = options.filter((o) => (query ? matches(o) : !o.recent));
|
|
129
|
+
return (_jsxs("fieldset", { className: "pxd-field pxd-choice pxd-people", "aria-describedby": help ? helpId : undefined, ...a11y, children: [_jsx("legend", { className: "pxd-field-label", id: labelId, children: label }), help && _jsx("p", { className: "pxd-field-help", id: helpId, children: help }), search, _jsxs("div", { className: "pxd-people-group", children: [recent.length > 0 && (_jsx("div", { className: "pxd-people-recent", children: recent.map((o) => (_jsxs(Checkbox.Root, { className: "pxd-person-tile", checked: isOn(o.value), onCheckedChange: () => toggle(o.value), "aria-label": o.label, children: [_jsxs("span", { className: "pxd-person-face", children: [_jsx(Avatar, { value: o.avatar, name: o.label, size: 56 }), _jsx(Checkbox.Indicator, { className: "pxd-person-tick", children: _jsx(Icon, { name: "check", size: 14 }) })] }), _jsx("span", { className: "pxd-person-name", "aria-hidden": "true", children: o.label.split(" ")[0] })] }, key(o.value)))) })), _jsx("div", { className: "pxd-people-list", children: rest.map((o) => {
|
|
130
|
+
const cid = `${labelId}-${key(o.value)}`;
|
|
131
|
+
return (_jsxs(Checkbox.Root, { id: cid, className: "pxd-person-row", checked: isOn(o.value), onCheckedChange: () => toggle(o.value), "aria-labelledby": `${cid}-name`, "aria-describedby": o.description ? `${cid}-desc` : undefined, children: [_jsx(Avatar, { value: o.avatar, name: o.label }), _jsxs("span", { className: "pxd-person-text", children: [_jsx("span", { id: `${cid}-name`, children: o.label }), o.description && (_jsx("span", { className: "pxd-option-description", id: `${cid}-desc`, children: o.description }))] }), _jsx(Checkbox.Indicator, { className: "pxd-person-check", children: _jsx(Icon, { name: "check" }) })] }, key(o.value)));
|
|
132
|
+
}) })] })] }));
|
|
133
|
+
}
|
|
134
|
+
return (_jsxs("fieldset", { className: "pxd-field pxd-choice", "aria-describedby": help ? helpId : undefined, ...a11y, children: [_jsx("legend", { className: "pxd-field-label", id: labelId, children: label }), help && _jsx("p", { className: "pxd-field-help", id: helpId, children: help }), search, _jsx("div", { className: `pxd-choice-list${searchable ? " pxd-choice-scroll" : ""}`, children: options.filter(matches).map((o) => {
|
|
135
|
+
const cid = `${labelId}-${key(o.value)}`;
|
|
136
|
+
return (_jsxs("div", { className: "pxd-choice-option", children: [o.avatar !== undefined && _jsx(Avatar, { value: o.avatar, name: o.label, size: 32 }), _jsx(Checkbox.Root, { id: cid, className: "pxd-checkbox", checked: isOn(o.value), onCheckedChange: () => toggle(o.value), "aria-describedby": o.description ? `${cid}-desc` : undefined, children: _jsx(Checkbox.Indicator, { className: "pxd-checkbox-indicator", children: "\u2713" }) }), _jsx(OptionText, { id: cid, label: o.label, description: o.description })] }, key(o.value)));
|
|
137
|
+
}) })] }));
|
|
138
|
+
}
|
|
139
|
+
const current = value === null || value === undefined ? "" : key(value);
|
|
140
|
+
const onValueChange = (k) => b.write(node.value, options.find((o) => key(o.value) === k)?.value);
|
|
141
|
+
if (chips) {
|
|
142
|
+
return (_jsxs("div", { className: "pxd-field pxd-choice", ...a11y, children: [heading, help && _jsx("p", { className: "pxd-field-help", id: helpId, children: help }), _jsx(RadioGroup.Root, { className: "pxd-chips", "aria-labelledby": labelId, "aria-describedby": help ? helpId : undefined, "aria-required": node.required || undefined, value: current, onValueChange: onValueChange, orientation: "horizontal", children: options.map((o) => (_jsxs(RadioGroup.Item, { value: key(o.value), className: "pxd-chip", children: [_jsx(RadioGroup.Indicator, { className: "pxd-chip-check", children: _jsx(Icon, { name: "check", size: 18 }) }), o.label] }, key(o.value)))) })] }));
|
|
143
|
+
}
|
|
144
|
+
if (withFaces) {
|
|
145
|
+
// People or places: recent ones as a row of faces, everyone else as a list. Each appears once,
|
|
146
|
+
// so no two controls share a name.
|
|
147
|
+
const recent = query ? [] : options.filter((o) => o.recent);
|
|
148
|
+
const rest = options.filter((o) => (query ? matches(o) : !o.recent));
|
|
149
|
+
return (_jsxs("div", { className: "pxd-field pxd-choice pxd-people", ...a11y, children: [heading, help && _jsx("p", { className: "pxd-field-help", id: helpId, children: help }), search, _jsxs(RadioGroup.Root, { "aria-labelledby": labelId, "aria-describedby": help ? helpId : undefined, "aria-required": node.required || undefined, value: current, onValueChange: onValueChange, className: "pxd-people-group", children: [recent.length > 0 && (_jsx("div", { className: "pxd-people-recent", role: "presentation", children: recent.map((o) => (_jsxs(RadioGroup.Item, { value: key(o.value), className: "pxd-person-tile", "aria-label": o.label, children: [_jsx(Avatar, { value: o.avatar, name: o.label, size: 56 }), _jsx("span", { className: "pxd-person-name", "aria-hidden": "true", children: o.label.split(" ")[0] })] }, key(o.value)))) })), _jsx("div", { className: "pxd-people-list", role: "presentation", children: rest.map((o) => {
|
|
150
|
+
const cid = `${labelId}-${key(o.value)}`;
|
|
151
|
+
return (_jsxs(RadioGroup.Item, { id: cid, value: key(o.value), className: "pxd-person-row", "aria-labelledby": `${cid}-name`, "aria-describedby": o.description ? `${cid}-desc` : undefined, children: [_jsx(Avatar, { value: o.avatar, name: o.label }), _jsxs("span", { className: "pxd-person-text", children: [_jsx("span", { id: `${cid}-name`, children: o.label }), o.description && (_jsx("span", { className: "pxd-option-description", id: `${cid}-desc`, children: o.description }))] }), _jsx(RadioGroup.Indicator, { className: "pxd-person-check", children: _jsx(Icon, { name: "check" }) })] }, key(o.value)));
|
|
152
|
+
}) })] })] }));
|
|
153
|
+
}
|
|
154
|
+
return (_jsxs("div", { className: "pxd-field pxd-choice", ...a11y, children: [heading, help && _jsx("p", { className: "pxd-field-help", id: helpId, children: help }), search, _jsx(RadioGroup.Root, { className: `pxd-choice-list${searchable ? " pxd-choice-scroll" : ""}`, "aria-labelledby": labelId, "aria-describedby": help ? helpId : undefined, "aria-required": node.required || undefined, value: current, onValueChange: onValueChange, orientation: "vertical", children: options.filter(matches).map((o) => {
|
|
155
|
+
const cid = `${labelId}-${key(o.value)}`;
|
|
156
|
+
return (_jsxs("div", { className: "pxd-choice-option", children: [_jsx(RadioGroup.Item, { id: cid, value: key(o.value), className: "pxd-radio", "aria-describedby": o.description ? `${cid}-desc` : undefined, children: _jsx(RadioGroup.Indicator, { className: "pxd-radio-indicator" }) }), _jsx(OptionText, { id: cid, label: o.label, description: o.description })] }, key(o.value)));
|
|
157
|
+
}) })] }));
|
|
158
|
+
}
|
|
159
|
+
/** With an action it's a switch that applies immediately; inside a form it's a checkbox. */
|
|
160
|
+
export function Toggle({ node }) {
|
|
161
|
+
const b = useBindings();
|
|
162
|
+
const s = useSurface();
|
|
163
|
+
const id = useId();
|
|
164
|
+
const descId = useId();
|
|
165
|
+
const checked = Boolean(b.value(node.value));
|
|
166
|
+
const description = node.description !== undefined ? b.text(node.description) : undefined;
|
|
167
|
+
const change = (next) => {
|
|
168
|
+
b.write(node.value, next);
|
|
169
|
+
if (node.action) {
|
|
170
|
+
// Dispatch with the new value applied, so context bound to it carries the change.
|
|
171
|
+
const ptr = b.pointer(node.value);
|
|
172
|
+
const context = Object.fromEntries(Object.entries(node.action.event.context ?? {}).map(([k, v]) => [k, v && typeof v === "object" && "path" in v && absolute(v.path, b.scope) === ptr ? next : b.value(v)]));
|
|
173
|
+
s.dispatch({ event: { name: node.action.event.name, context } }, { pointer: "" }, node.id);
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
const a11y = useA11y(node);
|
|
177
|
+
return (_jsxs("div", { className: "pxd-toggle", children: [node.action ? (_jsx(Switch.Root, { id: id, className: "pxd-switch", checked: checked, onCheckedChange: change, "aria-describedby": description ? descId : undefined, ...a11y, children: _jsx(Switch.Thumb, { className: "pxd-switch-thumb" }) })) : (_jsx(Checkbox.Root, { id: id, className: "pxd-checkbox", checked: checked, onCheckedChange: (c) => change(c === true), "aria-describedby": description ? descId : undefined, ...a11y, children: _jsx(Checkbox.Indicator, { className: "pxd-checkbox-indicator", children: "\u2713" }) })), _jsxs("div", { className: "pxd-toggle-text", children: [_jsx("label", { htmlFor: id, className: "pxd-toggle-label", children: b.text(node.label) }), description && (_jsx("p", { className: "pxd-field-help", id: descId, children: description }))] })] }));
|
|
178
|
+
}
|
|
179
|
+
const DATE_TYPE = { date: "date", time: "time", datetime: "datetime-local" };
|
|
180
|
+
/** Native date/time inputs: typing is always possible, and pickers are platform-native. */
|
|
181
|
+
export function DateInput({ node }) {
|
|
182
|
+
const b = useBindings();
|
|
183
|
+
const id = useId();
|
|
184
|
+
const helpId = useId();
|
|
185
|
+
const kind = node.kind ?? "date";
|
|
186
|
+
const help = node.help !== undefined ? b.text(node.help) : undefined;
|
|
187
|
+
const value = b.value(node.value);
|
|
188
|
+
const min = node.min !== undefined ? b.text(node.min) : undefined;
|
|
189
|
+
const max = node.max !== undefined ? b.text(node.max) : undefined;
|
|
190
|
+
const a11y = useA11y(node);
|
|
191
|
+
if (kind === "dateRange") {
|
|
192
|
+
const [start, end] = Array.isArray(value) ? value : [];
|
|
193
|
+
const setAt = (i, v) => {
|
|
194
|
+
const next = [start ?? null, end ?? null];
|
|
195
|
+
next[i] = v || null;
|
|
196
|
+
b.write(node.value, next);
|
|
197
|
+
};
|
|
198
|
+
return (_jsxs("fieldset", { className: "pxd-field", ...a11y, children: [_jsx("legend", { className: "pxd-field-label", children: b.text(node.label) }), help && _jsx("p", { className: "pxd-field-help", children: help }), _jsxs("div", { className: "pxd-date-range", children: [_jsxs("label", { children: ["From", _jsx("input", { className: "pxd-input", type: "date", value: start ?? "", min: min, max: max, required: node.required, onChange: (e) => setAt(0, e.target.value) })] }), _jsxs("label", { children: ["To", _jsx("input", { className: "pxd-input", type: "date", value: end ?? "", min: start ?? min, max: max, required: node.required, onChange: (e) => setAt(1, e.target.value) })] })] })] }));
|
|
199
|
+
}
|
|
200
|
+
return (_jsx(Field, { label: b.text(node.label), help: help, required: node.required, id: id, helpId: helpId, children: _jsx("input", { id: id, className: "pxd-input pxd-input-date", type: DATE_TYPE[kind], value: value ?? "", min: min, max: max, required: node.required, "aria-describedby": help ? helpId : undefined, onChange: (e) => b.write(node.value, e.target.value || null), ...a11y }) }));
|
|
201
|
+
}
|
|
202
|
+
export function RangeInput({ node }) {
|
|
203
|
+
const b = useBindings();
|
|
204
|
+
const s = useSurface();
|
|
205
|
+
const labelId = useId();
|
|
206
|
+
const minId = useId();
|
|
207
|
+
const maxId = useId();
|
|
208
|
+
const fmt = (n) => formatValue(n, resolveFormat(node.format ?? { type: "number" }, s.data, b.scope), s.locale);
|
|
209
|
+
const a11y = useA11y(node);
|
|
210
|
+
if (node.mode === "range") {
|
|
211
|
+
const raw = b.value(node.value);
|
|
212
|
+
const [lo, hi] = Array.isArray(raw) ? raw.map(Number) : [node.min, node.max];
|
|
213
|
+
const set = (a, c) => b.write(node.value, [Math.max(node.min, Math.min(a, c)), Math.min(node.max, Math.max(a, c))]);
|
|
214
|
+
return (_jsxs("div", { className: "pxd-field pxd-range", role: "group", "aria-labelledby": labelId, ...a11y, children: [_jsxs("div", { className: "pxd-range-header", children: [_jsx("span", { className: "pxd-field-label", id: labelId, children: b.text(node.label) }), _jsxs("output", { className: "pxd-range-value", "aria-live": "polite", children: [fmt(lo), " \u2013 ", fmt(hi)] })] }), _jsxs(Slider.Root, { className: "pxd-slider", min: node.min, max: node.max, step: node.step ?? 1, value: [lo, hi], minStepsBetweenThumbs: 1, onValueChange: ([a, c]) => set(a, c), children: [_jsx(Slider.Track, { className: "pxd-slider-track", children: _jsx(Slider.Range, { className: "pxd-slider-range" }) }), _jsx(Slider.Thumb, { className: "pxd-slider-thumb", "aria-label": "Minimum", "aria-valuetext": fmt(lo) }), _jsx(Slider.Thumb, { className: "pxd-slider-thumb", "aria-label": "Maximum", "aria-valuetext": fmt(hi) })] }), _jsxs("div", { className: "pxd-range-fields", children: [_jsxs("label", { htmlFor: minId, children: [_jsx("span", { children: "Minimum" }), _jsx("input", { id: minId, className: "pxd-input", inputMode: "numeric", value: lo, onChange: (e) => set(Number(e.target.value) || node.min, hi) })] }), _jsx("span", { "aria-hidden": "true", children: "\u2013" }), _jsxs("label", { htmlFor: maxId, children: [_jsx("span", { children: "Maximum" }), _jsx("input", { id: maxId, className: "pxd-input", inputMode: "numeric", value: hi, onChange: (e) => set(lo, Number(e.target.value) || node.max) })] })] })] }));
|
|
215
|
+
}
|
|
216
|
+
const value = Number(b.value(node.value) ?? node.min);
|
|
217
|
+
return (_jsxs("div", { className: "pxd-field pxd-range", ...a11y, children: [_jsxs("div", { className: "pxd-range-header", children: [_jsx("span", { className: "pxd-field-label", id: labelId, children: b.text(node.label) }), _jsx("output", { className: "pxd-range-value", "aria-live": "polite", children: fmt(value) })] }), _jsxs(Slider.Root, { className: "pxd-slider", min: node.min, max: node.max, step: node.step ?? 1, value: [value], onValueChange: ([v]) => b.write(node.value, v), children: [_jsx(Slider.Track, { className: "pxd-slider-track", children: _jsx(Slider.Range, { className: "pxd-slider-range" }) }), _jsx(Slider.Thumb, { className: "pxd-slider-thumb", "aria-labelledby": labelId, "aria-valuetext": fmt(value) })] }), _jsxs("div", { className: "pxd-range-bounds", "aria-hidden": "true", children: [_jsx("span", { children: fmt(node.min) }), _jsx("span", { children: fmt(node.max) })] })] }));
|
|
218
|
+
}
|
|
219
|
+
export function Form({ node }) {
|
|
220
|
+
const b = useBindings();
|
|
221
|
+
const s = useSurface();
|
|
222
|
+
// An asterisk has to say what it means, once, before the fields it marks.
|
|
223
|
+
const anyRequired = (node.children ?? []).some((id) => s.byId.get(id)?.required);
|
|
224
|
+
return (_jsxs("form", { className: `pxd-form${node.aside ? " pxd-form-with-aside" : ""}${node.layout === "horizontal" ? " pxd-form-horizontal" : ""}`, onSubmit: (e) => {
|
|
225
|
+
e.preventDefault();
|
|
226
|
+
s.dispatch(node.submit.action, b.scope, node.id);
|
|
227
|
+
}, ...useA11y(node), children: [node.aside && (_jsx("aside", { className: "pxd-form-aside", children: _jsx(Render, { id: node.aside }) })), _jsxs("div", { className: "pxd-stack pxd-form-fields", children: [anyRequired && (_jsxs("p", { className: "pxd-required-legend", children: [_jsx("span", { className: "pxd-required", "aria-hidden": "true", children: "*" }), " ", "Required"] })), _jsx(Children, { ids: node.children })] }), _jsxs("div", { className: "pxd-action-bar", children: [_jsx("button", { type: "submit", className: "pxd-button pxd-button-primary", children: b.text(node.submit.label) }), node.cancel && (_jsx("button", { type: "button", className: "pxd-button pxd-button-secondary", onClick: () => s.dispatch(node.cancel.action, b.scope, node.id), children: b.text(node.cancel.label) }))] })] }));
|
|
228
|
+
}
|
|
229
|
+
export { Render };
|
|
230
|
+
//# sourceMappingURL=inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/components/inputs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAa,MAAM,eAAgB,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAc,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAc,CAAC;AAE5C;;;;GAIG;AACH,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CACzB,eAAM,SAAS,EAAC,cAAc,iBAAa,MAAM,kBAE1C,CACR,CAAC;AAEF,mEAAmE;AACnE,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAA+G;IACzK,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,iBAAO,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,EAAE,aAC3C,KAAK,EACL,QAAQ,IAAI,KAAC,YAAY,KAAG,IACvB,EACP,IAAI,IAAI,CACP,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YACrC,IAAI,GACH,CACL,EACA,QAAQ,IACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE1J,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAkB;IAChD,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAU,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,qGAAqG;IACrG,MAAM,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtI,MAAM,KAAK,GAAG,KAAK,IAAI,MAAM,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,MAAM,GAAG;QACb,EAAE;QACF,SAAS,EAAE,WAAW;QACtB,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,OAAO,CAAC,IAAI,CAAC;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;QAChC,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAoD,EAAE,EAAE;QACvE,IAAI,CAAC,CAAC,OAAO;YAAG,CAAC,CAAC,aAAkC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5F,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,CAAoD,EAAE,EAAE,CAAE,CAAC,CAAC,aAAkC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAEpI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,6FAA6F;QAC7F,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,OAAO,CACL,eAAK,SAAS,EAAC,YAAY,aACzB,gBAAO,SAAS,EAAC,aAAa,EAAC,OAAO,EAAE,EAAE,YACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GACb,EACR,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,EACtB,mBAAW,MAAM,EAAE,SAAS,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,IAC/I,CACP,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,EAAE,CAAC;QACpC,gFAAgF;QAChF,OAAO,CACL,eAAK,SAAS,EAAC,gBAAgB,aAC7B,gBAAO,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,EAAE,YAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GACb,EACR,eAAK,SAAS,EAAC,gBAAgB,aAC5B,IAAI,KAAK,UAAU,IAAI,CACtB,eAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,YACjD,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GACpD,CACR,EACD,mBACM,MAAM,EACV,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAC,qBAAqB,EAC7B,WAAW,EAAC,GAAG,EACf,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,EACpC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,KAAK,GACd,IACE,EACL,IAAI,IAAI,CACP,YAAG,SAAS,EAAC,8BAA8B,EAAC,EAAE,EAAE,MAAM,YACnD,IAAI,GACH,CACL,IACG,CACP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CACrB,sBAAc,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,GAAI,CAC/K,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,aAClE,IAAI,KAAK,UAAU,IAAI,CACtB,eAAM,SAAS,EAAC,kBAAkB,iBAAa,MAAM,YAClD,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GACpD,CACR,EACD,mBACM,MAAM,EACV,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,EAChC,SAAS,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACtF,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EACpD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,SAAS,EAAE,CAAC,CAAC,SAAS,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,KAAK,GACd,IACE,CACP,CAAC;IACJ,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,YAC1F,OAAO,GACF,CACT,CAAC;AACJ,CAAC;AAUD,6DAA6D;AAC7D,MAAM,UAAU,SAAS,CAAC,IAAU,EAAE,IAAa,EAAE,KAAY,EAAE,IAA4B;IAC7F,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvK,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO;YACL,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAW;YAChC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpC,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS;YAC7F,MAAM,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YACvF,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;SACzD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,6GAA6G;AAC7G,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAuD;IACjG,OAAO,CACL,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,OAAO,EAAE,EAAE,YAAG,KAAK,GAAS,EAClC,WAAW,IAAI,CACd,eAAM,SAAS,EAAC,wBAAwB,EAAC,EAAE,EAAE,GAAG,EAAE,OAAO,YACtD,WAAW,GACP,CACR,IACG,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAkB;IAC7C,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAU,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACzH,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAChH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,CACd,eAAK,SAAS,EAAC,iBAAiB,EAAC,EAAE,EAAE,OAAO,aACzC,KAAK,EACL,IAAI,CAAC,QAAQ,IAAI,KAAC,YAAY,KAAG,IAC9B,CACP,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,IAAI,CAC3B,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,EACtB,gBAAO,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,kBAAkB,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,gBAAc,UAAU,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,IACtM,CACP,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3H,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,OAAO,qBAAkB,OAAO,sBAAoB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAM,IAAI,aAC/H,OAAO,EACP,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YAAG,IAAI,GAAK,EAC7D,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,MAAC,QAAQ,CAAC,IAAI,IAAoB,SAAS,EAAC,UAAU,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,aACnH,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,gBAAgB,YAC5C,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACZ,EACpB,CAAC,CAAC,KAAK,KAJU,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAKhB,CACjB,CAAC,GACE,IACF,CACP,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,2EAA2E;YAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,OAAO,CACL,oBAAU,SAAS,EAAC,iCAAiC,sBAAmB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAM,IAAI,aACzG,iBAAQ,SAAS,EAAC,iBAAiB,EAAC,EAAE,EAAE,OAAO,YAC5C,KAAK,GACC,EACR,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YAAG,IAAI,GAAK,EAC5D,MAAM,EACP,eAAK,SAAS,EAAC,kBAAkB,aAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,mBAAmB,YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,MAAC,QAAQ,CAAC,IAAI,IAAoB,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAc,CAAC,CAAC,KAAK,aAC/I,gBAAM,SAAS,EAAC,iBAAiB,aAC/B,KAAC,MAAM,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAI,EACpD,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,iBAAiB,YAC7C,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACZ,IAChB,EACP,eAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,YACjD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GACjB,KATW,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAUhB,CACjB,CAAC,GACE,CACP,EACD,cAAK,SAAS,EAAC,iBAAiB,YAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oCACd,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oCACzC,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAEZ,EAAE,EAAE,GAAG,EACP,SAAS,EAAC,gBAAgB,EAC1B,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EACtB,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,qBACrB,GAAG,GAAG,OAAO,sBACZ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,aAE3D,KAAC,MAAM,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,GAAI,EAC1C,gBAAM,SAAS,EAAC,iBAAiB,aAC/B,eAAM,EAAE,EAAE,GAAG,GAAG,OAAO,YAAG,CAAC,CAAC,KAAK,GAAQ,EACxC,CAAC,CAAC,WAAW,IAAI,CAChB,eAAM,SAAS,EAAC,wBAAwB,EAAC,EAAE,EAAE,GAAG,GAAG,OAAO,YACvD,CAAC,CAAC,WAAW,GACT,CACR,IACI,EACP,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,kBAAkB,YAC9C,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACF,KAnBhB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAoBH,CACjB,CAAC;gCACJ,CAAC,CAAC,GACE,IACF,IACG,CACZ,CAAC;QACJ,CAAC;QACD,OAAO,CACL,oBAAU,SAAS,EAAC,sBAAsB,sBAAmB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAM,IAAI,aAC9F,iBAAQ,SAAS,EAAC,iBAAiB,EAAC,EAAE,EAAE,OAAO,YAC5C,KAAK,GACC,EACR,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YAAG,IAAI,GAAK,EAC5D,MAAM,EACP,cAAK,SAAS,EAAE,kBAAkB,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,YACvE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACjC,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzC,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAC/B,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,KAAC,MAAM,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAI,EAC/E,KAAC,QAAQ,CAAC,IAAI,IACZ,EAAE,EAAE,GAAG,EACP,SAAS,EAAC,cAAc,EACxB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EACtB,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,sBACpB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,YAE3D,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,wBAAwB,uBAAuB,GAC/D,EAChB,KAAC,UAAU,IAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,GAAI,KAX7B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAY9C,CACP,CAAC;oBACJ,CAAC,CAAC,GACE,IACG,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzG,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,KAAK,IAAI,aAC3C,OAAO,EACP,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YAAG,IAAI,GAAK,EAC7D,KAAC,UAAU,CAAC,IAAI,IAAC,SAAS,EAAC,WAAW,qBAAkB,OAAO,sBAAoB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,mBAAiB,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,YAAY,YAC5N,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,MAAC,UAAU,CAAC,IAAI,IAAoB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,UAAU,aAC3E,KAAC,UAAU,CAAC,SAAS,IAAC,SAAS,EAAC,gBAAgB,YAC9C,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACV,EACtB,CAAC,CAAC,KAAK,KAJY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAKhB,CACnB,CAAC,GACc,IACd,CACP,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,+FAA+F;QAC/F,mCAAmC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,KAAK,IAAI,aACtD,OAAO,EACP,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YAAG,IAAI,GAAK,EAC5D,MAAM,EACP,MAAC,UAAU,CAAC,IAAI,uBAAkB,OAAO,sBAAoB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,mBAAiB,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAC,kBAAkB,aAC1M,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,cAAK,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAC,cAAc,YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,MAAC,UAAU,CAAC,IAAI,IAAoB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,iBAAiB,gBAAa,CAAC,CAAC,KAAK,aACtG,KAAC,MAAM,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAI,EACpD,eAAM,SAAS,EAAC,iBAAiB,iBAAa,MAAM,YACjD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GACjB,KAJa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAKhB,CACnB,CAAC,GACE,CACP,EACD,cAAK,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,cAAc,YACjD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACd,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gCACzC,OAAO,CACL,MAAC,UAAU,CAAC,IAAI,IAAoB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,gBAAgB,qBAAkB,GAAG,GAAG,OAAO,sBAAoB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,aACtL,KAAC,MAAM,IAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,GAAI,EAC1C,gBAAM,SAAS,EAAC,iBAAiB,aAC/B,eAAM,EAAE,EAAE,GAAG,GAAG,OAAO,YAAG,CAAC,CAAC,KAAK,GAAQ,EACxC,CAAC,CAAC,WAAW,IAAI,CAChB,eAAM,SAAS,EAAC,wBAAwB,EAAC,EAAE,EAAE,GAAG,GAAG,OAAO,YACvD,CAAC,CAAC,WAAW,GACT,CACR,IACI,EACP,KAAC,UAAU,CAAC,SAAS,IAAC,SAAS,EAAC,kBAAkB,YAChD,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,GACA,KAZH,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAahB,CACnB,CAAC;4BACJ,CAAC,CAAC,GACE,IACU,IACd,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,KAAK,IAAI,aAC3C,OAAO,EACP,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YAAG,IAAI,GAAK,EAC5D,MAAM,EACP,KAAC,UAAU,CAAC,IAAI,IACd,SAAS,EAAE,kBAAkB,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,qBACpD,OAAO,sBACN,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,mBAC5B,IAAI,CAAC,QAAQ,IAAI,SAAS,EACzC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAC,UAAU,YAErB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjC,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,UAAU,CAAC,IAAI,IAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAC,WAAW,sBAAmB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,YAC9H,KAAC,UAAU,CAAC,SAAS,IAAC,SAAS,EAAC,qBAAqB,GAAG,GACxC,EAClB,KAAC,UAAU,IAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,GAAI,KAJ7B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAK9C,CACP,CAAC;gBACJ,CAAC,CAAC,GACc,IACd,CACP,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAkB;IAC7C,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE;QAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,kFAAkF;YAClF,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACxL,CAAC;YACF,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,CACL,eAAK,SAAS,EAAC,YAAY,aACxB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACb,KAAC,MAAM,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,EAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAoB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAM,IAAI,YACjJ,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,GAAG,GACjC,CACf,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,sBAAoB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAM,IAAI,YACxK,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,wBAAwB,uBAAuB,GAC/D,CACjB,EACD,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,kBAAkB,YAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GACb,EACP,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,gBAAgB,EAAC,EAAE,EAAE,MAAM,YACrC,WAAW,GACV,CACL,IACG,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAA2B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAErG,2FAA2F;AAC3F,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAkB;IAChD,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAU,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;YACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,OAAO,CACL,oBAAU,SAAS,EAAC,WAAW,KAAK,IAAI,aACtC,iBAAQ,SAAS,EAAC,iBAAiB,YAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAU,EAChE,IAAI,IAAI,YAAG,SAAS,EAAC,gBAAgB,YAAE,IAAI,GAAK,EACjD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,oCAEE,gBAAO,SAAS,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,IACjJ,EACR,kCAEE,gBAAO,SAAS,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,IACxJ,IACJ,IACG,CACZ,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,YAC3F,gBACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EACrB,KAAK,EAAG,KAAgB,IAAI,EAAE,EAC9B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,sBACL,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KACxD,IAAI,GACR,GACI,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAkB;IACjD,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACvH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAU,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpI,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,EAAC,IAAI,EAAC,OAAO,qBAAkB,OAAO,KAAM,IAAI,aAClF,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAM,SAAS,EAAC,iBAAiB,EAAC,EAAE,EAAE,OAAO,YAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GACd,EACP,kBAAQ,SAAS,EAAC,iBAAiB,eAAW,QAAQ,aACnD,GAAG,CAAC,EAAE,CAAC,cAAK,GAAG,CAAC,EAAE,CAAC,IACb,IACL,EACN,MAAC,MAAM,CAAC,IAAI,IAAC,SAAS,EAAC,YAAY,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aACrK,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,YACxC,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,GAAG,GAChC,EACf,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,gBAAY,SAAS,oBAAiB,GAAG,CAAC,EAAE,CAAC,GAAI,EAC3F,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,gBAAY,SAAS,oBAAiB,GAAG,CAAC,EAAE,CAAC,GAAI,IAC/E,EACd,eAAK,SAAS,EAAC,kBAAkB,aAC/B,iBAAO,OAAO,EAAE,KAAK,aACnB,qCAAoB,EACpB,gBAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAC,WAAW,EAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAI,IACjI,EACR,8BAAkB,MAAM,uBAAS,EACjC,iBAAO,OAAO,EAAE,KAAK,aACnB,qCAAoB,EACpB,gBAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAC,WAAW,EAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAI,IACjI,IACJ,IACF,CACP,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,KAAK,IAAI,aAC3C,eAAK,SAAS,EAAC,kBAAkB,aAC/B,eAAM,SAAS,EAAC,iBAAiB,EAAC,EAAE,EAAE,OAAO,YAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GACd,EACP,iBAAQ,SAAS,EAAC,iBAAiB,eAAW,QAAQ,YACnD,GAAG,CAAC,KAAK,CAAC,GACJ,IACL,EACN,MAAC,MAAM,CAAC,IAAI,IAAC,SAAS,EAAC,YAAY,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,aACpJ,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,YACxC,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,GAAG,GAChC,EACf,KAAC,MAAM,CAAC,KAAK,IAAC,SAAS,EAAC,kBAAkB,qBAAkB,OAAO,oBAAkB,GAAG,CAAC,KAAK,CAAC,GAAI,IACvF,EACd,eAAK,SAAS,EAAC,kBAAkB,iBAAa,MAAM,aAClD,yBAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAQ,EAC5B,yBAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAQ,IACxB,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAkB;IAC3C,MAAM,CAAC,GAAG,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,0EAA0E;IAC1E,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzF,OAAO,CACL,gBACE,SAAS,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7H,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC,KACG,OAAO,CAAC,IAAI,CAAC,aAEhB,IAAI,CAAC,KAAK,IAAI,CACb,gBAAO,SAAS,EAAC,gBAAgB,YAC/B,KAAC,MAAM,IAAC,EAAE,EAAE,IAAI,CAAC,KAAK,GAAI,GACpB,CACT,EACD,eAAK,SAAS,EAAC,2BAA2B,aACvC,WAAW,IAAI,CACd,aAAG,SAAS,EAAC,qBAAqB,aAChC,eAAM,SAAS,EAAC,cAAc,iBAAa,MAAM,kBAE1C,EAAC,GAAG,gBAET,CACL,EACD,KAAC,QAAQ,IAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAI,IAC5B,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,YAC5D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GACnB,EACR,IAAI,CAAC,MAAM,IAAI,CACd,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,iCAAiC,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,YAC9H,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GACnB,CACV,IACG,IACD,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type Node } from "../context.tsx";
|
|
2
|
+
/**
|
|
3
|
+
* Navigation: the product's sections. A side navigation on wide surfaces (grouped, with the
|
|
4
|
+
* current item marked), a menu button that opens them on compact ones.
|
|
5
|
+
*/
|
|
6
|
+
export declare function Navigation({ node }: {
|
|
7
|
+
node: Node;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from "react";
|
|
3
|
+
import { Dialog } from "radix-ui";
|
|
4
|
+
import { useBindings, useSurface } from "../context.js";
|
|
5
|
+
import { useA11y } from "../surface.js";
|
|
6
|
+
import { Icon } from "./avatar.js";
|
|
7
|
+
/** Below this width the navigation moves behind a menu button. */
|
|
8
|
+
const COMPACT_PX = 900;
|
|
9
|
+
/**
|
|
10
|
+
* Navigation: the product's sections. A side navigation on wide surfaces (grouped, with the
|
|
11
|
+
* current item marked), a menu button that opens them on compact ones.
|
|
12
|
+
*/
|
|
13
|
+
export function Navigation({ node }) {
|
|
14
|
+
const b = useBindings();
|
|
15
|
+
const s = useSurface();
|
|
16
|
+
const ref = useRef(null);
|
|
17
|
+
const [compact, setCompact] = useState(false);
|
|
18
|
+
const [open, setOpen] = useState(false);
|
|
19
|
+
const current = b.value(node.current);
|
|
20
|
+
const label = node.label !== undefined ? b.text(node.label) : "Main";
|
|
21
|
+
useLayoutEffect(() => {
|
|
22
|
+
const el = ref.current?.closest(".pxd-surface") ?? ref.current;
|
|
23
|
+
if (!el || typeof ResizeObserver === "undefined")
|
|
24
|
+
return;
|
|
25
|
+
const measure = () => setCompact(el.getBoundingClientRect().width < COMPACT_PX);
|
|
26
|
+
measure();
|
|
27
|
+
const ro = new ResizeObserver(measure);
|
|
28
|
+
ro.observe(el);
|
|
29
|
+
return () => ro.disconnect();
|
|
30
|
+
}, []);
|
|
31
|
+
// Items under their group headings, in first-seen order.
|
|
32
|
+
const groups = [];
|
|
33
|
+
for (const item of node.items) {
|
|
34
|
+
const g = item.group !== undefined ? b.text(item.group) : undefined;
|
|
35
|
+
const found = groups.find((x) => x.label === g);
|
|
36
|
+
if (found)
|
|
37
|
+
found.items.push(item);
|
|
38
|
+
else
|
|
39
|
+
groups.push({ label: g, items: [item] });
|
|
40
|
+
}
|
|
41
|
+
const list = (_jsx("nav", { className: "pxd-nav", "aria-label": label, children: groups.map((g, gi) => (_jsxs("div", { className: "pxd-nav-group", children: [g.label && _jsx("p", { className: "pxd-nav-group-label", children: g.label }), _jsx("ul", { children: g.items.map((item) => {
|
|
42
|
+
const badge = item.badge !== undefined ? b.value(item.badge) : undefined;
|
|
43
|
+
const on = item.key === current;
|
|
44
|
+
return (_jsx("li", { children: _jsxs("button", { type: "button", className: `pxd-nav-item${on ? " pxd-nav-current" : ""}`, "aria-current": on ? "page" : undefined, onClick: () => {
|
|
45
|
+
setOpen(false);
|
|
46
|
+
s.dispatch(item.action, b.scope, node.id);
|
|
47
|
+
}, children: [item.icon && _jsx(Icon, { name: item.icon, size: 18 }), _jsx("span", { className: "pxd-nav-label", children: b.text(item.label) }), badge ? (_jsxs("span", { className: "pxd-nav-badge", children: [badge, _jsx("span", { className: "pxd-sr-only", children: " needing attention" })] })) : null] }) }, item.key));
|
|
48
|
+
}) })] }, gi))) }));
|
|
49
|
+
return (_jsx("div", { ref: ref, className: "pxd-nav-wrap", ...useA11y(node), children: compact ? (_jsxs(Dialog.Root, { open: open, onOpenChange: setOpen, children: [_jsx(Dialog.Trigger, { className: "pxd-icon-button pxd-nav-menu", "aria-label": `${label} menu`, children: _jsx(Icon, { name: "menu" }) }), _jsxs(Dialog.Portal, { container: s.portal, children: [_jsx(Dialog.Overlay, { className: "pxd-overlay" }), _jsxs(Dialog.Content, { className: "pxd-nav-drawer", "aria-describedby": undefined, children: [_jsxs("div", { className: "pxd-sheet-header", children: [_jsx(Dialog.Title, { className: "pxd-sheet-title", children: label }), _jsx(Dialog.Close, { className: "pxd-icon-button", "aria-label": "Close", children: _jsx(Icon, { name: "close" }) })] }), list] })] })] })) : (list) }));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/components/navigation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Node } from "../context.tsx";
|
|
2
|
+
export declare function Children({ ids }: {
|
|
3
|
+
ids?: string[];
|
|
4
|
+
}): import("react").JSX.Element;
|
|
5
|
+
export declare function Heading({ children, className }: {
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
}): import("react").ReactElement<{
|
|
9
|
+
className: string | undefined;
|
|
10
|
+
}, string | import("react").JSXElementConstructor<any>>;
|
|
11
|
+
export declare function Section({ node }: {
|
|
12
|
+
node: Node;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
14
|
+
export declare function Group({ node }: {
|
|
15
|
+
node: Node;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
export declare function Card({ node }: {
|
|
18
|
+
node: Node;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
20
|
+
export declare function Disclosure({ node }: {
|
|
21
|
+
node: Node;
|
|
22
|
+
}): import("react").JSX.Element;
|
|
23
|
+
export declare function Views({ node }: {
|
|
24
|
+
node: Node;
|
|
25
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createElement, useContext, useId, useState } from "react";
|
|
3
|
+
import { Collapsible, Tabs } from "radix-ui";
|
|
4
|
+
import { HeadingContext, useBindings, useSurface } from "../context.js";
|
|
5
|
+
import { Render, useA11y } from "../surface.js";
|
|
6
|
+
export function Children({ ids }) {
|
|
7
|
+
return _jsx(_Fragment, { children: ids?.map((id) => _jsx(Render, { id: id }, id)) });
|
|
8
|
+
}
|
|
9
|
+
export function Heading({ children, className }) {
|
|
10
|
+
const level = Math.min(useContext(HeadingContext), 6);
|
|
11
|
+
return createElement(`h${level}`, { className }, children);
|
|
12
|
+
}
|
|
13
|
+
export function Section({ node }) {
|
|
14
|
+
const b = useBindings();
|
|
15
|
+
const level = useContext(HeadingContext);
|
|
16
|
+
const headingId = useId();
|
|
17
|
+
return (_jsxs("section", { className: "pxd-section", "aria-labelledby": headingId, ...useA11y(node), children: [_jsxs("div", { className: "pxd-section-header", children: [createElement(`h${Math.min(level, 6)}`, { id: headingId, className: "pxd-section-title" }, b.text(node.title)), node.description !== undefined && _jsx("p", { className: "pxd-section-description", children: b.text(node.description) })] }), _jsx(HeadingContext.Provider, { value: level + 1, children: _jsx("div", { className: "pxd-stack", children: _jsx(Children, { ids: node.children }) }) })] }));
|
|
18
|
+
}
|
|
19
|
+
export function Group({ node }) {
|
|
20
|
+
const s = useSurface();
|
|
21
|
+
// A group of numbers reads as one strip of tiles, not a stack of blocks.
|
|
22
|
+
const children = (node.children ?? []).map((id) => s.byId.get(id));
|
|
23
|
+
const metrics = children.length > 1 && children.every((c) => c?.component === "Metric");
|
|
24
|
+
return (_jsx("div", { className: `pxd-group pxd-stack${metrics ? " pxd-metric-row" : ""}`, ...useA11y(node), children: _jsx(Children, { ids: node.children }) }));
|
|
25
|
+
}
|
|
26
|
+
export function Card({ node }) {
|
|
27
|
+
const b = useBindings();
|
|
28
|
+
const s = useSurface();
|
|
29
|
+
const title = b.text(node.title);
|
|
30
|
+
const badgeTone = node.badge?.tone ?? "neutral";
|
|
31
|
+
return (_jsxs("article", { className: `pxd-card${node.action ? " pxd-card-actionable" : ""}`, ...useA11y(node), children: [node.media && (_jsx("div", { className: "pxd-card-media", children: _jsx(Render, { id: node.media }) })), _jsxs("div", { className: "pxd-card-body", children: [_jsxs("div", { className: "pxd-card-header", children: [_jsx(Heading, { className: "pxd-card-title", children: node.action ? (_jsx("button", { type: "button", className: "pxd-card-link", onClick: () => s.dispatch(node.action, b.scope, node.id), children: title })) : (title) }), node.badge && _jsx("span", { className: `pxd-badge pxd-tone-${badgeTone}`, children: b.text(node.badge.text) })] }), node.subtitle !== undefined && _jsx("p", { className: "pxd-card-subtitle", children: b.text(node.subtitle) }), node.progress && _jsx(Progress, { value: b.value(node.progress.value), label: (node.progress.label !== undefined && b.text(node.progress.label)) || undefined, name: title, locale: s.locale }), node.children && (_jsx("div", { className: "pxd-stack pxd-stack-tight pxd-card-children", children: _jsx(Children, { ids: node.children }) }))] })] }));
|
|
32
|
+
}
|
|
33
|
+
/** Progress through an entity: a bar with its label, or the percentage. */
|
|
34
|
+
function Progress({ value, label, name, locale }) {
|
|
35
|
+
const v = Math.max(0, Math.min(1, Number(value) || 0));
|
|
36
|
+
const pct = new Intl.NumberFormat(locale, { style: "percent", maximumFractionDigits: 0 }).format(v);
|
|
37
|
+
return (_jsxs("div", { className: "pxd-progress", children: [_jsx("div", { className: "pxd-progress-track", role: "progressbar", "aria-label": `Progress: ${name}`, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(v * 100), "aria-valuetext": label ?? pct, children: _jsx("div", { className: "pxd-progress-fill", style: { width: `${v * 100}%` } }) }), _jsx("span", { className: "pxd-progress-label", children: label ?? pct })] }));
|
|
38
|
+
}
|
|
39
|
+
export function Disclosure({ node }) {
|
|
40
|
+
const b = useBindings();
|
|
41
|
+
const s = useSurface();
|
|
42
|
+
// Design Direction can say a product shows everything rather than tucking detail away.
|
|
43
|
+
const [open, setOpen] = useState(node.open ?? s.disclosure === "show-everything");
|
|
44
|
+
return (_jsxs(Collapsible.Root, { className: "pxd-disclosure", open: open, onOpenChange: setOpen, ...useA11y(node), children: [_jsxs(Collapsible.Trigger, { className: "pxd-disclosure-trigger", children: [_jsx("span", { className: "pxd-disclosure-icon", "aria-hidden": "true", children: open ? "▾" : "▸" }), b.text(node.summary)] }), _jsx(Collapsible.Content, { className: "pxd-disclosure-content", children: _jsx("div", { className: "pxd-stack", children: _jsx(Children, { ids: node.children }) }) })] }));
|
|
45
|
+
}
|
|
46
|
+
export function Views({ node }) {
|
|
47
|
+
const b = useBindings();
|
|
48
|
+
const s = useSurface();
|
|
49
|
+
const bound = node.selected ? b.value(node.selected) : undefined;
|
|
50
|
+
const [local, setLocal] = useState(bound ?? node.views[0].key);
|
|
51
|
+
const selected = bound ?? local;
|
|
52
|
+
const change = (key) => (node.selected ? b.write(node.selected, key) : setLocal(key));
|
|
53
|
+
return (_jsxs(Tabs.Root, { className: `pxd-views pxd-views-${node.variant ?? "tabs"}`, value: selected, onValueChange: change, ...useA11y(node), children: [_jsx(Tabs.List, { className: "pxd-views-list", children: node.views.map((v) => {
|
|
54
|
+
const count = v.count !== undefined ? b.value(v.count) : undefined;
|
|
55
|
+
return (_jsxs(Tabs.Trigger, { value: v.key, className: "pxd-views-tab", children: [b.text(v.label), count !== undefined && _jsx("span", { className: "pxd-views-count", children: new Intl.NumberFormat(s.locale).format(count) })] }, v.key));
|
|
56
|
+
}) }), node.views.map((v) => (_jsx(Tabs.Content, { value: v.key, className: "pxd-views-panel", children: _jsx(Render, { id: v.content }) }, v.key)))] }));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=structure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/components/structure.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Node } from "../context.tsx";
|
|
2
|
+
/**
|
|
3
|
+
* Table: the dense list B2B software is made of. Saved views, a toolbar with search and filters,
|
|
4
|
+
* sortable columns, selection with bulk actions, a menu per row, and paging. On compact surfaces
|
|
5
|
+
* it becomes a list of rows, because 7 columns don't fit a phone.
|
|
6
|
+
*/
|
|
7
|
+
export declare function Table({ node }: {
|
|
8
|
+
node: Node;
|
|
9
|
+
}): import("react").JSX.Element;
|