@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 SourcesStories from "./sources.stories";
3
+
4
+ <Meta of={SourcesStories} />
5
+
6
+ <Title />
7
+
8
+ # Sources & Inline Citation
9
+
10
+ Components for displaying AI ground-truth search sources, web references, and clickable inline citation badges.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SourcesStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,105 @@
1
+ .dl-stack-trace {
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
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
10
+ font-size: 0.8125rem;
11
+ }
12
+
13
+ .dl-stack-trace__header {
14
+ display: flex;
15
+ align-items: flex-start;
16
+ justify-content: space-between;
17
+ padding: 0.625rem 0.875rem;
18
+ background-color: color-mix(
19
+ in oklch,
20
+ var(--destructive) 10%,
21
+ var(--background)
22
+ );
23
+ border-bottom: 1px solid var(--border);
24
+ gap: 0.75rem;
25
+ }
26
+
27
+ .dl-stack-trace__title {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: 0.125rem;
31
+ }
32
+
33
+ .dl-stack-trace__error-type {
34
+ font-weight: 700;
35
+ color: var(--destructive);
36
+ font-size: 0.875rem;
37
+ }
38
+
39
+ .dl-stack-trace__message {
40
+ color: var(--foreground);
41
+ font-size: 0.8125rem;
42
+ line-height: 1.4;
43
+ word-break: break-word;
44
+ }
45
+
46
+ .dl-stack-trace__frames {
47
+ display: flex;
48
+ flex-direction: column;
49
+ divide-y: 1px solid var(--border);
50
+ max-height: 22rem;
51
+ overflow-y: auto;
52
+ }
53
+
54
+ .dl-stack-frame {
55
+ display: flex;
56
+ flex-direction: column;
57
+ padding: 0.5rem 0.875rem;
58
+ border-bottom: 1px solid var(--border);
59
+ transition: background-color 0.12s ease;
60
+ }
61
+
62
+ .dl-stack-frame:last-child {
63
+ border-bottom: none;
64
+ }
65
+
66
+ .dl-stack-frame:hover {
67
+ background-color: var(--accent);
68
+ }
69
+
70
+ .dl-stack-frame--internal {
71
+ opacity: 0.65;
72
+ }
73
+
74
+ .dl-stack-frame__header {
75
+ display: flex;
76
+ align-items: baseline;
77
+ justify-content: space-between;
78
+ gap: 0.5rem;
79
+ cursor: pointer;
80
+ user-select: none;
81
+ }
82
+
83
+ .dl-stack-frame__fn {
84
+ font-weight: 600;
85
+ color: var(--primary);
86
+ }
87
+
88
+ .dl-stack-frame__location {
89
+ color: var(--muted-foreground);
90
+ font-size: 0.75rem;
91
+ overflow: hidden;
92
+ text-overflow: ellipsis;
93
+ white-space: nowrap;
94
+ }
95
+
96
+ .dl-stack-frame__snippet {
97
+ margin-top: 0.375rem;
98
+ padding: 0.375rem 0.5rem;
99
+ background-color: var(--muted);
100
+ border-radius: var(--radius-sm, 0.25rem);
101
+ font-size: 0.75rem;
102
+ line-height: 1.4;
103
+ white-space: pre-wrap;
104
+ color: var(--foreground);
105
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as StackTraceStories from "./stack-trace.stories";
3
+
4
+ <Meta of={StackTraceStories} />
5
+
6
+ <Title />
7
+
8
+ # Stack Trace
9
+
10
+ Formatted exception and error trace presentation container highlighting error messages, source file frames, and code excerpts.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={StackTraceStories.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 StatusChipStories from "./status-chip.stories";
3
+
4
+ <Meta of={StatusChipStories} />
5
+
6
+ <Title />
7
+
8
+ # Status Chip
9
+
10
+ Compact lifecycle status badge displaying status tones and indicator dots.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={StatusChipStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,70 @@
1
+ .dl-subagent {
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
+ font-size: 0.8125rem;
10
+ }
11
+
12
+ .dl-subagent__header {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ padding: 0.5rem 0.75rem;
17
+ background-color: var(--muted);
18
+ border-bottom: 1px solid var(--border);
19
+ cursor: pointer;
20
+ user-select: none;
21
+ }
22
+
23
+ .dl-subagent__title-area {
24
+ display: flex;
25
+ align-items: center;
26
+ gap: 0.5rem;
27
+ }
28
+
29
+ .dl-subagent__avatar {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ width: 1.5rem;
34
+ height: 1.5rem;
35
+ border-radius: 9999px;
36
+ background-color: var(--primary);
37
+ color: var(--primary-foreground);
38
+ font-size: 0.6875rem;
39
+ font-weight: 700;
40
+ }
41
+
42
+ .dl-subagent__meta {
43
+ display: flex;
44
+ flex-direction: column;
45
+ }
46
+
47
+ .dl-subagent__name {
48
+ font-weight: 600;
49
+ color: var(--foreground);
50
+ line-height: 1.2;
51
+ }
52
+
53
+ .dl-subagent__role {
54
+ font-size: 0.6875rem;
55
+ color: var(--muted-foreground);
56
+ }
57
+
58
+ .dl-subagent__badges {
59
+ display: flex;
60
+ align-items: center;
61
+ gap: 0.375rem;
62
+ }
63
+
64
+ .dl-subagent__content {
65
+ padding: 0.75rem;
66
+ background-color: var(--background);
67
+ font-size: 0.75rem;
68
+ line-height: 1.5;
69
+ color: var(--foreground);
70
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as SubagentStories from "./subagent.stories";
3
+
4
+ <Meta of={SubagentStories} />
5
+
6
+ <Title />
7
+
8
+ # Subagent
9
+
10
+ Lifecycle and activity card for delegated subagent tasks, showing status, conversation ID, model, and message stream.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SubagentStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,52 @@
1
+ .dl-suggestion-list {
2
+ display: flex;
3
+ gap: 0.5rem;
4
+ width: 100%;
5
+ }
6
+
7
+ .dl-suggestion-list--wrap {
8
+ flex-wrap: wrap;
9
+ }
10
+
11
+ .dl-suggestion-list--scroll {
12
+ overflow-x: auto;
13
+ padding-bottom: 0.25rem;
14
+ }
15
+
16
+ .dl-suggestion {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ gap: 0.375rem;
20
+ padding: 0.375rem 0.75rem;
21
+ border-radius: 9999px;
22
+ border: 1px solid var(--border);
23
+ background-color: var(--secondary, var(--background));
24
+ color: var(--foreground);
25
+ font-size: 0.75rem;
26
+ font-weight: 500;
27
+ cursor: pointer;
28
+ text-align: left;
29
+ transition: all 0.15s ease;
30
+ white-space: nowrap;
31
+ }
32
+
33
+ .dl-suggestion:hover {
34
+ background-color: var(--accent);
35
+ border-color: color-mix(in oklch, var(--primary) 30%, var(--border));
36
+ }
37
+
38
+ .dl-suggestion__icon {
39
+ display: inline-flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ color: var(--muted-foreground);
43
+ }
44
+
45
+ .dl-suggestion:hover .dl-suggestion__icon {
46
+ color: var(--primary);
47
+ }
48
+
49
+ .dl-suggestion__description {
50
+ color: var(--muted-foreground);
51
+ font-weight: 400;
52
+ }
@@ -0,0 +1,14 @@
1
+ import { Meta, Title, Description, Canvas } from "@storybook/blocks";
2
+ import * as SuggestionStories from "./suggestion.stories";
3
+
4
+ <Meta of={SuggestionStories} />
5
+
6
+ <Title />
7
+
8
+ # Suggestion
9
+
10
+ Clickable starter prompt and follow-up query pills designed for empty state conversations or smart follow-up suggestions.
11
+
12
+ ## Suggestion Pills List
13
+
14
+ <Canvas of={SuggestionStories.Default} />
@@ -28,15 +28,17 @@
28
28
  transition: background-color 0.1s;
29
29
  }
30
30
  .dl-table__head-cell {
31
- height: 2.5rem;
32
- padding: 0 0.5rem;
31
+ height: var(--control-height-md, 2.5rem);
32
+ padding: var(--table-row-padding-y, 0.5rem)
33
+ var(--table-row-padding-x, 0.75rem);
33
34
  text-align: left;
34
35
  font-weight: 500;
35
36
  color: var(--muted-foreground);
36
37
  white-space: nowrap;
37
38
  }
38
39
  .dl-table__cell {
39
- padding: 0.75rem 0.5rem;
40
+ padding: var(--table-row-padding-y, 0.75rem)
41
+ var(--table-row-padding-x, 0.75rem);
40
42
  vertical-align: middle;
41
43
  }
42
44
  .dl-table__caption {
@@ -1,9 +1,9 @@
1
1
  .dl-tabs-list {
2
2
  display: inline-flex;
3
- height: 2.25rem;
3
+ height: var(--control-height-md, 2.25rem);
4
4
  align-items: center;
5
5
  justify-content: center;
6
- border-radius: var(--radius-lg, 0.5rem);
6
+ border-radius: var(--radius, 0.5rem);
7
7
  background-color: var(--muted);
8
8
  padding: 0.25rem;
9
9
  color: var(--muted-foreground);
@@ -13,7 +13,7 @@
13
13
  align-items: center;
14
14
  justify-content: center;
15
15
  white-space: nowrap;
16
- border-radius: var(--radius-md, 0.375rem);
16
+ border-radius: calc(var(--radius, 0.5rem) - 2px);
17
17
  padding: 0.25rem 0.75rem;
18
18
  font-size: 0.875rem;
19
19
  font-weight: 500;
@@ -0,0 +1,60 @@
1
+ .dl-terminal {
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(--secondary, #0d1117);
8
+ color: var(--foreground);
9
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
10
+ font-size: 0.8125rem;
11
+ overflow: hidden;
12
+ }
13
+
14
+ .dl-terminal__header {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: space-between;
18
+ padding: 0.375rem 0.75rem;
19
+ border-bottom: 1px solid var(--border);
20
+ background-color: var(--background);
21
+ font-size: 0.75rem;
22
+ }
23
+
24
+ .dl-terminal__dots {
25
+ display: flex;
26
+ align-items: center;
27
+ gap: 0.375rem;
28
+ }
29
+
30
+ .dl-terminal__dot {
31
+ width: 0.625rem;
32
+ height: 0.625rem;
33
+ border-radius: 9999px;
34
+ background-color: var(--muted-foreground);
35
+ opacity: 0.4;
36
+ }
37
+
38
+ .dl-terminal__title {
39
+ display: flex;
40
+ align-items: center;
41
+ gap: 0.375rem;
42
+ font-weight: 500;
43
+ color: var(--muted-foreground);
44
+ }
45
+
46
+ .dl-terminal__output {
47
+ margin: 0;
48
+ padding: 0.75rem 1rem;
49
+ overflow-y: auto;
50
+ line-height: 1.5;
51
+ white-space: pre-wrap;
52
+ word-break: break-all;
53
+ color: var(--foreground);
54
+ }
55
+
56
+ .dl-terminal__prompt-line {
57
+ color: var(--primary);
58
+ font-weight: 600;
59
+ margin-bottom: 0.25rem;
60
+ }
@@ -0,0 +1,26 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as TerminalStories from "./terminal.stories";
3
+
4
+ <Meta of={TerminalStories} />
5
+
6
+ <Title />
7
+
8
+ # Terminal
9
+
10
+ Shell command execution container mimicking native terminal output with prompt indicator, window dots, and copy action.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={TerminalStories.Default} />
15
+
16
+ ## Streaming Output
17
+
18
+ <Canvas of={TerminalStories.StreamingLogs} />
19
+
20
+ ## Custom Composition
21
+
22
+ <Canvas of={TerminalStories.CustomComposition} />
23
+
24
+ ## Component Properties
25
+
26
+ <Controls />
@@ -0,0 +1,108 @@
1
+ .dl-test-results {
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
+ font-size: 0.8125rem;
10
+ }
11
+
12
+ .dl-test-results__header {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ padding: 0.625rem 0.875rem;
17
+ background-color: var(--muted);
18
+ border-bottom: 1px solid var(--border);
19
+ }
20
+
21
+ .dl-test-results__summary {
22
+ display: flex;
23
+ align-items: center;
24
+ gap: 0.75rem;
25
+ }
26
+
27
+ .dl-test-results__badge {
28
+ display: inline-flex;
29
+ align-items: center;
30
+ gap: 0.25rem;
31
+ font-weight: 600;
32
+ font-size: 0.75rem;
33
+ }
34
+
35
+ .dl-test-results__badge--passed {
36
+ color: var(--success);
37
+ }
38
+
39
+ .dl-test-results__badge--failed {
40
+ color: var(--destructive);
41
+ }
42
+
43
+ .dl-test-results__badge--skipped {
44
+ color: var(--muted-foreground);
45
+ }
46
+
47
+ .dl-test-results__list {
48
+ display: flex;
49
+ flex-direction: column;
50
+ divide-y: 1px solid var(--border);
51
+ max-height: 20rem;
52
+ overflow-y: auto;
53
+ }
54
+
55
+ .dl-test-case {
56
+ display: flex;
57
+ flex-direction: column;
58
+ padding: 0.5rem 0.875rem;
59
+ transition: background-color 0.12s ease;
60
+ }
61
+
62
+ .dl-test-case:hover {
63
+ background-color: var(--accent);
64
+ }
65
+
66
+ .dl-test-case__row {
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: space-between;
70
+ gap: 0.5rem;
71
+ }
72
+
73
+ .dl-test-case__info {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: 0.5rem;
77
+ min-width: 0;
78
+ }
79
+
80
+ .dl-test-case__name {
81
+ font-weight: 500;
82
+ color: var(--foreground);
83
+ overflow: hidden;
84
+ text-overflow: ellipsis;
85
+ white-space: nowrap;
86
+ }
87
+
88
+ .dl-test-case__duration {
89
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
90
+ font-size: 0.6875rem;
91
+ color: var(--muted-foreground);
92
+ shrink: 0;
93
+ }
94
+
95
+ .dl-test-case__error {
96
+ margin-top: 0.375rem;
97
+ padding: 0.375rem 0.5rem;
98
+ background-color: color-mix(
99
+ in oklch,
100
+ var(--destructive) 10%,
101
+ var(--background)
102
+ );
103
+ border-radius: var(--radius-sm, 0.25rem);
104
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, monospace);
105
+ font-size: 0.75rem;
106
+ color: var(--destructive);
107
+ white-space: pre-wrap;
108
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as TestResultsStories from "./test-results.stories";
3
+
4
+ <Meta of={TestResultsStories} />
5
+
6
+ <Title />
7
+
8
+ # Test Results
9
+
10
+ Test execution results dashboard displaying passed, failed, and skipped unit/integration test outcomes and error traces.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={TestResultsStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -2,11 +2,11 @@
2
2
  display: block;
3
3
  min-height: 4rem;
4
4
  width: 100%;
5
- border-radius: var(--radius-md, 0.375rem);
5
+ border-radius: var(--radius, 0.375rem);
6
6
  border: 1px solid var(--input);
7
7
  background-color: transparent;
8
- padding-block: 0.5rem;
9
- padding-inline: 0.75rem;
8
+ padding-block: var(--space-2, 0.5rem);
9
+ padding-inline: var(--space-3, 0.75rem);
10
10
  font-size: 0.75rem;
11
11
  font-family: inherit;
12
12
  color: var(--foreground);
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as TextareaStories from "./textarea.stories";
3
+
4
+ <Meta of={TextareaStories} />
5
+
6
+ <Title />
7
+
8
+ # Textarea
9
+
10
+ Multi-line form text input element supporting token-based borders, focus rings, and sizing.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={TextareaStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -65,21 +65,21 @@
65
65
 
66
66
  /* Sizes */
67
67
  .dl-toggle--size-default {
68
- height: 2.25rem;
69
- padding-inline: 0.5rem;
70
- min-width: 2.25rem;
68
+ height: var(--control-height-md, 2.25rem);
69
+ padding-inline: var(--space-2, 0.5rem);
70
+ min-width: var(--control-height-md, 2.25rem);
71
71
  }
72
72
 
73
73
  .dl-toggle--size-sm {
74
- height: 2rem;
75
- padding-inline: 0.375rem;
76
- min-width: 2rem;
74
+ height: var(--control-height-sm, 2rem);
75
+ padding-inline: calc(var(--space-2, 0.5rem) - 2px);
76
+ min-width: var(--control-height-sm, 2rem);
77
77
  }
78
78
 
79
79
  .dl-toggle--size-lg {
80
- height: 2.5rem;
81
- padding-inline: 0.625rem;
82
- min-width: 2.5rem;
80
+ height: var(--control-height-lg, 2.5rem);
81
+ padding-inline: var(--space-3, 0.75rem);
82
+ min-width: var(--control-height-lg, 2.5rem);
83
83
  }
84
84
 
85
85
  /* Group */
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as ToggleStories from "./toggle.stories";
3
+
4
+ <Meta of={ToggleStories} />
5
+
6
+ <Title />
7
+
8
+ # Toggle
9
+
10
+ Two-state button that can be either on or off.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={ToggleStories.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 ToggleGroupStories from "./toggle-group.stories";
3
+
4
+ <Meta of={ToggleGroupStories} />
5
+
6
+ <Title />
7
+
8
+ # Toggle Group
9
+
10
+ Group of two-state toggle buttons configured for single or multiple selection.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={ToggleGroupStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />