@kushagradhawan/kookie-ui 0.1.39 → 0.1.40

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.
@@ -99,26 +99,26 @@
99
99
  & :where(.rt-SidebarMenuSubTriggerIcon) {
100
100
  transition: transform var(--motion-duration-micro) var(--motion-ease-standard);
101
101
  }
102
-
103
- &:where([data-state="open"]) :where(.rt-SidebarMenuSubTriggerIcon) {
102
+
103
+ &:where([data-state='open']) :where(.rt-SidebarMenuSubTriggerIcon) {
104
104
  transform: rotate(90deg);
105
105
  }
106
106
  }
107
107
 
108
108
  .rt-SidebarMenuSubContent {
109
109
  overflow: hidden;
110
-
110
+
111
111
  /* Allow focus outlines to show */
112
112
  &:where(:focus-within) {
113
113
  overflow: visible;
114
114
  }
115
-
115
+
116
116
  /* Radix Accordion animation support */
117
- &:where([data-state="open"]) {
117
+ &:where([data-state='open']) {
118
118
  animation: rt-sidebar-slide-down var(--motion-duration-small) var(--motion-ease-standard);
119
119
  }
120
-
121
- &:where([data-state="closed"]) {
120
+
121
+ &:where([data-state='closed']) {
122
122
  animation: rt-sidebar-slide-up var(--motion-duration-small) var(--motion-ease-standard);
123
123
  }
124
124
  }
@@ -195,7 +195,7 @@
195
195
  :where(.rt-SidebarContent.rt-r-size-1) & {
196
196
  padding-right: var(--base-menu-item-padding-y); /* Matches top/bottom padding */
197
197
  }
198
-
198
+
199
199
  :where(.rt-SidebarContent.rt-r-size-2) & {
200
200
  padding-right: var(--base-menu-item-padding-y); /* Matches top/bottom padding */
201
201
  }
@@ -220,4 +220,4 @@
220
220
  .rt-SidebarContent :where(.rt-BaseMenuItem) {
221
221
  margin-top: calc(var(--space-1) / 2);
222
222
  margin-bottom: calc(var(--space-1) / 2);
223
- }
223
+ }
@@ -18,7 +18,9 @@
18
18
  --shell-overlay-width: auto;
19
19
  }
20
20
  @supports (height: 100dvh) {
21
- .rt-ShellRoot { block-size: 100dvh; }
21
+ .rt-ShellRoot {
22
+ block-size: 100dvh;
23
+ }
22
24
  }
23
25
 
24
26
  /* Global Header (sticky) */
@@ -27,7 +29,8 @@
27
29
  top: 0;
28
30
  inset-inline: 0;
29
31
  z-index: var(--shell-z-header, 10);
30
- block-size: var(--shell-header-height, 64px);
32
+ height: var(--shell-header-height, 64px);
33
+ min-height: var(--shell-header-height, 64px);
31
34
  display: flex;
32
35
  align-items: center;
33
36
  background-color: var(--color-panel);
@@ -85,8 +88,6 @@
85
88
  overflow: hidden;
86
89
  }
87
90
 
88
-
89
-
90
91
  /* Single-markup morph container */
91
92
  .rt-ShellSidebarSingle {
92
93
  /* Staggered animation: width first, then content fade */
@@ -106,7 +107,8 @@
106
107
  /* Exit animation: fade out content first, then collapse width */
107
108
  transition:
108
109
  opacity var(--motion-duration-small) var(--motion-ease-standard),
109
- inline-size var(--motion-duration-small) var(--motion-ease-standard) var(--motion-duration-small);
110
+ inline-size var(--motion-duration-small) var(--motion-ease-standard)
111
+ var(--motion-duration-small);
110
112
  }
111
113
 
112
114
  /* When visible: show content after width settles */
@@ -161,6 +161,8 @@ interface ShellRootProps extends React.ComponentPropsWithoutRef<'div'> {
161
161
  onToolChange?: (id: string | null) => void;
162
162
  activeContext?: string | null;
163
163
  onContextChange?: (id: string | null) => void;
164
+ /** Custom cycling order for single-markup sidebars. Defaults to ['panel', 'rail', 'collapsed'] */
165
+ singleViewCycle?: SingleView[];
164
166
  }
165
167
 
166
168
  const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(
@@ -175,6 +177,7 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(
175
177
  onToolChange,
176
178
  activeContext: activeContextProp,
177
179
  onContextChange,
180
+ singleViewCycle = ['panel', 'rail', 'collapsed'],
178
181
  className,
179
182
  style,
180
183
  children,
@@ -237,13 +240,13 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(
237
240
  }, []);
238
241
  const cycleSingleView = React.useCallback(
239
242
  (side: ShellSide) => {
240
- const order: SingleView[] = ['panel', 'rail', 'collapsed'];
243
+ const order = singleViewCycle;
241
244
  const current = singleViewBySide[side];
242
245
  const idx = order.indexOf(current);
243
246
  const next = order[(idx + 1) % order.length];
244
247
  setSingleViewBySide(side, next);
245
248
  },
246
- [singleViewBySide, setSingleViewBySide],
249
+ [singleViewBySide, setSingleViewBySide, singleViewCycle],
247
250
  );
248
251
 
249
252
  // === Active tool coordination state ===
@@ -433,7 +436,6 @@ const Header = React.forwardRef<HTMLElement, ShellHeaderProps>(
433
436
  role="banner"
434
437
  className={classNames('rt-ShellHeader', className)}
435
438
  style={{
436
- ['--shell-header-height' as any]: headerHeight,
437
439
  ['--shell-z-header' as any]: zHeader,
438
440
  ...style,
439
441
  }}
@@ -131,4 +131,8 @@
131
131
  .rt-TableRoot:where(.rt-variant-ghost) {
132
132
  --scrollarea-scrollbar-horizontal-margin-left: 0;
133
133
  --scrollarea-scrollbar-horizontal-margin-right: 0;
134
+
135
+ & :where(.rt-TableBody) :where(.rt-TableRow:last-child) {
136
+ --table-row-box-shadow: none;
137
+ }
134
138
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
 
3
- let bodyCleanupInstalled = false;
3
+ let cleanupInstalled = false;
4
4
 
5
5
  /**
6
6
  * Hook to cleanup stuck pointer-events: none on document.body
@@ -12,70 +12,101 @@ let bodyCleanupInstalled = false;
12
12
  export function useBodyPointerEventsCleanup() {
13
13
  React.useEffect(() => {
14
14
  if (typeof document === 'undefined') return;
15
+ if (cleanupInstalled) return;
15
16
 
16
- let timeoutId: number | undefined;
17
+ cleanupInstalled = true;
17
18
 
18
19
  const hasOpenModal = (): boolean => {
19
- // Detect any open modal dialogs/alertdialogs
20
- return Boolean(
20
+ // Check for open dialogs/alertdialogs
21
+ const hasDialogs = Boolean(
21
22
  document.querySelector(
22
23
  '[role="dialog"][aria-modal="true"], [role="alertdialog"][aria-modal="true"]',
23
24
  ),
24
25
  );
26
+
27
+ // Also check for any Radix overlays that are still mounted
28
+ const hasRadixOverlays = Boolean(
29
+ document.querySelector('[data-radix-popper-content-wrapper], [data-state="open"]'),
30
+ );
31
+
32
+ return hasDialogs || hasRadixOverlays;
25
33
  };
26
34
 
27
- const cleanup = () => {
35
+ const forceCleanup = () => {
36
+ // Aggressive cleanup - remove pointer-events regardless
37
+ if (document.body.style.pointerEvents === 'none') {
38
+ console.log('[KookieUI] Force cleaning stuck pointer-events: none from body');
39
+ document.body.style.pointerEvents = '';
40
+
41
+ // Also remove any scroll-lock related attributes
42
+ document.body.removeAttribute('data-scroll-locked');
43
+ document.body.removeAttribute('data-remove-scroll');
44
+
45
+ // Remove any classes that might be causing issues
46
+ document.body.classList.remove('ReactModal__Body--open');
47
+ }
48
+ };
49
+
50
+ const safeCleanup = () => {
28
51
  if (document.body.style.pointerEvents === 'none' && !hasOpenModal()) {
52
+ console.log('[KookieUI] Safe cleaning stuck pointer-events: none from body');
29
53
  document.body.style.pointerEvents = '';
30
54
  }
31
55
  };
32
56
 
33
- const scheduleCleanup = (delay = 50) => {
34
- if (timeoutId) window.clearTimeout(timeoutId);
35
- timeoutId = window.setTimeout(cleanup, delay);
57
+ // Force cleanup on any click outside modal content
58
+ const onDocumentClick = (event: Event) => {
59
+ const target = event.target as Element;
60
+ if (
61
+ target &&
62
+ !target.closest(
63
+ '[role="dialog"], [role="alertdialog"], [data-radix-popper-content-wrapper]',
64
+ )
65
+ ) {
66
+ // Clicked outside any modal - force cleanup after a short delay
67
+ setTimeout(forceCleanup, 100);
68
+ }
36
69
  };
37
70
 
38
- // Initial run to catch already-stuck state
39
- scheduleCleanup(100);
71
+ // Force cleanup on ESC key
72
+ const onEscapeKey = (event: KeyboardEvent) => {
73
+ if (event.key === 'Escape') {
74
+ setTimeout(forceCleanup, 200);
75
+ }
76
+ };
40
77
 
41
- // If already installed globally, don't re-register listeners/observers
42
- if (bodyCleanupInstalled) {
43
- return () => {
44
- if (timeoutId) window.clearTimeout(timeoutId);
45
- };
46
- }
78
+ // Safe cleanup on other interactions
79
+ const onInteraction = () => {
80
+ setTimeout(safeCleanup, 50);
81
+ };
47
82
 
48
- bodyCleanupInstalled = true;
83
+ // Install global listeners
84
+ document.addEventListener('click', onDocumentClick, true);
85
+ document.addEventListener('keydown', onEscapeKey, true);
86
+ document.addEventListener('pointerup', onInteraction, true);
87
+ document.addEventListener('transitionend', onInteraction, true);
88
+ document.addEventListener('animationend', onInteraction, true);
49
89
 
50
- const onPointer = () => scheduleCleanup(50);
51
- const onKey = (event: KeyboardEvent) => {
52
- if (event.key === 'Escape' || event.key === 'Enter' || event.key === ' ') scheduleCleanup(50);
53
- };
54
- const onVisibility = () => {
55
- if (!document.hidden) scheduleCleanup(50);
56
- };
57
- const onTransitionEnd = () => scheduleCleanup(0);
58
- const onAnimationEnd = () => scheduleCleanup(0);
59
-
60
- // Listen for common interactions that close overlays/menus
61
- document.addEventListener('pointerup', onPointer, true);
62
- document.addEventListener('click', onPointer, true);
63
- document.addEventListener('keydown', onKey, true);
64
- document.addEventListener('keyup', onKey, true);
65
- document.addEventListener('visibilitychange', onVisibility);
66
- document.addEventListener('transitionend', onTransitionEnd, true);
67
- document.addEventListener('animationend', onAnimationEnd, true);
68
-
69
- // Observe body style changes (where pointer-events is applied) and DOM mutations
70
- const bodyObserver = new MutationObserver(() => scheduleCleanup(0));
71
- bodyObserver.observe(document.body, { attributes: true, attributeFilter: ['style'] });
72
-
73
- const domObserver = new MutationObserver(() => scheduleCleanup(0));
74
- domObserver.observe(document, { childList: true, subtree: true });
75
-
76
- // Keep listeners/observers for the app lifetime to ensure cleanup even after overlays unmount
90
+ // Watch for DOM changes that might indicate overlay removal
91
+ const observer = new MutationObserver(() => {
92
+ setTimeout(safeCleanup, 0);
93
+ });
94
+ observer.observe(document.body, { childList: true, subtree: true, attributes: true });
95
+
96
+ // Fallback periodic cleanup
97
+ const intervalId = setInterval(() => {
98
+ if (document.body.style.pointerEvents === 'none' && !hasOpenModal()) {
99
+ console.log('[KookieUI] Periodic cleanup of stuck pointer-events');
100
+ document.body.style.pointerEvents = '';
101
+ }
102
+ }, 1000);
103
+
104
+ // Initial cleanup
105
+ setTimeout(safeCleanup, 100);
106
+
107
+ // Cleanup function (keep listeners for app lifetime)
77
108
  return () => {
78
- if (timeoutId) window.clearTimeout(timeoutId);
109
+ clearInterval(intervalId);
79
110
  };
80
111
  }, []);
81
112
  }
package/styles.css CHANGED
@@ -9915,7 +9915,18 @@
9915
9915
  backdrop-filter: var(--backdrop-filter-panel);
9916
9916
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
9917
9917
  }
9918
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) .rt-BaseCard::before{
9918
+ :where(
9919
+ .rt-PopoverContent,
9920
+ .rt-BaseDialogContent,
9921
+ .rt-BaseMenuContent,
9922
+ .rt-DropdownMenuContent,
9923
+ .rt-ContextMenuContent,
9924
+ .rt-AlertDialogContent,
9925
+ .rt-HoverCardContent,
9926
+ .rt-TooltipContent,
9927
+ .rt-Card
9928
+ )
9929
+ .rt-BaseCard::before{
9919
9930
  -webkit-backdrop-filter: none !important;
9920
9931
  backdrop-filter: none !important;
9921
9932
  }
@@ -10274,7 +10285,11 @@
10274
10285
  backdrop-filter: none;
10275
10286
  --backdrop-filter-panel: none;
10276
10287
  }
10277
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-classic)::before{
10288
+ :where(
10289
+ .rt-BaseCard[data-panel-background='translucent'],
10290
+ .rt-BaseCard[data-material='translucent']
10291
+ )
10292
+ .rt-BaseCard:where(.rt-variant-classic)::before{
10278
10293
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10279
10294
  backdrop-filter: var(--backdrop-filter-panel);
10280
10295
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
@@ -10299,13 +10314,18 @@
10299
10314
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10300
10315
  backdrop-filter: var(--backdrop-filter-panel);
10301
10316
  }
10302
- :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where(:hover)::before{
10317
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid'])
10318
+ .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where(:hover)::before{
10303
10319
  background-color: var(--gray-2);
10304
10320
  -webkit-backdrop-filter: none;
10305
10321
  backdrop-filter: none;
10306
10322
  --backdrop-filter-panel: none;
10307
10323
  }
10308
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where(:hover)::before{
10324
+ :where(
10325
+ .rt-BaseCard[data-panel-background='translucent'],
10326
+ .rt-BaseCard[data-material='translucent']
10327
+ )
10328
+ .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where(:hover)::before{
10309
10329
  background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
10310
10330
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10311
10331
  backdrop-filter: var(--backdrop-filter-panel);
@@ -10333,7 +10353,11 @@
10333
10353
  backdrop-filter: none;
10334
10354
  --backdrop-filter-panel: none;
10335
10355
  }
10336
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where([data-state='open'])::before{
10356
+ :where(
10357
+ .rt-BaseCard[data-panel-background='translucent'],
10358
+ .rt-BaseCard[data-material='translucent']
10359
+ )
10360
+ .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where([data-state='open'])::before{
10337
10361
  background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10338
10362
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10339
10363
  backdrop-filter: var(--backdrop-filter-panel);
@@ -10359,7 +10383,11 @@
10359
10383
  backdrop-filter: none;
10360
10384
  --backdrop-filter-panel: none;
10361
10385
  }
10362
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10386
+ :where(
10387
+ .rt-BaseCard[data-panel-background='translucent'],
10388
+ .rt-BaseCard[data-material='translucent']
10389
+ )
10390
+ .rt-BaseCard:where(.rt-variant-classic):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10363
10391
  background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10364
10392
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10365
10393
  backdrop-filter: var(--backdrop-filter-panel);
@@ -10426,7 +10454,18 @@
10426
10454
  backdrop-filter: var(--backdrop-filter-panel);
10427
10455
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
10428
10456
  }
10429
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) .rt-BaseCard:where(.rt-variant-ghost):where(:any-link, button, label):where(:hover){
10457
+ :where(
10458
+ .rt-PopoverContent,
10459
+ .rt-BaseDialogContent,
10460
+ .rt-BaseMenuContent,
10461
+ .rt-DropdownMenuContent,
10462
+ .rt-ContextMenuContent,
10463
+ .rt-AlertDialogContent,
10464
+ .rt-HoverCardContent,
10465
+ .rt-TooltipContent,
10466
+ .rt-Card
10467
+ )
10468
+ .rt-BaseCard:where(.rt-variant-ghost):where(:any-link, button, label):where(:hover){
10430
10469
  -webkit-backdrop-filter: none !important;
10431
10470
  backdrop-filter: none !important;
10432
10471
  }
@@ -10454,7 +10493,18 @@
10454
10493
  backdrop-filter: var(--backdrop-filter-panel);
10455
10494
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
10456
10495
  }
10457
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) .rt-BaseCard:where(.rt-variant-ghost):where(:any-link, button, label):where([data-state='open']){
10496
+ :where(
10497
+ .rt-PopoverContent,
10498
+ .rt-BaseDialogContent,
10499
+ .rt-BaseMenuContent,
10500
+ .rt-DropdownMenuContent,
10501
+ .rt-ContextMenuContent,
10502
+ .rt-AlertDialogContent,
10503
+ .rt-HoverCardContent,
10504
+ .rt-TooltipContent,
10505
+ .rt-Card
10506
+ )
10507
+ .rt-BaseCard:where(.rt-variant-ghost):where(:any-link, button, label):where([data-state='open']){
10458
10508
  -webkit-backdrop-filter: none !important;
10459
10509
  backdrop-filter: none !important;
10460
10510
  }
@@ -10481,7 +10531,18 @@
10481
10531
  backdrop-filter: var(--backdrop-filter-panel);
10482
10532
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
10483
10533
  }
10484
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) .rt-BaseCard:where(.rt-variant-ghost):where(:any-link, button, label):where(:active:not([data-state='open'])){
10534
+ :where(
10535
+ .rt-PopoverContent,
10536
+ .rt-BaseDialogContent,
10537
+ .rt-BaseMenuContent,
10538
+ .rt-DropdownMenuContent,
10539
+ .rt-ContextMenuContent,
10540
+ .rt-AlertDialogContent,
10541
+ .rt-HoverCardContent,
10542
+ .rt-TooltipContent,
10543
+ .rt-Card
10544
+ )
10545
+ .rt-BaseCard:where(.rt-variant-ghost):where(:any-link, button, label):where(:active:not([data-state='open'])){
10485
10546
  -webkit-backdrop-filter: none !important;
10486
10547
  backdrop-filter: none !important;
10487
10548
  }
@@ -10495,16 +10556,16 @@
10495
10556
  }
10496
10557
  .rt-BaseCard:where(.rt-variant-soft){
10497
10558
  --card-border-width: 0px;
10498
- --card-background-color: var(--gray-3);
10559
+ --card-background-color: var(--gray-2);
10499
10560
  }
10500
10561
  :where([data-panel-background='translucent'], [data-material='translucent']) .rt-BaseCard:where(.rt-variant-soft){
10501
- --card-background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10562
+ --card-background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
10502
10563
  }
10503
10564
  .rt-BaseCard:where(.rt-variant-soft):where([data-panel-background='solid'], [data-material='solid']){
10504
- --card-background-color: var(--gray-3);
10565
+ --card-background-color: var(--gray-2);
10505
10566
  }
10506
10567
  .rt-BaseCard:where(.rt-variant-soft):where([data-panel-background='translucent'], [data-material='translucent']){
10507
- --card-background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10568
+ --card-background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
10508
10569
  }
10509
10570
  .rt-BaseCard:where(.rt-variant-soft)::before{
10510
10571
  background-color: var(--card-background-color);
@@ -10518,7 +10579,11 @@
10518
10579
  backdrop-filter: none;
10519
10580
  --backdrop-filter-panel: none;
10520
10581
  }
10521
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-soft)::before{
10582
+ :where(
10583
+ .rt-BaseCard[data-panel-background='translucent'],
10584
+ .rt-BaseCard[data-material='translucent']
10585
+ )
10586
+ .rt-BaseCard:where(.rt-variant-soft)::before{
10522
10587
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10523
10588
  backdrop-filter: var(--backdrop-filter-panel);
10524
10589
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
@@ -10541,19 +10606,35 @@
10541
10606
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10542
10607
  backdrop-filter: var(--backdrop-filter-panel);
10543
10608
  }
10544
- :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:hover)::before{
10609
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid'])
10610
+ .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:hover)::before{
10545
10611
  background-color: var(--gray-3);
10546
10612
  -webkit-backdrop-filter: none;
10547
10613
  backdrop-filter: none;
10548
10614
  --backdrop-filter-panel: none;
10549
10615
  }
10550
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:hover)::before{
10616
+ :where(
10617
+ .rt-BaseCard[data-panel-background='translucent'],
10618
+ .rt-BaseCard[data-material='translucent']
10619
+ )
10620
+ .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:hover)::before{
10551
10621
  background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10552
10622
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10553
10623
  backdrop-filter: var(--backdrop-filter-panel);
10554
10624
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
10555
10625
  }
10556
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:hover)::before{
10626
+ :where(
10627
+ .rt-PopoverContent,
10628
+ .rt-BaseDialogContent,
10629
+ .rt-BaseMenuContent,
10630
+ .rt-DropdownMenuContent,
10631
+ .rt-ContextMenuContent,
10632
+ .rt-AlertDialogContent,
10633
+ .rt-HoverCardContent,
10634
+ .rt-TooltipContent,
10635
+ .rt-Card
10636
+ )
10637
+ .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:hover)::before{
10557
10638
  -webkit-backdrop-filter: none !important;
10558
10639
  backdrop-filter: none !important;
10559
10640
  }
@@ -10572,32 +10653,51 @@
10572
10653
  backdrop-filter: none;
10573
10654
  --backdrop-filter-panel: none;
10574
10655
  }
10575
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where([data-state='open'])::before{
10656
+ :where(
10657
+ .rt-BaseCard[data-panel-background='translucent'],
10658
+ .rt-BaseCard[data-material='translucent']
10659
+ )
10660
+ .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where([data-state='open'])::before{
10576
10661
  background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10577
10662
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10578
10663
  backdrop-filter: var(--backdrop-filter-panel);
10579
10664
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
10580
10665
  }
10581
- :where(.rt-PopoverContent, .rt-BaseDialogContent, .rt-BaseMenuContent, .rt-DropdownMenuContent, .rt-ContextMenuContent, .rt-AlertDialogContent, .rt-HoverCardContent, .rt-TooltipContent, .rt-Card) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where([data-state='open'])::before{
10666
+ :where(
10667
+ .rt-PopoverContent,
10668
+ .rt-BaseDialogContent,
10669
+ .rt-BaseMenuContent,
10670
+ .rt-DropdownMenuContent,
10671
+ .rt-ContextMenuContent,
10672
+ .rt-AlertDialogContent,
10673
+ .rt-HoverCardContent,
10674
+ .rt-TooltipContent,
10675
+ .rt-Card
10676
+ )
10677
+ .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where([data-state='open'])::before{
10582
10678
  -webkit-backdrop-filter: none !important;
10583
10679
  backdrop-filter: none !important;
10584
10680
  }
10585
10681
  .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10586
- background-color: var(--gray-4);
10682
+ background-color: var(--gray-3);
10587
10683
  }
10588
10684
  :where([data-panel-background='translucent'], [data-material='translucent']) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10589
- background-color: color-mix(in srgb, var(--gray-a4), var(--gray-4) 60%);
10685
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10590
10686
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10591
10687
  backdrop-filter: var(--backdrop-filter-panel);
10592
10688
  }
10593
10689
  :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10594
- background-color: var(--gray-4);
10690
+ background-color: var(--gray-3);
10595
10691
  -webkit-backdrop-filter: none;
10596
10692
  backdrop-filter: none;
10597
10693
  --backdrop-filter-panel: none;
10598
10694
  }
10599
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10600
- background-color: color-mix(in srgb, var(--gray-a4), var(--gray-4) 60%);
10695
+ :where(
10696
+ .rt-BaseCard[data-panel-background='translucent'],
10697
+ .rt-BaseCard[data-material='translucent']
10698
+ )
10699
+ .rt-BaseCard:where(.rt-variant-soft):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10700
+ background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10601
10701
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10602
10702
  backdrop-filter: var(--backdrop-filter-panel);
10603
10703
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
@@ -10632,7 +10732,11 @@
10632
10732
  backdrop-filter: none;
10633
10733
  --backdrop-filter-panel: none;
10634
10734
  }
10635
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-surface)::before{
10735
+ :where(
10736
+ .rt-BaseCard[data-panel-background='translucent'],
10737
+ .rt-BaseCard[data-material='translucent']
10738
+ )
10739
+ .rt-BaseCard:where(.rt-variant-surface)::before{
10636
10740
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10637
10741
  backdrop-filter: var(--backdrop-filter-panel);
10638
10742
  --backdrop-filter-panel: blur(var(--backdrop-blur-panel));
@@ -10662,13 +10766,18 @@
10662
10766
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10663
10767
  backdrop-filter: var(--backdrop-filter-panel);
10664
10768
  }
10665
- :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid']) .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where(:hover)::before{
10769
+ :where(.rt-BaseCard[data-panel-background='solid'], .rt-BaseCard[data-material='solid'])
10770
+ .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where(:hover)::before{
10666
10771
  background-color: var(--gray-2);
10667
10772
  -webkit-backdrop-filter: none;
10668
10773
  backdrop-filter: none;
10669
10774
  --backdrop-filter-panel: none;
10670
10775
  }
10671
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where(:hover)::before{
10776
+ :where(
10777
+ .rt-BaseCard[data-panel-background='translucent'],
10778
+ .rt-BaseCard[data-material='translucent']
10779
+ )
10780
+ .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where(:hover)::before{
10672
10781
  background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
10673
10782
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10674
10783
  backdrop-filter: var(--backdrop-filter-panel);
@@ -10695,7 +10804,11 @@
10695
10804
  backdrop-filter: none;
10696
10805
  --backdrop-filter-panel: none;
10697
10806
  }
10698
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where([data-state='open'])::before{
10807
+ :where(
10808
+ .rt-BaseCard[data-panel-background='translucent'],
10809
+ .rt-BaseCard[data-material='translucent']
10810
+ )
10811
+ .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where([data-state='open'])::before{
10699
10812
  background-color: color-mix(in srgb, var(--gray-a2), var(--gray-2) 60%);
10700
10813
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10701
10814
  backdrop-filter: var(--backdrop-filter-panel);
@@ -10721,7 +10834,11 @@
10721
10834
  backdrop-filter: none;
10722
10835
  --backdrop-filter-panel: none;
10723
10836
  }
10724
- :where(.rt-BaseCard[data-panel-background='translucent'], .rt-BaseCard[data-material='translucent']) .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10837
+ :where(
10838
+ .rt-BaseCard[data-panel-background='translucent'],
10839
+ .rt-BaseCard[data-material='translucent']
10840
+ )
10841
+ .rt-BaseCard:where(.rt-variant-surface):where(:any-link, button, label):where(:active:not([data-state='open']))::before{
10725
10842
  background-color: color-mix(in srgb, var(--gray-a3), var(--gray-3) 60%);
10726
10843
  -webkit-backdrop-filter: var(--backdrop-filter-panel);
10727
10844
  backdrop-filter: var(--backdrop-filter-panel);
@@ -18869,7 +18986,7 @@
18869
18986
  .rt-SidebarMenuSubTrigger :where(.rt-SidebarMenuSubTriggerIcon){
18870
18987
  transition: transform var(--motion-duration-micro) var(--motion-ease-standard);
18871
18988
  }
18872
- .rt-SidebarMenuSubTrigger:where([data-state="open"]) :where(.rt-SidebarMenuSubTriggerIcon){
18989
+ .rt-SidebarMenuSubTrigger:where([data-state='open']) :where(.rt-SidebarMenuSubTriggerIcon){
18873
18990
  transform: rotate(90deg);
18874
18991
  }
18875
18992
  .rt-SidebarMenuSubContent{
@@ -18878,10 +18995,10 @@
18878
18995
  .rt-SidebarMenuSubContent:where(:focus-within){
18879
18996
  overflow: visible;
18880
18997
  }
18881
- .rt-SidebarMenuSubContent:where([data-state="open"]){
18998
+ .rt-SidebarMenuSubContent:where([data-state='open']){
18882
18999
  animation: rt-sidebar-slide-down var(--motion-duration-small) var(--motion-ease-standard);
18883
19000
  }
18884
- .rt-SidebarMenuSubContent:where([data-state="closed"]){
19001
+ .rt-SidebarMenuSubContent:where([data-state='closed']){
18885
19002
  animation: rt-sidebar-slide-up var(--motion-duration-small) var(--motion-ease-standard);
18886
19003
  }
18887
19004
  @keyframes rt-sidebar-slide-down {
@@ -19803,7 +19920,8 @@
19803
19920
  top: 0;
19804
19921
  inset-inline: 0;
19805
19922
  z-index: var(--shell-z-header, 10);
19806
- block-size: var(--shell-header-height, 64px);
19923
+ height: var(--shell-header-height, 64px);
19924
+ min-height: var(--shell-header-height, 64px);
19807
19925
  display: flex;
19808
19926
  align-items: center;
19809
19927
  background-color: var(--color-panel);
@@ -21199,6 +21317,9 @@
21199
21317
  --scrollarea-scrollbar-horizontal-margin-left: 0;
21200
21318
  --scrollarea-scrollbar-horizontal-margin-right: 0;
21201
21319
  }
21320
+ .rt-TableRoot:where(.rt-variant-ghost) :where(.rt-TableBody) :where(.rt-TableRow:last-child){
21321
+ --table-row-box-shadow: none;
21322
+ }
21202
21323
  .rt-TabsContent{
21203
21324
  position: relative;
21204
21325
  outline: 0;