@ttoss/fsl-ui 0.2.6 → 0.2.8

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.
@@ -71,7 +71,8 @@ var AppShell = ({
71
71
  "data-scope": "app-shell",
72
72
  "data-part": "header",
73
73
  style: {
74
- borderBlockEnd: HAIRLINE
74
+ borderBlockEnd: HAIRLINE,
75
+ containerType: "inline-size"
75
76
  },
76
77
  children: header
77
78
  }) : null, /* @__PURE__ */(0, react_jsx_runtime.jsxs)("div", {
@@ -93,7 +94,8 @@ var AppShell = ({
93
94
  "aria-label": sidebarLabel,
94
95
  style: {
95
96
  overflowY: "auto",
96
- borderInlineEnd: HAIRLINE
97
+ borderInlineEnd: HAIRLINE,
98
+ containerType: "inline-size"
97
99
  },
98
100
  children: sidebar
99
101
  }) : null, /* @__PURE__ */(0, react_jsx_runtime.jsx)("main", {
@@ -101,7 +103,8 @@ var AppShell = ({
101
103
  "data-part": "main",
102
104
  style: {
103
105
  overflow: "auto",
104
- minInlineSize: 0
106
+ minInlineSize: 0,
107
+ containerType: "inline-size"
105
108
  },
106
109
  children
107
110
  }), hasAside ? /* @__PURE__ */(0, react_jsx_runtime.jsx)("aside", {
@@ -110,7 +113,8 @@ var AppShell = ({
110
113
  "aria-label": asideLabel,
111
114
  style: {
112
115
  overflowY: "auto",
113
- borderInlineStart: HAIRLINE
116
+ borderInlineStart: HAIRLINE,
117
+ containerType: "inline-size"
114
118
  },
115
119
  children: aside
116
120
  }) : null]
@@ -71,7 +71,8 @@ var AppShell = ({
71
71
  "data-scope": "app-shell",
72
72
  "data-part": "header",
73
73
  style: {
74
- borderBlockEnd: HAIRLINE
74
+ borderBlockEnd: HAIRLINE,
75
+ containerType: "inline-size"
75
76
  },
76
77
  children: header
77
78
  }) : null, /* @__PURE__ */jsxs("div", {
@@ -93,7 +94,8 @@ var AppShell = ({
93
94
  "aria-label": sidebarLabel,
94
95
  style: {
95
96
  overflowY: "auto",
96
- borderInlineEnd: HAIRLINE
97
+ borderInlineEnd: HAIRLINE,
98
+ containerType: "inline-size"
97
99
  },
98
100
  children: sidebar
99
101
  }) : null, /* @__PURE__ */jsx("main", {
@@ -101,7 +103,8 @@ var AppShell = ({
101
103
  "data-part": "main",
102
104
  style: {
103
105
  overflow: "auto",
104
- minInlineSize: 0
106
+ minInlineSize: 0,
107
+ containerType: "inline-size"
105
108
  },
106
109
  children
107
110
  }), hasAside ? /* @__PURE__ */jsx("aside", {
@@ -110,7 +113,8 @@ var AppShell = ({
110
113
  "aria-label": asideLabel,
111
114
  style: {
112
115
  overflowY: "auto",
113
- borderInlineStart: HAIRLINE
116
+ borderInlineStart: HAIRLINE,
117
+ containerType: "inline-size"
114
118
  },
115
119
  children: aside
116
120
  }) : null]
@@ -0,0 +1,317 @@
1
+ /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
+ const require_focusRing = require('../../tokens/focusRing.cjs');
3
+ const require_resolveInteractiveStyle = require('../../tokens/resolveInteractiveStyle.cjs');
4
+ const require_Icon = require('../Icon/Icon.cjs');
5
+ const require_escapeHatch = require('../../tokens/escapeHatch.cjs');
6
+ let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let react_aria_components = require("react-aria-components");
9
+
10
+ //#region src/components/ComboBox/ComboBox.tsx
11
+ /** Formal semantic identity — ComboBox root (Input entity). */
12
+ var comboBoxMeta = {
13
+ displayName: "ComboBox",
14
+ entity: "Input",
15
+ structure: "root"
16
+ };
17
+ /** Formal semantic identity — a single filtered option (Selection entity). */
18
+ var comboBoxItemMeta = {
19
+ displayName: "ComboBoxItem",
20
+ entity: "Selection",
21
+ structure: "item",
22
+ composition: "selection"
23
+ };
24
+ /**
25
+ * Scroll cap for the options popover. A ComboBox exists because the option set
26
+ * is too long to scan (friction F-008: 30+ timezones), so the list must scroll
27
+ * inside a bounded viewport instead of running off-screen. `20rem` keeps ~8
28
+ * options visible at the standard hit size; the `60vh` term keeps it inside
29
+ * short viewports. Host-overridable per CONTRACT.md §7.
30
+ */
31
+ var LIST_MAX_HEIGHT = "min(20rem, 60vh)";
32
+ /** Control box (the `Group`) chrome — the framed field around input + trigger. */
33
+ var buildControlBoxStyle = ({
34
+ c,
35
+ isDisabled,
36
+ isInvalid,
37
+ isFocusVisible
38
+ }) => {
39
+ return {
40
+ boxSizing: "border-box",
41
+ display: "inline-flex",
42
+ alignItems: "center",
43
+ minHeight: _ttoss_fsl_theme_vars.vars.sizing.hit,
44
+ borderRadius: _ttoss_fsl_theme_vars.vars.radii.control,
45
+ borderWidth: _ttoss_fsl_theme_vars.vars.border.outline.control.width,
46
+ borderStyle: _ttoss_fsl_theme_vars.vars.border.outline.control.style,
47
+ transitionProperty: "background-color, border-color",
48
+ transitionDuration: _ttoss_fsl_theme_vars.vars.motion.feedback.duration,
49
+ transitionTimingFunction: _ttoss_fsl_theme_vars.vars.motion.feedback.easing,
50
+ backgroundColor: require_resolveInteractiveStyle.resolveInteractiveStyle(c?.background, {
51
+ isDisabled,
52
+ isInvalid
53
+ }),
54
+ borderColor: require_resolveInteractiveStyle.resolveInteractiveStyle(c?.border, {
55
+ isDisabled,
56
+ isInvalid,
57
+ isFocusVisible
58
+ }),
59
+ outline: require_focusRing.focusRingOutline(isFocusVisible)
60
+ };
61
+ };
62
+ /** The `<input>` itself — borderless; the surrounding `Group` owns the frame. */
63
+ var buildInputStyle = c => {
64
+ return {
65
+ boxSizing: "border-box",
66
+ flex: 1,
67
+ minWidth: 0,
68
+ border: 0,
69
+ background: "transparent",
70
+ outline: "none",
71
+ paddingBlock: _ttoss_fsl_theme_vars.vars.spacing.inset.control.sm,
72
+ paddingInline: _ttoss_fsl_theme_vars.vars.spacing.inset.control.md,
73
+ color: c?.text?.default,
74
+ ..._ttoss_fsl_theme_vars.vars.text.label.md
75
+ };
76
+ };
77
+ /** Chevron button chrome — borderless Action-pattern control in Input chrome. */
78
+ var buildTriggerStyle = ({
79
+ c,
80
+ isDisabled
81
+ }) => {
82
+ return {
83
+ boxSizing: "border-box",
84
+ display: "inline-flex",
85
+ alignItems: "center",
86
+ justifyContent: "center",
87
+ flexShrink: 0,
88
+ border: 0,
89
+ background: "transparent",
90
+ cursor: isDisabled ? "not-allowed" : "pointer",
91
+ opacity: isDisabled ? _ttoss_fsl_theme_vars.vars.opacity.disabled : void 0,
92
+ paddingBlock: _ttoss_fsl_theme_vars.vars.spacing.inset.control.sm,
93
+ paddingInline: _ttoss_fsl_theme_vars.vars.spacing.inset.control.sm,
94
+ color: c?.text?.default
95
+ };
96
+ };
97
+ /** Options popover surface — Input-entity chrome, matching the control frame. */
98
+ var buildPopoverStyle = c => {
99
+ return {
100
+ boxSizing: "border-box",
101
+ borderRadius: _ttoss_fsl_theme_vars.vars.radii.control,
102
+ borderWidth: _ttoss_fsl_theme_vars.vars.border.outline.control.width,
103
+ borderStyle: _ttoss_fsl_theme_vars.vars.border.outline.control.style,
104
+ borderColor: c?.border?.default,
105
+ backgroundColor: c?.background?.default,
106
+ overflow: "hidden"
107
+ };
108
+ };
109
+ /**
110
+ * Resolve the field's text colors once (default for label/description/input,
111
+ * invalid for the validation message). Hoisted out of the render so the
112
+ * optional-chain reads keep the component's cyclomatic complexity low.
113
+ */
114
+ var resolveFieldTextColors = c => {
115
+ const text = c?.text;
116
+ return {
117
+ base: text?.default,
118
+ invalid: text?.invalid ?? text?.default
119
+ };
120
+ };
121
+ /**
122
+ * A semantic text input with a filtered option list, built on React Aria.
123
+ *
124
+ * The answer to a `Select` that has grown past scanning range: typing filters
125
+ * the options (typeahead), while the chevron still opens the full list. Entity
126
+ * = Input — the user's primary act is typing, and the list narrows what they
127
+ * type (see the Entity rationale in this file's header). Options are
128
+ * `ComboBoxItem`.
129
+ *
130
+ * Unlike `Select`, this composite ships a `validationMessage` part, so an
131
+ * invalid choice can state why inside the system. Validation is the `invalid`
132
+ * State (via `isInvalid`/`validate`), never an `evaluation` variant.
133
+ *
134
+ * Host geometry knob: `--fsl-combo-box-max-height` caps the scrolling list.
135
+ *
136
+ * @example
137
+ * ```tsx
138
+ * <ComboBox label="Timezone" defaultSelectedKey="America/Sao_Paulo">
139
+ * <ComboBoxItem id="America/Sao_Paulo">São Paulo</ComboBoxItem>
140
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
141
+ * </ComboBox>
142
+ * ```
143
+ */
144
+ var ComboBox = ({
145
+ label,
146
+ description,
147
+ errorMessage,
148
+ placeholder = "Search…",
149
+ triggerLabel = "Show suggestions",
150
+ children,
151
+ ...props
152
+ }) => {
153
+ const c = _ttoss_fsl_theme_vars.vars.colors.input.primary;
154
+ const {
155
+ base,
156
+ invalid
157
+ } = resolveFieldTextColors(c);
158
+ return /* @__PURE__ */(0, react_jsx_runtime.jsxs)(react_aria_components.ComboBox, {
159
+ ...props,
160
+ "data-scope": "combo-box",
161
+ "data-part": "root",
162
+ style: {
163
+ boxSizing: "border-box",
164
+ display: "flex",
165
+ flexDirection: "column",
166
+ gap: _ttoss_fsl_theme_vars.vars.spacing.gap.stack.xs
167
+ },
168
+ children: [label != null && /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Label, {
169
+ "data-scope": "combo-box",
170
+ "data-part": "label",
171
+ style: {
172
+ ..._ttoss_fsl_theme_vars.vars.text.label.md,
173
+ color: base
174
+ },
175
+ children: label
176
+ }), /* @__PURE__ */(0, react_jsx_runtime.jsxs)(react_aria_components.Group, {
177
+ "data-scope": "combo-box",
178
+ "data-part": "control",
179
+ style: ({
180
+ isDisabled,
181
+ isInvalid,
182
+ isFocusVisible
183
+ }) => {
184
+ return buildControlBoxStyle({
185
+ c,
186
+ isDisabled,
187
+ isInvalid,
188
+ isFocusVisible
189
+ });
190
+ },
191
+ children: [/* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Input, {
192
+ "data-scope": "combo-box",
193
+ "data-part": "control",
194
+ placeholder,
195
+ style: buildInputStyle(c)
196
+ }), /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Button, {
197
+ "aria-label": triggerLabel,
198
+ "data-scope": "combo-box",
199
+ "data-part": "trigger",
200
+ style: ({
201
+ isDisabled
202
+ }) => {
203
+ return buildTriggerStyle({
204
+ c,
205
+ isDisabled
206
+ });
207
+ },
208
+ children: /* @__PURE__ */(0, react_jsx_runtime.jsx)(require_Icon.Icon, {
209
+ intent: "disclosure.expand",
210
+ size: "sm"
211
+ })
212
+ })]
213
+ }), description != null && /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Text, {
214
+ slot: "description",
215
+ "data-scope": "combo-box",
216
+ "data-part": "description",
217
+ style: {
218
+ ..._ttoss_fsl_theme_vars.vars.text.label.sm,
219
+ color: base
220
+ },
221
+ children: description
222
+ }), /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.FieldError, {
223
+ "data-scope": "combo-box",
224
+ "data-part": "validationMessage",
225
+ style: {
226
+ ..._ttoss_fsl_theme_vars.vars.text.label.sm,
227
+ color: invalid
228
+ },
229
+ children: errorMessage
230
+ }), /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Popover, {
231
+ "data-scope": "combo-box",
232
+ "data-part": "positioner",
233
+ style: buildPopoverStyle(c),
234
+ children: /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.ListBox, {
235
+ "data-scope": "combo-box",
236
+ "data-part": "surface",
237
+ style: {
238
+ outline: "none",
239
+ display: "flex",
240
+ flexDirection: "column",
241
+ padding: _ttoss_fsl_theme_vars.vars.spacing.inset.control.md,
242
+ gap: _ttoss_fsl_theme_vars.vars.spacing.gap.stack.xs,
243
+ maxHeight: require_escapeHatch.fslVar("--fsl-combo-box-max-height", LIST_MAX_HEIGHT),
244
+ overflowY: "auto"
245
+ },
246
+ children
247
+ })
248
+ })]
249
+ });
250
+ };
251
+ ComboBox.displayName = comboBoxMeta.displayName;
252
+ /**
253
+ * A single option inside a `ComboBox` list.
254
+ *
255
+ * Renders interactive hover/focus/selected states via
256
+ * `vars.colors.input.primary.*` — the same selection chrome `SelectItem` and
257
+ * `ListBoxItem` carry (ADR-007).
258
+ *
259
+ * @example
260
+ * ```tsx
261
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
262
+ * ```
263
+ */
264
+ var ComboBoxItem = ({
265
+ children,
266
+ ...props
267
+ }) => {
268
+ const c = _ttoss_fsl_theme_vars.vars.colors.input.primary;
269
+ return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.ListBoxItem, {
270
+ ...props,
271
+ "data-scope": "combo-box",
272
+ "data-part": "item",
273
+ style: ({
274
+ isHovered,
275
+ isPressed,
276
+ isDisabled,
277
+ isFocusVisible,
278
+ isSelected
279
+ }) => {
280
+ return {
281
+ boxSizing: "border-box",
282
+ display: "flex",
283
+ alignItems: "center",
284
+ paddingBlock: _ttoss_fsl_theme_vars.vars.spacing.inset.control.md,
285
+ paddingInline: _ttoss_fsl_theme_vars.vars.spacing.inset.control.md,
286
+ borderRadius: _ttoss_fsl_theme_vars.vars.radii.control,
287
+ cursor: isDisabled ? "not-allowed" : "pointer",
288
+ opacity: isDisabled ? _ttoss_fsl_theme_vars.vars.opacity.disabled : void 0,
289
+ ..._ttoss_fsl_theme_vars.vars.text.label.md,
290
+ backgroundColor: require_resolveInteractiveStyle.resolveInteractiveStyle(c?.background, {
291
+ isDisabled,
292
+ isSelected,
293
+ isHovered,
294
+ isPressed
295
+ }),
296
+ color: require_resolveInteractiveStyle.resolveInteractiveStyle(c?.text, {
297
+ isDisabled,
298
+ isSelected,
299
+ isHovered
300
+ }) ?? c?.text?.default,
301
+ outline: require_focusRing.focusRingOutline(isFocusVisible),
302
+ outlineOffset: "2px",
303
+ transitionProperty: "background-color, color",
304
+ transitionDuration: _ttoss_fsl_theme_vars.vars.motion.feedback.duration,
305
+ transitionTimingFunction: _ttoss_fsl_theme_vars.vars.motion.feedback.easing
306
+ };
307
+ },
308
+ children
309
+ });
310
+ };
311
+ ComboBoxItem.displayName = comboBoxItemMeta.displayName;
312
+
313
+ //#endregion
314
+ exports.ComboBox = ComboBox;
315
+ exports.ComboBoxItem = ComboBoxItem;
316
+ exports.comboBoxItemMeta = comboBoxItemMeta;
317
+ exports.comboBoxMeta = comboBoxMeta;
@@ -0,0 +1,106 @@
1
+
2
+ import * as React from "react";
3
+ import { ComboBoxProps, ListBoxItemProps } from "react-aria-components";
4
+
5
+ //#region src/components/ComboBox/ComboBox.d.ts
6
+ /** Formal semantic identity — ComboBox root (Input entity). */
7
+ declare const comboBoxMeta: {
8
+ readonly displayName: "ComboBox";
9
+ readonly entity: "Input";
10
+ readonly structure: "root";
11
+ };
12
+ /** Formal semantic identity — a single filtered option (Selection entity). */
13
+ declare const comboBoxItemMeta: {
14
+ readonly displayName: "ComboBoxItem";
15
+ readonly entity: "Selection";
16
+ readonly structure: "item";
17
+ readonly composition: "selection";
18
+ };
19
+ /** Props for the ComboBox component. */
20
+ interface ComboBoxProps$1<T extends object = object> extends Omit<ComboBoxProps<T>, 'style' | 'children' | 'className'> {
21
+ /** Visible label displayed above the field. */
22
+ label?: React.ReactNode;
23
+ /** Supplementary helper text linked to the field via `aria-describedby`. */
24
+ description?: React.ReactNode;
25
+ /**
26
+ * Validation message shown when the field is invalid. Supply
27
+ * caller-localized copy (i18n rule / §6).
28
+ */
29
+ errorMessage?: React.ReactNode;
30
+ /**
31
+ * Placeholder shown in the text input while it is empty.
32
+ *
33
+ * Ships a documented English fallback — the placeholder is supplementary
34
+ * hint text, not a flow-critical label (CONTRIBUTING §6.2 / ADR-001).
35
+ * Localized hosts should still supply their own copy.
36
+ * @default 'Search…'
37
+ */
38
+ placeholder?: string;
39
+ /**
40
+ * Accessible name for the chevron button that opens the full list (the icon
41
+ * is the sole carrier of meaning). Documented English fallback, overridable
42
+ * (i18n rule §6.2).
43
+ * @default 'Show suggestions'
44
+ */
45
+ triggerLabel?: string;
46
+ /** `ComboBoxItem` children rendered inside the filtered options list. */
47
+ children?: React.ReactNode;
48
+ }
49
+ /**
50
+ * A semantic text input with a filtered option list, built on React Aria.
51
+ *
52
+ * The answer to a `Select` that has grown past scanning range: typing filters
53
+ * the options (typeahead), while the chevron still opens the full list. Entity
54
+ * = Input — the user's primary act is typing, and the list narrows what they
55
+ * type (see the Entity rationale in this file's header). Options are
56
+ * `ComboBoxItem`.
57
+ *
58
+ * Unlike `Select`, this composite ships a `validationMessage` part, so an
59
+ * invalid choice can state why inside the system. Validation is the `invalid`
60
+ * State (via `isInvalid`/`validate`), never an `evaluation` variant.
61
+ *
62
+ * Host geometry knob: `--fsl-combo-box-max-height` caps the scrolling list.
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <ComboBox label="Timezone" defaultSelectedKey="America/Sao_Paulo">
67
+ * <ComboBoxItem id="America/Sao_Paulo">São Paulo</ComboBoxItem>
68
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
69
+ * </ComboBox>
70
+ * ```
71
+ */
72
+ declare const ComboBox: {
73
+ <T extends object = object>({
74
+ label,
75
+ description,
76
+ errorMessage,
77
+ placeholder,
78
+ triggerLabel,
79
+ children,
80
+ ...props
81
+ }: ComboBoxProps$1<T>): import("react/jsx-runtime").JSX.Element;
82
+ displayName: "ComboBox";
83
+ };
84
+ /** Props for the ComboBoxItem component. */
85
+ type ComboBoxItemProps = Omit<ListBoxItemProps, 'style'>;
86
+ /**
87
+ * A single option inside a `ComboBox` list.
88
+ *
89
+ * Renders interactive hover/focus/selected states via
90
+ * `vars.colors.input.primary.*` — the same selection chrome `SelectItem` and
91
+ * `ListBoxItem` carry (ADR-007).
92
+ *
93
+ * @example
94
+ * ```tsx
95
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
96
+ * ```
97
+ */
98
+ declare const ComboBoxItem: {
99
+ ({
100
+ children,
101
+ ...props
102
+ }: ComboBoxItemProps): import("react/jsx-runtime").JSX.Element;
103
+ displayName: "ComboBoxItem";
104
+ };
105
+ //#endregion
106
+ export { ComboBox, ComboBoxItem, ComboBoxItemProps, ComboBoxProps$1 as ComboBoxProps, comboBoxItemMeta, comboBoxMeta };
@@ -0,0 +1,106 @@
1
+
2
+ import { ComboBoxProps, ListBoxItemProps } from "react-aria-components";
3
+ import * as React from "react";
4
+
5
+ //#region src/components/ComboBox/ComboBox.d.ts
6
+ /** Formal semantic identity — ComboBox root (Input entity). */
7
+ declare const comboBoxMeta: {
8
+ readonly displayName: "ComboBox";
9
+ readonly entity: "Input";
10
+ readonly structure: "root";
11
+ };
12
+ /** Formal semantic identity — a single filtered option (Selection entity). */
13
+ declare const comboBoxItemMeta: {
14
+ readonly displayName: "ComboBoxItem";
15
+ readonly entity: "Selection";
16
+ readonly structure: "item";
17
+ readonly composition: "selection";
18
+ };
19
+ /** Props for the ComboBox component. */
20
+ interface ComboBoxProps$1<T extends object = object> extends Omit<ComboBoxProps<T>, 'style' | 'children' | 'className'> {
21
+ /** Visible label displayed above the field. */
22
+ label?: React.ReactNode;
23
+ /** Supplementary helper text linked to the field via `aria-describedby`. */
24
+ description?: React.ReactNode;
25
+ /**
26
+ * Validation message shown when the field is invalid. Supply
27
+ * caller-localized copy (i18n rule / §6).
28
+ */
29
+ errorMessage?: React.ReactNode;
30
+ /**
31
+ * Placeholder shown in the text input while it is empty.
32
+ *
33
+ * Ships a documented English fallback — the placeholder is supplementary
34
+ * hint text, not a flow-critical label (CONTRIBUTING §6.2 / ADR-001).
35
+ * Localized hosts should still supply their own copy.
36
+ * @default 'Search…'
37
+ */
38
+ placeholder?: string;
39
+ /**
40
+ * Accessible name for the chevron button that opens the full list (the icon
41
+ * is the sole carrier of meaning). Documented English fallback, overridable
42
+ * (i18n rule §6.2).
43
+ * @default 'Show suggestions'
44
+ */
45
+ triggerLabel?: string;
46
+ /** `ComboBoxItem` children rendered inside the filtered options list. */
47
+ children?: React.ReactNode;
48
+ }
49
+ /**
50
+ * A semantic text input with a filtered option list, built on React Aria.
51
+ *
52
+ * The answer to a `Select` that has grown past scanning range: typing filters
53
+ * the options (typeahead), while the chevron still opens the full list. Entity
54
+ * = Input — the user's primary act is typing, and the list narrows what they
55
+ * type (see the Entity rationale in this file's header). Options are
56
+ * `ComboBoxItem`.
57
+ *
58
+ * Unlike `Select`, this composite ships a `validationMessage` part, so an
59
+ * invalid choice can state why inside the system. Validation is the `invalid`
60
+ * State (via `isInvalid`/`validate`), never an `evaluation` variant.
61
+ *
62
+ * Host geometry knob: `--fsl-combo-box-max-height` caps the scrolling list.
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <ComboBox label="Timezone" defaultSelectedKey="America/Sao_Paulo">
67
+ * <ComboBoxItem id="America/Sao_Paulo">São Paulo</ComboBoxItem>
68
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
69
+ * </ComboBox>
70
+ * ```
71
+ */
72
+ declare const ComboBox$1: {
73
+ <T extends object = object>({
74
+ label,
75
+ description,
76
+ errorMessage,
77
+ placeholder,
78
+ triggerLabel,
79
+ children,
80
+ ...props
81
+ }: ComboBoxProps$1<T>): import("react/jsx-runtime").JSX.Element;
82
+ displayName: "ComboBox";
83
+ };
84
+ /** Props for the ComboBoxItem component. */
85
+ type ComboBoxItemProps = Omit<ListBoxItemProps, 'style'>;
86
+ /**
87
+ * A single option inside a `ComboBox` list.
88
+ *
89
+ * Renders interactive hover/focus/selected states via
90
+ * `vars.colors.input.primary.*` — the same selection chrome `SelectItem` and
91
+ * `ListBoxItem` carry (ADR-007).
92
+ *
93
+ * @example
94
+ * ```tsx
95
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
96
+ * ```
97
+ */
98
+ declare const ComboBoxItem: {
99
+ ({
100
+ children,
101
+ ...props
102
+ }: ComboBoxItemProps): import("react/jsx-runtime").JSX.Element;
103
+ displayName: "ComboBoxItem";
104
+ };
105
+ //#endregion
106
+ export { ComboBox$1 as ComboBox, ComboBoxItem, ComboBoxItemProps, ComboBoxProps$1 as ComboBoxProps, comboBoxItemMeta, comboBoxMeta };
@@ -0,0 +1,314 @@
1
+ /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
+ import { focusRingOutline } from "../../tokens/focusRing.mjs";
3
+ import { resolveInteractiveStyle } from "../../tokens/resolveInteractiveStyle.mjs";
4
+ import { Icon } from "../Icon/Icon.mjs";
5
+ import { fslVar } from "../../tokens/escapeHatch.mjs";
6
+ import { vars } from "@ttoss/fsl-theme/vars";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Button, ComboBox, FieldError, Group, Input, Label, ListBox, ListBoxItem, Popover, Text } from "react-aria-components";
9
+
10
+ //#region src/components/ComboBox/ComboBox.tsx
11
+ /** Formal semantic identity — ComboBox root (Input entity). */
12
+ var comboBoxMeta = {
13
+ displayName: "ComboBox",
14
+ entity: "Input",
15
+ structure: "root"
16
+ };
17
+ /** Formal semantic identity — a single filtered option (Selection entity). */
18
+ var comboBoxItemMeta = {
19
+ displayName: "ComboBoxItem",
20
+ entity: "Selection",
21
+ structure: "item",
22
+ composition: "selection"
23
+ };
24
+ /**
25
+ * Scroll cap for the options popover. A ComboBox exists because the option set
26
+ * is too long to scan (friction F-008: 30+ timezones), so the list must scroll
27
+ * inside a bounded viewport instead of running off-screen. `20rem` keeps ~8
28
+ * options visible at the standard hit size; the `60vh` term keeps it inside
29
+ * short viewports. Host-overridable per CONTRACT.md §7.
30
+ */
31
+ var LIST_MAX_HEIGHT = "min(20rem, 60vh)";
32
+ /** Control box (the `Group`) chrome — the framed field around input + trigger. */
33
+ var buildControlBoxStyle = ({
34
+ c,
35
+ isDisabled,
36
+ isInvalid,
37
+ isFocusVisible
38
+ }) => {
39
+ return {
40
+ boxSizing: "border-box",
41
+ display: "inline-flex",
42
+ alignItems: "center",
43
+ minHeight: vars.sizing.hit,
44
+ borderRadius: vars.radii.control,
45
+ borderWidth: vars.border.outline.control.width,
46
+ borderStyle: vars.border.outline.control.style,
47
+ transitionProperty: "background-color, border-color",
48
+ transitionDuration: vars.motion.feedback.duration,
49
+ transitionTimingFunction: vars.motion.feedback.easing,
50
+ backgroundColor: resolveInteractiveStyle(c?.background, {
51
+ isDisabled,
52
+ isInvalid
53
+ }),
54
+ borderColor: resolveInteractiveStyle(c?.border, {
55
+ isDisabled,
56
+ isInvalid,
57
+ isFocusVisible
58
+ }),
59
+ outline: focusRingOutline(isFocusVisible)
60
+ };
61
+ };
62
+ /** The `<input>` itself — borderless; the surrounding `Group` owns the frame. */
63
+ var buildInputStyle = c => {
64
+ return {
65
+ boxSizing: "border-box",
66
+ flex: 1,
67
+ minWidth: 0,
68
+ border: 0,
69
+ background: "transparent",
70
+ outline: "none",
71
+ paddingBlock: vars.spacing.inset.control.sm,
72
+ paddingInline: vars.spacing.inset.control.md,
73
+ color: c?.text?.default,
74
+ ...vars.text.label.md
75
+ };
76
+ };
77
+ /** Chevron button chrome — borderless Action-pattern control in Input chrome. */
78
+ var buildTriggerStyle = ({
79
+ c,
80
+ isDisabled
81
+ }) => {
82
+ return {
83
+ boxSizing: "border-box",
84
+ display: "inline-flex",
85
+ alignItems: "center",
86
+ justifyContent: "center",
87
+ flexShrink: 0,
88
+ border: 0,
89
+ background: "transparent",
90
+ cursor: isDisabled ? "not-allowed" : "pointer",
91
+ opacity: isDisabled ? vars.opacity.disabled : void 0,
92
+ paddingBlock: vars.spacing.inset.control.sm,
93
+ paddingInline: vars.spacing.inset.control.sm,
94
+ color: c?.text?.default
95
+ };
96
+ };
97
+ /** Options popover surface — Input-entity chrome, matching the control frame. */
98
+ var buildPopoverStyle = c => {
99
+ return {
100
+ boxSizing: "border-box",
101
+ borderRadius: vars.radii.control,
102
+ borderWidth: vars.border.outline.control.width,
103
+ borderStyle: vars.border.outline.control.style,
104
+ borderColor: c?.border?.default,
105
+ backgroundColor: c?.background?.default,
106
+ overflow: "hidden"
107
+ };
108
+ };
109
+ /**
110
+ * Resolve the field's text colors once (default for label/description/input,
111
+ * invalid for the validation message). Hoisted out of the render so the
112
+ * optional-chain reads keep the component's cyclomatic complexity low.
113
+ */
114
+ var resolveFieldTextColors = c => {
115
+ const text = c?.text;
116
+ return {
117
+ base: text?.default,
118
+ invalid: text?.invalid ?? text?.default
119
+ };
120
+ };
121
+ /**
122
+ * A semantic text input with a filtered option list, built on React Aria.
123
+ *
124
+ * The answer to a `Select` that has grown past scanning range: typing filters
125
+ * the options (typeahead), while the chevron still opens the full list. Entity
126
+ * = Input — the user's primary act is typing, and the list narrows what they
127
+ * type (see the Entity rationale in this file's header). Options are
128
+ * `ComboBoxItem`.
129
+ *
130
+ * Unlike `Select`, this composite ships a `validationMessage` part, so an
131
+ * invalid choice can state why inside the system. Validation is the `invalid`
132
+ * State (via `isInvalid`/`validate`), never an `evaluation` variant.
133
+ *
134
+ * Host geometry knob: `--fsl-combo-box-max-height` caps the scrolling list.
135
+ *
136
+ * @example
137
+ * ```tsx
138
+ * <ComboBox label="Timezone" defaultSelectedKey="America/Sao_Paulo">
139
+ * <ComboBoxItem id="America/Sao_Paulo">São Paulo</ComboBoxItem>
140
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
141
+ * </ComboBox>
142
+ * ```
143
+ */
144
+ var ComboBox$1 = ({
145
+ label,
146
+ description,
147
+ errorMessage,
148
+ placeholder = "Search…",
149
+ triggerLabel = "Show suggestions",
150
+ children,
151
+ ...props
152
+ }) => {
153
+ const c = vars.colors.input.primary;
154
+ const {
155
+ base,
156
+ invalid
157
+ } = resolveFieldTextColors(c);
158
+ return /* @__PURE__ */jsxs(ComboBox, {
159
+ ...props,
160
+ "data-scope": "combo-box",
161
+ "data-part": "root",
162
+ style: {
163
+ boxSizing: "border-box",
164
+ display: "flex",
165
+ flexDirection: "column",
166
+ gap: vars.spacing.gap.stack.xs
167
+ },
168
+ children: [label != null && /* @__PURE__ */jsx(Label, {
169
+ "data-scope": "combo-box",
170
+ "data-part": "label",
171
+ style: {
172
+ ...vars.text.label.md,
173
+ color: base
174
+ },
175
+ children: label
176
+ }), /* @__PURE__ */jsxs(Group, {
177
+ "data-scope": "combo-box",
178
+ "data-part": "control",
179
+ style: ({
180
+ isDisabled,
181
+ isInvalid,
182
+ isFocusVisible
183
+ }) => {
184
+ return buildControlBoxStyle({
185
+ c,
186
+ isDisabled,
187
+ isInvalid,
188
+ isFocusVisible
189
+ });
190
+ },
191
+ children: [/* @__PURE__ */jsx(Input, {
192
+ "data-scope": "combo-box",
193
+ "data-part": "control",
194
+ placeholder,
195
+ style: buildInputStyle(c)
196
+ }), /* @__PURE__ */jsx(Button, {
197
+ "aria-label": triggerLabel,
198
+ "data-scope": "combo-box",
199
+ "data-part": "trigger",
200
+ style: ({
201
+ isDisabled
202
+ }) => {
203
+ return buildTriggerStyle({
204
+ c,
205
+ isDisabled
206
+ });
207
+ },
208
+ children: /* @__PURE__ */jsx(Icon, {
209
+ intent: "disclosure.expand",
210
+ size: "sm"
211
+ })
212
+ })]
213
+ }), description != null && /* @__PURE__ */jsx(Text, {
214
+ slot: "description",
215
+ "data-scope": "combo-box",
216
+ "data-part": "description",
217
+ style: {
218
+ ...vars.text.label.sm,
219
+ color: base
220
+ },
221
+ children: description
222
+ }), /* @__PURE__ */jsx(FieldError, {
223
+ "data-scope": "combo-box",
224
+ "data-part": "validationMessage",
225
+ style: {
226
+ ...vars.text.label.sm,
227
+ color: invalid
228
+ },
229
+ children: errorMessage
230
+ }), /* @__PURE__ */jsx(Popover, {
231
+ "data-scope": "combo-box",
232
+ "data-part": "positioner",
233
+ style: buildPopoverStyle(c),
234
+ children: /* @__PURE__ */jsx(ListBox, {
235
+ "data-scope": "combo-box",
236
+ "data-part": "surface",
237
+ style: {
238
+ outline: "none",
239
+ display: "flex",
240
+ flexDirection: "column",
241
+ padding: vars.spacing.inset.control.md,
242
+ gap: vars.spacing.gap.stack.xs,
243
+ maxHeight: fslVar("--fsl-combo-box-max-height", LIST_MAX_HEIGHT),
244
+ overflowY: "auto"
245
+ },
246
+ children
247
+ })
248
+ })]
249
+ });
250
+ };
251
+ ComboBox$1.displayName = comboBoxMeta.displayName;
252
+ /**
253
+ * A single option inside a `ComboBox` list.
254
+ *
255
+ * Renders interactive hover/focus/selected states via
256
+ * `vars.colors.input.primary.*` — the same selection chrome `SelectItem` and
257
+ * `ListBoxItem` carry (ADR-007).
258
+ *
259
+ * @example
260
+ * ```tsx
261
+ * <ComboBoxItem id="Europe/Lisbon">Lisbon</ComboBoxItem>
262
+ * ```
263
+ */
264
+ var ComboBoxItem = ({
265
+ children,
266
+ ...props
267
+ }) => {
268
+ const c = vars.colors.input.primary;
269
+ return /* @__PURE__ */jsx(ListBoxItem, {
270
+ ...props,
271
+ "data-scope": "combo-box",
272
+ "data-part": "item",
273
+ style: ({
274
+ isHovered,
275
+ isPressed,
276
+ isDisabled,
277
+ isFocusVisible,
278
+ isSelected
279
+ }) => {
280
+ return {
281
+ boxSizing: "border-box",
282
+ display: "flex",
283
+ alignItems: "center",
284
+ paddingBlock: vars.spacing.inset.control.md,
285
+ paddingInline: vars.spacing.inset.control.md,
286
+ borderRadius: vars.radii.control,
287
+ cursor: isDisabled ? "not-allowed" : "pointer",
288
+ opacity: isDisabled ? vars.opacity.disabled : void 0,
289
+ ...vars.text.label.md,
290
+ backgroundColor: resolveInteractiveStyle(c?.background, {
291
+ isDisabled,
292
+ isSelected,
293
+ isHovered,
294
+ isPressed
295
+ }),
296
+ color: resolveInteractiveStyle(c?.text, {
297
+ isDisabled,
298
+ isSelected,
299
+ isHovered
300
+ }) ?? c?.text?.default,
301
+ outline: focusRingOutline(isFocusVisible),
302
+ outlineOffset: "2px",
303
+ transitionProperty: "background-color, color",
304
+ transitionDuration: vars.motion.feedback.duration,
305
+ transitionTimingFunction: vars.motion.feedback.easing
306
+ };
307
+ },
308
+ children
309
+ });
310
+ };
311
+ ComboBoxItem.displayName = comboBoxItemMeta.displayName;
312
+
313
+ //#endregion
314
+ export { ComboBox$1 as ComboBox, ComboBoxItem, comboBoxItemMeta, comboBoxMeta };
@@ -53,7 +53,8 @@ var Container = ({
53
53
  marginInline: "auto",
54
54
  width: "100%",
55
55
  maxWidth: MAX_WIDTH[size],
56
- paddingInline: GUTTER[gutter]
56
+ paddingInline: GUTTER[gutter],
57
+ containerType: "inline-size"
57
58
  },
58
59
  children
59
60
  });
@@ -53,7 +53,8 @@ var Container = ({
53
53
  marginInline: "auto",
54
54
  width: "100%",
55
55
  maxWidth: MAX_WIDTH[size],
56
- paddingInline: GUTTER[gutter]
56
+ paddingInline: GUTTER[gutter],
57
+ containerType: "inline-size"
57
58
  },
58
59
  children
59
60
  });
@@ -1,6 +1,9 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
3
  let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
3
4
  let react_jsx_runtime = require("react/jsx-runtime");
5
+ let react = require("react");
6
+ react = require_runtime.__toESM(react);
4
7
 
5
8
  //#region src/components/Grid/Grid.tsx
6
9
  /** Formal semantic identity — Grid root (Structure entity, 2D layout). */
@@ -45,6 +48,11 @@ var autoTracks = min => {
45
48
  * named scale, so grid rhythm stays consistent across a product. For a single
46
49
  * axis of flow, reach for `Stack` instead.
47
50
  *
51
+ * Each child is hosted in a `data-part="item"` wrapper that establishes
52
+ * `container-type: inline-size` (ADR-011): the theme's container-fluid
53
+ * scales (`cqi` clamps) resolve against the item's track width, so type and
54
+ * spacing inside a narrow tile scale down instead of overflowing.
55
+ *
48
56
  * @example
49
57
  * ```tsx
50
58
  * // Fixed columns
@@ -78,7 +86,18 @@ var Grid = ({
78
86
  alignItems: ALIGN[align],
79
87
  justifyItems: ALIGN[justify]
80
88
  },
81
- children
89
+ children: react.Children.map(children, child => {
90
+ if (child === null || child === void 0) return child;
91
+ return /* @__PURE__ */(0, react_jsx_runtime.jsx)("div", {
92
+ "data-scope": "grid",
93
+ "data-part": "item",
94
+ style: {
95
+ display: "grid",
96
+ containerType: "inline-size"
97
+ },
98
+ children: child
99
+ });
100
+ })
82
101
  });
83
102
  };
84
103
  Grid.displayName = gridMeta.displayName;
@@ -62,6 +62,11 @@ interface GridProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style' |
62
62
  * named scale, so grid rhythm stays consistent across a product. For a single
63
63
  * axis of flow, reach for `Stack` instead.
64
64
  *
65
+ * Each child is hosted in a `data-part="item"` wrapper that establishes
66
+ * `container-type: inline-size` (ADR-011): the theme's container-fluid
67
+ * scales (`cqi` clamps) resolve against the item's track width, so type and
68
+ * spacing inside a narrow tile scale down instead of overflowing.
69
+ *
65
70
  * @example
66
71
  * ```tsx
67
72
  * // Fixed columns
@@ -62,6 +62,11 @@ interface GridProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style' |
62
62
  * named scale, so grid rhythm stays consistent across a product. For a single
63
63
  * axis of flow, reach for `Stack` instead.
64
64
  *
65
+ * Each child is hosted in a `data-part="item"` wrapper that establishes
66
+ * `container-type: inline-size` (ADR-011): the theme's container-fluid
67
+ * scales (`cqi` clamps) resolve against the item's track width, so type and
68
+ * spacing inside a narrow tile scale down instead of overflowing.
69
+ *
65
70
  * @example
66
71
  * ```tsx
67
72
  * // Fixed columns
@@ -1,6 +1,7 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
2
  import { vars } from "@ttoss/fsl-theme/vars";
3
3
  import { jsx } from "react/jsx-runtime";
4
+ import * as React from "react";
4
5
 
5
6
  //#region src/components/Grid/Grid.tsx
6
7
  /** Formal semantic identity — Grid root (Structure entity, 2D layout). */
@@ -45,6 +46,11 @@ var autoTracks = min => {
45
46
  * named scale, so grid rhythm stays consistent across a product. For a single
46
47
  * axis of flow, reach for `Stack` instead.
47
48
  *
49
+ * Each child is hosted in a `data-part="item"` wrapper that establishes
50
+ * `container-type: inline-size` (ADR-011): the theme's container-fluid
51
+ * scales (`cqi` clamps) resolve against the item's track width, so type and
52
+ * spacing inside a narrow tile scale down instead of overflowing.
53
+ *
48
54
  * @example
49
55
  * ```tsx
50
56
  * // Fixed columns
@@ -78,7 +84,18 @@ var Grid = ({
78
84
  alignItems: ALIGN[align],
79
85
  justifyItems: ALIGN[justify]
80
86
  },
81
- children
87
+ children: React.Children.map(children, child => {
88
+ if (child === null || child === void 0) return child;
89
+ return /* @__PURE__ */jsx("div", {
90
+ "data-scope": "grid",
91
+ "data-part": "item",
92
+ style: {
93
+ display: "grid",
94
+ containerType: "inline-size"
95
+ },
96
+ children: child
97
+ });
98
+ })
82
99
  });
83
100
  };
84
101
  Grid.displayName = gridMeta.displayName;
@@ -1,7 +1,7 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
2
  const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
- const require_scope = require('../scope.cjs');
4
3
  const require_escapeHatch = require('../../tokens/escapeHatch.cjs');
4
+ const require_scope = require('../scope.cjs');
5
5
  let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
7
  let react_aria_components = require("react-aria-components");
@@ -1,6 +1,6 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
- import { createPresenceScope } from "../scope.mjs";
3
2
  import { fslVar } from "../../tokens/escapeHatch.mjs";
3
+ import { createPresenceScope } from "../scope.mjs";
4
4
  import { vars } from "@ttoss/fsl-theme/vars";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import { Dialog, DialogTrigger, Heading, Modal, ModalOverlay } from "react-aria-components";
@@ -1,8 +1,8 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
2
  const require_focusRing = require('../../tokens/focusRing.cjs');
3
3
  const require_resolveInteractiveStyle = require('../../tokens/resolveInteractiveStyle.cjs');
4
- const require_scope = require('../scope.cjs');
5
4
  const require_escapeHatch = require('../../tokens/escapeHatch.cjs');
5
+ const require_scope = require('../scope.cjs');
6
6
  let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let react_aria_components = require("react-aria-components");
@@ -1,8 +1,8 @@
1
1
  /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
2
  import { focusRingOutline } from "../../tokens/focusRing.mjs";
3
3
  import { resolveInteractiveStyle } from "../../tokens/resolveInteractiveStyle.mjs";
4
- import { createPresenceScope } from "../scope.mjs";
5
4
  import { fslVar } from "../../tokens/escapeHatch.mjs";
5
+ import { createPresenceScope } from "../scope.mjs";
6
6
  import { vars } from "@ttoss/fsl-theme/vars";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  import { Menu, MenuItem, MenuTrigger, Popover } from "react-aria-components";
package/dist/index.cjs CHANGED
@@ -14,6 +14,7 @@ const require_intents = require('./components/Icon/intents.cjs');
14
14
  const require_Checkbox = require('./components/Checkbox/Checkbox.cjs');
15
15
  const require_CheckboxGroup = require('./components/CheckboxGroup/CheckboxGroup.cjs');
16
16
  const require_Code = require('./components/Code/Code.cjs');
17
+ const require_ComboBox = require('./components/ComboBox/ComboBox.cjs');
17
18
  const require_Container = require('./components/Container/Container.cjs');
18
19
  const require_FileTrigger = require('./components/FileTrigger/FileTrigger.cjs');
19
20
  const require_Grid = require('./components/Grid/Grid.cjs');
@@ -65,6 +66,8 @@ exports.Button = require_Button.Button;
65
66
  exports.Checkbox = require_Checkbox.Checkbox;
66
67
  exports.CheckboxGroup = require_CheckboxGroup.CheckboxGroup;
67
68
  exports.Code = require_Code.Code;
69
+ exports.ComboBox = require_ComboBox.ComboBox;
70
+ exports.ComboBoxItem = require_ComboBox.ComboBoxItem;
68
71
  exports.ConfirmationDialog = require_ConfirmationDialog.ConfirmationDialog;
69
72
  exports.Container = require_Container.Container;
70
73
  exports.Dialog = require_Dialog.Dialog;
@@ -157,6 +160,8 @@ exports.buttonMeta = require_Button.buttonMeta;
157
160
  exports.checkboxGroupMeta = require_CheckboxGroup.checkboxGroupMeta;
158
161
  exports.checkboxMeta = require_Checkbox.checkboxMeta;
159
162
  exports.codeMeta = require_Code.codeMeta;
163
+ exports.comboBoxItemMeta = require_ComboBox.comboBoxItemMeta;
164
+ exports.comboBoxMeta = require_ComboBox.comboBoxMeta;
160
165
  exports.confirmationDialogMeta = require_ConfirmationDialog.confirmationDialogMeta;
161
166
  exports.containerMeta = require_Container.containerMeta;
162
167
  exports.createToastQueue = require_Toast.createToastQueue;
package/dist/index.d.cts CHANGED
@@ -7,6 +7,7 @@ import { Button, ButtonProps, buttonMeta } from "./components/Button/Button.cjs"
7
7
  import { Checkbox, CheckboxProps, checkboxMeta } from "./components/Checkbox/Checkbox.cjs";
8
8
  import { CheckboxGroup, CheckboxGroupProps, checkboxGroupMeta } from "./components/CheckboxGroup/CheckboxGroup.cjs";
9
9
  import { Code, CodeProps, CodeSize, codeMeta } from "./components/Code/Code.cjs";
10
+ import { ComboBox, ComboBoxItem, ComboBoxItemProps, ComboBoxProps, comboBoxItemMeta, comboBoxMeta } from "./components/ComboBox/ComboBox.cjs";
10
11
  import { Container, ContainerGutter, ContainerProps, ContainerSize, containerMeta } from "./components/Container/Container.cjs";
11
12
  import { FileTrigger, FileTriggerProps, fileTriggerMeta } from "./components/FileTrigger/FileTrigger.cjs";
12
13
  import { Grid, GridAlign, GridGap, GridMinColumnWidth, GridProps, gridMeta } from "./components/Grid/Grid.cjs";
@@ -47,4 +48,4 @@ import { TextArea, TextAreaControl, TextAreaControlProps, TextAreaDescription, T
47
48
  import { TextField, TextFieldControl, TextFieldControlProps, TextFieldDescription, TextFieldDescriptionProps, TextFieldError, TextFieldErrorProps, TextFieldLabel, TextFieldLabelProps, TextFieldProps, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta } from "./composites/TextField/TextField.cjs";
48
49
  import { Tooltip, TooltipProps, TooltipTrigger, tooltipMeta } from "./composites/Tooltip/Tooltip.cjs";
49
50
  import { Wizard, WizardNavigation, WizardNavigationProps, WizardProps, WizardStep, WizardStepProps, WizardSummary, WizardSummaryProps, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta } from "./composites/Wizard/Wizard.cjs";
50
- export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, AppShell, type AppShellProps, type AppShellSidebarWidth, Badge, type BadgeNumeric, type BadgeProps, Box, type BoxBackground, type BoxBorder, type BoxMaxWidth, type BoxPadding, type BoxProps, type BoxRadius, type BoxWidth, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, Code, type CodeProps, type CodeSize, ConfirmationDialog, type ConfirmationDialogProps, Container, type ContainerGutter, type ContainerProps, type ContainerSize, Dialog, DialogActions, type DialogActionsPlatform, type DialogActionsProps, DialogBody, type DialogBodyProps, DialogHeading, type DialogHeadingProps, DialogModal, type DialogModalProps, type DialogProps, DialogTrigger, Disclosure, DisclosurePanel, type DisclosurePanelProps, type DisclosureProps, DisclosureTrigger, type DisclosureTriggerProps, FileTrigger, type FileTriggerProps, Form, FormActions, type FormActionsProps, type FormProps, FormSubmit, type FormSubmitProps, Grid, type GridAlign, type GridGap, GridList, GridListItem, type GridListItemProps, type GridListProps, type GridMinColumnWidth, type GridProps, Group, type GroupProps, Heading, type HeadingAlign, type HeadingLevel, type HeadingProps, type HeadingSize, ICON_INTENTS, Icon, type IconIntent, type IconProps, type IconSize, Link, type LinkProps, ListBox, ListBoxItem, type ListBoxItemProps, type ListBoxProps, Menu, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, Meter, type MeterProps, NumberField, type NumberFieldProps, Popover, type PopoverProps, PopoverTrigger, ProgressBar, type ProgressBarProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, SearchField, SearchFieldControl, type SearchFieldControlProps, SearchFieldLabel, type SearchFieldLabelProps, type SearchFieldProps, Select, SelectItem, type SelectItemProps, type SelectProps, Separator, type SeparatorProps, Slider, type SliderProps, type SortDescriptor, type SortDirection, Stack, type StackAlign, type StackDirection, type StackGap, type StackJustify, type StackProps, Surface, type SurfaceLevel, type SurfacePadding, type SurfaceProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableColumn, type TableColumnProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, TagGroup, type TagGroupProps, type TagProps, Text, type TextAlign, TextArea, TextAreaControl, type TextAreaControlProps, TextAreaDescription, type TextAreaDescriptionProps, TextAreaError, type TextAreaErrorProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, type TextAs, TextField, TextFieldControl, type TextFieldControlProps, TextFieldDescription, type TextFieldDescriptionProps, TextFieldError, type TextFieldErrorProps, TextFieldLabel, type TextFieldLabelProps, type TextFieldProps, type TextNumeric, type TextProps, type TextTone, type TextVariant, Toast, type ToastContent, type ToastProps, type ToastQueue, ToastRegion, type ToastRegionProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Toolbar, type ToolbarProps, Tooltip, type TooltipProps, TooltipTrigger, Wizard, WizardNavigation, type WizardNavigationProps, type WizardProps, WizardStep, type WizardStepProps, WizardSummary, type WizardSummaryProps, accordionItemMeta, accordionMeta, accordionPanelMeta, accordionTriggerMeta, appShellMeta, badgeMeta, boxMeta, breadcrumbMeta, breadcrumbsMeta, buttonMeta, checkboxGroupMeta, checkboxMeta, codeMeta, confirmationDialogMeta, containerMeta, createToastQueue, dialogActionsMeta, dialogBodyMeta, dialogHeadingMeta, dialogMeta, dialogModalMeta, disclosureMeta, disclosurePanelMeta, disclosureTriggerMeta, fileTriggerMeta, formActionsMeta, formMeta, formSubmitMeta, gridListItemMeta, gridListMeta, gridMeta, groupMeta, headingMeta, iconMeta, linkMeta, listBoxItemMeta, listBoxMeta, menuItemMeta, menuMeta, meterMeta, numberFieldMeta, popoverMeta, progressBarMeta, radioGroupMeta, radioMeta, searchFieldControlMeta, searchFieldLabelMeta, searchFieldMeta, selectItemMeta, selectMeta, separatorMeta, sliderMeta, stackMeta, surfaceMeta, switchMeta, tabListMeta, tabMeta, tabPanelMeta, tableCellMeta, tableColumnMeta, tableMeta, tableRowMeta, tabsMeta, tagGroupMeta, tagMeta, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta, textMeta, toastMeta, toastRegionMeta, toggleButtonGroupMeta, toggleButtonMeta, toolbarMeta, tooltipMeta, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta };
51
+ export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, AppShell, type AppShellProps, type AppShellSidebarWidth, Badge, type BadgeNumeric, type BadgeProps, Box, type BoxBackground, type BoxBorder, type BoxMaxWidth, type BoxPadding, type BoxProps, type BoxRadius, type BoxWidth, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, Code, type CodeProps, type CodeSize, ComboBox, ComboBoxItem, type ComboBoxItemProps, type ComboBoxProps, ConfirmationDialog, type ConfirmationDialogProps, Container, type ContainerGutter, type ContainerProps, type ContainerSize, Dialog, DialogActions, type DialogActionsPlatform, type DialogActionsProps, DialogBody, type DialogBodyProps, DialogHeading, type DialogHeadingProps, DialogModal, type DialogModalProps, type DialogProps, DialogTrigger, Disclosure, DisclosurePanel, type DisclosurePanelProps, type DisclosureProps, DisclosureTrigger, type DisclosureTriggerProps, FileTrigger, type FileTriggerProps, Form, FormActions, type FormActionsProps, type FormProps, FormSubmit, type FormSubmitProps, Grid, type GridAlign, type GridGap, GridList, GridListItem, type GridListItemProps, type GridListProps, type GridMinColumnWidth, type GridProps, Group, type GroupProps, Heading, type HeadingAlign, type HeadingLevel, type HeadingProps, type HeadingSize, ICON_INTENTS, Icon, type IconIntent, type IconProps, type IconSize, Link, type LinkProps, ListBox, ListBoxItem, type ListBoxItemProps, type ListBoxProps, Menu, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, Meter, type MeterProps, NumberField, type NumberFieldProps, Popover, type PopoverProps, PopoverTrigger, ProgressBar, type ProgressBarProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, SearchField, SearchFieldControl, type SearchFieldControlProps, SearchFieldLabel, type SearchFieldLabelProps, type SearchFieldProps, Select, SelectItem, type SelectItemProps, type SelectProps, Separator, type SeparatorProps, Slider, type SliderProps, type SortDescriptor, type SortDirection, Stack, type StackAlign, type StackDirection, type StackGap, type StackJustify, type StackProps, Surface, type SurfaceLevel, type SurfacePadding, type SurfaceProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableColumn, type TableColumnProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, TagGroup, type TagGroupProps, type TagProps, Text, type TextAlign, TextArea, TextAreaControl, type TextAreaControlProps, TextAreaDescription, type TextAreaDescriptionProps, TextAreaError, type TextAreaErrorProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, type TextAs, TextField, TextFieldControl, type TextFieldControlProps, TextFieldDescription, type TextFieldDescriptionProps, TextFieldError, type TextFieldErrorProps, TextFieldLabel, type TextFieldLabelProps, type TextFieldProps, type TextNumeric, type TextProps, type TextTone, type TextVariant, Toast, type ToastContent, type ToastProps, type ToastQueue, ToastRegion, type ToastRegionProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Toolbar, type ToolbarProps, Tooltip, type TooltipProps, TooltipTrigger, Wizard, WizardNavigation, type WizardNavigationProps, type WizardProps, WizardStep, type WizardStepProps, WizardSummary, type WizardSummaryProps, accordionItemMeta, accordionMeta, accordionPanelMeta, accordionTriggerMeta, appShellMeta, badgeMeta, boxMeta, breadcrumbMeta, breadcrumbsMeta, buttonMeta, checkboxGroupMeta, checkboxMeta, codeMeta, comboBoxItemMeta, comboBoxMeta, confirmationDialogMeta, containerMeta, createToastQueue, dialogActionsMeta, dialogBodyMeta, dialogHeadingMeta, dialogMeta, dialogModalMeta, disclosureMeta, disclosurePanelMeta, disclosureTriggerMeta, fileTriggerMeta, formActionsMeta, formMeta, formSubmitMeta, gridListItemMeta, gridListMeta, gridMeta, groupMeta, headingMeta, iconMeta, linkMeta, listBoxItemMeta, listBoxMeta, menuItemMeta, menuMeta, meterMeta, numberFieldMeta, popoverMeta, progressBarMeta, radioGroupMeta, radioMeta, searchFieldControlMeta, searchFieldLabelMeta, searchFieldMeta, selectItemMeta, selectMeta, separatorMeta, sliderMeta, stackMeta, surfaceMeta, switchMeta, tabListMeta, tabMeta, tabPanelMeta, tableCellMeta, tableColumnMeta, tableMeta, tableRowMeta, tabsMeta, tagGroupMeta, tagMeta, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta, textMeta, toastMeta, toastRegionMeta, toggleButtonGroupMeta, toggleButtonMeta, toolbarMeta, tooltipMeta, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta };
package/dist/index.d.mts CHANGED
@@ -7,6 +7,7 @@ import { Button, ButtonProps, buttonMeta } from "./components/Button/Button.mjs"
7
7
  import { Checkbox, CheckboxProps, checkboxMeta } from "./components/Checkbox/Checkbox.mjs";
8
8
  import { CheckboxGroup, CheckboxGroupProps, checkboxGroupMeta } from "./components/CheckboxGroup/CheckboxGroup.mjs";
9
9
  import { Code, CodeProps, CodeSize, codeMeta } from "./components/Code/Code.mjs";
10
+ import { ComboBox, ComboBoxItem, ComboBoxItemProps, ComboBoxProps, comboBoxItemMeta, comboBoxMeta } from "./components/ComboBox/ComboBox.mjs";
10
11
  import { Container, ContainerGutter, ContainerProps, ContainerSize, containerMeta } from "./components/Container/Container.mjs";
11
12
  import { FileTrigger, FileTriggerProps, fileTriggerMeta } from "./components/FileTrigger/FileTrigger.mjs";
12
13
  import { Grid, GridAlign, GridGap, GridMinColumnWidth, GridProps, gridMeta } from "./components/Grid/Grid.mjs";
@@ -47,4 +48,4 @@ import { TextArea, TextAreaControl, TextAreaControlProps, TextAreaDescription, T
47
48
  import { TextField, TextFieldControl, TextFieldControlProps, TextFieldDescription, TextFieldDescriptionProps, TextFieldError, TextFieldErrorProps, TextFieldLabel, TextFieldLabelProps, TextFieldProps, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta } from "./composites/TextField/TextField.mjs";
48
49
  import { Tooltip, TooltipProps, TooltipTrigger, tooltipMeta } from "./composites/Tooltip/Tooltip.mjs";
49
50
  import { Wizard, WizardNavigation, WizardNavigationProps, WizardProps, WizardStep, WizardStepProps, WizardSummary, WizardSummaryProps, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta } from "./composites/Wizard/Wizard.mjs";
50
- export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, AppShell, type AppShellProps, type AppShellSidebarWidth, Badge, type BadgeNumeric, type BadgeProps, Box, type BoxBackground, type BoxBorder, type BoxMaxWidth, type BoxPadding, type BoxProps, type BoxRadius, type BoxWidth, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, Code, type CodeProps, type CodeSize, ConfirmationDialog, type ConfirmationDialogProps, Container, type ContainerGutter, type ContainerProps, type ContainerSize, Dialog, DialogActions, type DialogActionsPlatform, type DialogActionsProps, DialogBody, type DialogBodyProps, DialogHeading, type DialogHeadingProps, DialogModal, type DialogModalProps, type DialogProps, DialogTrigger, Disclosure, DisclosurePanel, type DisclosurePanelProps, type DisclosureProps, DisclosureTrigger, type DisclosureTriggerProps, FileTrigger, type FileTriggerProps, Form, FormActions, type FormActionsProps, type FormProps, FormSubmit, type FormSubmitProps, Grid, type GridAlign, type GridGap, GridList, GridListItem, type GridListItemProps, type GridListProps, type GridMinColumnWidth, type GridProps, Group, type GroupProps, Heading, type HeadingAlign, type HeadingLevel, type HeadingProps, type HeadingSize, ICON_INTENTS, Icon, type IconIntent, type IconProps, type IconSize, Link, type LinkProps, ListBox, ListBoxItem, type ListBoxItemProps, type ListBoxProps, Menu, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, Meter, type MeterProps, NumberField, type NumberFieldProps, Popover, type PopoverProps, PopoverTrigger, ProgressBar, type ProgressBarProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, SearchField, SearchFieldControl, type SearchFieldControlProps, SearchFieldLabel, type SearchFieldLabelProps, type SearchFieldProps, Select, SelectItem, type SelectItemProps, type SelectProps, Separator, type SeparatorProps, Slider, type SliderProps, type SortDescriptor, type SortDirection, Stack, type StackAlign, type StackDirection, type StackGap, type StackJustify, type StackProps, Surface, type SurfaceLevel, type SurfacePadding, type SurfaceProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableColumn, type TableColumnProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, TagGroup, type TagGroupProps, type TagProps, Text, type TextAlign, TextArea, TextAreaControl, type TextAreaControlProps, TextAreaDescription, type TextAreaDescriptionProps, TextAreaError, type TextAreaErrorProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, type TextAs, TextField, TextFieldControl, type TextFieldControlProps, TextFieldDescription, type TextFieldDescriptionProps, TextFieldError, type TextFieldErrorProps, TextFieldLabel, type TextFieldLabelProps, type TextFieldProps, type TextNumeric, type TextProps, type TextTone, type TextVariant, Toast, type ToastContent, type ToastProps, type ToastQueue, ToastRegion, type ToastRegionProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Toolbar, type ToolbarProps, Tooltip, type TooltipProps, TooltipTrigger, Wizard, WizardNavigation, type WizardNavigationProps, type WizardProps, WizardStep, type WizardStepProps, WizardSummary, type WizardSummaryProps, accordionItemMeta, accordionMeta, accordionPanelMeta, accordionTriggerMeta, appShellMeta, badgeMeta, boxMeta, breadcrumbMeta, breadcrumbsMeta, buttonMeta, checkboxGroupMeta, checkboxMeta, codeMeta, confirmationDialogMeta, containerMeta, createToastQueue, dialogActionsMeta, dialogBodyMeta, dialogHeadingMeta, dialogMeta, dialogModalMeta, disclosureMeta, disclosurePanelMeta, disclosureTriggerMeta, fileTriggerMeta, formActionsMeta, formMeta, formSubmitMeta, gridListItemMeta, gridListMeta, gridMeta, groupMeta, headingMeta, iconMeta, linkMeta, listBoxItemMeta, listBoxMeta, menuItemMeta, menuMeta, meterMeta, numberFieldMeta, popoverMeta, progressBarMeta, radioGroupMeta, radioMeta, searchFieldControlMeta, searchFieldLabelMeta, searchFieldMeta, selectItemMeta, selectMeta, separatorMeta, sliderMeta, stackMeta, surfaceMeta, switchMeta, tabListMeta, tabMeta, tabPanelMeta, tableCellMeta, tableColumnMeta, tableMeta, tableRowMeta, tabsMeta, tagGroupMeta, tagMeta, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta, textMeta, toastMeta, toastRegionMeta, toggleButtonGroupMeta, toggleButtonMeta, toolbarMeta, tooltipMeta, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta };
51
+ export { Accordion, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, AppShell, type AppShellProps, type AppShellSidebarWidth, Badge, type BadgeNumeric, type BadgeProps, Box, type BoxBackground, type BoxBorder, type BoxMaxWidth, type BoxPadding, type BoxProps, type BoxRadius, type BoxWidth, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, Code, type CodeProps, type CodeSize, ComboBox, ComboBoxItem, type ComboBoxItemProps, type ComboBoxProps, ConfirmationDialog, type ConfirmationDialogProps, Container, type ContainerGutter, type ContainerProps, type ContainerSize, Dialog, DialogActions, type DialogActionsPlatform, type DialogActionsProps, DialogBody, type DialogBodyProps, DialogHeading, type DialogHeadingProps, DialogModal, type DialogModalProps, type DialogProps, DialogTrigger, Disclosure, DisclosurePanel, type DisclosurePanelProps, type DisclosureProps, DisclosureTrigger, type DisclosureTriggerProps, FileTrigger, type FileTriggerProps, Form, FormActions, type FormActionsProps, type FormProps, FormSubmit, type FormSubmitProps, Grid, type GridAlign, type GridGap, GridList, GridListItem, type GridListItemProps, type GridListProps, type GridMinColumnWidth, type GridProps, Group, type GroupProps, Heading, type HeadingAlign, type HeadingLevel, type HeadingProps, type HeadingSize, ICON_INTENTS, Icon, type IconIntent, type IconProps, type IconSize, Link, type LinkProps, ListBox, ListBoxItem, type ListBoxItemProps, type ListBoxProps, Menu, MenuItem, type MenuItemProps, type MenuProps, MenuTrigger, Meter, type MeterProps, NumberField, type NumberFieldProps, Popover, type PopoverProps, PopoverTrigger, ProgressBar, type ProgressBarProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, SearchField, SearchFieldControl, type SearchFieldControlProps, SearchFieldLabel, type SearchFieldLabelProps, type SearchFieldProps, Select, SelectItem, type SelectItemProps, type SelectProps, Separator, type SeparatorProps, Slider, type SliderProps, type SortDescriptor, type SortDirection, Stack, type StackAlign, type StackDirection, type StackGap, type StackJustify, type StackProps, Surface, type SurfaceLevel, type SurfacePadding, type SurfaceProps, Switch, type SwitchProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableColumn, type TableColumnProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, TagGroup, type TagGroupProps, type TagProps, Text, type TextAlign, TextArea, TextAreaControl, type TextAreaControlProps, TextAreaDescription, type TextAreaDescriptionProps, TextAreaError, type TextAreaErrorProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, type TextAs, TextField, TextFieldControl, type TextFieldControlProps, TextFieldDescription, type TextFieldDescriptionProps, TextFieldError, type TextFieldErrorProps, TextFieldLabel, type TextFieldLabelProps, type TextFieldProps, type TextNumeric, type TextProps, type TextTone, type TextVariant, Toast, type ToastContent, type ToastProps, type ToastQueue, ToastRegion, type ToastRegionProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Toolbar, type ToolbarProps, Tooltip, type TooltipProps, TooltipTrigger, Wizard, WizardNavigation, type WizardNavigationProps, type WizardProps, WizardStep, type WizardStepProps, WizardSummary, type WizardSummaryProps, accordionItemMeta, accordionMeta, accordionPanelMeta, accordionTriggerMeta, appShellMeta, badgeMeta, boxMeta, breadcrumbMeta, breadcrumbsMeta, buttonMeta, checkboxGroupMeta, checkboxMeta, codeMeta, comboBoxItemMeta, comboBoxMeta, confirmationDialogMeta, containerMeta, createToastQueue, dialogActionsMeta, dialogBodyMeta, dialogHeadingMeta, dialogMeta, dialogModalMeta, disclosureMeta, disclosurePanelMeta, disclosureTriggerMeta, fileTriggerMeta, formActionsMeta, formMeta, formSubmitMeta, gridListItemMeta, gridListMeta, gridMeta, groupMeta, headingMeta, iconMeta, linkMeta, listBoxItemMeta, listBoxMeta, menuItemMeta, menuMeta, meterMeta, numberFieldMeta, popoverMeta, progressBarMeta, radioGroupMeta, radioMeta, searchFieldControlMeta, searchFieldLabelMeta, searchFieldMeta, selectItemMeta, selectMeta, separatorMeta, sliderMeta, stackMeta, surfaceMeta, switchMeta, tabListMeta, tabMeta, tabPanelMeta, tableCellMeta, tableColumnMeta, tableMeta, tableRowMeta, tabsMeta, tagGroupMeta, tagMeta, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta, textMeta, toastMeta, toastRegionMeta, toggleButtonGroupMeta, toggleButtonMeta, toolbarMeta, tooltipMeta, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta };
package/dist/index.mjs CHANGED
@@ -11,6 +11,7 @@ import { ICON_INTENTS } from "./components/Icon/intents.mjs";
11
11
  import { Checkbox, checkboxMeta } from "./components/Checkbox/Checkbox.mjs";
12
12
  import { CheckboxGroup, checkboxGroupMeta } from "./components/CheckboxGroup/CheckboxGroup.mjs";
13
13
  import { Code, codeMeta } from "./components/Code/Code.mjs";
14
+ import { ComboBox, ComboBoxItem, comboBoxItemMeta, comboBoxMeta } from "./components/ComboBox/ComboBox.mjs";
14
15
  import { Container, containerMeta } from "./components/Container/Container.mjs";
15
16
  import { FileTrigger, fileTriggerMeta } from "./components/FileTrigger/FileTrigger.mjs";
16
17
  import { Grid, gridMeta } from "./components/Grid/Grid.mjs";
@@ -49,4 +50,4 @@ import { TextArea, TextAreaControl, TextAreaDescription, TextAreaError, TextArea
49
50
  import { TextField, TextFieldControl, TextFieldDescription, TextFieldError, TextFieldLabel, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta } from "./composites/TextField/TextField.mjs";
50
51
  import { Tooltip, TooltipTrigger, tooltipMeta } from "./composites/Tooltip/Tooltip.mjs";
51
52
  import { Wizard, WizardNavigation, WizardStep, WizardSummary, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta } from "./composites/Wizard/Wizard.mjs";
52
- export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AppShell, Badge, Box, Breadcrumb, Breadcrumbs, Button, Checkbox, CheckboxGroup, Code, ConfirmationDialog, Container, Dialog, DialogActions, DialogBody, DialogHeading, DialogModal, DialogTrigger, Disclosure, DisclosurePanel, DisclosureTrigger, FileTrigger, Form, FormActions, FormSubmit, Grid, GridList, GridListItem, Group, Heading, ICON_INTENTS, Icon, Link, ListBox, ListBoxItem, Menu, MenuItem, MenuTrigger, Meter, NumberField, Popover, PopoverTrigger, ProgressBar, Radio, RadioGroup, SearchField, SearchFieldControl, SearchFieldLabel, Select, SelectItem, Separator, Slider, Stack, Surface, Switch, Tab, TabList, TabPanel, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tabs, Tag, TagGroup, Text, TextArea, TextAreaControl, TextAreaDescription, TextAreaError, TextAreaLabel, TextField, TextFieldControl, TextFieldDescription, TextFieldError, TextFieldLabel, Toast, ToastRegion, ToggleButton, ToggleButtonGroup, Toolbar, Tooltip, TooltipTrigger, Wizard, WizardNavigation, WizardStep, WizardSummary, accordionItemMeta, accordionMeta, accordionPanelMeta, accordionTriggerMeta, appShellMeta, badgeMeta, boxMeta, breadcrumbMeta, breadcrumbsMeta, buttonMeta, checkboxGroupMeta, checkboxMeta, codeMeta, confirmationDialogMeta, containerMeta, createToastQueue, dialogActionsMeta, dialogBodyMeta, dialogHeadingMeta, dialogMeta, dialogModalMeta, disclosureMeta, disclosurePanelMeta, disclosureTriggerMeta, fileTriggerMeta, formActionsMeta, formMeta, formSubmitMeta, gridListItemMeta, gridListMeta, gridMeta, groupMeta, headingMeta, iconMeta, linkMeta, listBoxItemMeta, listBoxMeta, menuItemMeta, menuMeta, meterMeta, numberFieldMeta, popoverMeta, progressBarMeta, radioGroupMeta, radioMeta, searchFieldControlMeta, searchFieldLabelMeta, searchFieldMeta, selectItemMeta, selectMeta, separatorMeta, sliderMeta, stackMeta, surfaceMeta, switchMeta, tabListMeta, tabMeta, tabPanelMeta, tableCellMeta, tableColumnMeta, tableMeta, tableRowMeta, tabsMeta, tagGroupMeta, tagMeta, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta, textMeta, toastMeta, toastRegionMeta, toggleButtonGroupMeta, toggleButtonMeta, toolbarMeta, tooltipMeta, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta };
53
+ export { Accordion, AccordionItem, AccordionPanel, AccordionTrigger, AppShell, Badge, Box, Breadcrumb, Breadcrumbs, Button, Checkbox, CheckboxGroup, Code, ComboBox, ComboBoxItem, ConfirmationDialog, Container, Dialog, DialogActions, DialogBody, DialogHeading, DialogModal, DialogTrigger, Disclosure, DisclosurePanel, DisclosureTrigger, FileTrigger, Form, FormActions, FormSubmit, Grid, GridList, GridListItem, Group, Heading, ICON_INTENTS, Icon, Link, ListBox, ListBoxItem, Menu, MenuItem, MenuTrigger, Meter, NumberField, Popover, PopoverTrigger, ProgressBar, Radio, RadioGroup, SearchField, SearchFieldControl, SearchFieldLabel, Select, SelectItem, Separator, Slider, Stack, Surface, Switch, Tab, TabList, TabPanel, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tabs, Tag, TagGroup, Text, TextArea, TextAreaControl, TextAreaDescription, TextAreaError, TextAreaLabel, TextField, TextFieldControl, TextFieldDescription, TextFieldError, TextFieldLabel, Toast, ToastRegion, ToggleButton, ToggleButtonGroup, Toolbar, Tooltip, TooltipTrigger, Wizard, WizardNavigation, WizardStep, WizardSummary, accordionItemMeta, accordionMeta, accordionPanelMeta, accordionTriggerMeta, appShellMeta, badgeMeta, boxMeta, breadcrumbMeta, breadcrumbsMeta, buttonMeta, checkboxGroupMeta, checkboxMeta, codeMeta, comboBoxItemMeta, comboBoxMeta, confirmationDialogMeta, containerMeta, createToastQueue, dialogActionsMeta, dialogBodyMeta, dialogHeadingMeta, dialogMeta, dialogModalMeta, disclosureMeta, disclosurePanelMeta, disclosureTriggerMeta, fileTriggerMeta, formActionsMeta, formMeta, formSubmitMeta, gridListItemMeta, gridListMeta, gridMeta, groupMeta, headingMeta, iconMeta, linkMeta, listBoxItemMeta, listBoxMeta, menuItemMeta, menuMeta, meterMeta, numberFieldMeta, popoverMeta, progressBarMeta, radioGroupMeta, radioMeta, searchFieldControlMeta, searchFieldLabelMeta, searchFieldMeta, selectItemMeta, selectMeta, separatorMeta, sliderMeta, stackMeta, surfaceMeta, switchMeta, tabListMeta, tabMeta, tabPanelMeta, tableCellMeta, tableColumnMeta, tableMeta, tableRowMeta, tabsMeta, tagGroupMeta, tagMeta, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta, textFieldControlMeta, textFieldDescriptionMeta, textFieldErrorMeta, textFieldLabelMeta, textFieldMeta, textMeta, toastMeta, toastRegionMeta, toggleButtonGroupMeta, toggleButtonMeta, toolbarMeta, tooltipMeta, wizardMeta, wizardNavigationMeta, wizardStepMeta, wizardSummaryMeta };
package/llms.txt CHANGED
@@ -80,7 +80,16 @@ Collection: ListBox/ListBoxItem, GridList/GridListItem (+ Menu/MenuItem,
80
80
  Input: TextField, TextArea (each + Label/Control/Description/Error),
81
81
  SearchField (+ Label/Control; leading search + clear glyphs),
82
82
  NumberField (label/description/errorMessage props + −/+ steppers),
83
- Slider (label + value output; single value or [min,max] range)
83
+ Slider (label + value output; single value or [min,max] range),
84
+ ComboBox/ComboBoxItem (text input + typeahead-filtered list;
85
+ label/description/errorMessage/placeholder/triggerLabel props).
86
+ Pick ComboBox over Select when the option set is too long to scan
87
+ (~10+) or the user may type a value that is not in it
88
+ (allowsCustomValue). ComboBox is Input — the user TYPES and the
89
+ list narrows; Select is Selection — picking from a closed set is
90
+ the only act. Filtering matches the option's visible TEXT, not its
91
+ id. Items are Selection/item (ADR-007 split, same as SelectItem).
92
+ Unlike Select it ships a validationMessage part.
84
93
  Overlay: Dialog, DialogModal, DialogTrigger, DialogHeading, DialogBody,
85
94
  DialogActions, Menu, MenuTrigger, ConfirmationDialog,
86
95
  Popover, PopoverTrigger, Tooltip, TooltipTrigger
@@ -111,13 +120,17 @@ Structure: Form, FormActions, Wizard, WizardStep, WizardSummary,
111
120
  never a free style/className),
112
121
  Grid (2D layout: columns=N or minColumnWidth=xs|sm|md|lg for
113
122
  responsive auto-fit, rows, gap=xs..xl, align, justify — never a
114
- raw track template),
123
+ raw track template; each child gets a data-part="item" wrapper
124
+ that is a size container, so theme cqi scales resolve to the
125
+ track width),
115
126
  Container (centered page column: size=surface|reading,
116
- gutter=page|section|none — instead of max-width + margin auto),
127
+ gutter=page|section|none — instead of max-width + margin auto;
128
+ the column is a size container for theme cqi scales),
117
129
  AppShell (full-viewport app frame: header?, sidebar?, aside?,
118
130
  sidebarWidth/asideWidth=sm|md|lg, sidebarLabel/asideLabel for the
119
131
  landmark names; main content as children — instead of a
120
- hand-rolled viewport grid),
132
+ hand-rolled viewport grid; every region is a size container for
133
+ theme cqi scales),
121
134
  Code (code text: block=true scrollable <pre> surface, block=false
122
135
  inline <code> run)
123
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttoss/fsl-ui",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Semantic, token-native component library for the ttoss ecosystem. Built on React Aria Components with @ttoss/fsl-theme tokens.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "@iconify-icon/react": "^2.2.0",
34
34
  "@iconify/icons-lucide": "^1.2.135",
35
35
  "react-aria-components": "~1.19.0",
36
- "@ttoss/fsl-theme": "^2.1.3"
36
+ "@ttoss/fsl-theme": "^2.1.5"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@testing-library/react": "^16.3.2",
@@ -51,8 +51,8 @@
51
51
  "tsdown": "^0.22.2",
52
52
  "zod": "^4.4.3",
53
53
  "@ttoss/config": "^1.37.17",
54
- "@ttoss/forms": "^0.44.4",
55
- "@ttoss/test-utils": "^4.2.18"
54
+ "@ttoss/test-utils": "^4.2.18",
55
+ "@ttoss/forms": "^0.44.4"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "react": ">=18",
@@ -412,14 +412,15 @@ Rules (enforced by the contract tests):
412
412
 
413
413
  Registered knobs:
414
414
 
415
- | Knob | Component | Fallback |
416
- | ------------------------- | ------------- | ------------------ |
417
- | `--fsl-dialog-max-width` | `DialogModal` | `min(500px, 90vw)` |
418
- | `--fsl-dialog-max-height` | `DialogModal` | `90vh` |
419
- | `--fsl-menu-min-width` | `Menu` | `12rem` |
420
- | `--fsl-menu-max-width` | `Menu` | `min(320px, 90vw)` |
421
- | `--fsl-popover-max-width` | `Popover` | `min(320px, 90vw)` |
422
- | `--fsl-tooltip-max-width` | `Tooltip` | `min(280px, 90vw)` |
415
+ | Knob | Component | Fallback |
416
+ | ---------------------------- | ------------- | ------------------ |
417
+ | `--fsl-combo-box-max-height` | `ComboBox` | `min(20rem, 60vh)` |
418
+ | `--fsl-dialog-max-width` | `DialogModal` | `min(500px, 90vw)` |
419
+ | `--fsl-dialog-max-height` | `DialogModal` | `90vh` |
420
+ | `--fsl-menu-min-width` | `Menu` | `12rem` |
421
+ | `--fsl-menu-max-width` | `Menu` | `min(320px, 90vw)` |
422
+ | `--fsl-popover-max-width` | `Popover` | `min(320px, 90vw)` |
423
+ | `--fsl-tooltip-max-width` | `Tooltip` | `min(280px, 90vw)` |
423
424
 
424
425
  ---
425
426