@delmaredigital/payload-puck 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -4
- package/dist/AccordionClient.d.mts +1 -1
- package/dist/AccordionClient.d.ts +1 -1
- package/dist/AccordionClient.js +2 -2
- package/dist/AccordionClient.js.map +1 -1
- package/dist/AccordionClient.mjs +2 -2
- package/dist/AccordionClient.mjs.map +1 -1
- package/dist/AnimatedWrapper.d.mts +1 -1
- package/dist/AnimatedWrapper.d.ts +1 -1
- package/dist/AnimatedWrapper.js.map +1 -1
- package/dist/AnimatedWrapper.mjs.map +1 -1
- package/dist/components/index.d.mts +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +196 -217
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +200 -221
- package/dist/components/index.mjs.map +1 -1
- package/dist/config/config.editor.d.mts +1 -1
- package/dist/config/config.editor.d.ts +1 -1
- package/dist/config/config.editor.js +199 -220
- package/dist/config/config.editor.js.map +1 -1
- package/dist/config/config.editor.mjs +203 -224
- package/dist/config/config.editor.mjs.map +1 -1
- package/dist/config/index.js +33 -16
- package/dist/config/index.js.map +1 -1
- package/dist/config/index.mjs +33 -16
- package/dist/config/index.mjs.map +1 -1
- package/dist/editor/index.js +56 -39
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/index.mjs +56 -39
- package/dist/editor/index.mjs.map +1 -1
- package/dist/fields/index.d.mts +4 -4
- package/dist/fields/index.d.ts +4 -4
- package/dist/fields/index.js +201 -222
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/index.mjs +205 -226
- package/dist/fields/index.mjs.map +1 -1
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/index.mjs.map +1 -1
- package/dist/render/index.js +33 -16
- package/dist/render/index.js.map +1 -1
- package/dist/render/index.mjs +33 -16
- package/dist/render/index.mjs.map +1 -1
- package/dist/{shared-DMAF1AcH.d.mts → shared-DeNKN95N.d.mts} +7 -6
- package/dist/{shared-DMAF1AcH.d.ts → shared-DeNKN95N.d.ts} +7 -6
- package/examples/README.md +9 -2
- package/examples/app/(manage)/layout.tsx +31 -0
- package/package.json +12 -10
package/dist/fields/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var React12 = require('react');
|
|
5
|
-
var
|
|
5
|
+
var lucideReact = require('lucide-react');
|
|
6
6
|
var reactSlot = require('@radix-ui/react-slot');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
8
8
|
var clsx = require('clsx');
|
|
@@ -783,7 +783,7 @@ function transformValueToCSS(transform) {
|
|
|
783
783
|
return Object.keys(style).length > 0 ? style : void 0;
|
|
784
784
|
}
|
|
785
785
|
var BREAKPOINTS = [
|
|
786
|
-
{ key: "
|
|
786
|
+
{ key: "xs", label: "XS", minWidth: null },
|
|
787
787
|
{ key: "sm", label: "SM", minWidth: 640 },
|
|
788
788
|
{ key: "md", label: "MD", minWidth: 768 },
|
|
789
789
|
{ key: "lg", label: "LG", minWidth: 1024 },
|
|
@@ -791,7 +791,7 @@ var BREAKPOINTS = [
|
|
|
791
791
|
];
|
|
792
792
|
function isResponsiveValue(value) {
|
|
793
793
|
if (!value || typeof value !== "object") return false;
|
|
794
|
-
return "
|
|
794
|
+
return "xs" in value;
|
|
795
795
|
}
|
|
796
796
|
function camelToKebab(str) {
|
|
797
797
|
return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
|
|
@@ -817,7 +817,7 @@ function responsiveValueToCSS(value, converter, uniqueId) {
|
|
|
817
817
|
if (bpValue === void 0) return;
|
|
818
818
|
const cssProps = converter(bpValue);
|
|
819
819
|
if (!cssProps) return;
|
|
820
|
-
if (bp.key === "
|
|
820
|
+
if (bp.key === "xs") {
|
|
821
821
|
baseStyles = cssProps;
|
|
822
822
|
} else {
|
|
823
823
|
const styleString = cssPropertiesToString(cssProps);
|
|
@@ -831,29 +831,50 @@ function responsiveValueToCSS(value, converter, uniqueId) {
|
|
|
831
831
|
return { baseStyles, mediaQueryCSS: mediaQueries.join("\n") };
|
|
832
832
|
}
|
|
833
833
|
var DEFAULT_VISIBILITY = {
|
|
834
|
-
|
|
834
|
+
xs: true,
|
|
835
|
+
sm: true,
|
|
836
|
+
md: true,
|
|
837
|
+
lg: true,
|
|
838
|
+
xl: true
|
|
835
839
|
};
|
|
836
840
|
function visibilityValueToCSS(visibility, uniqueId) {
|
|
837
841
|
if (!visibility) return "";
|
|
838
842
|
const mediaQueries = [];
|
|
839
|
-
|
|
840
|
-
|
|
843
|
+
const breakpointWidths = {
|
|
844
|
+
xs: null,
|
|
845
|
+
// 0px
|
|
846
|
+
sm: 640,
|
|
847
|
+
md: 768,
|
|
848
|
+
lg: 1024,
|
|
849
|
+
xl: 1280
|
|
850
|
+
};
|
|
851
|
+
const getNextBreakpointWidth = (bp) => {
|
|
852
|
+
const order = ["xs", "sm", "md", "lg", "xl"];
|
|
853
|
+
const index = order.indexOf(bp);
|
|
854
|
+
if (index === -1 || index === order.length - 1) return null;
|
|
855
|
+
return breakpointWidths[order[index + 1]];
|
|
856
|
+
};
|
|
857
|
+
if (visibility.xs === false) {
|
|
858
|
+
const nextWidth = getNextBreakpointWidth("xs");
|
|
859
|
+
if (nextWidth) {
|
|
860
|
+
mediaQueries.push(`@media (max-width: ${nextWidth - 1}px) { .${uniqueId} { display: none; } }`);
|
|
861
|
+
} else {
|
|
862
|
+
mediaQueries.push(`.${uniqueId} { display: none; }`);
|
|
863
|
+
}
|
|
841
864
|
}
|
|
842
|
-
let lastVisibility = visibility.base;
|
|
843
865
|
BREAKPOINTS.slice(1).forEach((bp) => {
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
if (
|
|
866
|
+
if (visibility[bp.key] === false) {
|
|
867
|
+
const minWidth = breakpointWidths[bp.key];
|
|
868
|
+
const maxWidth = getNextBreakpointWidth(bp.key);
|
|
869
|
+
if (minWidth && maxWidth) {
|
|
848
870
|
mediaQueries.push(
|
|
849
|
-
`@media (min-width: ${
|
|
871
|
+
`@media (min-width: ${minWidth}px) and (max-width: ${maxWidth - 1}px) { .${uniqueId} { display: none; } }`
|
|
850
872
|
);
|
|
851
|
-
} else {
|
|
873
|
+
} else if (minWidth) {
|
|
852
874
|
mediaQueries.push(
|
|
853
|
-
`@media (min-width: ${
|
|
875
|
+
`@media (min-width: ${minWidth}px) { .${uniqueId} { display: none; } }`
|
|
854
876
|
);
|
|
855
877
|
}
|
|
856
|
-
lastVisibility = bpValue;
|
|
857
878
|
}
|
|
858
879
|
});
|
|
859
880
|
return mediaQueries.join("\n");
|
|
@@ -1308,7 +1329,7 @@ var DialogContent = React12__namespace.forwardRef(({ className, children, ...pro
|
|
|
1308
1329
|
children: [
|
|
1309
1330
|
children,
|
|
1310
1331
|
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
1311
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1332
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
|
|
1312
1333
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1313
1334
|
] })
|
|
1314
1335
|
]
|
|
@@ -1331,7 +1352,7 @@ var DialogContentFullscreen = React12__namespace.forwardRef(({ className, childr
|
|
|
1331
1352
|
/* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { className: "sr-only", children: accessibleTitle }),
|
|
1332
1353
|
children,
|
|
1333
1354
|
!hideCloseButton && /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
1334
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1355
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
|
|
1335
1356
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1336
1357
|
] })
|
|
1337
1358
|
]
|
|
@@ -1605,10 +1626,10 @@ function MediaFieldInner({
|
|
|
1605
1626
|
onClick: handleRemove,
|
|
1606
1627
|
className: "absolute -top-2 -right-2 p-1 bg-destructive text-destructive-foreground rounded-full opacity-0 group-hover:opacity-100 transition-opacity",
|
|
1607
1628
|
"aria-label": "Remove image",
|
|
1608
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1629
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3 w-3" })
|
|
1609
1630
|
}
|
|
1610
1631
|
)
|
|
1611
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-24 h-24 bg-muted rounded-md border border-dashed border-input flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1632
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-24 h-24 bg-muted rounded-md border border-dashed border-input flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Image, { className: "h-8 w-8 text-muted-foreground" }) }),
|
|
1612
1633
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
1613
1634
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1614
1635
|
Button,
|
|
@@ -1632,7 +1653,7 @@ function MediaFieldInner({
|
|
|
1632
1653
|
] })
|
|
1633
1654
|
] }),
|
|
1634
1655
|
value?.url && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1635
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1656
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-3 w-3 flex-shrink-0" }),
|
|
1636
1657
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate max-w-[280px]", title: value.url, children: value.url })
|
|
1637
1658
|
] })
|
|
1638
1659
|
] }),
|
|
@@ -1677,7 +1698,7 @@ function MediaFieldInner({
|
|
|
1677
1698
|
)
|
|
1678
1699
|
] }),
|
|
1679
1700
|
activeTab === "browse" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-shrink-0", children: [
|
|
1680
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1701
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }),
|
|
1681
1702
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1682
1703
|
Input,
|
|
1683
1704
|
{
|
|
@@ -1723,7 +1744,7 @@ function MediaFieldInner({
|
|
|
1723
1744
|
onClick: handleLoadMore,
|
|
1724
1745
|
disabled: loading,
|
|
1725
1746
|
children: loading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1726
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1747
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
|
|
1727
1748
|
"Loading..."
|
|
1728
1749
|
] }) : "Load More"
|
|
1729
1750
|
}
|
|
@@ -1753,15 +1774,15 @@ function MediaFieldInner({
|
|
|
1753
1774
|
] })
|
|
1754
1775
|
] }),
|
|
1755
1776
|
uploadState.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-3 bg-destructive/10 border border-destructive/30 rounded-md text-destructive text-sm flex items-start gap-2", children: [
|
|
1756
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1777
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
|
|
1757
1778
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: uploadState.error })
|
|
1758
1779
|
] }),
|
|
1759
1780
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
1760
1781
|
/* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: handleUpload, disabled: uploadState.uploading, children: uploadState.uploading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1761
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1782
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
|
|
1762
1783
|
"Uploading..."
|
|
1763
1784
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1764
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1785
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Upload, { className: "h-4 w-4 mr-2" }),
|
|
1765
1786
|
"Upload & Select"
|
|
1766
1787
|
] }) }),
|
|
1767
1788
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1775,7 +1796,7 @@ function MediaFieldInner({
|
|
|
1775
1796
|
)
|
|
1776
1797
|
] })
|
|
1777
1798
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
1778
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1799
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Image, { className: "h-16 w-16 text-muted mx-auto mb-4" }),
|
|
1779
1800
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "cursor-pointer", children: [
|
|
1780
1801
|
/* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Select Image" }) }),
|
|
1781
1802
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1795,7 +1816,7 @@ function MediaFieldInner({
|
|
|
1795
1816
|
/* URL Tab */
|
|
1796
1817
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center justify-center h-full min-h-[300px]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full max-w-md space-y-4", children: [
|
|
1797
1818
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center mb-6", children: [
|
|
1798
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1819
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-12 w-12 text-muted-foreground mx-auto mb-2" }),
|
|
1799
1820
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Enter an image URL from an external source" })
|
|
1800
1821
|
] }),
|
|
1801
1822
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
@@ -1833,10 +1854,10 @@ function MediaFieldInner({
|
|
|
1833
1854
|
onError: handleUrlPreviewError
|
|
1834
1855
|
}
|
|
1835
1856
|
),
|
|
1836
|
-
!urlState.previewLoaded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1857
|
+
!urlState.previewLoaded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-8 w-8 animate-spin text-muted-foreground" }) })
|
|
1837
1858
|
] }),
|
|
1838
1859
|
urlState.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-3 bg-destructive/10 border border-destructive/30 rounded-md text-destructive text-sm flex items-start gap-2", children: [
|
|
1839
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1860
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
|
|
1840
1861
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: urlState.error })
|
|
1841
1862
|
] }),
|
|
1842
1863
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
@@ -1846,7 +1867,7 @@ function MediaFieldInner({
|
|
|
1846
1867
|
onClick: handleUrlSubmit,
|
|
1847
1868
|
disabled: !urlState.url || urlState.loading,
|
|
1848
1869
|
children: [
|
|
1849
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1870
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-4 w-4 mr-2" }),
|
|
1850
1871
|
"Use This URL"
|
|
1851
1872
|
]
|
|
1852
1873
|
}
|
|
@@ -2056,7 +2077,7 @@ function ColorPickerFieldInner({
|
|
|
2056
2077
|
onClick: handleClear,
|
|
2057
2078
|
title: "Clear color",
|
|
2058
2079
|
className: "flex items-center justify-center w-8 h-8 rounded border-none bg-transparent cursor-pointer text-muted-foreground flex-shrink-0 hover:bg-accent hover:text-destructive",
|
|
2059
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2080
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" })
|
|
2060
2081
|
}
|
|
2061
2082
|
)
|
|
2062
2083
|
] }),
|
|
@@ -2596,7 +2617,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2596
2617
|
onClick: () => editor.chain().focus().toggleBold().run(),
|
|
2597
2618
|
isActive: formattingState?.isBold,
|
|
2598
2619
|
title: "Bold",
|
|
2599
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2620
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bold, { className: ICON_SIZE })
|
|
2600
2621
|
}
|
|
2601
2622
|
),
|
|
2602
2623
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2605,7 +2626,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2605
2626
|
onClick: () => editor.chain().focus().toggleItalic().run(),
|
|
2606
2627
|
isActive: formattingState?.isItalic,
|
|
2607
2628
|
title: "Italic",
|
|
2608
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2629
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Italic, { className: ICON_SIZE })
|
|
2609
2630
|
}
|
|
2610
2631
|
),
|
|
2611
2632
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2614,7 +2635,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2614
2635
|
onClick: () => editor.chain().focus().toggleUnderline().run(),
|
|
2615
2636
|
isActive: formattingState?.isUnderline,
|
|
2616
2637
|
title: "Underline",
|
|
2617
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2638
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Underline, { className: ICON_SIZE })
|
|
2618
2639
|
}
|
|
2619
2640
|
),
|
|
2620
2641
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2623,7 +2644,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2623
2644
|
onClick: () => editor.chain().focus().toggleStrike().run(),
|
|
2624
2645
|
isActive: formattingState?.isStrike,
|
|
2625
2646
|
title: "Strikethrough",
|
|
2626
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2647
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Strikethrough, { className: ICON_SIZE })
|
|
2627
2648
|
}
|
|
2628
2649
|
),
|
|
2629
2650
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2632,7 +2653,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2632
2653
|
onClick: () => editor.chain().focus().toggleSuperscript().run(),
|
|
2633
2654
|
isActive: formattingState?.isSuperscript,
|
|
2634
2655
|
title: "Superscript",
|
|
2635
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2656
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Superscript, { className: ICON_SIZE })
|
|
2636
2657
|
}
|
|
2637
2658
|
),
|
|
2638
2659
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2641,7 +2662,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2641
2662
|
onClick: () => editor.chain().focus().toggleSubscript().run(),
|
|
2642
2663
|
isActive: formattingState?.isSubscript,
|
|
2643
2664
|
title: "Subscript",
|
|
2644
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2665
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Subscript, { className: ICON_SIZE })
|
|
2645
2666
|
}
|
|
2646
2667
|
),
|
|
2647
2668
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
|
|
@@ -2649,8 +2670,8 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2649
2670
|
ToolbarDropdown,
|
|
2650
2671
|
{
|
|
2651
2672
|
trigger: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5", children: [
|
|
2652
|
-
formattingState?.isH1 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2653
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2673
|
+
formattingState?.isH1 ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading1, { className: ICON_SIZE }) : formattingState?.isH2 ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading2, { className: ICON_SIZE }) : formattingState?.isH3 ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading3, { className: ICON_SIZE }) : formattingState?.isH4 ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading4, { className: ICON_SIZE }) : formattingState?.isH5 ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading5, { className: ICON_SIZE }) : formattingState?.isH6 ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading6, { className: ICON_SIZE }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pilcrow, { className: ICON_SIZE }),
|
|
2674
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "w-3 h-3" })
|
|
2654
2675
|
] }),
|
|
2655
2676
|
title: "Text Type",
|
|
2656
2677
|
isActive: formattingState?.isH1 || formattingState?.isH2 || formattingState?.isH3 || formattingState?.isH4 || formattingState?.isH5 || formattingState?.isH6,
|
|
@@ -2659,7 +2680,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2659
2680
|
editor.chain().focus().setParagraph().run();
|
|
2660
2681
|
close();
|
|
2661
2682
|
}, children: [
|
|
2662
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2683
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pilcrow, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2663
2684
|
"Paragraph"
|
|
2664
2685
|
] }),
|
|
2665
2686
|
/* @__PURE__ */ jsxRuntime.jsx(DropdownSeparator, {}),
|
|
@@ -2667,42 +2688,42 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2667
2688
|
editor.chain().focus().toggleHeading({ level: 1 }).run();
|
|
2668
2689
|
close();
|
|
2669
2690
|
}, children: [
|
|
2670
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2691
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading1, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2671
2692
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-lg", children: "Heading 1" })
|
|
2672
2693
|
] }),
|
|
2673
2694
|
/* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
|
|
2674
2695
|
editor.chain().focus().toggleHeading({ level: 2 }).run();
|
|
2675
2696
|
close();
|
|
2676
2697
|
}, children: [
|
|
2677
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2698
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading2, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2678
2699
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-base", children: "Heading 2" })
|
|
2679
2700
|
] }),
|
|
2680
2701
|
/* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
|
|
2681
2702
|
editor.chain().focus().toggleHeading({ level: 3 }).run();
|
|
2682
2703
|
close();
|
|
2683
2704
|
}, children: [
|
|
2684
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2705
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading3, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2685
2706
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Heading 3" })
|
|
2686
2707
|
] }),
|
|
2687
2708
|
/* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
|
|
2688
2709
|
editor.chain().focus().toggleHeading({ level: 4 }).run();
|
|
2689
2710
|
close();
|
|
2690
2711
|
}, children: [
|
|
2691
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2712
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading4, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2692
2713
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm", children: "Heading 4" })
|
|
2693
2714
|
] }),
|
|
2694
2715
|
/* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
|
|
2695
2716
|
editor.chain().focus().toggleHeading({ level: 5 }).run();
|
|
2696
2717
|
close();
|
|
2697
2718
|
}, children: [
|
|
2698
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2719
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading5, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2699
2720
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-xs", children: "Heading 5" })
|
|
2700
2721
|
] }),
|
|
2701
2722
|
/* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
|
|
2702
2723
|
editor.chain().focus().toggleHeading({ level: 6 }).run();
|
|
2703
2724
|
close();
|
|
2704
2725
|
}, children: [
|
|
2705
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2726
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading6, { className: cn2(ICON_SIZE, "mr-2") }),
|
|
2706
2727
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-xs text-gray-600", children: "Heading 6" })
|
|
2707
2728
|
] })
|
|
2708
2729
|
] })
|
|
@@ -2712,7 +2733,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2712
2733
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2713
2734
|
ToolbarDropdown,
|
|
2714
2735
|
{
|
|
2715
|
-
trigger: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2736
|
+
trigger: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ALargeSmall, { className: ICON_SIZE }),
|
|
2716
2737
|
title: "Font Size",
|
|
2717
2738
|
children: (close) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2718
2739
|
/* @__PURE__ */ jsxRuntime.jsx(DropdownLabel, { children: "Presets" }),
|
|
@@ -2798,7 +2819,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2798
2819
|
onClick: () => editor.chain().focus().toggleBulletList().run(),
|
|
2799
2820
|
isActive: formattingState?.isBulletList,
|
|
2800
2821
|
title: "Bullet List",
|
|
2801
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2822
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.List, { className: ICON_SIZE })
|
|
2802
2823
|
}
|
|
2803
2824
|
),
|
|
2804
2825
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2807,7 +2828,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2807
2828
|
onClick: () => editor.chain().focus().toggleOrderedList().run(),
|
|
2808
2829
|
isActive: formattingState?.isOrderedList,
|
|
2809
2830
|
title: "Numbered List",
|
|
2810
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2831
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ListOrdered, { className: ICON_SIZE })
|
|
2811
2832
|
}
|
|
2812
2833
|
),
|
|
2813
2834
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2816,7 +2837,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2816
2837
|
onClick: () => editor.chain().focus().toggleBlockquote().run(),
|
|
2817
2838
|
isActive: formattingState?.isBlockquote,
|
|
2818
2839
|
title: "Blockquote",
|
|
2819
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2840
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Quote, { className: ICON_SIZE })
|
|
2820
2841
|
}
|
|
2821
2842
|
),
|
|
2822
2843
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
|
|
@@ -2826,7 +2847,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2826
2847
|
onClick: () => editor.chain().focus().setTextAlign("left").run(),
|
|
2827
2848
|
isActive: formattingState?.isAlignLeft,
|
|
2828
2849
|
title: "Align Left",
|
|
2829
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2850
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignLeft, { className: ICON_SIZE })
|
|
2830
2851
|
}
|
|
2831
2852
|
),
|
|
2832
2853
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2835,7 +2856,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2835
2856
|
onClick: () => editor.chain().focus().setTextAlign("center").run(),
|
|
2836
2857
|
isActive: formattingState?.isAlignCenter,
|
|
2837
2858
|
title: "Align Center",
|
|
2838
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2859
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignCenter, { className: ICON_SIZE })
|
|
2839
2860
|
}
|
|
2840
2861
|
),
|
|
2841
2862
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2844,7 +2865,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2844
2865
|
onClick: () => editor.chain().focus().setTextAlign("right").run(),
|
|
2845
2866
|
isActive: formattingState?.isAlignRight,
|
|
2846
2867
|
title: "Align Right",
|
|
2847
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2868
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignRight, { className: ICON_SIZE })
|
|
2848
2869
|
}
|
|
2849
2870
|
),
|
|
2850
2871
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2853,7 +2874,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2853
2874
|
onClick: () => editor.chain().focus().setTextAlign("justify").run(),
|
|
2854
2875
|
isActive: formattingState?.isAlignJustify,
|
|
2855
2876
|
title: "Justify",
|
|
2856
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2877
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignJustify, { className: ICON_SIZE })
|
|
2857
2878
|
}
|
|
2858
2879
|
),
|
|
2859
2880
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
|
|
@@ -2864,7 +2885,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2864
2885
|
onClick: () => setIsLinkPopoverOpen(!isLinkPopoverOpen),
|
|
2865
2886
|
isActive: formattingState?.isLink,
|
|
2866
2887
|
title: "Add Link",
|
|
2867
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2888
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: ICON_SIZE })
|
|
2868
2889
|
}
|
|
2869
2890
|
),
|
|
2870
2891
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2880,7 +2901,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2880
2901
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2881
2902
|
ToolbarDropdown,
|
|
2882
2903
|
{
|
|
2883
|
-
trigger: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2904
|
+
trigger: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Palette, { className: ICON_SIZE }),
|
|
2884
2905
|
title: "Text Color",
|
|
2885
2906
|
children: (close) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2886
2907
|
/* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
|
|
@@ -2937,7 +2958,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2937
2958
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2938
2959
|
ToolbarDropdown,
|
|
2939
2960
|
{
|
|
2940
|
-
trigger: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2961
|
+
trigger: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Highlighter, { className: ICON_SIZE }),
|
|
2941
2962
|
title: "Highlight",
|
|
2942
2963
|
isActive: formattingState?.isHighlight,
|
|
2943
2964
|
children: (close) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -2968,7 +2989,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2968
2989
|
{
|
|
2969
2990
|
onClick: () => editor.chain().focus().setHorizontalRule().run(),
|
|
2970
2991
|
title: "Horizontal Rule",
|
|
2971
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2992
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, { className: ICON_SIZE })
|
|
2972
2993
|
}
|
|
2973
2994
|
),
|
|
2974
2995
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2976,7 +2997,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2976
2997
|
{
|
|
2977
2998
|
onClick: () => editor.chain().focus().setHardBreak().run(),
|
|
2978
2999
|
title: "Hard Break (Shift+Enter)",
|
|
2979
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3000
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CornerDownLeft, { className: ICON_SIZE })
|
|
2980
3001
|
}
|
|
2981
3002
|
),
|
|
2982
3003
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
|
|
@@ -2985,7 +3006,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
2985
3006
|
{
|
|
2986
3007
|
onClick: () => editor.chain().focus().unsetAllMarks().clearNodes().run(),
|
|
2987
3008
|
title: "Clear Formatting",
|
|
2988
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3009
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RemoveFormatting, { className: ICON_SIZE })
|
|
2989
3010
|
}
|
|
2990
3011
|
),
|
|
2991
3012
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3008,7 +3029,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
|
|
|
3008
3029
|
!showSource && "bg-transparent"
|
|
3009
3030
|
),
|
|
3010
3031
|
children: [
|
|
3011
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3032
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code, { className: ICON_SIZE }),
|
|
3012
3033
|
"Source"
|
|
3013
3034
|
]
|
|
3014
3035
|
}
|
|
@@ -3138,7 +3159,7 @@ function TiptapModal({ isOpen, onClose, value, onChange, title }) {
|
|
|
3138
3159
|
justifyContent: "center"
|
|
3139
3160
|
},
|
|
3140
3161
|
title: "Close (Esc)",
|
|
3141
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3162
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 20 })
|
|
3142
3163
|
}
|
|
3143
3164
|
)
|
|
3144
3165
|
]
|
|
@@ -3265,7 +3286,7 @@ function TiptapModalFieldInner({ value, onChange, label }) {
|
|
|
3265
3286
|
},
|
|
3266
3287
|
title: "Open full-screen editor",
|
|
3267
3288
|
children: [
|
|
3268
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3289
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { size: 14 }),
|
|
3269
3290
|
"Expand"
|
|
3270
3291
|
]
|
|
3271
3292
|
}
|
|
@@ -3381,7 +3402,7 @@ function PaddingFieldInner({
|
|
|
3381
3402
|
isLinked ? "" : "text-muted-foreground"
|
|
3382
3403
|
),
|
|
3383
3404
|
title: isLinked ? "Click to unlink (set sides individually)" : "Click to link (all sides same value)",
|
|
3384
|
-
children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3405
|
+
children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlink, { className: "h-4 w-4" })
|
|
3385
3406
|
}
|
|
3386
3407
|
)
|
|
3387
3408
|
] }),
|
|
@@ -3521,7 +3542,7 @@ function MarginFieldInner({
|
|
|
3521
3542
|
isLinked ? "" : "text-muted-foreground"
|
|
3522
3543
|
),
|
|
3523
3544
|
title: isLinked ? "Click to unlink (set sides individually)" : "Click to link (all sides same value)",
|
|
3524
|
-
children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3545
|
+
children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlink, { className: "h-4 w-4" })
|
|
3525
3546
|
}
|
|
3526
3547
|
)
|
|
3527
3548
|
] }),
|
|
@@ -3588,7 +3609,7 @@ var SelectTrigger = React12__namespace.forwardRef(({ className, children, ...pro
|
|
|
3588
3609
|
...props,
|
|
3589
3610
|
children: [
|
|
3590
3611
|
children,
|
|
3591
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3612
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
|
|
3592
3613
|
]
|
|
3593
3614
|
}
|
|
3594
3615
|
));
|
|
@@ -3602,7 +3623,7 @@ var SelectScrollUpButton = React12__namespace.forwardRef(({ className, ...props
|
|
|
3602
3623
|
className
|
|
3603
3624
|
),
|
|
3604
3625
|
...props,
|
|
3605
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3626
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
|
|
3606
3627
|
}
|
|
3607
3628
|
));
|
|
3608
3629
|
SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
|
|
@@ -3615,7 +3636,7 @@ var SelectScrollDownButton = React12__namespace.forwardRef(({ className, ...prop
|
|
|
3615
3636
|
className
|
|
3616
3637
|
),
|
|
3617
3638
|
...props,
|
|
3618
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3639
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" })
|
|
3619
3640
|
}
|
|
3620
3641
|
));
|
|
3621
3642
|
SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
|
|
@@ -3666,7 +3687,7 @@ var SelectItem = React12__namespace.forwardRef(({ className, children, ...props
|
|
|
3666
3687
|
),
|
|
3667
3688
|
...props,
|
|
3668
3689
|
children: [
|
|
3669
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3690
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
3670
3691
|
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
3671
3692
|
]
|
|
3672
3693
|
}
|
|
@@ -3758,7 +3779,7 @@ function BorderFieldInner({
|
|
|
3758
3779
|
onClick: handleClear,
|
|
3759
3780
|
className: "text-muted-foreground hover:text-destructive",
|
|
3760
3781
|
title: "Clear border",
|
|
3761
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3782
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
3762
3783
|
}
|
|
3763
3784
|
)
|
|
3764
3785
|
] }),
|
|
@@ -3861,7 +3882,7 @@ function BorderFieldInner({
|
|
|
3861
3882
|
currentValue.sides.top && "bg-primary hover:bg-primary/90"
|
|
3862
3883
|
),
|
|
3863
3884
|
title: "Top border",
|
|
3864
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3885
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { className: "h-4 w-4" })
|
|
3865
3886
|
}
|
|
3866
3887
|
),
|
|
3867
3888
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3876,7 +3897,7 @@ function BorderFieldInner({
|
|
|
3876
3897
|
currentValue.sides.right && "bg-primary hover:bg-primary/90"
|
|
3877
3898
|
),
|
|
3878
3899
|
title: "Right border",
|
|
3879
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3900
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "h-4 w-4" })
|
|
3880
3901
|
}
|
|
3881
3902
|
),
|
|
3882
3903
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3891,7 +3912,7 @@ function BorderFieldInner({
|
|
|
3891
3912
|
currentValue.sides.bottom && "bg-primary hover:bg-primary/90"
|
|
3892
3913
|
),
|
|
3893
3914
|
title: "Bottom border",
|
|
3894
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3915
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowDown, { className: "h-4 w-4" })
|
|
3895
3916
|
}
|
|
3896
3917
|
),
|
|
3897
3918
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3906,7 +3927,7 @@ function BorderFieldInner({
|
|
|
3906
3927
|
currentValue.sides.left && "bg-primary hover:bg-primary/90"
|
|
3907
3928
|
),
|
|
3908
3929
|
title: "Left border",
|
|
3909
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3930
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "h-4 w-4" })
|
|
3910
3931
|
}
|
|
3911
3932
|
)
|
|
3912
3933
|
] }),
|
|
@@ -4010,14 +4031,14 @@ function WidthFieldInner({
|
|
|
4010
4031
|
onClick: handleClear,
|
|
4011
4032
|
className: "text-muted-foreground hover:text-destructive",
|
|
4012
4033
|
title: "Reset to default",
|
|
4013
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4034
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
4014
4035
|
}
|
|
4015
4036
|
)
|
|
4016
4037
|
] }),
|
|
4017
4038
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: [
|
|
4018
|
-
{ mode: "full", icon:
|
|
4019
|
-
{ mode: "contained", icon:
|
|
4020
|
-
{ mode: "custom", icon:
|
|
4039
|
+
{ mode: "full", icon: lucideReact.MoveHorizontal, title: "Full width (100%)" },
|
|
4040
|
+
{ mode: "contained", icon: lucideReact.Container, title: "Contained (centered with max-width)" },
|
|
4041
|
+
{ mode: "custom", icon: lucideReact.SlidersHorizontal, title: "Custom width settings" }
|
|
4021
4042
|
].map(({ mode, icon: Icon2, title }) => {
|
|
4022
4043
|
const isActive = currentValue.mode === mode;
|
|
4023
4044
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -4104,9 +4125,9 @@ function WidthFieldInner({
|
|
|
4104
4125
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4105
4126
|
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs text-muted-foreground flex-shrink-0", children: "Align:" }),
|
|
4106
4127
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: [
|
|
4107
|
-
{ alignment: "left", icon:
|
|
4108
|
-
{ alignment: "center", icon:
|
|
4109
|
-
{ alignment: "right", icon:
|
|
4128
|
+
{ alignment: "left", icon: lucideReact.AlignLeft, title: "Align left" },
|
|
4129
|
+
{ alignment: "center", icon: lucideReact.AlignCenter, title: "Align center" },
|
|
4130
|
+
{ alignment: "right", icon: lucideReact.AlignRight, title: "Align right" }
|
|
4110
4131
|
].map(({ alignment, icon: Icon2, title }) => {
|
|
4111
4132
|
const isActive = currentValue.alignment === alignment;
|
|
4112
4133
|
const isDisabled = readOnly || currentValue.mode === "full";
|
|
@@ -4413,14 +4434,14 @@ function DimensionsFieldInner({
|
|
|
4413
4434
|
});
|
|
4414
4435
|
}, [advancedMode, currentValue, onChange]);
|
|
4415
4436
|
const modeConfig = [
|
|
4416
|
-
{ mode: "full", icon:
|
|
4417
|
-
{ mode: "contained", icon:
|
|
4418
|
-
{ mode: "custom", icon:
|
|
4437
|
+
{ mode: "full", icon: lucideReact.MoveHorizontal, label: "Full", title: "Full width (100%)" },
|
|
4438
|
+
{ mode: "contained", icon: lucideReact.Square, label: "Contain", title: "Contained (centered with max-width)" },
|
|
4439
|
+
{ mode: "custom", icon: lucideReact.SlidersHorizontal, label: "Custom", title: "Custom width settings" }
|
|
4419
4440
|
];
|
|
4420
4441
|
const alignmentConfig = [
|
|
4421
|
-
{ alignment: "left", icon:
|
|
4422
|
-
{ alignment: "center", icon:
|
|
4423
|
-
{ alignment: "right", icon:
|
|
4442
|
+
{ alignment: "left", icon: lucideReact.AlignStartHorizontal, title: "Align left" },
|
|
4443
|
+
{ alignment: "center", icon: lucideReact.AlignCenterHorizontal, title: "Align center" },
|
|
4444
|
+
{ alignment: "right", icon: lucideReact.AlignEndHorizontal, title: "Align right" }
|
|
4424
4445
|
];
|
|
4425
4446
|
const showWidthControls = currentValue.mode !== "full";
|
|
4426
4447
|
showHeightControls && (advancedMode || currentValue.minHeight?.enabled || currentValue.maxHeight?.enabled);
|
|
@@ -4436,7 +4457,7 @@ function DimensionsFieldInner({
|
|
|
4436
4457
|
onClick: handleClear,
|
|
4437
4458
|
className: "text-muted-foreground hover:text-destructive",
|
|
4438
4459
|
title: "Reset to default",
|
|
4439
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4460
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
4440
4461
|
}
|
|
4441
4462
|
)
|
|
4442
4463
|
] }),
|
|
@@ -4639,10 +4660,10 @@ function DimensionsFieldInner({
|
|
|
4639
4660
|
disabled: readOnly,
|
|
4640
4661
|
className: "w-full text-xs text-muted-foreground hover:text-foreground",
|
|
4641
4662
|
children: advancedMode ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4642
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4663
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-3.5 w-3.5 mr-1" }),
|
|
4643
4664
|
"Hide Advanced"
|
|
4644
4665
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4645
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4666
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-3.5 w-3.5 mr-1" }),
|
|
4646
4667
|
"Show Advanced"
|
|
4647
4668
|
] })
|
|
4648
4669
|
}
|
|
@@ -4697,7 +4718,7 @@ function LockedTextField({
|
|
|
4697
4718
|
transition: "all 0.15s ease"
|
|
4698
4719
|
},
|
|
4699
4720
|
title: isLocked ? "Click to unlock" : "Click to lock",
|
|
4700
|
-
children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4721
|
+
children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { size: 14 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlock, { size: 14 })
|
|
4701
4722
|
}
|
|
4702
4723
|
)
|
|
4703
4724
|
] }),
|
|
@@ -4726,7 +4747,7 @@ function LockedTextField({
|
|
|
4726
4747
|
}
|
|
4727
4748
|
),
|
|
4728
4749
|
isLocked && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4729
|
-
|
|
4750
|
+
lucideReact.Lock,
|
|
4730
4751
|
{
|
|
4731
4752
|
size: 14,
|
|
4732
4753
|
style: {
|
|
@@ -4781,7 +4802,7 @@ function LockedRadioField({
|
|
|
4781
4802
|
transition: "all 0.15s ease"
|
|
4782
4803
|
},
|
|
4783
4804
|
title: isLocked ? "Click to unlock" : "Click to lock",
|
|
4784
|
-
children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4805
|
+
children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { size: 14 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlock, { size: 14 })
|
|
4785
4806
|
}
|
|
4786
4807
|
)
|
|
4787
4808
|
] }),
|
|
@@ -4893,9 +4914,9 @@ function AlignmentFieldInner({
|
|
|
4893
4914
|
onChange(null);
|
|
4894
4915
|
}, [onChange]);
|
|
4895
4916
|
const alignments = [
|
|
4896
|
-
{ value: "left", icon:
|
|
4897
|
-
{ value: "center", icon:
|
|
4898
|
-
{ value: "right", icon:
|
|
4917
|
+
{ value: "left", icon: lucideReact.AlignLeft, title: "Align left" },
|
|
4918
|
+
{ value: "center", icon: lucideReact.AlignCenter, title: "Align center" },
|
|
4919
|
+
{ value: "right", icon: lucideReact.AlignRight, title: "Align right" }
|
|
4899
4920
|
];
|
|
4900
4921
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
|
|
4901
4922
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
@@ -4909,7 +4930,7 @@ function AlignmentFieldInner({
|
|
|
4909
4930
|
onClick: handleClear,
|
|
4910
4931
|
className: "text-muted-foreground hover:text-destructive",
|
|
4911
4932
|
title: "Reset to default",
|
|
4912
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4933
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
4913
4934
|
}
|
|
4914
4935
|
)
|
|
4915
4936
|
] }),
|
|
@@ -4967,11 +4988,11 @@ function JustifyContentFieldInner({
|
|
|
4967
4988
|
onChange(null);
|
|
4968
4989
|
}, [onChange]);
|
|
4969
4990
|
const options = [
|
|
4970
|
-
{ value: "flex-start", icon:
|
|
4971
|
-
{ value: "center", icon:
|
|
4972
|
-
{ value: "flex-end", icon:
|
|
4973
|
-
{ value: "space-between", icon:
|
|
4974
|
-
{ value: "space-around", icon:
|
|
4991
|
+
{ value: "flex-start", icon: lucideReact.AlignLeft, title: "Start" },
|
|
4992
|
+
{ value: "center", icon: lucideReact.AlignCenter, title: "Center" },
|
|
4993
|
+
{ value: "flex-end", icon: lucideReact.AlignRight, title: "End" },
|
|
4994
|
+
{ value: "space-between", icon: lucideReact.AlignHorizontalDistributeCenter, title: "Space Between" },
|
|
4995
|
+
{ value: "space-around", icon: lucideReact.GripHorizontal, title: "Space Around" }
|
|
4975
4996
|
];
|
|
4976
4997
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
|
|
4977
4998
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
@@ -4985,7 +5006,7 @@ function JustifyContentFieldInner({
|
|
|
4985
5006
|
onClick: handleClear,
|
|
4986
5007
|
className: "text-muted-foreground hover:text-destructive",
|
|
4987
5008
|
title: "Reset to default",
|
|
4988
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5009
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
4989
5010
|
}
|
|
4990
5011
|
)
|
|
4991
5012
|
] }),
|
|
@@ -5027,10 +5048,10 @@ function AlignItemsFieldInner({
|
|
|
5027
5048
|
onChange(null);
|
|
5028
5049
|
}, [onChange]);
|
|
5029
5050
|
const options = [
|
|
5030
|
-
{ value: "flex-start", icon:
|
|
5031
|
-
{ value: "center", icon:
|
|
5032
|
-
{ value: "flex-end", icon:
|
|
5033
|
-
{ value: "stretch", icon:
|
|
5051
|
+
{ value: "flex-start", icon: lucideReact.AlignStartVertical, title: "Start" },
|
|
5052
|
+
{ value: "center", icon: lucideReact.AlignCenterVertical, title: "Center" },
|
|
5053
|
+
{ value: "flex-end", icon: lucideReact.AlignEndVertical, title: "End" },
|
|
5054
|
+
{ value: "stretch", icon: lucideReact.MoveVertical, title: "Stretch" }
|
|
5034
5055
|
];
|
|
5035
5056
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
|
|
5036
5057
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
@@ -5044,7 +5065,7 @@ function AlignItemsFieldInner({
|
|
|
5044
5065
|
onClick: handleClear,
|
|
5045
5066
|
className: "text-muted-foreground hover:text-destructive",
|
|
5046
5067
|
title: "Reset to default",
|
|
5047
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5068
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
5048
5069
|
}
|
|
5049
5070
|
)
|
|
5050
5071
|
] }),
|
|
@@ -5118,9 +5139,9 @@ function VerticalAlignmentFieldInner({
|
|
|
5118
5139
|
onChange(null);
|
|
5119
5140
|
}, [onChange]);
|
|
5120
5141
|
const options = [
|
|
5121
|
-
{ value: "flex-start", icon:
|
|
5122
|
-
{ value: "center", icon:
|
|
5123
|
-
{ value: "flex-end", icon:
|
|
5142
|
+
{ value: "flex-start", icon: lucideReact.AlignStartVertical, title: "Top" },
|
|
5143
|
+
{ value: "center", icon: lucideReact.AlignCenterVertical, title: "Center" },
|
|
5144
|
+
{ value: "flex-end", icon: lucideReact.AlignEndVertical, title: "Bottom" }
|
|
5124
5145
|
];
|
|
5125
5146
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
|
|
5126
5147
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
@@ -5134,7 +5155,7 @@ function VerticalAlignmentFieldInner({
|
|
|
5134
5155
|
onClick: handleClear,
|
|
5135
5156
|
className: "text-muted-foreground hover:text-destructive",
|
|
5136
5157
|
title: "Reset to default",
|
|
5137
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5158
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
5138
5159
|
}
|
|
5139
5160
|
)
|
|
5140
5161
|
] }),
|
|
@@ -5239,7 +5260,7 @@ function SizeFieldInner({
|
|
|
5239
5260
|
onClick: handleClear,
|
|
5240
5261
|
className: "text-muted-foreground hover:text-destructive",
|
|
5241
5262
|
title: "Reset to default",
|
|
5242
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5263
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
5243
5264
|
}
|
|
5244
5265
|
)
|
|
5245
5266
|
] }),
|
|
@@ -5516,7 +5537,7 @@ function GradientStopEditorInner({
|
|
|
5516
5537
|
onClick: () => onDelete(index),
|
|
5517
5538
|
className: "p-1 text-muted-foreground hover:text-destructive hover:bg-destructive/10 rounded flex-shrink-0",
|
|
5518
5539
|
title: "Remove stop",
|
|
5519
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5540
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "w-4 h-4" })
|
|
5520
5541
|
}
|
|
5521
5542
|
)
|
|
5522
5543
|
] }),
|
|
@@ -5730,7 +5751,7 @@ function GradientEditorInner({ value, onChange, readOnly }) {
|
|
|
5730
5751
|
onClick: handleAddStop,
|
|
5731
5752
|
className: "h-6 text-xs px-2",
|
|
5732
5753
|
children: [
|
|
5733
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5754
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "w-3 h-3 mr-1" }),
|
|
5734
5755
|
"Add Stop"
|
|
5735
5756
|
]
|
|
5736
5757
|
}
|
|
@@ -6219,7 +6240,7 @@ function BackgroundFieldInner({
|
|
|
6219
6240
|
onClick: handleClear,
|
|
6220
6241
|
title: "Clear background",
|
|
6221
6242
|
className: "flex items-center justify-center w-6 h-6 rounded border-none bg-transparent cursor-pointer text-muted-foreground hover:bg-accent hover:text-destructive",
|
|
6222
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6243
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" })
|
|
6223
6244
|
}
|
|
6224
6245
|
)
|
|
6225
6246
|
] }),
|
|
@@ -6367,11 +6388,11 @@ function createBackgroundField(config = {}) {
|
|
|
6367
6388
|
};
|
|
6368
6389
|
}
|
|
6369
6390
|
var BREAKPOINT_ICONS = {
|
|
6370
|
-
|
|
6371
|
-
sm:
|
|
6372
|
-
md:
|
|
6373
|
-
lg:
|
|
6374
|
-
xl:
|
|
6391
|
+
xs: lucideReact.Smartphone,
|
|
6392
|
+
sm: lucideReact.Smartphone,
|
|
6393
|
+
md: lucideReact.Tablet,
|
|
6394
|
+
lg: lucideReact.Laptop,
|
|
6395
|
+
xl: lucideReact.Monitor
|
|
6375
6396
|
};
|
|
6376
6397
|
function BreakpointTab({
|
|
6377
6398
|
breakpoint,
|
|
@@ -6411,17 +6432,17 @@ function ResponsiveFieldInner({
|
|
|
6411
6432
|
renderInnerField,
|
|
6412
6433
|
defaultValue
|
|
6413
6434
|
}) {
|
|
6414
|
-
const [activeBreakpoint, setActiveBreakpoint] = React12.useState("
|
|
6435
|
+
const [activeBreakpoint, setActiveBreakpoint] = React12.useState("xs");
|
|
6415
6436
|
const getCurrentValue = React12.useCallback(() => {
|
|
6416
6437
|
if (!value) return defaultValue ?? null;
|
|
6417
|
-
if (activeBreakpoint === "
|
|
6418
|
-
return value.
|
|
6438
|
+
if (activeBreakpoint === "xs") {
|
|
6439
|
+
return value.xs ?? defaultValue ?? null;
|
|
6419
6440
|
}
|
|
6420
6441
|
const override = value[activeBreakpoint];
|
|
6421
6442
|
if (override !== void 0) {
|
|
6422
6443
|
return override;
|
|
6423
6444
|
}
|
|
6424
|
-
const breakpointOrder = ["xl", "lg", "md", "sm", "
|
|
6445
|
+
const breakpointOrder = ["xl", "lg", "md", "sm", "xs"];
|
|
6425
6446
|
const activeIndex = breakpointOrder.indexOf(activeBreakpoint);
|
|
6426
6447
|
for (let i = activeIndex + 1; i < breakpointOrder.length; i++) {
|
|
6427
6448
|
const bp = breakpointOrder[i];
|
|
@@ -6435,18 +6456,18 @@ function ResponsiveFieldInner({
|
|
|
6435
6456
|
const hasOverride = React12.useCallback(
|
|
6436
6457
|
(breakpoint) => {
|
|
6437
6458
|
if (!value) return false;
|
|
6438
|
-
if (breakpoint === "
|
|
6459
|
+
if (breakpoint === "xs") return value.xs !== void 0;
|
|
6439
6460
|
return value[breakpoint] !== void 0;
|
|
6440
6461
|
},
|
|
6441
6462
|
[value]
|
|
6442
6463
|
);
|
|
6443
6464
|
const handleInnerChange = React12.useCallback(
|
|
6444
6465
|
(newValue) => {
|
|
6445
|
-
if (activeBreakpoint === "
|
|
6466
|
+
if (activeBreakpoint === "xs") {
|
|
6446
6467
|
if (newValue === null && defaultValue !== void 0) {
|
|
6447
|
-
onChange({ ...value,
|
|
6468
|
+
onChange({ ...value, xs: defaultValue });
|
|
6448
6469
|
} else if (newValue !== null) {
|
|
6449
|
-
onChange({ ...value,
|
|
6470
|
+
onChange({ ...value, xs: newValue });
|
|
6450
6471
|
}
|
|
6451
6472
|
} else {
|
|
6452
6473
|
if (newValue === null) {
|
|
@@ -6454,11 +6475,11 @@ function ResponsiveFieldInner({
|
|
|
6454
6475
|
delete newResponsive[activeBreakpoint];
|
|
6455
6476
|
onChange(newResponsive);
|
|
6456
6477
|
} else {
|
|
6457
|
-
const
|
|
6458
|
-
if (
|
|
6478
|
+
const xs = value?.xs ?? defaultValue;
|
|
6479
|
+
if (xs === void 0) return;
|
|
6459
6480
|
onChange({
|
|
6460
6481
|
...value,
|
|
6461
|
-
|
|
6482
|
+
xs,
|
|
6462
6483
|
[activeBreakpoint]: newValue
|
|
6463
6484
|
});
|
|
6464
6485
|
}
|
|
@@ -6467,7 +6488,7 @@ function ResponsiveFieldInner({
|
|
|
6467
6488
|
[value, onChange, activeBreakpoint, defaultValue]
|
|
6468
6489
|
);
|
|
6469
6490
|
const handleClearOverride = React12.useCallback(() => {
|
|
6470
|
-
if (activeBreakpoint === "
|
|
6491
|
+
if (activeBreakpoint === "xs" || !value) return;
|
|
6471
6492
|
const newResponsive = { ...value };
|
|
6472
6493
|
delete newResponsive[activeBreakpoint];
|
|
6473
6494
|
onChange(newResponsive);
|
|
@@ -6476,7 +6497,7 @@ function ResponsiveFieldInner({
|
|
|
6476
6497
|
onChange(null);
|
|
6477
6498
|
}, [onChange]);
|
|
6478
6499
|
const currentValue = getCurrentValue();
|
|
6479
|
-
const isOverrideBreakpoint = activeBreakpoint !== "
|
|
6500
|
+
const isOverrideBreakpoint = activeBreakpoint !== "xs";
|
|
6480
6501
|
const currentHasOverride = hasOverride(activeBreakpoint);
|
|
6481
6502
|
const overrideCount = value ? ["sm", "md", "lg", "xl"].filter((bp) => value[bp] !== void 0).length : 0;
|
|
6482
6503
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-3", children: [
|
|
@@ -6498,7 +6519,7 @@ function ResponsiveFieldInner({
|
|
|
6498
6519
|
onClick: handleClearAll,
|
|
6499
6520
|
className: "text-muted-foreground hover:text-destructive",
|
|
6500
6521
|
title: "Clear all values",
|
|
6501
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6522
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
6502
6523
|
}
|
|
6503
6524
|
)
|
|
6504
6525
|
] }),
|
|
@@ -6516,10 +6537,10 @@ function ResponsiveFieldInner({
|
|
|
6516
6537
|
bp.key
|
|
6517
6538
|
)) }),
|
|
6518
6539
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-xs text-muted-foreground", children: [
|
|
6519
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: activeBreakpoint === "
|
|
6540
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: activeBreakpoint === "xs" ? "Extra small screens (0-639px)" : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6520
6541
|
BREAKPOINTS.find((bp) => bp.key === activeBreakpoint)?.minWidth,
|
|
6521
6542
|
"px and up",
|
|
6522
|
-
!currentHasOverride && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/60", children: " (inheriting from
|
|
6543
|
+
!currentHasOverride && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/60", children: " (inheriting from xs)" })
|
|
6523
6544
|
] }) }),
|
|
6524
6545
|
isOverrideBreakpoint && currentHasOverride && !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6525
6546
|
Button,
|
|
@@ -6572,18 +6593,17 @@ function createResponsiveField(config) {
|
|
|
6572
6593
|
};
|
|
6573
6594
|
}
|
|
6574
6595
|
var BREAKPOINT_ICONS2 = {
|
|
6575
|
-
|
|
6576
|
-
sm:
|
|
6577
|
-
md:
|
|
6578
|
-
lg:
|
|
6579
|
-
xl:
|
|
6596
|
+
xs: lucideReact.Smartphone,
|
|
6597
|
+
sm: lucideReact.Smartphone,
|
|
6598
|
+
md: lucideReact.Tablet,
|
|
6599
|
+
lg: lucideReact.Laptop,
|
|
6600
|
+
xl: lucideReact.Monitor
|
|
6580
6601
|
};
|
|
6581
6602
|
function VisibilityToggle({
|
|
6582
6603
|
breakpoint,
|
|
6583
6604
|
label,
|
|
6584
6605
|
minWidth,
|
|
6585
6606
|
isVisible,
|
|
6586
|
-
isInherited,
|
|
6587
6607
|
onClick,
|
|
6588
6608
|
disabled
|
|
6589
6609
|
}) {
|
|
@@ -6594,18 +6614,16 @@ function VisibilityToggle({
|
|
|
6594
6614
|
type: "button",
|
|
6595
6615
|
onClick,
|
|
6596
6616
|
disabled,
|
|
6597
|
-
title: `${label}${minWidth ? ` (${minWidth}px+)` : ""}: ${isVisible ? "Visible" : "Hidden"}
|
|
6617
|
+
title: `${label}${minWidth ? ` (${minWidth}px+)` : ""}: ${isVisible ? "Visible" : "Hidden"}`,
|
|
6598
6618
|
className: cn2(
|
|
6599
6619
|
"relative flex flex-col items-center justify-center gap-0.5 p-2 rounded-md transition-all flex-1 min-w-[52px]",
|
|
6600
|
-
isVisible ? "bg-emerald-500/
|
|
6601
|
-
isInherited && "opacity-60",
|
|
6620
|
+
isVisible ? "bg-emerald-500/15 text-emerald-600 hover:bg-emerald-500/25 border border-emerald-500/40" : "bg-red-500/15 text-red-500 hover:bg-red-500/25 border border-red-500/40",
|
|
6602
6621
|
disabled && "opacity-50 cursor-not-allowed"
|
|
6603
6622
|
),
|
|
6604
6623
|
children: [
|
|
6605
6624
|
/* @__PURE__ */ jsxRuntime.jsx(DeviceIcon, { className: "h-4 w-4" }),
|
|
6606
6625
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-medium", children: label }),
|
|
6607
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1 right-1", children: isVisible ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6608
|
-
isInherited && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -bottom-0.5 left-1/2 -translate-x-1/2 text-[8px] text-muted-foreground", children: "\u2022" })
|
|
6626
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1 right-1", children: isVisible ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "h-3 w-3" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.EyeOff, { className: "h-3 w-3" }) })
|
|
6609
6627
|
]
|
|
6610
6628
|
}
|
|
6611
6629
|
);
|
|
@@ -6616,85 +6634,46 @@ function ResponsiveVisibilityFieldInner({
|
|
|
6616
6634
|
label,
|
|
6617
6635
|
readOnly
|
|
6618
6636
|
}) {
|
|
6619
|
-
const
|
|
6637
|
+
const getVisibility = React12.useCallback(
|
|
6620
6638
|
(breakpoint) => {
|
|
6621
6639
|
const val = value ?? DEFAULT_VISIBILITY;
|
|
6622
|
-
|
|
6623
|
-
return { visible: val.base, inherited: false };
|
|
6624
|
-
}
|
|
6625
|
-
const explicitValue = val[breakpoint];
|
|
6626
|
-
if (explicitValue !== void 0) {
|
|
6627
|
-
return { visible: explicitValue, inherited: false };
|
|
6628
|
-
}
|
|
6629
|
-
const breakpointOrder = ["xl", "lg", "md", "sm", "base"];
|
|
6630
|
-
const currentIndex = breakpointOrder.indexOf(breakpoint);
|
|
6631
|
-
for (let i = currentIndex + 1; i < breakpointOrder.length; i++) {
|
|
6632
|
-
const bp = breakpointOrder[i];
|
|
6633
|
-
const bpValue = val[bp];
|
|
6634
|
-
if (bpValue !== void 0) {
|
|
6635
|
-
return { visible: bpValue, inherited: true };
|
|
6636
|
-
}
|
|
6637
|
-
}
|
|
6638
|
-
return { visible: val.base, inherited: true };
|
|
6640
|
+
return val[breakpoint] ?? true;
|
|
6639
6641
|
},
|
|
6640
6642
|
[value]
|
|
6641
6643
|
);
|
|
6642
6644
|
const toggleVisibility = React12.useCallback(
|
|
6643
6645
|
(breakpoint) => {
|
|
6644
|
-
const
|
|
6645
|
-
const
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
});
|
|
6651
|
-
} else {
|
|
6652
|
-
const newValue = {
|
|
6653
|
-
...value ?? DEFAULT_VISIBILITY,
|
|
6654
|
-
[breakpoint]: newVisible
|
|
6655
|
-
};
|
|
6656
|
-
onChange(newValue);
|
|
6657
|
-
}
|
|
6646
|
+
const currentVisible = getVisibility(breakpoint);
|
|
6647
|
+
const newValue = {
|
|
6648
|
+
...value ?? DEFAULT_VISIBILITY,
|
|
6649
|
+
[breakpoint]: !currentVisible
|
|
6650
|
+
};
|
|
6651
|
+
onChange(newValue);
|
|
6658
6652
|
},
|
|
6659
|
-
[value, onChange,
|
|
6653
|
+
[value, onChange, getVisibility]
|
|
6660
6654
|
);
|
|
6661
|
-
const
|
|
6662
|
-
const hasHiddenBreakpoints = BREAKPOINTS.some((bp) => {
|
|
6663
|
-
const { visible } = getEffectiveVisibility(bp.key);
|
|
6664
|
-
return !visible;
|
|
6665
|
-
});
|
|
6655
|
+
const hasHiddenBreakpoints = BREAKPOINTS.some((bp) => !getVisibility(bp.key));
|
|
6666
6656
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
|
|
6667
6657
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
6668
|
-
label && /* @__PURE__ */ jsxRuntime.
|
|
6669
|
-
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-sm font-medium text-foreground", children: label }),
|
|
6670
|
-
overrideCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground bg-muted px-1.5 py-0.5 rounded", children: [
|
|
6671
|
-
overrideCount,
|
|
6672
|
-
" override",
|
|
6673
|
-
overrideCount !== 1 ? "s" : ""
|
|
6674
|
-
] })
|
|
6675
|
-
] }),
|
|
6658
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-sm font-medium text-foreground", children: label }),
|
|
6676
6659
|
hasHiddenBreakpoints && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-amber-600 flex items-center gap-1", children: [
|
|
6677
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6678
|
-
"
|
|
6660
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.EyeOff, { className: "h-3 w-3" }),
|
|
6661
|
+
"Partially hidden"
|
|
6679
6662
|
] })
|
|
6680
6663
|
] }),
|
|
6681
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: BREAKPOINTS.map((bp) =>
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
bp.key
|
|
6695
|
-
);
|
|
6696
|
-
}) }),
|
|
6697
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Click to toggle visibility. Changes cascade to larger breakpoints." })
|
|
6664
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: BREAKPOINTS.map((bp) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6665
|
+
VisibilityToggle,
|
|
6666
|
+
{
|
|
6667
|
+
breakpoint: bp.key,
|
|
6668
|
+
label: bp.label,
|
|
6669
|
+
minWidth: bp.minWidth,
|
|
6670
|
+
isVisible: getVisibility(bp.key),
|
|
6671
|
+
onClick: () => toggleVisibility(bp.key),
|
|
6672
|
+
disabled: readOnly
|
|
6673
|
+
},
|
|
6674
|
+
bp.key
|
|
6675
|
+
)) }),
|
|
6676
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Toggle visibility per screen size. Each breakpoint is independent." })
|
|
6698
6677
|
] });
|
|
6699
6678
|
}
|
|
6700
6679
|
var ResponsiveVisibilityField = React12.memo(ResponsiveVisibilityFieldInner);
|
|
@@ -6744,7 +6723,7 @@ function CollapsibleSection({ title, defaultOpen = false, children }) {
|
|
|
6744
6723
|
className: "w-full flex items-center justify-between px-3 py-2 bg-muted/30 hover:bg-muted/50 transition-colors",
|
|
6745
6724
|
children: [
|
|
6746
6725
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: title }),
|
|
6747
|
-
isOpen ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6726
|
+
isOpen ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-3.5 w-3.5 text-muted-foreground" })
|
|
6748
6727
|
]
|
|
6749
6728
|
}
|
|
6750
6729
|
),
|
|
@@ -6878,7 +6857,7 @@ function AnimationFieldInner({
|
|
|
6878
6857
|
onClick: handleClear,
|
|
6879
6858
|
className: "text-muted-foreground hover:text-destructive",
|
|
6880
6859
|
title: "Reset to default",
|
|
6881
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6860
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
6882
6861
|
}
|
|
6883
6862
|
)
|
|
6884
6863
|
] }),
|
|
@@ -7304,7 +7283,7 @@ function TransformFieldInner({
|
|
|
7304
7283
|
onClick: handleClear,
|
|
7305
7284
|
className: "text-muted-foreground hover:text-destructive",
|
|
7306
7285
|
title: "Reset transform",
|
|
7307
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7286
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
7308
7287
|
}
|
|
7309
7288
|
)
|
|
7310
7289
|
] }),
|
|
@@ -7318,7 +7297,7 @@ function TransformFieldInner({
|
|
|
7318
7297
|
) }),
|
|
7319
7298
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 p-3 bg-muted/30 rounded-md", children: [
|
|
7320
7299
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
7321
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7300
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCw, { className: "h-4 w-4 text-muted-foreground" }),
|
|
7322
7301
|
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs font-medium", children: "Rotate" })
|
|
7323
7302
|
] }),
|
|
7324
7303
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7336,7 +7315,7 @@ function TransformFieldInner({
|
|
|
7336
7315
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 p-3 bg-muted/30 rounded-md", children: [
|
|
7337
7316
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
7338
7317
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
7339
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7318
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { className: "h-4 w-4 text-muted-foreground" }),
|
|
7340
7319
|
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs font-medium", children: "Scale" })
|
|
7341
7320
|
] }),
|
|
7342
7321
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7348,7 +7327,7 @@ function TransformFieldInner({
|
|
|
7348
7327
|
onClick: handleScaleLockToggle,
|
|
7349
7328
|
className: "h-6 w-6",
|
|
7350
7329
|
title: currentValue.scaleLocked ? "Click to unlink X and Y scale" : "Click to link X and Y scale",
|
|
7351
|
-
children: currentValue.scaleLocked ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7330
|
+
children: currentValue.scaleLocked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-3 w-3" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlink, { className: "h-3 w-3" })
|
|
7352
7331
|
}
|
|
7353
7332
|
)
|
|
7354
7333
|
] }),
|
|
@@ -7480,10 +7459,10 @@ function TransformFieldInner({
|
|
|
7480
7459
|
className: "w-full flex items-center justify-between p-3 bg-muted/30 hover:bg-muted/50 transition-colors",
|
|
7481
7460
|
children: [
|
|
7482
7461
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
7483
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7462
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Box, { className: "h-4 w-4 text-muted-foreground" }),
|
|
7484
7463
|
/* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs font-medium cursor-pointer", children: "3D Transforms" })
|
|
7485
7464
|
] }),
|
|
7486
|
-
show3D ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7465
|
+
show3D ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4 text-muted-foreground" })
|
|
7487
7466
|
]
|
|
7488
7467
|
}
|
|
7489
7468
|
),
|