@greatapps/greatauth-ui 0.2.1 → 0.3.1
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/dist/ui.d.ts +255 -104
- package/dist/ui.js +1466 -0
- package/dist/ui.js.map +1 -1
- package/package.json +6 -3
- package/src/components/ui/accordion.tsx +81 -0
- package/src/components/ui/aspect-ratio.tsx +11 -0
- package/src/components/ui/checkbox.tsx +33 -0
- package/src/components/ui/context-menu.tsx +255 -0
- package/src/components/ui/drawer.tsx +125 -0
- package/src/components/ui/hover-card.tsx +44 -0
- package/src/components/ui/input-otp.tsx +86 -0
- package/src/components/ui/menubar.tsx +269 -0
- package/src/components/ui/navigation-menu.tsx +161 -0
- package/src/components/ui/pagination.tsx +133 -0
- package/src/components/ui/popover.tsx +89 -0
- package/src/components/ui/radio-group.tsx +44 -0
- package/src/components/ui/slider.tsx +59 -0
- package/src/components/ui/sonner.tsx +49 -0
- package/src/components/ui/switch.tsx +33 -0
- package/src/components/ui/toggle-group.tsx +89 -0
- package/src/components/ui/toggle.tsx +46 -0
- package/src/ui.ts +53 -0
package/dist/ui.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
// src/lib/utils.ts
|
|
2
4
|
import { clsx } from "clsx";
|
|
3
5
|
import { twMerge } from "tailwind-merge";
|
|
@@ -2032,7 +2034,1389 @@ function CollapsibleContent({
|
|
|
2032
2034
|
}
|
|
2033
2035
|
);
|
|
2034
2036
|
}
|
|
2037
|
+
|
|
2038
|
+
// src/components/ui/checkbox.tsx
|
|
2039
|
+
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
2040
|
+
import { Check as Check3 } from "lucide-react";
|
|
2041
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2042
|
+
function Checkbox({
|
|
2043
|
+
className,
|
|
2044
|
+
...props
|
|
2045
|
+
}) {
|
|
2046
|
+
return /* @__PURE__ */ jsx25(
|
|
2047
|
+
CheckboxPrimitive.Root,
|
|
2048
|
+
{
|
|
2049
|
+
"data-slot": "checkbox",
|
|
2050
|
+
className: cn(
|
|
2051
|
+
"border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-[4px] border shadow-xs transition-shadow group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
2052
|
+
className
|
|
2053
|
+
),
|
|
2054
|
+
...props,
|
|
2055
|
+
children: /* @__PURE__ */ jsx25(
|
|
2056
|
+
CheckboxPrimitive.Indicator,
|
|
2057
|
+
{
|
|
2058
|
+
"data-slot": "checkbox-indicator",
|
|
2059
|
+
className: "[&>svg]:size-3.5 grid place-content-center text-current transition-none",
|
|
2060
|
+
children: /* @__PURE__ */ jsx25(
|
|
2061
|
+
Check3,
|
|
2062
|
+
{}
|
|
2063
|
+
)
|
|
2064
|
+
}
|
|
2065
|
+
)
|
|
2066
|
+
}
|
|
2067
|
+
);
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
// src/components/ui/popover.tsx
|
|
2071
|
+
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
2072
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2073
|
+
function Popover({
|
|
2074
|
+
...props
|
|
2075
|
+
}) {
|
|
2076
|
+
return /* @__PURE__ */ jsx26(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
2077
|
+
}
|
|
2078
|
+
function PopoverTrigger({
|
|
2079
|
+
...props
|
|
2080
|
+
}) {
|
|
2081
|
+
return /* @__PURE__ */ jsx26(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
2082
|
+
}
|
|
2083
|
+
function PopoverContent({
|
|
2084
|
+
className,
|
|
2085
|
+
align = "center",
|
|
2086
|
+
sideOffset = 4,
|
|
2087
|
+
...props
|
|
2088
|
+
}) {
|
|
2089
|
+
return /* @__PURE__ */ jsx26(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx26(
|
|
2090
|
+
PopoverPrimitive.Content,
|
|
2091
|
+
{
|
|
2092
|
+
"data-slot": "popover-content",
|
|
2093
|
+
align,
|
|
2094
|
+
sideOffset,
|
|
2095
|
+
className: cn(
|
|
2096
|
+
"bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 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 ring-foreground/10 flex flex-col gap-4 rounded-md p-4 text-sm shadow-md ring-1 duration-100 z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
|
|
2097
|
+
className
|
|
2098
|
+
),
|
|
2099
|
+
...props
|
|
2100
|
+
}
|
|
2101
|
+
) });
|
|
2102
|
+
}
|
|
2103
|
+
function PopoverAnchor({
|
|
2104
|
+
...props
|
|
2105
|
+
}) {
|
|
2106
|
+
return /* @__PURE__ */ jsx26(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
2107
|
+
}
|
|
2108
|
+
function PopoverHeader({ className, ...props }) {
|
|
2109
|
+
return /* @__PURE__ */ jsx26(
|
|
2110
|
+
"div",
|
|
2111
|
+
{
|
|
2112
|
+
"data-slot": "popover-header",
|
|
2113
|
+
className: cn("flex flex-col gap-1 text-sm", className),
|
|
2114
|
+
...props
|
|
2115
|
+
}
|
|
2116
|
+
);
|
|
2117
|
+
}
|
|
2118
|
+
function PopoverTitle({ className, ...props }) {
|
|
2119
|
+
return /* @__PURE__ */ jsx26(
|
|
2120
|
+
"div",
|
|
2121
|
+
{
|
|
2122
|
+
"data-slot": "popover-title",
|
|
2123
|
+
className: cn("font-medium", className),
|
|
2124
|
+
...props
|
|
2125
|
+
}
|
|
2126
|
+
);
|
|
2127
|
+
}
|
|
2128
|
+
function PopoverDescription({
|
|
2129
|
+
className,
|
|
2130
|
+
...props
|
|
2131
|
+
}) {
|
|
2132
|
+
return /* @__PURE__ */ jsx26(
|
|
2133
|
+
"p",
|
|
2134
|
+
{
|
|
2135
|
+
"data-slot": "popover-description",
|
|
2136
|
+
className: cn("text-muted-foreground", className),
|
|
2137
|
+
...props
|
|
2138
|
+
}
|
|
2139
|
+
);
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
// src/components/ui/accordion.tsx
|
|
2143
|
+
import { Accordion as AccordionPrimitive } from "radix-ui";
|
|
2144
|
+
import { ChevronDown as ChevronDown2, ChevronUp as ChevronUp2 } from "lucide-react";
|
|
2145
|
+
import { jsx as jsx27, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2146
|
+
function Accordion({
|
|
2147
|
+
className,
|
|
2148
|
+
...props
|
|
2149
|
+
}) {
|
|
2150
|
+
return /* @__PURE__ */ jsx27(
|
|
2151
|
+
AccordionPrimitive.Root,
|
|
2152
|
+
{
|
|
2153
|
+
"data-slot": "accordion",
|
|
2154
|
+
className: cn("flex w-full flex-col", className),
|
|
2155
|
+
...props
|
|
2156
|
+
}
|
|
2157
|
+
);
|
|
2158
|
+
}
|
|
2159
|
+
function AccordionItem({
|
|
2160
|
+
className,
|
|
2161
|
+
...props
|
|
2162
|
+
}) {
|
|
2163
|
+
return /* @__PURE__ */ jsx27(
|
|
2164
|
+
AccordionPrimitive.Item,
|
|
2165
|
+
{
|
|
2166
|
+
"data-slot": "accordion-item",
|
|
2167
|
+
className: cn("not-last:border-b", className),
|
|
2168
|
+
...props
|
|
2169
|
+
}
|
|
2170
|
+
);
|
|
2171
|
+
}
|
|
2172
|
+
function AccordionTrigger({
|
|
2173
|
+
className,
|
|
2174
|
+
children,
|
|
2175
|
+
...props
|
|
2176
|
+
}) {
|
|
2177
|
+
return /* @__PURE__ */ jsx27(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs11(
|
|
2178
|
+
AccordionPrimitive.Trigger,
|
|
2179
|
+
{
|
|
2180
|
+
"data-slot": "accordion-trigger",
|
|
2181
|
+
className: cn(
|
|
2182
|
+
"focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground rounded-md py-4 text-left text-sm font-medium hover:underline focus-visible:ring-3 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 group/accordion-trigger relative flex flex-1 items-start justify-between border border-transparent transition-all outline-none disabled:pointer-events-none disabled:opacity-50",
|
|
2183
|
+
className
|
|
2184
|
+
),
|
|
2185
|
+
...props,
|
|
2186
|
+
children: [
|
|
2187
|
+
children,
|
|
2188
|
+
/* @__PURE__ */ jsx27(ChevronDown2, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
|
|
2189
|
+
/* @__PURE__ */ jsx27(ChevronUp2, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
|
|
2190
|
+
]
|
|
2191
|
+
}
|
|
2192
|
+
) });
|
|
2193
|
+
}
|
|
2194
|
+
function AccordionContent({
|
|
2195
|
+
className,
|
|
2196
|
+
children,
|
|
2197
|
+
...props
|
|
2198
|
+
}) {
|
|
2199
|
+
return /* @__PURE__ */ jsx27(
|
|
2200
|
+
AccordionPrimitive.Content,
|
|
2201
|
+
{
|
|
2202
|
+
"data-slot": "accordion-content",
|
|
2203
|
+
className: "data-open:animate-accordion-down data-closed:animate-accordion-up text-sm overflow-hidden",
|
|
2204
|
+
...props,
|
|
2205
|
+
children: /* @__PURE__ */ jsx27(
|
|
2206
|
+
"div",
|
|
2207
|
+
{
|
|
2208
|
+
className: cn(
|
|
2209
|
+
"pt-0 pb-4 [&_a]:hover:text-foreground h-(--radix-accordion-content-height) [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4",
|
|
2210
|
+
className
|
|
2211
|
+
),
|
|
2212
|
+
children
|
|
2213
|
+
}
|
|
2214
|
+
)
|
|
2215
|
+
}
|
|
2216
|
+
);
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
// src/components/ui/aspect-ratio.tsx
|
|
2220
|
+
import { AspectRatio as AspectRatioPrimitive } from "radix-ui";
|
|
2221
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2222
|
+
function AspectRatio({
|
|
2223
|
+
...props
|
|
2224
|
+
}) {
|
|
2225
|
+
return /* @__PURE__ */ jsx28(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
|
|
2226
|
+
}
|
|
2227
|
+
|
|
2228
|
+
// src/components/ui/context-menu.tsx
|
|
2229
|
+
import { ContextMenu as ContextMenuPrimitive } from "radix-ui";
|
|
2230
|
+
import { ChevronRight as ChevronRight3, Check as Check4 } from "lucide-react";
|
|
2231
|
+
import { jsx as jsx29, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2232
|
+
function ContextMenu({
|
|
2233
|
+
...props
|
|
2234
|
+
}) {
|
|
2235
|
+
return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
|
|
2236
|
+
}
|
|
2237
|
+
function ContextMenuTrigger({
|
|
2238
|
+
className,
|
|
2239
|
+
...props
|
|
2240
|
+
}) {
|
|
2241
|
+
return /* @__PURE__ */ jsx29(
|
|
2242
|
+
ContextMenuPrimitive.Trigger,
|
|
2243
|
+
{
|
|
2244
|
+
"data-slot": "context-menu-trigger",
|
|
2245
|
+
className: cn("select-none", className),
|
|
2246
|
+
...props
|
|
2247
|
+
}
|
|
2248
|
+
);
|
|
2249
|
+
}
|
|
2250
|
+
function ContextMenuGroup({
|
|
2251
|
+
...props
|
|
2252
|
+
}) {
|
|
2253
|
+
return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props });
|
|
2254
|
+
}
|
|
2255
|
+
function ContextMenuPortal({
|
|
2256
|
+
...props
|
|
2257
|
+
}) {
|
|
2258
|
+
return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props });
|
|
2259
|
+
}
|
|
2260
|
+
function ContextMenuSub({
|
|
2261
|
+
...props
|
|
2262
|
+
}) {
|
|
2263
|
+
return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
|
|
2264
|
+
}
|
|
2265
|
+
function ContextMenuRadioGroup({
|
|
2266
|
+
...props
|
|
2267
|
+
}) {
|
|
2268
|
+
return /* @__PURE__ */ jsx29(
|
|
2269
|
+
ContextMenuPrimitive.RadioGroup,
|
|
2270
|
+
{
|
|
2271
|
+
"data-slot": "context-menu-radio-group",
|
|
2272
|
+
...props
|
|
2273
|
+
}
|
|
2274
|
+
);
|
|
2275
|
+
}
|
|
2276
|
+
function ContextMenuContent({
|
|
2277
|
+
className,
|
|
2278
|
+
...props
|
|
2279
|
+
}) {
|
|
2280
|
+
return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
|
|
2281
|
+
ContextMenuPrimitive.Content,
|
|
2282
|
+
{
|
|
2283
|
+
"data-slot": "context-menu-content",
|
|
2284
|
+
className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 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 ring-foreground/10 bg-popover text-popover-foreground min-w-36 rounded-md p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-context-menu-content-available-height) origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto", className),
|
|
2285
|
+
...props
|
|
2286
|
+
}
|
|
2287
|
+
) });
|
|
2288
|
+
}
|
|
2289
|
+
function ContextMenuItem({
|
|
2290
|
+
className,
|
|
2291
|
+
inset,
|
|
2292
|
+
variant = "default",
|
|
2293
|
+
...props
|
|
2294
|
+
}) {
|
|
2295
|
+
return /* @__PURE__ */ jsx29(
|
|
2296
|
+
ContextMenuPrimitive.Item,
|
|
2297
|
+
{
|
|
2298
|
+
"data-slot": "context-menu-item",
|
|
2299
|
+
"data-inset": inset,
|
|
2300
|
+
"data-variant": variant,
|
|
2301
|
+
className: cn(
|
|
2302
|
+
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive focus:*:[svg]:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 group/context-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2303
|
+
className
|
|
2304
|
+
),
|
|
2305
|
+
...props
|
|
2306
|
+
}
|
|
2307
|
+
);
|
|
2308
|
+
}
|
|
2309
|
+
function ContextMenuSubTrigger({
|
|
2310
|
+
className,
|
|
2311
|
+
inset,
|
|
2312
|
+
children,
|
|
2313
|
+
...props
|
|
2314
|
+
}) {
|
|
2315
|
+
return /* @__PURE__ */ jsxs12(
|
|
2316
|
+
ContextMenuPrimitive.SubTrigger,
|
|
2317
|
+
{
|
|
2318
|
+
"data-slot": "context-menu-sub-trigger",
|
|
2319
|
+
"data-inset": inset,
|
|
2320
|
+
className: cn(
|
|
2321
|
+
"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2322
|
+
className
|
|
2323
|
+
),
|
|
2324
|
+
...props,
|
|
2325
|
+
children: [
|
|
2326
|
+
children,
|
|
2327
|
+
/* @__PURE__ */ jsx29(ChevronRight3, { className: "ml-auto" })
|
|
2328
|
+
]
|
|
2329
|
+
}
|
|
2330
|
+
);
|
|
2331
|
+
}
|
|
2332
|
+
function ContextMenuSubContent({
|
|
2333
|
+
className,
|
|
2334
|
+
...props
|
|
2335
|
+
}) {
|
|
2336
|
+
return /* @__PURE__ */ jsx29(
|
|
2337
|
+
ContextMenuPrimitive.SubContent,
|
|
2338
|
+
{
|
|
2339
|
+
"data-slot": "context-menu-sub-content",
|
|
2340
|
+
className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 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 bg-popover text-popover-foreground min-w-32 rounded-md border p-1 shadow-lg duration-100 z-50 origin-(--radix-context-menu-content-transform-origin) overflow-hidden", className),
|
|
2341
|
+
...props
|
|
2342
|
+
}
|
|
2343
|
+
);
|
|
2344
|
+
}
|
|
2345
|
+
function ContextMenuCheckboxItem({
|
|
2346
|
+
className,
|
|
2347
|
+
children,
|
|
2348
|
+
checked,
|
|
2349
|
+
inset,
|
|
2350
|
+
...props
|
|
2351
|
+
}) {
|
|
2352
|
+
return /* @__PURE__ */ jsxs12(
|
|
2353
|
+
ContextMenuPrimitive.CheckboxItem,
|
|
2354
|
+
{
|
|
2355
|
+
"data-slot": "context-menu-checkbox-item",
|
|
2356
|
+
"data-inset": inset,
|
|
2357
|
+
className: cn(
|
|
2358
|
+
"focus:bg-accent focus:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2359
|
+
className
|
|
2360
|
+
),
|
|
2361
|
+
checked,
|
|
2362
|
+
...props,
|
|
2363
|
+
children: [
|
|
2364
|
+
/* @__PURE__ */ jsx29("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx29(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check4, {}) }) }),
|
|
2365
|
+
children
|
|
2366
|
+
]
|
|
2367
|
+
}
|
|
2368
|
+
);
|
|
2369
|
+
}
|
|
2370
|
+
function ContextMenuRadioItem({
|
|
2371
|
+
className,
|
|
2372
|
+
children,
|
|
2373
|
+
inset,
|
|
2374
|
+
...props
|
|
2375
|
+
}) {
|
|
2376
|
+
return /* @__PURE__ */ jsxs12(
|
|
2377
|
+
ContextMenuPrimitive.RadioItem,
|
|
2378
|
+
{
|
|
2379
|
+
"data-slot": "context-menu-radio-item",
|
|
2380
|
+
"data-inset": inset,
|
|
2381
|
+
className: cn(
|
|
2382
|
+
"focus:bg-accent focus:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2383
|
+
className
|
|
2384
|
+
),
|
|
2385
|
+
...props,
|
|
2386
|
+
children: [
|
|
2387
|
+
/* @__PURE__ */ jsx29("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx29(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check4, {}) }) }),
|
|
2388
|
+
children
|
|
2389
|
+
]
|
|
2390
|
+
}
|
|
2391
|
+
);
|
|
2392
|
+
}
|
|
2393
|
+
function ContextMenuLabel({
|
|
2394
|
+
className,
|
|
2395
|
+
inset,
|
|
2396
|
+
...props
|
|
2397
|
+
}) {
|
|
2398
|
+
return /* @__PURE__ */ jsx29(
|
|
2399
|
+
ContextMenuPrimitive.Label,
|
|
2400
|
+
{
|
|
2401
|
+
"data-slot": "context-menu-label",
|
|
2402
|
+
"data-inset": inset,
|
|
2403
|
+
className: cn("text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:pl-8", className),
|
|
2404
|
+
...props
|
|
2405
|
+
}
|
|
2406
|
+
);
|
|
2407
|
+
}
|
|
2408
|
+
function ContextMenuSeparator({
|
|
2409
|
+
className,
|
|
2410
|
+
...props
|
|
2411
|
+
}) {
|
|
2412
|
+
return /* @__PURE__ */ jsx29(
|
|
2413
|
+
ContextMenuPrimitive.Separator,
|
|
2414
|
+
{
|
|
2415
|
+
"data-slot": "context-menu-separator",
|
|
2416
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
2417
|
+
...props
|
|
2418
|
+
}
|
|
2419
|
+
);
|
|
2420
|
+
}
|
|
2421
|
+
function ContextMenuShortcut({
|
|
2422
|
+
className,
|
|
2423
|
+
...props
|
|
2424
|
+
}) {
|
|
2425
|
+
return /* @__PURE__ */ jsx29(
|
|
2426
|
+
"span",
|
|
2427
|
+
{
|
|
2428
|
+
"data-slot": "context-menu-shortcut",
|
|
2429
|
+
className: cn("text-muted-foreground group-focus/context-menu-item:text-accent-foreground ml-auto text-xs tracking-widest", className),
|
|
2430
|
+
...props
|
|
2431
|
+
}
|
|
2432
|
+
);
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
// src/components/ui/hover-card.tsx
|
|
2436
|
+
import { HoverCard as HoverCardPrimitive } from "radix-ui";
|
|
2437
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2438
|
+
function HoverCard({
|
|
2439
|
+
...props
|
|
2440
|
+
}) {
|
|
2441
|
+
return /* @__PURE__ */ jsx30(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
|
|
2442
|
+
}
|
|
2443
|
+
function HoverCardTrigger({
|
|
2444
|
+
...props
|
|
2445
|
+
}) {
|
|
2446
|
+
return /* @__PURE__ */ jsx30(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
|
|
2447
|
+
}
|
|
2448
|
+
function HoverCardContent({
|
|
2449
|
+
className,
|
|
2450
|
+
align = "center",
|
|
2451
|
+
sideOffset = 4,
|
|
2452
|
+
...props
|
|
2453
|
+
}) {
|
|
2454
|
+
return /* @__PURE__ */ jsx30(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx30(
|
|
2455
|
+
HoverCardPrimitive.Content,
|
|
2456
|
+
{
|
|
2457
|
+
"data-slot": "hover-card-content",
|
|
2458
|
+
align,
|
|
2459
|
+
sideOffset,
|
|
2460
|
+
className: cn(
|
|
2461
|
+
"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 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 ring-foreground/10 bg-popover text-popover-foreground w-64 rounded-lg p-4 text-sm shadow-md ring-1 duration-100 z-50 origin-(--radix-hover-card-content-transform-origin) outline-hidden",
|
|
2462
|
+
className
|
|
2463
|
+
),
|
|
2464
|
+
...props
|
|
2465
|
+
}
|
|
2466
|
+
) });
|
|
2467
|
+
}
|
|
2468
|
+
|
|
2469
|
+
// src/components/ui/menubar.tsx
|
|
2470
|
+
import { Menubar as MenubarPrimitive } from "radix-ui";
|
|
2471
|
+
import { Check as Check5, ChevronRight as ChevronRight4 } from "lucide-react";
|
|
2472
|
+
import { jsx as jsx31, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2473
|
+
function Menubar({
|
|
2474
|
+
className,
|
|
2475
|
+
...props
|
|
2476
|
+
}) {
|
|
2477
|
+
return /* @__PURE__ */ jsx31(
|
|
2478
|
+
MenubarPrimitive.Root,
|
|
2479
|
+
{
|
|
2480
|
+
"data-slot": "menubar",
|
|
2481
|
+
className: cn("bg-background h-9 gap-1 rounded-md border p-1 shadow-xs flex items-center", className),
|
|
2482
|
+
...props
|
|
2483
|
+
}
|
|
2484
|
+
);
|
|
2485
|
+
}
|
|
2486
|
+
function MenubarMenu({
|
|
2487
|
+
...props
|
|
2488
|
+
}) {
|
|
2489
|
+
return /* @__PURE__ */ jsx31(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
|
|
2490
|
+
}
|
|
2491
|
+
function MenubarGroup({
|
|
2492
|
+
...props
|
|
2493
|
+
}) {
|
|
2494
|
+
return /* @__PURE__ */ jsx31(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
|
|
2495
|
+
}
|
|
2496
|
+
function MenubarPortal({
|
|
2497
|
+
...props
|
|
2498
|
+
}) {
|
|
2499
|
+
return /* @__PURE__ */ jsx31(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
|
|
2500
|
+
}
|
|
2501
|
+
function MenubarRadioGroup({
|
|
2502
|
+
...props
|
|
2503
|
+
}) {
|
|
2504
|
+
return /* @__PURE__ */ jsx31(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
|
|
2505
|
+
}
|
|
2506
|
+
function MenubarTrigger({
|
|
2507
|
+
className,
|
|
2508
|
+
...props
|
|
2509
|
+
}) {
|
|
2510
|
+
return /* @__PURE__ */ jsx31(
|
|
2511
|
+
MenubarPrimitive.Trigger,
|
|
2512
|
+
{
|
|
2513
|
+
"data-slot": "menubar-trigger",
|
|
2514
|
+
className: cn(
|
|
2515
|
+
"hover:bg-muted aria-expanded:bg-muted rounded-sm px-2 py-1 text-sm font-medium flex items-center outline-hidden select-none",
|
|
2516
|
+
className
|
|
2517
|
+
),
|
|
2518
|
+
...props
|
|
2519
|
+
}
|
|
2520
|
+
);
|
|
2521
|
+
}
|
|
2522
|
+
function MenubarContent({
|
|
2523
|
+
className,
|
|
2524
|
+
align = "start",
|
|
2525
|
+
alignOffset = -4,
|
|
2526
|
+
sideOffset = 8,
|
|
2527
|
+
...props
|
|
2528
|
+
}) {
|
|
2529
|
+
return /* @__PURE__ */ jsx31(MenubarPortal, { children: /* @__PURE__ */ jsx31(
|
|
2530
|
+
MenubarPrimitive.Content,
|
|
2531
|
+
{
|
|
2532
|
+
"data-slot": "menubar-content",
|
|
2533
|
+
align,
|
|
2534
|
+
alignOffset,
|
|
2535
|
+
sideOffset,
|
|
2536
|
+
className: cn("bg-popover text-popover-foreground data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 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 ring-foreground/10 min-w-36 rounded-md p-1 shadow-md ring-1 duration-100 z-50 origin-(--radix-menubar-content-transform-origin) overflow-hidden", className),
|
|
2537
|
+
...props
|
|
2538
|
+
}
|
|
2539
|
+
) });
|
|
2540
|
+
}
|
|
2541
|
+
function MenubarItem({
|
|
2542
|
+
className,
|
|
2543
|
+
inset,
|
|
2544
|
+
variant = "default",
|
|
2545
|
+
...props
|
|
2546
|
+
}) {
|
|
2547
|
+
return /* @__PURE__ */ jsx31(
|
|
2548
|
+
MenubarPrimitive.Item,
|
|
2549
|
+
{
|
|
2550
|
+
"data-slot": "menubar-item",
|
|
2551
|
+
"data-inset": inset,
|
|
2552
|
+
"data-variant": variant,
|
|
2553
|
+
className: cn(
|
|
2554
|
+
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive! not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-disabled:opacity-50 data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 group/menubar-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2555
|
+
className
|
|
2556
|
+
),
|
|
2557
|
+
...props
|
|
2558
|
+
}
|
|
2559
|
+
);
|
|
2560
|
+
}
|
|
2561
|
+
function MenubarCheckboxItem({
|
|
2562
|
+
className,
|
|
2563
|
+
children,
|
|
2564
|
+
checked,
|
|
2565
|
+
inset,
|
|
2566
|
+
...props
|
|
2567
|
+
}) {
|
|
2568
|
+
return /* @__PURE__ */ jsxs13(
|
|
2569
|
+
MenubarPrimitive.CheckboxItem,
|
|
2570
|
+
{
|
|
2571
|
+
"data-slot": "menubar-checkbox-item",
|
|
2572
|
+
"data-inset": inset,
|
|
2573
|
+
className: cn(
|
|
2574
|
+
"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm data-inset:pl-8 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2575
|
+
className
|
|
2576
|
+
),
|
|
2577
|
+
checked,
|
|
2578
|
+
...props,
|
|
2579
|
+
children: [
|
|
2580
|
+
/* @__PURE__ */ jsx31("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx31(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(Check5, {}) }) }),
|
|
2581
|
+
children
|
|
2582
|
+
]
|
|
2583
|
+
}
|
|
2584
|
+
);
|
|
2585
|
+
}
|
|
2586
|
+
function MenubarRadioItem({
|
|
2587
|
+
className,
|
|
2588
|
+
children,
|
|
2589
|
+
inset,
|
|
2590
|
+
...props
|
|
2591
|
+
}) {
|
|
2592
|
+
return /* @__PURE__ */ jsxs13(
|
|
2593
|
+
MenubarPrimitive.RadioItem,
|
|
2594
|
+
{
|
|
2595
|
+
"data-slot": "menubar-radio-item",
|
|
2596
|
+
"data-inset": inset,
|
|
2597
|
+
className: cn(
|
|
2598
|
+
"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm data-disabled:opacity-50 data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2599
|
+
className
|
|
2600
|
+
),
|
|
2601
|
+
...props,
|
|
2602
|
+
children: [
|
|
2603
|
+
/* @__PURE__ */ jsx31("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx31(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(Check5, {}) }) }),
|
|
2604
|
+
children
|
|
2605
|
+
]
|
|
2606
|
+
}
|
|
2607
|
+
);
|
|
2608
|
+
}
|
|
2609
|
+
function MenubarLabel({
|
|
2610
|
+
className,
|
|
2611
|
+
inset,
|
|
2612
|
+
...props
|
|
2613
|
+
}) {
|
|
2614
|
+
return /* @__PURE__ */ jsx31(
|
|
2615
|
+
MenubarPrimitive.Label,
|
|
2616
|
+
{
|
|
2617
|
+
"data-slot": "menubar-label",
|
|
2618
|
+
"data-inset": inset,
|
|
2619
|
+
className: cn("px-2 py-1.5 text-sm font-medium data-inset:pl-8", className),
|
|
2620
|
+
...props
|
|
2621
|
+
}
|
|
2622
|
+
);
|
|
2623
|
+
}
|
|
2624
|
+
function MenubarSeparator({
|
|
2625
|
+
className,
|
|
2626
|
+
...props
|
|
2627
|
+
}) {
|
|
2628
|
+
return /* @__PURE__ */ jsx31(
|
|
2629
|
+
MenubarPrimitive.Separator,
|
|
2630
|
+
{
|
|
2631
|
+
"data-slot": "menubar-separator",
|
|
2632
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
2633
|
+
...props
|
|
2634
|
+
}
|
|
2635
|
+
);
|
|
2636
|
+
}
|
|
2637
|
+
function MenubarShortcut({
|
|
2638
|
+
className,
|
|
2639
|
+
...props
|
|
2640
|
+
}) {
|
|
2641
|
+
return /* @__PURE__ */ jsx31(
|
|
2642
|
+
"span",
|
|
2643
|
+
{
|
|
2644
|
+
"data-slot": "menubar-shortcut",
|
|
2645
|
+
className: cn("text-muted-foreground group-focus/menubar-item:text-accent-foreground text-xs tracking-widest ml-auto", className),
|
|
2646
|
+
...props
|
|
2647
|
+
}
|
|
2648
|
+
);
|
|
2649
|
+
}
|
|
2650
|
+
function MenubarSub({
|
|
2651
|
+
...props
|
|
2652
|
+
}) {
|
|
2653
|
+
return /* @__PURE__ */ jsx31(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
|
|
2654
|
+
}
|
|
2655
|
+
function MenubarSubTrigger({
|
|
2656
|
+
className,
|
|
2657
|
+
inset,
|
|
2658
|
+
children,
|
|
2659
|
+
...props
|
|
2660
|
+
}) {
|
|
2661
|
+
return /* @__PURE__ */ jsxs13(
|
|
2662
|
+
MenubarPrimitive.SubTrigger,
|
|
2663
|
+
{
|
|
2664
|
+
"data-slot": "menubar-sub-trigger",
|
|
2665
|
+
"data-inset": inset,
|
|
2666
|
+
className: cn(
|
|
2667
|
+
"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center outline-none select-none",
|
|
2668
|
+
className
|
|
2669
|
+
),
|
|
2670
|
+
...props,
|
|
2671
|
+
children: [
|
|
2672
|
+
children,
|
|
2673
|
+
/* @__PURE__ */ jsx31(ChevronRight4, { className: "ml-auto size-4" })
|
|
2674
|
+
]
|
|
2675
|
+
}
|
|
2676
|
+
);
|
|
2677
|
+
}
|
|
2678
|
+
function MenubarSubContent({
|
|
2679
|
+
className,
|
|
2680
|
+
...props
|
|
2681
|
+
}) {
|
|
2682
|
+
return /* @__PURE__ */ jsx31(
|
|
2683
|
+
MenubarPrimitive.SubContent,
|
|
2684
|
+
{
|
|
2685
|
+
"data-slot": "menubar-sub-content",
|
|
2686
|
+
className: cn("bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 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 ring-foreground/10 min-w-32 rounded-md p-1 shadow-lg ring-1 duration-100 z-50 origin-(--radix-menubar-content-transform-origin) overflow-hidden", className),
|
|
2687
|
+
...props
|
|
2688
|
+
}
|
|
2689
|
+
);
|
|
2690
|
+
}
|
|
2691
|
+
|
|
2692
|
+
// src/components/ui/navigation-menu.tsx
|
|
2693
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
2694
|
+
import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui";
|
|
2695
|
+
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
2696
|
+
import { jsx as jsx32, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2697
|
+
function NavigationMenu({
|
|
2698
|
+
className,
|
|
2699
|
+
children,
|
|
2700
|
+
viewport = true,
|
|
2701
|
+
...props
|
|
2702
|
+
}) {
|
|
2703
|
+
return /* @__PURE__ */ jsxs14(
|
|
2704
|
+
NavigationMenuPrimitive.Root,
|
|
2705
|
+
{
|
|
2706
|
+
"data-slot": "navigation-menu",
|
|
2707
|
+
"data-viewport": viewport,
|
|
2708
|
+
className: cn(
|
|
2709
|
+
"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
|
|
2710
|
+
className
|
|
2711
|
+
),
|
|
2712
|
+
...props,
|
|
2713
|
+
children: [
|
|
2714
|
+
children,
|
|
2715
|
+
viewport && /* @__PURE__ */ jsx32(NavigationMenuViewport, {})
|
|
2716
|
+
]
|
|
2717
|
+
}
|
|
2718
|
+
);
|
|
2719
|
+
}
|
|
2720
|
+
function NavigationMenuList({
|
|
2721
|
+
className,
|
|
2722
|
+
...props
|
|
2723
|
+
}) {
|
|
2724
|
+
return /* @__PURE__ */ jsx32(
|
|
2725
|
+
NavigationMenuPrimitive.List,
|
|
2726
|
+
{
|
|
2727
|
+
"data-slot": "navigation-menu-list",
|
|
2728
|
+
className: cn(
|
|
2729
|
+
"gap-0 group flex flex-1 list-none items-center justify-center",
|
|
2730
|
+
className
|
|
2731
|
+
),
|
|
2732
|
+
...props
|
|
2733
|
+
}
|
|
2734
|
+
);
|
|
2735
|
+
}
|
|
2736
|
+
function NavigationMenuItem({
|
|
2737
|
+
className,
|
|
2738
|
+
...props
|
|
2739
|
+
}) {
|
|
2740
|
+
return /* @__PURE__ */ jsx32(
|
|
2741
|
+
NavigationMenuPrimitive.Item,
|
|
2742
|
+
{
|
|
2743
|
+
"data-slot": "navigation-menu-item",
|
|
2744
|
+
className: cn("relative", className),
|
|
2745
|
+
...props
|
|
2746
|
+
}
|
|
2747
|
+
);
|
|
2748
|
+
}
|
|
2749
|
+
var navigationMenuTriggerStyle = cva6(
|
|
2750
|
+
"bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center disabled:pointer-events-none outline-none"
|
|
2751
|
+
);
|
|
2752
|
+
function NavigationMenuTrigger({
|
|
2753
|
+
className,
|
|
2754
|
+
children,
|
|
2755
|
+
...props
|
|
2756
|
+
}) {
|
|
2757
|
+
return /* @__PURE__ */ jsxs14(
|
|
2758
|
+
NavigationMenuPrimitive.Trigger,
|
|
2759
|
+
{
|
|
2760
|
+
"data-slot": "navigation-menu-trigger",
|
|
2761
|
+
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
2762
|
+
...props,
|
|
2763
|
+
children: [
|
|
2764
|
+
children,
|
|
2765
|
+
" ",
|
|
2766
|
+
/* @__PURE__ */ jsx32(ChevronDown3, { className: "relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })
|
|
2767
|
+
]
|
|
2768
|
+
}
|
|
2769
|
+
);
|
|
2770
|
+
}
|
|
2771
|
+
function NavigationMenuContent({
|
|
2772
|
+
className,
|
|
2773
|
+
...props
|
|
2774
|
+
}) {
|
|
2775
|
+
return /* @__PURE__ */ jsx32(
|
|
2776
|
+
NavigationMenuPrimitive.Content,
|
|
2777
|
+
{
|
|
2778
|
+
"data-slot": "navigation-menu-content",
|
|
2779
|
+
className: cn(
|
|
2780
|
+
"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out 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 group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:ring-foreground/10 p-2 pr-2.5 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:duration-300 top-0 left-0 w-full group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none md:absolute md:w-auto",
|
|
2781
|
+
className
|
|
2782
|
+
),
|
|
2783
|
+
...props
|
|
2784
|
+
}
|
|
2785
|
+
);
|
|
2786
|
+
}
|
|
2787
|
+
function NavigationMenuViewport({
|
|
2788
|
+
className,
|
|
2789
|
+
...props
|
|
2790
|
+
}) {
|
|
2791
|
+
return /* @__PURE__ */ jsx32(
|
|
2792
|
+
"div",
|
|
2793
|
+
{
|
|
2794
|
+
className: cn(
|
|
2795
|
+
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
2796
|
+
),
|
|
2797
|
+
children: /* @__PURE__ */ jsx32(
|
|
2798
|
+
NavigationMenuPrimitive.Viewport,
|
|
2799
|
+
{
|
|
2800
|
+
"data-slot": "navigation-menu-viewport",
|
|
2801
|
+
className: cn(
|
|
2802
|
+
"bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:zoom-out-95 data-open:zoom-in-90 ring-foreground/10 rounded-lg shadow ring-1 duration-100 origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden md:w-(--radix-navigation-menu-viewport-width)",
|
|
2803
|
+
className
|
|
2804
|
+
),
|
|
2805
|
+
...props
|
|
2806
|
+
}
|
|
2807
|
+
)
|
|
2808
|
+
}
|
|
2809
|
+
);
|
|
2810
|
+
}
|
|
2811
|
+
function NavigationMenuLink({
|
|
2812
|
+
className,
|
|
2813
|
+
...props
|
|
2814
|
+
}) {
|
|
2815
|
+
return /* @__PURE__ */ jsx32(
|
|
2816
|
+
NavigationMenuPrimitive.Link,
|
|
2817
|
+
{
|
|
2818
|
+
"data-slot": "navigation-menu-link",
|
|
2819
|
+
className: cn("data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/50 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4", className),
|
|
2820
|
+
...props
|
|
2821
|
+
}
|
|
2822
|
+
);
|
|
2823
|
+
}
|
|
2824
|
+
function NavigationMenuIndicator({
|
|
2825
|
+
className,
|
|
2826
|
+
...props
|
|
2827
|
+
}) {
|
|
2828
|
+
return /* @__PURE__ */ jsx32(
|
|
2829
|
+
NavigationMenuPrimitive.Indicator,
|
|
2830
|
+
{
|
|
2831
|
+
"data-slot": "navigation-menu-indicator",
|
|
2832
|
+
className: cn(
|
|
2833
|
+
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden",
|
|
2834
|
+
className
|
|
2835
|
+
),
|
|
2836
|
+
...props,
|
|
2837
|
+
children: /* @__PURE__ */ jsx32("div", { className: "bg-border rounded-tl-sm shadow-md relative top-[60%] h-2 w-2 rotate-45" })
|
|
2838
|
+
}
|
|
2839
|
+
);
|
|
2840
|
+
}
|
|
2841
|
+
|
|
2842
|
+
// src/components/ui/pagination.tsx
|
|
2843
|
+
import { ChevronLeft, ChevronRight as ChevronRight5, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
2844
|
+
import { jsx as jsx33, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2845
|
+
function Pagination({ className, ...props }) {
|
|
2846
|
+
return /* @__PURE__ */ jsx33(
|
|
2847
|
+
"nav",
|
|
2848
|
+
{
|
|
2849
|
+
role: "navigation",
|
|
2850
|
+
"aria-label": "pagination",
|
|
2851
|
+
"data-slot": "pagination",
|
|
2852
|
+
className: cn(
|
|
2853
|
+
"mx-auto flex w-full justify-center",
|
|
2854
|
+
className
|
|
2855
|
+
),
|
|
2856
|
+
...props
|
|
2857
|
+
}
|
|
2858
|
+
);
|
|
2859
|
+
}
|
|
2860
|
+
function PaginationContent({
|
|
2861
|
+
className,
|
|
2862
|
+
...props
|
|
2863
|
+
}) {
|
|
2864
|
+
return /* @__PURE__ */ jsx33(
|
|
2865
|
+
"ul",
|
|
2866
|
+
{
|
|
2867
|
+
"data-slot": "pagination-content",
|
|
2868
|
+
className: cn("gap-1 flex items-center", className),
|
|
2869
|
+
...props
|
|
2870
|
+
}
|
|
2871
|
+
);
|
|
2872
|
+
}
|
|
2873
|
+
function PaginationItem({ ...props }) {
|
|
2874
|
+
return /* @__PURE__ */ jsx33("li", { "data-slot": "pagination-item", ...props });
|
|
2875
|
+
}
|
|
2876
|
+
function PaginationLink({
|
|
2877
|
+
className,
|
|
2878
|
+
isActive,
|
|
2879
|
+
size = "icon",
|
|
2880
|
+
...props
|
|
2881
|
+
}) {
|
|
2882
|
+
return /* @__PURE__ */ jsx33(
|
|
2883
|
+
Button,
|
|
2884
|
+
{
|
|
2885
|
+
asChild: true,
|
|
2886
|
+
variant: isActive ? "outline" : "ghost",
|
|
2887
|
+
size,
|
|
2888
|
+
className: cn(className),
|
|
2889
|
+
children: /* @__PURE__ */ jsx33(
|
|
2890
|
+
"a",
|
|
2891
|
+
{
|
|
2892
|
+
"aria-current": isActive ? "page" : void 0,
|
|
2893
|
+
"data-slot": "pagination-link",
|
|
2894
|
+
"data-active": isActive,
|
|
2895
|
+
...props
|
|
2896
|
+
}
|
|
2897
|
+
)
|
|
2898
|
+
}
|
|
2899
|
+
);
|
|
2900
|
+
}
|
|
2901
|
+
function PaginationPrevious({
|
|
2902
|
+
className,
|
|
2903
|
+
text = "Previous",
|
|
2904
|
+
...props
|
|
2905
|
+
}) {
|
|
2906
|
+
return /* @__PURE__ */ jsxs15(
|
|
2907
|
+
PaginationLink,
|
|
2908
|
+
{
|
|
2909
|
+
"aria-label": "Go to previous page",
|
|
2910
|
+
className: cn("pl-2!", className),
|
|
2911
|
+
...props,
|
|
2912
|
+
size: "default",
|
|
2913
|
+
children: [
|
|
2914
|
+
/* @__PURE__ */ jsx33(ChevronLeft, { "data-icon": "inline-start" }),
|
|
2915
|
+
/* @__PURE__ */ jsx33("span", { className: "hidden sm:block", children: text })
|
|
2916
|
+
]
|
|
2917
|
+
}
|
|
2918
|
+
);
|
|
2919
|
+
}
|
|
2920
|
+
function PaginationNext({
|
|
2921
|
+
className,
|
|
2922
|
+
text = "Next",
|
|
2923
|
+
...props
|
|
2924
|
+
}) {
|
|
2925
|
+
return /* @__PURE__ */ jsxs15(
|
|
2926
|
+
PaginationLink,
|
|
2927
|
+
{
|
|
2928
|
+
"aria-label": "Go to next page",
|
|
2929
|
+
className: cn("pr-2!", className),
|
|
2930
|
+
...props,
|
|
2931
|
+
size: "default",
|
|
2932
|
+
children: [
|
|
2933
|
+
/* @__PURE__ */ jsx33("span", { className: "hidden sm:block", children: text }),
|
|
2934
|
+
/* @__PURE__ */ jsx33(ChevronRight5, { "data-icon": "inline-end" })
|
|
2935
|
+
]
|
|
2936
|
+
}
|
|
2937
|
+
);
|
|
2938
|
+
}
|
|
2939
|
+
function PaginationEllipsis({
|
|
2940
|
+
className,
|
|
2941
|
+
...props
|
|
2942
|
+
}) {
|
|
2943
|
+
return /* @__PURE__ */ jsxs15(
|
|
2944
|
+
"span",
|
|
2945
|
+
{
|
|
2946
|
+
"aria-hidden": true,
|
|
2947
|
+
"data-slot": "pagination-ellipsis",
|
|
2948
|
+
className: cn(
|
|
2949
|
+
"size-9 [&_svg:not([class*='size-'])]:size-4 flex items-center justify-center",
|
|
2950
|
+
className
|
|
2951
|
+
),
|
|
2952
|
+
...props,
|
|
2953
|
+
children: [
|
|
2954
|
+
/* @__PURE__ */ jsx33(MoreHorizontal2, {}),
|
|
2955
|
+
/* @__PURE__ */ jsx33("span", { className: "sr-only", children: "More pages" })
|
|
2956
|
+
]
|
|
2957
|
+
}
|
|
2958
|
+
);
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
// src/components/ui/radio-group.tsx
|
|
2962
|
+
import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
|
|
2963
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2964
|
+
function RadioGroup({
|
|
2965
|
+
className,
|
|
2966
|
+
...props
|
|
2967
|
+
}) {
|
|
2968
|
+
return /* @__PURE__ */ jsx34(
|
|
2969
|
+
RadioGroupPrimitive.Root,
|
|
2970
|
+
{
|
|
2971
|
+
"data-slot": "radio-group",
|
|
2972
|
+
className: cn("grid gap-3 w-full", className),
|
|
2973
|
+
...props
|
|
2974
|
+
}
|
|
2975
|
+
);
|
|
2976
|
+
}
|
|
2977
|
+
function RadioGroupItem({
|
|
2978
|
+
className,
|
|
2979
|
+
...props
|
|
2980
|
+
}) {
|
|
2981
|
+
return /* @__PURE__ */ jsx34(
|
|
2982
|
+
RadioGroupPrimitive.Item,
|
|
2983
|
+
{
|
|
2984
|
+
"data-slot": "radio-group-item",
|
|
2985
|
+
className: cn(
|
|
2986
|
+
"border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 flex size-4 rounded-full focus-visible:ring-3 aria-invalid:ring-3 group/radio-group-item peer relative aspect-square shrink-0 border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
2987
|
+
className
|
|
2988
|
+
),
|
|
2989
|
+
...props,
|
|
2990
|
+
children: /* @__PURE__ */ jsx34(
|
|
2991
|
+
RadioGroupPrimitive.Indicator,
|
|
2992
|
+
{
|
|
2993
|
+
"data-slot": "radio-group-indicator",
|
|
2994
|
+
className: "flex size-4 items-center justify-center",
|
|
2995
|
+
children: /* @__PURE__ */ jsx34("span", { className: "bg-primary-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full" })
|
|
2996
|
+
}
|
|
2997
|
+
)
|
|
2998
|
+
}
|
|
2999
|
+
);
|
|
3000
|
+
}
|
|
3001
|
+
|
|
3002
|
+
// src/components/ui/slider.tsx
|
|
3003
|
+
import * as React2 from "react";
|
|
3004
|
+
import { Slider as SliderPrimitive } from "radix-ui";
|
|
3005
|
+
import { jsx as jsx35, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3006
|
+
function Slider({
|
|
3007
|
+
className,
|
|
3008
|
+
defaultValue,
|
|
3009
|
+
value,
|
|
3010
|
+
min = 0,
|
|
3011
|
+
max = 100,
|
|
3012
|
+
...props
|
|
3013
|
+
}) {
|
|
3014
|
+
const _values = React2.useMemo(
|
|
3015
|
+
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
3016
|
+
[value, defaultValue, min, max]
|
|
3017
|
+
);
|
|
3018
|
+
return /* @__PURE__ */ jsxs16(
|
|
3019
|
+
SliderPrimitive.Root,
|
|
3020
|
+
{
|
|
3021
|
+
"data-slot": "slider",
|
|
3022
|
+
defaultValue,
|
|
3023
|
+
value,
|
|
3024
|
+
min,
|
|
3025
|
+
max,
|
|
3026
|
+
className: cn(
|
|
3027
|
+
"data-vertical:min-h-40 relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:w-auto data-vertical:flex-col",
|
|
3028
|
+
className
|
|
3029
|
+
),
|
|
3030
|
+
...props,
|
|
3031
|
+
children: [
|
|
3032
|
+
/* @__PURE__ */ jsx35(
|
|
3033
|
+
SliderPrimitive.Track,
|
|
3034
|
+
{
|
|
3035
|
+
"data-slot": "slider-track",
|
|
3036
|
+
className: "bg-muted rounded-full data-horizontal:h-1.5 data-vertical:w-1.5 relative grow overflow-hidden data-horizontal:w-full data-vertical:h-full",
|
|
3037
|
+
children: /* @__PURE__ */ jsx35(
|
|
3038
|
+
SliderPrimitive.Range,
|
|
3039
|
+
{
|
|
3040
|
+
"data-slot": "slider-range",
|
|
3041
|
+
className: "bg-primary absolute select-none data-horizontal:h-full data-vertical:w-full"
|
|
3042
|
+
}
|
|
3043
|
+
)
|
|
3044
|
+
}
|
|
3045
|
+
),
|
|
3046
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx35(
|
|
3047
|
+
SliderPrimitive.Thumb,
|
|
3048
|
+
{
|
|
3049
|
+
"data-slot": "slider-thumb",
|
|
3050
|
+
className: "border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden block shrink-0 select-none disabled:pointer-events-none disabled:opacity-50"
|
|
3051
|
+
},
|
|
3052
|
+
index
|
|
3053
|
+
))
|
|
3054
|
+
]
|
|
3055
|
+
}
|
|
3056
|
+
);
|
|
3057
|
+
}
|
|
3058
|
+
|
|
3059
|
+
// src/components/ui/switch.tsx
|
|
3060
|
+
import { Switch as SwitchPrimitive } from "radix-ui";
|
|
3061
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
3062
|
+
function Switch({
|
|
3063
|
+
className,
|
|
3064
|
+
size = "default",
|
|
3065
|
+
...props
|
|
3066
|
+
}) {
|
|
3067
|
+
return /* @__PURE__ */ jsx36(
|
|
3068
|
+
SwitchPrimitive.Root,
|
|
3069
|
+
{
|
|
3070
|
+
"data-slot": "switch",
|
|
3071
|
+
"data-size": size,
|
|
3072
|
+
className: cn(
|
|
3073
|
+
"data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full border border-transparent shadow-xs focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
3074
|
+
className
|
|
3075
|
+
),
|
|
3076
|
+
...props,
|
|
3077
|
+
children: /* @__PURE__ */ jsx36(
|
|
3078
|
+
SwitchPrimitive.Thumb,
|
|
3079
|
+
{
|
|
3080
|
+
"data-slot": "switch-thumb",
|
|
3081
|
+
className: "bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 pointer-events-none block ring-0 transition-transform"
|
|
3082
|
+
}
|
|
3083
|
+
)
|
|
3084
|
+
}
|
|
3085
|
+
);
|
|
3086
|
+
}
|
|
3087
|
+
|
|
3088
|
+
// src/components/ui/toggle.tsx
|
|
3089
|
+
import { cva as cva7 } from "class-variance-authority";
|
|
3090
|
+
import { Toggle as TogglePrimitive } from "radix-ui";
|
|
3091
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
3092
|
+
var toggleVariants = cva7(
|
|
3093
|
+
"hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
3094
|
+
{
|
|
3095
|
+
variants: {
|
|
3096
|
+
variant: {
|
|
3097
|
+
default: "bg-transparent",
|
|
3098
|
+
outline: "border-input hover:bg-muted border bg-transparent shadow-xs"
|
|
3099
|
+
},
|
|
3100
|
+
size: {
|
|
3101
|
+
default: "h-9 min-w-9 px-2",
|
|
3102
|
+
sm: "h-8 min-w-8 px-1.5",
|
|
3103
|
+
lg: "h-10 min-w-10 px-2.5"
|
|
3104
|
+
}
|
|
3105
|
+
},
|
|
3106
|
+
defaultVariants: {
|
|
3107
|
+
variant: "default",
|
|
3108
|
+
size: "default"
|
|
3109
|
+
}
|
|
3110
|
+
}
|
|
3111
|
+
);
|
|
3112
|
+
function Toggle({
|
|
3113
|
+
className,
|
|
3114
|
+
variant = "default",
|
|
3115
|
+
size = "default",
|
|
3116
|
+
...props
|
|
3117
|
+
}) {
|
|
3118
|
+
return /* @__PURE__ */ jsx37(
|
|
3119
|
+
TogglePrimitive.Root,
|
|
3120
|
+
{
|
|
3121
|
+
"data-slot": "toggle",
|
|
3122
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
3123
|
+
...props
|
|
3124
|
+
}
|
|
3125
|
+
);
|
|
3126
|
+
}
|
|
3127
|
+
|
|
3128
|
+
// src/components/ui/toggle-group.tsx
|
|
3129
|
+
import * as React3 from "react";
|
|
3130
|
+
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui";
|
|
3131
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3132
|
+
var ToggleGroupContext = React3.createContext({
|
|
3133
|
+
size: "default",
|
|
3134
|
+
variant: "default",
|
|
3135
|
+
spacing: 0,
|
|
3136
|
+
orientation: "horizontal"
|
|
3137
|
+
});
|
|
3138
|
+
function ToggleGroup({
|
|
3139
|
+
className,
|
|
3140
|
+
variant,
|
|
3141
|
+
size,
|
|
3142
|
+
spacing = 0,
|
|
3143
|
+
orientation = "horizontal",
|
|
3144
|
+
children,
|
|
3145
|
+
...props
|
|
3146
|
+
}) {
|
|
3147
|
+
return /* @__PURE__ */ jsx38(
|
|
3148
|
+
ToggleGroupPrimitive.Root,
|
|
3149
|
+
{
|
|
3150
|
+
"data-slot": "toggle-group",
|
|
3151
|
+
"data-variant": variant,
|
|
3152
|
+
"data-size": size,
|
|
3153
|
+
"data-spacing": spacing,
|
|
3154
|
+
"data-orientation": orientation,
|
|
3155
|
+
style: { "--gap": spacing },
|
|
3156
|
+
className: cn(
|
|
3157
|
+
"rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-vertical:flex-col data-vertical:items-stretch",
|
|
3158
|
+
className
|
|
3159
|
+
),
|
|
3160
|
+
...props,
|
|
3161
|
+
children: /* @__PURE__ */ jsx38(
|
|
3162
|
+
ToggleGroupContext.Provider,
|
|
3163
|
+
{
|
|
3164
|
+
value: { variant, size, spacing, orientation },
|
|
3165
|
+
children
|
|
3166
|
+
}
|
|
3167
|
+
)
|
|
3168
|
+
}
|
|
3169
|
+
);
|
|
3170
|
+
}
|
|
3171
|
+
function ToggleGroupItem({
|
|
3172
|
+
className,
|
|
3173
|
+
children,
|
|
3174
|
+
variant = "default",
|
|
3175
|
+
size = "default",
|
|
3176
|
+
...props
|
|
3177
|
+
}) {
|
|
3178
|
+
const context = React3.useContext(ToggleGroupContext);
|
|
3179
|
+
return /* @__PURE__ */ jsx38(
|
|
3180
|
+
ToggleGroupPrimitive.Item,
|
|
3181
|
+
{
|
|
3182
|
+
"data-slot": "toggle-group-item",
|
|
3183
|
+
"data-variant": context.variant || variant,
|
|
3184
|
+
"data-size": context.size || size,
|
|
3185
|
+
"data-spacing": context.spacing,
|
|
3186
|
+
className: cn(
|
|
3187
|
+
"data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
|
|
3188
|
+
toggleVariants({
|
|
3189
|
+
variant: context.variant || variant,
|
|
3190
|
+
size: context.size || size
|
|
3191
|
+
}),
|
|
3192
|
+
className
|
|
3193
|
+
),
|
|
3194
|
+
...props,
|
|
3195
|
+
children
|
|
3196
|
+
}
|
|
3197
|
+
);
|
|
3198
|
+
}
|
|
3199
|
+
|
|
3200
|
+
// src/components/ui/drawer.tsx
|
|
3201
|
+
import { Drawer as DrawerPrimitive } from "vaul";
|
|
3202
|
+
import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3203
|
+
function Drawer({
|
|
3204
|
+
...props
|
|
3205
|
+
}) {
|
|
3206
|
+
return /* @__PURE__ */ jsx39(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
|
|
3207
|
+
}
|
|
3208
|
+
function DrawerTrigger({
|
|
3209
|
+
...props
|
|
3210
|
+
}) {
|
|
3211
|
+
return /* @__PURE__ */ jsx39(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
|
|
3212
|
+
}
|
|
3213
|
+
function DrawerPortal({
|
|
3214
|
+
...props
|
|
3215
|
+
}) {
|
|
3216
|
+
return /* @__PURE__ */ jsx39(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
|
|
3217
|
+
}
|
|
3218
|
+
function DrawerClose({
|
|
3219
|
+
...props
|
|
3220
|
+
}) {
|
|
3221
|
+
return /* @__PURE__ */ jsx39(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
|
|
3222
|
+
}
|
|
3223
|
+
function DrawerOverlay({
|
|
3224
|
+
className,
|
|
3225
|
+
...props
|
|
3226
|
+
}) {
|
|
3227
|
+
return /* @__PURE__ */ jsx39(
|
|
3228
|
+
DrawerPrimitive.Overlay,
|
|
3229
|
+
{
|
|
3230
|
+
"data-slot": "drawer-overlay",
|
|
3231
|
+
className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
|
|
3232
|
+
...props
|
|
3233
|
+
}
|
|
3234
|
+
);
|
|
3235
|
+
}
|
|
3236
|
+
function DrawerContent({
|
|
3237
|
+
className,
|
|
3238
|
+
children,
|
|
3239
|
+
...props
|
|
3240
|
+
}) {
|
|
3241
|
+
return /* @__PURE__ */ jsxs17(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
3242
|
+
/* @__PURE__ */ jsx39(DrawerOverlay, {}),
|
|
3243
|
+
/* @__PURE__ */ jsxs17(
|
|
3244
|
+
DrawerPrimitive.Content,
|
|
3245
|
+
{
|
|
3246
|
+
"data-slot": "drawer-content",
|
|
3247
|
+
className: cn(
|
|
3248
|
+
"bg-background flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm group/drawer-content fixed z-50",
|
|
3249
|
+
className
|
|
3250
|
+
),
|
|
3251
|
+
...props,
|
|
3252
|
+
children: [
|
|
3253
|
+
/* @__PURE__ */ jsx39("div", { className: "bg-muted mt-4 h-1.5 w-[100px] rounded-full mx-auto hidden shrink-0 group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
3254
|
+
children
|
|
3255
|
+
]
|
|
3256
|
+
}
|
|
3257
|
+
)
|
|
3258
|
+
] });
|
|
3259
|
+
}
|
|
3260
|
+
function DrawerHeader({ className, ...props }) {
|
|
3261
|
+
return /* @__PURE__ */ jsx39(
|
|
3262
|
+
"div",
|
|
3263
|
+
{
|
|
3264
|
+
"data-slot": "drawer-header",
|
|
3265
|
+
className: cn("gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left flex flex-col", className),
|
|
3266
|
+
...props
|
|
3267
|
+
}
|
|
3268
|
+
);
|
|
3269
|
+
}
|
|
3270
|
+
function DrawerFooter({ className, ...props }) {
|
|
3271
|
+
return /* @__PURE__ */ jsx39(
|
|
3272
|
+
"div",
|
|
3273
|
+
{
|
|
3274
|
+
"data-slot": "drawer-footer",
|
|
3275
|
+
className: cn("gap-2 p-4 mt-auto flex flex-col", className),
|
|
3276
|
+
...props
|
|
3277
|
+
}
|
|
3278
|
+
);
|
|
3279
|
+
}
|
|
3280
|
+
function DrawerTitle({
|
|
3281
|
+
className,
|
|
3282
|
+
...props
|
|
3283
|
+
}) {
|
|
3284
|
+
return /* @__PURE__ */ jsx39(
|
|
3285
|
+
DrawerPrimitive.Title,
|
|
3286
|
+
{
|
|
3287
|
+
"data-slot": "drawer-title",
|
|
3288
|
+
className: cn("text-foreground font-medium", className),
|
|
3289
|
+
...props
|
|
3290
|
+
}
|
|
3291
|
+
);
|
|
3292
|
+
}
|
|
3293
|
+
function DrawerDescription({
|
|
3294
|
+
className,
|
|
3295
|
+
...props
|
|
3296
|
+
}) {
|
|
3297
|
+
return /* @__PURE__ */ jsx39(
|
|
3298
|
+
DrawerPrimitive.Description,
|
|
3299
|
+
{
|
|
3300
|
+
"data-slot": "drawer-description",
|
|
3301
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
3302
|
+
...props
|
|
3303
|
+
}
|
|
3304
|
+
);
|
|
3305
|
+
}
|
|
3306
|
+
|
|
3307
|
+
// src/components/ui/input-otp.tsx
|
|
3308
|
+
import * as React4 from "react";
|
|
3309
|
+
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3310
|
+
import { Minus } from "lucide-react";
|
|
3311
|
+
import { jsx as jsx40, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3312
|
+
function InputOTP({
|
|
3313
|
+
className,
|
|
3314
|
+
containerClassName,
|
|
3315
|
+
...props
|
|
3316
|
+
}) {
|
|
3317
|
+
return /* @__PURE__ */ jsx40(
|
|
3318
|
+
OTPInput,
|
|
3319
|
+
{
|
|
3320
|
+
"data-slot": "input-otp",
|
|
3321
|
+
containerClassName: cn(
|
|
3322
|
+
"cn-input-otp flex items-center has-disabled:opacity-50",
|
|
3323
|
+
containerClassName
|
|
3324
|
+
),
|
|
3325
|
+
spellCheck: false,
|
|
3326
|
+
className: cn(
|
|
3327
|
+
"disabled:cursor-not-allowed",
|
|
3328
|
+
className
|
|
3329
|
+
),
|
|
3330
|
+
...props
|
|
3331
|
+
}
|
|
3332
|
+
);
|
|
3333
|
+
}
|
|
3334
|
+
function InputOTPGroup({ className, ...props }) {
|
|
3335
|
+
return /* @__PURE__ */ jsx40(
|
|
3336
|
+
"div",
|
|
3337
|
+
{
|
|
3338
|
+
"data-slot": "input-otp-group",
|
|
3339
|
+
className: cn("has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive rounded-md has-aria-invalid:ring-3 flex items-center", className),
|
|
3340
|
+
...props
|
|
3341
|
+
}
|
|
3342
|
+
);
|
|
3343
|
+
}
|
|
3344
|
+
function InputOTPSlot({
|
|
3345
|
+
index,
|
|
3346
|
+
className,
|
|
3347
|
+
...props
|
|
3348
|
+
}) {
|
|
3349
|
+
const inputOTPContext = React4.useContext(OTPInputContext);
|
|
3350
|
+
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
3351
|
+
return /* @__PURE__ */ jsxs18(
|
|
3352
|
+
"div",
|
|
3353
|
+
{
|
|
3354
|
+
"data-slot": "input-otp-slot",
|
|
3355
|
+
"data-active": isActive,
|
|
3356
|
+
className: cn(
|
|
3357
|
+
"dark:bg-input/30 border-input data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive size-9 border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:ring-3 relative flex items-center justify-center data-[active=true]:z-10",
|
|
3358
|
+
className
|
|
3359
|
+
),
|
|
3360
|
+
...props,
|
|
3361
|
+
children: [
|
|
3362
|
+
char,
|
|
3363
|
+
hasFakeCaret && /* @__PURE__ */ jsx40("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx40("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
|
|
3364
|
+
]
|
|
3365
|
+
}
|
|
3366
|
+
);
|
|
3367
|
+
}
|
|
3368
|
+
function InputOTPSeparator({ ...props }) {
|
|
3369
|
+
return /* @__PURE__ */ jsx40(
|
|
3370
|
+
"div",
|
|
3371
|
+
{
|
|
3372
|
+
"data-slot": "input-otp-separator",
|
|
3373
|
+
className: "[&_svg:not([class*='size-'])]:size-4 flex items-center",
|
|
3374
|
+
role: "separator",
|
|
3375
|
+
...props,
|
|
3376
|
+
children: /* @__PURE__ */ jsx40(Minus, {})
|
|
3377
|
+
}
|
|
3378
|
+
);
|
|
3379
|
+
}
|
|
3380
|
+
|
|
3381
|
+
// src/components/ui/sonner.tsx
|
|
3382
|
+
import { useTheme } from "next-themes";
|
|
3383
|
+
import { Toaster as Sonner } from "sonner";
|
|
3384
|
+
import { CircleCheck, Info, AlertTriangle, AlertOctagon, Loader2 } from "lucide-react";
|
|
3385
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3386
|
+
var Toaster = ({ ...props }) => {
|
|
3387
|
+
const { theme = "system" } = useTheme();
|
|
3388
|
+
return /* @__PURE__ */ jsx41(
|
|
3389
|
+
Sonner,
|
|
3390
|
+
{
|
|
3391
|
+
theme,
|
|
3392
|
+
className: "toaster group",
|
|
3393
|
+
icons: {
|
|
3394
|
+
success: /* @__PURE__ */ jsx41(CircleCheck, { className: "size-4" }),
|
|
3395
|
+
info: /* @__PURE__ */ jsx41(Info, { className: "size-4" }),
|
|
3396
|
+
warning: /* @__PURE__ */ jsx41(AlertTriangle, { className: "size-4" }),
|
|
3397
|
+
error: /* @__PURE__ */ jsx41(AlertOctagon, { className: "size-4" }),
|
|
3398
|
+
loading: /* @__PURE__ */ jsx41(Loader2, { className: "size-4 animate-spin" })
|
|
3399
|
+
},
|
|
3400
|
+
style: {
|
|
3401
|
+
"--normal-bg": "var(--popover)",
|
|
3402
|
+
"--normal-text": "var(--popover-foreground)",
|
|
3403
|
+
"--normal-border": "var(--border)",
|
|
3404
|
+
"--border-radius": "var(--radius)"
|
|
3405
|
+
},
|
|
3406
|
+
toastOptions: {
|
|
3407
|
+
classNames: {
|
|
3408
|
+
toast: "cn-toast"
|
|
3409
|
+
}
|
|
3410
|
+
},
|
|
3411
|
+
...props
|
|
3412
|
+
}
|
|
3413
|
+
);
|
|
3414
|
+
};
|
|
2035
3415
|
export {
|
|
3416
|
+
Accordion,
|
|
3417
|
+
AccordionContent,
|
|
3418
|
+
AccordionItem,
|
|
3419
|
+
AccordionTrigger,
|
|
2036
3420
|
Alert,
|
|
2037
3421
|
AlertDescription,
|
|
2038
3422
|
AlertDialog,
|
|
@@ -2047,6 +3431,7 @@ export {
|
|
|
2047
3431
|
AlertDialogTitle,
|
|
2048
3432
|
AlertDialogTrigger,
|
|
2049
3433
|
AlertTitle,
|
|
3434
|
+
AspectRatio,
|
|
2050
3435
|
Avatar,
|
|
2051
3436
|
AvatarFallback,
|
|
2052
3437
|
AvatarImage,
|
|
@@ -2064,6 +3449,7 @@ export {
|
|
|
2064
3449
|
CardFooter,
|
|
2065
3450
|
CardHeader,
|
|
2066
3451
|
CardTitle,
|
|
3452
|
+
Checkbox,
|
|
2067
3453
|
Collapsible,
|
|
2068
3454
|
CollapsibleContent,
|
|
2069
3455
|
CollapsibleTrigger,
|
|
@@ -2075,6 +3461,21 @@ export {
|
|
|
2075
3461
|
CommandList,
|
|
2076
3462
|
CommandSeparator,
|
|
2077
3463
|
CommandShortcut,
|
|
3464
|
+
ContextMenu,
|
|
3465
|
+
ContextMenuCheckboxItem,
|
|
3466
|
+
ContextMenuContent,
|
|
3467
|
+
ContextMenuGroup,
|
|
3468
|
+
ContextMenuItem,
|
|
3469
|
+
ContextMenuLabel,
|
|
3470
|
+
ContextMenuPortal,
|
|
3471
|
+
ContextMenuRadioGroup,
|
|
3472
|
+
ContextMenuRadioItem,
|
|
3473
|
+
ContextMenuSeparator,
|
|
3474
|
+
ContextMenuShortcut,
|
|
3475
|
+
ContextMenuSub,
|
|
3476
|
+
ContextMenuSubContent,
|
|
3477
|
+
ContextMenuSubTrigger,
|
|
3478
|
+
ContextMenuTrigger,
|
|
2078
3479
|
Dialog,
|
|
2079
3480
|
DialogClose,
|
|
2080
3481
|
DialogContent,
|
|
@@ -2085,6 +3486,16 @@ export {
|
|
|
2085
3486
|
DialogPortal,
|
|
2086
3487
|
DialogTitle,
|
|
2087
3488
|
DialogTrigger,
|
|
3489
|
+
Drawer,
|
|
3490
|
+
DrawerClose,
|
|
3491
|
+
DrawerContent,
|
|
3492
|
+
DrawerDescription,
|
|
3493
|
+
DrawerFooter,
|
|
3494
|
+
DrawerHeader,
|
|
3495
|
+
DrawerOverlay,
|
|
3496
|
+
DrawerPortal,
|
|
3497
|
+
DrawerTitle,
|
|
3498
|
+
DrawerTrigger,
|
|
2088
3499
|
DropdownMenu,
|
|
2089
3500
|
DropdownMenuContent,
|
|
2090
3501
|
DropdownMenuGroup,
|
|
@@ -2092,9 +3503,56 @@ export {
|
|
|
2092
3503
|
DropdownMenuLabel,
|
|
2093
3504
|
DropdownMenuSeparator,
|
|
2094
3505
|
DropdownMenuTrigger,
|
|
3506
|
+
HoverCard,
|
|
3507
|
+
HoverCardContent,
|
|
3508
|
+
HoverCardTrigger,
|
|
2095
3509
|
Input,
|
|
3510
|
+
InputOTP,
|
|
3511
|
+
InputOTPGroup,
|
|
3512
|
+
InputOTPSeparator,
|
|
3513
|
+
InputOTPSlot,
|
|
2096
3514
|
Label,
|
|
3515
|
+
Menubar,
|
|
3516
|
+
MenubarCheckboxItem,
|
|
3517
|
+
MenubarContent,
|
|
3518
|
+
MenubarGroup,
|
|
3519
|
+
MenubarItem,
|
|
3520
|
+
MenubarLabel,
|
|
3521
|
+
MenubarMenu,
|
|
3522
|
+
MenubarPortal,
|
|
3523
|
+
MenubarRadioGroup,
|
|
3524
|
+
MenubarRadioItem,
|
|
3525
|
+
MenubarSeparator,
|
|
3526
|
+
MenubarShortcut,
|
|
3527
|
+
MenubarSub,
|
|
3528
|
+
MenubarSubContent,
|
|
3529
|
+
MenubarSubTrigger,
|
|
3530
|
+
MenubarTrigger,
|
|
3531
|
+
NavigationMenu,
|
|
3532
|
+
NavigationMenuContent,
|
|
3533
|
+
NavigationMenuIndicator,
|
|
3534
|
+
NavigationMenuItem,
|
|
3535
|
+
NavigationMenuLink,
|
|
3536
|
+
NavigationMenuList,
|
|
3537
|
+
NavigationMenuTrigger,
|
|
3538
|
+
NavigationMenuViewport,
|
|
3539
|
+
Pagination,
|
|
3540
|
+
PaginationContent,
|
|
3541
|
+
PaginationEllipsis,
|
|
3542
|
+
PaginationItem,
|
|
3543
|
+
PaginationLink,
|
|
3544
|
+
PaginationNext,
|
|
3545
|
+
PaginationPrevious,
|
|
3546
|
+
Popover,
|
|
3547
|
+
PopoverAnchor,
|
|
3548
|
+
PopoverContent,
|
|
3549
|
+
PopoverDescription,
|
|
3550
|
+
PopoverHeader,
|
|
3551
|
+
PopoverTitle,
|
|
3552
|
+
PopoverTrigger,
|
|
2097
3553
|
Progress,
|
|
3554
|
+
RadioGroup,
|
|
3555
|
+
RadioGroupItem,
|
|
2098
3556
|
ScrollArea,
|
|
2099
3557
|
ScrollBar,
|
|
2100
3558
|
Select,
|
|
@@ -2135,6 +3593,8 @@ export {
|
|
|
2135
3593
|
SidebarSeparator,
|
|
2136
3594
|
SidebarTrigger,
|
|
2137
3595
|
Skeleton,
|
|
3596
|
+
Slider,
|
|
3597
|
+
Switch,
|
|
2138
3598
|
Table,
|
|
2139
3599
|
TableBody,
|
|
2140
3600
|
TableCaption,
|
|
@@ -2148,6 +3608,10 @@ export {
|
|
|
2148
3608
|
TabsList,
|
|
2149
3609
|
TabsTrigger,
|
|
2150
3610
|
Textarea,
|
|
3611
|
+
Toaster,
|
|
3612
|
+
Toggle,
|
|
3613
|
+
ToggleGroup,
|
|
3614
|
+
ToggleGroupItem,
|
|
2151
3615
|
Tooltip,
|
|
2152
3616
|
TooltipContent,
|
|
2153
3617
|
TooltipProvider,
|
|
@@ -2155,7 +3619,9 @@ export {
|
|
|
2155
3619
|
badgeVariants,
|
|
2156
3620
|
buttonVariants,
|
|
2157
3621
|
cn,
|
|
3622
|
+
navigationMenuTriggerStyle,
|
|
2158
3623
|
tabsListVariants,
|
|
3624
|
+
toggleVariants,
|
|
2159
3625
|
useSidebar
|
|
2160
3626
|
};
|
|
2161
3627
|
//# sourceMappingURL=ui.js.map
|