@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.
Files changed (198) hide show
  1. package/README.md +25 -1
  2. package/dist/atoms/AddButton.d.ts +3 -5
  3. package/dist/atoms/Chip.d.ts +3 -3
  4. package/dist/atoms/Chip.js +1 -1
  5. package/dist/atoms/RemoveButton.d.ts +3 -5
  6. package/dist/atoms/TextAction.d.ts +3 -3
  7. package/dist/docs.json +1 -1
  8. package/dist/lib/forwardable.d.ts +8 -0
  9. package/dist/lib/iso.d.ts +2 -2
  10. package/dist/lib/iso.js +16 -8
  11. package/dist/lib/tokenEditorExtensions.js +1 -1
  12. package/dist/molecules/AccentCard.js +2 -2
  13. package/dist/molecules/CheckGroup.d.ts +2 -1
  14. package/dist/molecules/CheckRow.d.ts +3 -5
  15. package/dist/molecules/ChoiceTiles.js +1 -1
  16. package/dist/molecules/CommitTextField.d.ts +2 -19
  17. package/dist/molecules/CommitTextField.js +21 -18
  18. package/dist/molecules/ConfirmDialog.d.ts +3 -7
  19. package/dist/molecules/DateTimeInput.d.ts +7 -3
  20. package/dist/molecules/DateTimeInput.js +82 -73
  21. package/dist/molecules/DurationInput.d.ts +2 -1
  22. package/dist/molecules/PercentRow.d.ts +2 -1
  23. package/dist/molecules/RemovableRow.js +32 -32
  24. package/dist/molecules/RevealRadioGroup.d.ts +3 -9
  25. package/dist/molecules/RevealSwitch.d.ts +3 -7
  26. package/dist/molecules/Select.d.ts +8 -23
  27. package/dist/molecules/Select.js +26 -20
  28. package/dist/molecules/StatusButton.d.ts +3 -7
  29. package/dist/molecules/ToggleGrid.d.ts +2 -1
  30. package/dist/molecules/TokenTextField.d.ts +2 -1
  31. package/dist/molecules/TreeOptions.d.ts +3 -2
  32. package/dist/molecules/TreeOptions.js +67 -44
  33. package/dist/organisms/HourOfDayRow.js +2 -2
  34. package/dist/organisms/HourOfWeekGrid.js +2 -2
  35. package/dist/organisms/TokenPickerDialog.d.ts +2 -1
  36. package/dist/organisms/TransferPicker.d.ts +2 -1
  37. package/dist/organisms/TreeSearchPanel.js +50 -47
  38. package/dist/theme/AntsomiTheme.d.ts +3 -2
  39. package/dist/theme/AntsomiTheme.js +8 -7
  40. package/dist/ui.css +1 -1
  41. package/package.json +23 -17
  42. package/src/atoms/AddButton.tsx +3 -6
  43. package/src/atoms/Chip.tsx +6 -5
  44. package/src/atoms/RemoveButton.tsx +4 -6
  45. package/src/atoms/TextAction.tsx +4 -4
  46. package/src/lib/forwardable.ts +8 -0
  47. package/src/lib/iso.ts +15 -3
  48. package/src/lib/tokenEditorExtensions.ts +1 -1
  49. package/src/molecules/AccentCard.tsx +4 -2
  50. package/src/molecules/CheckGroup.tsx +3 -3
  51. package/src/molecules/CheckRow.tsx +3 -6
  52. package/src/molecules/ChoiceTiles.tsx +3 -1
  53. package/src/molecules/CommitTextField.tsx +18 -20
  54. package/src/molecules/ConfirmDialog.tsx +6 -8
  55. package/src/molecules/DateTimeInput.tsx +87 -68
  56. package/src/molecules/DurationInput.tsx +4 -1
  57. package/src/molecules/PercentRow.tsx +3 -2
  58. package/src/molecules/RemovableRow.tsx +1 -1
  59. package/src/molecules/RevealRadioGroup.tsx +5 -10
  60. package/src/molecules/RevealSwitch.tsx +4 -8
  61. package/src/molecules/Select.tsx +25 -22
  62. package/src/molecules/StatusButton.tsx +4 -8
  63. package/src/molecules/ToggleGrid.tsx +3 -3
  64. package/src/molecules/TokenTextField.tsx +3 -3
  65. package/src/molecules/TreeOptions.tsx +86 -62
  66. package/src/organisms/HourOfDayRow.tsx +4 -2
  67. package/src/organisms/HourOfWeekGrid.tsx +4 -2
  68. package/src/organisms/TokenPickerDialog.tsx +2 -1
  69. package/src/organisms/TransferPicker.tsx +3 -3
  70. package/src/organisms/TreeSearchPanel.tsx +1 -1
  71. package/src/theme/AntsomiTheme.tsx +9 -3
  72. package/dist/atoms/AddButton.doc.d.ts +0 -21
  73. package/dist/atoms/AddGlyph.doc.d.ts +0 -16
  74. package/dist/atoms/Chip.doc.d.ts +0 -29
  75. package/dist/atoms/ChipSkeletons.doc.d.ts +0 -21
  76. package/dist/atoms/FieldHeading.doc.d.ts +0 -15
  77. package/dist/atoms/HoverSwap.doc.d.ts +0 -25
  78. package/dist/atoms/InfoTip.doc.d.ts +0 -25
  79. package/dist/atoms/JointLabel.doc.d.ts +0 -15
  80. package/dist/atoms/LabeledDivider.doc.d.ts +0 -21
  81. package/dist/atoms/LogoImage.doc.d.ts +0 -21
  82. package/dist/atoms/PanelSearchInput.doc.d.ts +0 -25
  83. package/dist/atoms/PathMark.doc.d.ts +0 -16
  84. package/dist/atoms/RemoveButton.doc.d.ts +0 -16
  85. package/dist/atoms/RowSkeletons.doc.d.ts +0 -25
  86. package/dist/atoms/TextAction.doc.d.ts +0 -25
  87. package/dist/atoms/TruncatedOption.doc.d.ts +0 -24
  88. package/dist/atoms/TruncatedText.doc.d.ts +0 -15
  89. package/dist/molecules/AccentCard.doc.d.ts +0 -25
  90. package/dist/molecules/CheckGroup.doc.d.ts +0 -25
  91. package/dist/molecules/CheckRow.doc.d.ts +0 -25
  92. package/dist/molecules/ChoiceDialog.doc.d.ts +0 -21
  93. package/dist/molecules/ChoiceTiles.doc.d.ts +0 -21
  94. package/dist/molecules/CommitTextField.doc.d.ts +0 -29
  95. package/dist/molecules/ConfirmDialog.doc.d.ts +0 -21
  96. package/dist/molecules/DateTimeInput.doc.d.ts +0 -25
  97. package/dist/molecules/DurationInput.doc.d.ts +0 -25
  98. package/dist/molecules/FieldGroup.doc.d.ts +0 -25
  99. package/dist/molecules/FieldRow.doc.d.ts +0 -24
  100. package/dist/molecules/FieldSkeleton.doc.d.ts +0 -25
  101. package/dist/molecules/FrequencyLimitRow.doc.d.ts +0 -25
  102. package/dist/molecules/InlineEditableText.doc.d.ts +0 -25
  103. package/dist/molecules/LoadMoreRow.doc.d.ts +0 -21
  104. package/dist/molecules/LoadState.doc.d.ts +0 -21
  105. package/dist/molecules/MetaTable.doc.d.ts +0 -25
  106. package/dist/molecules/PercentRow.doc.d.ts +0 -25
  107. package/dist/molecules/PhoneFrame.doc.d.ts +0 -21
  108. package/dist/molecules/ProblemsButton.doc.d.ts +0 -25
  109. package/dist/molecules/RemovableRow.doc.d.ts +0 -25
  110. package/dist/molecules/RevealRadioGroup.doc.d.ts +0 -25
  111. package/dist/molecules/RevealSwitch.doc.d.ts +0 -25
  112. package/dist/molecules/RuleRow.doc.d.ts +0 -25
  113. package/dist/molecules/Select.doc.d.ts +0 -30
  114. package/dist/molecules/SideLabelRow.doc.d.ts +0 -20
  115. package/dist/molecules/SplitButton.doc.d.ts +0 -25
  116. package/dist/molecules/StatusButton.doc.d.ts +0 -25
  117. package/dist/molecules/TagSelect.doc.d.ts +0 -25
  118. package/dist/molecules/ToggleGrid.doc.d.ts +0 -25
  119. package/dist/molecules/TokenTextField.doc.d.ts +0 -29
  120. package/dist/molecules/TransferLayout.doc.d.ts +0 -25
  121. package/dist/molecules/TreeOptions.doc.d.ts +0 -25
  122. package/dist/organisms/ChipListAddPopover.doc.d.ts +0 -25
  123. package/dist/organisms/HourOfDayRow.doc.d.ts +0 -25
  124. package/dist/organisms/HourOfWeekGrid.doc.d.ts +0 -25
  125. package/dist/organisms/RepeatableList.doc.d.ts +0 -21
  126. package/dist/organisms/ResizableDrawer.doc.d.ts +0 -25
  127. package/dist/organisms/RuleGroups.doc.d.ts +0 -21
  128. package/dist/organisms/RuleList.doc.d.ts +0 -25
  129. package/dist/organisms/SearchableGroupedList.doc.d.ts +0 -25
  130. package/dist/organisms/TokenPickerDialog.doc.d.ts +0 -21
  131. package/dist/organisms/TransferPicker.doc.d.ts +0 -29
  132. package/dist/organisms/TreeSearchPanel.doc.d.ts +0 -25
  133. package/dist/organisms/TreeSelect.doc.d.ts +0 -29
  134. package/dist/theme/AntsomiTheme.doc.d.ts +0 -15
  135. package/dist/theme/AntsomiTheme.doc.js +0 -22
  136. package/src/atoms/AddButton.doc.ts +0 -36
  137. package/src/atoms/AddGlyph.doc.ts +0 -26
  138. package/src/atoms/Chip.doc.ts +0 -45
  139. package/src/atoms/ChipSkeletons.doc.ts +0 -31
  140. package/src/atoms/FieldHeading.doc.ts +0 -22
  141. package/src/atoms/HoverSwap.doc.ts +0 -39
  142. package/src/atoms/InfoTip.doc.ts +0 -37
  143. package/src/atoms/JointLabel.doc.ts +0 -23
  144. package/src/atoms/LabeledDivider.doc.ts +0 -35
  145. package/src/atoms/LogoImage.doc.ts +0 -42
  146. package/src/atoms/PanelSearchInput.doc.ts +0 -41
  147. package/src/atoms/PathMark.doc.ts +0 -25
  148. package/src/atoms/RemoveButton.doc.ts +0 -26
  149. package/src/atoms/RowSkeletons.doc.ts +0 -43
  150. package/src/atoms/TextAction.doc.ts +0 -40
  151. package/src/atoms/TruncatedOption.doc.ts +0 -39
  152. package/src/atoms/TruncatedText.doc.ts +0 -22
  153. package/src/molecules/AccentCard.doc.ts +0 -43
  154. package/src/molecules/CheckGroup.doc.ts +0 -40
  155. package/src/molecules/CheckRow.doc.ts +0 -43
  156. package/src/molecules/ChoiceDialog.doc.ts +0 -48
  157. package/src/molecules/ChoiceTiles.doc.ts +0 -42
  158. package/src/molecules/CommitTextField.doc.ts +0 -41
  159. package/src/molecules/ConfirmDialog.doc.ts +0 -43
  160. package/src/molecules/DateTimeInput.doc.ts +0 -48
  161. package/src/molecules/DurationInput.doc.ts +0 -36
  162. package/src/molecules/FieldGroup.doc.ts +0 -41
  163. package/src/molecules/FieldRow.doc.ts +0 -36
  164. package/src/molecules/FieldSkeleton.doc.ts +0 -38
  165. package/src/molecules/FrequencyLimitRow.doc.ts +0 -48
  166. package/src/molecules/InlineEditableText.doc.ts +0 -41
  167. package/src/molecules/LoadMoreRow.doc.ts +0 -36
  168. package/src/molecules/LoadState.doc.ts +0 -42
  169. package/src/molecules/MetaTable.doc.ts +0 -46
  170. package/src/molecules/PercentRow.doc.ts +0 -48
  171. package/src/molecules/PhoneFrame.doc.ts +0 -46
  172. package/src/molecules/ProblemsButton.doc.ts +0 -41
  173. package/src/molecules/RemovableRow.doc.ts +0 -48
  174. package/src/molecules/RevealRadioGroup.doc.ts +0 -41
  175. package/src/molecules/RevealSwitch.doc.ts +0 -38
  176. package/src/molecules/RuleRow.doc.ts +0 -43
  177. package/src/molecules/Select.doc.ts +0 -62
  178. package/src/molecules/SideLabelRow.doc.ts +0 -35
  179. package/src/molecules/SplitButton.doc.ts +0 -41
  180. package/src/molecules/StatusButton.doc.ts +0 -39
  181. package/src/molecules/TagSelect.doc.ts +0 -41
  182. package/src/molecules/ToggleGrid.doc.ts +0 -43
  183. package/src/molecules/TokenTextField.doc.ts +0 -41
  184. package/src/molecules/TransferLayout.doc.ts +0 -42
  185. package/src/molecules/TreeOptions.doc.ts +0 -38
  186. package/src/organisms/ChipListAddPopover.doc.ts +0 -54
  187. package/src/organisms/HourOfDayRow.doc.ts +0 -43
  188. package/src/organisms/HourOfWeekGrid.doc.ts +0 -48
  189. package/src/organisms/RepeatableList.doc.ts +0 -49
  190. package/src/organisms/ResizableDrawer.doc.ts +0 -48
  191. package/src/organisms/RuleGroups.doc.ts +0 -49
  192. package/src/organisms/RuleList.doc.ts +0 -43
  193. package/src/organisms/SearchableGroupedList.doc.ts +0 -49
  194. package/src/organisms/TokenPickerDialog.doc.ts +0 -54
  195. package/src/organisms/TransferPicker.doc.ts +0 -69
  196. package/src/organisms/TreeSearchPanel.doc.ts +0 -43
  197. package/src/organisms/TreeSelect.doc.ts +0 -56
  198. 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 _ = s(45), { value: v, more: y, labels: b } = m, x = i(!0), S = y.isLoadingMore === !0, C = m.isSearchedByHost ? [...m.items] : r(m.items, v), { rootRef: w, sentinelRef: T } = a({
18
- ...y,
19
- hasLoadMoreError: b.loadMoreError !== void 0,
20
- itemCount: C.length
21
- }), E = C.filter(h).length, D;
22
- _[0] === m.labels.clear ? D = _[1] : (D = { clear: m.labels.clear }, _[0] = m.labels.clear, _[1] = D);
23
- let O;
24
- _[2] !== m.labels.search || _[3] !== m.onChange || _[4] !== v || _[5] !== x || _[6] !== D ? (O = /* @__PURE__ */ c(e, {
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: D,
27
- value: v,
26
+ labels: O,
27
+ value: y,
28
28
  onChange: m.onChange,
29
- ref: x
30
- }), _[2] = m.labels.search, _[3] = m.onChange, _[4] = v, _[5] = x, _[6] = D, _[7] = O) : O = _[7];
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
- _[9] !== E || _[10] !== S || _[11] !== b.loadMoreError || _[12] !== b.loading || _[13] !== b.noMatch || _[14] !== y.isLoading || _[15] !== m.isExpandedByDefault || _[16] !== m.label || _[17] !== m.onPick || _[18] !== m.selectedValue || _[19] !== m.size || _[20] !== v || _[21] !== C ? (A = (y.isLoading === !0 || S) && C.length === 0 ? /* @__PURE__ */ c(t, { labels: { loading: b.loading } }) : C.length === 0 ? b.loadMoreError === void 0 && /* @__PURE__ */ c(u, {
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: g.noMatch,
38
- children: b.noMatch
37
+ xstyle: _.noMatch,
38
+ children: x.noMatch
39
39
  }) : /* @__PURE__ */ c(n, {
40
40
  label: m.label,
41
- items: C,
41
+ items: w,
42
42
  value: m.selectedValue,
43
43
  size: m.size,
44
- isExpandedByDefault: m.isExpandedByDefault || v.trim() !== "" || E === 1,
44
+ isExpandedByDefault: m.isExpandedByDefault || y.trim() !== "" || D === 1,
45
45
  onChange: m.onPick
46
- }, v), _[9] = E, _[10] = S, _[11] = b.loadMoreError, _[12] = b.loading, _[13] = b.noMatch, _[14] = y.isLoading, _[15] = m.isExpandedByDefault, _[16] = m.label, _[17] = m.onPick, _[18] = m.selectedValue, _[19] = m.size, _[20] = v, _[21] = C, _[22] = A) : A = _[22];
47
- let j = S && C.length > 0, M;
48
- _[23] !== b.loadMoreError || _[24] !== b.retry || _[25] !== y.onRetryLoadMore ? (M = b.retry !== void 0 && {
49
- error: b.loadMoreError,
50
- onRetry: y.onRetryLoadMore
51
- }, _[23] = b.loadMoreError, _[24] = b.retry, _[25] = y.onRetryLoadMore, _[26] = M) : M = _[26];
52
- let N = b.retry ?? "", P;
53
- _[27] === N ? P = _[28] : (P = { retry: N }, _[27] = N, _[28] = P);
54
- let F;
55
- _[29] !== m.size || _[30] !== T || _[31] !== j || _[32] !== M || _[33] !== P ? (F = /* @__PURE__ */ c(d, {
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: j,
59
- ...M,
60
- labels: P,
58
+ isLoadingMore: M,
59
+ ...N,
60
+ labels: F,
61
61
  size: m.size,
62
- sentinelRef: T
62
+ sentinelRef: E
63
63
  })
64
- }), _[29] = m.size, _[30] = T, _[31] = j, _[32] = M, _[33] = P, _[34] = F) : F = _[34];
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
- _[38] !== m.label || _[39] !== w || _[40] !== I ? (L = /* @__PURE__ */ c(p, {
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: g.list,
72
- ref: w,
73
- children: I
74
- }), _[38] = m.label, _[39] = w, _[40] = I, _[41] = L) : L = _[41];
75
- let R;
76
- return _[42] !== O || _[43] !== L ? (R = /* @__PURE__ */ l(d, { children: [
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
- L
80
- ] }), _[42] = O, _[43] = L, _[44] = R) : R = _[44], R;
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
- var g = {
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, ...rest }: AntsomiThemeProps): ReactElement;
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] === i ? (o = a[1], s = a[2]) : ({theme: s, ...o} = i, a[0] = i, a[1] = o, a[2] = s);
9
- let c = s ?? t, l;
10
- return a[3] !== o || a[4] !== c ? (l = /* @__PURE__ */ r(n, {
11
- theme: c,
12
- ...o
13
- }), a[3] = o, a[4] = c, a[5] = l) : l = a[5], l;
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",
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.3",
105
- "@antscorp/immutable": "0.1.0",
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.14",
111
+ "@codemirror/view": "6.43.15",
109
112
  "@stylexjs/stylex": "0.19.1",
110
113
  "spin-delay": "2.0.1",
111
- "zod": "4.6.5"
114
+ "zod": "4.6.7"
112
115
  },
113
116
  "devDependencies": {
114
117
  "@antscorp/component-catalog": "0.1.0",
115
- "@antscorp/vite-stylex": "0.1.3",
116
- "@storybook/react-vite": "10.6.1",
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.7",
122
+ "@testing-library/user-event": "14.6.8",
120
123
  "@types/bun": "1.4.4",
121
- "@types/node": "24.19.1",
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.3",
127
+ "@vitest/coverage-v8": "5.0.5",
125
128
  "happy-dom": "20.14.5",
126
- "react": "19.3.0",
127
- "react-dom": "19.3.0",
128
- "storybook": "10.6.1",
129
- "vite": "8.3.3",
130
- "vitest": "5.0.3"
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
  }
@@ -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. */
@@ -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: "var(--ants-mh-blue-200)",
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. */
@@ -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 isISODate = (value: string): value is ISODateString => /^\d{4}-\d{2}-\d{2}$/u.test(value);
17
+ const hasISODateShape = (value: string): value is ISODateString =>
18
+ /^\d{4}-\d{2}-\d{2}$/u.test(value);
17
19
 
18
- /** Spread into a date input: `{ value }` when `date` is `YYYY-MM-DD`, `{}` otherwise. */
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 }` when `min` is `YYYY-MM-DD`, `{}` otherwise. */
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(--ants-mh-blue-700)",
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: "var(--ants-mh-blue-750)",
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> = Pick<
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: "var(--ants-mh-blue-50)",
81
+ backgroundColor: accentHover,
80
82
  color: colorVars["--color-accent"],
81
83
  },
82
84
  });