@plexui/styles 0.0.0-stage → 0.1.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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -2
  3. package/dist/es/components/Accordion/Accordion.module.css +89 -0
  4. package/dist/es/components/Alert/Alert.module.css +210 -0
  5. package/dist/es/components/Avatar/Avatar.module.css +168 -0
  6. package/dist/es/components/Avatar/AvatarGroup.module.css +26 -0
  7. package/dist/es/components/Badge/Badge.module.css +196 -0
  8. package/dist/es/components/Breadcrumb/Breadcrumb.module.css +59 -0
  9. package/dist/es/components/Button/Button.module.css +863 -0
  10. package/dist/es/components/ButtonGroup/ButtonGroup.module.css +158 -0
  11. package/dist/es/components/Card/Card.module.css +125 -0
  12. package/dist/es/components/Checkbox/Checkbox.module.css +225 -0
  13. package/dist/es/components/CodeBlock/CodeBlock.module.css +139 -0
  14. package/dist/es/components/DataTable/DataTable.module.css +117 -0
  15. package/dist/es/components/DatePicker/Calendar.module.css +271 -0
  16. package/dist/es/components/DateRangePicker/Calendar.module.css +295 -0
  17. package/dist/es/components/DateRangePicker/Trigger.module.css +25 -0
  18. package/dist/es/components/Dialog/Dialog.module.css +240 -0
  19. package/dist/es/components/EmptyMessage/EmptyMessage.module.css +116 -0
  20. package/dist/es/components/Field/Field.module.css +152 -0
  21. package/dist/es/components/FieldError/FieldError.module.css +28 -0
  22. package/dist/es/components/FileUpload/FileUpload.module.css +133 -0
  23. package/dist/es/components/FloatingLabelInput/FloatingLabelInput.module.css +220 -0
  24. package/dist/es/components/FloatingLabelSelect/FloatingLabelSelect.module.css +152 -0
  25. package/dist/es/components/Image/Image.module.css +9 -0
  26. package/dist/es/components/Indicator/CircularProgress.module.css +28 -0
  27. package/dist/es/components/Indicator/LoadingDots.module.css +35 -0
  28. package/dist/es/components/Indicator/LoadingIndicator.module.css +41 -0
  29. package/dist/es/components/Input/Input.module.css +519 -0
  30. package/dist/es/components/InputGroup/InputGroup.module.css +309 -0
  31. package/dist/es/components/Kbd/Kbd.module.css +47 -0
  32. package/dist/es/components/Label/Label.module.css +16 -0
  33. package/dist/es/components/Markdown/Markdown.module.css +233 -0
  34. package/dist/es/components/MarkdownEditor/MarkdownEditor.module.css +297 -0
  35. package/dist/es/components/Menu/Menu.module.css +389 -0
  36. package/dist/es/components/OTPInput/OTPInput.module.css +70 -0
  37. package/dist/es/components/Popover/Popover.module.css +82 -0
  38. package/dist/es/components/Progress/Progress.module.css +34 -0
  39. package/dist/es/components/ProgressSteps/ProgressSteps.module.css +246 -0
  40. package/dist/es/components/RadioGroup/RadioGroup.module.css +159 -0
  41. package/dist/es/components/Select/Select.module.css +341 -0
  42. package/dist/es/components/SelectControl/SelectControl.module.css +558 -0
  43. package/dist/es/components/Separator/Separator.module.css +16 -0
  44. package/dist/es/components/ShimmerText/ShimmerText.module.css +43 -0
  45. package/dist/es/components/Sidebar/Sidebar.module.css +913 -0
  46. package/dist/es/components/Skeleton/Skeleton.module.css +17 -0
  47. package/dist/es/components/Slider/Slider.module.css +199 -0
  48. package/dist/es/components/StatCard/StatCard.module.css +234 -0
  49. package/dist/es/components/Switch/Switch.module.css +121 -0
  50. package/dist/es/components/Table/Table.module.css +56 -0
  51. package/dist/es/components/Tabs/Tabs.module.css +688 -0
  52. package/dist/es/components/TagInput/TagInput.module.css +320 -0
  53. package/dist/es/components/TextLink/TextLink.module.css +50 -0
  54. package/dist/es/components/Textarea/Textarea.module.css +272 -0
  55. package/dist/es/components/Toast/Toast.module.css +99 -0
  56. package/dist/es/components/Tooltip/Tooltip.module.css +91 -0
  57. package/dist/es/components/Transition/Animate.module.css +54 -0
  58. package/dist/es/components/Transition/AnimateLayout.module.css +101 -0
  59. package/dist/es/components/Transition/AnimateLayoutGroup.module.css +88 -0
  60. package/dist/es/components/Transition/TransitionGroup.module.css +4 -0
  61. package/dist/es/styles/base.css +102 -0
  62. package/dist/es/styles/globals.css +50 -0
  63. package/dist/es/styles/index.css +22 -0
  64. package/dist/es/styles/katex.min.css +1296 -0
  65. package/dist/es/styles/tailwind-utilities.css +1316 -0
  66. package/dist/es/styles/touch.css +71 -0
  67. package/dist/es/styles/variables-components.css +626 -0
  68. package/dist/es/styles/variables-primitive.css +327 -0
  69. package/dist/es/styles/variables-semantic.css +629 -0
  70. package/dist/es/styles/variables-tailwind-theme.css +34 -0
  71. package/dist/es/styles/variables-tokens-root.css +40 -0
  72. package/dist/es/types.js +4 -0
  73. package/dist/es/types.js.map +1 -0
  74. package/dist/es/vite/index.js +54 -0
  75. package/dist/es/vite/index.js.map +1 -0
  76. package/dist/types/types.d.ts +15 -0
  77. package/dist/types/vite/index.d.ts +55 -0
  78. package/package.json +109 -4
  79. package/postcss/functions.mjs +23 -0
  80. package/postcss/injectBreakpoints.mjs +47 -0
  81. package/postcss/mixins.mjs +100 -0
  82. package/postcss/parseLightDark.mjs +174 -0
  83. package/postcss/wrapModulesInLayer.mjs +21 -0
  84. package/postcss.config.mjs +52 -0
@@ -0,0 +1,117 @@
1
+ @layer components {.DataTable {
2
+ display: flex;
3
+ flex: 1;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ min-height: 0;
7
+ }.TableContainer {
8
+ flex: 1;
9
+ min-height: 0;
10
+ overflow: auto;
11
+ }.EmptyCell {
12
+ height: 200px;
13
+ vertical-align: middle;
14
+ color: var(--color-text-tertiary);
15
+ text-align: center;
16
+ }
17
+ :where(.DataTable[data-variant="bordered"]) .TableContainer {
18
+ border: 1px solid var(--color-border);
19
+ border-radius: var(--radius-xl);
20
+ overflow: hidden;
21
+ }
22
+
23
+ :where(.DataTable[data-variant="bordered"]) :where(thead) {
24
+ --table-header-background: var(--color-surface-secondary);
25
+ }
26
+
27
+ :where(.DataTable[data-variant="bordered"]) .Pagination {
28
+ border-top: none;
29
+ }
30
+ :where(.DataTable[data-clickable]) :where(tbody tr) {
31
+ cursor: pointer;
32
+ }
33
+
34
+ :where(.DataTable[data-clickable]) :where(tbody tr):focus-visible {
35
+ outline: 2px solid var(--color-ring);
36
+ outline-offset: -2px;
37
+ }/* The row selection column: as wide as its checkboxes (the table's fixed
38
+ layout takes column widths from the header row) */.SelectColumn {
39
+ box-sizing: content-box;
40
+ width: var(--checkbox-indicator-size);
41
+ }.Pagination {
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: space-between;
45
+ padding: calc(var(--spacing) * 3) 0;
46
+ border-top: 1px solid var(--color-border);
47
+ }.PaginationLeft {
48
+ display: flex;
49
+ align-items: center;
50
+ gap: calc(var(--spacing) * 2);
51
+ }.PaginationRight {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: calc(var(--spacing) * 3);
55
+ }.PaginationLabel {
56
+ color: var(--color-text-secondary);
57
+ font-size: var(--font-text-sm-size);
58
+ }.PaginationInfo {
59
+ color: var(--color-text-secondary);
60
+ font-size: var(--font-text-sm-size);
61
+ }.PaginationSelect {
62
+ -webkit-appearance: none;
63
+ -moz-appearance: none;
64
+ appearance: none;
65
+ padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2);
66
+ padding-right: calc(var(--spacing) * 6);
67
+ border: 1px solid var(--color-border);
68
+ border-radius: var(--radius-md);
69
+ color: var(--color-text);
70
+ font-size: var(--font-text-sm-size);
71
+ line-height: var(--font-text-sm-line-height);
72
+ cursor: pointer;
73
+ background-color: var(--color-surface);
74
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
75
+ background-position: right calc(var(--spacing) * 1.5) center;
76
+ background-repeat: no-repeat;
77
+ }
78
+
79
+ .PaginationSelect:focus-visible {
80
+ outline: 2px solid var(--color-ring);
81
+ outline-offset: -1px;
82
+ }.PaginationButtons {
83
+ display: flex;
84
+ align-items: center;
85
+ gap: calc(var(--spacing) * 1);
86
+ }.ColumnHeaderButton {
87
+ all: unset;
88
+ display: inline-flex;
89
+ align-items: center;
90
+ gap: calc(var(--spacing) * 1);
91
+ color: inherit;
92
+ font-weight: inherit;
93
+ white-space: nowrap;
94
+ -webkit-user-select: none;
95
+ -moz-user-select: none;
96
+ user-select: none;
97
+ cursor: pointer;
98
+ }
99
+
100
+ .ColumnHeaderButton:hover {
101
+ color: var(--color-text);
102
+ }.SortIcon {
103
+ display: inline-flex;
104
+ opacity: 0.4;
105
+ }
106
+
107
+ :where(.ColumnHeaderButton:hover) .SortIcon {
108
+ opacity: 0.7;
109
+ }
110
+
111
+ .SortIcon svg {
112
+ width: var(--font-text-sm-size);
113
+ height: var(--font-text-sm-size);
114
+ }:where(.ColumnHeaderButton[data-sorted]) .SortIcon {
115
+ opacity: 1;
116
+ }
117
+ }
@@ -0,0 +1,271 @@
1
+ @layer components {.CalendarContainer {
2
+ position: relative;
3
+ width: 210px;
4
+ /* Default size of the calendar is assumed to be 224px */
5
+ /* and then is dynamically set via JS measuring */
6
+ height: 224px;
7
+ }.Previous {
8
+ position: absolute;
9
+ top: 0;
10
+ left: -2px;
11
+ z-index: 2;
12
+ background-color: var(--color-surface-elevated);
13
+ }
14
+
15
+ /* Prevent titles from bleeding beyond the button */
16
+ .Previous::before {
17
+ position: absolute;
18
+ top: 0;
19
+ bottom: 0;
20
+ left: -10px;
21
+ display: block;
22
+ width: 12px;
23
+ background-color: var(--color-surface-elevated);
24
+ content: "";
25
+ }
26
+
27
+ /* Slide fade as titles collide with the button */
28
+ .Previous::after {
29
+ position: absolute;
30
+ top: 0;
31
+ bottom: 0;
32
+ left: 100%;
33
+ display: block;
34
+ width: 14px;
35
+ background-color: var(--color-surface-elevated);
36
+ content: "";
37
+ -webkit-mask-image: linear-gradient(-90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
38
+ mask-image: linear-gradient(-90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
39
+ }.Next {
40
+ position: absolute;
41
+ top: 0;
42
+ right: -2px;
43
+ z-index: 2;
44
+ background-color: var(--color-surface-elevated);
45
+ }
46
+
47
+ /* Prevent titles from bleeding beyond the button */
48
+ .Next::before {
49
+ position: absolute;
50
+ top: 0;
51
+ right: -10px;
52
+ bottom: 0;
53
+ display: block;
54
+ width: 12px;
55
+ background-color: var(--color-surface-elevated);
56
+ content: "";
57
+ }
58
+
59
+ /* Slide fade as titles collide with the button */
60
+ .Next::after {
61
+ position: absolute;
62
+ top: 0;
63
+ right: 100%;
64
+ bottom: 0;
65
+ display: block;
66
+ width: 14px;
67
+ background-color: var(--color-surface-elevated);
68
+ content: "";
69
+ -webkit-mask-image: linear-gradient(90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
70
+ mask-image: linear-gradient(90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
71
+ }/* Lift the inner button above the pseudo elements to avoid clipping in the focus ring box shadow. */.Next button[type="button"],
72
+ .Previous button[type="button"] {
73
+ z-index: 2;
74
+ }.CalendarContainer[data-dropdown] .Previous::before,
75
+ .CalendarContainer[data-dropdown] .Previous::after,
76
+ .CalendarContainer[data-dropdown] .Next::before,
77
+ .CalendarContainer[data-dropdown] .Next::after {
78
+ display: none;
79
+ }.CalendarWrapper {
80
+ overflow: hidden;
81
+ padding: 10px 12px 12px;
82
+ }.CalendarRange {
83
+ transition: transform 0.25s var(--cubic-move);
84
+ }.Calendar {
85
+ --cell-size: 30px;
86
+ --cell-vertical-gutter: 2px;
87
+
88
+ position: absolute;
89
+ top: 0;
90
+ width: 210px;
91
+ font-size: 14px;
92
+ }
93
+
94
+ .Calendar[data-static] {
95
+ position: relative;
96
+ }.Week {
97
+ display: flex;
98
+ margin-bottom: var(--cell-vertical-gutter);
99
+ }
100
+
101
+ .Week:last-child {
102
+ margin-bottom: 0;
103
+ }.DayLabel {
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: center;
107
+ width: var(--cell-size);
108
+ height: var(--cell-size);
109
+ color: var(--color-text-secondary);
110
+ font-size: 12px;
111
+ letter-spacing: normal;
112
+ text-align: center;
113
+ }.MonthLabel {
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ height: 28px;
118
+ padding: 0;
119
+ margin: 0 0 6px;
120
+ color: var(--color-text);
121
+ font-size: 13px;
122
+ font-weight: var(--font-weight-semibold);
123
+ }.Day {
124
+ position: relative;
125
+ width: var(--cell-size);
126
+ height: var(--cell-size);
127
+ text-align: center;
128
+ transition: background-color 0.15s var(--cubic-enter);
129
+ }
130
+
131
+ .Day[data-is-selected] {
132
+ border-radius: var(--radius-full);
133
+ }
134
+
135
+ .Day[data-is-selected], :where([data-theme="light"]) .Day[data-is-selected] {
136
+ background-color: var(--alpha-06);
137
+ }
138
+
139
+ :where([data-theme="dark"]) .Day[data-is-selected] {
140
+ background-color: var(--alpha-08);
141
+ }.InteractiveDay {
142
+ position: relative;
143
+ display: block;
144
+ width: var(--cell-size);
145
+ height: var(--cell-size);
146
+ border: 0;
147
+ border-radius: var(--radius-full);
148
+ -webkit-appearance: auto;
149
+ -moz-appearance: auto;
150
+ appearance: auto;
151
+ background: none;
152
+ cursor: pointer;
153
+ font-size: var(--font-text-sm-size);
154
+ }
155
+
156
+ .InteractiveDay::before {
157
+ position: absolute;
158
+ inset: 0;
159
+ display: block;
160
+ border: 1px solid var(--color-text);
161
+ border-radius: var(--radius-full);
162
+ content: "";
163
+ opacity: 0;
164
+ transition:
165
+ color,
166
+ 0.15s var(--cubic-enter),
167
+ opacity 0.15s var(--cubic-enter);
168
+ }
169
+
170
+ @media (hover: hover) and (pointer: fine) {
171
+ .InteractiveDay:hover::before {
172
+ opacity: 1;
173
+ }
174
+ }
175
+
176
+ .InteractiveDay[disabled] {
177
+ cursor: not-allowed;
178
+ opacity: 0.4;
179
+ }
180
+
181
+ .InteractiveDay[disabled]::before {
182
+ display: none;
183
+ }
184
+
185
+ [data-is-selected] .InteractiveDay {
186
+ background: var(--color-text);
187
+ color: var(--color-text-inverse);
188
+ }.TodayDot {
189
+ position: absolute;
190
+ bottom: 3px;
191
+ left: 50%;
192
+ width: 3px;
193
+ height: 3px;
194
+ border-radius: 100%;
195
+ margin-left: -1px;
196
+ background-color: var(--color-text);
197
+ transition: background-color 0.15s var(--cubic-enter);
198
+ }
199
+
200
+ [data-is-selected] .TodayDot {
201
+ background-color: var(--gray-0);
202
+ }.MonthLabelSpacer {
203
+ height: 28px;
204
+ margin: 0 0 6px;
205
+ }.DropdownCaption {
206
+ position: absolute;
207
+ top: 0;
208
+ right: 0;
209
+ left: 0;
210
+ z-index: 1;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ gap: 2px;
215
+ height: 28px;
216
+ pointer-events: none;
217
+ }.DropdownCaption > * {
218
+ pointer-events: auto;
219
+ }.TimeFooter {
220
+ display: flex;
221
+ align-items: center;
222
+ justify-content: space-between;
223
+ padding-top: 10px;
224
+ margin-top: 10px;
225
+ }.TimeFooter, :where([data-theme="light"]) .TimeFooter {
226
+ border-top: 1px solid var(--alpha-06);
227
+ }:where([data-theme="dark"]) .TimeFooter {
228
+ border-top: 1px solid var(--alpha-08);
229
+ }.TimeLabel {
230
+ color: var(--color-text-secondary);
231
+ font-size: 13px;
232
+ }.TimeInputGroup {
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 2px;
236
+ }.TimeField {
237
+ width: 32px;
238
+ height: 28px;
239
+ padding: 0;
240
+ border: 0;
241
+ border-radius: var(--radius-sm);
242
+ color: var(--color-text);
243
+ font-size: 13px;
244
+ font-variant-numeric: tabular-nums;
245
+ font-weight: var(--font-weight-semibold);
246
+ text-align: center;
247
+ transition: background-color 0.15s var(--cubic-enter);
248
+ }.TimeField, :where([data-theme="light"]) .TimeField {
249
+ background-color: var(--alpha-04);
250
+ }:where([data-theme="dark"]) .TimeField {
251
+ background-color: var(--alpha-06);
252
+ }
253
+
254
+ .TimeField:focus {
255
+ outline: 2px solid var(--color-ring);
256
+ outline-offset: -2px;
257
+ }
258
+
259
+ .TimeField:focus, :where([data-theme="light"]) .TimeField:focus {
260
+ background-color: var(--alpha-06);
261
+ }
262
+
263
+ :where([data-theme="dark"]) .TimeField:focus {
264
+ background-color: var(--alpha-08);
265
+ }.TimeSeparator {
266
+ color: var(--color-text-secondary);
267
+ font-size: 13px;
268
+ font-weight: var(--font-weight-semibold);
269
+ line-height: 1;
270
+ }
271
+ }
@@ -0,0 +1,295 @@
1
+ @layer components {.CalendarContainer {
2
+ position: relative;
3
+ width: 210px;
4
+ /* Default size of the calendar is assumed to be 224px */
5
+ /* and then is dynamically set via JS measuring */
6
+ height: 224px;
7
+ }
8
+
9
+ @media (min-width: 576px) {.CalendarContainer {
10
+ width: 452px;
11
+ }
12
+ }.Previous {
13
+ position: absolute;
14
+ top: 0;
15
+ left: -2px;
16
+ z-index: 2;
17
+ background-color: var(--color-surface-elevated);
18
+ }
19
+
20
+ /* Prevent titles from bleeding beyond the button */
21
+ .Previous::before {
22
+ position: absolute;
23
+ top: 0;
24
+ bottom: 0;
25
+ left: -10px;
26
+ display: block;
27
+ width: 12px;
28
+ background-color: var(--color-surface-elevated);
29
+ content: "";
30
+ }
31
+
32
+ /* Slide fade as titles collide with the button */
33
+ .Previous::after {
34
+ position: absolute;
35
+ top: 0;
36
+ bottom: 0;
37
+ left: 100%;
38
+ display: block;
39
+ width: 14px;
40
+ background-color: var(--color-surface-elevated);
41
+ content: "";
42
+ -webkit-mask-image: linear-gradient(-90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
43
+ mask-image: linear-gradient(-90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
44
+ }.Next {
45
+ position: absolute;
46
+ top: 0;
47
+ right: -2px;
48
+ z-index: 2;
49
+ background-color: var(--color-surface-elevated);
50
+ }
51
+
52
+ /* Prevent titles from bleeding beyond the button */
53
+ .Next::before {
54
+ position: absolute;
55
+ top: 0;
56
+ right: -10px;
57
+ bottom: 0;
58
+ display: block;
59
+ width: 12px;
60
+ background-color: var(--color-surface-elevated);
61
+ content: "";
62
+ }
63
+
64
+ /* Slide fade as titles collide with the button */
65
+ .Next::after {
66
+ position: absolute;
67
+ top: 0;
68
+ right: 100%;
69
+ bottom: 0;
70
+ display: block;
71
+ width: 14px;
72
+ background-color: var(--color-surface-elevated);
73
+ content: "";
74
+ -webkit-mask-image: linear-gradient(90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
75
+ mask-image: linear-gradient(90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
76
+ }/* Lift the inner button above the pseudo elements to avoid clipping in the focus ring box shadow. */.Next button[type="button"],
77
+ .Previous button[type="button"] {
78
+ z-index: 2;
79
+ }.CalendarWrapper {
80
+ overflow: hidden;
81
+ padding: 10px 12px 12px;
82
+ }.CalendarRange {
83
+ transition: transform 0.25s var(--cubic-move);
84
+ }.ButtonText {
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: space-between;
88
+ width: 100%;
89
+ font-weight: var(--font-weight-normal);
90
+ text-align: left;
91
+ }
92
+
93
+ [data-active] .ButtonText {
94
+ font-weight: var(--font-weight-semibold);
95
+ }.Calendar {
96
+ --cell-size: 30px;
97
+ --cell-vertical-gutter: 2px;
98
+
99
+ position: absolute;
100
+ top: 0;
101
+ width: 210px;
102
+ font-size: 14px;
103
+ }.Week {
104
+ display: flex;
105
+ margin-bottom: var(--cell-vertical-gutter);
106
+ }
107
+
108
+ .Week:last-child {
109
+ margin-bottom: 0;
110
+ }.DayLabel {
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ width: var(--cell-size);
115
+ height: var(--cell-size);
116
+ color: var(--color-text-secondary);
117
+ font-size: 12px;
118
+ letter-spacing: normal;
119
+ text-align: center;
120
+ }.MonthLabel {
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ height: 28px;
125
+ padding: 0;
126
+ margin: 0 0 6px;
127
+ color: var(--color-text);
128
+ font-size: 13px;
129
+ font-weight: var(--font-weight-semibold);
130
+ }.Day {
131
+ position: relative;
132
+ width: var(--cell-size);
133
+ height: var(--cell-size);
134
+ text-align: center;
135
+ transition: background-color 0.15s var(--cubic-enter);
136
+ }
137
+
138
+ .Day:first-child {
139
+ border-radius: var(--radius-xs) 0 0 var(--radius-xs);
140
+ }
141
+
142
+ .Day:last-child {
143
+ border-radius: 0 var(--radius-xs) var(--radius-xs) 0;
144
+ }
145
+
146
+ .Day[data-is-start], .Day[data-is-end], .Day[data-is-in-range], :where([data-theme="light"]) .Day[data-is-start], :where([data-theme="light"]) .Day[data-is-end], :where([data-theme="light"]) .Day[data-is-in-range] {
147
+ background-color: var(--alpha-06);
148
+ }
149
+
150
+ :where([data-theme="dark"]) .Day[data-is-start], :where([data-theme="dark"]) .Day[data-is-end], :where([data-theme="dark"]) .Day[data-is-in-range] {
151
+ background-color: var(--alpha-08);
152
+ }
153
+
154
+ .Day[data-is-start][data-is-end] {
155
+ background: none;
156
+ }
157
+
158
+ .Day[data-is-first-range-trail] {
159
+ border-radius: 0;
160
+ }
161
+
162
+ .Day[data-is-first-range-trail]::before {
163
+ position: absolute;
164
+ top: 0;
165
+ right: 100%;
166
+ bottom: 0;
167
+ width: 15px;
168
+ content: "";
169
+ -webkit-mask-image: linear-gradient(90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
170
+ mask-image: linear-gradient(90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
171
+ transition: opacity 0.15s var(--cubic-enter);
172
+ }
173
+
174
+ .Day[data-is-first-range-trail]::before, :where([data-theme="light"]) .Day[data-is-first-range-trail]::before {
175
+ background-color: var(--alpha-06);
176
+ }
177
+
178
+ :where([data-theme="dark"]) .Day[data-is-first-range-trail]::before {
179
+ background-color: var(--alpha-08);
180
+ }
181
+
182
+ @starting-style {
183
+
184
+ .Day[data-is-first-range-trail]::before {
185
+ opacity: 0
186
+ }
187
+ }
188
+
189
+ .Day[data-is-last-range-trail] {
190
+ border-radius: 0;
191
+ }
192
+
193
+ .Day[data-is-last-range-trail]::before {
194
+ position: absolute;
195
+ top: 0;
196
+ bottom: 0;
197
+ left: 100%;
198
+ width: 15px;
199
+ content: "";
200
+ -webkit-mask-image: linear-gradient(-90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
201
+ mask-image: linear-gradient(-90deg, rgb(0 0 0 / 0%), rgb(0 0 0 / 100%));
202
+ transition: opacity 0.15s var(--cubic-enter);
203
+ }
204
+
205
+ .Day[data-is-last-range-trail]::before, :where([data-theme="light"]) .Day[data-is-last-range-trail]::before {
206
+ background-color: var(--alpha-06);
207
+ }
208
+
209
+ :where([data-theme="dark"]) .Day[data-is-last-range-trail]::before {
210
+ background-color: var(--alpha-08);
211
+ }
212
+
213
+ @starting-style {
214
+
215
+ .Day[data-is-last-range-trail]::before {
216
+ opacity: 0
217
+ }
218
+ }
219
+
220
+ .Day[data-is-start] {
221
+ border-bottom-left-radius: var(--radius-full);
222
+ border-top-left-radius: var(--radius-full);
223
+ }
224
+
225
+ .Day[data-is-end] {
226
+ border-bottom-right-radius: var(--radius-full);
227
+ border-top-right-radius: var(--radius-full);
228
+ }.InteractiveDay {
229
+ position: relative;
230
+ display: block;
231
+ width: var(--cell-size);
232
+ height: var(--cell-size);
233
+ border: 0;
234
+ border-radius: var(--radius-full);
235
+ -webkit-appearance: auto;
236
+ -moz-appearance: auto;
237
+ appearance: auto;
238
+ background: none;
239
+ cursor: pointer;
240
+ font-size: var(--font-text-sm-size);
241
+ }
242
+
243
+ .InteractiveDay::before {
244
+ position: absolute;
245
+ inset: 0;
246
+ display: block;
247
+ border: 1px solid var(--color-text);
248
+ border-radius: var(--radius-full);
249
+ content: "";
250
+ opacity: 0;
251
+ transition:
252
+ color,
253
+ 0.15s var(--cubic-enter),
254
+ opacity 0.15s var(--cubic-enter);
255
+ }
256
+
257
+ .InteractiveDay:hover::before {
258
+ opacity: 1;
259
+ }
260
+
261
+ .InteractiveDay[disabled] {
262
+ cursor: not-allowed;
263
+ opacity: 0.4;
264
+ }
265
+
266
+ .InteractiveDay[disabled]::before {
267
+ display: none;
268
+ }
269
+
270
+ [data-is-start] .InteractiveDay,
271
+ [data-is-end] .InteractiveDay {
272
+ background: var(--color-text);
273
+ color: var(--color-text-inverse);
274
+ }.TodayDot {
275
+ position: absolute;
276
+ bottom: 3px;
277
+ left: 50%;
278
+ width: 3px;
279
+ height: 3px;
280
+ border-radius: 100%;
281
+ margin-left: -1px;
282
+ background-color: var(--color-text);
283
+ transition: background-color 0.15s var(--cubic-enter);
284
+ }
285
+
286
+ [data-is-start] .TodayDot,
287
+ [data-is-end] .TodayDot {
288
+ background-color: var(--gray-0);
289
+ }.Shortcuts {
290
+ flex: 1;
291
+ width: 150px;
292
+ padding: calc(var(--spacing) * 2);
293
+ border-right: 1px solid var(--color-border);
294
+ }
295
+ }
@@ -0,0 +1,25 @@
1
+ @layer components {.StepperControl {
2
+ padding-right: calc((var(--select-control-size) - var(--clear-size)) / 2);
3
+ padding-left: calc((var(--select-control-size) - var(--clear-size)) / 2);
4
+ }
5
+
6
+ .StepperControl .StepperPrevious,
7
+ .StepperControl .StepperNext {
8
+ --button-size: var(--clear-size);
9
+ --button-icon-size: var(--clear-icon-size);
10
+ }.StepperContent {
11
+ display: flex;
12
+ align-items: center;
13
+ gap: var(--select-control-gap);
14
+ }.StepperText {
15
+ min-width: 9em;
16
+ text-align: center;
17
+ }.RangeText {
18
+ display: inline-block;
19
+ font-variant: tabular-nums;
20
+ }.RangeTextSeparator {
21
+ margin: 0 calc(var(--spacing) * 1);
22
+ font-size: var(--font-text-sm-size);
23
+ letter-spacing: 0;
24
+ }
25
+ }