create-croissant 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.
- package/package.json +9 -9
- package/template/README.md +4 -4
- package/template/apps/desktop/electron-builder.yml +6 -6
- package/template/apps/desktop/electron.vite.config.ts +8 -8
- package/template/apps/desktop/package.json +5 -5
- package/template/apps/desktop/src/main/index.ts +32 -32
- package/template/apps/desktop/src/preload/index.d.ts +3 -3
- package/template/apps/desktop/src/preload/index.ts +8 -8
- package/template/apps/desktop/src/renderer/src/App.tsx +5 -5
- package/template/apps/desktop/src/renderer/src/assets/base.css +4 -4
- package/template/apps/desktop/src/renderer/src/assets/main.css +3 -3
- package/template/apps/desktop/src/renderer/src/components/Versions.tsx +4 -4
- package/template/apps/desktop/src/renderer/src/main.tsx +7 -7
- package/template/apps/desktop/tsconfig.json +1 -4
- package/template/apps/desktop/tsconfig.node.json +7 -1
- package/template/apps/desktop/tsconfig.web.json +3 -9
- package/template/apps/mobile/app/(tabs)/_layout.tsx +11 -10
- package/template/apps/mobile/app/(tabs)/explore.tsx +29 -27
- package/template/apps/mobile/app/(tabs)/index.tsx +25 -24
- package/template/apps/mobile/app/_layout.tsx +8 -8
- package/template/apps/mobile/app/modal.tsx +6 -6
- package/template/apps/mobile/components/external-link.tsx +5 -5
- package/template/apps/mobile/components/haptic-tab.tsx +4 -4
- package/template/apps/mobile/components/hello-wave.tsx +5 -4
- package/template/apps/mobile/components/parallax-scroll-view.tsx +15 -13
- package/template/apps/mobile/components/themed-text.tsx +14 -14
- package/template/apps/mobile/components/themed-view.tsx +3 -3
- package/template/apps/mobile/components/ui/collapsible.tsx +14 -13
- package/template/apps/mobile/components/ui/icon-symbol.ios.tsx +4 -4
- package/template/apps/mobile/components/ui/icon-symbol.tsx +9 -9
- package/template/apps/mobile/constants/theme.ts +19 -19
- package/template/apps/mobile/hooks/use-color-scheme.ts +1 -1
- package/template/apps/mobile/hooks/use-color-scheme.web.ts +3 -3
- package/template/apps/mobile/hooks/use-theme-color.ts +4 -4
- package/template/apps/mobile/package.json +3 -3
- package/template/apps/mobile/scripts/reset-project.js +2 -2
- package/template/apps/mobile/tsconfig.json +2 -9
- package/template/apps/platform/drizzle.config.ts +5 -5
- package/template/apps/platform/package.json +4 -4
- package/template/apps/platform/src/components/app-sidebar.tsx +60 -69
- package/template/apps/platform/src/components/login-form.tsx +32 -39
- package/template/apps/platform/src/components/search-form.tsx +5 -13
- package/template/apps/platform/src/components/signup-form.tsx +39 -49
- package/template/apps/platform/src/components/version-switcher.tsx +11 -21
- package/template/apps/platform/src/lib/auth-utils.ts +12 -14
- package/template/apps/platform/src/lib/orpc.ts +17 -17
- package/template/apps/platform/src/router.tsx +5 -5
- package/template/apps/platform/src/routes/__root.tsx +13 -15
- package/template/apps/platform/src/routes/_auth/account.tsx +61 -50
- package/template/apps/platform/src/routes/_auth/dashboard.tsx +17 -17
- package/template/apps/platform/src/routes/_auth/examples/client-orpc-auth.tsx +13 -13
- package/template/apps/platform/src/routes/_auth/examples/ssr-orpc-auth.tsx +16 -16
- package/template/apps/platform/src/routes/_auth.tsx +5 -5
- package/template/apps/platform/src/routes/_public/examples/client-orpc.tsx +108 -88
- package/template/apps/platform/src/routes/_public/examples/isr.tsx +14 -14
- package/template/apps/platform/src/routes/_public/examples/ssr-orpc.tsx +92 -75
- package/template/apps/platform/src/routes/_public/index.tsx +22 -19
- package/template/apps/platform/src/routes/_public/login.tsx +4 -4
- package/template/apps/platform/src/routes/_public/signup.tsx +6 -5
- package/template/apps/platform/src/routes/_public.tsx +5 -5
- package/template/apps/platform/src/routes/api/auth/$.ts +13 -13
- package/template/apps/platform/src/routes/api/rpc.$.ts +13 -13
- package/template/apps/platform/vite.config.ts +8 -8
- package/template/docker-compose.yml +1 -1
- package/template/package.json +24 -22
- package/template/packages/auth/package.json +9 -9
- package/template/packages/auth/src/lib/auth.ts +1 -1
- package/template/packages/db/package.json +7 -7
- package/template/packages/db/src/index.ts +4 -4
- package/template/packages/db/src/schema.ts +2 -2
- package/template/packages/orpc/package.json +6 -6
- package/template/packages/orpc/src/lib/planets.ts +39 -43
- package/template/packages/orpc/src/lib/router.ts +15 -15
- package/template/packages/ui/package.json +10 -10
- package/template/packages/ui/src/components/accordion.tsx +20 -22
- package/template/packages/ui/src/components/alert-dialog.tsx +31 -56
- package/template/packages/ui/src/components/alert.tsx +15 -23
- package/template/packages/ui/src/components/aspect-ratio.tsx +3 -3
- package/template/packages/ui/src/components/avatar.tsx +19 -35
- package/template/packages/ui/src/components/badge.tsx +13 -17
- package/template/packages/ui/src/components/breadcrumb.tsx +22 -44
- package/template/packages/ui/src/components/button-group.tsx +16 -25
- package/template/packages/ui/src/components/button.tsx +8 -9
- package/template/packages/ui/src/components/calendar.tsx +43 -82
- package/template/packages/ui/src/components/card.tsx +15 -26
- package/template/packages/ui/src/components/carousel.tsx +70 -78
- package/template/packages/ui/src/components/chart.tsx +84 -117
- package/template/packages/ui/src/components/checkbox.tsx +8 -9
- package/template/packages/ui/src/components/collapsible.tsx +5 -9
- package/template/packages/ui/src/components/combobox.tsx +44 -68
- package/template/packages/ui/src/components/command.tsx +32 -47
- package/template/packages/ui/src/components/context-menu.tsx +45 -71
- package/template/packages/ui/src/components/dialog.tsx +29 -51
- package/template/packages/ui/src/components/direction.tsx +1 -4
- package/template/packages/ui/src/components/drawer.tsx +24 -38
- package/template/packages/ui/src/components/dropdown-menu.tsx +45 -55
- package/template/packages/ui/src/components/empty.tsx +16 -27
- package/template/packages/ui/src/components/field.tsx +49 -63
- package/template/packages/ui/src/components/hover-card.tsx +9 -14
- package/template/packages/ui/src/components/input-group.tsx +40 -52
- package/template/packages/ui/src/components/input-otp.tsx +17 -18
- package/template/packages/ui/src/components/input.tsx +6 -6
- package/template/packages/ui/src/components/item.tsx +31 -44
- package/template/packages/ui/src/components/kbd.tsx +5 -5
- package/template/packages/ui/src/components/label.tsx +6 -6
- package/template/packages/ui/src/components/menubar.tsx +51 -64
- package/template/packages/ui/src/components/mode-toggle.tsx +9 -15
- package/template/packages/ui/src/components/native-select.tsx +18 -24
- package/template/packages/ui/src/components/navigation-menu.tsx +28 -35
- package/template/packages/ui/src/components/pagination.tsx +19 -31
- package/template/packages/ui/src/components/popover.tsx +13 -26
- package/template/packages/ui/src/components/progress.tsx +13 -30
- package/template/packages/ui/src/components/radio-group.tsx +7 -7
- package/template/packages/ui/src/components/resizable.tsx +12 -20
- package/template/packages/ui/src/components/scroll-area.tsx +8 -12
- package/template/packages/ui/src/components/select.tsx +31 -42
- package/template/packages/ui/src/components/separator.tsx +6 -10
- package/template/packages/ui/src/components/sheet.tsx +25 -38
- package/template/packages/ui/src/components/sidebar.tsx +137 -170
- package/template/packages/ui/src/components/skeleton.tsx +3 -3
- package/template/packages/ui/src/components/slider.tsx +5 -5
- package/template/packages/ui/src/components/sonner.tsx +20 -24
- package/template/packages/ui/src/components/spinner.tsx +10 -5
- package/template/packages/ui/src/components/switch.tsx +6 -6
- package/template/packages/ui/src/components/table.tsx +18 -45
- package/template/packages/ui/src/components/tabs.tsx +14 -22
- package/template/packages/ui/src/components/textarea.tsx +5 -5
- package/template/packages/ui/src/components/theme-provider.tsx +43 -48
- package/template/packages/ui/src/components/toggle-group.tsx +18 -20
- package/template/packages/ui/src/components/toggle.tsx +9 -10
- package/template/packages/ui/src/components/tooltip.tsx +10 -22
- package/template/packages/ui/src/hooks/use-mobile.ts +11 -11
- package/template/packages/ui/src/lib/utils.ts +4 -4
- package/template/packages/ui/src/styles/globals.css +106 -106
- package/template/turbo.json +15 -6
- package/template/.prettierignore +0 -10
- package/template/apps/desktop/.prettierignore +0 -6
- package/template/apps/desktop/eslint.config.ts +0 -11
- package/template/apps/desktop/prettier.config.ts +0 -3
- package/template/apps/mobile/eslint.config.js +0 -10
- package/template/apps/platform/eslint.config.ts +0 -11
- package/template/apps/platform/prettier.config.ts +0 -3
- package/template/packages/auth/eslint.config.ts +0 -3
- package/template/packages/auth/prettier.config.ts +0 -3
- package/template/packages/config-eslint/index.ts +0 -24
- package/template/packages/config-eslint/package.json +0 -11
- package/template/packages/config-prettier/index.ts +0 -14
- package/template/packages/config-prettier/package.json +0 -7
- package/template/packages/db/eslint.config.ts +0 -3
- package/template/packages/db/prettier.config.ts +0 -3
- package/template/packages/orpc/eslint.config.ts +0 -3
- package/template/packages/orpc/prettier.config.ts +0 -3
- package/template/packages/ui/eslint.config.ts +0 -3
- package/template/packages/ui/prettier.config.ts +0 -3
- package/template/prettier.config.ts +0 -15
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
"use client"
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import * as React from "react"
|
|
4
|
-
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
|
|
5
|
-
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar"
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Menu as MenuPrimitive } from "@base-ui/react/menu";
|
|
5
|
+
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
|
|
6
6
|
|
|
7
|
-
import { CheckIcon } from "lucide-react"
|
|
8
|
-
import { cn } from "@workspace/ui/lib/utils"
|
|
7
|
+
import { CheckIcon } from "lucide-react";
|
|
8
|
+
import { cn } from "@workspace/ui/lib/utils";
|
|
9
9
|
import {
|
|
10
10
|
DropdownMenu,
|
|
11
11
|
DropdownMenuContent,
|
|
@@ -20,51 +20,41 @@ import {
|
|
|
20
20
|
DropdownMenuSubContent,
|
|
21
21
|
DropdownMenuSubTrigger,
|
|
22
22
|
DropdownMenuTrigger,
|
|
23
|
-
} from "@workspace/ui/components/dropdown-menu"
|
|
23
|
+
} from "@workspace/ui/components/dropdown-menu";
|
|
24
24
|
|
|
25
25
|
function Menubar({ className, ...props }: MenubarPrimitive.Props) {
|
|
26
26
|
return (
|
|
27
27
|
<MenubarPrimitive
|
|
28
28
|
data-slot="menubar"
|
|
29
|
-
className={cn(
|
|
30
|
-
"flex h-8 items-center gap-0.5 rounded-lg border p-[3px]",
|
|
31
|
-
className
|
|
32
|
-
)}
|
|
29
|
+
className={cn("flex h-8 items-center gap-0.5 rounded-lg border p-[3px]", className)}
|
|
33
30
|
{...props}
|
|
34
31
|
/>
|
|
35
|
-
)
|
|
32
|
+
);
|
|
36
33
|
}
|
|
37
34
|
|
|
38
35
|
function MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {
|
|
39
|
-
return <DropdownMenu data-slot="menubar-menu" {...props}
|
|
36
|
+
return <DropdownMenu data-slot="menubar-menu" {...props} />;
|
|
40
37
|
}
|
|
41
38
|
|
|
42
|
-
function MenubarGroup({
|
|
43
|
-
...props
|
|
44
|
-
}: React.ComponentProps<typeof DropdownMenuGroup>) {
|
|
45
|
-
return <DropdownMenuGroup data-slot="menubar-group" {...props} />
|
|
39
|
+
function MenubarGroup({ ...props }: React.ComponentProps<typeof DropdownMenuGroup>) {
|
|
40
|
+
return <DropdownMenuGroup data-slot="menubar-group" {...props} />;
|
|
46
41
|
}
|
|
47
42
|
|
|
48
|
-
function MenubarPortal({
|
|
49
|
-
...props
|
|
50
|
-
}: React.ComponentProps<typeof DropdownMenuPortal>) {
|
|
51
|
-
return <DropdownMenuPortal data-slot="menubar-portal" {...props} />
|
|
43
|
+
function MenubarPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPortal>) {
|
|
44
|
+
return <DropdownMenuPortal data-slot="menubar-portal" {...props} />;
|
|
52
45
|
}
|
|
53
46
|
|
|
54
|
-
function MenubarTrigger({
|
|
55
|
-
className,
|
|
56
|
-
...props
|
|
57
|
-
}: React.ComponentProps<typeof DropdownMenuTrigger>) {
|
|
47
|
+
function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuTrigger>) {
|
|
58
48
|
return (
|
|
59
49
|
<DropdownMenuTrigger
|
|
60
50
|
data-slot="menubar-trigger"
|
|
61
51
|
className={cn(
|
|
62
52
|
"flex items-center rounded-sm px-1.5 py-[2px] text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted",
|
|
63
|
-
className
|
|
53
|
+
className,
|
|
64
54
|
)}
|
|
65
55
|
{...props}
|
|
66
56
|
/>
|
|
67
|
-
)
|
|
57
|
+
);
|
|
68
58
|
}
|
|
69
59
|
|
|
70
60
|
function MenubarContent({
|
|
@@ -80,10 +70,13 @@ function MenubarContent({
|
|
|
80
70
|
align={align}
|
|
81
71
|
alignOffset={alignOffset}
|
|
82
72
|
sideOffset={sideOffset}
|
|
83
|
-
className={cn(
|
|
73
|
+
className={cn(
|
|
74
|
+
"min-w-36 rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 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",
|
|
75
|
+
className,
|
|
76
|
+
)}
|
|
84
77
|
{...props}
|
|
85
78
|
/>
|
|
86
|
-
)
|
|
79
|
+
);
|
|
87
80
|
}
|
|
88
81
|
|
|
89
82
|
function MenubarItem({
|
|
@@ -99,11 +92,11 @@ function MenubarItem({
|
|
|
99
92
|
data-variant={variant}
|
|
100
93
|
className={cn(
|
|
101
94
|
"group/menubar-item gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!",
|
|
102
|
-
className
|
|
95
|
+
className,
|
|
103
96
|
)}
|
|
104
97
|
{...props}
|
|
105
98
|
/>
|
|
106
|
-
)
|
|
99
|
+
);
|
|
107
100
|
}
|
|
108
101
|
|
|
109
102
|
function MenubarCheckboxItem({
|
|
@@ -113,7 +106,7 @@ function MenubarCheckboxItem({
|
|
|
113
106
|
inset,
|
|
114
107
|
...props
|
|
115
108
|
}: MenuPrimitive.CheckboxItem.Props & {
|
|
116
|
-
inset?: boolean
|
|
109
|
+
inset?: boolean;
|
|
117
110
|
}) {
|
|
118
111
|
return (
|
|
119
112
|
<MenuPrimitive.CheckboxItem
|
|
@@ -121,26 +114,23 @@ function MenubarCheckboxItem({
|
|
|
121
114
|
data-inset={inset}
|
|
122
115
|
className={cn(
|
|
123
116
|
"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
124
|
-
className
|
|
117
|
+
className,
|
|
125
118
|
)}
|
|
126
119
|
checked={checked}
|
|
127
120
|
{...props}
|
|
128
121
|
>
|
|
129
122
|
<span className="pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4">
|
|
130
123
|
<MenuPrimitive.CheckboxItemIndicator>
|
|
131
|
-
<CheckIcon
|
|
132
|
-
/>
|
|
124
|
+
<CheckIcon />
|
|
133
125
|
</MenuPrimitive.CheckboxItemIndicator>
|
|
134
126
|
</span>
|
|
135
127
|
{children}
|
|
136
128
|
</MenuPrimitive.CheckboxItem>
|
|
137
|
-
)
|
|
129
|
+
);
|
|
138
130
|
}
|
|
139
131
|
|
|
140
|
-
function MenubarRadioGroup({
|
|
141
|
-
...props
|
|
142
|
-
}: React.ComponentProps<typeof DropdownMenuRadioGroup>) {
|
|
143
|
-
return <DropdownMenuRadioGroup data-slot="menubar-radio-group" {...props} />
|
|
132
|
+
function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuRadioGroup>) {
|
|
133
|
+
return <DropdownMenuRadioGroup data-slot="menubar-radio-group" {...props} />;
|
|
144
134
|
}
|
|
145
135
|
|
|
146
136
|
function MenubarRadioItem({
|
|
@@ -149,7 +139,7 @@ function MenubarRadioItem({
|
|
|
149
139
|
inset,
|
|
150
140
|
...props
|
|
151
141
|
}: MenuPrimitive.RadioItem.Props & {
|
|
152
|
-
inset?: boolean
|
|
142
|
+
inset?: boolean;
|
|
153
143
|
}) {
|
|
154
144
|
return (
|
|
155
145
|
<MenuPrimitive.RadioItem
|
|
@@ -157,19 +147,18 @@ function MenubarRadioItem({
|
|
|
157
147
|
data-inset={inset}
|
|
158
148
|
className={cn(
|
|
159
149
|
"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
160
|
-
className
|
|
150
|
+
className,
|
|
161
151
|
)}
|
|
162
152
|
{...props}
|
|
163
153
|
>
|
|
164
154
|
<span className="pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4">
|
|
165
155
|
<MenuPrimitive.RadioItemIndicator>
|
|
166
|
-
<CheckIcon
|
|
167
|
-
/>
|
|
156
|
+
<CheckIcon />
|
|
168
157
|
</MenuPrimitive.RadioItemIndicator>
|
|
169
158
|
</span>
|
|
170
159
|
{children}
|
|
171
160
|
</MenuPrimitive.RadioItem>
|
|
172
|
-
)
|
|
161
|
+
);
|
|
173
162
|
}
|
|
174
163
|
|
|
175
164
|
function MenubarLabel({
|
|
@@ -177,19 +166,16 @@ function MenubarLabel({
|
|
|
177
166
|
inset,
|
|
178
167
|
...props
|
|
179
168
|
}: React.ComponentProps<typeof DropdownMenuLabel> & {
|
|
180
|
-
inset?: boolean
|
|
169
|
+
inset?: boolean;
|
|
181
170
|
}) {
|
|
182
171
|
return (
|
|
183
172
|
<DropdownMenuLabel
|
|
184
173
|
data-slot="menubar-label"
|
|
185
174
|
data-inset={inset}
|
|
186
|
-
className={cn(
|
|
187
|
-
"px-1.5 py-1 text-sm font-medium data-inset:pl-7",
|
|
188
|
-
className
|
|
189
|
-
)}
|
|
175
|
+
className={cn("px-1.5 py-1 text-sm font-medium data-inset:pl-7", className)}
|
|
190
176
|
{...props}
|
|
191
177
|
/>
|
|
192
|
-
)
|
|
178
|
+
);
|
|
193
179
|
}
|
|
194
180
|
|
|
195
181
|
function MenubarSeparator({
|
|
@@ -202,7 +188,7 @@ function MenubarSeparator({
|
|
|
202
188
|
className={cn("-mx-1 my-1 h-px bg-border", className)}
|
|
203
189
|
{...props}
|
|
204
190
|
/>
|
|
205
|
-
)
|
|
191
|
+
);
|
|
206
192
|
}
|
|
207
193
|
|
|
208
194
|
function MenubarShortcut({
|
|
@@ -214,17 +200,15 @@ function MenubarShortcut({
|
|
|
214
200
|
data-slot="menubar-shortcut"
|
|
215
201
|
className={cn(
|
|
216
202
|
"ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground",
|
|
217
|
-
className
|
|
203
|
+
className,
|
|
218
204
|
)}
|
|
219
205
|
{...props}
|
|
220
206
|
/>
|
|
221
|
-
)
|
|
207
|
+
);
|
|
222
208
|
}
|
|
223
209
|
|
|
224
|
-
function MenubarSub({
|
|
225
|
-
...props
|
|
226
|
-
}: React.ComponentProps<typeof DropdownMenuSub>) {
|
|
227
|
-
return <DropdownMenuSub data-slot="menubar-sub" {...props} />
|
|
210
|
+
function MenubarSub({ ...props }: React.ComponentProps<typeof DropdownMenuSub>) {
|
|
211
|
+
return <DropdownMenuSub data-slot="menubar-sub" {...props} />;
|
|
228
212
|
}
|
|
229
213
|
|
|
230
214
|
function MenubarSubTrigger({
|
|
@@ -232,7 +216,7 @@ function MenubarSubTrigger({
|
|
|
232
216
|
inset,
|
|
233
217
|
...props
|
|
234
218
|
}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {
|
|
235
|
-
inset?: boolean
|
|
219
|
+
inset?: boolean;
|
|
236
220
|
}) {
|
|
237
221
|
return (
|
|
238
222
|
<DropdownMenuSubTrigger
|
|
@@ -240,11 +224,11 @@ function MenubarSubTrigger({
|
|
|
240
224
|
data-inset={inset}
|
|
241
225
|
className={cn(
|
|
242
226
|
"gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
|
|
243
|
-
className
|
|
227
|
+
className,
|
|
244
228
|
)}
|
|
245
229
|
{...props}
|
|
246
230
|
/>
|
|
247
|
-
)
|
|
231
|
+
);
|
|
248
232
|
}
|
|
249
233
|
|
|
250
234
|
function MenubarSubContent({
|
|
@@ -254,10 +238,13 @@ function MenubarSubContent({
|
|
|
254
238
|
return (
|
|
255
239
|
<DropdownMenuSubContent
|
|
256
240
|
data-slot="menubar-sub-content"
|
|
257
|
-
className={cn(
|
|
241
|
+
className={cn(
|
|
242
|
+
"min-w-32 rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-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",
|
|
243
|
+
className,
|
|
244
|
+
)}
|
|
258
245
|
{...props}
|
|
259
246
|
/>
|
|
260
|
-
)
|
|
247
|
+
);
|
|
261
248
|
}
|
|
262
249
|
|
|
263
250
|
export {
|
|
@@ -277,4 +264,4 @@ export {
|
|
|
277
264
|
MenubarSub,
|
|
278
265
|
MenubarSubTrigger,
|
|
279
266
|
MenubarSubContent,
|
|
280
|
-
}
|
|
267
|
+
};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Moon, Sun } from "lucide-react"
|
|
1
|
+
import { Moon, Sun } from "lucide-react";
|
|
2
2
|
|
|
3
|
-
import { Button } from "@workspace/ui/components/button"
|
|
3
|
+
import { Button } from "@workspace/ui/components/button";
|
|
4
4
|
import {
|
|
5
5
|
DropdownMenu,
|
|
6
6
|
DropdownMenuContent,
|
|
7
7
|
DropdownMenuItem,
|
|
8
8
|
DropdownMenuTrigger,
|
|
9
|
-
} from "@workspace/ui/components/dropdown-menu"
|
|
10
|
-
import { useTheme } from "@workspace/ui/components/theme-provider"
|
|
9
|
+
} from "@workspace/ui/components/dropdown-menu";
|
|
10
|
+
import { useTheme } from "@workspace/ui/components/theme-provider";
|
|
11
11
|
|
|
12
12
|
export function ModeToggle() {
|
|
13
|
-
const { setTheme } = useTheme()
|
|
13
|
+
const { setTheme } = useTheme();
|
|
14
14
|
|
|
15
15
|
return (
|
|
16
16
|
<DropdownMenu>
|
|
@@ -24,16 +24,10 @@ export function ModeToggle() {
|
|
|
24
24
|
}
|
|
25
25
|
/>
|
|
26
26
|
<DropdownMenuContent align="end">
|
|
27
|
-
<DropdownMenuItem onClick={() => setTheme("light")}>
|
|
28
|
-
|
|
29
|
-
</DropdownMenuItem>
|
|
30
|
-
<DropdownMenuItem onClick={() => setTheme("dark")}>
|
|
31
|
-
Dark
|
|
32
|
-
</DropdownMenuItem>
|
|
33
|
-
<DropdownMenuItem onClick={() => setTheme("system")}>
|
|
34
|
-
System
|
|
35
|
-
</DropdownMenuItem>
|
|
27
|
+
<DropdownMenuItem onClick={() => setTheme("light")}>Light</DropdownMenuItem>
|
|
28
|
+
<DropdownMenuItem onClick={() => setTheme("dark")}>Dark</DropdownMenuItem>
|
|
29
|
+
<DropdownMenuItem onClick={() => setTheme("system")}>System</DropdownMenuItem>
|
|
36
30
|
</DropdownMenuContent>
|
|
37
31
|
</DropdownMenu>
|
|
38
|
-
)
|
|
32
|
+
);
|
|
39
33
|
}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import * as React from "react"
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
|
|
3
|
-
import { ChevronDownIcon } from "lucide-react"
|
|
4
|
-
import { cn } from "@workspace/ui/lib/utils"
|
|
3
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
4
|
+
import { cn } from "@workspace/ui/lib/utils";
|
|
5
5
|
|
|
6
6
|
type NativeSelectProps = Omit<React.ComponentProps<"select">, "size"> & {
|
|
7
|
-
size?: "sm" | "default"
|
|
8
|
-
}
|
|
7
|
+
size?: "sm" | "default";
|
|
8
|
+
};
|
|
9
9
|
|
|
10
|
-
function NativeSelect({
|
|
11
|
-
className,
|
|
12
|
-
size = "default",
|
|
13
|
-
...props
|
|
14
|
-
}: NativeSelectProps) {
|
|
10
|
+
function NativeSelect({ className, size = "default", ...props }: NativeSelectProps) {
|
|
15
11
|
return (
|
|
16
12
|
<div
|
|
17
13
|
className={cn(
|
|
18
14
|
"group/native-select relative w-fit has-[select:disabled]:opacity-50",
|
|
19
|
-
className
|
|
15
|
+
className,
|
|
20
16
|
)}
|
|
21
17
|
data-slot="native-select-wrapper"
|
|
22
18
|
data-size={size}
|
|
@@ -27,35 +23,33 @@ function NativeSelect({
|
|
|
27
23
|
className="h-8 w-full min-w-0 appearance-none rounded-lg border border-input bg-transparent py-1 pr-8 pl-2.5 text-sm transition-colors outline-none select-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[size=sm]:py-0.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40"
|
|
28
24
|
{...props}
|
|
29
25
|
/>
|
|
30
|
-
<ChevronDownIcon
|
|
26
|
+
<ChevronDownIcon
|
|
27
|
+
className="pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 text-muted-foreground select-none"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
data-slot="native-select-icon"
|
|
30
|
+
/>
|
|
31
31
|
</div>
|
|
32
|
-
)
|
|
32
|
+
);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function NativeSelectOption({
|
|
36
|
-
className,
|
|
37
|
-
...props
|
|
38
|
-
}: React.ComponentProps<"option">) {
|
|
35
|
+
function NativeSelectOption({ className, ...props }: React.ComponentProps<"option">) {
|
|
39
36
|
return (
|
|
40
37
|
<option
|
|
41
38
|
data-slot="native-select-option"
|
|
42
39
|
className={cn("bg-[Canvas] text-[CanvasText]", className)}
|
|
43
40
|
{...props}
|
|
44
41
|
/>
|
|
45
|
-
)
|
|
42
|
+
);
|
|
46
43
|
}
|
|
47
44
|
|
|
48
|
-
function NativeSelectOptGroup({
|
|
49
|
-
className,
|
|
50
|
-
...props
|
|
51
|
-
}: React.ComponentProps<"optgroup">) {
|
|
45
|
+
function NativeSelectOptGroup({ className, ...props }: React.ComponentProps<"optgroup">) {
|
|
52
46
|
return (
|
|
53
47
|
<optgroup
|
|
54
48
|
data-slot="native-select-optgroup"
|
|
55
49
|
className={cn("bg-[Canvas] text-[CanvasText]", className)}
|
|
56
50
|
{...props}
|
|
57
51
|
/>
|
|
58
|
-
)
|
|
52
|
+
);
|
|
59
53
|
}
|
|
60
54
|
|
|
61
|
-
export { NativeSelect, NativeSelectOptGroup, NativeSelectOption }
|
|
55
|
+
export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu"
|
|
2
|
-
import { cva } from "class-variance-authority"
|
|
1
|
+
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
3
|
|
|
4
|
-
import { ChevronDownIcon } from "lucide-react"
|
|
5
|
-
import { cn } from "@workspace/ui/lib/utils"
|
|
4
|
+
import { ChevronDownIcon } from "lucide-react";
|
|
5
|
+
import { cn } from "@workspace/ui/lib/utils";
|
|
6
6
|
|
|
7
7
|
function NavigationMenu({
|
|
8
8
|
align = "start",
|
|
9
9
|
className,
|
|
10
10
|
children,
|
|
11
11
|
...props
|
|
12
|
-
}: NavigationMenuPrimitive.Root.Props &
|
|
13
|
-
Pick<NavigationMenuPrimitive.Positioner.Props, "align">) {
|
|
12
|
+
}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, "align">) {
|
|
14
13
|
return (
|
|
15
14
|
<NavigationMenuPrimitive.Root
|
|
16
15
|
data-slot="navigation-menu"
|
|
17
16
|
className={cn(
|
|
18
17
|
"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
|
|
19
|
-
className
|
|
18
|
+
className,
|
|
20
19
|
)}
|
|
21
20
|
{...props}
|
|
22
21
|
>
|
|
23
22
|
{children}
|
|
24
23
|
<NavigationMenuPositioner align={align} />
|
|
25
24
|
</NavigationMenuPrimitive.Root>
|
|
26
|
-
)
|
|
25
|
+
);
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
function NavigationMenuList({
|
|
@@ -33,13 +32,10 @@ function NavigationMenuList({
|
|
|
33
32
|
return (
|
|
34
33
|
<NavigationMenuPrimitive.List
|
|
35
34
|
data-slot="navigation-menu-list"
|
|
36
|
-
className={cn(
|
|
37
|
-
"group flex flex-1 list-none items-center justify-center gap-0",
|
|
38
|
-
className
|
|
39
|
-
)}
|
|
35
|
+
className={cn("group flex flex-1 list-none items-center justify-center gap-0", className)}
|
|
40
36
|
{...props}
|
|
41
37
|
/>
|
|
42
|
-
)
|
|
38
|
+
);
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
function NavigationMenuItem({
|
|
@@ -52,12 +48,12 @@ function NavigationMenuItem({
|
|
|
52
48
|
className={cn("relative", className)}
|
|
53
49
|
{...props}
|
|
54
50
|
/>
|
|
55
|
-
)
|
|
51
|
+
);
|
|
56
52
|
}
|
|
57
53
|
|
|
58
54
|
const navigationMenuTriggerStyle = cva(
|
|
59
|
-
"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted"
|
|
60
|
-
)
|
|
55
|
+
"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted",
|
|
56
|
+
);
|
|
61
57
|
|
|
62
58
|
function NavigationMenuTrigger({
|
|
63
59
|
className,
|
|
@@ -71,25 +67,25 @@ function NavigationMenuTrigger({
|
|
|
71
67
|
{...props}
|
|
72
68
|
>
|
|
73
69
|
{children}{" "}
|
|
74
|
-
<ChevronDownIcon
|
|
70
|
+
<ChevronDownIcon
|
|
71
|
+
className="relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180"
|
|
72
|
+
aria-hidden="true"
|
|
73
|
+
/>
|
|
75
74
|
</NavigationMenuPrimitive.Trigger>
|
|
76
|
-
)
|
|
75
|
+
);
|
|
77
76
|
}
|
|
78
77
|
|
|
79
|
-
function NavigationMenuContent({
|
|
80
|
-
className,
|
|
81
|
-
...props
|
|
82
|
-
}: NavigationMenuPrimitive.Content.Props) {
|
|
78
|
+
function NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props) {
|
|
83
79
|
return (
|
|
84
80
|
<NavigationMenuPrimitive.Content
|
|
85
81
|
data-slot="navigation-menu-content"
|
|
86
82
|
className={cn(
|
|
87
83
|
"data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
|
|
88
|
-
className
|
|
84
|
+
className,
|
|
89
85
|
)}
|
|
90
86
|
{...props}
|
|
91
87
|
/>
|
|
92
|
-
)
|
|
88
|
+
);
|
|
93
89
|
}
|
|
94
90
|
|
|
95
91
|
function NavigationMenuPositioner({
|
|
@@ -109,7 +105,7 @@ function NavigationMenuPositioner({
|
|
|
109
105
|
alignOffset={alignOffset}
|
|
110
106
|
className={cn(
|
|
111
107
|
"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",
|
|
112
|
-
className
|
|
108
|
+
className,
|
|
113
109
|
)}
|
|
114
110
|
{...props}
|
|
115
111
|
>
|
|
@@ -118,23 +114,20 @@ function NavigationMenuPositioner({
|
|
|
118
114
|
</NavigationMenuPrimitive.Popup>
|
|
119
115
|
</NavigationMenuPrimitive.Positioner>
|
|
120
116
|
</NavigationMenuPrimitive.Portal>
|
|
121
|
-
)
|
|
117
|
+
);
|
|
122
118
|
}
|
|
123
119
|
|
|
124
|
-
function NavigationMenuLink({
|
|
125
|
-
className,
|
|
126
|
-
...props
|
|
127
|
-
}: NavigationMenuPrimitive.Link.Props) {
|
|
120
|
+
function NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {
|
|
128
121
|
return (
|
|
129
122
|
<NavigationMenuPrimitive.Link
|
|
130
123
|
data-slot="navigation-menu-link"
|
|
131
124
|
className={cn(
|
|
132
125
|
"flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4",
|
|
133
|
-
className
|
|
126
|
+
className,
|
|
134
127
|
)}
|
|
135
128
|
{...props}
|
|
136
129
|
/>
|
|
137
|
-
)
|
|
130
|
+
);
|
|
138
131
|
}
|
|
139
132
|
|
|
140
133
|
function NavigationMenuIndicator({
|
|
@@ -146,13 +139,13 @@ function NavigationMenuIndicator({
|
|
|
146
139
|
data-slot="navigation-menu-indicator"
|
|
147
140
|
className={cn(
|
|
148
141
|
"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in",
|
|
149
|
-
className
|
|
142
|
+
className,
|
|
150
143
|
)}
|
|
151
144
|
{...props}
|
|
152
145
|
>
|
|
153
146
|
<div className="relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" />
|
|
154
147
|
</NavigationMenuPrimitive.Icon>
|
|
155
|
-
)
|
|
148
|
+
);
|
|
156
149
|
}
|
|
157
150
|
|
|
158
151
|
export {
|
|
@@ -165,4 +158,4 @@ export {
|
|
|
165
158
|
NavigationMenuTrigger,
|
|
166
159
|
navigationMenuTriggerStyle,
|
|
167
160
|
NavigationMenuPositioner,
|
|
168
|
-
}
|
|
161
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from "react"
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
|
|
3
|
-
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
4
|
-
import { cn } from "@workspace/ui/lib/utils"
|
|
5
|
-
import { Button } from "@workspace/ui/components/button"
|
|
3
|
+
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
4
|
+
import { cn } from "@workspace/ui/lib/utils";
|
|
5
|
+
import { Button } from "@workspace/ui/components/button";
|
|
6
6
|
|
|
7
7
|
function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
|
|
8
8
|
return (
|
|
@@ -13,37 +13,29 @@ function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
|
|
|
13
13
|
className={cn("mx-auto flex w-full justify-center", className)}
|
|
14
14
|
{...props}
|
|
15
15
|
/>
|
|
16
|
-
)
|
|
16
|
+
);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
function PaginationContent({
|
|
20
|
-
className,
|
|
21
|
-
...props
|
|
22
|
-
}: React.ComponentProps<"ul">) {
|
|
19
|
+
function PaginationContent({ className, ...props }: React.ComponentProps<"ul">) {
|
|
23
20
|
return (
|
|
24
21
|
<ul
|
|
25
22
|
data-slot="pagination-content"
|
|
26
23
|
className={cn("flex items-center gap-0.5", className)}
|
|
27
24
|
{...props}
|
|
28
25
|
/>
|
|
29
|
-
)
|
|
26
|
+
);
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
function PaginationItem({ ...props }: React.ComponentProps<"li">) {
|
|
33
|
-
return <li data-slot="pagination-item" {...props}
|
|
30
|
+
return <li data-slot="pagination-item" {...props} />;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
33
|
type PaginationLinkProps = {
|
|
37
|
-
isActive?: boolean
|
|
34
|
+
isActive?: boolean;
|
|
38
35
|
} & Pick<React.ComponentProps<typeof Button>, "size"> &
|
|
39
|
-
React.ComponentProps<"a"
|
|
36
|
+
React.ComponentProps<"a">;
|
|
40
37
|
|
|
41
|
-
function PaginationLink({
|
|
42
|
-
className,
|
|
43
|
-
isActive,
|
|
44
|
-
size = "icon",
|
|
45
|
-
...props
|
|
46
|
-
}: PaginationLinkProps) {
|
|
38
|
+
function PaginationLink({ className, isActive, size = "icon", ...props }: PaginationLinkProps) {
|
|
47
39
|
return (
|
|
48
40
|
<Button
|
|
49
41
|
variant={isActive ? "outline" : "ghost"}
|
|
@@ -59,7 +51,7 @@ function PaginationLink({
|
|
|
59
51
|
/>
|
|
60
52
|
}
|
|
61
53
|
/>
|
|
62
|
-
)
|
|
54
|
+
);
|
|
63
55
|
}
|
|
64
56
|
|
|
65
57
|
function PaginationPrevious({
|
|
@@ -77,7 +69,7 @@ function PaginationPrevious({
|
|
|
77
69
|
<ChevronLeftIcon data-icon="inline-start" />
|
|
78
70
|
<span className="hidden sm:block">{text}</span>
|
|
79
71
|
</PaginationLink>
|
|
80
|
-
)
|
|
72
|
+
);
|
|
81
73
|
}
|
|
82
74
|
|
|
83
75
|
function PaginationNext({
|
|
@@ -95,28 +87,24 @@ function PaginationNext({
|
|
|
95
87
|
<span className="hidden sm:block">{text}</span>
|
|
96
88
|
<ChevronRightIcon data-icon="inline-end" />
|
|
97
89
|
</PaginationLink>
|
|
98
|
-
)
|
|
90
|
+
);
|
|
99
91
|
}
|
|
100
92
|
|
|
101
|
-
function PaginationEllipsis({
|
|
102
|
-
className,
|
|
103
|
-
...props
|
|
104
|
-
}: React.ComponentProps<"span">) {
|
|
93
|
+
function PaginationEllipsis({ className, ...props }: React.ComponentProps<"span">) {
|
|
105
94
|
return (
|
|
106
95
|
<span
|
|
107
96
|
aria-hidden
|
|
108
97
|
data-slot="pagination-ellipsis"
|
|
109
98
|
className={cn(
|
|
110
99
|
"flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",
|
|
111
|
-
className
|
|
100
|
+
className,
|
|
112
101
|
)}
|
|
113
102
|
{...props}
|
|
114
103
|
>
|
|
115
|
-
<MoreHorizontalIcon
|
|
116
|
-
/>
|
|
104
|
+
<MoreHorizontalIcon />
|
|
117
105
|
<span className="sr-only">More pages</span>
|
|
118
106
|
</span>
|
|
119
|
-
)
|
|
107
|
+
);
|
|
120
108
|
}
|
|
121
109
|
|
|
122
110
|
export {
|
|
@@ -127,4 +115,4 @@ export {
|
|
|
127
115
|
PaginationLink,
|
|
128
116
|
PaginationNext,
|
|
129
117
|
PaginationPrevious,
|
|
130
|
-
}
|
|
118
|
+
};
|