@yuva-devlab/ui 1.4.3 → 2.0.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 (91) hide show
  1. package/README.md +172 -128
  2. package/dist/components/accordion/accordion.mdx +18 -0
  3. package/dist/components/alert/alert.css +2 -2
  4. package/dist/components/alert-dialog/alert-dialog.mdx +18 -0
  5. package/dist/components/aspect-ratio/aspect-ratio.mdx +22 -0
  6. package/dist/components/breadcrumb/breadcrumb.mdx +18 -0
  7. package/dist/components/calendar/calendar-nav.css +111 -0
  8. package/dist/components/calendar/calendar.css +183 -0
  9. package/dist/components/calendar/calendar.mdx +18 -0
  10. package/dist/components/card/card.css +4 -4
  11. package/dist/components/carousel/carousel.css +4 -4
  12. package/dist/components/carousel/carousel.mdx +18 -0
  13. package/dist/components/chart/chart.css +86 -0
  14. package/dist/components/chart/chart.mdx +18 -0
  15. package/dist/components/checkbox/checkbox.css +11 -0
  16. package/dist/components/collapsible/collapsible.mdx +18 -0
  17. package/dist/components/command/command.css +3 -3
  18. package/dist/components/command/command.mdx +18 -0
  19. package/dist/components/confirm-dialog/confirm-dialog.mdx +18 -0
  20. package/dist/components/context-menu/context-menu.mdx +18 -0
  21. package/dist/components/copy-button/copy-button.css +2 -0
  22. package/dist/components/copy-button/copy-button.mdx +18 -0
  23. package/dist/components/date-picker/date-picker.css +11 -5
  24. package/dist/components/date-picker/date-picker.mdx +18 -0
  25. package/dist/components/dialog/dialog.css +6 -6
  26. package/dist/components/drawer/drawer.mdx +18 -0
  27. package/dist/components/dropdown-menu/dropdown-menu.css +18 -0
  28. package/dist/components/dropdown-menu/dropdown-menu.mdx +18 -0
  29. package/dist/components/empty-state/empty-state.css +67 -0
  30. package/dist/components/empty-state/empty-state.mdx +18 -0
  31. package/dist/components/form/form.mdx +18 -0
  32. package/dist/components/hover-card/hover-card.mdx +18 -0
  33. package/dist/components/input-otp/input-otp.mdx +18 -0
  34. package/dist/components/label/label.mdx +18 -0
  35. package/dist/components/layout/layout.css +158 -0
  36. package/dist/components/layout/layout.mdx +30 -0
  37. package/dist/components/loading-state/loading-state.css +11 -0
  38. package/dist/components/loading-state/loading-state.mdx +18 -0
  39. package/dist/components/menubar/menubar.css +4 -4
  40. package/dist/components/menubar/menubar.mdx +18 -0
  41. package/dist/components/metric-card/metric-card.mdx +18 -0
  42. package/dist/components/navigation-menu/navigation-menu.css +2 -2
  43. package/dist/components/navigation-menu/navigation-menu.mdx +18 -0
  44. package/dist/components/pagination/pagination.css +8 -2
  45. package/dist/components/pagination/pagination.mdx +18 -0
  46. package/dist/components/panel/panel.mdx +18 -0
  47. package/dist/components/popover/popover.css +7 -2
  48. package/dist/components/popover/popover.mdx +18 -0
  49. package/dist/components/radio-group/radio-group.mdx +18 -0
  50. package/dist/components/resizable/resizable.mdx +18 -0
  51. package/dist/components/scroll-area/scroll-area.mdx +18 -0
  52. package/dist/components/searchable-select/searchable-select.css +26 -3
  53. package/dist/components/searchable-select/searchable-select.mdx +18 -0
  54. package/dist/components/secret-reveal-card/secret-reveal-card.css +9 -0
  55. package/dist/components/secret-reveal-card/secret-reveal-card.mdx +18 -0
  56. package/dist/components/select/select.css +16 -1
  57. package/dist/components/separator/separator.mdx +18 -0
  58. package/dist/components/sheet/sheet.css +5 -1
  59. package/dist/components/sheet/sheet.mdx +18 -0
  60. package/dist/components/sidebar/sidebar-menu.css +183 -0
  61. package/dist/components/sidebar/sidebar-submenu.css +69 -0
  62. package/dist/components/sidebar/sidebar.css +171 -4
  63. package/dist/components/sidebar/sidebar.mdx +18 -0
  64. package/dist/components/slider/slider.mdx +18 -0
  65. package/dist/components/status-chip/status-chip.mdx +18 -0
  66. package/dist/components/table/table.css +5 -3
  67. package/dist/components/tabs/tabs.css +3 -3
  68. package/dist/components/textarea/textarea.css +3 -3
  69. package/dist/components/textarea/textarea.mdx +18 -0
  70. package/dist/components/toggle/toggle.css +9 -9
  71. package/dist/components/toggle/toggle.mdx +18 -0
  72. package/dist/components/toggle-group/toggle-group.mdx +18 -0
  73. package/dist/components/tooltip/tooltip.mdx +18 -0
  74. package/dist/components/typography/heading.mdx +36 -0
  75. package/dist/components/typography/text.mdx +34 -0
  76. package/dist/components/typography/typography.css +98 -0
  77. package/dist/components.css +1366 -118
  78. package/dist/index.cjs +1239 -1008
  79. package/dist/index.cjs.map +1 -1
  80. package/dist/index.d.cts +662 -197
  81. package/dist/index.d.ts +662 -197
  82. package/dist/index.js +1220 -1011
  83. package/dist/index.js.map +1 -1
  84. package/dist/preset.css +2 -4
  85. package/dist/styles/components.css +1366 -118
  86. package/dist/styles/preset.css +2 -4
  87. package/dist/styles/styles.css +7 -4
  88. package/dist/styles/utilities.css +137 -0
  89. package/dist/styles.css +7 -4
  90. package/dist/utilities.css +137 -0
  91. package/package.json +22 -4
@@ -22,7 +22,7 @@
22
22
  align-items: center;
23
23
  gap: 0.5rem;
24
24
  border-bottom: 1px solid var(--border);
25
- padding: 0.5rem;
25
+ padding: var(--space-2, 0.5rem);
26
26
  }
27
27
 
28
28
  .dl-searchable-select-search-icon {
@@ -34,10 +34,10 @@
34
34
  }
35
35
 
36
36
  .dl-searchable-select-search-input {
37
- height: 2rem;
37
+ height: var(--control-height-sm, 2rem);
38
38
  border: none;
39
39
  background: transparent;
40
- padding-inline: 0.25rem;
40
+ padding-inline: var(--space-1, 0.25rem);
41
41
  font-size: 0.875rem;
42
42
  box-shadow: none;
43
43
  }
@@ -64,6 +64,10 @@
64
64
  color: var(--muted-foreground);
65
65
  }
66
66
 
67
+ .dl-searchable-select-group {
68
+ padding-block: 0.25rem;
69
+ }
70
+
67
71
  .dl-searchable-select-group-header {
68
72
  padding-inline: 0.5rem;
69
73
  padding-block: 0.25rem;
@@ -101,6 +105,19 @@
101
105
  font-weight: 500;
102
106
  }
103
107
 
108
+ .dl-searchable-select-item-text {
109
+ flex: 1 1 0%;
110
+ overflow: hidden;
111
+ text-overflow: ellipsis;
112
+ white-space: nowrap;
113
+ }
114
+
115
+ .dl-searchable-select-truncate {
116
+ overflow: hidden;
117
+ text-overflow: ellipsis;
118
+ white-space: nowrap;
119
+ }
120
+
104
121
  .dl-searchable-select-add {
105
122
  border-top: 1px solid var(--border);
106
123
  background-color: color-mix(in oklch, var(--muted) 30%, transparent);
@@ -126,3 +143,9 @@
126
143
  .dl-searchable-select-add-btn:hover {
127
144
  background-color: color-mix(in oklch, var(--primary) 10%, transparent);
128
145
  }
146
+
147
+ .dl-searchable-select-add-icon {
148
+ width: 0.875rem;
149
+ height: 0.875rem;
150
+ flex-shrink: 0;
151
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as SearchableSelectStories from "./searchable-select.stories";
3
+
4
+ <Meta of={SearchableSelectStories} />
5
+
6
+ <Title />
7
+
8
+ # Searchable Select
9
+
10
+ Single and multi-select combobox with real-time text query filtering and selection tags.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SearchableSelectStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -17,6 +17,12 @@
17
17
  line-height: 1.4;
18
18
  }
19
19
 
20
+ .dl-secret-reveal__warning svg {
21
+ flex-shrink: 0;
22
+ width: 1rem;
23
+ height: 1rem;
24
+ }
25
+
20
26
  .dl-secret-reveal__code-wrap {
21
27
  display: flex;
22
28
  align-items: center;
@@ -26,6 +32,7 @@
26
32
  border: 1px solid var(--border);
27
33
  border-radius: calc(var(--radius, 0.5rem) - 2px);
28
34
  padding: 0.5rem 0.75rem;
35
+ flex-wrap: nowrap;
29
36
  }
30
37
 
31
38
  .dl-secret-reveal__code {
@@ -34,4 +41,6 @@
34
41
  color: var(--primary);
35
42
  word-break: break-all;
36
43
  user-select: all;
44
+ min-width: 0;
45
+ flex: 1;
37
46
  }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as SecretRevealCardStories from "./secret-reveal-card.stories";
3
+
4
+ <Meta of={SecretRevealCardStories} />
5
+
6
+ <Title />
7
+
8
+ # Secret Reveal Card
9
+
10
+ Secure credential display container with masked characters and timed reveal functionality.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SecretRevealCardStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -32,12 +32,23 @@
32
32
  opacity: 0.5;
33
33
  cursor: not-allowed;
34
34
  }
35
- .dl-select-trigger > svg {
35
+ .dl-select-trigger svg {
36
36
  opacity: 0.5;
37
37
  width: 1rem;
38
38
  height: 1rem;
39
39
  flex-shrink: 0;
40
40
  }
41
+ .dl-select-scroll-btn {
42
+ display: flex;
43
+ cursor: default;
44
+ align-items: center;
45
+ justify-content: center;
46
+ padding-block: 0.25rem;
47
+ }
48
+ .dl-select-scroll-btn svg {
49
+ width: 1rem;
50
+ height: 1rem;
51
+ }
41
52
 
42
53
  /* Sizes */
43
54
  .dl-select-trigger--sm {
@@ -112,6 +123,10 @@
112
123
  width: 0.875rem;
113
124
  height: 0.875rem;
114
125
  }
126
+ .dl-select-item__indicator svg {
127
+ width: 0.75rem;
128
+ height: 0.75rem;
129
+ }
115
130
  .dl-select-label {
116
131
  padding: 0.25rem 0.5rem;
117
132
  font-size: 0.6875rem;
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as SeparatorStories from "./separator.stories";
3
+
4
+ <Meta of={SeparatorStories} />
5
+
6
+ <Title />
7
+
8
+ # Separator
9
+
10
+ Visual or semantic divider between sections of content supporting horizontal and vertical orientations.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SeparatorStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -6,7 +6,7 @@
6
6
  z-index: 50;
7
7
  gap: 1rem;
8
8
  background-color: var(--background);
9
- padding: 1.5rem;
9
+ padding: var(--dialog-padding, 1.5rem);
10
10
  box-shadow: 0 8px 40px rgb(0 0 0/0.2);
11
11
  }
12
12
  .dl-sheet-content--right {
@@ -63,6 +63,10 @@
63
63
  outline: 2px solid var(--ring);
64
64
  outline-offset: 2px;
65
65
  }
66
+ .dl-sheet-close svg {
67
+ width: 1rem;
68
+ height: 1rem;
69
+ }
66
70
  .dl-sheet__header {
67
71
  display: flex;
68
72
  flex-direction: column;
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as SheetStories from "./sheet.stories";
3
+
4
+ <Meta of={SheetStories} />
5
+
6
+ <Title />
7
+
8
+ # Sheet
9
+
10
+ Extends the Dialog component to display content that complements the main screen from any edge.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={SheetStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -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 />