pagiera 0.2.0-alpha.33

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 (192) hide show
  1. package/README.md +528 -0
  2. package/dist/adapters.d.ts +89 -0
  3. package/dist/adapters.d.ts.map +1 -0
  4. package/dist/adapters.js +2 -0
  5. package/dist/adapters.js.map +1 -0
  6. package/dist/client.d.ts +22 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +33 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/data.js +210 -0
  11. package/dist/data.js.map +7 -0
  12. package/dist/document.d.ts +63 -0
  13. package/dist/document.d.ts.map +1 -0
  14. package/dist/document.js +25 -0
  15. package/dist/document.js.map +1 -0
  16. package/dist/editor.d.ts +14 -0
  17. package/dist/editor.d.ts.map +1 -0
  18. package/dist/editor.js +59 -0
  19. package/dist/editor.js.map +1 -0
  20. package/dist/full-editor.d.ts +53 -0
  21. package/dist/full-editor.js +11117 -0
  22. package/dist/full-editor.js.map +7 -0
  23. package/dist/full.css +3498 -0
  24. package/dist/index.d.ts +8 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +7 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/internal/app/api/ai-design/route.d.ts +3 -0
  29. package/dist/internal/app/api/ai-design/route.d.ts.map +1 -0
  30. package/dist/internal/app/api/ai-design/route.js +165 -0
  31. package/dist/internal/app/api/ai-design/route.js.map +1 -0
  32. package/dist/internal/app/p/editor/ai-panel.d.ts +27 -0
  33. package/dist/internal/app/p/editor/ai-panel.d.ts.map +1 -0
  34. package/dist/internal/app/p/editor/ai-panel.js +77 -0
  35. package/dist/internal/app/p/editor/ai-panel.js.map +1 -0
  36. package/dist/internal/app/p/editor/data-modal.d.ts +26 -0
  37. package/dist/internal/app/p/editor/data-modal.d.ts.map +1 -0
  38. package/dist/internal/app/p/editor/data-modal.js +94 -0
  39. package/dist/internal/app/p/editor/data-modal.js.map +1 -0
  40. package/dist/internal/app/p/editor/data-panel.d.ts +18 -0
  41. package/dist/internal/app/p/editor/data-panel.d.ts.map +1 -0
  42. package/dist/internal/app/p/editor/data-panel.js +45 -0
  43. package/dist/internal/app/p/editor/data-panel.js.map +1 -0
  44. package/dist/internal/app/p/editor/editor.d.ts +51 -0
  45. package/dist/internal/app/p/editor/editor.d.ts.map +1 -0
  46. package/dist/internal/app/p/editor/editor.js +1551 -0
  47. package/dist/internal/app/p/editor/editor.js.map +1 -0
  48. package/dist/internal/app/p/editor/fields.d.ts +111 -0
  49. package/dist/internal/app/p/editor/fields.d.ts.map +1 -0
  50. package/dist/internal/app/p/editor/fields.js +141 -0
  51. package/dist/internal/app/p/editor/fields.js.map +1 -0
  52. package/dist/internal/app/p/editor/inspector.d.ts +38 -0
  53. package/dist/internal/app/p/editor/inspector.d.ts.map +1 -0
  54. package/dist/internal/app/p/editor/inspector.js +336 -0
  55. package/dist/internal/app/p/editor/inspector.js.map +1 -0
  56. package/dist/internal/app/p/editor/library.d.ts +18 -0
  57. package/dist/internal/app/p/editor/library.d.ts.map +1 -0
  58. package/dist/internal/app/p/editor/library.js +61 -0
  59. package/dist/internal/app/p/editor/library.js.map +1 -0
  60. package/dist/internal/app/p/editor/parts.d.ts +75 -0
  61. package/dist/internal/app/p/editor/parts.d.ts.map +1 -0
  62. package/dist/internal/app/p/editor/parts.js +261 -0
  63. package/dist/internal/app/p/editor/parts.js.map +1 -0
  64. package/dist/internal/app/p/editor/templates-panel.d.ts +6 -0
  65. package/dist/internal/app/p/editor/templates-panel.d.ts.map +1 -0
  66. package/dist/internal/app/p/editor/templates-panel.js +12 -0
  67. package/dist/internal/app/p/editor/templates-panel.js.map +1 -0
  68. package/dist/internal/app/p/editor/use-canvas-view.d.ts +24 -0
  69. package/dist/internal/app/p/editor/use-canvas-view.d.ts.map +1 -0
  70. package/dist/internal/app/p/editor/use-canvas-view.js +242 -0
  71. package/dist/internal/app/p/editor/use-canvas-view.js.map +1 -0
  72. package/dist/internal/app/p/editor/use-editor.d.ts +48 -0
  73. package/dist/internal/app/p/editor/use-editor.d.ts.map +1 -0
  74. package/dist/internal/app/p/editor/use-editor.js +224 -0
  75. package/dist/internal/app/p/editor/use-editor.js.map +1 -0
  76. package/dist/internal/app/p/editor/variables-panel.d.ts +8 -0
  77. package/dist/internal/app/p/editor/variables-panel.d.ts.map +1 -0
  78. package/dist/internal/app/p/editor/variables-panel.js +52 -0
  79. package/dist/internal/app/p/editor/variables-panel.js.map +1 -0
  80. package/dist/internal/components/ui/select.d.ts +12 -0
  81. package/dist/internal/components/ui/select.d.ts.map +1 -0
  82. package/dist/internal/components/ui/select.js +32 -0
  83. package/dist/internal/components/ui/select.js.map +1 -0
  84. package/dist/internal/drizzle/index.d.ts +6 -0
  85. package/dist/internal/drizzle/index.d.ts.map +1 -0
  86. package/dist/internal/drizzle/index.js +20 -0
  87. package/dist/internal/drizzle/index.js.map +1 -0
  88. package/dist/internal/drizzle/schema.d.ts +405 -0
  89. package/dist/internal/drizzle/schema.d.ts.map +1 -0
  90. package/dist/internal/drizzle/schema.js +70 -0
  91. package/dist/internal/drizzle/schema.js.map +1 -0
  92. package/dist/internal/lib/data/context.d.ts +8 -0
  93. package/dist/internal/lib/data/context.d.ts.map +1 -0
  94. package/dist/internal/lib/data/context.js +17 -0
  95. package/dist/internal/lib/data/context.js.map +1 -0
  96. package/dist/internal/lib/data/source.d.ts +54 -0
  97. package/dist/internal/lib/data/source.d.ts.map +1 -0
  98. package/dist/internal/lib/data/source.js +229 -0
  99. package/dist/internal/lib/data/source.js.map +1 -0
  100. package/dist/internal/lib/editor/ai-types.d.ts +44 -0
  101. package/dist/internal/lib/editor/ai-types.d.ts.map +1 -0
  102. package/dist/internal/lib/editor/ai-types.js +2 -0
  103. package/dist/internal/lib/editor/ai-types.js.map +1 -0
  104. package/dist/internal/lib/editor/arrange.d.ts +12 -0
  105. package/dist/internal/lib/editor/arrange.d.ts.map +1 -0
  106. package/dist/internal/lib/editor/arrange.js +72 -0
  107. package/dist/internal/lib/editor/arrange.js.map +1 -0
  108. package/dist/internal/lib/editor/cascade.d.ts +39 -0
  109. package/dist/internal/lib/editor/cascade.d.ts.map +1 -0
  110. package/dist/internal/lib/editor/cascade.js +86 -0
  111. package/dist/internal/lib/editor/cascade.js.map +1 -0
  112. package/dist/internal/lib/editor/icon.d.ts +6 -0
  113. package/dist/internal/lib/editor/icon.d.ts.map +1 -0
  114. package/dist/internal/lib/editor/icon.js +13 -0
  115. package/dist/internal/lib/editor/icon.js.map +1 -0
  116. package/dist/internal/lib/editor/presets.d.ts +10 -0
  117. package/dist/internal/lib/editor/presets.d.ts.map +1 -0
  118. package/dist/internal/lib/editor/presets.js +83 -0
  119. package/dist/internal/lib/editor/presets.js.map +1 -0
  120. package/dist/internal/lib/editor/showcase.d.ts +14 -0
  121. package/dist/internal/lib/editor/showcase.d.ts.map +1 -0
  122. package/dist/internal/lib/editor/showcase.js +219 -0
  123. package/dist/internal/lib/editor/showcase.js.map +1 -0
  124. package/dist/internal/lib/editor/site-templates.d.ts +4 -0
  125. package/dist/internal/lib/editor/site-templates.d.ts.map +1 -0
  126. package/dist/internal/lib/editor/site-templates.js +156 -0
  127. package/dist/internal/lib/editor/site-templates.js.map +1 -0
  128. package/dist/internal/lib/editor/snap.d.ts +34 -0
  129. package/dist/internal/lib/editor/snap.d.ts.map +1 -0
  130. package/dist/internal/lib/editor/snap.js +70 -0
  131. package/dist/internal/lib/editor/snap.js.map +1 -0
  132. package/dist/internal/lib/editor/style.d.ts +53 -0
  133. package/dist/internal/lib/editor/style.d.ts.map +1 -0
  134. package/dist/internal/lib/editor/style.js +313 -0
  135. package/dist/internal/lib/editor/style.js.map +1 -0
  136. package/dist/internal/lib/editor/tree.d.ts +72 -0
  137. package/dist/internal/lib/editor/tree.d.ts.map +1 -0
  138. package/dist/internal/lib/editor/tree.js +301 -0
  139. package/dist/internal/lib/editor/tree.js.map +1 -0
  140. package/dist/internal/lib/editor/types.d.ts +273 -0
  141. package/dist/internal/lib/editor/types.d.ts.map +1 -0
  142. package/dist/internal/lib/editor/types.js +411 -0
  143. package/dist/internal/lib/editor/types.js.map +1 -0
  144. package/dist/internal/lib/editor/validate.d.ts +20 -0
  145. package/dist/internal/lib/editor/validate.d.ts.map +1 -0
  146. package/dist/internal/lib/editor/validate.js +467 -0
  147. package/dist/internal/lib/editor/validate.js.map +1 -0
  148. package/dist/internal/lib/pages.d.ts +83 -0
  149. package/dist/internal/lib/pages.d.ts.map +1 -0
  150. package/dist/internal/lib/pages.js +294 -0
  151. package/dist/internal/lib/pages.js.map +1 -0
  152. package/dist/internal/lib/render/bind.d.ts +18 -0
  153. package/dist/internal/lib/render/bind.d.ts.map +1 -0
  154. package/dist/internal/lib/render/bind.js +28 -0
  155. package/dist/internal/lib/render/bind.js.map +1 -0
  156. package/dist/internal/lib/render/css.d.ts +31 -0
  157. package/dist/internal/lib/render/css.d.ts.map +1 -0
  158. package/dist/internal/lib/render/css.js +239 -0
  159. package/dist/internal/lib/render/css.js.map +1 -0
  160. package/dist/internal/lib/render/load-data.d.ts +15 -0
  161. package/dist/internal/lib/render/load-data.d.ts.map +1 -0
  162. package/dist/internal/lib/render/load-data.js +39 -0
  163. package/dist/internal/lib/render/load-data.js.map +1 -0
  164. package/dist/internal/lib/render/page-render.d.ts +17 -0
  165. package/dist/internal/lib/render/page-render.d.ts.map +1 -0
  166. package/dist/internal/lib/render/page-render.js +117 -0
  167. package/dist/internal/lib/render/page-render.js.map +1 -0
  168. package/dist/internal/lib/utils.d.ts +3 -0
  169. package/dist/internal/lib/utils.d.ts.map +1 -0
  170. package/dist/internal/lib/utils.js +6 -0
  171. package/dist/internal/lib/utils.js.map +1 -0
  172. package/dist/manrope-data.d.ts +3 -0
  173. package/dist/manrope-data.d.ts.map +1 -0
  174. package/dist/manrope-data.js +3 -0
  175. package/dist/manrope-data.js.map +1 -0
  176. package/dist/page.d.ts +9 -0
  177. package/dist/page.d.ts.map +1 -0
  178. package/dist/page.js +148 -0
  179. package/dist/page.js.map +1 -0
  180. package/dist/provider.d.ts +14 -0
  181. package/dist/provider.d.ts.map +1 -0
  182. package/dist/provider.js +45 -0
  183. package/dist/provider.js.map +1 -0
  184. package/dist/runtime.d.ts +8 -0
  185. package/dist/runtime.js +717 -0
  186. package/dist/runtime.js.map +7 -0
  187. package/dist/server.d.ts +31 -0
  188. package/dist/server.js +2267 -0
  189. package/dist/server.js.map +7 -0
  190. package/dist/styles.css +300 -0
  191. package/package.json +94 -0
  192. package/thumbnail.png +0 -0
@@ -0,0 +1,336 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { IconAlignBoxCenterMiddle, IconAlignBoxLeftMiddle, IconAlignBoxRightMiddle, IconArrowsHorizontal, IconArrowsVertical, IconLayoutAlignBottom, IconLayoutAlignTop, IconChevronRight, IconPlus, IconPlayerPlay, IconSparkles, IconX, } from "@tabler/icons-react";
4
+ import { useState } from "react";
5
+ import { usePagieraFonts } from "pagiera/provider";
6
+ import { hasOverride } from "@/lib/editor/style";
7
+ import { ASPECT_RATIOS, ENTRANCES, FONT_STACKS, isContainer, isTextual, SHADOW_PRESETS, } from "@/lib/editor/types";
8
+ import { ColorInput, Group, More, NumberInput, Overridable, Segmented, SelectInput, SizeField, SliderInput, TextArea, TextInput, } from "./fields";
9
+ /**
10
+ * Wraps a control so it shows — and can undo — an override set at the current
11
+ * breakpoint. Every style field goes through this, otherwise there is no way to
12
+ * tell an inherited value from one set here.
13
+ */
14
+ function makeOverridable(ctx) {
15
+ return (keys, node) => (_jsx(Overridable, { overridden: keys.some((key) => hasOverride(ctx.element, ctx.breakpoint, key)), onReset: () => ctx.onReset(keys), children: node }));
16
+ }
17
+ export function Inspector({ tab, ...ctx }) {
18
+ if (tab === "Content")
19
+ return _jsx(ContentTab, { ...ctx });
20
+ if (tab === "Hover")
21
+ return _jsx(HoverTab, { ...ctx });
22
+ if (tab === "Interact")
23
+ return _jsx(InteractionTab, { ...ctx });
24
+ return _jsx(DesignTab, { ...ctx });
25
+ }
26
+ function InteractionTab({ element, elements, onProps }) {
27
+ const interaction = element.interaction;
28
+ const action = interaction?.action ?? "navigate";
29
+ return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx("p", { className: "text-[10px] leading-relaxed text-ed-muted", children: "Create navigation or control another layer. Toggle/show/hide powers menus, dropdowns, accordions and overlays." }), _jsxs(Group, { title: "On click", children: [_jsx(SelectInput, { label: "Action", value: action, options: [{ label: "Navigate", value: "navigate" }, { label: "Scroll to layer", value: "scroll-to" }, { label: "Toggle layer", value: "toggle-layer" }, { label: "Show layer", value: "show-layer" }, { label: "Hide layer", value: "hide-layer" }], onChange: (nextAction) => onProps({ interaction: { trigger: "click", action: nextAction, value: interaction?.value ?? "", target: interaction?.target ?? "_self" } }) }), action === "navigate" ? _jsx(TextInput, { label: "URL", value: interaction?.value ?? "", placeholder: "https://\u2026 or /s/about", onChange: (value) => onProps({ interaction: { trigger: "click", action, value, target: interaction?.target ?? "_self" } }) }) : _jsx(SelectInput, { label: "Target layer", value: interaction?.value ?? "", options: [{ label: "Choose a layer…", value: "" }, ...elements.filter((candidate) => candidate.id !== element.id).map((candidate) => ({ label: candidate.name || candidate.type, value: candidate.id }))], onChange: (value) => onProps({ interaction: { trigger: "click", action, value, target: "_self" } }) }), action === "navigate" && _jsx(SelectInput, { label: "Opens", value: interaction?.target ?? "_self", options: [{ label: "Same tab", value: "_self" }, { label: "New tab", value: "_blank" }], onChange: (target) => onProps({ interaction: { trigger: "click", action, value: interaction?.value ?? "", target } }) }), interaction && _jsx("button", { type: "button", onClick: () => onProps({ interaction: undefined }), className: "self-start rounded-md px-2 py-1 text-[10px] text-ed-faint hover:bg-ed-field hover:text-red-400", children: "Remove interaction" })] })] }));
30
+ }
31
+ /* ------------------------------------------------------------------- design */
32
+ function DesignTab(ctx) {
33
+ const { element } = ctx;
34
+ const ov = makeOverridable(ctx);
35
+ const textual = isTextual(element.type);
36
+ return (_jsxs("div", { className: "flex flex-col divide-y divide-ed-border", children: [_jsx(SizeGroup, { ctx: ctx, ov: ov }), isContainer(element.type) && _jsx(LayoutGroup, { ctx: ctx, ov: ov }), textual && _jsx(TypographyGroup, { ctx: ctx, ov: ov }), _jsx(FillGroup, { ctx: ctx, ov: ov, defaultOpen: !textual }), _jsx(SpacingGroup, { ctx: ctx, ov: ov }), _jsx(EffectsGroup, { ctx: ctx, ov: ov }), _jsx(CompositionGroup, { ctx: ctx, ov: ov }), _jsx(MotionGroup, { ctx: ctx, ov: ov })] }));
37
+ }
38
+ function SizeGroup({ ctx, ov }) {
39
+ const { style, parentLayout, onStyle, onCommitStart, onCommitEnd } = ctx;
40
+ return (_jsxs(Group, { title: "Size", children: [ov(["widthMode", "w"], _jsx(SizeField, { axis: "W", mode: style.widthMode, value: style.w, onMode: (widthMode) => onStyle({ widthMode }), onValue: (w) => onStyle({ w }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), ov(["heightMode", "h"], _jsx(SizeField, { axis: "H", mode: style.heightMode, value: style.h, onMode: (heightMode) => onStyle({ heightMode }), onValue: (h) => onStyle({ h }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), parentLayout === "absolute" && (_jsxs(More, { label: "Position", children: [ov(["x"], _jsx(NumberInput, { label: "X", suffix: "px", value: style.x, onChange: (x) => onStyle({ x }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), ov(["y"], _jsx(NumberInput, { label: "Y", suffix: "px", value: style.y, onChange: (y) => onStyle({ y }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), ov(["constraintX"], _jsx(SelectInput, { label: "Horizontal", value: style.constraintX, options: [
41
+ { label: "Left", value: "start" },
42
+ { label: "Center", value: "center" },
43
+ { label: "Right", value: "end" },
44
+ { label: "Left & right", value: "stretch" },
45
+ ], onChange: (constraintX) => onStyle({ constraintX }) })), ov(["constraintY"], _jsx(SelectInput, { label: "Vertical", value: style.constraintY, options: [
46
+ { label: "Top", value: "start" },
47
+ { label: "Center", value: "center" },
48
+ { label: "Bottom", value: "end" },
49
+ { label: "Top & bottom", value: "stretch" },
50
+ ], onChange: (constraintY) => onStyle({ constraintY }) }))] }))] }));
51
+ }
52
+ function LayoutGroup({ ctx, ov }) {
53
+ const { style, onStyle, element } = ctx;
54
+ const isGrid = element.type === "Grid";
55
+ return (_jsxs(Group, { title: "Layout", children: [ov(["layout"], _jsx(Segmented, { label: "Mode", value: style.layout, options: [
56
+ { label: "Stack", value: "stack" },
57
+ { label: "Free", value: "absolute" },
58
+ ], onChange: (layout) => onStyle({ layout }) })), style.layout === "stack" && (_jsxs(_Fragment, { children: [isGrid
59
+ ? ov(["columns"], _jsx(NumberInput, { label: "Columns", min: 1, max: 12, value: style.columns, onChange: (columns) => onStyle({ columns }) }))
60
+ : ov(["direction"], _jsx(Segmented, { label: "Flow", value: style.direction, options: [
61
+ {
62
+ label: "Row",
63
+ value: "row",
64
+ icon: _jsx(IconArrowsHorizontal, { size: 12 }),
65
+ },
66
+ {
67
+ label: "Column",
68
+ value: "column",
69
+ icon: _jsx(IconArrowsVertical, { size: 12 }),
70
+ },
71
+ ], onChange: (direction) => onStyle({ direction }) })), ov(["gap"], _jsx(NumberInput, { label: "Gap", suffix: "px", min: 0, value: style.gap, onChange: (gap) => onStyle({ gap }) })), _jsxs(More, { label: "Alignment", children: [ov(["align"], _jsx(Segmented, { label: "Align", value: style.align, options: [
72
+ { label: "Start", value: "start" },
73
+ { label: "Center", value: "center" },
74
+ { label: "End", value: "end" },
75
+ { label: "Stretch", value: "stretch" },
76
+ ], onChange: (align) => onStyle({ align }) })), !isGrid &&
77
+ ov(["justify"], _jsx(Segmented, { label: "Spread", value: style.justify, options: [
78
+ { label: "Start", value: "start" },
79
+ { label: "Center", value: "center" },
80
+ { label: "End", value: "end" },
81
+ { label: "Space", value: "between" },
82
+ ], onChange: (justify) => onStyle({ justify }) })), !isGrid &&
83
+ ov(["wrap"], _jsx(Segmented, { label: "Wrap", value: style.wrap ? "on" : "off", options: [
84
+ { label: "Off", value: "off" },
85
+ { label: "On", value: "on" },
86
+ ], onChange: (value) => onStyle({ wrap: value === "on" }) }))] })] }))] }));
87
+ }
88
+ function SpacingGroup({ ctx, ov }) {
89
+ const { style, onStyle } = ctx;
90
+ const uniform = style.padT === style.padR &&
91
+ style.padR === style.padB &&
92
+ style.padB === style.padL;
93
+ return (_jsxs(Group, { title: "Spacing", defaultOpen: false, children: [ov(["padT", "padR", "padB", "padL"], _jsx(NumberInput, { label: uniform ? "Padding" : "Padding (mixed)", suffix: "px", min: 0, value: style.padT, onChange: (value) => onStyle({ padT: value, padR: value, padB: value, padL: value }) })), _jsxs(More, { label: "Per side", children: [ov(["padT"], _jsx(NumberInput, { label: "Top", suffix: "px", min: 0, value: style.padT, onChange: (padT) => onStyle({ padT }) })), ov(["padR"], _jsx(NumberInput, { label: "Right", suffix: "px", min: 0, value: style.padR, onChange: (padR) => onStyle({ padR }) })), ov(["padB"], _jsx(NumberInput, { label: "Bottom", suffix: "px", min: 0, value: style.padB, onChange: (padB) => onStyle({ padB }) })), ov(["padL"], _jsx(NumberInput, { label: "Left", suffix: "px", min: 0, value: style.padL, onChange: (padL) => onStyle({ padL }) }))] })] }));
94
+ }
95
+ const GRADIENT_PRESETS = [
96
+ "linear-gradient(135deg,#6366f1,#a855f7)",
97
+ "linear-gradient(135deg,#0ea5e9,#22d3ee)",
98
+ "linear-gradient(135deg,#f97316,#ef4444)",
99
+ "linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.6))",
100
+ ];
101
+ function FillGroup({ ctx, ov, defaultOpen, }) {
102
+ const { style, onStyle } = ctx;
103
+ return (_jsxs(Group, { title: "Fill", defaultOpen: defaultOpen, children: [ov(["bg"], _jsx(ColorInput, { label: "Background", value: style.bg, placeholder: "transparent", onChange: (bg) => onStyle({ bg }) })), _jsxs(More, { label: "Gradient", children: [_jsxs("div", { className: "flex gap-1", children: [GRADIENT_PRESETS.map((preset) => (_jsx("button", { type: "button", "aria-label": "Apply gradient preset", onClick: () => onStyle({ gradient: preset }), className: "h-5 flex-1 rounded border border-ed-border", style: { backgroundImage: preset } }, preset))), _jsx("button", { type: "button", onClick: () => onStyle({ gradient: "" }), className: "h-5 flex-1 rounded border border-ed-border text-[9px] text-ed-muted hover:text-ed-text", children: "None" })] }), ov(["gradient"], _jsx(TextInput, { label: "Custom", value: style.gradient, placeholder: "linear-gradient(...)", onChange: (gradient) => onStyle({ gradient }) }))] })] }));
104
+ }
105
+ function TypographyGroup({ ctx, ov }) {
106
+ const { style, onStyle } = ctx;
107
+ return (_jsxs(Group, { title: "Text", children: [ov(["color"], _jsx(ColorInput, { label: "Colour", value: style.color, onChange: (color) => onStyle({ color }) })), ov(["fontSize"], _jsx(NumberInput, { label: "Size", suffix: "px", min: 1, value: style.fontSize, onChange: (fontSize) => onStyle({ fontSize }) })), ov(["lineHeight"], _jsx(NumberInput, { label: "Line height", min: 0.5, max: 10, step: 0.05, value: style.lineHeight, onChange: (lineHeight) => onStyle({ lineHeight }) })), " ", ov(["fontWeight"], _jsx(SelectInput, { label: "Weight", value: style.fontWeight, options: [
108
+ { label: "Light", value: "300" },
109
+ { label: "Normal", value: "normal" },
110
+ { label: "Medium", value: "500" },
111
+ { label: "Semibold", value: "600" },
112
+ { label: "Bold", value: "bold" },
113
+ { label: "Black", value: "800" },
114
+ ], onChange: (fontWeight) => onStyle({ fontWeight }) })), ov(["textAlign"], _jsx(Segmented, { label: "Align", value: style.textAlign, options: [
115
+ {
116
+ label: "Left",
117
+ value: "left",
118
+ icon: _jsx(IconAlignBoxLeftMiddle, { size: 12 }),
119
+ },
120
+ {
121
+ label: "Center",
122
+ value: "center",
123
+ icon: _jsx(IconAlignBoxCenterMiddle, { size: 12 }),
124
+ },
125
+ {
126
+ label: "Right",
127
+ value: "right",
128
+ icon: _jsx(IconAlignBoxRightMiddle, { size: 12 }),
129
+ },
130
+ { label: "Justify", value: "justify" },
131
+ ], onChange: (textAlign) => onStyle({ textAlign }) })), _jsxs(More, { children: [ov(["fontFamily"], _jsx(SelectInput, { label: "Font", value: style.fontFamily, options: FONT_STACKS, onChange: (fontFamily) => onStyle({ fontFamily }) })), ov(["letterSpacing"], _jsx(NumberInput, { label: "Tracking", suffix: "px", step: 0.1, value: style.letterSpacing, onChange: (letterSpacing) => onStyle({ letterSpacing }) })), ov(["textTransform"], _jsx(SelectInput, { label: "Case", value: style.textTransform, options: [
132
+ { label: "As typed", value: "none" },
133
+ { label: "UPPERCASE", value: "uppercase" },
134
+ { label: "lowercase", value: "lowercase" },
135
+ { label: "Capitalize", value: "capitalize" },
136
+ ], onChange: (textTransform) => onStyle({ textTransform }) }))] })] }));
137
+ }
138
+ function EffectsGroup({ ctx, ov }) {
139
+ const { style, onStyle, onCommitStart, onCommitEnd } = ctx;
140
+ const knownShadow = SHADOW_PRESETS.some((p) => p.value === style.shadow);
141
+ return (_jsxs(Group, { title: "Effects", defaultOpen: false, children: [ov(["radius"], _jsx(NumberInput, { label: "Corner radius", suffix: "px", min: 0, value: style.radius, onChange: (radius) => onStyle({ radius }) })), ov(["shadow"], _jsx(SelectInput, { label: "Shadow", value: knownShadow ? style.shadow : "custom", options: knownShadow
142
+ ? SHADOW_PRESETS
143
+ : [...SHADOW_PRESETS, { label: "Custom", value: "custom" }], onChange: (shadow) => {
144
+ if (shadow !== "custom")
145
+ onStyle({ shadow });
146
+ } })), ov(["opacity"], _jsx(SliderInput, { label: "Opacity", min: 0, max: 100, suffix: "%", value: style.opacity, onChange: (opacity) => onStyle({ opacity }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), _jsxs(More, { label: "Border and rotation", children: [ov(["borderW"], _jsx(NumberInput, { label: "Border", suffix: "px", min: 0, value: style.borderW, onChange: (borderW) => onStyle({ borderW }) })), ov(["borderStyle"], _jsx(SelectInput, { label: "Style", value: style.borderStyle, options: [
147
+ { label: "Solid", value: "solid" },
148
+ { label: "Dashed", value: "dashed" },
149
+ { label: "Dotted", value: "dotted" },
150
+ ], onChange: (borderStyle) => onStyle({ borderStyle }) })), " ", style.borderW > 0 &&
151
+ ov(["borderC"], _jsx(ColorInput, { label: "Colour", value: style.borderC, onChange: (borderC) => onStyle({ borderC }) })), ov(["rotate"], _jsx(SliderInput, { label: "Rotate", min: -180, max: 180, suffix: "\u00B0", value: style.rotate, onChange: (rotate) => onStyle({ rotate }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd }))] })] }));
152
+ }
153
+ /**
154
+ * The pieces that turn a stack of boxes into a designed page: clipping,
155
+ * sticky rails, imagery, glass and blend effects.
156
+ */
157
+ function CompositionGroup({ ctx, ov }) {
158
+ const { style, onStyle, onCommitStart, onCommitEnd } = ctx;
159
+ return (_jsxs(Group, { title: "Composition", defaultOpen: false, children: [ov(["overflow"], _jsx(SelectInput, { label: "Overflow", value: style.overflow, options: [
160
+ { label: "Visible", value: "visible" },
161
+ { label: "Clip", value: "hidden" },
162
+ { label: "Scroll if needed", value: "auto" },
163
+ { label: "Always scroll", value: "scroll" },
164
+ ], onChange: (overflow) => onStyle({ overflow }) })), ov(["aspectRatio"], _jsx(SelectInput, { label: "Ratio", value: style.aspectRatio, options: ASPECT_RATIOS, onChange: (aspectRatio) => onStyle({ aspectRatio }) })), ov(["position"], _jsx(Segmented, { label: "Pin", value: style.position, options: [
165
+ { label: "Off", value: "static" },
166
+ { label: "Sticky", value: "sticky" },
167
+ ], onChange: (position) => onStyle({ position }) })), style.position === "sticky" &&
168
+ ov(["stickyOffset"], _jsx(NumberInput, { label: "Stops at", suffix: "px", value: style.stickyOffset, onChange: (stickyOffset) => onStyle({ stickyOffset }) })), _jsxs(More, { label: "Image and effects", children: [ov(["bgImage"], _jsx(TextInput, { label: "Image", value: style.bgImage, placeholder: "https://\u2026", onChange: (bgImage) => onStyle({ bgImage }) })), style.bgImage !== "" && (_jsxs(_Fragment, { children: [ov(["bgSize"], _jsx(Segmented, { label: "Fit", value: style.bgSize, options: [
169
+ { label: "Cover", value: "cover" },
170
+ { label: "Contain", value: "contain" },
171
+ { label: "Actual", value: "auto" },
172
+ ], onChange: (bgSize) => onStyle({ bgSize }) })), ov(["bgPosition"], _jsx(TextInput, { label: "Focus", value: style.bgPosition, placeholder: "center", onChange: (bgPosition) => onStyle({ bgPosition }) }))] })), ov(["backdropBlur"], _jsx(SliderInput, { label: "Glass", min: 0, max: 40, suffix: "px", value: style.backdropBlur, onChange: (backdropBlur) => onStyle({ backdropBlur }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), ov(["blur"], _jsx(SliderInput, { label: "Blur", min: 0, max: 40, suffix: "px", value: style.blur, onChange: (blur) => onStyle({ blur }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), ov(["scale"], _jsx(SliderInput, { label: "Scale", min: 10, max: 300, suffix: "%", value: style.scale, onChange: (scale) => onStyle({ scale }), onCommitStart: onCommitStart, onCommitEnd: onCommitEnd })), ov(["blendMode"], _jsx(SelectInput, { label: "Blend", value: style.blendMode, options: [
173
+ { label: "Normal", value: "normal" },
174
+ { label: "Multiply", value: "multiply" },
175
+ { label: "Screen", value: "screen" },
176
+ { label: "Overlay", value: "overlay" },
177
+ { label: "Darken", value: "darken" },
178
+ { label: "Lighten", value: "lighten" },
179
+ { label: "Difference", value: "difference" },
180
+ { label: "Luminosity", value: "luminosity" },
181
+ ], onChange: (blendMode) => onStyle({ blendMode }) }))] })] }));
182
+ }
183
+ /** Entrance effects play on the published page and in Preview, not on canvas. */
184
+ function MotionGroup({ ctx, ov }) {
185
+ const { style, onStyle } = ctx;
186
+ return (_jsxs(Group, { title: "Motion", defaultOpen: false, children: [ov(["entrance"], _jsx(SelectInput, { label: "Entrance", value: style.entrance, options: ENTRANCES, onChange: (entrance) => onStyle({ entrance }) })), style.entrance !== "none" && (_jsxs(_Fragment, { children: [ov(["entranceDuration"], _jsx(NumberInput, { label: "Duration", suffix: "ms", min: 50, max: 5000, step: 50, value: style.entranceDuration, onChange: (entranceDuration) => onStyle({ entranceDuration }) })), ov(["entranceDelay"], _jsx(NumberInput, { label: "Delay", suffix: "ms", min: 0, max: 5000, step: 50, value: style.entranceDelay, onChange: (entranceDelay) => onStyle({ entranceDelay }) })), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: "Plays once as the element scrolls into view. The canvas shows the finished state \u2014 use Preview to watch it." })] }))] }));
187
+ }
188
+ /* ------------------------------------------------------------------ content */
189
+ function ContentTab({ element, onProps, sources, bindingKeys, insideRepeat }) {
190
+ return (_jsxs("div", { className: "flex flex-col divide-y divide-ed-border", children: [(element.type === "Repeat" || element.type === "Request") && (_jsxs(Group, { title: "Data", children: [_jsx(SelectInput, { label: "Source", value: element.sourceId ?? "", options: [
191
+ { label: "Choose a source…", value: "" },
192
+ ...sources.map((s) => ({ label: s.name, value: s.id })),
193
+ ], onChange: (sourceId) => onProps({ sourceId }) }), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: element.type === "Request"
194
+ ? "Fetches on the server and renders its children once with the returned object. Bind child fields such as title or user.name."
195
+ : "Whatever you put inside this block is the template — it renders once per row. Add sources in the Data panel." })] })), !insideRepeat && element.type !== "Repeat" && element.type !== "Request" && (_jsxs(Group, { title: "Request result", children: [_jsx(SelectInput, { label: "Source", value: element.sourceId ?? "", options: [
196
+ { label: "Not connected", value: "" },
197
+ ...sources.map((source) => ({ label: source.name, value: source.id })),
198
+ ], onChange: (sourceId) => onProps({ sourceId: sourceId || undefined, binding: sourceId ? element.binding : undefined }) }), element.sourceId && (bindingKeys.length > 0 ? (_jsx(SelectInput, { label: "Field", value: element.binding ?? "", options: [{ label: "Choose a field…", value: "" }, ...bindingKeys.map((key) => ({ label: key, value: key }))], onChange: (binding) => onProps({ binding: binding || undefined }) })) : (_jsx(TextInput, { label: "Field", value: element.binding ?? "", placeholder: "title, author.name or image.url", onChange: (binding) => onProps({ binding: binding || undefined }) }))), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: "Uses the returned object directly. Repeat is only needed when you want to render every item in a list." })] })), insideRepeat && element.type !== "Repeat" && element.type !== "Request" && (_jsxs(Group, { title: "Bound field", children: [bindingKeys.length > 0 ? (_jsx(SelectInput, { label: "Field", value: element.binding ?? "", options: [
199
+ { label: "Not bound", value: "" },
200
+ ...bindingKeys.map((key) => ({ label: key, value: key })),
201
+ ], onChange: (binding) => onProps({ binding: binding || undefined }) })) : (_jsx(TextInput, { label: "Field", value: element.binding ?? "", placeholder: "title, or author.name", onChange: (binding) => onProps({ binding: binding || undefined }) })), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: element.type === "Image" || element.type === "Video"
202
+ ? "The field supplies this element's source URL."
203
+ : "The field supplies this element's text." })] })), isTextual(element.type) && (_jsx(Group, { title: "Text", children: _jsx(TextArea, { label: "Content", value: element.content ?? "", onChange: (content) => onProps({ content }) }) })), element.type === "Image" && (_jsxs(Group, { title: "Image", children: [_jsx(TextInput, { label: "Source", value: element.src ?? "", placeholder: "https://\u2026", onChange: (src) => onProps({ src }) }), _jsx(TextInput, { label: "Alt text", value: element.alt ?? "", placeholder: "Describes the image", onChange: (alt) => onProps({ alt }) }), _jsx(SelectInput, { label: "Fit", value: element.objectFit ?? "cover", options: [
204
+ { label: "Cover", value: "cover" },
205
+ { label: "Contain", value: "contain" },
206
+ { label: "Stretch", value: "fill" },
207
+ { label: "Original", value: "none" },
208
+ ], onChange: (objectFit) => onProps({ objectFit }) })] })), element.type === "Video" && (_jsxs(Group, { title: "Video", children: [_jsx(TextInput, { label: "Embed URL", value: element.src ?? "", placeholder: "https://www.youtube.com/embed/\u2026", onChange: (src) => onProps({ src }) }), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: "Use the provider's embed URL \u2014 a normal watch link will be refused by the site it points at." })] })), element.type === "Icon" && (_jsx(Group, { title: "Icon", children: _jsx(SelectInput, { label: "Glyph", value: element.iconName ?? "star", options: [
209
+ { label: "Star", value: "star" },
210
+ { label: "Heart", value: "heart" },
211
+ { label: "Arrow right", value: "arrow-right" },
212
+ { label: "Check", value: "check" },
213
+ { label: "Menu", value: "menu" },
214
+ { label: "Search", value: "search" },
215
+ ], onChange: (iconName) => onProps({ iconName }) }) })), _jsxs(Group, { title: "Link", defaultOpen: false, children: [_jsx(TextInput, { label: "URL", value: element.href ?? "", placeholder: "https://\u2026 or /s/about", onChange: (href) => onProps({ href }) }), _jsx(SelectInput, { label: "Opens", value: element.target ?? "_self", options: [
216
+ { label: "Same tab", value: "_self" },
217
+ { label: "New tab", value: "_blank" },
218
+ ], onChange: (target) => onProps({ target }) })] }), _jsx(Group, { title: "Layer name", defaultOpen: false, children: _jsx(TextInput, { label: "Name", value: element.name ?? "", placeholder: element.type, onChange: (name) => onProps({ name }) }) })] }));
219
+ }
220
+ /* -------------------------------------------------------------------- hover */
221
+ function bezierValues(value) {
222
+ const values = value.split(",").map((part) => Number(part.trim()));
223
+ return values.length === 4 && values.every(Number.isFinite)
224
+ ? [values[0], values[1], values[2], values[3]]
225
+ : [0.44, 0, 0.56, 1];
226
+ }
227
+ function BezierEditor({ value, onChange }) {
228
+ const points = bezierValues(value);
229
+ const px = (x) => 20 + x * 120;
230
+ const py = (y) => 84 - y * 68;
231
+ const begin = (event, point) => {
232
+ event.preventDefault();
233
+ const svg = event.currentTarget.ownerSVGElement;
234
+ if (!svg)
235
+ return;
236
+ const move = (pointer) => {
237
+ const rect = svg.getBoundingClientRect();
238
+ const x = Math.max(0, Math.min(1, ((pointer.clientX - rect.left) / rect.width * 160 - 20) / 120));
239
+ const y = Math.max(-1, Math.min(2, (84 - (pointer.clientY - rect.top) / rect.height * 100) / 68));
240
+ const next = [...points];
241
+ next[point * 2] = x;
242
+ next[point * 2 + 1] = y;
243
+ onChange(next.map((number) => Number(number.toFixed(2))).join(", "));
244
+ };
245
+ const up = () => { window.removeEventListener("pointermove", move); window.removeEventListener("pointerup", up); };
246
+ window.addEventListener("pointermove", move);
247
+ window.addEventListener("pointerup", up, { once: true });
248
+ };
249
+ return _jsxs("div", { className: "rounded-xl bg-white/5 p-2", children: [_jsxs("svg", { viewBox: "0 0 160 100", className: "h-36 w-full touch-none overflow-visible", children: [_jsx("path", { d: "M20 84H140M20 16V84", fill: "none", stroke: "rgba(255,255,255,.08)", strokeWidth: "1" }), _jsx("line", { x1: "20", y1: "84", x2: px(points[0]), y2: py(points[1]), stroke: "#52525b" }), _jsx("line", { x1: "140", y1: "16", x2: px(points[2]), y2: py(points[3]), stroke: "#52525b" }), _jsx("path", { d: `M20 84 C${px(points[0])} ${py(points[1])}, ${px(points[2])} ${py(points[3])}, 140 16`, fill: "none", stroke: "#a1a1aa", strokeWidth: "2.2" }), _jsx("circle", { cx: "20", cy: "84", r: "4", fill: "#fff" }), _jsx("circle", { cx: "140", cy: "16", r: "4", fill: "#fff" }), _jsx("circle", { cx: px(points[0]), cy: py(points[1]), r: "6", fill: "#4f8cff", stroke: "white", strokeWidth: "2", className: "cursor-grab active:cursor-grabbing", onPointerDown: (event) => begin(event, 0) }), _jsx("circle", { cx: px(points[2]), cy: py(points[3]), r: "6", fill: "#4f8cff", stroke: "white", strokeWidth: "2", className: "cursor-grab active:cursor-grabbing", onPointerDown: (event) => begin(event, 1) })] }), _jsx("div", { className: "grid grid-cols-4 gap-1", children: points.map((number, index) => _jsxs("label", { className: "rounded-md bg-black/20 px-1.5 py-1 text-center font-mono text-[9px] text-zinc-400", children: [_jsx("span", { className: "mr-1 text-zinc-600", children: ["X1", "Y1", "X2", "Y2"][index] }), number] }, index)) })] });
250
+ }
251
+ function HoverTab({ element, style, onProps, onStyle }) {
252
+ const hover = element.hover ?? {};
253
+ const active = Object.keys(hover).length > 0;
254
+ const [addOpen, setAddOpen] = useState(false);
255
+ const [transitionOpen, setTransitionOpen] = useState(false);
256
+ const setHover = (patch) => onProps({ hover: { ...hover, ...patch } });
257
+ const addEffect = (name) => {
258
+ setAddOpen(false);
259
+ if (name === "Appear")
260
+ setTransitionOpen(true);
261
+ if (name === "Hover")
262
+ onProps({ hover: { ...hover, scale: hover.scale ?? 103 } });
263
+ if (name === "Press")
264
+ onProps({ press: { ...(element.press ?? {}), scale: element.press?.scale ?? 96, opacity: element.press?.opacity ?? 92 } });
265
+ if (name === "Loop")
266
+ onProps({ loop: element.loop ?? { type: "pulse", duration: 1600 } });
267
+ if (name === "Drag")
268
+ onProps({ draggable: true });
269
+ if (name === "Scroll") {
270
+ onStyle({ entrance: style.entrance === "none" ? "up" : style.entrance });
271
+ setTransitionOpen(true);
272
+ }
273
+ };
274
+ const previewEntrance = () => {
275
+ const frames = Array.from(document.querySelectorAll(`[data-canvas-element="${element.id}"]`));
276
+ const from = style.entrance === "zoom" ? { opacity: 0, scale: 0.94 } : style.entrance === "left" ? { opacity: 0, translate: "-32px 0" } : style.entrance === "right" ? { opacity: 0, translate: "32px 0" } : style.entrance === "down" ? { opacity: 0, translate: "0 -28px" } : style.entrance === "fade" ? { opacity: 0 } : { opacity: 0, translate: "0 28px" };
277
+ const easing = style.entranceCurve === "spring" ? `cubic-bezier(.16,${1 + Math.max(0, 45 - style.springDamping) / 100},${Math.max(0.12, Math.min(0.52, 120 / style.springStiffness))},1)` : `cubic-bezier(${style.entranceBezier})`;
278
+ for (const frame of frames)
279
+ frame.animate([from, { opacity: 1, translate: "none", scale: 1 }], { duration: style.entranceDuration, delay: style.entranceDelay, easing, fill: "both" });
280
+ };
281
+ return (_jsxs("div", { className: "relative flex flex-col gap-3", children: [_jsxs("div", { className: "relative rounded-xl border border-ed-border bg-ed-subtle", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-ed-border px-3 py-2.5", children: [_jsx("span", { className: "text-[11px] font-semibold text-ed-text", children: "Effects" }), _jsx("button", { type: "button", onClick: () => setAddOpen((value) => !value), className: "rounded-md p-1 text-ed-muted hover:bg-ed-field hover:text-ed-text", children: _jsx(IconPlus, { size: 14 }) })] }), _jsxs("button", { type: "button", onClick: () => setTransitionOpen(true), className: "flex w-full items-center justify-between border-b border-ed-border px-3 py-2.5 text-left", children: [_jsxs("span", { children: [_jsx("span", { className: "block text-[10px] font-medium text-ed-text", children: "Appear" }), _jsx("span", { className: "mt-0.5 block text-[9px] text-ed-faint", children: style.entrance === "none" ? "None" : `${style.entrance} · ${style.entranceDuration / 1000}s` })] }), _jsx(IconChevronRight, { size: 13, className: "text-ed-faint" })] }), _jsxs("div", { className: "flex items-center justify-between px-3 py-2.5", children: [_jsxs("span", { children: [_jsx("span", { className: "block text-[10px] font-medium text-ed-text", children: "Hover" }), _jsx("span", { className: "mt-0.5 block text-[9px] text-ed-faint", children: active ? `${Object.keys(hover).length} properties` : "Not configured" })] }), _jsx("span", { className: `size-1.5 rounded-full ${active ? "bg-ed-accent" : "bg-ed-border"}` })] }), addOpen && _jsx("div", { className: "absolute right-2 top-10 z-30 w-36 rounded-xl border border-ed-border bg-ed-surface p-1.5 shadow-2xl", children: ["Appear", "Hover", "Press", "Loop", "Drag", "Scroll"].map((name) => _jsxs("button", { type: "button", onClick: () => addEffect(name), className: "flex w-full items-center justify-between rounded-lg px-3 py-2 text-left text-[10px] font-medium text-ed-muted hover:bg-ed-field hover:text-ed-text", children: [_jsx("span", { children: name }), name === "Scroll" && _jsx(IconChevronRight, { size: 12 })] }, name)) })] }), _jsxs("div", { className: "rounded-xl border border-ed-border bg-ed-subtle", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-ed-border px-3 py-2.5", children: [_jsx("span", { className: "text-[10px] font-medium text-ed-text", children: "Overlays" }), _jsx(IconPlus, { size: 13, className: "text-ed-faint" })] }), _jsx("div", { className: "border-b border-ed-border px-3 py-2.5", children: _jsx(SelectInput, { label: "Cursor", value: style.cursor, options: [{ label: "Automatic", value: "auto" }, { label: "Pointer", value: "pointer" }, { label: "Text", value: "text" }, { label: "Grab", value: "grab" }, { label: "Zoom in", value: "zoom-in" }, { label: "Hidden", value: "none" }], onChange: (cursor) => onStyle({ cursor }) }) }), _jsxs("div", { className: "flex items-center justify-between px-3 py-2.5", children: [_jsx("span", { className: "text-[10px] font-medium text-ed-text", children: "Styles" }), _jsx(IconPlus, { size: 13, className: "text-ed-faint" })] })] }), _jsxs(Group, { title: "Hover state", action: active ? (_jsx("button", { type: "button", onClick: () => onProps({ hover: undefined }), className: "text-[10px] text-ed-muted transition-colors hover:text-ed-text", children: "Clear" })) : null, children: [_jsx(ColorInput, { label: "Background", value: hover.bg ?? style.bg, onChange: (bg) => setHover({ bg }) }), _jsx(ColorInput, { label: "Text", value: hover.color ?? style.color, onChange: (color) => setHover({ color }) }), _jsx(SliderInput, { label: "Opacity", min: 0, max: 100, suffix: "%", value: hover.opacity ?? style.opacity, onChange: (opacity) => setHover({ opacity }) }), _jsxs(More, { children: [_jsx(ColorInput, { label: "Border", value: hover.borderC ?? style.borderC, onChange: (borderC) => setHover({ borderC }) }), _jsx(SelectInput, { label: "Shadow", value: hover.shadow ?? style.shadow, options: SHADOW_PRESETS, onChange: (shadow) => setHover({ shadow }) }), _jsx(NumberInput, { label: "Corner radius", suffix: "px", min: 0, value: hover.radius ?? style.radius, onChange: (radius) => setHover({ radius }) })] })] }), element.press && _jsxs(Group, { title: "Press state", action: _jsx("button", { type: "button", onClick: () => onProps({ press: undefined }), className: "text-[10px] text-ed-muted hover:text-red-400", children: "Remove" }), children: [_jsx(SliderInput, { label: "Scale", min: 10, max: 150, suffix: "%", value: element.press.scale ?? 96, onChange: (scale) => onProps({ press: { ...element.press, scale } }) }), _jsx(SliderInput, { label: "Opacity", min: 0, max: 100, suffix: "%", value: element.press.opacity ?? 92, onChange: (opacity) => onProps({ press: { ...element.press, opacity } }) })] }), element.loop && _jsxs(Group, { title: "Loop", action: _jsx("button", { type: "button", onClick: () => onProps({ loop: undefined }), className: "text-[10px] text-ed-muted hover:text-red-400", children: "Remove" }), children: [_jsx(SelectInput, { label: "Motion", value: element.loop.type, options: [{ label: "Pulse", value: "pulse" }, { label: "Float", value: "float" }, { label: "Spin", value: "spin" }], onChange: (type) => onProps({ loop: { ...element.loop, type } }) }), _jsx(SliderInput, { label: "Duration", min: 100, max: 10000, suffix: "ms", value: element.loop.duration, onChange: (duration) => onProps({ loop: { ...element.loop, duration } }) })] }), element.draggable && _jsx(Group, { title: "Drag", action: _jsx("button", { type: "button", onClick: () => onProps({ draggable: undefined }), className: "text-[10px] text-ed-muted hover:text-red-400", children: "Remove" }), children: _jsx("p", { className: "text-[10px] leading-relaxed text-ed-muted", children: "Visitors can drag this element freely on Preview and the published page." }) }), active && (_jsxs("p", { className: "text-[10px] text-ed-faint", children: ["Overriding: ", Object.keys(hover).join(", ")] })), transitionOpen && _jsxs("div", { className: "absolute inset-x-0 top-0 z-40 max-h-[calc(100vh-150px)] overflow-y-auto rounded-2xl border border-ed-border bg-[#151515] p-3 shadow-2xl", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("button", { type: "button", onClick: previewEntrance, className: "flex items-center gap-1.5 rounded-lg bg-white/5 px-2 py-1.5 text-[10px] font-semibold text-white hover:bg-white/10", children: [_jsx(IconPlayerPlay, { size: 12 }), " Preview"] }), _jsx("span", { className: "text-[11px] font-semibold text-white", children: "Transition" }), _jsx("button", { type: "button", onClick: () => setTransitionOpen(false), className: "rounded-md p-1 text-zinc-500 hover:bg-white/5 hover:text-white", children: _jsx(IconX, { size: 13 }) })] }), _jsxs("div", { className: "mb-3 grid grid-cols-2 rounded-lg bg-white/5 p-0.5", children: [_jsx("button", { type: "button", onClick: () => onStyle({ entranceCurve: "ease" }), className: `rounded-md py-1.5 text-[10px] ${style.entranceCurve === "ease" ? "bg-white/15 text-white" : "text-zinc-500"}`, children: "Ease" }), _jsx("button", { type: "button", onClick: () => onStyle({ entranceCurve: "spring" }), className: `rounded-md py-1.5 text-[10px] ${style.entranceCurve === "spring" ? "bg-white/15 text-white" : "text-zinc-500"}`, children: "Spring" })] }), style.entranceCurve === "ease" ? _jsxs(_Fragment, { children: [_jsx(BezierEditor, { value: style.entranceBezier, onChange: (entranceBezier) => onStyle({ entranceBezier }) }), _jsx(SelectInput, { label: "Preset", value: "custom", options: [{ label: "Custom", value: "custom" }, { label: "Ease", value: "0.25, 0.1, 0.25, 1" }, { label: "Ease in", value: "0.42, 0, 1, 1" }, { label: "Ease out", value: "0, 0, 0.58, 1" }, { label: "Ease in out", value: "0.42, 0, 0.58, 1" }, { label: "Snappy", value: "0.2, 0.8, 0.2, 1" }, { label: "Overshoot", value: "0.34, 1.56, 0.64, 1" }], onChange: (preset) => preset !== "custom" && onStyle({ entranceBezier: preset }) }), _jsx(TextInput, { label: "Bezier", value: style.entranceBezier, onChange: (entranceBezier) => onStyle({ entranceBezier }) })] }) : _jsxs("div", { className: "rounded-xl bg-white/5 p-3", children: [_jsxs("svg", { viewBox: "0 0 160 90", className: "h-28 w-full", children: [_jsx("path", { d: "M15 75 C48 75 54 8 98 18 C124 25 130 10 145 15", fill: "none", stroke: "#a1a1aa", strokeWidth: "2" }), _jsx("circle", { cx: "15", cy: "75", r: "4", fill: "white" }), _jsx("circle", { cx: "145", cy: "15", r: "4", fill: "white" })] }), _jsx(SliderInput, { label: "Stiffness", min: 1, max: 1000, value: style.springStiffness, onChange: (springStiffness) => onStyle({ springStiffness }) }), _jsx(SliderInput, { label: "Damping", min: 1, max: 100, value: style.springDamping, onChange: (springDamping) => onStyle({ springDamping }) })] }), _jsxs("div", { className: "mt-3 space-y-2", children: [_jsx(SelectInput, { label: "Effect", value: style.entrance, options: ENTRANCES, onChange: (entrance) => onStyle({ entrance }) }), _jsx(SliderInput, { label: "Time", min: 50, max: 5000, suffix: "ms", value: style.entranceDuration, onChange: (entranceDuration) => onStyle({ entranceDuration }) }), _jsx(SliderInput, { label: "Delay", min: 0, max: 5000, suffix: "ms", value: style.entranceDelay, onChange: (entranceDelay) => onStyle({ entranceDelay }) })] })] })] }));
282
+ }
283
+ /* ---------------------------------------------------------------- page tab */
284
+ export function PageInspector({ rootStyle, onChange, onApplyStyleKit, onLoadShowcase, }) {
285
+ const providerFonts = usePagieraFonts();
286
+ return (_jsxs("div", { className: "flex flex-col divide-y divide-ed-border", children: [_jsx("p", { className: "pb-3 text-[10px] leading-relaxed text-ed-muted", children: "Nothing is selected, so these settings apply to the page itself." }), _jsxs(Group, { title: "Canvas", children: [_jsx(Segmented, { label: "Width", value: rootStyle.fullWidth ? "full" : "contained", options: [
287
+ { label: "Contained", value: "contained" },
288
+ { label: "Full bleed", value: "full" },
289
+ ], onChange: (mode) => onChange({ fullWidth: mode === "full" }) }), !rootStyle.fullWidth && (_jsx(NumberInput, { label: "Max width", suffix: "px", min: 320, max: 4000, value: rootStyle.maxWidth, onChange: (maxWidth) => onChange({ maxWidth }) })), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: rootStyle.fullWidth
290
+ ? "Content runs edge to edge on every screen."
291
+ : `Wider screens show the page background beside the ${rootStyle.maxWidth}px content.` }), _jsx(ColorInput, { label: "Background", value: rootStyle.bg, onChange: (bg) => onChange({ bg }) })] }), _jsxs(Group, { title: "Typography", children: [_jsx(SelectInput, { label: "Site font", value: rootStyle.fontFamily, options: [...providerFonts.map((font) => ({ label: font.title, value: font.family })), ...FONT_STACKS], onChange: (fontFamily) => onChange({ fontFamily }) }), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: "Applied to the whole site. Individual layers inherit this font automatically." })] }), _jsxs(Group, { title: "Style kits", children: [_jsxs("button", { type: "button", onClick: onLoadShowcase, className: "group mb-3 w-full overflow-hidden rounded-xl border border-lime-300/25 bg-[#10110d] p-3 text-left transition hover:border-lime-300/60", children: [_jsxs("span", { className: "mb-3 flex items-center justify-between", children: [_jsx("span", { className: "flex size-8 items-center justify-center rounded-lg bg-[#d7ff3f] text-[#0b0b0a]", children: _jsx(IconSparkles, { size: 15 }) }), _jsx("span", { className: "font-mono text-[8px] uppercase tracking-[.18em] text-lime-200/60", children: "Full site" })] }), _jsx("span", { className: "block text-[11px] font-semibold text-[#f1f0ea]", children: "Load Nocturne showcase" }), _jsx("span", { className: "mt-1 block text-[9px] leading-relaxed text-[#96958f]", children: "Custom font, editorial composition and polished motion." })] }), _jsx("p", { className: "text-[10px] leading-relaxed text-ed-faint", children: "Apply a coherent background, surface, typography and accent palette to the whole page." }), _jsx("div", { className: "grid grid-cols-2 gap-2", children: [
292
+ ["midnight", "Midnight", ["#090b10", "#7c5cff"]],
293
+ ["editorial", "Editorial", ["#f3efe7", "#e14b32"]],
294
+ ["cobalt", "Cobalt", ["#071425", "#2f80ff"]],
295
+ ["warm", "Warm", ["#18110f", "#f97316"]],
296
+ ].map(([id, label, colors]) => _jsxs("button", { type: "button", onClick: () => onApplyStyleKit(id), className: "rounded-xl border border-ed-border bg-ed-subtle p-2 text-left hover:border-ed-accent/50 hover:bg-ed-field", children: [_jsx("span", { className: "mb-2 flex h-8 overflow-hidden rounded-lg", children: colors.map((color) => _jsx("span", { className: "flex-1", style: { background: color } }, color)) }), _jsx("span", { className: "text-[9px] font-semibold text-ed-text", children: label })] }, id)) })] }), _jsxs(Group, { title: "Layout", defaultOpen: false, children: [_jsx(Segmented, { label: "Mode", value: rootStyle.layout, options: [
297
+ { label: "Stack", value: "stack" },
298
+ { label: "Free", value: "absolute" },
299
+ ], onChange: (layout) => onChange({ layout }) }), rootStyle.layout === "stack" && (_jsxs(_Fragment, { children: [_jsx(Segmented, { label: "Flow", value: rootStyle.direction, options: [
300
+ {
301
+ label: "Row",
302
+ value: "row",
303
+ icon: _jsx(IconArrowsHorizontal, { size: 12 }),
304
+ },
305
+ {
306
+ label: "Column",
307
+ value: "column",
308
+ icon: _jsx(IconArrowsVertical, { size: 12 }),
309
+ },
310
+ ], onChange: (direction) => onChange({ direction }) }), _jsx(NumberInput, { label: "Gap", suffix: "px", min: 0, value: rootStyle.gap, onChange: (gap) => onChange({ gap }) }), _jsx(Segmented, { label: "Align", value: rootStyle.align, options: [
311
+ { label: "Start", value: "start" },
312
+ { label: "Center", value: "center" },
313
+ { label: "End", value: "end" },
314
+ { label: "Stretch", value: "stretch" },
315
+ ], onChange: (align) => onChange({ align }) })] }))] }), _jsxs(Group, { title: "Spacing", defaultOpen: false, children: [_jsx(NumberInput, { label: "Top", suffix: "px", min: 0, value: rootStyle.padT, onChange: (padT) => onChange({ padT }) }), _jsx(NumberInput, { label: "Right", suffix: "px", min: 0, value: rootStyle.padR, onChange: (padR) => onChange({ padR }) }), _jsx(NumberInput, { label: "Bottom", suffix: "px", min: 0, value: rootStyle.padB, onChange: (padB) => onChange({ padB }) }), _jsx(NumberInput, { label: "Left", suffix: "px", min: 0, value: rootStyle.padL, onChange: (padL) => onChange({ padL }) }), " "] })] }));
316
+ }
317
+ const ALIGN_LABELS = {
318
+ left: "Align left",
319
+ "center-x": "Align centre",
320
+ right: "Align right",
321
+ top: "Align top",
322
+ "center-y": "Align middle",
323
+ bottom: "Align bottom",
324
+ };
325
+ export function MultiSelectPanel({ count, canArrange, onAlign, onDistribute, }) {
326
+ return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("p", { className: "text-[10px] leading-relaxed text-ed-muted", children: [count, " elements selected.", !canArrange &&
327
+ " Alignment needs siblings inside a freely positioned parent."] }), _jsx(Group, { title: "Align", children: _jsx("div", { className: "grid grid-cols-3 gap-1", children: [
328
+ ["left", _jsx(IconAlignBoxLeftMiddle, { size: 14 }, "l")],
329
+ ["center-x", _jsx(IconAlignBoxCenterMiddle, { size: 14 }, "c")],
330
+ ["right", _jsx(IconAlignBoxRightMiddle, { size: 14 }, "r")],
331
+ ["top", _jsx(IconLayoutAlignTop, { size: 14 }, "t")],
332
+ ["center-y", _jsx(IconAlignBoxCenterMiddle, { size: 14 }, "m")],
333
+ ["bottom", _jsx(IconLayoutAlignBottom, { size: 14 }, "b")],
334
+ ].map(([action, icon]) => (_jsx("button", { type: "button", title: ALIGN_LABELS[action], "aria-label": ALIGN_LABELS[action], disabled: !canArrange, onClick: () => onAlign(action), className: "flex items-center justify-center rounded border border-ed-border bg-ed-field p-2 text-ed-muted transition-colors hover:bg-ed-field hover:text-ed-text disabled:pointer-events-none disabled:opacity-30", children: icon }, action))) }) }), _jsx(Group, { title: "Distribute", children: _jsxs("div", { className: "grid grid-cols-2 gap-1", children: [_jsxs("button", { type: "button", disabled: !canArrange || count < 3, onClick: () => onDistribute("horizontal"), className: "flex items-center justify-center gap-1.5 rounded border border-ed-border bg-ed-field p-2 text-[10px] text-ed-muted transition-colors hover:bg-ed-field hover:text-ed-text disabled:pointer-events-none disabled:opacity-30", children: [_jsx(IconArrowsHorizontal, { size: 13 }), " Horizontal"] }), _jsxs("button", { type: "button", disabled: !canArrange || count < 3, onClick: () => onDistribute("vertical"), className: "flex items-center justify-center gap-1.5 rounded border border-ed-border bg-ed-field p-2 text-[10px] text-ed-muted transition-colors hover:bg-ed-field hover:text-ed-text disabled:pointer-events-none disabled:opacity-30", children: [_jsx(IconArrowsVertical, { size: 13 }), " Vertical"] })] }) })] }));
335
+ }
336
+ //# sourceMappingURL=inspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../../../src/internal/app/p/editor/inspector.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { IconArrowLeft } from "@tabler/icons-react";
2
+ import { type CanvasElement } from "@/lib/editor/types";
3
+ export type LibraryPage = {
4
+ id: string;
5
+ name: string;
6
+ elements: CanvasElement[];
7
+ };
8
+ export type LibraryPick = {
9
+ elements: CanvasElement[];
10
+ rootId: string;
11
+ };
12
+ export declare function LibraryPanel({ pages, currentPageId, onInsert }: {
13
+ pages: LibraryPage[];
14
+ currentPageId: string;
15
+ onInsert: (pick: LibraryPick) => void;
16
+ }): import("react").JSX.Element;
17
+ export { IconArrowLeft };
18
+ //# sourceMappingURL=library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../../../../src/internal/app/p/editor/library.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAgG,MAAM,qBAAqB,CAAC;AAMlJ,OAAO,EAAiB,KAAK,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AAEzF,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAYxE,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CAAE,+BAgBtJ;AAuCD,OAAO,EAAE,aAAa,EAAE,CAAC"}