@yuva-devlab/ui 1.1.0 → 1.3.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 (85) hide show
  1. package/dist/common.css +158 -0
  2. package/dist/components/accordion/accordion.css +49 -0
  3. package/dist/components/alert/alert.css +63 -0
  4. package/dist/components/alert/alert.mdx +26 -0
  5. package/dist/components/alert-dialog/alert-dialog.css +84 -0
  6. package/dist/components/avatar/avatar.css +26 -0
  7. package/dist/components/avatar/avatar.mdx +18 -0
  8. package/dist/components/badge/badge.css +76 -0
  9. package/dist/components/badge/badge.mdx +24 -0
  10. package/dist/components/breadcrumb/breadcrumb.css +63 -0
  11. package/dist/components/button/button.css +106 -0
  12. package/dist/components/button/button.mdx +40 -0
  13. package/dist/components/card/card.css +30 -0
  14. package/dist/components/card/card.mdx +18 -0
  15. package/dist/components/carousel/carousel.css +67 -0
  16. package/dist/components/chart/chart.css +38 -0
  17. package/dist/components/checkbox/checkbox.css +27 -0
  18. package/dist/components/checkbox/checkbox.mdx +22 -0
  19. package/dist/components/command/command.css +125 -0
  20. package/dist/components/context-menu/context-menu.css +19 -0
  21. package/dist/components/date-picker/date-picker.css +30 -0
  22. package/dist/components/dialog/dialog.css +145 -0
  23. package/dist/components/dialog/dialog.mdx +18 -0
  24. package/dist/components/drawer/drawer.css +64 -0
  25. package/dist/components/dropdown-menu/dropdown-menu.css +82 -0
  26. package/dist/components/form/form.css +17 -0
  27. package/dist/components/hover-card/hover-card.css +23 -0
  28. package/dist/components/input/input.css +89 -0
  29. package/dist/components/input/input.mdx +30 -0
  30. package/dist/components/input-otp/input-otp.css +70 -0
  31. package/dist/components/label/label.css +9 -0
  32. package/dist/components/loading-state/loading-state.css +26 -0
  33. package/dist/components/menubar/menubar.css +36 -0
  34. package/dist/components/navigation-menu/navigation-menu.css +137 -0
  35. package/dist/components/pagination/pagination.css +43 -0
  36. package/dist/components/panel/panel.css +24 -0
  37. package/dist/components/popover/popover.css +17 -0
  38. package/dist/components/progress/progress.css +15 -0
  39. package/dist/components/progress/progress.mdx +18 -0
  40. package/dist/components/radio-group/radio-group.css +37 -0
  41. package/dist/components/resizable/resizable.css +67 -0
  42. package/dist/components/scroll-area/scroll-area.css +32 -0
  43. package/dist/components/searchable-select/searchable-select.css +128 -0
  44. package/dist/components/select/select.css +97 -0
  45. package/dist/components/select/select.mdx +18 -0
  46. package/dist/components/separator/separator.css +14 -0
  47. package/dist/components/sheet/sheet.css +83 -0
  48. package/dist/components/sidebar/sidebar.css +18 -0
  49. package/dist/components/skeleton/skeleton.css +5 -0
  50. package/dist/components/skeleton/skeleton.mdx +18 -0
  51. package/dist/components/slider/slider.css +37 -0
  52. package/dist/components/sonner/sonner.css +25 -0
  53. package/dist/components/sonner/sonner.mdx +22 -0
  54. package/dist/components/status-badge/status-badge.css +53 -0
  55. package/dist/components/status-badge/status-badge.mdx +24 -0
  56. package/dist/components/status-chip/status-chip.css +44 -0
  57. package/dist/components/switch/switch.css +45 -0
  58. package/dist/components/switch/switch.mdx +22 -0
  59. package/dist/components/table/table.css +46 -0
  60. package/dist/components/table/table.mdx +18 -0
  61. package/dist/components/tabs/tabs.css +46 -0
  62. package/dist/components/tabs/tabs.mdx +18 -0
  63. package/dist/components/textarea/textarea.css +30 -0
  64. package/dist/components/toggle/toggle.css +91 -0
  65. package/dist/components/tooltip/tooltip.css +17 -0
  66. package/dist/components.css +2618 -0
  67. package/dist/index.cjs +1447 -1836
  68. package/dist/index.cjs.map +1 -1
  69. package/dist/index.d.cts +1819 -202
  70. package/dist/index.d.ts +1819 -202
  71. package/dist/index.js +1442 -1837
  72. package/dist/index.js.map +1 -1
  73. package/dist/preset.css +6 -157
  74. package/dist/root.css +1 -0
  75. package/dist/styles/common.css +158 -0
  76. package/dist/styles/components.css +2618 -0
  77. package/dist/styles/preset.css +6 -157
  78. package/dist/styles/root.css +1 -0
  79. package/dist/styles/styles.css +17 -5
  80. package/dist/styles/themes/finai.css +1 -114
  81. package/dist/styles/themes/orchestrai.css +1 -75
  82. package/dist/styles.css +17 -5
  83. package/dist/themes/finai.css +1 -114
  84. package/dist/themes/orchestrai.css +1 -75
  85. package/package.json +11 -5
@@ -0,0 +1,82 @@
1
+ .dl-menu-content {
2
+ z-index: 50;
3
+ min-width: 8rem;
4
+ overflow: hidden;
5
+ border-radius: var(--radius-md, 0.375rem);
6
+ border: 1px solid var(--border);
7
+ background-color: var(--popover);
8
+ color: var(--popover-foreground);
9
+ padding: 0.25rem;
10
+ box-shadow: 0 4px 24px rgb(0 0 0/0.12);
11
+ }
12
+ .dl-menu-content[data-state="open"] {
13
+ animation: dl-fade-in 100ms ease;
14
+ }
15
+ .dl-menu-content[data-state="closed"] {
16
+ animation: dl-fade-out 100ms ease;
17
+ }
18
+
19
+ .dl-menu-item {
20
+ position: relative;
21
+ display: flex;
22
+ cursor: pointer;
23
+ align-items: center;
24
+ gap: 0.5rem;
25
+ border-radius: var(--radius-sm, 0.25rem);
26
+ padding: 0.375rem 0.5rem;
27
+ font-size: 0.875rem;
28
+ outline: none;
29
+ transition: background-color 0.1s ease;
30
+ user-select: none;
31
+ }
32
+ .dl-menu-item:focus,
33
+ .dl-menu-item[data-highlighted] {
34
+ background-color: var(--accent);
35
+ color: var(--accent-foreground);
36
+ }
37
+ .dl-menu-item[data-disabled] {
38
+ opacity: 0.5;
39
+ pointer-events: none;
40
+ }
41
+ .dl-menu-item--destructive {
42
+ color: var(--destructive);
43
+ }
44
+ .dl-menu-item--destructive:focus {
45
+ background-color: color-mix(in oklch, var(--destructive) 12%, transparent);
46
+ }
47
+
48
+ .dl-menu-label {
49
+ padding: 0.375rem 0.5rem;
50
+ font-size: 0.75rem;
51
+ font-weight: 600;
52
+ color: var(--muted-foreground);
53
+ }
54
+ .dl-menu-separator {
55
+ margin: 0.25rem -0.25rem;
56
+ height: 1px;
57
+ background-color: var(--border);
58
+ }
59
+ .dl-menu-shortcut {
60
+ margin-left: auto;
61
+ font-size: 0.75rem;
62
+ letter-spacing: 0.05em;
63
+ opacity: 0.6;
64
+ }
65
+ .dl-menu-sub-trigger[data-state="open"] {
66
+ background-color: var(--accent);
67
+ color: var(--accent-foreground);
68
+ }
69
+ .dl-menu-checkbox-item,
70
+ .dl-menu-radio-item {
71
+ padding-left: 2rem;
72
+ }
73
+ .dl-menu-checkbox-item__indicator,
74
+ .dl-menu-radio-item__indicator {
75
+ position: absolute;
76
+ left: 0.5rem;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ width: 0.875rem;
81
+ height: 0.875rem;
82
+ }
@@ -0,0 +1,17 @@
1
+ .dl-form-item {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+ }
6
+ .dl-form-label--error {
7
+ color: var(--destructive);
8
+ }
9
+ .dl-form-desc {
10
+ font-size: 0.8rem;
11
+ color: var(--muted-foreground);
12
+ }
13
+ .dl-form-error {
14
+ font-size: 0.8rem;
15
+ font-weight: 500;
16
+ color: var(--destructive);
17
+ }
@@ -0,0 +1,23 @@
1
+ .dl-hover-card {
2
+ z-index: 50;
3
+ width: 16rem;
4
+ border-radius: var(--radius-md, 0.375rem);
5
+ border: 1px solid var(--border);
6
+ background-color: var(--popover);
7
+ color: var(--popover-foreground);
8
+ padding: 1rem;
9
+ box-shadow: 0 4px 20px rgb(0 0 0 / 0.12);
10
+ outline: none;
11
+ }
12
+
13
+ .dl-hover-card[data-state="open"] {
14
+ animation:
15
+ dl-fade-in 150ms ease,
16
+ dl-zoom-in 150ms ease;
17
+ }
18
+
19
+ .dl-hover-card[data-state="closed"] {
20
+ animation:
21
+ dl-fade-out 150ms ease,
22
+ dl-zoom-out 150ms ease;
23
+ }
@@ -0,0 +1,89 @@
1
+ .dl-input-wrapper {
2
+ position: relative;
3
+ display: inline-flex;
4
+ align-items: center;
5
+ width: 100%;
6
+ }
7
+
8
+ .dl-input-icon {
9
+ position: absolute;
10
+ top: 50%;
11
+ transform: translateY(-50%);
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ color: var(--muted-foreground);
16
+ pointer-events: none;
17
+ }
18
+
19
+ .dl-input-icon svg {
20
+ width: 1rem;
21
+ height: 1rem;
22
+ }
23
+
24
+ .dl-input-icon--start {
25
+ left: 0.75rem;
26
+ }
27
+
28
+ .dl-input-icon--end {
29
+ right: 0.75rem;
30
+ }
31
+
32
+ .dl-input {
33
+ display: block;
34
+ width: 100%;
35
+ height: 2.25rem;
36
+ border-radius: var(--radius-md, 0.375rem);
37
+ border: 1px solid var(--input);
38
+ background-color: transparent;
39
+ padding-block: 0.25rem;
40
+ padding-inline: 0.75rem;
41
+ font-size: 0.875rem;
42
+ line-height: 1.25rem;
43
+ font-family: inherit;
44
+ color: var(--foreground);
45
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.05);
46
+ outline: none;
47
+ transition:
48
+ border-color 0.15s ease,
49
+ box-shadow 0.15s ease;
50
+ }
51
+
52
+ .dl-input--has-start-icon {
53
+ padding-inline-start: 2.25rem;
54
+ }
55
+
56
+ .dl-input--has-end-icon {
57
+ padding-inline-end: 2.25rem;
58
+ }
59
+
60
+ .dl-input::placeholder {
61
+ color: var(--muted-foreground);
62
+ }
63
+
64
+ .dl-input:focus,
65
+ .dl-input:focus-visible {
66
+ outline: none;
67
+ border-color: var(--ring);
68
+ box-shadow: 0 0 0 2px color-mix(in oklch, var(--ring) 25%, transparent);
69
+ }
70
+
71
+ .dl-input:disabled {
72
+ cursor: not-allowed;
73
+ opacity: 0.5;
74
+ }
75
+
76
+ .dl-input::file-selector-button {
77
+ border: 0;
78
+ background: transparent;
79
+ font-size: 0.875rem;
80
+ font-weight: 500;
81
+ color: var(--foreground);
82
+ cursor: pointer;
83
+ margin-inline-end: 0.75rem;
84
+ }
85
+
86
+ .dl-input[type="search"]::-webkit-search-cancel-button,
87
+ .dl-input[type="search"]::-webkit-search-decoration {
88
+ -webkit-appearance: none;
89
+ }
@@ -0,0 +1,30 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as InputStories from "./input.stories";
3
+
4
+ <Meta of={InputStories} />
5
+
6
+ <Title />
7
+
8
+ # Input
9
+
10
+ Form text input supporting start and end icons, password masking toggles, error borders, and customizable focus rings.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={InputStories.Default} />
15
+
16
+ ## With Start Icon
17
+
18
+ <Canvas of={InputStories.WithStartIcon} />
19
+
20
+ ## With End Icon
21
+
22
+ <Canvas of={InputStories.WithEndIcon} />
23
+
24
+ ## Disabled State
25
+
26
+ <Canvas of={InputStories.Disabled} />
27
+
28
+ ## Component Properties
29
+
30
+ <Controls />
@@ -0,0 +1,70 @@
1
+ .dl-input-otp-container {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 0.5rem;
5
+ }
6
+
7
+ .dl-input-otp-container:has(:disabled) {
8
+ opacity: 0.5;
9
+ }
10
+
11
+ .dl-input-otp {
12
+ cursor: default;
13
+ }
14
+
15
+ .dl-input-otp:disabled {
16
+ cursor: not-allowed;
17
+ }
18
+
19
+ .dl-input-otp-group {
20
+ display: flex;
21
+ align-items: center;
22
+ }
23
+
24
+ .dl-input-otp-slot {
25
+ position: relative;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ width: 2.25rem;
30
+ height: 2.25rem;
31
+ border-top: 1px solid var(--input);
32
+ border-bottom: 1px solid var(--input);
33
+ border-right: 1px solid var(--input);
34
+ font-size: 0.875rem;
35
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.05);
36
+ transition: all 0.15s ease;
37
+ }
38
+
39
+ .dl-input-otp-slot:first-child {
40
+ border-top-left-radius: var(--radius-md, 0.375rem);
41
+ border-bottom-left-radius: var(--radius-md, 0.375rem);
42
+ border-left: 1px solid var(--input);
43
+ }
44
+
45
+ .dl-input-otp-slot:last-child {
46
+ border-top-right-radius: var(--radius-md, 0.375rem);
47
+ border-bottom-right-radius: var(--radius-md, 0.375rem);
48
+ }
49
+
50
+ .dl-input-otp-slot--active {
51
+ z-index: 10;
52
+ outline: 2px solid var(--ring);
53
+ outline-offset: -1px;
54
+ }
55
+
56
+ .dl-input-otp-caret {
57
+ position: absolute;
58
+ inset: 0;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ pointer-events: none;
63
+ }
64
+
65
+ .dl-input-otp-caret__line {
66
+ height: 1rem;
67
+ width: 1px;
68
+ background-color: var(--foreground);
69
+ animation: dl-pulse 1s infinite;
70
+ }
@@ -0,0 +1,9 @@
1
+ .dl-label {
2
+ font-size: 0.875rem;
3
+ font-weight: 500;
4
+ line-height: 1;
5
+ color: var(--foreground);
6
+ }
7
+ .dl-label--error {
8
+ color: var(--destructive);
9
+ }
@@ -0,0 +1,26 @@
1
+ .dl-loading {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ gap: 0.5rem;
7
+ padding: 2rem;
8
+ color: var(--muted-foreground);
9
+ font-size: 0.875rem;
10
+ }
11
+ .dl-loading svg {
12
+ animation: dl-spin 1s linear infinite;
13
+ }
14
+
15
+ .dl-loading-skeleton {
16
+ width: 100%;
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 1rem;
20
+ padding: 0.5rem;
21
+ }
22
+ .dl-loading-skeleton__list {
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: 0.5rem;
26
+ }
@@ -0,0 +1,36 @@
1
+ .dl-menubar {
2
+ display: flex;
3
+ height: 2.25rem;
4
+ align-items: center;
5
+ gap: 0.25rem;
6
+ border-radius: var(--radius-md, 0.375rem);
7
+ border: 1px solid var(--border);
8
+ background-color: var(--background);
9
+ padding: 0.25rem;
10
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.05);
11
+ }
12
+
13
+ .dl-menubar-trigger {
14
+ display: flex;
15
+ cursor: pointer;
16
+ user-select: none;
17
+ align-items: center;
18
+ border-radius: var(--radius-sm, 0.25rem);
19
+ padding: 0.25rem 0.75rem;
20
+ font-size: 0.875rem;
21
+ font-weight: 500;
22
+ outline: none;
23
+ background: transparent;
24
+ border: none;
25
+ color: inherit;
26
+ font-family: inherit;
27
+ transition:
28
+ background-color 0.15s ease,
29
+ color 0.15s ease;
30
+ }
31
+
32
+ .dl-menubar-trigger:focus,
33
+ .dl-menubar-trigger[data-state="open"] {
34
+ background-color: var(--accent);
35
+ color: var(--accent-foreground);
36
+ }
@@ -0,0 +1,137 @@
1
+ .dl-navigation-menu {
2
+ position: relative;
3
+ z-index: 10;
4
+ display: flex;
5
+ max-width: max-content;
6
+ flex: 1;
7
+ align-items: center;
8
+ justify-content: center;
9
+ }
10
+
11
+ .dl-navigation-menu-list {
12
+ display: flex;
13
+ flex: 1;
14
+ list-style: none;
15
+ align-items: center;
16
+ justify-content: center;
17
+ gap: 0.25rem;
18
+ margin: 0;
19
+ padding: 0;
20
+ }
21
+
22
+ .dl-navigation-menu-trigger {
23
+ display: inline-flex;
24
+ height: 2.25rem;
25
+ width: max-content;
26
+ align-items: center;
27
+ justify-content: center;
28
+ border-radius: var(--radius-md, 0.375rem);
29
+ background-color: var(--background);
30
+ padding: 0.5rem 1rem;
31
+ font-size: 0.875rem;
32
+ font-weight: 500;
33
+ cursor: pointer;
34
+ border: none;
35
+ color: inherit;
36
+ font-family: inherit;
37
+ transition:
38
+ background-color 0.15s ease,
39
+ color 0.15s ease;
40
+ outline: none;
41
+ }
42
+
43
+ .dl-navigation-menu-trigger:hover,
44
+ .dl-navigation-menu-trigger:focus,
45
+ .dl-navigation-menu-trigger[data-state="open"] {
46
+ background-color: var(--accent);
47
+ color: var(--accent-foreground);
48
+ }
49
+
50
+ .dl-navigation-menu-trigger:disabled {
51
+ pointer-events: none;
52
+ opacity: 0.5;
53
+ cursor: not-allowed;
54
+ }
55
+
56
+ .dl-navigation-menu-chevron {
57
+ position: relative;
58
+ top: 1px;
59
+ margin-left: 0.25rem;
60
+ width: 0.75rem;
61
+ height: 0.75rem;
62
+ transition: transform 0.2s ease;
63
+ }
64
+
65
+ .dl-navigation-menu-trigger[data-state="open"] .dl-navigation-menu-chevron {
66
+ transform: rotate(180deg);
67
+ }
68
+
69
+ .dl-navigation-menu-content {
70
+ left: 0;
71
+ top: 0;
72
+ width: 100%;
73
+ }
74
+
75
+ @media (min-width: 768px) {
76
+ .dl-navigation-menu-content {
77
+ position: absolute;
78
+ width: auto;
79
+ }
80
+ }
81
+
82
+ .dl-navigation-menu-viewport-wrapper {
83
+ position: absolute;
84
+ left: 0;
85
+ top: 100%;
86
+ display: flex;
87
+ justify-content: center;
88
+ }
89
+
90
+ .dl-navigation-menu-viewport {
91
+ position: relative;
92
+ margin-top: 0.375rem;
93
+ height: var(--radix-navigation-menu-viewport-height);
94
+ width: 100%;
95
+ overflow: hidden;
96
+ border-radius: var(--radius-md, 0.375rem);
97
+ border: 1px solid var(--border);
98
+ background-color: var(--popover);
99
+ color: var(--popover-foreground);
100
+ box-shadow: 0 4px 20px rgb(0 0 0 / 0.12);
101
+ transform-origin: top center;
102
+ }
103
+
104
+ @media (min-width: 768px) {
105
+ .dl-navigation-menu-viewport {
106
+ width: var(--radix-navigation-menu-viewport-width);
107
+ }
108
+ }
109
+
110
+ .dl-navigation-menu-viewport[data-state="open"] {
111
+ animation: dl-zoom-in 150ms ease;
112
+ }
113
+
114
+ .dl-navigation-menu-viewport[data-state="closed"] {
115
+ animation: dl-zoom-out 150ms ease;
116
+ }
117
+
118
+ .dl-navigation-menu-indicator {
119
+ top: 100%;
120
+ z-index: 1;
121
+ display: flex;
122
+ height: 0.375rem;
123
+ align-items: flex-end;
124
+ justify-content: center;
125
+ overflow: hidden;
126
+ }
127
+
128
+ .dl-navigation-menu-indicator__arrow {
129
+ position: relative;
130
+ top: 60%;
131
+ width: 0.5rem;
132
+ height: 0.5rem;
133
+ transform: rotate(45deg);
134
+ border-top-left-radius: 0.125rem;
135
+ background-color: var(--border);
136
+ box-shadow: 0 2px 4px rgb(0 0 0 / 0.1);
137
+ }
@@ -0,0 +1,43 @@
1
+ .dl-pagination {
2
+ margin-inline: auto;
3
+ display: flex;
4
+ width: 100%;
5
+ justify-content: center;
6
+ }
7
+
8
+ .dl-pagination-content {
9
+ display: flex;
10
+ flex-direction: row;
11
+ align-items: center;
12
+ gap: 0.25rem;
13
+ list-style: none;
14
+ margin: 0;
15
+ padding: 0;
16
+ }
17
+
18
+ .dl-pagination-item {
19
+ display: inline-flex;
20
+ }
21
+
22
+ .dl-pagination-prev {
23
+ gap: 0.25rem;
24
+ padding-inline-start: 0.625rem;
25
+ }
26
+
27
+ .dl-pagination-next {
28
+ gap: 0.25rem;
29
+ padding-inline-end: 0.625rem;
30
+ }
31
+
32
+ .dl-pagination-ellipsis {
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ width: 2.25rem;
37
+ height: 2.25rem;
38
+ }
39
+
40
+ .dl-pagination-ellipsis svg {
41
+ width: 1rem;
42
+ height: 1rem;
43
+ }
@@ -0,0 +1,24 @@
1
+ .dl-panel {
2
+ border-radius: var(--radius-lg, 0.5rem);
3
+ border: 1px solid var(--border);
4
+ background-color: var(--card);
5
+ padding: 1rem;
6
+ }
7
+ .dl-panel__header {
8
+ margin-bottom: 0.75rem;
9
+ display: flex;
10
+ align-items: center;
11
+ gap: 0.5rem;
12
+ }
13
+ .dl-panel__title {
14
+ font-family: inherit;
15
+ font-size: 0.875rem;
16
+ font-weight: 600;
17
+ margin: 0;
18
+ }
19
+ .dl-panel__meta {
20
+ margin-left: auto;
21
+ font-family: monospace;
22
+ font-size: 0.625rem;
23
+ color: var(--muted-foreground);
24
+ }
@@ -0,0 +1,17 @@
1
+ .dl-popover {
2
+ z-index: 50;
3
+ width: 18rem;
4
+ border-radius: var(--radius-lg, 0.5rem);
5
+ border: 1px solid var(--border);
6
+ background-color: var(--popover);
7
+ color: var(--popover-foreground);
8
+ padding: 1rem;
9
+ box-shadow: 0 4px 24px rgb(0 0 0/0.12);
10
+ outline: none;
11
+ }
12
+ .dl-popover[data-state="open"] {
13
+ animation: dl-fade-in 150ms ease;
14
+ }
15
+ .dl-popover[data-state="closed"] {
16
+ animation: dl-fade-out 150ms ease;
17
+ }
@@ -0,0 +1,15 @@
1
+ .dl-progress {
2
+ position: relative;
3
+ height: 0.5rem;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ border-radius: 9999px;
7
+ background-color: var(--secondary);
8
+ }
9
+ .dl-progress__indicator {
10
+ height: 100%;
11
+ width: 100%;
12
+ background-color: var(--primary);
13
+ transition: transform 0.3s ease;
14
+ transform-origin: left;
15
+ }
@@ -0,0 +1,18 @@
1
+ import { Meta, Title, Description, Canvas, Controls } from "@storybook/blocks";
2
+ import * as ProgressStories from "./progress.stories";
3
+
4
+ <Meta of={ProgressStories} />
5
+
6
+ <Title />
7
+
8
+ # Progress
9
+
10
+ Visual progress indicator displaying task completion, data loading, or quota utilization.
11
+
12
+ ## Default
13
+
14
+ <Canvas of={ProgressStories.Default} />
15
+
16
+ ## Component Properties
17
+
18
+ <Controls />
@@ -0,0 +1,37 @@
1
+ .dl-radio-group {
2
+ display: grid;
3
+ gap: 0.5rem;
4
+ }
5
+ .dl-radio-item {
6
+ aspect-ratio: 1;
7
+ height: 1rem;
8
+ width: 1rem;
9
+ border-radius: 9999px;
10
+ border: 1px solid var(--primary);
11
+ box-shadow: 0 1px 2px rgb(0 0 0/0.05);
12
+ cursor: pointer;
13
+ background: transparent;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ padding: 0;
18
+ }
19
+ .dl-radio-item:focus-visible {
20
+ outline: 2px solid var(--ring);
21
+ outline-offset: 2px;
22
+ }
23
+ .dl-radio-item:disabled {
24
+ cursor: not-allowed;
25
+ opacity: 0.5;
26
+ }
27
+ .dl-radio-item__indicator {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ }
32
+ .dl-radio-item__indicator svg {
33
+ fill: var(--primary);
34
+ color: var(--primary);
35
+ width: 0.5625rem;
36
+ height: 0.5625rem;
37
+ }