gladvn 0.2.19 → 0.2.21
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.
- package/README.md +1 -0
- package/bin/cli.js +15 -5
- package/dist/components/macro/accordion-preset.d.ts.map +1 -1
- package/dist/components/macro/alert-dialog-preset.d.ts.map +1 -1
- package/dist/components/macro/alert-preset.d.ts.map +1 -1
- package/dist/components/macro/avatar-preset.d.ts.map +1 -1
- package/dist/components/macro/breadcrumb-preset.d.ts.map +1 -1
- package/dist/components/macro/card-preset.d.ts.map +1 -1
- package/dist/components/macro/carousel-preset.d.ts.map +1 -1
- package/dist/components/macro/checkbox-preset.d.ts.map +1 -1
- package/dist/components/macro/combobox-preset.d.ts.map +1 -1
- package/dist/components/macro/command-preset.d.ts +1 -1
- package/dist/components/macro/command-preset.d.ts.map +1 -1
- package/dist/components/macro/date-picker.d.ts.map +1 -1
- package/dist/components/macro/dialog-preset.d.ts.map +1 -1
- package/dist/components/macro/empty-preset.d.ts +1 -1
- package/dist/components/macro/empty-preset.d.ts.map +1 -1
- package/dist/components/macro/field-preset.d.ts.map +1 -1
- package/dist/components/macro/input-otp-preset.d.ts.map +1 -1
- package/dist/components/macro/input-preset.d.ts.map +1 -1
- package/dist/components/macro/pagination-preset.d.ts.map +1 -1
- package/dist/components/macro/progress-preset.d.ts.map +1 -1
- package/dist/components/macro/radio-group-preset.d.ts.map +1 -1
- package/dist/components/macro/select-preset.d.ts.map +1 -1
- package/dist/components/macro/slider-preset.d.ts.map +1 -1
- package/dist/components/macro/switch-preset.d.ts.map +1 -1
- package/dist/components/macro/tabs-preset.d.ts.map +1 -1
- package/dist/components/micro/alert-dialog.d.ts +4 -4
- package/dist/components/micro/alert-dialog.d.ts.map +1 -1
- package/dist/components/micro/combobox.d.ts +4 -3
- package/dist/components/micro/combobox.d.ts.map +1 -1
- package/dist/components/micro/context-menu.d.ts +4 -6
- package/dist/components/micro/context-menu.d.ts.map +1 -1
- package/dist/components/micro/dialog.d.ts +4 -3
- package/dist/components/micro/dialog.d.ts.map +1 -1
- package/dist/components/micro/drawer.d.ts +4 -3
- package/dist/components/micro/drawer.d.ts.map +1 -1
- package/dist/components/micro/dropdown-menu.d.ts +7 -4
- package/dist/components/micro/dropdown-menu.d.ts.map +1 -1
- package/dist/components/micro/hover-card.d.ts +4 -3
- package/dist/components/micro/hover-card.d.ts.map +1 -1
- package/dist/components/micro/menubar.d.ts +2 -3
- package/dist/components/micro/menubar.d.ts.map +1 -1
- package/dist/components/micro/navigation-menu.d.ts +4 -3
- package/dist/components/micro/navigation-menu.d.ts.map +1 -1
- package/dist/components/micro/popover.d.ts +4 -3
- package/dist/components/micro/popover.d.ts.map +1 -1
- package/dist/components/micro/select.d.ts +4 -3
- package/dist/components/micro/select.d.ts.map +1 -1
- package/dist/components/micro/sheet.d.ts +3 -3
- package/dist/components/micro/sheet.d.ts.map +1 -1
- package/dist/components/micro/tooltip.d.ts +4 -3
- package/dist/components/micro/tooltip.d.ts.map +1 -1
- package/dist/dev/App.d.ts.map +1 -1
- package/dist/dev/data.d.ts.map +1 -1
- package/dist/dev/showcase/accordion.d.ts.map +1 -1
- package/dist/dev/showcase/alert-dialog.d.ts.map +1 -1
- package/dist/dev/showcase/alert.d.ts.map +1 -1
- package/dist/dev/showcase/aspect-ratio.d.ts.map +1 -1
- package/dist/dev/showcase/avatar.d.ts.map +1 -1
- package/dist/dev/showcase/badge.d.ts.map +1 -1
- package/dist/dev/showcase/breadcrumb.d.ts.map +1 -1
- package/dist/dev/showcase/button.d.ts.map +1 -1
- package/dist/dev/showcase/calendar.d.ts.map +1 -1
- package/dist/dev/showcase/card.d.ts.map +1 -1
- package/dist/dev/showcase/carousel.d.ts.map +1 -1
- package/dist/dev/showcase/chart.d.ts.map +1 -1
- package/dist/dev/showcase/checkbox.d.ts.map +1 -1
- package/dist/dev/showcase/collapsible.d.ts.map +1 -1
- package/dist/dev/showcase/combobox.d.ts.map +1 -1
- package/dist/dev/showcase/command.d.ts.map +1 -1
- package/dist/dev/showcase/context-menu.d.ts.map +1 -1
- package/dist/dev/showcase/dialog.d.ts.map +1 -1
- package/dist/dev/showcase/drawer.d.ts.map +1 -1
- package/dist/dev/showcase/dropdown-menu.d.ts.map +1 -1
- package/dist/dev/showcase/empty.d.ts.map +1 -1
- package/dist/dev/showcase/hover-card.d.ts.map +1 -1
- package/dist/dev/showcase/input-group.d.ts.map +1 -1
- package/dist/dev/showcase/input-otp.d.ts.map +1 -1
- package/dist/dev/showcase/input.d.ts.map +1 -1
- package/dist/dev/showcase/item.d.ts.map +1 -1
- package/dist/dev/showcase/kbd.d.ts.map +1 -1
- package/dist/dev/showcase/label.d.ts.map +1 -1
- package/dist/dev/showcase/menubar.d.ts.map +1 -1
- package/dist/dev/showcase/navigation-menu.d.ts.map +1 -1
- package/dist/dev/showcase/overview.d.ts.map +1 -1
- package/dist/dev/showcase/pagination.d.ts.map +1 -1
- package/dist/dev/showcase/popover.d.ts.map +1 -1
- package/dist/dev/showcase/progress.d.ts.map +1 -1
- package/dist/dev/showcase/radio-group.d.ts.map +1 -1
- package/dist/dev/showcase/resizable.d.ts.map +1 -1
- package/dist/dev/showcase/scroll-area.d.ts.map +1 -1
- package/dist/dev/showcase/select.d.ts.map +1 -1
- package/dist/dev/showcase/separator.d.ts.map +1 -1
- package/dist/dev/showcase/sheet.d.ts.map +1 -1
- package/dist/dev/showcase/sidebar.d.ts.map +1 -1
- package/dist/dev/showcase/skeleton.d.ts.map +1 -1
- package/dist/dev/showcase/slider.d.ts.map +1 -1
- package/dist/dev/showcase/sonner.d.ts.map +1 -1
- package/dist/dev/showcase/spinner.d.ts.map +1 -1
- package/dist/dev/showcase/switch.d.ts.map +1 -1
- package/dist/dev/showcase/table.d.ts.map +1 -1
- package/dist/dev/showcase/tabs.d.ts.map +1 -1
- package/dist/dev/showcase/textarea.d.ts.map +1 -1
- package/dist/dev/showcase/toast.d.ts.map +1 -1
- package/dist/dev/showcase/toggle-group.d.ts.map +1 -1
- package/dist/dev/showcase/toggle.d.ts.map +1 -1
- package/dist/dev/showcase/tooltip.d.ts.map +1 -1
- package/dist/index.cjs +256 -256
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +257 -244
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/macro/accordion-preset.test.tsx +1 -2
- package/src/components/macro/accordion-preset.tsx +1 -2
- package/src/components/macro/alert-dialog-preset.tsx +7 -12
- package/src/components/macro/alert-preset.tsx +1 -2
- package/src/components/macro/avatar-preset.tsx +2 -4
- package/src/components/macro/breadcrumb-preset.tsx +1 -2
- package/src/components/macro/card-preset.tsx +1 -2
- package/src/components/macro/carousel-preset.tsx +1 -2
- package/src/components/macro/checkbox-preset.tsx +1 -2
- package/src/components/macro/combobox-preset.tsx +8 -14
- package/src/components/macro/command-preset.tsx +18 -24
- package/src/components/macro/date-picker.tsx +14 -23
- package/src/components/macro/dialog-preset.tsx +45 -49
- package/src/components/macro/empty-preset.tsx +2 -4
- package/src/components/macro/field-preset.tsx +1 -2
- package/src/components/macro/input-otp-preset.tsx +1 -2
- package/src/components/macro/input-preset.tsx +1 -2
- package/src/components/macro/pagination-preset.tsx +3 -6
- package/src/components/macro/progress-preset.tsx +1 -2
- package/src/components/macro/radio-group-preset.tsx +2 -4
- package/src/components/macro/select-preset.tsx +7 -12
- package/src/components/macro/slider-preset.tsx +1 -2
- package/src/components/macro/switch-preset.tsx +1 -2
- package/src/components/macro/tabs-preset.tsx +1 -2
- package/src/components/micro/alert-dialog.tsx +16 -14
- package/src/components/micro/combobox.tsx +28 -22
- package/src/components/micro/context-menu.tsx +52 -36
- package/src/components/micro/dialog.tsx +23 -19
- package/src/components/micro/drawer.tsx +23 -19
- package/src/components/micro/dropdown-menu.tsx +23 -18
- package/src/components/micro/hover-card.tsx +31 -23
- package/src/components/micro/menubar.tsx +0 -8
- package/src/components/micro/navigation-menu.tsx +26 -19
- package/src/components/micro/popover.tsx +31 -25
- package/src/components/micro/select.tsx +36 -29
- package/src/components/micro/sheet.tsx +36 -31
- package/src/components/micro/tooltip.tsx +28 -23
- package/src/dev/App.tsx +36 -10
- package/src/dev/data.ts +0 -8
- package/src/dev/showcase/accordion.tsx +47 -94
- package/src/dev/showcase/alert-dialog.tsx +27 -39
- package/src/dev/showcase/alert.tsx +5 -10
- package/src/dev/showcase/aspect-ratio.tsx +1 -2
- package/src/dev/showcase/avatar.tsx +5 -10
- package/src/dev/showcase/badge.tsx +2 -4
- package/src/dev/showcase/breadcrumb.tsx +8 -11
- package/src/dev/showcase/button.tsx +2 -4
- package/src/dev/showcase/calendar.tsx +5 -10
- package/src/dev/showcase/card.tsx +4 -8
- package/src/dev/showcase/carousel.tsx +40 -80
- package/src/dev/showcase/chart.tsx +7 -16
- package/src/dev/showcase/checkbox.tsx +7 -14
- package/src/dev/showcase/collapsible.tsx +3 -6
- package/src/dev/showcase/combobox.tsx +27 -43
- package/src/dev/showcase/command.tsx +4 -8
- package/src/dev/showcase/context-menu.tsx +13 -19
- package/src/dev/showcase/dialog.tsx +19 -33
- package/src/dev/showcase/drawer.tsx +19 -27
- package/src/dev/showcase/dropdown-menu.tsx +19 -29
- package/src/dev/showcase/empty.tsx +3 -6
- package/src/dev/showcase/hover-card.tsx +24 -36
- package/src/dev/showcase/input-group.tsx +4 -8
- package/src/dev/showcase/input-otp.tsx +5 -10
- package/src/dev/showcase/input.tsx +5 -10
- package/src/dev/showcase/item.tsx +3 -6
- package/src/dev/showcase/kbd.tsx +12 -16
- package/src/dev/showcase/label.tsx +2 -4
- package/src/dev/showcase/menubar.tsx +17 -19
- package/src/dev/showcase/navigation-menu.tsx +12 -15
- package/src/dev/showcase/overview.tsx +17 -30
- package/src/dev/showcase/pagination.tsx +4 -8
- package/src/dev/showcase/popover.tsx +21 -27
- package/src/dev/showcase/progress.tsx +4 -8
- package/src/dev/showcase/radio-group.tsx +8 -16
- package/src/dev/showcase/resizable.tsx +2 -4
- package/src/dev/showcase/scroll-area.tsx +1 -2
- package/src/dev/showcase/select.tsx +27 -39
- package/src/dev/showcase/separator.tsx +1 -2
- package/src/dev/showcase/sheet.tsx +22 -33
- package/src/dev/showcase/sidebar.tsx +2 -4
- package/src/dev/showcase/skeleton.tsx +1 -2
- package/src/dev/showcase/slider.tsx +5 -10
- package/src/dev/showcase/sonner.tsx +18 -38
- package/src/dev/showcase/spinner.tsx +2 -4
- package/src/dev/showcase/switch.tsx +6 -12
- package/src/dev/showcase/table.tsx +3 -6
- package/src/dev/showcase/tabs.tsx +20 -40
- package/src/dev/showcase/textarea.tsx +5 -10
- package/src/dev/showcase/toast.tsx +4 -10
- package/src/dev/showcase/toggle-group.tsx +4 -8
- package/src/dev/showcase/toggle.tsx +2 -4
- package/src/dev/showcase/tooltip.tsx +34 -43
- package/dist/dev/showcase/theme-provider.d.ts +0 -2
- package/dist/dev/showcase/theme-provider.d.ts.map +0 -1
- package/src/dev/showcase/theme-provider.tsx +0 -956
|
@@ -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.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
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
|
-
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
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.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
};
|
package/src/dev/App.tsx
CHANGED
|
@@ -78,7 +78,14 @@ export default function App() {
|
|
|
78
78
|
const [active, setActiveState] = useState(() => {
|
|
79
79
|
if (typeof window !== "undefined") {
|
|
80
80
|
const params = new URLSearchParams(window.location.search);
|
|
81
|
-
|
|
81
|
+
const queryComp = params.get("component");
|
|
82
|
+
if (queryComp) {
|
|
83
|
+
// Redirect legacy search params to new path structure automatically
|
|
84
|
+
window.history.replaceState({}, "", `/${queryComp}`);
|
|
85
|
+
return queryComp;
|
|
86
|
+
}
|
|
87
|
+
const pathComp = window.location.pathname.replace(/^\/+/, "");
|
|
88
|
+
return pathComp || "overview";
|
|
82
89
|
}
|
|
83
90
|
return "overview";
|
|
84
91
|
});
|
|
@@ -89,7 +96,8 @@ export default function App() {
|
|
|
89
96
|
setCmdOpen(false);
|
|
90
97
|
if (typeof window !== "undefined") {
|
|
91
98
|
const url = new URL(window.location.href);
|
|
92
|
-
url.searchParams.
|
|
99
|
+
url.searchParams.delete("component");
|
|
100
|
+
url.pathname = id === "overview" ? "/" : `/${id}`;
|
|
93
101
|
window.history.pushState({}, "", url);
|
|
94
102
|
|
|
95
103
|
setTimeout(() => {
|
|
@@ -102,20 +110,25 @@ export default function App() {
|
|
|
102
110
|
}, []);
|
|
103
111
|
|
|
104
112
|
useEffect(() => {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
if (typeof window !== "undefined") {
|
|
114
|
+
const params = new URLSearchParams(window.location.search);
|
|
115
|
+
const queryComp = params.get("component");
|
|
116
|
+
const comp = queryComp || window.location.pathname.replace(/^\/+/, "");
|
|
117
|
+
|
|
118
|
+
if (comp && comp !== "overview") {
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
const el = document.getElementById(comp);
|
|
121
|
+
if (el) el.scrollIntoView({ behavior: "smooth" });
|
|
122
|
+
}, 100);
|
|
123
|
+
}
|
|
112
124
|
}
|
|
113
125
|
}, []);
|
|
114
126
|
|
|
115
127
|
useEffect(() => {
|
|
116
128
|
const handlePopState = () => {
|
|
117
129
|
const params = new URLSearchParams(window.location.search);
|
|
118
|
-
const
|
|
130
|
+
const queryComp = params.get("component");
|
|
131
|
+
const comp = queryComp || window.location.pathname.replace(/^\/+/, "") || "overview";
|
|
119
132
|
setActiveState(comp);
|
|
120
133
|
const el = document.getElementById(comp);
|
|
121
134
|
if (el) el.scrollIntoView({ behavior: "smooth" });
|
|
@@ -148,6 +161,19 @@ export default function App() {
|
|
|
148
161
|
return () => document.removeEventListener("keydown", down);
|
|
149
162
|
}, []);
|
|
150
163
|
|
|
164
|
+
useEffect(() => {
|
|
165
|
+
if (typeof window !== "undefined") {
|
|
166
|
+
if (active === "overview") {
|
|
167
|
+
document.title = "gladvn — Tailwind CSS React Components";
|
|
168
|
+
} else {
|
|
169
|
+
const compDef = COMPONENTS.find((c) => c.id === active);
|
|
170
|
+
if (compDef) {
|
|
171
|
+
document.title = `${compDef.label} — gladvn Components`;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}, [active]);
|
|
176
|
+
|
|
151
177
|
return (
|
|
152
178
|
<div className="min-h-screen bg-background text-foreground">
|
|
153
179
|
{/* Top nav */}
|
package/src/dev/data.ts
CHANGED
|
@@ -475,14 +475,6 @@ export const COMPONENTS = [
|
|
|
475
475
|
status: "stable",
|
|
476
476
|
hasSize: true,
|
|
477
477
|
},
|
|
478
|
-
{
|
|
479
|
-
id: "theme-provider",
|
|
480
|
-
category: "Data Display",
|
|
481
|
-
label: "Theme Provider",
|
|
482
|
-
hasMicro: true,
|
|
483
|
-
hasMacro: false,
|
|
484
|
-
status: "stable",
|
|
485
|
-
},
|
|
486
478
|
{
|
|
487
479
|
id: "tooltip",
|
|
488
480
|
category: "Feedback & Overlays",
|