@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.
- package/dist/components/AppShell/AppShell.cjs +8 -4
- package/dist/components/AppShell/AppShell.mjs +8 -4
- package/dist/components/ComboBox/ComboBox.cjs +317 -0
- package/dist/components/ComboBox/ComboBox.d.cts +106 -0
- package/dist/components/ComboBox/ComboBox.d.mts +106 -0
- package/dist/components/ComboBox/ComboBox.mjs +314 -0
- package/dist/components/Container/Container.cjs +2 -1
- package/dist/components/Container/Container.mjs +2 -1
- package/dist/components/Grid/Grid.cjs +20 -1
- package/dist/components/Grid/Grid.d.cts +5 -0
- package/dist/components/Grid/Grid.d.mts +5 -0
- package/dist/components/Grid/Grid.mjs +18 -1
- package/dist/composites/Dialog/Dialog.cjs +1 -1
- package/dist/composites/Dialog/Dialog.mjs +1 -1
- package/dist/composites/Menu/Menu.cjs +1 -1
- package/dist/composites/Menu/Menu.mjs +1 -1
- package/dist/index.cjs +5 -0
- package/dist/index.d.cts +2 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.mjs +2 -1
- package/llms.txt +17 -4
- package/package.json +4 -4
- package/src/tokens/CONTRACT.md +9 -8
|
@@ -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 };
|
|
@@ -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.
|
|
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.
|
|
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/
|
|
55
|
-
"@ttoss/
|
|
54
|
+
"@ttoss/test-utils": "^4.2.18",
|
|
55
|
+
"@ttoss/forms": "^0.44.4"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"react": ">=18",
|
package/src/tokens/CONTRACT.md
CHANGED
|
@@ -412,14 +412,15 @@ Rules (enforced by the contract tests):
|
|
|
412
412
|
|
|
413
413
|
Registered knobs:
|
|
414
414
|
|
|
415
|
-
| Knob
|
|
416
|
-
|
|
|
417
|
-
| `--fsl-
|
|
418
|
-
| `--fsl-dialog-max-
|
|
419
|
-
| `--fsl-
|
|
420
|
-
| `--fsl-menu-
|
|
421
|
-
| `--fsl-
|
|
422
|
-
| `--fsl-
|
|
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
|
|