@blinkdotnew/ui 0.3.0 → 0.5.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/index.d.mts +445 -215
- package/dist/index.d.ts +445 -215
- package/dist/index.js +955 -118
- package/dist/index.mjs +884 -96
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var React66 = require('react');
|
|
@@ -29,7 +30,7 @@ var sonner = require('sonner');
|
|
|
29
30
|
var core = require('@dnd-kit/core');
|
|
30
31
|
var sortable = require('@dnd-kit/sortable');
|
|
31
32
|
var utilities = require('@dnd-kit/utilities');
|
|
32
|
-
var
|
|
33
|
+
var RechartsPrimitive = require('recharts');
|
|
33
34
|
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
34
35
|
var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
|
|
35
36
|
var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
|
|
@@ -41,6 +42,12 @@ var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
|
|
|
41
42
|
var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
|
|
42
43
|
var TogglePrimitive = require('@radix-ui/react-toggle');
|
|
43
44
|
var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
|
|
45
|
+
var reactDayPicker = require('react-day-picker');
|
|
46
|
+
var cmdk = require('cmdk');
|
|
47
|
+
var vaul = require('vaul');
|
|
48
|
+
var inputOtp = require('input-otp');
|
|
49
|
+
var MenubarPrimitive = require('@radix-ui/react-menubar');
|
|
50
|
+
var ResizablePrimitive = require('react-resizable-panels');
|
|
44
51
|
|
|
45
52
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
46
53
|
|
|
@@ -78,6 +85,7 @@ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrim
|
|
|
78
85
|
var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
|
|
79
86
|
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
80
87
|
var z__namespace = /*#__PURE__*/_interopNamespace(z);
|
|
88
|
+
var RechartsPrimitive__namespace = /*#__PURE__*/_interopNamespace(RechartsPrimitive);
|
|
81
89
|
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
82
90
|
var AlertDialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(AlertDialogPrimitive);
|
|
83
91
|
var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatioPrimitive);
|
|
@@ -88,13 +96,14 @@ var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(Navigati
|
|
|
88
96
|
var ScrollAreaPrimitive__namespace = /*#__PURE__*/_interopNamespace(ScrollAreaPrimitive);
|
|
89
97
|
var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
|
|
90
98
|
var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroupPrimitive);
|
|
99
|
+
var MenubarPrimitive__namespace = /*#__PURE__*/_interopNamespace(MenubarPrimitive);
|
|
100
|
+
var ResizablePrimitive__namespace = /*#__PURE__*/_interopNamespace(ResizablePrimitive);
|
|
91
101
|
|
|
92
102
|
// src/provider/blink-ui-provider.tsx
|
|
93
103
|
var BlinkUIContext = React66.createContext(null);
|
|
94
104
|
function useBlinkUI() {
|
|
95
105
|
const ctx = React66.useContext(BlinkUIContext);
|
|
96
|
-
if (!ctx)
|
|
97
|
-
throw new Error("useBlinkUI must be used within <BlinkUIProvider>");
|
|
106
|
+
if (!ctx) throw new Error("useBlinkUI must be used within <BlinkUIProvider>");
|
|
98
107
|
return ctx;
|
|
99
108
|
}
|
|
100
109
|
function BlinkUIProvider({
|
|
@@ -932,8 +941,7 @@ var SidebarItem = React66__namespace.default.forwardRef(
|
|
|
932
941
|
!collapsed && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 min-w-0 truncate", children: label }),
|
|
933
942
|
!collapsed && badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] px-1.5 py-0.5 rounded-full bg-[hsl(var(--primary))] bg-opacity-10 text-[hsl(var(--primary))] shrink-0 font-medium", children: badge })
|
|
934
943
|
] });
|
|
935
|
-
if (href)
|
|
936
|
-
return /* @__PURE__ */ jsxRuntime.jsx("a", { href, className: cls, onClick, children: inner });
|
|
944
|
+
if (href) return /* @__PURE__ */ jsxRuntime.jsx("a", { href, className: cls, onClick, children: inner });
|
|
937
945
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, role: "button", tabIndex: 0, className: cls, onClick, ...props, children: inner });
|
|
938
946
|
}
|
|
939
947
|
);
|
|
@@ -1170,10 +1178,8 @@ FieldError.displayName = "FieldError";
|
|
|
1170
1178
|
function getStrength(value) {
|
|
1171
1179
|
const has = (re) => re.test(value);
|
|
1172
1180
|
const score = [value.length >= 8, has(/[A-Z]/), has(/[0-9]/), has(/[^A-Za-z0-9]/)].filter(Boolean).length;
|
|
1173
|
-
if (score <= 1)
|
|
1174
|
-
|
|
1175
|
-
if (score <= 3)
|
|
1176
|
-
return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
|
|
1181
|
+
if (score <= 1) return { level: "weak", width: "w-1/3", color: "bg-[hsl(var(--destructive))]" };
|
|
1182
|
+
if (score <= 3) return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
|
|
1177
1183
|
return { level: "strong", width: "w-full", color: "bg-green-500" };
|
|
1178
1184
|
}
|
|
1179
1185
|
var PasswordInput = React66__namespace.default.forwardRef(
|
|
@@ -1217,13 +1223,11 @@ var SearchInput = React66__namespace.default.forwardRef(
|
|
|
1217
1223
|
const isControlled = valueProp !== void 0;
|
|
1218
1224
|
const value = isControlled ? String(valueProp) : String(internalValue);
|
|
1219
1225
|
function handleChange(e) {
|
|
1220
|
-
if (!isControlled)
|
|
1221
|
-
setInternalValue(e.target.value);
|
|
1226
|
+
if (!isControlled) setInternalValue(e.target.value);
|
|
1222
1227
|
onChange?.(e.target.value);
|
|
1223
1228
|
}
|
|
1224
1229
|
function handleClear() {
|
|
1225
|
-
if (!isControlled)
|
|
1226
|
-
setInternalValue("");
|
|
1230
|
+
if (!isControlled) setInternalValue("");
|
|
1227
1231
|
onChange?.("");
|
|
1228
1232
|
onClear?.();
|
|
1229
1233
|
}
|
|
@@ -1259,10 +1263,8 @@ var SearchInput = React66__namespace.default.forwardRef(
|
|
|
1259
1263
|
);
|
|
1260
1264
|
SearchInput.displayName = "SearchInput";
|
|
1261
1265
|
function formatBytes(bytes) {
|
|
1262
|
-
if (bytes < 1024)
|
|
1263
|
-
|
|
1264
|
-
if (bytes < 1024 * 1024)
|
|
1265
|
-
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
1266
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
1267
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
|
|
1266
1268
|
return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
1267
1269
|
}
|
|
1268
1270
|
function filterBySize(files, maxSize) {
|
|
@@ -1272,16 +1274,14 @@ function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled })
|
|
|
1272
1274
|
const inputRef = React66.useRef(null);
|
|
1273
1275
|
const [dragging, setDragging] = React66.useState(false);
|
|
1274
1276
|
function handleFiles(raw) {
|
|
1275
|
-
if (!raw)
|
|
1276
|
-
return;
|
|
1277
|
+
if (!raw) return;
|
|
1277
1278
|
const files = filterBySize(Array.from(raw), maxSize);
|
|
1278
1279
|
onFiles?.(files);
|
|
1279
1280
|
}
|
|
1280
1281
|
function handleDrop(e) {
|
|
1281
1282
|
e.preventDefault();
|
|
1282
1283
|
setDragging(false);
|
|
1283
|
-
if (!disabled)
|
|
1284
|
-
handleFiles(e.dataTransfer.files);
|
|
1284
|
+
if (!disabled) handleFiles(e.dataTransfer.files);
|
|
1285
1285
|
}
|
|
1286
1286
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1287
1287
|
"div",
|
|
@@ -1292,8 +1292,7 @@ function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled })
|
|
|
1292
1292
|
onKeyDown: (e) => e.key === "Enter" && !disabled && inputRef.current?.click(),
|
|
1293
1293
|
onDragOver: (e) => {
|
|
1294
1294
|
e.preventDefault();
|
|
1295
|
-
if (!disabled)
|
|
1296
|
-
setDragging(true);
|
|
1295
|
+
if (!disabled) setDragging(true);
|
|
1297
1296
|
},
|
|
1298
1297
|
onDragLeave: () => setDragging(false),
|
|
1299
1298
|
onDrop: handleDrop,
|
|
@@ -1329,8 +1328,7 @@ function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled })
|
|
|
1329
1328
|
);
|
|
1330
1329
|
}
|
|
1331
1330
|
function FileUploadPreview({ files, onRemove, className }) {
|
|
1332
|
-
if (!files.length)
|
|
1333
|
-
return null;
|
|
1331
|
+
if (!files.length) return null;
|
|
1334
1332
|
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("flex flex-col gap-1", className), children: files.map((file, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2 text-sm", children: [
|
|
1335
1333
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-[hsl(var(--foreground))]", children: file.name }),
|
|
1336
1334
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-2 flex shrink-0 items-center gap-2", children: [
|
|
@@ -1366,8 +1364,7 @@ function CalendarGrid({ year, month, selected, onSelect }) {
|
|
|
1366
1364
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-7 gap-0.5", children: [
|
|
1367
1365
|
DAYS.map((d) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-1 text-center text-xs font-medium text-[hsl(var(--muted-foreground))]", children: d }, d)),
|
|
1368
1366
|
cells.map((day, i) => {
|
|
1369
|
-
if (!day)
|
|
1370
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", {}, i);
|
|
1367
|
+
if (!day) return /* @__PURE__ */ jsxRuntime.jsx("div", {}, i);
|
|
1371
1368
|
const date = new Date(year, month, day);
|
|
1372
1369
|
const isToday = isSameDay(date, today);
|
|
1373
1370
|
const isSelected = selected && isSameDay(date, selected);
|
|
@@ -1465,15 +1462,13 @@ function FormMessage({ className, children, name }) {
|
|
|
1465
1462
|
const { formState } = reactHookForm.useFormContext();
|
|
1466
1463
|
const error = name ? formState.errors[name] : void 0;
|
|
1467
1464
|
const message = error?.message ? String(error.message) : children;
|
|
1468
|
-
if (!message)
|
|
1469
|
-
return null;
|
|
1465
|
+
if (!message) return null;
|
|
1470
1466
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs text-[hsl(var(--destructive))]", className), children: message });
|
|
1471
1467
|
}
|
|
1472
1468
|
var StepFormContext = React66.createContext(null);
|
|
1473
1469
|
function useStepForm() {
|
|
1474
1470
|
const ctx = React66.useContext(StepFormContext);
|
|
1475
|
-
if (!ctx)
|
|
1476
|
-
throw new Error("useStepForm must be used within StepForm");
|
|
1471
|
+
if (!ctx) throw new Error("useStepForm must be used within StepForm");
|
|
1477
1472
|
return ctx;
|
|
1478
1473
|
}
|
|
1479
1474
|
function StepForm({ steps, onSubmit, children, className }) {
|
|
@@ -1536,8 +1531,7 @@ function ArrayField({
|
|
|
1536
1531
|
className
|
|
1537
1532
|
}) {
|
|
1538
1533
|
function add() {
|
|
1539
|
-
if (maxItems && value.length >= maxItems)
|
|
1540
|
-
return;
|
|
1534
|
+
if (maxItems && value.length >= maxItems) return;
|
|
1541
1535
|
onChange([...value, defaultItem]);
|
|
1542
1536
|
}
|
|
1543
1537
|
function remove(index) {
|
|
@@ -1607,10 +1601,8 @@ function toLabel(key) {
|
|
|
1607
1601
|
return key.replace(/([A-Z])/g, " $1").replace(/^./, (s) => s.toUpperCase());
|
|
1608
1602
|
}
|
|
1609
1603
|
function getInputType(field) {
|
|
1610
|
-
if (field instanceof z__namespace.ZodEmail)
|
|
1611
|
-
|
|
1612
|
-
if (field instanceof z__namespace.ZodURL)
|
|
1613
|
-
return "url";
|
|
1604
|
+
if (field instanceof z__namespace.ZodEmail) return "email";
|
|
1605
|
+
if (field instanceof z__namespace.ZodURL) return "url";
|
|
1614
1606
|
return "text";
|
|
1615
1607
|
}
|
|
1616
1608
|
function unwrapOptional(field) {
|
|
@@ -1678,8 +1670,7 @@ function AutoForm({ schema, onSubmit, defaultValues, submitLabel = "Submit" }) {
|
|
|
1678
1670
|
] });
|
|
1679
1671
|
}
|
|
1680
1672
|
function DataTableColumnHeader({ column, title }) {
|
|
1681
|
-
if (!column.getCanSort())
|
|
1682
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { children: title });
|
|
1673
|
+
if (!column.getCanSort()) return /* @__PURE__ */ jsxRuntime.jsx("span", { children: title });
|
|
1683
1674
|
const sorted = column.getIsSorted();
|
|
1684
1675
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1685
1676
|
"button",
|
|
@@ -1719,8 +1710,7 @@ function DataTablePagination({ table }) {
|
|
|
1719
1710
|
] });
|
|
1720
1711
|
}
|
|
1721
1712
|
function DataTableToolbar({ table, searchColumn }) {
|
|
1722
|
-
if (!searchColumn)
|
|
1723
|
-
return null;
|
|
1713
|
+
if (!searchColumn) return null;
|
|
1724
1714
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1725
1715
|
Input,
|
|
1726
1716
|
{
|
|
@@ -1744,8 +1734,7 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
|
|
|
1744
1734
|
initialState: { pagination: { pageSize } },
|
|
1745
1735
|
state: { sorting }
|
|
1746
1736
|
});
|
|
1747
|
-
if (loading)
|
|
1748
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-10 w-full" }, i)) });
|
|
1737
|
+
if (loading) return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "h-10 w-full" }, i)) });
|
|
1749
1738
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full", children: [
|
|
1750
1739
|
searchable && /* @__PURE__ */ jsxRuntime.jsx(DataTableToolbar, { table, searchColumn }),
|
|
1751
1740
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border border-[hsl(var(--border))] overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full text-sm", children: [
|
|
@@ -1775,10 +1764,8 @@ function EditableCell({ value: initial, onSave }) {
|
|
|
1775
1764
|
onChange: (e) => setVal(e.target.value),
|
|
1776
1765
|
onBlur: commit,
|
|
1777
1766
|
onKeyDown: (e) => {
|
|
1778
|
-
if (e.key === "Enter")
|
|
1779
|
-
|
|
1780
|
-
if (e.key === "Escape")
|
|
1781
|
-
setEditing(false);
|
|
1767
|
+
if (e.key === "Enter") commit();
|
|
1768
|
+
if (e.key === "Escape") setEditing(false);
|
|
1782
1769
|
}
|
|
1783
1770
|
}
|
|
1784
1771
|
);
|
|
@@ -1797,8 +1784,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
1797
1784
|
const [rowSelection, setRowSelection] = React66__namespace.default.useState({});
|
|
1798
1785
|
const columnResizeMode = "onChange";
|
|
1799
1786
|
const editableColumns = React66__namespace.default.useMemo(() => {
|
|
1800
|
-
if (!editable)
|
|
1801
|
-
return columns;
|
|
1787
|
+
if (!editable) return columns;
|
|
1802
1788
|
return columns.map((col) => ({
|
|
1803
1789
|
...col,
|
|
1804
1790
|
cell: (info) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2107,8 +2093,7 @@ function Banner({
|
|
|
2107
2093
|
onDismiss?.();
|
|
2108
2094
|
}, 200);
|
|
2109
2095
|
};
|
|
2110
|
-
if (dismissed)
|
|
2111
|
-
return null;
|
|
2096
|
+
if (dismissed) return null;
|
|
2112
2097
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2113
2098
|
"div",
|
|
2114
2099
|
{
|
|
@@ -2238,8 +2223,7 @@ function Breadcrumb({ children, className }) {
|
|
|
2238
2223
|
const withSeparators = [];
|
|
2239
2224
|
items.forEach((item, i) => {
|
|
2240
2225
|
withSeparators.push(item);
|
|
2241
|
-
if (i < items.length - 1)
|
|
2242
|
-
withSeparators.push(/* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}, `sep-${i}`));
|
|
2226
|
+
if (i < items.length - 1) withSeparators.push(/* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, {}, `sep-${i}`));
|
|
2243
2227
|
});
|
|
2244
2228
|
return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "breadcrumb", children: /* @__PURE__ */ jsxRuntime.jsx("ol", { className: cn("flex flex-wrap items-center gap-1", className), children: withSeparators }) });
|
|
2245
2229
|
}
|
|
@@ -2262,8 +2246,7 @@ function AddFilterPopover({ filters, onAdd }) {
|
|
|
2262
2246
|
const def = filters.find((f) => f.key === key);
|
|
2263
2247
|
const ops = def?.type === "number" ? numOps : textOps;
|
|
2264
2248
|
const handleAdd = () => {
|
|
2265
|
-
if (!key || !val)
|
|
2266
|
-
return;
|
|
2249
|
+
if (!key || !val) return;
|
|
2267
2250
|
onAdd({ key, operator: op || ops[0], value: val });
|
|
2268
2251
|
setKey("");
|
|
2269
2252
|
setOp("");
|
|
@@ -2308,8 +2291,7 @@ function Filters({ filters, value, onChange, className }) {
|
|
|
2308
2291
|
] });
|
|
2309
2292
|
}
|
|
2310
2293
|
function BulkActions({ count, actions, onClear, className }) {
|
|
2311
|
-
if (count === 0)
|
|
2312
|
-
return null;
|
|
2294
|
+
if (count === 0) return null;
|
|
2313
2295
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("fixed bottom-6 left-1/2 -translate-x-1/2 z-50 flex items-center gap-2 rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--card))] px-4 py-2 shadow-lg", className), children: [
|
|
2314
2296
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-medium text-[hsl(var(--foreground))] pr-2 border-r border-[hsl(var(--border))]", children: [
|
|
2315
2297
|
count,
|
|
@@ -2362,8 +2344,7 @@ function ToggleButtonGroup(props) {
|
|
|
2362
2344
|
}
|
|
2363
2345
|
};
|
|
2364
2346
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children: React66__namespace.default.Children.map(children, (child) => {
|
|
2365
|
-
if (!React66__namespace.default.isValidElement(child))
|
|
2366
|
-
return child;
|
|
2347
|
+
if (!React66__namespace.default.isValidElement(child)) return child;
|
|
2367
2348
|
const tb = child;
|
|
2368
2349
|
return React66__namespace.default.cloneElement(tb, {
|
|
2369
2350
|
pressed: isPressed(tb.props.value),
|
|
@@ -2425,8 +2406,7 @@ function CommandBar({ open, onOpenChange, children, placeholder = "Search comman
|
|
|
2425
2406
|
return;
|
|
2426
2407
|
}
|
|
2427
2408
|
const focusable = items.current?.querySelectorAll("button");
|
|
2428
|
-
if (!focusable?.length)
|
|
2429
|
-
return;
|
|
2409
|
+
if (!focusable?.length) return;
|
|
2430
2410
|
const arr = Array.from(focusable);
|
|
2431
2411
|
const idx = arr.indexOf(document.activeElement);
|
|
2432
2412
|
if (e.key === "ArrowDown") {
|
|
@@ -2508,18 +2488,14 @@ function Kanban({ columns: initialColumns, onMoveCard, className }) {
|
|
|
2508
2488
|
const onDragEnd = ({ active, over }) => {
|
|
2509
2489
|
setActiveCard(null);
|
|
2510
2490
|
setOverColId(null);
|
|
2511
|
-
if (!over || active.id === over.id)
|
|
2512
|
-
return;
|
|
2491
|
+
if (!over || active.id === over.id) return;
|
|
2513
2492
|
const fromCol = findColByCard(active.id);
|
|
2514
2493
|
const toCol = cols.find((c) => c.id === over.id) ?? findColByCard(over.id);
|
|
2515
|
-
if (!fromCol || !toCol || fromCol.id === toCol.id)
|
|
2516
|
-
return;
|
|
2494
|
+
if (!fromCol || !toCol || fromCol.id === toCol.id) return;
|
|
2517
2495
|
const card = fromCol.cards.find((c) => c.id === active.id);
|
|
2518
2496
|
setCols((prev) => prev.map((c) => {
|
|
2519
|
-
if (c.id === fromCol.id)
|
|
2520
|
-
|
|
2521
|
-
if (c.id === toCol.id)
|
|
2522
|
-
return { ...c, cards: [...c.cards, card] };
|
|
2497
|
+
if (c.id === fromCol.id) return { ...c, cards: c.cards.filter((card2) => card2.id !== active.id) };
|
|
2498
|
+
if (c.id === toCol.id) return { ...c, cards: [...c.cards, card] };
|
|
2523
2499
|
return c;
|
|
2524
2500
|
}));
|
|
2525
2501
|
onMoveCard?.(active.id, fromCol.id, toCol.id);
|
|
@@ -2550,12 +2526,12 @@ function AreaChart({
|
|
|
2550
2526
|
}) {
|
|
2551
2527
|
const keys = Array.isArray(dataKey) ? dataKey : [dataKey];
|
|
2552
2528
|
const curve = curved ? "monotone" : "linear";
|
|
2553
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2554
|
-
showGrid && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2555
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2556
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2529
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxRuntime.jsxs(RechartsPrimitive.AreaChart, { data, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2530
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.CartesianGrid, { strokeDasharray: "3 3", stroke: "hsl(var(--border))" }),
|
|
2531
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.XAxis, { dataKey: xAxisKey, tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2532
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.YAxis, { tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2557
2533
|
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2558
|
-
|
|
2534
|
+
RechartsPrimitive.Tooltip,
|
|
2559
2535
|
{
|
|
2560
2536
|
contentStyle: {
|
|
2561
2537
|
background: "hsl(var(--card))",
|
|
@@ -2565,9 +2541,9 @@ function AreaChart({
|
|
|
2565
2541
|
}
|
|
2566
2542
|
}
|
|
2567
2543
|
),
|
|
2568
|
-
showLegend && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2544
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.Legend, { wrapperStyle: { fontSize: 12 } }),
|
|
2569
2545
|
keys.map((key, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2570
|
-
|
|
2546
|
+
RechartsPrimitive.Area,
|
|
2571
2547
|
{
|
|
2572
2548
|
type: curve,
|
|
2573
2549
|
dataKey: key,
|
|
@@ -2602,17 +2578,17 @@ function BarChart({
|
|
|
2602
2578
|
}) {
|
|
2603
2579
|
const keys = Array.isArray(dataKey) ? dataKey : [dataKey];
|
|
2604
2580
|
const isVertical = layout === "vertical";
|
|
2605
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2606
|
-
showGrid && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2581
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxRuntime.jsxs(RechartsPrimitive.BarChart, { data, layout, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2582
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.CartesianGrid, { strokeDasharray: "3 3", stroke: "hsl(var(--border))" }),
|
|
2607
2583
|
isVertical ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2608
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2609
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2584
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.XAxis, { type: "number", tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2585
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.YAxis, { type: "category", dataKey: xAxisKey, tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false })
|
|
2610
2586
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2611
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2612
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2587
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.XAxis, { dataKey: xAxisKey, tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2588
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.YAxis, { tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false })
|
|
2613
2589
|
] }),
|
|
2614
2590
|
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2615
|
-
|
|
2591
|
+
RechartsPrimitive.Tooltip,
|
|
2616
2592
|
{
|
|
2617
2593
|
contentStyle: {
|
|
2618
2594
|
background: "hsl(var(--card))",
|
|
@@ -2622,9 +2598,9 @@ function BarChart({
|
|
|
2622
2598
|
}
|
|
2623
2599
|
}
|
|
2624
2600
|
),
|
|
2625
|
-
showLegend && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2601
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.Legend, { wrapperStyle: { fontSize: 12 } }),
|
|
2626
2602
|
keys.map((key, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2627
|
-
|
|
2603
|
+
RechartsPrimitive.Bar,
|
|
2628
2604
|
{
|
|
2629
2605
|
dataKey: key,
|
|
2630
2606
|
fill: colors[i % colors.length],
|
|
@@ -2659,12 +2635,12 @@ function LineChart({
|
|
|
2659
2635
|
const keys = Array.isArray(dataKey) ? dataKey : [dataKey];
|
|
2660
2636
|
const curve = curved ? "monotone" : "linear";
|
|
2661
2637
|
const dash = dotted ? "4 4" : void 0;
|
|
2662
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2663
|
-
showGrid && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2664
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2665
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2638
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxRuntime.jsxs(RechartsPrimitive.LineChart, { data, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2639
|
+
showGrid && /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.CartesianGrid, { strokeDasharray: "3 3", stroke: "hsl(var(--border))" }),
|
|
2640
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.XAxis, { dataKey: xAxisKey, tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2641
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.YAxis, { tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2666
2642
|
showTooltip && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2667
|
-
|
|
2643
|
+
RechartsPrimitive.Tooltip,
|
|
2668
2644
|
{
|
|
2669
2645
|
contentStyle: {
|
|
2670
2646
|
background: "hsl(var(--card))",
|
|
@@ -2674,9 +2650,9 @@ function LineChart({
|
|
|
2674
2650
|
}
|
|
2675
2651
|
}
|
|
2676
2652
|
),
|
|
2677
|
-
showLegend && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2653
|
+
showLegend && /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive.Legend, { wrapperStyle: { fontSize: 12 } }),
|
|
2678
2654
|
keys.map((key, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2679
|
-
|
|
2655
|
+
RechartsPrimitive.Line,
|
|
2680
2656
|
{
|
|
2681
2657
|
type: curve,
|
|
2682
2658
|
dataKey: key,
|
|
@@ -2691,8 +2667,7 @@ function LineChart({
|
|
|
2691
2667
|
] }) }) });
|
|
2692
2668
|
}
|
|
2693
2669
|
function buildPath(data, w, h) {
|
|
2694
|
-
if (data.length < 2)
|
|
2695
|
-
return "";
|
|
2670
|
+
if (data.length < 2) return "";
|
|
2696
2671
|
const min = Math.min(...data);
|
|
2697
2672
|
const max = Math.max(...data);
|
|
2698
2673
|
const range = max - min || 1;
|
|
@@ -2713,8 +2688,7 @@ function Sparkline({
|
|
|
2713
2688
|
className
|
|
2714
2689
|
}) {
|
|
2715
2690
|
const path = buildPath(data, width, height);
|
|
2716
|
-
if (!path)
|
|
2717
|
-
return null;
|
|
2691
|
+
if (!path) return null;
|
|
2718
2692
|
const min = Math.min(...data);
|
|
2719
2693
|
const max = Math.max(...data);
|
|
2720
2694
|
const range = max - min || 1;
|
|
@@ -2766,8 +2740,7 @@ function Beacon({ color = "primary", size = "md", children, className }) {
|
|
|
2766
2740
|
var TourContext = React66.createContext(null);
|
|
2767
2741
|
function useTour() {
|
|
2768
2742
|
const ctx = React66.useContext(TourContext);
|
|
2769
|
-
if (!ctx)
|
|
2770
|
-
throw new Error("useTour must be used within <Tour>");
|
|
2743
|
+
if (!ctx) throw new Error("useTour must be used within <Tour>");
|
|
2771
2744
|
return ctx;
|
|
2772
2745
|
}
|
|
2773
2746
|
function Tour({ totalSteps, children }) {
|
|
@@ -2782,15 +2755,11 @@ function Tour({ totalSteps, children }) {
|
|
|
2782
2755
|
const prev = React66.useCallback(() => setCurrentStep((s) => Math.max(s - 1, 0)), []);
|
|
2783
2756
|
const goTo = React66.useCallback((step) => setCurrentStep(Math.max(0, Math.min(step, totalSteps - 1))), [totalSteps]);
|
|
2784
2757
|
React66.useEffect(() => {
|
|
2785
|
-
if (!isActive)
|
|
2786
|
-
return;
|
|
2758
|
+
if (!isActive) return;
|
|
2787
2759
|
const onKey = (e) => {
|
|
2788
|
-
if (e.key === "Escape")
|
|
2789
|
-
|
|
2790
|
-
if (e.key === "
|
|
2791
|
-
next();
|
|
2792
|
-
if (e.key === "ArrowLeft")
|
|
2793
|
-
prev();
|
|
2760
|
+
if (e.key === "Escape") stop();
|
|
2761
|
+
if (e.key === "ArrowRight") next();
|
|
2762
|
+
if (e.key === "ArrowLeft") prev();
|
|
2794
2763
|
};
|
|
2795
2764
|
window.addEventListener("keydown", onKey);
|
|
2796
2765
|
return () => window.removeEventListener("keydown", onKey);
|
|
@@ -3329,8 +3298,7 @@ function InviteModal({ className }) {
|
|
|
3329
3298
|
const [role, setRole] = React66.useState("Member");
|
|
3330
3299
|
const [pending, setPending] = React66.useState(PENDING);
|
|
3331
3300
|
const invite = () => {
|
|
3332
|
-
if (!email.trim())
|
|
3333
|
-
return;
|
|
3301
|
+
if (!email.trim()) return;
|
|
3334
3302
|
setPending((p) => [...p, { email: email.trim(), role }]);
|
|
3335
3303
|
setEmail("");
|
|
3336
3304
|
};
|
|
@@ -3379,8 +3347,7 @@ function ManageTagsModal({ className }) {
|
|
|
3379
3347
|
const [newTag, setNewTag] = React66.useState("");
|
|
3380
3348
|
const [colorIdx, setColorIdx] = React66.useState(0);
|
|
3381
3349
|
const addTag = () => {
|
|
3382
|
-
if (!newTag.trim())
|
|
3383
|
-
return;
|
|
3350
|
+
if (!newTag.trim()) return;
|
|
3384
3351
|
const id = `tag-${Date.now()}`;
|
|
3385
3352
|
setTags((t) => [...t, { id, name: newTag.trim(), color: COLORS[colorIdx % COLORS.length] }]);
|
|
3386
3353
|
setNewTag("");
|
|
@@ -3643,8 +3610,7 @@ function ChatDetail({ className }) {
|
|
|
3643
3610
|
const [messages, setMessages] = React66.useState(INITIAL_MESSAGES);
|
|
3644
3611
|
const [input, setInput] = React66.useState("");
|
|
3645
3612
|
const send = () => {
|
|
3646
|
-
if (!input.trim())
|
|
3647
|
-
return;
|
|
3613
|
+
if (!input.trim()) return;
|
|
3648
3614
|
const now = (/* @__PURE__ */ new Date()).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
3649
3615
|
setMessages((m) => [...m, { id: `${Date.now()}`, author: "You", initials: "JD", text: input.trim(), time: now, self: true }]);
|
|
3650
3616
|
setInput("");
|
|
@@ -4263,7 +4229,7 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
4263
4229
|
const { asChild, ...primitiveProps } = props;
|
|
4264
4230
|
const Comp = asChild ? Slot3 : node;
|
|
4265
4231
|
if (typeof window !== "undefined") {
|
|
4266
|
-
window[Symbol.for("radix-ui")] = true;
|
|
4232
|
+
window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
|
|
4267
4233
|
}
|
|
4268
4234
|
return /* @__PURE__ */ jsxRuntime.jsx(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
4269
4235
|
});
|
|
@@ -4279,11 +4245,9 @@ var Label4 = React66__namespace.forwardRef((props, forwardedRef) => {
|
|
|
4279
4245
|
ref: forwardedRef,
|
|
4280
4246
|
onMouseDown: (event) => {
|
|
4281
4247
|
const target = event.target;
|
|
4282
|
-
if (target.closest("button, input, select, textarea"))
|
|
4283
|
-
return;
|
|
4248
|
+
if (target.closest("button, input, select, textarea")) return;
|
|
4284
4249
|
props.onMouseDown?.(event);
|
|
4285
|
-
if (!event.defaultPrevented && event.detail > 1)
|
|
4286
|
-
event.preventDefault();
|
|
4250
|
+
if (!event.defaultPrevented && event.detail > 1) event.preventDefault();
|
|
4287
4251
|
}
|
|
4288
4252
|
}
|
|
4289
4253
|
);
|
|
@@ -4754,6 +4718,832 @@ var ToggleGroupItem = React66__namespace.forwardRef(({ className, children, vari
|
|
|
4754
4718
|
);
|
|
4755
4719
|
});
|
|
4756
4720
|
ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
|
|
4721
|
+
function Calendar3({
|
|
4722
|
+
className,
|
|
4723
|
+
classNames,
|
|
4724
|
+
showOutsideDays = true,
|
|
4725
|
+
captionLayout = "label",
|
|
4726
|
+
buttonVariant = "ghost",
|
|
4727
|
+
formatters,
|
|
4728
|
+
components,
|
|
4729
|
+
...props
|
|
4730
|
+
}) {
|
|
4731
|
+
const defaultClassNames = reactDayPicker.getDefaultClassNames();
|
|
4732
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4733
|
+
reactDayPicker.DayPicker,
|
|
4734
|
+
{
|
|
4735
|
+
showOutsideDays,
|
|
4736
|
+
className: cn(
|
|
4737
|
+
"bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
|
|
4738
|
+
String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
|
|
4739
|
+
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
|
|
4740
|
+
className
|
|
4741
|
+
),
|
|
4742
|
+
captionLayout,
|
|
4743
|
+
formatters: {
|
|
4744
|
+
formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
|
|
4745
|
+
...formatters
|
|
4746
|
+
},
|
|
4747
|
+
classNames: {
|
|
4748
|
+
root: cn("w-fit", defaultClassNames.root),
|
|
4749
|
+
months: cn(
|
|
4750
|
+
"relative flex flex-col gap-4 md:flex-row",
|
|
4751
|
+
defaultClassNames.months
|
|
4752
|
+
),
|
|
4753
|
+
month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
|
|
4754
|
+
nav: cn(
|
|
4755
|
+
"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
|
|
4756
|
+
defaultClassNames.nav
|
|
4757
|
+
),
|
|
4758
|
+
button_previous: cn(
|
|
4759
|
+
buttonVariants({ variant: buttonVariant }),
|
|
4760
|
+
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
|
|
4761
|
+
defaultClassNames.button_previous
|
|
4762
|
+
),
|
|
4763
|
+
button_next: cn(
|
|
4764
|
+
buttonVariants({ variant: buttonVariant }),
|
|
4765
|
+
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
|
|
4766
|
+
defaultClassNames.button_next
|
|
4767
|
+
),
|
|
4768
|
+
month_caption: cn(
|
|
4769
|
+
"flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",
|
|
4770
|
+
defaultClassNames.month_caption
|
|
4771
|
+
),
|
|
4772
|
+
dropdowns: cn(
|
|
4773
|
+
"flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",
|
|
4774
|
+
defaultClassNames.dropdowns
|
|
4775
|
+
),
|
|
4776
|
+
dropdown_root: cn(
|
|
4777
|
+
"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
|
|
4778
|
+
defaultClassNames.dropdown_root
|
|
4779
|
+
),
|
|
4780
|
+
dropdown: cn(
|
|
4781
|
+
"bg-popover absolute inset-0 opacity-0",
|
|
4782
|
+
defaultClassNames.dropdown
|
|
4783
|
+
),
|
|
4784
|
+
caption_label: cn(
|
|
4785
|
+
"select-none font-medium",
|
|
4786
|
+
captionLayout === "label" ? "text-sm" : "[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",
|
|
4787
|
+
defaultClassNames.caption_label
|
|
4788
|
+
),
|
|
4789
|
+
table: "w-full border-collapse",
|
|
4790
|
+
weekdays: cn("flex", defaultClassNames.weekdays),
|
|
4791
|
+
weekday: cn(
|
|
4792
|
+
"text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",
|
|
4793
|
+
defaultClassNames.weekday
|
|
4794
|
+
),
|
|
4795
|
+
week: cn("mt-2 flex w-full", defaultClassNames.week),
|
|
4796
|
+
week_number_header: cn(
|
|
4797
|
+
"w-[--cell-size] select-none",
|
|
4798
|
+
defaultClassNames.week_number_header
|
|
4799
|
+
),
|
|
4800
|
+
week_number: cn(
|
|
4801
|
+
"text-muted-foreground select-none text-[0.8rem]",
|
|
4802
|
+
defaultClassNames.week_number
|
|
4803
|
+
),
|
|
4804
|
+
day: cn(
|
|
4805
|
+
"group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",
|
|
4806
|
+
defaultClassNames.day
|
|
4807
|
+
),
|
|
4808
|
+
range_start: cn(
|
|
4809
|
+
"bg-accent rounded-l-md",
|
|
4810
|
+
defaultClassNames.range_start
|
|
4811
|
+
),
|
|
4812
|
+
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
4813
|
+
range_end: cn("bg-accent rounded-r-md", defaultClassNames.range_end),
|
|
4814
|
+
today: cn(
|
|
4815
|
+
"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
|
|
4816
|
+
defaultClassNames.today
|
|
4817
|
+
),
|
|
4818
|
+
outside: cn(
|
|
4819
|
+
"text-muted-foreground aria-selected:text-muted-foreground",
|
|
4820
|
+
defaultClassNames.outside
|
|
4821
|
+
),
|
|
4822
|
+
disabled: cn(
|
|
4823
|
+
"text-muted-foreground opacity-50",
|
|
4824
|
+
defaultClassNames.disabled
|
|
4825
|
+
),
|
|
4826
|
+
hidden: cn("invisible", defaultClassNames.hidden),
|
|
4827
|
+
...classNames
|
|
4828
|
+
},
|
|
4829
|
+
components: {
|
|
4830
|
+
Root: ({ className: className2, rootRef, ...props2 }) => {
|
|
4831
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4832
|
+
"div",
|
|
4833
|
+
{
|
|
4834
|
+
"data-slot": "calendar",
|
|
4835
|
+
ref: rootRef,
|
|
4836
|
+
className: cn(className2),
|
|
4837
|
+
...props2
|
|
4838
|
+
}
|
|
4839
|
+
);
|
|
4840
|
+
},
|
|
4841
|
+
Chevron: ({ className: className2, orientation, ...props2 }) => {
|
|
4842
|
+
if (orientation === "left") {
|
|
4843
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
|
|
4844
|
+
}
|
|
4845
|
+
if (orientation === "right") {
|
|
4846
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4847
|
+
lucideReact.ChevronRightIcon,
|
|
4848
|
+
{
|
|
4849
|
+
className: cn("size-4", className2),
|
|
4850
|
+
...props2
|
|
4851
|
+
}
|
|
4852
|
+
);
|
|
4853
|
+
}
|
|
4854
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
|
|
4855
|
+
},
|
|
4856
|
+
DayButton: CalendarDayButton,
|
|
4857
|
+
WeekNumber: ({ children, ...props2 }) => {
|
|
4858
|
+
return /* @__PURE__ */ jsxRuntime.jsx("td", { ...props2, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-[--cell-size] items-center justify-center text-center", children }) });
|
|
4859
|
+
},
|
|
4860
|
+
...components
|
|
4861
|
+
},
|
|
4862
|
+
...props
|
|
4863
|
+
}
|
|
4864
|
+
);
|
|
4865
|
+
}
|
|
4866
|
+
function CalendarDayButton({
|
|
4867
|
+
className,
|
|
4868
|
+
day,
|
|
4869
|
+
modifiers,
|
|
4870
|
+
...props
|
|
4871
|
+
}) {
|
|
4872
|
+
const defaultClassNames = reactDayPicker.getDefaultClassNames();
|
|
4873
|
+
const ref = React66__namespace.useRef(null);
|
|
4874
|
+
React66__namespace.useEffect(() => {
|
|
4875
|
+
if (modifiers.focused) ref.current?.focus();
|
|
4876
|
+
}, [modifiers.focused]);
|
|
4877
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4878
|
+
Button,
|
|
4879
|
+
{
|
|
4880
|
+
ref,
|
|
4881
|
+
variant: "ghost",
|
|
4882
|
+
size: "icon",
|
|
4883
|
+
"data-day": day.date.toLocaleDateString(),
|
|
4884
|
+
"data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
|
|
4885
|
+
"data-range-start": modifiers.range_start,
|
|
4886
|
+
"data-range-end": modifiers.range_end,
|
|
4887
|
+
"data-range-middle": modifiers.range_middle,
|
|
4888
|
+
className: cn(
|
|
4889
|
+
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
|
|
4890
|
+
defaultClassNames.day,
|
|
4891
|
+
className
|
|
4892
|
+
),
|
|
4893
|
+
...props
|
|
4894
|
+
}
|
|
4895
|
+
);
|
|
4896
|
+
}
|
|
4897
|
+
var THEMES = { light: "", dark: ".dark" };
|
|
4898
|
+
var ChartContext = React66__namespace.createContext(null);
|
|
4899
|
+
function useChart() {
|
|
4900
|
+
const context = React66__namespace.useContext(ChartContext);
|
|
4901
|
+
if (!context) {
|
|
4902
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
4903
|
+
}
|
|
4904
|
+
return context;
|
|
4905
|
+
}
|
|
4906
|
+
var ChartContainer = React66__namespace.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
4907
|
+
const uniqueId = React66__namespace.useId();
|
|
4908
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
4909
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4910
|
+
"div",
|
|
4911
|
+
{
|
|
4912
|
+
"data-chart": chartId,
|
|
4913
|
+
ref,
|
|
4914
|
+
className: cn(
|
|
4915
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
|
|
4916
|
+
className
|
|
4917
|
+
),
|
|
4918
|
+
...props,
|
|
4919
|
+
children: [
|
|
4920
|
+
/* @__PURE__ */ jsxRuntime.jsx(ChartStyle, { id: chartId, config }),
|
|
4921
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive__namespace.ResponsiveContainer, { children })
|
|
4922
|
+
]
|
|
4923
|
+
}
|
|
4924
|
+
) });
|
|
4925
|
+
});
|
|
4926
|
+
ChartContainer.displayName = "Chart";
|
|
4927
|
+
var ChartStyle = ({ id, config }) => {
|
|
4928
|
+
const colorConfig = Object.entries(config).filter(
|
|
4929
|
+
([, config2]) => config2.theme || config2.color
|
|
4930
|
+
);
|
|
4931
|
+
if (!colorConfig.length) {
|
|
4932
|
+
return null;
|
|
4933
|
+
}
|
|
4934
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4935
|
+
"style",
|
|
4936
|
+
{
|
|
4937
|
+
dangerouslySetInnerHTML: {
|
|
4938
|
+
__html: Object.entries(THEMES).map(
|
|
4939
|
+
([theme, prefix]) => `
|
|
4940
|
+
${prefix} [data-chart=${id}] {
|
|
4941
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
4942
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
4943
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
4944
|
+
}).join("\n")}
|
|
4945
|
+
}
|
|
4946
|
+
`
|
|
4947
|
+
).join("\n")
|
|
4948
|
+
}
|
|
4949
|
+
}
|
|
4950
|
+
);
|
|
4951
|
+
};
|
|
4952
|
+
var ChartTooltip = RechartsPrimitive__namespace.Tooltip;
|
|
4953
|
+
var ChartTooltipContent = React66__namespace.forwardRef(
|
|
4954
|
+
({
|
|
4955
|
+
active,
|
|
4956
|
+
payload,
|
|
4957
|
+
className,
|
|
4958
|
+
indicator = "dot",
|
|
4959
|
+
hideLabel = false,
|
|
4960
|
+
hideIndicator = false,
|
|
4961
|
+
label,
|
|
4962
|
+
labelFormatter,
|
|
4963
|
+
labelClassName,
|
|
4964
|
+
formatter,
|
|
4965
|
+
color,
|
|
4966
|
+
nameKey,
|
|
4967
|
+
labelKey
|
|
4968
|
+
}, ref) => {
|
|
4969
|
+
const { config } = useChart();
|
|
4970
|
+
const tooltipLabel = React66__namespace.useMemo(() => {
|
|
4971
|
+
if (hideLabel || !payload?.length) {
|
|
4972
|
+
return null;
|
|
4973
|
+
}
|
|
4974
|
+
const [item] = payload;
|
|
4975
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
4976
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
4977
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
4978
|
+
if (labelFormatter) {
|
|
4979
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
4980
|
+
}
|
|
4981
|
+
if (!value) {
|
|
4982
|
+
return null;
|
|
4983
|
+
}
|
|
4984
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
4985
|
+
}, [
|
|
4986
|
+
label,
|
|
4987
|
+
labelFormatter,
|
|
4988
|
+
payload,
|
|
4989
|
+
hideLabel,
|
|
4990
|
+
labelClassName,
|
|
4991
|
+
config,
|
|
4992
|
+
labelKey
|
|
4993
|
+
]);
|
|
4994
|
+
if (!active || !payload?.length) {
|
|
4995
|
+
return null;
|
|
4996
|
+
}
|
|
4997
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
4998
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4999
|
+
"div",
|
|
5000
|
+
{
|
|
5001
|
+
ref,
|
|
5002
|
+
className: cn(
|
|
5003
|
+
"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
5004
|
+
className
|
|
5005
|
+
),
|
|
5006
|
+
children: [
|
|
5007
|
+
!nestLabel ? tooltipLabel : null,
|
|
5008
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
5009
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
5010
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
5011
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
5012
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5013
|
+
"div",
|
|
5014
|
+
{
|
|
5015
|
+
className: cn(
|
|
5016
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
5017
|
+
indicator === "dot" && "items-center"
|
|
5018
|
+
),
|
|
5019
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5020
|
+
itemConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5021
|
+
"div",
|
|
5022
|
+
{
|
|
5023
|
+
className: cn(
|
|
5024
|
+
"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",
|
|
5025
|
+
{
|
|
5026
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
5027
|
+
"w-1": indicator === "line",
|
|
5028
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
5029
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
5030
|
+
}
|
|
5031
|
+
),
|
|
5032
|
+
style: {
|
|
5033
|
+
"--color-bg": indicatorColor,
|
|
5034
|
+
"--color-border": indicatorColor
|
|
5035
|
+
}
|
|
5036
|
+
}
|
|
5037
|
+
),
|
|
5038
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5039
|
+
"div",
|
|
5040
|
+
{
|
|
5041
|
+
className: cn(
|
|
5042
|
+
"flex flex-1 justify-between leading-none",
|
|
5043
|
+
nestLabel ? "items-end" : "items-center"
|
|
5044
|
+
),
|
|
5045
|
+
children: [
|
|
5046
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
|
|
5047
|
+
nestLabel ? tooltipLabel : null,
|
|
5048
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
5049
|
+
] }),
|
|
5050
|
+
item.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
5051
|
+
]
|
|
5052
|
+
}
|
|
5053
|
+
)
|
|
5054
|
+
] })
|
|
5055
|
+
},
|
|
5056
|
+
item.dataKey
|
|
5057
|
+
);
|
|
5058
|
+
}) })
|
|
5059
|
+
]
|
|
5060
|
+
}
|
|
5061
|
+
);
|
|
5062
|
+
}
|
|
5063
|
+
);
|
|
5064
|
+
ChartTooltipContent.displayName = "ChartTooltip";
|
|
5065
|
+
var ChartLegend = RechartsPrimitive__namespace.Legend;
|
|
5066
|
+
var ChartLegendContent = React66__namespace.forwardRef(
|
|
5067
|
+
({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
5068
|
+
const { config } = useChart();
|
|
5069
|
+
if (!payload?.length) {
|
|
5070
|
+
return null;
|
|
5071
|
+
}
|
|
5072
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5073
|
+
"div",
|
|
5074
|
+
{
|
|
5075
|
+
ref,
|
|
5076
|
+
className: cn(
|
|
5077
|
+
"flex items-center justify-center gap-4",
|
|
5078
|
+
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
5079
|
+
className
|
|
5080
|
+
),
|
|
5081
|
+
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
5082
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
5083
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
5084
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5085
|
+
"div",
|
|
5086
|
+
{
|
|
5087
|
+
className: cn(
|
|
5088
|
+
"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
|
|
5089
|
+
),
|
|
5090
|
+
children: [
|
|
5091
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5092
|
+
"div",
|
|
5093
|
+
{
|
|
5094
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
5095
|
+
style: {
|
|
5096
|
+
backgroundColor: item.color
|
|
5097
|
+
}
|
|
5098
|
+
}
|
|
5099
|
+
),
|
|
5100
|
+
itemConfig?.label
|
|
5101
|
+
]
|
|
5102
|
+
},
|
|
5103
|
+
item.value
|
|
5104
|
+
);
|
|
5105
|
+
})
|
|
5106
|
+
}
|
|
5107
|
+
);
|
|
5108
|
+
}
|
|
5109
|
+
);
|
|
5110
|
+
ChartLegendContent.displayName = "ChartLegend";
|
|
5111
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
5112
|
+
if (typeof payload !== "object" || payload === null) {
|
|
5113
|
+
return void 0;
|
|
5114
|
+
}
|
|
5115
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
5116
|
+
let configLabelKey = key;
|
|
5117
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
5118
|
+
configLabelKey = payload[key];
|
|
5119
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
5120
|
+
configLabelKey = payloadPayload[key];
|
|
5121
|
+
}
|
|
5122
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
5123
|
+
}
|
|
5124
|
+
var Command = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5125
|
+
cmdk.Command,
|
|
5126
|
+
{
|
|
5127
|
+
ref,
|
|
5128
|
+
className: cn(
|
|
5129
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
5130
|
+
className
|
|
5131
|
+
),
|
|
5132
|
+
...props
|
|
5133
|
+
}
|
|
5134
|
+
));
|
|
5135
|
+
Command.displayName = cmdk.Command.displayName;
|
|
5136
|
+
var CommandDialog = ({ children, ...props }) => {
|
|
5137
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
5138
|
+
};
|
|
5139
|
+
var CommandInput = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
5140
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
5141
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5142
|
+
cmdk.Command.Input,
|
|
5143
|
+
{
|
|
5144
|
+
ref,
|
|
5145
|
+
className: cn(
|
|
5146
|
+
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
5147
|
+
className
|
|
5148
|
+
),
|
|
5149
|
+
...props
|
|
5150
|
+
}
|
|
5151
|
+
)
|
|
5152
|
+
] }));
|
|
5153
|
+
CommandInput.displayName = cmdk.Command.Input.displayName;
|
|
5154
|
+
var CommandList = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5155
|
+
cmdk.Command.List,
|
|
5156
|
+
{
|
|
5157
|
+
ref,
|
|
5158
|
+
className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className),
|
|
5159
|
+
...props
|
|
5160
|
+
}
|
|
5161
|
+
));
|
|
5162
|
+
CommandList.displayName = cmdk.Command.List.displayName;
|
|
5163
|
+
var CommandEmpty = React66__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5164
|
+
cmdk.Command.Empty,
|
|
5165
|
+
{
|
|
5166
|
+
ref,
|
|
5167
|
+
className: "py-6 text-center text-sm",
|
|
5168
|
+
...props
|
|
5169
|
+
}
|
|
5170
|
+
));
|
|
5171
|
+
CommandEmpty.displayName = cmdk.Command.Empty.displayName;
|
|
5172
|
+
var CommandGroup = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5173
|
+
cmdk.Command.Group,
|
|
5174
|
+
{
|
|
5175
|
+
ref,
|
|
5176
|
+
className: cn(
|
|
5177
|
+
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
5178
|
+
className
|
|
5179
|
+
),
|
|
5180
|
+
...props
|
|
5181
|
+
}
|
|
5182
|
+
));
|
|
5183
|
+
CommandGroup.displayName = cmdk.Command.Group.displayName;
|
|
5184
|
+
var CommandSeparator = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5185
|
+
cmdk.Command.Separator,
|
|
5186
|
+
{
|
|
5187
|
+
ref,
|
|
5188
|
+
className: cn("-mx-1 h-px bg-border", className),
|
|
5189
|
+
...props
|
|
5190
|
+
}
|
|
5191
|
+
));
|
|
5192
|
+
CommandSeparator.displayName = cmdk.Command.Separator.displayName;
|
|
5193
|
+
var CommandItem2 = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5194
|
+
cmdk.Command.Item,
|
|
5195
|
+
{
|
|
5196
|
+
ref,
|
|
5197
|
+
className: cn(
|
|
5198
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
5199
|
+
className
|
|
5200
|
+
),
|
|
5201
|
+
...props
|
|
5202
|
+
}
|
|
5203
|
+
));
|
|
5204
|
+
CommandItem2.displayName = cmdk.Command.Item.displayName;
|
|
5205
|
+
var Drawer = ({
|
|
5206
|
+
shouldScaleBackground = true,
|
|
5207
|
+
...props
|
|
5208
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5209
|
+
vaul.Drawer.Root,
|
|
5210
|
+
{
|
|
5211
|
+
shouldScaleBackground,
|
|
5212
|
+
...props
|
|
5213
|
+
}
|
|
5214
|
+
);
|
|
5215
|
+
Drawer.displayName = "Drawer";
|
|
5216
|
+
var DrawerTrigger = vaul.Drawer.Trigger;
|
|
5217
|
+
var DrawerPortal = vaul.Drawer.Portal;
|
|
5218
|
+
var DrawerClose = vaul.Drawer.Close;
|
|
5219
|
+
var DrawerOverlay = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5220
|
+
vaul.Drawer.Overlay,
|
|
5221
|
+
{
|
|
5222
|
+
ref,
|
|
5223
|
+
className: cn("fixed inset-0 z-50 bg-black/80", className),
|
|
5224
|
+
...props
|
|
5225
|
+
}
|
|
5226
|
+
));
|
|
5227
|
+
DrawerOverlay.displayName = vaul.Drawer.Overlay.displayName;
|
|
5228
|
+
var DrawerContent = React66__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { children: [
|
|
5229
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
|
|
5230
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5231
|
+
vaul.Drawer.Content,
|
|
5232
|
+
{
|
|
5233
|
+
ref,
|
|
5234
|
+
className: cn(
|
|
5235
|
+
"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
|
|
5236
|
+
className
|
|
5237
|
+
),
|
|
5238
|
+
...props,
|
|
5239
|
+
children: [
|
|
5240
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
5241
|
+
children
|
|
5242
|
+
]
|
|
5243
|
+
}
|
|
5244
|
+
)
|
|
5245
|
+
] }));
|
|
5246
|
+
DrawerContent.displayName = "DrawerContent";
|
|
5247
|
+
var DrawerHeader = ({
|
|
5248
|
+
className,
|
|
5249
|
+
...props
|
|
5250
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5251
|
+
"div",
|
|
5252
|
+
{
|
|
5253
|
+
className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
|
|
5254
|
+
...props
|
|
5255
|
+
}
|
|
5256
|
+
);
|
|
5257
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
5258
|
+
var DrawerFooter = ({
|
|
5259
|
+
className,
|
|
5260
|
+
...props
|
|
5261
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5262
|
+
"div",
|
|
5263
|
+
{
|
|
5264
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
5265
|
+
...props
|
|
5266
|
+
}
|
|
5267
|
+
);
|
|
5268
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
5269
|
+
var DrawerTitle = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5270
|
+
vaul.Drawer.Title,
|
|
5271
|
+
{
|
|
5272
|
+
ref,
|
|
5273
|
+
className: cn(
|
|
5274
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
5275
|
+
className
|
|
5276
|
+
),
|
|
5277
|
+
...props
|
|
5278
|
+
}
|
|
5279
|
+
));
|
|
5280
|
+
DrawerTitle.displayName = vaul.Drawer.Title.displayName;
|
|
5281
|
+
var DrawerDescription = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5282
|
+
vaul.Drawer.Description,
|
|
5283
|
+
{
|
|
5284
|
+
ref,
|
|
5285
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
5286
|
+
...props
|
|
5287
|
+
}
|
|
5288
|
+
));
|
|
5289
|
+
DrawerDescription.displayName = vaul.Drawer.Description.displayName;
|
|
5290
|
+
var InputOTP = React66__namespace.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5291
|
+
inputOtp.OTPInput,
|
|
5292
|
+
{
|
|
5293
|
+
ref,
|
|
5294
|
+
containerClassName: cn(
|
|
5295
|
+
"flex items-center gap-2 has-[:disabled]:opacity-50",
|
|
5296
|
+
containerClassName
|
|
5297
|
+
),
|
|
5298
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
5299
|
+
...props
|
|
5300
|
+
}
|
|
5301
|
+
));
|
|
5302
|
+
InputOTP.displayName = "InputOTP";
|
|
5303
|
+
var InputOTPGroup = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center", className), ...props }));
|
|
5304
|
+
InputOTPGroup.displayName = "InputOTPGroup";
|
|
5305
|
+
var InputOTPSlot = React66__namespace.forwardRef(({ index, className, ...props }, ref) => {
|
|
5306
|
+
const inputOTPContext = React66__namespace.useContext(inputOtp.OTPInputContext);
|
|
5307
|
+
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
5308
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5309
|
+
"div",
|
|
5310
|
+
{
|
|
5311
|
+
ref,
|
|
5312
|
+
className: cn(
|
|
5313
|
+
"relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
|
|
5314
|
+
isActive && "z-10 ring-1 ring-ring",
|
|
5315
|
+
className
|
|
5316
|
+
),
|
|
5317
|
+
...props,
|
|
5318
|
+
children: [
|
|
5319
|
+
char,
|
|
5320
|
+
hasFakeCaret && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
|
|
5321
|
+
]
|
|
5322
|
+
}
|
|
5323
|
+
);
|
|
5324
|
+
});
|
|
5325
|
+
InputOTPSlot.displayName = "InputOTPSlot";
|
|
5326
|
+
var InputOTPSeparator = React66__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, {}) }));
|
|
5327
|
+
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
5328
|
+
function MenubarMenu({
|
|
5329
|
+
...props
|
|
5330
|
+
}) {
|
|
5331
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Menu, { ...props });
|
|
5332
|
+
}
|
|
5333
|
+
function MenubarGroup({
|
|
5334
|
+
...props
|
|
5335
|
+
}) {
|
|
5336
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Group, { ...props });
|
|
5337
|
+
}
|
|
5338
|
+
function MenubarPortal({
|
|
5339
|
+
...props
|
|
5340
|
+
}) {
|
|
5341
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { ...props });
|
|
5342
|
+
}
|
|
5343
|
+
function MenubarRadioGroup({
|
|
5344
|
+
...props
|
|
5345
|
+
}) {
|
|
5346
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.RadioGroup, { ...props });
|
|
5347
|
+
}
|
|
5348
|
+
function MenubarSub({
|
|
5349
|
+
...props
|
|
5350
|
+
}) {
|
|
5351
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
|
|
5352
|
+
}
|
|
5353
|
+
var Menubar = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5354
|
+
MenubarPrimitive__namespace.Root,
|
|
5355
|
+
{
|
|
5356
|
+
ref,
|
|
5357
|
+
className: cn(
|
|
5358
|
+
"flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm",
|
|
5359
|
+
className
|
|
5360
|
+
),
|
|
5361
|
+
...props
|
|
5362
|
+
}
|
|
5363
|
+
));
|
|
5364
|
+
Menubar.displayName = MenubarPrimitive__namespace.Root.displayName;
|
|
5365
|
+
var MenubarTrigger = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5366
|
+
MenubarPrimitive__namespace.Trigger,
|
|
5367
|
+
{
|
|
5368
|
+
ref,
|
|
5369
|
+
className: cn(
|
|
5370
|
+
"flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
5371
|
+
className
|
|
5372
|
+
),
|
|
5373
|
+
...props
|
|
5374
|
+
}
|
|
5375
|
+
));
|
|
5376
|
+
MenubarTrigger.displayName = MenubarPrimitive__namespace.Trigger.displayName;
|
|
5377
|
+
var MenubarSubTrigger = React66__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5378
|
+
MenubarPrimitive__namespace.SubTrigger,
|
|
5379
|
+
{
|
|
5380
|
+
ref,
|
|
5381
|
+
className: cn(
|
|
5382
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
5383
|
+
inset && "pl-8",
|
|
5384
|
+
className
|
|
5385
|
+
),
|
|
5386
|
+
...props,
|
|
5387
|
+
children: [
|
|
5388
|
+
children,
|
|
5389
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
5390
|
+
]
|
|
5391
|
+
}
|
|
5392
|
+
));
|
|
5393
|
+
MenubarSubTrigger.displayName = MenubarPrimitive__namespace.SubTrigger.displayName;
|
|
5394
|
+
var MenubarSubContent = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5395
|
+
MenubarPrimitive__namespace.SubContent,
|
|
5396
|
+
{
|
|
5397
|
+
ref,
|
|
5398
|
+
className: cn(
|
|
5399
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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 origin-[--radix-menubar-content-transform-origin]",
|
|
5400
|
+
className
|
|
5401
|
+
),
|
|
5402
|
+
...props
|
|
5403
|
+
}
|
|
5404
|
+
));
|
|
5405
|
+
MenubarSubContent.displayName = MenubarPrimitive__namespace.SubContent.displayName;
|
|
5406
|
+
var MenubarContent = React66__namespace.forwardRef(
|
|
5407
|
+
({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5408
|
+
MenubarPrimitive__namespace.Content,
|
|
5409
|
+
{
|
|
5410
|
+
ref,
|
|
5411
|
+
align,
|
|
5412
|
+
alignOffset,
|
|
5413
|
+
sideOffset,
|
|
5414
|
+
className: cn(
|
|
5415
|
+
"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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 origin-[--radix-menubar-content-transform-origin]",
|
|
5416
|
+
className
|
|
5417
|
+
),
|
|
5418
|
+
...props
|
|
5419
|
+
}
|
|
5420
|
+
) })
|
|
5421
|
+
);
|
|
5422
|
+
MenubarContent.displayName = MenubarPrimitive__namespace.Content.displayName;
|
|
5423
|
+
var MenubarItem = React66__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5424
|
+
MenubarPrimitive__namespace.Item,
|
|
5425
|
+
{
|
|
5426
|
+
ref,
|
|
5427
|
+
className: cn(
|
|
5428
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
5429
|
+
inset && "pl-8",
|
|
5430
|
+
className
|
|
5431
|
+
),
|
|
5432
|
+
...props
|
|
5433
|
+
}
|
|
5434
|
+
));
|
|
5435
|
+
MenubarItem.displayName = MenubarPrimitive__namespace.Item.displayName;
|
|
5436
|
+
var MenubarCheckboxItem = React66__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5437
|
+
MenubarPrimitive__namespace.CheckboxItem,
|
|
5438
|
+
{
|
|
5439
|
+
ref,
|
|
5440
|
+
className: cn(
|
|
5441
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
5442
|
+
className
|
|
5443
|
+
),
|
|
5444
|
+
checked,
|
|
5445
|
+
...props,
|
|
5446
|
+
children: [
|
|
5447
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
5448
|
+
children
|
|
5449
|
+
]
|
|
5450
|
+
}
|
|
5451
|
+
));
|
|
5452
|
+
MenubarCheckboxItem.displayName = MenubarPrimitive__namespace.CheckboxItem.displayName;
|
|
5453
|
+
var MenubarRadioItem = React66__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5454
|
+
MenubarPrimitive__namespace.RadioItem,
|
|
5455
|
+
{
|
|
5456
|
+
ref,
|
|
5457
|
+
className: cn(
|
|
5458
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
5459
|
+
className
|
|
5460
|
+
),
|
|
5461
|
+
...props,
|
|
5462
|
+
children: [
|
|
5463
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-4 w-4 fill-current" }) }) }),
|
|
5464
|
+
children
|
|
5465
|
+
]
|
|
5466
|
+
}
|
|
5467
|
+
));
|
|
5468
|
+
MenubarRadioItem.displayName = MenubarPrimitive__namespace.RadioItem.displayName;
|
|
5469
|
+
var MenubarLabel = React66__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5470
|
+
MenubarPrimitive__namespace.Label,
|
|
5471
|
+
{
|
|
5472
|
+
ref,
|
|
5473
|
+
className: cn(
|
|
5474
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
5475
|
+
inset && "pl-8",
|
|
5476
|
+
className
|
|
5477
|
+
),
|
|
5478
|
+
...props
|
|
5479
|
+
}
|
|
5480
|
+
));
|
|
5481
|
+
MenubarLabel.displayName = MenubarPrimitive__namespace.Label.displayName;
|
|
5482
|
+
var MenubarSeparator = React66__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5483
|
+
MenubarPrimitive__namespace.Separator,
|
|
5484
|
+
{
|
|
5485
|
+
ref,
|
|
5486
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
5487
|
+
...props
|
|
5488
|
+
}
|
|
5489
|
+
));
|
|
5490
|
+
MenubarSeparator.displayName = MenubarPrimitive__namespace.Separator.displayName;
|
|
5491
|
+
var MenubarShortcut = ({
|
|
5492
|
+
className,
|
|
5493
|
+
...props
|
|
5494
|
+
}) => {
|
|
5495
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5496
|
+
"span",
|
|
5497
|
+
{
|
|
5498
|
+
className: cn(
|
|
5499
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
5500
|
+
className
|
|
5501
|
+
),
|
|
5502
|
+
...props
|
|
5503
|
+
}
|
|
5504
|
+
);
|
|
5505
|
+
};
|
|
5506
|
+
MenubarShortcut.displayname = "MenubarShortcut";
|
|
5507
|
+
var ResizablePanelGroup = ({
|
|
5508
|
+
className,
|
|
5509
|
+
...props
|
|
5510
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5511
|
+
ResizablePrimitive__namespace.PanelGroup,
|
|
5512
|
+
{
|
|
5513
|
+
className: cn(
|
|
5514
|
+
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
|
|
5515
|
+
className
|
|
5516
|
+
),
|
|
5517
|
+
...props
|
|
5518
|
+
}
|
|
5519
|
+
);
|
|
5520
|
+
var ResizablePanel = ResizablePrimitive__namespace.Panel;
|
|
5521
|
+
var ResizableHandle = ({
|
|
5522
|
+
withHandle,
|
|
5523
|
+
className,
|
|
5524
|
+
...props
|
|
5525
|
+
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5526
|
+
ResizablePrimitive__namespace.PanelResizeHandle,
|
|
5527
|
+
{
|
|
5528
|
+
className: cn(
|
|
5529
|
+
"relative flex w-px items-center justify-center bg-border 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",
|
|
5530
|
+
className
|
|
5531
|
+
),
|
|
5532
|
+
...props,
|
|
5533
|
+
children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
5534
|
+
}
|
|
5535
|
+
);
|
|
5536
|
+
function Spinner({ className, ...props }) {
|
|
5537
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5538
|
+
lucideReact.Loader2Icon,
|
|
5539
|
+
{
|
|
5540
|
+
role: "status",
|
|
5541
|
+
"aria-label": "Loading",
|
|
5542
|
+
className: cn("size-4 animate-spin", className),
|
|
5543
|
+
...props
|
|
5544
|
+
}
|
|
5545
|
+
);
|
|
5546
|
+
}
|
|
4757
5547
|
|
|
4758
5548
|
Object.defineProperty(exports, "Form", {
|
|
4759
5549
|
enumerable: true,
|
|
@@ -4802,6 +5592,7 @@ exports.BreadcrumbPage = BreadcrumbPage;
|
|
|
4802
5592
|
exports.BreadcrumbSeparator = BreadcrumbSeparator;
|
|
4803
5593
|
exports.BulkActions = BulkActions;
|
|
4804
5594
|
exports.Button = Button;
|
|
5595
|
+
exports.Calendar = Calendar3;
|
|
4805
5596
|
exports.Card = Card;
|
|
4806
5597
|
exports.CardContent = CardContent;
|
|
4807
5598
|
exports.CardDescription = CardDescription;
|
|
@@ -4813,6 +5604,11 @@ exports.CarouselContent = CarouselContent;
|
|
|
4813
5604
|
exports.CarouselItem = CarouselItem;
|
|
4814
5605
|
exports.CarouselNext = CarouselNext;
|
|
4815
5606
|
exports.CarouselPrevious = CarouselPrevious;
|
|
5607
|
+
exports.ChartContainer = ChartContainer;
|
|
5608
|
+
exports.ChartLegend = ChartLegend;
|
|
5609
|
+
exports.ChartLegendContent = ChartLegendContent;
|
|
5610
|
+
exports.ChartTooltip = ChartTooltip;
|
|
5611
|
+
exports.ChartTooltipContent = ChartTooltipContent;
|
|
4816
5612
|
exports.ChatDetail = ChatDetail;
|
|
4817
5613
|
exports.Checkbox = Checkbox;
|
|
4818
5614
|
exports.Collapsible = Collapsible;
|
|
@@ -4822,7 +5618,14 @@ exports.CommandBar = CommandBar;
|
|
|
4822
5618
|
exports.CommandBarEmpty = CommandBarEmpty;
|
|
4823
5619
|
exports.CommandBarGroup = CommandBarGroup;
|
|
4824
5620
|
exports.CommandBarItem = CommandBarItem;
|
|
5621
|
+
exports.CommandDialog = CommandDialog;
|
|
5622
|
+
exports.CommandEmpty = CommandEmpty;
|
|
5623
|
+
exports.CommandGroup = CommandGroup;
|
|
5624
|
+
exports.CommandInput = CommandInput;
|
|
4825
5625
|
exports.CommandItem = CommandItem;
|
|
5626
|
+
exports.CommandList = CommandList;
|
|
5627
|
+
exports.CommandPrimitive = Command;
|
|
5628
|
+
exports.CommandSeparator = CommandSeparator;
|
|
4826
5629
|
exports.Container = Container;
|
|
4827
5630
|
exports.ContextMenu = ContextMenu;
|
|
4828
5631
|
exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
|
|
@@ -4855,6 +5658,16 @@ exports.DialogOverlay = DialogOverlay;
|
|
|
4855
5658
|
exports.DialogPortal = DialogPortal;
|
|
4856
5659
|
exports.DialogTitle = DialogTitle;
|
|
4857
5660
|
exports.DialogTrigger = DialogTrigger;
|
|
5661
|
+
exports.Drawer = Drawer;
|
|
5662
|
+
exports.DrawerClose = DrawerClose;
|
|
5663
|
+
exports.DrawerContent = DrawerContent;
|
|
5664
|
+
exports.DrawerDescription = DrawerDescription;
|
|
5665
|
+
exports.DrawerFooter = DrawerFooter;
|
|
5666
|
+
exports.DrawerHeader = DrawerHeader;
|
|
5667
|
+
exports.DrawerOverlay = DrawerOverlay;
|
|
5668
|
+
exports.DrawerPortal = DrawerPortal;
|
|
5669
|
+
exports.DrawerTitle = DrawerTitle;
|
|
5670
|
+
exports.DrawerTrigger = DrawerTrigger;
|
|
4858
5671
|
exports.DropdownMenu = DropdownMenu;
|
|
4859
5672
|
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
4860
5673
|
exports.DropdownMenuContent = DropdownMenuContent;
|
|
@@ -4897,6 +5710,10 @@ exports.HoverCardContent = HoverCardContent;
|
|
|
4897
5710
|
exports.HoverCardTrigger = HoverCardTrigger;
|
|
4898
5711
|
exports.IconBadge = IconBadge;
|
|
4899
5712
|
exports.Input = Input;
|
|
5713
|
+
exports.InputOTP = InputOTP;
|
|
5714
|
+
exports.InputOTPGroup = InputOTPGroup;
|
|
5715
|
+
exports.InputOTPSeparator = InputOTPSeparator;
|
|
5716
|
+
exports.InputOTPSlot = InputOTPSlot;
|
|
4900
5717
|
exports.IntegrationCard = IntegrationCard;
|
|
4901
5718
|
exports.InviteModal = InviteModal;
|
|
4902
5719
|
exports.Kanban = Kanban;
|
|
@@ -4906,6 +5723,22 @@ exports.Label = Label5;
|
|
|
4906
5723
|
exports.LineChart = LineChart;
|
|
4907
5724
|
exports.LoadingOverlay = LoadingOverlay;
|
|
4908
5725
|
exports.ManageTagsModal = ManageTagsModal;
|
|
5726
|
+
exports.Menubar = Menubar;
|
|
5727
|
+
exports.MenubarCheckboxItem = MenubarCheckboxItem;
|
|
5728
|
+
exports.MenubarContent = MenubarContent;
|
|
5729
|
+
exports.MenubarGroup = MenubarGroup;
|
|
5730
|
+
exports.MenubarItem = MenubarItem;
|
|
5731
|
+
exports.MenubarLabel = MenubarLabel;
|
|
5732
|
+
exports.MenubarMenu = MenubarMenu;
|
|
5733
|
+
exports.MenubarPortal = MenubarPortal;
|
|
5734
|
+
exports.MenubarRadioGroup = MenubarRadioGroup;
|
|
5735
|
+
exports.MenubarRadioItem = MenubarRadioItem;
|
|
5736
|
+
exports.MenubarSeparator = MenubarSeparator;
|
|
5737
|
+
exports.MenubarShortcut = MenubarShortcut;
|
|
5738
|
+
exports.MenubarSub = MenubarSub;
|
|
5739
|
+
exports.MenubarSubContent = MenubarSubContent;
|
|
5740
|
+
exports.MenubarSubTrigger = MenubarSubTrigger;
|
|
5741
|
+
exports.MenubarTrigger = MenubarTrigger;
|
|
4909
5742
|
exports.MessagesCard = MessagesCard;
|
|
4910
5743
|
exports.MetricCard = MetricCard;
|
|
4911
5744
|
exports.MetricCardWithButton = MetricCardWithButton;
|
|
@@ -4950,6 +5783,9 @@ exports.PropertyItem = PropertyItem;
|
|
|
4950
5783
|
exports.PropertyList = PropertyList;
|
|
4951
5784
|
exports.RadioGroup = RadioGroup;
|
|
4952
5785
|
exports.RadioGroupItem = RadioGroupItem;
|
|
5786
|
+
exports.ResizableHandle = ResizableHandle;
|
|
5787
|
+
exports.ResizablePanel = ResizablePanel;
|
|
5788
|
+
exports.ResizablePanelGroup = ResizablePanelGroup;
|
|
4953
5789
|
exports.ResizeBox = ResizeBox;
|
|
4954
5790
|
exports.ResizeHandle = ResizeHandle;
|
|
4955
5791
|
exports.RolesMenu = RolesMenu;
|
|
@@ -4995,6 +5831,7 @@ exports.Skeleton = Skeleton;
|
|
|
4995
5831
|
exports.Slider = Slider;
|
|
4996
5832
|
exports.SortableTaskList = SortableTaskList;
|
|
4997
5833
|
exports.Sparkline = Sparkline;
|
|
5834
|
+
exports.Spinner = Spinner;
|
|
4998
5835
|
exports.SplitPage = SplitPage;
|
|
4999
5836
|
exports.SplitPageDetail = SplitPageDetail;
|
|
5000
5837
|
exports.SplitPageList = SplitPageList;
|
|
@@ -5055,5 +5892,5 @@ exports.useBlinkUI = useBlinkUI;
|
|
|
5055
5892
|
exports.useCommandBar = useCommandBar;
|
|
5056
5893
|
exports.useFormField = useFormField;
|
|
5057
5894
|
exports.useTour = useTour;
|
|
5058
|
-
//# sourceMappingURL=
|
|
5895
|
+
//# sourceMappingURL=index.js.map
|
|
5059
5896
|
//# sourceMappingURL=index.js.map
|