@blinkdotnew/ui 0.1.0 → 0.1.2
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.js +65 -65
- package/dist/index.mjs +65 -65
- package/package.json +1 -1
- package/src/themes/base.css +12 -1
- package/src/themes/glass.css +70 -9
- package/src/themes/linear.css +57 -3
- package/src/themes/midnight.css +71 -15
- package/src/themes/minimal.css +85 -33
package/dist/index.mjs
CHANGED
|
@@ -70,16 +70,16 @@ function cn(...inputs) {
|
|
|
70
70
|
return twMerge(clsx(inputs));
|
|
71
71
|
}
|
|
72
72
|
var buttonVariants = cva(
|
|
73
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-
|
|
73
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium font-sans transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
74
74
|
{
|
|
75
75
|
variants: {
|
|
76
76
|
variant: {
|
|
77
|
-
default: "bg-
|
|
78
|
-
secondary: "bg-
|
|
79
|
-
outline: "border border-
|
|
80
|
-
ghost: "hover:bg-
|
|
81
|
-
destructive: "bg-
|
|
82
|
-
link: "text-
|
|
77
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
78
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
79
|
+
outline: "border border-border bg-transparent hover:bg-accent hover:text-accent-foreground",
|
|
80
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
81
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
82
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
83
83
|
},
|
|
84
84
|
size: {
|
|
85
85
|
sm: "h-8 px-3 text-xs",
|
|
@@ -104,9 +104,9 @@ var Input = React14.forwardRef(
|
|
|
104
104
|
{
|
|
105
105
|
type,
|
|
106
106
|
className: cn(
|
|
107
|
-
"flex h-9 w-full rounded-
|
|
108
|
-
"placeholder:text-
|
|
109
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
107
|
+
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm font-sans shadow-sm transition-colors",
|
|
108
|
+
"placeholder:text-muted-foreground",
|
|
109
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
110
110
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
111
111
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
112
112
|
className
|
|
@@ -122,7 +122,7 @@ var Textarea = React14.forwardRef(
|
|
|
122
122
|
"textarea",
|
|
123
123
|
{
|
|
124
124
|
className: cn(
|
|
125
|
-
"flex min-h-[80px] w-full rounded-
|
|
125
|
+
"flex min-h-[80px] w-full rounded-md border border-[hsl(var(--input))] bg-transparent px-3 py-2 text-sm shadow-sm",
|
|
126
126
|
"placeholder:text-[hsl(var(--muted-foreground))]",
|
|
127
127
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--ring))]",
|
|
128
128
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -143,7 +143,7 @@ var SelectTrigger = React14.forwardRef(({ className, children, ...props }, ref)
|
|
|
143
143
|
{
|
|
144
144
|
ref,
|
|
145
145
|
className: cn(
|
|
146
|
-
"flex h-9 w-full items-center justify-between rounded-
|
|
146
|
+
"flex h-9 w-full items-center justify-between rounded-md border border-[hsl(var(--input))] bg-transparent px-3 py-2 text-sm shadow-sm",
|
|
147
147
|
"placeholder:text-[hsl(var(--muted-foreground))]",
|
|
148
148
|
"focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]",
|
|
149
149
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -183,7 +183,7 @@ var SelectContent = React14.forwardRef(({ className, children, position = "poppe
|
|
|
183
183
|
{
|
|
184
184
|
ref,
|
|
185
185
|
className: cn(
|
|
186
|
-
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-
|
|
186
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] text-[hsl(var(--popover-foreground))] shadow-md",
|
|
187
187
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
188
188
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
189
189
|
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
|
|
@@ -339,7 +339,7 @@ var DialogContent = React14.forwardRef(({ className, children, ...props }, ref)
|
|
|
339
339
|
ref,
|
|
340
340
|
className: cn(
|
|
341
341
|
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4",
|
|
342
|
-
"bg-[hsl(var(--background))] p-6 shadow-lg duration-200 rounded-
|
|
342
|
+
"bg-[hsl(var(--background))] p-6 shadow-lg duration-200 rounded-md",
|
|
343
343
|
"border border-[hsl(var(--border))]",
|
|
344
344
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
|
|
345
345
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]",
|
|
@@ -438,7 +438,7 @@ var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffs
|
|
|
438
438
|
align,
|
|
439
439
|
sideOffset,
|
|
440
440
|
className: cn(
|
|
441
|
-
"z-50 w-72 rounded-
|
|
441
|
+
"z-50 w-72 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-4 text-[hsl(var(--popover-foreground))] shadow-md outline-none",
|
|
442
442
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
443
443
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
444
444
|
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
@@ -457,7 +457,7 @@ var TooltipContent = React14.forwardRef(({ className, sideOffset = 4, ...props }
|
|
|
457
457
|
ref,
|
|
458
458
|
sideOffset,
|
|
459
459
|
className: cn(
|
|
460
|
-
"z-50 overflow-hidden rounded-
|
|
460
|
+
"z-50 overflow-hidden rounded-md bg-[hsl(var(--primary))] px-3 py-1.5 text-xs text-[hsl(var(--primary-foreground))] shadow-md",
|
|
461
461
|
"animate-in fade-in-0 zoom-in-95",
|
|
462
462
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
463
463
|
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
@@ -474,7 +474,7 @@ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
|
474
474
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
475
475
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
476
476
|
var contentStyle = cn(
|
|
477
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-
|
|
477
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md",
|
|
478
478
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
479
479
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
|
|
480
480
|
);
|
|
@@ -516,7 +516,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
|
516
516
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
517
517
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
518
518
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
519
|
-
var contentStyle2 = "z-50 min-w-[8rem] overflow-hidden rounded-
|
|
519
|
+
var contentStyle2 = "z-50 min-w-[8rem] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-80";
|
|
520
520
|
var itemStyle2 = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
521
521
|
var ContextMenuContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, { ref, className: cn(contentStyle2, className), ...props }) }));
|
|
522
522
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
@@ -549,7 +549,7 @@ var Card = React14.forwardRef(
|
|
|
549
549
|
"div",
|
|
550
550
|
{
|
|
551
551
|
ref,
|
|
552
|
-
className: cn("rounded-
|
|
552
|
+
className: cn("rounded-lg border border-border bg-card text-card-foreground shadow-card", className),
|
|
553
553
|
...props
|
|
554
554
|
}
|
|
555
555
|
)
|
|
@@ -564,7 +564,7 @@ var CardTitle = React14.forwardRef(
|
|
|
564
564
|
);
|
|
565
565
|
CardTitle.displayName = "CardTitle";
|
|
566
566
|
var CardDescription = React14.forwardRef(
|
|
567
|
-
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-sm text-
|
|
567
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
568
568
|
);
|
|
569
569
|
CardDescription.displayName = "CardDescription";
|
|
570
570
|
var CardContent = React14.forwardRef(
|
|
@@ -631,7 +631,7 @@ function Skeleton({ className, ...props }) {
|
|
|
631
631
|
return /* @__PURE__ */ jsx(
|
|
632
632
|
"div",
|
|
633
633
|
{
|
|
634
|
-
className: cn("animate-pulse rounded-
|
|
634
|
+
className: cn("animate-pulse rounded-md bg-[hsl(var(--muted))]", className),
|
|
635
635
|
...props
|
|
636
636
|
}
|
|
637
637
|
);
|
|
@@ -1116,7 +1116,7 @@ var SearchInput = React14.forwardRef(
|
|
|
1116
1116
|
value,
|
|
1117
1117
|
onChange: handleChange,
|
|
1118
1118
|
className: cn(
|
|
1119
|
-
"flex h-9 w-full rounded-
|
|
1119
|
+
"flex h-9 w-full rounded-md border border-[hsl(var(--input))] bg-transparent pl-8 pr-8 text-sm shadow-sm transition-colors",
|
|
1120
1120
|
"placeholder:text-[hsl(var(--muted-foreground))]",
|
|
1121
1121
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--ring))]",
|
|
1122
1122
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -1178,7 +1178,7 @@ function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled })
|
|
|
1178
1178
|
onDragLeave: () => setDragging(false),
|
|
1179
1179
|
onDrop: handleDrop,
|
|
1180
1180
|
className: cn(
|
|
1181
|
-
"flex flex-col items-center justify-center gap-2 rounded-
|
|
1181
|
+
"flex flex-col items-center justify-center gap-2 rounded-md border-2 border-dashed border-[hsl(var(--border))] p-8 text-center transition-colors cursor-pointer",
|
|
1182
1182
|
dragging && "border-[hsl(var(--primary))] bg-[hsl(var(--accent))]",
|
|
1183
1183
|
disabled && "cursor-not-allowed opacity-50",
|
|
1184
1184
|
className
|
|
@@ -1211,7 +1211,7 @@ function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled })
|
|
|
1211
1211
|
function FileUploadPreview({ files, onRemove, className }) {
|
|
1212
1212
|
if (!files.length)
|
|
1213
1213
|
return null;
|
|
1214
|
-
return /* @__PURE__ */ jsx("ul", { className: cn("flex flex-col gap-1", className), children: files.map((file, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-center justify-between rounded-
|
|
1214
|
+
return /* @__PURE__ */ jsx("ul", { className: cn("flex flex-col gap-1", className), children: files.map((file, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-center justify-between rounded-md border border-[hsl(var(--border))] px-3 py-2 text-sm", children: [
|
|
1215
1215
|
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-[hsl(var(--foreground))]", children: file.name }),
|
|
1216
1216
|
/* @__PURE__ */ jsxs("div", { className: "ml-2 flex shrink-0 items-center gap-2", children: [
|
|
1217
1217
|
/* @__PURE__ */ jsx("span", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: formatBytes(file.size) }),
|
|
@@ -1257,7 +1257,7 @@ function CalendarGrid({ year, month, selected, onSelect }) {
|
|
|
1257
1257
|
type: "button",
|
|
1258
1258
|
onClick: () => onSelect(date),
|
|
1259
1259
|
className: cn(
|
|
1260
|
-
"flex h-8 w-8 items-center justify-center rounded-
|
|
1260
|
+
"flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors",
|
|
1261
1261
|
isSelected && "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]",
|
|
1262
1262
|
!isSelected && isToday && "border border-[hsl(var(--primary))] text-[hsl(var(--primary))]",
|
|
1263
1263
|
!isSelected && !isToday && "hover:bg-[hsl(var(--accent))]"
|
|
@@ -1459,7 +1459,7 @@ function ObjectField({
|
|
|
1459
1459
|
className
|
|
1460
1460
|
}) {
|
|
1461
1461
|
const [open, setOpen] = useState(defaultOpen);
|
|
1462
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-
|
|
1462
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: [
|
|
1463
1463
|
/* @__PURE__ */ jsxs(
|
|
1464
1464
|
"div",
|
|
1465
1465
|
{
|
|
@@ -1628,7 +1628,7 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
|
|
|
1628
1628
|
return /* @__PURE__ */ jsx("div", { className: "space-y-2", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-full" }, i)) });
|
|
1629
1629
|
return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
|
|
1630
1630
|
searchable && /* @__PURE__ */ jsx(DataTableToolbar, { table, searchColumn }),
|
|
1631
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-
|
|
1631
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-md border border-[hsl(var(--border))] overflow-hidden", children: /* @__PURE__ */ jsxs("table", { className: "w-full text-sm", children: [
|
|
1632
1632
|
/* @__PURE__ */ jsx("thead", { className: "bg-[hsl(var(--muted)/0.4)]", children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx("tr", { children: hg.headers.map((h) => /* @__PURE__ */ jsx("th", { className: "px-4 py-3 text-left font-medium text-[hsl(var(--muted-foreground))]", children: h.isPlaceholder ? null : flexRender(h.column.columnDef.header, h.getContext()) }, h.id)) }, hg.id)) }),
|
|
1633
1633
|
/* @__PURE__ */ jsxs("tbody", { children: [
|
|
1634
1634
|
table.getRowModel().rows.map((row, i) => /* @__PURE__ */ jsx("tr", { className: cn("border-t border-[hsl(var(--border))] hover:bg-[hsl(var(--muted)/0.3)] transition-colors", i % 2 === 0 ? "" : "bg-[hsl(var(--muted)/0.1)]"), children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx("td", { className: "px-4 py-3", children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)),
|
|
@@ -1706,7 +1706,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
1706
1706
|
state: { rowSelection },
|
|
1707
1707
|
enableColumnResizing: true
|
|
1708
1708
|
});
|
|
1709
|
-
return /* @__PURE__ */ jsx("div", { className: cn("overflow-auto rounded-
|
|
1709
|
+
return /* @__PURE__ */ jsx("div", { className: cn("overflow-auto rounded-md border border-[hsl(var(--border))]", className), children: /* @__PURE__ */ jsxs("table", { className: "w-full text-sm", style: { width: table.getCenterTotalSize() }, children: [
|
|
1710
1710
|
/* @__PURE__ */ jsx("thead", { className: "bg-[hsl(var(--muted)/0.4)]", children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx("tr", { children: hg.headers.map((h) => /* @__PURE__ */ jsxs("th", { style: { width: h.getSize() }, className: "relative px-3 py-2 text-left font-medium text-[hsl(var(--muted-foreground))] border-r border-[hsl(var(--border))] last:border-r-0", children: [
|
|
1711
1711
|
h.isPlaceholder ? null : flexRender(h.column.columnDef.header, h.getContext()),
|
|
1712
1712
|
h.column.getCanResize() && /* @__PURE__ */ jsx("div", { onMouseDown: h.getResizeHandler(), className: "absolute right-0 top-0 h-full w-1 cursor-col-resize hover:bg-[hsl(var(--primary)/0.4)]" })
|
|
@@ -1837,7 +1837,7 @@ function IconBadge({ icon, color = "default", size = "md", className }) {
|
|
|
1837
1837
|
function StructuredListSection({ title, children, className }) {
|
|
1838
1838
|
return /* @__PURE__ */ jsxs("div", { className: cn("", className), children: [
|
|
1839
1839
|
title && /* @__PURE__ */ jsx("p", { className: "px-4 pb-1 pt-4 text-xs font-semibold uppercase tracking-wider text-[hsl(var(--muted-foreground))]", children: title }),
|
|
1840
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-
|
|
1840
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-md border border-[hsl(var(--border))] overflow-hidden divide-y divide-[hsl(var(--border))]", children })
|
|
1841
1841
|
] });
|
|
1842
1842
|
}
|
|
1843
1843
|
function StructuredListItem({ left, title, description, right, onClick, className }) {
|
|
@@ -1867,7 +1867,7 @@ function CommandItem({ icon, label, description, shortcut, active, onClick, clas
|
|
|
1867
1867
|
{
|
|
1868
1868
|
onClick,
|
|
1869
1869
|
className: cn(
|
|
1870
|
-
"flex items-center gap-3 rounded-
|
|
1870
|
+
"flex items-center gap-3 rounded-md px-3 py-2 cursor-pointer transition-colors",
|
|
1871
1871
|
active ? "bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]" : "hover:bg-[hsl(var(--accent)/0.6)]",
|
|
1872
1872
|
className
|
|
1873
1873
|
),
|
|
@@ -2072,7 +2072,7 @@ function LoadingOverlay({ loading, text, fullPage, children, className }) {
|
|
|
2072
2072
|
}
|
|
2073
2073
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative", className), children: [
|
|
2074
2074
|
children,
|
|
2075
|
-
loading && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center rounded-
|
|
2075
|
+
loading && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center rounded-md bg-[hsl(var(--background)/0.8)] backdrop-blur-[2px]", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
2076
2076
|
/* @__PURE__ */ jsx(Loader2, { className: "h-6 w-6 animate-spin text-[hsl(var(--primary))]" }),
|
|
2077
2077
|
text && /* @__PURE__ */ jsx("p", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: text })
|
|
2078
2078
|
] }) })
|
|
@@ -2221,7 +2221,7 @@ function ToggleButton({ pressed, onClick, disabled, children, className }) {
|
|
|
2221
2221
|
disabled,
|
|
2222
2222
|
onClick,
|
|
2223
2223
|
className: cn(
|
|
2224
|
-
"inline-flex items-center justify-center gap-1.5 rounded-
|
|
2224
|
+
"inline-flex items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors border",
|
|
2225
2225
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
2226
2226
|
pressed ? "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] border-[hsl(var(--primary))]" : "bg-transparent text-[hsl(var(--foreground))] border-[hsl(var(--border))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]",
|
|
2227
2227
|
className
|
|
@@ -2241,7 +2241,7 @@ function ToggleButtonGroup(props) {
|
|
|
2241
2241
|
props.onChange(val);
|
|
2242
2242
|
}
|
|
2243
2243
|
};
|
|
2244
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-
|
|
2244
|
+
return /* @__PURE__ */ 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: React14.Children.map(children, (child) => {
|
|
2245
2245
|
if (!React14.isValidElement(child))
|
|
2246
2246
|
return child;
|
|
2247
2247
|
const tb = child;
|
|
@@ -2280,7 +2280,7 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
|
|
|
2280
2280
|
{
|
|
2281
2281
|
onClick: onSelect,
|
|
2282
2282
|
className: cn(
|
|
2283
|
-
"flex w-full items-center gap-2.5 rounded-
|
|
2283
|
+
"flex w-full items-center gap-2.5 rounded-md px-3 py-2 text-sm transition-colors",
|
|
2284
2284
|
active ? "bg-[hsl(var(--accent))] text-[hsl(var(--accent-foreground))]" : "hover:bg-[hsl(var(--accent)/0.6)]",
|
|
2285
2285
|
className
|
|
2286
2286
|
),
|
|
@@ -2347,7 +2347,7 @@ function KanbanCard({ card, isDragging }) {
|
|
|
2347
2347
|
style,
|
|
2348
2348
|
...attributes,
|
|
2349
2349
|
...listeners,
|
|
2350
|
-
className: cn("rounded-
|
|
2350
|
+
className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-3 cursor-grab active:cursor-grabbing select-none", isDragging && "shadow-lg opacity-80"),
|
|
2351
2351
|
children: [
|
|
2352
2352
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
|
|
2353
2353
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[hsl(var(--foreground))] leading-tight", children: card.title }),
|
|
@@ -2359,7 +2359,7 @@ function KanbanCard({ card, isDragging }) {
|
|
|
2359
2359
|
);
|
|
2360
2360
|
}
|
|
2361
2361
|
function KanbanColumn({ column, isOver }) {
|
|
2362
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex w-64 shrink-0 flex-col gap-2 rounded-
|
|
2362
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex w-64 shrink-0 flex-col gap-2 rounded-md bg-[hsl(var(--muted)/0.4)] p-3 transition-colors", isOver && "bg-[hsl(var(--muted)/0.7)]"), children: [
|
|
2363
2363
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
2364
2364
|
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-[hsl(var(--foreground))]", children: column.title }),
|
|
2365
2365
|
/* @__PURE__ */ jsx("span", { className: "text-xs text-[hsl(var(--muted-foreground))] bg-[hsl(var(--muted))] rounded-full px-2 py-0.5", children: column.cards.length })
|
|
@@ -2430,7 +2430,7 @@ function AreaChart({
|
|
|
2430
2430
|
}) {
|
|
2431
2431
|
const keys = Array.isArray(dataKey) ? dataKey : [dataKey];
|
|
2432
2432
|
const curve = curved ? "monotone" : "linear";
|
|
2433
|
-
return /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(AreaChart$1, { data, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2433
|
+
return /* @__PURE__ */ jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(AreaChart$1, { data, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2434
2434
|
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "hsl(var(--border))" }),
|
|
2435
2435
|
/* @__PURE__ */ jsx(XAxis, { dataKey: xAxisKey, tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2436
2436
|
/* @__PURE__ */ jsx(YAxis, { tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
@@ -2482,7 +2482,7 @@ function BarChart({
|
|
|
2482
2482
|
}) {
|
|
2483
2483
|
const keys = Array.isArray(dataKey) ? dataKey : [dataKey];
|
|
2484
2484
|
const isVertical = layout === "vertical";
|
|
2485
|
-
return /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(BarChart$1, { data, layout, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2485
|
+
return /* @__PURE__ */ jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(BarChart$1, { data, layout, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2486
2486
|
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "hsl(var(--border))" }),
|
|
2487
2487
|
isVertical ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2488
2488
|
/* @__PURE__ */ jsx(XAxis, { type: "number", tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
@@ -2539,7 +2539,7 @@ function LineChart({
|
|
|
2539
2539
|
const keys = Array.isArray(dataKey) ? dataKey : [dataKey];
|
|
2540
2540
|
const curve = curved ? "monotone" : "linear";
|
|
2541
2541
|
const dash = dotted ? "4 4" : void 0;
|
|
2542
|
-
return /* @__PURE__ */ jsx("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(LineChart$1, { data, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2542
|
+
return /* @__PURE__ */ jsx("div", { className: cn("w-full overflow-hidden", className), style: { minWidth: 0 }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height, children: /* @__PURE__ */ jsxs(LineChart$1, { data, margin: { top: 4, right: 4, left: -20, bottom: 0 }, children: [
|
|
2543
2543
|
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3", stroke: "hsl(var(--border))" }),
|
|
2544
2544
|
/* @__PURE__ */ jsx(XAxis, { dataKey: xAxisKey, tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
2545
2545
|
/* @__PURE__ */ jsx(YAxis, { tick: { fontSize: 12, fill: "hsl(var(--muted-foreground))" }, axisLine: false, tickLine: false }),
|
|
@@ -2695,8 +2695,8 @@ function TourStep({ step, title, description, placement = "bottom", children })
|
|
|
2695
2695
|
style: { boxShadow: "0 0 0 9999px rgba(0,0,0,0.5)" }
|
|
2696
2696
|
}
|
|
2697
2697
|
),
|
|
2698
|
-
/* @__PURE__ */ jsx("span", { className: cn("relative", active && "z-50 ring-2 ring-[hsl(var(--primary))] ring-offset-2 rounded-
|
|
2699
|
-
active && /* @__PURE__ */ jsxs("div", { className: cn("absolute z-50 w-64 rounded-
|
|
2698
|
+
/* @__PURE__ */ jsx("span", { className: cn("relative", active && "z-50 ring-2 ring-[hsl(var(--primary))] ring-offset-2 rounded-md"), children }),
|
|
2699
|
+
active && /* @__PURE__ */ jsxs("div", { className: cn("absolute z-50 w-64 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4 shadow-lg", placementClasses[placement]), children: [
|
|
2700
2700
|
/* @__PURE__ */ jsx("p", { className: "font-semibold text-sm mb-1", children: title }),
|
|
2701
2701
|
/* @__PURE__ */ jsx("p", { className: "text-xs text-[hsl(var(--muted-foreground))] mb-3", children: description }),
|
|
2702
2702
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
@@ -2734,7 +2734,7 @@ function SidebarLayoutMinimal({
|
|
|
2734
2734
|
children,
|
|
2735
2735
|
className
|
|
2736
2736
|
}) {
|
|
2737
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-
|
|
2737
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2738
2738
|
/* @__PURE__ */ jsxs("aside", { className: "flex w-60 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
2739
2739
|
/* @__PURE__ */ jsx("div", { className: "flex h-14 items-center px-4 font-semibold text-sm", children: brandName }),
|
|
2740
2740
|
/* @__PURE__ */ jsx(Separator4, {}),
|
|
@@ -2783,7 +2783,7 @@ function SidebarLayoutGroups({
|
|
|
2783
2783
|
children,
|
|
2784
2784
|
className
|
|
2785
2785
|
}) {
|
|
2786
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-
|
|
2786
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2787
2787
|
/* @__PURE__ */ jsxs("aside", { className: "flex w-60 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
2788
2788
|
/* @__PURE__ */ jsx("div", { className: "flex h-14 items-center px-4 font-semibold text-sm", children: brandName }),
|
|
2789
2789
|
/* @__PURE__ */ jsx(Separator4, {}),
|
|
@@ -2823,9 +2823,9 @@ function SidebarLayoutUser({
|
|
|
2823
2823
|
children,
|
|
2824
2824
|
className
|
|
2825
2825
|
}) {
|
|
2826
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-
|
|
2826
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2827
2827
|
/* @__PURE__ */ jsxs("aside", { className: "flex w-60 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
2828
|
-
/* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 rounded-
|
|
2828
|
+
/* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 rounded-md bg-[hsl(var(--accent))] p-3", children: [
|
|
2829
2829
|
/* @__PURE__ */ jsx(Avatar, { className: "h-9 w-9", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-xs", children: userName.slice(0, 2).toUpperCase() }) }),
|
|
2830
2830
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
2831
2831
|
/* @__PURE__ */ jsx("p", { className: "truncate text-sm font-semibold", children: userName }),
|
|
@@ -2868,7 +2868,7 @@ function SidebarLayoutSearch({
|
|
|
2868
2868
|
}) {
|
|
2869
2869
|
const [query, setQuery] = useState("");
|
|
2870
2870
|
const filtered = ALL_ITEMS.filter((i) => i.label.toLowerCase().includes(query.toLowerCase()));
|
|
2871
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-
|
|
2871
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2872
2872
|
/* @__PURE__ */ jsxs("aside", { className: "flex w-60 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
2873
2873
|
/* @__PURE__ */ jsx("div", { className: "flex h-14 items-center px-4 font-semibold text-sm", children: brandName }),
|
|
2874
2874
|
/* @__PURE__ */ jsx(Separator4, {}),
|
|
@@ -2916,7 +2916,7 @@ function NavItem5({ icon: Icon2, label, active }) {
|
|
|
2916
2916
|
] });
|
|
2917
2917
|
}
|
|
2918
2918
|
function SidebarLayoutDashboard({ className }) {
|
|
2919
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-
|
|
2919
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2920
2920
|
/* @__PURE__ */ jsxs("aside", { className: "flex w-56 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
2921
2921
|
/* @__PURE__ */ jsx("div", { className: "flex h-12 items-center px-4 font-semibold text-sm", children: "Acme Inc" }),
|
|
2922
2922
|
/* @__PURE__ */ jsx(Separator4, {}),
|
|
@@ -2944,7 +2944,7 @@ function SidebarLayoutDashboard({ className }) {
|
|
|
2944
2944
|
k.change
|
|
2945
2945
|
] })
|
|
2946
2946
|
] }) }, k.label)) }),
|
|
2947
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-
|
|
2947
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-md border border-[hsl(var(--border))]", children: /* @__PURE__ */ jsxs("table", { className: "w-full text-xs", children: [
|
|
2948
2948
|
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { className: "border-b border-[hsl(var(--border))]", children: ["Project", "Status", "Team", "Progress"].map((h) => /* @__PURE__ */ jsx("th", { className: "px-3 py-2 text-left font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
|
|
2949
2949
|
/* @__PURE__ */ jsx("tbody", { children: TABLE_ROWS.map((r) => /* @__PURE__ */ jsxs("tr", { className: "border-b border-[hsl(var(--border))] last:border-0", children: [
|
|
2950
2950
|
/* @__PURE__ */ jsx("td", { className: "px-3 py-2 font-medium", children: r.name }),
|
|
@@ -2966,7 +2966,7 @@ function StackedLayoutTabs({
|
|
|
2966
2966
|
}) {
|
|
2967
2967
|
const [activeTab, setActiveTab] = useState(0);
|
|
2968
2968
|
const [activeNav, setActiveNav] = useState(0);
|
|
2969
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] flex-col overflow-hidden rounded-
|
|
2969
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] flex-col overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
2970
2970
|
/* @__PURE__ */ jsxs("nav", { className: "flex h-14 items-center gap-6 border-b border-[hsl(var(--border))] bg-[hsl(var(--card))] px-4", children: [
|
|
2971
2971
|
/* @__PURE__ */ jsx("span", { className: "font-semibold text-sm shrink-0", children: brandName }),
|
|
2972
2972
|
/* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center gap-1", children: NAV_LINKS.map((link, i) => /* @__PURE__ */ jsx(
|
|
@@ -3014,7 +3014,7 @@ function StackedLayoutBranded({
|
|
|
3014
3014
|
children,
|
|
3015
3015
|
className
|
|
3016
3016
|
}) {
|
|
3017
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] flex-col overflow-hidden rounded-
|
|
3017
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[600px] flex-col overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
3018
3018
|
/* @__PURE__ */ jsxs("nav", { className: "flex h-14 items-center gap-6 bg-[hsl(var(--primary))] px-6", children: [
|
|
3019
3019
|
/* @__PURE__ */ jsx("span", { className: "font-bold text-sm text-[hsl(var(--primary-foreground))] shrink-0", children: brandName }),
|
|
3020
3020
|
/* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center gap-1", children: NAV_LINKS2.map((link) => /* @__PURE__ */ jsx("button", { className: "px-3 py-1.5 text-sm text-[hsl(var(--primary-foreground)/0.8)] hover:text-[hsl(var(--primary-foreground))] transition-colors rounded-md hover:bg-white/10", children: link }, link)) }),
|
|
@@ -3059,7 +3059,7 @@ function NotificationSettings({ className }) {
|
|
|
3059
3059
|
const [states, setStates] = useState(
|
|
3060
3060
|
Object.fromEntries(NOTIFICATIONS.map((n) => [n.id, n.default]))
|
|
3061
3061
|
);
|
|
3062
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-
|
|
3062
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-6", className), children: [
|
|
3063
3063
|
/* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
3064
3064
|
/* @__PURE__ */ jsx("h2", { className: "text-base font-semibold", children: "Email Notifications" }),
|
|
3065
3065
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-[hsl(var(--muted-foreground))] mt-0.5", children: "Choose what you want to be notified about." })
|
|
@@ -3090,7 +3090,7 @@ function WorkspaceMembers({ className }) {
|
|
|
3090
3090
|
const filtered = members.filter(
|
|
3091
3091
|
(m) => m.name.toLowerCase().includes(query.toLowerCase()) || m.email.toLowerCase().includes(query.toLowerCase())
|
|
3092
3092
|
);
|
|
3093
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-
|
|
3093
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))]", className), children: [
|
|
3094
3094
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between p-4 border-b border-[hsl(var(--border))]", children: [
|
|
3095
3095
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
3096
3096
|
/* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold", children: "Members" }),
|
|
@@ -3123,8 +3123,8 @@ function IntegrationCard({
|
|
|
3123
3123
|
className
|
|
3124
3124
|
}) {
|
|
3125
3125
|
const [isConnected, setIsConnected] = useState(connected);
|
|
3126
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-4 rounded-
|
|
3127
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-
|
|
3126
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-4 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4", className), children: [
|
|
3127
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", children: icon ?? /* @__PURE__ */ jsx("span", { className: "text-base font-bold", children: name[0] }) }),
|
|
3128
3128
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
3129
3129
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3130
3130
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-semibold", children: name }),
|
|
@@ -3177,7 +3177,7 @@ function FeedbackModal({ onSubmit, className }) {
|
|
|
3177
3177
|
{
|
|
3178
3178
|
onClick: () => setReaction(r),
|
|
3179
3179
|
className: cn(
|
|
3180
|
-
"flex h-10 w-10 items-center justify-center rounded-
|
|
3180
|
+
"flex h-10 w-10 items-center justify-center rounded-md border text-xl transition-colors",
|
|
3181
3181
|
reaction === r ? "border-[hsl(var(--primary))] bg-[hsl(var(--primary)/0.1)]" : "border-[hsl(var(--border))] hover:bg-[hsl(var(--accent))]"
|
|
3182
3182
|
),
|
|
3183
3183
|
children: r
|
|
@@ -3238,7 +3238,7 @@ function InviteModal({ className }) {
|
|
|
3238
3238
|
] }),
|
|
3239
3239
|
pending.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
3240
3240
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-[hsl(var(--muted-foreground))]", children: "Pending invites" }),
|
|
3241
|
-
/* @__PURE__ */ jsx("div", { className: "divide-y divide-[hsl(var(--border))] rounded-
|
|
3241
|
+
/* @__PURE__ */ jsx("div", { className: "divide-y divide-[hsl(var(--border))] rounded-md border border-[hsl(var(--border))]", children: pending.map((p, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [
|
|
3242
3242
|
/* @__PURE__ */ jsx(Avatar, { className: "h-6 w-6", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-[10px]", children: p.email[0].toUpperCase() }) }),
|
|
3243
3243
|
/* @__PURE__ */ jsx("span", { className: "flex-1 text-sm truncate", children: p.email }),
|
|
3244
3244
|
/* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-[10px] px-1.5 py-0.5 shrink-0", children: p.role }),
|
|
@@ -3292,7 +3292,7 @@ function ManageTagsModal({ className }) {
|
|
|
3292
3292
|
),
|
|
3293
3293
|
/* @__PURE__ */ jsx(Button, { size: "sm", className: "h-9", onClick: addTag, children: "Add" })
|
|
3294
3294
|
] }),
|
|
3295
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: tags.map((tag) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-
|
|
3295
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: tags.map((tag) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-md border border-[hsl(var(--border))] px-3 py-2", children: [
|
|
3296
3296
|
/* @__PURE__ */ jsx("span", { className: cn("h-3 w-3 rounded-full shrink-0", tag.color) }),
|
|
3297
3297
|
/* @__PURE__ */ jsx("span", { className: "flex-1 text-sm", children: tag.name }),
|
|
3298
3298
|
/* @__PURE__ */ jsx("button", { className: "text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))] transition-colors", children: /* @__PURE__ */ jsx(Pencil, { className: "h-3.5 w-3.5" }) }),
|
|
@@ -3362,7 +3362,7 @@ function UserMenu({
|
|
|
3362
3362
|
className
|
|
3363
3363
|
}) {
|
|
3364
3364
|
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
3365
|
-
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("button", { className: cn("flex items-center gap-2 rounded-
|
|
3365
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("button", { className: cn("flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-[hsl(var(--accent))] focus:outline-none", className), children: [
|
|
3366
3366
|
/* @__PURE__ */ jsx(Avatar, { className: "h-7 w-7", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-xs", children: initials }) }),
|
|
3367
3367
|
/* @__PURE__ */ jsx("span", { className: "font-medium max-w-[120px] truncate", children: name }),
|
|
3368
3368
|
/* @__PURE__ */ jsx(ChevronDown, { className: "h-3.5 w-3.5 text-[hsl(var(--muted-foreground))]" })
|
|
@@ -3406,7 +3406,7 @@ function OrgMenu({
|
|
|
3406
3406
|
}) {
|
|
3407
3407
|
const current = ORGS.find((o) => o.id === currentOrgId) ?? ORGS[0];
|
|
3408
3408
|
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
3409
|
-
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("button", { className: cn("flex items-center gap-2 rounded-
|
|
3409
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("button", { className: cn("flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-[hsl(var(--accent))] focus:outline-none", className), children: [
|
|
3410
3410
|
/* @__PURE__ */ jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded bg-[hsl(var(--primary))] text-[10px] font-bold text-[hsl(var(--primary-foreground))]", children: current.name[0] }),
|
|
3411
3411
|
/* @__PURE__ */ jsx("span", { className: "font-medium max-w-[120px] truncate", children: current.name }),
|
|
3412
3412
|
/* @__PURE__ */ jsx(ChevronDown, { className: "h-3.5 w-3.5 text-[hsl(var(--muted-foreground))]" })
|
|
@@ -3482,7 +3482,7 @@ function MetricCardWithIcon({ icon, iconColor = "bg-[hsl(var(--primary)/0.1)] te
|
|
|
3482
3482
|
props.change ?? "+12.5%"
|
|
3483
3483
|
] })
|
|
3484
3484
|
] }),
|
|
3485
|
-
/* @__PURE__ */ jsx("div", { className: cn("flex h-10 w-10 items-center justify-center rounded-
|
|
3485
|
+
/* @__PURE__ */ jsx("div", { className: cn("flex h-10 w-10 items-center justify-center rounded-md", iconColor), children: icon ?? /* @__PURE__ */ jsx(TrendingUp, { className: "h-5 w-5" }) })
|
|
3486
3486
|
] }) }) });
|
|
3487
3487
|
}
|
|
3488
3488
|
function MetricCardWithButton({ actionLabel = "View details", onAction, ...props }) {
|
|
@@ -3513,7 +3513,7 @@ function ChatBubble({ msg }) {
|
|
|
3513
3513
|
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-[hsl(var(--muted-foreground))]", children: msg.time })
|
|
3514
3514
|
] }),
|
|
3515
3515
|
/* @__PURE__ */ jsx("div", { className: cn(
|
|
3516
|
-
"rounded-
|
|
3516
|
+
"rounded-md px-3 py-2 text-sm",
|
|
3517
3517
|
msg.self ? "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]" : "bg-[hsl(var(--muted))]"
|
|
3518
3518
|
), children: msg.text })
|
|
3519
3519
|
] })
|
|
@@ -3529,7 +3529,7 @@ function ChatDetail({ className }) {
|
|
|
3529
3529
|
setMessages((m) => [...m, { id: `${Date.now()}`, author: "You", initials: "JD", text: input.trim(), time: now, self: true }]);
|
|
3530
3530
|
setInput("");
|
|
3531
3531
|
};
|
|
3532
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[480px] flex-col overflow-hidden rounded-
|
|
3532
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex h-[480px] flex-col overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))]", className), children: [
|
|
3533
3533
|
/* @__PURE__ */ jsxs("header", { className: "flex items-center gap-3 border-b border-[hsl(var(--border))] px-4 py-3", children: [
|
|
3534
3534
|
/* @__PURE__ */ jsx(Avatar, { className: "h-8 w-8", children: /* @__PURE__ */ jsx(AvatarFallback, { className: "text-xs", children: "AC" }) }),
|
|
3535
3535
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -3611,7 +3611,7 @@ var TYPE_COLOR = {
|
|
|
3611
3611
|
function FileCard({ file }) {
|
|
3612
3612
|
const Icon2 = TYPE_ICON[file.type] ?? File;
|
|
3613
3613
|
return /* @__PURE__ */ jsx(Card, { className: "cursor-pointer hover:shadow-md transition-shadow", children: /* @__PURE__ */ jsxs(CardContent, { className: "p-4", children: [
|
|
3614
|
-
/* @__PURE__ */ jsx("div", { className: cn("flex h-10 w-10 items-center justify-center rounded-
|
|
3614
|
+
/* @__PURE__ */ jsx("div", { className: cn("flex h-10 w-10 items-center justify-center rounded-md bg-[hsl(var(--muted))] mb-3", TYPE_COLOR[file.type]), children: /* @__PURE__ */ jsx(Icon2, { className: "h-5 w-5" }) }),
|
|
3615
3615
|
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium truncate", children: file.name }),
|
|
3616
3616
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mt-1", children: [
|
|
3617
3617
|
/* @__PURE__ */ jsx("span", { className: "text-xs text-[hsl(var(--muted-foreground))]", children: file.size }),
|
|
@@ -3663,7 +3663,7 @@ function FileRow({ file, onDelete }) {
|
|
|
3663
3663
|
}
|
|
3664
3664
|
function FilesList({ className }) {
|
|
3665
3665
|
const [files, setFiles] = React14.useState(FILES2);
|
|
3666
|
-
return /* @__PURE__ */ jsx("div", { className: cn("rounded-
|
|
3666
|
+
return /* @__PURE__ */ jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: /* @__PURE__ */ jsxs("table", { className: "w-full", children: [
|
|
3667
3667
|
/* @__PURE__ */ jsx("thead", { className: "bg-[hsl(var(--muted)/0.5)]", children: /* @__PURE__ */ jsx("tr", { children: ["Name", "Type", "Size", "Modified", ""].map((h) => /* @__PURE__ */ jsx("th", { className: "px-4 py-2.5 text-left text-xs font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
|
|
3668
3668
|
/* @__PURE__ */ jsx("tbody", { children: files.map((f) => /* @__PURE__ */ jsx(FileRow, { file: f, onDelete: () => setFiles((fs) => fs.filter((x) => x.id !== f.id)) }, f.id)) })
|
|
3669
3669
|
] }) });
|
|
@@ -3742,7 +3742,7 @@ function TaskRow({ task, onToggle }) {
|
|
|
3742
3742
|
function SortableTaskList({ className }) {
|
|
3743
3743
|
const [tasks, setTasks] = useState(TASKS);
|
|
3744
3744
|
const toggle = (id) => setTasks((ts) => ts.map((t) => t.id === id ? { ...t, done: !t.done } : t));
|
|
3745
|
-
return /* @__PURE__ */ jsx("div", { className: cn("rounded-
|
|
3745
|
+
return /* @__PURE__ */ jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4 space-y-4", className), children: SECTIONS.map((section) => {
|
|
3746
3746
|
const items = tasks.filter((t) => t.status === section);
|
|
3747
3747
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
3748
3748
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-1.5", children: [
|
package/package.json
CHANGED
package/src/themes/base.css
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/* Blink UI — shared base resets
|
|
1
|
+
/* Blink UI — shared base resets applied by every theme */
|
|
2
|
+
|
|
2
3
|
*,
|
|
3
4
|
*::before,
|
|
4
5
|
*::after {
|
|
@@ -9,6 +10,16 @@ body {
|
|
|
9
10
|
background-color: hsl(var(--background, 0 0% 100%));
|
|
10
11
|
color: hsl(var(--foreground, 0 0% 3.9%));
|
|
11
12
|
font-family: var(--font-sans, system-ui, sans-serif);
|
|
13
|
+
font-size: var(--font-size-base, 0.9375rem);
|
|
14
|
+
line-height: var(--line-height-normal, 1.5);
|
|
15
|
+
letter-spacing: var(--letter-spacing-body, 0em);
|
|
12
16
|
-webkit-font-smoothing: antialiased;
|
|
13
17
|
-moz-osx-font-smoothing: grayscale;
|
|
14
18
|
}
|
|
19
|
+
|
|
20
|
+
h1, h2, h3, h4, h5, h6 {
|
|
21
|
+
font-family: var(--font-heading, var(--font-sans));
|
|
22
|
+
letter-spacing: var(--letter-spacing-heading, -0.02em);
|
|
23
|
+
line-height: var(--line-height-heading, 1.2);
|
|
24
|
+
font-weight: var(--font-weight-heading, 600);
|
|
25
|
+
}
|