@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.
Files changed (48) hide show
  1. package/README.md +32 -4
  2. package/dist/AccordionClient.d.mts +1 -1
  3. package/dist/AccordionClient.d.ts +1 -1
  4. package/dist/AccordionClient.js +2 -2
  5. package/dist/AccordionClient.js.map +1 -1
  6. package/dist/AccordionClient.mjs +2 -2
  7. package/dist/AccordionClient.mjs.map +1 -1
  8. package/dist/AnimatedWrapper.d.mts +1 -1
  9. package/dist/AnimatedWrapper.d.ts +1 -1
  10. package/dist/AnimatedWrapper.js.map +1 -1
  11. package/dist/AnimatedWrapper.mjs.map +1 -1
  12. package/dist/components/index.d.mts +1 -1
  13. package/dist/components/index.d.ts +1 -1
  14. package/dist/components/index.js +196 -217
  15. package/dist/components/index.js.map +1 -1
  16. package/dist/components/index.mjs +200 -221
  17. package/dist/components/index.mjs.map +1 -1
  18. package/dist/config/config.editor.d.mts +1 -1
  19. package/dist/config/config.editor.d.ts +1 -1
  20. package/dist/config/config.editor.js +199 -220
  21. package/dist/config/config.editor.js.map +1 -1
  22. package/dist/config/config.editor.mjs +203 -224
  23. package/dist/config/config.editor.mjs.map +1 -1
  24. package/dist/config/index.js +33 -16
  25. package/dist/config/index.js.map +1 -1
  26. package/dist/config/index.mjs +33 -16
  27. package/dist/config/index.mjs.map +1 -1
  28. package/dist/editor/index.js +56 -39
  29. package/dist/editor/index.js.map +1 -1
  30. package/dist/editor/index.mjs +56 -39
  31. package/dist/editor/index.mjs.map +1 -1
  32. package/dist/fields/index.d.mts +4 -4
  33. package/dist/fields/index.d.ts +4 -4
  34. package/dist/fields/index.js +201 -222
  35. package/dist/fields/index.js.map +1 -1
  36. package/dist/fields/index.mjs +205 -226
  37. package/dist/fields/index.mjs.map +1 -1
  38. package/dist/layouts/index.js.map +1 -1
  39. package/dist/layouts/index.mjs.map +1 -1
  40. package/dist/render/index.js +33 -16
  41. package/dist/render/index.js.map +1 -1
  42. package/dist/render/index.mjs +33 -16
  43. package/dist/render/index.mjs.map +1 -1
  44. package/dist/{shared-DMAF1AcH.d.mts → shared-DeNKN95N.d.mts} +7 -6
  45. package/dist/{shared-DMAF1AcH.d.ts → shared-DeNKN95N.d.ts} +7 -6
  46. package/examples/README.md +9 -2
  47. package/examples/app/(manage)/layout.tsx +31 -0
  48. package/package.json +12 -10
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var React7 = require('react');
5
- var iconsReact = require('@tabler/icons-react');
5
+ var lucideReact = require('lucide-react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
  var clsx = require('clsx');
8
8
  var tailwindMerge = require('tailwind-merge');
@@ -546,7 +546,7 @@ function transformValueToCSS(transform) {
546
546
  return Object.keys(style).length > 0 ? style : void 0;
547
547
  }
548
548
  var BREAKPOINTS = [
549
- { key: "base", label: "Base", minWidth: null },
549
+ { key: "xs", label: "XS", minWidth: null },
550
550
  { key: "sm", label: "SM", minWidth: 640 },
551
551
  { key: "md", label: "MD", minWidth: 768 },
552
552
  { key: "lg", label: "LG", minWidth: 1024 },
@@ -554,7 +554,7 @@ var BREAKPOINTS = [
554
554
  ];
555
555
  function isResponsiveValue(value) {
556
556
  if (!value || typeof value !== "object") return false;
557
- return "base" in value;
557
+ return "xs" in value;
558
558
  }
559
559
  function camelToKebab(str) {
560
560
  return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
@@ -580,7 +580,7 @@ function responsiveValueToCSS(value, converter, uniqueId) {
580
580
  if (bpValue === void 0) return;
581
581
  const cssProps = converter(bpValue);
582
582
  if (!cssProps) return;
583
- if (bp.key === "base") {
583
+ if (bp.key === "xs") {
584
584
  baseStyles = cssProps;
585
585
  } else {
586
586
  const styleString = cssPropertiesToString(cssProps);
@@ -594,29 +594,50 @@ function responsiveValueToCSS(value, converter, uniqueId) {
594
594
  return { baseStyles, mediaQueryCSS: mediaQueries.join("\n") };
595
595
  }
596
596
  var DEFAULT_VISIBILITY = {
597
- base: true
597
+ xs: true,
598
+ sm: true,
599
+ md: true,
600
+ lg: true,
601
+ xl: true
598
602
  };
599
603
  function visibilityValueToCSS(visibility, uniqueId) {
600
604
  if (!visibility) return "";
601
605
  const mediaQueries = [];
602
- if (visibility.base === false) {
603
- mediaQueries.push(`.${uniqueId} { display: none; }`);
606
+ const breakpointWidths = {
607
+ xs: null,
608
+ // 0px
609
+ sm: 640,
610
+ md: 768,
611
+ lg: 1024,
612
+ xl: 1280
613
+ };
614
+ const getNextBreakpointWidth = (bp) => {
615
+ const order = ["xs", "sm", "md", "lg", "xl"];
616
+ const index = order.indexOf(bp);
617
+ if (index === -1 || index === order.length - 1) return null;
618
+ return breakpointWidths[order[index + 1]];
619
+ };
620
+ if (visibility.xs === false) {
621
+ const nextWidth = getNextBreakpointWidth("xs");
622
+ if (nextWidth) {
623
+ mediaQueries.push(`@media (max-width: ${nextWidth - 1}px) { .${uniqueId} { display: none; } }`);
624
+ } else {
625
+ mediaQueries.push(`.${uniqueId} { display: none; }`);
626
+ }
604
627
  }
605
- let lastVisibility = visibility.base;
606
628
  BREAKPOINTS.slice(1).forEach((bp) => {
607
- const bpValue = visibility[bp.key];
608
- if (bpValue === void 0) return;
609
- if (bpValue !== lastVisibility) {
610
- if (bpValue === false) {
629
+ if (visibility[bp.key] === false) {
630
+ const minWidth = breakpointWidths[bp.key];
631
+ const maxWidth = getNextBreakpointWidth(bp.key);
632
+ if (minWidth && maxWidth) {
611
633
  mediaQueries.push(
612
- `@media (min-width: ${bp.minWidth}px) { .${uniqueId} { display: none; } }`
634
+ `@media (min-width: ${minWidth}px) and (max-width: ${maxWidth - 1}px) { .${uniqueId} { display: none; } }`
613
635
  );
614
- } else {
636
+ } else if (minWidth) {
615
637
  mediaQueries.push(
616
- `@media (min-width: ${bp.minWidth}px) { .${uniqueId} { display: block; } }`
638
+ `@media (min-width: ${minWidth}px) { .${uniqueId} { display: none; } }`
617
639
  );
618
640
  }
619
- lastVisibility = bpValue;
620
641
  }
621
642
  });
622
643
  return mediaQueries.join("\n");
@@ -1134,7 +1155,7 @@ function ColorPickerFieldInner({
1134
1155
  onClick: handleClear,
1135
1156
  title: "Clear color",
1136
1157
  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",
1137
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "w-4 h-4" })
1158
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" })
1138
1159
  }
1139
1160
  )
1140
1161
  ] }),
@@ -1300,7 +1321,7 @@ var DialogContent = React7__namespace.forwardRef(({ className, children, ...prop
1300
1321
  children: [
1301
1322
  children,
1302
1323
  /* @__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: [
1303
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" }),
1324
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
1304
1325
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1305
1326
  ] })
1306
1327
  ]
@@ -1323,7 +1344,7 @@ var DialogContentFullscreen = React7__namespace.forwardRef(({ className, childre
1323
1344
  /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { className: "sr-only", children: accessibleTitle }),
1324
1345
  children,
1325
1346
  !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: [
1326
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" }),
1347
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
1327
1348
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1328
1349
  ] })
1329
1350
  ]
@@ -1597,10 +1618,10 @@ function MediaFieldInner({
1597
1618
  onClick: handleRemove,
1598
1619
  className: "absolute -top-2 -right-2 p-1 bg-destructive text-destructive-foreground rounded-full opacity-0 group-hover:opacity-100 transition-opacity",
1599
1620
  "aria-label": "Remove image",
1600
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-3 w-3" })
1621
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3 w-3" })
1601
1622
  }
1602
1623
  )
1603
- ] }) : /* @__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(iconsReact.IconPhoto, { className: "h-8 w-8 text-muted-foreground" }) }),
1624
+ ] }) : /* @__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" }) }),
1604
1625
  !readOnly && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
1605
1626
  /* @__PURE__ */ jsxRuntime.jsx(
1606
1627
  Button,
@@ -1624,7 +1645,7 @@ function MediaFieldInner({
1624
1645
  ] })
1625
1646
  ] }),
1626
1647
  value?.url && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1627
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "h-3 w-3 flex-shrink-0" }),
1648
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-3 w-3 flex-shrink-0" }),
1628
1649
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate max-w-[280px]", title: value.url, children: value.url })
1629
1650
  ] })
1630
1651
  ] }),
@@ -1669,7 +1690,7 @@ function MediaFieldInner({
1669
1690
  )
1670
1691
  ] }),
1671
1692
  activeTab === "browse" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-shrink-0", children: [
1672
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSearch, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }),
1693
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }),
1673
1694
  /* @__PURE__ */ jsxRuntime.jsx(
1674
1695
  Input,
1675
1696
  {
@@ -1715,7 +1736,7 @@ function MediaFieldInner({
1715
1736
  onClick: handleLoadMore,
1716
1737
  disabled: loading,
1717
1738
  children: loading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1718
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLoader2, { className: "h-4 w-4 mr-2 animate-spin" }),
1739
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
1719
1740
  "Loading..."
1720
1741
  ] }) : "Load More"
1721
1742
  }
@@ -1745,15 +1766,15 @@ function MediaFieldInner({
1745
1766
  ] })
1746
1767
  ] }),
1747
1768
  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: [
1748
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
1769
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
1749
1770
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: uploadState.error })
1750
1771
  ] }),
1751
1772
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
1752
1773
  /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: handleUpload, disabled: uploadState.uploading, children: uploadState.uploading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1753
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLoader2, { className: "h-4 w-4 mr-2 animate-spin" }),
1774
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
1754
1775
  "Uploading..."
1755
1776
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1756
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconUpload, { className: "h-4 w-4 mr-2" }),
1777
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Upload, { className: "h-4 w-4 mr-2" }),
1757
1778
  "Upload & Select"
1758
1779
  ] }) }),
1759
1780
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1767,7 +1788,7 @@ function MediaFieldInner({
1767
1788
  )
1768
1789
  ] })
1769
1790
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1770
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconPhoto, { className: "h-16 w-16 text-muted mx-auto mb-4" }),
1791
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Image, { className: "h-16 w-16 text-muted mx-auto mb-4" }),
1771
1792
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "cursor-pointer", children: [
1772
1793
  /* @__PURE__ */ jsxRuntime.jsx(Button, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Select Image" }) }),
1773
1794
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1787,7 +1808,7 @@ function MediaFieldInner({
1787
1808
  /* URL Tab */
1788
1809
  /* @__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: [
1789
1810
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center mb-6", children: [
1790
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "h-12 w-12 text-muted-foreground mx-auto mb-2" }),
1811
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-12 w-12 text-muted-foreground mx-auto mb-2" }),
1791
1812
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Enter an image URL from an external source" })
1792
1813
  ] }),
1793
1814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
@@ -1825,10 +1846,10 @@ function MediaFieldInner({
1825
1846
  onError: handleUrlPreviewError
1826
1847
  }
1827
1848
  ),
1828
- !urlState.previewLoaded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLoader2, { className: "h-8 w-8 animate-spin text-muted-foreground" }) })
1849
+ !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" }) })
1829
1850
  ] }),
1830
1851
  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: [
1831
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
1852
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
1832
1853
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: urlState.error })
1833
1854
  ] }),
1834
1855
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
@@ -1838,7 +1859,7 @@ function MediaFieldInner({
1838
1859
  onClick: handleUrlSubmit,
1839
1860
  disabled: !urlState.url || urlState.loading,
1840
1861
  children: [
1841
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "h-4 w-4 mr-2" }),
1862
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-4 w-4 mr-2" }),
1842
1863
  "Use This URL"
1843
1864
  ]
1844
1865
  }
@@ -1881,7 +1902,7 @@ var SelectTrigger = React7__namespace.forwardRef(({ className, children, ...prop
1881
1902
  ...props,
1882
1903
  children: [
1883
1904
  children,
1884
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronDown, { className: "h-4 w-4 opacity-50" }) })
1905
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
1885
1906
  ]
1886
1907
  }
1887
1908
  ));
@@ -1895,7 +1916,7 @@ var SelectScrollUpButton = React7__namespace.forwardRef(({ className, ...props }
1895
1916
  className
1896
1917
  ),
1897
1918
  ...props,
1898
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronUp, { className: "h-4 w-4" })
1919
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
1899
1920
  }
1900
1921
  ));
1901
1922
  SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
@@ -1908,7 +1929,7 @@ var SelectScrollDownButton = React7__namespace.forwardRef(({ className, ...props
1908
1929
  className
1909
1930
  ),
1910
1931
  ...props,
1911
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronDown, { className: "h-4 w-4" })
1932
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" })
1912
1933
  }
1913
1934
  ));
1914
1935
  SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
@@ -1959,7 +1980,7 @@ var SelectItem = React7__namespace.forwardRef(({ className, children, ...props }
1959
1980
  ),
1960
1981
  ...props,
1961
1982
  children: [
1962
- /* @__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(iconsReact.IconCheck, { className: "h-4 w-4" }) }) }),
1983
+ /* @__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" }) }) }),
1963
1984
  /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
1964
1985
  ]
1965
1986
  }
@@ -2098,7 +2119,7 @@ function GradientStopEditorInner({
2098
2119
  onClick: () => onDelete(index),
2099
2120
  className: "p-1 text-muted-foreground hover:text-destructive hover:bg-destructive/10 rounded flex-shrink-0",
2100
2121
  title: "Remove stop",
2101
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconTrash, { className: "w-4 h-4" })
2122
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "w-4 h-4" })
2102
2123
  }
2103
2124
  )
2104
2125
  ] }),
@@ -2312,7 +2333,7 @@ function GradientEditorInner({ value, onChange, readOnly }) {
2312
2333
  onClick: handleAddStop,
2313
2334
  className: "h-6 text-xs px-2",
2314
2335
  children: [
2315
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconPlus, { className: "w-3 h-3 mr-1" }),
2336
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "w-3 h-3 mr-1" }),
2316
2337
  "Add Stop"
2317
2338
  ]
2318
2339
  }
@@ -2826,7 +2847,7 @@ function BackgroundFieldInner({
2826
2847
  onClick: handleClear,
2827
2848
  title: "Clear background",
2828
2849
  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",
2829
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "w-4 h-4" })
2850
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" })
2830
2851
  }
2831
2852
  )
2832
2853
  ] }),
@@ -3002,7 +3023,7 @@ function LockedTextField({
3002
3023
  transition: "all 0.15s ease"
3003
3024
  },
3004
3025
  title: isLocked ? "Click to unlock" : "Click to lock",
3005
- children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLock, { size: 14 }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLockOpen, { size: 14 })
3026
+ children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { size: 14 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlock, { size: 14 })
3006
3027
  }
3007
3028
  )
3008
3029
  ] }),
@@ -3031,7 +3052,7 @@ function LockedTextField({
3031
3052
  }
3032
3053
  ),
3033
3054
  isLocked && /* @__PURE__ */ jsxRuntime.jsx(
3034
- iconsReact.IconLock,
3055
+ lucideReact.Lock,
3035
3056
  {
3036
3057
  size: 14,
3037
3058
  style: {
@@ -3086,7 +3107,7 @@ function LockedRadioField({
3086
3107
  transition: "all 0.15s ease"
3087
3108
  },
3088
3109
  title: isLocked ? "Click to unlock" : "Click to lock",
3089
- children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLock, { size: 14 }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLockOpen, { size: 14 })
3110
+ children: isLocked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { size: 14 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlock, { size: 14 })
3090
3111
  }
3091
3112
  )
3092
3113
  ] }),
@@ -3426,7 +3447,7 @@ function PaddingFieldInner({
3426
3447
  isLinked ? "" : "text-muted-foreground"
3427
3448
  ),
3428
3449
  title: isLinked ? "Click to unlink (set sides individually)" : "Click to link (all sides same value)",
3429
- children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLinkOff, { className: "h-4 w-4" })
3450
+ children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlink, { className: "h-4 w-4" })
3430
3451
  }
3431
3452
  )
3432
3453
  ] }),
@@ -3556,7 +3577,7 @@ function BorderFieldInner({
3556
3577
  onClick: handleClear,
3557
3578
  className: "text-muted-foreground hover:text-destructive",
3558
3579
  title: "Clear border",
3559
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
3580
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
3560
3581
  }
3561
3582
  )
3562
3583
  ] }),
@@ -3659,7 +3680,7 @@ function BorderFieldInner({
3659
3680
  currentValue.sides.top && "bg-primary hover:bg-primary/90"
3660
3681
  ),
3661
3682
  title: "Top border",
3662
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconBorderTop, { className: "h-4 w-4" })
3683
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { className: "h-4 w-4" })
3663
3684
  }
3664
3685
  ),
3665
3686
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3674,7 +3695,7 @@ function BorderFieldInner({
3674
3695
  currentValue.sides.right && "bg-primary hover:bg-primary/90"
3675
3696
  ),
3676
3697
  title: "Right border",
3677
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconBorderRight, { className: "h-4 w-4" })
3698
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "h-4 w-4" })
3678
3699
  }
3679
3700
  ),
3680
3701
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3689,7 +3710,7 @@ function BorderFieldInner({
3689
3710
  currentValue.sides.bottom && "bg-primary hover:bg-primary/90"
3690
3711
  ),
3691
3712
  title: "Bottom border",
3692
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconBorderBottom, { className: "h-4 w-4" })
3713
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowDown, { className: "h-4 w-4" })
3693
3714
  }
3694
3715
  ),
3695
3716
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3704,7 +3725,7 @@ function BorderFieldInner({
3704
3725
  currentValue.sides.left && "bg-primary hover:bg-primary/90"
3705
3726
  ),
3706
3727
  title: "Left border",
3707
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconBorderLeft, { className: "h-4 w-4" })
3728
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "h-4 w-4" })
3708
3729
  }
3709
3730
  )
3710
3731
  ] }),
@@ -3967,14 +3988,14 @@ function DimensionsFieldInner({
3967
3988
  });
3968
3989
  }, [advancedMode, currentValue, onChange]);
3969
3990
  const modeConfig = [
3970
- { mode: "full", icon: iconsReact.IconArrowsHorizontal, label: "Full", title: "Full width (100%)" },
3971
- { mode: "contained", icon: iconsReact.IconContainer, label: "Contain", title: "Contained (centered with max-width)" },
3972
- { mode: "custom", icon: iconsReact.IconAdjustments, label: "Custom", title: "Custom width settings" }
3991
+ { mode: "full", icon: lucideReact.MoveHorizontal, label: "Full", title: "Full width (100%)" },
3992
+ { mode: "contained", icon: lucideReact.Square, label: "Contain", title: "Contained (centered with max-width)" },
3993
+ { mode: "custom", icon: lucideReact.SlidersHorizontal, label: "Custom", title: "Custom width settings" }
3973
3994
  ];
3974
3995
  const alignmentConfig = [
3975
- { alignment: "left", icon: iconsReact.IconLayoutAlignLeft, title: "Align left" },
3976
- { alignment: "center", icon: iconsReact.IconLayoutAlignCenter, title: "Align center" },
3977
- { alignment: "right", icon: iconsReact.IconLayoutAlignRight, title: "Align right" }
3996
+ { alignment: "left", icon: lucideReact.AlignStartHorizontal, title: "Align left" },
3997
+ { alignment: "center", icon: lucideReact.AlignCenterHorizontal, title: "Align center" },
3998
+ { alignment: "right", icon: lucideReact.AlignEndHorizontal, title: "Align right" }
3978
3999
  ];
3979
4000
  const showWidthControls = currentValue.mode !== "full";
3980
4001
  showHeightControls && (advancedMode || currentValue.minHeight?.enabled || currentValue.maxHeight?.enabled);
@@ -3990,7 +4011,7 @@ function DimensionsFieldInner({
3990
4011
  onClick: handleClear,
3991
4012
  className: "text-muted-foreground hover:text-destructive",
3992
4013
  title: "Reset to default",
3993
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
4014
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
3994
4015
  }
3995
4016
  )
3996
4017
  ] }),
@@ -4193,10 +4214,10 @@ function DimensionsFieldInner({
4193
4214
  disabled: readOnly,
4194
4215
  className: "w-full text-xs text-muted-foreground hover:text-foreground",
4195
4216
  children: advancedMode ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4196
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronUp, { className: "h-3.5 w-3.5 mr-1" }),
4217
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-3.5 w-3.5 mr-1" }),
4197
4218
  "Hide Advanced"
4198
4219
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4199
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronDown, { className: "h-3.5 w-3.5 mr-1" }),
4220
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-3.5 w-3.5 mr-1" }),
4200
4221
  "Show Advanced"
4201
4222
  ] })
4202
4223
  }
@@ -4309,7 +4330,7 @@ function MarginFieldInner({
4309
4330
  isLinked ? "" : "text-muted-foreground"
4310
4331
  ),
4311
4332
  title: isLinked ? "Click to unlink (set sides individually)" : "Click to link (all sides same value)",
4312
- children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLinkOff, { className: "h-4 w-4" })
4333
+ children: isLinked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlink, { className: "h-4 w-4" })
4313
4334
  }
4314
4335
  )
4315
4336
  ] }),
@@ -4378,7 +4399,7 @@ function ResetFieldInner({
4378
4399
  disabled,
4379
4400
  className: "w-full text-muted-foreground hover:text-destructive hover:bg-destructive/10 gap-1.5",
4380
4401
  children: [
4381
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconRefresh, { className: "h-3.5 w-3.5" }),
4402
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "h-3.5 w-3.5" }),
4382
4403
  label
4383
4404
  ]
4384
4405
  }
@@ -4478,7 +4499,7 @@ function CollapsibleSection({ title, defaultOpen = false, children }) {
4478
4499
  className: "w-full flex items-center justify-between px-3 py-2 bg-muted/30 hover:bg-muted/50 transition-colors",
4479
4500
  children: [
4480
4501
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: title }),
4481
- isOpen ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronRight, { className: "h-3.5 w-3.5 text-muted-foreground" })
4502
+ 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" })
4482
4503
  ]
4483
4504
  }
4484
4505
  ),
@@ -4612,7 +4633,7 @@ function AnimationFieldInner({
4612
4633
  onClick: handleClear,
4613
4634
  className: "text-muted-foreground hover:text-destructive",
4614
4635
  title: "Reset to default",
4615
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
4636
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
4616
4637
  }
4617
4638
  )
4618
4639
  ] }),
@@ -4888,11 +4909,11 @@ function createAnimationField(config = {}) {
4888
4909
  };
4889
4910
  }
4890
4911
  var BREAKPOINT_ICONS = {
4891
- base: iconsReact.IconDevices,
4892
- sm: iconsReact.IconDeviceMobile,
4893
- md: iconsReact.IconDeviceTablet,
4894
- lg: iconsReact.IconDeviceLaptop,
4895
- xl: iconsReact.IconDeviceDesktop
4912
+ xs: lucideReact.Smartphone,
4913
+ sm: lucideReact.Smartphone,
4914
+ md: lucideReact.Tablet,
4915
+ lg: lucideReact.Laptop,
4916
+ xl: lucideReact.Monitor
4896
4917
  };
4897
4918
  function BreakpointTab({
4898
4919
  breakpoint,
@@ -4932,17 +4953,17 @@ function ResponsiveFieldInner({
4932
4953
  renderInnerField,
4933
4954
  defaultValue
4934
4955
  }) {
4935
- const [activeBreakpoint, setActiveBreakpoint] = React7.useState("base");
4956
+ const [activeBreakpoint, setActiveBreakpoint] = React7.useState("xs");
4936
4957
  const getCurrentValue = React7.useCallback(() => {
4937
4958
  if (!value) return defaultValue ?? null;
4938
- if (activeBreakpoint === "base") {
4939
- return value.base ?? defaultValue ?? null;
4959
+ if (activeBreakpoint === "xs") {
4960
+ return value.xs ?? defaultValue ?? null;
4940
4961
  }
4941
4962
  const override = value[activeBreakpoint];
4942
4963
  if (override !== void 0) {
4943
4964
  return override;
4944
4965
  }
4945
- const breakpointOrder = ["xl", "lg", "md", "sm", "base"];
4966
+ const breakpointOrder = ["xl", "lg", "md", "sm", "xs"];
4946
4967
  const activeIndex = breakpointOrder.indexOf(activeBreakpoint);
4947
4968
  for (let i = activeIndex + 1; i < breakpointOrder.length; i++) {
4948
4969
  const bp = breakpointOrder[i];
@@ -4956,18 +4977,18 @@ function ResponsiveFieldInner({
4956
4977
  const hasOverride = React7.useCallback(
4957
4978
  (breakpoint) => {
4958
4979
  if (!value) return false;
4959
- if (breakpoint === "base") return value.base !== void 0;
4980
+ if (breakpoint === "xs") return value.xs !== void 0;
4960
4981
  return value[breakpoint] !== void 0;
4961
4982
  },
4962
4983
  [value]
4963
4984
  );
4964
4985
  const handleInnerChange = React7.useCallback(
4965
4986
  (newValue) => {
4966
- if (activeBreakpoint === "base") {
4987
+ if (activeBreakpoint === "xs") {
4967
4988
  if (newValue === null && defaultValue !== void 0) {
4968
- onChange({ ...value, base: defaultValue });
4989
+ onChange({ ...value, xs: defaultValue });
4969
4990
  } else if (newValue !== null) {
4970
- onChange({ ...value, base: newValue });
4991
+ onChange({ ...value, xs: newValue });
4971
4992
  }
4972
4993
  } else {
4973
4994
  if (newValue === null) {
@@ -4975,11 +4996,11 @@ function ResponsiveFieldInner({
4975
4996
  delete newResponsive[activeBreakpoint];
4976
4997
  onChange(newResponsive);
4977
4998
  } else {
4978
- const base = value?.base ?? defaultValue;
4979
- if (base === void 0) return;
4999
+ const xs = value?.xs ?? defaultValue;
5000
+ if (xs === void 0) return;
4980
5001
  onChange({
4981
5002
  ...value,
4982
- base,
5003
+ xs,
4983
5004
  [activeBreakpoint]: newValue
4984
5005
  });
4985
5006
  }
@@ -4988,7 +5009,7 @@ function ResponsiveFieldInner({
4988
5009
  [value, onChange, activeBreakpoint, defaultValue]
4989
5010
  );
4990
5011
  const handleClearOverride = React7.useCallback(() => {
4991
- if (activeBreakpoint === "base" || !value) return;
5012
+ if (activeBreakpoint === "xs" || !value) return;
4992
5013
  const newResponsive = { ...value };
4993
5014
  delete newResponsive[activeBreakpoint];
4994
5015
  onChange(newResponsive);
@@ -4997,7 +5018,7 @@ function ResponsiveFieldInner({
4997
5018
  onChange(null);
4998
5019
  }, [onChange]);
4999
5020
  const currentValue = getCurrentValue();
5000
- const isOverrideBreakpoint = activeBreakpoint !== "base";
5021
+ const isOverrideBreakpoint = activeBreakpoint !== "xs";
5001
5022
  const currentHasOverride = hasOverride(activeBreakpoint);
5002
5023
  const overrideCount = value ? ["sm", "md", "lg", "xl"].filter((bp) => value[bp] !== void 0).length : 0;
5003
5024
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-3", children: [
@@ -5019,7 +5040,7 @@ function ResponsiveFieldInner({
5019
5040
  onClick: handleClearAll,
5020
5041
  className: "text-muted-foreground hover:text-destructive",
5021
5042
  title: "Clear all values",
5022
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
5043
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
5023
5044
  }
5024
5045
  )
5025
5046
  ] }),
@@ -5037,10 +5058,10 @@ function ResponsiveFieldInner({
5037
5058
  bp.key
5038
5059
  )) }),
5039
5060
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-xs text-muted-foreground", children: [
5040
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: activeBreakpoint === "base" ? "Default for all screen sizes" : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5061
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: activeBreakpoint === "xs" ? "Extra small screens (0-639px)" : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5041
5062
  BREAKPOINTS.find((bp) => bp.key === activeBreakpoint)?.minWidth,
5042
5063
  "px and up",
5043
- !currentHasOverride && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/60", children: " (inheriting from base)" })
5064
+ !currentHasOverride && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/60", children: " (inheriting from xs)" })
5044
5065
  ] }) }),
5045
5066
  isOverrideBreakpoint && currentHasOverride && !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
5046
5067
  Button,
@@ -5093,18 +5114,17 @@ function createResponsiveField(config) {
5093
5114
  };
5094
5115
  }
5095
5116
  var BREAKPOINT_ICONS2 = {
5096
- base: iconsReact.IconDevices,
5097
- sm: iconsReact.IconDeviceMobile,
5098
- md: iconsReact.IconDeviceTablet,
5099
- lg: iconsReact.IconDeviceLaptop,
5100
- xl: iconsReact.IconDeviceDesktop
5117
+ xs: lucideReact.Smartphone,
5118
+ sm: lucideReact.Smartphone,
5119
+ md: lucideReact.Tablet,
5120
+ lg: lucideReact.Laptop,
5121
+ xl: lucideReact.Monitor
5101
5122
  };
5102
5123
  function VisibilityToggle({
5103
5124
  breakpoint,
5104
5125
  label,
5105
5126
  minWidth,
5106
5127
  isVisible,
5107
- isInherited,
5108
5128
  onClick,
5109
5129
  disabled
5110
5130
  }) {
@@ -5115,18 +5135,16 @@ function VisibilityToggle({
5115
5135
  type: "button",
5116
5136
  onClick,
5117
5137
  disabled,
5118
- title: `${label}${minWidth ? ` (${minWidth}px+)` : ""}: ${isVisible ? "Visible" : "Hidden"}${isInherited ? " (inherited)" : ""}`,
5138
+ title: `${label}${minWidth ? ` (${minWidth}px+)` : ""}: ${isVisible ? "Visible" : "Hidden"}`,
5119
5139
  className: cn2(
5120
5140
  "relative flex flex-col items-center justify-center gap-0.5 p-2 rounded-md transition-all flex-1 min-w-[52px]",
5121
- isVisible ? "bg-emerald-500/10 text-emerald-600 hover:bg-emerald-500/20 border border-emerald-500/30" : "bg-red-500/10 text-red-500 hover:bg-red-500/20 border border-red-500/30",
5122
- isInherited && "opacity-60",
5141
+ 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",
5123
5142
  disabled && "opacity-50 cursor-not-allowed"
5124
5143
  ),
5125
5144
  children: [
5126
5145
  /* @__PURE__ */ jsxRuntime.jsx(DeviceIcon, { className: "h-4 w-4" }),
5127
5146
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-medium", children: label }),
5128
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1 right-1", children: isVisible ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconEye, { className: "h-3 w-3" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconEyeOff, { className: "h-3 w-3" }) }),
5129
- isInherited && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -bottom-0.5 left-1/2 -translate-x-1/2 text-[8px] text-muted-foreground", children: "\u2022" })
5147
+ /* @__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" }) })
5130
5148
  ]
5131
5149
  }
5132
5150
  );
@@ -5137,85 +5155,46 @@ function ResponsiveVisibilityFieldInner({
5137
5155
  label,
5138
5156
  readOnly
5139
5157
  }) {
5140
- const getEffectiveVisibility = React7.useCallback(
5158
+ const getVisibility = React7.useCallback(
5141
5159
  (breakpoint) => {
5142
5160
  const val = value ?? DEFAULT_VISIBILITY;
5143
- if (breakpoint === "base") {
5144
- return { visible: val.base, inherited: false };
5145
- }
5146
- const explicitValue = val[breakpoint];
5147
- if (explicitValue !== void 0) {
5148
- return { visible: explicitValue, inherited: false };
5149
- }
5150
- const breakpointOrder = ["xl", "lg", "md", "sm", "base"];
5151
- const currentIndex = breakpointOrder.indexOf(breakpoint);
5152
- for (let i = currentIndex + 1; i < breakpointOrder.length; i++) {
5153
- const bp = breakpointOrder[i];
5154
- const bpValue = val[bp];
5155
- if (bpValue !== void 0) {
5156
- return { visible: bpValue, inherited: true };
5157
- }
5158
- }
5159
- return { visible: val.base, inherited: true };
5161
+ return val[breakpoint] ?? true;
5160
5162
  },
5161
5163
  [value]
5162
5164
  );
5163
5165
  const toggleVisibility = React7.useCallback(
5164
5166
  (breakpoint) => {
5165
- const current = getEffectiveVisibility(breakpoint);
5166
- const newVisible = !current.visible;
5167
- if (breakpoint === "base") {
5168
- onChange({
5169
- ...value ?? DEFAULT_VISIBILITY,
5170
- base: newVisible
5171
- });
5172
- } else {
5173
- const newValue = {
5174
- ...value ?? DEFAULT_VISIBILITY,
5175
- [breakpoint]: newVisible
5176
- };
5177
- onChange(newValue);
5178
- }
5167
+ const currentVisible = getVisibility(breakpoint);
5168
+ const newValue = {
5169
+ ...value ?? DEFAULT_VISIBILITY,
5170
+ [breakpoint]: !currentVisible
5171
+ };
5172
+ onChange(newValue);
5179
5173
  },
5180
- [value, onChange, getEffectiveVisibility]
5174
+ [value, onChange, getVisibility]
5181
5175
  );
5182
- const overrideCount = value ? ["sm", "md", "lg", "xl"].filter((bp) => value[bp] !== void 0).length : 0;
5183
- const hasHiddenBreakpoints = BREAKPOINTS.some((bp) => {
5184
- const { visible } = getEffectiveVisibility(bp.key);
5185
- return !visible;
5186
- });
5176
+ const hasHiddenBreakpoints = BREAKPOINTS.some((bp) => !getVisibility(bp.key));
5187
5177
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
5188
5178
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
5189
- label && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
5190
- /* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-sm font-medium text-foreground", children: label }),
5191
- overrideCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground bg-muted px-1.5 py-0.5 rounded", children: [
5192
- overrideCount,
5193
- " override",
5194
- overrideCount !== 1 ? "s" : ""
5195
- ] })
5196
- ] }),
5179
+ label && /* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-sm font-medium text-foreground", children: label }),
5197
5180
  hasHiddenBreakpoints && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-amber-600 flex items-center gap-1", children: [
5198
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconEyeOff, { className: "h-3 w-3" }),
5199
- "Hidden"
5181
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.EyeOff, { className: "h-3 w-3" }),
5182
+ "Partially hidden"
5200
5183
  ] })
5201
5184
  ] }),
5202
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: BREAKPOINTS.map((bp) => {
5203
- const { visible, inherited } = getEffectiveVisibility(bp.key);
5204
- return /* @__PURE__ */ jsxRuntime.jsx(
5205
- VisibilityToggle,
5206
- {
5207
- breakpoint: bp.key,
5208
- label: bp.label,
5209
- minWidth: bp.minWidth,
5210
- isVisible: visible,
5211
- isInherited: inherited,
5212
- onClick: () => toggleVisibility(bp.key),
5213
- disabled: readOnly
5214
- },
5215
- bp.key
5216
- );
5217
- }) }),
5218
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Click to toggle visibility. Changes cascade to larger breakpoints." })
5185
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: BREAKPOINTS.map((bp) => /* @__PURE__ */ jsxRuntime.jsx(
5186
+ VisibilityToggle,
5187
+ {
5188
+ breakpoint: bp.key,
5189
+ label: bp.label,
5190
+ minWidth: bp.minWidth,
5191
+ isVisible: getVisibility(bp.key),
5192
+ onClick: () => toggleVisibility(bp.key),
5193
+ disabled: readOnly
5194
+ },
5195
+ bp.key
5196
+ )) }),
5197
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Toggle visibility per screen size. Each breakpoint is independent." })
5219
5198
  ] });
5220
5199
  }
5221
5200
  var ResponsiveVisibilityField = React7.memo(ResponsiveVisibilityFieldInner);
@@ -5398,11 +5377,11 @@ function JustifyContentFieldInner({
5398
5377
  onChange(null);
5399
5378
  }, [onChange]);
5400
5379
  const options = [
5401
- { value: "flex-start", icon: iconsReact.IconLayoutAlignLeft, title: "Start" },
5402
- { value: "center", icon: iconsReact.IconLayoutAlignCenter, title: "Center" },
5403
- { value: "flex-end", icon: iconsReact.IconLayoutAlignRight, title: "End" },
5404
- { value: "space-between", icon: iconsReact.IconLayoutDistributeHorizontal, title: "Space Between" },
5405
- { value: "space-around", icon: iconsReact.IconSpacingHorizontal, title: "Space Around" }
5380
+ { value: "flex-start", icon: lucideReact.AlignLeft, title: "Start" },
5381
+ { value: "center", icon: lucideReact.AlignCenter, title: "Center" },
5382
+ { value: "flex-end", icon: lucideReact.AlignRight, title: "End" },
5383
+ { value: "space-between", icon: lucideReact.AlignHorizontalDistributeCenter, title: "Space Between" },
5384
+ { value: "space-around", icon: lucideReact.GripHorizontal, title: "Space Around" }
5406
5385
  ];
5407
5386
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
5408
5387
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
@@ -5416,7 +5395,7 @@ function JustifyContentFieldInner({
5416
5395
  onClick: handleClear,
5417
5396
  className: "text-muted-foreground hover:text-destructive",
5418
5397
  title: "Reset to default",
5419
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
5398
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
5420
5399
  }
5421
5400
  )
5422
5401
  ] }),
@@ -5458,10 +5437,10 @@ function AlignItemsFieldInner({
5458
5437
  onChange(null);
5459
5438
  }, [onChange]);
5460
5439
  const options = [
5461
- { value: "flex-start", icon: iconsReact.IconLayoutAlignTop, title: "Start" },
5462
- { value: "center", icon: iconsReact.IconLayoutAlignMiddle, title: "Center" },
5463
- { value: "flex-end", icon: iconsReact.IconLayoutAlignBottom, title: "End" },
5464
- { value: "stretch", icon: iconsReact.IconArrowsVertical, title: "Stretch" }
5440
+ { value: "flex-start", icon: lucideReact.AlignStartVertical, title: "Start" },
5441
+ { value: "center", icon: lucideReact.AlignCenterVertical, title: "Center" },
5442
+ { value: "flex-end", icon: lucideReact.AlignEndVertical, title: "End" },
5443
+ { value: "stretch", icon: lucideReact.MoveVertical, title: "Stretch" }
5465
5444
  ];
5466
5445
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
5467
5446
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
@@ -5475,7 +5454,7 @@ function AlignItemsFieldInner({
5475
5454
  onClick: handleClear,
5476
5455
  className: "text-muted-foreground hover:text-destructive",
5477
5456
  title: "Reset to default",
5478
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
5457
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
5479
5458
  }
5480
5459
  )
5481
5460
  ] }),
@@ -6371,7 +6350,7 @@ function TemplateFieldInner({
6371
6350
  onClick: handleClearTemplate,
6372
6351
  title: "Clear selection",
6373
6352
  className: "text-muted-foreground hover:text-foreground",
6374
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
6353
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
6375
6354
  }
6376
6355
  )
6377
6356
  ] }),
@@ -6385,7 +6364,7 @@ function TemplateFieldInner({
6385
6364
  className: "flex-1 gap-1.5",
6386
6365
  disabled: loading || saveForm.saving,
6387
6366
  children: [
6388
- saveForm.expanded ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronUp, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconDeviceFloppy, { className: "h-4 w-4" }),
6367
+ saveForm.expanded ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Save, { className: "h-4 w-4" }),
6389
6368
  saveForm.expanded ? "Cancel" : "Save as Template"
6390
6369
  ]
6391
6370
  }
@@ -6399,7 +6378,7 @@ function TemplateFieldInner({
6399
6378
  className: "gap-1.5",
6400
6379
  disabled: loadingTemplate,
6401
6380
  children: [
6402
- loadingTemplate ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLoader2, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconDownload, { className: "h-4 w-4" }),
6381
+ loadingTemplate ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "h-4 w-4" }),
6403
6382
  "Reload"
6404
6383
  ]
6405
6384
  }
@@ -6449,7 +6428,7 @@ function TemplateFieldInner({
6449
6428
  )
6450
6429
  ] }),
6451
6430
  saveForm.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2 bg-destructive/10 border border-destructive/30 rounded-md text-destructive text-xs flex items-start gap-2", children: [
6452
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlertCircle, { className: "h-3.5 w-3.5 flex-shrink-0 mt-0.5" }),
6431
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-3.5 w-3.5 flex-shrink-0 mt-0.5" }),
6453
6432
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: saveForm.error })
6454
6433
  ] }),
6455
6434
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -6460,17 +6439,17 @@ function TemplateFieldInner({
6460
6439
  size: "sm",
6461
6440
  className: "w-full gap-1.5",
6462
6441
  children: saveForm.saving ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6463
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLoader2, { className: "h-4 w-4 animate-spin" }),
6442
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-4 w-4 animate-spin" }),
6464
6443
  "Saving..."
6465
6444
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6466
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconDeviceFloppy, { className: "h-4 w-4" }),
6445
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Save, { className: "h-4 w-4" }),
6467
6446
  "Save Template"
6468
6447
  ] })
6469
6448
  }
6470
6449
  )
6471
6450
  ] }),
6472
6451
  error && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-2 bg-destructive/10 border border-destructive/30 rounded-md text-destructive text-sm flex items-start gap-2", children: [
6473
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
6452
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4 flex-shrink-0 mt-0.5" }),
6474
6453
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: error })
6475
6454
  ] })
6476
6455
  ] });
@@ -6607,9 +6586,9 @@ function AlignmentFieldInner({
6607
6586
  onChange(null);
6608
6587
  }, [onChange]);
6609
6588
  const alignments = [
6610
- { value: "left", icon: iconsReact.IconLayoutAlignLeft, title: "Align left" },
6611
- { value: "center", icon: iconsReact.IconLayoutAlignCenter, title: "Align center" },
6612
- { value: "right", icon: iconsReact.IconLayoutAlignRight, title: "Align right" }
6589
+ { value: "left", icon: lucideReact.AlignLeft, title: "Align left" },
6590
+ { value: "center", icon: lucideReact.AlignCenter, title: "Align center" },
6591
+ { value: "right", icon: lucideReact.AlignRight, title: "Align right" }
6613
6592
  ];
6614
6593
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "puck-field space-y-2", children: [
6615
6594
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
@@ -6623,7 +6602,7 @@ function AlignmentFieldInner({
6623
6602
  onClick: handleClear,
6624
6603
  className: "text-muted-foreground hover:text-destructive",
6625
6604
  title: "Reset to default",
6626
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
6605
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
6627
6606
  }
6628
6607
  )
6629
6608
  ] }),
@@ -7222,7 +7201,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7222
7201
  onClick: () => editor.chain().focus().toggleBold().run(),
7223
7202
  isActive: formattingState?.isBold,
7224
7203
  title: "Bold",
7225
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconBold, { className: ICON_SIZE })
7204
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bold, { className: ICON_SIZE })
7226
7205
  }
7227
7206
  ),
7228
7207
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7231,7 +7210,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7231
7210
  onClick: () => editor.chain().focus().toggleItalic().run(),
7232
7211
  isActive: formattingState?.isItalic,
7233
7212
  title: "Italic",
7234
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconItalic, { className: ICON_SIZE })
7213
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Italic, { className: ICON_SIZE })
7235
7214
  }
7236
7215
  ),
7237
7216
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7240,7 +7219,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7240
7219
  onClick: () => editor.chain().focus().toggleUnderline().run(),
7241
7220
  isActive: formattingState?.isUnderline,
7242
7221
  title: "Underline",
7243
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconUnderline, { className: ICON_SIZE })
7222
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Underline, { className: ICON_SIZE })
7244
7223
  }
7245
7224
  ),
7246
7225
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7249,7 +7228,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7249
7228
  onClick: () => editor.chain().focus().toggleStrike().run(),
7250
7229
  isActive: formattingState?.isStrike,
7251
7230
  title: "Strikethrough",
7252
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconStrikethrough, { className: ICON_SIZE })
7231
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Strikethrough, { className: ICON_SIZE })
7253
7232
  }
7254
7233
  ),
7255
7234
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7258,7 +7237,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7258
7237
  onClick: () => editor.chain().focus().toggleSuperscript().run(),
7259
7238
  isActive: formattingState?.isSuperscript,
7260
7239
  title: "Superscript",
7261
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSuperscript, { className: ICON_SIZE })
7240
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Superscript, { className: ICON_SIZE })
7262
7241
  }
7263
7242
  ),
7264
7243
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7267,7 +7246,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7267
7246
  onClick: () => editor.chain().focus().toggleSubscript().run(),
7268
7247
  isActive: formattingState?.isSubscript,
7269
7248
  title: "Subscript",
7270
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSubscript, { className: ICON_SIZE })
7249
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Subscript, { className: ICON_SIZE })
7271
7250
  }
7272
7251
  ),
7273
7252
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
@@ -7275,8 +7254,8 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7275
7254
  ToolbarDropdown,
7276
7255
  {
7277
7256
  trigger: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5", children: [
7278
- formattingState?.isH1 ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH1, { className: ICON_SIZE }) : formattingState?.isH2 ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH2, { className: ICON_SIZE }) : formattingState?.isH3 ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH3, { className: ICON_SIZE }) : formattingState?.isH4 ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH4, { className: ICON_SIZE }) : formattingState?.isH5 ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH5, { className: ICON_SIZE }) : formattingState?.isH6 ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH6, { className: ICON_SIZE }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLetterP, { className: ICON_SIZE }),
7279
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronDown, { className: "w-3 h-3" })
7257
+ 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 }),
7258
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "w-3 h-3" })
7280
7259
  ] }),
7281
7260
  title: "Text Type",
7282
7261
  isActive: formattingState?.isH1 || formattingState?.isH2 || formattingState?.isH3 || formattingState?.isH4 || formattingState?.isH5 || formattingState?.isH6,
@@ -7285,7 +7264,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7285
7264
  editor.chain().focus().setParagraph().run();
7286
7265
  close();
7287
7266
  }, children: [
7288
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLetterP, { className: cn2(ICON_SIZE, "mr-2") }),
7267
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pilcrow, { className: cn2(ICON_SIZE, "mr-2") }),
7289
7268
  "Paragraph"
7290
7269
  ] }),
7291
7270
  /* @__PURE__ */ jsxRuntime.jsx(DropdownSeparator, {}),
@@ -7293,42 +7272,42 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7293
7272
  editor.chain().focus().toggleHeading({ level: 1 }).run();
7294
7273
  close();
7295
7274
  }, children: [
7296
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH1, { className: cn2(ICON_SIZE, "mr-2") }),
7275
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading1, { className: cn2(ICON_SIZE, "mr-2") }),
7297
7276
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-lg", children: "Heading 1" })
7298
7277
  ] }),
7299
7278
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
7300
7279
  editor.chain().focus().toggleHeading({ level: 2 }).run();
7301
7280
  close();
7302
7281
  }, children: [
7303
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH2, { className: cn2(ICON_SIZE, "mr-2") }),
7282
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading2, { className: cn2(ICON_SIZE, "mr-2") }),
7304
7283
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-bold text-base", children: "Heading 2" })
7305
7284
  ] }),
7306
7285
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
7307
7286
  editor.chain().focus().toggleHeading({ level: 3 }).run();
7308
7287
  close();
7309
7288
  }, children: [
7310
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH3, { className: cn2(ICON_SIZE, "mr-2") }),
7289
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading3, { className: cn2(ICON_SIZE, "mr-2") }),
7311
7290
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Heading 3" })
7312
7291
  ] }),
7313
7292
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
7314
7293
  editor.chain().focus().toggleHeading({ level: 4 }).run();
7315
7294
  close();
7316
7295
  }, children: [
7317
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH4, { className: cn2(ICON_SIZE, "mr-2") }),
7296
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading4, { className: cn2(ICON_SIZE, "mr-2") }),
7318
7297
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm", children: "Heading 4" })
7319
7298
  ] }),
7320
7299
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
7321
7300
  editor.chain().focus().toggleHeading({ level: 5 }).run();
7322
7301
  close();
7323
7302
  }, children: [
7324
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH5, { className: cn2(ICON_SIZE, "mr-2") }),
7303
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading5, { className: cn2(ICON_SIZE, "mr-2") }),
7325
7304
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-xs", children: "Heading 5" })
7326
7305
  ] }),
7327
7306
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
7328
7307
  editor.chain().focus().toggleHeading({ level: 6 }).run();
7329
7308
  close();
7330
7309
  }, children: [
7331
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconH6, { className: cn2(ICON_SIZE, "mr-2") }),
7310
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Heading6, { className: cn2(ICON_SIZE, "mr-2") }),
7332
7311
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-xs text-gray-600", children: "Heading 6" })
7333
7312
  ] })
7334
7313
  ] })
@@ -7338,7 +7317,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7338
7317
  /* @__PURE__ */ jsxRuntime.jsx(
7339
7318
  ToolbarDropdown,
7340
7319
  {
7341
- trigger: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconTextSize, { className: ICON_SIZE }),
7320
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ALargeSmall, { className: ICON_SIZE }),
7342
7321
  title: "Font Size",
7343
7322
  children: (close) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7344
7323
  /* @__PURE__ */ jsxRuntime.jsx(DropdownLabel, { children: "Presets" }),
@@ -7424,7 +7403,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7424
7403
  onClick: () => editor.chain().focus().toggleBulletList().run(),
7425
7404
  isActive: formattingState?.isBulletList,
7426
7405
  title: "Bullet List",
7427
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconList, { className: ICON_SIZE })
7406
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.List, { className: ICON_SIZE })
7428
7407
  }
7429
7408
  ),
7430
7409
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7433,7 +7412,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7433
7412
  onClick: () => editor.chain().focus().toggleOrderedList().run(),
7434
7413
  isActive: formattingState?.isOrderedList,
7435
7414
  title: "Numbered List",
7436
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconListNumbers, { className: ICON_SIZE })
7415
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ListOrdered, { className: ICON_SIZE })
7437
7416
  }
7438
7417
  ),
7439
7418
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7442,7 +7421,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7442
7421
  onClick: () => editor.chain().focus().toggleBlockquote().run(),
7443
7422
  isActive: formattingState?.isBlockquote,
7444
7423
  title: "Blockquote",
7445
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconBlockquote, { className: ICON_SIZE })
7424
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Quote, { className: ICON_SIZE })
7446
7425
  }
7447
7426
  ),
7448
7427
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
@@ -7452,7 +7431,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7452
7431
  onClick: () => editor.chain().focus().setTextAlign("left").run(),
7453
7432
  isActive: formattingState?.isAlignLeft,
7454
7433
  title: "Align Left",
7455
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlignLeft, { className: ICON_SIZE })
7434
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignLeft, { className: ICON_SIZE })
7456
7435
  }
7457
7436
  ),
7458
7437
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7461,7 +7440,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7461
7440
  onClick: () => editor.chain().focus().setTextAlign("center").run(),
7462
7441
  isActive: formattingState?.isAlignCenter,
7463
7442
  title: "Align Center",
7464
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlignCenter, { className: ICON_SIZE })
7443
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignCenter, { className: ICON_SIZE })
7465
7444
  }
7466
7445
  ),
7467
7446
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7470,7 +7449,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7470
7449
  onClick: () => editor.chain().focus().setTextAlign("right").run(),
7471
7450
  isActive: formattingState?.isAlignRight,
7472
7451
  title: "Align Right",
7473
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlignRight, { className: ICON_SIZE })
7452
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignRight, { className: ICON_SIZE })
7474
7453
  }
7475
7454
  ),
7476
7455
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7479,7 +7458,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7479
7458
  onClick: () => editor.chain().focus().setTextAlign("justify").run(),
7480
7459
  isActive: formattingState?.isAlignJustify,
7481
7460
  title: "Justify",
7482
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconAlignJustified, { className: ICON_SIZE })
7461
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlignJustify, { className: ICON_SIZE })
7483
7462
  }
7484
7463
  ),
7485
7464
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
@@ -7490,7 +7469,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7490
7469
  onClick: () => setIsLinkPopoverOpen(!isLinkPopoverOpen),
7491
7470
  isActive: formattingState?.isLink,
7492
7471
  title: "Add Link",
7493
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: ICON_SIZE })
7472
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: ICON_SIZE })
7494
7473
  }
7495
7474
  ),
7496
7475
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7506,7 +7485,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7506
7485
  /* @__PURE__ */ jsxRuntime.jsx(
7507
7486
  ToolbarDropdown,
7508
7487
  {
7509
- trigger: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconPalette, { className: ICON_SIZE }),
7488
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Palette, { className: ICON_SIZE }),
7510
7489
  title: "Text Color",
7511
7490
  children: (close) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7512
7491
  /* @__PURE__ */ jsxRuntime.jsxs(DropdownItem, { onClick: () => {
@@ -7563,7 +7542,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7563
7542
  /* @__PURE__ */ jsxRuntime.jsx(
7564
7543
  ToolbarDropdown,
7565
7544
  {
7566
- trigger: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconHighlight, { className: ICON_SIZE }),
7545
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Highlighter, { className: ICON_SIZE }),
7567
7546
  title: "Highlight",
7568
7547
  isActive: formattingState?.isHighlight,
7569
7548
  children: (close) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -7594,7 +7573,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7594
7573
  {
7595
7574
  onClick: () => editor.chain().focus().setHorizontalRule().run(),
7596
7575
  title: "Horizontal Rule",
7597
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconSeparatorHorizontal, { className: ICON_SIZE })
7576
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, { className: ICON_SIZE })
7598
7577
  }
7599
7578
  ),
7600
7579
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7602,7 +7581,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7602
7581
  {
7603
7582
  onClick: () => editor.chain().focus().setHardBreak().run(),
7604
7583
  title: "Hard Break (Shift+Enter)",
7605
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconCornerDownLeft, { className: ICON_SIZE })
7584
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CornerDownLeft, { className: ICON_SIZE })
7606
7585
  }
7607
7586
  ),
7608
7587
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: TOOLBAR_DIVIDER }),
@@ -7611,7 +7590,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7611
7590
  {
7612
7591
  onClick: () => editor.chain().focus().unsetAllMarks().clearNodes().run(),
7613
7592
  title: "Clear Formatting",
7614
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconClearFormatting, { className: ICON_SIZE })
7593
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RemoveFormatting, { className: ICON_SIZE })
7615
7594
  }
7616
7595
  ),
7617
7596
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -7634,7 +7613,7 @@ function TiptapFieldInner({ value, onChange, label, readOnly }) {
7634
7613
  !showSource && "bg-transparent"
7635
7614
  ),
7636
7615
  children: [
7637
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconCode, { className: ICON_SIZE }),
7616
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code, { className: ICON_SIZE }),
7638
7617
  "Source"
7639
7618
  ]
7640
7619
  }
@@ -7748,7 +7727,7 @@ function TiptapModal({ isOpen, onClose, value, onChange, title }) {
7748
7727
  justifyContent: "center"
7749
7728
  },
7750
7729
  title: "Close (Esc)",
7751
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { size: 20 })
7730
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 20 })
7752
7731
  }
7753
7732
  )
7754
7733
  ]
@@ -7875,7 +7854,7 @@ function TiptapModalFieldInner({ value, onChange, label }) {
7875
7854
  },
7876
7855
  title: "Open full-screen editor",
7877
7856
  children: [
7878
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconArrowsMaximize, { size: 14 }),
7857
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { size: 14 }),
7879
7858
  "Expand"
7880
7859
  ]
7881
7860
  }
@@ -8106,7 +8085,7 @@ function TransformFieldInner({
8106
8085
  onClick: handleClear,
8107
8086
  className: "text-muted-foreground hover:text-destructive",
8108
8087
  title: "Reset transform",
8109
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
8088
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
8110
8089
  }
8111
8090
  )
8112
8091
  ] }),
@@ -8120,7 +8099,7 @@ function TransformFieldInner({
8120
8099
  ) }),
8121
8100
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 p-3 bg-muted/30 rounded-md", children: [
8122
8101
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
8123
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconRotate, { className: "h-4 w-4 text-muted-foreground" }),
8102
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCw, { className: "h-4 w-4 text-muted-foreground" }),
8124
8103
  /* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs font-medium", children: "Rotate" })
8125
8104
  ] }),
8126
8105
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -8138,7 +8117,7 @@ function TransformFieldInner({
8138
8117
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 p-3 bg-muted/30 rounded-md", children: [
8139
8118
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
8140
8119
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
8141
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconResize, { className: "h-4 w-4 text-muted-foreground" }),
8120
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { className: "h-4 w-4 text-muted-foreground" }),
8142
8121
  /* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs font-medium", children: "Scale" })
8143
8122
  ] }),
8144
8123
  !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
@@ -8150,7 +8129,7 @@ function TransformFieldInner({
8150
8129
  onClick: handleScaleLockToggle,
8151
8130
  className: "h-6 w-6",
8152
8131
  title: currentValue.scaleLocked ? "Click to unlink X and Y scale" : "Click to link X and Y scale",
8153
- children: currentValue.scaleLocked ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLink, { className: "h-3 w-3" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconLinkOff, { className: "h-3 w-3" })
8132
+ children: currentValue.scaleLocked ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link, { className: "h-3 w-3" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Unlink, { className: "h-3 w-3" })
8154
8133
  }
8155
8134
  )
8156
8135
  ] }),
@@ -8282,10 +8261,10 @@ function TransformFieldInner({
8282
8261
  className: "w-full flex items-center justify-between p-3 bg-muted/30 hover:bg-muted/50 transition-colors",
8283
8262
  children: [
8284
8263
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
8285
- /* @__PURE__ */ jsxRuntime.jsx(iconsReact.Icon3dCubeSphere, { className: "h-4 w-4 text-muted-foreground" }),
8264
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Box, { className: "h-4 w-4 text-muted-foreground" }),
8286
8265
  /* @__PURE__ */ jsxRuntime.jsx(Label, { className: "text-xs font-medium cursor-pointer", children: "3D Transforms" })
8287
8266
  ] }),
8288
- show3D ? /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronDown, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconChevronRight, { className: "h-4 w-4 text-muted-foreground" })
8267
+ 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" })
8289
8268
  ]
8290
8269
  }
8291
8270
  ),
@@ -8560,7 +8539,7 @@ function SizeFieldInner({
8560
8539
  onClick: handleClear,
8561
8540
  className: "text-muted-foreground hover:text-destructive",
8562
8541
  title: "Reset to default",
8563
- children: /* @__PURE__ */ jsxRuntime.jsx(iconsReact.IconX, { className: "h-4 w-4" })
8542
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
8564
8543
  }
8565
8544
  )
8566
8545
  ] }),
@@ -9045,7 +9024,7 @@ function AccordionItem({
9045
9024
  children: [
9046
9025
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.title }),
9047
9026
  /* @__PURE__ */ jsxRuntime.jsx(
9048
- iconsReact.IconChevronDown,
9027
+ lucideReact.ChevronDown,
9049
9028
  {
9050
9029
  className: cn(
9051
9030
  "h-4 w-4 shrink-0 transition-transform duration-200",