draft-components 2.11.0 → 3.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 (81) hide show
  1. package/css/draft-components-utilities.css +6 -7
  2. package/css/draft-components-variables.css +437 -0
  3. package/css/draft-components.css +1199 -617
  4. package/dist/components/alert/alert.css +163 -0
  5. package/dist/components/avatar/avatar.css +91 -0
  6. package/dist/components/avatar/avatar.js +3 -1
  7. package/dist/components/badge/badge.css +28 -0
  8. package/dist/components/breadcrumbs/breadcrumbs.css +72 -0
  9. package/dist/components/button/button.css +241 -0
  10. package/dist/components/button/button.js +3 -1
  11. package/dist/components/button/icon-button.js +1 -1
  12. package/dist/components/button-group/button-group.css +27 -0
  13. package/dist/components/caption/caption.css +36 -0
  14. package/dist/components/checkbox/checkbox.css +90 -0
  15. package/dist/components/checkbox/checkbox.js +3 -1
  16. package/dist/components/color-picker/color-picker.css +86 -0
  17. package/dist/components/date-picker/calendar-grid.js +2 -2
  18. package/dist/components/date-picker/date-helpers.js +3 -3
  19. package/dist/components/date-picker/date-picker.css +203 -0
  20. package/dist/components/date-picker/date-range.js +2 -2
  21. package/dist/components/date-picker/parse-min-max-props.js +3 -3
  22. package/dist/components/date-picker-popover/date-picker-popover.css +8 -0
  23. package/dist/components/date-range-picker-popover/date-range-picker-popover.css +73 -0
  24. package/dist/components/date-range-picker-popover/helpers.js +2 -2
  25. package/dist/components/dialog/dialog.css +173 -0
  26. package/dist/components/empty-state/empty-state.css +52 -0
  27. package/dist/components/file-picker/file-picker.css +74 -0
  28. package/dist/components/filter-buttons/filter-buttons.css +60 -0
  29. package/dist/components/filter-buttons/filter-buttons.js +2 -2
  30. package/dist/components/filtered-search/filter-item.css +30 -0
  31. package/dist/components/filtered-search/filter-operator-select.css +6 -0
  32. package/dist/components/filtered-search/filter-token.css +63 -0
  33. package/dist/components/filtered-search/filter-value-list.css +17 -0
  34. package/dist/components/filtered-search/filtered-search.css +284 -0
  35. package/dist/components/filtered-search/string-filter-input.css +12 -0
  36. package/dist/components/filtered-search/string-filter-item.js +4 -2
  37. package/dist/components/filtered-search/string-set-filter-item.js +3 -1
  38. package/dist/components/form-field/form-field.css +21 -0
  39. package/dist/components/form-field/form-field.js +3 -1
  40. package/dist/components/label/label.css +23 -0
  41. package/dist/components/menu/menu.css +87 -0
  42. package/dist/components/menu/menu.d.ts +4 -4
  43. package/dist/components/menu/menu.js +4 -4
  44. package/dist/components/nav-list/nav-list-item.js +1 -1
  45. package/dist/components/nav-list/nav-list.css +89 -0
  46. package/dist/components/password-input/password-input.css +49 -0
  47. package/dist/components/popover/popover.css +98 -0
  48. package/dist/components/popover/popover.js +3 -3
  49. package/dist/components/positioner/calc-position.js +4 -4
  50. package/dist/components/radio/radio.css +88 -0
  51. package/dist/components/segmented-control/segmented-control.css +113 -0
  52. package/dist/components/select/select.css +121 -0
  53. package/dist/components/selection-control/selection-control.css +36 -0
  54. package/dist/components/selection-control/selection-control.js +3 -1
  55. package/dist/components/slide-over/slide-over-body.css +7 -0
  56. package/dist/components/slide-over/slide-over-header.css +29 -0
  57. package/dist/components/slide-over/slide-over-header.js +5 -1
  58. package/dist/components/slide-over/slide-over.css +85 -0
  59. package/dist/components/slider/get-offset-relative-to-thumb.js +5 -5
  60. package/dist/components/slider/range-slider.d.ts +20 -20
  61. package/dist/components/slider/slider-thumb.d.ts +14 -14
  62. package/dist/components/slider/slider-track.js +7 -7
  63. package/dist/components/slider/slider.css +261 -0
  64. package/dist/components/slider/slider.d.ts +16 -16
  65. package/dist/components/spinner/spinner.css +42 -0
  66. package/dist/components/spinner/spinner.js +1 -1
  67. package/dist/components/switch/switch.css +123 -0
  68. package/dist/components/table/table-head-cell.js +1 -1
  69. package/dist/components/table/table.css +176 -0
  70. package/dist/components/tabs/tab.js +1 -1
  71. package/dist/components/tabs/tabs.css +94 -0
  72. package/dist/components/tag/tag.css +390 -0
  73. package/dist/components/text-input/text-input.css +146 -0
  74. package/dist/components/textarea/textarea.css +82 -0
  75. package/dist/components/toast/toast.css +154 -0
  76. package/dist/components/toaster/toaster.css +95 -0
  77. package/dist/components/toaster/toaster.js +3 -3
  78. package/dist/components/tooltip/tooltip.css +34 -0
  79. package/dist/hooks/use-mount-transition.js +2 -2
  80. package/package.json +16 -11
  81. package/css/draft-components.dark.css +0 -609
@@ -0,0 +1,163 @@
1
+ .dc-alert {
2
+ --dc-alert-text-color: var(--dc-gray-700);
3
+ --dc-alert-icon-color: var(--dc-gray-500);
4
+ --dc-alert-bg: rgb(var(--dc-gray-200-rgb) / 25%);
5
+ --dc-alert-border-color: rgb(var(--dc-gray-400-rgb) / 25%);
6
+ --dc-alert-accent-border-color: var(--dc-gray-500);
7
+ --dc-alert-icon-size: 20px;
8
+
9
+ box-sizing: border-box;
10
+ display: flex;
11
+ gap: 12px;
12
+ align-items: flex-start;
13
+ padding: 12px 16px;
14
+ font: var(--dc-text-sm);
15
+ color: var(--dc-alert-text-color);
16
+ text-align: left;
17
+ color-scheme: light;
18
+ background: var(--dc-alert-bg);
19
+ border: 1px solid var(--dc-alert-border-color);
20
+ border-radius: 8px;
21
+ }
22
+
23
+ .dc-alert_has_icon {
24
+ padding-left: 12px;
25
+ }
26
+
27
+ .dc-alert_has_dismiss-button {
28
+ padding-right: 12px;
29
+ }
30
+
31
+ .dc-alert__icon {
32
+ display: inline-flex;
33
+ color: var(--dc-alert-icon-color);
34
+ }
35
+
36
+ .dc-alert__body {
37
+ flex-grow: 1;
38
+ }
39
+
40
+ .dc-alert__title {
41
+ display: block;
42
+ width: 100%;
43
+ margin: 0 0 8px;
44
+ font: 600 var(--dc-text-sm);
45
+ }
46
+
47
+ .dc-alert__dismiss-button {
48
+ display: inline-flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ width: 20px;
52
+ height: 20px;
53
+ padding: 0;
54
+ margin: 0;
55
+ color: inherit;
56
+ -webkit-appearance: none;
57
+ -moz-appearance: none;
58
+ appearance: none;
59
+ cursor: pointer;
60
+ background: none;
61
+ border: none;
62
+ border-radius: 4px;
63
+ }
64
+
65
+ .dc-alert__dismiss-button:focus {
66
+ outline: none;
67
+ box-shadow: 0 0 0 2px currentcolor;
68
+ }
69
+
70
+ .dc-alert__dismiss-button:focus:not(:focus-visible) {
71
+ box-shadow: none;
72
+ }
73
+
74
+ .dc-alert_style_full-width {
75
+ border-right: 0;
76
+ border-left: 0;
77
+ border-radius: 0;
78
+ }
79
+
80
+ .dc-alert_style_accent-left {
81
+ border: none;
82
+ border-left: 4px solid var(--dc-alert-accent-border-color);
83
+ border-radius: 0;
84
+ }
85
+
86
+ .dc-alert_tint_orange {
87
+ --dc-alert-text-color: var(--dc-orange-700);
88
+ --dc-alert-icon-color: var(--dc-orange-600);
89
+ --dc-alert-bg: rgb(var(--dc-orange-200-rgb) / 20%);
90
+ --dc-alert-border-color: rgb(var(--dc-orange-500-rgb) / 25%);
91
+ --dc-alert-accent-border-color: var(--dc-orange-500);
92
+ }
93
+
94
+ .dc-alert_tint_red {
95
+ --dc-alert-text-color: var(--dc-red-700);
96
+ --dc-alert-icon-color: var(--dc-red-600);
97
+ --dc-alert-bg: rgb(var(--dc-red-200-rgb) / 20%);
98
+ --dc-alert-border-color: rgb(var(--dc-red-500-rgb) / 25%);
99
+ --dc-alert-accent-border-color: var(--dc-red-500);
100
+ }
101
+
102
+ .dc-alert_tint_blue {
103
+ --dc-alert-text-color: var(--dc-blue-700);
104
+ --dc-alert-icon-color: var(--dc-blue-600);
105
+ --dc-alert-bg: rgb(var(--dc-blue-200-rgb) / 20%);
106
+ --dc-alert-border-color: rgb(var(--dc-blue-500-rgb) / 25%);
107
+ --dc-alert-accent-border-color: var(--dc-blue-500);
108
+ }
109
+
110
+ .dc-alert_tint_green {
111
+ --dc-alert-text-color: var(--dc-green-700);
112
+ --dc-alert-icon-color: var(--dc-green-600);
113
+ --dc-alert-bg: rgb(var(--dc-green-200-rgb) / 20%);
114
+ --dc-alert-border-color: rgb(var(--dc-green-600-rgb) / 25%);
115
+ --dc-alert-accent-border-color: var(--dc-green-500);
116
+ }
117
+
118
+ .dark .dc-alert,
119
+ .dark.dc-alert {
120
+ --dc-alert-text-color: var(--dc-gray-300);
121
+ --dc-alert-icon-color: var(--dc-gray-300);
122
+ --dc-alert-bg: rgb(var(--dc-gray-200-rgb) / 10%);
123
+ --dc-alert-border-color: rgb(var(--dc-gray-400-rgb) / 20%);
124
+ --dc-alert-accent-border-color: var(--dc-gray-400);
125
+
126
+ color-scheme: dark;
127
+ }
128
+
129
+ .dark .dc-alert_tint_orange,
130
+ .dark.dc-alert_tint_orange {
131
+ --dc-alert-text-color: var(--dc-orange-400);
132
+ --dc-alert-icon-color: var(--dc-orange-400);
133
+ --dc-alert-bg: rgb(var(--dc-orange-200-rgb) / 10%);
134
+ --dc-alert-border-color: rgb(var(--dc-orange-400-rgb) / 30%);
135
+ --dc-alert-accent-border-color: var(--dc-orange-500);
136
+ }
137
+
138
+ .dark .dc-alert_tint_red,
139
+ .dark.dc-alert_tint_red {
140
+ --dc-alert-text-color: var(--dc-red-400);
141
+ --dc-alert-icon-color: var(--dc-red-400);
142
+ --dc-alert-bg: rgb(var(--dc-red-300-rgb) / 10%);
143
+ --dc-alert-border-color: rgb(var(--dc-red-400-rgb) / 30%);
144
+ --dc-alert-accent-border-color: var(--dc-red-500);
145
+ }
146
+
147
+ .dark .dc-alert_tint_blue,
148
+ .dark.dc-alert_tint_blue {
149
+ --dc-alert-text-color: var(--dc-blue-300);
150
+ --dc-alert-icon-color: var(--dc-blue-300);
151
+ --dc-alert-bg: rgb(var(--dc-blue-200-rgb) / 10%);
152
+ --dc-alert-border-color: rgb(var(--dc-blue-400-rgb) / 30%);
153
+ --dc-alert-accent-border-color: var(--dc-blue-400);
154
+ }
155
+
156
+ .dark .dc-alert_tint_green,
157
+ .dark.dc-alert_tint_green {
158
+ --dc-alert-text-color: var(--dc-green-400);
159
+ --dc-alert-icon-color: var(--dc-green-400);
160
+ --dc-alert-bg: rgb(var(--dc-green-200-rgb) / 10%);
161
+ --dc-alert-border-color: rgb(var(--dc-green-400-rgb) / 30%);
162
+ --dc-alert-accent-border-color: var(--dc-green-500);
163
+ }
@@ -0,0 +1,91 @@
1
+ .dc-avatar {
2
+ --dc-avatar-monogram-color: var(--dc-white);
3
+ --dc-avatar-silhouette-color: var(--dc-white);
4
+ --dc-avatar-bg-color-1: #94a3b8;
5
+ --dc-avatar-bg-color-2: #64748b;
6
+ --dc-avatar-border-color: rgb(var(--dc-black-rgb) / 2.5%);
7
+
8
+ -webkit-user-select: none;
9
+
10
+ -moz-user-select: none;
11
+
12
+ user-select: none;
13
+ }
14
+
15
+ .dc-avatar_type_image {
16
+ --dc-avatar-border-color: rgb(var(--dc-black-rgb) / 10%);
17
+ }
18
+
19
+ .dc-avatar_fill_pink {
20
+ --dc-avatar-bg-color-1: #fb7185;
21
+ --dc-avatar-bg-color-2: #f43f5e;
22
+ }
23
+
24
+ .dc-avatar_fill_red {
25
+ --dc-avatar-bg-color-1: #f87171;
26
+ --dc-avatar-bg-color-2: #ef4444;
27
+ }
28
+
29
+ .dc-avatar_fill_orange {
30
+ --dc-avatar-bg-color-1: #fb923c;
31
+ --dc-avatar-bg-color-2: #f97316;
32
+ }
33
+
34
+ .dc-avatar_fill_yellow {
35
+ --dc-avatar-bg-color-1: #fbbf24;
36
+ --dc-avatar-bg-color-2: #f59e0b;
37
+ }
38
+
39
+ .dc-avatar_fill_green {
40
+ --dc-avatar-bg-color-1: #4ade80;
41
+ --dc-avatar-bg-color-2: #22c55e;
42
+ }
43
+
44
+ .dc-avatar_fill_teal {
45
+ --dc-avatar-bg-color-1: #2dd4bf;
46
+ --dc-avatar-bg-color-2: #14b8a6;
47
+ }
48
+
49
+ .dc-avatar_fill_blue {
50
+ --dc-avatar-bg-color-1: #38bdf8;
51
+ --dc-avatar-bg-color-2: #0ea5e9;
52
+ }
53
+
54
+ .dc-avatar_fill_indigo {
55
+ --dc-avatar-bg-color-1: #818cf8;
56
+ --dc-avatar-bg-color-2: #6366f1;
57
+ }
58
+
59
+ .dc-avatar_fill_violet {
60
+ --dc-avatar-bg-color-1: #c084fc;
61
+ --dc-avatar-bg-color-2: #a855f7;
62
+ }
63
+
64
+ .dc-avatar__monogram {
65
+ font-family: var(--dc-primary-font);
66
+ font-size: 22px;
67
+ font-weight: 600;
68
+ letter-spacing: 0.025em;
69
+ fill: var(--dc-avatar-monogram-color);
70
+ }
71
+
72
+ .dc-avatar__silhouette {
73
+ fill: var(--dc-avatar-silhouette-color);
74
+ }
75
+
76
+ .dc-avatar__border {
77
+ fill: none;
78
+ stroke: var(--dc-avatar-border-color);
79
+ }
80
+
81
+ .dark .dc-avatar,
82
+ .dark.dc-avatar {
83
+ --dc-avatar-border-color: rgb(var(--dc-white-rgb) / 2.5%);
84
+
85
+ color-scheme: dark;
86
+ }
87
+
88
+ .dark .dc-avatar_type_image,
89
+ .dark.dc-avatar_type_image {
90
+ --dc-avatar-border-color: rgb(var(--dc-white-rgb) / 10%);
91
+ }
@@ -26,7 +26,9 @@ export const Avatar = forwardRef(function Avatar({ square, size = 'md', fill = '
26
26
  }
27
27
  else {
28
28
  type = 'silhouette';
29
- children = square ? (_jsx("path", { className: "dc-avatar__silhouette", fillRule: "evenodd", clipRule: "evenodd", d: "M28.0001 29.5957C33.3078 29.5957 37.6106 24.9852 37.6106 19.2979C37.6106 13.6105 33.3078 9 28.0001 9C22.6923 9 18.3895 13.6105 18.3895 19.2979C18.3895 24.9852 22.6923 29.5957 28.0001 29.5957ZM7.03967 49.4839C6.71299 51.4741 8.45242 53 10.4693 53H45.5305C47.5474 53 49.2868 51.4741 48.9601 49.4839C47.6918 41.7571 39.6459 33.3404 27.9999 33.3404C16.3538 33.3404 8.30794 41.7571 7.03967 49.4839Z" })) : (_jsx("path", { className: "dc-avatar__silhouette", fillRule: "evenodd", clipRule: "evenodd", d: "M9.28643 44.5776C12.6548 39.0053 19.3297 34.3404 27.9999 34.3404C36.6702 34.3404 43.3451 39.0054 46.7134 44.5777C42.1335 49.7439 35.447 53 28 53C20.5529 53 13.8664 49.7438 9.28643 44.5776ZM37.6106 20.2979C37.6106 25.9852 33.3078 30.5957 28.0001 30.5957C22.6923 30.5957 18.3895 25.9852 18.3895 20.2979C18.3895 14.6105 22.6923 10 28.0001 10C33.3078 10 37.6106 14.6105 37.6106 20.2979Z" }));
29
+ children = square
30
+ ? (_jsx("path", { className: "dc-avatar__silhouette", fillRule: "evenodd", clipRule: "evenodd", d: "M28.0001 29.5957C33.3078 29.5957 37.6106 24.9852 37.6106 19.2979C37.6106 13.6105 33.3078 9 28.0001 9C22.6923 9 18.3895 13.6105 18.3895 19.2979C18.3895 24.9852 22.6923 29.5957 28.0001 29.5957ZM7.03967 49.4839C6.71299 51.4741 8.45242 53 10.4693 53H45.5305C47.5474 53 49.2868 51.4741 48.9601 49.4839C47.6918 41.7571 39.6459 33.3404 27.9999 33.3404C16.3538 33.3404 8.30794 41.7571 7.03967 49.4839Z" }))
31
+ : (_jsx("path", { className: "dc-avatar__silhouette", fillRule: "evenodd", clipRule: "evenodd", d: "M9.28643 44.5776C12.6548 39.0053 19.3297 34.3404 27.9999 34.3404C36.6702 34.3404 43.3451 39.0054 46.7134 44.5777C42.1335 49.7439 35.447 53 28 53C20.5529 53 13.8664 49.7438 9.28643 44.5776ZM37.6106 20.2979C37.6106 25.9852 33.3078 30.5957 28.0001 30.5957C22.6923 30.5957 18.3895 25.9852 18.3895 20.2979C18.3895 14.6105 22.6923 10 28.0001 10C33.3078 10 37.6106 14.6105 37.6106 20.2979Z" }));
30
32
  }
31
33
  const maskElement = square
32
34
  ? _jsx("rect", { width: "56", height: "56", rx: "10", fill: "#fff" })
@@ -0,0 +1,28 @@
1
+ .dc-badge {
2
+ --dc-badge-height: 20px;
3
+ --dc-badge-text-color: var(--dc-primary-text-color);
4
+ --dc-badge-bg: var(--dc-bg-transparent-2);
5
+
6
+ display: inline-flex;
7
+ flex-shrink: 0;
8
+ align-items: center;
9
+ justify-content: center;
10
+ min-width: var(--dc-badge-height);
11
+ height: var(--dc-badge-height);
12
+ padding: 0 6px;
13
+ font: 12px/1 var(--dc-primary-font);
14
+ color: var(--dc-badge-text-color);
15
+ color-scheme: light;
16
+ background: var(--dc-badge-bg);
17
+ border-radius: calc(var(--dc-badge-height) / 2);
18
+ }
19
+
20
+ .dc-badge_circle {
21
+ padding-right: 0;
22
+ padding-left: 0;
23
+ }
24
+
25
+ .dark .dc-counter,
26
+ .dark.dc-counter {
27
+ color-scheme: dark;
28
+ }
@@ -0,0 +1,72 @@
1
+ .dc-breadcrumbs {
2
+ --dc-breadcrumbs-text-color: var(--dc-secondary-text-color);
3
+ --dc-breadcrumbs-text-color-hover: var(--dc-primary-text-color);
4
+ --dc-breadcrumbs-text-color-active: var(--dc-primary-text-color);
5
+ --dc-breadcrumbs-separator-color: rgb(var(--dc-gray-500-rgb) / 50%);
6
+
7
+ color-scheme: light;
8
+ }
9
+
10
+ .dc-breadcrumbs__items {
11
+ display: flex;
12
+ flex-wrap: wrap;
13
+ align-items: center;
14
+ padding: 0;
15
+ margin: 0;
16
+ color: var(--dc-breadcrumbs-text-color);
17
+ list-style: none;
18
+ }
19
+
20
+ .dc-breadcrumbs-item {
21
+ display: inline-flex;
22
+ align-items: center;
23
+ padding: 4px 0;
24
+ font: var(--dc-text-sm);
25
+ color: inherit;
26
+ }
27
+
28
+ .dc-breadcrumbs-item__link {
29
+ display: flex;
30
+ flex-grow: 1;
31
+ align-items: center;
32
+ color: inherit;
33
+ text-decoration: none;
34
+ }
35
+
36
+ .dc-breadcrumbs-item__link:hover {
37
+ color: var(--dc-breadcrumbs-text-color-hover);
38
+ text-decoration: underline;
39
+ cursor: pointer;
40
+ }
41
+
42
+ .dc-breadcrumbs-item__link.active,
43
+ .dc-breadcrumbs-item__link[aria-current="page"],
44
+ .dc-breadcrumbs-item__link[aria-current="step"],
45
+ .dc-breadcrumbs-item__link[aria-current="true"] {
46
+ color: var(--dc-breadcrumbs-text-color-active);
47
+ }
48
+
49
+ .dc-breadcrumbs-item__icon {
50
+ display: inline-flex;
51
+ margin-right: 8px;
52
+ }
53
+
54
+ .dc-breadcrumbs-item__separator {
55
+ display: inline-flex;
56
+ margin: 0 12px;
57
+ color: var(--dc-breadcrumbs-separator-color);
58
+ -webkit-user-select: none;
59
+ -moz-user-select: none;
60
+ user-select: none;
61
+ }
62
+
63
+ .dc-breadcrumbs-item:last-child .dc-breadcrumbs-item__separator {
64
+ display: none;
65
+ }
66
+
67
+ .dark .dc-breadcrumbs,
68
+ .dark.dc-breadcrumbs {
69
+ --dc-breadcrumbs-separator-color: rgb(var(--dc-gray-400-rgb) / 50%);
70
+
71
+ color-scheme: dark;
72
+ }
@@ -0,0 +1,241 @@
1
+ .dc-button {
2
+ --dc-button-height: 36px;
3
+ --dc-button-radius: 9px;
4
+ --dc-button-text-color: var(--dc-button-gray-text-color);
5
+ --dc-button-border-color: var(--dc-button-gray-border-color);
6
+ --dc-button-bg: var(--dc-button-gray-bg);
7
+ --dc-button-bg-hover: var(--dc-button-gray-bg-hover);
8
+ --dc-button-focus-ring-color: var(--dc-focus-ring-color);
9
+
10
+ position: relative;
11
+ box-sizing: border-box;
12
+ display: inline-grid;
13
+ grid-template-columns: 1fr;
14
+ grid-column-gap: 0.5em;
15
+ place-items: center;
16
+ justify-content: center;
17
+ height: var(--dc-button-height);
18
+ padding: 0 16px;
19
+ font: 500 var(--dc-text-sm);
20
+ color: var(--dc-button-text-color);
21
+ text-align: center;
22
+ text-decoration: none;
23
+ text-transform: none;
24
+ white-space: nowrap;
25
+ -webkit-appearance: none;
26
+ -moz-appearance: none;
27
+ appearance: none;
28
+ color-scheme: light;
29
+ -webkit-user-select: none;
30
+ -moz-user-select: none;
31
+ user-select: none;
32
+ background: var(--dc-button-bg);
33
+ border: 1px solid var(--dc-button-border-color);
34
+ border-radius: var(--dc-button-radius);
35
+ transition-duration: 0.2s;
36
+ transition-property: color, background-color;
37
+ }
38
+
39
+ .dark .dc-button,
40
+ .dark.dc-button {
41
+ color-scheme: dark;
42
+ }
43
+
44
+ .dc-button:focus {
45
+ outline: none;
46
+ }
47
+
48
+ .dc-button:focus::after {
49
+ position: absolute;
50
+ inset: -3px;
51
+ pointer-events: none;
52
+ content: "";
53
+ border-radius: calc(3px + var(--dc-button-radius));
54
+ box-shadow: 0 0 0 3px var(--dc-button-focus-ring-color);
55
+ }
56
+
57
+ .dc-button_full-width {
58
+ display: grid;
59
+ width: 100%;
60
+ }
61
+
62
+ .dc-button_style_plain:focus::after {
63
+ inset: 0;
64
+ border-radius: var(--dc-button-radius);
65
+ }
66
+
67
+ .dc-button:focus:not(:focus-visible)::after {
68
+ content: none;
69
+ }
70
+
71
+ .dc-button:disabled {
72
+ opacity: var(--dc-disabled-state-opacity);
73
+ }
74
+
75
+ .dc-button:hover:not(:disabled) {
76
+ cursor: pointer;
77
+ background: var(--dc-button-bg-hover);
78
+ }
79
+
80
+ .dc-button_loading,
81
+ .dc-button_has_icon-left,
82
+ .dc-button_has_icon-right {
83
+ grid-template-columns: repeat(2, auto);
84
+ }
85
+
86
+ .dc-button_loading {
87
+ cursor: default;
88
+ }
89
+
90
+ .dc-button_loading:disabled {
91
+ opacity: initial;
92
+ }
93
+
94
+ .dc-button_loading.dc-button_has_icon-right,
95
+ .dc-button_has_icon-left.dc-button_has_icon-right {
96
+ grid-template-columns: repeat(3, auto);
97
+ }
98
+
99
+ .dc-button_style_tinted {
100
+ --dc-button-text-color: var(--dc-button-gray-tinted-text-color);
101
+ --dc-button-bg: var(--dc-button-gray-tinted-bg);
102
+ --dc-button-bg-hover: var(--dc-button-gray-tinted-bg-hover);
103
+
104
+ border-color: transparent;
105
+ box-shadow: none;
106
+ }
107
+
108
+ .dc-button_style_plain {
109
+ --dc-button-text-color: var(--dc-button-gray-plain-text-color);
110
+ --dc-button-bg-hover: var(--dc-button-gray-plain-bg-hover);
111
+
112
+ background: transparent;
113
+ border-color: transparent;
114
+ box-shadow: none;
115
+ }
116
+
117
+ .dc-button_xs {
118
+ --dc-button-height: 28px;
119
+ --dc-button-radius: 7px;
120
+
121
+ padding-right: 8px;
122
+ padding-left: 8px;
123
+ font: 500 var(--dc-text-xs);
124
+ }
125
+
126
+ .dc-button_sm {
127
+ --dc-button-height: 32px;
128
+ --dc-button-radius: 8px;
129
+
130
+ padding-right: 12px;
131
+ padding-left: 12px;
132
+ font: 500 var(--dc-text-sm);
133
+ }
134
+
135
+ .dc-button_lg {
136
+ --dc-button-height: 40px;
137
+ --dc-button-radius: 10px;
138
+
139
+ padding-right: 18px;
140
+ padding-left: 18px;
141
+ font: 500 var(--dc-text-md);
142
+ }
143
+
144
+ .dc-button_xl {
145
+ --dc-button-height: 44px;
146
+ --dc-button-radius: 11px;
147
+
148
+ padding-right: 20px;
149
+ padding-left: 20px;
150
+ font: 500 var(--dc-text-md);
151
+ }
152
+
153
+ .dc-button_tint_blue.dc-button_style_filled {
154
+ --dc-button-text-color: var(--dc-button-blue-text-color);
155
+ --dc-button-border-color: var(--dc-button-blue-border-color);
156
+ --dc-button-bg: var(--dc-button-blue-bg);
157
+ --dc-button-bg-hover: var(--dc-button-blue-bg-hover);
158
+ }
159
+
160
+ .dc-button_tint_blue.dc-button_style_tinted {
161
+ --dc-button-text-color: var(--dc-button-blue-tinted-text-color);
162
+ --dc-button-bg: var(--dc-button-blue-tinted-bg);
163
+ --dc-button-bg-hover: var(--dc-button-blue-tinted-bg-hover);
164
+ }
165
+
166
+ .dc-button_tint_blue.dc-button_style_plain {
167
+ --dc-button-text-color: var(--dc-button-blue-plain-text-color);
168
+ --dc-button-bg-hover: var(--dc-button-blue-plain-bg-hover);
169
+ }
170
+
171
+ .dc-button_tint_red.dc-button_style_filled {
172
+ --dc-button-text-color: var(--dc-button-red-text-color);
173
+ --dc-button-border-color: var(--dc-button-red-border-color);
174
+ --dc-button-bg: var(--dc-button-red-bg);
175
+ --dc-button-bg-hover: var(--dc-button-red-bg-hover);
176
+ }
177
+
178
+ .dc-button_tint_red.dc-button_style_tinted {
179
+ --dc-button-text-color: var(--dc-button-red-tinted-text-color);
180
+ --dc-button-bg: var(--dc-button-red-tinted-bg);
181
+ --dc-button-bg-hover: var(--dc-button-red-tinted-bg-hover);
182
+ }
183
+
184
+ .dc-button_tint_red.dc-button_style_plain {
185
+ --dc-button-text-color: var(--dc-button-red-plain-text-color);
186
+ --dc-button-bg-hover: var(--dc-button-red-plain-bg-hover);
187
+ }
188
+
189
+ .dc-button_tint_green.dc-button_style_filled {
190
+ --dc-button-text-color: var(--dc-button-green-text-color);
191
+ --dc-button-border-color: var(--dc-button-green-border-color);
192
+ --dc-button-bg: var(--dc-button-green-bg);
193
+ --dc-button-bg-hover: var(--dc-button-green-bg-hover);
194
+ }
195
+
196
+ .dc-button_tint_green.dc-button_style_tinted {
197
+ --dc-button-text-color: var(--dc-button-green-tinted-text-color);
198
+ --dc-button-bg: var(--dc-button-green-tinted-bg);
199
+ --dc-button-bg-hover: var(--dc-button-green-tinted-bg-hover);
200
+ }
201
+
202
+ .dc-button_tint_green.dc-button_style_plain {
203
+ --dc-button-text-color: var(--dc-button-green-plain-text-color);
204
+ --dc-button-bg-hover: var(--dc-button-green-plain-bg-hover);
205
+ }
206
+
207
+ .dc-button__label {
208
+ font-size: 13px;
209
+ line-height: 1;
210
+ }
211
+
212
+ .dc-button__caption {
213
+ display: block;
214
+ margin-top: 2px;
215
+ font-size: 11px;
216
+ font-weight: 400;
217
+ line-height: 1;
218
+ }
219
+
220
+ .dc-button_xs .dc-button__label {
221
+ font-size: 11px;
222
+ }
223
+
224
+ .dc-button_xs .dc-button__caption {
225
+ font-size: 9px;
226
+ }
227
+
228
+ .dc-button_sm .dc-button__label {
229
+ font-size: 12px;
230
+ }
231
+
232
+ .dc-button_sm .dc-button__caption {
233
+ font-size: 10px;
234
+ }
235
+
236
+ .dc-button_icon-only {
237
+ grid-template-columns: auto;
238
+ width: var(--dc-button-height);
239
+ height: var(--dc-button-height);
240
+ padding: 0;
241
+ }
@@ -5,7 +5,9 @@ import { Spinner } from '../spinner/index.js';
5
5
  export const Button = forwardRef(function Button({ fullWidth, disabled, loading, buttonStyle = 'filled', size = 'sm', tint = 'default', iconLeft, iconRight, caption, className, children, type = 'button', renderAs, ...props }, ref) {
6
6
  children = (_jsxs(_Fragment, { children: [loading
7
7
  ? _jsx(Spinner, { "data-testid": "button-spinner", size: "1.15em" })
8
- : iconLeft, caption ? (_jsxs("div", { className: "dc-button__label", children: [children, _jsx("small", { className: "dc-button__caption", children: caption })] })) : children, iconRight] }));
8
+ : iconLeft, caption
9
+ ? (_jsxs("div", { className: "dc-button__label", children: [children, _jsx("small", { className: "dc-button__caption", children: caption })] }))
10
+ : children, iconRight] }));
9
11
  className = classNames(className, 'dc-button', {
10
12
  [`dc-button_style_${buttonStyle}`]: buttonStyle,
11
13
  [`dc-button_tint_${tint}`]: tint,
@@ -3,5 +3,5 @@ import { forwardRef } from 'react';
3
3
  import { classNames } from '../../lib/react-helpers.js';
4
4
  import { Button } from './button.js';
5
5
  export const IconButton = forwardRef(function IconButton({ className, children, ...props }, ref) {
6
- return _jsx(Button, { ...props, ref: ref, className: classNames('dc-button_icon-only', className), iconLeft: children });
6
+ return (_jsx(Button, { ...props, ref: ref, className: classNames('dc-button_icon-only', className), iconLeft: children }));
7
7
  });
@@ -0,0 +1,27 @@
1
+ .dc-button-group {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ color-scheme: light;
5
+ }
6
+
7
+ .dc-button-group > .dc-button:focus::after {
8
+ z-index: 1;
9
+ }
10
+
11
+ .dc-button-group > .dc-button + .dc-button,
12
+ .dc-button-group > .dc-button + .dc-button:focus::after {
13
+ border-left-width: 0;
14
+ border-top-left-radius: 0;
15
+ border-bottom-left-radius: 0;
16
+ }
17
+
18
+ .dc-button-group > .dc-button:first-child:not(:last-child),
19
+ .dc-button-group > .dc-button:first-child:not(:last-child):focus::after {
20
+ border-top-right-radius: 0;
21
+ border-bottom-right-radius: 0;
22
+ }
23
+
24
+ .dark .dc-button-group,
25
+ .dark.dc-button-group {
26
+ color-scheme: dark;
27
+ }
@@ -0,0 +1,36 @@
1
+ .dc-caption {
2
+ display: block;
3
+ align-items: center;
4
+ font: var(--dc-text-sm);
5
+ color: var(--dc-secondary-text-color);
6
+ text-align: left;
7
+ color-scheme: light;
8
+ }
9
+
10
+ .dc-caption_color_blue {
11
+ color: var(--dc-info-text-color);
12
+ }
13
+
14
+ .dc-caption_color_green {
15
+ color: var(--dc-success-text-color);
16
+ }
17
+
18
+ .dc-caption_color_orange {
19
+ color: var(--dc-warning-text-color);
20
+ }
21
+
22
+ .dc-caption_color_red {
23
+ color: var(--dc-error-text-color);
24
+ }
25
+
26
+ .dc-caption__icon {
27
+ display: inline-flex;
28
+ float: left;
29
+ margin-right: 0.5em;
30
+ color: inherit;
31
+ }
32
+
33
+ .dark .dc-caption,
34
+ .dark.dc-caption {
35
+ color-scheme: dark;
36
+ }