@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,297 @@
1
+ @layer components {.Container {
2
+ position: relative;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ border-radius: var(--control-radius-md);
7
+ color: var(--color-text);
8
+ cursor: text;
9
+ font-size: var(--control-font-size-md);
10
+ font-weight: var(--font-weight-normal);
11
+ overflow: hidden;
12
+ transition-duration: var(--transition-duration-basic);
13
+ transition-property: color, box-shadow, background-color;
14
+ transition-timing-function: var(--transition-ease-basic);
15
+ }
16
+
17
+ .Container:where([data-variant="outline"]) {
18
+ box-shadow: 0 0 0 1px var(--input-outline-border-color) inset;
19
+ }
20
+ @media (hover: hover) and (pointer: fine) {.Container:where([data-variant="outline"]):not([data-disabled]):hover {
21
+ box-shadow: 0 0 0 1px var(--input-outline-border-color-hover) inset;
22
+ }
23
+ }
24
+
25
+ .Container:where([data-variant="outline"]):not([data-disabled])[data-focused="true"] {
26
+ box-shadow: 0 0 0 1px var(--input-outline-border-color-focus) inset;
27
+ }
28
+
29
+ .Container:where([data-variant="outline"]):not([data-disabled])[data-invalid] {
30
+ box-shadow: 0 0 0 1px var(--input-border-color-invalid) inset;
31
+ }
32
+
33
+ .Container:where([data-variant="soft"]) {
34
+ background-color: var(--input-soft-background-color);
35
+ }
36
+ .Container:where([data-variant="soft"]):not([data-disabled])[data-focused="true"] {
37
+ box-shadow: 0 0 0 1px var(--input-soft-border-color-focus) inset;
38
+ }
39
+
40
+ .Container:where([data-variant="soft"]):not([data-disabled])[data-invalid] {
41
+ box-shadow: 0 0 0 1px var(--input-border-color-invalid) inset;
42
+ }
43
+ .Container[data-invalid] ::-moz-selection {
44
+ background-color: var(--red-a50);
45
+ }
46
+ .Container[data-invalid] ::selection {
47
+ background-color: var(--red-a50);
48
+ }
49
+
50
+ .Container[data-disabled] {
51
+ cursor: not-allowed;
52
+ opacity: 0.5;
53
+ pointer-events: none;
54
+ }.Toolbar, :where([data-theme="light"]) .Toolbar {
55
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
56
+ }:where([data-theme="dark"]) .Toolbar {
57
+ border-bottom: 1px solid rgba(255, 255, 255, 0.07);
58
+ }.ToolbarGroup {
59
+ display: flex;
60
+ align-items: center;
61
+ gap: 2px;
62
+ padding: 6px;
63
+ }.ToolbarSeparator {
64
+ width: 1px;
65
+ height: 16px;
66
+ margin: 0 2px;
67
+ flex-shrink: 0;
68
+ }.ToolbarSeparator, :where([data-theme="light"]) .ToolbarSeparator {
69
+ background-color: rgba(0, 0, 0, 0.1);
70
+ }:where([data-theme="dark"]) .ToolbarSeparator {
71
+ background-color: rgba(255, 255, 255, 0.1);
72
+ }.ToolbarButton {
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ flex-shrink: 0;
77
+ width: 24px;
78
+ height: 24px;
79
+ padding: 0;
80
+ border: 0;
81
+ border-radius: var(--control-radius-sm);
82
+ background: none;
83
+ color: var(--color-text-secondary);
84
+ cursor: pointer;
85
+ font-size: 16px;
86
+ transition-duration: var(--transition-duration-basic);
87
+ transition-property: color, background-color;
88
+ transition-timing-function: var(--transition-ease-basic);
89
+ }
90
+
91
+ @media (hover: hover) and (pointer: fine) {.ToolbarButton:hover {
92
+ background-color: var(--color-background-primary-ghost-hover);
93
+ color: var(--color-text);
94
+ }
95
+ }
96
+
97
+ .ToolbarButton:where([data-active="true"]) {
98
+ background-color: var(--color-background-primary-ghost-active);
99
+ color: var(--color-text);
100
+ }
101
+
102
+ .ToolbarButton:disabled {
103
+ cursor: not-allowed;
104
+ opacity: 0.5;
105
+ }.ToolbarEnd {
106
+ margin-left: auto;
107
+ }.Editor {
108
+ padding: 8px 12px;
109
+ line-height: 20px;
110
+ }.EditorContent {
111
+ outline: none;
112
+ }
113
+
114
+ .EditorContent > * + * {
115
+ margin-top: 8px;
116
+ }
117
+
118
+ .EditorContent :global(p.is-editor-empty):first-child::before {
119
+ content: attr(data-placeholder);
120
+ float: left;
121
+ height: 0;
122
+ pointer-events: none;
123
+ color: var(--input-placeholder-text-color);
124
+ }
125
+
126
+ .EditorContent strong {
127
+ font-weight: var(--font-weight-semibold);
128
+ }
129
+
130
+ .EditorContent em {
131
+ font-style: italic;
132
+ }
133
+
134
+ .EditorContent a {
135
+ color: var(--link-primary-text-color);
136
+ text-decoration: underline;
137
+ }
138
+
139
+ .EditorContent ul,
140
+ .EditorContent ol {
141
+ padding-left: 20px;
142
+ }
143
+
144
+ .EditorContent ul {
145
+ list-style-type: disc;
146
+ }
147
+
148
+ .EditorContent ol {
149
+ list-style-type: decimal;
150
+ }
151
+
152
+ .EditorContent li + li {
153
+ margin-top: 2px;
154
+ }.LinkDialogOverlay {
155
+ position: fixed;
156
+ inset: 0;
157
+ z-index: 9999;
158
+ background-color: rgba(0, 0, 0, 0.4);
159
+ }.LinkDialogContent {
160
+ position: fixed;
161
+ top: 50%;
162
+ left: 50%;
163
+ z-index: 10000;
164
+ display: flex;
165
+ flex-direction: column;
166
+ width: 450px;
167
+ max-width: calc(100vw - 32px);
168
+ transform: translate(-50%, -50%);
169
+ border-radius: 12px;
170
+ background-color: var(--color-surface, #fff);
171
+ box-shadow:
172
+ 0 0 0 0.5px rgba(0, 0, 0, 0.08),
173
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1),
174
+ 0 4px 6px -4px rgba(0, 0, 0, 0.1);
175
+ }.LinkDialogContent, :where([data-theme="light"]) .LinkDialogContent {
176
+ border: 1px solid rgba(0, 0, 0, 0.1);
177
+ }:where([data-theme="dark"]) .LinkDialogContent {
178
+ border: 1px solid rgba(255, 255, 255, 0.1);
179
+ }.LinkDialogBody {
180
+ display: flex;
181
+ flex-direction: column;
182
+ gap: 20px;
183
+ padding: 20px;
184
+ }.LinkDialogTitle {
185
+ margin: 0;
186
+ font-size: 18px;
187
+ font-weight: var(--font-weight-semibold);
188
+ line-height: 1.6;
189
+ color: var(--color-text);
190
+ }.LinkDialogFields {
191
+ display: flex;
192
+ flex-direction: column;
193
+ gap: 16px;
194
+ }.LinkDialogField {
195
+ display: flex;
196
+ flex-direction: column;
197
+ gap: 6px;
198
+ }.LinkDialogLabel {
199
+ font-size: 14px;
200
+ font-weight: var(--font-weight-semibold);
201
+ line-height: 20px;
202
+ color: var(--color-text);
203
+ }.LinkDialogInput {
204
+ display: flex;
205
+ align-items: center;
206
+ height: 32px;
207
+ padding: 0 12px;
208
+ border: 0;
209
+ border-radius: var(--control-radius-md);
210
+ background: none;
211
+ box-shadow: 0 0 0 1px var(--input-outline-border-color) inset;
212
+ color: var(--color-text);
213
+ font-size: 14px;
214
+ font-weight: var(--font-weight-normal);
215
+ line-height: 20px;
216
+ transition-duration: var(--transition-duration-basic);
217
+ transition-property: box-shadow;
218
+ transition-timing-function: var(--transition-ease-basic);
219
+ }
220
+
221
+ .LinkDialogInput:focus {
222
+ outline: 0;
223
+ box-shadow: 0 0 0 1px var(--input-outline-border-color-focus) inset;
224
+ }
225
+
226
+ .LinkDialogInput::-moz-placeholder {
227
+ color: var(--input-placeholder-text-color);
228
+ }
229
+
230
+ .LinkDialogInput::placeholder {
231
+ color: var(--input-placeholder-text-color);
232
+ }.LinkDialogFooter {
233
+ display: flex;
234
+ justify-content: space-between;
235
+ align-items: center;
236
+ padding: 16px 20px;
237
+ }.LinkDialogFooterTrailing {
238
+ display: flex;
239
+ align-items: center;
240
+ gap: 8px;
241
+ margin-left: auto;
242
+ }.LinkDialogButtonRemove {
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ height: 32px;
247
+ padding: 0 12px;
248
+ border: 0;
249
+ border-radius: var(--control-radius-md);
250
+ background-color: var(--color-background-danger-solid, #dc2626);
251
+ color: #fff;
252
+ cursor: pointer;
253
+ font-size: 14px;
254
+ font-weight: var(--font-weight-medium);
255
+ line-height: 20px;
256
+ transition-duration: var(--transition-duration-basic);
257
+ transition-property: background-color;
258
+ transition-timing-function: var(--transition-ease-basic);
259
+ }
260
+
261
+ @media (hover: hover) and (pointer: fine) {.LinkDialogButtonRemove:hover {
262
+ background-color: var(--color-background-danger-solid-hover, #b91c1c);
263
+ }
264
+ }.LinkDialogButtonCancel,
265
+ .LinkDialogButtonSave {
266
+ display: flex;
267
+ align-items: center;
268
+ justify-content: center;
269
+ height: 32px;
270
+ padding: 0 12px;
271
+ border: 0;
272
+ border-radius: var(--control-radius-md);
273
+ cursor: pointer;
274
+ font-size: 14px;
275
+ font-weight: var(--font-weight-medium);
276
+ line-height: 20px;
277
+ transition-duration: var(--transition-duration-basic);
278
+ transition-property: background-color;
279
+ transition-timing-function: var(--transition-ease-basic);
280
+ }.LinkDialogButtonCancel {
281
+ background-color: var(--color-background-primary-soft-alpha, rgba(0, 0, 0, 0.08));
282
+ color: var(--color-text);
283
+ }
284
+
285
+ @media (hover: hover) and (pointer: fine) {.LinkDialogButtonCancel:hover {
286
+ background-color: var(--color-background-primary-soft-alpha-hover, rgba(0, 0, 0, 0.12));
287
+ }
288
+ }.LinkDialogButtonSave {
289
+ background-color: var(--color-background-primary-solid, #181818);
290
+ color: var(--color-text-on-primary, #fff);
291
+ }
292
+
293
+ @media (hover: hover) and (pointer: fine) {.LinkDialogButtonSave:hover {
294
+ background-color: var(--color-background-primary-solid-hover, #333);
295
+ }
296
+ }
297
+ }
@@ -0,0 +1,389 @@
1
+ @layer components {.Menu {
2
+ /* Top-level selector needs to exist */
3
+ }.MenuList[data-pill] {
4
+ --menu-radius: var(--menu-radius-pill, 22px);
5
+ --menu-item-radius: var(--radius-full);
6
+ }.MenuList {
7
+ z-index: 50;
8
+ overflow: auto;
9
+ width: var(--menu-width, auto);
10
+ min-width: var(--menu-min-width, 300px);
11
+ max-width: var(--radix-dropdown-menu-content-available-width);
12
+ max-height: min(
13
+ var(--radix-dropdown-menu-content-available-height),
14
+ var(--menu-max-height, 1200px)
15
+ );
16
+ padding: var(--menu-gutter);
17
+ border-radius: var(--menu-radius);
18
+ background: var(--color-surface-elevated);
19
+ box-shadow: var(--shadow), var(--shadow-hairline);
20
+ color: var(--color-text);
21
+ font-size: var(--menu-font-size);
22
+ line-height: var(--menu-line-height);
23
+ -webkit-overflow-scrolling: touch;
24
+ pointer-events: auto;
25
+ /* The transform-origin computed from the content and arrow positions/offsets */
26
+ transform-origin: var(--radix-dropdown-menu-content-transform-origin);
27
+ will-change: transform;
28
+ }
29
+
30
+ /* Animation states applied to a wrapping parent */
31
+ .Menu[data-entering] .MenuList {
32
+ opacity: 0;
33
+ transform: scale(0.95);
34
+ }
35
+
36
+ .Menu[data-entering-active] .MenuList,
37
+ .Menu[data-entering][data-interrupted] .MenuList {
38
+ opacity: 1;
39
+ transform: scale(1);
40
+ transition-duration: 0.35s;
41
+ transition-property: opacity, transform;
42
+ transition-timing-function: var(--cubic-enter);
43
+ }
44
+
45
+ .Menu[data-exiting] .MenuList {
46
+ opacity: 1;
47
+ transform: scale(1);
48
+ }
49
+
50
+ .Menu[data-exiting-active] .MenuList,
51
+ .Menu[data-exiting][data-interrupted] .MenuList {
52
+ opacity: 0;
53
+ transform: scale(0.95);
54
+ transition-duration: 0.2s;
55
+ transition-property: opacity, transform;
56
+ transition-timing-function: var(--cubic-exit);
57
+ }.MenuItemContent {
58
+ padding: var(--menu-item-padding);
59
+ }
60
+
61
+ /* Same "item + subtitle" pattern as the pressable item below. */
62
+ .MenuItemContent:has(.ItemDescription) {
63
+ font-weight: var(--font-weight-semibold);
64
+ }.MenuItem {
65
+ position: relative;
66
+ display: block;
67
+ /* Defaults to inherit from pressable wrapper, this container is not flex */
68
+ align-items: center;
69
+ gap: var(--menu-item-gap);
70
+ padding: var(--menu-item-padding);
71
+ color: var(--color-text);
72
+ cursor: pointer;
73
+ -webkit-user-select: none;
74
+ -moz-user-select: none;
75
+ user-select: none;
76
+ }
77
+
78
+ /* An item with a description keeps its label semibold in every state, so
79
+ consumers never have to remember a className for the "item + subtitle"
80
+ pattern. The description's own rule keeps the second line normal. */
81
+ .MenuItem:has(.ItemDescription) {
82
+ font-weight: var(--font-weight-semibold);
83
+ }
84
+
85
+ .MenuItem:focus {
86
+ outline: none;
87
+ }
88
+
89
+ @media (hover: hover) and (pointer: fine) {.MenuItem:hover {
90
+ /* Prevent links from changing colors */
91
+ color: var(--color-text);
92
+ }
93
+ }
94
+
95
+ .MenuItem::before {
96
+ position: absolute;
97
+ inset: 0;
98
+ display: block;
99
+ border-radius: var(--menu-item-radius, calc(var(--menu-radius) - var(--menu-gutter)));
100
+ background: var(--menu-item-background-color);
101
+ content: "";
102
+ opacity: 0;
103
+ transform: scale(var(--scale, 0.98));
104
+ transition-duration: var(--transition-duration-basic);
105
+ transition-property: opacity, background-color, transform;
106
+ transition-timing-function: var(--cubic-enter);
107
+ will-change: opacity, transform;
108
+ }
109
+ .MenuItem[data-state="open"]::before, .MenuItem[data-highlighted]::before {
110
+ opacity: 1;
111
+ transform: scale(1);
112
+ }
113
+
114
+ .MenuItem[data-state="open"]:has(.ItemActions:hover)::before, .MenuItem[data-highlighted]:has(.ItemActions:hover)::before {
115
+ opacity: 0.4;
116
+ }
117
+
118
+ .MenuItem[data-state="open"]:not(:has(.ItemActions:hover)):active::before, .MenuItem[data-highlighted]:not(:has(.ItemActions:hover)):active::before {
119
+ transform: scale(var(--scale, 0.98));
120
+ }
121
+
122
+ .MenuItem[data-state="open"] .ItemActions, .MenuItem[data-highlighted] .ItemActions {
123
+ opacity: 1;
124
+ }
125
+
126
+ .MenuItem[data-disabled] {
127
+ cursor: not-allowed;
128
+ opacity: 0.5;
129
+ }
130
+
131
+ .MenuItem[data-disabled]::before {
132
+ display: none;
133
+ }/* Destructive item (delete, remove, leave): the danger color for the label
134
+ and the highlight; a description keeps its secondary color */.MenuItem[data-danger] {
135
+ --menu-item-background-color: var(--color-background-danger-ghost-hover);
136
+ color: var(--color-text-danger-ghost);
137
+ }
138
+
139
+ @media (hover: hover) and (pointer: fine) {.MenuItem[data-danger]:hover {
140
+ color: var(--color-text-danger-ghost-hover);
141
+ }
142
+ }/* Two-line item: label over description, the same anatomy a Select option
143
+ with a description uses (OptionLeading / OptionDescription there). */.ItemLeading {
144
+ display: flex;
145
+ flex: 1;
146
+ min-width: 0;
147
+ flex-direction: column;
148
+ }.ItemDescription {
149
+ font-weight: var(--font-weight-normal);
150
+ color: var(--color-text-secondary);
151
+ }.PressableInner {
152
+ position: relative;
153
+ display: flex;
154
+ /* Allow flex settings to be applied to the container, for className ergonomics */
155
+ align-items: inherit;
156
+ justify-content: inherit;
157
+ gap: inherit;
158
+ }.ItemActions {
159
+ /* Prevent adding height to the MenuItem, and horizontally center */
160
+ display: flex;
161
+ align-items: center;
162
+ height: 0;
163
+ /* Magic number that pulls back the icon an equal gutter from the top/bottom */
164
+ margin-right: -5px;
165
+ opacity: 0;
166
+ transition-duration: var(--transition-duration-basic);
167
+ transition-property: opacity;
168
+ transition-timing-function: var(--cubic-enter);
169
+ }.Separator {
170
+ height: 1px;
171
+ margin: var(--menu-separator-gutter);
172
+ background: var(--menu-separator-background-color);
173
+ }.MenuLabel {
174
+ padding: var(--menu-label-padding, var(--menu-item-padding));
175
+ padding-bottom: var(--menu-label-padding-bottom, calc(var(--spacing) * 0.5));
176
+ color: var(--color-text-tertiary);
177
+ font-size: var(--menu-label-font-size, var(--font-text-xs-size));
178
+ font-weight: var(--menu-label-font-weight, var(--font-weight-semibold));
179
+ line-height: var(--menu-label-line-height, var(--font-text-xs-line-height));
180
+ -webkit-user-select: none;
181
+ -moz-user-select: none;
182
+ user-select: none;
183
+ }.SubMenuItem {
184
+ justify-content: space-between;
185
+ }.SubTriggerIcon {
186
+ /* slight visual offset of svg canvas */
187
+ margin-right: -2px;
188
+ opacity: 0.75;
189
+ transition: opacity var(--transition-duration-basic) var(--transition-ease-basic);
190
+ }
191
+
192
+ .SubMenuItem[data-state="open"] .SubTriggerIcon,
193
+ .SubMenuItem[data-highlighted] .SubTriggerIcon {
194
+ opacity: 1;
195
+ }.RadioItem {
196
+ gap: calc(var(--spacing) * 2);
197
+ }
198
+
199
+ :where([data-indicator-position="end"]) .RadioItem {
200
+ justify-content: space-between;
201
+ gap: calc(var(--spacing) * 3);
202
+ }.RadioIndicatorActive {
203
+ position: relative;
204
+ display: inline-grid;
205
+ align-items: center;
206
+ justify-content: center;
207
+ width: 100%;
208
+ height: 100%;
209
+
210
+ /* Don't play the animation when entering */
211
+ }
212
+
213
+ .RadioIndicatorActive::before,
214
+ .RadioIndicatorActive::after {
215
+ display: block;
216
+ content: "";
217
+ grid-column-start: 1;
218
+ grid-row-start: 1;
219
+ place-self: center center;
220
+ will-change: transform;
221
+ }
222
+
223
+ /* Filled circle */
224
+ .RadioIndicatorActive::before {
225
+ width: var(--menu-radio-indicator-size);
226
+ height: var(--menu-radio-indicator-size);
227
+ border-radius: var(--radius-full);
228
+ animation: fade-in 0.4s var(--cubic-enter);
229
+ background-color: var(--radio-group-indicator-background-color);
230
+ }
231
+
232
+ /* Empty middle circle */
233
+ .RadioIndicatorActive::after {
234
+ width: var(--menu-radio-indicator-hole-size);
235
+ height: var(--menu-radio-indicator-hole-size);
236
+ border-radius: var(--radius-full);
237
+ animation: scale-in 0.4s var(--cubic-enter);
238
+ background-color: var(--radio-group-indicator-hole-background-color);
239
+ }
240
+ [data-entering] .RadioIndicatorActive::before,
241
+ [data-entering] .RadioIndicatorActive::after {
242
+ animation-duration: 0s;
243
+ }.RadioIndicator {
244
+ position: relative;
245
+ display: flex;
246
+ align-items: center;
247
+ justify-content: center;
248
+ flex-shrink: 0;
249
+ width: var(--menu-radio-indicator-size);
250
+ height: var(--menu-radio-indicator-size);
251
+ padding: 0;
252
+ border: none;
253
+ border-radius: var(--radius-full);
254
+ background-color: transparent;
255
+ box-shadow: 0 0 0 1px var(--radio-group-indicator-border-color) inset;
256
+ cursor: pointer;
257
+ transition-duration: var(--transition-duration-basic);
258
+ transition-property: box-shadow;
259
+ transition-timing-function: var(--transition-ease-basic);
260
+ }
261
+
262
+ [data-indicator-position="end"] .RadioIndicator {
263
+ order: 1;
264
+ }
265
+
266
+ [data-highlighted] .RadioIndicator {
267
+ box-shadow: 0 0 0 1px var(--radio-group-indicator-border-color-hover) inset;
268
+ }
269
+
270
+ [data-disabled] .RadioIndicator {
271
+ cursor: not-allowed;
272
+ }
273
+
274
+ /* Can't be focused here anyway */
275
+ .RadioIndicator:focus {
276
+ outline: none;
277
+ }@keyframes scale-in {
278
+ 0% {
279
+ transform: scale(0);
280
+ }
281
+
282
+ 100% {
283
+ transform: scale(1);
284
+ }
285
+ }@keyframes fade-in {
286
+ 0% {
287
+ opacity: 0;
288
+ }
289
+
290
+ 100% {
291
+ opacity: 1;
292
+ }
293
+ }.CheckboxItem {
294
+ gap: calc(var(--spacing) * 2);
295
+ }
296
+
297
+ .CheckboxItem:where([data-indicator-position="end"]) {
298
+ justify-content: space-between;
299
+ gap: calc(var(--spacing) * 3);
300
+ }.CheckboxIndicator {
301
+ flex-shrink: 0;
302
+ width: var(--menu-checkbox-indicator-size);
303
+ height: var(--menu-checkbox-indicator-size);
304
+ }
305
+
306
+ [data-indicator-position="end"] .CheckboxIndicator {
307
+ order: 1;
308
+ }
309
+
310
+ [data-indicator-variant="solid"] .CheckboxIndicator {
311
+ border-radius: var(--radius-full);
312
+ box-shadow: 0 0 0 1px var(--radio-group-indicator-border-color) inset;
313
+ }.CheckboxCircle {
314
+ position: relative;
315
+ display: flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ flex-shrink: 0;
319
+ width: var(--menu-checkbox-indicator-size);
320
+ height: var(--menu-checkbox-indicator-size);
321
+ border-radius: var(--radius-full);
322
+ animation: fade-in 0.5s var(--cubic-enter);
323
+ background-color: var(--radio-group-indicator-background-color);
324
+ color: var(--radio-group-indicator-hole-background-color);
325
+
326
+ /* Don't play the animation when entering */
327
+ }
328
+ [data-entering] .CheckboxCircle::before,
329
+ [data-entering] .CheckboxCircle::after {
330
+ animation-duration: 0s;
331
+ }.MenuList[data-layout="horizontal"] {
332
+ --h-icon-size: 20px;
333
+ --h-padding: calc(var(--spacing) * 2);
334
+ --h-gap: calc(var(--spacing) * 1);
335
+
336
+ display: flex;
337
+ flex-direction: row;
338
+ min-width: auto;
339
+ }
340
+
341
+ .MenuList[data-layout="horizontal"][data-size="sm"] {
342
+ --h-icon-size: 16px;
343
+ --h-padding: calc(var(--spacing) * 1.5);
344
+ }
345
+
346
+ .MenuList[data-layout="horizontal"][data-size="lg"] {
347
+ --h-icon-size: 24px;
348
+ --h-padding: calc(var(--spacing) * 2.5);
349
+ }
350
+
351
+ .MenuList[data-layout="horizontal"] .MenuItem {
352
+ flex: 1 0 auto;
353
+ flex-direction: column;
354
+ align-items: center;
355
+ justify-content: center;
356
+ gap: var(--h-gap);
357
+ padding: var(--h-padding);
358
+ text-align: center;
359
+ font-size: var(--h-icon-size);
360
+ line-height: 1;
361
+ }
362
+
363
+ .MenuList[data-layout="horizontal"] .PressableInner {
364
+ flex-direction: column;
365
+ align-items: center;
366
+ gap: var(--h-gap);
367
+ font-size: var(--font-text-2xs-size);
368
+ line-height: var(--font-text-2xs-line-height);
369
+ }
370
+
371
+ .MenuList[data-layout="horizontal"] .PressableInner > svg {
372
+ font-size: var(--h-icon-size);
373
+ }
374
+
375
+ .MenuList[data-layout="horizontal"] .MenuItemContent {
376
+ flex-direction: column;
377
+ align-items: center;
378
+ gap: var(--h-gap);
379
+ padding: var(--h-padding);
380
+ text-align: center;
381
+ }
382
+
383
+ .MenuList[data-layout="horizontal"] .Separator {
384
+ width: 1px;
385
+ height: auto;
386
+ align-self: stretch;
387
+ margin: calc(var(--spacing) * 1) 0;
388
+ }
389
+ }