@astryxdesign/core 0.2.0-canary.95f28a1 → 0.2.0-canary.c366298

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.
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../src/TextArea/TextArea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../src/TextArea/TextArea.tsx"],"names":[],"mappings":"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"}
@@ -15,27 +15,68 @@
15
15
  * - /apps/storybook/stories/TextArea.stories.tsx (storybook stories)
16
16
  * - /packages/cli/templates/blocks/components/TextArea/ (showcase blocks)
17
17
  */
18
- import { useId, useOptimistic, useTransition, useRef } from 'react';
18
+ import { useId, useOptimistic, useTransition, useRef, useCallback } from 'react';
19
19
  import * as stylex from '@stylexjs/stylex';
20
20
  import "../theme/tokens.stylex.js";
21
21
  import { colorVars, spacingVars, typographyVars, typeScaleVars } from "../theme/tokens.stylex.js";
22
22
  import { Field, inputWrapperStyles, inputStatusBorderStyles, inputStatusHoverShadowStyles, inputStatusFocusWithinStyles } from "../Field/index.js";
23
- import { renderIconSlot } from "../Icon/index.js";
23
+ import { Icon, renderIconSlot } from "../Icon/index.js";
24
24
  import { Spinner } from "../Spinner/index.js";
25
25
  import { useTooltip } from "../Tooltip/index.js";
26
26
  import { mergeProps, mergeRefs } from "../utils/index.js";
27
27
  import { useInputContainer } from "../hooks/useInputContainer.js";
28
28
  import { useInputStatusIcon } from "../hooks/useInputStatusIcon.js";
29
+ import { useAnnounce } from "../hooks/useAnnounce.js";
29
30
  import { useSize } from "../SizeContext/SizeContext.js";
30
31
  import { themeProps } from "../utils/themeProps.js";
31
- import { VisuallyHidden } from "../VisuallyHidden/index.js";
32
+ import { useTranslator } from "../i18n/index.js";
32
33
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
33
34
  const COUNTER_WARNING_THRESHOLD = 0.8;
34
35
  const styles = {
35
36
  wrapper: {
36
37
  kY2c9j: "x1vjfegm",
37
- kGNEyG: "x1cy8zhl",
38
+ k1xSpc: "x1lliihq",
39
+ kmVPX3: "x1717udv",
40
+ "--_textarea-inline-padding": "x1kdpo6e",
41
+ $$css: true
42
+ },
43
+ textarea: {
44
+ k1xSpc: "x1lliihq",
45
+ kzqmXN: "xh8yej3",
46
+ kB7OPa: "x9f619",
47
+ k7Eaqz: "xeuugli",
48
+ kMzoRj: "xc342km",
49
+ ksu8eU: "xng3xce",
38
50
  k8WAf4: "xu0wf1k",
51
+ kg3NbH: "x1w6f3ag",
52
+ kMv6JI: "x9ynric",
53
+ kGuDYH: "xjm74w1 x6pjikd",
54
+ kLWn49: "xw6l6zx",
55
+ kMwMTN: "x1tgivj0",
56
+ kWkggS: "xjbqb8w",
57
+ kI3sdo: "x1a2a7pz",
58
+ k8Qsv1: "xeyghm5",
59
+ kHenm0: "x288g5",
60
+ $$css: true
61
+ },
62
+ textareaDisabled: {
63
+ kkrTdU: "x1h6gzvc",
64
+ $$css: true
65
+ },
66
+ textareaWithStartIcon: {
67
+ kZCmMZ: "x1b6te9z",
68
+ $$css: true
69
+ },
70
+ textareaWithStatus: {
71
+ kwRFfy: "xp2dy4z",
72
+ $$css: true
73
+ },
74
+ textareaWithBusyStatus: {
75
+ kwRFfy: "x1g2apga",
76
+ $$css: true
77
+ },
78
+ textareaWithCounter: {
79
+ kGO01o: "xekm6fs",
39
80
  $$css: true
40
81
  }
41
82
  };
@@ -94,12 +135,17 @@ export function TextArea({
94
135
  ...rest
95
136
  }) {
96
137
  const size = useSize(sizeProp, 'md');
138
+ const t = useTranslator();
139
+ const announce = useAnnounce();
97
140
  const id = useId();
98
141
  const descriptionID = useId();
99
142
  const statusMessageID = useId();
100
143
  const counterID = useId();
101
144
  const textareaRef = useRef(null);
102
145
  const containerRef = useRef(null);
146
+ // Tracks the counter "zone" last announced (under / near / over) so we only
147
+ // announce on a zone change, not on every keystroke.
148
+ const counterZoneRef = useRef(null);
103
149
  const [, startTransition] = useTransition();
104
150
  const [optimisticValue, setOptimisticValue] = useOptimistic(value);
105
151
  const isBusy = isLoading || optimisticValue !== value;
@@ -128,6 +174,30 @@ export function TextArea({
128
174
  // The tooltip variant renders no message box; describe the input by the
129
175
  // tooltip's content instead so the status is still announced.
130
176
  statusTooltipDescribedBy, maxLength != null ? counterID : null, showsDisabledMessage ? disabledMessageTooltip.describedBy : null].filter(Boolean).join(' ') || undefined;
177
+
178
+ // Announce the character-count status through the shared live region, but
179
+ // only when the value crosses into a new zone (near the limit / over the
180
+ // limit) so we don't speak on every keystroke. Over-limit is assertive (an
181
+ // error the user should hear immediately); nearing the limit is polite.
182
+ const announceCounter = useCallback(length => {
183
+ if (maxLength == null) {
184
+ return;
185
+ }
186
+ const zone = length > maxLength ? 'over' : length >= maxLength * COUNTER_WARNING_THRESHOLD ? 'near' : 'under';
187
+ if (zone === counterZoneRef.current) {
188
+ return;
189
+ }
190
+ counterZoneRef.current = zone;
191
+ if (zone === 'over') {
192
+ announce(t('@astryx.textArea.charactersOverLimit', {
193
+ count: length - maxLength
194
+ }), 'assertive');
195
+ } else if (zone === 'near') {
196
+ announce(t('@astryx.textArea.charactersRemaining', {
197
+ count: maxLength - length
198
+ }));
199
+ }
200
+ }, [announce, t, maxLength]);
131
201
  const handleChange = e => {
132
202
  // Value can't change while showing a disabled message (the field is
133
203
  // read-only and non-native-disabled), but guard the handler too so the
@@ -136,6 +206,7 @@ export function TextArea({
136
206
  return;
137
207
  }
138
208
  const newValue = e.target.value;
209
+ announceCounter(newValue.length);
139
210
  onChange?.(newValue, e);
140
211
  if (changeAction && !e.defaultPrevented) {
141
212
  startTransition(async () => {
@@ -185,10 +256,15 @@ export function TextArea({
185
256
  ...mergeProps(themeProps('textarea', {
186
257
  size,
187
258
  status: status?.type ?? null
188
- }), stylex.props(inputWrapperStyles.base, styles.wrapper, textareaSizeStyles[size], effectivelyDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !effectivelyDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], xstyle), className, style),
189
- children: [startIcon && renderIconSlot(startIcon, {
190
- size: 'sm',
191
- color: 'secondary'
259
+ }), stylex.props(inputWrapperStyles.base, styles.wrapper, isDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && !isDisabled && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], xstyle), className, style),
260
+ children: [startIcon && /*#__PURE__*/_jsx("span", {
261
+ ...{
262
+ className: "x10l6tqk xctzyg x1kiyvbf x47corl x78zum5"
263
+ },
264
+ children: renderIconSlot(startIcon, {
265
+ size: 'sm',
266
+ color: 'secondary'
267
+ })
192
268
  }), /*#__PURE__*/_jsx("textarea", {
193
269
  ...rest,
194
270
  ref: mergeRefs(ref, textareaRef),
@@ -215,41 +291,33 @@ export function TextArea({
215
291
  "aria-required": isRequired && !isOptional ? 'true' : undefined,
216
292
  "aria-invalid": status?.type === 'error' || maxLength != null && optimisticValue.length > maxLength ? 'true' : undefined,
217
293
  "aria-busy": isBusy || undefined,
294
+ ...stylex.props(styles.textarea, textareaSizeStyles[size], isDisabled && styles.textareaDisabled, Boolean(startIcon) && styles.textareaWithStartIcon, (status || isBusy) && styles.textareaWithStatus, isBusy && !!statusIcon && styles.textareaWithBusyStatus, maxLength != null && styles.textareaWithCounter)
295
+ }), (isBusy || statusIcon) && /*#__PURE__*/_jsxs("span", {
296
+ ...{
297
+ className: "x10l6tqk xctzyg x13oyzgk x47corl x78zum5 x6s0dn4 x1txdalj"
298
+ },
299
+ children: [isBusy && /*#__PURE__*/_jsx(Spinner, {
300
+ size: "sm"
301
+ }), statusIcon]
302
+ }), maxLength != null && /*#__PURE__*/_jsxs("div", {
303
+ id: counterID,
218
304
  ...{
219
305
  0: {
220
- className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx x1tgivj0 xjbqb8w x1a2a7pz xeyghm5 x288g5"
221
- },
222
- 2: {
223
- className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx x1tgivj0 xjbqb8w x1a2a7pz xeyghm5 x288g5 x1h6gzvc"
306
+ className: "x10l6tqk x112dmjn x13oyzgk x47corl x78zum5 x6s0dn4 xzye2dw x9ynric x141an7d x1ltkj2j xv1l7n4"
224
307
  },
225
308
  1: {
226
- className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx x1tgivj0 xjbqb8w x1a2a7pz xeyghm5 x288g5 x1we12cn"
227
- },
228
- 3: {
229
- className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx x1tgivj0 xjbqb8w x1a2a7pz xeyghm5 x288g5 x1h6gzvc x1we12cn"
309
+ className: "x10l6tqk x112dmjn x13oyzgk x47corl x78zum5 x6s0dn4 xzye2dw x9ynric x141an7d x1ltkj2j xjt36v0"
230
310
  }
231
- }[!!effectivelyDisabled << 1 | !!status << 0]
232
- }), isBusy && /*#__PURE__*/_jsx(Spinner, {
233
- size: "sm"
234
- }), statusIcon && /*#__PURE__*/_jsx("span", {
235
- ...{
236
- className: "x10l6tqk xctzyg x72tfeb x47corl x78zum5"
237
- },
238
- children: statusIcon
239
- })]
240
- }), maxLength != null && /*#__PURE__*/_jsxs("div", {
241
- id: counterID,
242
- ...{
243
- 0: {
244
- className: "x78zum5 x13a6bvl xcsaf9d x9ynric x141an7d xv1l7n4"
245
- },
246
- 1: {
247
- className: "x78zum5 x13a6bvl xcsaf9d x9ynric x141an7d xjt36v0"
248
- }
249
- }[!!(optimisticValue.length > maxLength) << 0],
250
- children: [optimisticValue.length, "/", maxLength, /*#__PURE__*/_jsx(VisuallyHidden, {
251
- "aria-live": "polite",
252
- children: optimisticValue.length >= maxLength * COUNTER_WARNING_THRESHOLD ? optimisticValue.length > maxLength ? `${optimisticValue.length - maxLength} characters over limit` : `${maxLength - optimisticValue.length} characters remaining` : ''
311
+ }[!!(optimisticValue.length > maxLength) << 0],
312
+ children: [optimisticValue.length > maxLength &&
313
+ /*#__PURE__*/
314
+ // Non-color cue so the over-limit state isn't conveyed by the red
315
+ // color alone (WCAG 1.4.1). Decorative — the count text and the
316
+ // live-region announcement carry the meaning.
317
+ _jsx(Icon, {
318
+ icon: "warning",
319
+ size: "sm"
320
+ }), optimisticValue.length, "/", maxLength]
253
321
  })]
254
322
  }), showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
255
323
  });
package/dist/astryx.css CHANGED
@@ -96,6 +96,7 @@
96
96
  .x9icjy1{--_segmented-control-radius:var(--radius-element)}
97
97
  .xficto1{--_tab-indicator-bottom:calc(-1 * (var(--spacing-1) + var(--border-width)))}
98
98
  .xbrl7fg{--_tab-indicator-bottom:var(--x---_tab-indicator-bottom)}
99
+ .x1kdpo6e{--_textarea-inline-padding:var(--spacing-2)}
99
100
  .x1f8er9e{--_tree-focus-outline-offset:0}
100
101
  .x1hb5tod{--_tree-focus-outline:none}
101
102
  .xnvcwyz{--astryx-section-padding:var(--spacing-0-5)}
@@ -416,6 +417,7 @@
416
417
  .xmfvnks:not(#\#):not(#\#){padding-block:var(--spacing-8)}
417
418
  .xnjsko4:not(#\#):not(#\#){padding-inline:0}
418
419
  .xx2oswg:not(#\#):not(#\#){padding-inline:calc(var(--spacing-1) - 1px)}
420
+ .x1w6f3ag:not(#\#):not(#\#){padding-inline:var(--_textarea-inline-padding)}
419
421
  .xkjnx3w:not(#\#):not(#\#){padding-inline:var(--spacing-0-5)}
420
422
  .x17a0aqu:not(#\#):not(#\#){padding-inline:var(--spacing-0)}
421
423
  .x4ezzuc:not(#\#):not(#\#){padding-inline:var(--spacing-1-5)}
@@ -821,6 +823,7 @@
821
823
  .xz03a8w:not(#\#):not(#\#):not(#\#){inset-inline-end:2px}
822
824
  .x1oinnt5:not(#\#):not(#\#):not(#\#){inset-inline-end:calc((var(--size-element-md) - 20px) / 2 - 1px)}
823
825
  .x8qlsd8:not(#\#):not(#\#):not(#\#){inset-inline-end:calc((var(--size-element-sm) - 20px) / 2 - 1px)}
826
+ .x13oyzgk:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--_textarea-inline-padding)}
824
827
  .xy3asu9:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-1)}
825
828
  .x72tfeb:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-2)}
826
829
  .x1mcfs9z:not(#\#):not(#\#):not(#\#){inset-inline-end:var(--spacing-3)}
@@ -828,6 +831,7 @@
828
831
  .x9p6ekw:not(#\#):not(#\#):not(#\#){inset-inline-start:14px}
829
832
  .xaoy8p5:not(#\#):not(#\#):not(#\#){inset-inline-start:2px}
830
833
  .xbudbmw:not(#\#):not(#\#):not(#\#){inset-inline-start:50%}
834
+ .x1kiyvbf:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--_textarea-inline-padding)}
831
835
  .x1ybfrjj:not(#\#):not(#\#):not(#\#){inset-inline-start:var(--spacing-3)}
832
836
  .xc8icb0:not(#\#):not(#\#):not(#\#){isolation:isolate}
833
837
  .xl56j7k:not(#\#):not(#\#):not(#\#){justify-content:center}
@@ -910,6 +914,8 @@
910
914
  .x1mzt3pk:not(#\#):not(#\#):not(#\#){overflow-wrap:break-word}
911
915
  .x1h4wwuj:not(#\#):not(#\#):not(#\#){overflow-wrap:normal}
912
916
  .xyri2b:not(#\#):not(#\#):not(#\#){padding-inline-end:0}
917
+ .x1g2apga:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--_textarea-inline-padding) + var(--spacing-12))}
918
+ .xp2dy4z:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--_textarea-inline-padding) + var(--spacing-6))}
913
919
  .x12frdag:not(#\#):not(#\#):not(#\#){padding-inline-end:calc(var(--container-padding-inline-end) - var(--border-width))}
914
920
  .x64h4k7:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--container-padding-inline-end)}
915
921
  .x1peupej:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--layout-padding-inner-x,var(--spacing-4))}
@@ -927,6 +933,7 @@
927
933
  .x1q91b2g:not(#\#):not(#\#):not(#\#){padding-inline-end:var(--spacing-8)}
928
934
  .x1c1uobl:not(#\#):not(#\#):not(#\#){padding-inline-start:0}
929
935
  .x1f43n9v:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(16px + var(--spacing-1-5))}
936
+ .x1b6te9z:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--_textarea-inline-padding) + var(--spacing-6))}
930
937
  .xs19ii7:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--container-padding-inline-start) - var(--border-width))}
931
938
  .x2a0j69:not(#\#):not(#\#):not(#\#){padding-inline-start:calc(var(--spacing-2) - var(--spacing-1) + 1px)}
932
939
  .x1c35znw:not(#\#):not(#\#):not(#\#){padding-inline-start:var(--container-padding-inline-start)}
@@ -1284,6 +1291,7 @@
1284
1291
  .x1ey2m1c:not(#\#):not(#\#):not(#\#):not(#\#){bottom:0}
1285
1292
  .x1c7jfne:not(#\#):not(#\#):not(#\#):not(#\#){bottom:2px}
1286
1293
  .xyi47jn:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--_tab-indicator-bottom,-1px)}
1294
+ .x112dmjn:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--spacing-1)}
1287
1295
  .x1nqzi6q:not(#\#):not(#\#):not(#\#):not(#\#){bottom:var(--x-bottom)}
1288
1296
  .xvle69y:not(#\#):not(#\#):not(#\#):not(#\#){height:.75rem}
1289
1297
  .xqtp20y:not(#\#):not(#\#):not(#\#):not(#\#){height:0}
@@ -1462,6 +1470,7 @@
1462
1470
  .x1awphl8:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-4)}
1463
1471
  .x1hk98q:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-5)}
1464
1472
  .xjpqqx5:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-6)}
1473
+ .xekm6fs:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-7)}
1465
1474
  .x2oz4g1:not(#\#):not(#\#):not(#\#):not(#\#){padding-bottom:var(--spacing-8)}
1466
1475
  .xexx8yu:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:0}
1467
1476
  .x1htvmrp:not(#\#):not(#\#):not(#\#):not(#\#){padding-top:calc(var(--_chat-composer-padding) + var(--_chat-composer-radius))}