@ttoss/fsl-ui 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/_virtual/_rolldown/runtime.cjs +30 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.cjs +129 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +61 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.mts +61 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.mjs +126 -0
- package/dist/components/Button/Button.cjs +80 -0
- package/dist/components/Button/Button.d.cts +68 -0
- package/dist/components/Button/Button.d.mts +68 -0
- package/dist/components/Button/Button.mjs +79 -0
- package/dist/components/Checkbox/Checkbox.cjs +183 -0
- package/dist/components/Checkbox/Checkbox.d.cts +45 -0
- package/dist/components/Checkbox/Checkbox.d.mts +45 -0
- package/dist/components/Checkbox/Checkbox.mjs +182 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.cjs +97 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.d.cts +56 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.d.mts +56 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.mjs +96 -0
- package/dist/components/FileTrigger/FileTrigger.cjs +51 -0
- package/dist/components/FileTrigger/FileTrigger.d.cts +52 -0
- package/dist/components/FileTrigger/FileTrigger.d.mts +52 -0
- package/dist/components/FileTrigger/FileTrigger.mjs +50 -0
- package/dist/components/GridList/GridList.cjs +220 -0
- package/dist/components/GridList/GridList.d.cts +72 -0
- package/dist/components/GridList/GridList.d.mts +72 -0
- package/dist/components/GridList/GridList.mjs +217 -0
- package/dist/components/Group/Group.cjs +77 -0
- package/dist/components/Group/Group.d.cts +61 -0
- package/dist/components/Group/Group.d.mts +61 -0
- package/dist/components/Group/Group.mjs +74 -0
- package/dist/components/Icon/Icon.cjs +52 -0
- package/dist/components/Icon/Icon.mjs +52 -0
- package/dist/components/Icon/glyphs.cjs +72 -0
- package/dist/components/Icon/glyphs.mjs +63 -0
- package/dist/components/Link/Link.cjs +62 -0
- package/dist/components/Link/Link.d.cts +38 -0
- package/dist/components/Link/Link.d.mts +38 -0
- package/dist/components/Link/Link.mjs +61 -0
- package/dist/components/ListBox/ListBox.cjs +126 -0
- package/dist/components/ListBox/ListBox.d.cts +63 -0
- package/dist/components/ListBox/ListBox.d.mts +63 -0
- package/dist/components/ListBox/ListBox.mjs +123 -0
- package/dist/components/Meter/Meter.cjs +126 -0
- package/dist/components/Meter/Meter.d.cts +63 -0
- package/dist/components/Meter/Meter.d.mts +63 -0
- package/dist/components/Meter/Meter.mjs +125 -0
- package/dist/components/NumberField/NumberField.cjs +221 -0
- package/dist/components/NumberField/NumberField.d.cts +68 -0
- package/dist/components/NumberField/NumberField.d.mts +68 -0
- package/dist/components/NumberField/NumberField.mjs +220 -0
- package/dist/components/ProgressBar/ProgressBar.cjs +132 -0
- package/dist/components/ProgressBar/ProgressBar.d.cts +56 -0
- package/dist/components/ProgressBar/ProgressBar.d.mts +56 -0
- package/dist/components/ProgressBar/ProgressBar.mjs +129 -0
- package/dist/components/RadioGroup/RadioGroup.cjs +218 -0
- package/dist/components/RadioGroup/RadioGroup.d.cts +82 -0
- package/dist/components/RadioGroup/RadioGroup.d.mts +82 -0
- package/dist/components/RadioGroup/RadioGroup.mjs +215 -0
- package/dist/components/Select/Select.cjs +253 -0
- package/dist/components/Select/Select.d.cts +86 -0
- package/dist/components/Select/Select.d.mts +86 -0
- package/dist/components/Select/Select.mjs +250 -0
- package/dist/components/Separator/Separator.cjs +64 -0
- package/dist/components/Separator/Separator.d.cts +44 -0
- package/dist/components/Separator/Separator.d.mts +44 -0
- package/dist/components/Separator/Separator.mjs +63 -0
- package/dist/components/Slider/Slider.cjs +160 -0
- package/dist/components/Slider/Slider.d.cts +45 -0
- package/dist/components/Slider/Slider.d.mts +45 -0
- package/dist/components/Slider/Slider.mjs +159 -0
- package/dist/components/Switch/Switch.cjs +176 -0
- package/dist/components/Switch/Switch.d.cts +43 -0
- package/dist/components/Switch/Switch.d.mts +43 -0
- package/dist/components/Switch/Switch.mjs +175 -0
- package/dist/components/Tabs/Tabs.cjs +180 -0
- package/dist/components/Tabs/Tabs.d.cts +85 -0
- package/dist/components/Tabs/Tabs.d.mts +85 -0
- package/dist/components/Tabs/Tabs.mjs +173 -0
- package/dist/components/Toast/Toast.cjs +218 -0
- package/dist/components/Toast/Toast.d.cts +96 -0
- package/dist/components/Toast/Toast.d.mts +96 -0
- package/dist/components/Toast/Toast.mjs +214 -0
- package/dist/components/ToggleButton/ToggleButton.cjs +125 -0
- package/dist/components/ToggleButton/ToggleButton.d.cts +43 -0
- package/dist/components/ToggleButton/ToggleButton.d.mts +43 -0
- package/dist/components/ToggleButton/ToggleButton.mjs +124 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.cjs +48 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.cts +41 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.mts +41 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.mjs +47 -0
- package/dist/components/Toolbar/Toolbar.cjs +67 -0
- package/dist/components/Toolbar/Toolbar.d.cts +60 -0
- package/dist/components/Toolbar/Toolbar.d.mts +60 -0
- package/dist/components/Toolbar/Toolbar.mjs +66 -0
- package/dist/composites/Accordion/Accordion.cjs +279 -0
- package/dist/composites/Accordion/Accordion.d.cts +176 -0
- package/dist/composites/Accordion/Accordion.d.mts +176 -0
- package/dist/composites/Accordion/Accordion.mjs +270 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.cjs +206 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.d.cts +166 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.d.mts +166 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.mjs +203 -0
- package/dist/composites/Dialog/Dialog.cjs +372 -0
- package/dist/composites/Dialog/Dialog.d.cts +234 -0
- package/dist/composites/Dialog/Dialog.d.mts +234 -0
- package/dist/composites/Dialog/Dialog.mjs +360 -0
- package/dist/composites/Disclosure/Disclosure.cjs +214 -0
- package/dist/composites/Disclosure/Disclosure.d.cts +118 -0
- package/dist/composites/Disclosure/Disclosure.d.mts +118 -0
- package/dist/composites/Disclosure/Disclosure.mjs +207 -0
- package/dist/composites/Form/Form.cjs +161 -0
- package/dist/composites/Form/Form.d.cts +176 -0
- package/dist/composites/Form/Form.d.mts +176 -0
- package/dist/composites/Form/Form.mjs +156 -0
- package/dist/composites/Menu/Menu.cjs +190 -0
- package/dist/composites/Menu/Menu.d.cts +158 -0
- package/dist/composites/Menu/Menu.d.mts +158 -0
- package/dist/composites/Menu/Menu.mjs +186 -0
- package/dist/composites/Popover/Popover.cjs +80 -0
- package/dist/composites/Popover/Popover.d.cts +56 -0
- package/dist/composites/Popover/Popover.d.mts +56 -0
- package/dist/composites/Popover/Popover.mjs +78 -0
- package/dist/composites/SearchField/SearchField.cjs +194 -0
- package/dist/composites/SearchField/SearchField.d.cts +81 -0
- package/dist/composites/SearchField/SearchField.d.mts +81 -0
- package/dist/composites/SearchField/SearchField.mjs +189 -0
- package/dist/composites/TagGroup/TagGroup.cjs +212 -0
- package/dist/composites/TagGroup/TagGroup.d.cts +84 -0
- package/dist/composites/TagGroup/TagGroup.d.mts +84 -0
- package/dist/composites/TagGroup/TagGroup.mjs +209 -0
- package/dist/composites/TextArea/TextArea.cjs +190 -0
- package/dist/composites/TextArea/TextArea.d.cts +95 -0
- package/dist/composites/TextArea/TextArea.d.mts +95 -0
- package/dist/composites/TextArea/TextArea.mjs +181 -0
- package/dist/composites/TextField/TextField.cjs +200 -0
- package/dist/composites/TextField/TextField.d.cts +111 -0
- package/dist/composites/TextField/TextField.d.mts +111 -0
- package/dist/composites/TextField/TextField.mjs +191 -0
- package/dist/composites/Tooltip/Tooltip.cjs +79 -0
- package/dist/composites/Tooltip/Tooltip.d.cts +53 -0
- package/dist/composites/Tooltip/Tooltip.d.mts +53 -0
- package/dist/composites/Tooltip/Tooltip.mjs +77 -0
- package/dist/composites/Wizard/Wizard.cjs +333 -0
- package/dist/composites/Wizard/Wizard.d.cts +206 -0
- package/dist/composites/Wizard/Wizard.d.mts +206 -0
- package/dist/composites/Wizard/Wizard.mjs +324 -0
- package/dist/composites/scope.cjs +124 -0
- package/dist/composites/scope.mjs +121 -0
- package/dist/index.cjs +186 -0
- package/dist/index.d.cts +37 -0
- package/dist/index.d.mts +37 -0
- package/dist/index.mjs +39 -0
- package/dist/semantics/componentMeta.d.cts +37 -0
- package/dist/semantics/componentMeta.d.mts +37 -0
- package/dist/semantics/index.cjs +16 -0
- package/dist/semantics/index.d.cts +4 -0
- package/dist/semantics/index.d.mts +4 -0
- package/dist/semantics/index.mjs +3 -0
- package/dist/semantics/taxonomy.cjs +150 -0
- package/dist/semantics/taxonomy.d.cts +153 -0
- package/dist/semantics/taxonomy.d.mts +153 -0
- package/dist/semantics/taxonomy.mjs +140 -0
- package/dist/tokens/escapeHatch.cjs +13 -0
- package/dist/tokens/escapeHatch.mjs +13 -0
- package/dist/tokens/focusRing.cjs +28 -0
- package/dist/tokens/focusRing.mjs +28 -0
- package/dist/tokens/keyframes.cjs +76 -0
- package/dist/tokens/keyframes.mjs +75 -0
- package/dist/tokens/resolveInteractiveStyle.cjs +41 -0
- package/dist/tokens/resolveInteractiveStyle.mjs +41 -0
- package/llms.txt +142 -0
- package/package.json +70 -0
- package/src/tokens/CONTRACT.md +505 -0
|
@@ -0,0 +1,209 @@
|
|
|
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 "../../components/Icon/Icon.mjs";
|
|
5
|
+
import { createCompositeScope } from "../scope.mjs";
|
|
6
|
+
import { vars } from "@ttoss/fsl-theme/vars";
|
|
7
|
+
import { Button, Label, Tag, TagGroup, TagList } from "react-aria-components";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
|
|
10
|
+
//#region src/composites/TagGroup/TagGroup.tsx
|
|
11
|
+
var tagGroupScope = createCompositeScope("TagGroup");
|
|
12
|
+
/** Formal semantic identity — TagGroup root (Selection entity). */
|
|
13
|
+
var tagGroupMeta = {
|
|
14
|
+
displayName: "TagGroup",
|
|
15
|
+
entity: "Selection",
|
|
16
|
+
structure: "root"
|
|
17
|
+
};
|
|
18
|
+
/** Formal semantic identity — Tag item (Selection entity, one of a set). */
|
|
19
|
+
var tagMeta = {
|
|
20
|
+
displayName: "Tag",
|
|
21
|
+
entity: "Selection",
|
|
22
|
+
structure: "item",
|
|
23
|
+
composition: "selection"
|
|
24
|
+
};
|
|
25
|
+
/** Tag (item) chrome — pill that reflects the `selected` set-membership State. */
|
|
26
|
+
var buildTagStyle = ({
|
|
27
|
+
c,
|
|
28
|
+
isSelected,
|
|
29
|
+
isHovered,
|
|
30
|
+
isFocusVisible,
|
|
31
|
+
isDisabled
|
|
32
|
+
}) => {
|
|
33
|
+
return {
|
|
34
|
+
boxSizing: "border-box",
|
|
35
|
+
display: "inline-flex",
|
|
36
|
+
alignItems: "center",
|
|
37
|
+
gap: vars.spacing.gap.inline.xs,
|
|
38
|
+
minHeight: vars.sizing.hit.base,
|
|
39
|
+
paddingBlock: vars.spacing.inset.control.sm,
|
|
40
|
+
paddingInline: vars.spacing.inset.control.md,
|
|
41
|
+
borderRadius: vars.radii.control,
|
|
42
|
+
borderWidth: isSelected ? vars.border.outline.selected.width : vars.border.outline.control.width,
|
|
43
|
+
borderStyle: vars.border.outline.control.style,
|
|
44
|
+
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
45
|
+
opacity: isDisabled ? vars.opacity.disabled : void 0,
|
|
46
|
+
...vars.text.label.md,
|
|
47
|
+
transitionProperty: "background-color, border-color, color",
|
|
48
|
+
transitionDuration: vars.motion.feedback.duration,
|
|
49
|
+
transitionTimingFunction: vars.motion.feedback.easing,
|
|
50
|
+
backgroundColor: resolveInteractiveStyle(c?.background, {
|
|
51
|
+
isDisabled,
|
|
52
|
+
isSelected,
|
|
53
|
+
isHovered
|
|
54
|
+
}),
|
|
55
|
+
borderColor: resolveInteractiveStyle(c?.border, {
|
|
56
|
+
isDisabled,
|
|
57
|
+
isSelected,
|
|
58
|
+
isFocusVisible
|
|
59
|
+
}),
|
|
60
|
+
color: resolveInteractiveStyle(c?.text, {
|
|
61
|
+
isDisabled,
|
|
62
|
+
isSelected,
|
|
63
|
+
isHovered
|
|
64
|
+
}) ?? c?.text?.default,
|
|
65
|
+
outline: focusRingOutline(isFocusVisible)
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* A semantic tag group built on React Aria's `TagGroup` — a focusable list of
|
|
70
|
+
* labels, keywords, filters, or chips with keyboard navigation, optional
|
|
71
|
+
* selection, and optional removal.
|
|
72
|
+
*
|
|
73
|
+
* Entity = Selection → reads `vars.colors.input.primary.*`. A chosen tag uses
|
|
74
|
+
* the `selected` State (set membership), never `pressed`. Pass
|
|
75
|
+
* `selectionMode="single|multiple"` to make tags selectable and `onRemove` to
|
|
76
|
+
* make them removable.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```tsx
|
|
80
|
+
* <TagGroup label="Filters" selectionMode="multiple" onRemove={remove}>
|
|
81
|
+
* <Tag id="react">React</Tag>
|
|
82
|
+
* <Tag id="vue">Vue</Tag>
|
|
83
|
+
* </TagGroup>
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
var TagGroup$1 = ({
|
|
87
|
+
label,
|
|
88
|
+
removeLabel = "Remove",
|
|
89
|
+
children,
|
|
90
|
+
...props
|
|
91
|
+
}) => {
|
|
92
|
+
const c = vars.colors.input.primary;
|
|
93
|
+
return /* @__PURE__ */jsx(TagGroup, {
|
|
94
|
+
...props,
|
|
95
|
+
"data-scope": "tag-group",
|
|
96
|
+
"data-part": "root",
|
|
97
|
+
style: {
|
|
98
|
+
boxSizing: "border-box",
|
|
99
|
+
display: "flex",
|
|
100
|
+
flexDirection: "column",
|
|
101
|
+
gap: vars.spacing.gap.stack.xs
|
|
102
|
+
},
|
|
103
|
+
children: /* @__PURE__ */jsxs(tagGroupScope.Provider, {
|
|
104
|
+
value: {
|
|
105
|
+
removeLabel
|
|
106
|
+
},
|
|
107
|
+
children: [label != null && /* @__PURE__ */jsx(Label, {
|
|
108
|
+
"data-scope": "tag-group",
|
|
109
|
+
"data-part": "label",
|
|
110
|
+
style: {
|
|
111
|
+
...vars.text.label.md,
|
|
112
|
+
color: c?.text?.default
|
|
113
|
+
},
|
|
114
|
+
children: label
|
|
115
|
+
}), /* @__PURE__ */jsx(TagList, {
|
|
116
|
+
"data-scope": "tag-group",
|
|
117
|
+
"data-part": "list",
|
|
118
|
+
style: {
|
|
119
|
+
boxSizing: "border-box",
|
|
120
|
+
display: "flex",
|
|
121
|
+
flexWrap: "wrap",
|
|
122
|
+
gap: vars.spacing.gap.inline.sm,
|
|
123
|
+
listStyle: "none",
|
|
124
|
+
margin: 0,
|
|
125
|
+
padding: 0
|
|
126
|
+
},
|
|
127
|
+
children
|
|
128
|
+
})]
|
|
129
|
+
})
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
TagGroup$1.displayName = tagGroupMeta.displayName;
|
|
133
|
+
/**
|
|
134
|
+
* A single tag inside a `TagGroup`. Reflects the `selected` State when picked
|
|
135
|
+
* and renders a remove (close) affordance when the group is removable
|
|
136
|
+
* (`onRemove`). Must be used inside a `TagGroup`.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```tsx
|
|
140
|
+
* <Tag id="react">React</Tag>
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
var Tag$1 = ({
|
|
144
|
+
children,
|
|
145
|
+
textValue,
|
|
146
|
+
...props
|
|
147
|
+
}) => {
|
|
148
|
+
const {
|
|
149
|
+
removeLabel
|
|
150
|
+
} = tagGroupScope.use(tagMeta.displayName);
|
|
151
|
+
const c = vars.colors.input.primary;
|
|
152
|
+
const resolvedTextValue = textValue ?? (typeof children === "string" ? children : void 0);
|
|
153
|
+
return /* @__PURE__ */jsx(Tag, {
|
|
154
|
+
...props,
|
|
155
|
+
textValue: resolvedTextValue,
|
|
156
|
+
"data-scope": "tag-group",
|
|
157
|
+
"data-part": "item",
|
|
158
|
+
style: ({
|
|
159
|
+
isSelected,
|
|
160
|
+
isHovered,
|
|
161
|
+
isFocusVisible,
|
|
162
|
+
isDisabled
|
|
163
|
+
}) => {
|
|
164
|
+
return buildTagStyle({
|
|
165
|
+
c,
|
|
166
|
+
isSelected,
|
|
167
|
+
isHovered,
|
|
168
|
+
isFocusVisible,
|
|
169
|
+
isDisabled
|
|
170
|
+
});
|
|
171
|
+
},
|
|
172
|
+
children: ({
|
|
173
|
+
allowsRemoving
|
|
174
|
+
}) => {
|
|
175
|
+
return /* @__PURE__ */jsxs(Fragment, {
|
|
176
|
+
children: [/* @__PURE__ */jsx("span", {
|
|
177
|
+
"data-scope": "tag-group",
|
|
178
|
+
"data-part": "label",
|
|
179
|
+
children
|
|
180
|
+
}), allowsRemoving && /* @__PURE__ */jsx(Button, {
|
|
181
|
+
slot: "remove",
|
|
182
|
+
"data-scope": "tag-group",
|
|
183
|
+
"data-part": "closeTrigger",
|
|
184
|
+
style: {
|
|
185
|
+
boxSizing: "border-box",
|
|
186
|
+
display: "inline-flex",
|
|
187
|
+
alignItems: "center",
|
|
188
|
+
justifyContent: "center",
|
|
189
|
+
flexShrink: 0,
|
|
190
|
+
border: 0,
|
|
191
|
+
background: "transparent",
|
|
192
|
+
cursor: "pointer",
|
|
193
|
+
padding: 0,
|
|
194
|
+
color: "inherit"
|
|
195
|
+
},
|
|
196
|
+
children: /* @__PURE__ */jsx(Icon, {
|
|
197
|
+
intent: "action.close",
|
|
198
|
+
size: "sm",
|
|
199
|
+
label: removeLabel
|
|
200
|
+
})
|
|
201
|
+
})]
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
Tag$1.displayName = tagMeta.displayName;
|
|
207
|
+
|
|
208
|
+
//#endregion
|
|
209
|
+
export { Tag$1 as Tag, TagGroup$1 as TagGroup, tagGroupMeta, tagMeta };
|
|
@@ -0,0 +1,190 @@
|
|
|
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_scope = require('../scope.cjs');
|
|
5
|
+
let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
|
|
6
|
+
let react_aria_components = require("react-aria-components");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
|
|
9
|
+
//#region src/composites/TextArea/TextArea.tsx
|
|
10
|
+
var textAreaScope = require_scope.createPresenceScope("TextArea");
|
|
11
|
+
/** Formal semantic identity — TextArea root (Input entity). */
|
|
12
|
+
var textAreaMeta = {
|
|
13
|
+
displayName: "TextArea",
|
|
14
|
+
entity: "Input",
|
|
15
|
+
structure: "root"
|
|
16
|
+
};
|
|
17
|
+
/** Formal semantic identity — label slot. */
|
|
18
|
+
var textAreaLabelMeta = {
|
|
19
|
+
displayName: "TextAreaLabel",
|
|
20
|
+
entity: "Input",
|
|
21
|
+
structure: "label",
|
|
22
|
+
composition: "label"
|
|
23
|
+
};
|
|
24
|
+
/** Formal semantic identity — control slot (the `<textarea>`). */
|
|
25
|
+
var textAreaControlMeta = {
|
|
26
|
+
displayName: "TextAreaControl",
|
|
27
|
+
entity: "Input",
|
|
28
|
+
structure: "control",
|
|
29
|
+
composition: "control"
|
|
30
|
+
};
|
|
31
|
+
/** Formal semantic identity — description slot. */
|
|
32
|
+
var textAreaDescriptionMeta = {
|
|
33
|
+
displayName: "TextAreaDescription",
|
|
34
|
+
entity: "Input",
|
|
35
|
+
structure: "description",
|
|
36
|
+
composition: "description"
|
|
37
|
+
};
|
|
38
|
+
/** Formal semantic identity — status slot (validation message). */
|
|
39
|
+
var textAreaErrorMeta = {
|
|
40
|
+
displayName: "TextAreaError",
|
|
41
|
+
entity: "Input",
|
|
42
|
+
structure: "validationMessage",
|
|
43
|
+
composition: "status"
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* A multiline text input composite (Input entity) — the multiline sibling of
|
|
47
|
+
* `TextField`. Composes `TextAreaLabel`, `TextAreaControl`,
|
|
48
|
+
* `TextAreaDescription`, and `TextAreaError`. Validation is driven by React
|
|
49
|
+
* Aria's `isInvalid` / `validate`.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* <TextArea isRequired>
|
|
54
|
+
* <TextAreaLabel>Notes</TextAreaLabel>
|
|
55
|
+
* <TextAreaControl rows={4} />
|
|
56
|
+
* <TextAreaError />
|
|
57
|
+
* </TextArea>
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
var TextArea = ({
|
|
61
|
+
children,
|
|
62
|
+
...props
|
|
63
|
+
}) => {
|
|
64
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.TextField, {
|
|
65
|
+
...props,
|
|
66
|
+
"data-scope": "text-area",
|
|
67
|
+
"data-part": "root",
|
|
68
|
+
style: {
|
|
69
|
+
boxSizing: "border-box",
|
|
70
|
+
display: "flex",
|
|
71
|
+
flexDirection: "column",
|
|
72
|
+
gap: _ttoss_fsl_theme_vars.vars.spacing.gap.stack.xs
|
|
73
|
+
},
|
|
74
|
+
children: values => {
|
|
75
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(textAreaScope.Provider, {
|
|
76
|
+
children: typeof children === "function" ? children(values) : children
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
TextArea.displayName = textAreaMeta.displayName;
|
|
82
|
+
/** The label slot of a TextArea. */
|
|
83
|
+
var TextAreaLabel = props => {
|
|
84
|
+
textAreaScope.use(textAreaLabelMeta.displayName);
|
|
85
|
+
const colors = _ttoss_fsl_theme_vars.vars.colors.input.primary;
|
|
86
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Label, {
|
|
87
|
+
...props,
|
|
88
|
+
"data-scope": "text-area",
|
|
89
|
+
"data-part": "label",
|
|
90
|
+
style: {
|
|
91
|
+
color: colors?.text?.default,
|
|
92
|
+
..._ttoss_fsl_theme_vars.vars.text.label.md
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
TextAreaLabel.displayName = textAreaLabelMeta.displayName;
|
|
97
|
+
/**
|
|
98
|
+
* The control slot — the actual `<textarea>`. Surfaces the `invalid` State
|
|
99
|
+
* via `vars.colors.input.primary.*`; vertical resize is enabled.
|
|
100
|
+
*/
|
|
101
|
+
var TextAreaControl = props => {
|
|
102
|
+
textAreaScope.use(textAreaControlMeta.displayName);
|
|
103
|
+
const colors = _ttoss_fsl_theme_vars.vars.colors.input.primary;
|
|
104
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.TextArea, {
|
|
105
|
+
...props,
|
|
106
|
+
"data-scope": "text-area",
|
|
107
|
+
"data-part": "control",
|
|
108
|
+
style: ({
|
|
109
|
+
isHovered,
|
|
110
|
+
isDisabled,
|
|
111
|
+
isFocusVisible,
|
|
112
|
+
isInvalid
|
|
113
|
+
}) => {
|
|
114
|
+
return {
|
|
115
|
+
boxSizing: "border-box",
|
|
116
|
+
resize: "vertical",
|
|
117
|
+
minBlockSize: _ttoss_fsl_theme_vars.vars.sizing.hit.base,
|
|
118
|
+
paddingBlock: _ttoss_fsl_theme_vars.vars.spacing.inset.control.sm,
|
|
119
|
+
paddingInline: _ttoss_fsl_theme_vars.vars.spacing.inset.control.md,
|
|
120
|
+
borderRadius: _ttoss_fsl_theme_vars.vars.radii.control,
|
|
121
|
+
borderWidth: _ttoss_fsl_theme_vars.vars.border.outline.control.width,
|
|
122
|
+
borderStyle: _ttoss_fsl_theme_vars.vars.border.outline.control.style,
|
|
123
|
+
transitionDuration: _ttoss_fsl_theme_vars.vars.motion.feedback.duration,
|
|
124
|
+
transitionTimingFunction: _ttoss_fsl_theme_vars.vars.motion.feedback.easing,
|
|
125
|
+
transitionProperty: "background-color, border-color, color",
|
|
126
|
+
backgroundColor: require_resolveInteractiveStyle.resolveInteractiveStyle(colors?.background, {
|
|
127
|
+
isHovered,
|
|
128
|
+
isDisabled,
|
|
129
|
+
isInvalid
|
|
130
|
+
}),
|
|
131
|
+
borderColor: require_resolveInteractiveStyle.resolveInteractiveStyle(colors?.border, {
|
|
132
|
+
isDisabled,
|
|
133
|
+
isInvalid,
|
|
134
|
+
isFocusVisible
|
|
135
|
+
}),
|
|
136
|
+
color: require_resolveInteractiveStyle.resolveInteractiveStyle(colors?.text, {
|
|
137
|
+
isHovered,
|
|
138
|
+
isDisabled,
|
|
139
|
+
isInvalid
|
|
140
|
+
}) ?? colors?.text?.default,
|
|
141
|
+
outline: require_focusRing.focusRingOutline(isFocusVisible),
|
|
142
|
+
..._ttoss_fsl_theme_vars.vars.text.label.md
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
TextAreaControl.displayName = textAreaControlMeta.displayName;
|
|
148
|
+
/** Helper/description text linked to the control. */
|
|
149
|
+
var TextAreaDescription = props => {
|
|
150
|
+
textAreaScope.use(textAreaDescriptionMeta.displayName);
|
|
151
|
+
const colors = _ttoss_fsl_theme_vars.vars.colors.input.primary;
|
|
152
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Text, {
|
|
153
|
+
slot: "description",
|
|
154
|
+
...props,
|
|
155
|
+
"data-scope": "text-area",
|
|
156
|
+
"data-part": "description",
|
|
157
|
+
style: {
|
|
158
|
+
color: colors?.text?.default,
|
|
159
|
+
..._ttoss_fsl_theme_vars.vars.text.label.sm
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
TextAreaDescription.displayName = textAreaDescriptionMeta.displayName;
|
|
164
|
+
/** Validation message — rendered by React Aria only when the field is invalid. */
|
|
165
|
+
var TextAreaError = props => {
|
|
166
|
+
textAreaScope.use(textAreaErrorMeta.displayName);
|
|
167
|
+
const colors = _ttoss_fsl_theme_vars.vars.colors.input.primary;
|
|
168
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.FieldError, {
|
|
169
|
+
...props,
|
|
170
|
+
"data-scope": "text-area",
|
|
171
|
+
"data-part": "validationMessage",
|
|
172
|
+
style: {
|
|
173
|
+
color: colors?.text?.invalid ?? colors?.text?.default,
|
|
174
|
+
..._ttoss_fsl_theme_vars.vars.text.label.sm
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
TextAreaError.displayName = textAreaErrorMeta.displayName;
|
|
179
|
+
|
|
180
|
+
//#endregion
|
|
181
|
+
exports.TextArea = TextArea;
|
|
182
|
+
exports.TextAreaControl = TextAreaControl;
|
|
183
|
+
exports.TextAreaDescription = TextAreaDescription;
|
|
184
|
+
exports.TextAreaError = TextAreaError;
|
|
185
|
+
exports.TextAreaLabel = TextAreaLabel;
|
|
186
|
+
exports.textAreaControlMeta = textAreaControlMeta;
|
|
187
|
+
exports.textAreaDescriptionMeta = textAreaDescriptionMeta;
|
|
188
|
+
exports.textAreaErrorMeta = textAreaErrorMeta;
|
|
189
|
+
exports.textAreaLabelMeta = textAreaLabelMeta;
|
|
190
|
+
exports.textAreaMeta = textAreaMeta;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
|
|
2
|
+
import { FieldErrorProps, LabelProps, TextAreaProps, TextFieldProps, TextProps } from "react-aria-components";
|
|
3
|
+
|
|
4
|
+
//#region src/composites/TextArea/TextArea.d.ts
|
|
5
|
+
/** Formal semantic identity — TextArea root (Input entity). */
|
|
6
|
+
declare const textAreaMeta: {
|
|
7
|
+
readonly displayName: "TextArea";
|
|
8
|
+
readonly entity: "Input";
|
|
9
|
+
readonly structure: "root";
|
|
10
|
+
};
|
|
11
|
+
/** Formal semantic identity — label slot. */
|
|
12
|
+
declare const textAreaLabelMeta: {
|
|
13
|
+
readonly displayName: "TextAreaLabel";
|
|
14
|
+
readonly entity: "Input";
|
|
15
|
+
readonly structure: "label";
|
|
16
|
+
readonly composition: "label";
|
|
17
|
+
};
|
|
18
|
+
/** Formal semantic identity — control slot (the `<textarea>`). */
|
|
19
|
+
declare const textAreaControlMeta: {
|
|
20
|
+
readonly displayName: "TextAreaControl";
|
|
21
|
+
readonly entity: "Input";
|
|
22
|
+
readonly structure: "control";
|
|
23
|
+
readonly composition: "control";
|
|
24
|
+
};
|
|
25
|
+
/** Formal semantic identity — description slot. */
|
|
26
|
+
declare const textAreaDescriptionMeta: {
|
|
27
|
+
readonly displayName: "TextAreaDescription";
|
|
28
|
+
readonly entity: "Input";
|
|
29
|
+
readonly structure: "description";
|
|
30
|
+
readonly composition: "description";
|
|
31
|
+
};
|
|
32
|
+
/** Formal semantic identity — status slot (validation message). */
|
|
33
|
+
declare const textAreaErrorMeta: {
|
|
34
|
+
readonly displayName: "TextAreaError";
|
|
35
|
+
readonly entity: "Input";
|
|
36
|
+
readonly structure: "validationMessage";
|
|
37
|
+
readonly composition: "status";
|
|
38
|
+
};
|
|
39
|
+
/** Props for the TextArea root. */
|
|
40
|
+
type TextAreaProps$1 = Omit<TextFieldProps, 'style' | 'className'>;
|
|
41
|
+
/**
|
|
42
|
+
* A multiline text input composite (Input entity) — the multiline sibling of
|
|
43
|
+
* `TextField`. Composes `TextAreaLabel`, `TextAreaControl`,
|
|
44
|
+
* `TextAreaDescription`, and `TextAreaError`. Validation is driven by React
|
|
45
|
+
* Aria's `isInvalid` / `validate`.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* <TextArea isRequired>
|
|
50
|
+
* <TextAreaLabel>Notes</TextAreaLabel>
|
|
51
|
+
* <TextAreaControl rows={4} />
|
|
52
|
+
* <TextAreaError />
|
|
53
|
+
* </TextArea>
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare const TextArea: {
|
|
57
|
+
({
|
|
58
|
+
children,
|
|
59
|
+
...props
|
|
60
|
+
}: TextAreaProps$1): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
displayName: "TextArea";
|
|
62
|
+
};
|
|
63
|
+
/** Props for the TextArea label. */
|
|
64
|
+
type TextAreaLabelProps = Omit<LabelProps, 'style' | 'className'>;
|
|
65
|
+
/** The label slot of a TextArea. */
|
|
66
|
+
declare const TextAreaLabel: {
|
|
67
|
+
(props: TextAreaLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
displayName: "TextAreaLabel";
|
|
69
|
+
};
|
|
70
|
+
/** Props for the TextArea control. */
|
|
71
|
+
type TextAreaControlProps = Omit<TextAreaProps, 'style' | 'className'>;
|
|
72
|
+
/**
|
|
73
|
+
* The control slot — the actual `<textarea>`. Surfaces the `invalid` State
|
|
74
|
+
* via `vars.colors.input.primary.*`; vertical resize is enabled.
|
|
75
|
+
*/
|
|
76
|
+
declare const TextAreaControl: {
|
|
77
|
+
(props: TextAreaControlProps): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
displayName: "TextAreaControl";
|
|
79
|
+
};
|
|
80
|
+
/** Props for the TextArea description. */
|
|
81
|
+
type TextAreaDescriptionProps = Omit<TextProps, 'style' | 'className' | 'slot'>;
|
|
82
|
+
/** Helper/description text linked to the control. */
|
|
83
|
+
declare const TextAreaDescription: {
|
|
84
|
+
(props: TextAreaDescriptionProps): import("react/jsx-runtime").JSX.Element;
|
|
85
|
+
displayName: "TextAreaDescription";
|
|
86
|
+
};
|
|
87
|
+
/** Props for the TextArea error. */
|
|
88
|
+
type TextAreaErrorProps = Omit<FieldErrorProps, 'style' | 'className'>;
|
|
89
|
+
/** Validation message — rendered by React Aria only when the field is invalid. */
|
|
90
|
+
declare const TextAreaError: {
|
|
91
|
+
(props: TextAreaErrorProps): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
displayName: "TextAreaError";
|
|
93
|
+
};
|
|
94
|
+
//#endregion
|
|
95
|
+
export { TextArea, TextAreaControl, TextAreaControlProps, TextAreaDescription, TextAreaDescriptionProps, TextAreaError, TextAreaErrorProps, TextAreaLabel, TextAreaLabelProps, TextAreaProps$1 as TextAreaProps, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta };
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
|
|
2
|
+
import { FieldErrorProps, LabelProps, TextAreaProps, TextFieldProps, TextProps } from "react-aria-components";
|
|
3
|
+
|
|
4
|
+
//#region src/composites/TextArea/TextArea.d.ts
|
|
5
|
+
/** Formal semantic identity — TextArea root (Input entity). */
|
|
6
|
+
declare const textAreaMeta: {
|
|
7
|
+
readonly displayName: "TextArea";
|
|
8
|
+
readonly entity: "Input";
|
|
9
|
+
readonly structure: "root";
|
|
10
|
+
};
|
|
11
|
+
/** Formal semantic identity — label slot. */
|
|
12
|
+
declare const textAreaLabelMeta: {
|
|
13
|
+
readonly displayName: "TextAreaLabel";
|
|
14
|
+
readonly entity: "Input";
|
|
15
|
+
readonly structure: "label";
|
|
16
|
+
readonly composition: "label";
|
|
17
|
+
};
|
|
18
|
+
/** Formal semantic identity — control slot (the `<textarea>`). */
|
|
19
|
+
declare const textAreaControlMeta: {
|
|
20
|
+
readonly displayName: "TextAreaControl";
|
|
21
|
+
readonly entity: "Input";
|
|
22
|
+
readonly structure: "control";
|
|
23
|
+
readonly composition: "control";
|
|
24
|
+
};
|
|
25
|
+
/** Formal semantic identity — description slot. */
|
|
26
|
+
declare const textAreaDescriptionMeta: {
|
|
27
|
+
readonly displayName: "TextAreaDescription";
|
|
28
|
+
readonly entity: "Input";
|
|
29
|
+
readonly structure: "description";
|
|
30
|
+
readonly composition: "description";
|
|
31
|
+
};
|
|
32
|
+
/** Formal semantic identity — status slot (validation message). */
|
|
33
|
+
declare const textAreaErrorMeta: {
|
|
34
|
+
readonly displayName: "TextAreaError";
|
|
35
|
+
readonly entity: "Input";
|
|
36
|
+
readonly structure: "validationMessage";
|
|
37
|
+
readonly composition: "status";
|
|
38
|
+
};
|
|
39
|
+
/** Props for the TextArea root. */
|
|
40
|
+
type TextAreaProps$1 = Omit<TextFieldProps, 'style' | 'className'>;
|
|
41
|
+
/**
|
|
42
|
+
* A multiline text input composite (Input entity) — the multiline sibling of
|
|
43
|
+
* `TextField`. Composes `TextAreaLabel`, `TextAreaControl`,
|
|
44
|
+
* `TextAreaDescription`, and `TextAreaError`. Validation is driven by React
|
|
45
|
+
* Aria's `isInvalid` / `validate`.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* <TextArea isRequired>
|
|
50
|
+
* <TextAreaLabel>Notes</TextAreaLabel>
|
|
51
|
+
* <TextAreaControl rows={4} />
|
|
52
|
+
* <TextAreaError />
|
|
53
|
+
* </TextArea>
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
declare const TextArea$1: {
|
|
57
|
+
({
|
|
58
|
+
children,
|
|
59
|
+
...props
|
|
60
|
+
}: TextAreaProps$1): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
displayName: "TextArea";
|
|
62
|
+
};
|
|
63
|
+
/** Props for the TextArea label. */
|
|
64
|
+
type TextAreaLabelProps = Omit<LabelProps, 'style' | 'className'>;
|
|
65
|
+
/** The label slot of a TextArea. */
|
|
66
|
+
declare const TextAreaLabel: {
|
|
67
|
+
(props: TextAreaLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
displayName: "TextAreaLabel";
|
|
69
|
+
};
|
|
70
|
+
/** Props for the TextArea control. */
|
|
71
|
+
type TextAreaControlProps = Omit<TextAreaProps, 'style' | 'className'>;
|
|
72
|
+
/**
|
|
73
|
+
* The control slot — the actual `<textarea>`. Surfaces the `invalid` State
|
|
74
|
+
* via `vars.colors.input.primary.*`; vertical resize is enabled.
|
|
75
|
+
*/
|
|
76
|
+
declare const TextAreaControl: {
|
|
77
|
+
(props: TextAreaControlProps): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
displayName: "TextAreaControl";
|
|
79
|
+
};
|
|
80
|
+
/** Props for the TextArea description. */
|
|
81
|
+
type TextAreaDescriptionProps = Omit<TextProps, 'style' | 'className' | 'slot'>;
|
|
82
|
+
/** Helper/description text linked to the control. */
|
|
83
|
+
declare const TextAreaDescription: {
|
|
84
|
+
(props: TextAreaDescriptionProps): import("react/jsx-runtime").JSX.Element;
|
|
85
|
+
displayName: "TextAreaDescription";
|
|
86
|
+
};
|
|
87
|
+
/** Props for the TextArea error. */
|
|
88
|
+
type TextAreaErrorProps = Omit<FieldErrorProps, 'style' | 'className'>;
|
|
89
|
+
/** Validation message — rendered by React Aria only when the field is invalid. */
|
|
90
|
+
declare const TextAreaError: {
|
|
91
|
+
(props: TextAreaErrorProps): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
displayName: "TextAreaError";
|
|
93
|
+
};
|
|
94
|
+
//#endregion
|
|
95
|
+
export { TextArea$1 as TextArea, TextAreaControl, TextAreaControlProps, TextAreaDescription, TextAreaDescriptionProps, TextAreaError, TextAreaErrorProps, TextAreaLabel, TextAreaLabelProps, TextAreaProps$1 as TextAreaProps, textAreaControlMeta, textAreaDescriptionMeta, textAreaErrorMeta, textAreaLabelMeta, textAreaMeta };
|