@duro-app/ui 0.16.0 → 0.17.1

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 (82) hide show
  1. package/dist/components/ActionBar/ActionBar.d.ts +3 -1
  2. package/dist/components/ActionBar/ActionBar.d.ts.map +1 -1
  3. package/dist/components/Button/Button.meta.d.ts +3 -0
  4. package/dist/components/Button/Button.meta.d.ts.map +1 -0
  5. package/dist/components/Checkbox/Checkbox.meta.d.ts +3 -0
  6. package/dist/components/Checkbox/Checkbox.meta.d.ts.map +1 -0
  7. package/dist/components/Cluster/Cluster.meta.d.ts +3 -0
  8. package/dist/components/Cluster/Cluster.meta.d.ts.map +1 -0
  9. package/dist/components/Field/Field.d.ts.map +1 -1
  10. package/dist/components/Field/Field.meta.d.ts +3 -0
  11. package/dist/components/Field/Field.meta.d.ts.map +1 -0
  12. package/dist/components/Fieldset/Fieldset.meta.d.ts +3 -0
  13. package/dist/components/Fieldset/Fieldset.meta.d.ts.map +1 -0
  14. package/dist/components/Form/Form.meta.d.ts +3 -0
  15. package/dist/components/Form/Form.meta.d.ts.map +1 -0
  16. package/dist/components/Form/Form.stories.d.ts.map +1 -1
  17. package/dist/components/Grid/Grid.meta.d.ts +3 -0
  18. package/dist/components/Grid/Grid.meta.d.ts.map +1 -0
  19. package/dist/components/Inline/Inline.meta.d.ts +3 -0
  20. package/dist/components/Inline/Inline.meta.d.ts.map +1 -0
  21. package/dist/components/Input/Input.meta.d.ts +3 -0
  22. package/dist/components/Input/Input.meta.d.ts.map +1 -0
  23. package/dist/components/LinkButton/LinkButton.meta.d.ts +3 -0
  24. package/dist/components/LinkButton/LinkButton.meta.d.ts.map +1 -0
  25. package/dist/components/Menu/Menu.meta.d.ts +3 -0
  26. package/dist/components/Menu/Menu.meta.d.ts.map +1 -0
  27. package/dist/components/PageShell/PageShell.meta.d.ts +3 -0
  28. package/dist/components/PageShell/PageShell.meta.d.ts.map +1 -0
  29. package/dist/components/ScrollArea/ScrollArea.meta.d.ts +3 -0
  30. package/dist/components/ScrollArea/ScrollArea.meta.d.ts.map +1 -0
  31. package/dist/components/Select/Select.meta.d.ts +3 -0
  32. package/dist/components/Select/Select.meta.d.ts.map +1 -0
  33. package/dist/components/SideNav/SideNav.meta.d.ts +3 -0
  34. package/dist/components/SideNav/SideNav.meta.d.ts.map +1 -0
  35. package/dist/components/Stack/Stack.meta.d.ts +3 -0
  36. package/dist/components/Stack/Stack.meta.d.ts.map +1 -0
  37. package/dist/components/Switch/Switch.meta.d.ts +3 -0
  38. package/dist/components/Switch/Switch.meta.d.ts.map +1 -0
  39. package/dist/components/Table/Table.meta.d.ts +3 -0
  40. package/dist/components/Table/Table.meta.d.ts.map +1 -0
  41. package/dist/components/Tabs/Tabs.meta.d.ts +3 -0
  42. package/dist/components/Tabs/Tabs.meta.d.ts.map +1 -0
  43. package/dist/components/Textarea/Textarea.meta.d.ts +3 -0
  44. package/dist/components/Textarea/Textarea.meta.d.ts.map +1 -0
  45. package/dist/components/Toggle/Toggle.meta.d.ts +3 -0
  46. package/dist/components/Toggle/Toggle.meta.d.ts.map +1 -0
  47. package/dist/components/ToggleGroup/ToggleGroup.meta.d.ts +3 -0
  48. package/dist/components/ToggleGroup/ToggleGroup.meta.d.ts.map +1 -0
  49. package/dist/components/Tooltip/Tooltip.meta.d.ts +3 -0
  50. package/dist/components/Tooltip/Tooltip.meta.d.ts.map +1 -0
  51. package/dist/components/component-meta.d.ts +15 -0
  52. package/dist/components/component-meta.d.ts.map +1 -0
  53. package/dist/index.js +163 -167
  54. package/dist/index.js.map +1 -1
  55. package/package.json +2 -2
  56. package/src/components/ActionBar/ActionBar.tsx +20 -15
  57. package/src/components/Button/Button.meta.ts +23 -0
  58. package/src/components/Checkbox/Checkbox.meta.ts +21 -0
  59. package/src/components/Cluster/Cluster.meta.ts +25 -0
  60. package/src/components/Field/Field.meta.ts +37 -0
  61. package/src/components/Field/Field.tsx +10 -1
  62. package/src/components/Fieldset/Fieldset.meta.ts +38 -0
  63. package/src/components/Form/Form.meta.ts +38 -0
  64. package/src/components/Form/Form.stories.tsx +10 -19
  65. package/src/components/Grid/Grid.meta.ts +30 -0
  66. package/src/components/Inline/Inline.meta.ts +23 -0
  67. package/src/components/Input/Input.meta.ts +23 -0
  68. package/src/components/LinkButton/LinkButton.meta.ts +24 -0
  69. package/src/components/Menu/Menu.meta.ts +33 -0
  70. package/src/components/PageShell/PageShell.meta.ts +24 -0
  71. package/src/components/ScrollArea/ScrollArea.meta.ts +27 -0
  72. package/src/components/Select/Select.meta.ts +34 -0
  73. package/src/components/SideNav/SideNav.meta.ts +31 -0
  74. package/src/components/Stack/Stack.meta.ts +22 -0
  75. package/src/components/Switch/Switch.meta.ts +25 -0
  76. package/src/components/Table/Table.meta.ts +36 -0
  77. package/src/components/Tabs/Tabs.meta.ts +31 -0
  78. package/src/components/Textarea/Textarea.meta.ts +22 -0
  79. package/src/components/Toggle/Toggle.meta.ts +30 -0
  80. package/src/components/ToggleGroup/ToggleGroup.meta.ts +30 -0
  81. package/src/components/Tooltip/Tooltip.meta.ts +22 -0
  82. package/src/components/component-meta.ts +8 -0
@@ -0,0 +1,36 @@
1
+ import type {ComponentMeta} from '../component-meta'
2
+
3
+ export const meta: ComponentMeta = {
4
+ description:
5
+ 'Data table with CSS grid layout. Supports striped, bordered variants. Compound component — Root is required (throws without it). Requires `columns` prop on Root.',
6
+ whenToUse: [
7
+ 'Displaying tabular data with rows and columns',
8
+ 'Data lists with sortable/filterable columns',
9
+ ],
10
+ whenNotToUse: [
11
+ 'Simple key-value pairs — use Stack with Text',
12
+ 'Card-based layouts — use Grid with Card',
13
+ ],
14
+ anatomy: {
15
+ required: ['Root', 'Header', 'Body', 'Row', 'HeaderCell', 'Cell'],
16
+ },
17
+ relatedTo: [
18
+ {component: 'ScrollArea', relationship: 'Wrap Table in ScrollArea for horizontal overflow'},
19
+ ],
20
+ example: `<Table.Root variant="striped" size="md" columns={3}>
21
+ <Table.Header>
22
+ <Table.Row>
23
+ <Table.HeaderCell>Name</Table.HeaderCell>
24
+ <Table.HeaderCell>Role</Table.HeaderCell>
25
+ <Table.HeaderCell>Status</Table.HeaderCell>
26
+ </Table.Row>
27
+ </Table.Header>
28
+ <Table.Body>
29
+ <Table.Row>
30
+ <Table.Cell>Alice</Table.Cell>
31
+ <Table.Cell>Admin</Table.Cell>
32
+ <Table.Cell>Active</Table.Cell>
33
+ </Table.Row>
34
+ </Table.Body>
35
+ </Table.Root>`,
36
+ }
@@ -0,0 +1,31 @@
1
+ import type {ComponentMeta} from '../component-meta'
2
+
3
+ export const meta: ComponentMeta = {
4
+ description:
5
+ 'Tabbed interface with keyboard navigation. Supports horizontal and vertical orientation. Compound component — Root is required.',
6
+ whenToUse: [
7
+ 'Switching between content panels in the same view',
8
+ 'Settings pages with multiple sections',
9
+ 'Organizing related content without page navigation',
10
+ ],
11
+ whenNotToUse: [
12
+ 'Primary site navigation — use SideNav or links',
13
+ 'Step-by-step wizard — use a custom stepper',
14
+ ],
15
+ anatomy: {
16
+ required: ['Root', 'List', 'Tab', 'Panel'],
17
+ },
18
+ relatedTo: [
19
+ {component: 'SideNav', relationship: 'For persistent navigation, not content switching'},
20
+ ],
21
+ example: `<Tabs.Root defaultValue="general">
22
+ <Tabs.List>
23
+ <Tabs.Tab value="general">General</Tabs.Tab>
24
+ <Tabs.Tab value="security">Security</Tabs.Tab>
25
+ <Tabs.Tab value="billing" disabled>Billing</Tabs.Tab>
26
+ </Tabs.List>
27
+ <Tabs.Panel value="general">General settings content</Tabs.Panel>
28
+ <Tabs.Panel value="security">Security settings content</Tabs.Panel>
29
+ <Tabs.Panel value="billing">Billing content</Tabs.Panel>
30
+ </Tabs.Root>`,
31
+ }
@@ -0,0 +1,22 @@
1
+ import type {ComponentMeta} from '../component-meta'
2
+
3
+ export const meta: ComponentMeta = {
4
+ description:
5
+ 'Multi-line text input with automatic Field/Form integration. Same Field binding behavior as Input.',
6
+ whenToUse: [
7
+ 'Multi-line text entry (comments, messages, descriptions)',
8
+ ],
9
+ whenNotToUse: [
10
+ 'Single-line input — use Input',
11
+ ],
12
+ relatedTo: [
13
+ {component: 'Input', relationship: 'Single-line variant'},
14
+ {component: 'Field', relationship: 'Wrap in Field.Root for label + error'},
15
+ ],
16
+ example: `<Field.Root name="message">
17
+ <Field.Label>Message</Field.Label>
18
+ <Textarea placeholder="Tell us what you think..." rows={4} />
19
+ <Field.Description>At least 10 characters</Field.Description>
20
+ <Field.Error />
21
+ </Field.Root>`,
22
+ }
@@ -0,0 +1,30 @@
1
+ import type {ComponentMeta} from '../component-meta'
2
+
3
+ export const meta: ComponentMeta = {
4
+ description:
5
+ 'Toggle button with pressed/unpressed state. Works standalone or within ToggleGroup for multi/single selection.',
6
+ whenToUse: [
7
+ 'Toolbar buttons that toggle on/off (bold, italic, grid view)',
8
+ 'Within ToggleGroup for selecting from visible options',
9
+ ],
10
+ whenNotToUse: [
11
+ 'On/off settings — use Switch',
12
+ 'Form checkboxes — use Checkbox',
13
+ 'Submitting actions — use Button',
14
+ ],
15
+ relatedTo: [
16
+ {component: 'ToggleGroup', relationship: 'Group of Toggles with single/multi select'},
17
+ {component: 'Switch', relationship: 'Switch for settings; Toggle for toolbar actions'},
18
+ {component: 'Button', relationship: 'Button for actions; Toggle for state'},
19
+ ],
20
+ example: `// Standalone
21
+ <Toggle pressed={isBold} onPressedChange={setIsBold} aria-label="Bold">
22
+ <Icon name="key" size={16} />
23
+ </Toggle>
24
+
25
+ // In a group
26
+ <ToggleGroup value={['grid']} onValueChange={setView} multiple={false}>
27
+ <Toggle value="list">List</Toggle>
28
+ <Toggle value="grid">Grid</Toggle>
29
+ </ToggleGroup>`,
30
+ }
@@ -0,0 +1,30 @@
1
+ import type {ComponentMeta} from '../component-meta'
2
+
3
+ export const meta: ComponentMeta = {
4
+ description:
5
+ 'Container for Toggle buttons enabling single or multi selection. Provides context to child Toggles.',
6
+ whenToUse: [
7
+ 'Visible option set where user picks one or more (view mode, filter categories)',
8
+ 'Segmented control pattern',
9
+ ],
10
+ whenNotToUse: [
11
+ 'Dropdown selection — use Select',
12
+ 'Many options (5+) — use Select for space efficiency',
13
+ 'Form checkboxes — use Checkbox group in Fieldset',
14
+ ],
15
+ relatedTo: [
16
+ {component: 'Toggle', relationship: 'Toggle children get group context'},
17
+ {component: 'Select', relationship: 'Select for larger option sets'},
18
+ ],
19
+ example: `<ToggleGroup
20
+ value={selected}
21
+ onValueChange={setSelected}
22
+ multiple={false}
23
+ orientation="horizontal"
24
+ size="default"
25
+ >
26
+ <Toggle value="list">List view</Toggle>
27
+ <Toggle value="grid">Grid view</Toggle>
28
+ <Toggle value="board">Board view</Toggle>
29
+ </ToggleGroup>`,
30
+ }
@@ -0,0 +1,22 @@
1
+ import type {ComponentMeta} from '../component-meta'
2
+
3
+ export const meta: ComponentMeta = {
4
+ description:
5
+ 'Hover/focus tooltip that shows supplementary content. Compound component — Root is required (throws without it).',
6
+ whenToUse: [
7
+ 'Providing extra context on hover for icon-only buttons',
8
+ 'Explaining abbreviations or truncated text',
9
+ ],
10
+ whenNotToUse: [
11
+ 'Critical information that must always be visible — use Text or Callout',
12
+ 'Interactive content (links, buttons) — tooltips are not interactive',
13
+ ],
14
+ anatomy: {
15
+ required: ['Root', 'Trigger'],
16
+ },
17
+ example: `<Tooltip.Root content="Delete this item permanently" placement="top">
18
+ <Tooltip.Trigger>
19
+ <Button variant="danger">Delete</Button>
20
+ </Tooltip.Trigger>
21
+ </Tooltip.Root>`,
22
+ }
@@ -0,0 +1,8 @@
1
+ export interface ComponentMeta {
2
+ description: string
3
+ whenToUse: string[]
4
+ whenNotToUse: string[]
5
+ anatomy?: {required: string[]; optional?: string[]}
6
+ relatedTo?: Array<{component: string; relationship: string}>
7
+ example: string
8
+ }