@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,183 @@
1
+ .dl-sidebar-group {
2
+ position: relative;
3
+ display: flex;
4
+ width: 100%;
5
+ min-width: 0;
6
+ flex-direction: column;
7
+ padding: var(--space-2, 0.5rem);
8
+ }
9
+ .dl-sidebar-group-label {
10
+ display: flex;
11
+ height: var(--control-height-sm, 2rem);
12
+ flex-shrink: 0;
13
+ align-items: center;
14
+ border-radius: var(--radius-md, 0.375rem);
15
+ padding-inline: var(--space-2, 0.5rem);
16
+ font-size: 0.75rem;
17
+ font-weight: 500;
18
+ color: color-mix(in oklch, var(--sidebar-foreground) 70%, transparent);
19
+ outline: none;
20
+ transition:
21
+ margin 0.2s ease-linear,
22
+ opacity 0.2s ease-linear;
23
+ }
24
+ .dl-sidebar-group-label svg {
25
+ width: 1rem;
26
+ height: 1rem;
27
+ }
28
+ [data-collapsible="icon"] .dl-sidebar-group-label {
29
+ margin-top: -2rem;
30
+ opacity: 0;
31
+ }
32
+
33
+ .dl-sidebar-group-action {
34
+ position: absolute;
35
+ right: 0.75rem;
36
+ top: 0.875rem;
37
+ display: flex;
38
+ aspect-ratio: 1 / 1;
39
+ width: 1.25rem;
40
+ align-items: center;
41
+ justify-content: center;
42
+ border-radius: var(--radius-md, 0.375rem);
43
+ padding: 0;
44
+ background: transparent;
45
+ border: none;
46
+ color: var(--sidebar-foreground);
47
+ outline: none;
48
+ cursor: pointer;
49
+ }
50
+ .dl-sidebar-group-action:hover {
51
+ background-color: var(--sidebar-accent);
52
+ color: var(--sidebar-accent-foreground);
53
+ }
54
+ [data-collapsible="icon"] .dl-sidebar-group-action {
55
+ display: none;
56
+ }
57
+ .dl-sidebar-group-content {
58
+ width: 100%;
59
+ font-size: 0.875rem;
60
+ }
61
+
62
+ .dl-sidebar-menu {
63
+ display: flex;
64
+ width: 100%;
65
+ min-width: 0;
66
+ flex-direction: column;
67
+ gap: 0.25rem;
68
+ list-style: none;
69
+ padding: 0;
70
+ margin: 0;
71
+ }
72
+ .dl-sidebar-menu-item {
73
+ position: relative;
74
+ list-style: none;
75
+ }
76
+
77
+ .dl-sidebar-menu-button {
78
+ display: flex;
79
+ width: 100%;
80
+ align-items: center;
81
+ gap: 0.5rem;
82
+ overflow: hidden;
83
+ border-radius: var(--radius-md, 0.375rem);
84
+ padding: 0.5rem;
85
+ text-align: left;
86
+ outline: none;
87
+ border: none;
88
+ background: transparent;
89
+ color: inherit;
90
+ cursor: pointer;
91
+ text-decoration: none;
92
+ box-sizing: border-box;
93
+ transition:
94
+ width 0.15s ease,
95
+ height 0.15s ease,
96
+ padding 0.15s ease,
97
+ background-color 0.15s ease,
98
+ color 0.15s ease;
99
+ }
100
+ .dl-sidebar-menu-button:hover,
101
+ .dl-sidebar-menu-button[data-state="open"] {
102
+ background-color: var(--sidebar-accent);
103
+ color: var(--sidebar-accent-foreground);
104
+ }
105
+ .dl-sidebar-menu-button:active,
106
+ .dl-sidebar-menu-button[data-active="true"] {
107
+ background-color: var(--sidebar-accent);
108
+ color: var(--sidebar-accent-foreground);
109
+ font-weight: 500;
110
+ }
111
+ .dl-sidebar-menu-button:disabled,
112
+ .dl-sidebar-menu-button[aria-disabled="true"] {
113
+ pointer-events: none;
114
+ opacity: 0.5;
115
+ cursor: not-allowed;
116
+ }
117
+ .dl-sidebar-menu-button svg {
118
+ width: 1rem;
119
+ height: 1rem;
120
+ flex-shrink: 0;
121
+ }
122
+ .dl-sidebar-menu-button > span:last-child {
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ white-space: nowrap;
126
+ }
127
+ .dl-sidebar-menu-button[data-size="default"] {
128
+ height: var(--control-height-sm, 2rem);
129
+ font-size: 0.875rem;
130
+ }
131
+ .dl-sidebar-menu-button[data-size="sm"] {
132
+ height: var(--control-height-xs, 1.75rem);
133
+ font-size: 0.75rem;
134
+ }
135
+ .dl-sidebar-menu-button[data-size="lg"] {
136
+ height: var(--control-height-xl, 3rem);
137
+ font-size: 0.875rem;
138
+ }
139
+ .dl-sidebar-menu-button[data-variant="outline"] {
140
+ background-color: var(--background);
141
+ box-shadow: 0 0 0 1px var(--sidebar-border);
142
+ }
143
+ .dl-sidebar-menu-button[data-variant="outline"]:hover {
144
+ box-shadow: 0 0 0 1px var(--sidebar-accent);
145
+ }
146
+ [data-collapsible="icon"] .dl-sidebar-menu-button {
147
+ width: var(--control-height-sm, 2rem) !important;
148
+ height: var(--control-height-sm, 2rem) !important;
149
+ padding: var(--space-2, 0.5rem) !important;
150
+ }
151
+ [data-collapsible="icon"] .dl-sidebar-menu-button[data-size="lg"] {
152
+ padding: 0 !important;
153
+ }
154
+
155
+ .dl-sidebar-menu-action {
156
+ position: absolute;
157
+ right: 0.25rem;
158
+ top: 0.375rem;
159
+ display: flex;
160
+ aspect-ratio: 1 / 1;
161
+ width: 1.25rem;
162
+ align-items: center;
163
+ justify-content: center;
164
+ border-radius: var(--radius-md, 0.375rem);
165
+ padding: 0;
166
+ border: none;
167
+ background: transparent;
168
+ color: var(--sidebar-foreground);
169
+ cursor: pointer;
170
+ outline: none;
171
+ }
172
+ .dl-sidebar-menu-action:hover {
173
+ background-color: var(--sidebar-accent);
174
+ color: var(--sidebar-accent-foreground);
175
+ }
176
+ .dl-sidebar-menu-action svg {
177
+ width: 1rem;
178
+ height: 1rem;
179
+ flex-shrink: 0;
180
+ }
181
+ [data-collapsible="icon"] .dl-sidebar-menu-action {
182
+ display: none;
183
+ }
@@ -0,0 +1,69 @@
1
+ .dl-sidebar-menu-badge {
2
+ pointer-events: none;
3
+ position: absolute;
4
+ right: 0.25rem;
5
+ display: flex;
6
+ height: 1.25rem;
7
+ min-width: 1.25rem;
8
+ align-items: center;
9
+ justify-content: center;
10
+ border-radius: var(--radius-md, 0.375rem);
11
+ padding-inline: 0.25rem;
12
+ font-size: 0.75rem;
13
+ font-weight: 500;
14
+ font-variant-numeric: tabular-nums;
15
+ color: var(--sidebar-foreground);
16
+ }
17
+ [data-collapsible="icon"] .dl-sidebar-menu-badge {
18
+ display: none;
19
+ }
20
+
21
+ .dl-sidebar-menu-skeleton {
22
+ display: flex;
23
+ height: var(--control-height-sm, 2rem);
24
+ align-items: center;
25
+ gap: var(--space-2, 0.5rem);
26
+ border-radius: var(--radius-md, 0.375rem);
27
+ padding-inline: var(--space-2, 0.5rem);
28
+ }
29
+
30
+ .dl-sidebar-menu-sub {
31
+ margin-inline: 0.875rem;
32
+ display: flex;
33
+ min-width: 0;
34
+ flex-direction: column;
35
+ gap: var(--space-1, 0.25rem);
36
+ border-left: 1px solid var(--sidebar-border);
37
+ padding-inline: 0.625rem;
38
+ padding-block: 0.125rem;
39
+ list-style: none;
40
+ }
41
+ [data-collapsible="icon"] .dl-sidebar-menu-sub {
42
+ display: none;
43
+ }
44
+
45
+ .dl-sidebar-menu-sub-button {
46
+ display: flex;
47
+ height: var(--control-height-xs, 1.75rem);
48
+ min-width: 0;
49
+ align-items: center;
50
+ gap: var(--space-2, 0.5rem);
51
+ overflow: hidden;
52
+ border-radius: var(--radius-md, 0.375rem);
53
+ padding-inline: var(--space-2, 0.5rem);
54
+ color: var(--sidebar-foreground);
55
+ cursor: pointer;
56
+ text-decoration: none;
57
+ font-size: 0.875rem;
58
+ }
59
+ .dl-sidebar-menu-sub-button[data-size="sm"] {
60
+ font-size: 0.75rem;
61
+ }
62
+ .dl-sidebar-menu-sub-button:hover,
63
+ .dl-sidebar-menu-sub-button[data-active="true"] {
64
+ background-color: var(--sidebar-accent);
65
+ color: var(--sidebar-accent-foreground);
66
+ }
67
+ [data-collapsible="icon"] .dl-sidebar-menu-sub-button {
68
+ display: none;
69
+ }
@@ -1,18 +1,185 @@
1
1
  .dl-sidebar-wrapper {
2
2
  display: flex;
3
- min-height: 100vh;
3
+ min-height: 100svh;
4
4
  width: 100%;
5
5
  }
6
-
6
+ .dl-sidebar-wrapper[data-has-inset="true"] {
7
+ background-color: var(--sidebar);
8
+ }
7
9
  .dl-sidebar-input {
8
- height: 2rem;
10
+ height: var(--control-height-sm, 2rem);
9
11
  background-color: var(--background);
10
12
  box-shadow: none;
11
13
  }
12
-
13
14
  .dl-sidebar-input:focus,
14
15
  .dl-sidebar-input:focus-visible {
15
16
  border-color: var(--sidebar-ring);
16
17
  box-shadow: 0 0 0 2px
17
18
  color-mix(in oklch, var(--sidebar-ring) 25%, transparent);
18
19
  }
20
+
21
+ .dl-sidebar-desktop-spacer {
22
+ position: relative;
23
+ width: var(--sidebar-width, 16rem);
24
+ background-color: transparent;
25
+ transition: width 0.2s linear;
26
+ }
27
+ [data-collapsible="offcanvas"] .dl-sidebar-desktop-spacer {
28
+ width: 0;
29
+ }
30
+ [data-side="right"] .dl-sidebar-desktop-spacer {
31
+ transform: rotate(180deg);
32
+ }
33
+ [data-variant="floating"][data-collapsible="icon"] .dl-sidebar-desktop-spacer,
34
+ [data-variant="inset"][data-collapsible="icon"] .dl-sidebar-desktop-spacer {
35
+ width: calc(var(--sidebar-width-icon, 3rem) + 1rem);
36
+ }
37
+ [data-collapsible="icon"] .dl-sidebar-desktop-spacer {
38
+ width: var(--sidebar-width-icon, 3rem);
39
+ }
40
+
41
+ .dl-sidebar-fixed {
42
+ position: fixed;
43
+ inset-block: 0;
44
+ z-index: 10;
45
+ display: none;
46
+ height: 100svh;
47
+ width: var(--sidebar-width, 16rem);
48
+ transition:
49
+ left 0.2s linear,
50
+ right 0.2s linear,
51
+ width 0.2s linear;
52
+ }
53
+ @media (min-width: 768px) {
54
+ .dl-sidebar-fixed {
55
+ display: flex;
56
+ }
57
+ }
58
+ [data-side="left"] .dl-sidebar-fixed {
59
+ left: 0;
60
+ border-right: 1px solid var(--sidebar-border);
61
+ }
62
+ [data-side="left"][data-state="collapsed"][data-collapsible="offcanvas"]
63
+ .dl-sidebar-fixed {
64
+ left: calc(-1 * var(--sidebar-width, 16rem));
65
+ }
66
+ [data-side="right"] .dl-sidebar-fixed {
67
+ right: 0;
68
+ border-left: 1px solid var(--sidebar-border);
69
+ }
70
+ [data-side="right"][data-state="collapsed"][data-collapsible="offcanvas"]
71
+ .dl-sidebar-fixed {
72
+ right: calc(-1 * var(--sidebar-width, 16rem));
73
+ }
74
+ [data-variant="floating"] .dl-sidebar-fixed,
75
+ [data-variant="inset"] .dl-sidebar-fixed {
76
+ padding: var(--space-2, 0.5rem);
77
+ border: none;
78
+ }
79
+ [data-variant="floating"][data-collapsible="icon"] .dl-sidebar-fixed,
80
+ [data-variant="inset"][data-collapsible="icon"] .dl-sidebar-fixed {
81
+ width: calc(var(--sidebar-width-icon, 3rem) + 1rem + 2px);
82
+ }
83
+ [data-collapsible="icon"] .dl-sidebar-fixed {
84
+ width: var(--sidebar-width-icon, 3rem);
85
+ }
86
+
87
+ .dl-sidebar-inner {
88
+ display: flex;
89
+ flex-direction: column;
90
+ width: 100%;
91
+ height: 100%;
92
+ background-color: var(--sidebar);
93
+ color: var(--sidebar-foreground);
94
+ }
95
+ [data-variant="floating"] .dl-sidebar-inner {
96
+ border-radius: var(--radius-lg, 0.5rem);
97
+ border: 1px solid var(--sidebar-border);
98
+ box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
99
+ }
100
+
101
+ .dl-sidebar-mobile-content {
102
+ display: flex;
103
+ flex-direction: column;
104
+ width: 100%;
105
+ height: 100%;
106
+ }
107
+ .dl-sidebar-trigger {
108
+ width: var(--control-height-xs, 1.75rem);
109
+ height: var(--control-height-xs, 1.75rem);
110
+ padding: 0;
111
+ }
112
+
113
+ .dl-sidebar-rail {
114
+ position: absolute;
115
+ inset-block: 0;
116
+ z-index: 20;
117
+ display: none;
118
+ width: 1rem;
119
+ transform: translateX(-50%);
120
+ background: transparent;
121
+ border: none;
122
+ cursor: col-resize;
123
+ padding: 0;
124
+ transition: all 0.2s linear;
125
+ }
126
+ @media (min-width: 640px) {
127
+ .dl-sidebar-rail {
128
+ display: flex;
129
+ }
130
+ }
131
+ .dl-sidebar-rail::after {
132
+ content: "";
133
+ position: absolute;
134
+ inset-block: 0;
135
+ left: 50%;
136
+ width: 2px;
137
+ }
138
+ .dl-sidebar-rail:hover::after {
139
+ background-color: var(--sidebar-border);
140
+ }
141
+ [data-side="left"] .dl-sidebar-rail {
142
+ right: -1rem;
143
+ }
144
+ [data-side="right"] .dl-sidebar-rail {
145
+ left: 0;
146
+ }
147
+
148
+ .dl-sidebar-inset {
149
+ position: relative;
150
+ display: flex;
151
+ width: 100%;
152
+ flex: 1 1 0%;
153
+ flex-direction: column;
154
+ background-color: var(--background);
155
+ }
156
+ @media (min-width: 768px) {
157
+ .dl-sidebar[data-variant="inset"] ~ .dl-sidebar-inset,
158
+ [data-variant="inset"] .dl-sidebar-inset {
159
+ margin: var(--space-2, 0.5rem);
160
+ margin-left: 0;
161
+ border-radius: var(--radius-xl, 0.75rem);
162
+ box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
163
+ }
164
+ }
165
+
166
+ .dl-sidebar-header,
167
+ .dl-sidebar-footer {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: var(--space-2, 0.5rem);
171
+ padding: var(--space-2, 0.5rem);
172
+ }
173
+ .dl-sidebar-separator {
174
+ margin-inline: var(--space-2, 0.5rem);
175
+ width: auto;
176
+ background-color: var(--sidebar-border);
177
+ }
178
+ .dl-sidebar-content {
179
+ display: flex;
180
+ min-height: 0;
181
+ flex: 1 1 0%;
182
+ flex-direction: column;
183
+ gap: var(--space-2, 0.5rem);
184
+ overflow: auto;
185
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as SidebarStories from "./sidebar.stories";
3
+
4
+ <Meta of={SidebarStories} />
5
+
6
+ <Title />
7
+
8
+ # Sidebar
9
+
10
+ Collapsible application sidebar layout supporting responsive breakpoints, header, and footer docks.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SidebarStories.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 SliderStories from "./slider.stories";
3
+
4
+ <Meta of={SliderStories} />
5
+
6
+ <Title />
7
+
8
+ # Slider
9
+
10
+ Interactive range slider input control for selecting numeric values along a track.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SliderStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -1,33 +1,33 @@
1
1
  .dl-toaster {
2
2
  font-family: inherit;
3
- --normal-bg: var(--card, var(--background));
4
- --normal-text: var(--card-foreground, var(--foreground));
5
- --normal-border: var(--border);
3
+ --normal-bg: var(--toast-bg, var(--card, var(--background)));
4
+ --normal-text: var(--toast-fg, var(--card-foreground, var(--foreground)));
5
+ --normal-border: var(--toast-border, var(--border));
6
6
  }
7
7
 
8
8
  [data-sonner-toaster][data-sonner-theme="dark"],
9
9
  .dark [data-sonner-toaster],
10
10
  [data-theme*="dark"] [data-sonner-toaster] {
11
- --normal-bg: var(--card, var(--background));
12
- --normal-text: var(--card-foreground, var(--foreground));
13
- --normal-border: var(--border);
11
+ --normal-bg: var(--toast-bg, var(--card, var(--background)));
12
+ --normal-text: var(--toast-fg, var(--card-foreground, var(--foreground)));
13
+ --normal-border: var(--toast-border, var(--border));
14
14
  }
15
15
 
16
16
  [data-sonner-toaster][data-sonner-theme="light"],
17
17
  .light [data-sonner-toaster],
18
18
  [data-theme*="light"] [data-sonner-toaster] {
19
- --normal-bg: var(--card, var(--background));
20
- --normal-text: var(--card-foreground, var(--foreground));
21
- --normal-border: var(--border);
19
+ --normal-bg: var(--toast-bg, var(--card, var(--background)));
20
+ --normal-text: var(--toast-fg, var(--card-foreground, var(--foreground)));
21
+ --normal-border: var(--toast-border, var(--border));
22
22
  }
23
23
 
24
24
  .dl-toaster .dl-toast,
25
25
  [data-sonner-toaster] [data-sonner-toast][data-styled="true"] {
26
- border-radius: var(--radius-md, 0.375rem);
27
- border: 1px solid var(--border);
28
- background-color: var(--card, var(--background));
29
- color: var(--card-foreground, var(--foreground));
30
- box-shadow: 0 8px 32px rgb(0 0 0 / 0.15);
26
+ border-radius: var(--toast-radius, var(--radius-md, 0.375rem));
27
+ border: 1px solid var(--toast-border, var(--border));
28
+ background-color: var(--toast-bg, var(--card, var(--background)));
29
+ color: var(--toast-fg, var(--card-foreground, var(--foreground)));
30
+ box-shadow: var(--toast-shadow, 0 8px 32px rgb(0 0 0 / 0.15));
31
31
  }
32
32
 
33
33
  .dl-toaster .dl-toast__desc,
@@ -48,7 +48,58 @@
48
48
  }
49
49
 
50
50
  [data-sonner-toaster] [data-sonner-toast] [data-close-button] {
51
- background-color: var(--card, var(--background));
52
- border-color: var(--border);
53
- color: var(--card-foreground, var(--foreground));
51
+ background-color: var(--toast-bg, var(--card, var(--background)));
52
+ border-color: var(--toast-border, var(--border));
53
+ color: var(--toast-fg, var(--card-foreground, var(--foreground)));
54
+ }
55
+
56
+ /* ── FinAI Semantic Feedback (Text & Icon Colors, Subtle Borders via CSS Variables) ── */
57
+ [data-sonner-toaster] [data-sonner-toast][data-type="success"] {
58
+ border-color: color-mix(
59
+ in oklch,
60
+ var(--toast-success, var(--success)) 35%,
61
+ transparent
62
+ );
63
+ }
64
+
65
+ [data-sonner-toaster] [data-sonner-toast][data-type="success"] [data-icon] {
66
+ color: var(--toast-success, var(--success));
67
+ }
68
+
69
+ [data-sonner-toaster] [data-sonner-toast][data-type="error"],
70
+ [data-sonner-toaster] [data-sonner-toast][data-type="destructive"] {
71
+ border-color: color-mix(
72
+ in oklch,
73
+ var(--toast-destructive, var(--destructive)) 35%,
74
+ transparent
75
+ );
76
+ }
77
+
78
+ [data-sonner-toaster] [data-sonner-toast][data-type="error"] [data-icon],
79
+ [data-sonner-toaster] [data-sonner-toast][data-type="destructive"] [data-icon] {
80
+ color: var(--toast-destructive, var(--destructive));
81
+ }
82
+
83
+ [data-sonner-toaster] [data-sonner-toast][data-type="warning"] {
84
+ border-color: color-mix(
85
+ in oklch,
86
+ var(--toast-warning, var(--warning)) 35%,
87
+ transparent
88
+ );
89
+ }
90
+
91
+ [data-sonner-toaster] [data-sonner-toast][data-type="warning"] [data-icon] {
92
+ color: var(--toast-warning, var(--warning));
93
+ }
94
+
95
+ [data-sonner-toaster] [data-sonner-toast][data-type="info"] {
96
+ border-color: color-mix(
97
+ in oklch,
98
+ var(--toast-info, var(--info)) 35%,
99
+ transparent
100
+ );
101
+ }
102
+
103
+ [data-sonner-toaster] [data-sonner-toast][data-type="info"] [data-icon] {
104
+ color: var(--toast-info, var(--info));
54
105
  }
@@ -1,5 +1,5 @@
1
- import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
- import * as SonnerStories from "./sonner.stories";
1
+ pimport { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import \* as SonnerStories from "./sonner.stories";
3
3
 
4
4
  <Meta of={SonnerStories} />
5
5
 
@@ -7,7 +7,9 @@ import * as SonnerStories from "./sonner.stories";
7
7
 
8
8
  # Toaster / Toast
9
9
 
10
- An opinionated, elegant toast notification component built upon Sonner and styled with `@yuva-devlab/ui` design system tokens.
10
+ An opinionated, elegant toast notification component built upon Sonner and fully integrated with `@yuva-devlab/tokens` CSS variables.
11
+
12
+ Defaults to `bottom-right` positioning with a subtle dark/light card surface and isolated semantic feedback icons (`success`, `error`, `warning`, `info`).
11
13
 
12
14
  ## Default
13
15
 
@@ -0,0 +1,105 @@
1
+ .dl-citation {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ min-width: 1.125rem;
6
+ height: 1.125rem;
7
+ padding: 0 0.25rem;
8
+ margin: 0 0.125rem;
9
+ font-size: 0.6875rem;
10
+ font-weight: 600;
11
+ line-height: 1;
12
+ border-radius: var(--radius-sm, 0.25rem);
13
+ background-color: var(--muted);
14
+ color: var(--primary);
15
+ border: 1px solid var(--border);
16
+ cursor: pointer;
17
+ vertical-align: baseline;
18
+ transition: all 0.12s ease;
19
+ text-decoration: none;
20
+ }
21
+
22
+ .dl-citation:hover {
23
+ background-color: var(--accent);
24
+ color: var(--accent-foreground);
25
+ border-color: var(--ring);
26
+ }
27
+
28
+ .dl-sources {
29
+ display: flex;
30
+ flex-direction: column;
31
+ gap: 0.5rem;
32
+ width: 100%;
33
+ margin-top: 0.75rem;
34
+ }
35
+
36
+ .dl-sources__header {
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 0.375rem;
40
+ font-size: 0.75rem;
41
+ font-weight: 600;
42
+ text-transform: uppercase;
43
+ letter-spacing: 0.05em;
44
+ color: var(--muted-foreground);
45
+ }
46
+
47
+ .dl-sources__grid {
48
+ display: grid;
49
+ grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
50
+ gap: 0.5rem;
51
+ }
52
+
53
+ .dl-source-card {
54
+ display: flex;
55
+ flex-direction: column;
56
+ padding: 0.5rem 0.625rem;
57
+ border-radius: var(--radius-md, 0.375rem);
58
+ border: 1px solid var(--border);
59
+ background-color: var(--card, var(--background));
60
+ text-decoration: none;
61
+ color: var(--foreground);
62
+ transition: all 0.15s ease;
63
+ }
64
+
65
+ .dl-source-card:hover {
66
+ border-color: var(--ring);
67
+ background-color: var(--accent);
68
+ }
69
+
70
+ .dl-source-card__meta {
71
+ display: flex;
72
+ align-items: center;
73
+ gap: 0.375rem;
74
+ font-size: 0.6875rem;
75
+ color: var(--muted-foreground);
76
+ }
77
+
78
+ .dl-source-card__index {
79
+ display: inline-flex;
80
+ align-items: center;
81
+ justify-content: center;
82
+ width: 0.875rem;
83
+ height: 0.875rem;
84
+ border-radius: 9999px;
85
+ background-color: var(--muted);
86
+ font-weight: 600;
87
+ font-size: 0.625rem;
88
+ }
89
+
90
+ .dl-source-card__domain {
91
+ overflow: hidden;
92
+ text-overflow: ellipsis;
93
+ white-space: nowrap;
94
+ }
95
+
96
+ .dl-source-card__title {
97
+ margin-top: 0.25rem;
98
+ font-size: 0.75rem;
99
+ font-weight: 500;
100
+ line-height: 1.3;
101
+ display: -webkit-box;
102
+ -webkit-line-clamp: 2;
103
+ -webkit-box-orient: vertical;
104
+ overflow: hidden;
105
+ }