@kushagradhawan/kookie-ui 0.1.40 → 0.1.42

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 (145) hide show
  1. package/README.md +257 -60
  2. package/components.css +436 -80
  3. package/dist/cjs/components/schemas/base-button.schema.d.ts +319 -0
  4. package/dist/cjs/components/schemas/base-button.schema.d.ts.map +1 -0
  5. package/dist/cjs/components/schemas/base-button.schema.js +2 -0
  6. package/dist/cjs/components/schemas/base-button.schema.js.map +7 -0
  7. package/dist/cjs/components/schemas/button.schema.d.ts +686 -0
  8. package/dist/cjs/components/schemas/button.schema.d.ts.map +1 -0
  9. package/dist/cjs/components/schemas/button.schema.js +2 -0
  10. package/dist/cjs/components/schemas/button.schema.js.map +7 -0
  11. package/dist/cjs/components/schemas/icon-button.schema.d.ts +329 -0
  12. package/dist/cjs/components/schemas/icon-button.schema.d.ts.map +1 -0
  13. package/dist/cjs/components/schemas/icon-button.schema.js +2 -0
  14. package/dist/cjs/components/schemas/icon-button.schema.js.map +7 -0
  15. package/dist/cjs/components/schemas/index.d.ts +52 -0
  16. package/dist/cjs/components/schemas/index.d.ts.map +1 -0
  17. package/dist/cjs/components/schemas/index.js +2 -0
  18. package/dist/cjs/components/schemas/index.js.map +7 -0
  19. package/dist/cjs/components/schemas/toggle-button.schema.d.ts +1172 -0
  20. package/dist/cjs/components/schemas/toggle-button.schema.d.ts.map +1 -0
  21. package/dist/cjs/components/schemas/toggle-button.schema.js +2 -0
  22. package/dist/cjs/components/schemas/toggle-button.schema.js.map +7 -0
  23. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts +563 -0
  24. package/dist/cjs/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
  25. package/dist/cjs/components/schemas/toggle-icon-button.schema.js +2 -0
  26. package/dist/cjs/components/schemas/toggle-icon-button.schema.js.map +7 -0
  27. package/dist/cjs/components/sheet.d.ts +1 -1
  28. package/dist/cjs/components/sheet.d.ts.map +1 -1
  29. package/dist/cjs/components/sheet.js +1 -1
  30. package/dist/cjs/components/sheet.js.map +3 -3
  31. package/dist/cjs/components/shell.d.ts +125 -164
  32. package/dist/cjs/components/shell.d.ts.map +1 -1
  33. package/dist/cjs/components/shell.js +1 -1
  34. package/dist/cjs/components/shell.js.map +3 -3
  35. package/dist/cjs/components/sidebar.d.ts +1 -7
  36. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  37. package/dist/cjs/components/sidebar.js +1 -1
  38. package/dist/cjs/components/sidebar.js.map +3 -3
  39. package/dist/cjs/components/theme.d.ts +3 -0
  40. package/dist/cjs/components/theme.d.ts.map +1 -1
  41. package/dist/cjs/components/theme.js +1 -1
  42. package/dist/cjs/components/theme.js.map +3 -3
  43. package/dist/cjs/components/theme.props.d.ts +10 -0
  44. package/dist/cjs/components/theme.props.d.ts.map +1 -1
  45. package/dist/cjs/components/theme.props.js +1 -1
  46. package/dist/cjs/components/theme.props.js.map +3 -3
  47. package/dist/cjs/helpers/font-config.d.ts +96 -0
  48. package/dist/cjs/helpers/font-config.d.ts.map +1 -0
  49. package/dist/cjs/helpers/font-config.js +3 -0
  50. package/dist/cjs/helpers/font-config.js.map +7 -0
  51. package/dist/cjs/helpers/index.d.ts +1 -0
  52. package/dist/cjs/helpers/index.d.ts.map +1 -1
  53. package/dist/cjs/helpers/index.js +1 -1
  54. package/dist/cjs/helpers/index.js.map +2 -2
  55. package/dist/esm/components/schemas/base-button.schema.d.ts +319 -0
  56. package/dist/esm/components/schemas/base-button.schema.d.ts.map +1 -0
  57. package/dist/esm/components/schemas/base-button.schema.js +2 -0
  58. package/dist/esm/components/schemas/base-button.schema.js.map +7 -0
  59. package/dist/esm/components/schemas/button.schema.d.ts +686 -0
  60. package/dist/esm/components/schemas/button.schema.d.ts.map +1 -0
  61. package/dist/esm/components/schemas/button.schema.js +2 -0
  62. package/dist/esm/components/schemas/button.schema.js.map +7 -0
  63. package/dist/esm/components/schemas/icon-button.schema.d.ts +329 -0
  64. package/dist/esm/components/schemas/icon-button.schema.d.ts.map +1 -0
  65. package/dist/esm/components/schemas/icon-button.schema.js +2 -0
  66. package/dist/esm/components/schemas/icon-button.schema.js.map +7 -0
  67. package/dist/esm/components/schemas/index.d.ts +52 -0
  68. package/dist/esm/components/schemas/index.d.ts.map +1 -0
  69. package/dist/esm/components/schemas/index.js +2 -0
  70. package/dist/esm/components/schemas/index.js.map +7 -0
  71. package/dist/esm/components/schemas/toggle-button.schema.d.ts +1172 -0
  72. package/dist/esm/components/schemas/toggle-button.schema.d.ts.map +1 -0
  73. package/dist/esm/components/schemas/toggle-button.schema.js +2 -0
  74. package/dist/esm/components/schemas/toggle-button.schema.js.map +7 -0
  75. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts +563 -0
  76. package/dist/esm/components/schemas/toggle-icon-button.schema.d.ts.map +1 -0
  77. package/dist/esm/components/schemas/toggle-icon-button.schema.js +2 -0
  78. package/dist/esm/components/schemas/toggle-icon-button.schema.js.map +7 -0
  79. package/dist/esm/components/sheet.d.ts +1 -1
  80. package/dist/esm/components/sheet.d.ts.map +1 -1
  81. package/dist/esm/components/sheet.js +1 -1
  82. package/dist/esm/components/sheet.js.map +3 -3
  83. package/dist/esm/components/shell.d.ts +125 -164
  84. package/dist/esm/components/shell.d.ts.map +1 -1
  85. package/dist/esm/components/shell.js +1 -1
  86. package/dist/esm/components/shell.js.map +3 -3
  87. package/dist/esm/components/sidebar.d.ts +1 -7
  88. package/dist/esm/components/sidebar.d.ts.map +1 -1
  89. package/dist/esm/components/sidebar.js +1 -1
  90. package/dist/esm/components/sidebar.js.map +3 -3
  91. package/dist/esm/components/theme.d.ts +3 -0
  92. package/dist/esm/components/theme.d.ts.map +1 -1
  93. package/dist/esm/components/theme.js +1 -1
  94. package/dist/esm/components/theme.js.map +3 -3
  95. package/dist/esm/components/theme.props.d.ts +10 -0
  96. package/dist/esm/components/theme.props.d.ts.map +1 -1
  97. package/dist/esm/components/theme.props.js +1 -1
  98. package/dist/esm/components/theme.props.js.map +3 -3
  99. package/dist/esm/helpers/font-config.d.ts +96 -0
  100. package/dist/esm/helpers/font-config.d.ts.map +1 -0
  101. package/dist/esm/helpers/font-config.js +3 -0
  102. package/dist/esm/helpers/font-config.js.map +7 -0
  103. package/dist/esm/helpers/index.d.ts +1 -0
  104. package/dist/esm/helpers/index.d.ts.map +1 -1
  105. package/dist/esm/helpers/index.js +1 -1
  106. package/dist/esm/helpers/index.js.map +2 -2
  107. package/package.json +26 -6
  108. package/schemas/base-button.d.ts +2 -0
  109. package/schemas/base-button.json +284 -0
  110. package/schemas/button.d.ts +2 -0
  111. package/schemas/button.json +535 -0
  112. package/schemas/icon-button.d.ts +2 -0
  113. package/schemas/icon-button.json +318 -0
  114. package/schemas/index.d.ts +2 -0
  115. package/schemas/index.json +2016 -0
  116. package/schemas/schemas.d.ts +29 -0
  117. package/schemas/toggle-button.d.ts +2 -0
  118. package/schemas/toggle-button.json +543 -0
  119. package/schemas/toggle-icon-button.d.ts +2 -0
  120. package/schemas/toggle-icon-button.json +326 -0
  121. package/schemas-json.d.ts +12 -0
  122. package/src/components/_internal/base-menu.css +25 -17
  123. package/src/components/_internal/base-sidebar.css +13 -14
  124. package/src/components/dialog.css +12 -0
  125. package/src/components/schemas/base-button.schema.ts +339 -0
  126. package/src/components/schemas/button.schema.ts +198 -0
  127. package/src/components/schemas/icon-button.schema.ts +142 -0
  128. package/src/components/schemas/index.ts +68 -0
  129. package/src/components/schemas/toggle-button.schema.ts +122 -0
  130. package/src/components/schemas/toggle-icon-button.schema.ts +195 -0
  131. package/src/components/sheet.css +68 -20
  132. package/src/components/sheet.tsx +62 -3
  133. package/src/components/shell.css +516 -79
  134. package/src/components/shell.tsx +2055 -928
  135. package/src/components/sidebar.tsx +3 -22
  136. package/src/components/theme.props.tsx +8 -0
  137. package/src/components/theme.tsx +16 -0
  138. package/src/helpers/font-config.ts +167 -0
  139. package/src/helpers/index.ts +1 -0
  140. package/src/styles/fonts.css +16 -13
  141. package/src/styles/tokens/cursor.css +1 -1
  142. package/src/styles/tokens/typography.css +27 -4
  143. package/styles.css +449 -81
  144. package/tokens/base.css +13 -1
  145. package/tokens.css +13 -1
@@ -0,0 +1,326 @@
1
+ {
2
+ "$ref": "#/definitions/Toggle-icon-buttonSchema",
3
+ "definitions": {
4
+ "Toggle-icon-buttonSchema": {
5
+ "type": "object",
6
+ "properties": {
7
+ "as": {
8
+ "type": "string",
9
+ "description": "HTML element type to render as"
10
+ },
11
+ "asChild": {
12
+ "type": "boolean",
13
+ "description": "Merge props with child element instead of rendering wrapper"
14
+ },
15
+ "size": {
16
+ "anyOf": [
17
+ {
18
+ "type": "string",
19
+ "enum": [
20
+ "1",
21
+ "2",
22
+ "3",
23
+ "4"
24
+ ]
25
+ },
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "initial": {
30
+ "type": "string",
31
+ "enum": [
32
+ "1",
33
+ "2",
34
+ "3",
35
+ "4"
36
+ ]
37
+ },
38
+ "sm": {
39
+ "type": "string",
40
+ "enum": [
41
+ "1",
42
+ "2",
43
+ "3",
44
+ "4"
45
+ ]
46
+ },
47
+ "md": {
48
+ "type": "string",
49
+ "enum": [
50
+ "1",
51
+ "2",
52
+ "3",
53
+ "4"
54
+ ]
55
+ },
56
+ "lg": {
57
+ "type": "string",
58
+ "enum": [
59
+ "1",
60
+ "2",
61
+ "3",
62
+ "4"
63
+ ]
64
+ },
65
+ "xl": {
66
+ "type": "string",
67
+ "enum": [
68
+ "1",
69
+ "2",
70
+ "3",
71
+ "4"
72
+ ]
73
+ }
74
+ },
75
+ "additionalProperties": false
76
+ }
77
+ ],
78
+ "default": "2",
79
+ "description": "Button size for responsive design and interface density"
80
+ },
81
+ "variant": {
82
+ "type": "string",
83
+ "enum": [
84
+ "classic",
85
+ "solid",
86
+ "soft",
87
+ "surface",
88
+ "outline",
89
+ "ghost",
90
+ "override"
91
+ ],
92
+ "default": "solid",
93
+ "description": "Visual variant that determines the button's appearance and context"
94
+ },
95
+ "color": {
96
+ "type": "string",
97
+ "enum": [
98
+ "tomato",
99
+ "red",
100
+ "ruby",
101
+ "crimson",
102
+ "pink",
103
+ "plum",
104
+ "purple",
105
+ "violet",
106
+ "iris",
107
+ "indigo",
108
+ "blue",
109
+ "cyan",
110
+ "teal",
111
+ "jade",
112
+ "green",
113
+ "grass",
114
+ "brown",
115
+ "orange",
116
+ "sky",
117
+ "mint",
118
+ "lime",
119
+ "yellow",
120
+ "amber",
121
+ "gold",
122
+ "bronze",
123
+ "gray"
124
+ ],
125
+ "description": "Accent color for the button"
126
+ },
127
+ "highContrast": {
128
+ "type": "boolean",
129
+ "default": false,
130
+ "description": "High contrast mode for better accessibility"
131
+ },
132
+ "radius": {
133
+ "type": "string",
134
+ "enum": [
135
+ "none",
136
+ "small",
137
+ "medium",
138
+ "large",
139
+ "full"
140
+ ],
141
+ "description": "Border radius for the button"
142
+ },
143
+ "loading": {
144
+ "type": "boolean",
145
+ "default": false,
146
+ "description": "Loading state that shows a spinner and disables interaction"
147
+ },
148
+ "fullWidth": {
149
+ "type": "boolean",
150
+ "default": false,
151
+ "description": "Full width mode that expands the button to fill its container"
152
+ },
153
+ "material": {
154
+ "type": "string",
155
+ "enum": [
156
+ "solid",
157
+ "translucent"
158
+ ],
159
+ "description": "Material type for visual rendering and depth effects"
160
+ },
161
+ "panelBackground": {
162
+ "type": "string",
163
+ "enum": [
164
+ "solid",
165
+ "translucent"
166
+ ],
167
+ "description": "Panel background type (deprecated - use material instead)"
168
+ },
169
+ "flush": {
170
+ "type": "boolean",
171
+ "default": false,
172
+ "description": "Flush mode that removes visual padding for seamless text integration"
173
+ },
174
+ "disabled": {
175
+ "type": "boolean",
176
+ "default": false,
177
+ "description": "Disabled state"
178
+ },
179
+ "type": {
180
+ "type": "string",
181
+ "enum": [
182
+ "button",
183
+ "submit",
184
+ "reset"
185
+ ],
186
+ "description": "Type attribute for form buttons"
187
+ },
188
+ "className": {
189
+ "type": "string",
190
+ "description": "Additional CSS class name"
191
+ },
192
+ "style": {
193
+ "type": "object",
194
+ "additionalProperties": {
195
+ "type": [
196
+ "string",
197
+ "number"
198
+ ]
199
+ },
200
+ "description": "Inline styles"
201
+ },
202
+ "tabIndex": {
203
+ "type": "number",
204
+ "description": "Tab index for keyboard navigation"
205
+ },
206
+ "aria-label": {
207
+ "type": "string",
208
+ "description": "ARIA label for accessibility"
209
+ },
210
+ "aria-labelledby": {
211
+ "type": "string",
212
+ "description": "ARIA labelled by reference"
213
+ },
214
+ "aria-describedby": {
215
+ "type": "string",
216
+ "description": "ARIA described by reference"
217
+ },
218
+ "aria-expanded": {
219
+ "type": "boolean",
220
+ "description": "ARIA expanded state"
221
+ },
222
+ "aria-pressed": {
223
+ "type": "boolean",
224
+ "description": "ARIA pressed state"
225
+ },
226
+ "aria-current": {
227
+ "anyOf": [
228
+ {
229
+ "type": "boolean"
230
+ },
231
+ {
232
+ "type": "string",
233
+ "enum": [
234
+ "page",
235
+ "step",
236
+ "location",
237
+ "date",
238
+ "time"
239
+ ]
240
+ }
241
+ ],
242
+ "description": "ARIA current state"
243
+ },
244
+ "aria-controls": {
245
+ "type": "string",
246
+ "description": "ARIA controls reference"
247
+ },
248
+ "aria-owns": {
249
+ "type": "string",
250
+ "description": "ARIA owns reference"
251
+ },
252
+ "data-*": {
253
+ "type": "object",
254
+ "additionalProperties": {
255
+ "type": "string"
256
+ },
257
+ "description": "Data attributes"
258
+ },
259
+ "id": {
260
+ "type": "string",
261
+ "description": "ID attribute"
262
+ },
263
+ "title": {
264
+ "type": "string",
265
+ "description": "Title attribute for tooltip"
266
+ },
267
+ "role": {
268
+ "type": "string",
269
+ "description": "Role attribute"
270
+ },
271
+ "children": {
272
+ "description": "Children elements (required for accessibility if no aria-label)"
273
+ },
274
+ "tooltip": {
275
+ "type": "string",
276
+ "description": "Content to display in the tooltip on hover/focus"
277
+ },
278
+ "tooltipSide": {
279
+ "type": "string",
280
+ "enum": [
281
+ "top",
282
+ "right",
283
+ "bottom",
284
+ "left"
285
+ ],
286
+ "default": "top",
287
+ "description": "Side of the button where the tooltip should appear"
288
+ },
289
+ "tooltipAlign": {
290
+ "type": "string",
291
+ "enum": [
292
+ "start",
293
+ "center",
294
+ "end"
295
+ ],
296
+ "default": "center",
297
+ "description": "Alignment of the tooltip relative to the button"
298
+ },
299
+ "tooltipDelayDuration": {
300
+ "type": "number",
301
+ "description": "Delay before showing the tooltip (in milliseconds)"
302
+ },
303
+ "tooltipDisableHoverableContent": {
304
+ "type": "boolean",
305
+ "default": false,
306
+ "description": "Whether to disable hoverable content behavior"
307
+ },
308
+ "pressed": {
309
+ "type": "boolean",
310
+ "description": "Controlled pressed state"
311
+ },
312
+ "defaultPressed": {
313
+ "type": "boolean",
314
+ "description": "Default pressed state for uncontrolled usage"
315
+ }
316
+ },
317
+ "additionalProperties": false
318
+ }
319
+ },
320
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
321
+ "title": "Toggle-icon-button Component Props",
322
+ "description": "Props schema for the toggle-icon-button component in Kookie UI",
323
+ "version": "1.0.0",
324
+ "generatedAt": "2025-09-09T20:52:02.773Z",
325
+ "source": "Zod schema"
326
+ }
@@ -0,0 +1,12 @@
1
+ // Ambient module declarations for JSON schema imports
2
+ // This file enables TypeScript to resolve JSON schema imports
3
+
4
+ declare module '@kushagradhawan/kookie-ui/schemas-json' {
5
+ const schemaIndex: any;
6
+ export default schemaIndex;
7
+ }
8
+
9
+ declare module '@kushagradhawan/kookie-ui/schemas-json/*' {
10
+ const schema: any;
11
+ export default schema;
12
+ }
@@ -8,18 +8,18 @@
8
8
  flex-direction: column;
9
9
  box-sizing: border-box;
10
10
  overflow: hidden;
11
-
11
+
12
12
  background-color: var(--color-panel);
13
13
  backdrop-filter: var(--backdrop-filter-panel);
14
14
  box-shadow: var(--shadow-5);
15
15
  transition: var(--transition-background-blur);
16
-
16
+
17
17
  /* GPU optimization: limit paint scope and prevent backdrop-filter layering */
18
18
  contain: paint;
19
19
  isolation: isolate;
20
20
 
21
21
  /* Optimize backdrop-filter performance during animations */
22
- &:where([data-state="open"]) {
22
+ &:where([data-state='open']) {
23
23
  will-change: transform, opacity;
24
24
  }
25
25
 
@@ -188,6 +188,7 @@
188
188
  font-size: var(--font-size-1);
189
189
  line-height: var(--line-height-1);
190
190
  letter-spacing: var(--letter-spacing-1);
191
+ padding-left: calc(var(--base-menu-item-padding-left) + var(--component-gap-2));
191
192
  }
192
193
 
193
194
  & :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) {
@@ -231,6 +232,7 @@
231
232
  font-size: var(--font-size-2);
232
233
  line-height: var(--line-height-2);
233
234
  letter-spacing: var(--letter-spacing-2);
235
+ padding-left: calc(var(--base-menu-item-padding-left) + var(--component-gap-3));
234
236
  }
235
237
 
236
238
  & :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) {
@@ -274,6 +276,7 @@
274
276
  font-size: var(--font-size-2);
275
277
  line-height: var(--line-height-2);
276
278
  letter-spacing: var(--letter-spacing-2);
279
+ padding-left: calc(var(--base-menu-item-padding-left) + var(--component-gap-4));
277
280
  }
278
281
 
279
282
  & :where(.rt-BaseMenuItemIndicatorIcon, .rt-BaseMenuSubTriggerIcon) {
@@ -308,7 +311,8 @@
308
311
  }
309
312
 
310
313
  /* Ensure gray text appears muted in non-highlighted state */
311
- .rt-BaseMenuItem :where(.rt-Text[data-accent-color='gray'], [data-accent-color='gray']:not(.rt-Badge)) {
314
+ .rt-BaseMenuItem
315
+ :where(.rt-Text[data-accent-color='gray'], [data-accent-color='gray']:not(.rt-Badge)) {
312
316
  color: var(--gray-a10);
313
317
  }
314
318
  .rt-BaseMenuItem:where([data-disabled], [data-highlighted]),
@@ -326,23 +330,27 @@
326
330
  .rt-BaseMenuContent:where(.rt-variant-solid, .rt-variant-soft) {
327
331
  & :where(.rt-BaseMenuSubTrigger) {
328
332
  transition: var(--transition-menu);
329
-
333
+
330
334
  /* Enhanced reduced motion support */
331
335
  @media (prefers-reduced-motion: reduce) {
332
336
  transition: none;
333
337
  backdrop-filter: none; /* Remove backdrop effects for motion-sensitive users */
334
338
  }
335
-
339
+
336
340
  /* Remove backdrop-filter transitions in translucent mode to prevent flickering */
337
341
  :where([data-panel-background='translucent']) & {
338
- transition: background var(--motion-duration-micro) var(--motion-ease-standard), color var(--motion-duration-small) var(--motion-ease-standard);
342
+ transition:
343
+ background var(--motion-duration-micro) var(--motion-ease-standard),
344
+ color var(--motion-duration-small) var(--motion-ease-standard);
339
345
  }
340
346
  }
341
-
347
+
342
348
  & :where(.rt-BaseMenuItem) {
343
349
  /* Remove backdrop-filter transitions in translucent mode to prevent flickering */
344
350
  :where([data-panel-background='translucent']) & {
345
- transition: background var(--motion-duration-micro) var(--motion-ease-standard), color var(--motion-duration-small) var(--motion-ease-standard);
351
+ transition:
352
+ background var(--motion-duration-micro) var(--motion-ease-standard),
353
+ color var(--motion-duration-small) var(--motion-ease-standard);
346
354
  }
347
355
  }
348
356
  }
@@ -352,7 +360,7 @@
352
360
  & :where(.rt-BaseMenuSubTrigger[data-state='open']) {
353
361
  /* Base state: solid gray for solid panels */
354
362
  background-color: var(--gray-3);
355
-
363
+
356
364
  /* Theme-level translucent override */
357
365
  :where([data-panel-background='translucent']) & {
358
366
  background-color: var(--gray-a3);
@@ -371,7 +379,7 @@
371
379
  /* No backdrop-filter here to prevent double-blur with container */
372
380
  }
373
381
  }
374
-
382
+
375
383
  & :where(.rt-BaseMenuItem[data-highlighted]) {
376
384
  background-color: var(--accent-9);
377
385
  color: var(--accent-contrast);
@@ -390,7 +398,7 @@
390
398
  color: inherit !important;
391
399
  }
392
400
  }
393
-
401
+
394
402
  &:where(.rt-high-contrast) {
395
403
  & :where(.rt-BaseMenuItem[data-highlighted]) {
396
404
  background-color: var(--accent-12);
@@ -431,7 +439,7 @@
431
439
  & :where(.rt-BaseMenuSubTrigger[data-state='open']) {
432
440
  /* Base state: solid accent for solid panels */
433
441
  background-color: var(--accent-3);
434
-
442
+
435
443
  /* Theme-level translucent override */
436
444
  :where([data-panel-background='translucent']) & {
437
445
  background-color: var(--accent-a3);
@@ -450,11 +458,11 @@
450
458
  /* No backdrop-filter here to prevent double-blur with container */
451
459
  }
452
460
  }
453
-
461
+
454
462
  & :where(.rt-BaseMenuItem[data-highlighted]) {
455
463
  /* Base state: solid accent for solid panels */
456
464
  background-color: var(--accent-4);
457
-
465
+
458
466
  /* Theme-level translucent override */
459
467
  :where([data-panel-background='translucent']) & {
460
468
  background-color: var(--accent-a4);
@@ -486,11 +494,11 @@
486
494
  outline: 2px solid Highlight;
487
495
  outline-offset: 2px;
488
496
  }
489
-
497
+
490
498
  .rt-BaseMenuContent {
491
499
  border: 1px solid CanvasText;
492
500
  }
493
-
501
+
494
502
  .rt-BaseMenuSeparator {
495
503
  background-color: CanvasText;
496
504
  }
@@ -3,12 +3,12 @@
3
3
  /* Sidebar Provider - handles positioning */
4
4
  .rt-SidebarProvider {
5
5
  /* Positioning based on side */
6
- &:where([data-side="left"]) {
6
+ &:where([data-side='left']) {
7
7
  /* Left side is default - no additional positioning needed */
8
8
  order: -1; /* Ensure it appears first in flex container */
9
9
  }
10
-
11
- &:where([data-side="right"]) {
10
+
11
+ &:where([data-side='right']) {
12
12
  /* Position on the right side */
13
13
  order: 999; /* Push to end in flex container */
14
14
  }
@@ -16,10 +16,9 @@
16
16
 
17
17
  /* Sidebar Root Container */
18
18
  .rt-SidebarRoot {
19
- --sidebar-width: 16rem; /* Fixed width */
20
19
  --sidebar-base-border-radius: 0; /* Default to no radius */
21
-
22
- width: var(--sidebar-width);
20
+
21
+ width: 100%;
23
22
  height: 100%;
24
23
  flex-shrink: 0;
25
24
  display: flex;
@@ -34,13 +33,13 @@
34
33
  }
35
34
 
36
35
  /* Floating type - ONLY visual changes */
37
- &:where([data-type="floating"]) {
36
+ &:where([data-type='floating']) {
38
37
  border-radius: var(--sidebar-base-border-radius);
39
38
  margin: var(--space-2);
40
39
  height: calc(100% - var(--space-4));
41
40
  overflow: visible; /* Ensure shadow is not clipped */
42
41
  position: relative; /* Ensure proper stacking context for floating sidebars */
43
-
42
+
44
43
  /* Ensure Theme wrapper has proper border radius in floating mode */
45
44
  & :where(.radix-themes) {
46
45
  border-radius: inherit;
@@ -49,14 +48,14 @@
49
48
  }
50
49
 
51
50
  /* Set border radius for floating sidebars based on size - set on the root where it's used */
52
- .rt-SidebarRoot:where([data-type="floating"]) {
51
+ .rt-SidebarRoot:where([data-type='floating']) {
53
52
  /* Default radius for floating sidebars */
54
53
  --sidebar-base-border-radius: var(--radius-5);
55
-
54
+
56
55
  &:where(.rt-r-size-1) {
57
56
  --sidebar-base-border-radius: var(--radius-5);
58
57
  }
59
-
58
+
60
59
  &:where(.rt-r-size-2) {
61
60
  --sidebar-base-border-radius: var(--radius-6);
62
61
  }
@@ -133,9 +132,9 @@
133
132
  margin: var(--space-2) 0;
134
133
  }
135
134
 
136
- /* Responsive behavior */
135
+ /* Responsive behavior - only hide when not in Sheet overlay mode */
137
136
  @media (max-width: 768px) {
138
- .rt-SidebarRoot {
137
+ .rt-SidebarRoot:not(:where(.rt-SheetContent .rt-SidebarRoot)) {
139
138
  display: none;
140
139
  }
141
- }
140
+ }
@@ -1 +1,13 @@
1
1
  @import './_internal/base-dialog.css';
2
+
3
+ /* Add blur effect to Dialog overlay */
4
+ .rt-DialogOverlay::before {
5
+ backdrop-filter: var(--backdrop-filter-components) !important;
6
+ }
7
+
8
+ /* Safari backdrop-filter fallback */
9
+ @supports not (backdrop-filter: blur(1px)) {
10
+ .rt-DialogOverlay::before {
11
+ backdrop-filter: none !important;
12
+ }
13
+ }