@antscorp/ui 0.1.3 → 0.1.5
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/README.md +25 -1
- package/dist/atoms/AddButton.d.ts +3 -5
- package/dist/atoms/Chip.d.ts +3 -3
- package/dist/atoms/Chip.js +1 -1
- package/dist/atoms/RemoveButton.d.ts +3 -5
- package/dist/atoms/TextAction.d.ts +3 -3
- package/dist/docs.json +1 -1
- package/dist/lib/forwardable.d.ts +8 -0
- package/dist/lib/iso.d.ts +2 -2
- package/dist/lib/iso.js +16 -8
- package/dist/lib/tokenEditorExtensions.js +1 -1
- package/dist/molecules/AccentCard.js +2 -2
- package/dist/molecules/CheckGroup.d.ts +2 -1
- package/dist/molecules/CheckRow.d.ts +3 -5
- package/dist/molecules/ChoiceTiles.js +1 -1
- package/dist/molecules/CommitTextField.d.ts +2 -19
- package/dist/molecules/CommitTextField.js +21 -18
- package/dist/molecules/ConfirmDialog.d.ts +3 -7
- package/dist/molecules/DateTimeInput.d.ts +7 -3
- package/dist/molecules/DateTimeInput.js +82 -73
- package/dist/molecules/DurationInput.d.ts +2 -1
- package/dist/molecules/PercentRow.d.ts +2 -1
- package/dist/molecules/RemovableRow.js +32 -32
- package/dist/molecules/RevealRadioGroup.d.ts +3 -9
- package/dist/molecules/RevealSwitch.d.ts +3 -7
- package/dist/molecules/Select.d.ts +8 -23
- package/dist/molecules/Select.js +26 -20
- package/dist/molecules/StatusButton.d.ts +3 -7
- package/dist/molecules/ToggleGrid.d.ts +2 -1
- package/dist/molecules/TokenTextField.d.ts +2 -1
- package/dist/molecules/TreeOptions.d.ts +3 -2
- package/dist/molecules/TreeOptions.js +67 -44
- package/dist/organisms/HourOfDayRow.js +2 -2
- package/dist/organisms/HourOfWeekGrid.js +2 -2
- package/dist/organisms/TokenPickerDialog.d.ts +2 -1
- package/dist/organisms/TransferPicker.d.ts +2 -1
- package/dist/organisms/TreeSearchPanel.js +50 -47
- package/dist/theme/AntsomiTheme.d.ts +3 -2
- package/dist/theme/AntsomiTheme.js +8 -7
- package/dist/ui.css +1 -1
- package/package.json +23 -17
- package/src/atoms/AddButton.tsx +3 -6
- package/src/atoms/Chip.tsx +6 -5
- package/src/atoms/RemoveButton.tsx +4 -6
- package/src/atoms/TextAction.tsx +4 -4
- package/src/lib/forwardable.ts +8 -0
- package/src/lib/iso.ts +15 -3
- package/src/lib/tokenEditorExtensions.ts +1 -1
- package/src/molecules/AccentCard.tsx +4 -2
- package/src/molecules/CheckGroup.tsx +3 -3
- package/src/molecules/CheckRow.tsx +3 -6
- package/src/molecules/ChoiceTiles.tsx +3 -1
- package/src/molecules/CommitTextField.tsx +18 -20
- package/src/molecules/ConfirmDialog.tsx +6 -8
- package/src/molecules/DateTimeInput.tsx +87 -68
- package/src/molecules/DurationInput.tsx +4 -1
- package/src/molecules/PercentRow.tsx +3 -2
- package/src/molecules/RemovableRow.tsx +1 -1
- package/src/molecules/RevealRadioGroup.tsx +5 -10
- package/src/molecules/RevealSwitch.tsx +4 -8
- package/src/molecules/Select.tsx +25 -22
- package/src/molecules/StatusButton.tsx +4 -8
- package/src/molecules/ToggleGrid.tsx +3 -3
- package/src/molecules/TokenTextField.tsx +3 -3
- package/src/molecules/TreeOptions.tsx +86 -62
- package/src/organisms/HourOfDayRow.tsx +4 -2
- package/src/organisms/HourOfWeekGrid.tsx +4 -2
- package/src/organisms/TokenPickerDialog.tsx +2 -1
- package/src/organisms/TransferPicker.tsx +3 -3
- package/src/organisms/TreeSearchPanel.tsx +1 -1
- package/src/theme/AntsomiTheme.tsx +9 -3
- package/dist/atoms/AddButton.doc.d.ts +0 -21
- package/dist/atoms/AddGlyph.doc.d.ts +0 -16
- package/dist/atoms/Chip.doc.d.ts +0 -29
- package/dist/atoms/ChipSkeletons.doc.d.ts +0 -21
- package/dist/atoms/FieldHeading.doc.d.ts +0 -15
- package/dist/atoms/HoverSwap.doc.d.ts +0 -25
- package/dist/atoms/InfoTip.doc.d.ts +0 -25
- package/dist/atoms/JointLabel.doc.d.ts +0 -15
- package/dist/atoms/LabeledDivider.doc.d.ts +0 -21
- package/dist/atoms/LogoImage.doc.d.ts +0 -21
- package/dist/atoms/PanelSearchInput.doc.d.ts +0 -25
- package/dist/atoms/PathMark.doc.d.ts +0 -16
- package/dist/atoms/RemoveButton.doc.d.ts +0 -16
- package/dist/atoms/RowSkeletons.doc.d.ts +0 -25
- package/dist/atoms/TextAction.doc.d.ts +0 -25
- package/dist/atoms/TruncatedOption.doc.d.ts +0 -24
- package/dist/atoms/TruncatedText.doc.d.ts +0 -15
- package/dist/molecules/AccentCard.doc.d.ts +0 -25
- package/dist/molecules/CheckGroup.doc.d.ts +0 -25
- package/dist/molecules/CheckRow.doc.d.ts +0 -25
- package/dist/molecules/ChoiceDialog.doc.d.ts +0 -21
- package/dist/molecules/ChoiceTiles.doc.d.ts +0 -21
- package/dist/molecules/CommitTextField.doc.d.ts +0 -29
- package/dist/molecules/ConfirmDialog.doc.d.ts +0 -21
- package/dist/molecules/DateTimeInput.doc.d.ts +0 -25
- package/dist/molecules/DurationInput.doc.d.ts +0 -25
- package/dist/molecules/FieldGroup.doc.d.ts +0 -25
- package/dist/molecules/FieldRow.doc.d.ts +0 -24
- package/dist/molecules/FieldSkeleton.doc.d.ts +0 -25
- package/dist/molecules/FrequencyLimitRow.doc.d.ts +0 -25
- package/dist/molecules/InlineEditableText.doc.d.ts +0 -25
- package/dist/molecules/LoadMoreRow.doc.d.ts +0 -21
- package/dist/molecules/LoadState.doc.d.ts +0 -21
- package/dist/molecules/MetaTable.doc.d.ts +0 -25
- package/dist/molecules/PercentRow.doc.d.ts +0 -25
- package/dist/molecules/PhoneFrame.doc.d.ts +0 -21
- package/dist/molecules/ProblemsButton.doc.d.ts +0 -25
- package/dist/molecules/RemovableRow.doc.d.ts +0 -25
- package/dist/molecules/RevealRadioGroup.doc.d.ts +0 -25
- package/dist/molecules/RevealSwitch.doc.d.ts +0 -25
- package/dist/molecules/RuleRow.doc.d.ts +0 -25
- package/dist/molecules/Select.doc.d.ts +0 -30
- package/dist/molecules/SideLabelRow.doc.d.ts +0 -20
- package/dist/molecules/SplitButton.doc.d.ts +0 -25
- package/dist/molecules/StatusButton.doc.d.ts +0 -25
- package/dist/molecules/TagSelect.doc.d.ts +0 -25
- package/dist/molecules/ToggleGrid.doc.d.ts +0 -25
- package/dist/molecules/TokenTextField.doc.d.ts +0 -29
- package/dist/molecules/TransferLayout.doc.d.ts +0 -25
- package/dist/molecules/TreeOptions.doc.d.ts +0 -25
- package/dist/organisms/ChipListAddPopover.doc.d.ts +0 -25
- package/dist/organisms/HourOfDayRow.doc.d.ts +0 -25
- package/dist/organisms/HourOfWeekGrid.doc.d.ts +0 -25
- package/dist/organisms/RepeatableList.doc.d.ts +0 -21
- package/dist/organisms/ResizableDrawer.doc.d.ts +0 -25
- package/dist/organisms/RuleGroups.doc.d.ts +0 -21
- package/dist/organisms/RuleList.doc.d.ts +0 -25
- package/dist/organisms/SearchableGroupedList.doc.d.ts +0 -25
- package/dist/organisms/TokenPickerDialog.doc.d.ts +0 -21
- package/dist/organisms/TransferPicker.doc.d.ts +0 -29
- package/dist/organisms/TreeSearchPanel.doc.d.ts +0 -25
- package/dist/organisms/TreeSelect.doc.d.ts +0 -29
- package/dist/theme/AntsomiTheme.doc.d.ts +0 -15
- package/dist/theme/AntsomiTheme.doc.js +0 -22
- package/src/atoms/AddButton.doc.ts +0 -36
- package/src/atoms/AddGlyph.doc.ts +0 -26
- package/src/atoms/Chip.doc.ts +0 -45
- package/src/atoms/ChipSkeletons.doc.ts +0 -31
- package/src/atoms/FieldHeading.doc.ts +0 -22
- package/src/atoms/HoverSwap.doc.ts +0 -39
- package/src/atoms/InfoTip.doc.ts +0 -37
- package/src/atoms/JointLabel.doc.ts +0 -23
- package/src/atoms/LabeledDivider.doc.ts +0 -35
- package/src/atoms/LogoImage.doc.ts +0 -42
- package/src/atoms/PanelSearchInput.doc.ts +0 -41
- package/src/atoms/PathMark.doc.ts +0 -25
- package/src/atoms/RemoveButton.doc.ts +0 -26
- package/src/atoms/RowSkeletons.doc.ts +0 -43
- package/src/atoms/TextAction.doc.ts +0 -40
- package/src/atoms/TruncatedOption.doc.ts +0 -39
- package/src/atoms/TruncatedText.doc.ts +0 -22
- package/src/molecules/AccentCard.doc.ts +0 -43
- package/src/molecules/CheckGroup.doc.ts +0 -40
- package/src/molecules/CheckRow.doc.ts +0 -43
- package/src/molecules/ChoiceDialog.doc.ts +0 -48
- package/src/molecules/ChoiceTiles.doc.ts +0 -42
- package/src/molecules/CommitTextField.doc.ts +0 -41
- package/src/molecules/ConfirmDialog.doc.ts +0 -43
- package/src/molecules/DateTimeInput.doc.ts +0 -48
- package/src/molecules/DurationInput.doc.ts +0 -36
- package/src/molecules/FieldGroup.doc.ts +0 -41
- package/src/molecules/FieldRow.doc.ts +0 -36
- package/src/molecules/FieldSkeleton.doc.ts +0 -38
- package/src/molecules/FrequencyLimitRow.doc.ts +0 -48
- package/src/molecules/InlineEditableText.doc.ts +0 -41
- package/src/molecules/LoadMoreRow.doc.ts +0 -36
- package/src/molecules/LoadState.doc.ts +0 -42
- package/src/molecules/MetaTable.doc.ts +0 -46
- package/src/molecules/PercentRow.doc.ts +0 -48
- package/src/molecules/PhoneFrame.doc.ts +0 -46
- package/src/molecules/ProblemsButton.doc.ts +0 -41
- package/src/molecules/RemovableRow.doc.ts +0 -48
- package/src/molecules/RevealRadioGroup.doc.ts +0 -41
- package/src/molecules/RevealSwitch.doc.ts +0 -38
- package/src/molecules/RuleRow.doc.ts +0 -43
- package/src/molecules/Select.doc.ts +0 -62
- package/src/molecules/SideLabelRow.doc.ts +0 -35
- package/src/molecules/SplitButton.doc.ts +0 -41
- package/src/molecules/StatusButton.doc.ts +0 -39
- package/src/molecules/TagSelect.doc.ts +0 -41
- package/src/molecules/ToggleGrid.doc.ts +0 -43
- package/src/molecules/TokenTextField.doc.ts +0 -41
- package/src/molecules/TransferLayout.doc.ts +0 -42
- package/src/molecules/TreeOptions.doc.ts +0 -38
- package/src/organisms/ChipListAddPopover.doc.ts +0 -54
- package/src/organisms/HourOfDayRow.doc.ts +0 -43
- package/src/organisms/HourOfWeekGrid.doc.ts +0 -48
- package/src/organisms/RepeatableList.doc.ts +0 -49
- package/src/organisms/ResizableDrawer.doc.ts +0 -48
- package/src/organisms/RuleGroups.doc.ts +0 -49
- package/src/organisms/RuleList.doc.ts +0 -43
- package/src/organisms/SearchableGroupedList.doc.ts +0 -49
- package/src/organisms/TokenPickerDialog.doc.ts +0 -54
- package/src/organisms/TransferPicker.doc.ts +0 -69
- package/src/organisms/TreeSearchPanel.doc.ts +0 -43
- package/src/organisms/TreeSelect.doc.ts +0 -56
- package/src/theme/AntsomiTheme.doc.ts +0 -23
|
@@ -14,75 +14,78 @@ import { Divider as f } from "@astryxdesign/core/Divider";
|
|
|
14
14
|
import { ScrollableArea as p } from "@astryxdesign/core/ScrollableArea";
|
|
15
15
|
// src/organisms/TreeSearchPanel.tsx
|
|
16
16
|
function m(m) {
|
|
17
|
-
let
|
|
18
|
-
...
|
|
19
|
-
hasLoadMoreError:
|
|
20
|
-
itemCount:
|
|
21
|
-
}),
|
|
22
|
-
|
|
23
|
-
let
|
|
24
|
-
|
|
17
|
+
let v = s(45), { value: y, more: b, labels: x } = m, S = i(!0), C = b.isLoadingMore === !0, w = m.isSearchedByHost ? [...m.items] : r(m.items, y), { rootRef: T, sentinelRef: E } = a({
|
|
18
|
+
...b,
|
|
19
|
+
hasLoadMoreError: x.loadMoreError !== void 0,
|
|
20
|
+
itemCount: w.reduce(g, 0)
|
|
21
|
+
}), D = w.filter(h).length, O;
|
|
22
|
+
v[0] === m.labels.clear ? O = v[1] : (O = { clear: m.labels.clear }, v[0] = m.labels.clear, v[1] = O);
|
|
23
|
+
let k;
|
|
24
|
+
v[2] !== m.labels.search || v[3] !== m.onChange || v[4] !== y || v[5] !== S || v[6] !== O ? (k = /* @__PURE__ */ c(e, {
|
|
25
25
|
label: m.labels.search,
|
|
26
|
-
labels:
|
|
27
|
-
value:
|
|
26
|
+
labels: O,
|
|
27
|
+
value: y,
|
|
28
28
|
onChange: m.onChange,
|
|
29
|
-
ref:
|
|
30
|
-
}),
|
|
31
|
-
let k;
|
|
32
|
-
_[8] === Symbol.for("react.memo_cache_sentinel") ? (k = /* @__PURE__ */ c(f, {}), _[8] = k) : k = _[8];
|
|
29
|
+
ref: S
|
|
30
|
+
}), v[2] = m.labels.search, v[3] = m.onChange, v[4] = y, v[5] = S, v[6] = O, v[7] = k) : k = v[7];
|
|
33
31
|
let A;
|
|
34
|
-
|
|
32
|
+
v[8] === Symbol.for("react.memo_cache_sentinel") ? (A = /* @__PURE__ */ c(f, {}), v[8] = A) : A = v[8];
|
|
33
|
+
let j;
|
|
34
|
+
v[9] !== D || v[10] !== C || v[11] !== x.loadMoreError || v[12] !== x.loading || v[13] !== x.noMatch || v[14] !== b.isLoading || v[15] !== m.isExpandedByDefault || v[16] !== m.label || v[17] !== m.onPick || v[18] !== m.selectedValue || v[19] !== m.size || v[20] !== y || v[21] !== w ? (j = (b.isLoading === !0 || C) && w.length === 0 ? /* @__PURE__ */ c(t, { labels: { loading: x.loading } }) : w.length === 0 ? x.loadMoreError === void 0 && /* @__PURE__ */ c(u, {
|
|
35
35
|
type: "supporting",
|
|
36
36
|
as: "p",
|
|
37
|
-
xstyle:
|
|
38
|
-
children:
|
|
37
|
+
xstyle: _.noMatch,
|
|
38
|
+
children: x.noMatch
|
|
39
39
|
}) : /* @__PURE__ */ c(n, {
|
|
40
40
|
label: m.label,
|
|
41
|
-
items:
|
|
41
|
+
items: w,
|
|
42
42
|
value: m.selectedValue,
|
|
43
43
|
size: m.size,
|
|
44
|
-
isExpandedByDefault: m.isExpandedByDefault ||
|
|
44
|
+
isExpandedByDefault: m.isExpandedByDefault || y.trim() !== "" || D === 1,
|
|
45
45
|
onChange: m.onPick
|
|
46
|
-
},
|
|
47
|
-
let
|
|
48
|
-
|
|
49
|
-
error:
|
|
50
|
-
onRetry:
|
|
51
|
-
},
|
|
52
|
-
let
|
|
53
|
-
|
|
54
|
-
let
|
|
55
|
-
|
|
46
|
+
}, y), v[9] = D, v[10] = C, v[11] = x.loadMoreError, v[12] = x.loading, v[13] = x.noMatch, v[14] = b.isLoading, v[15] = m.isExpandedByDefault, v[16] = m.label, v[17] = m.onPick, v[18] = m.selectedValue, v[19] = m.size, v[20] = y, v[21] = w, v[22] = j) : j = v[22];
|
|
47
|
+
let M = C && w.length > 0, N;
|
|
48
|
+
v[23] !== x.loadMoreError || v[24] !== x.retry || v[25] !== b.onRetryLoadMore ? (N = x.retry !== void 0 && {
|
|
49
|
+
error: x.loadMoreError,
|
|
50
|
+
onRetry: b.onRetryLoadMore
|
|
51
|
+
}, v[23] = x.loadMoreError, v[24] = x.retry, v[25] = b.onRetryLoadMore, v[26] = N) : N = v[26];
|
|
52
|
+
let P = x.retry ?? "", F;
|
|
53
|
+
v[27] === P ? F = v[28] : (F = { retry: P }, v[27] = P, v[28] = F);
|
|
54
|
+
let I;
|
|
55
|
+
v[29] !== m.size || v[30] !== E || v[31] !== M || v[32] !== N || v[33] !== F ? (I = /* @__PURE__ */ c(d, {
|
|
56
56
|
paddingInline: 2,
|
|
57
57
|
children: /* @__PURE__ */ c(o, {
|
|
58
|
-
isLoadingMore:
|
|
59
|
-
...
|
|
60
|
-
labels:
|
|
58
|
+
isLoadingMore: M,
|
|
59
|
+
...N,
|
|
60
|
+
labels: F,
|
|
61
61
|
size: m.size,
|
|
62
|
-
sentinelRef:
|
|
62
|
+
sentinelRef: E
|
|
63
63
|
})
|
|
64
|
-
}),
|
|
65
|
-
let I;
|
|
66
|
-
_[35] !== A || _[36] !== F ? (I = /* @__PURE__ */ l(d, { children: [A, F] }), _[35] = A, _[36] = F, _[37] = I) : I = _[37];
|
|
64
|
+
}), v[29] = m.size, v[30] = E, v[31] = M, v[32] = N, v[33] = F, v[34] = I) : I = v[34];
|
|
67
65
|
let L;
|
|
68
|
-
|
|
66
|
+
v[35] !== j || v[36] !== I ? (L = /* @__PURE__ */ l(d, { children: [j, I] }), v[35] = j, v[36] = I, v[37] = L) : L = v[37];
|
|
67
|
+
let R;
|
|
68
|
+
v[38] !== m.label || v[39] !== T || v[40] !== L ? (R = /* @__PURE__ */ c(p, {
|
|
69
69
|
label: m.label,
|
|
70
70
|
paddingBlock: 1,
|
|
71
|
-
xstyle:
|
|
72
|
-
ref:
|
|
73
|
-
children:
|
|
74
|
-
}),
|
|
75
|
-
let
|
|
76
|
-
return
|
|
77
|
-
O,
|
|
71
|
+
xstyle: _.list,
|
|
72
|
+
ref: T,
|
|
73
|
+
children: L
|
|
74
|
+
}), v[38] = m.label, v[39] = T, v[40] = L, v[41] = R) : R = v[41];
|
|
75
|
+
let z;
|
|
76
|
+
return v[42] !== k || v[43] !== R ? (z = /* @__PURE__ */ l(d, { children: [
|
|
78
77
|
k,
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
A,
|
|
79
|
+
R
|
|
80
|
+
] }), v[42] = k, v[43] = R, v[44] = z) : z = v[44], z;
|
|
81
81
|
}
|
|
82
82
|
function h(e) {
|
|
83
83
|
return e.children !== void 0;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
function g(e, t) {
|
|
86
|
+
return e + 1 + (t.children?.length ?? 0);
|
|
87
|
+
}
|
|
88
|
+
var _ = {
|
|
86
89
|
list: {
|
|
87
90
|
kskxy: "aui1hkcv85",
|
|
88
91
|
$$css: !0
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Theme } from "@astryxdesign/core/theme";
|
|
2
2
|
import type { ComponentProps, ReactElement } from "react";
|
|
3
|
+
import type { Forwardable } from "../lib/forwardable.js";
|
|
3
4
|
/**
|
|
4
5
|
* Astryx Theme props with the Antsomi base theme as the default.
|
|
5
6
|
* Inherited `children` renders the themed subtree; `mode` selects light, dark or system mode.
|
|
6
7
|
*/
|
|
7
|
-
export type AntsomiThemeProps = Omit<ComponentProps<typeof Theme>, "theme"
|
|
8
|
+
export type AntsomiThemeProps = Forwardable<Omit<ComponentProps<typeof Theme>, "theme">> & {
|
|
8
9
|
/** Optional override created with `defineTheme({ extends: antsomiTheme, … })`. */
|
|
9
10
|
readonly theme?: ComponentProps<typeof Theme>["theme"];
|
|
10
11
|
};
|
|
@@ -13,4 +14,4 @@ export type AntsomiThemeProps = Omit<ComponentProps<typeof Theme>, "theme"> & {
|
|
|
13
14
|
* Import `@antscorp/ui/theme.css` separately. Extend the base with Astryx's
|
|
14
15
|
* `defineTheme({ name: "custom", extends: antsomiTheme, tokens: { … } })` and pass it as `theme`.
|
|
15
16
|
*/
|
|
16
|
-
export declare function AntsomiTheme({ theme,
|
|
17
|
+
export declare function AntsomiTheme({ theme, mode, children }: AntsomiThemeProps): ReactElement;
|
|
@@ -4,12 +4,13 @@ import { Theme as n } from "@astryxdesign/core/theme";
|
|
|
4
4
|
import { jsx as r } from "react/jsx-runtime";
|
|
5
5
|
// src/theme/AntsomiTheme.tsx
|
|
6
6
|
function i(i) {
|
|
7
|
-
let a = e(6), o, s;
|
|
8
|
-
a[0] ===
|
|
9
|
-
let
|
|
10
|
-
return a[3] !==
|
|
11
|
-
theme:
|
|
12
|
-
...
|
|
13
|
-
|
|
7
|
+
let a = e(6), { theme: o, mode: s, children: c } = i, l = o ?? t, u;
|
|
8
|
+
a[0] === s ? u = a[1] : (u = s !== void 0 && { mode: s }, a[0] = s, a[1] = u);
|
|
9
|
+
let d;
|
|
10
|
+
return a[2] !== c || a[3] !== l || a[4] !== u ? (d = /* @__PURE__ */ r(n, {
|
|
11
|
+
theme: l,
|
|
12
|
+
...u,
|
|
13
|
+
children: c
|
|
14
|
+
}), a[2] = c, a[3] = l, a[4] = u, a[5] = d) : d = a[5], d;
|
|
14
15
|
}
|
|
15
16
|
export { i as AntsomiTheme };
|
package/dist/ui.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@property --x-flexBasis{syntax:"*";inherits:false}@property --x-flexShrink{syntax:"*";inherits:false}@property --x-gridColumn{syntax:"*";inherits:false}@property --x-gridTemplateColumns{syntax:"*";inherits:false}@property --x-gridTemplateRows{syntax:"*";inherits:false}@property --x-height{syntax:"*";inherits:false}@property --x-justifySelf{syntax:"*";inherits:false}@property --x-maxHeight{syntax:"*";inherits:false}@property --x-maxWidth{syntax:"*";inherits:false}@property --x-width{syntax:"*";inherits:false}.aui1im1wfi{--color-text-primary:var(--color-text-secondary)}.auifhnz8n{--mh-field-control-max:var(--ants-mh-field-control-max,400px)}.auinpej1e{--radius-element:var(--radius-full)}.auij451x2{--text-body-leading:var(--text-heading-3-leading)}.auimdtmk4{--text-body-size:var(--text-heading-3-size)}.auioco1iw{--text-body-size:var(--text-supporting-size)}.auiln7xf2:not(#\#){font:inherit}.aui15r89dc:not(#\#){grid-area:1/1}.aui10a8y8t:not(#\#){inset:0}.aui1ghz6dp:not(#\#){margin:0}.aui1717udv:not(#\#){padding:0}.aui7z7khe:not(#\#){padding:10px}.auilsj2fj:not(#\#){padding:var(--spacing-2)}.aui1b2ylru:not(#\#){padding:var(--spacing-3)}.auixbl87b:not(#\#):not(#\#){border-color:var(--ants-mh-gray-200)}.aui1wt0qvg:not(#\#):not(#\#){border-color:var(--ants-mh-gray-300)}.aui1touxvs:not(#\#):not(#\#){border-color:var(--color-background-surface)}.aui1ofxpqo:not(#\#):not(#\#){border-color:var(--color-error)}.auiqcx1ss:not(#\#):not(#\#){border-color:var(--color-text-primary)}.aui2u8bby:not(#\#):not(#\#){border-radius:0}.aui9h44rk:not(#\#):not(#\#){border-radius:13px}.aui1nj7uno:not(#\#):not(#\#){border-radius:1px}.auiaqawyj:not(#\#):not(#\#){border-radius:38px}.aui18zih8k:not(#\#):not(#\#){border-radius:3px}.aui1pl3jqz:not(#\#):not(#\#){border-radius:48px}.aui16rqkct:not(#\#):not(#\#){border-radius:50%}.auih6dtrn:not(#\#):not(#\#){border-radius:var(--radius-element)}.auijspbzw:not(#\#):not(#\#){border-radius:var(--radius-full)}.auix3sua9:not(#\#):not(#\#){border-radius:var(--radius-inner)}.auing3xce:not(#\#):not(#\#){border-style:none}.aui1y0btm7:not(#\#):not(#\#){border-style:solid}.auic342km:not(#\#):not(#\#){border-width:0}.auimkeg23:not(#\#):not(#\#){border-width:1px}.auidh2fpr:not(#\#):not(#\#){border-width:2px}.aui1litavf:not(#\#):not(#\#){border-width:var(--border-width)}.aui98rzlu:not(#\#):not(#\#){flex:1}.aui1s4dlld:not(#\#):not(#\#){gap:var(--spacing-1-5)}.auizye2dw:not(#\#):not(#\#){gap:var(--spacing-1)}.aui1txdalj:not(#\#):not(#\#){gap:var(--spacing-2)}.auijcht0a:not(#\#):not(#\#){gap:var(--spacing-3)}.aui18g69wz:not(#\#):not(#\#){gap:var(--spacing-4)}.auigkxs2y:not(#\#):not(#\#){grid-column:1}.aui1npkx4u:not(#\#):not(#\#){grid-column:2}.aui14d52f8:not(#\#):not(#\#){grid-column:var(--x-gridColumn)}.auia1s216:not(#\#):not(#\#){grid-row:1/span 2}.aui1ms6mhf:not(#\#):not(#\#){grid-row:1}.aui7sv70a:not(#\#):not(#\#){grid-row:2}.auiz51j44:not(#\#):not(#\#){grid-row:3}.aui17y0mx6:not(#\#):not(#\#){inset-inline:0}.auinn75i4:not(#\#):not(#\#){margin-inline:-10px}.auivueqy4:not(#\#):not(#\#){margin-inline:auto}.aui1a2a7pz:not(#\#):not(#\#){outline:none}.auib3r6kr:not(#\#):not(#\#){overflow:hidden}.auit970qd:not(#\#):not(#\#){padding-block:0}.auip59q4u:not(#\#):not(#\#){padding-block:10px}.aui1t0vds8:not(#\#):not(#\#){padding-block:6px}.aui1vofgu7:not(#\#):not(#\#){padding-block:var(--spacing-1-5)}.auiu0wf1k:not(#\#):not(#\#){padding-block:var(--spacing-1)}.auice4md1:not(#\#):not(#\#){padding-block:var(--spacing-2)}.aui1awh872:not(#\#):not(#\#){padding-inline:10px}.aui3y1lgt:not(#\#):not(#\#){padding-inline:3px}.aui2hg6jq:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) + var(--border-width))}.auif314gf:not(#\#):not(#\#){padding-inline:var(--spacing-2)}.auirrkdod:not(#\#):not(#\#){padding-inline:var(--spacing-3)}.aui1hl2dhg:not(#\#):not(#\#){text-decoration:none}.aui1pha0wt:not(#\#):not(#\#):not(#\#){align-items:baseline}.aui6s0dn4:not(#\#):not(#\#):not(#\#){align-items:center}.auiuk3077:not(#\#):not(#\#):not(#\#){align-items:flex-end}.auipte31b:not(#\#):not(#\#):not(#\#){aspect-ratio:290/600}.auijbqb8w:not(#\#):not(#\#):not(#\#){background-color:#0000}.aui1vm1evv:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-black)}.aui1gbsizx:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-blue-200)}.aui1mu13x8:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-blue-50)}.auic4yk2q:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-blue-500)}.auial5by5:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-blue-750)}.auiuv6gl1:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-cyan-500)}.auijru1km:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-gray-75)}.aui16cij4:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-green-600)}.aui1ewilqj:not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}.auiwmxj5m:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.aui10xzikg:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-surface)}.aui17x4s8c:not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.aui19aspcf:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-primary)}.auiun97om:not(#\#):not(#\#):not(#\#){border-inline-end-color:var(--ants-mh-gray-200)}.aui18b5jzi:not(#\#):not(#\#):not(#\#){border-inline-end-style:solid}.auiw8tdv1:not(#\#):not(#\#):not(#\#){border-inline-end-width:var(--border-width)}.aui1s784a7:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-accent)}.aui56jcm7:not(#\#):not(#\#):not(#\#){border-inline-start-width:4px}.aui1urk8h6:not(#\#):not(#\#):not(#\#){box-shadow:0 -8px 24px #0000004d}.aui70qkqb:not(#\#):not(#\#):not(#\#){box-shadow:0 0 0 3px var(--ants-mh-gray-700)}.auikukrt6:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-background-surface)}.aui14hfi27:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.aui9f619:not(#\#):not(#\#):not(#\#){box-sizing:border-box}.aui1afcbsf:not(#\#):not(#\#):not(#\#){box-sizing:content-box}.aui1heor9g:not(#\#):not(#\#):not(#\#){color:inherit}.auiqwr325:not(#\#):not(#\#):not(#\#){color:var(--color-accent)}.auijt36v0:not(#\#):not(#\#):not(#\#){color:var(--color-error)}.aui17wrial:not(#\#):not(#\#):not(#\#){color:var(--color-on-accent)}.aui1tgivj0:not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.auiv1l7n4:not(#\#):not(#\#):not(#\#){color:var(--color-text-secondary)}.aui9cihph:not(#\#):not(#\#):not(#\#){contain:size}.auit0e3qv:not(#\#):not(#\#):not(#\#){cursor:default}.aui1ypdohk:not(#\#):not(#\#):not(#\#){cursor:pointer}.auijp7ctv:not(#\#):not(#\#):not(#\#){display:contents}.aui78zum5:not(#\#):not(#\#):not(#\#){display:flex}.auirvj5dj:not(#\#):not(#\#):not(#\#){display:grid}.aui3nfvp2:not(#\#):not(#\#):not(#\#){display:inline-flex}.auiwz0xwf:not(#\#):not(#\#):not(#\#){display:inline-grid}.aui1r8uery:not(#\#):not(#\#):not(#\#){flex-basis:0}.aui5z4jtk:not(#\#):not(#\#):not(#\#){flex-basis:240px}.aui1mz2wy7:not(#\#):not(#\#):not(#\#){flex-basis:var(--x-flexBasis)}.auidt5ytf:not(#\#):not(#\#):not(#\#){flex-direction:column}.aui1iyjqo2:not(#\#):not(#\#):not(#\#){flex-grow:1}.aui2lah0s:not(#\#):not(#\#):not(#\#){flex-shrink:0}.auis83m0k:not(#\#):not(#\#):not(#\#){flex-shrink:1}.auin95wi4:not(#\#):not(#\#):not(#\#){flex-shrink:var(--x-flexShrink)}.aui9ynric:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-body)}.aui1j6dyjg:not(#\#):not(#\#):not(#\#){font-size:11px}.auijm74w1:not(#\#):not(#\#):not(#\#){font-size:var(--text-body-size)}.auiii13ha:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-3-size)}.auicr08ib:not(#\#):not(#\#):not(#\#){font-size:var(--text-label-size)}.aui117nqv4:not(#\#):not(#\#):not(#\#){font-weight:700}.aui1sodnla:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-normal)}.aui1l7s2pe:not(#\#):not(#\#):not(#\#){grid-template-columns:76px repeat(24,24px)}.auicjjqqt:not(#\#):not(#\#):not(#\#){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.auivd4qgy:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(24,24px)}.aui185a7wo:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(3,minmax(0,1fr))}.auiqketvx:not(#\#):not(#\#):not(#\#){grid-template-columns:var(--x-gridTemplateColumns)}.aui1xxtoay:not(#\#):not(#\#):not(#\#){grid-template-rows:var(--x-gridTemplateRows)}.auixx7yvo:not(#\#):not(#\#):not(#\#){inset-inline-end:4px}.auiy3asu9:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-1)}.auil56j7k:not(#\#):not(#\#):not(#\#){justify-content:center}.aui13a6bvl:not(#\#):not(#\#):not(#\#){justify-content:flex-end}.aui1qughib:not(#\#):not(#\#):not(#\#){justify-content:space-between}.aui4xo5sw:not(#\#):not(#\#):not(#\#){justify-items:end}.auigszztp:not(#\#):not(#\#):not(#\#){justify-self:var(--x-justifySelf)}.aui14ju556:not(#\#):not(#\#):not(#\#){line-height:0}.aui1d3mw78:not(#\#):not(#\#):not(#\#){line-height:16px}.aui13o0xn4:not(#\#):not(#\#):not(#\#){line-height:calc(var(--text-body-size) * var(--text-body-leading))}.auiwjzt0u:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-3-leading)}.aui1kq96og:not(#\#):not(#\#):not(#\#){line-height:var(--text-label-leading)}.aui1mpyi22:not(#\#):not(#\#):not(#\#){margin-inline-end:1px}.auinur1sd:not(#\#):not(#\#):not(#\#){margin-inline-end:var(--spacing-1)}.auidzw4kq:not(#\#):not(#\#):not(#\#){margin-inline-start:6px}.auivc5jky:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}.aui11g1kdw:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-1)}.aui19kjcj4:not(#\#):not(#\#):not(#\#){object-fit:contain}.auiti2d7y:not(#\#):not(#\#):not(#\#){opacity:.4}.auibyyjgo:not(#\#):not(#\#):not(#\#){opacity:.5}.aui197sbye:not(#\#):not(#\#):not(#\#){opacity:.6}.auig01cxk:not(#\#):not(#\#):not(#\#){opacity:0}.aui1hc1fzr:not(#\#):not(#\#):not(#\#){opacity:1}.aui2ssjo2:not(#\#):not(#\#):not(#\#){outline-offset:-2px}.auiyri2b:not(#\#):not(#\#):not(#\#){padding-inline-end:0}.auiaso8d8:not(#\#):not(#\#):not(#\#){padding-inline-start:5px}.aui1dsw6jg:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(20px + var(--spacing-2))}.auig86vuh:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(24px + var(--spacing-2))}.aui1eib973:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--spacing-2) + var(--spacing-4))}.aui67bb7w:not(#\#):not(#\#):not(#\#){pointer-events:auto}.aui47corl:not(#\#):not(#\#):not(#\#){pointer-events:none}.aui10l6tqk:not(#\#):not(#\#):not(#\#){position:absolute}.aui1n2onr6:not(#\#):not(#\#):not(#\#){position:relative}.aui2b8uid:not(#\#):not(#\#):not(#\#){text-align:center}.aui1yc453h:not(#\#):not(#\#):not(#\#){text-align:start}.auitvhhri:not(#\#):not(#\#):not(#\#){text-transform:uppercase}.aui5ve5x3:not(#\#):not(#\#):not(#\#){touch-action:none}.aui19jd1h0:not(#\#):not(#\#):not(#\#){transform:rotate(180deg)}.aui1cb1t30:not(#\#):not(#\#):not(#\#){transform:translateY(-50%)}.auiuedmi6:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast)}.aui11xpdln:not(#\#):not(#\#):not(#\#){transition-property:transform}.aui87ps6o:not(#\#):not(#\#):not(#\#){-webkit-user-select:none;user-select:none}.auixymvpz:not(#\#):not(#\#):not(#\#){vertical-align:middle}.auiuxw1ft:not(#\#):not(#\#):not(#\#){white-space:nowrap}.auiop90c9.auiop90c9:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){opacity:0}.aui15nwlk0.aui15nwlk0:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){opacity:1}.aui1nays3n.aui1nays3n:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.aui1hdpjie.aui1hdpjie:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){pointer-events:none}.aui16odi2a.aui16odi2a:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){opacity:0}.auienb0lb.auienb0lb:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){opacity:1}.aui10f8e09.aui10f8e09:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.aui2dkywa.aui2dkywa:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){pointer-events:none}.aui14zrjfo:hover:not([aria-disabled=true]):not([aria-selected=true]):not(#\#):not(#\#):not(#\#),.auisfqig6:focus:not([aria-selected=true]):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.aui16khyan:is(:disabled,[aria-disabled=true]):not(#\#):not(#\#):not(#\#),.auitgyt42:disabled:not(#\#):not(#\#):not(#\#){cursor:default}@supports (-webkit-touch-callout:none){@media (pointer:coarse){.aui1w61h2b.aui1w61h2b.aui1w61h2b:not(#\#):not(#\#):not(#\#){font-size:max(1rem,var(--text-label-size))}}}@media (hover:hover){.auia3af2z.auia3af2z:hover:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-blue-50)}.aui1h9ned5.aui1h9ned5:hover:not(#\#):not(#\#):not(#\#){color:var(--color-text-accent)}}.aui16stqrj:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:#0000}.aui9v4h15:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--ants-mh-gray-200)}.auiw8gpjh:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border)}.aui1q0q8m5:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-style:solid}.aui92x3c3:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:var(--border-width)}.aui132ci9n:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--ants-mh-gray-200)}.aui5yfxoo:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--ants-mh-gray-300)}.aui1pc3f07:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-border)}.auilya59e:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:dashed}.aui13fuv20:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:solid}.aui11xkdxz:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:var(--border-width)}.aui1ey2m1c:not(#\#):not(#\#):not(#\#):not(#\#){bottom:0}.auinru01z:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--spacing-2)}.auiaylbqo:not(#\#):not(#\#):not(#\#):not(#\#){height:1.125rem}.aui5yr21d:not(#\#):not(#\#):not(#\#):not(#\#){height:100%}.aui170jfvy:not(#\#):not(#\#):not(#\#):not(#\#){height:10px}.aui6w4g8m:not(#\#):not(#\#):not(#\#):not(#\#){height:11px}.auilup9mm:not(#\#):not(#\#):not(#\#):not(#\#){height:16px}.aui1qx5ct2:not(#\#):not(#\#):not(#\#):not(#\#){height:20px}.auixk0z11:not(#\#):not(#\#):not(#\#):not(#\#){height:24px}.auid7y6wv:not(#\#):not(#\#):not(#\#):not(#\#){height:26px}.auicx40h0:not(#\#):not(#\#):not(#\#):not(#\#){height:420px}.auin3w4p2:not(#\#):not(#\#):not(#\#):not(#\#){height:44px}.auiqu0tyb:not(#\#):not(#\#):not(#\#):not(#\#){height:4px}.aui10wjd1d:not(#\#):not(#\#):not(#\#):not(#\#){height:50px}.aui1ycjhwn:not(#\#):not(#\#):not(#\#):not(#\#){height:5px}.auiols6we:not(#\#):not(#\#):not(#\#):not(#\#){height:6px}.auidk7pt:not(#\#):not(#\#):not(#\#):not(#\#){height:8px}.aui1ueg155:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-md)}.aui6k0iem:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-sm)}.auigjsvxy:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--text-label-leading)}.aui16ye13r:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--x-height)}.aui1p37lm5:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-2)}.aui1hkcv85:not(#\#):not(#\#):not(#\#):not(#\#){max-height:200px}.aui1983irj:not(#\#):not(#\#):not(#\#):not(#\#){max-height:220px}.auiq3t0pi:not(#\#):not(#\#):not(#\#):not(#\#){max-height:280px}.aui1jols5v:not(#\#):not(#\#):not(#\#):not(#\#){max-height:var(--x-maxHeight)}.aui2aouup:not(#\#):not(#\#):not(#\#):not(#\#){max-width:120px}.aui1weugan:not(#\#):not(#\#):not(#\#):not(#\#){max-width:290px}.aui1dt7z5j:not(#\#):not(#\#):not(#\#):not(#\#){max-width:380px}.aui146dmfp:not(#\#):not(#\#):not(#\#):not(#\#){max-width:70px}.auif68679:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--x-maxWidth)}.aui2lwn1j:not(#\#):not(#\#):not(#\#):not(#\#){min-height:0}.auiqt01rp:not(#\#):not(#\#):not(#\#):not(#\#){min-height:41px}.auih0zcz:not(#\#):not(#\#):not(#\#):not(#\#){min-height:calc(var(--size-element-sm) + var(--spacing-5))}.aui1uogy3y:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-md)}.aui1gdqauq:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-sm)}.aui1wcf34l:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--text-label-leading)}.auieuugli:not(#\#):not(#\#):not(#\#):not(#\#){min-width:0}.aui15kz4h8:not(#\#):not(#\#):not(#\#):not(#\#){min-width:16px}.auigomdpo:not(#\#):not(#\#):not(#\#):not(#\#){min-width:1rem}.auirzjruh:not(#\#):not(#\#):not(#\#):not(#\#){min-width:anchor-size(width)}.aui1enrzb7:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--border-width) + var(--spacing-1))}.auiwa60dl:not(#\#):not(#\#):not(#\#):not(#\#){top:50%}.auisk17dz:not(#\#):not(#\#):not(#\#):not(#\#){width:1.125rem}.auih8yej3:not(#\#):not(#\#):not(#\#):not(#\#){width:100%}.aui1kky2od:not(#\#):not(#\#):not(#\#):not(#\#){width:16px}.aui17z2i9w:not(#\#):not(#\#):not(#\#):not(#\#){width:22px}.auivy4d1p:not(#\#):not(#\#):not(#\#):not(#\#){width:24px}.aui1dz1jew:not(#\#):not(#\#):not(#\#):not(#\#){width:280px}.aui1g8rjiy:not(#\#):not(#\#):not(#\#):not(#\#){width:3px}.aui3hqpx7:not(#\#):not(#\#):not(#\#):not(#\#){width:50%}.aui1pju0fl:not(#\#):not(#\#):not(#\#):not(#\#){width:50px}.auiefyazp:not(#\#):not(#\#):not(#\#):not(#\#){width:90px}.auiezivpi:not(#\#):not(#\#):not(#\#):not(#\#){width:max-content}.aui5lhr3w:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-width)}.aui1fbop3j:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-accent)}.aui2ucsrd:hover:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border-emphasized)}.auieyghm5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::placeholder{color:var(--color-text-secondary)}
|
|
1
|
+
@property --x-flexBasis{syntax:"*";inherits:false}@property --x-flexShrink{syntax:"*";inherits:false}@property --x-gridColumn{syntax:"*";inherits:false}@property --x-gridTemplateColumns{syntax:"*";inherits:false}@property --x-gridTemplateRows{syntax:"*";inherits:false}@property --x-height{syntax:"*";inherits:false}@property --x-justifySelf{syntax:"*";inherits:false}@property --x-maxHeight{syntax:"*";inherits:false}@property --x-maxWidth{syntax:"*";inherits:false}@property --x-width{syntax:"*";inherits:false}.aui1im1wfi{--color-text-primary:var(--color-text-secondary)}.auifhnz8n{--mh-field-control-max:var(--ants-mh-field-control-max,400px)}.auinpej1e{--radius-element:var(--radius-full)}.auij451x2{--text-body-leading:var(--text-heading-3-leading)}.auimdtmk4{--text-body-size:var(--text-heading-3-size)}.auioco1iw{--text-body-size:var(--text-supporting-size)}.auiln7xf2:not(#\#){font:inherit}.aui15r89dc:not(#\#){grid-area:1/1}.aui10a8y8t:not(#\#){inset:0}.aui1ghz6dp:not(#\#){margin:0}.aui1717udv:not(#\#){padding:0}.aui7z7khe:not(#\#){padding:10px}.auilsj2fj:not(#\#){padding:var(--spacing-2)}.aui1b2ylru:not(#\#){padding:var(--spacing-3)}.auixbl87b:not(#\#):not(#\#){border-color:var(--ants-mh-gray-200)}.aui1wt0qvg:not(#\#):not(#\#){border-color:var(--ants-mh-gray-300)}.aui1touxvs:not(#\#):not(#\#){border-color:var(--color-background-surface)}.aui1ofxpqo:not(#\#):not(#\#){border-color:var(--color-error)}.auiqcx1ss:not(#\#):not(#\#){border-color:var(--color-text-primary)}.aui2u8bby:not(#\#):not(#\#){border-radius:0}.aui9h44rk:not(#\#):not(#\#){border-radius:13px}.aui1nj7uno:not(#\#):not(#\#){border-radius:1px}.auiaqawyj:not(#\#):not(#\#){border-radius:38px}.aui18zih8k:not(#\#):not(#\#){border-radius:3px}.aui1pl3jqz:not(#\#):not(#\#){border-radius:48px}.aui16rqkct:not(#\#):not(#\#){border-radius:50%}.auih6dtrn:not(#\#):not(#\#){border-radius:var(--radius-element)}.auijspbzw:not(#\#):not(#\#){border-radius:var(--radius-full)}.auix3sua9:not(#\#):not(#\#){border-radius:var(--radius-inner)}.auing3xce:not(#\#):not(#\#){border-style:none}.aui1y0btm7:not(#\#):not(#\#){border-style:solid}.auic342km:not(#\#):not(#\#){border-width:0}.auimkeg23:not(#\#):not(#\#){border-width:1px}.auidh2fpr:not(#\#):not(#\#){border-width:2px}.aui1litavf:not(#\#):not(#\#){border-width:var(--border-width)}.aui98rzlu:not(#\#):not(#\#){flex:1}.aui1s4dlld:not(#\#):not(#\#){gap:var(--spacing-1-5)}.auizye2dw:not(#\#):not(#\#){gap:var(--spacing-1)}.aui1txdalj:not(#\#):not(#\#){gap:var(--spacing-2)}.auijcht0a:not(#\#):not(#\#){gap:var(--spacing-3)}.aui18g69wz:not(#\#):not(#\#){gap:var(--spacing-4)}.auigkxs2y:not(#\#):not(#\#){grid-column:1}.aui1npkx4u:not(#\#):not(#\#){grid-column:2}.aui14d52f8:not(#\#):not(#\#){grid-column:var(--x-gridColumn)}.auia1s216:not(#\#):not(#\#){grid-row:1/span 2}.aui1ms6mhf:not(#\#):not(#\#){grid-row:1}.aui7sv70a:not(#\#):not(#\#){grid-row:2}.auiz51j44:not(#\#):not(#\#){grid-row:3}.aui17y0mx6:not(#\#):not(#\#){inset-inline:0}.auinn75i4:not(#\#):not(#\#){margin-inline:-10px}.auivueqy4:not(#\#):not(#\#){margin-inline:auto}.aui1a2a7pz:not(#\#):not(#\#){outline:none}.auib3r6kr:not(#\#):not(#\#){overflow:hidden}.auit970qd:not(#\#):not(#\#){padding-block:0}.auip59q4u:not(#\#):not(#\#){padding-block:10px}.aui1t0vds8:not(#\#):not(#\#){padding-block:6px}.aui1vofgu7:not(#\#):not(#\#){padding-block:var(--spacing-1-5)}.auiu0wf1k:not(#\#):not(#\#){padding-block:var(--spacing-1)}.auice4md1:not(#\#):not(#\#){padding-block:var(--spacing-2)}.aui1awh872:not(#\#):not(#\#){padding-inline:10px}.aui3y1lgt:not(#\#):not(#\#){padding-inline:3px}.aui2hg6jq:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) + var(--border-width))}.auif314gf:not(#\#):not(#\#){padding-inline:var(--spacing-2)}.auirrkdod:not(#\#):not(#\#){padding-inline:var(--spacing-3)}.aui1hl2dhg:not(#\#):not(#\#){text-decoration:none}.aui1pha0wt:not(#\#):not(#\#):not(#\#){align-items:baseline}.aui6s0dn4:not(#\#):not(#\#):not(#\#){align-items:center}.auiuk3077:not(#\#):not(#\#):not(#\#){align-items:flex-end}.auipte31b:not(#\#):not(#\#):not(#\#){aspect-ratio:290/600}.auijbqb8w:not(#\#):not(#\#):not(#\#){background-color:#0000}.aui1jxocwm:not(#\#):not(#\#):not(#\#){background-color:var(--ants-accent-banner)}.auisqkk90:not(#\#):not(#\#):not(#\#){background-color:var(--ants-accent-fill)}.auir796ur:not(#\#):not(#\#):not(#\#){background-color:var(--ants-accent-hover)}.aui1vm1evv:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-black)}.auic4yk2q:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-blue-500)}.auiuv6gl1:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-cyan-500)}.auijru1km:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-gray-75)}.aui16cij4:not(#\#):not(#\#):not(#\#){background-color:var(--ants-mh-green-600)}.aui1ewilqj:not(#\#):not(#\#):not(#\#){background-color:var(--color-accent)}.auiwmxj5m:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-muted)}.aui10xzikg:not(#\#):not(#\#):not(#\#){background-color:var(--color-background-surface)}.aui17x4s8c:not(#\#):not(#\#):not(#\#){background-color:var(--color-neutral)}.aui19aspcf:not(#\#):not(#\#):not(#\#){background-color:var(--color-text-primary)}.auiun97om:not(#\#):not(#\#):not(#\#){border-inline-end-color:var(--ants-mh-gray-200)}.aui18b5jzi:not(#\#):not(#\#):not(#\#){border-inline-end-style:solid}.auiw8tdv1:not(#\#):not(#\#):not(#\#){border-inline-end-width:var(--border-width)}.aui1s784a7:not(#\#):not(#\#):not(#\#){border-inline-start-color:var(--color-accent)}.aui56jcm7:not(#\#):not(#\#):not(#\#){border-inline-start-width:4px}.aui70qkqb:not(#\#):not(#\#):not(#\#){box-shadow:0 0 0 3px var(--ants-mh-gray-700)}.auikukrt6:not(#\#):not(#\#):not(#\#){box-shadow:inset 0 0 0 1px var(--color-background-surface)}.aui14hfi27:not(#\#):not(#\#):not(#\#){box-shadow:var(--shadow-med)}.aui9f619:not(#\#):not(#\#):not(#\#){box-sizing:border-box}.aui1afcbsf:not(#\#):not(#\#):not(#\#){box-sizing:content-box}.aui1heor9g:not(#\#):not(#\#):not(#\#){color:inherit}.auiqwr325:not(#\#):not(#\#):not(#\#){color:var(--color-accent)}.auijt36v0:not(#\#):not(#\#):not(#\#){color:var(--color-error)}.aui17wrial:not(#\#):not(#\#):not(#\#){color:var(--color-on-accent)}.aui1tgivj0:not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}.auiv1l7n4:not(#\#):not(#\#):not(#\#){color:var(--color-text-secondary)}.aui9cihph:not(#\#):not(#\#):not(#\#){contain:size}.auit0e3qv:not(#\#):not(#\#):not(#\#){cursor:default}.aui1ypdohk:not(#\#):not(#\#):not(#\#){cursor:pointer}.auijp7ctv:not(#\#):not(#\#):not(#\#){display:contents}.aui78zum5:not(#\#):not(#\#):not(#\#){display:flex}.auirvj5dj:not(#\#):not(#\#):not(#\#){display:grid}.aui3nfvp2:not(#\#):not(#\#):not(#\#){display:inline-flex}.auiwz0xwf:not(#\#):not(#\#):not(#\#){display:inline-grid}.aui1r8uery:not(#\#):not(#\#):not(#\#){flex-basis:0}.aui5z4jtk:not(#\#):not(#\#):not(#\#){flex-basis:240px}.aui1mz2wy7:not(#\#):not(#\#):not(#\#){flex-basis:var(--x-flexBasis)}.auidt5ytf:not(#\#):not(#\#):not(#\#){flex-direction:column}.aui1iyjqo2:not(#\#):not(#\#):not(#\#){flex-grow:1}.aui2lah0s:not(#\#):not(#\#):not(#\#){flex-shrink:0}.auis83m0k:not(#\#):not(#\#):not(#\#){flex-shrink:1}.auin95wi4:not(#\#):not(#\#):not(#\#){flex-shrink:var(--x-flexShrink)}.aui9ynric:not(#\#):not(#\#):not(#\#){font-family:var(--font-family-body)}.aui1j6dyjg:not(#\#):not(#\#):not(#\#){font-size:11px}.auijm74w1:not(#\#):not(#\#):not(#\#){font-size:var(--text-body-size)}.auiii13ha:not(#\#):not(#\#):not(#\#){font-size:var(--text-heading-3-size)}.auicr08ib:not(#\#):not(#\#):not(#\#){font-size:var(--text-label-size)}.aui117nqv4:not(#\#):not(#\#):not(#\#){font-weight:700}.aui1sodnla:not(#\#):not(#\#):not(#\#){font-weight:var(--font-weight-normal)}.aui1l7s2pe:not(#\#):not(#\#):not(#\#){grid-template-columns:76px repeat(24,24px)}.auicjjqqt:not(#\#):not(#\#):not(#\#){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.auivd4qgy:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(24,24px)}.aui185a7wo:not(#\#):not(#\#):not(#\#){grid-template-columns:repeat(3,minmax(0,1fr))}.auiqketvx:not(#\#):not(#\#):not(#\#){grid-template-columns:var(--x-gridTemplateColumns)}.aui1xxtoay:not(#\#):not(#\#):not(#\#){grid-template-rows:var(--x-gridTemplateRows)}.auixx7yvo:not(#\#):not(#\#):not(#\#){inset-inline-end:4px}.auiy3asu9:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-1)}.auil56j7k:not(#\#):not(#\#):not(#\#){justify-content:center}.aui1qughib:not(#\#):not(#\#):not(#\#){justify-content:space-between}.aui4xo5sw:not(#\#):not(#\#):not(#\#){justify-items:end}.auigszztp:not(#\#):not(#\#):not(#\#){justify-self:var(--x-justifySelf)}.aui14ju556:not(#\#):not(#\#):not(#\#){line-height:0}.aui1d3mw78:not(#\#):not(#\#):not(#\#){line-height:16px}.aui13o0xn4:not(#\#):not(#\#):not(#\#){line-height:calc(var(--text-body-size) * var(--text-body-leading))}.auiwjzt0u:not(#\#):not(#\#):not(#\#){line-height:var(--text-heading-3-leading)}.aui1kq96og:not(#\#):not(#\#):not(#\#){line-height:var(--text-label-leading)}.aui1mpyi22:not(#\#):not(#\#):not(#\#){margin-inline-end:1px}.auinur1sd:not(#\#):not(#\#):not(#\#){margin-inline-end:var(--spacing-1)}.auidzw4kq:not(#\#):not(#\#):not(#\#){margin-inline-start:6px}.auivc5jky:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}.aui11g1kdw:not(#\#):not(#\#):not(#\#){margin-inline-start:var(--spacing-1)}.aui19kjcj4:not(#\#):not(#\#):not(#\#){object-fit:contain}.auiti2d7y:not(#\#):not(#\#):not(#\#){opacity:.4}.auibyyjgo:not(#\#):not(#\#):not(#\#){opacity:.5}.aui197sbye:not(#\#):not(#\#):not(#\#){opacity:.6}.auig01cxk:not(#\#):not(#\#):not(#\#){opacity:0}.aui1hc1fzr:not(#\#):not(#\#):not(#\#){opacity:1}.aui2ssjo2:not(#\#):not(#\#):not(#\#){outline-offset:-2px}.auiyri2b:not(#\#):not(#\#):not(#\#){padding-inline-end:0}.auiaso8d8:not(#\#):not(#\#):not(#\#){padding-inline-start:5px}.aui1dsw6jg:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(20px + var(--spacing-2))}.auig86vuh:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(24px + var(--spacing-2))}.aui1eib973:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--spacing-2) + var(--spacing-4))}.aui67bb7w:not(#\#):not(#\#):not(#\#){pointer-events:auto}.aui47corl:not(#\#):not(#\#):not(#\#){pointer-events:none}.aui10l6tqk:not(#\#):not(#\#):not(#\#){position:absolute}.aui1n2onr6:not(#\#):not(#\#):not(#\#){position:relative}.aui2b8uid:not(#\#):not(#\#):not(#\#){text-align:center}.aui1yc453h:not(#\#):not(#\#):not(#\#){text-align:start}.auitvhhri:not(#\#):not(#\#):not(#\#){text-transform:uppercase}.aui5ve5x3:not(#\#):not(#\#):not(#\#){touch-action:none}.aui19jd1h0:not(#\#):not(#\#):not(#\#){transform:rotate(180deg)}.aui1cb1t30:not(#\#):not(#\#):not(#\#){transform:translateY(-50%)}.auiuedmi6:not(#\#):not(#\#):not(#\#){transition-duration:var(--duration-fast)}.aui11xpdln:not(#\#):not(#\#):not(#\#){transition-property:transform}.aui87ps6o:not(#\#):not(#\#):not(#\#){-webkit-user-select:none;user-select:none}.auixymvpz:not(#\#):not(#\#):not(#\#){vertical-align:middle}.auiuxw1ft:not(#\#):not(#\#):not(#\#){white-space:nowrap}.auiop90c9.auiop90c9:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){opacity:0}.aui15nwlk0.aui15nwlk0:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){opacity:1}.aui1nays3n.aui1nays3n:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.aui1hdpjie.aui1hdpjie:where(.aui-default-marker:focus-within *):not(#\#):not(#\#):not(#\#){pointer-events:none}.aui16odi2a.aui16odi2a:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){opacity:0}.auienb0lb.auienb0lb:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){opacity:1}.aui10f8e09.aui10f8e09:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){pointer-events:auto}.aui2dkywa.aui2dkywa:where(.aui-default-marker:hover *):not(#\#):not(#\#):not(#\#){pointer-events:none}.aui14zrjfo:hover:not([aria-disabled=true]):not([aria-selected=true]):not(#\#):not(#\#):not(#\#),.auisfqig6:focus:not([aria-selected=true]):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-hover)}.aui16khyan:is(:disabled,[aria-disabled=true]):not(#\#):not(#\#):not(#\#),.auitgyt42:disabled:not(#\#):not(#\#):not(#\#){cursor:default}@supports (-webkit-touch-callout:none){@media (pointer:coarse){.aui1w61h2b.aui1w61h2b.aui1w61h2b:not(#\#):not(#\#):not(#\#){font-size:max(1rem,var(--text-label-size))}}}@media (hover:hover){.aui1komwgl.aui1komwgl:hover:not(#\#):not(#\#):not(#\#){background-color:var(--ants-accent-hover)}.aui1h9ned5.aui1h9ned5:hover:not(#\#):not(#\#):not(#\#){color:var(--color-text-accent)}}.aui16stqrj:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:#0000}.aui9v4h15:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--ants-mh-gray-200)}.auiw8gpjh:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border)}.aui1q0q8m5:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-style:solid}.aui92x3c3:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-width:var(--border-width)}.aui132ci9n:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--ants-mh-gray-200)}.aui5yfxoo:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--ants-mh-gray-300)}.aui1pc3f07:not(#\#):not(#\#):not(#\#):not(#\#){border-top-color:var(--color-border)}.auilya59e:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:dashed}.aui13fuv20:not(#\#):not(#\#):not(#\#):not(#\#){border-top-style:solid}.aui11xkdxz:not(#\#):not(#\#):not(#\#):not(#\#){border-top-width:var(--border-width)}.aui1ey2m1c:not(#\#):not(#\#):not(#\#):not(#\#){bottom:0}.auinru01z:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--spacing-2)}.auiaylbqo:not(#\#):not(#\#):not(#\#):not(#\#){height:1.125rem}.aui5yr21d:not(#\#):not(#\#):not(#\#):not(#\#){height:100%}.aui170jfvy:not(#\#):not(#\#):not(#\#):not(#\#){height:10px}.aui6w4g8m:not(#\#):not(#\#):not(#\#):not(#\#){height:11px}.auilup9mm:not(#\#):not(#\#):not(#\#):not(#\#){height:16px}.aui1qx5ct2:not(#\#):not(#\#):not(#\#):not(#\#){height:20px}.auixk0z11:not(#\#):not(#\#):not(#\#):not(#\#){height:24px}.auid7y6wv:not(#\#):not(#\#):not(#\#):not(#\#){height:26px}.auin3w4p2:not(#\#):not(#\#):not(#\#):not(#\#){height:44px}.auiqu0tyb:not(#\#):not(#\#):not(#\#):not(#\#){height:4px}.aui10wjd1d:not(#\#):not(#\#):not(#\#):not(#\#){height:50px}.aui1ycjhwn:not(#\#):not(#\#):not(#\#):not(#\#){height:5px}.auiols6we:not(#\#):not(#\#):not(#\#):not(#\#){height:6px}.auidk7pt:not(#\#):not(#\#):not(#\#):not(#\#){height:8px}.aui1ueg155:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-md)}.aui6k0iem:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--size-element-sm)}.auigjsvxy:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--text-label-leading)}.aui16ye13r:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--x-height)}.aui1p37lm5:not(#\#):not(#\#):not(#\#):not(#\#){margin-bottom:var(--spacing-2)}.aui1hkcv85:not(#\#):not(#\#):not(#\#):not(#\#){max-height:200px}.aui1983irj:not(#\#):not(#\#):not(#\#):not(#\#){max-height:220px}.auiq3t0pi:not(#\#):not(#\#):not(#\#):not(#\#){max-height:280px}.aui1jols5v:not(#\#):not(#\#):not(#\#):not(#\#){max-height:var(--x-maxHeight)}.aui1weugan:not(#\#):not(#\#):not(#\#):not(#\#){max-width:290px}.aui1dt7z5j:not(#\#):not(#\#):not(#\#):not(#\#){max-width:380px}.aui146dmfp:not(#\#):not(#\#):not(#\#):not(#\#){max-width:70px}.auif68679:not(#\#):not(#\#):not(#\#):not(#\#){max-width:var(--x-maxWidth)}.aui2lwn1j:not(#\#):not(#\#):not(#\#):not(#\#){min-height:0}.auiqt01rp:not(#\#):not(#\#):not(#\#):not(#\#){min-height:41px}.auih0zcz:not(#\#):not(#\#):not(#\#):not(#\#){min-height:calc(var(--size-element-sm) + var(--spacing-5))}.aui1uogy3y:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-md)}.aui1gdqauq:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--size-element-sm)}.aui1wcf34l:not(#\#):not(#\#):not(#\#):not(#\#){min-height:var(--text-label-leading)}.auieuugli:not(#\#):not(#\#):not(#\#):not(#\#){min-width:0}.aui15kz4h8:not(#\#):not(#\#):not(#\#):not(#\#){min-width:16px}.auigomdpo:not(#\#):not(#\#):not(#\#):not(#\#){min-width:1rem}.auirzjruh:not(#\#):not(#\#):not(#\#):not(#\#){min-width:anchor-size(width)}.aui1enrzb7:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--border-width) + var(--spacing-1))}.auiwa60dl:not(#\#):not(#\#):not(#\#):not(#\#){top:50%}.auisk17dz:not(#\#):not(#\#):not(#\#):not(#\#){width:1.125rem}.auih8yej3:not(#\#):not(#\#):not(#\#):not(#\#){width:100%}.aui1kky2od:not(#\#):not(#\#):not(#\#):not(#\#){width:16px}.aui17z2i9w:not(#\#):not(#\#):not(#\#):not(#\#){width:22px}.auivy4d1p:not(#\#):not(#\#):not(#\#):not(#\#){width:24px}.aui1dz1jew:not(#\#):not(#\#):not(#\#):not(#\#){width:280px}.aui1g8rjiy:not(#\#):not(#\#):not(#\#):not(#\#){width:3px}.aui3hqpx7:not(#\#):not(#\#):not(#\#):not(#\#){width:50%}.aui1pju0fl:not(#\#):not(#\#):not(#\#):not(#\#){width:50px}.auiefyazp:not(#\#):not(#\#):not(#\#):not(#\#){width:90px}.auiezivpi:not(#\#):not(#\#):not(#\#):not(#\#){width:max-content}.aui5lhr3w:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-width)}.aui1fbop3j:focus-within:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-accent)}.aui2ucsrd:hover:not(#\#):not(#\#):not(#\#):not(#\#){border-bottom-color:var(--color-border-emphasized)}.auieyghm5:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::placeholder{color:var(--color-text-secondary)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antscorp/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Generic UI kit: atoms, molecules and organisms over Astryx.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
"!src/cli/**",
|
|
18
18
|
"!src/**/*.test.*",
|
|
19
19
|
"!src/**/*.stories.*",
|
|
20
|
+
"!src/**/*.doc.ts",
|
|
21
|
+
"!dist/**/*.doc.*",
|
|
20
22
|
"!src/**/__snapshots__/**",
|
|
21
23
|
"!src/testing.tsx",
|
|
22
24
|
"!src/story.tsx"
|
|
@@ -97,40 +99,44 @@
|
|
|
97
99
|
"scripts": {
|
|
98
100
|
"astryx:reexports": "bun scripts/astryx-reexports.ts",
|
|
99
101
|
"test": "bun scripts/astryx-reexports.ts --check && vitest run && AUI_REACT_COMPILER=off vitest run --coverage",
|
|
102
|
+
"test:perf": "PERF=1 vitest run",
|
|
100
103
|
"typecheck": "tsc -p .",
|
|
101
104
|
"build": "vite build --config vite.build.ts && tsc -p tsconfig.build.json && bun scripts/build-declarations.ts && node ../../tools/component-catalog/src/main.ts . && bun build src/cli/main.ts --target=node --outfile=dist/cli.js"
|
|
102
105
|
},
|
|
103
106
|
"dependencies": {
|
|
104
|
-
"@antscorp/astryx-theme-antsomi": "0.1.
|
|
105
|
-
"@antscorp/immutable": "0.1.
|
|
107
|
+
"@antscorp/astryx-theme-antsomi": "0.1.5",
|
|
108
|
+
"@antscorp/immutable": "0.1.1",
|
|
106
109
|
"@astryxdesign/core": "0.7.4",
|
|
107
110
|
"@codemirror/state": "6.7.6",
|
|
108
|
-
"@codemirror/view": "6.43.
|
|
111
|
+
"@codemirror/view": "6.43.15",
|
|
109
112
|
"@stylexjs/stylex": "0.19.1",
|
|
110
113
|
"spin-delay": "2.0.1",
|
|
111
|
-
"zod": "4.6.
|
|
114
|
+
"zod": "4.6.7"
|
|
112
115
|
},
|
|
113
116
|
"devDependencies": {
|
|
114
117
|
"@antscorp/component-catalog": "0.1.0",
|
|
115
|
-
"@antscorp/vite-stylex": "0.1.
|
|
116
|
-
"@storybook/react-vite": "10.6.
|
|
118
|
+
"@antscorp/vite-stylex": "0.1.5",
|
|
119
|
+
"@storybook/react-vite": "10.6.5",
|
|
117
120
|
"@testing-library/dom": "10.4.2",
|
|
118
121
|
"@testing-library/react": "16.3.3",
|
|
119
|
-
"@testing-library/user-event": "14.6.
|
|
122
|
+
"@testing-library/user-event": "14.6.8",
|
|
120
123
|
"@types/bun": "1.4.4",
|
|
121
|
-
"@types/node": "24.19.
|
|
124
|
+
"@types/node": "24.19.2",
|
|
122
125
|
"@types/react": "19.3.0",
|
|
123
126
|
"@types/react-dom": "19.3.0",
|
|
124
|
-
"@vitest/coverage-v8": "5.0.
|
|
127
|
+
"@vitest/coverage-v8": "5.0.5",
|
|
125
128
|
"happy-dom": "20.14.5",
|
|
126
|
-
"react": "19.3.
|
|
127
|
-
"react-dom": "19.3.
|
|
128
|
-
"storybook": "10.6.
|
|
129
|
-
"vite": "8.3.
|
|
130
|
-
"vitest": "5.0.
|
|
129
|
+
"react": "19.3.1",
|
|
130
|
+
"react-dom": "19.3.1",
|
|
131
|
+
"storybook": "10.6.5",
|
|
132
|
+
"vite": "8.3.5",
|
|
133
|
+
"vitest": "5.0.5"
|
|
131
134
|
},
|
|
132
135
|
"peerDependencies": {
|
|
133
|
-
"react": ">=19",
|
|
134
|
-
"react-dom": ">=19"
|
|
136
|
+
"react": ">=19.2",
|
|
137
|
+
"react-dom": ">=19.2"
|
|
138
|
+
},
|
|
139
|
+
"engines": {
|
|
140
|
+
"node": ">=24"
|
|
135
141
|
}
|
|
136
142
|
}
|
package/src/atoms/AddButton.tsx
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { Button } from "@astryxdesign/core/Button";
|
|
1
|
+
import { Button, type ButtonProps } from "@astryxdesign/core/Button";
|
|
2
2
|
import { radiusVars } from "@astryxdesign/core/theme/tokens.stylex";
|
|
3
3
|
import * as stylex from "@stylexjs/stylex";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
5
5
|
|
|
6
|
+
import type { Forwardable } from "../lib/forwardable";
|
|
6
7
|
import { AddGlyph } from "./AddGlyph";
|
|
7
8
|
|
|
8
9
|
/** What `AddButton` takes. */
|
|
9
|
-
export type AddButtonProps = {
|
|
10
|
-
/** What it adds, such as "Add row"; the host translates it. */
|
|
11
|
-
readonly label: string;
|
|
10
|
+
export type AddButtonProps = Forwardable<Pick<ButtonProps, "label" | "isDisabled">> & {
|
|
12
11
|
/** `ghost` by default; `secondary` for an add that needs more weight. */
|
|
13
12
|
readonly variant?: "ghost" | "secondary" | undefined;
|
|
14
13
|
/** The button's height, `md` by default; its plus follows it. */
|
|
@@ -17,8 +16,6 @@ export type AddButtonProps = {
|
|
|
17
16
|
readonly shape?: "default" | "pill" | undefined;
|
|
18
17
|
/** `sentence` (default) shows the label as given; `upper` in capitals, such as "+ AND". */
|
|
19
18
|
readonly case?: "sentence" | "upper" | undefined;
|
|
20
|
-
/** Dimmed and not pressable, e.g. when a limit is reached. */
|
|
21
|
-
readonly isDisabled?: boolean | undefined;
|
|
22
19
|
/** Read-only: an add is an editing affordance, so nothing is drawn. */
|
|
23
20
|
readonly isReadOnly?: boolean | undefined;
|
|
24
21
|
/** Called when the button is pressed. */
|
package/src/atoms/Chip.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AccentRole } from "@antscorp/astryx-theme-antsomi/palette";
|
|
1
2
|
import { HStack } from "@astryxdesign/core/HStack";
|
|
2
3
|
import { Icon } from "@astryxdesign/core/Icon";
|
|
3
4
|
import { IconButton } from "@astryxdesign/core/IconButton";
|
|
@@ -9,15 +10,16 @@ import {
|
|
|
9
10
|
spacingVars,
|
|
10
11
|
typeScaleVars,
|
|
11
12
|
} from "@astryxdesign/core/theme/tokens.stylex";
|
|
12
|
-
import { Token } from "@astryxdesign/core/Token";
|
|
13
|
+
import { Token, type TokenProps } from "@astryxdesign/core/Token";
|
|
13
14
|
import { Tooltip } from "@astryxdesign/core/Tooltip";
|
|
14
15
|
import * as stylex from "@stylexjs/stylex";
|
|
15
16
|
import type { ReactNode } from "react";
|
|
16
17
|
|
|
18
|
+
import type { Forwardable } from "../lib/forwardable";
|
|
17
19
|
import { RemoveButton } from "./RemoveButton";
|
|
18
20
|
|
|
19
21
|
/** What `Chip` takes. */
|
|
20
|
-
export type ChipProps = {
|
|
22
|
+
export type ChipProps = Forwardable<Pick<TokenProps, "isDisabled">> & {
|
|
21
23
|
/** The chip's text; cut short with an ellipsis past `maxWidth`, and shown whole in a tooltip. */
|
|
22
24
|
readonly label: string;
|
|
23
25
|
/** `neutral` (default) is the plain grey chip; `accent` the pale accent one; `danger` a value no longer valid. */
|
|
@@ -40,8 +42,6 @@ export type ChipProps = {
|
|
|
40
42
|
* button over its end; it stays in the tab order. Without it the button always shows after the text.
|
|
41
43
|
*/
|
|
42
44
|
readonly isRemoveOnHover?: boolean | undefined;
|
|
43
|
-
/** Dims the chip and blocks its remove button. */
|
|
44
|
-
readonly isDisabled?: boolean | undefined;
|
|
45
45
|
/** Read-only: no remove button. */
|
|
46
46
|
readonly isReadOnly?: boolean | undefined;
|
|
47
47
|
};
|
|
@@ -102,6 +102,7 @@ export function Chip(props: ChipProps): ReactNode {
|
|
|
102
102
|
// The remove button shows while the chip is hovered or has focus inside it.
|
|
103
103
|
const marker = stylex.defaultMarker();
|
|
104
104
|
|
|
105
|
+
const accentFill: AccentRole = "var(--ants-accent-fill)";
|
|
105
106
|
const styles = stylex.create({
|
|
106
107
|
// A pill as high as the controls, 10px either side (no
|
|
107
108
|
// spacing step is 10px), in 12px body text of the normal weight. An xstyle, not a `token` theme entry: Token is also
|
|
@@ -117,7 +118,7 @@ const styles = stylex.create({
|
|
|
117
118
|
md: { height: sizeVars["--size-element-md"] },
|
|
118
119
|
// Not `color="blue"` with a theme entry, for the same reason.
|
|
119
120
|
accent: {
|
|
120
|
-
backgroundColor:
|
|
121
|
+
backgroundColor: accentFill,
|
|
121
122
|
color: colorVars["--color-text-primary"],
|
|
122
123
|
},
|
|
123
124
|
// A 16px white circle over the chip's end (Token's own remove button is 16px too).
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Icon } from "@astryxdesign/core/Icon";
|
|
2
|
-
import { IconButton } from "@astryxdesign/core/IconButton";
|
|
2
|
+
import { IconButton, type IconButtonProps } from "@astryxdesign/core/IconButton";
|
|
3
3
|
import type { ReactNode } from "react";
|
|
4
4
|
|
|
5
|
+
import type { Forwardable } from "../lib/forwardable";
|
|
6
|
+
|
|
5
7
|
/** What `RemoveButton` takes. */
|
|
6
|
-
export type RemoveButtonProps = {
|
|
7
|
-
/** What goes, such as "Remove row"; the button shows only an icon, so this is its name. */
|
|
8
|
-
readonly label: string;
|
|
8
|
+
export type RemoveButtonProps = Forwardable<Pick<IconButtonProps, "label" | "isDisabled">> & {
|
|
9
9
|
/** The button's height, `md` by default. */
|
|
10
10
|
readonly size?: "sm" | "md" | undefined;
|
|
11
|
-
/** Dimmed and not pressable. */
|
|
12
|
-
readonly isDisabled?: boolean | undefined;
|
|
13
11
|
/** Read-only: a remove is an editing affordance, so nothing is drawn. */
|
|
14
12
|
readonly isReadOnly?: boolean | undefined;
|
|
15
13
|
/** Called when the button is pressed. */
|
package/src/atoms/TextAction.tsx
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Icon } from "@astryxdesign/core/Icon";
|
|
2
|
-
import { Link } from "@astryxdesign/core/Link";
|
|
2
|
+
import { Link, type LinkProps } from "@astryxdesign/core/Link";
|
|
3
3
|
import { spacingVars } from "@astryxdesign/core/theme/tokens.stylex";
|
|
4
4
|
import * as stylex from "@stylexjs/stylex";
|
|
5
5
|
import type { ReactNode } from "react";
|
|
6
6
|
|
|
7
|
+
import type { Forwardable } from "../lib/forwardable";
|
|
8
|
+
|
|
7
9
|
/** What `TextAction` takes. */
|
|
8
|
-
export type TextActionProps = {
|
|
10
|
+
export type TextActionProps = Forwardable<Pick<LinkProps, "isDisabled">> & {
|
|
9
11
|
/** What it does, such as "Remove all"; shown in capitals by default, so pass it in normal case. */
|
|
10
12
|
readonly label: string;
|
|
11
13
|
/** A glyph before the text, in the text's colour, such as an Astryx `Icon` of a bin for a removal. */
|
|
@@ -19,8 +21,6 @@ export type TextActionProps = {
|
|
|
19
21
|
readonly onClick?: (() => void) | undefined;
|
|
20
22
|
/** A down chevron after the text, for an action that opens a menu. */
|
|
21
23
|
readonly hasChevron?: boolean | undefined;
|
|
22
|
-
/** Dimmed and not pressable. */
|
|
23
|
-
readonly isDisabled?: boolean | undefined;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props taken from another component (`Pick`/`Omit`) whose optional ones also accept `undefined`,
|
|
3
|
+
* as the kit's own props do, so a host under `exactOptionalPropertyTypes` can forward its own
|
|
4
|
+
* optional value (`isDisabled={props.isDisabled}`). Required props stay as they are.
|
|
5
|
+
*/
|
|
6
|
+
export type Forwardable<T> = {
|
|
7
|
+
[K in keyof T]: Partial<Pick<T, K>> extends Pick<T, K> ? T[K] | undefined : T[K];
|
|
8
|
+
};
|
package/src/lib/iso.ts
CHANGED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
createISOTimeString,
|
|
3
3
|
type ISODateString,
|
|
4
4
|
type ISOTimeString,
|
|
5
|
+
parseISO,
|
|
5
6
|
} from "@astryxdesign/core/utils";
|
|
6
7
|
|
|
7
8
|
// Astryx date and time inputs take a value only when it is a valid one; a draft's empty or broken
|
|
@@ -13,14 +14,25 @@ export function timeValue(time: string): { readonly value?: ISOTimeString } {
|
|
|
13
14
|
return value === null ? {} : { value };
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
const
|
|
17
|
+
const hasISODateShape = (value: string): value is ISODateString =>
|
|
18
|
+
/^\d{4}-\d{2}-\d{2}$/u.test(value);
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
function isISODate(value: string): value is ISODateString {
|
|
21
|
+
if (!hasISODateShape(value)) return false;
|
|
22
|
+
try {
|
|
23
|
+
parseISO(value);
|
|
24
|
+
return true;
|
|
25
|
+
} catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Spread into a date input: `{ value }` for a valid calendar date in `YYYY-MM-DD`, `{}` otherwise. */
|
|
19
31
|
export function dateValue(date: string): { readonly value?: ISODateString } {
|
|
20
32
|
return isISODate(date) ? { value: date } : {};
|
|
21
33
|
}
|
|
22
34
|
|
|
23
|
-
/** Spread into a date input: `{ min }`
|
|
35
|
+
/** Spread into a date input: `{ min }` for a valid calendar date in `YYYY-MM-DD`, `{}` otherwise. */
|
|
24
36
|
export function minDate(min: string | undefined): { readonly min?: ISODateString } {
|
|
25
37
|
return min !== undefined && isISODate(min) ? { min } : {};
|
|
26
38
|
}
|
|
@@ -255,7 +255,7 @@ const theme = EditorView.theme({
|
|
|
255
255
|
font: "inherit",
|
|
256
256
|
fontSize: "12px",
|
|
257
257
|
borderRadius: "50%",
|
|
258
|
-
color: "var(--
|
|
258
|
+
color: "var(--color-icon-accent)",
|
|
259
259
|
cursor: "pointer",
|
|
260
260
|
},
|
|
261
261
|
".cm-token:hover .cm-token-remove, .cm-token:focus-within .cm-token-remove": { opacity: "1" },
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AccentRole } from "@antscorp/astryx-theme-antsomi/palette";
|
|
1
2
|
import { Card } from "@astryxdesign/core/Card";
|
|
2
3
|
import { HStack } from "@astryxdesign/core/HStack";
|
|
3
4
|
import { Icon } from "@astryxdesign/core/Icon";
|
|
@@ -86,7 +87,7 @@ export function AccentCard(props: AccentCardProps): ReactNode {
|
|
|
86
87
|
<RemoveButton
|
|
87
88
|
label={close}
|
|
88
89
|
size="sm"
|
|
89
|
-
isDisabled={props.isDisabled}
|
|
90
|
+
isDisabled={props.isDisabled ?? false}
|
|
90
91
|
onClick={props.onClose}
|
|
91
92
|
/>
|
|
92
93
|
))}
|
|
@@ -101,6 +102,7 @@ export function AccentCard(props: AccentCardProps): ReactNode {
|
|
|
101
102
|
);
|
|
102
103
|
}
|
|
103
104
|
|
|
105
|
+
const accentBanner: AccentRole = "var(--ants-accent-banner)";
|
|
104
106
|
const styles = stylex.create({
|
|
105
107
|
// A grey border and a
|
|
106
108
|
// 4px accent stripe at the start (no border token is 4px). A look of this card only, which no
|
|
@@ -122,7 +124,7 @@ const styles = stylex.create({
|
|
|
122
124
|
bannerCard: { borderStyle: "none", borderRadius: 0 },
|
|
123
125
|
// White semibold capitals on the header blue, 10px 20px around.
|
|
124
126
|
banner: {
|
|
125
|
-
backgroundColor:
|
|
127
|
+
backgroundColor: accentBanner,
|
|
126
128
|
color: colorVars["--color-on-accent"],
|
|
127
129
|
textTransform: "uppercase",
|
|
128
130
|
},
|
|
@@ -3,6 +3,7 @@ import { HStack } from "@astryxdesign/core/HStack";
|
|
|
3
3
|
import { VStack } from "@astryxdesign/core/VStack";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
5
5
|
|
|
6
|
+
import type { Forwardable } from "../lib/forwardable";
|
|
6
7
|
import { FieldGroup, type FieldGroupProps } from "./FieldGroup";
|
|
7
8
|
|
|
8
9
|
/** One checkbox of a `CheckGroup`. */
|
|
@@ -14,9 +15,8 @@ export type CheckGroupOption<V extends string> = {
|
|
|
14
15
|
};
|
|
15
16
|
|
|
16
17
|
/** What `CheckGroup` takes. */
|
|
17
|
-
export type CheckGroupProps<V extends string> =
|
|
18
|
-
FieldGroupProps,
|
|
19
|
-
"label" | "isDisabled" | "error"
|
|
18
|
+
export type CheckGroupProps<V extends string> = Forwardable<
|
|
19
|
+
Pick<FieldGroupProps, "label" | "isDisabled" | "error">
|
|
20
20
|
> & {
|
|
21
21
|
/** The checkboxes, in order. */
|
|
22
22
|
readonly options: readonly CheckGroupOption<V>[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CheckboxInput } from "@astryxdesign/core/CheckboxInput";
|
|
1
|
+
import { CheckboxInput, type CheckboxInputProps } from "@astryxdesign/core/CheckboxInput";
|
|
2
2
|
import { HStack } from "@astryxdesign/core/HStack";
|
|
3
3
|
import { Text } from "@astryxdesign/core/Text";
|
|
4
4
|
import { sizeVars } from "@astryxdesign/core/theme/tokens.stylex";
|
|
@@ -8,9 +8,10 @@ import type { ReactNode } from "react";
|
|
|
8
8
|
|
|
9
9
|
import { HoverSwap } from "../atoms/HoverSwap";
|
|
10
10
|
import { TruncatedText } from "../atoms/TruncatedText";
|
|
11
|
+
import type { Forwardable } from "../lib/forwardable";
|
|
11
12
|
|
|
12
13
|
/** What `CheckRow` takes. */
|
|
13
|
-
export type CheckRowProps = {
|
|
14
|
+
export type CheckRowProps = Forwardable<Pick<CheckboxInputProps, "isDisabled" | "isReadOnly">> & {
|
|
14
15
|
/** The row's text and the checkbox's name; one line, the whole text in a tooltip when cut. */
|
|
15
16
|
readonly label: string;
|
|
16
17
|
/** A second line under the text, such as an id under a name; one line too. */
|
|
@@ -26,10 +27,6 @@ export type CheckRowProps = {
|
|
|
26
27
|
* link to the item; the two share one place, so nothing moves. None without it.
|
|
27
28
|
*/
|
|
28
29
|
readonly hoverContent?: ReactNode;
|
|
29
|
-
/** Dims the box and blocks it; nothing is hidden. */
|
|
30
|
-
readonly isDisabled?: boolean | undefined;
|
|
31
|
-
/** Shows the box's state, not dimmed, and blocks it. */
|
|
32
|
-
readonly isReadOnly?: boolean | undefined;
|
|
33
30
|
};
|
|
34
31
|
|
|
35
32
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AccentRole } from "@antscorp/astryx-theme-antsomi/palette";
|
|
1
2
|
import { Center } from "@astryxdesign/core/Center";
|
|
2
3
|
import { ClickableCard } from "@astryxdesign/core/ClickableCard";
|
|
3
4
|
import { HStack } from "@astryxdesign/core/HStack";
|
|
@@ -67,6 +68,7 @@ export function ChoiceTiles<V extends string>(props: ChoiceTilesProps<V>): React
|
|
|
67
68
|
// A 150×130 tile at 12px text is too tight; 180×170 leaves room for a two-line description.
|
|
68
69
|
const TILE = { width: 180, height: 170 } as const;
|
|
69
70
|
|
|
71
|
+
const accentHover: AccentRole = "var(--ants-accent-hover)";
|
|
70
72
|
const styles = stylex.create({
|
|
71
73
|
// Text has no alignment prop: its lines centre under the glyph from here.
|
|
72
74
|
fill: { height: "100%", textAlign: "center" },
|
|
@@ -76,7 +78,7 @@ const styles = stylex.create({
|
|
|
76
78
|
width: 50,
|
|
77
79
|
height: 50,
|
|
78
80
|
borderRadius: "50%",
|
|
79
|
-
backgroundColor:
|
|
81
|
+
backgroundColor: accentHover,
|
|
80
82
|
color: colorVars["--color-accent"],
|
|
81
83
|
},
|
|
82
84
|
});
|