@mindtris/ui 0.1.9 → 0.1.11
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 +4 -2
- package/dist/index.mjs +302 -305
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
package/dist/index.mjs
CHANGED
|
@@ -2798,15 +2798,7 @@ function TooltipContent({
|
|
|
2798
2798
|
...props,
|
|
2799
2799
|
children: [
|
|
2800
2800
|
children,
|
|
2801
|
-
/* @__PURE__ */ jsx2(
|
|
2802
|
-
TooltipPrimitive.Arrow,
|
|
2803
|
-
{
|
|
2804
|
-
className: cn(
|
|
2805
|
-
"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]",
|
|
2806
|
-
arrowVariantClasses[variant]
|
|
2807
|
-
)
|
|
2808
|
-
}
|
|
2809
|
-
)
|
|
2801
|
+
/* @__PURE__ */ jsx2(TooltipPrimitive.Arrow, { className: cn("z-50", arrowVariantClasses[variant]) })
|
|
2810
2802
|
]
|
|
2811
2803
|
}
|
|
2812
2804
|
) });
|
|
@@ -4007,7 +3999,7 @@ var Input = React7.forwardRef(
|
|
|
4007
3999
|
// We only style the selector button here (token-driven).
|
|
4008
4000
|
type === "file" && "cursor-pointer file:mr-3 file:px-3 file:py-1.5 file:rounded-md file:border-0 file:bg-background file:text-muted-foreground file:text-xs file:font-medium",
|
|
4009
4001
|
"placeholder:text-muted-foreground",
|
|
4010
|
-
"hover:border-border/80 focus-visible:outline-none focus-visible:ring-0 focus-visible:border-
|
|
4002
|
+
"hover:border-border/80 focus-visible:outline-none focus-visible:ring-0 focus-visible:border-primary",
|
|
4011
4003
|
"disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed",
|
|
4012
4004
|
sizeClasses[size],
|
|
4013
4005
|
className
|
|
@@ -4854,36 +4846,38 @@ Switch.displayName = "Switch";
|
|
|
4854
4846
|
import * as React14 from "react";
|
|
4855
4847
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
4856
4848
|
import { Check, Minus } from "lucide-react";
|
|
4857
|
-
import { jsx as jsx22
|
|
4858
|
-
var
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
-
"
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
|
|
4849
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
4850
|
+
var CheckboxIndicatorContent = /* @__PURE__ */ __name(({ state }) => state === "indeterminate" ? /* @__PURE__ */ jsx22(Minus, { className: "h-3 w-3 shrink-0", strokeWidth: 2.5 }) : /* @__PURE__ */ jsx22(Check, { className: "h-3 w-3 shrink-0", strokeWidth: 2.5 }), "CheckboxIndicatorContent");
|
|
4851
|
+
var Checkbox = React14.forwardRef(({ className, checked, ...props }, ref) => {
|
|
4852
|
+
const state = checked === "indeterminate" ? "indeterminate" : checked === true ? "checked" : "unchecked";
|
|
4853
|
+
return /* @__PURE__ */ jsx22(
|
|
4854
|
+
CheckboxPrimitive.Root,
|
|
4855
|
+
{
|
|
4856
|
+
ref,
|
|
4857
|
+
"data-slot": "checkbox",
|
|
4858
|
+
checked,
|
|
4859
|
+
className: cn(
|
|
4860
|
+
"peer h-4 w-4 shrink-0 rounded border border-input bg-field outline-none",
|
|
4861
|
+
"hover:border-border/80",
|
|
4862
|
+
"focus-visible:ring-0 focus-visible:border-foreground/40",
|
|
4863
|
+
"data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
4864
|
+
"data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground",
|
|
4865
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
4866
|
+
"transition-colors",
|
|
4867
|
+
className
|
|
4868
|
+
),
|
|
4869
|
+
...props,
|
|
4870
|
+
children: /* @__PURE__ */ jsx22(
|
|
4871
|
+
CheckboxPrimitive.Indicator,
|
|
4872
|
+
{
|
|
4873
|
+
"data-slot": "checkbox-indicator",
|
|
4874
|
+
className: "flex items-center justify-center text-current",
|
|
4875
|
+
children: /* @__PURE__ */ jsx22(CheckboxIndicatorContent, { state })
|
|
4876
|
+
}
|
|
4877
|
+
)
|
|
4878
|
+
}
|
|
4879
|
+
);
|
|
4880
|
+
});
|
|
4887
4881
|
Checkbox.displayName = "Checkbox";
|
|
4888
4882
|
|
|
4889
4883
|
// components/ui/radio-group.tsx
|
|
@@ -4957,7 +4951,7 @@ RadioGroupItem.displayName = "RadioGroupItem";
|
|
|
4957
4951
|
// components/ui/chip.tsx
|
|
4958
4952
|
import * as React16 from "react";
|
|
4959
4953
|
import { X } from "lucide-react";
|
|
4960
|
-
import { jsx as jsx24, jsxs as
|
|
4954
|
+
import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
4961
4955
|
var chipSelectedVariants = createVariants({
|
|
4962
4956
|
base: "border transition-colors",
|
|
4963
4957
|
variants: {
|
|
@@ -5002,7 +4996,7 @@ function Chip({
|
|
|
5002
4996
|
const base = "inline-flex items-center gap-1.5 rounded-full font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 disabled:cursor-not-allowed";
|
|
5003
4997
|
const effectiveVariant = variant === "default" ? "primary" : variant;
|
|
5004
4998
|
const variantClass = isSelected ? chipSelectedVariants({ variant: effectiveVariant }) : chipUnselectedClass;
|
|
5005
|
-
return /* @__PURE__ */
|
|
4999
|
+
return /* @__PURE__ */ jsxs12(
|
|
5006
5000
|
"button",
|
|
5007
5001
|
{
|
|
5008
5002
|
type: "button",
|
|
@@ -5076,7 +5070,7 @@ Select.displayName = "Select";
|
|
|
5076
5070
|
// components/ui/native-select.tsx
|
|
5077
5071
|
import * as React18 from "react";
|
|
5078
5072
|
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
5079
|
-
import { jsx as jsx26, jsxs as
|
|
5073
|
+
import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
5080
5074
|
var sizeClasses3 = {
|
|
5081
5075
|
sm: "h-8 text-xs px-2.5",
|
|
5082
5076
|
default: "h-10 text-sm px-3",
|
|
@@ -5091,7 +5085,7 @@ var NativeSelect = React18.forwardRef(
|
|
|
5091
5085
|
children,
|
|
5092
5086
|
...props
|
|
5093
5087
|
}, ref) => {
|
|
5094
|
-
return /* @__PURE__ */
|
|
5088
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn("relative inline-flex", fullWidth && "w-full"), children: [
|
|
5095
5089
|
/* @__PURE__ */ jsx26(
|
|
5096
5090
|
"select",
|
|
5097
5091
|
{
|
|
@@ -5154,7 +5148,7 @@ var Label = React19.forwardRef(
|
|
|
5154
5148
|
Label.displayName = "Label";
|
|
5155
5149
|
|
|
5156
5150
|
// components/ui/field.tsx
|
|
5157
|
-
import { jsx as jsx28, jsxs as
|
|
5151
|
+
import { jsx as jsx28, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
5158
5152
|
function Field({
|
|
5159
5153
|
label,
|
|
5160
5154
|
htmlFor,
|
|
@@ -5170,7 +5164,7 @@ function Field({
|
|
|
5170
5164
|
}) {
|
|
5171
5165
|
const generatedId = React20.useId();
|
|
5172
5166
|
const fieldId = idProp ?? generatedId;
|
|
5173
|
-
return /* @__PURE__ */
|
|
5167
|
+
return /* @__PURE__ */ jsxs14(
|
|
5174
5168
|
"div",
|
|
5175
5169
|
{
|
|
5176
5170
|
"data-slot": "field",
|
|
@@ -5178,7 +5172,7 @@ function Field({
|
|
|
5178
5172
|
className: cn("grid gap-2", className),
|
|
5179
5173
|
...props,
|
|
5180
5174
|
children: [
|
|
5181
|
-
label ? /* @__PURE__ */
|
|
5175
|
+
label ? /* @__PURE__ */ jsxs14(Label, { htmlFor: htmlFor ?? fieldId, className: "text-sm font-medium text-foreground", children: [
|
|
5182
5176
|
label,
|
|
5183
5177
|
required2 ? /* @__PURE__ */ jsx28("span", { className: "ml-0.5 text-destructive", "aria-hidden": true, children: "*" }) : null
|
|
5184
5178
|
] }) : null,
|
|
@@ -5216,7 +5210,7 @@ function Field({
|
|
|
5216
5210
|
__name(Field, "Field");
|
|
5217
5211
|
|
|
5218
5212
|
// components/ui/empty.tsx
|
|
5219
|
-
import { jsx as jsx29, jsxs as
|
|
5213
|
+
import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
5220
5214
|
var sizeClasses4 = {
|
|
5221
5215
|
sm: "py-8 gap-3",
|
|
5222
5216
|
default: "py-12 gap-4",
|
|
@@ -5232,7 +5226,7 @@ function Empty({
|
|
|
5232
5226
|
children,
|
|
5233
5227
|
...props
|
|
5234
5228
|
}) {
|
|
5235
|
-
return /* @__PURE__ */
|
|
5229
|
+
return /* @__PURE__ */ jsxs15(
|
|
5236
5230
|
"div",
|
|
5237
5231
|
{
|
|
5238
5232
|
"data-slot": "empty",
|
|
@@ -5475,7 +5469,7 @@ Separator2.displayName = "Separator";
|
|
|
5475
5469
|
// components/ui/drawer.tsx
|
|
5476
5470
|
import { X as X2 } from "lucide-react";
|
|
5477
5471
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
5478
|
-
import { jsx as jsx32, jsxs as
|
|
5472
|
+
import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
5479
5473
|
function Drawer({ ...props }) {
|
|
5480
5474
|
return /* @__PURE__ */ jsx32(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
|
|
5481
5475
|
}
|
|
@@ -5515,9 +5509,9 @@ function DrawerContent({
|
|
|
5515
5509
|
showCloseButton = true,
|
|
5516
5510
|
...props
|
|
5517
5511
|
}) {
|
|
5518
|
-
return /* @__PURE__ */
|
|
5512
|
+
return /* @__PURE__ */ jsxs16(DrawerPortal, { children: [
|
|
5519
5513
|
/* @__PURE__ */ jsx32(DrawerOverlay, {}),
|
|
5520
|
-
/* @__PURE__ */
|
|
5514
|
+
/* @__PURE__ */ jsxs16(
|
|
5521
5515
|
DrawerPrimitive.Content,
|
|
5522
5516
|
{
|
|
5523
5517
|
"data-slot": "drawer-content",
|
|
@@ -5535,7 +5529,7 @@ function DrawerContent({
|
|
|
5535
5529
|
children: [
|
|
5536
5530
|
/* @__PURE__ */ jsx32("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
5537
5531
|
children,
|
|
5538
|
-
showCloseButton ? /* @__PURE__ */
|
|
5532
|
+
showCloseButton ? /* @__PURE__ */ jsxs16(
|
|
5539
5533
|
DrawerPrimitive.Close,
|
|
5540
5534
|
{
|
|
5541
5535
|
"data-slot": "drawer-close",
|
|
@@ -5613,7 +5607,7 @@ function DrawerDescription({ className, ...props }) {
|
|
|
5613
5607
|
__name(DrawerDescription, "DrawerDescription");
|
|
5614
5608
|
|
|
5615
5609
|
// components/ui/dialog.tsx
|
|
5616
|
-
import { jsx as jsx33, jsxs as
|
|
5610
|
+
import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
5617
5611
|
function Dialog({ ...props }) {
|
|
5618
5612
|
return /* @__PURE__ */ jsx33(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
5619
5613
|
}
|
|
@@ -5653,9 +5647,9 @@ function DialogContent({
|
|
|
5653
5647
|
showCloseButton = true,
|
|
5654
5648
|
...props
|
|
5655
5649
|
}) {
|
|
5656
|
-
return /* @__PURE__ */
|
|
5650
|
+
return /* @__PURE__ */ jsxs17(DialogPortal, { children: [
|
|
5657
5651
|
/* @__PURE__ */ jsx33(DialogOverlay, {}),
|
|
5658
|
-
/* @__PURE__ */
|
|
5652
|
+
/* @__PURE__ */ jsxs17(
|
|
5659
5653
|
DialogPrimitive.Content,
|
|
5660
5654
|
{
|
|
5661
5655
|
"data-slot": "dialog-content",
|
|
@@ -5666,7 +5660,7 @@ function DialogContent({
|
|
|
5666
5660
|
...props,
|
|
5667
5661
|
children: [
|
|
5668
5662
|
children,
|
|
5669
|
-
showCloseButton ? /* @__PURE__ */
|
|
5663
|
+
showCloseButton ? /* @__PURE__ */ jsxs17(
|
|
5670
5664
|
DialogPrimitive.Close,
|
|
5671
5665
|
{
|
|
5672
5666
|
"data-slot": "dialog-close",
|
|
@@ -5751,8 +5745,8 @@ function ResponsiveDialog({
|
|
|
5751
5745
|
const isDesktop = useMediaQuery(desktopQuery);
|
|
5752
5746
|
const resolvedMode = mode ?? (isDesktop ? "dialog" : "drawer");
|
|
5753
5747
|
if (resolvedMode === "dialog") {
|
|
5754
|
-
return /* @__PURE__ */ jsx33(Dialog, { open, onOpenChange, children: /* @__PURE__ */
|
|
5755
|
-
title || description ? /* @__PURE__ */
|
|
5748
|
+
return /* @__PURE__ */ jsx33(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs17(DialogContent, { className: cn("p-0 overflow-hidden", contentClassName), showCloseButton: !hideClose, children: [
|
|
5749
|
+
title || description ? /* @__PURE__ */ jsxs17(DialogHeader, { className: cn("px-6 pt-6 pb-4", headerClassName), children: [
|
|
5756
5750
|
title ? /* @__PURE__ */ jsx33(DialogTitle, { className: "text-base", children: title }) : null,
|
|
5757
5751
|
description ? /* @__PURE__ */ jsx33(DialogDescription, { children: description }) : null
|
|
5758
5752
|
] }) : null,
|
|
@@ -5762,9 +5756,9 @@ function ResponsiveDialog({
|
|
|
5762
5756
|
footer ? /* @__PURE__ */ jsx33(DialogFooter, { className: cn("px-6 pt-4 pb-6", footerClassName), children: footer }) : null
|
|
5763
5757
|
] }) });
|
|
5764
5758
|
}
|
|
5765
|
-
return /* @__PURE__ */ jsx33(Drawer, { open, onOpenChange, direction: drawerDirection, children: /* @__PURE__ */
|
|
5759
|
+
return /* @__PURE__ */ jsx33(Drawer, { open, onOpenChange, direction: drawerDirection, children: /* @__PURE__ */ jsxs17(DrawerContent, { className: cn("p-0", contentClassName), children: [
|
|
5766
5760
|
!hideClose ? /* @__PURE__ */ jsx33("div", { className: "absolute right-4 top-4 z-10", children: /* @__PURE__ */ jsx33(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx33(Button, { variant: "icon-ghost", size: "icon-sm", "aria-label": "Close", children: /* @__PURE__ */ jsx33(X3, { className: "h-4 w-4", "aria-hidden": true }) }) }) }) : null,
|
|
5767
|
-
title || description ? /* @__PURE__ */
|
|
5761
|
+
title || description ? /* @__PURE__ */ jsxs17(DrawerHeader, { className: cn("px-6 pt-6 pb-4", headerClassName), children: [
|
|
5768
5762
|
title ? /* @__PURE__ */ jsx33(DrawerTitle, { className: "text-base", children: title }) : null,
|
|
5769
5763
|
description ? /* @__PURE__ */ jsx33(DrawerDescription, { children: description }) : null
|
|
5770
5764
|
] }) : null,
|
|
@@ -5777,7 +5771,7 @@ function ResponsiveDialog({
|
|
|
5777
5771
|
__name(ResponsiveDialog, "ResponsiveDialog");
|
|
5778
5772
|
|
|
5779
5773
|
// components/ui/command.tsx
|
|
5780
|
-
import { jsx as jsx34, jsxs as
|
|
5774
|
+
import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5781
5775
|
var Command = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
5782
5776
|
CommandPrimitive,
|
|
5783
5777
|
{
|
|
@@ -5800,8 +5794,8 @@ function CommandDialog({
|
|
|
5800
5794
|
showCloseButton = true,
|
|
5801
5795
|
...props
|
|
5802
5796
|
}) {
|
|
5803
|
-
return /* @__PURE__ */
|
|
5804
|
-
/* @__PURE__ */
|
|
5797
|
+
return /* @__PURE__ */ jsxs18(Dialog, { ...props, children: [
|
|
5798
|
+
/* @__PURE__ */ jsxs18(DialogHeader, { className: "sr-only", children: [
|
|
5805
5799
|
/* @__PURE__ */ jsx34(DialogTitle, { children: title }),
|
|
5806
5800
|
/* @__PURE__ */ jsx34(DialogDescription, { children: description })
|
|
5807
5801
|
] }),
|
|
@@ -5823,7 +5817,7 @@ function CommandDialog({
|
|
|
5823
5817
|
] });
|
|
5824
5818
|
}
|
|
5825
5819
|
__name(CommandDialog, "CommandDialog");
|
|
5826
|
-
var CommandInput = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
5820
|
+
var CommandInput = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
5827
5821
|
"div",
|
|
5828
5822
|
{
|
|
5829
5823
|
"data-slot": "command-input-wrapper",
|
|
@@ -5922,7 +5916,7 @@ function CommandShortcut({ className, ...props }) {
|
|
|
5922
5916
|
__name(CommandShortcut, "CommandShortcut");
|
|
5923
5917
|
|
|
5924
5918
|
// components/ui/combobox.tsx
|
|
5925
|
-
import { jsx as jsx35, jsxs as
|
|
5919
|
+
import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5926
5920
|
function Combobox({
|
|
5927
5921
|
value,
|
|
5928
5922
|
onChange,
|
|
@@ -5948,8 +5942,8 @@ function Combobox({
|
|
|
5948
5942
|
},
|
|
5949
5943
|
[clearable, clearLabel, onChange]
|
|
5950
5944
|
);
|
|
5951
|
-
return /* @__PURE__ */
|
|
5952
|
-
/* @__PURE__ */ jsx35(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
5945
|
+
return /* @__PURE__ */ jsxs19(Popover, { open, onOpenChange: setOpen, children: [
|
|
5946
|
+
/* @__PURE__ */ jsx35(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs19(
|
|
5953
5947
|
Button,
|
|
5954
5948
|
{
|
|
5955
5949
|
variant: "outline",
|
|
@@ -5975,16 +5969,16 @@ function Combobox({
|
|
|
5975
5969
|
{
|
|
5976
5970
|
className: cn("w-[--radix-popover-trigger-width] p-0", contentClassName),
|
|
5977
5971
|
align: "start",
|
|
5978
|
-
children: /* @__PURE__ */
|
|
5972
|
+
children: /* @__PURE__ */ jsxs19(Command, { children: [
|
|
5979
5973
|
/* @__PURE__ */ jsx35(CommandInput, { placeholder: searchPlaceholder }),
|
|
5980
|
-
/* @__PURE__ */
|
|
5974
|
+
/* @__PURE__ */ jsxs19(CommandList, { children: [
|
|
5981
5975
|
/* @__PURE__ */ jsx35(CommandEmpty, { children: emptyMessage }),
|
|
5982
|
-
/* @__PURE__ */
|
|
5983
|
-
clearable && value ? /* @__PURE__ */
|
|
5976
|
+
/* @__PURE__ */ jsxs19(CommandGroup, { children: [
|
|
5977
|
+
clearable && value ? /* @__PURE__ */ jsxs19(CommandItem, { value: "__clear__", onSelect: () => handleSelect("__clear__"), children: [
|
|
5984
5978
|
/* @__PURE__ */ jsx35("span", { className: "mr-2 h-4 w-4 shrink-0", "aria-hidden": true }),
|
|
5985
5979
|
clearLabel
|
|
5986
5980
|
] }) : null,
|
|
5987
|
-
options.map((opt) => /* @__PURE__ */
|
|
5981
|
+
options.map((opt) => /* @__PURE__ */ jsxs19(
|
|
5988
5982
|
CommandItem,
|
|
5989
5983
|
{
|
|
5990
5984
|
value: opt.label,
|
|
@@ -6017,7 +6011,7 @@ __name(Combobox, "Combobox");
|
|
|
6017
6011
|
// components/ui/menubar.tsx
|
|
6018
6012
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
6019
6013
|
import { Check as Check3, ChevronRight as ChevronRight5 } from "lucide-react";
|
|
6020
|
-
import { jsx as jsx36, jsxs as
|
|
6014
|
+
import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
6021
6015
|
var Menubar = MenubarPrimitive.Root;
|
|
6022
6016
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
6023
6017
|
var MenubarTrigger = MenubarPrimitive.Trigger;
|
|
@@ -6086,7 +6080,7 @@ function MenubarCheckboxItem({
|
|
|
6086
6080
|
checked,
|
|
6087
6081
|
...props
|
|
6088
6082
|
}) {
|
|
6089
|
-
return /* @__PURE__ */
|
|
6083
|
+
return /* @__PURE__ */ jsxs20(
|
|
6090
6084
|
MenubarPrimitive.CheckboxItem,
|
|
6091
6085
|
{
|
|
6092
6086
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -6111,7 +6105,7 @@ function MenubarRadioItem({
|
|
|
6111
6105
|
children,
|
|
6112
6106
|
...props
|
|
6113
6107
|
}) {
|
|
6114
|
-
return /* @__PURE__ */
|
|
6108
|
+
return /* @__PURE__ */ jsxs20(
|
|
6115
6109
|
MenubarPrimitive.RadioItem,
|
|
6116
6110
|
{
|
|
6117
6111
|
"data-slot": "menubar-radio-item",
|
|
@@ -6190,7 +6184,7 @@ function MenubarSubTrigger({
|
|
|
6190
6184
|
children,
|
|
6191
6185
|
...props
|
|
6192
6186
|
}) {
|
|
6193
|
-
return /* @__PURE__ */
|
|
6187
|
+
return /* @__PURE__ */ jsxs20(
|
|
6194
6188
|
MenubarPrimitive.SubTrigger,
|
|
6195
6189
|
{
|
|
6196
6190
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -6238,7 +6232,7 @@ __name(MenubarSubContent, "MenubarSubContent");
|
|
|
6238
6232
|
// components/ui/context-menu.tsx
|
|
6239
6233
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
6240
6234
|
import { Check as Check4, ChevronRight as ChevronRight6 } from "lucide-react";
|
|
6241
|
-
import { jsx as jsx37, jsxs as
|
|
6235
|
+
import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
6242
6236
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
6243
6237
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
6244
6238
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -6300,7 +6294,7 @@ function ContextMenuCheckboxItem({
|
|
|
6300
6294
|
checked,
|
|
6301
6295
|
...props
|
|
6302
6296
|
}) {
|
|
6303
|
-
return /* @__PURE__ */
|
|
6297
|
+
return /* @__PURE__ */ jsxs21(
|
|
6304
6298
|
ContextMenuPrimitive.CheckboxItem,
|
|
6305
6299
|
{
|
|
6306
6300
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -6325,7 +6319,7 @@ function ContextMenuRadioItem({
|
|
|
6325
6319
|
children,
|
|
6326
6320
|
...props
|
|
6327
6321
|
}) {
|
|
6328
|
-
return /* @__PURE__ */
|
|
6322
|
+
return /* @__PURE__ */ jsxs21(
|
|
6329
6323
|
ContextMenuPrimitive.RadioItem,
|
|
6330
6324
|
{
|
|
6331
6325
|
"data-slot": "context-menu-radio-item",
|
|
@@ -6404,7 +6398,7 @@ function ContextMenuSubTrigger({
|
|
|
6404
6398
|
children,
|
|
6405
6399
|
...props
|
|
6406
6400
|
}) {
|
|
6407
|
-
return /* @__PURE__ */
|
|
6401
|
+
return /* @__PURE__ */ jsxs21(
|
|
6408
6402
|
ContextMenuPrimitive.SubTrigger,
|
|
6409
6403
|
{
|
|
6410
6404
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -6455,7 +6449,7 @@ import Image3 from "next/image";
|
|
|
6455
6449
|
import { Check as Check5, CircleCheck, ChevronDown as ChevronDown4, X as X4 } from "lucide-react";
|
|
6456
6450
|
import { Menu as Menu2, MenuButton, MenuItem, MenuItems, Transition } from "@headlessui/react";
|
|
6457
6451
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
6458
|
-
import { Fragment as Fragment3, jsx as jsx38, jsxs as
|
|
6452
|
+
import { Fragment as Fragment3, jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6459
6453
|
function DropdownSelect({
|
|
6460
6454
|
value,
|
|
6461
6455
|
options,
|
|
@@ -6480,8 +6474,8 @@ function DropdownSelect({
|
|
|
6480
6474
|
const valOpts = labelOptionValue != null ? options.filter((o) => o.value !== labelOptionValue) : options;
|
|
6481
6475
|
const q = searchQuery.trim().toLowerCase();
|
|
6482
6476
|
const filtered = searchable && q ? valOpts.filter((o) => o.label.toLowerCase().includes(q)) : valOpts;
|
|
6483
|
-
const content = /* @__PURE__ */ jsx38("div", { className: "font-medium text-sm text-muted-foreground", children: optionVariant === "checkbox" && labelOpt ? /* @__PURE__ */
|
|
6484
|
-
/* @__PURE__ */
|
|
6477
|
+
const content = /* @__PURE__ */ jsx38("div", { className: "font-medium text-sm text-muted-foreground", children: optionVariant === "checkbox" && labelOpt ? /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
6478
|
+
/* @__PURE__ */ jsxs22(
|
|
6485
6479
|
"div",
|
|
6486
6480
|
{
|
|
6487
6481
|
role: "option",
|
|
@@ -6505,7 +6499,7 @@ function DropdownSelect({
|
|
|
6505
6499
|
}
|
|
6506
6500
|
),
|
|
6507
6501
|
searchable ? /* @__PURE__ */ jsx38("div", { className: "mb-1 px-1", children: /* @__PURE__ */ jsx38("input", { type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: searchPlaceholder, className: "h-8 w-full rounded-md border border-input bg-field px-2.5 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-foreground/40", onKeyDown: (e) => e.stopPropagation() }) }) : null,
|
|
6508
|
-
filtered.map((opt) => /* @__PURE__ */
|
|
6502
|
+
filtered.map((opt) => /* @__PURE__ */ jsxs22("div", { role: "option", "aria-selected": opt.value === value, tabIndex: 0, onClick: () => onChange(opt.value), onKeyDown: (e) => {
|
|
6509
6503
|
if (e.key === "Enter" || e.key === " ") {
|
|
6510
6504
|
e.preventDefault();
|
|
6511
6505
|
onChange(opt.value);
|
|
@@ -6514,13 +6508,13 @@ function DropdownSelect({
|
|
|
6514
6508
|
/* @__PURE__ */ jsx38(Checkbox, { checked: opt.value === value, className: "pointer-events-none shrink-0", "aria-hidden": true }),
|
|
6515
6509
|
/* @__PURE__ */ jsx38("span", { className: "truncate", children: opt.label })
|
|
6516
6510
|
] }, opt.value))
|
|
6517
|
-
] }) : options.map((opt) => /* @__PURE__ */
|
|
6511
|
+
] }) : options.map((opt) => /* @__PURE__ */ jsxs22("button", { type: "button", onClick: () => onChange(opt.value), className: cn("flex w-full items-center gap-2 rounded-md px-2.5 py-2 text-left transition-colors hover:bg-background hover:text-foreground", opt.value === value && "text-primary"), children: [
|
|
6518
6512
|
/* @__PURE__ */ jsx38(CircleCheck, { className: cn("h-4 w-4 shrink-0", opt.value === value ? "text-foreground" : "invisible"), "aria-hidden": true }),
|
|
6519
6513
|
/* @__PURE__ */ jsx38("span", { className: "truncate", children: opt.label })
|
|
6520
6514
|
] }, opt.value)) });
|
|
6521
|
-
return /* @__PURE__ */
|
|
6522
|
-
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
6523
|
-
/* @__PURE__ */
|
|
6515
|
+
return /* @__PURE__ */ jsxs22(Popover, { children: [
|
|
6516
|
+
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs22("button", { type: "button", "aria-label": ariaLabel, className: cn("inline-flex h-9 items-center gap-1.5 rounded-md border bg-transparent px-3 py-1 text-sm transition-colors text-left", isActive ? "border-foreground" : "border-input text-muted-foreground hover:text-foreground hover:bg-background", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "data-[state=open]:ring-0 data-[state=open]:ring-offset-0", fullWidth ? "w-full min-w-0" : "min-w-0", className), children: [
|
|
6517
|
+
/* @__PURE__ */ jsxs22("span", { className: "flex min-w-0 shrink items-center gap-1.5 truncate", children: [
|
|
6524
6518
|
buttonLeadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0 text-muted-foreground", children: buttonLeadingIcon }) : null,
|
|
6525
6519
|
!filterLabel && selected?.leadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0", children: selected.leadingIcon }) : null,
|
|
6526
6520
|
/* @__PURE__ */ jsx38("span", { className: cn("truncate", isActive && "text-foreground"), children: triggerLabel }),
|
|
@@ -6550,8 +6544,8 @@ function ClassicDropdown({
|
|
|
6550
6544
|
setTriggerWidth(triggerRef.current.offsetWidth);
|
|
6551
6545
|
}
|
|
6552
6546
|
}, [selected, options]);
|
|
6553
|
-
return /* @__PURE__ */
|
|
6554
|
-
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
6547
|
+
return /* @__PURE__ */ jsxs22(Popover, { children: [
|
|
6548
|
+
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs22(
|
|
6555
6549
|
"button",
|
|
6556
6550
|
{
|
|
6557
6551
|
ref: triggerRef,
|
|
@@ -6567,7 +6561,7 @@ function ClassicDropdown({
|
|
|
6567
6561
|
className
|
|
6568
6562
|
),
|
|
6569
6563
|
children: [
|
|
6570
|
-
/* @__PURE__ */
|
|
6564
|
+
/* @__PURE__ */ jsxs22("span", { className: "flex items-center gap-2", children: [
|
|
6571
6565
|
buttonLeadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0 text-muted-foreground", children: buttonLeadingIcon }) : null,
|
|
6572
6566
|
selected?.leadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0", children: selected.leadingIcon }) : null,
|
|
6573
6567
|
/* @__PURE__ */ jsx38("span", { children: selected?.label })
|
|
@@ -6616,7 +6610,7 @@ function DropdownIconMenu({
|
|
|
6616
6610
|
children,
|
|
6617
6611
|
className
|
|
6618
6612
|
}) {
|
|
6619
|
-
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */
|
|
6613
|
+
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
6620
6614
|
/* @__PURE__ */ jsx38(
|
|
6621
6615
|
MenuButton,
|
|
6622
6616
|
{
|
|
@@ -6747,7 +6741,7 @@ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
|
6747
6741
|
}
|
|
6748
6742
|
__name(DropdownMenuItem, "DropdownMenuItem");
|
|
6749
6743
|
function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
|
|
6750
|
-
return /* @__PURE__ */
|
|
6744
|
+
return /* @__PURE__ */ jsxs22(
|
|
6751
6745
|
DropdownMenuPrimitive.CheckboxItem,
|
|
6752
6746
|
{
|
|
6753
6747
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -6772,7 +6766,7 @@ function DropdownMenuRadioGroup({ ...props }) {
|
|
|
6772
6766
|
}
|
|
6773
6767
|
__name(DropdownMenuRadioGroup, "DropdownMenuRadioGroup");
|
|
6774
6768
|
function DropdownMenuRadioItem({ className, children, ...props }) {
|
|
6775
|
-
return /* @__PURE__ */
|
|
6769
|
+
return /* @__PURE__ */ jsxs22(
|
|
6776
6770
|
DropdownMenuPrimitive.RadioItem,
|
|
6777
6771
|
{
|
|
6778
6772
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -6811,7 +6805,7 @@ function DropdownMenuSub({ ...props }) {
|
|
|
6811
6805
|
}
|
|
6812
6806
|
__name(DropdownMenuSub, "DropdownMenuSub");
|
|
6813
6807
|
function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
6814
|
-
return /* @__PURE__ */
|
|
6808
|
+
return /* @__PURE__ */ jsxs22(
|
|
6815
6809
|
DropdownMenuPrimitive.SubTrigger,
|
|
6816
6810
|
{
|
|
6817
6811
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -6871,9 +6865,9 @@ function DropdownProfile({
|
|
|
6871
6865
|
className
|
|
6872
6866
|
}) {
|
|
6873
6867
|
const initials = getInitials(name);
|
|
6874
|
-
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */
|
|
6868
|
+
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
6875
6869
|
/* @__PURE__ */ jsx38(MenuButton, { className: "inline-flex justify-center items-center group cursor-pointer", children: /* @__PURE__ */ jsx38("div", { className: "w-8 h-8 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx38("span", { className: "text-xs font-medium text-primary-foreground", children: initials }) }) }),
|
|
6876
|
-
/* @__PURE__ */
|
|
6870
|
+
/* @__PURE__ */ jsxs22(
|
|
6877
6871
|
Transition,
|
|
6878
6872
|
{
|
|
6879
6873
|
as: "div",
|
|
@@ -6888,7 +6882,7 @@ function DropdownProfile({
|
|
|
6888
6882
|
leaveFrom: "opacity-100",
|
|
6889
6883
|
leaveTo: "opacity-0",
|
|
6890
6884
|
children: [
|
|
6891
|
-
/* @__PURE__ */
|
|
6885
|
+
/* @__PURE__ */ jsxs22("div", { className: "pt-0.5 pb-2 px-3 mb-1 border-b border-border", children: [
|
|
6892
6886
|
/* @__PURE__ */ jsx38("div", { className: "font-medium text-foreground", children: name }),
|
|
6893
6887
|
/* @__PURE__ */ jsx38("div", { className: "text-xs text-muted-foreground italic", children: role })
|
|
6894
6888
|
] }),
|
|
@@ -6912,9 +6906,9 @@ function DropdownProfile({
|
|
|
6912
6906
|
__name(DropdownProfile, "DropdownProfile");
|
|
6913
6907
|
|
|
6914
6908
|
// components/ui/logo.tsx
|
|
6915
|
-
import { jsx as jsx39, jsxs as
|
|
6909
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6916
6910
|
function Logo({ className, ariaLabel = "Logo" } = {}) {
|
|
6917
|
-
return /* @__PURE__ */ jsx39("span", { className: cn("inline-flex", className), children: /* @__PURE__ */
|
|
6911
|
+
return /* @__PURE__ */ jsx39("span", { className: cn("inline-flex", className), children: /* @__PURE__ */ jsxs23(
|
|
6918
6912
|
"svg",
|
|
6919
6913
|
{
|
|
6920
6914
|
width: "60",
|
|
@@ -6926,7 +6920,7 @@ function Logo({ className, ariaLabel = "Logo" } = {}) {
|
|
|
6926
6920
|
"aria-label": ariaLabel,
|
|
6927
6921
|
role: "img",
|
|
6928
6922
|
children: [
|
|
6929
|
-
/* @__PURE__ */
|
|
6923
|
+
/* @__PURE__ */ jsxs23("g", { clipPath: "url(#clip0_4002_249)", children: [
|
|
6930
6924
|
/* @__PURE__ */ jsx39(
|
|
6931
6925
|
"path",
|
|
6932
6926
|
{
|
|
@@ -6964,8 +6958,8 @@ function Logo({ className, ariaLabel = "Logo" } = {}) {
|
|
|
6964
6958
|
}
|
|
6965
6959
|
)
|
|
6966
6960
|
] }),
|
|
6967
|
-
/* @__PURE__ */
|
|
6968
|
-
/* @__PURE__ */
|
|
6961
|
+
/* @__PURE__ */ jsxs23("defs", { children: [
|
|
6962
|
+
/* @__PURE__ */ jsxs23("linearGradient", { id: "paint0_linear_logo", x1: "42.2949", y1: "0", x2: "42.2949", y2: "32", gradientUnits: "userSpaceOnUse", children: [
|
|
6969
6963
|
/* @__PURE__ */ jsx39("stop", { stopColor: "currentColor" }),
|
|
6970
6964
|
/* @__PURE__ */ jsx39("stop", { offset: "1", stopColor: "currentColor", stopOpacity: "0.32" })
|
|
6971
6965
|
] }),
|
|
@@ -6979,7 +6973,7 @@ __name(Logo, "Logo");
|
|
|
6979
6973
|
|
|
6980
6974
|
// components/ui/sidebar.tsx
|
|
6981
6975
|
import * as React26 from "react";
|
|
6982
|
-
import { jsx as jsx40, jsxs as
|
|
6976
|
+
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6983
6977
|
function SidebarLink({
|
|
6984
6978
|
children,
|
|
6985
6979
|
href,
|
|
@@ -6988,7 +6982,7 @@ function SidebarLink({
|
|
|
6988
6982
|
onClick,
|
|
6989
6983
|
className
|
|
6990
6984
|
}) {
|
|
6991
|
-
return /* @__PURE__ */
|
|
6985
|
+
return /* @__PURE__ */ jsxs24(
|
|
6992
6986
|
"a",
|
|
6993
6987
|
{
|
|
6994
6988
|
href,
|
|
@@ -7020,7 +7014,7 @@ function SidebarMenuButton({
|
|
|
7020
7014
|
className,
|
|
7021
7015
|
...props
|
|
7022
7016
|
}) {
|
|
7023
|
-
return /* @__PURE__ */
|
|
7017
|
+
return /* @__PURE__ */ jsxs24(
|
|
7024
7018
|
"button",
|
|
7025
7019
|
{
|
|
7026
7020
|
type: "button",
|
|
@@ -7080,7 +7074,7 @@ function Sidebar({
|
|
|
7080
7074
|
const widthClasses = collapsible === "icon" ? "w-64 lg:w-14 lg:hover:w-64" : "w-64";
|
|
7081
7075
|
const mobilePosition = side === "left" ? "left-0" : "right-0";
|
|
7082
7076
|
const mobileClosedTranslate = side === "left" ? "-translate-x-full" : "translate-x-full";
|
|
7083
|
-
return /* @__PURE__ */
|
|
7077
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn("min-w-fit", className), "data-variant": variant, "data-collapsible": collapsible, "data-side": side, children: [
|
|
7084
7078
|
showBackdrop ? /* @__PURE__ */ jsx40(
|
|
7085
7079
|
"div",
|
|
7086
7080
|
{
|
|
@@ -7092,7 +7086,7 @@ function Sidebar({
|
|
|
7092
7086
|
onClick: () => onOpenChange(false)
|
|
7093
7087
|
}
|
|
7094
7088
|
) : null,
|
|
7095
|
-
/* @__PURE__ */
|
|
7089
|
+
/* @__PURE__ */ jsxs24(
|
|
7096
7090
|
"div",
|
|
7097
7091
|
{
|
|
7098
7092
|
ref: sidebarRef,
|
|
@@ -7216,7 +7210,7 @@ __name(SidebarSeparator, "SidebarSeparator");
|
|
|
7216
7210
|
|
|
7217
7211
|
// components/ui/alert-dialog.tsx
|
|
7218
7212
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
7219
|
-
import { jsx as jsx41, jsxs as
|
|
7213
|
+
import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
7220
7214
|
function AlertDialog({ ...props }) {
|
|
7221
7215
|
return /* @__PURE__ */ jsx41(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
|
|
7222
7216
|
}
|
|
@@ -7247,7 +7241,7 @@ function AlertDialogOverlay({ className, ...props }) {
|
|
|
7247
7241
|
}
|
|
7248
7242
|
__name(AlertDialogOverlay, "AlertDialogOverlay");
|
|
7249
7243
|
function AlertDialogContent({ className, children, ...props }) {
|
|
7250
|
-
return /* @__PURE__ */
|
|
7244
|
+
return /* @__PURE__ */ jsxs25(AlertDialogPortal, { children: [
|
|
7251
7245
|
/* @__PURE__ */ jsx41(AlertDialogOverlay, {}),
|
|
7252
7246
|
/* @__PURE__ */ jsx41(
|
|
7253
7247
|
AlertDialogPrimitive.Content,
|
|
@@ -7350,7 +7344,7 @@ __name(AlertDialogCancel, "AlertDialogCancel");
|
|
|
7350
7344
|
|
|
7351
7345
|
// components/ui/modal.tsx
|
|
7352
7346
|
import { X as X5 } from "lucide-react";
|
|
7353
|
-
import { jsx as jsx42, jsxs as
|
|
7347
|
+
import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
7354
7348
|
function Modal({
|
|
7355
7349
|
open,
|
|
7356
7350
|
onOpenChange,
|
|
@@ -7367,14 +7361,14 @@ function Modal({
|
|
|
7367
7361
|
headerClassName
|
|
7368
7362
|
}) {
|
|
7369
7363
|
const maxW = size === "sm" ? "max-w-sm" : size === "lg" ? "max-w-2xl" : size === "xl" ? "max-w-4xl" : "max-w-lg";
|
|
7370
|
-
return /* @__PURE__ */ jsx42(Dialog, { open, onOpenChange, children: /* @__PURE__ */
|
|
7364
|
+
return /* @__PURE__ */ jsx42(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs26(
|
|
7371
7365
|
DialogContent,
|
|
7372
7366
|
{
|
|
7373
7367
|
className: cn("p-0 overflow-hidden", maxW, className, panelClassName),
|
|
7374
7368
|
showCloseButton: false,
|
|
7375
7369
|
children: [
|
|
7376
|
-
title || description || !hideClose ? /* @__PURE__ */ jsx42(DialogHeader, { className: cn("px-5 py-4", headerClassName), children: /* @__PURE__ */
|
|
7377
|
-
/* @__PURE__ */
|
|
7370
|
+
title || description || !hideClose ? /* @__PURE__ */ jsx42(DialogHeader, { className: cn("px-5 py-4", headerClassName), children: /* @__PURE__ */ jsxs26("div", { className: "flex items-start justify-between gap-4", children: [
|
|
7371
|
+
/* @__PURE__ */ jsxs26("div", { className: "min-w-0", children: [
|
|
7378
7372
|
title ? /* @__PURE__ */ jsx42(DialogTitle, { className: "text-base font-semibold text-foreground", children: title }) : null,
|
|
7379
7373
|
description ? /* @__PURE__ */ jsx42(DialogDescription, { className: "mt-1", children: description }) : null
|
|
7380
7374
|
] }),
|
|
@@ -7393,7 +7387,7 @@ __name(Modal, "Modal");
|
|
|
7393
7387
|
// components/ui/sheet.tsx
|
|
7394
7388
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
7395
7389
|
import { X as X6 } from "lucide-react";
|
|
7396
|
-
import { jsx as jsx43, jsxs as
|
|
7390
|
+
import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
7397
7391
|
function Sheet({ ...props }) {
|
|
7398
7392
|
return /* @__PURE__ */ jsx43(DialogPrimitive2.Root, { "data-slot": "sheet", ...props });
|
|
7399
7393
|
}
|
|
@@ -7449,9 +7443,9 @@ function SheetContent({
|
|
|
7449
7443
|
top: "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
7450
7444
|
bottom: "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom"
|
|
7451
7445
|
};
|
|
7452
|
-
return /* @__PURE__ */
|
|
7446
|
+
return /* @__PURE__ */ jsxs27(SheetPortal, { children: [
|
|
7453
7447
|
/* @__PURE__ */ jsx43(SheetOverlay, {}),
|
|
7454
|
-
/* @__PURE__ */
|
|
7448
|
+
/* @__PURE__ */ jsxs27(
|
|
7455
7449
|
DialogPrimitive2.Content,
|
|
7456
7450
|
{
|
|
7457
7451
|
"data-slot": "sheet-content",
|
|
@@ -7468,7 +7462,7 @@ function SheetContent({
|
|
|
7468
7462
|
...props,
|
|
7469
7463
|
children: [
|
|
7470
7464
|
children,
|
|
7471
|
-
showCloseButton ? /* @__PURE__ */
|
|
7465
|
+
showCloseButton ? /* @__PURE__ */ jsxs27(
|
|
7472
7466
|
DialogPrimitive2.Close,
|
|
7473
7467
|
{
|
|
7474
7468
|
"data-slot": "sheet-close",
|
|
@@ -7660,9 +7654,9 @@ function HoverCardContent({ className, align = "center", sideOffset = 8, ...prop
|
|
|
7660
7654
|
__name(HoverCardContent, "HoverCardContent");
|
|
7661
7655
|
|
|
7662
7656
|
// components/ui/card-decorator.tsx
|
|
7663
|
-
import { jsx as jsx46, jsxs as
|
|
7657
|
+
import { jsx as jsx46, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7664
7658
|
function CardDecorator({ className, children, ...props }) {
|
|
7665
|
-
return /* @__PURE__ */
|
|
7659
|
+
return /* @__PURE__ */ jsxs28(
|
|
7666
7660
|
"div",
|
|
7667
7661
|
{
|
|
7668
7662
|
"data-slot": "card-decorator",
|
|
@@ -7757,7 +7751,7 @@ Progress.displayName = "Progress";
|
|
|
7757
7751
|
// components/ui/slider.tsx
|
|
7758
7752
|
import * as React28 from "react";
|
|
7759
7753
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
7760
|
-
import { jsx as jsx48, jsxs as
|
|
7754
|
+
import { jsx as jsx48, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
7761
7755
|
var trackSizeClasses = {
|
|
7762
7756
|
horizontal: { sm: "h-2", md: "h-2.5", lg: "h-3" },
|
|
7763
7757
|
vertical: { sm: "w-2", md: "w-2.5", lg: "w-3" }
|
|
@@ -7820,13 +7814,13 @@ var Slider = React28.forwardRef(
|
|
|
7820
7814
|
const rangeBase = orientation === "vertical" ? "absolute w-full rounded-full" : "absolute h-full rounded-full";
|
|
7821
7815
|
const marksLabelContainer = orientation === "vertical" ? "relative h-full ml-3" : "relative w-full mt-2";
|
|
7822
7816
|
const marksLabelText = orientation === "vertical" ? "absolute -translate-y-1/2 text-xs text-muted-foreground" : "absolute -translate-x-1/2 text-xs text-muted-foreground";
|
|
7823
|
-
return /* @__PURE__ */
|
|
7817
|
+
return /* @__PURE__ */ jsxs29(
|
|
7824
7818
|
"div",
|
|
7825
7819
|
{
|
|
7826
7820
|
"data-slot": "slider-wrapper",
|
|
7827
7821
|
className: cn(orientation === "vertical" ? "flex h-full items-start gap-3" : "w-full"),
|
|
7828
7822
|
children: [
|
|
7829
|
-
/* @__PURE__ */
|
|
7823
|
+
/* @__PURE__ */ jsxs29(
|
|
7830
7824
|
SliderPrimitive.Root,
|
|
7831
7825
|
{
|
|
7832
7826
|
ref,
|
|
@@ -7954,7 +7948,7 @@ var Skeleton = React29.forwardRef(
|
|
|
7954
7948
|
Skeleton.displayName = "Skeleton";
|
|
7955
7949
|
|
|
7956
7950
|
// components/ui/loading-spinner.tsx
|
|
7957
|
-
import { jsx as jsx50, jsxs as
|
|
7951
|
+
import { jsx as jsx50, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
7958
7952
|
var sizeClasses6 = {
|
|
7959
7953
|
xs: "h-3 w-3",
|
|
7960
7954
|
sm: "h-4 w-4",
|
|
@@ -7974,8 +7968,8 @@ function LoadingSpinner({
|
|
|
7974
7968
|
className,
|
|
7975
7969
|
text
|
|
7976
7970
|
}) {
|
|
7977
|
-
return /* @__PURE__ */ jsx50("div", { className: cn("flex items-center justify-center", className), children: /* @__PURE__ */
|
|
7978
|
-
/* @__PURE__ */
|
|
7971
|
+
return /* @__PURE__ */ jsx50("div", { className: cn("flex items-center justify-center", className), children: /* @__PURE__ */ jsxs30("div", { className: "flex items-center space-x-2", children: [
|
|
7972
|
+
/* @__PURE__ */ jsxs30(
|
|
7979
7973
|
"svg",
|
|
7980
7974
|
{
|
|
7981
7975
|
className: cn("animate-spin", sizeClasses6[size], variantClasses[variant]),
|
|
@@ -7992,7 +7986,7 @@ function LoadingSpinner({
|
|
|
7992
7986
|
}
|
|
7993
7987
|
__name(LoadingSpinner, "LoadingSpinner");
|
|
7994
7988
|
function CardSkeleton({ className }) {
|
|
7995
|
-
return /* @__PURE__ */
|
|
7989
|
+
return /* @__PURE__ */ jsxs30(
|
|
7996
7990
|
"div",
|
|
7997
7991
|
{
|
|
7998
7992
|
"data-slot": "card-skeleton",
|
|
@@ -8002,7 +7996,7 @@ function CardSkeleton({ className }) {
|
|
|
8002
7996
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-4 w-3/4" }),
|
|
8003
7997
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-4 w-1/2 mt-2", tone: "accent" }),
|
|
8004
7998
|
/* @__PURE__ */ jsx50(Skeleton, { className: "mt-4 h-40 w-full", radius: "lg" }),
|
|
8005
|
-
/* @__PURE__ */
|
|
7999
|
+
/* @__PURE__ */ jsxs30("div", { className: "mt-4 flex items-center gap-2", children: [
|
|
8006
8000
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-9 w-24", radius: "md" }),
|
|
8007
8001
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-9 w-20", radius: "md", tone: "accent" })
|
|
8008
8002
|
] })
|
|
@@ -8012,7 +8006,7 @@ function CardSkeleton({ className }) {
|
|
|
8012
8006
|
}
|
|
8013
8007
|
__name(CardSkeleton, "CardSkeleton");
|
|
8014
8008
|
function TableSkeleton({ rows = 5, columns = 4 }) {
|
|
8015
|
-
return /* @__PURE__ */
|
|
8009
|
+
return /* @__PURE__ */ jsxs30("div", { className: "rounded-xl border border-border bg-card overflow-hidden", "aria-busy": "true", children: [
|
|
8016
8010
|
/* @__PURE__ */ jsx50("div", { className: "px-6 py-3 border-b border-border", children: /* @__PURE__ */ jsx50("div", { className: "flex gap-4", children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsx50(Skeleton, { className: "h-4 flex-1" }, i)) }) }),
|
|
8017
8011
|
Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx50("div", { className: "px-6 py-4 border-b border-border last:border-b-0", children: /* @__PURE__ */ jsx50("div", { className: "flex gap-4", children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx50(Skeleton, { className: "h-4 flex-1" }, colIndex)) }) }, rowIndex))
|
|
8018
8012
|
] });
|
|
@@ -8021,7 +8015,7 @@ __name(TableSkeleton, "TableSkeleton");
|
|
|
8021
8015
|
|
|
8022
8016
|
// components/ui/error-boundary.tsx
|
|
8023
8017
|
import React30 from "react";
|
|
8024
|
-
import { jsx as jsx51, jsxs as
|
|
8018
|
+
import { jsx as jsx51, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
8025
8019
|
var ErrorBoundary = class extends React30.Component {
|
|
8026
8020
|
static {
|
|
8027
8021
|
__name(this, "ErrorBoundary");
|
|
@@ -8054,7 +8048,7 @@ var ErrorBoundary = class extends React30.Component {
|
|
|
8054
8048
|
const Fallback2 = this.props.fallback;
|
|
8055
8049
|
return /* @__PURE__ */ jsx51(Fallback2, { error: this.state.error, resetError: this.resetError });
|
|
8056
8050
|
}
|
|
8057
|
-
return /* @__PURE__ */
|
|
8051
|
+
return /* @__PURE__ */ jsxs31("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-4", children: [
|
|
8058
8052
|
/* @__PURE__ */ jsx51("h3", { className: "text-sm font-semibold text-destructive mb-2", children: "Theme Error" }),
|
|
8059
8053
|
/* @__PURE__ */ jsx51("p", { className: "text-sm text-muted-foreground mb-4", children: this.state.error?.message || "An error occurred while applying the theme" }),
|
|
8060
8054
|
/* @__PURE__ */ jsx51(Button, { onClick: this.resetError, size: "sm", variant: "outline", children: "Try Again" })
|
|
@@ -8067,7 +8061,7 @@ function ErrorFallback({
|
|
|
8067
8061
|
error,
|
|
8068
8062
|
resetError
|
|
8069
8063
|
}) {
|
|
8070
|
-
return /* @__PURE__ */
|
|
8064
|
+
return /* @__PURE__ */ jsxs31("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-4", children: [
|
|
8071
8065
|
/* @__PURE__ */ jsx51("h3", { className: "text-sm font-semibold text-destructive mb-2", children: "Something went wrong" }),
|
|
8072
8066
|
/* @__PURE__ */ jsx51("p", { className: "text-sm text-muted-foreground mb-4", children: error?.message || "An unexpected error occurred" }),
|
|
8073
8067
|
/* @__PURE__ */ jsx51(Button, { onClick: resetError, size: "sm", variant: "outline", children: "Try Again" })
|
|
@@ -8095,16 +8089,16 @@ __name(useErrorHandler, "useErrorHandler");
|
|
|
8095
8089
|
import * as React31 from "react";
|
|
8096
8090
|
import { ChevronDown as ChevronDown5 } from "lucide-react";
|
|
8097
8091
|
import { DayPicker, UI } from "react-day-picker";
|
|
8098
|
-
import { jsx as jsx52, jsxs as
|
|
8092
|
+
import { jsx as jsx52, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
8099
8093
|
function CalendarDropdown(props) {
|
|
8100
8094
|
const { options, className, components, classNames, ...selectProps } = props;
|
|
8101
8095
|
const selectedOption = options?.find(({ value }) => value === selectProps.value);
|
|
8102
8096
|
const cssClassSelect = [classNames[UI.Dropdown], className].filter(Boolean).join(" ");
|
|
8103
8097
|
const Select2 = components.Select;
|
|
8104
8098
|
const Option = components.Option;
|
|
8105
|
-
return /* @__PURE__ */
|
|
8099
|
+
return /* @__PURE__ */ jsxs32("span", { "data-disabled": selectProps.disabled, className: classNames[UI.DropdownRoot], children: [
|
|
8106
8100
|
React31.createElement(Select2, { className: cssClassSelect, ...selectProps }, options?.map(({ value, label, disabled }) => React31.createElement(Option, { key: value, value, disabled }, label))),
|
|
8107
|
-
/* @__PURE__ */
|
|
8101
|
+
/* @__PURE__ */ jsxs32("span", { className: classNames[UI.CaptionLabel], "aria-hidden": "true", children: [
|
|
8108
8102
|
selectedOption?.label,
|
|
8109
8103
|
/* @__PURE__ */ jsx52(ChevronDown5, { className: "size-3 shrink-0 opacity-40 text-muted-foreground" })
|
|
8110
8104
|
] })
|
|
@@ -9772,7 +9766,7 @@ __name(cleanEscapedString, "cleanEscapedString");
|
|
|
9772
9766
|
|
|
9773
9767
|
// components/ui/datepicker.tsx
|
|
9774
9768
|
import { Calendar as CalendarIcon } from "lucide-react";
|
|
9775
|
-
import { Fragment as Fragment4, jsx as jsx53, jsxs as
|
|
9769
|
+
import { Fragment as Fragment4, jsx as jsx53, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
9776
9770
|
var triggerButtonClass = "inline-flex items-center gap-2 rounded-lg border border-input bg-field px-3 py-2 text-left text-sm font-normal text-foreground shadow-none transition-colors hover:border-border/80 focus-visible:outline-none focus-visible:ring-0 focus-visible:border-foreground/40 disabled:pointer-events-none disabled:opacity-50 disabled:bg-muted disabled:text-muted-foreground [&_svg]:size-4 [&_svg]:shrink-0";
|
|
9777
9771
|
function DatePicker({
|
|
9778
9772
|
value,
|
|
@@ -9782,8 +9776,8 @@ function DatePicker({
|
|
|
9782
9776
|
className,
|
|
9783
9777
|
calendarProps
|
|
9784
9778
|
}) {
|
|
9785
|
-
return /* @__PURE__ */
|
|
9786
|
-
/* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
9779
|
+
return /* @__PURE__ */ jsxs33(Popover, { children: [
|
|
9780
|
+
/* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs33(
|
|
9787
9781
|
"button",
|
|
9788
9782
|
{
|
|
9789
9783
|
type: "button",
|
|
@@ -9817,7 +9811,7 @@ function DatePickerRange({
|
|
|
9817
9811
|
className,
|
|
9818
9812
|
calendarProps
|
|
9819
9813
|
}) {
|
|
9820
|
-
return /* @__PURE__ */
|
|
9814
|
+
return /* @__PURE__ */ jsxs33(Popover, { children: [
|
|
9821
9815
|
/* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx53(
|
|
9822
9816
|
Button,
|
|
9823
9817
|
{
|
|
@@ -9830,7 +9824,7 @@ function DatePickerRange({
|
|
|
9830
9824
|
className
|
|
9831
9825
|
),
|
|
9832
9826
|
leadingIcon: /* @__PURE__ */ jsx53(CalendarIcon, { className: "size-4" }),
|
|
9833
|
-
children: value?.from ? value.to ? /* @__PURE__ */
|
|
9827
|
+
children: value?.from ? value.to ? /* @__PURE__ */ jsxs33(Fragment4, { children: [
|
|
9834
9828
|
format(value.from, "LLL dd, y"),
|
|
9835
9829
|
" \u2013 ",
|
|
9836
9830
|
format(value.to, "LLL dd, y")
|
|
@@ -9854,16 +9848,17 @@ function DatePickerRange({
|
|
|
9854
9848
|
__name(DatePickerRange, "DatePickerRange");
|
|
9855
9849
|
|
|
9856
9850
|
// components/ui/header.tsx
|
|
9857
|
-
import { jsx as jsx54, jsxs as
|
|
9851
|
+
import { jsx as jsx54, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
9858
9852
|
function Header({
|
|
9859
9853
|
variant = "default",
|
|
9860
9854
|
leftSlot,
|
|
9861
|
-
rightSlot
|
|
9855
|
+
rightSlot,
|
|
9856
|
+
hideMobileMenuButton = false
|
|
9862
9857
|
}) {
|
|
9863
9858
|
const { sidebarOpen, setSidebarOpen } = useAppProvider();
|
|
9864
|
-
return /* @__PURE__ */ jsx54("header", { className: `sticky top-0 before:absolute before:inset-0 before:backdrop-blur-md max-lg:before:bg-background/90 before:-z-10 z-30 ${variant === "v2" || variant === "v3" ? "before:bg-background after:absolute after:h-px after:inset-x-0 after:top-full after:bg-border after:-z-10" : "max-lg:shadow-sm lg:before:bg-muted/90"} ${variant === "v2" ? "" : ""} ${variant === "v3" ? "" : ""}`, children: /* @__PURE__ */ jsx54("div", { className: "px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */
|
|
9865
|
-
/* @__PURE__ */
|
|
9866
|
-
/* @__PURE__ */
|
|
9859
|
+
return /* @__PURE__ */ jsx54("header", { className: `sticky top-0 before:absolute before:inset-0 before:backdrop-blur-md max-lg:before:bg-background/90 before:-z-10 z-30 ${variant === "v2" || variant === "v3" ? "before:bg-background after:absolute after:h-px after:inset-x-0 after:top-full after:bg-border after:-z-10" : "max-lg:shadow-sm lg:before:bg-muted/90"} ${variant === "v2" ? "" : ""} ${variant === "v3" ? "" : ""}`, children: /* @__PURE__ */ jsx54("div", { className: "px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxs34("div", { className: `flex items-center justify-between h-16 ${variant === "v2" || variant === "v3" ? "" : "lg:border-b border-border"}`, children: [
|
|
9860
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-4", children: [
|
|
9861
|
+
!hideMobileMenuButton && /* @__PURE__ */ jsxs34(
|
|
9867
9862
|
"button",
|
|
9868
9863
|
{
|
|
9869
9864
|
className: "text-muted-foreground hover:text-foreground lg:hidden",
|
|
@@ -9872,7 +9867,7 @@ function Header({
|
|
|
9872
9867
|
onClick: () => setSidebarOpen(!sidebarOpen),
|
|
9873
9868
|
children: [
|
|
9874
9869
|
/* @__PURE__ */ jsx54("span", { className: "sr-only", children: "Open sidebar" }),
|
|
9875
|
-
/* @__PURE__ */
|
|
9870
|
+
/* @__PURE__ */ jsxs34("svg", { className: "w-6 h-6 fill-current", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
9876
9871
|
/* @__PURE__ */ jsx54("rect", { x: "4", y: "5", width: "16", height: "2" }),
|
|
9877
9872
|
/* @__PURE__ */ jsx54("rect", { x: "4", y: "11", width: "16", height: "2" }),
|
|
9878
9873
|
/* @__PURE__ */ jsx54("rect", { x: "4", y: "17", width: "16", height: "2" })
|
|
@@ -9889,10 +9884,10 @@ __name(Header, "Header");
|
|
|
9889
9884
|
|
|
9890
9885
|
// components/ui/navbar.tsx
|
|
9891
9886
|
import Link2 from "next/link";
|
|
9892
|
-
import { jsx as jsx55, jsxs as
|
|
9887
|
+
import { jsx as jsx55, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
9893
9888
|
function Navbar({ brand, links = [], rightSlot, className }) {
|
|
9894
|
-
return /* @__PURE__ */ jsx55("div", { className: cn("sticky top-0 z-50 border-b border-border bg-background", className), children: /* @__PURE__ */ jsx55("div", { className: "mx-auto max-w-[1400px] px-4 sm:px-6", children: /* @__PURE__ */
|
|
9895
|
-
brand ?? /* @__PURE__ */
|
|
9889
|
+
return /* @__PURE__ */ jsx55("div", { className: cn("sticky top-0 z-50 border-b border-border bg-background", className), children: /* @__PURE__ */ jsx55("div", { className: "mx-auto max-w-[1400px] px-4 sm:px-6", children: /* @__PURE__ */ jsxs35("div", { className: "h-14 flex items-center gap-4", children: [
|
|
9890
|
+
brand ?? /* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2 font-semibold text-foreground shrink-0", children: [
|
|
9896
9891
|
/* @__PURE__ */ jsx55(Logo, {}),
|
|
9897
9892
|
/* @__PURE__ */ jsx55("span", { className: "hidden sm:block", children: "Design System" })
|
|
9898
9893
|
] }),
|
|
@@ -9911,7 +9906,7 @@ function Navbar({ brand, links = [], rightSlot, className }) {
|
|
|
9911
9906
|
__name(Navbar, "Navbar");
|
|
9912
9907
|
|
|
9913
9908
|
// components/ui/tabs.tsx
|
|
9914
|
-
import { jsx as jsx56, jsxs as
|
|
9909
|
+
import { jsx as jsx56, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
9915
9910
|
function Tabs({
|
|
9916
9911
|
items,
|
|
9917
9912
|
value,
|
|
@@ -9920,7 +9915,7 @@ function Tabs({
|
|
|
9920
9915
|
className
|
|
9921
9916
|
}) {
|
|
9922
9917
|
if (variant === "container") {
|
|
9923
|
-
return /* @__PURE__ */ jsx56("ul", { className: cn("inline-flex w-fit flex-wrap items-center gap-2", className), children: items.map((item) => /* @__PURE__ */ jsx56("li", { children: /* @__PURE__ */
|
|
9918
|
+
return /* @__PURE__ */ jsx56("ul", { className: cn("inline-flex w-fit flex-wrap items-center gap-2", className), children: items.map((item) => /* @__PURE__ */ jsx56("li", { children: /* @__PURE__ */ jsxs36(
|
|
9924
9919
|
"button",
|
|
9925
9920
|
{
|
|
9926
9921
|
type: "button",
|
|
@@ -9940,7 +9935,7 @@ function Tabs({
|
|
|
9940
9935
|
) }, item.id)) });
|
|
9941
9936
|
}
|
|
9942
9937
|
if (variant === "underline") {
|
|
9943
|
-
return /* @__PURE__ */
|
|
9938
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("relative", className), children: [
|
|
9944
9939
|
/* @__PURE__ */ jsx56("div", { className: "absolute bottom-0 w-full h-px bg-border", "aria-hidden": "true" }),
|
|
9945
9940
|
/* @__PURE__ */ jsx56("ul", { className: "relative text-sm font-medium flex flex-nowrap overflow-x-auto no-scrollbar", children: items.map((item) => {
|
|
9946
9941
|
const active = item.id === value;
|
|
@@ -9953,7 +9948,7 @@ function Tabs({
|
|
|
9953
9948
|
"block pb-3 whitespace-nowrap transition-colors",
|
|
9954
9949
|
active ? "text-primary border-b-2 border-primary" : "text-muted-foreground hover:text-foreground"
|
|
9955
9950
|
),
|
|
9956
|
-
children: /* @__PURE__ */
|
|
9951
|
+
children: /* @__PURE__ */ jsxs36("span", { className: "inline-flex items-center", children: [
|
|
9957
9952
|
item.icon ? /* @__PURE__ */ jsx56("span", { className: "mr-2 text-muted-foreground", children: item.icon }) : null,
|
|
9958
9953
|
item.label
|
|
9959
9954
|
] })
|
|
@@ -9973,7 +9968,7 @@ function Tabs({
|
|
|
9973
9968
|
"whitespace-nowrap transition-colors",
|
|
9974
9969
|
active ? "text-primary" : "text-muted-foreground hover:text-foreground"
|
|
9975
9970
|
),
|
|
9976
|
-
children: /* @__PURE__ */
|
|
9971
|
+
children: /* @__PURE__ */ jsxs36("span", { className: "inline-flex items-center", children: [
|
|
9977
9972
|
item.icon ? /* @__PURE__ */ jsx56("span", { className: "mr-2 text-muted-foreground", children: item.icon }) : null,
|
|
9978
9973
|
item.label
|
|
9979
9974
|
] })
|
|
@@ -10055,9 +10050,9 @@ __name(TabsContent, "TabsContent");
|
|
|
10055
10050
|
|
|
10056
10051
|
// components/ui/collapsible-section.tsx
|
|
10057
10052
|
import { ChevronDown as ChevronDown6, ChevronUp } from "lucide-react";
|
|
10058
|
-
import { jsx as jsx58, jsxs as
|
|
10053
|
+
import { jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
10059
10054
|
function CollapsibleSection({ title, open, onToggle, children, className }) {
|
|
10060
|
-
return /* @__PURE__ */
|
|
10055
|
+
return /* @__PURE__ */ jsxs37(
|
|
10061
10056
|
"div",
|
|
10062
10057
|
{
|
|
10063
10058
|
className: cn(
|
|
@@ -10065,7 +10060,7 @@ function CollapsibleSection({ title, open, onToggle, children, className }) {
|
|
|
10065
10060
|
className
|
|
10066
10061
|
),
|
|
10067
10062
|
children: [
|
|
10068
|
-
/* @__PURE__ */
|
|
10063
|
+
/* @__PURE__ */ jsxs37(
|
|
10069
10064
|
"button",
|
|
10070
10065
|
{
|
|
10071
10066
|
type: "button",
|
|
@@ -10128,7 +10123,7 @@ CollapsibleContent.displayName = "CollapsibleContent";
|
|
|
10128
10123
|
// components/ui/chart.tsx
|
|
10129
10124
|
import * as React33 from "react";
|
|
10130
10125
|
import * as RechartsPrimitive from "recharts";
|
|
10131
|
-
import { Fragment as Fragment5, jsx as jsx60, jsxs as
|
|
10126
|
+
import { Fragment as Fragment5, jsx as jsx60, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
10132
10127
|
var THEMES = { light: "", dark: ".dark" };
|
|
10133
10128
|
var ChartContext = React33.createContext(null);
|
|
10134
10129
|
function useChart() {
|
|
@@ -10148,7 +10143,7 @@ function ChartContainer({
|
|
|
10148
10143
|
}) {
|
|
10149
10144
|
const uniqueId = React33.useId();
|
|
10150
10145
|
const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
|
|
10151
|
-
return /* @__PURE__ */ jsx60(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */
|
|
10146
|
+
return /* @__PURE__ */ jsx60(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs38(
|
|
10152
10147
|
"div",
|
|
10153
10148
|
{
|
|
10154
10149
|
"data-slot": "chart",
|
|
@@ -10248,7 +10243,7 @@ function ChartTooltipContent({
|
|
|
10248
10243
|
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
10249
10244
|
if (!active || !payload?.length) return null;
|
|
10250
10245
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
10251
|
-
return /* @__PURE__ */
|
|
10246
|
+
return /* @__PURE__ */ jsxs38(
|
|
10252
10247
|
"div",
|
|
10253
10248
|
{
|
|
10254
10249
|
className: cn(
|
|
@@ -10268,7 +10263,7 @@ function ChartTooltipContent({
|
|
|
10268
10263
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:size-2.5 [&>svg]:text-muted-foreground",
|
|
10269
10264
|
indicator === "dot" && "items-center"
|
|
10270
10265
|
),
|
|
10271
|
-
children: formatter && item?.value !== void 0 && item.name !== void 0 ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */
|
|
10266
|
+
children: formatter && item?.value !== void 0 && item.name !== void 0 ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs38(Fragment5, { children: [
|
|
10272
10267
|
itemConfig?.icon ? /* @__PURE__ */ jsx60(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx60(
|
|
10273
10268
|
"div",
|
|
10274
10269
|
{
|
|
@@ -10285,7 +10280,7 @@ function ChartTooltipContent({
|
|
|
10285
10280
|
}
|
|
10286
10281
|
}
|
|
10287
10282
|
),
|
|
10288
|
-
/* @__PURE__ */
|
|
10283
|
+
/* @__PURE__ */ jsxs38(
|
|
10289
10284
|
"div",
|
|
10290
10285
|
{
|
|
10291
10286
|
className: cn(
|
|
@@ -10293,7 +10288,7 @@ function ChartTooltipContent({
|
|
|
10293
10288
|
nestLabel ? "items-end" : "items-center"
|
|
10294
10289
|
),
|
|
10295
10290
|
children: [
|
|
10296
|
-
/* @__PURE__ */
|
|
10291
|
+
/* @__PURE__ */ jsxs38("div", { className: "grid gap-1.5", children: [
|
|
10297
10292
|
nestLabel ? tooltipLabel : null,
|
|
10298
10293
|
/* @__PURE__ */ jsx60("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
|
|
10299
10294
|
] }),
|
|
@@ -10332,7 +10327,7 @@ function ChartLegendContent({
|
|
|
10332
10327
|
children: payload.map((item) => {
|
|
10333
10328
|
const key = `${nameKey ?? item.dataKey ?? "value"}`;
|
|
10334
10329
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
10335
|
-
return /* @__PURE__ */
|
|
10330
|
+
return /* @__PURE__ */ jsxs38(
|
|
10336
10331
|
"div",
|
|
10337
10332
|
{
|
|
10338
10333
|
className: "flex items-center gap-1.5 [&>svg]:size-3 [&>svg]:text-muted-foreground",
|
|
@@ -10491,14 +10486,14 @@ ErrorMessage.displayName = "ErrorMessage";
|
|
|
10491
10486
|
|
|
10492
10487
|
// components/ui/navigation-menu.tsx
|
|
10493
10488
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
10494
|
-
import { jsx as jsx63, jsxs as
|
|
10489
|
+
import { jsx as jsx63, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
10495
10490
|
function NavigationMenuRoot({
|
|
10496
10491
|
className,
|
|
10497
10492
|
children,
|
|
10498
10493
|
viewport = true,
|
|
10499
10494
|
...props
|
|
10500
10495
|
}) {
|
|
10501
|
-
return /* @__PURE__ */
|
|
10496
|
+
return /* @__PURE__ */ jsxs39(
|
|
10502
10497
|
NavigationMenuPrimitive.Root,
|
|
10503
10498
|
{
|
|
10504
10499
|
"data-slot": "navigation-menu",
|
|
@@ -10553,7 +10548,7 @@ function NavigationMenuTrigger({
|
|
|
10553
10548
|
children,
|
|
10554
10549
|
...props
|
|
10555
10550
|
}) {
|
|
10556
|
-
return /* @__PURE__ */
|
|
10551
|
+
return /* @__PURE__ */ jsxs39(
|
|
10557
10552
|
NavigationMenuPrimitive.Trigger,
|
|
10558
10553
|
{
|
|
10559
10554
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -10735,10 +10730,10 @@ function createIcon(IconComponent, options = {}) {
|
|
|
10735
10730
|
__name(createIcon, "createIcon");
|
|
10736
10731
|
|
|
10737
10732
|
// components/ui/theme-toggle-icon.tsx
|
|
10738
|
-
import { jsx as jsx65, jsxs as
|
|
10733
|
+
import { jsx as jsx65, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
10739
10734
|
function ThemeToggleIcon() {
|
|
10740
10735
|
const { theme, setTheme } = useTheme2();
|
|
10741
|
-
return /* @__PURE__ */
|
|
10736
|
+
return /* @__PURE__ */ jsxs40("div", { children: [
|
|
10742
10737
|
/* @__PURE__ */ jsx65(
|
|
10743
10738
|
"input",
|
|
10744
10739
|
{
|
|
@@ -10755,7 +10750,7 @@ function ThemeToggleIcon() {
|
|
|
10755
10750
|
}
|
|
10756
10751
|
}
|
|
10757
10752
|
),
|
|
10758
|
-
/* @__PURE__ */
|
|
10753
|
+
/* @__PURE__ */ jsxs40(
|
|
10759
10754
|
"label",
|
|
10760
10755
|
{
|
|
10761
10756
|
className: cn(
|
|
@@ -10807,7 +10802,7 @@ Kbd.displayName = "Kbd";
|
|
|
10807
10802
|
// components/ui/scroll-area.tsx
|
|
10808
10803
|
import * as React37 from "react";
|
|
10809
10804
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
10810
|
-
import { jsx as jsx67, jsxs as
|
|
10805
|
+
import { jsx as jsx67, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
10811
10806
|
function isHorizontalScrollBar(child) {
|
|
10812
10807
|
return React37.isValidElement(child) && child.type === ScrollBar && child.props.orientation === "horizontal";
|
|
10813
10808
|
}
|
|
@@ -10816,7 +10811,7 @@ var ScrollArea = React37.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
10816
10811
|
const childList = React37.Children.toArray(children);
|
|
10817
10812
|
const viewportChildren = childList.filter((c) => !isHorizontalScrollBar(c));
|
|
10818
10813
|
const horizontalBars = childList.filter((c) => isHorizontalScrollBar(c));
|
|
10819
|
-
return /* @__PURE__ */
|
|
10814
|
+
return /* @__PURE__ */ jsxs41(
|
|
10820
10815
|
ScrollAreaPrimitive.Root,
|
|
10821
10816
|
{
|
|
10822
10817
|
ref,
|
|
@@ -12326,7 +12321,7 @@ __name(toastSemantic, "toastSemantic");
|
|
|
12326
12321
|
// components/ui/select-radix.tsx
|
|
12327
12322
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
12328
12323
|
import { CircleCheck as CircleCheck2, ChevronDown as ChevronDown7, ChevronUp as ChevronUp2 } from "lucide-react";
|
|
12329
|
-
import { jsx as jsx72, jsxs as
|
|
12324
|
+
import { jsx as jsx72, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
12330
12325
|
var SelectRoot = SelectPrimitive.Root;
|
|
12331
12326
|
var SelectGroup = SelectPrimitive.Group;
|
|
12332
12327
|
var SelectValue = SelectPrimitive.Value;
|
|
@@ -12336,7 +12331,7 @@ function SelectTrigger({
|
|
|
12336
12331
|
children,
|
|
12337
12332
|
...props
|
|
12338
12333
|
}) {
|
|
12339
|
-
return /* @__PURE__ */
|
|
12334
|
+
return /* @__PURE__ */ jsxs42(
|
|
12340
12335
|
SelectPrimitive.Trigger,
|
|
12341
12336
|
{
|
|
12342
12337
|
"data-slot": "select-trigger",
|
|
@@ -12363,13 +12358,15 @@ function SelectContent({
|
|
|
12363
12358
|
className,
|
|
12364
12359
|
children,
|
|
12365
12360
|
position = "popper",
|
|
12361
|
+
sideOffset = 4,
|
|
12366
12362
|
...props
|
|
12367
12363
|
}) {
|
|
12368
|
-
return /* @__PURE__ */ jsx72(SelectPrimitive.Portal, { children: /* @__PURE__ */
|
|
12364
|
+
return /* @__PURE__ */ jsx72(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs42(
|
|
12369
12365
|
SelectPrimitive.Content,
|
|
12370
12366
|
{
|
|
12371
12367
|
"data-slot": "select-content",
|
|
12372
12368
|
position,
|
|
12369
|
+
sideOffset,
|
|
12373
12370
|
className: cn(
|
|
12374
12371
|
"bg-popover text-popover-foreground border border-input",
|
|
12375
12372
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
@@ -12409,13 +12406,13 @@ function SelectLabel({ className, ...props }) {
|
|
|
12409
12406
|
}
|
|
12410
12407
|
__name(SelectLabel, "SelectLabel");
|
|
12411
12408
|
function SelectItem({ className, children, ...props }) {
|
|
12412
|
-
return /* @__PURE__ */
|
|
12409
|
+
return /* @__PURE__ */ jsxs42(
|
|
12413
12410
|
SelectPrimitive.Item,
|
|
12414
12411
|
{
|
|
12415
12412
|
"data-slot": "select-item",
|
|
12416
12413
|
className: cn(
|
|
12417
12414
|
"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none",
|
|
12418
|
-
"focus:bg-
|
|
12415
|
+
"focus:bg-muted focus:text-foreground data-[highlighted]:bg-muted data-[highlighted]:text-foreground",
|
|
12419
12416
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
12420
12417
|
className
|
|
12421
12418
|
),
|
|
@@ -12473,7 +12470,7 @@ __name(SelectScrollDownButton, "SelectScrollDownButton");
|
|
|
12473
12470
|
// components/ui/button-tooltip.tsx
|
|
12474
12471
|
import * as React41 from "react";
|
|
12475
12472
|
import { Transition as Transition2 } from "@headlessui/react";
|
|
12476
|
-
import { jsx as jsx73, jsxs as
|
|
12473
|
+
import { jsx as jsx73, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
12477
12474
|
function ButtonTooltip({
|
|
12478
12475
|
children,
|
|
12479
12476
|
content,
|
|
@@ -12542,7 +12539,7 @@ function ButtonTooltip({
|
|
|
12542
12539
|
}
|
|
12543
12540
|
);
|
|
12544
12541
|
}, "getArrowElement");
|
|
12545
|
-
return /* @__PURE__ */
|
|
12542
|
+
return /* @__PURE__ */ jsxs43(
|
|
12546
12543
|
"div",
|
|
12547
12544
|
{
|
|
12548
12545
|
className: cn("relative inline-flex", className),
|
|
@@ -12552,7 +12549,7 @@ function ButtonTooltip({
|
|
|
12552
12549
|
onBlur: () => setTooltipOpen(false),
|
|
12553
12550
|
children: [
|
|
12554
12551
|
children,
|
|
12555
|
-
/* @__PURE__ */ jsx73("div", { className: cn("z-50 absolute pointer-events-none", positionOuterClasses(position)), children: /* @__PURE__ */
|
|
12552
|
+
/* @__PURE__ */ jsx73("div", { className: cn("z-50 absolute pointer-events-none", positionOuterClasses(position)), children: /* @__PURE__ */ jsxs43(
|
|
12556
12553
|
Transition2,
|
|
12557
12554
|
{
|
|
12558
12555
|
show: tooltipOpen && !disabled,
|
|
@@ -12590,16 +12587,16 @@ import { Sun, Moon as Moon2, Upload, ExternalLink } from "lucide-react";
|
|
|
12590
12587
|
import React42 from "react";
|
|
12591
12588
|
|
|
12592
12589
|
// components/theme-customizer/color-input.tsx
|
|
12593
|
-
import { jsx as jsx74, jsxs as
|
|
12590
|
+
import { jsx as jsx74, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
12594
12591
|
function ColorInput({ label, cssVar, value, onChange, className }) {
|
|
12595
12592
|
const swatchColor = value && value.trim() !== "" ? value : "transparent";
|
|
12596
12593
|
const showBorder = !swatchColor || swatchColor === "transparent";
|
|
12597
12594
|
const handleChange = /* @__PURE__ */ __name((e) => {
|
|
12598
12595
|
onChange(cssVar, e.target.value);
|
|
12599
12596
|
}, "handleChange");
|
|
12600
|
-
return /* @__PURE__ */
|
|
12597
|
+
return /* @__PURE__ */ jsxs44("div", { className: cn("space-y-1.5", className), children: [
|
|
12601
12598
|
/* @__PURE__ */ jsx74("label", { className: "text-xs font-medium text-muted-foreground", children: label }),
|
|
12602
|
-
/* @__PURE__ */
|
|
12599
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
|
|
12603
12600
|
/* @__PURE__ */ jsx74(
|
|
12604
12601
|
"div",
|
|
12605
12602
|
{
|
|
@@ -12634,7 +12631,7 @@ function ColorInput({ label, cssVar, value, onChange, className }) {
|
|
|
12634
12631
|
__name(ColorInput, "ColorInput");
|
|
12635
12632
|
|
|
12636
12633
|
// components/theme-customizer/colors-panel.tsx
|
|
12637
|
-
import { jsx as jsx75, jsxs as
|
|
12634
|
+
import { jsx as jsx75, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
12638
12635
|
function getComputedColorValues() {
|
|
12639
12636
|
if (typeof document === "undefined") return {};
|
|
12640
12637
|
const root = document.documentElement;
|
|
@@ -12696,7 +12693,7 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
|
|
|
12696
12693
|
title: group.title,
|
|
12697
12694
|
open: openGroups[group.title] !== false,
|
|
12698
12695
|
onToggle: () => toggleGroup(group.title),
|
|
12699
|
-
children: group.colors.map((color) => /* @__PURE__ */
|
|
12696
|
+
children: group.colors.map((color) => /* @__PURE__ */ jsxs45("div", { className: "space-y-1", children: [
|
|
12700
12697
|
/* @__PURE__ */ jsx75(
|
|
12701
12698
|
ColorInput,
|
|
12702
12699
|
{
|
|
@@ -12716,7 +12713,7 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
|
|
|
12716
12713
|
__name(ColorsPanel, "ColorsPanel");
|
|
12717
12714
|
|
|
12718
12715
|
// components/theme-customizer/theme-tab.tsx
|
|
12719
|
-
import { Fragment as Fragment6, jsx as jsx76, jsxs as
|
|
12716
|
+
import { Fragment as Fragment6, jsx as jsx76, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
12720
12717
|
function ThemeTab({
|
|
12721
12718
|
selectedTheme,
|
|
12722
12719
|
setSelectedTheme,
|
|
@@ -12754,13 +12751,13 @@ function ThemeTab({
|
|
|
12754
12751
|
const showOthers = variant === "full" || variant === "others-only";
|
|
12755
12752
|
const showPreset = showColors && !hidePreset;
|
|
12756
12753
|
const colorsOnlyInSidebar = showColors && hidePreset && !showPreset && !showOthers;
|
|
12757
|
-
return /* @__PURE__ */
|
|
12754
|
+
return /* @__PURE__ */ jsxs46(
|
|
12758
12755
|
"div",
|
|
12759
12756
|
{
|
|
12760
12757
|
className: colorsOnlyInSidebar ? "px-3 pt-2 pb-4" : "p-4 space-y-6",
|
|
12761
12758
|
children: [
|
|
12762
|
-
showPreset && /* @__PURE__ */
|
|
12763
|
-
/* @__PURE__ */
|
|
12759
|
+
showPreset && /* @__PURE__ */ jsxs46(Fragment6, { children: [
|
|
12760
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-3", children: [
|
|
12764
12761
|
/* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Mindtris UI" }),
|
|
12765
12762
|
/* @__PURE__ */ jsx76(
|
|
12766
12763
|
Select,
|
|
@@ -12774,9 +12771,9 @@ function ThemeTab({
|
|
|
12774
12771
|
variant === "full" && /* @__PURE__ */ jsx76("div", { className: "border-t border-border" })
|
|
12775
12772
|
] }),
|
|
12776
12773
|
showColors && hidePreset && /* @__PURE__ */ jsx76(ColorsPanel, { selectedTheme, isDarkMode }),
|
|
12777
|
-
showOthers && /* @__PURE__ */
|
|
12774
|
+
showOthers && /* @__PURE__ */ jsxs46(Fragment6, { children: [
|
|
12778
12775
|
variant === "full" && /* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12779
|
-
/* @__PURE__ */
|
|
12776
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-3", children: [
|
|
12780
12777
|
/* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Radius" }),
|
|
12781
12778
|
/* @__PURE__ */ jsx76("div", { className: "grid grid-cols-5 gap-2", children: radiusOptions.map((option) => /* @__PURE__ */ jsx76(
|
|
12782
12779
|
"button",
|
|
@@ -12792,10 +12789,10 @@ function ThemeTab({
|
|
|
12792
12789
|
)) })
|
|
12793
12790
|
] }),
|
|
12794
12791
|
/* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12795
|
-
/* @__PURE__ */
|
|
12792
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-3", children: [
|
|
12796
12793
|
/* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Mode" }),
|
|
12797
|
-
/* @__PURE__ */
|
|
12798
|
-
/* @__PURE__ */
|
|
12794
|
+
/* @__PURE__ */ jsxs46("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
12795
|
+
/* @__PURE__ */ jsxs46(
|
|
12799
12796
|
"button",
|
|
12800
12797
|
{
|
|
12801
12798
|
onClick: handleLightMode,
|
|
@@ -12809,7 +12806,7 @@ function ThemeTab({
|
|
|
12809
12806
|
]
|
|
12810
12807
|
}
|
|
12811
12808
|
),
|
|
12812
|
-
/* @__PURE__ */
|
|
12809
|
+
/* @__PURE__ */ jsxs46(
|
|
12813
12810
|
"button",
|
|
12814
12811
|
{
|
|
12815
12812
|
onClick: handleDarkMode,
|
|
@@ -12826,7 +12823,7 @@ function ThemeTab({
|
|
|
12826
12823
|
] })
|
|
12827
12824
|
] }),
|
|
12828
12825
|
/* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12829
|
-
/* @__PURE__ */ jsx76("div", { className: "space-y-3", children: /* @__PURE__ */
|
|
12826
|
+
/* @__PURE__ */ jsx76("div", { className: "space-y-3", children: /* @__PURE__ */ jsxs46(
|
|
12830
12827
|
"button",
|
|
12831
12828
|
{
|
|
12832
12829
|
onClick: onImportClick,
|
|
@@ -12838,11 +12835,11 @@ function ThemeTab({
|
|
|
12838
12835
|
}
|
|
12839
12836
|
) })
|
|
12840
12837
|
] }),
|
|
12841
|
-
variant === "full" && /* @__PURE__ */
|
|
12838
|
+
variant === "full" && /* @__PURE__ */ jsxs46(Fragment6, { children: [
|
|
12842
12839
|
/* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12843
|
-
/* @__PURE__ */
|
|
12840
|
+
/* @__PURE__ */ jsxs46("div", { className: "p-4 bg-muted rounded-lg space-y-3", children: [
|
|
12844
12841
|
/* @__PURE__ */ jsx76("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx76("span", { className: "text-sm font-medium", children: "Advanced Customization" }) }),
|
|
12845
|
-
/* @__PURE__ */
|
|
12842
|
+
/* @__PURE__ */ jsxs46("p", { className: "text-xs text-muted-foreground", children: [
|
|
12846
12843
|
"For advanced theme customization with real-time preview, visit",
|
|
12847
12844
|
" ",
|
|
12848
12845
|
/* @__PURE__ */ jsx76(
|
|
@@ -12856,7 +12853,7 @@ function ThemeTab({
|
|
|
12856
12853
|
}
|
|
12857
12854
|
)
|
|
12858
12855
|
] }),
|
|
12859
|
-
/* @__PURE__ */
|
|
12856
|
+
/* @__PURE__ */ jsxs46(
|
|
12860
12857
|
"button",
|
|
12861
12858
|
{
|
|
12862
12859
|
className: "w-full flex items-center justify-center gap-2 px-4 py-2 border border-border rounded-md hover:bg-muted/70 transition-colors text-sm",
|
|
@@ -12876,7 +12873,7 @@ function ThemeTab({
|
|
|
12876
12873
|
__name(ThemeTab, "ThemeTab");
|
|
12877
12874
|
|
|
12878
12875
|
// components/theme-customizer/layout-tab.tsx
|
|
12879
|
-
import { Fragment as Fragment7, jsx as jsx77, jsxs as
|
|
12876
|
+
import { Fragment as Fragment7, jsx as jsx77, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
12880
12877
|
function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
12881
12878
|
const config = sidebarConfig || {
|
|
12882
12879
|
variant: "inset",
|
|
@@ -12892,18 +12889,18 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12892
12889
|
const handleSidebarSideSelect = /* @__PURE__ */ __name((side) => {
|
|
12893
12890
|
onSidebarConfigChange?.({ ...config, side });
|
|
12894
12891
|
}, "handleSidebarSideSelect");
|
|
12895
|
-
return /* @__PURE__ */
|
|
12896
|
-
/* @__PURE__ */
|
|
12892
|
+
return /* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
|
|
12893
|
+
/* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground", children: [
|
|
12897
12894
|
"These options apply only when your app wires ",
|
|
12898
12895
|
/* @__PURE__ */ jsx77("code", { className: "text-[10px]", children: "sidebarConfig" }),
|
|
12899
12896
|
" and ",
|
|
12900
12897
|
/* @__PURE__ */ jsx77("code", { className: "text-[10px]", children: "onSidebarConfigChange" }),
|
|
12901
12898
|
" to the layout."
|
|
12902
12899
|
] }),
|
|
12903
|
-
/* @__PURE__ */
|
|
12904
|
-
/* @__PURE__ */
|
|
12900
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
|
|
12901
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
12905
12902
|
/* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Variant" }),
|
|
12906
|
-
config.variant && /* @__PURE__ */
|
|
12903
|
+
config.variant && /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
12907
12904
|
config.variant === "sidebar" && "Default: Standard sidebar layout",
|
|
12908
12905
|
config.variant === "floating" && "Floating: Floating sidebar with border",
|
|
12909
12906
|
config.variant === "inset" && "Inset: Inset sidebar with rounded corners"
|
|
@@ -12917,10 +12914,10 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12917
12914
|
relative p-4 border rounded-md cursor-pointer transition-colors
|
|
12918
12915
|
${config.variant === variant.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
|
|
12919
12916
|
`,
|
|
12920
|
-
children: /* @__PURE__ */
|
|
12917
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
12921
12918
|
/* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: variant.name }),
|
|
12922
|
-
/* @__PURE__ */
|
|
12923
|
-
/* @__PURE__ */
|
|
12919
|
+
/* @__PURE__ */ jsxs47("div", { className: `flex h-12 rounded border border-border ${variant.value === "inset" ? "bg-muted" : "bg-card"}`, children: [
|
|
12920
|
+
/* @__PURE__ */ jsxs47(
|
|
12924
12921
|
"div",
|
|
12925
12922
|
{
|
|
12926
12923
|
className: `w-3 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 ${variant.value === "floating" ? "border-r m-1 rounded" : variant.value === "inset" ? "m-1 ms-0 rounded bg-muted/70" : "border-r"}`,
|
|
@@ -12939,10 +12936,10 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12939
12936
|
variant.value
|
|
12940
12937
|
)) })
|
|
12941
12938
|
] }),
|
|
12942
|
-
/* @__PURE__ */
|
|
12943
|
-
/* @__PURE__ */
|
|
12939
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
|
|
12940
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
12944
12941
|
/* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Collapsible Mode" }),
|
|
12945
|
-
config.collapsible && /* @__PURE__ */
|
|
12942
|
+
config.collapsible && /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
12946
12943
|
config.collapsible === "offcanvas" && "Off Canvas: Slides out of view",
|
|
12947
12944
|
config.collapsible === "icon" && "Icon: Collapses to icon only",
|
|
12948
12945
|
config.collapsible === "none" && "None: Always visible"
|
|
@@ -12956,21 +12953,21 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12956
12953
|
relative p-4 border rounded-md cursor-pointer transition-colors
|
|
12957
12954
|
${config.collapsible === option.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
|
|
12958
12955
|
`,
|
|
12959
|
-
children: /* @__PURE__ */
|
|
12956
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
12960
12957
|
/* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: option.name }),
|
|
12961
|
-
/* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: option.value === "offcanvas" ? /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border flex items-center justify-start pl-2", children: /* @__PURE__ */
|
|
12958
|
+
/* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: option.value === "offcanvas" ? /* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border flex items-center justify-start pl-2", children: /* @__PURE__ */ jsxs47("div", { className: "flex flex-col gap-0.5", children: [
|
|
12962
12959
|
/* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
|
|
12963
12960
|
/* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
|
|
12964
12961
|
/* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" })
|
|
12965
|
-
] }) }) : option.value === "icon" ? /* @__PURE__ */
|
|
12966
|
-
/* @__PURE__ */
|
|
12962
|
+
] }) }) : option.value === "icon" ? /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
12963
|
+
/* @__PURE__ */ jsxs47("div", { className: "w-4 flex-shrink-0 bg-muted/70 flex flex-col gap-1 p-1 border-r border-border items-center", children: [
|
|
12967
12964
|
/* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/70 rounded-sm" }),
|
|
12968
12965
|
/* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/60 rounded-sm" }),
|
|
12969
12966
|
/* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/50 rounded-sm" })
|
|
12970
12967
|
] }),
|
|
12971
12968
|
/* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
|
|
12972
|
-
] }) : /* @__PURE__ */
|
|
12973
|
-
/* @__PURE__ */
|
|
12969
|
+
] }) : /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
12970
|
+
/* @__PURE__ */ jsxs47("div", { className: "w-6 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 border-r border-border", children: [
|
|
12974
12971
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
|
|
12975
12972
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
|
|
12976
12973
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
|
|
@@ -12983,10 +12980,10 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12983
12980
|
option.value
|
|
12984
12981
|
)) })
|
|
12985
12982
|
] }),
|
|
12986
|
-
/* @__PURE__ */
|
|
12987
|
-
/* @__PURE__ */
|
|
12983
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
|
|
12984
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
12988
12985
|
/* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Position" }),
|
|
12989
|
-
config.side && /* @__PURE__ */
|
|
12986
|
+
config.side && /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
12990
12987
|
config.side === "left" && "Left: Sidebar positioned on the left side",
|
|
12991
12988
|
config.side === "right" && "Right: Sidebar positioned on the right side"
|
|
12992
12989
|
] })
|
|
@@ -12999,19 +12996,19 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12999
12996
|
relative p-4 border rounded-md cursor-pointer transition-colors
|
|
13000
12997
|
${config.side === side.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
|
|
13001
12998
|
`,
|
|
13002
|
-
children: /* @__PURE__ */
|
|
12999
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
13003
13000
|
/* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: side.name }),
|
|
13004
|
-
/* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: side.value === "left" ? /* @__PURE__ */
|
|
13005
|
-
/* @__PURE__ */
|
|
13001
|
+
/* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: side.value === "left" ? /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
13002
|
+
/* @__PURE__ */ jsxs47("div", { className: "w-6 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 border-r border-border", children: [
|
|
13006
13003
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
|
|
13007
13004
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
|
|
13008
13005
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
|
|
13009
13006
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
|
|
13010
13007
|
] }),
|
|
13011
13008
|
/* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
|
|
13012
|
-
] }) : /* @__PURE__ */
|
|
13009
|
+
] }) : /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
13013
13010
|
/* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" }),
|
|
13014
|
-
/* @__PURE__ */
|
|
13011
|
+
/* @__PURE__ */ jsxs47("div", { className: "w-6 flex-shrink-0 bg-muted/70 flex flex-col gap-0.5 p-1 border-l border-border", children: [
|
|
13015
13012
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
|
|
13016
13013
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
|
|
13017
13014
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
|
|
@@ -13029,7 +13026,7 @@ __name(LayoutTab, "LayoutTab");
|
|
|
13029
13026
|
|
|
13030
13027
|
// components/theme-customizer/other-panel.tsx
|
|
13031
13028
|
import React43 from "react";
|
|
13032
|
-
import { jsx as jsx78, jsxs as
|
|
13029
|
+
import { jsx as jsx78, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
13033
13030
|
function getComputedOtherValues() {
|
|
13034
13031
|
if (typeof document === "undefined") return {};
|
|
13035
13032
|
const root = document.documentElement;
|
|
@@ -13172,10 +13169,10 @@ function OtherPanel({
|
|
|
13172
13169
|
},
|
|
13173
13170
|
[handleChange, values]
|
|
13174
13171
|
);
|
|
13175
|
-
return /* @__PURE__ */
|
|
13176
|
-
!hideModeSection && /* @__PURE__ */
|
|
13172
|
+
return /* @__PURE__ */ jsxs48("div", { className: "space-y-4 pt-5 pb-2", children: [
|
|
13173
|
+
!hideModeSection && /* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13177
13174
|
/* @__PURE__ */ jsx78("label", { className: "block text-sm font-medium", children: "Mode" }),
|
|
13178
|
-
/* @__PURE__ */
|
|
13175
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
13179
13176
|
/* @__PURE__ */ jsx78(
|
|
13180
13177
|
Button,
|
|
13181
13178
|
{
|
|
@@ -13200,8 +13197,8 @@ function OtherPanel({
|
|
|
13200
13197
|
)
|
|
13201
13198
|
] })
|
|
13202
13199
|
] }),
|
|
13203
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "HSL Adjustments", open: hslOpen, onToggle: () => setHslOpen(!hslOpen), children: /* @__PURE__ */
|
|
13204
|
-
/* @__PURE__ */ jsx78("div", { className: "flex items-center justify-center", children: /* @__PURE__ */
|
|
13200
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "HSL Adjustments", open: hslOpen, onToggle: () => setHslOpen(!hslOpen), children: /* @__PURE__ */ jsxs48("div", { className: "pt-2 space-y-4", children: [
|
|
13201
|
+
/* @__PURE__ */ jsx78("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxs48(
|
|
13205
13202
|
"button",
|
|
13206
13203
|
{
|
|
13207
13204
|
type: "button",
|
|
@@ -13233,11 +13230,11 @@ function OtherPanel({
|
|
|
13233
13230
|
},
|
|
13234
13231
|
p.name
|
|
13235
13232
|
)) }),
|
|
13236
|
-
/* @__PURE__ */
|
|
13237
|
-
/* @__PURE__ */
|
|
13238
|
-
/* @__PURE__ */
|
|
13233
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-5", children: [
|
|
13234
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13235
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
13239
13236
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Hue Shift" }),
|
|
13240
|
-
/* @__PURE__ */
|
|
13237
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-2", children: [
|
|
13241
13238
|
/* @__PURE__ */ jsx78(
|
|
13242
13239
|
Input,
|
|
13243
13240
|
{
|
|
@@ -13267,10 +13264,10 @@ function OtherPanel({
|
|
|
13267
13264
|
),
|
|
13268
13265
|
validationErrors["--hue-shift"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--hue-shift"] })
|
|
13269
13266
|
] }),
|
|
13270
|
-
/* @__PURE__ */
|
|
13271
|
-
/* @__PURE__ */
|
|
13267
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13268
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
13272
13269
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Saturation Multiplier" }),
|
|
13273
|
-
/* @__PURE__ */
|
|
13270
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-2", children: [
|
|
13274
13271
|
/* @__PURE__ */ jsx78(
|
|
13275
13272
|
Input,
|
|
13276
13273
|
{
|
|
@@ -13300,10 +13297,10 @@ function OtherPanel({
|
|
|
13300
13297
|
),
|
|
13301
13298
|
validationErrors["--saturation-mult"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--saturation-mult"] })
|
|
13302
13299
|
] }),
|
|
13303
|
-
/* @__PURE__ */
|
|
13304
|
-
/* @__PURE__ */
|
|
13300
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13301
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
13305
13302
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Lightness Multiplier" }),
|
|
13306
|
-
/* @__PURE__ */
|
|
13303
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-2", children: [
|
|
13307
13304
|
/* @__PURE__ */ jsx78(
|
|
13308
13305
|
Input,
|
|
13309
13306
|
{
|
|
@@ -13335,7 +13332,7 @@ function OtherPanel({
|
|
|
13335
13332
|
] })
|
|
13336
13333
|
] })
|
|
13337
13334
|
] }) }),
|
|
13338
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Radius", open: radiusOpen, onToggle: () => setRadiusOpen(!radiusOpen), children: /* @__PURE__ */
|
|
13335
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Radius", open: radiusOpen, onToggle: () => setRadiusOpen(!radiusOpen), children: /* @__PURE__ */ jsxs48("div", { className: "pt-2 space-y-2", children: [
|
|
13339
13336
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Corner radius" }),
|
|
13340
13337
|
/* @__PURE__ */ jsx78("div", { className: "flex flex-wrap gap-2", children: radiusOptions.map((opt) => /* @__PURE__ */ jsx78(
|
|
13341
13338
|
Button,
|
|
@@ -13351,7 +13348,7 @@ function OtherPanel({
|
|
|
13351
13348
|
)) }),
|
|
13352
13349
|
validationErrors["--radius"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--radius"] })
|
|
13353
13350
|
] }) }),
|
|
13354
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Spacing", open: spacingOpen, onToggle: () => setSpacingOpen(!spacingOpen), children: /* @__PURE__ */
|
|
13351
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Spacing", open: spacingOpen, onToggle: () => setSpacingOpen(!spacingOpen), children: /* @__PURE__ */ jsxs48("div", { className: "pt-2 space-y-1", children: [
|
|
13355
13352
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spacing (base scale for layout, rem)" }),
|
|
13356
13353
|
/* @__PURE__ */ jsx78(
|
|
13357
13354
|
Input,
|
|
@@ -13368,8 +13365,8 @@ function OtherPanel({
|
|
|
13368
13365
|
),
|
|
13369
13366
|
validationErrors["--spacing"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--spacing"] })
|
|
13370
13367
|
] }) }),
|
|
13371
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Shadow", open: shadowOpen, onToggle: () => setShadowOpen(!shadowOpen), children: /* @__PURE__ */
|
|
13372
|
-
/* @__PURE__ */
|
|
13368
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Shadow", open: shadowOpen, onToggle: () => setShadowOpen(!shadowOpen), children: /* @__PURE__ */ jsxs48("div", { className: "space-y-3 pt-2", children: [
|
|
13369
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13373
13370
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow color" }),
|
|
13374
13371
|
/* @__PURE__ */ jsx78(
|
|
13375
13372
|
Input,
|
|
@@ -13382,7 +13379,7 @@ function OtherPanel({
|
|
|
13382
13379
|
}
|
|
13383
13380
|
)
|
|
13384
13381
|
] }),
|
|
13385
|
-
/* @__PURE__ */
|
|
13382
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13386
13383
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow Opacity" }),
|
|
13387
13384
|
/* @__PURE__ */ jsx78(
|
|
13388
13385
|
Input,
|
|
@@ -13395,8 +13392,8 @@ function OtherPanel({
|
|
|
13395
13392
|
}
|
|
13396
13393
|
)
|
|
13397
13394
|
] }),
|
|
13398
|
-
/* @__PURE__ */
|
|
13399
|
-
/* @__PURE__ */
|
|
13395
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
13396
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13400
13397
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Blur radius" }),
|
|
13401
13398
|
/* @__PURE__ */ jsx78(
|
|
13402
13399
|
Input,
|
|
@@ -13409,7 +13406,7 @@ function OtherPanel({
|
|
|
13409
13406
|
}
|
|
13410
13407
|
)
|
|
13411
13408
|
] }),
|
|
13412
|
-
/* @__PURE__ */
|
|
13409
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13413
13410
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spread" }),
|
|
13414
13411
|
/* @__PURE__ */ jsx78(
|
|
13415
13412
|
Input,
|
|
@@ -13423,8 +13420,8 @@ function OtherPanel({
|
|
|
13423
13420
|
)
|
|
13424
13421
|
] })
|
|
13425
13422
|
] }),
|
|
13426
|
-
/* @__PURE__ */
|
|
13427
|
-
/* @__PURE__ */
|
|
13423
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
13424
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13428
13425
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset X" }),
|
|
13429
13426
|
/* @__PURE__ */ jsx78(
|
|
13430
13427
|
Input,
|
|
@@ -13437,7 +13434,7 @@ function OtherPanel({
|
|
|
13437
13434
|
}
|
|
13438
13435
|
)
|
|
13439
13436
|
] }),
|
|
13440
|
-
/* @__PURE__ */
|
|
13437
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13441
13438
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset Y" }),
|
|
13442
13439
|
/* @__PURE__ */ jsx78(
|
|
13443
13440
|
Input,
|
|
@@ -13460,7 +13457,7 @@ __name(OtherPanel, "OtherPanel");
|
|
|
13460
13457
|
// components/theme-customizer/import-modal.tsx
|
|
13461
13458
|
import React44 from "react";
|
|
13462
13459
|
import { X as X8, Check as Check6 } from "lucide-react";
|
|
13463
|
-
import { Fragment as Fragment8, jsx as jsx79, jsxs as
|
|
13460
|
+
import { Fragment as Fragment8, jsx as jsx79, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
13464
13461
|
function normalizeImportedThemeVars(vars) {
|
|
13465
13462
|
const out = {};
|
|
13466
13463
|
Object.entries(vars).forEach(([key, value]) => {
|
|
@@ -13553,7 +13550,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13553
13550
|
}
|
|
13554
13551
|
}, "processImport");
|
|
13555
13552
|
if (!open) return null;
|
|
13556
|
-
return /* @__PURE__ */
|
|
13553
|
+
return /* @__PURE__ */ jsxs49(Fragment8, { children: [
|
|
13557
13554
|
/* @__PURE__ */ jsx79(
|
|
13558
13555
|
"div",
|
|
13559
13556
|
{
|
|
@@ -13561,11 +13558,11 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13561
13558
|
onClick: () => onOpenChange(false)
|
|
13562
13559
|
}
|
|
13563
13560
|
),
|
|
13564
|
-
/* @__PURE__ */ jsx79("div", { className: "fixed inset-0 z-[60] flex items-center justify-center p-4", children: /* @__PURE__ */
|
|
13565
|
-
/* @__PURE__ */ jsx79("div", { className: "p-6 border-b border-border", children: /* @__PURE__ */
|
|
13566
|
-
/* @__PURE__ */
|
|
13561
|
+
/* @__PURE__ */ jsx79("div", { className: "fixed inset-0 z-[60] flex items-center justify-center p-4", children: /* @__PURE__ */ jsxs49("div", { className: "bg-card text-card-foreground rounded-lg shadow-lg max-w-4xl w-full max-h-[90vh] flex flex-col border border-border", children: [
|
|
13562
|
+
/* @__PURE__ */ jsx79("div", { className: "p-6 border-b border-border", children: /* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-between", children: [
|
|
13563
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
13567
13564
|
/* @__PURE__ */ jsx79("h3", { className: "text-lg font-semibold", children: "Import Theme" }),
|
|
13568
|
-
/* @__PURE__ */
|
|
13565
|
+
/* @__PURE__ */ jsxs49("p", { className: "text-sm text-muted-foreground mt-1", children: [
|
|
13569
13566
|
"Paste either a standardized ",
|
|
13570
13567
|
/* @__PURE__ */ jsx79("code", { className: "px-1 py-0.5 bg-muted rounded", children: "theme.json" }),
|
|
13571
13568
|
" artifact (recommended) or a CSS theme with ",
|
|
@@ -13584,9 +13581,9 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13584
13581
|
}
|
|
13585
13582
|
)
|
|
13586
13583
|
] }) }),
|
|
13587
|
-
/* @__PURE__ */
|
|
13584
|
+
/* @__PURE__ */ jsxs49("div", { className: "p-6 flex-1 overflow-y-auto space-y-4", children: [
|
|
13588
13585
|
error && /* @__PURE__ */ jsx79("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-3", children: /* @__PURE__ */ jsx79("p", { className: "text-sm text-destructive", children: error }) }),
|
|
13589
|
-
/* @__PURE__ */
|
|
13586
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
13590
13587
|
/* @__PURE__ */ jsx79("label", { className: "block text-sm font-medium mb-2", children: "Theme name" }),
|
|
13591
13588
|
/* @__PURE__ */ jsx79(
|
|
13592
13589
|
Input,
|
|
@@ -13601,7 +13598,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13601
13598
|
}
|
|
13602
13599
|
)
|
|
13603
13600
|
] }),
|
|
13604
|
-
/* @__PURE__ */
|
|
13601
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
13605
13602
|
/* @__PURE__ */ jsx79("label", { className: "block text-sm font-medium mb-2", children: "Theme content" }),
|
|
13606
13603
|
/* @__PURE__ */ jsx79(
|
|
13607
13604
|
"textarea",
|
|
@@ -13637,7 +13634,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13637
13634
|
)
|
|
13638
13635
|
] })
|
|
13639
13636
|
] }),
|
|
13640
|
-
/* @__PURE__ */
|
|
13637
|
+
/* @__PURE__ */ jsxs49("div", { className: "p-6 border-t border-border flex justify-end gap-2", children: [
|
|
13641
13638
|
/* @__PURE__ */ jsx79(
|
|
13642
13639
|
Button,
|
|
13643
13640
|
{
|
|
@@ -13666,7 +13663,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13666
13663
|
__name(ImportModal, "ImportModal");
|
|
13667
13664
|
|
|
13668
13665
|
// components/theme-customizer/index.tsx
|
|
13669
|
-
import { Fragment as Fragment9, jsx as jsx80, jsxs as
|
|
13666
|
+
import { Fragment as Fragment9, jsx as jsx80, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
13670
13667
|
function ThemeCustomizer({
|
|
13671
13668
|
open,
|
|
13672
13669
|
onOpenChange,
|
|
@@ -13717,15 +13714,15 @@ function ThemeCustomizer({
|
|
|
13717
13714
|
applyRadius2(selectedRadius);
|
|
13718
13715
|
}, []);
|
|
13719
13716
|
if (!open && !inline) return null;
|
|
13720
|
-
const content = /* @__PURE__ */
|
|
13717
|
+
const content = /* @__PURE__ */ jsxs50(
|
|
13721
13718
|
"div",
|
|
13722
13719
|
{
|
|
13723
13720
|
className: inline ? "flex flex-col h-full" : "fixed inset-y-0 right-0 z-50 w-96 bg-card text-card-foreground border-l border-border shadow-lg flex flex-col",
|
|
13724
13721
|
children: [
|
|
13725
|
-
!hideHeader && /* @__PURE__ */ jsx80("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */
|
|
13722
|
+
!hideHeader && /* @__PURE__ */ jsx80("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-2", children: [
|
|
13726
13723
|
/* @__PURE__ */ jsx80("div", { className: "p-2 bg-primary/10 rounded-lg", children: /* @__PURE__ */ jsx80(Settings, { className: "w-4 h-4 text-primary" }) }),
|
|
13727
13724
|
/* @__PURE__ */ jsx80("h2", { className: "text-lg font-semibold", children: "Customizer" }),
|
|
13728
|
-
/* @__PURE__ */
|
|
13725
|
+
/* @__PURE__ */ jsxs50("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
13729
13726
|
/* @__PURE__ */ jsx80(Button, { variant: "ghost", size: "sm", onClick: handleReset, children: "Reset" }),
|
|
13730
13727
|
!inline && /* @__PURE__ */ jsx80(
|
|
13731
13728
|
Button,
|
|
@@ -13741,7 +13738,7 @@ function ThemeCustomizer({
|
|
|
13741
13738
|
)
|
|
13742
13739
|
] })
|
|
13743
13740
|
] }) }),
|
|
13744
|
-
/* @__PURE__ */
|
|
13741
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex-1 overflow-y-auto min-h-0", children: [
|
|
13745
13742
|
sectionProp === "colors" && /* @__PURE__ */ jsx80(
|
|
13746
13743
|
ThemeTab,
|
|
13747
13744
|
{
|
|
@@ -13766,7 +13763,7 @@ function ThemeCustomizer({
|
|
|
13766
13763
|
onSidebarConfigChange
|
|
13767
13764
|
}
|
|
13768
13765
|
) }),
|
|
13769
|
-
!sectionProp && /* @__PURE__ */
|
|
13766
|
+
!sectionProp && /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
13770
13767
|
/* @__PURE__ */ jsx80(
|
|
13771
13768
|
ThemeTab,
|
|
13772
13769
|
{
|
|
@@ -13792,7 +13789,7 @@ function ThemeCustomizer({
|
|
|
13792
13789
|
]
|
|
13793
13790
|
}
|
|
13794
13791
|
);
|
|
13795
|
-
return /* @__PURE__ */
|
|
13792
|
+
return /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
13796
13793
|
content,
|
|
13797
13794
|
!inline && /* @__PURE__ */ jsx80(
|
|
13798
13795
|
"div",
|
|
@@ -13929,7 +13926,7 @@ function loadGoogleFontsForFontValue(value) {
|
|
|
13929
13926
|
__name(loadGoogleFontsForFontValue, "loadGoogleFontsForFontValue");
|
|
13930
13927
|
|
|
13931
13928
|
// components/theme-customizer/typography-panel.tsx
|
|
13932
|
-
import { jsx as jsx81, jsxs as
|
|
13929
|
+
import { jsx as jsx81, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
13933
13930
|
function getComputedTypography() {
|
|
13934
13931
|
if (typeof document === "undefined") return {};
|
|
13935
13932
|
const root = document.documentElement;
|
|
@@ -13965,15 +13962,15 @@ function TypographyPanel() {
|
|
|
13965
13962
|
}
|
|
13966
13963
|
}
|
|
13967
13964
|
}, "handleChange");
|
|
13968
|
-
return /* @__PURE__ */
|
|
13969
|
-
/* @__PURE__ */
|
|
13965
|
+
return /* @__PURE__ */ jsxs51("div", { className: "space-y-4 pt-5 pb-2", children: [
|
|
13966
|
+
/* @__PURE__ */ jsxs51("p", { className: "text-xs text-muted-foreground px-0", children: [
|
|
13970
13967
|
"Fonts use the theme preset and can load from Google Fonts when selected. Letter spacing uses ",
|
|
13971
13968
|
/* @__PURE__ */ jsx81("code", { className: "text-xs", children: "--tracking-normal" }),
|
|
13972
13969
|
"."
|
|
13973
13970
|
] }),
|
|
13974
|
-
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Font Family", open: fontOpen, onToggle: () => setFontOpen((o) => !o), children: /* @__PURE__ */
|
|
13975
|
-
/* @__PURE__ */
|
|
13976
|
-
/* @__PURE__ */
|
|
13971
|
+
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Font Family", open: fontOpen, onToggle: () => setFontOpen((o) => !o), children: /* @__PURE__ */ jsxs51("div", { className: "space-y-3 pt-2", children: [
|
|
13972
|
+
/* @__PURE__ */ jsxs51("div", { children: [
|
|
13973
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
13977
13974
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Sans-serif font" }),
|
|
13978
13975
|
loadingFonts["--font-sans"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
|
|
13979
13976
|
] }),
|
|
@@ -13988,8 +13985,8 @@ function TypographyPanel() {
|
|
|
13988
13985
|
}
|
|
13989
13986
|
)
|
|
13990
13987
|
] }),
|
|
13991
|
-
/* @__PURE__ */
|
|
13992
|
-
/* @__PURE__ */
|
|
13988
|
+
/* @__PURE__ */ jsxs51("div", { children: [
|
|
13989
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
13993
13990
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Serif font" }),
|
|
13994
13991
|
loadingFonts["--font-serif"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
|
|
13995
13992
|
] }),
|
|
@@ -14007,8 +14004,8 @@ function TypographyPanel() {
|
|
|
14007
14004
|
}
|
|
14008
14005
|
)
|
|
14009
14006
|
] }),
|
|
14010
|
-
/* @__PURE__ */
|
|
14011
|
-
/* @__PURE__ */
|
|
14007
|
+
/* @__PURE__ */ jsxs51("div", { children: [
|
|
14008
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
14012
14009
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Monospace Font" }),
|
|
14013
14010
|
loadingFonts["--font-mono"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
|
|
14014
14011
|
] }),
|
|
@@ -14024,7 +14021,7 @@ function TypographyPanel() {
|
|
|
14024
14021
|
)
|
|
14025
14022
|
] })
|
|
14026
14023
|
] }) }),
|
|
14027
|
-
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Letter spacing", open: letterOpen, onToggle: () => setLetterOpen((o) => !o), children: /* @__PURE__ */
|
|
14024
|
+
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Letter spacing", open: letterOpen, onToggle: () => setLetterOpen((o) => !o), children: /* @__PURE__ */ jsxs51("div", { className: "pt-2", children: [
|
|
14028
14025
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Letter spacing (em) \u2014 CSS var: --tracking-normal" }),
|
|
14029
14026
|
/* @__PURE__ */ jsx81(
|
|
14030
14027
|
Input,
|
|
@@ -14042,7 +14039,7 @@ function TypographyPanel() {
|
|
|
14042
14039
|
__name(TypographyPanel, "TypographyPanel");
|
|
14043
14040
|
|
|
14044
14041
|
// layout-primitives.tsx
|
|
14045
|
-
import { jsx as jsx82, jsxs as
|
|
14042
|
+
import { jsx as jsx82, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
14046
14043
|
var maxWidthClasses = {
|
|
14047
14044
|
sm: "max-w-screen-sm",
|
|
14048
14045
|
md: "max-w-screen-md",
|
|
@@ -14091,8 +14088,8 @@ function Page({
|
|
|
14091
14088
|
className,
|
|
14092
14089
|
...props
|
|
14093
14090
|
}) {
|
|
14094
|
-
return /* @__PURE__ */ jsx82("div", { className: cn("min-h-screen", className), ...props, children: /* @__PURE__ */
|
|
14095
|
-
(title || description) && /* @__PURE__ */
|
|
14091
|
+
return /* @__PURE__ */ jsx82("div", { className: cn("min-h-screen", className), ...props, children: /* @__PURE__ */ jsxs52(Container, { maxWidth, padding, children: [
|
|
14092
|
+
(title || description) && /* @__PURE__ */ jsxs52("div", { className: "mb-8", children: [
|
|
14096
14093
|
title && /* @__PURE__ */ jsx82("h1", { className: "text-2xl md:text-3xl font-bold text-foreground mb-2", children: title }),
|
|
14097
14094
|
description && /* @__PURE__ */ jsx82("p", { className: "text-muted-foreground", children: description })
|
|
14098
14095
|
] }),
|
|
@@ -14109,8 +14106,8 @@ function Section({
|
|
|
14109
14106
|
className,
|
|
14110
14107
|
...props
|
|
14111
14108
|
}) {
|
|
14112
|
-
return /* @__PURE__ */ jsx82("section", { className: cn("py-8 md:py-12", className), ...props, children: /* @__PURE__ */
|
|
14113
|
-
(title || description) && /* @__PURE__ */
|
|
14109
|
+
return /* @__PURE__ */ jsx82("section", { className: cn("py-8 md:py-12", className), ...props, children: /* @__PURE__ */ jsxs52(Container, { maxWidth, padding, children: [
|
|
14110
|
+
(title || description) && /* @__PURE__ */ jsxs52("div", { className: "mb-6", children: [
|
|
14114
14111
|
title && /* @__PURE__ */ jsx82("h2", { className: "text-xl md:text-2xl font-bold text-foreground mb-2", children: title }),
|
|
14115
14112
|
description && /* @__PURE__ */ jsx82("p", { className: "text-muted-foreground", children: description })
|
|
14116
14113
|
] }),
|
|
@@ -14200,7 +14197,7 @@ __name(Stack, "Stack");
|
|
|
14200
14197
|
// blocks/header/header-block.tsx
|
|
14201
14198
|
import { useState as useState22, useEffect as useEffect15 } from "react";
|
|
14202
14199
|
import { Menu as Menu3, ChevronDown as ChevronDown8 } from "lucide-react";
|
|
14203
|
-
import { jsx as jsx83, jsxs as
|
|
14200
|
+
import { jsx as jsx83, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
14204
14201
|
var DefaultLink = /* @__PURE__ */ __name(({ href, className, children, onClick }) => /* @__PURE__ */ jsx83("a", { href, className, onClick, children }), "DefaultLink");
|
|
14205
14202
|
function HeaderBlock({
|
|
14206
14203
|
data,
|
|
@@ -14220,14 +14217,14 @@ function HeaderBlock({
|
|
|
14220
14217
|
}, []);
|
|
14221
14218
|
const renderDesktopMenuItem = /* @__PURE__ */ __name((item) => {
|
|
14222
14219
|
if (item.type === "dropdown" && item.children) {
|
|
14223
|
-
return /* @__PURE__ */
|
|
14224
|
-
/* @__PURE__ */
|
|
14220
|
+
return /* @__PURE__ */ jsxs53(DropdownMenu, { children: [
|
|
14221
|
+
/* @__PURE__ */ jsxs53(DropdownMenuTrigger, { className: "flex items-center gap-1 px-3 py-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-md", children: [
|
|
14225
14222
|
item.title,
|
|
14226
14223
|
/* @__PURE__ */ jsx83(ChevronDown8, { className: "w-4 h-4" })
|
|
14227
14224
|
] }),
|
|
14228
14225
|
/* @__PURE__ */ jsx83(DropdownMenuContent, { align: "start", className: "w-56", children: item.children.map((child) => {
|
|
14229
14226
|
if (child.type === "dropdown") {
|
|
14230
|
-
return /* @__PURE__ */
|
|
14227
|
+
return /* @__PURE__ */ jsxs53(DropdownMenuSub, { children: [
|
|
14231
14228
|
/* @__PURE__ */ jsx83(DropdownMenuSubTrigger, { children: child.title }),
|
|
14232
14229
|
/* @__PURE__ */ jsx83(DropdownMenuSubContent, { children: child.children?.map((sub) => /* @__PURE__ */ jsx83(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsx83(LinkComponent, { href: sub.href || "#", className: "cursor-pointer w-full", children: sub.title }) }, sub.id)) })
|
|
14233
14230
|
] }, child.id);
|
|
@@ -14254,7 +14251,7 @@ function HeaderBlock({
|
|
|
14254
14251
|
sticky ? "fixed top-0 md:top-6" : "relative",
|
|
14255
14252
|
className
|
|
14256
14253
|
),
|
|
14257
|
-
children: /* @__PURE__ */ jsx83(Container, { children: /* @__PURE__ */
|
|
14254
|
+
children: /* @__PURE__ */ jsx83(Container, { children: /* @__PURE__ */ jsxs53(
|
|
14258
14255
|
"div",
|
|
14259
14256
|
{
|
|
14260
14257
|
className: cn(
|
|
@@ -14265,7 +14262,7 @@ function HeaderBlock({
|
|
|
14265
14262
|
children: [
|
|
14266
14263
|
/* @__PURE__ */ jsx83("div", { className: "flex items-center shrink-0", children: LogoComponent }),
|
|
14267
14264
|
/* @__PURE__ */ jsx83("nav", { className: "hidden md:flex md:gap-1 lg:gap-2", children: data.items.map(renderDesktopMenuItem) }),
|
|
14268
|
-
/* @__PURE__ */
|
|
14265
|
+
/* @__PURE__ */ jsxs53("div", { className: "flex items-center gap-3", children: [
|
|
14269
14266
|
slots.rightActionSlot,
|
|
14270
14267
|
/* @__PURE__ */ jsx83("div", { className: "hidden md:flex gap-3", children: data.ctaItems?.map((cta, idx) => /* @__PURE__ */ jsx83(
|
|
14271
14268
|
Button,
|
|
@@ -14278,11 +14275,11 @@ function HeaderBlock({
|
|
|
14278
14275
|
},
|
|
14279
14276
|
idx
|
|
14280
14277
|
)) }),
|
|
14281
|
-
/* @__PURE__ */ jsx83("div", { className: "md:hidden", children: /* @__PURE__ */
|
|
14278
|
+
/* @__PURE__ */ jsx83("div", { className: "md:hidden", children: /* @__PURE__ */ jsxs53(Sheet, { children: [
|
|
14282
14279
|
/* @__PURE__ */ jsx83(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx83("button", { className: "p-2 text-muted-foreground hover:text-foreground", children: slots.menuIcon || /* @__PURE__ */ jsx83(Menu3, { className: "w-5 h-5" }) }) }),
|
|
14283
|
-
/* @__PURE__ */
|
|
14280
|
+
/* @__PURE__ */ jsxs53(SheetContent, { side: "right", className: "w-[300px] sm:w-[400px]", children: [
|
|
14284
14281
|
/* @__PURE__ */ jsx83(SheetHeader, { className: "px-1 text-left", children: /* @__PURE__ */ jsx83(SheetTitle, { className: "text-lg font-bold", children: "Menu" }) }),
|
|
14285
|
-
/* @__PURE__ */
|
|
14282
|
+
/* @__PURE__ */ jsxs53("div", { className: "flex flex-col gap-6 mt-6 overflow-y-auto", children: [
|
|
14286
14283
|
/* @__PURE__ */ jsx83("nav", { className: "flex flex-col space-y-4", children: data.items.map((item) => /* @__PURE__ */ jsx83("div", { className: "flex flex-col gap-2", children: item.type === "link" ? /* @__PURE__ */ jsx83(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx83(
|
|
14287
14284
|
LinkComponent,
|
|
14288
14285
|
{
|
|
@@ -14290,7 +14287,7 @@ function HeaderBlock({
|
|
|
14290
14287
|
className: "text-lg font-medium text-foreground py-1",
|
|
14291
14288
|
children: item.title
|
|
14292
14289
|
}
|
|
14293
|
-
) }) : /* @__PURE__ */
|
|
14290
|
+
) }) : /* @__PURE__ */ jsxs53("div", { className: "flex flex-col gap-2", children: [
|
|
14294
14291
|
/* @__PURE__ */ jsx83("span", { className: "text-sm font-semibold text-muted-foreground uppercase tracking-wide", children: item.title }),
|
|
14295
14292
|
/* @__PURE__ */ jsx83("div", { className: "pl-4 flex flex-col gap-2 border-l border-border ml-1", children: item.children?.map((child) => /* @__PURE__ */ jsx83(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx83(
|
|
14296
14293
|
LinkComponent,
|
|
@@ -14325,7 +14322,7 @@ __name(HeaderBlock, "HeaderBlock");
|
|
|
14325
14322
|
// blocks/footer/footer-block.tsx
|
|
14326
14323
|
import React48 from "react";
|
|
14327
14324
|
import { Twitter, Instagram, Facebook, Youtube, Linkedin, Hash, Github } from "lucide-react";
|
|
14328
|
-
import { jsx as jsx84, jsxs as
|
|
14325
|
+
import { jsx as jsx84, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
14329
14326
|
var DefaultLink2 = /* @__PURE__ */ __name(({ href, className, children, target, rel }) => /* @__PURE__ */ jsx84("a", { href, className, target, rel, children }), "DefaultLink");
|
|
14330
14327
|
function SocialIconRenderer({ icon }) {
|
|
14331
14328
|
if (React48.isValidElement(icon)) return icon;
|
|
@@ -14360,8 +14357,8 @@ function FooterBlock({
|
|
|
14360
14357
|
const LinkComponent = slots.linkComponent || DefaultLink2;
|
|
14361
14358
|
const LogoComponent = slots.logo || /* @__PURE__ */ jsx84(Logo, {});
|
|
14362
14359
|
const { branding, columns, social, legal } = data;
|
|
14363
|
-
return /* @__PURE__ */
|
|
14364
|
-
/* @__PURE__ */ jsx84(Container, { children: /* @__PURE__ */
|
|
14360
|
+
return /* @__PURE__ */ jsxs54("footer", { className: cn("bg-background text-foreground", className), children: [
|
|
14361
|
+
/* @__PURE__ */ jsx84(Container, { children: /* @__PURE__ */ jsxs54(
|
|
14365
14362
|
"div",
|
|
14366
14363
|
{
|
|
14367
14364
|
className: cn(
|
|
@@ -14369,9 +14366,9 @@ function FooterBlock({
|
|
|
14369
14366
|
border && "border-t border-border"
|
|
14370
14367
|
),
|
|
14371
14368
|
children: [
|
|
14372
|
-
/* @__PURE__ */
|
|
14369
|
+
/* @__PURE__ */ jsxs54("div", { className: "space-y-4 sm:col-span-12 lg:col-span-4", children: [
|
|
14373
14370
|
/* @__PURE__ */ jsx84("div", { className: "-ml-3 flex items-center", children: LogoComponent }),
|
|
14374
|
-
/* @__PURE__ */
|
|
14371
|
+
/* @__PURE__ */ jsxs54("div", { className: "text-sm text-muted-foreground", children: [
|
|
14375
14372
|
"\xA9 ",
|
|
14376
14373
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
14377
14374
|
" ",
|
|
@@ -14390,12 +14387,12 @@ function FooterBlock({
|
|
|
14390
14387
|
". ",
|
|
14391
14388
|
branding.copyrightText
|
|
14392
14389
|
] }),
|
|
14393
|
-
legal && legal.length > 0 && /* @__PURE__ */ jsx84("div", { className: "text-sm text-muted-foreground flex flex-wrap gap-2", children: legal.map((item, index) => /* @__PURE__ */
|
|
14390
|
+
legal && legal.length > 0 && /* @__PURE__ */ jsx84("div", { className: "text-sm text-muted-foreground flex flex-wrap gap-2", children: legal.map((item, index) => /* @__PURE__ */ jsxs54("span", { className: "flex items-center gap-2", children: [
|
|
14394
14391
|
/* @__PURE__ */ jsx84(LinkComponent, { href: item.href, className: "hover:text-foreground transition-colors", children: item.title }),
|
|
14395
14392
|
index < legal.length - 1 && /* @__PURE__ */ jsx84("span", { className: "opacity-50", children: "|" })
|
|
14396
14393
|
] }, index)) })
|
|
14397
14394
|
] }),
|
|
14398
|
-
columns.map((col, idx) => /* @__PURE__ */
|
|
14395
|
+
columns.map((col, idx) => /* @__PURE__ */ jsxs54("div", { className: "space-y-3 sm:col-span-6 md:col-span-3 lg:col-span-2", children: [
|
|
14399
14396
|
/* @__PURE__ */ jsx84("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: col.title }),
|
|
14400
14397
|
/* @__PURE__ */ jsx84("ul", { className: "space-y-2.5 text-sm", children: col.links.map((link, lIdx) => /* @__PURE__ */ jsx84("li", { children: /* @__PURE__ */ jsx84(
|
|
14401
14398
|
LinkComponent,
|
|
@@ -14406,7 +14403,7 @@ function FooterBlock({
|
|
|
14406
14403
|
}
|
|
14407
14404
|
) }, lIdx)) })
|
|
14408
14405
|
] }, idx)),
|
|
14409
|
-
/* @__PURE__ */
|
|
14406
|
+
/* @__PURE__ */ jsxs54("div", { className: "space-y-3 sm:col-span-6 md:col-span-3 lg:col-span-2", children: [
|
|
14410
14407
|
/* @__PURE__ */ jsx84("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: "Social" }),
|
|
14411
14408
|
social && /* @__PURE__ */ jsx84("ul", { className: "flex flex-wrap gap-3 items-center", children: social.map((item, idx) => /* @__PURE__ */ jsx84("li", { children: /* @__PURE__ */ jsx84(
|
|
14412
14409
|
LinkComponent,
|