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