@rockshin/tao-ui 0.0.10 → 0.0.11

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 (104) hide show
  1. package/component-manifest.json +764 -0
  2. package/dist/components/breadcrumb/breadcrumb.css +4 -0
  3. package/dist/components/breadcrumb/breadcrumb.js +8 -6
  4. package/dist/components/checkbox/checkbox.js +4 -0
  5. package/dist/components/date-picker/calendar/calendar-grid.js +21 -17
  6. package/dist/components/date-picker/calendar/calendar-header.js +8 -0
  7. package/dist/components/date-picker/calendar/month-grid.js +1 -1
  8. package/dist/components/date-picker/calendar/time-panel.js +36 -41
  9. package/dist/components/date-picker/date-picker.css +30 -16
  10. package/dist/components/date-picker/date-picker.js +240 -223
  11. package/dist/components/date-picker/range-picker.js +25 -2
  12. package/dist/components/drawer/drawer.js +2 -0
  13. package/dist/components/dropdown/dropdown.js +2 -1
  14. package/dist/components/menu/menu-render.js +6 -3
  15. package/dist/components/modal/confirm-dialog.js +9 -1
  16. package/dist/components/modal/modal.js +2 -0
  17. package/dist/components/pagination/pagination.js +56 -64
  18. package/dist/components/scroll-area/scroll-area.css +3 -0
  19. package/dist/components/scroll-area/scroll-area.js +6 -2
  20. package/dist/components/select/mobile-select.css +4 -0
  21. package/dist/components/select/mobile-select.js +9 -4
  22. package/dist/components/select/select.js +6 -0
  23. package/dist/components/spinner/spinner.js +2 -1
  24. package/dist/components/splitter/splitter.js +165 -149
  25. package/dist/components/switch/switch.js +2 -0
  26. package/dist/components/table/table.css +14 -0
  27. package/dist/components/table/table.js +14 -14
  28. package/dist/components/tabs/tabs.js +84 -87
  29. package/dist/components/tag/tag.js +1 -0
  30. package/dist/components/textarea/textarea.css +21 -3
  31. package/dist/docs/component-doc.d.ts +28 -0
  32. package/dist/docs/component-doc.js +0 -0
  33. package/dist/docs/component-docs.d.ts +147 -0
  34. package/dist/docs/component-docs.js +70 -0
  35. package/dist/docs/components/breadcrumb.doc.d.ts +23 -0
  36. package/dist/docs/components/breadcrumb.doc.js +53 -0
  37. package/dist/docs/components/button.doc.d.ts +29 -0
  38. package/dist/docs/components/button.doc.js +62 -0
  39. package/dist/docs/components/checkbox.doc.d.ts +23 -0
  40. package/dist/docs/components/checkbox.doc.js +60 -0
  41. package/dist/docs/components/collapsible.doc.d.ts +18 -0
  42. package/dist/docs/components/collapsible.doc.js +39 -0
  43. package/dist/docs/components/context-menu.doc.d.ts +18 -0
  44. package/dist/docs/components/context-menu.doc.js +40 -0
  45. package/dist/docs/components/date-picker.doc.d.ts +18 -0
  46. package/dist/docs/components/date-picker.doc.js +43 -0
  47. package/dist/docs/components/drawer.doc.d.ts +18 -0
  48. package/dist/docs/components/drawer.doc.js +42 -0
  49. package/dist/docs/components/dropdown.doc.d.ts +18 -0
  50. package/dist/docs/components/dropdown.doc.js +42 -0
  51. package/dist/docs/components/form-actions.doc.d.ts +17 -0
  52. package/dist/docs/components/form-actions.doc.js +35 -0
  53. package/dist/docs/components/form-field.doc.d.ts +17 -0
  54. package/dist/docs/components/form-field.doc.js +39 -0
  55. package/dist/docs/components/form-layout.doc.d.ts +16 -0
  56. package/dist/docs/components/form-layout.doc.js +31 -0
  57. package/dist/docs/components/form-section.doc.d.ts +17 -0
  58. package/dist/docs/components/form-section.doc.js +38 -0
  59. package/dist/docs/components/headless-input-number.doc.d.ts +16 -0
  60. package/dist/docs/components/headless-input-number.doc.js +36 -0
  61. package/dist/docs/components/input-number.doc.d.ts +18 -0
  62. package/dist/docs/components/input-number.doc.js +41 -0
  63. package/dist/docs/components/input.doc.d.ts +17 -0
  64. package/dist/docs/components/input.doc.js +38 -0
  65. package/dist/docs/components/modal.doc.d.ts +18 -0
  66. package/dist/docs/components/modal.doc.js +43 -0
  67. package/dist/docs/components/pagination.doc.d.ts +17 -0
  68. package/dist/docs/components/pagination.doc.js +37 -0
  69. package/dist/docs/components/radio.doc.d.ts +18 -0
  70. package/dist/docs/components/radio.doc.js +43 -0
  71. package/dist/docs/components/range-picker.doc.d.ts +17 -0
  72. package/dist/docs/components/range-picker.doc.js +39 -0
  73. package/dist/docs/components/scroll-area.doc.d.ts +17 -0
  74. package/dist/docs/components/scroll-area.doc.js +36 -0
  75. package/dist/docs/components/select.doc.d.ts +18 -0
  76. package/dist/docs/components/select.doc.js +43 -0
  77. package/dist/docs/components/spinner.doc.d.ts +18 -0
  78. package/dist/docs/components/spinner.doc.js +36 -0
  79. package/dist/docs/components/splitter.doc.d.ts +17 -0
  80. package/dist/docs/components/splitter.doc.js +36 -0
  81. package/dist/docs/components/stack.doc.d.ts +16 -0
  82. package/dist/docs/components/stack.doc.js +31 -0
  83. package/dist/docs/components/switch.doc.d.ts +17 -0
  84. package/dist/docs/components/switch.doc.js +35 -0
  85. package/dist/docs/components/table.doc.d.ts +18 -0
  86. package/dist/docs/components/table.doc.js +46 -0
  87. package/dist/docs/components/tabs.doc.d.ts +18 -0
  88. package/dist/docs/components/tabs.doc.js +39 -0
  89. package/dist/docs/components/tag.doc.d.ts +18 -0
  90. package/dist/docs/components/tag.doc.js +41 -0
  91. package/dist/docs/components/tao-provider.doc.d.ts +22 -0
  92. package/dist/docs/components/tao-provider.doc.js +60 -0
  93. package/dist/docs/components/textarea.doc.d.ts +17 -0
  94. package/dist/docs/components/textarea.doc.js +35 -0
  95. package/dist/docs/index.d.ts +2 -0
  96. package/dist/docs/index.js +1 -0
  97. package/dist/index.d.ts +35 -33
  98. package/dist/index.js +2 -0
  99. package/dist/provider/tao-provider.js +92 -49
  100. package/dist/theme/theme.css +46 -46
  101. package/dist/theme/tokens.d.ts +4 -0
  102. package/dist/theme/tokens.js +108 -0
  103. package/llms.txt +402 -45
  104. package/package.json +4 -1
@@ -0,0 +1,62 @@
1
+ const buttonDoc = {
2
+ name: 'button',
3
+ displayName: 'Button',
4
+ category: 'General',
5
+ description: 'Triggers an immediate action such as submitting, saving, or opening a surface.',
6
+ exports: [
7
+ 'Button'
8
+ ],
9
+ source: 'src/components/button/button.tsx',
10
+ story: 'stories/button.stories.tsx',
11
+ tests: [
12
+ 'tests/button/button.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root'
16
+ ],
17
+ keywords: [
18
+ 'button',
19
+ 'action',
20
+ 'submit',
21
+ 'loading'
22
+ ],
23
+ related: [
24
+ 'FormActions',
25
+ 'Modal'
26
+ ],
27
+ usage: {
28
+ description: 'Use Button for explicit actions. It inherits size, disabled, and variant defaults from TaoProvider.',
29
+ bestPractices: [
30
+ 'Prefer one primary action per view or decision area.',
31
+ 'Use loading when an action is pending.',
32
+ 'Pass a native type when using a button inside a form.'
33
+ ],
34
+ avoid: [
35
+ 'Do not use Button for simple navigation when a link is more accurate.'
36
+ ]
37
+ },
38
+ props: [
39
+ {
40
+ name: 'variant',
41
+ type: "'primary' | 'secondary' | 'ghost' | 'destructive'",
42
+ description: 'Visual emphasis.',
43
+ defaultValue: "'primary'"
44
+ },
45
+ {
46
+ name: 'size',
47
+ type: 'TaoSize',
48
+ description: 'Control size, falling back to TaoProvider.'
49
+ },
50
+ {
51
+ name: 'loading',
52
+ type: 'boolean',
53
+ description: 'Disables the button and sets aria-busy.'
54
+ },
55
+ {
56
+ name: 'classNames',
57
+ type: "SemanticClassNames<'root'>",
58
+ description: 'Semantic class override.'
59
+ }
60
+ ]
61
+ };
62
+ export { buttonDoc };
@@ -0,0 +1,23 @@
1
+ export declare const checkboxDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Data Entry";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ avoid: string[];
17
+ };
18
+ props: {
19
+ name: string;
20
+ type: string;
21
+ description: string;
22
+ }[];
23
+ };
@@ -0,0 +1,60 @@
1
+ const checkboxDoc = {
2
+ name: 'checkbox',
3
+ displayName: 'Checkbox',
4
+ category: 'Data Entry',
5
+ description: 'Selects one or more independent boolean options.',
6
+ exports: [
7
+ 'Checkbox',
8
+ 'CheckboxGroup'
9
+ ],
10
+ source: 'src/components/checkbox/checkbox.tsx',
11
+ story: 'stories/checkbox.stories.tsx',
12
+ tests: [
13
+ 'tests/checkbox/checkbox.test.tsx'
14
+ ],
15
+ semanticParts: [
16
+ 'root',
17
+ 'input',
18
+ 'box',
19
+ 'label',
20
+ 'group',
21
+ 'option'
22
+ ],
23
+ keywords: [
24
+ 'checkbox',
25
+ 'boolean',
26
+ 'multi select'
27
+ ],
28
+ related: [
29
+ 'Radio',
30
+ 'Switch'
31
+ ],
32
+ usage: {
33
+ description: 'Use Checkbox for independent choices, or CheckboxGroup when users can select multiple options from a set.',
34
+ bestPractices: [
35
+ 'Use clear labels that describe the checked state.',
36
+ 'Group related options with CheckboxGroup.'
37
+ ],
38
+ avoid: [
39
+ 'Do not use CheckboxGroup when only one option may be selected; use RadioGroup instead.'
40
+ ]
41
+ },
42
+ props: [
43
+ {
44
+ name: 'checked',
45
+ type: 'boolean',
46
+ description: 'Controlled checked state.'
47
+ },
48
+ {
49
+ name: 'options',
50
+ type: 'CheckboxOptionType[]',
51
+ description: 'Options for CheckboxGroup.'
52
+ },
53
+ {
54
+ name: 'classNames',
55
+ type: 'SemanticClassNames<CheckboxSemanticPart>',
56
+ description: 'Semantic class overrides.'
57
+ }
58
+ ]
59
+ };
60
+ export { checkboxDoc };
@@ -0,0 +1,18 @@
1
+ export declare const collapsibleDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Data Display";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ avoid: string[];
17
+ };
18
+ };
@@ -0,0 +1,39 @@
1
+ const collapsibleDoc = {
2
+ name: 'collapsible',
3
+ displayName: 'Collapsible',
4
+ category: 'Data Display',
5
+ description: 'Shows and hides a region of content while keeping disclosure state accessible.',
6
+ exports: [
7
+ 'Collapsible'
8
+ ],
9
+ source: 'src/components/collapsible/collapsible.tsx',
10
+ story: 'stories/collapsible.stories.tsx',
11
+ tests: [
12
+ 'tests/collapsible/collapsible.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root',
16
+ 'trigger',
17
+ 'content'
18
+ ],
19
+ keywords: [
20
+ 'accordion',
21
+ 'disclosure',
22
+ 'expand'
23
+ ],
24
+ related: [
25
+ 'Drawer',
26
+ 'Tabs'
27
+ ],
28
+ usage: {
29
+ description: 'Use Collapsible to hide secondary details while preserving a lightweight page layout.',
30
+ bestPractices: [
31
+ 'Make the trigger label describe the hidden content.',
32
+ 'Use controlled open state when it must coordinate with other UI.'
33
+ ],
34
+ avoid: [
35
+ 'Do not hide required form inputs in a collapsed region without a clear cue.'
36
+ ]
37
+ }
38
+ };
39
+ export { collapsibleDoc };
@@ -0,0 +1,18 @@
1
+ export declare const contextMenuDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Navigation";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ avoid: string[];
17
+ };
18
+ };
@@ -0,0 +1,40 @@
1
+ const contextMenuDoc = {
2
+ name: 'context-menu',
3
+ displayName: 'ContextMenu',
4
+ category: 'Navigation',
5
+ description: 'Displays contextual actions from a right click or long press interaction.',
6
+ exports: [
7
+ 'ContextMenu'
8
+ ],
9
+ source: 'src/components/context-menu/context-menu.tsx',
10
+ story: 'stories/context-menu.stories.tsx',
11
+ tests: [
12
+ 'tests/context-menu/context-menu.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root',
16
+ 'trigger',
17
+ 'content',
18
+ 'item',
19
+ 'separator'
20
+ ],
21
+ keywords: [
22
+ 'menu',
23
+ 'right click',
24
+ 'actions'
25
+ ],
26
+ related: [
27
+ 'Dropdown'
28
+ ],
29
+ usage: {
30
+ description: 'Use ContextMenu for secondary actions attached to an object or region.',
31
+ bestPractices: [
32
+ 'Keep items short and action-oriented.',
33
+ 'Provide another reachable path for critical actions.'
34
+ ],
35
+ avoid: [
36
+ 'Do not put primary workflows only inside a context menu.'
37
+ ]
38
+ }
39
+ };
40
+ export { contextMenuDoc };
@@ -0,0 +1,18 @@
1
+ export declare const datePickerDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Data Entry";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ avoid: string[];
17
+ };
18
+ };
@@ -0,0 +1,43 @@
1
+ const datePickerDoc = {
2
+ name: 'date-picker',
3
+ displayName: 'DatePicker',
4
+ category: 'Data Entry',
5
+ description: 'Lets users enter or choose a single date, with optional time selection.',
6
+ exports: [
7
+ 'DatePicker'
8
+ ],
9
+ source: 'src/components/date-picker/date-picker.tsx',
10
+ story: 'stories/date-picker.stories.tsx',
11
+ tests: [
12
+ 'tests/date-picker/date-picker.test.tsx',
13
+ 'tests/date-picker/use-calendar.test.ts'
14
+ ],
15
+ semanticParts: [
16
+ 'root',
17
+ 'input',
18
+ 'popup',
19
+ 'calendar',
20
+ 'cell',
21
+ 'footer'
22
+ ],
23
+ keywords: [
24
+ 'date',
25
+ 'calendar',
26
+ 'time'
27
+ ],
28
+ related: [
29
+ 'RangePicker',
30
+ 'Input'
31
+ ],
32
+ usage: {
33
+ description: 'Use DatePicker when free text date input would be error-prone or when users benefit from calendar context.',
34
+ bestPractices: [
35
+ 'Support keyboard entry for known dates.',
36
+ 'Use presets for common relative choices when helpful.'
37
+ ],
38
+ avoid: [
39
+ 'Do not force calendar navigation for dates far in the past without typed input.'
40
+ ]
41
+ }
42
+ };
43
+ export { datePickerDoc };
@@ -0,0 +1,18 @@
1
+ export declare const drawerDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Feedback";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ avoid: string[];
17
+ };
18
+ };
@@ -0,0 +1,42 @@
1
+ const drawerDoc = {
2
+ name: 'drawer',
3
+ displayName: 'Drawer',
4
+ category: 'Feedback',
5
+ description: 'Opens a side panel for related tasks without leaving the current page.',
6
+ exports: [
7
+ 'Drawer'
8
+ ],
9
+ source: 'src/components/drawer/drawer.tsx',
10
+ story: 'stories/drawer.stories.tsx',
11
+ tests: [
12
+ 'tests/drawer/drawer.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root',
16
+ 'overlay',
17
+ 'content',
18
+ 'header',
19
+ 'body',
20
+ 'footer',
21
+ 'close'
22
+ ],
23
+ keywords: [
24
+ 'panel',
25
+ 'overlay',
26
+ 'side sheet'
27
+ ],
28
+ related: [
29
+ 'Modal'
30
+ ],
31
+ usage: {
32
+ description: 'Use Drawer for inspection, editing, or supporting workflows that should stay connected to the current page.',
33
+ bestPractices: [
34
+ 'Use a clear title and predictable close affordance.',
35
+ 'Keep destructive confirmations in a dedicated confirmation step.'
36
+ ],
37
+ avoid: [
38
+ 'Do not stack multiple drawers for a single workflow.'
39
+ ]
40
+ }
41
+ };
42
+ export { drawerDoc };
@@ -0,0 +1,18 @@
1
+ export declare const dropdownDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Navigation";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ avoid: string[];
17
+ };
18
+ };
@@ -0,0 +1,42 @@
1
+ const dropdownDoc = {
2
+ name: 'dropdown',
3
+ displayName: 'Dropdown',
4
+ category: 'Navigation',
5
+ description: 'Opens a menu of actions or navigation choices from a trigger.',
6
+ exports: [
7
+ 'Dropdown'
8
+ ],
9
+ source: 'src/components/dropdown/dropdown.tsx',
10
+ story: 'stories/dropdown.stories.tsx',
11
+ tests: [
12
+ 'tests/dropdown/dropdown.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root',
16
+ 'trigger',
17
+ 'content',
18
+ 'item',
19
+ 'group',
20
+ 'divider'
21
+ ],
22
+ keywords: [
23
+ 'menu',
24
+ 'actions',
25
+ 'more'
26
+ ],
27
+ related: [
28
+ 'ContextMenu',
29
+ 'Select'
30
+ ],
31
+ usage: {
32
+ description: 'Use Dropdown for compact action sets that do not need to stay visible.',
33
+ bestPractices: [
34
+ 'Order frequent actions first.',
35
+ 'Use destructive styling only for destructive items.'
36
+ ],
37
+ avoid: [
38
+ 'Do not use Dropdown as a replacement for visible primary navigation.'
39
+ ]
40
+ }
41
+ };
42
+ export { dropdownDoc };
@@ -0,0 +1,17 @@
1
+ export declare const formActionsDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Data Entry";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ };
17
+ };
@@ -0,0 +1,35 @@
1
+ const formActionsDoc = {
2
+ name: 'form-actions',
3
+ displayName: 'FormActions',
4
+ category: 'Data Entry',
5
+ description: 'Lays out submit, cancel, and secondary actions for forms.',
6
+ exports: [
7
+ 'FormActions'
8
+ ],
9
+ source: 'src/components/form-actions/form-actions.tsx',
10
+ story: 'stories/form.stories.tsx',
11
+ tests: [
12
+ 'tests/form-actions/form-actions.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root'
16
+ ],
17
+ keywords: [
18
+ 'form',
19
+ 'actions',
20
+ 'submit'
21
+ ],
22
+ related: [
23
+ 'Button',
24
+ 'FormField',
25
+ 'FormSection'
26
+ ],
27
+ usage: {
28
+ description: 'Use FormActions at the end of a form or section to align the final actions consistently.',
29
+ bestPractices: [
30
+ 'Keep action order consistent across forms.',
31
+ 'Use a single submit action unless the workflow truly branches.'
32
+ ]
33
+ }
34
+ };
35
+ export { formActionsDoc };
@@ -0,0 +1,17 @@
1
+ export declare const formFieldDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Data Entry";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ };
17
+ };
@@ -0,0 +1,39 @@
1
+ const formFieldDoc = {
2
+ name: 'form-field',
3
+ displayName: 'FormField',
4
+ category: 'Data Entry',
5
+ description: 'Associates labels, help text, validation state, and controls.',
6
+ exports: [
7
+ 'FormField'
8
+ ],
9
+ source: 'src/components/form-field/form-field.tsx',
10
+ story: 'stories/form.stories.tsx',
11
+ tests: [
12
+ 'tests/form-field/form-field.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root',
16
+ 'label',
17
+ 'control',
18
+ "description",
19
+ 'error'
20
+ ],
21
+ keywords: [
22
+ 'form',
23
+ 'label',
24
+ 'validation'
25
+ ],
26
+ related: [
27
+ 'Input',
28
+ 'Select',
29
+ 'FormSection'
30
+ ],
31
+ usage: {
32
+ description: 'Use FormField to provide accessible labeling and status text around a single control.',
33
+ bestPractices: [
34
+ 'Connect every input with a visible label.',
35
+ 'Keep validation copy specific and actionable.'
36
+ ]
37
+ }
38
+ };
39
+ export { formFieldDoc };
@@ -0,0 +1,16 @@
1
+ export declare const formLayoutDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Layout";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ keywords: string[];
11
+ related: string[];
12
+ usage: {
13
+ description: string;
14
+ bestPractices: string[];
15
+ };
16
+ };
@@ -0,0 +1,31 @@
1
+ const formLayoutDoc = {
2
+ name: 'form-layout',
3
+ displayName: 'FormLayout',
4
+ category: 'Layout',
5
+ description: 'Arranges form content with consistent label and control alignment.',
6
+ exports: [
7
+ 'FormLayout'
8
+ ],
9
+ source: 'src/layouts/form-layout/form-layout.tsx',
10
+ story: 'stories/form-layout.stories.tsx',
11
+ tests: [
12
+ 'tests/layouts/form-layout/form-layout.test.tsx'
13
+ ],
14
+ keywords: [
15
+ 'form',
16
+ 'layout',
17
+ 'labels'
18
+ ],
19
+ related: [
20
+ 'FormField',
21
+ 'FormSection'
22
+ ],
23
+ usage: {
24
+ description: 'Use FormLayout to keep dense forms aligned and predictable.',
25
+ bestPractices: [
26
+ 'Use one layout strategy per form.',
27
+ 'Prefer vertical layout on narrow screens.'
28
+ ]
29
+ }
30
+ };
31
+ export { formLayoutDoc };
@@ -0,0 +1,17 @@
1
+ export declare const formSectionDoc: {
2
+ name: string;
3
+ displayName: string;
4
+ category: "Data Entry";
5
+ description: string;
6
+ exports: string[];
7
+ source: string;
8
+ story: string;
9
+ tests: string[];
10
+ semanticParts: string[];
11
+ keywords: string[];
12
+ related: string[];
13
+ usage: {
14
+ description: string;
15
+ bestPractices: string[];
16
+ };
17
+ };
@@ -0,0 +1,38 @@
1
+ const formSectionDoc = {
2
+ name: 'form-section',
3
+ displayName: 'FormSection',
4
+ category: 'Data Entry',
5
+ description: "Groups related form fields with a title and optional description.",
6
+ exports: [
7
+ 'FormSection'
8
+ ],
9
+ source: 'src/components/form-section/form-section.tsx',
10
+ story: 'stories/form.stories.tsx',
11
+ tests: [
12
+ 'tests/form-section/form-section.test.tsx'
13
+ ],
14
+ semanticParts: [
15
+ 'root',
16
+ 'header',
17
+ 'title',
18
+ "description",
19
+ 'content'
20
+ ],
21
+ keywords: [
22
+ 'form',
23
+ 'section',
24
+ 'group'
25
+ ],
26
+ related: [
27
+ 'FormField',
28
+ 'FormLayout'
29
+ ],
30
+ usage: {
31
+ description: 'Use FormSection to break long forms into scannable groups.',
32
+ bestPractices: [
33
+ 'Use headings that describe the group, not the control type.',
34
+ 'Keep each section focused on one user decision area.'
35
+ ]
36
+ }
37
+ };
38
+ export { formSectionDoc };