@mindtris/ui 0.1.9 → 0.1.10
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.mjs +295 -293
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4854,36 +4854,38 @@ Switch.displayName = "Switch";
|
|
|
4854
4854
|
import * as React14 from "react";
|
|
4855
4855
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
4856
4856
|
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
|
-
|
|
4857
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
4858
|
+
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");
|
|
4859
|
+
var Checkbox = React14.forwardRef(({ className, checked, ...props }, ref) => {
|
|
4860
|
+
const state = checked === "indeterminate" ? "indeterminate" : checked === true ? "checked" : "unchecked";
|
|
4861
|
+
return /* @__PURE__ */ jsx22(
|
|
4862
|
+
CheckboxPrimitive.Root,
|
|
4863
|
+
{
|
|
4864
|
+
ref,
|
|
4865
|
+
"data-slot": "checkbox",
|
|
4866
|
+
checked,
|
|
4867
|
+
className: cn(
|
|
4868
|
+
"peer h-4 w-4 shrink-0 rounded border border-input bg-field outline-none",
|
|
4869
|
+
"hover:border-border/80",
|
|
4870
|
+
"focus-visible:ring-0 focus-visible:border-foreground/40",
|
|
4871
|
+
"data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
4872
|
+
"data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground",
|
|
4873
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
4874
|
+
"transition-colors",
|
|
4875
|
+
className
|
|
4876
|
+
),
|
|
4877
|
+
...props,
|
|
4878
|
+
children: /* @__PURE__ */ jsx22(
|
|
4879
|
+
CheckboxPrimitive.Indicator,
|
|
4880
|
+
{
|
|
4881
|
+
"data-slot": "checkbox-indicator",
|
|
4882
|
+
className: "flex items-center justify-center text-current",
|
|
4883
|
+
children: /* @__PURE__ */ jsx22(CheckboxIndicatorContent, { state })
|
|
4884
|
+
}
|
|
4885
|
+
)
|
|
4886
|
+
}
|
|
4887
|
+
);
|
|
4888
|
+
});
|
|
4887
4889
|
Checkbox.displayName = "Checkbox";
|
|
4888
4890
|
|
|
4889
4891
|
// components/ui/radio-group.tsx
|
|
@@ -4957,7 +4959,7 @@ RadioGroupItem.displayName = "RadioGroupItem";
|
|
|
4957
4959
|
// components/ui/chip.tsx
|
|
4958
4960
|
import * as React16 from "react";
|
|
4959
4961
|
import { X } from "lucide-react";
|
|
4960
|
-
import { jsx as jsx24, jsxs as
|
|
4962
|
+
import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
4961
4963
|
var chipSelectedVariants = createVariants({
|
|
4962
4964
|
base: "border transition-colors",
|
|
4963
4965
|
variants: {
|
|
@@ -5002,7 +5004,7 @@ function Chip({
|
|
|
5002
5004
|
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
5005
|
const effectiveVariant = variant === "default" ? "primary" : variant;
|
|
5004
5006
|
const variantClass = isSelected ? chipSelectedVariants({ variant: effectiveVariant }) : chipUnselectedClass;
|
|
5005
|
-
return /* @__PURE__ */
|
|
5007
|
+
return /* @__PURE__ */ jsxs12(
|
|
5006
5008
|
"button",
|
|
5007
5009
|
{
|
|
5008
5010
|
type: "button",
|
|
@@ -5076,7 +5078,7 @@ Select.displayName = "Select";
|
|
|
5076
5078
|
// components/ui/native-select.tsx
|
|
5077
5079
|
import * as React18 from "react";
|
|
5078
5080
|
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
5079
|
-
import { jsx as jsx26, jsxs as
|
|
5081
|
+
import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
5080
5082
|
var sizeClasses3 = {
|
|
5081
5083
|
sm: "h-8 text-xs px-2.5",
|
|
5082
5084
|
default: "h-10 text-sm px-3",
|
|
@@ -5091,7 +5093,7 @@ var NativeSelect = React18.forwardRef(
|
|
|
5091
5093
|
children,
|
|
5092
5094
|
...props
|
|
5093
5095
|
}, ref) => {
|
|
5094
|
-
return /* @__PURE__ */
|
|
5096
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn("relative inline-flex", fullWidth && "w-full"), children: [
|
|
5095
5097
|
/* @__PURE__ */ jsx26(
|
|
5096
5098
|
"select",
|
|
5097
5099
|
{
|
|
@@ -5154,7 +5156,7 @@ var Label = React19.forwardRef(
|
|
|
5154
5156
|
Label.displayName = "Label";
|
|
5155
5157
|
|
|
5156
5158
|
// components/ui/field.tsx
|
|
5157
|
-
import { jsx as jsx28, jsxs as
|
|
5159
|
+
import { jsx as jsx28, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
5158
5160
|
function Field({
|
|
5159
5161
|
label,
|
|
5160
5162
|
htmlFor,
|
|
@@ -5170,7 +5172,7 @@ function Field({
|
|
|
5170
5172
|
}) {
|
|
5171
5173
|
const generatedId = React20.useId();
|
|
5172
5174
|
const fieldId = idProp ?? generatedId;
|
|
5173
|
-
return /* @__PURE__ */
|
|
5175
|
+
return /* @__PURE__ */ jsxs14(
|
|
5174
5176
|
"div",
|
|
5175
5177
|
{
|
|
5176
5178
|
"data-slot": "field",
|
|
@@ -5178,7 +5180,7 @@ function Field({
|
|
|
5178
5180
|
className: cn("grid gap-2", className),
|
|
5179
5181
|
...props,
|
|
5180
5182
|
children: [
|
|
5181
|
-
label ? /* @__PURE__ */
|
|
5183
|
+
label ? /* @__PURE__ */ jsxs14(Label, { htmlFor: htmlFor ?? fieldId, className: "text-sm font-medium text-foreground", children: [
|
|
5182
5184
|
label,
|
|
5183
5185
|
required2 ? /* @__PURE__ */ jsx28("span", { className: "ml-0.5 text-destructive", "aria-hidden": true, children: "*" }) : null
|
|
5184
5186
|
] }) : null,
|
|
@@ -5216,7 +5218,7 @@ function Field({
|
|
|
5216
5218
|
__name(Field, "Field");
|
|
5217
5219
|
|
|
5218
5220
|
// components/ui/empty.tsx
|
|
5219
|
-
import { jsx as jsx29, jsxs as
|
|
5221
|
+
import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
5220
5222
|
var sizeClasses4 = {
|
|
5221
5223
|
sm: "py-8 gap-3",
|
|
5222
5224
|
default: "py-12 gap-4",
|
|
@@ -5232,7 +5234,7 @@ function Empty({
|
|
|
5232
5234
|
children,
|
|
5233
5235
|
...props
|
|
5234
5236
|
}) {
|
|
5235
|
-
return /* @__PURE__ */
|
|
5237
|
+
return /* @__PURE__ */ jsxs15(
|
|
5236
5238
|
"div",
|
|
5237
5239
|
{
|
|
5238
5240
|
"data-slot": "empty",
|
|
@@ -5475,7 +5477,7 @@ Separator2.displayName = "Separator";
|
|
|
5475
5477
|
// components/ui/drawer.tsx
|
|
5476
5478
|
import { X as X2 } from "lucide-react";
|
|
5477
5479
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
5478
|
-
import { jsx as jsx32, jsxs as
|
|
5480
|
+
import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
5479
5481
|
function Drawer({ ...props }) {
|
|
5480
5482
|
return /* @__PURE__ */ jsx32(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
|
|
5481
5483
|
}
|
|
@@ -5515,9 +5517,9 @@ function DrawerContent({
|
|
|
5515
5517
|
showCloseButton = true,
|
|
5516
5518
|
...props
|
|
5517
5519
|
}) {
|
|
5518
|
-
return /* @__PURE__ */
|
|
5520
|
+
return /* @__PURE__ */ jsxs16(DrawerPortal, { children: [
|
|
5519
5521
|
/* @__PURE__ */ jsx32(DrawerOverlay, {}),
|
|
5520
|
-
/* @__PURE__ */
|
|
5522
|
+
/* @__PURE__ */ jsxs16(
|
|
5521
5523
|
DrawerPrimitive.Content,
|
|
5522
5524
|
{
|
|
5523
5525
|
"data-slot": "drawer-content",
|
|
@@ -5535,7 +5537,7 @@ function DrawerContent({
|
|
|
5535
5537
|
children: [
|
|
5536
5538
|
/* @__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
5539
|
children,
|
|
5538
|
-
showCloseButton ? /* @__PURE__ */
|
|
5540
|
+
showCloseButton ? /* @__PURE__ */ jsxs16(
|
|
5539
5541
|
DrawerPrimitive.Close,
|
|
5540
5542
|
{
|
|
5541
5543
|
"data-slot": "drawer-close",
|
|
@@ -5613,7 +5615,7 @@ function DrawerDescription({ className, ...props }) {
|
|
|
5613
5615
|
__name(DrawerDescription, "DrawerDescription");
|
|
5614
5616
|
|
|
5615
5617
|
// components/ui/dialog.tsx
|
|
5616
|
-
import { jsx as jsx33, jsxs as
|
|
5618
|
+
import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
5617
5619
|
function Dialog({ ...props }) {
|
|
5618
5620
|
return /* @__PURE__ */ jsx33(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
5619
5621
|
}
|
|
@@ -5653,9 +5655,9 @@ function DialogContent({
|
|
|
5653
5655
|
showCloseButton = true,
|
|
5654
5656
|
...props
|
|
5655
5657
|
}) {
|
|
5656
|
-
return /* @__PURE__ */
|
|
5658
|
+
return /* @__PURE__ */ jsxs17(DialogPortal, { children: [
|
|
5657
5659
|
/* @__PURE__ */ jsx33(DialogOverlay, {}),
|
|
5658
|
-
/* @__PURE__ */
|
|
5660
|
+
/* @__PURE__ */ jsxs17(
|
|
5659
5661
|
DialogPrimitive.Content,
|
|
5660
5662
|
{
|
|
5661
5663
|
"data-slot": "dialog-content",
|
|
@@ -5666,7 +5668,7 @@ function DialogContent({
|
|
|
5666
5668
|
...props,
|
|
5667
5669
|
children: [
|
|
5668
5670
|
children,
|
|
5669
|
-
showCloseButton ? /* @__PURE__ */
|
|
5671
|
+
showCloseButton ? /* @__PURE__ */ jsxs17(
|
|
5670
5672
|
DialogPrimitive.Close,
|
|
5671
5673
|
{
|
|
5672
5674
|
"data-slot": "dialog-close",
|
|
@@ -5751,8 +5753,8 @@ function ResponsiveDialog({
|
|
|
5751
5753
|
const isDesktop = useMediaQuery(desktopQuery);
|
|
5752
5754
|
const resolvedMode = mode ?? (isDesktop ? "dialog" : "drawer");
|
|
5753
5755
|
if (resolvedMode === "dialog") {
|
|
5754
|
-
return /* @__PURE__ */ jsx33(Dialog, { open, onOpenChange, children: /* @__PURE__ */
|
|
5755
|
-
title || description ? /* @__PURE__ */
|
|
5756
|
+
return /* @__PURE__ */ jsx33(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs17(DialogContent, { className: cn("p-0 overflow-hidden", contentClassName), showCloseButton: !hideClose, children: [
|
|
5757
|
+
title || description ? /* @__PURE__ */ jsxs17(DialogHeader, { className: cn("px-6 pt-6 pb-4", headerClassName), children: [
|
|
5756
5758
|
title ? /* @__PURE__ */ jsx33(DialogTitle, { className: "text-base", children: title }) : null,
|
|
5757
5759
|
description ? /* @__PURE__ */ jsx33(DialogDescription, { children: description }) : null
|
|
5758
5760
|
] }) : null,
|
|
@@ -5762,9 +5764,9 @@ function ResponsiveDialog({
|
|
|
5762
5764
|
footer ? /* @__PURE__ */ jsx33(DialogFooter, { className: cn("px-6 pt-4 pb-6", footerClassName), children: footer }) : null
|
|
5763
5765
|
] }) });
|
|
5764
5766
|
}
|
|
5765
|
-
return /* @__PURE__ */ jsx33(Drawer, { open, onOpenChange, direction: drawerDirection, children: /* @__PURE__ */
|
|
5767
|
+
return /* @__PURE__ */ jsx33(Drawer, { open, onOpenChange, direction: drawerDirection, children: /* @__PURE__ */ jsxs17(DrawerContent, { className: cn("p-0", contentClassName), children: [
|
|
5766
5768
|
!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__ */
|
|
5769
|
+
title || description ? /* @__PURE__ */ jsxs17(DrawerHeader, { className: cn("px-6 pt-6 pb-4", headerClassName), children: [
|
|
5768
5770
|
title ? /* @__PURE__ */ jsx33(DrawerTitle, { className: "text-base", children: title }) : null,
|
|
5769
5771
|
description ? /* @__PURE__ */ jsx33(DrawerDescription, { children: description }) : null
|
|
5770
5772
|
] }) : null,
|
|
@@ -5777,7 +5779,7 @@ function ResponsiveDialog({
|
|
|
5777
5779
|
__name(ResponsiveDialog, "ResponsiveDialog");
|
|
5778
5780
|
|
|
5779
5781
|
// components/ui/command.tsx
|
|
5780
|
-
import { jsx as jsx34, jsxs as
|
|
5782
|
+
import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5781
5783
|
var Command = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
5782
5784
|
CommandPrimitive,
|
|
5783
5785
|
{
|
|
@@ -5800,8 +5802,8 @@ function CommandDialog({
|
|
|
5800
5802
|
showCloseButton = true,
|
|
5801
5803
|
...props
|
|
5802
5804
|
}) {
|
|
5803
|
-
return /* @__PURE__ */
|
|
5804
|
-
/* @__PURE__ */
|
|
5805
|
+
return /* @__PURE__ */ jsxs18(Dialog, { ...props, children: [
|
|
5806
|
+
/* @__PURE__ */ jsxs18(DialogHeader, { className: "sr-only", children: [
|
|
5805
5807
|
/* @__PURE__ */ jsx34(DialogTitle, { children: title }),
|
|
5806
5808
|
/* @__PURE__ */ jsx34(DialogDescription, { children: description })
|
|
5807
5809
|
] }),
|
|
@@ -5823,7 +5825,7 @@ function CommandDialog({
|
|
|
5823
5825
|
] });
|
|
5824
5826
|
}
|
|
5825
5827
|
__name(CommandDialog, "CommandDialog");
|
|
5826
|
-
var CommandInput = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
5828
|
+
var CommandInput = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
5827
5829
|
"div",
|
|
5828
5830
|
{
|
|
5829
5831
|
"data-slot": "command-input-wrapper",
|
|
@@ -5922,7 +5924,7 @@ function CommandShortcut({ className, ...props }) {
|
|
|
5922
5924
|
__name(CommandShortcut, "CommandShortcut");
|
|
5923
5925
|
|
|
5924
5926
|
// components/ui/combobox.tsx
|
|
5925
|
-
import { jsx as jsx35, jsxs as
|
|
5927
|
+
import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5926
5928
|
function Combobox({
|
|
5927
5929
|
value,
|
|
5928
5930
|
onChange,
|
|
@@ -5948,8 +5950,8 @@ function Combobox({
|
|
|
5948
5950
|
},
|
|
5949
5951
|
[clearable, clearLabel, onChange]
|
|
5950
5952
|
);
|
|
5951
|
-
return /* @__PURE__ */
|
|
5952
|
-
/* @__PURE__ */ jsx35(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
5953
|
+
return /* @__PURE__ */ jsxs19(Popover, { open, onOpenChange: setOpen, children: [
|
|
5954
|
+
/* @__PURE__ */ jsx35(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs19(
|
|
5953
5955
|
Button,
|
|
5954
5956
|
{
|
|
5955
5957
|
variant: "outline",
|
|
@@ -5975,16 +5977,16 @@ function Combobox({
|
|
|
5975
5977
|
{
|
|
5976
5978
|
className: cn("w-[--radix-popover-trigger-width] p-0", contentClassName),
|
|
5977
5979
|
align: "start",
|
|
5978
|
-
children: /* @__PURE__ */
|
|
5980
|
+
children: /* @__PURE__ */ jsxs19(Command, { children: [
|
|
5979
5981
|
/* @__PURE__ */ jsx35(CommandInput, { placeholder: searchPlaceholder }),
|
|
5980
|
-
/* @__PURE__ */
|
|
5982
|
+
/* @__PURE__ */ jsxs19(CommandList, { children: [
|
|
5981
5983
|
/* @__PURE__ */ jsx35(CommandEmpty, { children: emptyMessage }),
|
|
5982
|
-
/* @__PURE__ */
|
|
5983
|
-
clearable && value ? /* @__PURE__ */
|
|
5984
|
+
/* @__PURE__ */ jsxs19(CommandGroup, { children: [
|
|
5985
|
+
clearable && value ? /* @__PURE__ */ jsxs19(CommandItem, { value: "__clear__", onSelect: () => handleSelect("__clear__"), children: [
|
|
5984
5986
|
/* @__PURE__ */ jsx35("span", { className: "mr-2 h-4 w-4 shrink-0", "aria-hidden": true }),
|
|
5985
5987
|
clearLabel
|
|
5986
5988
|
] }) : null,
|
|
5987
|
-
options.map((opt) => /* @__PURE__ */
|
|
5989
|
+
options.map((opt) => /* @__PURE__ */ jsxs19(
|
|
5988
5990
|
CommandItem,
|
|
5989
5991
|
{
|
|
5990
5992
|
value: opt.label,
|
|
@@ -6017,7 +6019,7 @@ __name(Combobox, "Combobox");
|
|
|
6017
6019
|
// components/ui/menubar.tsx
|
|
6018
6020
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
6019
6021
|
import { Check as Check3, ChevronRight as ChevronRight5 } from "lucide-react";
|
|
6020
|
-
import { jsx as jsx36, jsxs as
|
|
6022
|
+
import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
6021
6023
|
var Menubar = MenubarPrimitive.Root;
|
|
6022
6024
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
6023
6025
|
var MenubarTrigger = MenubarPrimitive.Trigger;
|
|
@@ -6086,7 +6088,7 @@ function MenubarCheckboxItem({
|
|
|
6086
6088
|
checked,
|
|
6087
6089
|
...props
|
|
6088
6090
|
}) {
|
|
6089
|
-
return /* @__PURE__ */
|
|
6091
|
+
return /* @__PURE__ */ jsxs20(
|
|
6090
6092
|
MenubarPrimitive.CheckboxItem,
|
|
6091
6093
|
{
|
|
6092
6094
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -6111,7 +6113,7 @@ function MenubarRadioItem({
|
|
|
6111
6113
|
children,
|
|
6112
6114
|
...props
|
|
6113
6115
|
}) {
|
|
6114
|
-
return /* @__PURE__ */
|
|
6116
|
+
return /* @__PURE__ */ jsxs20(
|
|
6115
6117
|
MenubarPrimitive.RadioItem,
|
|
6116
6118
|
{
|
|
6117
6119
|
"data-slot": "menubar-radio-item",
|
|
@@ -6190,7 +6192,7 @@ function MenubarSubTrigger({
|
|
|
6190
6192
|
children,
|
|
6191
6193
|
...props
|
|
6192
6194
|
}) {
|
|
6193
|
-
return /* @__PURE__ */
|
|
6195
|
+
return /* @__PURE__ */ jsxs20(
|
|
6194
6196
|
MenubarPrimitive.SubTrigger,
|
|
6195
6197
|
{
|
|
6196
6198
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -6238,7 +6240,7 @@ __name(MenubarSubContent, "MenubarSubContent");
|
|
|
6238
6240
|
// components/ui/context-menu.tsx
|
|
6239
6241
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
6240
6242
|
import { Check as Check4, ChevronRight as ChevronRight6 } from "lucide-react";
|
|
6241
|
-
import { jsx as jsx37, jsxs as
|
|
6243
|
+
import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
6242
6244
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
6243
6245
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
6244
6246
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -6300,7 +6302,7 @@ function ContextMenuCheckboxItem({
|
|
|
6300
6302
|
checked,
|
|
6301
6303
|
...props
|
|
6302
6304
|
}) {
|
|
6303
|
-
return /* @__PURE__ */
|
|
6305
|
+
return /* @__PURE__ */ jsxs21(
|
|
6304
6306
|
ContextMenuPrimitive.CheckboxItem,
|
|
6305
6307
|
{
|
|
6306
6308
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -6325,7 +6327,7 @@ function ContextMenuRadioItem({
|
|
|
6325
6327
|
children,
|
|
6326
6328
|
...props
|
|
6327
6329
|
}) {
|
|
6328
|
-
return /* @__PURE__ */
|
|
6330
|
+
return /* @__PURE__ */ jsxs21(
|
|
6329
6331
|
ContextMenuPrimitive.RadioItem,
|
|
6330
6332
|
{
|
|
6331
6333
|
"data-slot": "context-menu-radio-item",
|
|
@@ -6404,7 +6406,7 @@ function ContextMenuSubTrigger({
|
|
|
6404
6406
|
children,
|
|
6405
6407
|
...props
|
|
6406
6408
|
}) {
|
|
6407
|
-
return /* @__PURE__ */
|
|
6409
|
+
return /* @__PURE__ */ jsxs21(
|
|
6408
6410
|
ContextMenuPrimitive.SubTrigger,
|
|
6409
6411
|
{
|
|
6410
6412
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -6455,7 +6457,7 @@ import Image3 from "next/image";
|
|
|
6455
6457
|
import { Check as Check5, CircleCheck, ChevronDown as ChevronDown4, X as X4 } from "lucide-react";
|
|
6456
6458
|
import { Menu as Menu2, MenuButton, MenuItem, MenuItems, Transition } from "@headlessui/react";
|
|
6457
6459
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
6458
|
-
import { Fragment as Fragment3, jsx as jsx38, jsxs as
|
|
6460
|
+
import { Fragment as Fragment3, jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6459
6461
|
function DropdownSelect({
|
|
6460
6462
|
value,
|
|
6461
6463
|
options,
|
|
@@ -6480,8 +6482,8 @@ function DropdownSelect({
|
|
|
6480
6482
|
const valOpts = labelOptionValue != null ? options.filter((o) => o.value !== labelOptionValue) : options;
|
|
6481
6483
|
const q = searchQuery.trim().toLowerCase();
|
|
6482
6484
|
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__ */
|
|
6485
|
+
const content = /* @__PURE__ */ jsx38("div", { className: "font-medium text-sm text-muted-foreground", children: optionVariant === "checkbox" && labelOpt ? /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
6486
|
+
/* @__PURE__ */ jsxs22(
|
|
6485
6487
|
"div",
|
|
6486
6488
|
{
|
|
6487
6489
|
role: "option",
|
|
@@ -6505,7 +6507,7 @@ function DropdownSelect({
|
|
|
6505
6507
|
}
|
|
6506
6508
|
),
|
|
6507
6509
|
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__ */
|
|
6510
|
+
filtered.map((opt) => /* @__PURE__ */ jsxs22("div", { role: "option", "aria-selected": opt.value === value, tabIndex: 0, onClick: () => onChange(opt.value), onKeyDown: (e) => {
|
|
6509
6511
|
if (e.key === "Enter" || e.key === " ") {
|
|
6510
6512
|
e.preventDefault();
|
|
6511
6513
|
onChange(opt.value);
|
|
@@ -6514,13 +6516,13 @@ function DropdownSelect({
|
|
|
6514
6516
|
/* @__PURE__ */ jsx38(Checkbox, { checked: opt.value === value, className: "pointer-events-none shrink-0", "aria-hidden": true }),
|
|
6515
6517
|
/* @__PURE__ */ jsx38("span", { className: "truncate", children: opt.label })
|
|
6516
6518
|
] }, opt.value))
|
|
6517
|
-
] }) : options.map((opt) => /* @__PURE__ */
|
|
6519
|
+
] }) : 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
6520
|
/* @__PURE__ */ jsx38(CircleCheck, { className: cn("h-4 w-4 shrink-0", opt.value === value ? "text-foreground" : "invisible"), "aria-hidden": true }),
|
|
6519
6521
|
/* @__PURE__ */ jsx38("span", { className: "truncate", children: opt.label })
|
|
6520
6522
|
] }, opt.value)) });
|
|
6521
|
-
return /* @__PURE__ */
|
|
6522
|
-
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
6523
|
-
/* @__PURE__ */
|
|
6523
|
+
return /* @__PURE__ */ jsxs22(Popover, { children: [
|
|
6524
|
+
/* @__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: [
|
|
6525
|
+
/* @__PURE__ */ jsxs22("span", { className: "flex min-w-0 shrink items-center gap-1.5 truncate", children: [
|
|
6524
6526
|
buttonLeadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0 text-muted-foreground", children: buttonLeadingIcon }) : null,
|
|
6525
6527
|
!filterLabel && selected?.leadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0", children: selected.leadingIcon }) : null,
|
|
6526
6528
|
/* @__PURE__ */ jsx38("span", { className: cn("truncate", isActive && "text-foreground"), children: triggerLabel }),
|
|
@@ -6550,8 +6552,8 @@ function ClassicDropdown({
|
|
|
6550
6552
|
setTriggerWidth(triggerRef.current.offsetWidth);
|
|
6551
6553
|
}
|
|
6552
6554
|
}, [selected, options]);
|
|
6553
|
-
return /* @__PURE__ */
|
|
6554
|
-
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
6555
|
+
return /* @__PURE__ */ jsxs22(Popover, { children: [
|
|
6556
|
+
/* @__PURE__ */ jsx38(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs22(
|
|
6555
6557
|
"button",
|
|
6556
6558
|
{
|
|
6557
6559
|
ref: triggerRef,
|
|
@@ -6567,7 +6569,7 @@ function ClassicDropdown({
|
|
|
6567
6569
|
className
|
|
6568
6570
|
),
|
|
6569
6571
|
children: [
|
|
6570
|
-
/* @__PURE__ */
|
|
6572
|
+
/* @__PURE__ */ jsxs22("span", { className: "flex items-center gap-2", children: [
|
|
6571
6573
|
buttonLeadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0 text-muted-foreground", children: buttonLeadingIcon }) : null,
|
|
6572
6574
|
selected?.leadingIcon ? /* @__PURE__ */ jsx38("span", { className: "shrink-0", children: selected.leadingIcon }) : null,
|
|
6573
6575
|
/* @__PURE__ */ jsx38("span", { children: selected?.label })
|
|
@@ -6616,7 +6618,7 @@ function DropdownIconMenu({
|
|
|
6616
6618
|
children,
|
|
6617
6619
|
className
|
|
6618
6620
|
}) {
|
|
6619
|
-
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */
|
|
6621
|
+
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
6620
6622
|
/* @__PURE__ */ jsx38(
|
|
6621
6623
|
MenuButton,
|
|
6622
6624
|
{
|
|
@@ -6747,7 +6749,7 @@ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
|
6747
6749
|
}
|
|
6748
6750
|
__name(DropdownMenuItem, "DropdownMenuItem");
|
|
6749
6751
|
function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
|
|
6750
|
-
return /* @__PURE__ */
|
|
6752
|
+
return /* @__PURE__ */ jsxs22(
|
|
6751
6753
|
DropdownMenuPrimitive.CheckboxItem,
|
|
6752
6754
|
{
|
|
6753
6755
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -6772,7 +6774,7 @@ function DropdownMenuRadioGroup({ ...props }) {
|
|
|
6772
6774
|
}
|
|
6773
6775
|
__name(DropdownMenuRadioGroup, "DropdownMenuRadioGroup");
|
|
6774
6776
|
function DropdownMenuRadioItem({ className, children, ...props }) {
|
|
6775
|
-
return /* @__PURE__ */
|
|
6777
|
+
return /* @__PURE__ */ jsxs22(
|
|
6776
6778
|
DropdownMenuPrimitive.RadioItem,
|
|
6777
6779
|
{
|
|
6778
6780
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -6811,7 +6813,7 @@ function DropdownMenuSub({ ...props }) {
|
|
|
6811
6813
|
}
|
|
6812
6814
|
__name(DropdownMenuSub, "DropdownMenuSub");
|
|
6813
6815
|
function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
6814
|
-
return /* @__PURE__ */
|
|
6816
|
+
return /* @__PURE__ */ jsxs22(
|
|
6815
6817
|
DropdownMenuPrimitive.SubTrigger,
|
|
6816
6818
|
{
|
|
6817
6819
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -6871,9 +6873,9 @@ function DropdownProfile({
|
|
|
6871
6873
|
className
|
|
6872
6874
|
}) {
|
|
6873
6875
|
const initials = getInitials(name);
|
|
6874
|
-
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */
|
|
6876
|
+
return /* @__PURE__ */ jsx38(Menu2, { as: "div", className: cn("relative inline-flex", className), children: ({ open }) => /* @__PURE__ */ jsxs22(Fragment3, { children: [
|
|
6875
6877
|
/* @__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__ */
|
|
6878
|
+
/* @__PURE__ */ jsxs22(
|
|
6877
6879
|
Transition,
|
|
6878
6880
|
{
|
|
6879
6881
|
as: "div",
|
|
@@ -6888,7 +6890,7 @@ function DropdownProfile({
|
|
|
6888
6890
|
leaveFrom: "opacity-100",
|
|
6889
6891
|
leaveTo: "opacity-0",
|
|
6890
6892
|
children: [
|
|
6891
|
-
/* @__PURE__ */
|
|
6893
|
+
/* @__PURE__ */ jsxs22("div", { className: "pt-0.5 pb-2 px-3 mb-1 border-b border-border", children: [
|
|
6892
6894
|
/* @__PURE__ */ jsx38("div", { className: "font-medium text-foreground", children: name }),
|
|
6893
6895
|
/* @__PURE__ */ jsx38("div", { className: "text-xs text-muted-foreground italic", children: role })
|
|
6894
6896
|
] }),
|
|
@@ -6912,9 +6914,9 @@ function DropdownProfile({
|
|
|
6912
6914
|
__name(DropdownProfile, "DropdownProfile");
|
|
6913
6915
|
|
|
6914
6916
|
// components/ui/logo.tsx
|
|
6915
|
-
import { jsx as jsx39, jsxs as
|
|
6917
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6916
6918
|
function Logo({ className, ariaLabel = "Logo" } = {}) {
|
|
6917
|
-
return /* @__PURE__ */ jsx39("span", { className: cn("inline-flex", className), children: /* @__PURE__ */
|
|
6919
|
+
return /* @__PURE__ */ jsx39("span", { className: cn("inline-flex", className), children: /* @__PURE__ */ jsxs23(
|
|
6918
6920
|
"svg",
|
|
6919
6921
|
{
|
|
6920
6922
|
width: "60",
|
|
@@ -6926,7 +6928,7 @@ function Logo({ className, ariaLabel = "Logo" } = {}) {
|
|
|
6926
6928
|
"aria-label": ariaLabel,
|
|
6927
6929
|
role: "img",
|
|
6928
6930
|
children: [
|
|
6929
|
-
/* @__PURE__ */
|
|
6931
|
+
/* @__PURE__ */ jsxs23("g", { clipPath: "url(#clip0_4002_249)", children: [
|
|
6930
6932
|
/* @__PURE__ */ jsx39(
|
|
6931
6933
|
"path",
|
|
6932
6934
|
{
|
|
@@ -6964,8 +6966,8 @@ function Logo({ className, ariaLabel = "Logo" } = {}) {
|
|
|
6964
6966
|
}
|
|
6965
6967
|
)
|
|
6966
6968
|
] }),
|
|
6967
|
-
/* @__PURE__ */
|
|
6968
|
-
/* @__PURE__ */
|
|
6969
|
+
/* @__PURE__ */ jsxs23("defs", { children: [
|
|
6970
|
+
/* @__PURE__ */ jsxs23("linearGradient", { id: "paint0_linear_logo", x1: "42.2949", y1: "0", x2: "42.2949", y2: "32", gradientUnits: "userSpaceOnUse", children: [
|
|
6969
6971
|
/* @__PURE__ */ jsx39("stop", { stopColor: "currentColor" }),
|
|
6970
6972
|
/* @__PURE__ */ jsx39("stop", { offset: "1", stopColor: "currentColor", stopOpacity: "0.32" })
|
|
6971
6973
|
] }),
|
|
@@ -6979,7 +6981,7 @@ __name(Logo, "Logo");
|
|
|
6979
6981
|
|
|
6980
6982
|
// components/ui/sidebar.tsx
|
|
6981
6983
|
import * as React26 from "react";
|
|
6982
|
-
import { jsx as jsx40, jsxs as
|
|
6984
|
+
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6983
6985
|
function SidebarLink({
|
|
6984
6986
|
children,
|
|
6985
6987
|
href,
|
|
@@ -6988,7 +6990,7 @@ function SidebarLink({
|
|
|
6988
6990
|
onClick,
|
|
6989
6991
|
className
|
|
6990
6992
|
}) {
|
|
6991
|
-
return /* @__PURE__ */
|
|
6993
|
+
return /* @__PURE__ */ jsxs24(
|
|
6992
6994
|
"a",
|
|
6993
6995
|
{
|
|
6994
6996
|
href,
|
|
@@ -7020,7 +7022,7 @@ function SidebarMenuButton({
|
|
|
7020
7022
|
className,
|
|
7021
7023
|
...props
|
|
7022
7024
|
}) {
|
|
7023
|
-
return /* @__PURE__ */
|
|
7025
|
+
return /* @__PURE__ */ jsxs24(
|
|
7024
7026
|
"button",
|
|
7025
7027
|
{
|
|
7026
7028
|
type: "button",
|
|
@@ -7080,7 +7082,7 @@ function Sidebar({
|
|
|
7080
7082
|
const widthClasses = collapsible === "icon" ? "w-64 lg:w-14 lg:hover:w-64" : "w-64";
|
|
7081
7083
|
const mobilePosition = side === "left" ? "left-0" : "right-0";
|
|
7082
7084
|
const mobileClosedTranslate = side === "left" ? "-translate-x-full" : "translate-x-full";
|
|
7083
|
-
return /* @__PURE__ */
|
|
7085
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn("min-w-fit", className), "data-variant": variant, "data-collapsible": collapsible, "data-side": side, children: [
|
|
7084
7086
|
showBackdrop ? /* @__PURE__ */ jsx40(
|
|
7085
7087
|
"div",
|
|
7086
7088
|
{
|
|
@@ -7092,7 +7094,7 @@ function Sidebar({
|
|
|
7092
7094
|
onClick: () => onOpenChange(false)
|
|
7093
7095
|
}
|
|
7094
7096
|
) : null,
|
|
7095
|
-
/* @__PURE__ */
|
|
7097
|
+
/* @__PURE__ */ jsxs24(
|
|
7096
7098
|
"div",
|
|
7097
7099
|
{
|
|
7098
7100
|
ref: sidebarRef,
|
|
@@ -7216,7 +7218,7 @@ __name(SidebarSeparator, "SidebarSeparator");
|
|
|
7216
7218
|
|
|
7217
7219
|
// components/ui/alert-dialog.tsx
|
|
7218
7220
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
7219
|
-
import { jsx as jsx41, jsxs as
|
|
7221
|
+
import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
7220
7222
|
function AlertDialog({ ...props }) {
|
|
7221
7223
|
return /* @__PURE__ */ jsx41(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
|
|
7222
7224
|
}
|
|
@@ -7247,7 +7249,7 @@ function AlertDialogOverlay({ className, ...props }) {
|
|
|
7247
7249
|
}
|
|
7248
7250
|
__name(AlertDialogOverlay, "AlertDialogOverlay");
|
|
7249
7251
|
function AlertDialogContent({ className, children, ...props }) {
|
|
7250
|
-
return /* @__PURE__ */
|
|
7252
|
+
return /* @__PURE__ */ jsxs25(AlertDialogPortal, { children: [
|
|
7251
7253
|
/* @__PURE__ */ jsx41(AlertDialogOverlay, {}),
|
|
7252
7254
|
/* @__PURE__ */ jsx41(
|
|
7253
7255
|
AlertDialogPrimitive.Content,
|
|
@@ -7350,7 +7352,7 @@ __name(AlertDialogCancel, "AlertDialogCancel");
|
|
|
7350
7352
|
|
|
7351
7353
|
// components/ui/modal.tsx
|
|
7352
7354
|
import { X as X5 } from "lucide-react";
|
|
7353
|
-
import { jsx as jsx42, jsxs as
|
|
7355
|
+
import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
7354
7356
|
function Modal({
|
|
7355
7357
|
open,
|
|
7356
7358
|
onOpenChange,
|
|
@@ -7367,14 +7369,14 @@ function Modal({
|
|
|
7367
7369
|
headerClassName
|
|
7368
7370
|
}) {
|
|
7369
7371
|
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__ */
|
|
7372
|
+
return /* @__PURE__ */ jsx42(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs26(
|
|
7371
7373
|
DialogContent,
|
|
7372
7374
|
{
|
|
7373
7375
|
className: cn("p-0 overflow-hidden", maxW, className, panelClassName),
|
|
7374
7376
|
showCloseButton: false,
|
|
7375
7377
|
children: [
|
|
7376
|
-
title || description || !hideClose ? /* @__PURE__ */ jsx42(DialogHeader, { className: cn("px-5 py-4", headerClassName), children: /* @__PURE__ */
|
|
7377
|
-
/* @__PURE__ */
|
|
7378
|
+
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: [
|
|
7379
|
+
/* @__PURE__ */ jsxs26("div", { className: "min-w-0", children: [
|
|
7378
7380
|
title ? /* @__PURE__ */ jsx42(DialogTitle, { className: "text-base font-semibold text-foreground", children: title }) : null,
|
|
7379
7381
|
description ? /* @__PURE__ */ jsx42(DialogDescription, { className: "mt-1", children: description }) : null
|
|
7380
7382
|
] }),
|
|
@@ -7393,7 +7395,7 @@ __name(Modal, "Modal");
|
|
|
7393
7395
|
// components/ui/sheet.tsx
|
|
7394
7396
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
7395
7397
|
import { X as X6 } from "lucide-react";
|
|
7396
|
-
import { jsx as jsx43, jsxs as
|
|
7398
|
+
import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
7397
7399
|
function Sheet({ ...props }) {
|
|
7398
7400
|
return /* @__PURE__ */ jsx43(DialogPrimitive2.Root, { "data-slot": "sheet", ...props });
|
|
7399
7401
|
}
|
|
@@ -7449,9 +7451,9 @@ function SheetContent({
|
|
|
7449
7451
|
top: "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
7450
7452
|
bottom: "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom"
|
|
7451
7453
|
};
|
|
7452
|
-
return /* @__PURE__ */
|
|
7454
|
+
return /* @__PURE__ */ jsxs27(SheetPortal, { children: [
|
|
7453
7455
|
/* @__PURE__ */ jsx43(SheetOverlay, {}),
|
|
7454
|
-
/* @__PURE__ */
|
|
7456
|
+
/* @__PURE__ */ jsxs27(
|
|
7455
7457
|
DialogPrimitive2.Content,
|
|
7456
7458
|
{
|
|
7457
7459
|
"data-slot": "sheet-content",
|
|
@@ -7468,7 +7470,7 @@ function SheetContent({
|
|
|
7468
7470
|
...props,
|
|
7469
7471
|
children: [
|
|
7470
7472
|
children,
|
|
7471
|
-
showCloseButton ? /* @__PURE__ */
|
|
7473
|
+
showCloseButton ? /* @__PURE__ */ jsxs27(
|
|
7472
7474
|
DialogPrimitive2.Close,
|
|
7473
7475
|
{
|
|
7474
7476
|
"data-slot": "sheet-close",
|
|
@@ -7660,9 +7662,9 @@ function HoverCardContent({ className, align = "center", sideOffset = 8, ...prop
|
|
|
7660
7662
|
__name(HoverCardContent, "HoverCardContent");
|
|
7661
7663
|
|
|
7662
7664
|
// components/ui/card-decorator.tsx
|
|
7663
|
-
import { jsx as jsx46, jsxs as
|
|
7665
|
+
import { jsx as jsx46, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7664
7666
|
function CardDecorator({ className, children, ...props }) {
|
|
7665
|
-
return /* @__PURE__ */
|
|
7667
|
+
return /* @__PURE__ */ jsxs28(
|
|
7666
7668
|
"div",
|
|
7667
7669
|
{
|
|
7668
7670
|
"data-slot": "card-decorator",
|
|
@@ -7757,7 +7759,7 @@ Progress.displayName = "Progress";
|
|
|
7757
7759
|
// components/ui/slider.tsx
|
|
7758
7760
|
import * as React28 from "react";
|
|
7759
7761
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
7760
|
-
import { jsx as jsx48, jsxs as
|
|
7762
|
+
import { jsx as jsx48, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
7761
7763
|
var trackSizeClasses = {
|
|
7762
7764
|
horizontal: { sm: "h-2", md: "h-2.5", lg: "h-3" },
|
|
7763
7765
|
vertical: { sm: "w-2", md: "w-2.5", lg: "w-3" }
|
|
@@ -7820,13 +7822,13 @@ var Slider = React28.forwardRef(
|
|
|
7820
7822
|
const rangeBase = orientation === "vertical" ? "absolute w-full rounded-full" : "absolute h-full rounded-full";
|
|
7821
7823
|
const marksLabelContainer = orientation === "vertical" ? "relative h-full ml-3" : "relative w-full mt-2";
|
|
7822
7824
|
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__ */
|
|
7825
|
+
return /* @__PURE__ */ jsxs29(
|
|
7824
7826
|
"div",
|
|
7825
7827
|
{
|
|
7826
7828
|
"data-slot": "slider-wrapper",
|
|
7827
7829
|
className: cn(orientation === "vertical" ? "flex h-full items-start gap-3" : "w-full"),
|
|
7828
7830
|
children: [
|
|
7829
|
-
/* @__PURE__ */
|
|
7831
|
+
/* @__PURE__ */ jsxs29(
|
|
7830
7832
|
SliderPrimitive.Root,
|
|
7831
7833
|
{
|
|
7832
7834
|
ref,
|
|
@@ -7954,7 +7956,7 @@ var Skeleton = React29.forwardRef(
|
|
|
7954
7956
|
Skeleton.displayName = "Skeleton";
|
|
7955
7957
|
|
|
7956
7958
|
// components/ui/loading-spinner.tsx
|
|
7957
|
-
import { jsx as jsx50, jsxs as
|
|
7959
|
+
import { jsx as jsx50, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
7958
7960
|
var sizeClasses6 = {
|
|
7959
7961
|
xs: "h-3 w-3",
|
|
7960
7962
|
sm: "h-4 w-4",
|
|
@@ -7974,8 +7976,8 @@ function LoadingSpinner({
|
|
|
7974
7976
|
className,
|
|
7975
7977
|
text
|
|
7976
7978
|
}) {
|
|
7977
|
-
return /* @__PURE__ */ jsx50("div", { className: cn("flex items-center justify-center", className), children: /* @__PURE__ */
|
|
7978
|
-
/* @__PURE__ */
|
|
7979
|
+
return /* @__PURE__ */ jsx50("div", { className: cn("flex items-center justify-center", className), children: /* @__PURE__ */ jsxs30("div", { className: "flex items-center space-x-2", children: [
|
|
7980
|
+
/* @__PURE__ */ jsxs30(
|
|
7979
7981
|
"svg",
|
|
7980
7982
|
{
|
|
7981
7983
|
className: cn("animate-spin", sizeClasses6[size], variantClasses[variant]),
|
|
@@ -7992,7 +7994,7 @@ function LoadingSpinner({
|
|
|
7992
7994
|
}
|
|
7993
7995
|
__name(LoadingSpinner, "LoadingSpinner");
|
|
7994
7996
|
function CardSkeleton({ className }) {
|
|
7995
|
-
return /* @__PURE__ */
|
|
7997
|
+
return /* @__PURE__ */ jsxs30(
|
|
7996
7998
|
"div",
|
|
7997
7999
|
{
|
|
7998
8000
|
"data-slot": "card-skeleton",
|
|
@@ -8002,7 +8004,7 @@ function CardSkeleton({ className }) {
|
|
|
8002
8004
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-4 w-3/4" }),
|
|
8003
8005
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-4 w-1/2 mt-2", tone: "accent" }),
|
|
8004
8006
|
/* @__PURE__ */ jsx50(Skeleton, { className: "mt-4 h-40 w-full", radius: "lg" }),
|
|
8005
|
-
/* @__PURE__ */
|
|
8007
|
+
/* @__PURE__ */ jsxs30("div", { className: "mt-4 flex items-center gap-2", children: [
|
|
8006
8008
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-9 w-24", radius: "md" }),
|
|
8007
8009
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-9 w-20", radius: "md", tone: "accent" })
|
|
8008
8010
|
] })
|
|
@@ -8012,7 +8014,7 @@ function CardSkeleton({ className }) {
|
|
|
8012
8014
|
}
|
|
8013
8015
|
__name(CardSkeleton, "CardSkeleton");
|
|
8014
8016
|
function TableSkeleton({ rows = 5, columns = 4 }) {
|
|
8015
|
-
return /* @__PURE__ */
|
|
8017
|
+
return /* @__PURE__ */ jsxs30("div", { className: "rounded-xl border border-border bg-card overflow-hidden", "aria-busy": "true", children: [
|
|
8016
8018
|
/* @__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
8019
|
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
8020
|
] });
|
|
@@ -8021,7 +8023,7 @@ __name(TableSkeleton, "TableSkeleton");
|
|
|
8021
8023
|
|
|
8022
8024
|
// components/ui/error-boundary.tsx
|
|
8023
8025
|
import React30 from "react";
|
|
8024
|
-
import { jsx as jsx51, jsxs as
|
|
8026
|
+
import { jsx as jsx51, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
8025
8027
|
var ErrorBoundary = class extends React30.Component {
|
|
8026
8028
|
static {
|
|
8027
8029
|
__name(this, "ErrorBoundary");
|
|
@@ -8054,7 +8056,7 @@ var ErrorBoundary = class extends React30.Component {
|
|
|
8054
8056
|
const Fallback2 = this.props.fallback;
|
|
8055
8057
|
return /* @__PURE__ */ jsx51(Fallback2, { error: this.state.error, resetError: this.resetError });
|
|
8056
8058
|
}
|
|
8057
|
-
return /* @__PURE__ */
|
|
8059
|
+
return /* @__PURE__ */ jsxs31("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-4", children: [
|
|
8058
8060
|
/* @__PURE__ */ jsx51("h3", { className: "text-sm font-semibold text-destructive mb-2", children: "Theme Error" }),
|
|
8059
8061
|
/* @__PURE__ */ jsx51("p", { className: "text-sm text-muted-foreground mb-4", children: this.state.error?.message || "An error occurred while applying the theme" }),
|
|
8060
8062
|
/* @__PURE__ */ jsx51(Button, { onClick: this.resetError, size: "sm", variant: "outline", children: "Try Again" })
|
|
@@ -8067,7 +8069,7 @@ function ErrorFallback({
|
|
|
8067
8069
|
error,
|
|
8068
8070
|
resetError
|
|
8069
8071
|
}) {
|
|
8070
|
-
return /* @__PURE__ */
|
|
8072
|
+
return /* @__PURE__ */ jsxs31("div", { className: "rounded-lg border border-destructive bg-destructive/10 p-4", children: [
|
|
8071
8073
|
/* @__PURE__ */ jsx51("h3", { className: "text-sm font-semibold text-destructive mb-2", children: "Something went wrong" }),
|
|
8072
8074
|
/* @__PURE__ */ jsx51("p", { className: "text-sm text-muted-foreground mb-4", children: error?.message || "An unexpected error occurred" }),
|
|
8073
8075
|
/* @__PURE__ */ jsx51(Button, { onClick: resetError, size: "sm", variant: "outline", children: "Try Again" })
|
|
@@ -8095,16 +8097,16 @@ __name(useErrorHandler, "useErrorHandler");
|
|
|
8095
8097
|
import * as React31 from "react";
|
|
8096
8098
|
import { ChevronDown as ChevronDown5 } from "lucide-react";
|
|
8097
8099
|
import { DayPicker, UI } from "react-day-picker";
|
|
8098
|
-
import { jsx as jsx52, jsxs as
|
|
8100
|
+
import { jsx as jsx52, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
8099
8101
|
function CalendarDropdown(props) {
|
|
8100
8102
|
const { options, className, components, classNames, ...selectProps } = props;
|
|
8101
8103
|
const selectedOption = options?.find(({ value }) => value === selectProps.value);
|
|
8102
8104
|
const cssClassSelect = [classNames[UI.Dropdown], className].filter(Boolean).join(" ");
|
|
8103
8105
|
const Select2 = components.Select;
|
|
8104
8106
|
const Option = components.Option;
|
|
8105
|
-
return /* @__PURE__ */
|
|
8107
|
+
return /* @__PURE__ */ jsxs32("span", { "data-disabled": selectProps.disabled, className: classNames[UI.DropdownRoot], children: [
|
|
8106
8108
|
React31.createElement(Select2, { className: cssClassSelect, ...selectProps }, options?.map(({ value, label, disabled }) => React31.createElement(Option, { key: value, value, disabled }, label))),
|
|
8107
|
-
/* @__PURE__ */
|
|
8109
|
+
/* @__PURE__ */ jsxs32("span", { className: classNames[UI.CaptionLabel], "aria-hidden": "true", children: [
|
|
8108
8110
|
selectedOption?.label,
|
|
8109
8111
|
/* @__PURE__ */ jsx52(ChevronDown5, { className: "size-3 shrink-0 opacity-40 text-muted-foreground" })
|
|
8110
8112
|
] })
|
|
@@ -9772,7 +9774,7 @@ __name(cleanEscapedString, "cleanEscapedString");
|
|
|
9772
9774
|
|
|
9773
9775
|
// components/ui/datepicker.tsx
|
|
9774
9776
|
import { Calendar as CalendarIcon } from "lucide-react";
|
|
9775
|
-
import { Fragment as Fragment4, jsx as jsx53, jsxs as
|
|
9777
|
+
import { Fragment as Fragment4, jsx as jsx53, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
9776
9778
|
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
9779
|
function DatePicker({
|
|
9778
9780
|
value,
|
|
@@ -9782,8 +9784,8 @@ function DatePicker({
|
|
|
9782
9784
|
className,
|
|
9783
9785
|
calendarProps
|
|
9784
9786
|
}) {
|
|
9785
|
-
return /* @__PURE__ */
|
|
9786
|
-
/* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
9787
|
+
return /* @__PURE__ */ jsxs33(Popover, { children: [
|
|
9788
|
+
/* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs33(
|
|
9787
9789
|
"button",
|
|
9788
9790
|
{
|
|
9789
9791
|
type: "button",
|
|
@@ -9817,7 +9819,7 @@ function DatePickerRange({
|
|
|
9817
9819
|
className,
|
|
9818
9820
|
calendarProps
|
|
9819
9821
|
}) {
|
|
9820
|
-
return /* @__PURE__ */
|
|
9822
|
+
return /* @__PURE__ */ jsxs33(Popover, { children: [
|
|
9821
9823
|
/* @__PURE__ */ jsx53(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx53(
|
|
9822
9824
|
Button,
|
|
9823
9825
|
{
|
|
@@ -9830,7 +9832,7 @@ function DatePickerRange({
|
|
|
9830
9832
|
className
|
|
9831
9833
|
),
|
|
9832
9834
|
leadingIcon: /* @__PURE__ */ jsx53(CalendarIcon, { className: "size-4" }),
|
|
9833
|
-
children: value?.from ? value.to ? /* @__PURE__ */
|
|
9835
|
+
children: value?.from ? value.to ? /* @__PURE__ */ jsxs33(Fragment4, { children: [
|
|
9834
9836
|
format(value.from, "LLL dd, y"),
|
|
9835
9837
|
" \u2013 ",
|
|
9836
9838
|
format(value.to, "LLL dd, y")
|
|
@@ -9854,16 +9856,16 @@ function DatePickerRange({
|
|
|
9854
9856
|
__name(DatePickerRange, "DatePickerRange");
|
|
9855
9857
|
|
|
9856
9858
|
// components/ui/header.tsx
|
|
9857
|
-
import { jsx as jsx54, jsxs as
|
|
9859
|
+
import { jsx as jsx54, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
9858
9860
|
function Header({
|
|
9859
9861
|
variant = "default",
|
|
9860
9862
|
leftSlot,
|
|
9861
9863
|
rightSlot
|
|
9862
9864
|
}) {
|
|
9863
9865
|
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__ */
|
|
9866
|
+
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: [
|
|
9867
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-4", children: [
|
|
9868
|
+
/* @__PURE__ */ jsxs34(
|
|
9867
9869
|
"button",
|
|
9868
9870
|
{
|
|
9869
9871
|
className: "text-muted-foreground hover:text-foreground lg:hidden",
|
|
@@ -9872,7 +9874,7 @@ function Header({
|
|
|
9872
9874
|
onClick: () => setSidebarOpen(!sidebarOpen),
|
|
9873
9875
|
children: [
|
|
9874
9876
|
/* @__PURE__ */ jsx54("span", { className: "sr-only", children: "Open sidebar" }),
|
|
9875
|
-
/* @__PURE__ */
|
|
9877
|
+
/* @__PURE__ */ jsxs34("svg", { className: "w-6 h-6 fill-current", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
9876
9878
|
/* @__PURE__ */ jsx54("rect", { x: "4", y: "5", width: "16", height: "2" }),
|
|
9877
9879
|
/* @__PURE__ */ jsx54("rect", { x: "4", y: "11", width: "16", height: "2" }),
|
|
9878
9880
|
/* @__PURE__ */ jsx54("rect", { x: "4", y: "17", width: "16", height: "2" })
|
|
@@ -9889,10 +9891,10 @@ __name(Header, "Header");
|
|
|
9889
9891
|
|
|
9890
9892
|
// components/ui/navbar.tsx
|
|
9891
9893
|
import Link2 from "next/link";
|
|
9892
|
-
import { jsx as jsx55, jsxs as
|
|
9894
|
+
import { jsx as jsx55, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
9893
9895
|
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__ */
|
|
9896
|
+
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: [
|
|
9897
|
+
brand ?? /* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2 font-semibold text-foreground shrink-0", children: [
|
|
9896
9898
|
/* @__PURE__ */ jsx55(Logo, {}),
|
|
9897
9899
|
/* @__PURE__ */ jsx55("span", { className: "hidden sm:block", children: "Design System" })
|
|
9898
9900
|
] }),
|
|
@@ -9911,7 +9913,7 @@ function Navbar({ brand, links = [], rightSlot, className }) {
|
|
|
9911
9913
|
__name(Navbar, "Navbar");
|
|
9912
9914
|
|
|
9913
9915
|
// components/ui/tabs.tsx
|
|
9914
|
-
import { jsx as jsx56, jsxs as
|
|
9916
|
+
import { jsx as jsx56, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
9915
9917
|
function Tabs({
|
|
9916
9918
|
items,
|
|
9917
9919
|
value,
|
|
@@ -9920,7 +9922,7 @@ function Tabs({
|
|
|
9920
9922
|
className
|
|
9921
9923
|
}) {
|
|
9922
9924
|
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__ */
|
|
9925
|
+
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
9926
|
"button",
|
|
9925
9927
|
{
|
|
9926
9928
|
type: "button",
|
|
@@ -9940,7 +9942,7 @@ function Tabs({
|
|
|
9940
9942
|
) }, item.id)) });
|
|
9941
9943
|
}
|
|
9942
9944
|
if (variant === "underline") {
|
|
9943
|
-
return /* @__PURE__ */
|
|
9945
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("relative", className), children: [
|
|
9944
9946
|
/* @__PURE__ */ jsx56("div", { className: "absolute bottom-0 w-full h-px bg-border", "aria-hidden": "true" }),
|
|
9945
9947
|
/* @__PURE__ */ jsx56("ul", { className: "relative text-sm font-medium flex flex-nowrap overflow-x-auto no-scrollbar", children: items.map((item) => {
|
|
9946
9948
|
const active = item.id === value;
|
|
@@ -9953,7 +9955,7 @@ function Tabs({
|
|
|
9953
9955
|
"block pb-3 whitespace-nowrap transition-colors",
|
|
9954
9956
|
active ? "text-primary border-b-2 border-primary" : "text-muted-foreground hover:text-foreground"
|
|
9955
9957
|
),
|
|
9956
|
-
children: /* @__PURE__ */
|
|
9958
|
+
children: /* @__PURE__ */ jsxs36("span", { className: "inline-flex items-center", children: [
|
|
9957
9959
|
item.icon ? /* @__PURE__ */ jsx56("span", { className: "mr-2 text-muted-foreground", children: item.icon }) : null,
|
|
9958
9960
|
item.label
|
|
9959
9961
|
] })
|
|
@@ -9973,7 +9975,7 @@ function Tabs({
|
|
|
9973
9975
|
"whitespace-nowrap transition-colors",
|
|
9974
9976
|
active ? "text-primary" : "text-muted-foreground hover:text-foreground"
|
|
9975
9977
|
),
|
|
9976
|
-
children: /* @__PURE__ */
|
|
9978
|
+
children: /* @__PURE__ */ jsxs36("span", { className: "inline-flex items-center", children: [
|
|
9977
9979
|
item.icon ? /* @__PURE__ */ jsx56("span", { className: "mr-2 text-muted-foreground", children: item.icon }) : null,
|
|
9978
9980
|
item.label
|
|
9979
9981
|
] })
|
|
@@ -10055,9 +10057,9 @@ __name(TabsContent, "TabsContent");
|
|
|
10055
10057
|
|
|
10056
10058
|
// components/ui/collapsible-section.tsx
|
|
10057
10059
|
import { ChevronDown as ChevronDown6, ChevronUp } from "lucide-react";
|
|
10058
|
-
import { jsx as jsx58, jsxs as
|
|
10060
|
+
import { jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
10059
10061
|
function CollapsibleSection({ title, open, onToggle, children, className }) {
|
|
10060
|
-
return /* @__PURE__ */
|
|
10062
|
+
return /* @__PURE__ */ jsxs37(
|
|
10061
10063
|
"div",
|
|
10062
10064
|
{
|
|
10063
10065
|
className: cn(
|
|
@@ -10065,7 +10067,7 @@ function CollapsibleSection({ title, open, onToggle, children, className }) {
|
|
|
10065
10067
|
className
|
|
10066
10068
|
),
|
|
10067
10069
|
children: [
|
|
10068
|
-
/* @__PURE__ */
|
|
10070
|
+
/* @__PURE__ */ jsxs37(
|
|
10069
10071
|
"button",
|
|
10070
10072
|
{
|
|
10071
10073
|
type: "button",
|
|
@@ -10128,7 +10130,7 @@ CollapsibleContent.displayName = "CollapsibleContent";
|
|
|
10128
10130
|
// components/ui/chart.tsx
|
|
10129
10131
|
import * as React33 from "react";
|
|
10130
10132
|
import * as RechartsPrimitive from "recharts";
|
|
10131
|
-
import { Fragment as Fragment5, jsx as jsx60, jsxs as
|
|
10133
|
+
import { Fragment as Fragment5, jsx as jsx60, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
10132
10134
|
var THEMES = { light: "", dark: ".dark" };
|
|
10133
10135
|
var ChartContext = React33.createContext(null);
|
|
10134
10136
|
function useChart() {
|
|
@@ -10148,7 +10150,7 @@ function ChartContainer({
|
|
|
10148
10150
|
}) {
|
|
10149
10151
|
const uniqueId = React33.useId();
|
|
10150
10152
|
const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
|
|
10151
|
-
return /* @__PURE__ */ jsx60(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */
|
|
10153
|
+
return /* @__PURE__ */ jsx60(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs38(
|
|
10152
10154
|
"div",
|
|
10153
10155
|
{
|
|
10154
10156
|
"data-slot": "chart",
|
|
@@ -10248,7 +10250,7 @@ function ChartTooltipContent({
|
|
|
10248
10250
|
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
10249
10251
|
if (!active || !payload?.length) return null;
|
|
10250
10252
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
10251
|
-
return /* @__PURE__ */
|
|
10253
|
+
return /* @__PURE__ */ jsxs38(
|
|
10252
10254
|
"div",
|
|
10253
10255
|
{
|
|
10254
10256
|
className: cn(
|
|
@@ -10268,7 +10270,7 @@ function ChartTooltipContent({
|
|
|
10268
10270
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:size-2.5 [&>svg]:text-muted-foreground",
|
|
10269
10271
|
indicator === "dot" && "items-center"
|
|
10270
10272
|
),
|
|
10271
|
-
children: formatter && item?.value !== void 0 && item.name !== void 0 ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */
|
|
10273
|
+
children: formatter && item?.value !== void 0 && item.name !== void 0 ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs38(Fragment5, { children: [
|
|
10272
10274
|
itemConfig?.icon ? /* @__PURE__ */ jsx60(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx60(
|
|
10273
10275
|
"div",
|
|
10274
10276
|
{
|
|
@@ -10285,7 +10287,7 @@ function ChartTooltipContent({
|
|
|
10285
10287
|
}
|
|
10286
10288
|
}
|
|
10287
10289
|
),
|
|
10288
|
-
/* @__PURE__ */
|
|
10290
|
+
/* @__PURE__ */ jsxs38(
|
|
10289
10291
|
"div",
|
|
10290
10292
|
{
|
|
10291
10293
|
className: cn(
|
|
@@ -10293,7 +10295,7 @@ function ChartTooltipContent({
|
|
|
10293
10295
|
nestLabel ? "items-end" : "items-center"
|
|
10294
10296
|
),
|
|
10295
10297
|
children: [
|
|
10296
|
-
/* @__PURE__ */
|
|
10298
|
+
/* @__PURE__ */ jsxs38("div", { className: "grid gap-1.5", children: [
|
|
10297
10299
|
nestLabel ? tooltipLabel : null,
|
|
10298
10300
|
/* @__PURE__ */ jsx60("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
|
|
10299
10301
|
] }),
|
|
@@ -10332,7 +10334,7 @@ function ChartLegendContent({
|
|
|
10332
10334
|
children: payload.map((item) => {
|
|
10333
10335
|
const key = `${nameKey ?? item.dataKey ?? "value"}`;
|
|
10334
10336
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
10335
|
-
return /* @__PURE__ */
|
|
10337
|
+
return /* @__PURE__ */ jsxs38(
|
|
10336
10338
|
"div",
|
|
10337
10339
|
{
|
|
10338
10340
|
className: "flex items-center gap-1.5 [&>svg]:size-3 [&>svg]:text-muted-foreground",
|
|
@@ -10491,14 +10493,14 @@ ErrorMessage.displayName = "ErrorMessage";
|
|
|
10491
10493
|
|
|
10492
10494
|
// components/ui/navigation-menu.tsx
|
|
10493
10495
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
10494
|
-
import { jsx as jsx63, jsxs as
|
|
10496
|
+
import { jsx as jsx63, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
10495
10497
|
function NavigationMenuRoot({
|
|
10496
10498
|
className,
|
|
10497
10499
|
children,
|
|
10498
10500
|
viewport = true,
|
|
10499
10501
|
...props
|
|
10500
10502
|
}) {
|
|
10501
|
-
return /* @__PURE__ */
|
|
10503
|
+
return /* @__PURE__ */ jsxs39(
|
|
10502
10504
|
NavigationMenuPrimitive.Root,
|
|
10503
10505
|
{
|
|
10504
10506
|
"data-slot": "navigation-menu",
|
|
@@ -10553,7 +10555,7 @@ function NavigationMenuTrigger({
|
|
|
10553
10555
|
children,
|
|
10554
10556
|
...props
|
|
10555
10557
|
}) {
|
|
10556
|
-
return /* @__PURE__ */
|
|
10558
|
+
return /* @__PURE__ */ jsxs39(
|
|
10557
10559
|
NavigationMenuPrimitive.Trigger,
|
|
10558
10560
|
{
|
|
10559
10561
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -10735,10 +10737,10 @@ function createIcon(IconComponent, options = {}) {
|
|
|
10735
10737
|
__name(createIcon, "createIcon");
|
|
10736
10738
|
|
|
10737
10739
|
// components/ui/theme-toggle-icon.tsx
|
|
10738
|
-
import { jsx as jsx65, jsxs as
|
|
10740
|
+
import { jsx as jsx65, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
10739
10741
|
function ThemeToggleIcon() {
|
|
10740
10742
|
const { theme, setTheme } = useTheme2();
|
|
10741
|
-
return /* @__PURE__ */
|
|
10743
|
+
return /* @__PURE__ */ jsxs40("div", { children: [
|
|
10742
10744
|
/* @__PURE__ */ jsx65(
|
|
10743
10745
|
"input",
|
|
10744
10746
|
{
|
|
@@ -10755,7 +10757,7 @@ function ThemeToggleIcon() {
|
|
|
10755
10757
|
}
|
|
10756
10758
|
}
|
|
10757
10759
|
),
|
|
10758
|
-
/* @__PURE__ */
|
|
10760
|
+
/* @__PURE__ */ jsxs40(
|
|
10759
10761
|
"label",
|
|
10760
10762
|
{
|
|
10761
10763
|
className: cn(
|
|
@@ -10807,7 +10809,7 @@ Kbd.displayName = "Kbd";
|
|
|
10807
10809
|
// components/ui/scroll-area.tsx
|
|
10808
10810
|
import * as React37 from "react";
|
|
10809
10811
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
10810
|
-
import { jsx as jsx67, jsxs as
|
|
10812
|
+
import { jsx as jsx67, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
10811
10813
|
function isHorizontalScrollBar(child) {
|
|
10812
10814
|
return React37.isValidElement(child) && child.type === ScrollBar && child.props.orientation === "horizontal";
|
|
10813
10815
|
}
|
|
@@ -10816,7 +10818,7 @@ var ScrollArea = React37.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
10816
10818
|
const childList = React37.Children.toArray(children);
|
|
10817
10819
|
const viewportChildren = childList.filter((c) => !isHorizontalScrollBar(c));
|
|
10818
10820
|
const horizontalBars = childList.filter((c) => isHorizontalScrollBar(c));
|
|
10819
|
-
return /* @__PURE__ */
|
|
10821
|
+
return /* @__PURE__ */ jsxs41(
|
|
10820
10822
|
ScrollAreaPrimitive.Root,
|
|
10821
10823
|
{
|
|
10822
10824
|
ref,
|
|
@@ -12326,7 +12328,7 @@ __name(toastSemantic, "toastSemantic");
|
|
|
12326
12328
|
// components/ui/select-radix.tsx
|
|
12327
12329
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
12328
12330
|
import { CircleCheck as CircleCheck2, ChevronDown as ChevronDown7, ChevronUp as ChevronUp2 } from "lucide-react";
|
|
12329
|
-
import { jsx as jsx72, jsxs as
|
|
12331
|
+
import { jsx as jsx72, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
12330
12332
|
var SelectRoot = SelectPrimitive.Root;
|
|
12331
12333
|
var SelectGroup = SelectPrimitive.Group;
|
|
12332
12334
|
var SelectValue = SelectPrimitive.Value;
|
|
@@ -12336,7 +12338,7 @@ function SelectTrigger({
|
|
|
12336
12338
|
children,
|
|
12337
12339
|
...props
|
|
12338
12340
|
}) {
|
|
12339
|
-
return /* @__PURE__ */
|
|
12341
|
+
return /* @__PURE__ */ jsxs42(
|
|
12340
12342
|
SelectPrimitive.Trigger,
|
|
12341
12343
|
{
|
|
12342
12344
|
"data-slot": "select-trigger",
|
|
@@ -12365,7 +12367,7 @@ function SelectContent({
|
|
|
12365
12367
|
position = "popper",
|
|
12366
12368
|
...props
|
|
12367
12369
|
}) {
|
|
12368
|
-
return /* @__PURE__ */ jsx72(SelectPrimitive.Portal, { children: /* @__PURE__ */
|
|
12370
|
+
return /* @__PURE__ */ jsx72(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs42(
|
|
12369
12371
|
SelectPrimitive.Content,
|
|
12370
12372
|
{
|
|
12371
12373
|
"data-slot": "select-content",
|
|
@@ -12409,7 +12411,7 @@ function SelectLabel({ className, ...props }) {
|
|
|
12409
12411
|
}
|
|
12410
12412
|
__name(SelectLabel, "SelectLabel");
|
|
12411
12413
|
function SelectItem({ className, children, ...props }) {
|
|
12412
|
-
return /* @__PURE__ */
|
|
12414
|
+
return /* @__PURE__ */ jsxs42(
|
|
12413
12415
|
SelectPrimitive.Item,
|
|
12414
12416
|
{
|
|
12415
12417
|
"data-slot": "select-item",
|
|
@@ -12473,7 +12475,7 @@ __name(SelectScrollDownButton, "SelectScrollDownButton");
|
|
|
12473
12475
|
// components/ui/button-tooltip.tsx
|
|
12474
12476
|
import * as React41 from "react";
|
|
12475
12477
|
import { Transition as Transition2 } from "@headlessui/react";
|
|
12476
|
-
import { jsx as jsx73, jsxs as
|
|
12478
|
+
import { jsx as jsx73, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
12477
12479
|
function ButtonTooltip({
|
|
12478
12480
|
children,
|
|
12479
12481
|
content,
|
|
@@ -12542,7 +12544,7 @@ function ButtonTooltip({
|
|
|
12542
12544
|
}
|
|
12543
12545
|
);
|
|
12544
12546
|
}, "getArrowElement");
|
|
12545
|
-
return /* @__PURE__ */
|
|
12547
|
+
return /* @__PURE__ */ jsxs43(
|
|
12546
12548
|
"div",
|
|
12547
12549
|
{
|
|
12548
12550
|
className: cn("relative inline-flex", className),
|
|
@@ -12552,7 +12554,7 @@ function ButtonTooltip({
|
|
|
12552
12554
|
onBlur: () => setTooltipOpen(false),
|
|
12553
12555
|
children: [
|
|
12554
12556
|
children,
|
|
12555
|
-
/* @__PURE__ */ jsx73("div", { className: cn("z-50 absolute pointer-events-none", positionOuterClasses(position)), children: /* @__PURE__ */
|
|
12557
|
+
/* @__PURE__ */ jsx73("div", { className: cn("z-50 absolute pointer-events-none", positionOuterClasses(position)), children: /* @__PURE__ */ jsxs43(
|
|
12556
12558
|
Transition2,
|
|
12557
12559
|
{
|
|
12558
12560
|
show: tooltipOpen && !disabled,
|
|
@@ -12590,16 +12592,16 @@ import { Sun, Moon as Moon2, Upload, ExternalLink } from "lucide-react";
|
|
|
12590
12592
|
import React42 from "react";
|
|
12591
12593
|
|
|
12592
12594
|
// components/theme-customizer/color-input.tsx
|
|
12593
|
-
import { jsx as jsx74, jsxs as
|
|
12595
|
+
import { jsx as jsx74, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
12594
12596
|
function ColorInput({ label, cssVar, value, onChange, className }) {
|
|
12595
12597
|
const swatchColor = value && value.trim() !== "" ? value : "transparent";
|
|
12596
12598
|
const showBorder = !swatchColor || swatchColor === "transparent";
|
|
12597
12599
|
const handleChange = /* @__PURE__ */ __name((e) => {
|
|
12598
12600
|
onChange(cssVar, e.target.value);
|
|
12599
12601
|
}, "handleChange");
|
|
12600
|
-
return /* @__PURE__ */
|
|
12602
|
+
return /* @__PURE__ */ jsxs44("div", { className: cn("space-y-1.5", className), children: [
|
|
12601
12603
|
/* @__PURE__ */ jsx74("label", { className: "text-xs font-medium text-muted-foreground", children: label }),
|
|
12602
|
-
/* @__PURE__ */
|
|
12604
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
|
|
12603
12605
|
/* @__PURE__ */ jsx74(
|
|
12604
12606
|
"div",
|
|
12605
12607
|
{
|
|
@@ -12634,7 +12636,7 @@ function ColorInput({ label, cssVar, value, onChange, className }) {
|
|
|
12634
12636
|
__name(ColorInput, "ColorInput");
|
|
12635
12637
|
|
|
12636
12638
|
// components/theme-customizer/colors-panel.tsx
|
|
12637
|
-
import { jsx as jsx75, jsxs as
|
|
12639
|
+
import { jsx as jsx75, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
12638
12640
|
function getComputedColorValues() {
|
|
12639
12641
|
if (typeof document === "undefined") return {};
|
|
12640
12642
|
const root = document.documentElement;
|
|
@@ -12696,7 +12698,7 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
|
|
|
12696
12698
|
title: group.title,
|
|
12697
12699
|
open: openGroups[group.title] !== false,
|
|
12698
12700
|
onToggle: () => toggleGroup(group.title),
|
|
12699
|
-
children: group.colors.map((color) => /* @__PURE__ */
|
|
12701
|
+
children: group.colors.map((color) => /* @__PURE__ */ jsxs45("div", { className: "space-y-1", children: [
|
|
12700
12702
|
/* @__PURE__ */ jsx75(
|
|
12701
12703
|
ColorInput,
|
|
12702
12704
|
{
|
|
@@ -12716,7 +12718,7 @@ function ColorsPanel({ selectedTheme, isDarkMode } = {}) {
|
|
|
12716
12718
|
__name(ColorsPanel, "ColorsPanel");
|
|
12717
12719
|
|
|
12718
12720
|
// components/theme-customizer/theme-tab.tsx
|
|
12719
|
-
import { Fragment as Fragment6, jsx as jsx76, jsxs as
|
|
12721
|
+
import { Fragment as Fragment6, jsx as jsx76, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
12720
12722
|
function ThemeTab({
|
|
12721
12723
|
selectedTheme,
|
|
12722
12724
|
setSelectedTheme,
|
|
@@ -12754,13 +12756,13 @@ function ThemeTab({
|
|
|
12754
12756
|
const showOthers = variant === "full" || variant === "others-only";
|
|
12755
12757
|
const showPreset = showColors && !hidePreset;
|
|
12756
12758
|
const colorsOnlyInSidebar = showColors && hidePreset && !showPreset && !showOthers;
|
|
12757
|
-
return /* @__PURE__ */
|
|
12759
|
+
return /* @__PURE__ */ jsxs46(
|
|
12758
12760
|
"div",
|
|
12759
12761
|
{
|
|
12760
12762
|
className: colorsOnlyInSidebar ? "px-3 pt-2 pb-4" : "p-4 space-y-6",
|
|
12761
12763
|
children: [
|
|
12762
|
-
showPreset && /* @__PURE__ */
|
|
12763
|
-
/* @__PURE__ */
|
|
12764
|
+
showPreset && /* @__PURE__ */ jsxs46(Fragment6, { children: [
|
|
12765
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-3", children: [
|
|
12764
12766
|
/* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Mindtris UI" }),
|
|
12765
12767
|
/* @__PURE__ */ jsx76(
|
|
12766
12768
|
Select,
|
|
@@ -12774,9 +12776,9 @@ function ThemeTab({
|
|
|
12774
12776
|
variant === "full" && /* @__PURE__ */ jsx76("div", { className: "border-t border-border" })
|
|
12775
12777
|
] }),
|
|
12776
12778
|
showColors && hidePreset && /* @__PURE__ */ jsx76(ColorsPanel, { selectedTheme, isDarkMode }),
|
|
12777
|
-
showOthers && /* @__PURE__ */
|
|
12779
|
+
showOthers && /* @__PURE__ */ jsxs46(Fragment6, { children: [
|
|
12778
12780
|
variant === "full" && /* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12779
|
-
/* @__PURE__ */
|
|
12781
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-3", children: [
|
|
12780
12782
|
/* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Radius" }),
|
|
12781
12783
|
/* @__PURE__ */ jsx76("div", { className: "grid grid-cols-5 gap-2", children: radiusOptions.map((option) => /* @__PURE__ */ jsx76(
|
|
12782
12784
|
"button",
|
|
@@ -12792,10 +12794,10 @@ function ThemeTab({
|
|
|
12792
12794
|
)) })
|
|
12793
12795
|
] }),
|
|
12794
12796
|
/* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12795
|
-
/* @__PURE__ */
|
|
12797
|
+
/* @__PURE__ */ jsxs46("div", { className: "space-y-3", children: [
|
|
12796
12798
|
/* @__PURE__ */ jsx76("label", { className: "text-sm font-medium", children: "Mode" }),
|
|
12797
|
-
/* @__PURE__ */
|
|
12798
|
-
/* @__PURE__ */
|
|
12799
|
+
/* @__PURE__ */ jsxs46("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
12800
|
+
/* @__PURE__ */ jsxs46(
|
|
12799
12801
|
"button",
|
|
12800
12802
|
{
|
|
12801
12803
|
onClick: handleLightMode,
|
|
@@ -12809,7 +12811,7 @@ function ThemeTab({
|
|
|
12809
12811
|
]
|
|
12810
12812
|
}
|
|
12811
12813
|
),
|
|
12812
|
-
/* @__PURE__ */
|
|
12814
|
+
/* @__PURE__ */ jsxs46(
|
|
12813
12815
|
"button",
|
|
12814
12816
|
{
|
|
12815
12817
|
onClick: handleDarkMode,
|
|
@@ -12826,7 +12828,7 @@ function ThemeTab({
|
|
|
12826
12828
|
] })
|
|
12827
12829
|
] }),
|
|
12828
12830
|
/* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12829
|
-
/* @__PURE__ */ jsx76("div", { className: "space-y-3", children: /* @__PURE__ */
|
|
12831
|
+
/* @__PURE__ */ jsx76("div", { className: "space-y-3", children: /* @__PURE__ */ jsxs46(
|
|
12830
12832
|
"button",
|
|
12831
12833
|
{
|
|
12832
12834
|
onClick: onImportClick,
|
|
@@ -12838,11 +12840,11 @@ function ThemeTab({
|
|
|
12838
12840
|
}
|
|
12839
12841
|
) })
|
|
12840
12842
|
] }),
|
|
12841
|
-
variant === "full" && /* @__PURE__ */
|
|
12843
|
+
variant === "full" && /* @__PURE__ */ jsxs46(Fragment6, { children: [
|
|
12842
12844
|
/* @__PURE__ */ jsx76("div", { className: "border-t border-border" }),
|
|
12843
|
-
/* @__PURE__ */
|
|
12845
|
+
/* @__PURE__ */ jsxs46("div", { className: "p-4 bg-muted rounded-lg space-y-3", children: [
|
|
12844
12846
|
/* @__PURE__ */ jsx76("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx76("span", { className: "text-sm font-medium", children: "Advanced Customization" }) }),
|
|
12845
|
-
/* @__PURE__ */
|
|
12847
|
+
/* @__PURE__ */ jsxs46("p", { className: "text-xs text-muted-foreground", children: [
|
|
12846
12848
|
"For advanced theme customization with real-time preview, visit",
|
|
12847
12849
|
" ",
|
|
12848
12850
|
/* @__PURE__ */ jsx76(
|
|
@@ -12856,7 +12858,7 @@ function ThemeTab({
|
|
|
12856
12858
|
}
|
|
12857
12859
|
)
|
|
12858
12860
|
] }),
|
|
12859
|
-
/* @__PURE__ */
|
|
12861
|
+
/* @__PURE__ */ jsxs46(
|
|
12860
12862
|
"button",
|
|
12861
12863
|
{
|
|
12862
12864
|
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 +12878,7 @@ function ThemeTab({
|
|
|
12876
12878
|
__name(ThemeTab, "ThemeTab");
|
|
12877
12879
|
|
|
12878
12880
|
// components/theme-customizer/layout-tab.tsx
|
|
12879
|
-
import { Fragment as Fragment7, jsx as jsx77, jsxs as
|
|
12881
|
+
import { Fragment as Fragment7, jsx as jsx77, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
12880
12882
|
function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
12881
12883
|
const config = sidebarConfig || {
|
|
12882
12884
|
variant: "inset",
|
|
@@ -12892,18 +12894,18 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12892
12894
|
const handleSidebarSideSelect = /* @__PURE__ */ __name((side) => {
|
|
12893
12895
|
onSidebarConfigChange?.({ ...config, side });
|
|
12894
12896
|
}, "handleSidebarSideSelect");
|
|
12895
|
-
return /* @__PURE__ */
|
|
12896
|
-
/* @__PURE__ */
|
|
12897
|
+
return /* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
|
|
12898
|
+
/* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground", children: [
|
|
12897
12899
|
"These options apply only when your app wires ",
|
|
12898
12900
|
/* @__PURE__ */ jsx77("code", { className: "text-[10px]", children: "sidebarConfig" }),
|
|
12899
12901
|
" and ",
|
|
12900
12902
|
/* @__PURE__ */ jsx77("code", { className: "text-[10px]", children: "onSidebarConfigChange" }),
|
|
12901
12903
|
" to the layout."
|
|
12902
12904
|
] }),
|
|
12903
|
-
/* @__PURE__ */
|
|
12904
|
-
/* @__PURE__ */
|
|
12905
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
|
|
12906
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
12905
12907
|
/* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Variant" }),
|
|
12906
|
-
config.variant && /* @__PURE__ */
|
|
12908
|
+
config.variant && /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
12907
12909
|
config.variant === "sidebar" && "Default: Standard sidebar layout",
|
|
12908
12910
|
config.variant === "floating" && "Floating: Floating sidebar with border",
|
|
12909
12911
|
config.variant === "inset" && "Inset: Inset sidebar with rounded corners"
|
|
@@ -12917,10 +12919,10 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12917
12919
|
relative p-4 border rounded-md cursor-pointer transition-colors
|
|
12918
12920
|
${config.variant === variant.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
|
|
12919
12921
|
`,
|
|
12920
|
-
children: /* @__PURE__ */
|
|
12922
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
12921
12923
|
/* @__PURE__ */ jsx77("div", { className: "text-xs font-semibold text-center", children: variant.name }),
|
|
12922
|
-
/* @__PURE__ */
|
|
12923
|
-
/* @__PURE__ */
|
|
12924
|
+
/* @__PURE__ */ jsxs47("div", { className: `flex h-12 rounded border border-border ${variant.value === "inset" ? "bg-muted" : "bg-card"}`, children: [
|
|
12925
|
+
/* @__PURE__ */ jsxs47(
|
|
12924
12926
|
"div",
|
|
12925
12927
|
{
|
|
12926
12928
|
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 +12941,10 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12939
12941
|
variant.value
|
|
12940
12942
|
)) })
|
|
12941
12943
|
] }),
|
|
12942
|
-
/* @__PURE__ */
|
|
12943
|
-
/* @__PURE__ */
|
|
12944
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
|
|
12945
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
12944
12946
|
/* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Collapsible Mode" }),
|
|
12945
|
-
config.collapsible && /* @__PURE__ */
|
|
12947
|
+
config.collapsible && /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
12946
12948
|
config.collapsible === "offcanvas" && "Off Canvas: Slides out of view",
|
|
12947
12949
|
config.collapsible === "icon" && "Icon: Collapses to icon only",
|
|
12948
12950
|
config.collapsible === "none" && "None: Always visible"
|
|
@@ -12956,21 +12958,21 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12956
12958
|
relative p-4 border rounded-md cursor-pointer transition-colors
|
|
12957
12959
|
${config.collapsible === option.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
|
|
12958
12960
|
`,
|
|
12959
|
-
children: /* @__PURE__ */
|
|
12961
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
12960
12962
|
/* @__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__ */
|
|
12963
|
+
/* @__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
12964
|
/* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
|
|
12963
12965
|
/* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" }),
|
|
12964
12966
|
/* @__PURE__ */ jsx77("div", { className: "w-3 h-0.5 bg-muted-foreground/70 rounded" })
|
|
12965
|
-
] }) }) : option.value === "icon" ? /* @__PURE__ */
|
|
12966
|
-
/* @__PURE__ */
|
|
12967
|
+
] }) }) : option.value === "icon" ? /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
12968
|
+
/* @__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
12969
|
/* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/70 rounded-sm" }),
|
|
12968
12970
|
/* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/60 rounded-sm" }),
|
|
12969
12971
|
/* @__PURE__ */ jsx77("div", { className: "w-2 h-2 bg-muted-foreground/50 rounded-sm" })
|
|
12970
12972
|
] }),
|
|
12971
12973
|
/* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
|
|
12972
|
-
] }) : /* @__PURE__ */
|
|
12973
|
-
/* @__PURE__ */
|
|
12974
|
+
] }) : /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
12975
|
+
/* @__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
12976
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
|
|
12975
12977
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
|
|
12976
12978
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
|
|
@@ -12983,10 +12985,10 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12983
12985
|
option.value
|
|
12984
12986
|
)) })
|
|
12985
12987
|
] }),
|
|
12986
|
-
/* @__PURE__ */
|
|
12987
|
-
/* @__PURE__ */
|
|
12988
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-3", children: [
|
|
12989
|
+
/* @__PURE__ */ jsxs47("div", { children: [
|
|
12988
12990
|
/* @__PURE__ */ jsx77("label", { className: "text-sm font-medium", children: "Sidebar Position" }),
|
|
12989
|
-
config.side && /* @__PURE__ */
|
|
12991
|
+
config.side && /* @__PURE__ */ jsxs47("p", { className: "text-xs text-muted-foreground mt-1", children: [
|
|
12990
12992
|
config.side === "left" && "Left: Sidebar positioned on the left side",
|
|
12991
12993
|
config.side === "right" && "Right: Sidebar positioned on the right side"
|
|
12992
12994
|
] })
|
|
@@ -12999,19 +13001,19 @@ function LayoutTab({ sidebarConfig, onSidebarConfigChange }) {
|
|
|
12999
13001
|
relative p-4 border rounded-md cursor-pointer transition-colors
|
|
13000
13002
|
${config.side === side.value ? "border-primary bg-primary/10" : "border-border hover:border-border/80"}
|
|
13001
13003
|
`,
|
|
13002
|
-
children: /* @__PURE__ */
|
|
13004
|
+
children: /* @__PURE__ */ jsxs47("div", { className: "space-y-2", children: [
|
|
13003
13005
|
/* @__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__ */
|
|
13006
|
+
/* @__PURE__ */ jsx77("div", { className: "flex h-12 rounded border border-border bg-card", children: side.value === "left" ? /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
13007
|
+
/* @__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
13008
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
|
|
13007
13009
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
|
|
13008
13010
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
|
|
13009
13011
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/40 rounded" })
|
|
13010
13012
|
] }),
|
|
13011
13013
|
/* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" })
|
|
13012
|
-
] }) : /* @__PURE__ */
|
|
13014
|
+
] }) : /* @__PURE__ */ jsxs47(Fragment7, { children: [
|
|
13013
13015
|
/* @__PURE__ */ jsx77("div", { className: "flex-1 bg-muted m-1 rounded-sm border-dashed border border-border" }),
|
|
13014
|
-
/* @__PURE__ */
|
|
13016
|
+
/* @__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
13017
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-full bg-muted-foreground/70 rounded" }),
|
|
13016
13018
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-3/4 bg-muted-foreground/60 rounded" }),
|
|
13017
13019
|
/* @__PURE__ */ jsx77("div", { className: "h-0.5 w-2/3 bg-muted-foreground/50 rounded" }),
|
|
@@ -13029,7 +13031,7 @@ __name(LayoutTab, "LayoutTab");
|
|
|
13029
13031
|
|
|
13030
13032
|
// components/theme-customizer/other-panel.tsx
|
|
13031
13033
|
import React43 from "react";
|
|
13032
|
-
import { jsx as jsx78, jsxs as
|
|
13034
|
+
import { jsx as jsx78, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
13033
13035
|
function getComputedOtherValues() {
|
|
13034
13036
|
if (typeof document === "undefined") return {};
|
|
13035
13037
|
const root = document.documentElement;
|
|
@@ -13172,10 +13174,10 @@ function OtherPanel({
|
|
|
13172
13174
|
},
|
|
13173
13175
|
[handleChange, values]
|
|
13174
13176
|
);
|
|
13175
|
-
return /* @__PURE__ */
|
|
13176
|
-
!hideModeSection && /* @__PURE__ */
|
|
13177
|
+
return /* @__PURE__ */ jsxs48("div", { className: "space-y-4 pt-5 pb-2", children: [
|
|
13178
|
+
!hideModeSection && /* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13177
13179
|
/* @__PURE__ */ jsx78("label", { className: "block text-sm font-medium", children: "Mode" }),
|
|
13178
|
-
/* @__PURE__ */
|
|
13180
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
13179
13181
|
/* @__PURE__ */ jsx78(
|
|
13180
13182
|
Button,
|
|
13181
13183
|
{
|
|
@@ -13200,8 +13202,8 @@ function OtherPanel({
|
|
|
13200
13202
|
)
|
|
13201
13203
|
] })
|
|
13202
13204
|
] }),
|
|
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__ */
|
|
13205
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "HSL Adjustments", open: hslOpen, onToggle: () => setHslOpen(!hslOpen), children: /* @__PURE__ */ jsxs48("div", { className: "pt-2 space-y-4", children: [
|
|
13206
|
+
/* @__PURE__ */ jsx78("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxs48(
|
|
13205
13207
|
"button",
|
|
13206
13208
|
{
|
|
13207
13209
|
type: "button",
|
|
@@ -13233,11 +13235,11 @@ function OtherPanel({
|
|
|
13233
13235
|
},
|
|
13234
13236
|
p.name
|
|
13235
13237
|
)) }),
|
|
13236
|
-
/* @__PURE__ */
|
|
13237
|
-
/* @__PURE__ */
|
|
13238
|
-
/* @__PURE__ */
|
|
13238
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-5", children: [
|
|
13239
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13240
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
13239
13241
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Hue Shift" }),
|
|
13240
|
-
/* @__PURE__ */
|
|
13242
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-2", children: [
|
|
13241
13243
|
/* @__PURE__ */ jsx78(
|
|
13242
13244
|
Input,
|
|
13243
13245
|
{
|
|
@@ -13267,10 +13269,10 @@ function OtherPanel({
|
|
|
13267
13269
|
),
|
|
13268
13270
|
validationErrors["--hue-shift"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--hue-shift"] })
|
|
13269
13271
|
] }),
|
|
13270
|
-
/* @__PURE__ */
|
|
13271
|
-
/* @__PURE__ */
|
|
13272
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13273
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
13272
13274
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Saturation Multiplier" }),
|
|
13273
|
-
/* @__PURE__ */
|
|
13275
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-2", children: [
|
|
13274
13276
|
/* @__PURE__ */ jsx78(
|
|
13275
13277
|
Input,
|
|
13276
13278
|
{
|
|
@@ -13300,10 +13302,10 @@ function OtherPanel({
|
|
|
13300
13302
|
),
|
|
13301
13303
|
validationErrors["--saturation-mult"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--saturation-mult"] })
|
|
13302
13304
|
] }),
|
|
13303
|
-
/* @__PURE__ */
|
|
13304
|
-
/* @__PURE__ */
|
|
13305
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-2", children: [
|
|
13306
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
13305
13307
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Lightness Multiplier" }),
|
|
13306
|
-
/* @__PURE__ */
|
|
13308
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center gap-2", children: [
|
|
13307
13309
|
/* @__PURE__ */ jsx78(
|
|
13308
13310
|
Input,
|
|
13309
13311
|
{
|
|
@@ -13335,7 +13337,7 @@ function OtherPanel({
|
|
|
13335
13337
|
] })
|
|
13336
13338
|
] })
|
|
13337
13339
|
] }) }),
|
|
13338
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Radius", open: radiusOpen, onToggle: () => setRadiusOpen(!radiusOpen), children: /* @__PURE__ */
|
|
13340
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Radius", open: radiusOpen, onToggle: () => setRadiusOpen(!radiusOpen), children: /* @__PURE__ */ jsxs48("div", { className: "pt-2 space-y-2", children: [
|
|
13339
13341
|
/* @__PURE__ */ jsx78("label", { className: "text-sm font-medium", children: "Corner radius" }),
|
|
13340
13342
|
/* @__PURE__ */ jsx78("div", { className: "flex flex-wrap gap-2", children: radiusOptions.map((opt) => /* @__PURE__ */ jsx78(
|
|
13341
13343
|
Button,
|
|
@@ -13351,7 +13353,7 @@ function OtherPanel({
|
|
|
13351
13353
|
)) }),
|
|
13352
13354
|
validationErrors["--radius"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--radius"] })
|
|
13353
13355
|
] }) }),
|
|
13354
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Spacing", open: spacingOpen, onToggle: () => setSpacingOpen(!spacingOpen), children: /* @__PURE__ */
|
|
13356
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Spacing", open: spacingOpen, onToggle: () => setSpacingOpen(!spacingOpen), children: /* @__PURE__ */ jsxs48("div", { className: "pt-2 space-y-1", children: [
|
|
13355
13357
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spacing (base scale for layout, rem)" }),
|
|
13356
13358
|
/* @__PURE__ */ jsx78(
|
|
13357
13359
|
Input,
|
|
@@ -13368,8 +13370,8 @@ function OtherPanel({
|
|
|
13368
13370
|
),
|
|
13369
13371
|
validationErrors["--spacing"] && /* @__PURE__ */ jsx78("p", { className: "text-xs text-destructive", children: validationErrors["--spacing"] })
|
|
13370
13372
|
] }) }),
|
|
13371
|
-
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Shadow", open: shadowOpen, onToggle: () => setShadowOpen(!shadowOpen), children: /* @__PURE__ */
|
|
13372
|
-
/* @__PURE__ */
|
|
13373
|
+
/* @__PURE__ */ jsx78(CollapsibleSection, { title: "Shadow", open: shadowOpen, onToggle: () => setShadowOpen(!shadowOpen), children: /* @__PURE__ */ jsxs48("div", { className: "space-y-3 pt-2", children: [
|
|
13374
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13373
13375
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow color" }),
|
|
13374
13376
|
/* @__PURE__ */ jsx78(
|
|
13375
13377
|
Input,
|
|
@@ -13382,7 +13384,7 @@ function OtherPanel({
|
|
|
13382
13384
|
}
|
|
13383
13385
|
)
|
|
13384
13386
|
] }),
|
|
13385
|
-
/* @__PURE__ */
|
|
13387
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13386
13388
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Shadow Opacity" }),
|
|
13387
13389
|
/* @__PURE__ */ jsx78(
|
|
13388
13390
|
Input,
|
|
@@ -13395,8 +13397,8 @@ function OtherPanel({
|
|
|
13395
13397
|
}
|
|
13396
13398
|
)
|
|
13397
13399
|
] }),
|
|
13398
|
-
/* @__PURE__ */
|
|
13399
|
-
/* @__PURE__ */
|
|
13400
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
13401
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13400
13402
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Blur radius" }),
|
|
13401
13403
|
/* @__PURE__ */ jsx78(
|
|
13402
13404
|
Input,
|
|
@@ -13409,7 +13411,7 @@ function OtherPanel({
|
|
|
13409
13411
|
}
|
|
13410
13412
|
)
|
|
13411
13413
|
] }),
|
|
13412
|
-
/* @__PURE__ */
|
|
13414
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13413
13415
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Spread" }),
|
|
13414
13416
|
/* @__PURE__ */ jsx78(
|
|
13415
13417
|
Input,
|
|
@@ -13423,8 +13425,8 @@ function OtherPanel({
|
|
|
13423
13425
|
)
|
|
13424
13426
|
] })
|
|
13425
13427
|
] }),
|
|
13426
|
-
/* @__PURE__ */
|
|
13427
|
-
/* @__PURE__ */
|
|
13428
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
13429
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13428
13430
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset X" }),
|
|
13429
13431
|
/* @__PURE__ */ jsx78(
|
|
13430
13432
|
Input,
|
|
@@ -13437,7 +13439,7 @@ function OtherPanel({
|
|
|
13437
13439
|
}
|
|
13438
13440
|
)
|
|
13439
13441
|
] }),
|
|
13440
|
-
/* @__PURE__ */
|
|
13442
|
+
/* @__PURE__ */ jsxs48("div", { children: [
|
|
13441
13443
|
/* @__PURE__ */ jsx78("label", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: "Offset Y" }),
|
|
13442
13444
|
/* @__PURE__ */ jsx78(
|
|
13443
13445
|
Input,
|
|
@@ -13460,7 +13462,7 @@ __name(OtherPanel, "OtherPanel");
|
|
|
13460
13462
|
// components/theme-customizer/import-modal.tsx
|
|
13461
13463
|
import React44 from "react";
|
|
13462
13464
|
import { X as X8, Check as Check6 } from "lucide-react";
|
|
13463
|
-
import { Fragment as Fragment8, jsx as jsx79, jsxs as
|
|
13465
|
+
import { Fragment as Fragment8, jsx as jsx79, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
13464
13466
|
function normalizeImportedThemeVars(vars) {
|
|
13465
13467
|
const out = {};
|
|
13466
13468
|
Object.entries(vars).forEach(([key, value]) => {
|
|
@@ -13553,7 +13555,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13553
13555
|
}
|
|
13554
13556
|
}, "processImport");
|
|
13555
13557
|
if (!open) return null;
|
|
13556
|
-
return /* @__PURE__ */
|
|
13558
|
+
return /* @__PURE__ */ jsxs49(Fragment8, { children: [
|
|
13557
13559
|
/* @__PURE__ */ jsx79(
|
|
13558
13560
|
"div",
|
|
13559
13561
|
{
|
|
@@ -13561,11 +13563,11 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13561
13563
|
onClick: () => onOpenChange(false)
|
|
13562
13564
|
}
|
|
13563
13565
|
),
|
|
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__ */
|
|
13566
|
+
/* @__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: [
|
|
13567
|
+
/* @__PURE__ */ jsx79("div", { className: "p-6 border-b border-border", children: /* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-between", children: [
|
|
13568
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
13567
13569
|
/* @__PURE__ */ jsx79("h3", { className: "text-lg font-semibold", children: "Import Theme" }),
|
|
13568
|
-
/* @__PURE__ */
|
|
13570
|
+
/* @__PURE__ */ jsxs49("p", { className: "text-sm text-muted-foreground mt-1", children: [
|
|
13569
13571
|
"Paste either a standardized ",
|
|
13570
13572
|
/* @__PURE__ */ jsx79("code", { className: "px-1 py-0.5 bg-muted rounded", children: "theme.json" }),
|
|
13571
13573
|
" artifact (recommended) or a CSS theme with ",
|
|
@@ -13584,9 +13586,9 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13584
13586
|
}
|
|
13585
13587
|
)
|
|
13586
13588
|
] }) }),
|
|
13587
|
-
/* @__PURE__ */
|
|
13589
|
+
/* @__PURE__ */ jsxs49("div", { className: "p-6 flex-1 overflow-y-auto space-y-4", children: [
|
|
13588
13590
|
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__ */
|
|
13591
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
13590
13592
|
/* @__PURE__ */ jsx79("label", { className: "block text-sm font-medium mb-2", children: "Theme name" }),
|
|
13591
13593
|
/* @__PURE__ */ jsx79(
|
|
13592
13594
|
Input,
|
|
@@ -13601,7 +13603,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13601
13603
|
}
|
|
13602
13604
|
)
|
|
13603
13605
|
] }),
|
|
13604
|
-
/* @__PURE__ */
|
|
13606
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
13605
13607
|
/* @__PURE__ */ jsx79("label", { className: "block text-sm font-medium mb-2", children: "Theme content" }),
|
|
13606
13608
|
/* @__PURE__ */ jsx79(
|
|
13607
13609
|
"textarea",
|
|
@@ -13637,7 +13639,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13637
13639
|
)
|
|
13638
13640
|
] })
|
|
13639
13641
|
] }),
|
|
13640
|
-
/* @__PURE__ */
|
|
13642
|
+
/* @__PURE__ */ jsxs49("div", { className: "p-6 border-t border-border flex justify-end gap-2", children: [
|
|
13641
13643
|
/* @__PURE__ */ jsx79(
|
|
13642
13644
|
Button,
|
|
13643
13645
|
{
|
|
@@ -13666,7 +13668,7 @@ function ImportModal({ open, onOpenChange, onImport, onImportArtifact }) {
|
|
|
13666
13668
|
__name(ImportModal, "ImportModal");
|
|
13667
13669
|
|
|
13668
13670
|
// components/theme-customizer/index.tsx
|
|
13669
|
-
import { Fragment as Fragment9, jsx as jsx80, jsxs as
|
|
13671
|
+
import { Fragment as Fragment9, jsx as jsx80, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
13670
13672
|
function ThemeCustomizer({
|
|
13671
13673
|
open,
|
|
13672
13674
|
onOpenChange,
|
|
@@ -13717,15 +13719,15 @@ function ThemeCustomizer({
|
|
|
13717
13719
|
applyRadius2(selectedRadius);
|
|
13718
13720
|
}, []);
|
|
13719
13721
|
if (!open && !inline) return null;
|
|
13720
|
-
const content = /* @__PURE__ */
|
|
13722
|
+
const content = /* @__PURE__ */ jsxs50(
|
|
13721
13723
|
"div",
|
|
13722
13724
|
{
|
|
13723
13725
|
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
13726
|
children: [
|
|
13725
|
-
!hideHeader && /* @__PURE__ */ jsx80("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */
|
|
13727
|
+
!hideHeader && /* @__PURE__ */ jsx80("div", { className: "p-4 border-b border-border", children: /* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-2", children: [
|
|
13726
13728
|
/* @__PURE__ */ jsx80("div", { className: "p-2 bg-primary/10 rounded-lg", children: /* @__PURE__ */ jsx80(Settings, { className: "w-4 h-4 text-primary" }) }),
|
|
13727
13729
|
/* @__PURE__ */ jsx80("h2", { className: "text-lg font-semibold", children: "Customizer" }),
|
|
13728
|
-
/* @__PURE__ */
|
|
13730
|
+
/* @__PURE__ */ jsxs50("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
13729
13731
|
/* @__PURE__ */ jsx80(Button, { variant: "ghost", size: "sm", onClick: handleReset, children: "Reset" }),
|
|
13730
13732
|
!inline && /* @__PURE__ */ jsx80(
|
|
13731
13733
|
Button,
|
|
@@ -13741,7 +13743,7 @@ function ThemeCustomizer({
|
|
|
13741
13743
|
)
|
|
13742
13744
|
] })
|
|
13743
13745
|
] }) }),
|
|
13744
|
-
/* @__PURE__ */
|
|
13746
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex-1 overflow-y-auto min-h-0", children: [
|
|
13745
13747
|
sectionProp === "colors" && /* @__PURE__ */ jsx80(
|
|
13746
13748
|
ThemeTab,
|
|
13747
13749
|
{
|
|
@@ -13766,7 +13768,7 @@ function ThemeCustomizer({
|
|
|
13766
13768
|
onSidebarConfigChange
|
|
13767
13769
|
}
|
|
13768
13770
|
) }),
|
|
13769
|
-
!sectionProp && /* @__PURE__ */
|
|
13771
|
+
!sectionProp && /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
13770
13772
|
/* @__PURE__ */ jsx80(
|
|
13771
13773
|
ThemeTab,
|
|
13772
13774
|
{
|
|
@@ -13792,7 +13794,7 @@ function ThemeCustomizer({
|
|
|
13792
13794
|
]
|
|
13793
13795
|
}
|
|
13794
13796
|
);
|
|
13795
|
-
return /* @__PURE__ */
|
|
13797
|
+
return /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
13796
13798
|
content,
|
|
13797
13799
|
!inline && /* @__PURE__ */ jsx80(
|
|
13798
13800
|
"div",
|
|
@@ -13929,7 +13931,7 @@ function loadGoogleFontsForFontValue(value) {
|
|
|
13929
13931
|
__name(loadGoogleFontsForFontValue, "loadGoogleFontsForFontValue");
|
|
13930
13932
|
|
|
13931
13933
|
// components/theme-customizer/typography-panel.tsx
|
|
13932
|
-
import { jsx as jsx81, jsxs as
|
|
13934
|
+
import { jsx as jsx81, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
13933
13935
|
function getComputedTypography() {
|
|
13934
13936
|
if (typeof document === "undefined") return {};
|
|
13935
13937
|
const root = document.documentElement;
|
|
@@ -13965,15 +13967,15 @@ function TypographyPanel() {
|
|
|
13965
13967
|
}
|
|
13966
13968
|
}
|
|
13967
13969
|
}, "handleChange");
|
|
13968
|
-
return /* @__PURE__ */
|
|
13969
|
-
/* @__PURE__ */
|
|
13970
|
+
return /* @__PURE__ */ jsxs51("div", { className: "space-y-4 pt-5 pb-2", children: [
|
|
13971
|
+
/* @__PURE__ */ jsxs51("p", { className: "text-xs text-muted-foreground px-0", children: [
|
|
13970
13972
|
"Fonts use the theme preset and can load from Google Fonts when selected. Letter spacing uses ",
|
|
13971
13973
|
/* @__PURE__ */ jsx81("code", { className: "text-xs", children: "--tracking-normal" }),
|
|
13972
13974
|
"."
|
|
13973
13975
|
] }),
|
|
13974
|
-
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Font Family", open: fontOpen, onToggle: () => setFontOpen((o) => !o), children: /* @__PURE__ */
|
|
13975
|
-
/* @__PURE__ */
|
|
13976
|
-
/* @__PURE__ */
|
|
13976
|
+
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Font Family", open: fontOpen, onToggle: () => setFontOpen((o) => !o), children: /* @__PURE__ */ jsxs51("div", { className: "space-y-3 pt-2", children: [
|
|
13977
|
+
/* @__PURE__ */ jsxs51("div", { children: [
|
|
13978
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
13977
13979
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Sans-serif font" }),
|
|
13978
13980
|
loadingFonts["--font-sans"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
|
|
13979
13981
|
] }),
|
|
@@ -13988,8 +13990,8 @@ function TypographyPanel() {
|
|
|
13988
13990
|
}
|
|
13989
13991
|
)
|
|
13990
13992
|
] }),
|
|
13991
|
-
/* @__PURE__ */
|
|
13992
|
-
/* @__PURE__ */
|
|
13993
|
+
/* @__PURE__ */ jsxs51("div", { children: [
|
|
13994
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
13993
13995
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Serif font" }),
|
|
13994
13996
|
loadingFonts["--font-serif"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
|
|
13995
13997
|
] }),
|
|
@@ -14007,8 +14009,8 @@ function TypographyPanel() {
|
|
|
14007
14009
|
}
|
|
14008
14010
|
)
|
|
14009
14011
|
] }),
|
|
14010
|
-
/* @__PURE__ */
|
|
14011
|
-
/* @__PURE__ */
|
|
14012
|
+
/* @__PURE__ */ jsxs51("div", { children: [
|
|
14013
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex items-center justify-between mb-1.5", children: [
|
|
14012
14014
|
/* @__PURE__ */ jsx81("label", { className: "block text-xs font-medium text-muted-foreground", children: "Monospace Font" }),
|
|
14013
14015
|
loadingFonts["--font-mono"] && /* @__PURE__ */ jsx81("span", { className: "text-xs text-muted-foreground", children: "Loading..." })
|
|
14014
14016
|
] }),
|
|
@@ -14024,7 +14026,7 @@ function TypographyPanel() {
|
|
|
14024
14026
|
)
|
|
14025
14027
|
] })
|
|
14026
14028
|
] }) }),
|
|
14027
|
-
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Letter spacing", open: letterOpen, onToggle: () => setLetterOpen((o) => !o), children: /* @__PURE__ */
|
|
14029
|
+
/* @__PURE__ */ jsx81(CollapsibleSection, { title: "Letter spacing", open: letterOpen, onToggle: () => setLetterOpen((o) => !o), children: /* @__PURE__ */ jsxs51("div", { className: "pt-2", children: [
|
|
14028
14030
|
/* @__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
14031
|
/* @__PURE__ */ jsx81(
|
|
14030
14032
|
Input,
|
|
@@ -14042,7 +14044,7 @@ function TypographyPanel() {
|
|
|
14042
14044
|
__name(TypographyPanel, "TypographyPanel");
|
|
14043
14045
|
|
|
14044
14046
|
// layout-primitives.tsx
|
|
14045
|
-
import { jsx as jsx82, jsxs as
|
|
14047
|
+
import { jsx as jsx82, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
14046
14048
|
var maxWidthClasses = {
|
|
14047
14049
|
sm: "max-w-screen-sm",
|
|
14048
14050
|
md: "max-w-screen-md",
|
|
@@ -14091,8 +14093,8 @@ function Page({
|
|
|
14091
14093
|
className,
|
|
14092
14094
|
...props
|
|
14093
14095
|
}) {
|
|
14094
|
-
return /* @__PURE__ */ jsx82("div", { className: cn("min-h-screen", className), ...props, children: /* @__PURE__ */
|
|
14095
|
-
(title || description) && /* @__PURE__ */
|
|
14096
|
+
return /* @__PURE__ */ jsx82("div", { className: cn("min-h-screen", className), ...props, children: /* @__PURE__ */ jsxs52(Container, { maxWidth, padding, children: [
|
|
14097
|
+
(title || description) && /* @__PURE__ */ jsxs52("div", { className: "mb-8", children: [
|
|
14096
14098
|
title && /* @__PURE__ */ jsx82("h1", { className: "text-2xl md:text-3xl font-bold text-foreground mb-2", children: title }),
|
|
14097
14099
|
description && /* @__PURE__ */ jsx82("p", { className: "text-muted-foreground", children: description })
|
|
14098
14100
|
] }),
|
|
@@ -14109,8 +14111,8 @@ function Section({
|
|
|
14109
14111
|
className,
|
|
14110
14112
|
...props
|
|
14111
14113
|
}) {
|
|
14112
|
-
return /* @__PURE__ */ jsx82("section", { className: cn("py-8 md:py-12", className), ...props, children: /* @__PURE__ */
|
|
14113
|
-
(title || description) && /* @__PURE__ */
|
|
14114
|
+
return /* @__PURE__ */ jsx82("section", { className: cn("py-8 md:py-12", className), ...props, children: /* @__PURE__ */ jsxs52(Container, { maxWidth, padding, children: [
|
|
14115
|
+
(title || description) && /* @__PURE__ */ jsxs52("div", { className: "mb-6", children: [
|
|
14114
14116
|
title && /* @__PURE__ */ jsx82("h2", { className: "text-xl md:text-2xl font-bold text-foreground mb-2", children: title }),
|
|
14115
14117
|
description && /* @__PURE__ */ jsx82("p", { className: "text-muted-foreground", children: description })
|
|
14116
14118
|
] }),
|
|
@@ -14200,7 +14202,7 @@ __name(Stack, "Stack");
|
|
|
14200
14202
|
// blocks/header/header-block.tsx
|
|
14201
14203
|
import { useState as useState22, useEffect as useEffect15 } from "react";
|
|
14202
14204
|
import { Menu as Menu3, ChevronDown as ChevronDown8 } from "lucide-react";
|
|
14203
|
-
import { jsx as jsx83, jsxs as
|
|
14205
|
+
import { jsx as jsx83, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
14204
14206
|
var DefaultLink = /* @__PURE__ */ __name(({ href, className, children, onClick }) => /* @__PURE__ */ jsx83("a", { href, className, onClick, children }), "DefaultLink");
|
|
14205
14207
|
function HeaderBlock({
|
|
14206
14208
|
data,
|
|
@@ -14220,14 +14222,14 @@ function HeaderBlock({
|
|
|
14220
14222
|
}, []);
|
|
14221
14223
|
const renderDesktopMenuItem = /* @__PURE__ */ __name((item) => {
|
|
14222
14224
|
if (item.type === "dropdown" && item.children) {
|
|
14223
|
-
return /* @__PURE__ */
|
|
14224
|
-
/* @__PURE__ */
|
|
14225
|
+
return /* @__PURE__ */ jsxs53(DropdownMenu, { children: [
|
|
14226
|
+
/* @__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
14227
|
item.title,
|
|
14226
14228
|
/* @__PURE__ */ jsx83(ChevronDown8, { className: "w-4 h-4" })
|
|
14227
14229
|
] }),
|
|
14228
14230
|
/* @__PURE__ */ jsx83(DropdownMenuContent, { align: "start", className: "w-56", children: item.children.map((child) => {
|
|
14229
14231
|
if (child.type === "dropdown") {
|
|
14230
|
-
return /* @__PURE__ */
|
|
14232
|
+
return /* @__PURE__ */ jsxs53(DropdownMenuSub, { children: [
|
|
14231
14233
|
/* @__PURE__ */ jsx83(DropdownMenuSubTrigger, { children: child.title }),
|
|
14232
14234
|
/* @__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
14235
|
] }, child.id);
|
|
@@ -14254,7 +14256,7 @@ function HeaderBlock({
|
|
|
14254
14256
|
sticky ? "fixed top-0 md:top-6" : "relative",
|
|
14255
14257
|
className
|
|
14256
14258
|
),
|
|
14257
|
-
children: /* @__PURE__ */ jsx83(Container, { children: /* @__PURE__ */
|
|
14259
|
+
children: /* @__PURE__ */ jsx83(Container, { children: /* @__PURE__ */ jsxs53(
|
|
14258
14260
|
"div",
|
|
14259
14261
|
{
|
|
14260
14262
|
className: cn(
|
|
@@ -14265,7 +14267,7 @@ function HeaderBlock({
|
|
|
14265
14267
|
children: [
|
|
14266
14268
|
/* @__PURE__ */ jsx83("div", { className: "flex items-center shrink-0", children: LogoComponent }),
|
|
14267
14269
|
/* @__PURE__ */ jsx83("nav", { className: "hidden md:flex md:gap-1 lg:gap-2", children: data.items.map(renderDesktopMenuItem) }),
|
|
14268
|
-
/* @__PURE__ */
|
|
14270
|
+
/* @__PURE__ */ jsxs53("div", { className: "flex items-center gap-3", children: [
|
|
14269
14271
|
slots.rightActionSlot,
|
|
14270
14272
|
/* @__PURE__ */ jsx83("div", { className: "hidden md:flex gap-3", children: data.ctaItems?.map((cta, idx) => /* @__PURE__ */ jsx83(
|
|
14271
14273
|
Button,
|
|
@@ -14278,11 +14280,11 @@ function HeaderBlock({
|
|
|
14278
14280
|
},
|
|
14279
14281
|
idx
|
|
14280
14282
|
)) }),
|
|
14281
|
-
/* @__PURE__ */ jsx83("div", { className: "md:hidden", children: /* @__PURE__ */
|
|
14283
|
+
/* @__PURE__ */ jsx83("div", { className: "md:hidden", children: /* @__PURE__ */ jsxs53(Sheet, { children: [
|
|
14282
14284
|
/* @__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__ */
|
|
14285
|
+
/* @__PURE__ */ jsxs53(SheetContent, { side: "right", className: "w-[300px] sm:w-[400px]", children: [
|
|
14284
14286
|
/* @__PURE__ */ jsx83(SheetHeader, { className: "px-1 text-left", children: /* @__PURE__ */ jsx83(SheetTitle, { className: "text-lg font-bold", children: "Menu" }) }),
|
|
14285
|
-
/* @__PURE__ */
|
|
14287
|
+
/* @__PURE__ */ jsxs53("div", { className: "flex flex-col gap-6 mt-6 overflow-y-auto", children: [
|
|
14286
14288
|
/* @__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
14289
|
LinkComponent,
|
|
14288
14290
|
{
|
|
@@ -14290,7 +14292,7 @@ function HeaderBlock({
|
|
|
14290
14292
|
className: "text-lg font-medium text-foreground py-1",
|
|
14291
14293
|
children: item.title
|
|
14292
14294
|
}
|
|
14293
|
-
) }) : /* @__PURE__ */
|
|
14295
|
+
) }) : /* @__PURE__ */ jsxs53("div", { className: "flex flex-col gap-2", children: [
|
|
14294
14296
|
/* @__PURE__ */ jsx83("span", { className: "text-sm font-semibold text-muted-foreground uppercase tracking-wide", children: item.title }),
|
|
14295
14297
|
/* @__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
14298
|
LinkComponent,
|
|
@@ -14325,7 +14327,7 @@ __name(HeaderBlock, "HeaderBlock");
|
|
|
14325
14327
|
// blocks/footer/footer-block.tsx
|
|
14326
14328
|
import React48 from "react";
|
|
14327
14329
|
import { Twitter, Instagram, Facebook, Youtube, Linkedin, Hash, Github } from "lucide-react";
|
|
14328
|
-
import { jsx as jsx84, jsxs as
|
|
14330
|
+
import { jsx as jsx84, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
14329
14331
|
var DefaultLink2 = /* @__PURE__ */ __name(({ href, className, children, target, rel }) => /* @__PURE__ */ jsx84("a", { href, className, target, rel, children }), "DefaultLink");
|
|
14330
14332
|
function SocialIconRenderer({ icon }) {
|
|
14331
14333
|
if (React48.isValidElement(icon)) return icon;
|
|
@@ -14360,8 +14362,8 @@ function FooterBlock({
|
|
|
14360
14362
|
const LinkComponent = slots.linkComponent || DefaultLink2;
|
|
14361
14363
|
const LogoComponent = slots.logo || /* @__PURE__ */ jsx84(Logo, {});
|
|
14362
14364
|
const { branding, columns, social, legal } = data;
|
|
14363
|
-
return /* @__PURE__ */
|
|
14364
|
-
/* @__PURE__ */ jsx84(Container, { children: /* @__PURE__ */
|
|
14365
|
+
return /* @__PURE__ */ jsxs54("footer", { className: cn("bg-background text-foreground", className), children: [
|
|
14366
|
+
/* @__PURE__ */ jsx84(Container, { children: /* @__PURE__ */ jsxs54(
|
|
14365
14367
|
"div",
|
|
14366
14368
|
{
|
|
14367
14369
|
className: cn(
|
|
@@ -14369,9 +14371,9 @@ function FooterBlock({
|
|
|
14369
14371
|
border && "border-t border-border"
|
|
14370
14372
|
),
|
|
14371
14373
|
children: [
|
|
14372
|
-
/* @__PURE__ */
|
|
14374
|
+
/* @__PURE__ */ jsxs54("div", { className: "space-y-4 sm:col-span-12 lg:col-span-4", children: [
|
|
14373
14375
|
/* @__PURE__ */ jsx84("div", { className: "-ml-3 flex items-center", children: LogoComponent }),
|
|
14374
|
-
/* @__PURE__ */
|
|
14376
|
+
/* @__PURE__ */ jsxs54("div", { className: "text-sm text-muted-foreground", children: [
|
|
14375
14377
|
"\xA9 ",
|
|
14376
14378
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
14377
14379
|
" ",
|
|
@@ -14390,12 +14392,12 @@ function FooterBlock({
|
|
|
14390
14392
|
". ",
|
|
14391
14393
|
branding.copyrightText
|
|
14392
14394
|
] }),
|
|
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__ */
|
|
14395
|
+
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
14396
|
/* @__PURE__ */ jsx84(LinkComponent, { href: item.href, className: "hover:text-foreground transition-colors", children: item.title }),
|
|
14395
14397
|
index < legal.length - 1 && /* @__PURE__ */ jsx84("span", { className: "opacity-50", children: "|" })
|
|
14396
14398
|
] }, index)) })
|
|
14397
14399
|
] }),
|
|
14398
|
-
columns.map((col, idx) => /* @__PURE__ */
|
|
14400
|
+
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
14401
|
/* @__PURE__ */ jsx84("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: col.title }),
|
|
14400
14402
|
/* @__PURE__ */ jsx84("ul", { className: "space-y-2.5 text-sm", children: col.links.map((link, lIdx) => /* @__PURE__ */ jsx84("li", { children: /* @__PURE__ */ jsx84(
|
|
14401
14403
|
LinkComponent,
|
|
@@ -14406,7 +14408,7 @@ function FooterBlock({
|
|
|
14406
14408
|
}
|
|
14407
14409
|
) }, lIdx)) })
|
|
14408
14410
|
] }, idx)),
|
|
14409
|
-
/* @__PURE__ */
|
|
14411
|
+
/* @__PURE__ */ jsxs54("div", { className: "space-y-3 sm:col-span-6 md:col-span-3 lg:col-span-2", children: [
|
|
14410
14412
|
/* @__PURE__ */ jsx84("h3", { className: "text-sm font-semibold tracking-wider uppercase text-foreground", children: "Social" }),
|
|
14411
14413
|
social && /* @__PURE__ */ jsx84("ul", { className: "flex flex-wrap gap-3 items-center", children: social.map((item, idx) => /* @__PURE__ */ jsx84("li", { children: /* @__PURE__ */ jsx84(
|
|
14412
14414
|
LinkComponent,
|