@nuvia/components 1.4.0 → 1.4.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/index.cjs +155 -141
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +155 -141
- package/dist/index.js.map +1 -1
- package/dist/ui/alert.d.cts +1 -1
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/combobox.cjs +1 -1
- package/dist/ui/combobox.cjs.map +1 -1
- package/dist/ui/combobox.js +1 -1
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/command.cjs +1 -1
- package/dist/ui/command.cjs.map +1 -1
- package/dist/ui/command.d.cts +7 -7
- package/dist/ui/command.d.ts +7 -7
- package/dist/ui/command.js +1 -1
- package/dist/ui/command.js.map +1 -1
- package/dist/ui/context-menu.cjs +1 -1
- package/dist/ui/context-menu.cjs.map +1 -1
- package/dist/ui/context-menu.js +1 -1
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/input-otp.d.cts +2 -2
- package/dist/ui/input-otp.d.ts +2 -2
- package/dist/ui/multi-combobox.cjs +149 -135
- package/dist/ui/multi-combobox.cjs.map +1 -1
- package/dist/ui/multi-combobox.js +149 -135
- package/dist/ui/multi-combobox.js.map +1 -1
- package/dist/ui/navigation-menu.cjs +1 -1
- package/dist/ui/navigation-menu.cjs.map +1 -1
- package/dist/ui/navigation-menu.js +1 -1
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/resizable.cjs +2 -2
- package/dist/ui/resizable.cjs.map +1 -1
- package/dist/ui/resizable.d.cts +1 -1
- package/dist/ui/resizable.d.ts +1 -1
- package/dist/ui/resizable.js +2 -2
- package/dist/ui/resizable.js.map +1 -1
- package/dist/ui/scroll-area.cjs +1 -1
- package/dist/ui/scroll-area.cjs.map +1 -1
- package/dist/ui/scroll-area.js +1 -1
- package/dist/ui/scroll-area.js.map +1 -1
- package/dist/ui/separator.cjs +1 -1
- package/dist/ui/separator.cjs.map +1 -1
- package/dist/ui/separator.js +1 -1
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/sidebar.cjs +1 -1
- package/dist/ui/sidebar.cjs.map +1 -1
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/sidebar.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1182,7 +1182,7 @@ var CommandSeparator = React36__namespace.forwardRef(({ className, ...props }, r
|
|
|
1182
1182
|
cmdk.Command.Separator,
|
|
1183
1183
|
{
|
|
1184
1184
|
ref,
|
|
1185
|
-
className: cn("-mx-1 h-px bg-
|
|
1185
|
+
className: cn("-mx-1 h-px bg-card", className),
|
|
1186
1186
|
...props
|
|
1187
1187
|
}
|
|
1188
1188
|
));
|
|
@@ -1421,7 +1421,7 @@ var ContextMenuSeparator = React36__namespace.forwardRef(({ className, ...props
|
|
|
1421
1421
|
ContextMenuPrimitive__namespace.Separator,
|
|
1422
1422
|
{
|
|
1423
1423
|
ref,
|
|
1424
|
-
className: cn("-mx-1 my-1 h-px bg-
|
|
1424
|
+
className: cn("-mx-1 my-1 h-px bg-card", className),
|
|
1425
1425
|
...props
|
|
1426
1426
|
}
|
|
1427
1427
|
));
|
|
@@ -2326,149 +2326,163 @@ var MenubarShortcut = ({
|
|
|
2326
2326
|
);
|
|
2327
2327
|
};
|
|
2328
2328
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
2329
|
-
var MultiCombobox = React36__namespace.forwardRef(
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
const
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2329
|
+
var MultiCombobox = React36__namespace.forwardRef(
|
|
2330
|
+
({
|
|
2331
|
+
options,
|
|
2332
|
+
placeholder = "Select options...",
|
|
2333
|
+
searchPlaceholder = "Search...",
|
|
2334
|
+
emptyMessage = "No options found.",
|
|
2335
|
+
className,
|
|
2336
|
+
contentClassName,
|
|
2337
|
+
value: controlledValue,
|
|
2338
|
+
onValueChange,
|
|
2339
|
+
onSelect,
|
|
2340
|
+
onCreate,
|
|
2341
|
+
maxDisplayedItems = 3,
|
|
2342
|
+
asChild,
|
|
2343
|
+
children
|
|
2344
|
+
}, ref) => {
|
|
2345
|
+
const [open, setOpen] = React36__namespace.useState(false);
|
|
2346
|
+
const [value, setValue] = React36__namespace.useState(controlledValue || []);
|
|
2347
|
+
const [search, setSearch] = React36__namespace.useState("");
|
|
2348
|
+
React36__namespace.useEffect(() => {
|
|
2349
|
+
if (controlledValue !== void 0) {
|
|
2350
|
+
setValue(controlledValue);
|
|
2351
|
+
}
|
|
2352
|
+
}, [controlledValue]);
|
|
2353
|
+
const handleSelect = React36__namespace.useCallback(
|
|
2354
|
+
(currentValue) => {
|
|
2355
|
+
const newValue = value.includes(currentValue) ? value.filter((v) => v !== currentValue) : [...value, currentValue];
|
|
2356
|
+
setValue(newValue);
|
|
2357
|
+
onValueChange?.(newValue);
|
|
2358
|
+
onSelect?.(newValue);
|
|
2359
|
+
},
|
|
2360
|
+
[value, onValueChange, onSelect]
|
|
2361
|
+
);
|
|
2362
|
+
const handleRemove = React36__namespace.useCallback(
|
|
2363
|
+
(valueToRemove) => {
|
|
2364
|
+
const newValue = value.filter((v) => v !== valueToRemove);
|
|
2365
|
+
setValue(newValue);
|
|
2366
|
+
onValueChange?.(newValue);
|
|
2367
|
+
onSelect?.(newValue);
|
|
2368
|
+
},
|
|
2369
|
+
[value, onValueChange, onSelect]
|
|
2370
|
+
);
|
|
2371
|
+
const selectedLabels = React36__namespace.useMemo(() => {
|
|
2372
|
+
return value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
|
|
2373
|
+
}, [value, options]);
|
|
2374
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(PopoverPrimitive.Popover, { open, onOpenChange: setOpen, children: [
|
|
2375
|
+
/* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive.PopoverTrigger, { asChild: true, children: asChild ? children : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2376
|
+
Button,
|
|
2377
|
+
{
|
|
2378
|
+
variant: "outline",
|
|
2379
|
+
role: "combobox",
|
|
2380
|
+
"aria-expanded": open,
|
|
2381
|
+
className: cn("w-full justify-between", className),
|
|
2382
|
+
children: [
|
|
2383
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-1 items-center", children: [
|
|
2384
|
+
value.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-1", children: [
|
|
2385
|
+
selectedLabels.slice(0, maxDisplayedItems).map((label, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2386
|
+
"div",
|
|
2387
|
+
{
|
|
2388
|
+
className: "flex items-center gap-1 bg-secondary px-2 py-0.5 rounded-md text-sm",
|
|
2389
|
+
children: [
|
|
2390
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
|
|
2391
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2392
|
+
"div",
|
|
2393
|
+
{
|
|
2394
|
+
onClick: (e) => {
|
|
2395
|
+
e.stopPropagation();
|
|
2396
|
+
handleRemove(value[index]);
|
|
2397
|
+
},
|
|
2398
|
+
className: "hover:bg-secondary-foreground/20 rounded-sm",
|
|
2399
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.Cross2Icon, { className: "h-3 w-3" })
|
|
2400
|
+
}
|
|
2401
|
+
)
|
|
2402
|
+
]
|
|
2403
|
+
},
|
|
2404
|
+
index
|
|
2405
|
+
)),
|
|
2406
|
+
selectedLabels.length > maxDisplayedItems && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm text-muted-foreground", children: [
|
|
2407
|
+
"+",
|
|
2408
|
+
selectedLabels.length - maxDisplayedItems,
|
|
2409
|
+
" more"
|
|
2410
|
+
] })
|
|
2411
|
+
] }),
|
|
2412
|
+
value.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground font-normal", children: placeholder })
|
|
2413
|
+
] }),
|
|
2414
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactIcons.ChevronDownIcon, { className: "opacity-50" })
|
|
2415
|
+
]
|
|
2416
|
+
}
|
|
2417
|
+
) }),
|
|
2418
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2419
|
+
PopoverContent,
|
|
2420
|
+
{
|
|
2421
|
+
className: cn("w-full p-0 !rounded-xl border-none", contentClassName),
|
|
2422
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Command, { className: "rounded-xl border", children: [
|
|
2423
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2424
|
+
CommandInput,
|
|
2425
|
+
{
|
|
2426
|
+
placeholder: searchPlaceholder,
|
|
2427
|
+
className: "h-9 w-full",
|
|
2428
|
+
value: search,
|
|
2429
|
+
onValueChange: setSearch
|
|
2430
|
+
}
|
|
2431
|
+
),
|
|
2432
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CommandList, { children: [
|
|
2433
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CommandEmpty, { className: "flex flex-col gap-3 px-4 py-5", children: [
|
|
2434
|
+
!!onCreate && search && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2435
|
+
Button,
|
|
2436
|
+
{
|
|
2437
|
+
variant: "outline",
|
|
2438
|
+
size: "sm",
|
|
2439
|
+
onClick: () => {
|
|
2440
|
+
setOpen(false);
|
|
2441
|
+
onCreate(search);
|
|
2442
|
+
},
|
|
2443
|
+
children: [
|
|
2444
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactIcons.PlusIcon, { className: "h-4 w-4" }),
|
|
2445
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate", children: [
|
|
2446
|
+
'Create "',
|
|
2447
|
+
search,
|
|
2448
|
+
'"'
|
|
2449
|
+
] })
|
|
2450
|
+
]
|
|
2451
|
+
}
|
|
2452
|
+
),
|
|
2453
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-center text-muted-foreground text-xs", children: "No results found" })
|
|
2454
|
+
] }),
|
|
2455
|
+
/* @__PURE__ */ jsxRuntime.jsx(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2456
|
+
CommandItem,
|
|
2380
2457
|
{
|
|
2381
|
-
className: "
|
|
2458
|
+
className: "rounded-xl",
|
|
2459
|
+
keywords: [option.label],
|
|
2460
|
+
value: option.value,
|
|
2461
|
+
onSelect: () => handleSelect(option.value),
|
|
2462
|
+
onKeyUp: (e) => e.key === "Enter" && handleSelect(option.value),
|
|
2463
|
+
onKeyDown: (e) => e.key === "Enter" && handleSelect(option.value),
|
|
2382
2464
|
children: [
|
|
2383
|
-
|
|
2465
|
+
option.label,
|
|
2384
2466
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2385
|
-
|
|
2467
|
+
reactIcons.CheckIcon,
|
|
2386
2468
|
{
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
className: "hover:bg-secondary-foreground/20 rounded-sm",
|
|
2392
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.Cross2Icon, { className: "h-3 w-3" })
|
|
2469
|
+
className: cn(
|
|
2470
|
+
"ml-auto",
|
|
2471
|
+
value.includes(option.value) ? "opacity-100" : "opacity-0"
|
|
2472
|
+
)
|
|
2393
2473
|
}
|
|
2394
2474
|
)
|
|
2395
2475
|
]
|
|
2396
2476
|
},
|
|
2397
|
-
|
|
2398
|
-
))
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
selectedLabels.length - maxDisplayedItems,
|
|
2402
|
-
" more"
|
|
2403
|
-
] })
|
|
2404
|
-
] }),
|
|
2405
|
-
value.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground font-normal", children: placeholder })
|
|
2406
|
-
] }),
|
|
2407
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactIcons.ChevronDownIcon, { className: "opacity-50" })
|
|
2408
|
-
]
|
|
2409
|
-
}
|
|
2410
|
-
) }),
|
|
2411
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverContent, { className: cn("w-full p-0 !rounded-xl border-none", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(Command, { className: "rounded-xl border", children: [
|
|
2412
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2413
|
-
CommandInput,
|
|
2414
|
-
{
|
|
2415
|
-
placeholder: searchPlaceholder,
|
|
2416
|
-
className: "h-9 w-full",
|
|
2417
|
-
value: search,
|
|
2418
|
-
onValueChange: setSearch
|
|
2477
|
+
`${option.value}-${option.label}`
|
|
2478
|
+
)) })
|
|
2479
|
+
] })
|
|
2480
|
+
] })
|
|
2419
2481
|
}
|
|
2420
|
-
)
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
Button,
|
|
2425
|
-
{
|
|
2426
|
-
variant: "outline",
|
|
2427
|
-
size: "sm",
|
|
2428
|
-
onClick: () => {
|
|
2429
|
-
setOpen(false);
|
|
2430
|
-
onCreate(search);
|
|
2431
|
-
},
|
|
2432
|
-
children: [
|
|
2433
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactIcons.PlusIcon, { className: "h-4 w-4" }),
|
|
2434
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate", children: [
|
|
2435
|
-
'Create "',
|
|
2436
|
-
search,
|
|
2437
|
-
'"'
|
|
2438
|
-
] })
|
|
2439
|
-
]
|
|
2440
|
-
}
|
|
2441
|
-
),
|
|
2442
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-center text-muted-foreground text-xs", children: "No results found" })
|
|
2443
|
-
] }),
|
|
2444
|
-
/* @__PURE__ */ jsxRuntime.jsx(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2445
|
-
CommandItem,
|
|
2446
|
-
{
|
|
2447
|
-
className: "rounded-lg",
|
|
2448
|
-
keywords: [option.label],
|
|
2449
|
-
value: option.value,
|
|
2450
|
-
onSelect: () => handleSelect(option.value),
|
|
2451
|
-
onKeyUp: (e) => e.key === "Enter" && handleSelect(option.value),
|
|
2452
|
-
onKeyDown: (e) => e.key === "Enter" && handleSelect(option.value),
|
|
2453
|
-
children: [
|
|
2454
|
-
option.label,
|
|
2455
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2456
|
-
reactIcons.CheckIcon,
|
|
2457
|
-
{
|
|
2458
|
-
className: cn(
|
|
2459
|
-
"ml-auto",
|
|
2460
|
-
value.includes(option.value) ? "opacity-100" : "opacity-0"
|
|
2461
|
-
)
|
|
2462
|
-
}
|
|
2463
|
-
)
|
|
2464
|
-
]
|
|
2465
|
-
},
|
|
2466
|
-
option.value
|
|
2467
|
-
)) })
|
|
2468
|
-
] })
|
|
2469
|
-
] }) })
|
|
2470
|
-
] });
|
|
2471
|
-
});
|
|
2482
|
+
)
|
|
2483
|
+
] });
|
|
2484
|
+
}
|
|
2485
|
+
);
|
|
2472
2486
|
MultiCombobox.displayName = "MultiCombobox";
|
|
2473
2487
|
var NavigationMenu = React36__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2474
2488
|
NavigationMenuPrimitive__namespace.Root,
|
|
@@ -2556,7 +2570,7 @@ var NavigationMenuIndicator = React36__namespace.forwardRef(({ className, ...pro
|
|
|
2556
2570
|
className
|
|
2557
2571
|
),
|
|
2558
2572
|
...props,
|
|
2559
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-
|
|
2573
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-card shadow-md" })
|
|
2560
2574
|
}
|
|
2561
2575
|
));
|
|
2562
2576
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive__namespace.Indicator.displayName;
|
|
@@ -2712,11 +2726,11 @@ var ResizableHandle = ({
|
|
|
2712
2726
|
ResizablePrimitive__namespace.PanelResizeHandle,
|
|
2713
2727
|
{
|
|
2714
2728
|
className: cn(
|
|
2715
|
-
"relative flex w-px items-center justify-center bg-
|
|
2729
|
+
"relative flex w-px items-center justify-center bg-card after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
|
2716
2730
|
className
|
|
2717
2731
|
),
|
|
2718
2732
|
...props,
|
|
2719
|
-
children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-
|
|
2733
|
+
children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.DragHandleDots2Icon, { className: "h-2.5 w-2.5" }) })
|
|
2720
2734
|
}
|
|
2721
2735
|
);
|
|
2722
2736
|
var ScrollArea = React36__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2745,7 +2759,7 @@ var ScrollBar = React36__namespace.forwardRef(({ className, orientation = "verti
|
|
|
2745
2759
|
className
|
|
2746
2760
|
),
|
|
2747
2761
|
...props,
|
|
2748
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-
|
|
2762
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-card" })
|
|
2749
2763
|
}
|
|
2750
2764
|
));
|
|
2751
2765
|
ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displayName;
|
|
@@ -2864,7 +2878,7 @@ var Separator5 = React36__namespace.forwardRef(
|
|
|
2864
2878
|
decorative,
|
|
2865
2879
|
orientation,
|
|
2866
2880
|
className: cn(
|
|
2867
|
-
"shrink-0 bg-
|
|
2881
|
+
"shrink-0 bg-card",
|
|
2868
2882
|
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
2869
2883
|
className
|
|
2870
2884
|
),
|