gladvn 0.2.18 → 0.2.20

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 (203) hide show
  1. package/bin/cli.js +15 -5
  2. package/dist/components/macro/accordion-preset.d.ts.map +1 -1
  3. package/dist/components/macro/alert-dialog-preset.d.ts.map +1 -1
  4. package/dist/components/macro/alert-preset.d.ts.map +1 -1
  5. package/dist/components/macro/avatar-preset.d.ts.map +1 -1
  6. package/dist/components/macro/breadcrumb-preset.d.ts.map +1 -1
  7. package/dist/components/macro/card-preset.d.ts.map +1 -1
  8. package/dist/components/macro/carousel-preset.d.ts.map +1 -1
  9. package/dist/components/macro/checkbox-preset.d.ts.map +1 -1
  10. package/dist/components/macro/combobox-preset.d.ts.map +1 -1
  11. package/dist/components/macro/command-preset.d.ts +1 -1
  12. package/dist/components/macro/command-preset.d.ts.map +1 -1
  13. package/dist/components/macro/date-picker.d.ts.map +1 -1
  14. package/dist/components/macro/dialog-preset.d.ts.map +1 -1
  15. package/dist/components/macro/empty-preset.d.ts +1 -1
  16. package/dist/components/macro/empty-preset.d.ts.map +1 -1
  17. package/dist/components/macro/field-preset.d.ts.map +1 -1
  18. package/dist/components/macro/input-otp-preset.d.ts.map +1 -1
  19. package/dist/components/macro/input-preset.d.ts.map +1 -1
  20. package/dist/components/macro/pagination-preset.d.ts.map +1 -1
  21. package/dist/components/macro/progress-preset.d.ts.map +1 -1
  22. package/dist/components/macro/radio-group-preset.d.ts.map +1 -1
  23. package/dist/components/macro/select-preset.d.ts.map +1 -1
  24. package/dist/components/macro/slider-preset.d.ts.map +1 -1
  25. package/dist/components/macro/switch-preset.d.ts.map +1 -1
  26. package/dist/components/macro/tabs-preset.d.ts.map +1 -1
  27. package/dist/components/micro/alert-dialog.d.ts +4 -4
  28. package/dist/components/micro/alert-dialog.d.ts.map +1 -1
  29. package/dist/components/micro/combobox.d.ts +4 -3
  30. package/dist/components/micro/combobox.d.ts.map +1 -1
  31. package/dist/components/micro/context-menu.d.ts +4 -6
  32. package/dist/components/micro/context-menu.d.ts.map +1 -1
  33. package/dist/components/micro/dialog.d.ts +4 -3
  34. package/dist/components/micro/dialog.d.ts.map +1 -1
  35. package/dist/components/micro/drawer.d.ts +4 -3
  36. package/dist/components/micro/drawer.d.ts.map +1 -1
  37. package/dist/components/micro/dropdown-menu.d.ts +7 -4
  38. package/dist/components/micro/dropdown-menu.d.ts.map +1 -1
  39. package/dist/components/micro/hover-card.d.ts +4 -3
  40. package/dist/components/micro/hover-card.d.ts.map +1 -1
  41. package/dist/components/micro/menubar.d.ts +2 -3
  42. package/dist/components/micro/menubar.d.ts.map +1 -1
  43. package/dist/components/micro/navigation-menu.d.ts +4 -3
  44. package/dist/components/micro/navigation-menu.d.ts.map +1 -1
  45. package/dist/components/micro/popover.d.ts +4 -3
  46. package/dist/components/micro/popover.d.ts.map +1 -1
  47. package/dist/components/micro/select.d.ts +4 -3
  48. package/dist/components/micro/select.d.ts.map +1 -1
  49. package/dist/components/micro/sheet.d.ts +3 -3
  50. package/dist/components/micro/sheet.d.ts.map +1 -1
  51. package/dist/components/micro/tooltip.d.ts +4 -3
  52. package/dist/components/micro/tooltip.d.ts.map +1 -1
  53. package/dist/dev/showcase/accordion.d.ts.map +1 -1
  54. package/dist/dev/showcase/alert-dialog.d.ts.map +1 -1
  55. package/dist/dev/showcase/alert.d.ts.map +1 -1
  56. package/dist/dev/showcase/aspect-ratio.d.ts.map +1 -1
  57. package/dist/dev/showcase/avatar.d.ts.map +1 -1
  58. package/dist/dev/showcase/badge.d.ts.map +1 -1
  59. package/dist/dev/showcase/breadcrumb.d.ts.map +1 -1
  60. package/dist/dev/showcase/button.d.ts.map +1 -1
  61. package/dist/dev/showcase/calendar.d.ts.map +1 -1
  62. package/dist/dev/showcase/card.d.ts.map +1 -1
  63. package/dist/dev/showcase/carousel.d.ts.map +1 -1
  64. package/dist/dev/showcase/chart.d.ts.map +1 -1
  65. package/dist/dev/showcase/checkbox.d.ts.map +1 -1
  66. package/dist/dev/showcase/collapsible.d.ts.map +1 -1
  67. package/dist/dev/showcase/combobox.d.ts.map +1 -1
  68. package/dist/dev/showcase/command.d.ts.map +1 -1
  69. package/dist/dev/showcase/context-menu.d.ts.map +1 -1
  70. package/dist/dev/showcase/dialog.d.ts.map +1 -1
  71. package/dist/dev/showcase/drawer.d.ts.map +1 -1
  72. package/dist/dev/showcase/dropdown-menu.d.ts.map +1 -1
  73. package/dist/dev/showcase/empty.d.ts.map +1 -1
  74. package/dist/dev/showcase/hover-card.d.ts.map +1 -1
  75. package/dist/dev/showcase/input-group.d.ts.map +1 -1
  76. package/dist/dev/showcase/input-otp.d.ts.map +1 -1
  77. package/dist/dev/showcase/input.d.ts.map +1 -1
  78. package/dist/dev/showcase/item.d.ts.map +1 -1
  79. package/dist/dev/showcase/kbd.d.ts.map +1 -1
  80. package/dist/dev/showcase/label.d.ts.map +1 -1
  81. package/dist/dev/showcase/menubar.d.ts.map +1 -1
  82. package/dist/dev/showcase/navigation-menu.d.ts.map +1 -1
  83. package/dist/dev/showcase/overview.d.ts.map +1 -1
  84. package/dist/dev/showcase/pagination.d.ts.map +1 -1
  85. package/dist/dev/showcase/popover.d.ts.map +1 -1
  86. package/dist/dev/showcase/progress.d.ts.map +1 -1
  87. package/dist/dev/showcase/radio-group.d.ts.map +1 -1
  88. package/dist/dev/showcase/resizable.d.ts.map +1 -1
  89. package/dist/dev/showcase/scroll-area.d.ts.map +1 -1
  90. package/dist/dev/showcase/select.d.ts.map +1 -1
  91. package/dist/dev/showcase/separator.d.ts.map +1 -1
  92. package/dist/dev/showcase/sheet.d.ts.map +1 -1
  93. package/dist/dev/showcase/sidebar.d.ts.map +1 -1
  94. package/dist/dev/showcase/skeleton.d.ts.map +1 -1
  95. package/dist/dev/showcase/slider.d.ts.map +1 -1
  96. package/dist/dev/showcase/sonner.d.ts.map +1 -1
  97. package/dist/dev/showcase/spinner.d.ts.map +1 -1
  98. package/dist/dev/showcase/switch.d.ts.map +1 -1
  99. package/dist/dev/showcase/table.d.ts.map +1 -1
  100. package/dist/dev/showcase/tabs.d.ts.map +1 -1
  101. package/dist/dev/showcase/textarea.d.ts.map +1 -1
  102. package/dist/dev/showcase/theme-provider.d.ts.map +1 -1
  103. package/dist/dev/showcase/toast.d.ts.map +1 -1
  104. package/dist/dev/showcase/toggle-group.d.ts.map +1 -1
  105. package/dist/dev/showcase/toggle.d.ts.map +1 -1
  106. package/dist/dev/showcase/tooltip.d.ts.map +1 -1
  107. package/dist/index.cjs +256 -256
  108. package/dist/index.cjs.map +1 -1
  109. package/dist/index.js +257 -244
  110. package/dist/index.js.map +1 -1
  111. package/package.json +1 -1
  112. package/src/components/macro/accordion-preset.test.tsx +1 -2
  113. package/src/components/macro/accordion-preset.tsx +1 -2
  114. package/src/components/macro/alert-dialog-preset.tsx +7 -12
  115. package/src/components/macro/alert-preset.tsx +1 -2
  116. package/src/components/macro/avatar-preset.tsx +2 -4
  117. package/src/components/macro/breadcrumb-preset.tsx +1 -2
  118. package/src/components/macro/card-preset.tsx +1 -2
  119. package/src/components/macro/carousel-preset.tsx +1 -2
  120. package/src/components/macro/checkbox-preset.tsx +1 -2
  121. package/src/components/macro/combobox-preset.tsx +8 -14
  122. package/src/components/macro/command-preset.tsx +18 -24
  123. package/src/components/macro/date-picker.tsx +14 -23
  124. package/src/components/macro/dialog-preset.tsx +45 -49
  125. package/src/components/macro/empty-preset.tsx +2 -4
  126. package/src/components/macro/field-preset.tsx +1 -2
  127. package/src/components/macro/input-otp-preset.tsx +1 -2
  128. package/src/components/macro/input-preset.tsx +1 -2
  129. package/src/components/macro/pagination-preset.tsx +3 -6
  130. package/src/components/macro/progress-preset.tsx +1 -2
  131. package/src/components/macro/radio-group-preset.tsx +2 -4
  132. package/src/components/macro/select-preset.tsx +7 -12
  133. package/src/components/macro/slider-preset.tsx +1 -2
  134. package/src/components/macro/switch-preset.tsx +1 -2
  135. package/src/components/macro/tabs-preset.tsx +1 -2
  136. package/src/components/micro/alert-dialog.tsx +16 -14
  137. package/src/components/micro/combobox.tsx +28 -22
  138. package/src/components/micro/context-menu.tsx +52 -36
  139. package/src/components/micro/dialog.tsx +23 -19
  140. package/src/components/micro/drawer.tsx +23 -19
  141. package/src/components/micro/dropdown-menu.tsx +23 -18
  142. package/src/components/micro/hover-card.tsx +31 -23
  143. package/src/components/micro/menubar.tsx +0 -8
  144. package/src/components/micro/navigation-menu.tsx +26 -19
  145. package/src/components/micro/popover.tsx +31 -25
  146. package/src/components/micro/select.tsx +36 -29
  147. package/src/components/micro/sheet.tsx +36 -31
  148. package/src/components/micro/tooltip.tsx +28 -23
  149. package/src/dev/showcase/accordion.tsx +47 -94
  150. package/src/dev/showcase/alert-dialog.tsx +27 -39
  151. package/src/dev/showcase/alert.tsx +5 -10
  152. package/src/dev/showcase/aspect-ratio.tsx +1 -2
  153. package/src/dev/showcase/avatar.tsx +5 -10
  154. package/src/dev/showcase/badge.tsx +2 -4
  155. package/src/dev/showcase/breadcrumb.tsx +8 -11
  156. package/src/dev/showcase/button.tsx +2 -4
  157. package/src/dev/showcase/calendar.tsx +5 -10
  158. package/src/dev/showcase/card.tsx +4 -8
  159. package/src/dev/showcase/carousel.tsx +40 -80
  160. package/src/dev/showcase/chart.tsx +7 -16
  161. package/src/dev/showcase/checkbox.tsx +7 -14
  162. package/src/dev/showcase/collapsible.tsx +3 -6
  163. package/src/dev/showcase/combobox.tsx +27 -43
  164. package/src/dev/showcase/command.tsx +4 -8
  165. package/src/dev/showcase/context-menu.tsx +13 -19
  166. package/src/dev/showcase/dialog.tsx +19 -33
  167. package/src/dev/showcase/drawer.tsx +19 -27
  168. package/src/dev/showcase/dropdown-menu.tsx +19 -29
  169. package/src/dev/showcase/empty.tsx +3 -6
  170. package/src/dev/showcase/hover-card.tsx +24 -36
  171. package/src/dev/showcase/input-group.tsx +4 -8
  172. package/src/dev/showcase/input-otp.tsx +5 -10
  173. package/src/dev/showcase/input.tsx +5 -10
  174. package/src/dev/showcase/item.tsx +3 -6
  175. package/src/dev/showcase/kbd.tsx +12 -16
  176. package/src/dev/showcase/label.tsx +2 -4
  177. package/src/dev/showcase/menubar.tsx +17 -19
  178. package/src/dev/showcase/navigation-menu.tsx +12 -15
  179. package/src/dev/showcase/overview.tsx +14 -27
  180. package/src/dev/showcase/pagination.tsx +4 -8
  181. package/src/dev/showcase/popover.tsx +21 -27
  182. package/src/dev/showcase/progress.tsx +4 -8
  183. package/src/dev/showcase/radio-group.tsx +8 -16
  184. package/src/dev/showcase/resizable.tsx +2 -4
  185. package/src/dev/showcase/scroll-area.tsx +1 -2
  186. package/src/dev/showcase/select.tsx +27 -39
  187. package/src/dev/showcase/separator.tsx +1 -2
  188. package/src/dev/showcase/sheet.tsx +22 -33
  189. package/src/dev/showcase/sidebar.tsx +2 -4
  190. package/src/dev/showcase/skeleton.tsx +1 -2
  191. package/src/dev/showcase/slider.tsx +5 -10
  192. package/src/dev/showcase/sonner.tsx +18 -38
  193. package/src/dev/showcase/spinner.tsx +2 -4
  194. package/src/dev/showcase/switch.tsx +6 -12
  195. package/src/dev/showcase/table.tsx +3 -6
  196. package/src/dev/showcase/tabs.tsx +20 -40
  197. package/src/dev/showcase/textarea.tsx +5 -10
  198. package/src/dev/showcase/theme-provider.tsx +384 -545
  199. package/src/dev/showcase/toast.tsx +4 -10
  200. package/src/dev/showcase/toggle-group.tsx +4 -8
  201. package/src/dev/showcase/toggle.tsx +2 -4
  202. package/src/dev/showcase/tooltip.tsx +34 -43
  203. package/src/styles/gladvn.css +1 -2
@@ -11,6 +11,7 @@ import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/naviga
11
11
  import { ChevronDownIcon } from "lucide-react";
12
12
 
13
13
  import { cn } from "../../lib/utils";
14
+ import { ThemeWrapper } from "./theme-provider";
14
15
 
15
16
  /**
16
17
  * @description A collection of links for navigating websites.
@@ -117,7 +118,9 @@ NavigationMenuContent.displayName = "NavigationMenuContent";
117
118
 
118
119
  const NavigationMenuPositioner = React.forwardRef<
119
120
  React.ComponentRef<typeof NavigationMenuPrimitive.Positioner>,
120
- React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Positioner>
121
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Positioner> & {
122
+ container?: React.ComponentProps<typeof NavigationMenuPrimitive.Portal>["container"];
123
+ }
121
124
  >(
122
125
  (
123
126
  {
@@ -126,27 +129,32 @@ const NavigationMenuPositioner = React.forwardRef<
126
129
  sideOffset = 8,
127
130
  align = "start",
128
131
  alignOffset = 0,
132
+ container,
129
133
  ...props
130
134
  },
131
135
  ref,
132
136
  ) => {
133
137
  return (
134
- <NavigationMenuPrimitive.Positioner
135
- ref={ref}
136
- side={side}
137
- sideOffset={sideOffset}
138
- align={align}
139
- alignOffset={alignOffset}
140
- className={cn(
141
- "isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0",
142
- className,
143
- )}
144
- {...props}
145
- >
146
- <NavigationMenuPrimitive.Popup className="data-ending-style:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0">
147
- <NavigationMenuViewport />
148
- </NavigationMenuPrimitive.Popup>
149
- </NavigationMenuPrimitive.Positioner>
138
+ <NavigationMenuPrimitive.Portal container={container}>
139
+ <ThemeWrapper>
140
+ <NavigationMenuPrimitive.Positioner
141
+ ref={ref}
142
+ side={side}
143
+ sideOffset={sideOffset}
144
+ align={align}
145
+ alignOffset={alignOffset}
146
+ className={cn(
147
+ "isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0",
148
+ className,
149
+ )}
150
+ {...props}
151
+ >
152
+ <NavigationMenuPrimitive.Popup className="data-ending-style:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0">
153
+ <NavigationMenuViewport />
154
+ </NavigationMenuPrimitive.Popup>
155
+ </NavigationMenuPrimitive.Positioner>
156
+ </ThemeWrapper>
157
+ </NavigationMenuPrimitive.Portal>
150
158
  );
151
159
  },
152
160
  );
@@ -182,7 +190,7 @@ const NavigationMenuLink = React.forwardRef<
182
190
  });
183
191
  NavigationMenuLink.displayName = "NavigationMenuLink";
184
192
 
185
- const NavigationMenuPortal = NavigationMenuPrimitive.Portal;
193
+
186
194
 
187
195
  export {
188
196
  NavigationMenu,
@@ -190,7 +198,6 @@ export {
190
198
  NavigationMenuItem,
191
199
  NavigationMenuLink,
192
200
  NavigationMenuList,
193
- NavigationMenuPortal,
194
201
  NavigationMenuPositioner,
195
202
  NavigationMenuTrigger,
196
203
  navigationMenuTriggerStyle,
@@ -13,6 +13,7 @@ import * as React from "react";
13
13
  import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
14
14
 
15
15
  import { cn } from "../../lib/utils";
16
+ import { ThemeWrapper } from "./theme-provider";
16
17
 
17
18
  function Popover(props: React.ComponentProps<typeof PopoverPrimitive.Root>) {
18
19
  return <PopoverPrimitive.Root {...props} />;
@@ -32,15 +33,15 @@ const PopoverTrigger = React.forwardRef<
32
33
  });
33
34
  PopoverTrigger.displayName = "PopoverTrigger";
34
35
 
35
- const PopoverPortal = PopoverPrimitive.Portal;
36
-
37
36
  const PopoverContent = React.forwardRef<
38
37
  HTMLDivElement,
39
38
  React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Popup> &
40
39
  Pick<
41
40
  React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Positioner>,
42
41
  "align" | "alignOffset" | "side" | "sideOffset"
43
- >
42
+ > & {
43
+ container?: React.ComponentProps<typeof PopoverPrimitive.Portal>["container"];
44
+ }
44
45
  >(
45
46
  (
46
47
  {
@@ -49,30 +50,36 @@ const PopoverContent = React.forwardRef<
49
50
  alignOffset = 0,
50
51
  side = "bottom",
51
52
  sideOffset = 4,
53
+ container,
54
+ children,
52
55
  ...props
53
56
  },
54
57
  ref,
55
- ) => {
56
- return (
57
- <PopoverPrimitive.Positioner
58
- align={align}
59
- alignOffset={alignOffset}
60
- side={side}
61
- sideOffset={sideOffset}
62
- className="isolate z-50"
63
- >
64
- <PopoverPrimitive.Popup
65
- ref={ref}
66
- data-slot="popover-content"
67
- className={cn(
68
- "flex origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
69
- className,
70
- )}
71
- {...props}
72
- />
73
- </PopoverPrimitive.Positioner>
74
- );
75
- },
58
+ ) => (
59
+ <PopoverPrimitive.Portal container={container}>
60
+ <ThemeWrapper>
61
+ <PopoverPrimitive.Positioner
62
+ align={align}
63
+ alignOffset={alignOffset}
64
+ side={side}
65
+ sideOffset={sideOffset}
66
+ className="isolate z-50"
67
+ >
68
+ <PopoverPrimitive.Popup
69
+ ref={ref}
70
+ data-slot="popover-content"
71
+ className={cn(
72
+ "flex origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
73
+ className,
74
+ )}
75
+ {...props}
76
+ >
77
+ {children}
78
+ </PopoverPrimitive.Popup>
79
+ </PopoverPrimitive.Positioner>
80
+ </ThemeWrapper>
81
+ </PopoverPrimitive.Portal>
82
+ ),
76
83
  );
77
84
  PopoverContent.displayName = "PopoverContent";
78
85
 
@@ -126,7 +133,6 @@ export {
126
133
  PopoverContent,
127
134
  PopoverDescription,
128
135
  PopoverHeader,
129
- PopoverPortal,
130
136
  PopoverTitle,
131
137
  PopoverTrigger,
132
138
  };
@@ -14,6 +14,7 @@ import { type VariantProps, cva } from "class-variance-authority";
14
14
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
15
15
 
16
16
  import { cn } from "../../lib/utils";
17
+ import { ThemeWrapper } from "./theme-provider";
17
18
 
18
19
  const Select = SelectPrimitive.Root;
19
20
 
@@ -43,7 +44,7 @@ const SelectValue = React.forwardRef<
43
44
  ));
44
45
  SelectValue.displayName = "SelectValue";
45
46
 
46
- const SelectPortal = SelectPrimitive.Portal;
47
+
47
48
 
48
49
  const selectTriggerVariants = cva(
49
50
  "inline-flex items-center justify-between rounded-lg border border-input bg-transparent text-foreground text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 data-placeholder:text-muted-foreground [&_[data-slot=select-value]]:line-clamp-1 [&_[data-slot=select-value]]:flex [&_[data-slot=select-value]]:items-center [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50",
@@ -85,7 +86,9 @@ const SelectContent = React.forwardRef<
85
86
  Pick<
86
87
  SelectPrimitive.Positioner.Props,
87
88
  "align" | "alignOffset" | "side" | "sideOffset" | "alignItemWithTrigger"
88
- >
89
+ > & {
90
+ container?: React.ComponentProps<typeof SelectPrimitive.Portal>["container"];
91
+ }
89
92
  >(
90
93
  (
91
94
  {
@@ -96,36 +99,41 @@ const SelectContent = React.forwardRef<
96
99
  align = "center",
97
100
  alignOffset = 0,
98
101
  alignItemWithTrigger = false,
102
+ container,
99
103
  ...props
100
104
  },
101
105
  ref,
102
106
  ) => (
103
- <SelectPrimitive.Positioner
104
- side={side}
105
- sideOffset={sideOffset}
106
- align={align}
107
- alignOffset={alignOffset}
108
- alignItemWithTrigger={alignItemWithTrigger}
109
- className="isolate z-50"
110
- >
111
- <SelectPrimitive.Popup
112
- ref={ref}
113
- data-slot="select-content"
114
- data-align-trigger={alignItemWithTrigger}
115
- className={cn(
116
- "relative isolate z-50 max-h-(--available-height) w-[calc(var(--anchor-width)+8px)] overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
117
- alignItemWithTrigger
118
- ? "origin-(--transform-origin) data-[align-trigger=true]:animate-none"
119
- : "",
120
- className,
121
- )}
122
- {...props}
123
- >
124
- <SelectScrollUpButton />
125
- <SelectPrimitive.List>{children}</SelectPrimitive.List>
126
- <SelectScrollDownButton />
127
- </SelectPrimitive.Popup>
128
- </SelectPrimitive.Positioner>
107
+ <SelectPrimitive.Portal container={container}>
108
+ <ThemeWrapper>
109
+ <SelectPrimitive.Positioner
110
+ side={side}
111
+ sideOffset={sideOffset}
112
+ align={align}
113
+ alignOffset={alignOffset}
114
+ alignItemWithTrigger={alignItemWithTrigger}
115
+ className="isolate z-50"
116
+ >
117
+ <SelectPrimitive.Popup
118
+ ref={ref}
119
+ data-slot="select-content"
120
+ data-align-trigger={alignItemWithTrigger}
121
+ className={cn(
122
+ "relative isolate z-50 max-h-(--available-height) w-[calc(var(--anchor-width)+8px)] overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
123
+ alignItemWithTrigger
124
+ ? "origin-(--transform-origin) data-[align-trigger=true]:animate-none"
125
+ : "",
126
+ className,
127
+ )}
128
+ {...props}
129
+ >
130
+ <SelectScrollUpButton />
131
+ <SelectPrimitive.List>{children}</SelectPrimitive.List>
132
+ <SelectScrollDownButton />
133
+ </SelectPrimitive.Popup>
134
+ </SelectPrimitive.Positioner>
135
+ </ThemeWrapper>
136
+ </SelectPrimitive.Portal>
129
137
  ),
130
138
  );
131
139
  SelectContent.displayName = "SelectContent";
@@ -225,7 +233,6 @@ export {
225
233
  SelectGroup,
226
234
  SelectItem,
227
235
  SelectLabel,
228
- SelectPortal,
229
236
  SelectScrollDownButton,
230
237
  SelectScrollUpButton,
231
238
  SelectSeparator,
@@ -14,6 +14,7 @@ import { XIcon } from "lucide-react";
14
14
 
15
15
  import { Button } from "../../components/micro/button";
16
16
  import { cn } from "../../lib/utils";
17
+ import { ThemeWrapper } from "./theme-provider";
17
18
 
18
19
  function Sheet({ ...props }: SheetPrimitive.Root.Props) {
19
20
  return <SheetPrimitive.Root data-slot="sheet" {...props} />;
@@ -27,7 +28,7 @@ function SheetClose({ ...props }: SheetPrimitive.Close.Props) {
27
28
  return <SheetPrimitive.Close data-slot="sheet-close" {...props} />;
28
29
  }
29
30
 
30
- const SheetPortal = SheetPrimitive.Portal;
31
+
31
32
 
32
33
  function SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {
33
34
  return (
@@ -47,41 +48,46 @@ function SheetContent({
47
48
  children,
48
49
  side = "right",
49
50
  showCloseButton = true,
51
+ container,
50
52
  ...props
51
53
  }: SheetPrimitive.Popup.Props & {
52
54
  side?: "top" | "right" | "bottom" | "left";
53
55
  showCloseButton?: boolean;
56
+ container?: React.ComponentProps<typeof SheetPrimitive.Portal>["container"];
54
57
  }) {
55
58
  return (
56
- <>
57
- <SheetOverlay />
58
- <SheetPrimitive.Popup
59
- data-slot="sheet-content"
60
- data-side={side}
61
- className={cn(
62
- "fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm motion-reduce:transition-none",
63
- className,
64
- )}
65
- {...props}
66
- >
67
- {children}
68
- {showCloseButton && (
69
- <SheetPrimitive.Close
70
- data-slot="sheet-close"
71
- render={
72
- <Button
73
- variant="ghost"
74
- className="absolute top-4 right-4"
75
- size="sm"
76
- />
77
- }
78
- >
79
- <XIcon aria-hidden="true" />
80
- <span className="sr-only">Close</span>
81
- </SheetPrimitive.Close>
82
- )}
83
- </SheetPrimitive.Popup>
84
- </>
59
+ <SheetPrimitive.Portal container={container}>
60
+ <ThemeWrapper>
61
+ <SheetOverlay />
62
+ <SheetPrimitive.Popup
63
+ data-slot="sheet-content"
64
+ data-side={side}
65
+ className={cn(
66
+ "fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm motion-reduce:transition-none",
67
+ className,
68
+ )}
69
+ {...props}
70
+ >
71
+ {children}
72
+ {showCloseButton && (
73
+ <SheetPrimitive.Close
74
+ data-slot="sheet-close"
75
+ render={
76
+ <Button
77
+ variant="ghost"
78
+ className="absolute top-4 right-4"
79
+ size="sm"
80
+ iconOnly
81
+ />
82
+ }
83
+ >
84
+ <XIcon aria-hidden="true" />
85
+ <span className="sr-only">Close</span>
86
+ </SheetPrimitive.Close>
87
+ )}
88
+ </SheetPrimitive.Popup>
89
+ </ThemeWrapper>
90
+ </SheetPrimitive.Portal>
85
91
  );
86
92
  }
87
93
 
@@ -139,7 +145,6 @@ export {
139
145
  SheetFooter,
140
146
  SheetHeader,
141
147
  SheetOverlay,
142
- SheetPortal,
143
148
  SheetTitle,
144
149
  SheetTrigger,
145
150
  };
@@ -12,6 +12,7 @@ import * as React from "react";
12
12
  import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
13
13
 
14
14
  import { cn } from "../../lib/utils";
15
+ import { ThemeWrapper } from "./theme-provider";
15
16
 
16
17
  /**
17
18
  * @description A popup that displays information related to an element.
@@ -55,15 +56,15 @@ const TooltipTrigger = React.forwardRef<
55
56
  });
56
57
  TooltipTrigger.displayName = "TooltipTrigger";
57
58
 
58
- const TooltipPortal = TooltipPrimitive.Portal;
59
-
60
59
  const TooltipContent = React.forwardRef<
61
60
  HTMLDivElement,
62
61
  React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Popup> &
63
62
  Pick<
64
63
  React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Positioner>,
65
64
  "align" | "alignOffset" | "side" | "sideOffset"
66
- >
65
+ > & {
66
+ container?: React.ComponentProps<typeof TooltipPrimitive.Portal>["container"];
67
+ }
67
68
  >(
68
69
  (
69
70
  {
@@ -72,31 +73,36 @@ const TooltipContent = React.forwardRef<
72
73
  sideOffset = 4,
73
74
  align = "center",
74
75
  alignOffset = 0,
76
+ container,
75
77
  children,
76
78
  ...props
77
79
  },
78
80
  ref,
79
81
  ) => {
80
82
  return (
81
- <TooltipPrimitive.Positioner
82
- align={align}
83
- alignOffset={alignOffset}
84
- side={side}
85
- sideOffset={sideOffset}
86
- className="isolate z-50"
87
- >
88
- <TooltipPrimitive.Popup
89
- ref={ref}
90
- data-slot="tooltip-content"
91
- className={cn(
92
- "z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
93
- className,
94
- )}
95
- {...props}
96
- >
97
- {children}
98
- </TooltipPrimitive.Popup>
99
- </TooltipPrimitive.Positioner>
83
+ <TooltipPrimitive.Portal container={container}>
84
+ <ThemeWrapper>
85
+ <TooltipPrimitive.Positioner
86
+ align={align}
87
+ alignOffset={alignOffset}
88
+ side={side}
89
+ sideOffset={sideOffset}
90
+ className="isolate z-50"
91
+ >
92
+ <TooltipPrimitive.Popup
93
+ ref={ref}
94
+ data-slot="tooltip-content"
95
+ className={cn(
96
+ "z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
97
+ className,
98
+ )}
99
+ {...props}
100
+ >
101
+ {children}
102
+ </TooltipPrimitive.Popup>
103
+ </TooltipPrimitive.Positioner>
104
+ </ThemeWrapper>
105
+ </TooltipPrimitive.Portal>
100
106
  );
101
107
  },
102
108
  );
@@ -105,7 +111,6 @@ TooltipContent.displayName = "TooltipContent";
105
111
  export {
106
112
  Tooltip,
107
113
  TooltipContent,
108
- TooltipPortal,
109
114
  TooltipProvider,
110
115
  TooltipTrigger,
111
116
  };