@pagehub/sdk 0.1.4 → 0.1.6

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 (141) hide show
  1. package/README.md +1 -1
  2. package/dist/chrome/viewport/Viewport/hooks/usePageLoadIndicator.d.ts +2 -2
  3. package/dist/chrome/viewport/design-system/hooks/useDesignSystem.d.ts +2 -2
  4. package/dist/chrome/viewport/design-system/hooks/usePaletteState.d.ts +2 -2
  5. package/dist/chunks/ActionEditorPanel-9v50QUwu.js +89 -0
  6. package/dist/chunks/ActionInput-CTt7sOs6.js +929 -0
  7. package/dist/chunks/ActionsAddPicker-BeTPUUor.js +51 -0
  8. package/dist/chunks/ActionsInput-D0h-zLYj.js +174 -0
  9. package/dist/chunks/AnchoredPopover-CckPTxXu.js +2676 -0
  10. package/dist/chunks/AnimationEditorPanel-CXNmsTqV.js +26 -0
  11. package/dist/chunks/AnimationsInput-Djyz0uXG.js +292 -0
  12. package/dist/chunks/AnimationsInputPopover-B2-oNebx.js +71 -0
  13. package/dist/chunks/AnimationsPanel-DungA9qb.js +25 -0
  14. package/dist/chunks/Audio.render-CsR69fZ9.js +22 -0
  15. package/dist/chunks/AudioMainTab-BljM2NMQ.js +70 -0
  16. package/dist/chunks/BackdropEditorPanel-CA2k-6SR.js +26 -0
  17. package/dist/chunks/BackgroundImageInputPopover-vB_217Ig.js +94 -0
  18. package/dist/chunks/BackgroundImagePanel-BvMhF9eU.js +100 -0
  19. package/dist/chunks/BackgroundMainTab-CI4c5DEF.js +10 -0
  20. package/dist/chunks/BundleRowPanel-BcYfyfGQ.js +33 -0
  21. package/dist/chunks/ButtonMainTab-Civy_DoA.js +43 -0
  22. package/dist/chunks/CSSEditorInput-C1ITwAh3.js +73 -0
  23. package/dist/chunks/ClassNameInput-Ce0fGQES.js +720 -0
  24. package/dist/chunks/CodeEditor-axBXmPH8.js +33370 -0
  25. package/dist/chunks/ColorInput-BSfMNt86.js +187 -0
  26. package/dist/chunks/ColorPanel-DOLrT-gS.js +562 -0
  27. package/dist/chunks/ComponentImportExportPanel-DVcnGhGx.js +161 -0
  28. package/dist/chunks/ComponentImportExportPopover-BY1_oxU8.js +26 -0
  29. package/dist/chunks/ConditionEditorPanel-DLbqYaSF.js +43 -0
  30. package/dist/chunks/ConditionsAddPicker-SsHJlc1E.js +54 -0
  31. package/dist/chunks/ConditionsInput-B_5Nge8o.js +474 -0
  32. package/dist/chunks/ContainerMainTab-kkktm1Ns.js +1107 -0
  33. package/dist/chunks/ContainerOverflowSectionPanel-ibKXf-1N.js +120 -0
  34. package/dist/chunks/ContainerOverflowSectionPopover-CRQ9EPsn.js +24 -0
  35. package/dist/chunks/ContainerPaddingOverlay-Cd3xOv-S.js +340 -0
  36. package/dist/chunks/ContainerScrollEffectSection-Dbztqdnr.js +123 -0
  37. package/dist/chunks/ContainerStateSection-DY_gjBJL.js +478 -0
  38. package/dist/chunks/ConversionFields-Bpfl-SGP.js +135 -0
  39. package/dist/chunks/CraftListEditor-_TIy1ogW.js +73 -0
  40. package/dist/chunks/CreateTokenDialog-DNWtWqJd.js +147 -0
  41. package/dist/chunks/Data.render-DTmaqSyz.js +10 -0
  42. package/dist/chunks/DataAttributesPanel-mYhisO_O.js +125 -0
  43. package/dist/chunks/DataMainTab-Batm515E.js +23 -0
  44. package/dist/chunks/DataSourceSectionSlot-BKoO6Vxn.js +10 -0
  45. package/dist/chunks/EditorEmptyLeafHintView-D3E3UN_0.js +78 -0
  46. package/dist/chunks/EffectRowInputPopover-CYhfjFwJ.js +323 -0
  47. package/dist/chunks/EffectsClassInput-Yujuchwy.js +315 -0
  48. package/dist/chunks/Embed.render-BgKpUV8n.js +17 -0
  49. package/dist/chunks/EmbedMainTab-d_-Bnkug.js +225 -0
  50. package/dist/chunks/FilterEditorPanel-CRa0IpLr.js +26 -0
  51. package/dist/chunks/FlexDirectionInput-C5gYjk5W.js +78 -0
  52. package/dist/chunks/FloatingPanel-DJP5Vhua.js +553 -0
  53. package/dist/chunks/FontFamilyInput-CVNnVylt.js +111 -0
  54. package/dist/chunks/Form.render-6GjcmL2u.js +54 -0
  55. package/dist/chunks/FormElement.render-DWrG-2ID.js +36 -0
  56. package/dist/chunks/FormElementMainTab-DSbF3F6e.js +470 -0
  57. package/dist/chunks/FormMainTab-SHny1HxF.js +240 -0
  58. package/dist/chunks/GradientInputPopover-1K6O9jBq.js +103 -0
  59. package/dist/chunks/GradientPanel-DSRQKkaB.js +194 -0
  60. package/dist/chunks/HTMLCodeInput-CCe4Bj5z.js +69 -0
  61. package/dist/chunks/HandlerEditorPanel-DiOXobsl.js +93 -0
  62. package/dist/chunks/HandlersAddPicker-DWTgjKgo.js +101 -0
  63. package/dist/chunks/HandlersInput-p49STTn8.js +132 -0
  64. package/dist/chunks/IconDialogInput-C-81_L2n.js +105 -0
  65. package/dist/chunks/IconInput-D2Gy7Hvf.js +182 -0
  66. package/dist/chunks/IconMainTab-CNrVjDWP.js +26 -0
  67. package/dist/chunks/IconPickerPanel-BjNOlCh6.js +670 -0
  68. package/dist/chunks/ImageMainTab-C4O7RjX0.js +66 -0
  69. package/dist/chunks/ImageSettingsPanel-dvOmGg3C.js +485 -0
  70. package/dist/chunks/LayoutPresetPanel-CNAVAcvw.js +81 -0
  71. package/dist/chunks/LayoutPresetSlot-BqMTdE33.js +16 -0
  72. package/dist/chunks/LinkMainTab-BfFZx0AU.js +13 -0
  73. package/dist/chunks/ListEditor-mD-CmRNE.js +178 -0
  74. package/dist/chunks/Map.render-DFkmncHz.js +82 -0
  75. package/dist/chunks/MapLeaflet-DOfmZ3Pk.js +6588 -0
  76. package/dist/chunks/MapMainTab-CxI7IS1_.js +165 -0
  77. package/dist/chunks/MapPoint.render-0OAfCZTp.js +16 -0
  78. package/dist/chunks/MapPointMainTab-CmLcaSR5.js +60 -0
  79. package/dist/chunks/MediaInput-DHs3D8TJ.js +672 -0
  80. package/dist/chunks/MediaManagerModal-Dc5PK3dn.js +240 -0
  81. package/dist/chunks/MiniPreviewTile-B4zxTj9Y.js +32 -0
  82. package/dist/chunks/ModifierChipList-CwsWklih.js +33 -0
  83. package/dist/chunks/ModifiersAddPicker-D-vSYw7O.js +74 -0
  84. package/dist/chunks/ModifiersPickerPanel-CTefidBx.js +243 -0
  85. package/dist/chunks/NodeAiContextInputPopover-D5bn5o_T.js +66 -0
  86. package/dist/chunks/NodeAiContextPanel-Bx4rcjiM.js +81 -0
  87. package/dist/chunks/NumberSettingsPanel-DASi_l6V.js +56 -0
  88. package/dist/chunks/PageSettingsModal-D6o450IR.js +2678 -0
  89. package/dist/chunks/PatternInputPopover-qMWBv_nl.js +100 -0
  90. package/dist/chunks/PatternPanel-D2fgWDd-.js +352 -0
  91. package/dist/chunks/PeekTargetButton-ClrJX7zh.js +26 -0
  92. package/dist/chunks/PermissionsSection-DwobrV40.js +82 -0
  93. package/dist/chunks/PresetAddChildList-D6a0xdt8.js +35 -0
  94. package/dist/chunks/PropertiesInput-9O39ngbb.js +125 -0
  95. package/dist/chunks/PropertiesPanel-DO0RlalO.js +76 -0
  96. package/dist/chunks/SaveModifierPanel-B6mjKyrT.js +130 -0
  97. package/dist/chunks/ScrollEffectEditorPanel-CllGUhui.js +26 -0
  98. package/dist/chunks/SearchInput-DRUztbM0.js +76 -0
  99. package/dist/chunks/SearchableMenuPopover-DZKVXiEl.js +1251 -0
  100. package/dist/chunks/SlotRenderer-CaLf_2_C.js +38 -0
  101. package/dist/chunks/StateBindingEditorPanel-DKdcG5py.js +101 -0
  102. package/dist/chunks/StateBindingsAddPicker-DxMNAWAD.js +91 -0
  103. package/dist/chunks/StateBindingsInput-iWiqvAVB.js +103 -0
  104. package/dist/chunks/TailwindInput-660FZtyK.js +24 -0
  105. package/dist/chunks/TextEditor-B2O7DlN8.js +22032 -0
  106. package/dist/chunks/TextMainTab-B5udsXsk.js +260 -0
  107. package/dist/chunks/TextStyleEditorPanel-GRNPGzUL.js +381 -0
  108. package/dist/chunks/TextStylePickerPanel-l108SmGQ.js +140 -0
  109. package/dist/chunks/TextareaSettingsPanel-C1rQuF1O.js +50 -0
  110. package/dist/chunks/TokenPicker-Q0LToF_p.js +291 -0
  111. package/dist/chunks/ToolbarDashedButton-DbUxGmDg.js +23 -0
  112. package/dist/chunks/TransformEditorPanel-BGwyznZ6.js +26 -0
  113. package/dist/chunks/TransitionEditorPanel-BSvk58Ow.js +26 -0
  114. package/dist/chunks/TypographyPresetInput-DqnGSgR2.js +296 -0
  115. package/dist/chunks/ValidationPanel-CmA9SfoF.js +56 -0
  116. package/dist/chunks/Video.render-Dg6xvis4.js +21 -0
  117. package/dist/chunks/VideoMainTab-v5UFhUm-.js +174 -0
  118. package/dist/chunks/YouTube.esm-EbHnLU1Z.js +744 -0
  119. package/dist/chunks/dialogAtoms-CeQ2G05l.js +59 -0
  120. package/dist/chunks/extends-hS2Bh-Yp.js +12 -0
  121. package/dist/chunks/formatStorage-C3o2s3dk.js +22 -0
  122. package/dist/chunks/googleFonts-Dj4AntNi.js +323 -0
  123. package/dist/chunks/helpers-Cll72tMn.js +18 -0
  124. package/dist/chunks/index-B-GJd039.js +2875 -0
  125. package/dist/chunks/index-C66dAl3Q.js +32177 -0
  126. package/dist/chunks/index.esm-mqFx3NOs.js +644 -0
  127. package/dist/chunks/popoverOpenRequestAtom-hBS_siXv.js +22 -0
  128. package/dist/chunks/propertyRegistry-CMhVNOgl.js +38 -0
  129. package/dist/chunks/resolveAnchorsViaCraft-Cixm6ZyJ.js +31 -0
  130. package/dist/chunks/toolboxUtils-DjTMslSn.js +370 -0
  131. package/dist/chunks/uiPrimitives-BtohldWg.js +15 -0
  132. package/dist/chunks/use-event-listener-DO3Sk7g0.js +15 -0
  133. package/dist/chunks/useElementPicker-DoNuXNMQ.js +41 -0
  134. package/dist/chunks/useLayoutPreset-wOMV5YnO.js +528 -0
  135. package/dist/chunks/useMediaManager-CmKDbFfw.js +4629 -0
  136. package/dist/chunks/usePopoverAutoOpen-CxIjt0ez.js +25 -0
  137. package/dist/chunks/usePopoverPosition-83Vti7Aw.js +15 -0
  138. package/dist/render/static/index.js +9 -0
  139. package/package.json +22 -13
  140. package/dist/pagehub-viewer.umd.cjs +0 -574
  141. package/dist/pagehub.umd.cjs +0 -1130
@@ -0,0 +1,1107 @@
1
+ import { jsxs as B, Fragment as J, jsx as t } from "react/jsx-runtime";
2
+ import { u as z, V as D, E as G, g as F, r as ze, a as Le, p as Oe, b as Be, c as se, C as ie, e as fe, t as Ee, T as Me, P as ne, d as Re, S as be, f as He, s as ue, h as de, i as oe, j as me, k as ye, l as Fe, m as Ve, n as V, o as he, q as _e, v as $e, w as we, x as De } from "./index-C66dAl3Q.js";
3
+ import { u as Ge, L as We } from "./useLayoutPreset-wOMV5YnO.js";
4
+ import { r as je } from "./helpers-Cll72tMn.js";
5
+ import { TailwindInput as qe } from "./TailwindInput-660FZtyK.js";
6
+ import { useNode as E, useEditor as W } from "@craftjs/core";
7
+ import d, { useState as Q, useMemo as le, useCallback as Z, Suspense as ve, lazy as Ce, useEffect as ke, useRef as Ue } from "react";
8
+ import { u as Pe } from "./usePopoverPosition-83Vti7Aw.js";
9
+ import { ROOT_NODE as ce } from "@craftjs/utils";
10
+ import { c as Je, T as ae } from "./uiPrimitives-BtohldWg.js";
11
+ import { f as Qe } from "./formatStorage-C3o2s3dk.js";
12
+ import { U as re } from "./index-B-GJd039.js";
13
+ import { P as Xe, p as Ye } from "./popoverOpenRequestAtom-hBS_siXv.js";
14
+ import { S as Ze } from "./SlotRenderer-CaLf_2_C.js";
15
+ var Te = /* @__PURE__ */ ((e) => (e.Page = "page", e.Section = "section", e.Header = "header", e.Footer = "footer", e.Component = "component", e.Container = "container", e.Form = "form", e.Background = "background", e))(Te || {});
16
+ const et = () => {
17
+ var s, i;
18
+ const { parent: e, currentNodeType: a, isCanvas: o } = E((c) => {
19
+ var p;
20
+ return {
21
+ parent: c.data.parent,
22
+ currentNodeType: (p = c.data.props) == null ? void 0 : p.type,
23
+ isCanvas: c.data.isCanvas
24
+ };
25
+ }), { query: n } = W(), r = n.node(e || ce).get(), l = (i = (s = r == null ? void 0 : r.data) == null ? void 0 : s.props) == null ? void 0 : i.type;
26
+ return Object.values(Te).includes(a) ? a : l === "page" ? "section" : o ? "container" : null;
27
+ }, tt = () => {
28
+ var s, i, c;
29
+ const e = et(), { parent: a } = E((p) => ({
30
+ parent: p.data.parent
31
+ })), { query: o } = W(), n = o.node(a || ce).get(), r = (s = n == null ? void 0 : n.data) != null && s.parent ? o.node(n.data.parent).get() : null, l = ((c = (i = r == null ? void 0 : r.data) == null ? void 0 : i.props) == null ? void 0 : c.type) === "page";
32
+ return {
33
+ type: e,
34
+ isPage: e === "page",
35
+ isSection: e === "section",
36
+ isHeader: e === "header",
37
+ isFooter: e === "footer",
38
+ isComponent: e === "component",
39
+ isContainer: e === "container",
40
+ isForm: e === "form",
41
+ isBackground: e === "background",
42
+ isContent: l
43
+ };
44
+ }, nt = Ce(() => import("./ColorPanel-DOLrT-gS.js")), ge = 280, ot = 540;
45
+ function at(e) {
46
+ const {
47
+ propKey: a,
48
+ label: o = "",
49
+ prefix: n = "",
50
+ index: r = null,
51
+ propItemKey: l = "",
52
+ propType: s = "class",
53
+ onChange: i = () => {
54
+ },
55
+ labelHide: c = !1,
56
+ inline: p = !1,
57
+ inputWidth: y = "",
58
+ labelWidth: P = ""
59
+ } = e, [g, w] = Q(!1), { triggerRef: m, initialPos: u, setInitialPos: v, computePosition: x } = Pe(ge), T = z(D), h = z(G).dark ?? !1, { actions: f, query: S } = W(), {
60
+ actions: { setProp: M },
61
+ nodeProps: X,
62
+ id: j
63
+ } = E((L) => {
64
+ var H;
65
+ return {
66
+ nodeProps: ((H = L.data) == null ? void 0 : H.props) || {},
67
+ id: L.id
68
+ };
69
+ }), { value: C } = F(e, T, X, h), k = C || "", N = le(() => {
70
+ var L;
71
+ try {
72
+ const H = S.node(ce).get();
73
+ return ze(((L = H == null ? void 0 : H.data) == null ? void 0 : L.props) || {}).palette;
74
+ } catch {
75
+ return [];
76
+ }
77
+ }, [S]), b = Le(k, n), [, I] = Oe(b, n), O = Be(b, n, N), R = !!String(k ?? "").trim(), q = O.backgroundColor ?? "", Se = !R || Je(q), Y = s === "class" ? fe(T) : void 0, U = Z(
78
+ (L) => {
79
+ se({
80
+ propKey: a,
81
+ index: r,
82
+ propItemKey: l,
83
+ propType: s,
84
+ value: L,
85
+ setProp: M,
86
+ query: S,
87
+ actions: f,
88
+ nodeId: j,
89
+ ...s === "class" && Y != null ? { view: Y, classDark: h } : {}
90
+ }), i(I, L);
91
+ },
92
+ [
93
+ f,
94
+ h,
95
+ Y,
96
+ I,
97
+ j,
98
+ r,
99
+ i,
100
+ l,
101
+ a,
102
+ s,
103
+ S,
104
+ M
105
+ ]
106
+ ), Ne = Z(
107
+ (L) => {
108
+ if (!L) return;
109
+ const H = Qe(L, n);
110
+ U(H);
111
+ },
112
+ [n, U]
113
+ ), pe = Z(() => {
114
+ U("");
115
+ }, [U]), Ae = () => {
116
+ v(x()), w(!0);
117
+ }, Ke = R ? I || "Color" : "Pick color";
118
+ return /* @__PURE__ */ B(J, { children: [
119
+ /* @__PURE__ */ t(
120
+ ie,
121
+ {
122
+ mode: "popover",
123
+ ref: m,
124
+ label: c ? void 0 : o,
125
+ index: r,
126
+ propType: s,
127
+ propKey: a,
128
+ propItemKey: l,
129
+ labelWidth: P,
130
+ open: g,
131
+ onTriggerClick: () => g ? w(!1) : Ae(),
132
+ onClear: () => {
133
+ g && w(!1), pe();
134
+ },
135
+ triggerAriaLabel: R ? "Edit color" : "Pick color",
136
+ clearAriaLabel: "Clear color",
137
+ variant: R ? "preview" : "default",
138
+ leading: R ? /* @__PURE__ */ B(J, { children: [
139
+ Se && /* @__PURE__ */ t(
140
+ "span",
141
+ {
142
+ className: "pointer-events-none absolute inset-0 z-0",
143
+ style: ae,
144
+ "aria-hidden": !0
145
+ }
146
+ ),
147
+ /* @__PURE__ */ t(
148
+ "span",
149
+ {
150
+ className: "pointer-events-none absolute inset-0 z-[1]",
151
+ style: { backgroundColor: q },
152
+ "aria-hidden": !0
153
+ }
154
+ )
155
+ ] }) : /* @__PURE__ */ t(
156
+ "span",
157
+ {
158
+ className: "block size-3.5 rounded-sm border",
159
+ style: {
160
+ backgroundColor: "transparent",
161
+ ...ae,
162
+ borderColor: "var(--base-300)"
163
+ },
164
+ "aria-hidden": !0
165
+ }
166
+ ),
167
+ summary: R ? null : Ke
168
+ }
169
+ ),
170
+ g && /* @__PURE__ */ t(ve, { fallback: null, children: /* @__PURE__ */ t(
171
+ nt,
172
+ {
173
+ initialPosition: u,
174
+ onClose: () => w(!1),
175
+ defaultWidth: ge,
176
+ defaultHeight: ot,
177
+ value: k,
178
+ onChange: Ne,
179
+ onClear: pe
180
+ }
181
+ ) })
182
+ ] });
183
+ }
184
+ function Ie(e, a, o, n, r) {
185
+ if (e.input.type === "bundle")
186
+ return e.input.properties.some(
187
+ (i) => Ie(i, a, o, n, r)
188
+ );
189
+ if (e.input.type === "shorthand") {
190
+ for (const i of e.input.modes)
191
+ for (const c of i.tags) {
192
+ const p = F(
193
+ { propKey: c, propType: "class" },
194
+ n,
195
+ { className: a },
196
+ r
197
+ );
198
+ if (p.value != null && p.value !== "") return !0;
199
+ }
200
+ return !1;
201
+ }
202
+ if (e.input.type === "multi-toggle") {
203
+ for (const i of e.input.toggles) {
204
+ const c = F(
205
+ { propKey: i.propKey, propType: "class" },
206
+ n,
207
+ { className: a },
208
+ r
209
+ );
210
+ if (c.value != null && c.value !== "") return !0;
211
+ }
212
+ return !1;
213
+ }
214
+ const l = e.propType || "class";
215
+ if (l === "component") {
216
+ const i = o[e.propKey || e.id];
217
+ return i != null && i !== "";
218
+ }
219
+ const s = F(
220
+ { propKey: e.propKey || e.id, propType: l },
221
+ n,
222
+ { className: a },
223
+ r
224
+ );
225
+ return s.value != null && s.value !== "";
226
+ }
227
+ function rt(e) {
228
+ const a = z(D), o = z(G).dark ?? !1, n = E((i) => {
229
+ var c, p, y;
230
+ return {
231
+ className: ((p = (c = i.data) == null ? void 0 : c.props) == null ? void 0 : p.className) || "",
232
+ componentProps: ((y = i.data) == null ? void 0 : y.props) || {}
233
+ };
234
+ });
235
+ if (e.input.type === "bundle" || e.input.type === "shorthand")
236
+ return Ie(
237
+ e,
238
+ n.className,
239
+ n.componentProps,
240
+ a,
241
+ o
242
+ );
243
+ const r = e.propKey || e.id, l = e.propType || "class";
244
+ if (l === "component") {
245
+ const i = n.componentProps[r];
246
+ return i != null && i !== "";
247
+ }
248
+ const s = F(
249
+ { propKey: r, propType: l },
250
+ a,
251
+ { className: n.className },
252
+ o
253
+ );
254
+ return s.value != null && s.value !== "";
255
+ }
256
+ const st = /* @__PURE__ */ new Set([
257
+ "ActionsAddPicker",
258
+ "AnimationsInput",
259
+ "ConditionsAddPicker",
260
+ "HandlersAddPicker",
261
+ "StateBindingsAddPicker",
262
+ "GradientInput",
263
+ "PatternInput",
264
+ "BackgroundImageInput",
265
+ "EffectRowInput",
266
+ "ComponentImportExport",
267
+ "NodeAiContextSection",
268
+ "ContainerOverflowSection",
269
+ "ModifiersAddPicker"
270
+ ]);
271
+ function it(e) {
272
+ return typeof e == "string" && st.has(e);
273
+ }
274
+ function lt({
275
+ active: e,
276
+ done: a,
277
+ onComplete: o,
278
+ overlay: n,
279
+ size: r = "default",
280
+ className: l
281
+ }) {
282
+ const [s, i] = Q(0);
283
+ if (ke(() => {
284
+ if (!e) {
285
+ i(0);
286
+ return;
287
+ }
288
+ if (typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
289
+ i(a ? 100 : 66);
290
+ return;
291
+ }
292
+ if (a) {
293
+ i(100);
294
+ const x = setTimeout(() => o == null ? void 0 : o(), 200);
295
+ return () => clearTimeout(x);
296
+ }
297
+ const g = n ? 5 : 8, w = n ? 91 : 93, m = 520;
298
+ i(g);
299
+ const u = Date.now(), v = window.setInterval(() => {
300
+ const x = Date.now() - u, T = Math.min(w, g + (w - g) * (1 - Math.exp(-x / m)));
301
+ i(T);
302
+ }, 45);
303
+ return () => window.clearInterval(v);
304
+ }, [e, a, n, o]), !e) return null;
305
+ const c = r === "sm" ? "h-1 w-full max-w-none overflow-hidden rounded-full bg-base-300/90 dark:bg-white/10" : "h-2 w-full max-w-xs overflow-hidden rounded-full bg-gray-200 dark:bg-white/12", p = r === "sm" ? "h-full rounded-full bg-base-content/45 transition-[width] duration-150 ease-out will-change-[width] dark:bg-white/55" : "h-full rounded-full bg-gray-700 transition-[width] duration-150 ease-out will-change-[width] dark:bg-white/80", y = /* @__PURE__ */ t(
306
+ "div",
307
+ {
308
+ className: Ee(c, l),
309
+ role: "progressbar",
310
+ "aria-valuemin": 0,
311
+ "aria-valuemax": 100,
312
+ "aria-valuenow": Math.round(s),
313
+ "aria-label": "Loading",
314
+ children: /* @__PURE__ */ t("div", { className: p, style: { width: `${Math.max(2, s)}%` } })
315
+ }
316
+ );
317
+ return n ? /* @__PURE__ */ t(
318
+ "div",
319
+ {
320
+ className: "pointer-events-none absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 bg-white/55 backdrop-blur-md dark:bg-black/45",
321
+ "aria-busy": "true",
322
+ "aria-label": "Loading",
323
+ children: y
324
+ }
325
+ ) : y;
326
+ }
327
+ function Ft() {
328
+ return /* @__PURE__ */ t("div", { className: "py-2", "aria-busy": "true", "aria-label": "Loading controls", children: /* @__PURE__ */ t(lt, { active: !0, done: !1, size: "sm" }) });
329
+ }
330
+ const _ = "bg-base-content/5 animate-pulse rounded";
331
+ function xe() {
332
+ return /* @__PURE__ */ B("div", { className: "flex h-8 items-center gap-0.5", "aria-busy": "true", "aria-label": "Loading control", children: [
333
+ /* @__PURE__ */ t("span", { className: `${_} h-3 w-20 shrink-0`, "aria-hidden": !0 }),
334
+ /* @__PURE__ */ t("span", { className: `${_} ml-0.5 h-8 min-w-0 flex-1`, "aria-hidden": !0 })
335
+ ] });
336
+ }
337
+ function ct() {
338
+ return /* @__PURE__ */ B("div", { className: "flex flex-col gap-2", "aria-busy": "true", "aria-label": "Loading section", children: [
339
+ /* @__PURE__ */ t("span", { className: `${_} h-3 w-1/3`, "aria-hidden": !0 }),
340
+ /* @__PURE__ */ t("span", { className: `${_} h-8 w-full`, "aria-hidden": !0 }),
341
+ /* @__PURE__ */ t("span", { className: `${_} h-8 w-2/3`, "aria-hidden": !0 })
342
+ ] });
343
+ }
344
+ function pt() {
345
+ return /* @__PURE__ */ t("div", { className: "flex h-8 items-center", "aria-busy": "true", "aria-label": "Loading control", children: /* @__PURE__ */ t("span", { className: `${_} h-8 w-full`, "aria-hidden": !0 }) });
346
+ }
347
+ const $ = (e) => ({
348
+ lazy: e,
349
+ fallback: /* @__PURE__ */ t(xe, {})
350
+ }), K = (e) => ({
351
+ lazy: e,
352
+ fallback: /* @__PURE__ */ t(ct, {})
353
+ }), A = (e) => ({
354
+ lazy: e,
355
+ fallback: /* @__PURE__ */ t(pt, {})
356
+ }), ut = {
357
+ TypographyPresetInput: $(
358
+ d.lazy(
359
+ () => import("./TypographyPresetInput-DqnGSgR2.js").then((e) => e.T).then((e) => ({
360
+ default: e.TypographyPresetInput
361
+ }))
362
+ )
363
+ ),
364
+ FontFamilyInput: $(
365
+ d.lazy(
366
+ () => import("./FontFamilyInput-CVNnVylt.js").then((e) => ({
367
+ default: e.FontFamilyInput
368
+ }))
369
+ )
370
+ ),
371
+ LayoutPresetSlot: $(
372
+ d.lazy(
373
+ () => import("./LayoutPresetSlot-BqMTdE33.js").then((e) => ({
374
+ default: e.LayoutPresetSlot
375
+ }))
376
+ )
377
+ ),
378
+ PropertiesInput: K(
379
+ d.lazy(
380
+ () => import("./PropertiesInput-9O39ngbb.js").then((e) => ({ default: e.PropertiesInput }))
381
+ )
382
+ ),
383
+ // Popover variant — chip + FloatingPanel hosting the AI context editor.
384
+ NodeAiContextSection: A(
385
+ d.lazy(() => import("./NodeAiContextInputPopover-D5bn5o_T.js"))
386
+ ),
387
+ // Popover variant — chip + FloatingPanel hosting the import/export editor.
388
+ ComponentImportExport: A(
389
+ d.lazy(() => import("./ComponentImportExportPopover-BY1_oxU8.js"))
390
+ ),
391
+ PermissionsSection: K(
392
+ d.lazy(
393
+ () => import("./PermissionsSection-DwobrV40.js").then((e) => ({ default: e.PermissionsSection }))
394
+ )
395
+ ),
396
+ // Body — N editable condition chips. Each chip lazy-loads its own
397
+ // ConditionEditorPanel on click. Pinned (always renders) so the empty
398
+ // body is fine until the user picks the first type from the header `+`.
399
+ ConditionsInput: K(
400
+ d.lazy(
401
+ () => import("./ConditionsInput-B_5Nge8o.js").then((e) => e.e).then((e) => ({ default: e.ConditionsInput }))
402
+ )
403
+ ),
404
+ // Section-header `+` picker. Popover-mode so AccordionAddMenu mounts it
405
+ // inside the conditions section title row. Picking a category appends a
406
+ // condition to `props.conditionGroups` and the body auto-opens the new chip.
407
+ ConditionsAddPicker: A(d.lazy(() => import("./ConditionsAddPicker-SsHJlc1E.js"))),
408
+ // State bindings — `props.stateModifiers` array. When the named state matches
409
+ // the binding's conditions at runtime, modifier classes are appended to the
410
+ // node's className.
411
+ StateBindingsInput: K(
412
+ d.lazy(
413
+ () => import("./StateBindingsInput-iWiqvAVB.js").then((e) => ({
414
+ default: e.StateBindingsInput
415
+ }))
416
+ )
417
+ ),
418
+ StateBindingsAddPicker: A(d.lazy(() => import("./StateBindingsAddPicker-DxMNAWAD.js"))),
419
+ // Container-only state-registry wiring: visibilityStateKey + computedStateBindings.
420
+ // Renders alongside StateBindingsInput in the Interactions > State section.
421
+ ContainerStateBody: K(
422
+ d.lazy(
423
+ () => import("./ContainerStateSection-DY_gjBJL.js").then((e) => ({
424
+ default: e.ContainerStateBody
425
+ }))
426
+ )
427
+ ),
428
+ // Popover variant — chip + FloatingPanel.
429
+ AnimationsInput: A(d.lazy(() => import("./AnimationsInputPopover-B2-oNebx.js"))),
430
+ ContainerScrollEffectSection: K(
431
+ d.lazy(
432
+ () => import("./ContainerScrollEffectSection-Dbztqdnr.js").then((e) => ({
433
+ default: e.ContainerScrollEffectSection
434
+ }))
435
+ )
436
+ ),
437
+ // Popover variant — chip + FloatingPanel for each effect row.
438
+ EffectRowInput: A(
439
+ d.lazy(() => import("./EffectRowInputPopover-CYhfjFwJ.js"))
440
+ ),
441
+ // Popover variant — chip + FloatingPanel hosting the overflow editor.
442
+ ContainerOverflowSection: A(
443
+ d.lazy(() => import("./ContainerOverflowSectionPopover-CRQ9EPsn.js"))
444
+ ),
445
+ DataSourceSectionSlot: K(
446
+ d.lazy(
447
+ () => import("./DataSourceSectionSlot-BKoO6Vxn.js").then((e) => ({ default: e.DataSourceSectionSlot }))
448
+ )
449
+ ),
450
+ // Popover variant — chip with image thumbnail + label, opens FloatingPanel
451
+ // hosting the slim media picker. The chip's `trailingExtras` slot renders
452
+ // a sliders icon that opens `ImageSettingsPanel` (Focal Point + the 9
453
+ // registered `image-settings` properties) — same trailingExtras pattern
454
+ // docs §1 documents (Layout chip's "+ Add container", show-hide chip's
455
+ // eye toggle).
456
+ BackgroundImageInput: A(
457
+ d.lazy(() => import("./BackgroundImageInputPopover-vB_217Ig.js"))
458
+ ),
459
+ // Popover variant — chip with pattern thumbnail + label, opens FloatingPanel editor.
460
+ PatternInput: A(d.lazy(() => import("./PatternInputPopover-qMWBv_nl.js"))),
461
+ // Popover variant — chip with gradient swatch + label, opens FloatingPanel editor.
462
+ GradientInput: A(d.lazy(() => import("./GradientInputPopover-1K6O9jBq.js"))),
463
+ ClassNameInput: K(
464
+ d.lazy(
465
+ () => import("./ClassNameInput-Ce0fGQES.js").then((e) => ({ default: e.ClassNameInput }))
466
+ )
467
+ ),
468
+ // List-style Action section (mirrors Conditions): body chip-list + header
469
+ // `+` picker. Each action chip lazy-loads its own ActionEditorPanel on
470
+ // click. See ActionsInput.tsx + docs/sdk/editor-popover-pattern.md §8.
471
+ ActionsInput: K(
472
+ d.lazy(
473
+ () => import("./ActionsInput-D0h-zLYj.js").then((e) => ({ default: e.ActionsInput }))
474
+ )
475
+ ),
476
+ ActionsAddPicker: A(d.lazy(() => import("./ActionsAddPicker-BeTPUUor.js"))),
477
+ // Sibling Handlers section — chip-list of `props.handlers` (event → JS
478
+ // string map). Each handler chip lazy-loads its own HandlerEditorPanel.
479
+ // See HandlersInput.tsx + docs/sdk/editor-popover-pattern.md §8.
480
+ HandlersInput: K(
481
+ d.lazy(
482
+ () => import("./HandlersInput-p49STTn8.js").then((e) => ({ default: e.HandlersInput }))
483
+ )
484
+ ),
485
+ HandlersAddPicker: A(d.lazy(() => import("./HandlersAddPicker-DWTgjKgo.js").then((e) => e.c))),
486
+ FlexDirectionInput: $(
487
+ d.lazy(
488
+ () => import("./FlexDirectionInput-C5gYjk5W.js").then((e) => ({
489
+ default: e.FlexDirectionInput
490
+ }))
491
+ )
492
+ ),
493
+ TailwindInput: $(
494
+ d.lazy(
495
+ () => import("./TailwindInput-660FZtyK.js").then((e) => ({ default: e.TailwindInput }))
496
+ )
497
+ ),
498
+ // Body — N modifier chips (one per `props.root.activeModifiers` entry).
499
+ // X removes the modifier; click dispatches an open-request to the picker.
500
+ ModifierChipList: K(
501
+ d.lazy(
502
+ () => import("./ModifierChipList-CwsWklih.js").then((e) => ({
503
+ default: e.ModifierChipList
504
+ }))
505
+ )
506
+ ),
507
+ // Section-header `+` picker. Popover-mode so AccordionAddMenu mounts it
508
+ // inside the modifiers section title row. Opens a FloatingPanel with the
509
+ // categorized preview-rich library (Pattern cards, exclusive segmented
510
+ // controls, dropdowns, free chips) and the "Save as modifier" footer.
511
+ ModifiersAddPicker: A(d.lazy(() => import("./ModifiersAddPicker-D-vSYw7O.js"))),
512
+ // Component-tab affordance for preset wrappers — Add Item / delete-row UI
513
+ // driven by `node.data.custom.preset` + `presetRegistry.ts`. See
514
+ // packages/sdk/src/chrome/toolbar/inputs/preset/PresetAddChildList.tsx.
515
+ PresetAddChildList: K(
516
+ d.lazy(
517
+ () => import("./PresetAddChildList-D6a0xdt8.js").then((e) => ({
518
+ default: e.PresetAddChildList
519
+ }))
520
+ )
521
+ )
522
+ }, ee = /* @__PURE__ */ new Map();
523
+ function dt(e) {
524
+ if (typeof e != "string") return e;
525
+ const a = ee.get(e);
526
+ if (a) return a;
527
+ const o = ut[e];
528
+ if (!o) {
529
+ const s = () => null;
530
+ return ee.set(e, s), s;
531
+ }
532
+ const { lazy: n, fallback: r } = o, l = (s) => /* @__PURE__ */ t(d.Suspense, { fallback: r ?? /* @__PURE__ */ t(xe, {}), children: /* @__PURE__ */ t(n, { ...s }) });
533
+ return l.displayName = `CustomInput(${e})`, ee.set(e, l), l;
534
+ }
535
+ function mt({ def: e, config: a }) {
536
+ var T;
537
+ const { modes: o, tailwindKey: n, varSelectorPrefix: r, allowedTypes: l } = a, s = z(D), i = z(G).dark ?? !1, {
538
+ actions: { setProp: c },
539
+ className: p
540
+ } = E((h) => {
541
+ var f, S;
542
+ return {
543
+ className: typeof ((S = (f = h.data) == null ? void 0 : f.props) == null ? void 0 : S.className) == "string" ? h.data.props.className : ""
544
+ };
545
+ }), y = (h) => {
546
+ const f = F(
547
+ { propKey: h, propType: "class" },
548
+ s,
549
+ { className: p },
550
+ i
551
+ );
552
+ return f.value != null && f.value !== "";
553
+ }, P = le(() => {
554
+ var h;
555
+ for (let f = o.length - 1; f >= 0; f--)
556
+ if (o[f].tags.some(y)) return o[f].id;
557
+ return (h = o[0]) == null ? void 0 : h.id;
558
+ }, [p, s, i]), [g, w] = Q(P), m = o.find((h) => h.id === g) ?? o[0], u = (h) => {
559
+ if (h.id === g) return;
560
+ const f = new Set(h.tags);
561
+ for (const S of o)
562
+ for (const M of S.tags)
563
+ f.has(M) || se({ propKey: M, value: "", propType: "class", setProp: c, view: s, classDark: i });
564
+ w(h.id);
565
+ }, v = m.columns ?? m.tags.length, x = m.tags.length === 1;
566
+ return /* @__PURE__ */ B("div", { className: "flex flex-col gap-1", children: [
567
+ /* @__PURE__ */ B("div", { className: "flex items-center gap-0.5", children: [
568
+ /* @__PURE__ */ t("span", { className: "text-base-content w-20 shrink-0 cursor-default truncate text-xs", children: e.label }),
569
+ /* @__PURE__ */ t("div", { className: "min-w-0 flex-1", children: x ? /* @__PURE__ */ t(
570
+ re,
571
+ {
572
+ propKey: m.tags[0],
573
+ propTag: m.tags[0],
574
+ tailwindKey: ((T = m.tailwindKeys) == null ? void 0 : T[0]) ?? n,
575
+ label: "",
576
+ labelHide: !0,
577
+ showVarSelector: !!r,
578
+ allowedTypes: l,
579
+ inline: !0
580
+ }
581
+ ) : /* @__PURE__ */ t("div", { className: "text-neutral-content flex h-8 items-center text-xs italic opacity-60", children: m.ariaLabel }) }),
582
+ /* @__PURE__ */ t(yt, { modes: o, activeId: g, onChange: u })
583
+ ] }),
584
+ !x && /* @__PURE__ */ t(
585
+ "div",
586
+ {
587
+ className: "grid gap-1.5",
588
+ style: { gridTemplateColumns: `repeat(${v}, minmax(0, 1fr))` },
589
+ children: m.tags.map((h, f) => {
590
+ var S;
591
+ return /* @__PURE__ */ t("div", { className: "min-w-0", children: /* @__PURE__ */ t(
592
+ re,
593
+ {
594
+ propKey: h,
595
+ propTag: h,
596
+ tailwindKey: ((S = m.tailwindKeys) == null ? void 0 : S[f]) ?? n,
597
+ label: m.labels[f],
598
+ labelWidth: "w-6",
599
+ showVarSelector: !!r,
600
+ allowedTypes: l,
601
+ inline: !0
602
+ }
603
+ ) }, h);
604
+ })
605
+ }
606
+ )
607
+ ] });
608
+ }
609
+ function yt({
610
+ modes: e,
611
+ activeId: a,
612
+ onChange: o
613
+ }) {
614
+ return /* @__PURE__ */ t(
615
+ Me,
616
+ {
617
+ compact: !0,
618
+ optionClassName: "w-7",
619
+ tooltipId: ne,
620
+ value: a,
621
+ onChange: (n) => {
622
+ const r = e.find((l) => l.id === n);
623
+ r && o(r);
624
+ },
625
+ options: e.map((n) => ({
626
+ value: n.id,
627
+ label: n.icon,
628
+ tooltip: n.ariaLabel,
629
+ ariaLabel: n.ariaLabel
630
+ }))
631
+ }
632
+ );
633
+ }
634
+ const ht = Ce(() => import("./BundleRowPanel-BcYfyfGQ.js")), gt = 300;
635
+ function ft({ def: e, properties: a, icon: o }) {
636
+ const [n, r] = Q(!1), { triggerRef: l, initialPos: s, setInitialPos: i, computePosition: c } = Pe(gt), [p, y] = Re(be), P = z(D), g = z(G).dark ?? !1, {
637
+ actions: { setProp: w },
638
+ id: m,
639
+ className: u,
640
+ componentProps: v
641
+ } = E((C) => {
642
+ var k, N, b;
643
+ return {
644
+ nodeId: C.id,
645
+ className: typeof ((N = (k = C.data) == null ? void 0 : k.props) == null ? void 0 : N.className) == "string" ? C.data.props.className : "",
646
+ componentProps: ((b = C.data) == null ? void 0 : b.props) || {}
647
+ };
648
+ }), x = le(() => {
649
+ const C = [];
650
+ for (const k of a) {
651
+ const N = k.propKey || k.id, b = k.propType || "class";
652
+ if (b === "class") {
653
+ const { value: I } = F(
654
+ { propKey: N, propType: "class" },
655
+ P,
656
+ { className: u },
657
+ g
658
+ );
659
+ I && typeof I == "string" && C.push(He(I, N));
660
+ } else if (b === "component" || b === "root") {
661
+ const I = v == null ? void 0 : v[N];
662
+ I != null && I !== "" && (typeof I == "string" || typeof I == "number") && C.push(String(I));
663
+ }
664
+ if (C.length >= 2) break;
665
+ }
666
+ return C.length ? C.join(" · ") : "Add...";
667
+ }, [a, u, v, P, g]), T = a.find((C) => C.input.type === "color"), h = T ? T.propKey || T.id : null, f = (() => {
668
+ if (!T || !h) return null;
669
+ for (const C of (u || "").trim().split(/\s+/)) {
670
+ if (!C) continue;
671
+ const { base: k } = ue(C);
672
+ if (!de(k, h)) continue;
673
+ const N = k.startsWith(`${T.input.prefix}-`) ? k.slice(T.input.prefix.length + 1) : "";
674
+ if (N) return `bg-${N}`;
675
+ }
676
+ return null;
677
+ })(), S = () => {
678
+ i(c()), r(!0);
679
+ }, M = Ue(!1);
680
+ ke(() => {
681
+ M.current || p.has(oe(m, e.id)) && (requestAnimationFrame(() => {
682
+ i(c()), r(!0);
683
+ }), M.current = !0);
684
+ }, [p, m, e.id]);
685
+ const X = (C) => {
686
+ const k = a.filter((b) => (b.propType || "class") === "class").map((b) => b.propKey || b.id);
687
+ w((b) => {
688
+ const I = typeof b.className == "string" ? b.className : "";
689
+ b.className = I.trim().split(/\s+/).filter((O) => {
690
+ if (!O) return !1;
691
+ const { base: R } = ue(O);
692
+ return !k.some((q) => de(R, q));
693
+ }).join(" ");
694
+ for (const O of a)
695
+ (O.propType || "class") !== "class" && delete b[O.propKey || O.id];
696
+ Array.isArray(b.toolbarOrder) && (b.toolbarOrder = b.toolbarOrder.filter((O) => O !== e.id));
697
+ }, 0);
698
+ const N = new Set(p);
699
+ N.delete(oe(m, e.id)), y(N), r(!1);
700
+ }, j = T ? /* @__PURE__ */ t(
701
+ "span",
702
+ {
703
+ className: "border-base-300 relative size-4 shrink-0 overflow-hidden rounded border",
704
+ style: f ? void 0 : ae,
705
+ "aria-hidden": !0,
706
+ children: f && /* @__PURE__ */ t("span", { className: `absolute inset-0 ${f}`, "aria-hidden": !0 })
707
+ }
708
+ ) : o || null;
709
+ return /* @__PURE__ */ B(J, { children: [
710
+ /* @__PURE__ */ t(
711
+ ie,
712
+ {
713
+ mode: "popover",
714
+ ref: l,
715
+ label: e.label,
716
+ open: n,
717
+ onTriggerClick: () => n ? r(!1) : S(),
718
+ onClear: () => X(),
719
+ triggerAriaLabel: `Edit ${e.label}`,
720
+ clearAriaLabel: `Remove ${e.label}`,
721
+ leading: j,
722
+ summary: x
723
+ }
724
+ ),
725
+ n && /* @__PURE__ */ t(ve, { fallback: null, children: /* @__PURE__ */ t(
726
+ ht,
727
+ {
728
+ title: e.label,
729
+ icon: o,
730
+ storageKey: `bundle-${e.id}`,
731
+ initialPosition: s,
732
+ onClose: () => r(!1),
733
+ properties: a
734
+ }
735
+ ) })
736
+ ] });
737
+ }
738
+ const bt = ({ def: e }) => {
739
+ const a = z(D), o = z(G).dark ?? !1, n = fe(a), { actions: r, query: l } = W(), {
740
+ actions: { setProp: s },
741
+ nodeProps: i,
742
+ id: c
743
+ } = E((u) => {
744
+ var v;
745
+ return {
746
+ nodeProps: ((v = u.data) == null ? void 0 : v.props) || {},
747
+ id: u.id
748
+ };
749
+ });
750
+ if (e.input.type !== "multi-toggle") return null;
751
+ const { toggles: p } = e.input, y = i.className || "", P = p.map((u) => {
752
+ const { value: v } = F(
753
+ { propKey: u.propKey, propType: "class" },
754
+ a,
755
+ { className: y },
756
+ o
757
+ );
758
+ return v === u.className;
759
+ }), g = (u, v) => {
760
+ se({
761
+ propKey: p[u].propKey,
762
+ propType: "class",
763
+ value: v,
764
+ setProp: s,
765
+ query: l,
766
+ actions: r,
767
+ nodeId: c,
768
+ view: n,
769
+ classDark: o
770
+ });
771
+ }, w = () => {
772
+ for (let u = 0; u < p.length; u++) g(u, "");
773
+ }, m = P.some(Boolean);
774
+ return /* @__PURE__ */ t(ie, { frame: "bare", label: e.label, propKey: e.id, propType: "class", children: /* @__PURE__ */ B("div", { role: "group", className: "bg-neutral flex w-full min-w-0 gap-1 rounded-md p-1", children: [
775
+ /* @__PURE__ */ t(
776
+ "button",
777
+ {
778
+ type: "button",
779
+ onClick: w,
780
+ disabled: !m,
781
+ "data-tooltip-id": ne,
782
+ "data-tooltip-content": "None",
783
+ className: `flex h-6 min-w-0 flex-1 items-center justify-center rounded text-[11px] leading-tight font-medium transition-colors ${m ? me : ye}`,
784
+ "aria-label": "Clear all",
785
+ "aria-pressed": !m,
786
+ children: /* @__PURE__ */ t(Fe, { className: "size-3.5", "aria-hidden": !0 })
787
+ }
788
+ ),
789
+ p.map((u, v) => {
790
+ const x = P[v];
791
+ return /* @__PURE__ */ t(
792
+ "button",
793
+ {
794
+ type: "button",
795
+ onClick: () => g(v, x ? "" : u.className),
796
+ "data-tooltip-id": ne,
797
+ "data-tooltip-content": u.tooltip,
798
+ "aria-label": u.tooltip,
799
+ "aria-pressed": x,
800
+ className: `flex h-6 min-w-0 flex-1 items-center justify-center rounded text-[11px] leading-tight font-medium transition-colors ${x ? ye : me}`,
801
+ children: u.icon
802
+ },
803
+ u.propKey + u.className
804
+ );
805
+ })
806
+ ] }) });
807
+ };
808
+ function wt({ def: e, index: a }) {
809
+ const o = rt(e), { id: n } = E(), r = z(be), l = z(Xe);
810
+ if (e.pinned) return /* @__PURE__ */ t(te, { def: e, index: a });
811
+ if (e.input.type === "custom" && it(e.input.component)) return /* @__PURE__ */ t(te, { def: e, index: a });
812
+ const i = r.has(oe(n, e.id)), c = l.has(Ye(n, e.id));
813
+ return !o && !i && !c ? null : /* @__PURE__ */ t(te, { def: e, index: a });
814
+ }
815
+ function te({ def: e, index: a }) {
816
+ const { id: o } = E();
817
+ return /* @__PURE__ */ t(Ve, { value: { nodeId: o, propId: e.id }, children: /* @__PURE__ */ t(vt, { def: e, index: a }) });
818
+ }
819
+ function vt({ def: e, index: a = "" }) {
820
+ var l;
821
+ const o = e.propKey || e.id, n = e.propType || "class", r = e.index || a;
822
+ switch (e.input.type) {
823
+ case "tailwind-select": {
824
+ const { tailwindKey: s, showVarSelector: i, varSelectorPrefix: c, propTag: p } = e.input, y = he[s];
825
+ return y ? p ? /* @__PURE__ */ t(qe, { propKey: o, label: e.label, prop: s, type: "select" }) : /* @__PURE__ */ t(
826
+ V,
827
+ {
828
+ propKey: o,
829
+ propType: n,
830
+ type: "select",
831
+ label: e.label,
832
+ max: y.length - 1,
833
+ min: 0,
834
+ valueLabels: y,
835
+ showVarSelector: i,
836
+ varSelectorPrefix: c,
837
+ index: r,
838
+ inline: e.inline
839
+ }
840
+ ) : null;
841
+ }
842
+ case "tailwind-radio": {
843
+ const { tailwindKey: s, options: i, cols: c } = e.input, p = i || ((l = he[s]) == null ? void 0 : l.map((y) => ({
844
+ label: y.replace(/^[^-]+-/, ""),
845
+ value: y
846
+ }))) || [];
847
+ return /* @__PURE__ */ t(
848
+ V,
849
+ {
850
+ propKey: o,
851
+ propType: n,
852
+ type: "radio",
853
+ label: e.label,
854
+ options: [{ label: "—", value: "" }, ...p],
855
+ cols: c,
856
+ inline: e.inline !== !1,
857
+ index: r
858
+ }
859
+ );
860
+ }
861
+ case "multi-toggle":
862
+ return /* @__PURE__ */ t(bt, { def: e });
863
+ case "universal": {
864
+ const { propTag: s, allowedTypes: i, showVarSelector: c, labelWidth: p, tailwindKey: y, tailwindOptions: P } = e.input;
865
+ return /* @__PURE__ */ t(
866
+ re,
867
+ {
868
+ propKey: o,
869
+ propType: n,
870
+ propTag: s,
871
+ label: e.label,
872
+ allowedTypes: i,
873
+ showVarSelector: c,
874
+ labelWidth: p,
875
+ tailwindKey: y,
876
+ tailwindOptions: P,
877
+ index: r,
878
+ inline: e.inline
879
+ }
880
+ );
881
+ }
882
+ case "color": {
883
+ const { prefix: s } = e.input;
884
+ return /* @__PURE__ */ t(
885
+ at,
886
+ {
887
+ propKey: o,
888
+ label: e.label,
889
+ prefix: s,
890
+ propType: n,
891
+ index: r,
892
+ inline: e.inline !== !1
893
+ }
894
+ );
895
+ }
896
+ case "checkbox": {
897
+ const { on: s, off: i } = e.input;
898
+ return /* @__PURE__ */ t(
899
+ V,
900
+ {
901
+ propKey: o,
902
+ propType: n,
903
+ type: "checkbox",
904
+ label: e.label,
905
+ on: s,
906
+ option: i || "",
907
+ labelHide: !0,
908
+ index: r,
909
+ inline: e.inline,
910
+ inputWidth: "w-fit"
911
+ }
912
+ );
913
+ }
914
+ case "text":
915
+ return /* @__PURE__ */ t(
916
+ V,
917
+ {
918
+ propKey: o,
919
+ propType: n,
920
+ type: "text",
921
+ label: e.label,
922
+ placeholder: e.input.placeholder,
923
+ labelHide: !0,
924
+ index: r,
925
+ inline: e.inline
926
+ }
927
+ );
928
+ case "select":
929
+ return /* @__PURE__ */ t(
930
+ V,
931
+ {
932
+ propKey: o,
933
+ propType: n,
934
+ type: "select",
935
+ label: e.label,
936
+ index: r,
937
+ inline: e.inline,
938
+ children: e.input.options.map((s) => /* @__PURE__ */ t("option", { value: s.value, children: s.label }, String(s.value)))
939
+ }
940
+ );
941
+ case "custom": {
942
+ const s = dt(e.input.component);
943
+ return /* @__PURE__ */ t(s, { def: e, index: r });
944
+ }
945
+ case "shorthand": {
946
+ const { type: s, ...i } = e.input;
947
+ return /* @__PURE__ */ t(mt, { def: e, index: r, config: i });
948
+ }
949
+ case "bundle":
950
+ return /* @__PURE__ */ t(
951
+ ft,
952
+ {
953
+ def: e,
954
+ index: r,
955
+ properties: e.input.properties,
956
+ icon: e.input.icon
957
+ }
958
+ );
959
+ default:
960
+ return null;
961
+ }
962
+ }
963
+ const Ct = [
964
+ {
965
+ id: "bgColor",
966
+ label: "Color",
967
+ section: "background",
968
+ keywords: ["color", "fill", "bg", "background"],
969
+ input: { type: "color", prefix: "bg" },
970
+ hideKey: "bgColor",
971
+ pinned: !1,
972
+ sortOrder: 0,
973
+ inline: !0
974
+ },
975
+ {
976
+ id: "bgImage",
977
+ label: "Image",
978
+ section: "background",
979
+ keywords: ["image", "photo", "picture", "url", "background"],
980
+ input: { type: "custom", component: "BackgroundImageInput" },
981
+ isActive: (e, a) => {
982
+ var o;
983
+ return !!((o = a == null ? void 0 : a.background) != null && o.image);
984
+ },
985
+ sortOrder: 10
986
+ },
987
+ {
988
+ id: "bgPattern",
989
+ label: "Pattern",
990
+ section: "background",
991
+ keywords: ["pattern", "texture", "dots", "grid", "lines", "noise"],
992
+ input: { type: "custom", component: "PatternInput" },
993
+ hideKey: "pattern",
994
+ sortOrder: 20
995
+ },
996
+ {
997
+ id: "bgGradient",
998
+ label: "Gradient",
999
+ propKey: "gradients",
1000
+ section: "background",
1001
+ keywords: ["gradient", "linear", "radial", "conic", "from", "to", "via"],
1002
+ input: { type: "custom", component: "GradientInput" },
1003
+ sortOrder: 30
1004
+ },
1005
+ {
1006
+ id: "bgClip",
1007
+ label: "Clip",
1008
+ section: "background",
1009
+ keywords: ["clip", "text", "border", "padding", "content"],
1010
+ input: { type: "universal", tailwindKey: "bgClip" },
1011
+ sortOrder: 100
1012
+ },
1013
+ {
1014
+ id: "blend",
1015
+ label: "Blend",
1016
+ section: "background",
1017
+ keywords: ["blend", "mode", "multiply", "screen", "overlay", "mix", "background"],
1018
+ sortOrder: 110,
1019
+ input: {
1020
+ type: "bundle",
1021
+ icon: d.createElement(_e, { className: "size-3.5" }),
1022
+ properties: [
1023
+ {
1024
+ id: "bgBlend",
1025
+ label: "Background",
1026
+ section: "background",
1027
+ keywords: ["blend", "mode", "multiply", "screen", "overlay"],
1028
+ input: { type: "universal", tailwindKey: "bgBlend" },
1029
+ inline: !0
1030
+ },
1031
+ {
1032
+ id: "mixBlend",
1033
+ label: "Mix",
1034
+ section: "background",
1035
+ keywords: ["mix", "blend", "mode", "multiply", "screen", "overlay"],
1036
+ input: { type: "universal", tailwindKey: "mixBlend" },
1037
+ inline: !0
1038
+ }
1039
+ ]
1040
+ }
1041
+ }
1042
+ ], kt = Ct.find((e) => e.id === "bgImage"), Pt = () => {
1043
+ var P;
1044
+ const { isHeader: e, isFooter: a, isPage: o, isComponent: n } = tt(), { query: r } = W(), l = r.node("ROOT").get(), s = ((P = l == null ? void 0 : l.data) == null ? void 0 : P.nodes) || [], i = s.some((g) => {
1045
+ var m, u;
1046
+ const w = r.node(g).get();
1047
+ return ((u = (m = w == null ? void 0 : w.data) == null ? void 0 : m.props) == null ? void 0 : u.type) === "header";
1048
+ }), c = s.some((g) => {
1049
+ var m, u;
1050
+ const w = r.node(g).get();
1051
+ return ((u = (m = w == null ? void 0 : w.data) == null ? void 0 : m.props) == null ? void 0 : u.type) === "footer";
1052
+ }), p = !o && !n && !a && (!i || e), y = !o && !n && !e && (!c || a);
1053
+ return !p && !y ? null : /* @__PURE__ */ B(
1054
+ we,
1055
+ {
1056
+ title: "Container Role",
1057
+ icon: /* @__PURE__ */ t(De, {}),
1058
+ help: "Mark this as the site header or footer.",
1059
+ children: [
1060
+ p && /* @__PURE__ */ t(
1061
+ V,
1062
+ {
1063
+ propKey: "type",
1064
+ propType: "component",
1065
+ type: "toggle",
1066
+ option: e ? "This is the Header" : "Make this the Header",
1067
+ on: "header"
1068
+ }
1069
+ ),
1070
+ y && /* @__PURE__ */ t(
1071
+ V,
1072
+ {
1073
+ propKey: "type",
1074
+ propType: "component",
1075
+ type: "toggle",
1076
+ option: a ? "This is the Footer" : "Make this the Footer",
1077
+ on: "footer"
1078
+ }
1079
+ ),
1080
+ /* @__PURE__ */ t("p", { className: "text-neutral-content mt-2 text-xs", children: "Headers and footers are special containers that appear on all pages." })
1081
+ ]
1082
+ }
1083
+ );
1084
+ }, Tt = () => {
1085
+ var n;
1086
+ const a = (n = $e().data) == null ? void 0 : n.props, o = Ge({ propKey: "layoutPreset" });
1087
+ return (a == null ? void 0 : a.type) === "imageContainer" ? /* @__PURE__ */ t(J, { children: je({
1088
+ Content: /* @__PURE__ */ B(we, { collapsible: !1, children: [
1089
+ /* @__PURE__ */ t(Ze, { id: "settings/ai-button" }),
1090
+ /* @__PURE__ */ t(wt, { def: kt })
1091
+ ] }),
1092
+ Type: /* @__PURE__ */ t(We, { lp: o })
1093
+ }) }) : null;
1094
+ }, Vt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1095
+ __proto__: null,
1096
+ ContainerMainTab: Tt,
1097
+ HeaderFooterToggles: Pt
1098
+ }, Symbol.toStringTag, { value: "Module" }));
1099
+ export {
1100
+ Vt as C,
1101
+ Ft as L,
1102
+ te as P,
1103
+ wt as a,
1104
+ it as i,
1105
+ Ie as p,
1106
+ dt as r
1107
+ };