@yuva-devlab/ui 1.4.4 → 2.1.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 (146) hide show
  1. package/README.md +117 -33
  2. package/dist/common.css +0 -40
  3. package/dist/components/accordion/accordion.mdx +18 -0
  4. package/dist/components/alert/alert.css +2 -2
  5. package/dist/components/alert-dialog/alert-dialog.mdx +18 -0
  6. package/dist/components/aspect-ratio/aspect-ratio.mdx +22 -0
  7. package/dist/components/badge/badge.css +31 -27
  8. package/dist/components/badge/badge.mdx +6 -4
  9. package/dist/components/breadcrumb/breadcrumb.mdx +18 -0
  10. package/dist/components/calendar/calendar-nav.css +111 -0
  11. package/dist/components/calendar/calendar.css +27 -82
  12. package/dist/components/calendar/calendar.mdx +18 -0
  13. package/dist/components/card/card.css +4 -4
  14. package/dist/components/carousel/carousel.css +4 -4
  15. package/dist/components/carousel/carousel.mdx +18 -0
  16. package/dist/components/chain-of-thought/chain-of-thought.css +72 -0
  17. package/dist/components/chain-of-thought/chain-of-thought.mdx +18 -0
  18. package/dist/components/chart/chart.css +86 -0
  19. package/dist/components/chart/chart.mdx +18 -0
  20. package/dist/components/checkbox/checkbox.css +11 -0
  21. package/dist/components/checkpoint/checkpoint.css +54 -0
  22. package/dist/components/checkpoint/checkpoint.mdx +18 -0
  23. package/dist/components/code-block/code-block.css +84 -0
  24. package/dist/components/code-block/code-block.mdx +26 -0
  25. package/dist/components/collapsible/collapsible.mdx +18 -0
  26. package/dist/components/command/command.css +3 -3
  27. package/dist/components/command/command.mdx +18 -0
  28. package/dist/components/confirm-dialog/confirm-dialog.mdx +18 -0
  29. package/dist/components/confirmation/confirmation.css +75 -0
  30. package/dist/components/confirmation/confirmation.mdx +22 -0
  31. package/dist/components/context/context.css +80 -0
  32. package/dist/components/context/context.mdx +18 -0
  33. package/dist/components/context-menu/context-menu.mdx +18 -0
  34. package/dist/components/copy-button/copy-button.mdx +18 -0
  35. package/dist/components/data-table/data-table.css +71 -0
  36. package/dist/components/data-table/data-table.mdx +22 -0
  37. package/dist/components/date-picker/date-picker.css +2 -2
  38. package/dist/components/date-picker/date-picker.mdx +18 -0
  39. package/dist/components/dialog/dialog.css +6 -6
  40. package/dist/components/drawer/drawer.mdx +18 -0
  41. package/dist/components/dropdown-menu/dropdown-menu.css +18 -0
  42. package/dist/components/dropdown-menu/dropdown-menu.mdx +18 -0
  43. package/dist/components/empty-state/empty-state.css +67 -0
  44. package/dist/components/empty-state/empty-state.mdx +18 -0
  45. package/dist/components/file-tree/file-tree.css +58 -0
  46. package/dist/components/file-tree/file-tree.mdx +18 -0
  47. package/dist/components/form/form.mdx +18 -0
  48. package/dist/components/hover-card/hover-card.mdx +18 -0
  49. package/dist/components/input-number/input-number.css +95 -0
  50. package/dist/components/input-number/input-number.mdx +34 -0
  51. package/dist/components/input-otp/input-otp.mdx +18 -0
  52. package/dist/components/kbd/kbd.css +78 -0
  53. package/dist/components/kbd/kbd.mdx +30 -0
  54. package/dist/components/label/label.mdx +18 -0
  55. package/dist/components/layout/layout.css +158 -0
  56. package/dist/components/layout/layout.mdx +30 -0
  57. package/dist/components/loading-state/loading-state.css +11 -0
  58. package/dist/components/loading-state/loading-state.mdx +18 -0
  59. package/dist/components/menubar/menubar.css +4 -4
  60. package/dist/components/menubar/menubar.mdx +18 -0
  61. package/dist/components/message/message.css +89 -0
  62. package/dist/components/message/message.mdx +14 -0
  63. package/dist/components/metric-card/metric-card.mdx +18 -0
  64. package/dist/components/model-selector/model-selector.css +138 -0
  65. package/dist/components/model-selector/model-selector.mdx +26 -0
  66. package/dist/components/multi-select/multi-select.css +212 -0
  67. package/dist/components/multi-select/multi-select.mdx +30 -0
  68. package/dist/components/navigation-menu/navigation-menu.css +2 -2
  69. package/dist/components/navigation-menu/navigation-menu.mdx +18 -0
  70. package/dist/components/pagination/pagination.css +8 -2
  71. package/dist/components/pagination/pagination.mdx +18 -0
  72. package/dist/components/panel/panel.mdx +18 -0
  73. package/dist/components/password-input/password-input.css +21 -0
  74. package/dist/components/password-input/password-input.mdx +30 -0
  75. package/dist/components/plan/plan.css +106 -0
  76. package/dist/components/plan/plan.mdx +22 -0
  77. package/dist/components/popover/popover.css +2 -7
  78. package/dist/components/popover/popover.mdx +18 -0
  79. package/dist/components/prompt-input/prompt-input.css +140 -0
  80. package/dist/components/prompt-input/prompt-input.mdx +22 -0
  81. package/dist/components/queue/queue.css +76 -0
  82. package/dist/components/queue/queue.mdx +18 -0
  83. package/dist/components/radio-group/radio-group.mdx +18 -0
  84. package/dist/components/resizable/resizable.mdx +18 -0
  85. package/dist/components/scroll-area/scroll-area.mdx +18 -0
  86. package/dist/components/search-input/search-input.css +21 -0
  87. package/dist/components/search-input/search-input.mdx +30 -0
  88. package/dist/components/searchable-select/searchable-select.css +26 -3
  89. package/dist/components/searchable-select/searchable-select.mdx +18 -0
  90. package/dist/components/secret-reveal-card/secret-reveal-card.css +6 -0
  91. package/dist/components/secret-reveal-card/secret-reveal-card.mdx +18 -0
  92. package/dist/components/select/select.css +17 -2
  93. package/dist/components/separator/separator.mdx +18 -0
  94. package/dist/components/sheet/sheet.css +5 -1
  95. package/dist/components/sheet/sheet.mdx +18 -0
  96. package/dist/components/sidebar/sidebar-menu.css +183 -0
  97. package/dist/components/sidebar/sidebar-submenu.css +69 -0
  98. package/dist/components/sidebar/sidebar.css +171 -4
  99. package/dist/components/sidebar/sidebar.mdx +18 -0
  100. package/dist/components/slider/slider.mdx +18 -0
  101. package/dist/components/sonner/sonner.css +68 -17
  102. package/dist/components/sonner/sonner.mdx +5 -3
  103. package/dist/components/sources/sources.css +105 -0
  104. package/dist/components/sources/sources.mdx +18 -0
  105. package/dist/components/stack-trace/stack-trace.css +105 -0
  106. package/dist/components/stack-trace/stack-trace.mdx +18 -0
  107. package/dist/components/status-chip/status-chip.mdx +18 -0
  108. package/dist/components/subagent/subagent.css +70 -0
  109. package/dist/components/subagent/subagent.mdx +18 -0
  110. package/dist/components/suggestion/suggestion.css +52 -0
  111. package/dist/components/suggestion/suggestion.mdx +14 -0
  112. package/dist/components/table/table.css +5 -3
  113. package/dist/components/tabs/tabs.css +3 -3
  114. package/dist/components/terminal/terminal.css +60 -0
  115. package/dist/components/terminal/terminal.mdx +26 -0
  116. package/dist/components/test-results/test-results.css +108 -0
  117. package/dist/components/test-results/test-results.mdx +18 -0
  118. package/dist/components/textarea/textarea.css +3 -3
  119. package/dist/components/textarea/textarea.mdx +18 -0
  120. package/dist/components/toggle/toggle.css +9 -9
  121. package/dist/components/toggle/toggle.mdx +18 -0
  122. package/dist/components/toggle-group/toggle-group.mdx +18 -0
  123. package/dist/components/tool-call/tool-call.css +111 -0
  124. package/dist/components/tool-call/tool-call.mdx +22 -0
  125. package/dist/components/tooltip/tooltip.mdx +18 -0
  126. package/dist/components/trace/trace.css +100 -0
  127. package/dist/components/trace/trace.mdx +18 -0
  128. package/dist/components/typography/heading.mdx +36 -0
  129. package/dist/components/typography/text.mdx +34 -0
  130. package/dist/components/typography/typography.css +98 -0
  131. package/dist/components.css +4454 -1179
  132. package/dist/index.cjs +4094 -1125
  133. package/dist/index.cjs.map +1 -1
  134. package/dist/index.d.cts +1742 -248
  135. package/dist/index.d.ts +1742 -248
  136. package/dist/index.js +4088 -1156
  137. package/dist/index.js.map +1 -1
  138. package/dist/preset.css +1 -4
  139. package/dist/styles/common.css +0 -40
  140. package/dist/styles/components.css +4454 -1179
  141. package/dist/styles/preset.css +1 -4
  142. package/dist/styles/styles.css +7 -4
  143. package/dist/styles/utilities.css +137 -0
  144. package/dist/styles.css +7 -4
  145. package/dist/utilities.css +137 -0
  146. package/package.json +5 -6
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as CollapsibleStories from "./collapsible.stories";
3
+
4
+ <Meta of={CollapsibleStories} />
5
+
6
+ <Title />
7
+
8
+ # Collapsible
9
+
10
+ Interactive component that expands and collapses a section of secondary content.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={CollapsibleStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -18,11 +18,11 @@
18
18
  display: flex;
19
19
  align-items: center;
20
20
  border-bottom: 1px solid var(--border);
21
- padding-inline: 0.75rem;
21
+ padding-inline: var(--space-3, 0.75rem);
22
22
  }
23
23
 
24
24
  .dl-command-input-icon {
25
- margin-inline-end: 0.5rem;
25
+ margin-inline-end: var(--space-2, 0.5rem);
26
26
  width: 1rem;
27
27
  height: 1rem;
28
28
  flex-shrink: 0;
@@ -31,7 +31,7 @@
31
31
 
32
32
  .dl-command-input {
33
33
  display: flex;
34
- height: 2.5rem;
34
+ height: var(--control-height-lg, 2.5rem);
35
35
  width: 100%;
36
36
  border-radius: var(--radius-md, 0.375rem);
37
37
  background-color: transparent;
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as CommandStories from "./command.stories";
3
+
4
+ <Meta of={CommandStories} />
5
+
6
+ <Title />
7
+
8
+ # Command
9
+
10
+ Fast, composable, unstyled command menu palette for searching, filtering, and triggering actions.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={CommandStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as ConfirmDialogStories from "./confirm-dialog.stories";
3
+
4
+ <Meta of={ConfirmDialogStories} />
5
+
6
+ <Title />
7
+
8
+ # Confirm Dialog
9
+
10
+ Pre-configured dialog component for confirming user decisions before destructive or critical actions.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={ConfirmDialogStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,75 @@
1
+ .dl-confirmation {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: space-between;
5
+ gap: 1rem;
6
+ width: 100%;
7
+ border-radius: var(--radius-md, 0.375rem);
8
+ padding: 0.75rem 1rem;
9
+ border: 1px solid var(--border);
10
+ background-color: var(--card, var(--background));
11
+ color: var(--card-foreground, var(--foreground));
12
+ font-size: 0.875rem;
13
+ }
14
+
15
+ .dl-confirmation--sm {
16
+ padding: 0.5rem 0.75rem;
17
+ font-size: 0.8125rem;
18
+ }
19
+
20
+ .dl-confirmation--destructive {
21
+ border-color: color-mix(in oklch, var(--destructive) 40%, transparent);
22
+ background-color: color-mix(in oklch, var(--destructive) 5%, transparent);
23
+ }
24
+
25
+ .dl-confirmation__body {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 0.75rem;
29
+ flex: 1;
30
+ min-width: 0;
31
+ }
32
+
33
+ .dl-confirmation__media {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ width: 2rem;
38
+ height: 2rem;
39
+ border-radius: var(--radius-sm, 0.25rem);
40
+ background-color: var(--secondary);
41
+ color: var(--secondary-foreground);
42
+ flex-shrink: 0;
43
+ }
44
+
45
+ .dl-confirmation--destructive .dl-confirmation__media {
46
+ background-color: color-mix(in oklch, var(--destructive) 15%, transparent);
47
+ color: var(--destructive);
48
+ }
49
+
50
+ .dl-confirmation__content {
51
+ display: flex;
52
+ flex-direction: column;
53
+ gap: 0.125rem;
54
+ min-width: 0;
55
+ }
56
+
57
+ .dl-confirmation__title {
58
+ font-size: 0.875rem;
59
+ font-weight: 500;
60
+ line-height: 1.25;
61
+ color: var(--foreground);
62
+ }
63
+
64
+ .dl-confirmation__description {
65
+ font-size: 0.75rem;
66
+ color: var(--muted-foreground);
67
+ line-height: 1.35;
68
+ }
69
+
70
+ .dl-confirmation__actions {
71
+ display: flex;
72
+ align-items: center;
73
+ gap: 0.5rem;
74
+ flex-shrink: 0;
75
+ }
@@ -0,0 +1,22 @@
1
+ import { Meta, Title, Description, Canvas } from "@storybook/blocks";
2
+ import * as ConfirmationStories from "./confirmation.stories";
3
+
4
+ <Meta of={ConfirmationStories} />
5
+
6
+ <Title />
7
+
8
+ # Confirmation
9
+
10
+ Human-in-the-loop action approval card for sensitive or destructive AI agent actions, with title, risk description, and contextual approve/deny actions.
11
+
12
+ ## Default Command Approval
13
+
14
+ <Canvas of={ConfirmationStories.Default} />
15
+
16
+ ## Destructive Resource Deletion
17
+
18
+ <Canvas of={ConfirmationStories.Destructive} />
19
+
20
+ ## IAM Policy Approval
21
+
22
+ <Canvas of={ConfirmationStories.PolicyApproval} />
@@ -0,0 +1,80 @@
1
+ .dl-context-usage {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+ width: 100%;
6
+ padding: 0.75rem;
7
+ border-radius: var(--radius-md, 0.375rem);
8
+ border: 1px solid var(--border);
9
+ background-color: var(--card, var(--background));
10
+ font-size: 0.8125rem;
11
+ }
12
+
13
+ .dl-context-usage--sm {
14
+ padding: 0.5rem;
15
+ font-size: 0.75rem;
16
+ }
17
+
18
+ .dl-context-usage__header {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: space-between;
22
+ gap: 0.5rem;
23
+ }
24
+
25
+ .dl-context-usage__title {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 0.375rem;
29
+ font-weight: 600;
30
+ color: var(--foreground);
31
+ }
32
+
33
+ .dl-context-usage__fraction {
34
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
35
+ font-size: 0.75rem;
36
+ color: var(--muted-foreground);
37
+ }
38
+
39
+ .dl-context-usage__bar-bg {
40
+ position: relative;
41
+ width: 100%;
42
+ height: 0.375rem;
43
+ border-radius: 9999px;
44
+ background-color: var(--muted);
45
+ overflow: hidden;
46
+ }
47
+
48
+ .dl-context-usage__bar-fill {
49
+ height: 100%;
50
+ border-radius: 9999px;
51
+ transition: width 0.3s ease;
52
+ background-color: var(--primary);
53
+ }
54
+
55
+ .dl-context-usage__bar-fill--warning {
56
+ background-color: var(--warning);
57
+ }
58
+
59
+ .dl-context-usage__bar-fill--danger {
60
+ background-color: var(--destructive);
61
+ }
62
+
63
+ .dl-context-usage__breakdown {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 0.5rem;
67
+ flex-wrap: wrap;
68
+ font-size: 0.6875rem;
69
+ color: var(--muted-foreground);
70
+ margin-top: 0.25rem;
71
+ }
72
+
73
+ .dl-context-usage__pill {
74
+ display: inline-flex;
75
+ align-items: center;
76
+ gap: 0.25rem;
77
+ padding: 0.125rem 0.375rem;
78
+ border-radius: var(--radius-sm, 0.25rem);
79
+ background-color: var(--muted);
80
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as ContextStories from "./context.stories";
3
+
4
+ <Meta of={ContextStories} />
5
+
6
+ <Title />
7
+
8
+ # Context Usage
9
+
10
+ Token gauge visualizing context window consumption, remaining capacity thresholds, and token category breakdowns (input, output, reasoning, cache).
11
+
12
+ ## Default
13
+
14
+ <Canvas of={ContextStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as ContextMenuStories from "./context-menu.stories";
3
+
4
+ <Meta of={ContextMenuStories} />
5
+
6
+ <Title />
7
+
8
+ # Context Menu
9
+
10
+ Right-click contextual menu providing contextual actions anchored to targeted elements.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={ContextMenuStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as CopyButtonStories from "./copy-button.stories";
3
+
4
+ <Meta of={CopyButtonStories} />
5
+
6
+ <Title />
7
+
8
+ # Copy Button
9
+
10
+ One-click clipboard copying trigger with visual icon state transitions and tooltip feedback.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={CopyButtonStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,71 @@
1
+ .dl-data-table-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ border-radius: var(--radius-md, 0.375rem);
6
+ border: 1px solid var(--border);
7
+ background-color: var(--card, var(--background));
8
+ overflow: hidden;
9
+ }
10
+
11
+ .dl-data-table-wrapper {
12
+ overflow-x: auto;
13
+ width: 100%;
14
+ }
15
+
16
+ .dl-data-table-sort-btn {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ gap: 0.375rem;
20
+ background: transparent;
21
+ border: none;
22
+ font: inherit;
23
+ color: inherit;
24
+ cursor: pointer;
25
+ padding: 0;
26
+ user-select: none;
27
+ }
28
+
29
+ .dl-data-table-sort-btn:hover {
30
+ color: var(--foreground);
31
+ }
32
+
33
+ .dl-data-table-sort-icon {
34
+ width: 0.875rem;
35
+ height: 0.875rem;
36
+ color: var(--muted-foreground);
37
+ transition: color 0.15s ease;
38
+ }
39
+
40
+ .dl-data-table-sort-btn:hover .dl-data-table-sort-icon {
41
+ color: var(--foreground);
42
+ }
43
+
44
+ .dl-data-table-row--clickable {
45
+ cursor: pointer;
46
+ }
47
+
48
+ .dl-data-table-footer {
49
+ display: flex;
50
+ flex-wrap: wrap;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ gap: 1rem;
54
+ padding: 0.75rem 1rem;
55
+ border-top: 1px solid var(--border);
56
+ background-color: var(--background);
57
+ font-size: 0.8125rem;
58
+ color: var(--muted-foreground);
59
+ }
60
+
61
+ .dl-data-table-summary {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: 0.25rem;
65
+ }
66
+
67
+ .dl-data-table-empty {
68
+ padding: 3rem 1rem;
69
+ text-align: center;
70
+ color: var(--muted-foreground);
71
+ }
@@ -0,0 +1,22 @@
1
+ import { Meta, Title, Description, Canvas } from "@storybook/blocks";
2
+ import * as DataTableStories from "./data-table.stories";
3
+
4
+ <Meta of={DataTableStories} />
5
+
6
+ <Title />
7
+
8
+ # Data Table
9
+
10
+ Enterprise-grade data table uniting `@yuva-devlab/ui` Table and Pagination primitives with column sorting, customizable cell renderers, and empty state fallbacks.
11
+
12
+ ## Default with Pagination
13
+
14
+ <Canvas of={DataTableStories.Default} />
15
+
16
+ ## Static (No Pagination)
17
+
18
+ <Canvas of={DataTableStories.WithoutPagination} />
19
+
20
+ ## Empty State Fallback
21
+
22
+ <Canvas of={DataTableStories.Empty} />
@@ -3,7 +3,7 @@
3
3
  justify-content: flex-start;
4
4
  text-align: left;
5
5
  font-weight: 400;
6
- height: 2.25rem;
6
+ height: var(--control-height-md, 2.25rem);
7
7
  border-color: var(--border);
8
8
  background-color: color-mix(in oklch, var(--secondary) 40%, transparent);
9
9
  }
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  .dl-date-picker-icon {
21
- margin-inline-end: 0.5rem;
21
+ margin-inline-end: var(--space-2, 0.5rem);
22
22
  width: 1rem;
23
23
  height: 1rem;
24
24
  flex-shrink: 0;
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as DatePickerStories from "./date-picker.stories";
3
+
4
+ <Meta of={DatePickerStories} />
5
+
6
+ <Title />
7
+
8
+ # Date Picker
9
+
10
+ Accessible date picker component featuring an interactive popover calendar with local timezone safety.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={DatePickerStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -28,7 +28,7 @@
28
28
  padding: 0;
29
29
  gap: 0;
30
30
  box-shadow: 0 16px 48px rgb(0 0 0 / 0.24);
31
- border-radius: var(--radius-lg, 0.75rem);
31
+ border-radius: var(--radius, 0.75rem);
32
32
  overflow: hidden;
33
33
  overscroll-behavior: contain;
34
34
  }
@@ -112,8 +112,8 @@
112
112
  .dl-dialog__header {
113
113
  display: flex;
114
114
  flex-direction: column;
115
- gap: 0.375rem;
116
- padding: 1.25rem 1.5rem;
115
+ gap: var(--form-field-gap, 0.375rem);
116
+ padding: var(--dialog-padding, 1.25rem 1.5rem);
117
117
  padding-right: 3.5rem;
118
118
  border-bottom: 1px solid var(--border);
119
119
  flex-shrink: 0;
@@ -122,14 +122,14 @@
122
122
  flex: 1 1 auto;
123
123
  min-height: 0;
124
124
  overflow-y: auto;
125
- padding: 1.25rem 1.5rem;
125
+ padding: var(--dialog-padding, 1.25rem 1.5rem);
126
126
  }
127
127
  .dl-dialog__footer {
128
128
  display: flex;
129
129
  flex-direction: row;
130
130
  justify-content: flex-end;
131
- gap: 0.5rem;
132
- padding: 0.875rem 1.5rem;
131
+ gap: var(--form-field-gap, 0.5rem);
132
+ padding: var(--dialog-padding, 0.875rem 1.5rem);
133
133
  border-top: 1px solid var(--border);
134
134
  background-color: color-mix(in srgb, var(--muted) 35%, transparent);
135
135
  flex-shrink: 0;
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as DrawerStories from "./drawer.stories";
3
+
4
+ <Meta of={DrawerStories} />
5
+
6
+ <Title />
7
+
8
+ # Drawer
9
+
10
+ Sliding modal drawer panel typically anchored to the viewport edge for secondary tasks.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={DrawerStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -51,6 +51,24 @@
51
51
  font-weight: 600;
52
52
  color: var(--muted-foreground);
53
53
  }
54
+ .dl-menu-item--inset,
55
+ .dl-menu-label--inset {
56
+ padding-left: 2rem;
57
+ }
58
+ .dl-menu-item__chevron {
59
+ margin-left: auto;
60
+ width: 1rem;
61
+ height: 1rem;
62
+ }
63
+ .dl-menu-item__icon {
64
+ width: 1rem;
65
+ height: 1rem;
66
+ }
67
+ .dl-menu-item__radio-dot {
68
+ width: 0.5rem;
69
+ height: 0.5rem;
70
+ fill: currentColor;
71
+ }
54
72
  .dl-menu-separator {
55
73
  margin: 0.25rem -0.25rem;
56
74
  height: 1px;
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as DropdownMenuStories from "./dropdown-menu.stories";
3
+
4
+ <Meta of={DropdownMenuStories} />
5
+
6
+ <Title />
7
+
8
+ # Dropdown Menu
9
+
10
+ Displays a menu of actions or options triggered by a button with full keyboard navigation.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={DropdownMenuStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @file empty-state.css
3
+ * @description Scoped styles for the EmptyState component.
4
+ * Governed by semantic design tokens.
5
+ */
6
+
7
+ .dl-empty-state {
8
+ position: relative;
9
+ display: flex;
10
+ min-height: 14rem;
11
+ width: 100%;
12
+ flex-direction: column;
13
+ align-items: center;
14
+ justify-content: center;
15
+ box-sizing: border-box;
16
+ border-radius: var(--radius, 0.5rem);
17
+ border: 1px dashed var(--border);
18
+ background-color: color-mix(in oklab, var(--card) 40%, transparent);
19
+ padding: var(--card-padding, var(--space-6, 1.5rem));
20
+ text-align: center;
21
+ backdrop-filter: blur(8px);
22
+ }
23
+
24
+ .dl-empty-state__icon-box {
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ width: var(--control-height-lg, 2.5rem);
29
+ height: var(--control-height-lg, 2.5rem);
30
+ border-radius: var(--radius-md, 0.375rem);
31
+ border: 1px solid color-mix(in oklab, var(--primary) 30%, transparent);
32
+ background-color: color-mix(in oklab, var(--primary) 10%, transparent);
33
+ color: var(--primary);
34
+ margin-bottom: var(--space-3, 0.75rem);
35
+ }
36
+
37
+ .dl-empty-state__icon-box svg {
38
+ width: var(--icon-md, 1.25rem);
39
+ height: var(--icon-md, 1.25rem);
40
+ }
41
+
42
+ .dl-empty-state__title {
43
+ font-family: var(--theme-font-display, var(--theme-font-sans, inherit));
44
+ font-size: 0.875rem;
45
+ font-weight: 600;
46
+ line-height: 1.25;
47
+ letter-spacing: -0.01em;
48
+ color: var(--foreground);
49
+ margin: 0;
50
+ }
51
+
52
+ .dl-empty-state__description {
53
+ margin: 0;
54
+ margin-top: var(--space-1, 0.25rem);
55
+ max-width: 24rem;
56
+ font-size: 0.75rem;
57
+ line-height: 1.5;
58
+ color: var(--muted-foreground);
59
+ }
60
+
61
+ .dl-empty-state__actions {
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ gap: var(--space-2, 0.5rem);
66
+ margin-top: var(--space-4, 1rem);
67
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as EmptyStateStories from "./empty-state.stories";
3
+
4
+ <Meta of={EmptyStateStories} />
5
+
6
+ <Title />
7
+
8
+ # Empty State
9
+
10
+ Informational placeholder displayed when tables, collections, or searches yield zero results.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={EmptyStateStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,58 @@
1
+ .dl-file-tree {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ font-size: 0.8125rem;
6
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
7
+ user-select: none;
8
+ background-color: var(--card, var(--background));
9
+ border: 1px solid var(--border);
10
+ border-radius: var(--radius-md, 0.375rem);
11
+ padding: 0.375rem;
12
+ }
13
+
14
+ .dl-file-tree__node {
15
+ display: flex;
16
+ align-items: center;
17
+ gap: 0.375rem;
18
+ padding: 0.25rem 0.5rem;
19
+ border-radius: var(--radius-sm, 0.25rem);
20
+ cursor: pointer;
21
+ color: var(--muted-foreground);
22
+ transition: all 0.12s ease;
23
+ }
24
+
25
+ .dl-file-tree__node:hover {
26
+ background-color: var(--accent);
27
+ color: var(--accent-foreground);
28
+ }
29
+
30
+ .dl-file-tree__node--active {
31
+ background-color: var(--accent);
32
+ color: var(--foreground);
33
+ font-weight: 500;
34
+ }
35
+
36
+ .dl-file-tree__icon {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ width: 1rem;
41
+ height: 1rem;
42
+ flex-shrink: 0;
43
+ }
44
+
45
+ .dl-file-tree__name {
46
+ overflow: hidden;
47
+ text-overflow: ellipsis;
48
+ white-space: nowrap;
49
+ }
50
+
51
+ .dl-file-tree__children {
52
+ display: flex;
53
+ flex-direction: column;
54
+ position: relative;
55
+ margin-left: 0.75rem;
56
+ padding-left: 0.5rem;
57
+ border-left: 1px solid var(--border);
58
+ }