@resolve-components/theme 1.0.0 → 1.2.1

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 (49) hide show
  1. package/accordion/rc-accordion.scss +141 -0
  2. package/alert/rc-alert.scss +158 -0
  3. package/autocomplete/rc-autocomplete.scss +64 -0
  4. package/badge/rc-badge.scss +57 -0
  5. package/button/rc-button.scss +198 -0
  6. package/card/rc-card.scss +31 -0
  7. package/checkbox/rc-checkbox.scss +163 -0
  8. package/chip/rc-chip.scss +172 -0
  9. package/datepicker/rc-datepicker.scss +322 -0
  10. package/dialog/rc-dialog.scss +114 -0
  11. package/fesm2022/resolve-components-theme.mjs +44 -30
  12. package/fesm2022/resolve-components-theme.mjs.map +1 -1
  13. package/file-upload/rc-file-upload.scss +143 -0
  14. package/icon/rc-icon.scss +47 -0
  15. package/infinite-scroll/rc-infinite-scroll.scss +54 -0
  16. package/input/rc-input.scss +156 -0
  17. package/menu/rc-menu.scss +84 -0
  18. package/navbar/rc-navbar.scss +112 -0
  19. package/package.json +16 -9
  20. package/paginator/rc-paginator.scss +86 -0
  21. package/progress-bar/rc-progress-bar.scss +88 -0
  22. package/radio/rc-radio.scss +124 -0
  23. package/schematics/ng-add/index.js +149 -69
  24. package/schematics/ng-add/schema.json +15 -1
  25. package/select/rc-select.scss +197 -0
  26. package/sidenav/rc-sidenav.scss +154 -0
  27. package/slider/rc-slider.scss +311 -0
  28. package/spinner/rc-spinner.scss +106 -0
  29. package/{src/lib/styles → styles}/theming/_mapping.scss +2 -1
  30. package/table/rc-table.scss +147 -0
  31. package/tabs/rc-tabs.scss +155 -0
  32. package/toast/rc-toast.scss +228 -0
  33. package/toggle/rc-toggle.scss +138 -0
  34. package/tooltip/rc-tooltip.scss +34 -0
  35. package/tree/rc-tree.scss +114 -0
  36. package/types/resolve-components-theme.d.ts +32 -31
  37. package/virtual-scroll/rc-virtual-scroll.scss +38 -0
  38. /package/{src/lib/styles → styles}/_all.scss +0 -0
  39. /package/{src/lib/styles → styles}/_globals.scss +0 -0
  40. /package/{src/lib/styles → styles}/_themes.scss +0 -0
  41. /package/{src/lib/styles → styles}/_theming.scss +0 -0
  42. /package/{src/lib/styles → styles}/themes/_dark.scss +0 -0
  43. /package/{src/lib/styles → styles}/themes/_default.scss +0 -0
  44. /package/{src/lib/styles → styles}/theming/_animation.scss +0 -0
  45. /package/{src/lib/styles → styles}/theming/_functions.scss +0 -0
  46. /package/{src/lib/styles → styles}/theming/_get-value.scss +0 -0
  47. /package/{src/lib/styles → styles}/theming/_install.scss +0 -0
  48. /package/{src/lib/styles → styles}/theming/_register.scss +0 -0
  49. /package/{src/lib/styles → styles}/theming/_theming-variables.scss +0 -0
@@ -0,0 +1,163 @@
1
+ // =============================================================================
2
+ // rc-checkbox Resolve Components Checkbox (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+ @use '../styles/theming/animation' as *;
8
+
9
+ @include rc-install-component() {
10
+ // ── Host wrapper ───────────────────────────────────────────────────────────
11
+ .rc-checkbox {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ gap: rc-theme('checkbox-gap');
15
+ cursor: pointer;
16
+ user-select: none;
17
+ font-family: rc-theme('checkbox-font-family');
18
+ font-size: rc-theme('checkbox-md-font-size');
19
+ color: rc-theme('checkbox-text-color');
20
+ position: relative;
21
+
22
+ // ── Sizes ────────────────────────────────────────────────────────────────
23
+ &.rc-checkbox-sm {
24
+ font-size: rc-theme('checkbox-sm-font-size');
25
+
26
+ .rc-checkbox-box {
27
+ width: rc-theme('checkbox-sm-size');
28
+ height: rc-theme('checkbox-sm-size');
29
+ }
30
+ }
31
+
32
+ &.rc-checkbox-md {
33
+ font-size: rc-theme('checkbox-md-font-size');
34
+
35
+ .rc-checkbox-box {
36
+ width: rc-theme('checkbox-md-size');
37
+ height: rc-theme('checkbox-md-size');
38
+ }
39
+ }
40
+
41
+ &.rc-checkbox-lg {
42
+ font-size: rc-theme('checkbox-lg-font-size');
43
+
44
+ .rc-checkbox-box {
45
+ width: rc-theme('checkbox-lg-size');
46
+ height: rc-theme('checkbox-lg-size');
47
+ }
48
+ }
49
+
50
+ // ── Hover (non-disabled) ──────────────────────────────────────────────────
51
+ &:not(.rc-checkbox-disabled):hover .rc-checkbox-box {
52
+ border-color: rc-theme('checkbox-hover-border-color');
53
+ background: rc-theme('checkbox-hover-background');
54
+ }
55
+
56
+ // ── Checked state ────────────────────────────────────────────────────────
57
+ &.rc-checkbox-checked .rc-checkbox-box,
58
+ &.rc-checkbox-indeterminate .rc-checkbox-box {
59
+ background: rc-theme('checkbox-checked-background');
60
+ border-color: rc-theme('checkbox-checked-border-color');
61
+ color: rc-theme('checkbox-checked-icon-color');
62
+ }
63
+
64
+ &.rc-checkbox-checked:not(.rc-checkbox-disabled):hover .rc-checkbox-box,
65
+ &.rc-checkbox-indeterminate:not(.rc-checkbox-disabled):hover
66
+ .rc-checkbox-box {
67
+ background: rc-theme('checkbox-checked-hover-background');
68
+ border-color: rc-theme('checkbox-checked-hover-background');
69
+ }
70
+
71
+ // ── Disabled ─────────────────────────────────────────────────────────────
72
+ &.rc-checkbox-disabled {
73
+ cursor: not-allowed;
74
+ opacity: rc-theme('checkbox-disabled-opacity');
75
+ }
76
+
77
+ // ── Status variants ───────────────────────────────────────────────────────
78
+ &.rc-checkbox-success .rc-checkbox-box {
79
+ border-color: rc-theme('checkbox-success-border-color');
80
+ }
81
+
82
+ &.rc-checkbox-success.rc-checkbox-checked .rc-checkbox-box,
83
+ &.rc-checkbox-success.rc-checkbox-indeterminate .rc-checkbox-box {
84
+ background: rc-theme('checkbox-success-checked-background');
85
+ border-color: rc-theme('checkbox-success-checked-background');
86
+ }
87
+
88
+ &.rc-checkbox-warning .rc-checkbox-box {
89
+ border-color: rc-theme('checkbox-warning-border-color');
90
+ }
91
+
92
+ &.rc-checkbox-warning.rc-checkbox-checked .rc-checkbox-box,
93
+ &.rc-checkbox-warning.rc-checkbox-indeterminate .rc-checkbox-box {
94
+ background: rc-theme('checkbox-warning-checked-background');
95
+ border-color: rc-theme('checkbox-warning-checked-background');
96
+ color: rc-theme('checkbox-warning-icon-color');
97
+ }
98
+
99
+ &.rc-checkbox-danger .rc-checkbox-box {
100
+ border-color: rc-theme('checkbox-danger-border-color');
101
+ }
102
+
103
+ &.rc-checkbox-danger.rc-checkbox-checked .rc-checkbox-box,
104
+ &.rc-checkbox-danger.rc-checkbox-indeterminate .rc-checkbox-box {
105
+ background: rc-theme('checkbox-danger-checked-background');
106
+ border-color: rc-theme('checkbox-danger-checked-background');
107
+ }
108
+
109
+ // ── Focus ring (via native input focus-visible) ────────────────────────
110
+ &:has(.rc-checkbox-input:focus-visible) .rc-checkbox-box {
111
+ outline: 2px solid rc-theme('checkbox-focus-outline-color');
112
+ outline-offset: 2px;
113
+ }
114
+
115
+ // ── Label left variant ────────────────────────────────────────────────────
116
+ &.rc-checkbox-label-left {
117
+ flex-direction: row-reverse;
118
+ }
119
+ }
120
+
121
+ // ── Visual checkbox box ────────────────────────────────────────────────────
122
+ .rc-checkbox-box {
123
+ flex-shrink: 0;
124
+ display: inline-flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ border: 1.5px solid rc-theme('checkbox-border-color');
128
+ border-radius: rc-theme('checkbox-border-radius');
129
+ background: rc-theme('checkbox-background');
130
+ color: rc-theme('checkbox-icon-color');
131
+ @include rc-component-animation(background border-color);
132
+
133
+ // Default md size (fallback when no size class)
134
+ width: rc-theme('checkbox-md-size');
135
+ height: rc-theme('checkbox-md-size');
136
+ }
137
+
138
+ // ── Checkmark / indeterminate SVG ─────────────────────────────────────────
139
+ .rc-checkbox-icon {
140
+ display: block;
141
+ flex-shrink: 0;
142
+ }
143
+
144
+ // ── Label text ─────────────────────────────────────────────────────────────
145
+ .rc-checkbox-label {
146
+ line-height: 1.5;
147
+ }
148
+
149
+ // ── Native input — invisible overlay covering the full host ──────────────
150
+ // Opacity-0 instead of clip so the input remains a real click/keyboard
151
+ // target (browser-native toggle, Space key, focus ring all work for free).
152
+ .rc-checkbox-input {
153
+ position: absolute;
154
+ inset: 0;
155
+ width: 100%;
156
+ height: 100%;
157
+ opacity: 0;
158
+ margin: 0;
159
+ padding: 0;
160
+ cursor: inherit;
161
+ z-index: 1;
162
+ }
163
+ }
@@ -0,0 +1,172 @@
1
+ // =============================================================================
2
+ // rc-chip Resolve Components Chip (Themed)
3
+ // =============================================================================
4
+
5
+ @use '../styles/theming/get-value' as *;
6
+ @use '../styles/theming/install' as *;
7
+ @use '../styles/theming/animation' as *;
8
+
9
+ @include rc-install-component() {
10
+ .rc-chip {
11
+ display: inline-flex;
12
+ align-items: center;
13
+ gap: rc-theme('chip-gap');
14
+ border-radius: rc-theme('chip-border-radius');
15
+ border: 1px solid rc-theme('chip-default-border-color');
16
+ background: rc-theme('chip-default-background-color');
17
+ color: rc-theme('chip-default-text-color');
18
+ font-family: rc-theme('chip-font-family');
19
+ font-weight: rc-theme('chip-font-weight');
20
+ white-space: nowrap;
21
+ cursor: default;
22
+ user-select: none;
23
+ @include rc-component-animation(background color border-color box-shadow);
24
+
25
+ // ── Sizes ──────────────────────────────────────────────────────────────
26
+
27
+ &-sm {
28
+ font-size: rc-theme('chip-sm-font-size');
29
+ padding: rc-theme('chip-sm-padding');
30
+
31
+ .rc-chip-icon,
32
+ .rc-chip-close rc-icon {
33
+ width: 0.875rem;
34
+ height: 0.875rem;
35
+ font-size: 0.875rem;
36
+ }
37
+ }
38
+
39
+ &-md {
40
+ font-size: rc-theme('chip-md-font-size');
41
+ padding: rc-theme('chip-md-padding');
42
+
43
+ .rc-chip-icon,
44
+ .rc-chip-close rc-icon {
45
+ width: 1rem;
46
+ height: 1rem;
47
+ font-size: 1rem;
48
+ }
49
+ }
50
+
51
+ // ── Variants ───────────────────────────────────────────────────────────
52
+
53
+ &-primary {
54
+ background: rc-theme('chip-primary-background-color');
55
+ color: rc-theme('chip-primary-text-color');
56
+ border-color: transparent;
57
+ }
58
+
59
+ &-success {
60
+ background: rc-theme('chip-success-background-color');
61
+ color: rc-theme('chip-success-text-color');
62
+ border-color: transparent;
63
+ }
64
+
65
+ &-warning {
66
+ background: rc-theme('chip-warning-background-color');
67
+ color: rc-theme('chip-warning-text-color');
68
+ border-color: transparent;
69
+ }
70
+
71
+ &-danger {
72
+ background: rc-theme('chip-danger-background-color');
73
+ color: rc-theme('chip-danger-text-color');
74
+ border-color: transparent;
75
+ }
76
+
77
+ &-info {
78
+ background: rc-theme('chip-info-background-color');
79
+ color: rc-theme('chip-info-text-color');
80
+ border-color: transparent;
81
+ }
82
+
83
+ // ── Clickable state ────────────────────────────────────────────────────
84
+
85
+ &-clickable {
86
+ cursor: pointer;
87
+
88
+ &:hover:not(.rc-chip-disabled) {
89
+ background: rc-theme('chip-hover-background-color');
90
+ border-color: rc-theme('chip-hover-border-color');
91
+ }
92
+
93
+ &:focus-visible {
94
+ outline: 2px solid rc-theme('chip-focus-outline-color');
95
+ outline-offset: 2px;
96
+ }
97
+
98
+ &.rc-chip-primary:hover:not(.rc-chip-disabled) {
99
+ filter: brightness(0.9);
100
+ }
101
+
102
+ &.rc-chip-success:hover:not(.rc-chip-disabled) {
103
+ filter: brightness(0.9);
104
+ }
105
+ &.rc-chip-warning:hover:not(.rc-chip-disabled) {
106
+ filter: brightness(0.9);
107
+ }
108
+ &.rc-chip-danger:hover:not(.rc-chip-disabled) {
109
+ filter: brightness(0.9);
110
+ }
111
+ &.rc-chip-info:hover:not(.rc-chip-disabled) {
112
+ filter: brightness(0.9);
113
+ }
114
+ }
115
+
116
+ // ── Selected state ─────────────────────────────────────────────────────
117
+
118
+ &-selected {
119
+ background: rc-theme('chip-selected-background-color');
120
+ color: rc-theme('chip-selected-text-color');
121
+ border-color: transparent;
122
+ }
123
+
124
+ // ── Disabled state ─────────────────────────────────────────────────────
125
+
126
+ &-disabled {
127
+ opacity: rc-theme('chip-disabled-opacity');
128
+ cursor: not-allowed;
129
+ pointer-events: none;
130
+ }
131
+
132
+ // ── Parts ──────────────────────────────────────────────────────────────
133
+
134
+ &-icon {
135
+ display: inline-flex;
136
+ align-items: center;
137
+ flex-shrink: 0;
138
+ opacity: 0.8;
139
+ }
140
+
141
+ &-label {
142
+ display: inline-flex;
143
+ align-items: center;
144
+ }
145
+
146
+ &-close {
147
+ display: inline-flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ background: none;
151
+ border: none;
152
+ padding: 0;
153
+ margin: 0;
154
+ margin-left: 0.125rem;
155
+ cursor: pointer;
156
+ color: inherit;
157
+ opacity: 0.65;
158
+ border-radius: 50%;
159
+ line-height: 0;
160
+ @include rc-component-animation(opacity background);
161
+
162
+ &:hover:not(:disabled) {
163
+ opacity: 1;
164
+ background: rc-theme('chip-close-hover-background-color');
165
+ }
166
+
167
+ &:disabled {
168
+ cursor: not-allowed;
169
+ }
170
+ }
171
+ }
172
+ }
@@ -0,0 +1,322 @@
1
+ @use '../styles/theming/get-value' as *;
2
+ @use '../styles/theming/install' as *;
3
+ @use '../styles/theming/animation' as *;
4
+
5
+ @include rc-install-component() {
6
+ // ── Host / Trigger ──────────────────────────────────────────────────────────
7
+ .rc-datepicker {
8
+ display: inline-flex;
9
+ flex-direction: column;
10
+ position: relative;
11
+ width: 100%;
12
+ }
13
+
14
+ .rc-datepicker-trigger {
15
+ display: flex;
16
+ align-items: center;
17
+ gap: 0.375rem;
18
+ cursor: pointer;
19
+ user-select: none;
20
+ outline: none;
21
+ width: 100%;
22
+ box-sizing: border-box;
23
+ background: rc-theme('datepicker-background');
24
+ border: 1.5px solid rc-theme('datepicker-border-color');
25
+ border-radius: rc-theme('datepicker-border-radius');
26
+ padding: rc-theme('datepicker-padding-md');
27
+ font-size: rc-theme('datepicker-font-size-md');
28
+ color: rc-theme('datepicker-text-color');
29
+ @include rc-component-animation(
30
+ border-color box-shadow background,
31
+ $duration: rc-theme('datepicker-transition-duration'),
32
+ $timing: rc-theme('datepicker-transition-timing')
33
+ );
34
+ height: rc-theme('datepicker-height-md');
35
+
36
+ &:hover:not(.rc-datepicker-disabled .rc-datepicker-trigger) {
37
+ border-color: rc-theme('datepicker-hover-border-color');
38
+ }
39
+
40
+ &:focus-visible,
41
+ .rc-datepicker-open & {
42
+ outline: none;
43
+ border-color: rc-theme('datepicker-focus-border-color');
44
+ box-shadow: rc-theme('datepicker-focus-shadow');
45
+ }
46
+ }
47
+
48
+ // ── Disabled ────────────────────────────────────────────────────────────────
49
+ .rc-datepicker-disabled .rc-datepicker-trigger {
50
+ background: rc-theme('datepicker-disabled-background');
51
+ border-color: rc-theme('datepicker-disabled-border-color');
52
+ color: rc-theme('datepicker-disabled-text-color');
53
+ cursor: not-allowed;
54
+ pointer-events: none;
55
+ opacity: 0.7;
56
+ }
57
+
58
+ // ── Status variants ─────────────────────────────────────────────────────────
59
+ .rc-datepicker-success .rc-datepicker-trigger {
60
+ border-color: rc-theme('datepicker-success-border-color');
61
+ &:focus-visible,
62
+ .rc-datepicker-open.rc-datepicker-success & {
63
+ box-shadow: rc-theme('datepicker-success-focus-shadow');
64
+ }
65
+ }
66
+
67
+ .rc-datepicker-warning .rc-datepicker-trigger {
68
+ border-color: rc-theme('datepicker-warning-border-color');
69
+ &:focus-visible,
70
+ .rc-datepicker-open.rc-datepicker-warning & {
71
+ box-shadow: rc-theme('datepicker-warning-focus-shadow');
72
+ }
73
+ }
74
+
75
+ .rc-datepicker-danger .rc-datepicker-trigger {
76
+ border-color: rc-theme('datepicker-danger-border-color');
77
+ &:focus-visible,
78
+ .rc-datepicker-open.rc-datepicker-danger & {
79
+ box-shadow: rc-theme('datepicker-danger-focus-shadow');
80
+ }
81
+ }
82
+
83
+ // ── Size variants ───────────────────────────────────────────────────────────
84
+ .rc-datepicker-sm .rc-datepicker-trigger {
85
+ padding: rc-theme('datepicker-padding-sm');
86
+ font-size: rc-theme('datepicker-font-size-sm');
87
+ height: rc-theme('datepicker-height-sm');
88
+ }
89
+
90
+ .rc-datepicker-lg .rc-datepicker-trigger {
91
+ padding: rc-theme('datepicker-padding-lg');
92
+ font-size: rc-theme('datepicker-font-size-lg');
93
+ height: rc-theme('datepicker-height-lg');
94
+ }
95
+
96
+ // ── Trigger internals ───────────────────────────────────────────────────────
97
+ .rc-datepicker-trigger-text {
98
+ flex: 1;
99
+ overflow: hidden;
100
+ text-overflow: ellipsis;
101
+ white-space: nowrap;
102
+ line-height: 1.25;
103
+ }
104
+
105
+ .rc-datepicker-trigger-placeholder {
106
+ color: rc-theme('datepicker-placeholder-color');
107
+ }
108
+
109
+ .rc-datepicker-icon {
110
+ flex-shrink: 0;
111
+ display: flex;
112
+ align-items: center;
113
+ color: rc-theme('datepicker-icon-color');
114
+ line-height: 1;
115
+ }
116
+
117
+ .rc-datepicker-clear {
118
+ flex-shrink: 0;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ padding: 0.125rem;
123
+ background: transparent;
124
+ border: none;
125
+ cursor: pointer;
126
+ color: rc-theme('datepicker-icon-color');
127
+ border-radius: rc-theme('datepicker-border-radius');
128
+ line-height: 1;
129
+
130
+ &:hover {
131
+ color: rc-theme('datepicker-text-color');
132
+ }
133
+ }
134
+
135
+ // ── Panel ───────────────────────────────────────────────────────────────────
136
+ .rc-datepicker-panel {
137
+ background: rc-theme('datepicker-panel-background');
138
+ border: 1px solid rc-theme('datepicker-panel-border-color');
139
+ border-radius: rc-theme('datepicker-panel-border-radius');
140
+ box-shadow: rc-theme('datepicker-panel-shadow');
141
+ padding: 0.75rem;
142
+ min-width: 16rem;
143
+ width: 16rem;
144
+ display: flex;
145
+ flex-direction: column;
146
+ gap: 0.5rem;
147
+ }
148
+
149
+ // ── Calendar ─────────────────────────────────────────────────────────────────
150
+ .rc-datepicker-calendar {
151
+ display: flex;
152
+ flex-direction: column;
153
+ gap: 0.375rem;
154
+ }
155
+
156
+ .rc-datepicker-cal-header {
157
+ display: flex;
158
+ align-items: center;
159
+ justify-content: space-between;
160
+ gap: 0.25rem;
161
+ }
162
+
163
+ // month-label: make the ghost button span full available width
164
+ .rc-datepicker-month-label {
165
+ flex: 1;
166
+ justify-content: center;
167
+ font-weight: 500;
168
+ }
169
+
170
+ // ── Weekday labels ───────────────────────────────────────────────────────────
171
+ .rc-datepicker-weekdays {
172
+ display: grid;
173
+ grid-template-columns: repeat(7, 1fr);
174
+ text-align: center;
175
+ }
176
+
177
+ .rc-datepicker-weekday {
178
+ font-size: 0.6875rem;
179
+ font-weight: 600;
180
+ color: rc-theme('datepicker-weekday-color');
181
+ padding: 0.25rem 0;
182
+ text-align: center;
183
+ }
184
+
185
+ // ── Day grid ─────────────────────────────────────────────────────────────────
186
+ .rc-datepicker-days {
187
+ display: grid;
188
+ grid-template-columns: repeat(7, 1fr);
189
+ gap: 0.0625rem;
190
+ }
191
+
192
+ .rc-datepicker-day {
193
+ display: flex;
194
+ align-items: center;
195
+ justify-content: center;
196
+ aspect-ratio: 1;
197
+ height: 2rem;
198
+ padding: 0;
199
+ font-size: 0.8125rem;
200
+ background: transparent;
201
+ border: 1px solid transparent;
202
+ border-radius: rc-theme('datepicker-day-border-radius');
203
+ cursor: pointer;
204
+ color: rc-theme('datepicker-text-color');
205
+ @include rc-component-animation(background color);
206
+
207
+ &:hover:not(.rc-datepicker-day-disabled) {
208
+ background: rc-theme('datepicker-day-hover-background');
209
+ }
210
+
211
+ &:focus-visible {
212
+ outline: 2px solid rc-theme('datepicker-focus-border-color');
213
+ outline-offset: -1px;
214
+ }
215
+ }
216
+
217
+ .rc-datepicker-day-other {
218
+ color: rc-theme('datepicker-day-other-color');
219
+ }
220
+
221
+ .rc-datepicker-day-today {
222
+ border-color: rc-theme('datepicker-day-today-border-color');
223
+ font-weight: 600;
224
+ }
225
+
226
+ .rc-datepicker-day-selected {
227
+ background: rc-theme('datepicker-day-selected-background') !important;
228
+ color: rc-theme('datepicker-day-selected-color') !important;
229
+ font-weight: 600;
230
+ }
231
+
232
+ .rc-datepicker-day-disabled {
233
+ color: rc-theme('datepicker-day-disabled-color');
234
+ cursor: not-allowed;
235
+ pointer-events: none;
236
+ }
237
+
238
+ // ── Month / Year grids ────────────────────────────────────────────────────────
239
+ .rc-datepicker-month-grid,
240
+ .rc-datepicker-year-grid {
241
+ display: grid;
242
+ grid-template-columns: repeat(4, 1fr);
243
+ gap: 0.25rem;
244
+ }
245
+
246
+ .rc-datepicker-month-cell,
247
+ .rc-datepicker-year-cell {
248
+ padding: 0.375rem 0.25rem;
249
+ background: transparent;
250
+ border: 1px solid transparent;
251
+ border-radius: rc-theme('datepicker-border-radius');
252
+ cursor: pointer;
253
+ font-size: 0.8125rem;
254
+ text-align: center;
255
+ color: rc-theme('datepicker-text-color');
256
+ @include rc-component-animation(background);
257
+
258
+ &:hover {
259
+ background: rc-theme('datepicker-day-hover-background');
260
+ }
261
+ &:focus-visible {
262
+ outline: 2px solid rc-theme('datepicker-focus-border-color');
263
+ outline-offset: -1px;
264
+ }
265
+ }
266
+
267
+ .rc-datepicker-cell-active {
268
+ background: rc-theme('datepicker-day-selected-background') !important;
269
+ color: rc-theme('datepicker-day-selected-color') !important;
270
+ font-weight: 600;
271
+ }
272
+
273
+ // ── Time picker ──────────────────────────────────────────────────────────────
274
+ .rc-datepicker-time-picker {
275
+ display: flex;
276
+ align-items: center;
277
+ justify-content: center;
278
+ gap: 0.5rem;
279
+ padding: 0.375rem 0;
280
+ border-top: 1px solid rc-theme('datepicker-panel-border-color');
281
+ }
282
+
283
+ .rc-datepicker-time-picker-standalone {
284
+ border-top: none;
285
+ padding-top: 0;
286
+ padding-bottom: 0;
287
+ }
288
+
289
+ .rc-datepicker-time-sep {
290
+ font-size: 1.125rem;
291
+ font-weight: 600;
292
+ color: rc-theme('datepicker-text-color');
293
+ padding-bottom: 0.25rem;
294
+ }
295
+
296
+ .rc-datepicker-spinner {
297
+ display: flex;
298
+ flex-direction: column;
299
+ align-items: center;
300
+ gap: 0.125rem;
301
+ }
302
+
303
+ .rc-datepicker-spinner-value {
304
+ font-size: 1.125rem;
305
+ font-weight: 600;
306
+ color: rc-theme('datepicker-text-color');
307
+ min-width: 2rem;
308
+ text-align: center;
309
+ line-height: 1.5;
310
+ font-variant-numeric: tabular-nums;
311
+ }
312
+
313
+ // ── Footer ───────────────────────────────────────────────────────────────────
314
+ .rc-datepicker-footer {
315
+ display: flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ gap: 0.5rem;
319
+ padding-top: 0.375rem;
320
+ border-top: 1px solid rc-theme('datepicker-panel-border-color');
321
+ }
322
+ }