@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.
Files changed (174) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +30 -0
  4. package/dist/components/Breadcrumbs/Breadcrumbs.cjs +129 -0
  5. package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +61 -0
  6. package/dist/components/Breadcrumbs/Breadcrumbs.d.mts +61 -0
  7. package/dist/components/Breadcrumbs/Breadcrumbs.mjs +126 -0
  8. package/dist/components/Button/Button.cjs +80 -0
  9. package/dist/components/Button/Button.d.cts +68 -0
  10. package/dist/components/Button/Button.d.mts +68 -0
  11. package/dist/components/Button/Button.mjs +79 -0
  12. package/dist/components/Checkbox/Checkbox.cjs +183 -0
  13. package/dist/components/Checkbox/Checkbox.d.cts +45 -0
  14. package/dist/components/Checkbox/Checkbox.d.mts +45 -0
  15. package/dist/components/Checkbox/Checkbox.mjs +182 -0
  16. package/dist/components/CheckboxGroup/CheckboxGroup.cjs +97 -0
  17. package/dist/components/CheckboxGroup/CheckboxGroup.d.cts +56 -0
  18. package/dist/components/CheckboxGroup/CheckboxGroup.d.mts +56 -0
  19. package/dist/components/CheckboxGroup/CheckboxGroup.mjs +96 -0
  20. package/dist/components/FileTrigger/FileTrigger.cjs +51 -0
  21. package/dist/components/FileTrigger/FileTrigger.d.cts +52 -0
  22. package/dist/components/FileTrigger/FileTrigger.d.mts +52 -0
  23. package/dist/components/FileTrigger/FileTrigger.mjs +50 -0
  24. package/dist/components/GridList/GridList.cjs +220 -0
  25. package/dist/components/GridList/GridList.d.cts +72 -0
  26. package/dist/components/GridList/GridList.d.mts +72 -0
  27. package/dist/components/GridList/GridList.mjs +217 -0
  28. package/dist/components/Group/Group.cjs +77 -0
  29. package/dist/components/Group/Group.d.cts +61 -0
  30. package/dist/components/Group/Group.d.mts +61 -0
  31. package/dist/components/Group/Group.mjs +74 -0
  32. package/dist/components/Icon/Icon.cjs +52 -0
  33. package/dist/components/Icon/Icon.mjs +52 -0
  34. package/dist/components/Icon/glyphs.cjs +72 -0
  35. package/dist/components/Icon/glyphs.mjs +63 -0
  36. package/dist/components/Link/Link.cjs +62 -0
  37. package/dist/components/Link/Link.d.cts +38 -0
  38. package/dist/components/Link/Link.d.mts +38 -0
  39. package/dist/components/Link/Link.mjs +61 -0
  40. package/dist/components/ListBox/ListBox.cjs +126 -0
  41. package/dist/components/ListBox/ListBox.d.cts +63 -0
  42. package/dist/components/ListBox/ListBox.d.mts +63 -0
  43. package/dist/components/ListBox/ListBox.mjs +123 -0
  44. package/dist/components/Meter/Meter.cjs +126 -0
  45. package/dist/components/Meter/Meter.d.cts +63 -0
  46. package/dist/components/Meter/Meter.d.mts +63 -0
  47. package/dist/components/Meter/Meter.mjs +125 -0
  48. package/dist/components/NumberField/NumberField.cjs +221 -0
  49. package/dist/components/NumberField/NumberField.d.cts +68 -0
  50. package/dist/components/NumberField/NumberField.d.mts +68 -0
  51. package/dist/components/NumberField/NumberField.mjs +220 -0
  52. package/dist/components/ProgressBar/ProgressBar.cjs +132 -0
  53. package/dist/components/ProgressBar/ProgressBar.d.cts +56 -0
  54. package/dist/components/ProgressBar/ProgressBar.d.mts +56 -0
  55. package/dist/components/ProgressBar/ProgressBar.mjs +129 -0
  56. package/dist/components/RadioGroup/RadioGroup.cjs +218 -0
  57. package/dist/components/RadioGroup/RadioGroup.d.cts +82 -0
  58. package/dist/components/RadioGroup/RadioGroup.d.mts +82 -0
  59. package/dist/components/RadioGroup/RadioGroup.mjs +215 -0
  60. package/dist/components/Select/Select.cjs +253 -0
  61. package/dist/components/Select/Select.d.cts +86 -0
  62. package/dist/components/Select/Select.d.mts +86 -0
  63. package/dist/components/Select/Select.mjs +250 -0
  64. package/dist/components/Separator/Separator.cjs +64 -0
  65. package/dist/components/Separator/Separator.d.cts +44 -0
  66. package/dist/components/Separator/Separator.d.mts +44 -0
  67. package/dist/components/Separator/Separator.mjs +63 -0
  68. package/dist/components/Slider/Slider.cjs +160 -0
  69. package/dist/components/Slider/Slider.d.cts +45 -0
  70. package/dist/components/Slider/Slider.d.mts +45 -0
  71. package/dist/components/Slider/Slider.mjs +159 -0
  72. package/dist/components/Switch/Switch.cjs +176 -0
  73. package/dist/components/Switch/Switch.d.cts +43 -0
  74. package/dist/components/Switch/Switch.d.mts +43 -0
  75. package/dist/components/Switch/Switch.mjs +175 -0
  76. package/dist/components/Tabs/Tabs.cjs +180 -0
  77. package/dist/components/Tabs/Tabs.d.cts +85 -0
  78. package/dist/components/Tabs/Tabs.d.mts +85 -0
  79. package/dist/components/Tabs/Tabs.mjs +173 -0
  80. package/dist/components/Toast/Toast.cjs +218 -0
  81. package/dist/components/Toast/Toast.d.cts +96 -0
  82. package/dist/components/Toast/Toast.d.mts +96 -0
  83. package/dist/components/Toast/Toast.mjs +214 -0
  84. package/dist/components/ToggleButton/ToggleButton.cjs +125 -0
  85. package/dist/components/ToggleButton/ToggleButton.d.cts +43 -0
  86. package/dist/components/ToggleButton/ToggleButton.d.mts +43 -0
  87. package/dist/components/ToggleButton/ToggleButton.mjs +124 -0
  88. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.cjs +48 -0
  89. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.cts +41 -0
  90. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.mts +41 -0
  91. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.mjs +47 -0
  92. package/dist/components/Toolbar/Toolbar.cjs +67 -0
  93. package/dist/components/Toolbar/Toolbar.d.cts +60 -0
  94. package/dist/components/Toolbar/Toolbar.d.mts +60 -0
  95. package/dist/components/Toolbar/Toolbar.mjs +66 -0
  96. package/dist/composites/Accordion/Accordion.cjs +279 -0
  97. package/dist/composites/Accordion/Accordion.d.cts +176 -0
  98. package/dist/composites/Accordion/Accordion.d.mts +176 -0
  99. package/dist/composites/Accordion/Accordion.mjs +270 -0
  100. package/dist/composites/ConfirmationDialog/ConfirmationDialog.cjs +206 -0
  101. package/dist/composites/ConfirmationDialog/ConfirmationDialog.d.cts +166 -0
  102. package/dist/composites/ConfirmationDialog/ConfirmationDialog.d.mts +166 -0
  103. package/dist/composites/ConfirmationDialog/ConfirmationDialog.mjs +203 -0
  104. package/dist/composites/Dialog/Dialog.cjs +372 -0
  105. package/dist/composites/Dialog/Dialog.d.cts +234 -0
  106. package/dist/composites/Dialog/Dialog.d.mts +234 -0
  107. package/dist/composites/Dialog/Dialog.mjs +360 -0
  108. package/dist/composites/Disclosure/Disclosure.cjs +214 -0
  109. package/dist/composites/Disclosure/Disclosure.d.cts +118 -0
  110. package/dist/composites/Disclosure/Disclosure.d.mts +118 -0
  111. package/dist/composites/Disclosure/Disclosure.mjs +207 -0
  112. package/dist/composites/Form/Form.cjs +161 -0
  113. package/dist/composites/Form/Form.d.cts +176 -0
  114. package/dist/composites/Form/Form.d.mts +176 -0
  115. package/dist/composites/Form/Form.mjs +156 -0
  116. package/dist/composites/Menu/Menu.cjs +190 -0
  117. package/dist/composites/Menu/Menu.d.cts +158 -0
  118. package/dist/composites/Menu/Menu.d.mts +158 -0
  119. package/dist/composites/Menu/Menu.mjs +186 -0
  120. package/dist/composites/Popover/Popover.cjs +80 -0
  121. package/dist/composites/Popover/Popover.d.cts +56 -0
  122. package/dist/composites/Popover/Popover.d.mts +56 -0
  123. package/dist/composites/Popover/Popover.mjs +78 -0
  124. package/dist/composites/SearchField/SearchField.cjs +194 -0
  125. package/dist/composites/SearchField/SearchField.d.cts +81 -0
  126. package/dist/composites/SearchField/SearchField.d.mts +81 -0
  127. package/dist/composites/SearchField/SearchField.mjs +189 -0
  128. package/dist/composites/TagGroup/TagGroup.cjs +212 -0
  129. package/dist/composites/TagGroup/TagGroup.d.cts +84 -0
  130. package/dist/composites/TagGroup/TagGroup.d.mts +84 -0
  131. package/dist/composites/TagGroup/TagGroup.mjs +209 -0
  132. package/dist/composites/TextArea/TextArea.cjs +190 -0
  133. package/dist/composites/TextArea/TextArea.d.cts +95 -0
  134. package/dist/composites/TextArea/TextArea.d.mts +95 -0
  135. package/dist/composites/TextArea/TextArea.mjs +181 -0
  136. package/dist/composites/TextField/TextField.cjs +200 -0
  137. package/dist/composites/TextField/TextField.d.cts +111 -0
  138. package/dist/composites/TextField/TextField.d.mts +111 -0
  139. package/dist/composites/TextField/TextField.mjs +191 -0
  140. package/dist/composites/Tooltip/Tooltip.cjs +79 -0
  141. package/dist/composites/Tooltip/Tooltip.d.cts +53 -0
  142. package/dist/composites/Tooltip/Tooltip.d.mts +53 -0
  143. package/dist/composites/Tooltip/Tooltip.mjs +77 -0
  144. package/dist/composites/Wizard/Wizard.cjs +333 -0
  145. package/dist/composites/Wizard/Wizard.d.cts +206 -0
  146. package/dist/composites/Wizard/Wizard.d.mts +206 -0
  147. package/dist/composites/Wizard/Wizard.mjs +324 -0
  148. package/dist/composites/scope.cjs +124 -0
  149. package/dist/composites/scope.mjs +121 -0
  150. package/dist/index.cjs +186 -0
  151. package/dist/index.d.cts +37 -0
  152. package/dist/index.d.mts +37 -0
  153. package/dist/index.mjs +39 -0
  154. package/dist/semantics/componentMeta.d.cts +37 -0
  155. package/dist/semantics/componentMeta.d.mts +37 -0
  156. package/dist/semantics/index.cjs +16 -0
  157. package/dist/semantics/index.d.cts +4 -0
  158. package/dist/semantics/index.d.mts +4 -0
  159. package/dist/semantics/index.mjs +3 -0
  160. package/dist/semantics/taxonomy.cjs +150 -0
  161. package/dist/semantics/taxonomy.d.cts +153 -0
  162. package/dist/semantics/taxonomy.d.mts +153 -0
  163. package/dist/semantics/taxonomy.mjs +140 -0
  164. package/dist/tokens/escapeHatch.cjs +13 -0
  165. package/dist/tokens/escapeHatch.mjs +13 -0
  166. package/dist/tokens/focusRing.cjs +28 -0
  167. package/dist/tokens/focusRing.mjs +28 -0
  168. package/dist/tokens/keyframes.cjs +76 -0
  169. package/dist/tokens/keyframes.mjs +75 -0
  170. package/dist/tokens/resolveInteractiveStyle.cjs +41 -0
  171. package/dist/tokens/resolveInteractiveStyle.mjs +41 -0
  172. package/llms.txt +142 -0
  173. package/package.json +70 -0
  174. 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 };