draft-components 1.2.2 → 1.4.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 (74) hide show
  1. package/cjs/components/button/button.cjs +5 -5
  2. package/cjs/components/button/icon-button.cjs +1 -1
  3. package/cjs/components/dialog/dialog-body.cjs +1 -41
  4. package/cjs/components/dialog/dialog-footer.cjs +5 -2
  5. package/cjs/components/dialog/dialog-header.cjs +5 -2
  6. package/cjs/components/menu/menu-item.cjs +5 -5
  7. package/cjs/components/select/select.cjs +24 -12
  8. package/css/draft-components-utilities.css +7 -7
  9. package/css/draft-components.css +251 -144
  10. package/css/draft-components.dark.css +73 -73
  11. package/esm/components/button/button.js +5 -5
  12. package/esm/components/button/icon-button.js +1 -1
  13. package/esm/components/dialog/dialog-body.js +2 -42
  14. package/esm/components/dialog/dialog-footer.js +5 -2
  15. package/esm/components/dialog/dialog-header.js +5 -2
  16. package/esm/components/menu/menu-item.js +5 -5
  17. package/esm/components/select/select.js +25 -13
  18. package/package.json +35 -36
  19. package/types/components/avatar-group/avatar-group.d.ts +1 -1
  20. package/types/components/badge/badge.d.ts +1 -1
  21. package/types/components/breadcrumbs/breadcrumbs-context.d.ts +1 -1
  22. package/types/components/breadcrumbs/breadcrumbs-item.d.ts +1 -1
  23. package/types/components/breadcrumbs/breadcrumbs.d.ts +1 -1
  24. package/types/components/button/button.d.ts +2 -2
  25. package/types/components/button/icon-button.d.ts +1 -1
  26. package/types/components/button-group/button-group.d.ts +1 -1
  27. package/types/components/caption/icons.d.ts +4 -4
  28. package/types/components/color-picker/color-picker-button.d.ts +1 -1
  29. package/types/components/color-picker/color-picker.d.ts +1 -1
  30. package/types/components/date-picker/calendar-day.d.ts +1 -1
  31. package/types/components/date-picker/calendar-grid-head.d.ts +1 -2
  32. package/types/components/date-picker/calendar-grid.d.ts +1 -2
  33. package/types/components/date-picker/calendar-header.d.ts +1 -2
  34. package/types/components/date-picker/calendar.d.ts +1 -2
  35. package/types/components/date-picker/date-picker.d.ts +1 -1
  36. package/types/components/date-picker/date-range-picker.d.ts +1 -1
  37. package/types/components/date-picker/icons.d.ts +2 -2
  38. package/types/components/date-picker-popover/date-picker-popover.d.ts +1 -1
  39. package/types/components/date-range-picker-popover/date-range-picker-popover-footer.d.ts +1 -1
  40. package/types/components/date-range-picker-popover/date-range-picker-popover-presets.d.ts +1 -2
  41. package/types/components/date-range-picker-popover/date-range-picker-popover.d.ts +1 -1
  42. package/types/components/dialog/dialog-body.d.ts +2 -5
  43. package/types/components/dialog/dialog-context.d.ts +1 -1
  44. package/types/components/dialog/dialog-footer.d.ts +4 -2
  45. package/types/components/dialog/dialog-header.d.ts +2 -1
  46. package/types/components/dialog/dialog.d.ts +1 -1
  47. package/types/components/dialog/x-mark-icon.d.ts +1 -1
  48. package/types/components/empty-state/empty-state.d.ts +1 -1
  49. package/types/components/filter-buttons/filter-buttons.d.ts +1 -1
  50. package/types/components/form-field/form-field.d.ts +1 -1
  51. package/types/components/menu/menu-item.d.ts +2 -2
  52. package/types/components/menu/menu-separator.d.ts +1 -1
  53. package/types/components/menu/menu.d.ts +1 -1
  54. package/types/components/nav-list/nav-list-item.d.ts +1 -1
  55. package/types/components/nav-list/nav-list-title.d.ts +1 -1
  56. package/types/components/nav-list/nav-list.d.ts +1 -1
  57. package/types/components/password-input/icons.d.ts +2 -2
  58. package/types/components/portal/portal-context.d.ts +1 -1
  59. package/types/components/positioner/positioner.d.ts +1 -1
  60. package/types/components/segmented-control/segmented-control-button.d.ts +1 -1
  61. package/types/components/segmented-control/segmented-control.d.ts +1 -1
  62. package/types/components/select/select.d.ts +3 -0
  63. package/types/components/selection-control/selection-control.d.ts +1 -1
  64. package/types/components/slider/slider-tick-marks.d.ts +1 -1
  65. package/types/components/table/icons.d.ts +3 -3
  66. package/types/components/tabs/tab-list.d.ts +1 -1
  67. package/types/components/tabs/tab-panel.d.ts +1 -1
  68. package/types/components/tabs/tab.d.ts +1 -1
  69. package/types/components/tabs/tabs-context.d.ts +1 -1
  70. package/types/components/tabs/tabs.d.ts +1 -1
  71. package/types/components/toast/toast.d.ts +1 -1
  72. package/types/components/toast/x-mark-icon.d.ts +1 -1
  73. package/types/components/toaster/toaster.d.ts +1 -1
  74. package/types/components/tooltip/tooltip.d.ts +1 -1
@@ -1,14 +1,14 @@
1
1
  .dark {
2
2
  /* Background */
3
3
  --dc-primary-bg: var(--dc-gray-900);
4
- --dc-bg-transparent-1: rgba(249, 250, 251, 0.1); /* gray-50 */
5
- --dc-bg-transparent-2: rgba(249, 250, 251, 0.15); /* gray-50 */
6
- --dc-bg-transparent-3: rgba(249, 250, 251, 0.25); /* gray-50 */
4
+ --dc-bg-transparent-1: rgb(var(--dc-gray-50-rgb) / 0.1);
5
+ --dc-bg-transparent-2: rgb(var(--dc-gray-50-rgb) / 0.15);
6
+ --dc-bg-transparent-3: rgb(var(--dc-gray-50-rgb) / 0.25);
7
7
 
8
8
  /* Borders */
9
- --dc-border-color-transparent-1: rgba(249, 250, 251, 0.1); /* gray-50 */
10
- --dc-border-color-transparent-2: rgba(249, 250, 251, 0.2); /* gray-50 */
11
- --dc-border-color-transparent-3: rgba(249, 250, 251, 0.3); /* gray-50 */
9
+ --dc-border-color-transparent-1: rgb(var(--dc-gray-50-rgb) / 0.1);
10
+ --dc-border-color-transparent-2: rgb(var(--dc-gray-50-rgb) / 0.2);
11
+ --dc-border-color-transparent-3: rgb(var(--dc-gray-50-rgb) / 0.3);
12
12
 
13
13
  /* Text */
14
14
  --dc-primary-text-color: var(--dc-gray-100);
@@ -18,11 +18,11 @@
18
18
  /* Primary */
19
19
  --dc-primary-color: var(--dc-blue-600);
20
20
  --dc-primary-color-hover: var(--dc-blue-500);
21
- --dc-on-primary-color: #fff;
21
+ --dc-on-primary-color: var(--dc-white);
22
22
 
23
23
  /* Secondary */
24
- --dc-secondary-color: rgba(96, 165, 250, 0.15); /* blue-400 */
25
- --dc-secondary-color-hover: rgba(96, 165, 250, 0.3); /* blue-400 */
24
+ --dc-secondary-color: rgb(var(--dc-blue-400-rgb) / 0.15);
25
+ --dc-secondary-color-hover: rgb(var(--dc-blue-400-rgb) / 0.3);
26
26
  --dc-on-secondary-color: var(--dc-blue-400);
27
27
 
28
28
  /* Accents */
@@ -33,60 +33,60 @@
33
33
 
34
34
  /* Default button */
35
35
  --dc-button-default-text-color: var(--dc-gray-100);
36
- --dc-button-default-border-color: rgba(249, 250, 251, 0.1); /* gray-50 */
36
+ --dc-button-default-border-color: rgb(var(--dc-gray-50-rgb) / 0.1);
37
37
  --dc-button-default-bg: var(--dc-gray-700);
38
38
  --dc-button-default-bg-hover: var(--dc-gray-600);
39
39
  --dc-button-default-tinted-text-color: var(--dc-gray-100);
40
- --dc-button-default-tinted-bg: rgba(249, 250, 251, 0.1); /* gray-50 */
41
- --dc-button-default-tinted-bg-hover: rgba(249, 250, 251, 0.2); /* gray-50 */
40
+ --dc-button-default-tinted-bg: rgb(var(--dc-gray-50-rgb) / 0.1);
41
+ --dc-button-default-tinted-bg-hover: rgb(var(--dc-gray-50-rgb) / 0.2);
42
42
  --dc-button-default-plain-text-color: var(--dc-gray-100);
43
- --dc-button-default-plain-bg-hover: rgba(249, 250, 251, 0.1); /* gray-50 */
43
+ --dc-button-default-plain-bg-hover: rgb(var(--dc-gray-50-rgb) / 0.1);
44
44
 
45
45
  /* Primary button */
46
- --dc-button-primary-text-color: #fff;
46
+ --dc-button-primary-text-color: var(--dc-white);
47
47
  --dc-button-primary-border-color: transparent;
48
48
  --dc-button-primary-bg: var(--dc-blue-600);
49
49
  --dc-button-primary-bg-hover: var(--dc-blue-500);
50
50
  --dc-button-primary-tinted-text-color: var(--dc-blue-400);
51
- --dc-button-primary-tinted-bg: rgba(96, 165, 250, 0.15); /* blue-400 */
52
- --dc-button-primary-tinted-bg-hover: rgba(96, 165, 250, 0.3); /* blue-400 */
51
+ --dc-button-primary-tinted-bg: rgb(var(--dc-blue-400-rgb) / 0.15);
52
+ --dc-button-primary-tinted-bg-hover: rgb(var(--dc-blue-400-rgb) / 0.3);
53
53
  --dc-button-primary-plain-text-color: var(--dc-blue-400);
54
- --dc-button-primary-plain-bg-hover: rgba(96, 165, 250, 0.15); /* blue-400 */
54
+ --dc-button-primary-plain-bg-hover: rgb(var(--dc-blue-400-rgb) / 0.15);
55
55
 
56
56
  /* Danger button */
57
- --dc-button-danger-text-color: #fff;
57
+ --dc-button-danger-text-color: var(--dc-white);
58
58
  --dc-button-danger-border-color: transparent;
59
59
  --dc-button-danger-bg: var(--dc-red-600);
60
60
  --dc-button-danger-bg-hover: var(--dc-red-500);
61
61
  --dc-button-danger-tinted-text-color: var(--dc-red-400);
62
- --dc-button-danger-tinted-bg: rgba(248, 113, 113, 0.15); /* red-400 */
63
- --dc-button-danger-tinted-bg-hover: rgba(248, 113, 113, 0.3); /* red-400 */
62
+ --dc-button-danger-tinted-bg: rgb(var(--dc-red-400-rgb) / 0.15);
63
+ --dc-button-danger-tinted-bg-hover: rgb(var(--dc-red-400-rgb) / 0.3);
64
64
  --dc-button-danger-plain-text-color: var(--dc-red-400);
65
- --dc-button-danger-plain-bg-hover: rgba(248, 113, 113, 0.15); /* red-400 */
65
+ --dc-button-danger-plain-bg-hover: rgb(var(--dc-red-400-rgb) / 0.15);
66
66
 
67
67
  /* Success button */
68
- --dc-button-success-text-color: #fff;
68
+ --dc-button-success-text-color: var(--dc-white);
69
69
  --dc-button-success-border-color: transparent;
70
70
  --dc-button-success-bg: var(--dc-green-600);
71
71
  --dc-button-success-bg-hover: var(--dc-green-500);
72
72
  --dc-button-success-tinted-text-color: var(--dc-green-400);
73
- --dc-button-success-tinted-bg: rgba(74, 222, 128, 0.15); /* green-400 */
74
- --dc-button-success-tinted-bg-hover: rgba(74, 222, 128, 0.3); /* green-400 */
73
+ --dc-button-success-tinted-bg: rgb(var(--dc-green-400-rgb) / 0.15);
74
+ --dc-button-success-tinted-bg-hover: rgb(var(--dc-green-400-rgb) / 0.3);
75
75
  --dc-button-success-plain-text-color: var(--dc-green-400);
76
- --dc-button-success-plain-bg-hover: rgba(74, 222, 128, 0.15); /* green-400 */
76
+ --dc-button-success-plain-bg-hover: rgb(var(--dc-green-400-rgb) / 0.15);
77
77
 
78
78
  /* Controls */
79
79
  --dc-control-primary-text-color: var(--dc-gray-100);
80
80
  --dc-control-secondary-text-color: var(--dc-gray-400);
81
81
  --dc-control-primary-color: var(--dc-blue-600);
82
82
  --dc-control-primary-color-hover: var(--dc-blue-500);
83
- --dc-control-on-primary-color: #fff;
84
- --dc-control-secondary-color: rgba(96, 165, 250, 0.15); /* blue-400 */
83
+ --dc-control-on-primary-color: var(--dc-white);
84
+ --dc-control-secondary-color: rgb(var(--dc-blue-400-rgb) / 0.15);
85
85
  --dc-control-border-color: var(--dc-gray-600);
86
- --dc-control-bg: rgba(249, 250, 251, 0.08); /* gray-50 */
87
- --dc-control-bg-inset: rgba(249, 250, 251, 0.25); /* gray-50 */
86
+ --dc-control-bg: rgb(var(--dc-gray-50-rgb) / 0.08);
87
+ --dc-control-bg-inset: rgb(var(--dc-gray-50-rgb) / 0.25);
88
88
  --dc-control-error-color: var(--dc-red-400);
89
- --dc-focus-ring-color: rgb(96, 165, 250, 0.7); /* blue-400 */
89
+ --dc-focus-ring-color: rgb(var(--dc-blue-400-rgb) / 0.7);
90
90
  }
91
91
 
92
92
  /* Elements */
@@ -99,7 +99,7 @@
99
99
  .dark .dc-tag,
100
100
  .dark.dc-tag {
101
101
  --dc-tag-text-color: var(--dc-gray-50);
102
- --dc-tag-bg: rgba(156, 163, 175, 0.4); /* gray-400 */
102
+ --dc-tag-bg: rgb(var(--dc-gray-400-rgb) / 0.4);
103
103
 
104
104
  color-scheme: dark;
105
105
  }
@@ -107,117 +107,117 @@
107
107
  .dark .dc-tag_plain,
108
108
  .dark.dc-tag_plain {
109
109
  --dc-tag-text-color: var(--dc-gray-300);
110
- --dc-tag-border-color: rgba(229, 231, 235, 0.2); /* gray-200 */
111
- --dc-tag-bg: rgba(156, 163, 175, 0.1); /* gray-400 */
110
+ --dc-tag-border-color: rgb(var(--dc-gray-200-rgb) / 0.2);
111
+ --dc-tag-bg: rgb(var(--dc-gray-400-rgb) / 0.1);
112
112
  }
113
113
 
114
114
  .dark .dc-tag_green,
115
115
  .dark.dc-tag_green {
116
116
  --dc-tag-text-color: var(--dc-green-50);
117
- --dc-tag-bg: rgba(74, 222, 128, 0.5); /* green-400 */
117
+ --dc-tag-bg: rgb(var(--dc-green-400-rgb) / 0.5);
118
118
  }
119
119
 
120
120
  .dark .dc-tag_green.dc-tag_plain,
121
121
  .dark.dc-tag_green.dc-tag_plain {
122
122
  --dc-tag-text-color: var(--dc-green-400);
123
- --dc-tag-border-color: rgba(187, 247, 208, 0.2); /* green-200 */
124
- --dc-tag-bg: rgba(74, 222, 128, 0.1); /* green-400 */
123
+ --dc-tag-border-color: rgb(var(--dc-green-200-rgb) / 0.2);
124
+ --dc-tag-bg: rgb(var(--dc-green-400-rgb) / 0.1);
125
125
  }
126
126
 
127
127
  .dark .dc-tag_cyan,
128
128
  .dark.dc-tag_cyan {
129
129
  --dc-tag-text-color: var(--dc-sky-50);
130
- --dc-tag-bg: rgba(56, 189, 248, 0.5); /* sky-400 */
130
+ --dc-tag-bg: rgb(var(--dc-sky-400-rgb) / 0.5);
131
131
  }
132
132
 
133
133
  .dark .dc-tag_cyan.dc-tag_plain,
134
134
  .dark.dc-tag_cyan.dc-tag_plain {
135
135
  --dc-tag-text-color: var(--dc-sky-400);
136
- --dc-tag-border-color: rgba(165, 243, 252, 0.2); /* sky-700 */
137
- --dc-tag-bg: rgba(56, 189, 248, 0.1); /* sky-400 */
136
+ --dc-tag-border-color: rgb(var(--dc-sky-200-rgb) / 0.2);
137
+ --dc-tag-bg: rgb(var(--dc-sky-400-rgb) / 0.1);
138
138
  }
139
139
 
140
140
  .dark .dc-tag_blue,
141
141
  .dark.dc-tag_blue {
142
142
  --dc-tag-text-color: var(--dc-blue-50);
143
- --dc-tag-bg: rgba(96, 165, 250, 0.5); /* blue-400 */
143
+ --dc-tag-bg: rgb(var(--dc-blue-400-rgb) / 0.5);
144
144
  }
145
145
 
146
146
  .dark .dc-tag_blue.dc-tag_plain,
147
147
  .dark.dc-tag_blue.dc-tag_plain {
148
148
  --dc-tag-text-color: var(--dc-blue-400);
149
- --dc-tag-border-color: rgba(191, 219, 254, 0.2); /* blue-200 */
150
- --dc-tag-bg: rgba(96, 165, 250, 0.1); /* blue-400 */
149
+ --dc-tag-border-color: rgb(var(--dc-blue-200-rgb) / 0.2);
150
+ --dc-tag-bg: rgb(var(--dc-blue-400-rgb) / 0.1);
151
151
  }
152
152
 
153
153
  .dark .dc-tag_purple,
154
154
  .dark.dc-tag_purple {
155
155
  --dc-tag-text-color: var(--dc-violet-50);
156
- --dc-tag-bg: rgba(167, 139, 250, 0.5); /* violet-400 */
156
+ --dc-tag-bg: rgb(var(--dc-violet-400-rgb) / 0.5);
157
157
  }
158
158
 
159
159
  .dark .dc-tag_purple.dc-tag_plain,
160
160
  .dark.dc-tag_purple.dc-tag_plain {
161
161
  --dc-tag-text-color: var(--dc-violet-400);
162
- --dc-tag-border-color: rgba(221, 214, 254, 0.2); /* violet-200 */
163
- --dc-tag-bg: rgba(167, 139, 250, 0.1); /* violet-400 */
162
+ --dc-tag-border-color: rgb(var(--dc-violet-200-rgb) / 0.2);
163
+ --dc-tag-bg: rgb(var(--dc-violet-400-rgb) / 0.1);
164
164
  }
165
165
 
166
166
  .dark.dc-tag_pink,
167
167
  .dark .dc-tag_pink {
168
168
  --dc-tag-text-color: var(--dc-pink-50);
169
- --dc-tag-bg: rgba(244, 114, 182, 0.5); /* pink-400 */
169
+ --dc-tag-bg: rgb(var(--dc-pink-400-rgb) / 0.5);
170
170
  }
171
171
 
172
172
  .dark .dc-tag_pink.dc-tag_plain,
173
173
  .dark.dc-tag_pink.dc-tag_plain {
174
174
  --dc-tag-text-color: var(--dc-pink-400);
175
- --dc-tag-border-color: rgba(251, 207, 232, 0.2); /* pink-200 */
176
- --dc-tag-bg: rgba(244, 114, 182, 0.1); /* pink-400 */
175
+ --dc-tag-border-color: rgb(var(--dc-pink-200-rgb) / 0.2);
176
+ --dc-tag-bg: rgb(var(--dc-pink-400-rgb) / 0.1);
177
177
  }
178
178
 
179
179
  .dark .dc-tag_red,
180
180
  .dark.dc-tag_red {
181
181
  --dc-tag-text-color: var(--dc-red-50);
182
- --dc-tag-bg: rgba(248, 113, 113, 0.5); /* red-400 */
182
+ --dc-tag-bg: rgb(var(--dc-red-400-rgb) / 0.5);
183
183
  }
184
184
 
185
185
  .dark .dc-tag_red.dc-tag_plain,
186
186
  .dark.dc-tag_red.dc-tag_plain {
187
187
  --dc-tag-text-color: var(--dc-red-400);
188
- --dc-tag-border-color: rgba(254, 202, 202, 0.2); /* red-200 */
189
- --dc-tag-bg: rgba(248, 113, 113, 0.1); /* red-400 */
188
+ --dc-tag-border-color: rgb(var(--dc-red-200-rgb) / 0.2);
189
+ --dc-tag-bg: rgb(var(--dc-red-400-rgb) / 0.1);
190
190
  }
191
191
 
192
192
  .dark .dc-tag_orange,
193
193
  .dark.dc-tag_orange {
194
194
  --dc-tag-text-color: var(--dc-orange-50);
195
- --dc-tag-bg: rgba(251, 146, 60, 0.5); /* orange-400 */
195
+ --dc-tag-bg: rgb(var(--dc-orange-400-rgb) / 0.5);
196
196
  }
197
197
 
198
198
  .dark .dc-tag_orange.dc-tag_plain,
199
199
  .dark.dc-tag_orange.dc-tag_plain {
200
200
  --dc-tag-text-color: var(--dc-orange-500);
201
- --dc-tag-border-color: rgba(254, 215, 170, 0.2); /* orange-200 */
202
- --dc-tag-bg: rgba(251, 146, 60, 0.1); /* orange-400 */
201
+ --dc-tag-border-color: rgb(var(--dc-orange-200-rgb) / 0.2);
202
+ --dc-tag-bg: rgb(var(--dc-orange-400-rgb) / 0.1);
203
203
  }
204
204
 
205
205
  .dark .dc-tag_yellow,
206
206
  .dark.dc-tag_yellow {
207
207
  --dc-tag-text-color: var(--dc-yellow-50);
208
- --dc-tag-bg: rgba(250, 204, 21, 0.5); /* yellow-400 */
208
+ --dc-tag-bg: rgb(var(--dc-yellow-400-rgb) / 0.5);
209
209
  }
210
210
 
211
211
  .dark .dc-tag_yellow.dc-tag_plain,
212
212
  .dark.dc-tag_yellow.dc-tag_plain {
213
213
  --dc-tag-text-color: var(--dc-yellow-500);
214
- --dc-tag-border-color: rgba(254, 240, 138, 0.2); /* yellow-200 */
215
- --dc-tag-bg: rgba(250, 204, 21, 0.1); /* yellow-400 */
214
+ --dc-tag-border-color: rgb(var(--dc-yellow-200-rgb) / 0.2);
215
+ --dc-tag-bg: rgb(var(--dc-yellow-400-rgb) / 0.1);
216
216
  }
217
217
 
218
218
  .dark .dc-avatar,
219
219
  .dark.dc-avatar {
220
- --dc-avatar-inner-border-color: rgba(249, 250, 251, 0.15);
220
+ --dc-avatar-inner-border-color: rgb(var(--dc-gray-50-rgb) / 0.15);
221
221
 
222
222
  color-scheme: dark;
223
223
  }
@@ -327,7 +327,7 @@
327
327
 
328
328
  .dark .dc-color-picker,
329
329
  .dark.dc-color-picker {
330
- --dc-color-picker-btn-inner-border-color: rgba(255, 255, 255, 0.1);
330
+ --dc-color-picker-btn-inner-border-color: rgb(255 255 255 / 0.1);
331
331
 
332
332
  color-scheme: dark;
333
333
  }
@@ -347,8 +347,8 @@
347
347
  .dark.dc-alert {
348
348
  --dc-alert-text-color: var(--dc-gray-300);
349
349
  --dc-alert-icon-color: var(--dc-gray-300);
350
- --dc-alert-bg: rgba(229, 231, 235, 0.1); /* gray-200 */
351
- --dc-alert-border-color: rgba(156, 163, 175, 0.2); /* gray-400 */
350
+ --dc-alert-bg: rgb(var(--dc-gray-200-rgb) / 0.1);
351
+ --dc-alert-border-color: rgb(var(--dc-gray-400-rgb) / 0.2);
352
352
  --dc-alert-accent-border-color: var(--dc-gray-400);
353
353
 
354
354
  color-scheme: dark;
@@ -358,8 +358,8 @@
358
358
  .dark.dc-alert_appearance_warning {
359
359
  --dc-alert-text-color: var(--dc-orange-400);
360
360
  --dc-alert-icon-color: var(--dc-orange-400);
361
- --dc-alert-bg: rgba(254, 215, 170, 0.1); /* orange-200 */
362
- --dc-alert-border-color: rgba(251, 146, 60, 0.3); /* orange-400 */
361
+ --dc-alert-bg: rgb(var(--dc-orange-200-rgb) / 0.1);
362
+ --dc-alert-border-color: rgb(var(--dc-orange-400-rgb) / 0.3);
363
363
  --dc-alert-accent-border-color: var(--dc-orange-500);
364
364
  }
365
365
 
@@ -367,8 +367,8 @@
367
367
  .dark.dc-alert_appearance_error {
368
368
  --dc-alert-text-color: var(--dc-red-400);
369
369
  --dc-alert-icon-color: var(--dc-red-400);
370
- --dc-alert-bg: rgba(252, 165, 165, 0.1); /* red-300 */
371
- --dc-alert-border-color: rgba(248, 113, 113, 0.3); /* red-400 */
370
+ --dc-alert-bg: rgb(var(--dc-red-300-rgb) / 0.1);
371
+ --dc-alert-border-color: rgb(var(--dc-red-400-rgb) / 0.3);
372
372
  --dc-alert-accent-border-color: var(--dc-red-500);
373
373
  }
374
374
 
@@ -376,8 +376,8 @@
376
376
  .dark.dc-alert_appearance_info {
377
377
  --dc-alert-text-color: var(--dc-blue-300);
378
378
  --dc-alert-icon-color: var(--dc-blue-300);
379
- --dc-alert-bg: rgba(191, 219, 254, 0.1); /* blue-200 */
380
- --dc-alert-border-color: rgba(96, 165, 250, 0.3); /* blue-400 */
379
+ --dc-alert-bg: rgb(var(--dc-blue-200-rgb) / 0.1);
380
+ --dc-alert-border-color: rgb(var(--dc-blue-400-rgb) / 0.3);
381
381
  --dc-alert-accent-border-color: var(--dc-blue-400);
382
382
  }
383
383
 
@@ -385,8 +385,8 @@
385
385
  .dark.dc-alert_appearance_success {
386
386
  --dc-alert-text-color: var(--dc-green-400);
387
387
  --dc-alert-icon-color: var(--dc-green-400);
388
- --dc-alert-bg: rgba(187, 247, 208, 0.1); /* green-200 */
389
- --dc-alert-border-color: rgba(74, 222, 128, 0.3); /* green-400 */
388
+ --dc-alert-bg: rgb(var(--dc-green-200-rgb) / 0.1);
389
+ --dc-alert-border-color: rgb(var(--dc-green-400-rgb) / 0.3);
390
390
  --dc-alert-accent-border-color: var(--dc-green-500);
391
391
  }
392
392
 
@@ -399,8 +399,8 @@
399
399
  --dc-toast-close-btn-color: var(--dc-gray-800);
400
400
  --dc-toast-close-btn-bg: var(--dc-gray-100);
401
401
  --dc-toast-btn-text-color: var(--dc-gray-800);
402
- --dc-toast-btn-bg: rgba(17, 24, 39, 0.1); /* gray-900 */
403
- --dc-toast-btn-bg-hover: rgba(17, 24, 39, 0.2); /* gray-900 */
402
+ --dc-toast-btn-bg: rgb(var(--dc-gray-900-rgb) / 0.1);
403
+ --dc-toast-btn-bg-hover: rgb(var(--dc-gray-900-rgb) / 0.2);
404
404
  --dc-toast-btn-focus-ring-color: var(--dc-gray-700);
405
405
 
406
406
  color-scheme: dark;
@@ -409,7 +409,7 @@
409
409
  .dark .dc-toast .dc-toast__close-btn,
410
410
  .dark.dc-toast .dc-toast__close-btn {
411
411
  box-shadow:
412
- 0 0 0 1px rgba(0, 0, 0, 0.1),
412
+ 0 0 0 1px rgb(var(--dc-black-rgb) / 0.1),
413
413
  var(--dc-shadow-sm),
414
414
  var(--dc-shadow-md);
415
415
  }
@@ -443,7 +443,7 @@
443
443
 
444
444
  .dark .dc-breadcrumbs,
445
445
  .dark.dc-breadcrumbs {
446
- --dc-breadcrumbs-separator-color: rgb(156, 163, 175, 0.5); /* gray-400 */
446
+ --dc-breadcrumbs-separator-color: rgb(var(--dc-gray-400-rgb) / 0.5);
447
447
 
448
448
  color-scheme: dark;
449
449
  }
@@ -3,17 +3,17 @@ import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
4
  import { Spinner } from '../spinner/spinner.js';
5
5
 
6
- const Button = forwardRef(function Button({ isBlock = false, disabled = false, loading = false, type = 'button', size = 'sm', variant = 'filled', appearance = 'default', iconLeft = null, iconRight = null, caption = null, renderAs, className, children, ...props }, ref) {
6
+ const Button = forwardRef(function Button({ isBlock = false, disabled = false, loading = false, type = 'button', size = 'sm', variant = 'filled', appearance = 'default', leftIcon = null, rightIcon = null, caption = null, renderAs, className, children, ...props }, ref) {
7
7
  let addOnLeft = null;
8
8
  if (loading) {
9
9
  addOnLeft = (jsx("span", { "data-testid": "button-spinner", className: "dc-button__spinner", children: jsx(Spinner, { size: "1.15em" }) }));
10
10
  }
11
- else if (iconLeft) {
12
- addOnLeft = (jsx("span", { "data-testid": "button-icon", className: "dc-button__icon", children: iconLeft }));
11
+ else if (leftIcon) {
12
+ addOnLeft = (jsx("span", { "data-testid": "button-icon", className: "dc-button__icon", children: leftIcon }));
13
13
  }
14
14
  let addOnRight = null;
15
- if (iconRight) {
16
- addOnRight = (jsx("span", { "data-testid": "button-icon", className: "dc-button__icon", children: iconRight }));
15
+ if (rightIcon) {
16
+ addOnRight = (jsx("span", { "data-testid": "button-icon", className: "dc-button__icon", children: rightIcon }));
17
17
  }
18
18
  const shouldRenderLabel = Boolean(children);
19
19
  const shouldRenderCaption = Boolean(caption);
@@ -4,7 +4,7 @@ import { classNames } from '../../lib/react-helpers.js';
4
4
  import { Button } from './button.js';
5
5
 
6
6
  const IconButton = forwardRef(function IconButton({ className, icon, ...props }, ref) {
7
- return jsx(Button, { ...props, ref: ref, iconLeft: icon, className: classNames('dc-button_icon-only', className) });
7
+ return jsx(Button, { ...props, ref: ref, leftIcon: icon, className: classNames('dc-button_icon-only', className) });
8
8
  });
9
9
 
10
10
  export { IconButton };
@@ -1,49 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useRef, useEffect } from 'react';
3
- import { assertIfNullable } from '../../lib/helpers.js';
2
+ import { useRef } from 'react';
4
3
  import { classNames } from '../../lib/react-helpers.js';
5
4
 
6
- function DialogBody({ scrollShadowTop = false, scrollShadowBottom = false, className, children, }) {
5
+ function DialogBody({ className, children, }) {
7
6
  const ref = useRef(null);
8
- useEffect(() => {
9
- if (!scrollShadowTop && !scrollShadowBottom) {
10
- return;
11
- }
12
- const el = ref.current;
13
- assertIfNullable(el, 'DialogBody ref was not set');
14
- const topShadowClass = 'dc-dialog-body_scroll-shadow-top';
15
- const bottomShadowClass = 'dc-dialog-body_scroll-shadow-bottom';
16
- const changeShadowsVisibility = () => {
17
- const scrollTop = el.scrollTop;
18
- const scrollHeight = el.scrollHeight;
19
- const clientHeight = el.clientHeight;
20
- if (scrollShadowTop) {
21
- if (scrollTop > 0) {
22
- el.classList.add(topShadowClass);
23
- }
24
- else {
25
- el.classList.remove(topShadowClass);
26
- }
27
- }
28
- if (scrollShadowBottom) {
29
- if (scrollTop + clientHeight < scrollHeight) {
30
- el.classList.add(bottomShadowClass);
31
- }
32
- else {
33
- el.classList.remove(bottomShadowClass);
34
- }
35
- }
36
- };
37
- const resizeObserver = typeof ResizeObserver === 'undefined'
38
- ? null
39
- : new ResizeObserver(changeShadowsVisibility);
40
- resizeObserver?.observe(el);
41
- el.addEventListener('scroll', changeShadowsVisibility);
42
- return () => {
43
- resizeObserver?.unobserve(el);
44
- el.removeEventListener('scroll', changeShadowsVisibility);
45
- };
46
- }, [scrollShadowTop, scrollShadowBottom]);
47
7
  return (jsx("div", { ref: ref, className: classNames('dc-dialog-body', className), children: children }));
48
8
  }
49
9
 
@@ -1,8 +1,11 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { classNames } from '../../lib/react-helpers.js';
3
3
 
4
- function DialogFooter({ className, children, }) {
5
- return (jsx("div", { className: classNames('dc-dialog-footer', className), children: children }));
4
+ function DialogFooter({ hasBorder, className, children, }) {
5
+ return (jsx("div", { className: classNames(className, {
6
+ 'dc-dialog-footer': true,
7
+ 'dc-dialog-footer_has_border': hasBorder,
8
+ }), children: children }));
6
9
  }
7
10
 
8
11
  export { DialogFooter };
@@ -5,12 +5,15 @@ import '../button/button.js';
5
5
  import { IconButton } from '../button/icon-button.js';
6
6
  import { XMarkIcon } from './x-mark-icon.js';
7
7
 
8
- function DialogHeader({ heading, subheading, className, children, }) {
8
+ function DialogHeader({ hasBorder, heading, subheading, className, children, }) {
9
9
  const { titleId, descriptionId, onClose, } = useDialogContext();
10
10
  const shouldRenderHeading = Boolean(heading);
11
11
  const shouldRenderDescription = Boolean(subheading);
12
12
  const shouldRenderChildren = Boolean(children);
13
- return (jsxs("div", { className: classNames(className, 'dc-dialog-header'), children: [jsxs("div", { className: "dc-dialog-header__title-bar", children: [shouldRenderHeading && (jsx("h2", { id: titleId, className: "dc-dialog-header__heading", children: heading })), jsx(IconButton, { icon: jsx(XMarkIcon, { width: 18, height: 18, strokeWidth: 2 }), variant: "plain", className: "dc-dialog-header__close-btn", onClick: () => onClose() })] }), shouldRenderDescription && (jsx("div", { id: descriptionId, className: "dc-dialog-header__subheading", children: subheading })), shouldRenderChildren && (jsx("div", { className: "dc-dialog-header__body", children: children }))] }));
13
+ return (jsxs("div", { className: classNames(className, {
14
+ 'dc-dialog-header': true,
15
+ 'dc-dialog-header_has_border': hasBorder,
16
+ }), children: [jsxs("div", { className: "dc-dialog-header__title-bar", children: [shouldRenderHeading && (jsx("h2", { id: titleId, className: "dc-dialog-header__heading", children: heading })), jsx(IconButton, { icon: jsx(XMarkIcon, { width: 18, height: 18, strokeWidth: 2 }), variant: "plain", className: "dc-dialog-header__close-btn", onClick: () => onClose() })] }), shouldRenderDescription && (jsx("div", { id: descriptionId, className: "dc-dialog-header__subheading", children: subheading })), shouldRenderChildren && (jsx("div", { className: "dc-dialog-header__body", children: children }))] }));
14
17
  }
15
18
 
16
19
  export { DialogHeader };
@@ -2,18 +2,18 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
4
 
5
- const MenuItem = forwardRef(function MenuItem({ role = 'menuitem', appearance = 'default', iconLeft = null, iconRight = null, className, children, ...props }, ref) {
5
+ const MenuItem = forwardRef(function MenuItem({ role = 'menuitem', appearance = 'default', leftIcon = null, rightIcon = null, className, children, ...props }, ref) {
6
6
  let label = children;
7
- if (iconLeft || iconRight) {
7
+ if (leftIcon || rightIcon) {
8
8
  const className = classNames('dc-menu-btn__label', {
9
- 'dc-menu-btn__label_gap_left': iconLeft,
10
- 'dc-menu-btn__label_gap_right': iconRight,
9
+ 'dc-menu-btn__label_gap_left': leftIcon,
10
+ 'dc-menu-btn__label_gap_right': rightIcon,
11
11
  });
12
12
  label = jsx("span", { className: className, children: label });
13
13
  }
14
14
  return (jsx("li", { role: "presentation", children: jsxs("button", { ...props, ref: ref, className: classNames(className, 'dc-menu-btn', {
15
15
  [`dc-menu-btn_${appearance}`]: appearance,
16
- }), type: "button", role: role, tabIndex: -1, children: [iconLeft, label, iconRight] }) }));
16
+ }), type: "button", role: role, tabIndex: -1, children: [leftIcon, label, rightIcon] }) }));
17
17
  });
18
18
 
19
19
  export { MenuItem };
@@ -1,25 +1,37 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
+ import { Spinner } from '../spinner/spinner.js';
4
5
 
5
- const Select = forwardRef(function Select({ hasError, isBlock, size = 'md', style, className, disabled, multiple, htmlSize, children, onChange, onChangeValue, ...props }, ref) {
6
+ const Select = forwardRef(function Select({ hasError, isBlock, size = 'md', style, className, loading, disabled, multiple, htmlSize, children, onChange, onChangeValue, ...props }, ref) {
7
+ const onValueChanged = (event) => {
8
+ if (typeof onChange === 'function') {
9
+ onChange(event);
10
+ }
11
+ if (typeof onChangeValue === 'function') {
12
+ if (multiple === true) {
13
+ const values = Array.from(event.target.options)
14
+ .filter((option) => option.selected)
15
+ .map((option) => option.value);
16
+ onChangeValue(values);
17
+ }
18
+ else {
19
+ onChangeValue(event.target.value);
20
+ }
21
+ }
22
+ };
23
+ let addOn = (jsx("svg", { className: "dc-select__arrow", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: 24, height: 24, fill: "none", stroke: "currentColor", strokeWidth: 1.5, "aria-hidden": true, children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 15L12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" }) }));
24
+ if (loading) {
25
+ addOn = (jsx(Spinner, { className: "dc-select__spinner", color: "currentColor", size: 16 }));
26
+ }
6
27
  return (jsxs("div", { style: style, className: classNames(className, 'dc-select__container', {
7
28
  [`dc-select__container_${size}`]: size !== undefined,
8
29
  'dc-select__container_multiple': multiple,
30
+ 'dc-select__container_loading': loading,
9
31
  'dc-select__container_disabled': disabled,
10
32
  'dc-select__container_has_error': hasError,
11
33
  'dc-select__container_block': isBlock,
12
- }), children: [jsx("select", { ...props, ref: ref, className: "dc-select", size: htmlSize, multiple: multiple, disabled: disabled, onChange: (event) => {
13
- onChange?.(event);
14
- if (multiple === true) {
15
- onChangeValue?.(Array.from(event.target.options)
16
- .filter((option) => option.selected)
17
- .map((option) => option.value));
18
- }
19
- else {
20
- onChangeValue?.(event.target.value);
21
- }
22
- }, children: children }), jsx("svg", { className: "dc-select__icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", width: 24, height: 24, fill: "none", stroke: "currentColor", strokeWidth: 1.5, "aria-hidden": true, children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 15L12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9" }) })] }));
34
+ }), children: [jsx("select", { ...props, ref: ref, className: "dc-select", size: htmlSize, multiple: multiple, disabled: disabled || loading, onChange: onValueChanged, children: children }), jsx("span", { className: "dc-select__add-on", "aria-hidden": true, children: addOn })] }));
23
35
  });
24
36
 
25
37
  export { Select };