@pagehub/sdk 0.1.5 → 0.1.7

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 (142) 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/dist/theme.css +168 -0
  140. package/package.json +25 -14
  141. package/dist/pagehub-viewer.umd.cjs +0 -574
  142. package/dist/pagehub.umd.cjs +0 -1130
@@ -0,0 +1,26 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { W as e, e4 as a } from "./index-C66dAl3Q.js";
3
+ import { F as o } from "./FloatingPanel-DJP5Vhua.js";
4
+ import { a as r } from "./AnimationsInput-Djyz0uXG.js";
5
+ function f({ initialPosition: t, onClose: n }) {
6
+ return /* @__PURE__ */ i(
7
+ o,
8
+ {
9
+ isOpen: !0,
10
+ onClose: n,
11
+ title: "Animation",
12
+ icon: /* @__PURE__ */ i(a, { "aria-hidden": !0 }),
13
+ storageKey: "effects-builder-animation",
14
+ minWidth: 320,
15
+ maxWidth: 520,
16
+ minHeight: 300,
17
+ initialPosition: t,
18
+ zIndex: e,
19
+ scrollable: !0,
20
+ children: /* @__PURE__ */ i(r, {})
21
+ }
22
+ );
23
+ }
24
+ export {
25
+ f as default
26
+ };
@@ -0,0 +1,292 @@
1
+ import { jsxs as l, Fragment as y, jsx as e } from "react/jsx-runtime";
2
+ import { useNode as L, useEditor as K } from "@craftjs/core";
3
+ import C, { useState as U } from "react";
4
+ import { eH as T, w as _, n as i, eI as G, d9 as k, d8 as H, eJ as j, T as M, eK as z } from "./index-C66dAl3Q.js";
5
+ const B = [
6
+ { value: "", label: "Default" },
7
+ { value: "easeOut", label: "Ease Out" },
8
+ { value: "easeIn", label: "Ease In" },
9
+ { value: "easeInOut", label: "Ease In Out" },
10
+ { value: "linear", label: "Linear" },
11
+ { value: "spring", label: "Spring" }
12
+ ], $ = [
13
+ { value: "", label: "Default" },
14
+ { value: "scroll", label: "On Scroll" },
15
+ { value: "load", label: "On Load" },
16
+ { value: "hover", label: "On Hover" }
17
+ ], q = [
18
+ { value: "", label: "Default" },
19
+ { value: "scroll", label: "On Scroll" },
20
+ { value: "load", label: "On Load" },
21
+ { value: "hover", label: "On Hover" }
22
+ ], f = [
23
+ "animationDuration",
24
+ "animationDelay",
25
+ "animationEasing",
26
+ "animationTrigger",
27
+ "animationLoop",
28
+ "animationStagger",
29
+ "animationExit"
30
+ ], J = Object.entries(T).reduce(
31
+ (a, [s, r]) => (a[r.group] || (a[r.group] = []), a[r.group].push({ key: s, ...r }), a),
32
+ {}
33
+ ), R = [
34
+ { value: "early", label: "Early (0–33%)", start: 0, end: 33 },
35
+ { value: "middle", label: "Middle (25–66%)", start: 25, end: 66 },
36
+ { value: "late", label: "Late (50–100%)", start: 50, end: 100 },
37
+ { value: "full", label: "Full (0–100%)", start: 0, end: 100 }
38
+ ];
39
+ function Y() {
40
+ var r, d, v, b;
41
+ const { id: a } = L(), { query: s } = K();
42
+ try {
43
+ const p = s.node(a).get();
44
+ let u = (r = p == null ? void 0 : p.data) == null ? void 0 : r.parent;
45
+ for (; u; ) {
46
+ const c = s.node(u).get();
47
+ if (((v = (d = c == null ? void 0 : c.data) == null ? void 0 : d.props) == null ? void 0 : v.scrollEffect) === "scroll-timeline") return !0;
48
+ u = (b = c == null ? void 0 : c.data) == null ? void 0 : b.parent;
49
+ }
50
+ } catch {
51
+ }
52
+ return !1;
53
+ }
54
+ const Z = () => {
55
+ var S, I, w, O, N, E, P, D;
56
+ const {
57
+ props: a,
58
+ actions: { setProp: s }
59
+ } = L((o) => {
60
+ var n;
61
+ return {
62
+ props: (n = o.data) == null ? void 0 : n.props
63
+ };
64
+ }), r = Y(), d = (S = a.root) == null ? void 0 : S.scrollTimeline, [v, b] = U(0), p = ((I = a.root) == null ? void 0 : I.animation) || "", u = !!p, c = f.some((o) => {
65
+ var n;
66
+ return (n = a.root) == null ? void 0 : n[o];
67
+ }), g = ((w = a.root) == null ? void 0 : w.animationEngine) || "css", m = g === "css", F = (o) => {
68
+ s((n) => {
69
+ n.root || (n.root = {}), n.root.animationEngine = o, n.root.animation = "", f.forEach((t) => {
70
+ delete n.root[t];
71
+ });
72
+ });
73
+ }, A = () => {
74
+ s((o) => {
75
+ f.forEach((n) => {
76
+ delete o.root[n];
77
+ });
78
+ });
79
+ }, h = m && ((O = T[p]) == null ? void 0 : O.trigger) === "hover", x = m && ((N = T[p]) == null ? void 0 : N.trigger) === "continuous";
80
+ return /* @__PURE__ */ l(y, { children: [
81
+ r && /* @__PURE__ */ l(
82
+ _,
83
+ {
84
+ enabled: !0,
85
+ title: "Scroll Timeline",
86
+ icon: /* @__PURE__ */ e(G, {}),
87
+ help: "Animate this element as the parent section scrolls. Pick what happens and when.",
88
+ children: [
89
+ /* @__PURE__ */ l(
90
+ i,
91
+ {
92
+ propKey: "root.scrollTimeline.preset",
93
+ propType: "component",
94
+ type: "select",
95
+ label: "Animation",
96
+ children: [
97
+ /* @__PURE__ */ e("option", { value: "", children: "None" }),
98
+ /* @__PURE__ */ e("option", { value: "fadeIn", children: "Fade In" }),
99
+ /* @__PURE__ */ e("option", { value: "fadeOut", children: "Fade Out" }),
100
+ /* @__PURE__ */ e("option", { value: "scaleUp", children: "Scale Up" }),
101
+ /* @__PURE__ */ e("option", { value: "slideLeft", children: "Slide from Right" }),
102
+ /* @__PURE__ */ e("option", { value: "slideRight", children: "Slide from Left" }),
103
+ /* @__PURE__ */ e("option", { value: "slideUp", children: "Slide Up" }),
104
+ /* @__PURE__ */ e("option", { value: "slideDown", children: "Slide Down" }),
105
+ /* @__PURE__ */ e("option", { value: "rotateIn", children: "Rotate In" }),
106
+ /* @__PURE__ */ e("option", { value: "fadeScale", children: "Fade + Scale" }),
107
+ /* @__PURE__ */ e("option", { value: "slideRotate", children: "Slide + Rotate" })
108
+ ]
109
+ }
110
+ ),
111
+ (d == null ? void 0 : d.preset) && /* @__PURE__ */ e(
112
+ i,
113
+ {
114
+ propKey: "root.scrollTimeline._timing",
115
+ propType: "component",
116
+ type: "select",
117
+ label: "Timing",
118
+ onChange: (o) => {
119
+ const n = R.find((t) => t.value === o);
120
+ n && s((t) => {
121
+ t.root || (t.root = {}), t.root.scrollTimeline || (t.root.scrollTimeline = {}), t.root.scrollTimeline.startProgress = n.start, t.root.scrollTimeline.endProgress = n.end, t.root.scrollTimeline._timing = o;
122
+ });
123
+ },
124
+ children: R.map((o) => /* @__PURE__ */ e("option", { value: o.value, children: o.label }, o.value))
125
+ }
126
+ )
127
+ ]
128
+ }
129
+ ),
130
+ /* @__PURE__ */ l(y, { children: [
131
+ /* @__PURE__ */ e("div", { className: "border-base-300 bg-base-200/40 mb-3 flex h-32 items-center justify-center overflow-hidden rounded-xl border", children: u ? (() => {
132
+ var n;
133
+ const o = k({}, a);
134
+ return (n = o.className) != null && n.includes("ph-anim-scroll") && (o.className = o.className.replace("ph-anim-scroll", "").trim() + " ph-in-view", delete o.ref), C.createElement(
135
+ H(a, "div"),
136
+ { ...o, key: `${p}-${v}` },
137
+ /* @__PURE__ */ l(
138
+ "button",
139
+ {
140
+ type: "button",
141
+ onClick: () => b((t) => t + 1),
142
+ className: "border-base-300 bg-base-100 text-base-content hover:border-primary group flex size-16 cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border shadow-sm transition-colors",
143
+ "aria-label": "Replay animation",
144
+ children: [
145
+ /* @__PURE__ */ e(
146
+ j,
147
+ {
148
+ className: "text-neutral-content group-hover:text-primary size-4 transition-colors",
149
+ "aria-hidden": !0
150
+ }
151
+ ),
152
+ /* @__PURE__ */ e("span", { className: "text-[10px] font-medium tracking-wide uppercase", children: "Replay" })
153
+ ]
154
+ }
155
+ )
156
+ );
157
+ })() : /* @__PURE__ */ l("div", { className: "text-neutral-content flex flex-col items-center gap-1.5 text-xs", children: [
158
+ /* @__PURE__ */ e("div", { className: "border-base-300 bg-base-100 size-16 rounded-lg border border-dashed" }),
159
+ /* @__PURE__ */ e("span", { children: "Pick an animation to preview" })
160
+ ] }) }),
161
+ /* @__PURE__ */ e("div", { className: "mb-2", children: /* @__PURE__ */ e(
162
+ M,
163
+ {
164
+ dense: !0,
165
+ "aria-label": "Animation engine",
166
+ value: g,
167
+ onChange: F,
168
+ options: [
169
+ { value: "css", label: "CSS / Tailwind" },
170
+ { value: "framer", label: "Framer Motion" }
171
+ ]
172
+ }
173
+ ) }),
174
+ g === "css" ? (
175
+ /* ── CSS / Tailwind presets ─────────────────────────────────── */
176
+ /* @__PURE__ */ l(i, { propType: "root", propKey: "animation", type: "select", label: "Type", children: [
177
+ /* @__PURE__ */ e("option", { value: "", children: "None" }),
178
+ Object.entries(J).map(([o, n]) => /* @__PURE__ */ e("optgroup", { label: o, children: n.map((t) => /* @__PURE__ */ e("option", { value: t.key, children: t.label }, t.key)) }, o))
179
+ ] })
180
+ ) : (
181
+ /* ── Framer Motion presets ──────────────────────────────────── */
182
+ /* @__PURE__ */ l(i, { propType: "root", propKey: "animation", type: "select", label: "Type", children: [
183
+ /* @__PURE__ */ e("option", { value: "", children: "None" }),
184
+ /* @__PURE__ */ l("optgroup", { label: "Entrance", children: [
185
+ /* @__PURE__ */ e("option", { value: "fadeIn", children: "Fade In" }),
186
+ /* @__PURE__ */ e("option", { value: "fadeUp", children: "Fade Up" }),
187
+ /* @__PURE__ */ e("option", { value: "fadeDown", children: "Fade Down" }),
188
+ /* @__PURE__ */ e("option", { value: "fadeLeft", children: "Fade Left" }),
189
+ /* @__PURE__ */ e("option", { value: "fadeRight", children: "Fade Right" }),
190
+ /* @__PURE__ */ e("option", { value: "scaleUp", children: "Scale Up" }),
191
+ /* @__PURE__ */ e("option", { value: "blurIn", children: "Blur In" }),
192
+ /* @__PURE__ */ e("option", { value: "slideUp", children: "Slide Up" }),
193
+ /* @__PURE__ */ e("option", { value: "flipIn", children: "Flip In" }),
194
+ /* @__PURE__ */ e("option", { value: "spring", children: "Spring" })
195
+ ] }),
196
+ /* @__PURE__ */ l("optgroup", { label: "Hover", children: [
197
+ /* @__PURE__ */ e("option", { value: "hoverGrow", children: "Grow on Hover" }),
198
+ /* @__PURE__ */ e("option", { value: "hoverLift", children: "Lift on Hover" }),
199
+ /* @__PURE__ */ e("option", { value: "hoverGlow", children: "Glow on Hover" }),
200
+ /* @__PURE__ */ e("option", { value: "press", children: "Press" })
201
+ ] }),
202
+ /* @__PURE__ */ l("optgroup", { label: "Continuous", children: [
203
+ /* @__PURE__ */ e("option", { value: "tween", children: "Tween" }),
204
+ /* @__PURE__ */ e("option", { value: "bounce", children: "Bounce" })
205
+ ] })
206
+ ] })
207
+ ),
208
+ u && /* @__PURE__ */ l(y, { children: [
209
+ /* @__PURE__ */ e(
210
+ i,
211
+ {
212
+ propType: "root",
213
+ propKey: "animationDuration",
214
+ type: "slider",
215
+ label: "Duration",
216
+ min: 0.1,
217
+ max: 2,
218
+ step: 0.1,
219
+ append: /* @__PURE__ */ l("span", { className: "text-neutral-content w-8 text-right text-[10px]", children: [
220
+ ((E = a.root) == null ? void 0 : E.animationDuration) || "—",
221
+ "s"
222
+ ] })
223
+ }
224
+ ),
225
+ !h && /* @__PURE__ */ e(
226
+ i,
227
+ {
228
+ propType: "root",
229
+ propKey: "animationDelay",
230
+ type: "slider",
231
+ label: "Delay",
232
+ min: 0,
233
+ max: 1,
234
+ step: 0.05,
235
+ append: /* @__PURE__ */ l("span", { className: "text-neutral-content w-8 text-right text-[10px]", children: [
236
+ ((P = a.root) == null ? void 0 : P.animationDelay) || "0",
237
+ "s"
238
+ ] })
239
+ }
240
+ ),
241
+ !h && /* @__PURE__ */ e(i, { propType: "root", propKey: "animationEasing", type: "select", label: "Easing", children: B.map((o) => /* @__PURE__ */ e("option", { value: o.value, children: o.label }, o.value)) }),
242
+ !h && !x && /* @__PURE__ */ e(i, { propType: "root", propKey: "animationTrigger", type: "select", label: "Trigger", children: (m ? q : $).map((o) => /* @__PURE__ */ e("option", { value: o.value, children: o.label }, o.value)) }),
243
+ !h && /* @__PURE__ */ l(i, { propType: "root", propKey: "animationLoop", type: "select", label: "Repeat", children: [
244
+ /* @__PURE__ */ e("option", { value: "", children: "Play Once" }),
245
+ /* @__PURE__ */ e("option", { value: "loop", children: "Loop" }),
246
+ /* @__PURE__ */ e("option", { value: "2", children: "2×" }),
247
+ /* @__PURE__ */ e("option", { value: "3", children: "3×" })
248
+ ] }),
249
+ !m && /* @__PURE__ */ e(
250
+ i,
251
+ {
252
+ propType: "root",
253
+ propKey: "animationStagger",
254
+ type: "slider",
255
+ label: "Stagger",
256
+ min: 0,
257
+ max: 0.5,
258
+ step: 0.02,
259
+ append: /* @__PURE__ */ l("span", { className: "text-neutral-content w-8 text-right text-[10px]", children: [
260
+ ((D = a.root) == null ? void 0 : D.animationStagger) || "0",
261
+ "s"
262
+ ] })
263
+ }
264
+ ),
265
+ !m && !h && !x && /* @__PURE__ */ l(i, { propType: "root", propKey: "animationExit", type: "select", label: "Exit", children: [
266
+ /* @__PURE__ */ e("option", { value: "", children: "None" }),
267
+ /* @__PURE__ */ e("option", { value: "fadeOut", children: "Fade Out" }),
268
+ /* @__PURE__ */ e("option", { value: "fadeDown", children: "Fade Down" }),
269
+ /* @__PURE__ */ e("option", { value: "fadeUp", children: "Fade Up" }),
270
+ /* @__PURE__ */ e("option", { value: "scaleDown", children: "Scale Down" }),
271
+ /* @__PURE__ */ e("option", { value: "blurOut", children: "Blur Out" })
272
+ ] }),
273
+ c && /* @__PURE__ */ l(
274
+ "button",
275
+ {
276
+ type: "button",
277
+ onClick: A,
278
+ className: "text-neutral-content hover:bg-neutral hover:text-base-content mt-1 flex w-full items-center justify-center gap-1.5 rounded-md px-2 py-1 text-[11px] transition-colors",
279
+ children: [
280
+ /* @__PURE__ */ e(z, { size: 12 }),
281
+ "Reset to defaults"
282
+ ]
283
+ }
284
+ )
285
+ ] })
286
+ ] })
287
+ ] });
288
+ };
289
+ export {
290
+ f as A,
291
+ Z as a
292
+ };
@@ -0,0 +1,71 @@
1
+ import { jsxs as C, Fragment as I, jsx as n } from "react/jsx-runtime";
2
+ import { useNode as N } from "@craftjs/core";
3
+ import { useState as E, Suspense as k, lazy as T } from "react";
4
+ import { G as z, C as O, e4 as j, eH as L } from "./index-C66dAl3Q.js";
5
+ import { A as S } from "./AnimationsInput-Djyz0uXG.js";
6
+ import { u as _ } from "./usePopoverAutoOpen-CxIjt0ez.js";
7
+ import { u as F } from "./usePopoverPosition-83Vti7Aw.js";
8
+ const H = T(() => import("./AnimationsPanel-DungA9qb.js")), M = 360;
9
+ function R(e, t) {
10
+ if (!e) return "Add Animation…";
11
+ const o = L[e];
12
+ return o != null && o.label ? o.label : t === "framer" ? `Framer: ${e}` : e;
13
+ }
14
+ function q({ def: e }) {
15
+ const [t, o] = E(!1), { triggerRef: s, initialPos: f, setInitialPos: A, computePosition: b } = F(M), {
16
+ actions: { setProp: P },
17
+ id: g,
18
+ animation: l,
19
+ engine: h
20
+ } = N((i) => {
21
+ var a, c, m, p, u, d;
22
+ return {
23
+ id: i.id,
24
+ animation: ((m = (c = (a = i.data) == null ? void 0 : a.props) == null ? void 0 : c.root) == null ? void 0 : m.animation) || "",
25
+ engine: ((d = (u = (p = i.data) == null ? void 0 : p.props) == null ? void 0 : u.root) == null ? void 0 : d.animationEngine) || "css"
26
+ };
27
+ }), y = R(l, h), v = !l, r = () => {
28
+ A(b()), o(!0);
29
+ };
30
+ _({ nodeId: g, defId: e == null ? void 0 : e.id, onOpen: r });
31
+ const x = () => {
32
+ P((i) => {
33
+ i.root && (i.root.animation = "", S.forEach((a) => {
34
+ delete i.root[a];
35
+ }));
36
+ });
37
+ };
38
+ return /* @__PURE__ */ C(I, { children: [
39
+ v ? /* @__PURE__ */ n(
40
+ "button",
41
+ {
42
+ ref: s,
43
+ type: "button",
44
+ onClick: () => t ? o(!1) : r(),
45
+ "aria-expanded": t,
46
+ "aria-label": "Add animation",
47
+ className: "text-neutral-content hover:text-base-content hover:bg-base-200 flex size-4 shrink-0 items-center justify-center rounded-md opacity-70 transition-[color,background-color,opacity] hover:opacity-100",
48
+ children: /* @__PURE__ */ n(z, { className: "size-3.5", "aria-hidden": !0 })
49
+ }
50
+ ) : /* @__PURE__ */ n(
51
+ O,
52
+ {
53
+ mode: "popover",
54
+ ref: s,
55
+ open: t,
56
+ onTriggerClick: () => t ? o(!1) : r(),
57
+ onClear: () => {
58
+ t && o(!1), x();
59
+ },
60
+ triggerAriaLabel: "Edit animation",
61
+ clearAriaLabel: "Clear animation",
62
+ leading: /* @__PURE__ */ n(j, { className: "size-3.5", "aria-hidden": !0 }),
63
+ summary: y
64
+ }
65
+ ),
66
+ t && /* @__PURE__ */ n(k, { fallback: null, children: /* @__PURE__ */ n(H, { initialPosition: f, onClose: () => o(!1) }) })
67
+ ] });
68
+ }
69
+ export {
70
+ q as default
71
+ };
@@ -0,0 +1,25 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { F as a } from "./FloatingPanel-DJP5Vhua.js";
3
+ import { a as o } from "./AnimationsInput-Djyz0uXG.js";
4
+ import { W as r } from "./index-C66dAl3Q.js";
5
+ function p({ initialPosition: t, onClose: n }) {
6
+ return /* @__PURE__ */ i(
7
+ a,
8
+ {
9
+ isOpen: !0,
10
+ onClose: n,
11
+ title: "Animation",
12
+ storageKey: "animations-input",
13
+ minWidth: 320,
14
+ maxWidth: 520,
15
+ minHeight: 300,
16
+ initialPosition: t,
17
+ zIndex: r,
18
+ scrollable: !0,
19
+ children: /* @__PURE__ */ i(o, {})
20
+ }
21
+ );
22
+ }
23
+ export {
24
+ p as default
25
+ };
@@ -0,0 +1,22 @@
1
+ import { cY as e, cZ as p, c_ as c, c$ as t } from "./index-C66dAl3Q.js";
2
+ const l = (d) => {
3
+ var a;
4
+ const n = {
5
+ controls: !0,
6
+ autoPlay: !1,
7
+ loop: !1,
8
+ ...d
9
+ }, s = e(), o = p(), i = c({
10
+ id: (o == null ? void 0 : o.id) ?? "",
11
+ isCanvas: (o == null ? void 0 : o.isCanvas) ?? !1,
12
+ hasChildNodes: (((a = o == null ? void 0 : o.childIds) == null ? void 0 : a.length) ?? 0) > 0,
13
+ displayName: (o == null ? void 0 : o.displayName) ?? "Audio",
14
+ rootProps: (s == null ? void 0 : s.rootProps) ?? {},
15
+ pageMedia: (s == null ? void 0 : s.pageMedia) ?? null,
16
+ pageIndex: (s == null ? void 0 : s.pageIndex) ?? {}
17
+ });
18
+ return t(n, i);
19
+ };
20
+ export {
21
+ l as AudioRender
22
+ };
@@ -0,0 +1,70 @@
1
+ import { jsxs as t, Fragment as l, jsx as e } from "react/jsx-runtime";
2
+ import { w as p, n as o } from "./index-C66dAl3Q.js";
3
+ import { r } from "./helpers-Cll72tMn.js";
4
+ import { S as i } from "./SlotRenderer-CaLf_2_C.js";
5
+ const d = () => r({
6
+ Content: /* @__PURE__ */ t(l, { children: [
7
+ /* @__PURE__ */ t(p, { collapsible: !1, children: [
8
+ /* @__PURE__ */ e(
9
+ o,
10
+ {
11
+ propKey: "src",
12
+ propType: "component",
13
+ type: "text",
14
+ label: "URL",
15
+ labelHide: !0,
16
+ placeholder: "https://example.com/audio.mp3"
17
+ }
18
+ ),
19
+ /* @__PURE__ */ e(i, { id: "settings/ai-button" })
20
+ ] }),
21
+ /* @__PURE__ */ t(p, { title: "Playback Options", help: "Controls, autoplay, and loop settings.", children: [
22
+ /* @__PURE__ */ e(
23
+ o,
24
+ {
25
+ propKey: "controls",
26
+ propType: "component",
27
+ type: "checkbox",
28
+ label: "Show Controls",
29
+ labelWidth: "w-full",
30
+ inputWidth: "w-fit"
31
+ }
32
+ ),
33
+ /* @__PURE__ */ e(
34
+ o,
35
+ {
36
+ propKey: "autoPlay",
37
+ propType: "component",
38
+ type: "checkbox",
39
+ label: "Autoplay",
40
+ labelWidth: "w-full",
41
+ inputWidth: "w-fit"
42
+ }
43
+ ),
44
+ /* @__PURE__ */ e(
45
+ o,
46
+ {
47
+ propKey: "loop",
48
+ propType: "component",
49
+ type: "checkbox",
50
+ label: "Loop",
51
+ labelWidth: "w-full",
52
+ inputWidth: "w-fit"
53
+ }
54
+ )
55
+ ] }),
56
+ /* @__PURE__ */ e(p, { title: "Accessibility", help: "Title for screen readers.", children: /* @__PURE__ */ e(
57
+ o,
58
+ {
59
+ propKey: "title",
60
+ propType: "component",
61
+ type: "text",
62
+ label: "Title",
63
+ placeholder: "Audio description"
64
+ }
65
+ ) })
66
+ ] })
67
+ });
68
+ export {
69
+ d as AudioMainTab
70
+ };
@@ -0,0 +1,26 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { W as t, e3 as a } from "./index-C66dAl3Q.js";
3
+ import { F as o } from "./FloatingPanel-DJP5Vhua.js";
4
+ import { B as d } from "./EffectsClassInput-Yujuchwy.js";
5
+ function p({ initialPosition: e, onClose: i }) {
6
+ return /* @__PURE__ */ r(
7
+ o,
8
+ {
9
+ isOpen: !0,
10
+ onClose: i,
11
+ title: "Backdrop Filter",
12
+ icon: /* @__PURE__ */ r(a, { "aria-hidden": !0 }),
13
+ storageKey: "effects-builder-backdrop",
14
+ minWidth: 300,
15
+ maxWidth: 480,
16
+ minHeight: 300,
17
+ initialPosition: e,
18
+ zIndex: t,
19
+ scrollable: !0,
20
+ children: /* @__PURE__ */ r(d, {})
21
+ }
22
+ );
23
+ }
24
+ export {
25
+ p as default
26
+ };
@@ -0,0 +1,94 @@
1
+ import { jsxs as w, Fragment as z, jsx as a } from "react/jsx-runtime";
2
+ import { useEditor as E, useNode as j } from "@craftjs/core";
3
+ import { useState as k, useMemo as B, Suspense as C, lazy as S } from "react";
4
+ import { _ as H, aP as R, aQ as D, aR as F, C as O, F as Q, eP as U, a0 as W } from "./index-C66dAl3Q.js";
5
+ import { u as q } from "./usePopoverAutoOpen-CxIjt0ez.js";
6
+ import { u as y } from "./usePopoverPosition-83Vti7Aw.js";
7
+ const G = S(() => import("./BackgroundImagePanel-BvMhF9eU.js")), $ = S(() => import("./ImageSettingsPanel-dvOmGg3C.js")), J = 480, K = 360;
8
+ function ae({ def: o }) {
9
+ var b;
10
+ const [s, i] = k(!1), [p, c] = k(!1), r = y(J), l = y(K), { query: u } = E(), {
11
+ actions: { setProp: T },
12
+ id: x,
13
+ background: m
14
+ } = j((t) => {
15
+ var h, v;
16
+ return {
17
+ id: t.id,
18
+ background: (v = (h = t.data) == null ? void 0 : h.props) == null ? void 0 : v.background
19
+ };
20
+ }), { pageMedia: A } = B(() => H(u), [u]), d = m == null ? void 0 : m.image, n = !!d, e = n ? R(u, d) : null, f = (e == null ? void 0 : e.type) === "svg", I = f ? (b = e == null ? void 0 : e.metadata) == null ? void 0 : b.svg : null;
21
+ let g = null;
22
+ if (n && !f)
23
+ if ((e == null ? void 0 : e.type) === "cdn") {
24
+ const t = e.cdnId || e.id;
25
+ g = D(t, { width: 600, format: "auto" });
26
+ } else
27
+ g = F(A, d);
28
+ const P = () => {
29
+ r.setInitialPos(r.computePosition()), i(!0);
30
+ }, N = () => {
31
+ l.setInitialPos(l.computePosition()), c(!0);
32
+ };
33
+ q({ nodeId: x, defId: o == null ? void 0 : o.id, onOpen: P });
34
+ const L = () => {
35
+ T((t) => {
36
+ t.background || (t.background = {}), t.background.image = null, t.background.imageType = "cdn";
37
+ });
38
+ }, _ = (o == null ? void 0 : o.label) ?? "Image";
39
+ return /* @__PURE__ */ w(z, { children: [
40
+ /* @__PURE__ */ a(
41
+ O,
42
+ {
43
+ mode: "popover",
44
+ ref: r.triggerRef,
45
+ label: _,
46
+ open: s,
47
+ onTriggerClick: () => s ? i(!1) : P(),
48
+ onClear: () => {
49
+ s && i(!1), p && c(!1), L();
50
+ },
51
+ triggerAriaLabel: n ? "Change image" : "Add image",
52
+ clearAriaLabel: "Clear image",
53
+ variant: n ? "preview" : "default",
54
+ leading: n ? I ? /* @__PURE__ */ a(
55
+ "span",
56
+ {
57
+ className: "text-base-content absolute inset-0 flex items-center justify-center [&>svg]:size-full [&>svg]:max-h-full [&>svg]:max-w-full",
58
+ dangerouslySetInnerHTML: { __html: I },
59
+ "aria-hidden": !0
60
+ }
61
+ ) : /* @__PURE__ */ a(
62
+ "span",
63
+ {
64
+ className: "absolute inset-0 bg-cover bg-center",
65
+ style: g ? { backgroundImage: `url(${g})` } : void 0,
66
+ "aria-hidden": !0
67
+ }
68
+ ) : /* @__PURE__ */ a(W, { className: "size-3.5", "aria-hidden": !0 }),
69
+ summary: n ? null : "Add...",
70
+ trailingExtras: n ? /* @__PURE__ */ a(
71
+ Q,
72
+ {
73
+ ref: l.triggerRef,
74
+ ariaLabel: "Image settings",
75
+ tooltip: "Image settings",
76
+ onClick: N,
77
+ children: /* @__PURE__ */ a(U, { className: "size-3.5", "aria-hidden": !0 })
78
+ }
79
+ ) : null
80
+ }
81
+ ),
82
+ s && /* @__PURE__ */ a(C, { fallback: null, children: /* @__PURE__ */ a(G, { initialPosition: r.initialPos, onClose: () => i(!1) }) }),
83
+ p && /* @__PURE__ */ a(C, { fallback: null, children: /* @__PURE__ */ a(
84
+ $,
85
+ {
86
+ initialPosition: l.initialPos,
87
+ onClose: () => c(!1)
88
+ }
89
+ ) })
90
+ ] });
91
+ }
92
+ export {
93
+ ae as default
94
+ };