@arbor-education/design-system.components 4.9.1 → 5.0.0

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 (115) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/components/datePicker/DatePicker.d.ts.map +1 -1
  3. package/dist/components/datePicker/DatePicker.js +2 -1
  4. package/dist/components/datePicker/DatePicker.js.map +1 -1
  5. package/dist/components/datePicker/DatePicker.test.js +32 -0
  6. package/dist/components/datePicker/DatePicker.test.js.map +1 -1
  7. package/dist/components/datePicker/dateInputUtils.d.ts +2 -1
  8. package/dist/components/datePicker/dateInputUtils.d.ts.map +1 -1
  9. package/dist/components/datePicker/dateInputUtils.js +20 -0
  10. package/dist/components/datePicker/dateInputUtils.js.map +1 -1
  11. package/dist/components/datePicker/dateInputUtils.test.d.ts +2 -0
  12. package/dist/components/datePicker/dateInputUtils.test.d.ts.map +1 -0
  13. package/dist/components/datePicker/dateInputUtils.test.js +28 -0
  14. package/dist/components/datePicker/dateInputUtils.test.js.map +1 -0
  15. package/dist/components/dateTimePicker/DateTimePicker.d.ts.map +1 -1
  16. package/dist/components/dateTimePicker/DateTimePicker.js +34 -10
  17. package/dist/components/dateTimePicker/DateTimePicker.js.map +1 -1
  18. package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts.map +1 -1
  19. package/dist/components/dateTimePicker/DateTimePicker.stories.js +5 -0
  20. package/dist/components/dateTimePicker/DateTimePicker.stories.js.map +1 -1
  21. package/dist/components/dateTimePicker/DateTimePicker.test.js +136 -0
  22. package/dist/components/dateTimePicker/DateTimePicker.test.js.map +1 -1
  23. package/dist/components/formField/FormField.stories.d.ts.map +1 -1
  24. package/dist/components/formField/FormField.stories.js +3 -4
  25. package/dist/components/formField/FormField.stories.js.map +1 -1
  26. package/dist/components/formField/FormField.test.js +1 -1
  27. package/dist/components/formField/FormField.test.js.map +1 -1
  28. package/dist/components/formField/inputs/textArea/TextArea.d.ts +4 -1
  29. package/dist/components/formField/inputs/textArea/TextArea.d.ts.map +1 -1
  30. package/dist/components/formField/inputs/textArea/TextArea.js +33 -14
  31. package/dist/components/formField/inputs/textArea/TextArea.js.map +1 -1
  32. package/dist/components/formField/inputs/textArea/TextArea.stories.d.ts +6 -1
  33. package/dist/components/formField/inputs/textArea/TextArea.stories.d.ts.map +1 -1
  34. package/dist/components/formField/inputs/textArea/TextArea.stories.js +33 -13
  35. package/dist/components/formField/inputs/textArea/TextArea.stories.js.map +1 -1
  36. package/dist/components/formField/inputs/textArea/TextArea.test.d.ts.map +1 -1
  37. package/dist/components/formField/inputs/textArea/TextArea.test.js +76 -2
  38. package/dist/components/formField/inputs/textArea/TextArea.test.js.map +1 -1
  39. package/dist/components/formField/inputs/time/TimeInput.d.ts.map +1 -1
  40. package/dist/components/formField/inputs/time/TimeInput.js +24 -8
  41. package/dist/components/formField/inputs/time/TimeInput.js.map +1 -1
  42. package/dist/components/formField/inputs/time/TimeInput.stories.d.ts +0 -1
  43. package/dist/components/formField/inputs/time/TimeInput.stories.d.ts.map +1 -1
  44. package/dist/components/formField/inputs/time/TimeInput.stories.js +38 -67
  45. package/dist/components/formField/inputs/time/TimeInput.stories.js.map +1 -1
  46. package/dist/components/formField/inputs/time/TimeInput.test.js +51 -6
  47. package/dist/components/formField/inputs/time/TimeInput.test.js.map +1 -1
  48. package/dist/components/kvpList/KVPList.d.ts +2 -1
  49. package/dist/components/kvpList/KVPList.d.ts.map +1 -1
  50. package/dist/components/kvpList/KVPList.js +1 -1
  51. package/dist/components/kvpList/KVPList.js.map +1 -1
  52. package/dist/components/kvpList/KVPList.stories.d.ts +2 -1
  53. package/dist/components/kvpList/KVPList.stories.d.ts.map +1 -1
  54. package/dist/components/kvpList/KVPList.stories.js +35 -0
  55. package/dist/components/kvpList/KVPList.stories.js.map +1 -1
  56. package/dist/components/kvpList/KVPList.test.js +16 -0
  57. package/dist/components/kvpList/KVPList.test.js.map +1 -1
  58. package/dist/components/row/Row.d.ts +1 -0
  59. package/dist/components/row/Row.d.ts.map +1 -1
  60. package/dist/components/row/Row.js +3 -2
  61. package/dist/components/row/Row.js.map +1 -1
  62. package/dist/components/row/Row.stories.d.ts +13 -0
  63. package/dist/components/row/Row.stories.d.ts.map +1 -1
  64. package/dist/components/row/Row.stories.js +53 -0
  65. package/dist/components/row/Row.stories.js.map +1 -1
  66. package/dist/components/row/Row.test.js +40 -0
  67. package/dist/components/row/Row.test.js.map +1 -1
  68. package/dist/components/table/cellEditors/NumberCellEditor.d.ts +2 -2
  69. package/dist/components/table/cellEditors/NumberCellEditor.d.ts.map +1 -1
  70. package/dist/components/table/cellEditors/NumberCellEditor.js +1 -1
  71. package/dist/components/table/cellEditors/NumberCellEditor.js.map +1 -1
  72. package/dist/components/table/cellEditors/NumberCellEditor.test.d.ts +2 -0
  73. package/dist/components/table/cellEditors/NumberCellEditor.test.d.ts.map +1 -0
  74. package/dist/components/table/cellEditors/NumberCellEditor.test.js +57 -0
  75. package/dist/components/table/cellEditors/NumberCellEditor.test.js.map +1 -0
  76. package/dist/index.css +10 -5
  77. package/dist/index.css.map +1 -1
  78. package/dist/utils/hooks/useIsControlledOnceSet.d.ts +6 -0
  79. package/dist/utils/hooks/useIsControlledOnceSet.d.ts.map +1 -0
  80. package/dist/utils/hooks/useIsControlledOnceSet.js +13 -0
  81. package/dist/utils/hooks/useIsControlledOnceSet.js.map +1 -0
  82. package/dist/utils/hooks/useIsControlledOnceSet.test.d.ts +2 -0
  83. package/dist/utils/hooks/useIsControlledOnceSet.test.d.ts.map +1 -0
  84. package/dist/utils/hooks/useIsControlledOnceSet.test.js +25 -0
  85. package/dist/utils/hooks/useIsControlledOnceSet.test.js.map +1 -0
  86. package/package.json +1 -1
  87. package/src/components/banner/banner.scss +4 -0
  88. package/src/components/datePicker/DatePicker.test.tsx +48 -0
  89. package/src/components/datePicker/DatePicker.tsx +2 -1
  90. package/src/components/datePicker/dateInputUtils.test.ts +29 -0
  91. package/src/components/datePicker/dateInputUtils.ts +24 -0
  92. package/src/components/dateTimePicker/DateTimePicker.stories.tsx +5 -0
  93. package/src/components/dateTimePicker/DateTimePicker.test.tsx +186 -0
  94. package/src/components/dateTimePicker/DateTimePicker.tsx +38 -8
  95. package/src/components/formField/FormField.stories.tsx +3 -4
  96. package/src/components/formField/FormField.test.tsx +1 -1
  97. package/src/components/formField/inputs/textArea/TextArea.stories.tsx +61 -13
  98. package/src/components/formField/inputs/textArea/TextArea.test.tsx +94 -2
  99. package/src/components/formField/inputs/textArea/TextArea.tsx +39 -13
  100. package/src/components/formField/inputs/time/TimeInput.stories.tsx +38 -87
  101. package/src/components/formField/inputs/time/TimeInput.test.tsx +75 -6
  102. package/src/components/formField/inputs/time/TimeInput.tsx +29 -10
  103. package/src/components/formField/inputs/time/timeInput.scss +0 -6
  104. package/src/components/kvpList/KVPList.stories.tsx +54 -0
  105. package/src/components/kvpList/KVPList.test.tsx +52 -0
  106. package/src/components/kvpList/KVPList.tsx +10 -1
  107. package/src/components/kvpList/kvpList.scss +4 -0
  108. package/src/components/row/Row.stories.tsx +63 -0
  109. package/src/components/row/Row.test.tsx +59 -0
  110. package/src/components/row/Row.tsx +4 -0
  111. package/src/components/row/row.scss +5 -2
  112. package/src/components/table/cellEditors/NumberCellEditor.test.tsx +74 -0
  113. package/src/components/table/cellEditors/NumberCellEditor.tsx +4 -4
  114. package/src/utils/hooks/useIsControlledOnceSet.test.ts +44 -0
  115. package/src/utils/hooks/useIsControlledOnceSet.ts +13 -0
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Controls, Heading as DocHeading, Markdown, Primary as DocPrimary, Stories, Subtitle, Title, } from '@storybook/addon-docs/blocks';
3
3
  import { useState } from 'react';
4
- import { fn } from 'storybook/test';
4
+ import { expect, fn, within } from 'storybook/test';
5
+ import { Button } from '../../../button/Button.js';
5
6
  import { FormField } from '../../../formField/FormField.js';
6
7
  import { TextArea } from './TextArea.js';
7
8
  // ---------------------------------------------------------------------------
@@ -45,11 +46,11 @@ const DEVELOPER_NOTES = [
45
46
  '### Critical gotchas',
46
47
  '',
47
48
  '#### 1. `autoSize` mechanics',
48
- 'When `autoSize={true}` (the default), the component reads `scrollHeight` on every `onChange` event',
49
- 'and sets `height = scrollHeight + 4px` (vertical padding compensation).',
50
- 'The textarea still starts at the height implied by the `rows` prop — growth begins after the first keystroke.',
51
- 'Importantly, `autoSize` is triggered by `onChange`, which means it only fires when the user types.',
52
- 'Setting a large `defaultValue` at mount will NOT auto-grow; call layout imperatively if needed.',
49
+ 'When `autoSize={true}` (the default), the component reads `scrollHeight` and sets',
50
+ '`height = scrollHeight + 4px` (vertical padding compensation).',
51
+ 'It does this on mount, whenever the controlled `value` changes, and on every `onChange` event,',
52
+ 'so a field pre-populated through `value` or `defaultValue` opens fitted to its content.',
53
+ '`rows` is the minimum starting height for empty or short content.',
53
54
  '',
54
55
  '#### 2. CSS `resize` is NOT controlled by this component',
55
56
  'The browser default (`resize: both` or `resize: vertical` depending on browser) applies.',
@@ -63,11 +64,9 @@ const DEVELOPER_NOTES = [
63
64
  '<TextArea className="my-fixed-textarea" />',
64
65
  '```',
65
66
  '',
66
- '#### 3. No `forwardRef` — consumers cannot attach a ref',
67
- 'TextArea uses an internal `ref` for `autoSize` calculations.',
68
- 'It is NOT a `forwardRef` component — you cannot attach a `ref` to it from the outside.',
69
- 'If you need imperative focus control, wrap the TextArea and use a separate DOM query,',
70
- 'or request `forwardRef` support as a library enhancement.',
67
+ '#### 3. `ref` resolves to the native `<textarea>`',
68
+ 'TextArea is a `forwardRef` component. A `ref` you pass resolves to the underlying `HTMLTextAreaElement`,',
69
+ 'for example to call `focus()` or `select()`. Attaching a ref does not interfere with `autoSize`.',
71
70
  '',
72
71
  '#### 4. `size` prop is intentionally omitted',
73
72
  'The HTML `size` attribute is omitted from the props (the TypeScript type uses `Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "size">`).',
@@ -242,8 +241,7 @@ const meta = {
242
241
  description: [
243
242
  'Uncontrolled initial value. The textarea manages its own state after mount.',
244
243
  'Do not combine with `value` — use one or the other.',
245
- 'Note: setting a large `defaultValue` at mount will NOT trigger `autoSize`.',
246
- 'The textarea starts at the height set by `rows` regardless of the initial value length.',
244
+ 'With `autoSize` enabled, the textarea grows on mount to fit a long `defaultValue`.',
247
245
  ].join(' '),
248
246
  table: {
249
247
  type: { summary: 'string' },
@@ -487,6 +485,28 @@ export const ReadOnly = withDescription({
487
485
  'The field remains in the tab order. Use `readOnly` when displaying a value that should be',
488
486
  'visible and copyable — SEN plans, locked incident summaries, pre-filled template text.',
489
487
  ].join(' '));
488
+ const PRE_POPULATED_NOTES = 'Pupil has a documented nut allergy (anaphylaxis risk). EpiPen is held in the school office and a second pen travels with the pupil on trips. All catering staff have been briefed. Parents have supplied an updated care plan, which is reviewed each term with the school nurse.';
489
+ export const PrePopulated = withDescription({
490
+ render: () => (_jsxs("div", { style: { maxWidth: '28rem', padding: 'var(--spacing-xlarge)', display: 'flex', flexDirection: 'column', gap: 'var(--spacing-xsmall)' }, children: [_jsx("label", { htmlFor: "medical-notes-prepopulated", style: { color: 'var(--color-grey-600)' }, children: "Medical notes" }), _jsx(TextArea, { id: "medical-notes-prepopulated", rows: 2, defaultValue: PRE_POPULATED_NOTES })] })),
491
+ play: async ({ canvasElement }) => {
492
+ const canvas = within(canvasElement);
493
+ const textArea = canvas.getByRole('textbox', { name: 'Medical notes' });
494
+ await expect(textArea.scrollHeight).toBeLessThanOrEqual(textArea.clientHeight);
495
+ },
496
+ }, [
497
+ 'A field opened with stored content longer than its `rows` height.',
498
+ 'With `autoSize` enabled (the default) the textarea fits the content on mount, so nothing is hidden behind an internal scrollbar.',
499
+ ].join(' '));
500
+ const ExternallyUpdatedValueTemplate = () => {
501
+ const [notes, setNotes] = useState('Allergy reviewed.');
502
+ return (_jsxs("div", { style: { maxWidth: '28rem', padding: 'var(--spacing-xlarge)', display: 'flex', flexDirection: 'column', gap: 'var(--spacing-xsmall)' }, children: [_jsx("label", { htmlFor: "care-plan-notes", style: { color: 'var(--color-grey-600)' }, children: "Care plan notes" }), _jsx(TextArea, { id: "care-plan-notes", rows: 2, value: notes, onChange: e => setNotes(e.currentTarget.value) }), _jsx(Button, { variant: "secondary", size: "S", onClick: () => setNotes(PRE_POPULATED_NOTES), children: "Load care plan template" })] }));
503
+ };
504
+ export const ExternallyUpdatedValue = withDescription({
505
+ render: () => _jsx(ExternallyUpdatedValueTemplate, {}),
506
+ }, [
507
+ 'A controlled textarea whose `value` is replaced from outside, here by loading a template.',
508
+ 'With `autoSize` enabled the height refits to the new content without the user typing.',
509
+ ].join(' '));
490
510
  export const WithFormField = withDescription({
491
511
  render: () => (_jsxs("div", { style: { maxWidth: '28rem', padding: 'var(--spacing-xlarge)', display: 'flex', flexDirection: 'column', gap: 'var(--spacing-large)' }, children: [_jsx(FormField, { inputType: "textarea", label: "Pupil notes", id: "pupil-notes", fieldDescription: "Add any pastoral or academic notes visible to form tutors.", inputProps: { rows: 3, placeholder: 'Enter notes about this pupil...' } }), _jsx(FormField, { inputType: "textarea", label: "Absence reason", id: "absence-reason", errorText: "An absence reason is required before this record can be saved.", inputProps: { rows: 3, placeholder: 'Enter the reason for absence...' } })] })),
492
512
  parameters: {
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.stories.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/textArea/TextArea.stories.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextArea.stories.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/textArea/TextArea.stories.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.test.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/textArea/TextArea.test.tsx"],"names":[],"mappings":"AAGA,OAAO,kCAAkC,CAAC"}
1
+ {"version":3,"file":"TextArea.test.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/textArea/TextArea.test.tsx"],"names":[],"mappings":"AAIA,OAAO,kCAAkC,CAAC"}
@@ -1,9 +1,23 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { expect, describe, test, vi } from 'vitest';
3
- import { fireEvent, render, screen } from '@testing-library/react';
2
+ import { afterEach, beforeEach, expect, describe, test, vi } from 'vitest';
3
+ import { createRef } from 'react';
4
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
4
5
  import { TextArea } from './TextArea.js';
5
6
  import '@testing-library/jest-dom/vitest';
7
+ const SHORT_TEXT = 'Short note';
8
+ const LONG_TEXT = 'Pupil receives 1:1 literacy support three times per week. Extra time applies in all timed assessments.';
9
+ const SHORT_SCROLL_HEIGHT = 40;
10
+ const LONG_SCROLL_HEIGHT = 120;
11
+ const VERTICAL_PADDING = 4;
6
12
  describe('TextArea component', () => {
13
+ beforeEach(() => {
14
+ vi.spyOn(HTMLTextAreaElement.prototype, 'scrollHeight', 'get').mockImplementation(function () {
15
+ return this.value.length > SHORT_TEXT.length ? LONG_SCROLL_HEIGHT : SHORT_SCROLL_HEIGHT;
16
+ });
17
+ });
18
+ afterEach(() => {
19
+ vi.restoreAllMocks();
20
+ });
7
21
  test('TextArea says hello', () => {
8
22
  render(_jsx(TextArea, { placeholder: "Hello I'm a TextArea!" }));
9
23
  expect(screen.getByPlaceholderText("Hello I'm a TextArea!")).toBeInTheDocument();
@@ -15,5 +29,65 @@ describe('TextArea component', () => {
15
29
  expect(onChange).toHaveBeenCalled();
16
30
  expect(screen.getByPlaceholderText('Enter text').value).toBe('Hello');
17
31
  });
32
+ test('fits its height to a long defaultValue on mount', () => {
33
+ render(_jsx(TextArea, { "aria-label": "Notes", rows: 2, defaultValue: LONG_TEXT }));
34
+ expect(screen.getByRole('textbox', { name: 'Notes' })).toHaveStyle({ height: `${LONG_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
35
+ });
36
+ test('fits its height to a long controlled value on mount', () => {
37
+ render(_jsx(TextArea, { "aria-label": "Notes", rows: 2, value: LONG_TEXT, onChange: vi.fn() }));
38
+ expect(screen.getByRole('textbox', { name: 'Notes' })).toHaveStyle({ height: `${LONG_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
39
+ });
40
+ test('refits its height when the controlled value changes externally', () => {
41
+ const { rerender } = render(_jsx(TextArea, { "aria-label": "Notes", value: SHORT_TEXT, onChange: vi.fn() }));
42
+ expect(screen.getByRole('textbox', { name: 'Notes' })).toHaveStyle({ height: `${SHORT_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
43
+ rerender(_jsx(TextArea, { "aria-label": "Notes", value: LONG_TEXT, onChange: vi.fn() }));
44
+ expect(screen.getByRole('textbox', { name: 'Notes' })).toHaveStyle({ height: `${LONG_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
45
+ });
46
+ test('keeps its rows height on mount when autoSize is false', () => {
47
+ render(_jsx(TextArea, { "aria-label": "Notes", rows: 2, autoSize: false, defaultValue: LONG_TEXT }));
48
+ expect(screen.getByRole('textbox', { name: 'Notes' }).style.height).toBe('');
49
+ });
50
+ test('resizes while typing and still calls onChange', () => {
51
+ const onChange = vi.fn();
52
+ render(_jsx(TextArea, { "aria-label": "Notes", onChange: onChange }));
53
+ const textArea = screen.getByRole('textbox', { name: 'Notes' });
54
+ fireEvent.change(textArea, { target: { value: LONG_TEXT } });
55
+ expect(onChange).toHaveBeenCalledTimes(1);
56
+ expect(textArea).toHaveStyle({ height: `${LONG_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
57
+ });
58
+ test('forwards a ref to the underlying textarea element', () => {
59
+ const textAreaRef = createRef();
60
+ render(_jsx(TextArea, { "aria-label": "Notes", ref: textAreaRef }));
61
+ expect(textAreaRef.current).toBe(screen.getByRole('textbox', { name: 'Notes' }));
62
+ });
63
+ test('keeps its rows height when mounted while not rendered', () => {
64
+ vi.spyOn(HTMLTextAreaElement.prototype, 'scrollHeight', 'get').mockReturnValue(0);
65
+ render(_jsx(TextArea, { "aria-label": "Notes", rows: 2, defaultValue: LONG_TEXT }));
66
+ expect(screen.getByRole('textbox', { name: 'Notes' })).toHaveStyle({ height: 'auto' });
67
+ });
68
+ test('refits its height once web fonts have loaded', async () => {
69
+ let resolveFontsReady = () => { };
70
+ const fontsReady = new Promise((resolve) => {
71
+ resolveFontsReady = resolve;
72
+ });
73
+ Object.defineProperty(document, 'fonts', { value: { ready: fontsReady }, configurable: true });
74
+ const scrollHeightSpy = vi.spyOn(HTMLTextAreaElement.prototype, 'scrollHeight', 'get').mockReturnValue(LONG_SCROLL_HEIGHT);
75
+ try {
76
+ render(_jsx(TextArea, { "aria-label": "Notes", defaultValue: LONG_TEXT }));
77
+ const textArea = screen.getByRole('textbox', { name: 'Notes' });
78
+ expect(textArea).toHaveStyle({ height: `${LONG_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
79
+ scrollHeightSpy.mockReturnValue(SHORT_SCROLL_HEIGHT);
80
+ resolveFontsReady();
81
+ await waitFor(() => expect(textArea).toHaveStyle({ height: `${SHORT_SCROLL_HEIGHT + VERTICAL_PADDING}px` }));
82
+ }
83
+ finally {
84
+ Reflect.deleteProperty(document, 'fonts');
85
+ }
86
+ });
87
+ test('still autosizes when a consumer passes a ref', () => {
88
+ const textAreaRef = createRef();
89
+ render(_jsx(TextArea, { "aria-label": "Notes", ref: textAreaRef, defaultValue: LONG_TEXT }));
90
+ expect(screen.getByRole('textbox', { name: 'Notes' })).toHaveStyle({ height: `${LONG_SCROLL_HEIGHT + VERTICAL_PADDING}px` });
91
+ });
18
92
  });
19
93
  //# sourceMappingURL=TextArea.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.test.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/textArea/TextArea.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,kCAAkC,CAAC;AAE1C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,KAAC,QAAQ,IAAC,WAAW,EAAC,uBAAuB,GAAG,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,KAAC,QAAQ,IAAC,WAAW,EAAC,YAAY,EAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC;QAClE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5F,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAE,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"TextArea.test.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/textArea/TextArea.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimeInput.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/time/TimeInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpF,OAAO,EAAwE,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEvH,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG;IAC5F,KAAK,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B,CAAC;AAIF,4GAA4G;AAC5G,eAAO,MAAM,SAAS;cAdV,SAAS,EAAE;kBACP,eAAe;eAClB,OAAO;oBACF,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;iBAC1B,kBAAkB;6BACN,OAAO;;YAExB,SAAS,GAAG,EAAE;mBACP,SAAS,GAAG,EAAE;oDAkJ7B,CAAC;AAIH,yBAAiB,SAAS,CAAC;IACzB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAY,WAAW,GAAG,eAAe,CAAC;CAC3C"}
1
+ {"version":3,"file":"TimeInput.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/time/TimeInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpF,OAAO,EAAwE,KAAK,mBAAmB,EAAsB,MAAM,OAAO,CAAC;AAE3I,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG;IAC5F,KAAK,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;CAC/B,CAAC;AAYF,4GAA4G;AAC5G,eAAO,MAAM,SAAS;cAtBV,SAAS,EAAE;kBACP,eAAe;eAClB,OAAO;oBACF,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;iBAC1B,kBAAkB;6BACN,OAAO;;YAExB,SAAS,GAAG,EAAE;mBACP,SAAS,GAAG,EAAE;oDAqK7B,CAAC;AAIH,yBAAiB,SAAS,CAAC;IACzB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,SAAS,CAAC;IAC9B,KAAY,WAAW,GAAG,eAAe,CAAC;CAC3C"}
@@ -4,9 +4,15 @@ import { Combobox } from '../../../combobox/Combobox.js';
4
4
  import { Icon } from '../../../icon/Icon.js';
5
5
  import { forwardRef, useCallback, useMemo, useRef, useState } from 'react';
6
6
  const clockIcon = _jsx(Icon, { name: "clock-3", size: 16 });
7
+ const TIME_CHARACTER_PATTERN = /^[0-9:]$/;
8
+ const NON_TIME_CHARACTERS_PATTERN = /[^0-9:]/g;
9
+ const NATIVE_PLACEHOLDER_BY_GRANULARITY = {
10
+ minute: 'HH:mm',
11
+ second: 'HH:mm:ss',
12
+ };
7
13
  /** The forwarded ref is attached in native mode but when `options` is provided, no input ref is exposed. */
8
14
  export const TimeInput = forwardRef((props, ref) => {
9
- const { options, granularity = 'minute', hasError = false, onValueChange, searchType = 'prefix', highlightStringMatches = false, onChange, className, disabled = false, id, name, placeholder, value: controlledValue, defaultValue = '', 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, 'aria-label': ariaLabel, ...rest } = props;
15
+ const { options, granularity = 'minute', hasError = false, onValueChange, searchType = 'prefix', highlightStringMatches = false, onChange, onKeyDown, className, disabled = false, id, name, placeholder, value: controlledValue, defaultValue = '', 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, 'aria-label': ariaLabel, ...rest } = props;
10
16
  const isControlled = controlledValue !== undefined;
11
17
  const [internalValue, setInternalValue] = useState(defaultValue);
12
18
  const currentValue = isControlled ? controlledValue ?? '' : internalValue;
@@ -35,8 +41,21 @@ export const TimeInput = forwardRef((props, ref) => {
35
41
  target: { value: nextValue },
36
42
  });
37
43
  }, [isControlled, onChange, onValueChange]);
44
+ const handleNativeKeyDown = useCallback((event) => {
45
+ const isShortcut = event.ctrlKey || event.metaKey || event.altKey;
46
+ const isPrintable = event.key.length === 1;
47
+ if (isPrintable && !isShortcut && !TIME_CHARACTER_PATTERN.test(event.key)) {
48
+ event.preventDefault();
49
+ }
50
+ onKeyDown?.(event);
51
+ }, [onKeyDown]);
38
52
  const handleNativeChange = useCallback((event) => {
39
- updateValue(event.currentTarget.value, event);
53
+ const { value } = event.currentTarget;
54
+ const timeCharacters = value.replace(NON_TIME_CHARACTERS_PATTERN, '');
55
+ if (timeCharacters !== value) {
56
+ event.currentTarget.value = timeCharacters;
57
+ }
58
+ updateValue(timeCharacters, event);
40
59
  }, [updateValue]);
41
60
  const focusAndSelectHours = useCallback(() => {
42
61
  const input = inputRef.current;
@@ -44,10 +63,7 @@ export const TimeInput = forwardRef((props, ref) => {
44
63
  return;
45
64
  }
46
65
  input.focus();
47
- try {
48
- input.setSelectionRange(0, 2);
49
- }
50
- catch { /* Some browsers do not expose selection APIs on time inputs. */ }
66
+ input.setSelectionRange(0, 2);
51
67
  }, []);
52
68
  const timeOptions = useMemo(() => (options ?? []).map(time => ({ value: time, label: time })), [options]);
53
69
  const selectedTimeValue = options?.includes(currentValue) ? [currentValue] : [];
@@ -58,9 +74,9 @@ export const TimeInput = forwardRef((props, ref) => {
58
74
  if (options) {
59
75
  return (_jsxs("div", { className: classNames('ds-time-input', className), children: [name && _jsx("input", { type: "hidden", name: name, value: selectedTimeValue[0] ?? '' }), _jsx(Combobox, { id: id, options: timeOptions, value: selectedTimeValue, onValueChange: handleTimeListChange, searchType: searchType, highlightStringMatches: highlightStringMatches, placeholder: placeholder ?? 'Select time', disabled: disabled, hasError: hasError, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-label": ariaLabel, triggerVariant: "button", selectedValueDisplay: "text", showDropdownTrigger: false, triggerEndContent: clockIcon })] }));
60
76
  }
61
- return (_jsxs("div", { className: classNames('ds-time-input', className), children: [_jsx("input", { ...rest, ref: setRefs, id: id, name: name, type: "time", value: currentValue, step: granularity === 'second' ? 1 : 60, disabled: disabled, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-label": ariaLabel, placeholder: placeholder, className: classNames('ds-input', 'ds-input--M', 'ds-time-input__input', {
77
+ return (_jsxs("div", { className: classNames('ds-time-input', className), children: [_jsx("input", { ...rest, ref: setRefs, id: id, name: name, type: "text", value: currentValue, disabled: disabled, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-label": ariaLabel, placeholder: placeholder ?? NATIVE_PLACEHOLDER_BY_GRANULARITY[granularity], className: classNames('ds-input', 'ds-input--M', 'ds-time-input__input', {
62
78
  'ds-input--error': hasError,
63
- }), onChange: handleNativeChange }), _jsx("button", { type: "button", className: "ds-time-input__icon-button", onClick: focusAndSelectHours, "aria-label": "Select time", disabled: disabled, children: clockIcon })] }));
79
+ }), onChange: handleNativeChange, onKeyDown: handleNativeKeyDown }), _jsx("button", { type: "button", className: "ds-time-input__icon-button", onClick: focusAndSelectHours, "aria-label": "Select time", disabled: disabled, children: clockIcon })] }));
64
80
  });
65
81
  TimeInput.displayName = 'TimeInput';
66
82
  //# sourceMappingURL=TimeInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeInput.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/time/TimeInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeInput.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/time/TimeInput.tsx"],"names":[],"mappings":"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"}
@@ -199,7 +199,6 @@ export declare const Default: Story;
199
199
  export declare const Controlled: Story;
200
200
  export declare const Uncontrolled: Story;
201
201
  export declare const GranularitySecond: Story;
202
- export declare const WithMinMaxBounds: Story;
203
202
  export declare const WithError: Story;
204
203
  export declare const Disabled: Story;
205
204
  export declare const WithOptions: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeInput.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/time/TimeInput.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA2H3D,iBAAS,iBAAiB,gCAmBzB;AAMD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0KwB,CAAC;AAEnC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AAgPxC,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAsCxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAsC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAkC/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA8B9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KA0CvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAwCtB,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,KAwCzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAyC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KA0ChC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA8C/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA4C9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAwChC,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,KA+BzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAgClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA6CjC,CAAC"}
1
+ {"version":3,"file":"TimeInput.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/time/TimeInput.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA8H3D,iBAAS,iBAAiB,gCAmBzB;AAMD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0KwB,CAAC;AAEnC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AA4NxC,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAsCxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAsC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAkC/B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KA0CvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAwCtB,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,KAwCzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAyC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KA0ChC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA8C/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA4C9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAwChC,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,KA+BzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAgClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA6CjC,CAAC"}
@@ -10,10 +10,11 @@ const DESCRIPTION_INTRO = [
10
10
  'TimeInput is a flexible time-entry field that operates in **two distinct modes** depending on',
11
11
  'whether the `options` prop is supplied.',
12
12
  '',
13
- '**Native mode** (no `options`) renders a browser-native `<input type="time">` decorated with a',
14
- 'clock icon. The browser handles the picker UI, spin-button keyboard navigation, and locale-aware',
15
- 'display. This mode supports `min`, `max`, `granularity`, `className`, a forwarded `ref`, and the',
16
- 'native `onChange` event.',
13
+ '**Native mode** (no `options`) renders a plain text field decorated with a clock icon. Typed input is',
14
+ 'limited to digits and colons, so no browser time picker appears and every browser shows the same',
15
+ 'single control. Like the other input components, it does not validate the value: range checks and',
16
+ 'error messages belong to the consuming code, which presents them through `hasError` and `aria-invalid`.',
17
+ 'This mode supports `granularity`, `className`, a forwarded `ref`, and `onChange`.',
17
18
  '',
18
19
  '**Combobox mode** (`options` provided) replaces the native input with a searchable Combobox.',
19
20
  'The user can type to filter or click to select from a predefined list of time values. This mode',
@@ -26,8 +27,8 @@ const DESCRIPTION_INTRO = [
26
27
  const USAGE_GUIDANCE = [
27
28
  '### When to use',
28
29
  '',
29
- '- **Any valid time** — use native mode (the default). The browser enforces valid time entry and',
30
- ' supports `min`/`max` bounds for school hours (e.g. `min="08:00" max="17:00"`).',
30
+ '- **Free-text time entry** — use native mode (the default). Validate and normalise the typed text in',
31
+ ' your own code, and present errors with `hasError` and `aria-invalid`.',
31
32
  '- **Fixed set of allowed times** — use combobox mode with `options`. Ideal for lesson periods,',
32
33
  ' appointment slots, or any scenario where only specific times are valid.',
33
34
  '- **Inside a form** — always wrap in `<FormField inputType="time">` so label, error text, and',
@@ -41,7 +42,7 @@ const USAGE_GUIDANCE = [
41
42
  '|---|---|',
42
43
  '| Date + time combined | Separate `DateInput` and `TimeInput` fields |',
43
44
  '| Free-form duration entry | `TextInput` with format hint |',
44
- '| More than ~50 time options | Native mode with `min`/`max` bounds |',
45
+ '| More than ~50 time options | Native mode, validating the range in your own code |',
45
46
  '| Status or category selection | `SelectDropdown` with meaningful labels |',
46
47
  ].join('\n');
47
48
  const DEVELOPER_NOTES = [
@@ -52,44 +53,46 @@ const DEVELOPER_NOTES = [
52
53
  '',
53
54
  '| Prop | Native mode | Combobox mode |',
54
55
  '|---|---|---|',
55
- '| `granularity` | Sets `step={1}` for second-level precision | **Ignored** |',
56
- '| `min` / `max` | Restricts picker range | **Ignored** — filter `options` array instead |',
56
+ '| `granularity` | Sets the placeholder to `HH:mm` or `HH:mm:ss` | **Ignored** |',
57
+ '| `min` / `max` / `step` | Passed to the `<input>` but a text field ignores them. Enforce ranges in your own code | **Ignored** — filter `options` array instead |',
57
58
  '| `className` | Applied to the wrapper `<div>` | **Ignored** |',
58
- '| `ref` (forwarded) | Attached to the `<input>` element | **Ignored** |',
59
+ '| `ref` (forwarded) | Attached to the visible text `<input>` | **Ignored** |',
59
60
  '| `onChange` | Native `ChangeEvent<HTMLInputElement>` | **Ignored** — use `onValueChange` |',
60
61
  '| `searchType` | **Ignored** | Controls `prefix`/`substring` matching |',
61
62
  '| `highlightStringMatches` | **Ignored** | Bolds matched characters in dropdown |',
62
63
  '| `onValueChange` | Fires with the string value | Fires with the string value |',
63
64
  '',
64
- '**`aria-invalid` is NOT automatic.** When using TimeInput standalone (outside FormField),',
65
- '`hasError` only applies visual error styling. It does NOT set `aria-invalid`:',
65
+ '### Validation (native mode)',
66
+ '',
67
+ 'TimeInput only filters characters: keystrokes and pasted text are limited to digits and colons, so',
68
+ '`abc` and `9.05` never reach the field. It does not parse, normalise or validate the result, so `25:00`',
69
+ 'is emitted as typed. The component never sets `aria-invalid`, so range validation is the consumer\'s job:',
66
70
  '',
67
71
  '```tsx',
68
- '// Standalone — set aria-invalid yourself:',
69
- '<TimeInput hasError aria-invalid={true} aria-label="Start time" />',
72
+ '// Standalone — validate in your code and present the result:',
73
+ '<TimeInput hasError={!isValid} aria-invalid={!isValid} aria-label="Start time" value={text} onValueChange={setText} />',
70
74
  '',
71
- '// Inside FormField — aria-invalid is set automatically when errorText is present:',
72
- '<FormField label="Start time" id="start" inputType="time" errorText="Required." inputProps={{}} />',
75
+ '// Inside FormField — pass errorText and FormField sets hasError and aria-invalid:',
76
+ '<FormField label="Start time" id="start" inputType="time" errorText="Enter a valid time." inputProps={{}} />',
73
77
  '```',
74
78
  '',
75
- '**`onValueChange` is the preferred callback** — it works in both modes and receives the plain',
76
- 'string value (`HH:MM` or `HH:MM:SS`). The native `onChange` event is only available in native',
77
- 'mode and is not forwarded in combobox mode.',
79
+ '**`onValueChange` is the preferred callback** — it works in both modes and receives the string value.',
80
+ '`onChange` is only available in native mode and is not forwarded in combobox mode.',
78
81
  '',
79
- '**`TimeValue` is format-shaped, not strictly validated.** The TypeScript type',
80
- '`` `${string}:${string}` `` accepts `"99:99"` without complaint. The browser rejects it at render',
81
- 'time for `<input type="time">`, but the component itself does no validation.',
82
+ '**`TimeValue` is format-shaped.** The TypeScript type `` `${string}:${string}` `` accepts any string',
83
+ 'containing a colon, so it does not guarantee a valid time.',
82
84
  '',
83
85
  '---',
84
86
  '',
85
87
  '### Accessibility',
86
88
  '',
87
89
  '- Always provide a visible label via `<FormField>` or `aria-label` / `aria-labelledby`.',
88
- '- In native mode, the browser\'s built-in time picker is fully keyboard-navigable (arrow keys',
89
- ' cycle through the hour/minute/second segments; AM/PM toggles with A/P).',
90
+ '- In native mode the field is a text input, so screen readers announce the text exactly as typed.',
91
+ ' Errors are announced only when the consumer sets `aria-invalid`. The clock button is a labelled',
92
+ ' button ("Select time") that moves focus to the field and selects the hours.',
90
93
  '- In combobox mode, the Combobox component implements the ARIA combobox pattern',
91
94
  ' (`role="combobox"`, `aria-expanded`, `aria-activedescendant`).',
92
- '- The clock icon is decorative and carries `aria-hidden="true"`.',
95
+ '- The clock icon is decorative; the clock button is labelled "Select time".',
93
96
  '- Pair `hasError` with `aria-invalid={true}` when used standalone — one is visual, the other',
94
97
  ' is for screen readers. `<FormField>` handles this automatically when `errorText` is set.',
95
98
  '',
@@ -136,7 +139,7 @@ const meta = {
136
139
  argTypes: {
137
140
  'value': {
138
141
  description: [
139
- 'Controlled value in `HH:MM` or `HH:MM:SS` format.',
142
+ 'Controlled text value, limited to digits and colons. Pass `HH:MM` or `HH:MM:SS` for a time.',
140
143
  'Pair with `onValueChange` to keep state in sync.',
141
144
  'If `undefined`, the component manages its own state (uncontrolled).',
142
145
  ].join(' '),
@@ -159,7 +162,8 @@ const meta = {
159
162
  },
160
163
  'onValueChange': {
161
164
  description: [
162
- 'Callback fired with the plain string value on every change.',
165
+ 'Callback fired with the plain string value whenever the committed value changes.',
166
+ 'In native mode it is the digits and colons entered, with no parsing or range validation.',
163
167
  'Works in **both** native and combobox modes.',
164
168
  'Prefer this over the native `onChange` event for cross-mode compatibility.',
165
169
  ].join(' '),
@@ -172,8 +176,8 @@ const meta = {
172
176
  'options': {
173
177
  description: [
174
178
  'Array of `TimeValue` strings to display as selectable options.',
175
- 'Providing this prop switches to **combobox mode** — the native `<input type="time">` is',
176
- 'replaced by a searchable Combobox. Omit to use the browser-native time picker.',
179
+ 'Providing this prop switches to **combobox mode** — the text field is',
180
+ 'replaced by a searchable Combobox. Omit to type a time into the text field.',
177
181
  ].join(' '),
178
182
  control: 'object',
179
183
  table: {
@@ -184,7 +188,7 @@ const meta = {
184
188
  'granularity': {
185
189
  description: [
186
190
  '**Native mode only.** Controls the precision of the time input.',
187
- '`"second"` sets `step={1}` so the seconds segment is visible.',
191
+ '`"second"` sets the placeholder to `HH:mm:ss`.',
188
192
  'Silently ignored when `options` is provided.',
189
193
  ].join(' '),
190
194
  control: { type: 'select' },
@@ -222,7 +226,7 @@ const meta = {
222
226
  'hasError': {
223
227
  description: [
224
228
  'Applies error-state visual styling (red border).',
225
- 'Does **not** set `aria-invalid` automatically when used standalone outside FormField.',
229
+ 'Does **not** set `aria-invalid` for errors you supply when used standalone outside FormField.',
226
230
  'Always pair with `aria-invalid={true}` for screen-reader coverage.',
227
231
  ].join(' '),
228
232
  control: 'boolean',
@@ -257,7 +261,7 @@ const meta = {
257
261
  },
258
262
  },
259
263
  'placeholder': {
260
- description: 'Placeholder text shown when no value is selected. Most useful in combobox mode.',
264
+ description: 'Placeholder text shown while the field is empty, e.g. `HH:mm`. It disappears once a value is entered.',
261
265
  control: 'text',
262
266
  table: {
263
267
  type: { summary: 'string' },
@@ -276,8 +280,7 @@ const meta = {
276
280
  'aria-invalid': {
277
281
  description: [
278
282
  'Marks the input as invalid for screen readers.',
279
- 'Must be set manually when used standalone — FormField sets this automatically',
280
- 'when `errorText` is provided.',
283
+ 'Never set by TimeInput. Set it when validating the text yourself, or let FormField set it when `errorText` is provided.',
281
284
  ].join(' '),
282
285
  control: 'boolean',
283
286
  table: {
@@ -335,10 +338,6 @@ const GranularitySecondTemplate = () => {
335
338
  const [value, setValue] = useState('');
336
339
  return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--spacing-small)', maxWidth: '280px' }, children: [_jsx(TimeInput, { granularity: "second", value: value, onValueChange: v => setValue(v), id: "second-granularity", name: "precise-time" }), _jsxs("p", { style: { margin: 0, color: 'var(--color-grey-600)' }, children: ["Selected:", ' ', _jsx("code", { children: value || '(none)' })] })] }));
337
340
  };
338
- const WithMinMaxBoundsTemplate = () => {
339
- const [value, setValue] = useState('');
340
- return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--spacing-small)', maxWidth: '280px' }, children: [_jsx(TimeInput, { min: "08:00", max: "17:00", value: value, onValueChange: v => setValue(v), id: "bounded-time", name: "school-time", "aria-label": "School hours time" }), _jsx("p", { style: { margin: 0, color: 'var(--color-grey-600)' }, children: "Restricted to school hours: 08:00 \u2013 17:00" })] }));
341
- };
342
341
  const WithOptionsTemplate = () => {
343
342
  const [value, setValue] = useState('');
344
343
  return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--spacing-small)', maxWidth: '280px' }, children: [_jsx(TimeInput, { options: LESSON_PERIOD_OPTIONS, value: value, onValueChange: v => setValue(v), id: "lesson-period", name: "lesson-start", placeholder: "Select lesson period...", "aria-label": "Lesson period" }), _jsxs("p", { style: { margin: 0, color: 'var(--color-grey-600)' }, children: ["Selected:", ' ', _jsx("code", { children: value || '(none)' })] })] }));
@@ -475,35 +474,7 @@ export default PreciseTimeInputExample;
475
474
  },
476
475
  },
477
476
  render: () => _jsx(GranularitySecondTemplate, {}),
478
- }, 'Setting `granularity="second"` adds a seconds segment to the native time input (`step={1}`). Use this for stopwatch-style timing or precise event logging. **Native mode only** — silently ignored when `options` is provided.');
479
- export const WithMinMaxBounds = withDescription({
480
- parameters: {
481
- controls: { disable: true },
482
- docs: {
483
- source: {
484
- language: 'tsx',
485
- code: `
486
- import { TimeInput, type TimeValue } from '@arbor-education/design-system.components';
487
-
488
- function BoundedTimeInputExample() {
489
- return (
490
- <TimeInput
491
- min="08:00"
492
- max="17:00"
493
- id="school-time"
494
- name="school-time"
495
- aria-label="School hours time"
496
- />
497
- );
498
- }
499
-
500
- export default BoundedTimeInputExample;
501
- `.trim(),
502
- },
503
- },
504
- },
505
- render: () => _jsx(WithMinMaxBoundsTemplate, {}),
506
- }, 'The `min` and `max` props restrict the selectable range in the native browser picker to school hours. **Native mode only** — in combobox mode, restrict available times by filtering the `options` array instead.');
477
+ }, 'Setting `granularity="second"` sets the placeholder to `HH:mm:ss`. Seconds are typed by the user, and only digits and colons are accepted. **Native mode only** — silently ignored when `options` is provided.');
507
478
  export const WithError = withDescription({
508
479
  parameters: {
509
480
  controls: { disable: true },