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.
- package/README.md +528 -0
- package/dist/adapters.d.ts +89 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +2 -0
- package/dist/adapters.js.map +1 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +33 -0
- package/dist/client.js.map +1 -0
- package/dist/data.js +210 -0
- package/dist/data.js.map +7 -0
- package/dist/document.d.ts +63 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +25 -0
- package/dist/document.js.map +1 -0
- package/dist/editor.d.ts +14 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +59 -0
- package/dist/editor.js.map +1 -0
- package/dist/full-editor.d.ts +53 -0
- package/dist/full-editor.js +11117 -0
- package/dist/full-editor.js.map +7 -0
- package/dist/full.css +3498 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/app/api/ai-design/route.d.ts +3 -0
- package/dist/internal/app/api/ai-design/route.d.ts.map +1 -0
- package/dist/internal/app/api/ai-design/route.js +165 -0
- package/dist/internal/app/api/ai-design/route.js.map +1 -0
- package/dist/internal/app/p/editor/ai-panel.d.ts +27 -0
- package/dist/internal/app/p/editor/ai-panel.d.ts.map +1 -0
- package/dist/internal/app/p/editor/ai-panel.js +77 -0
- package/dist/internal/app/p/editor/ai-panel.js.map +1 -0
- package/dist/internal/app/p/editor/data-modal.d.ts +26 -0
- package/dist/internal/app/p/editor/data-modal.d.ts.map +1 -0
- package/dist/internal/app/p/editor/data-modal.js +94 -0
- package/dist/internal/app/p/editor/data-modal.js.map +1 -0
- package/dist/internal/app/p/editor/data-panel.d.ts +18 -0
- package/dist/internal/app/p/editor/data-panel.d.ts.map +1 -0
- package/dist/internal/app/p/editor/data-panel.js +45 -0
- package/dist/internal/app/p/editor/data-panel.js.map +1 -0
- package/dist/internal/app/p/editor/editor.d.ts +51 -0
- package/dist/internal/app/p/editor/editor.d.ts.map +1 -0
- package/dist/internal/app/p/editor/editor.js +1551 -0
- package/dist/internal/app/p/editor/editor.js.map +1 -0
- package/dist/internal/app/p/editor/fields.d.ts +111 -0
- package/dist/internal/app/p/editor/fields.d.ts.map +1 -0
- package/dist/internal/app/p/editor/fields.js +141 -0
- package/dist/internal/app/p/editor/fields.js.map +1 -0
- package/dist/internal/app/p/editor/inspector.d.ts +38 -0
- package/dist/internal/app/p/editor/inspector.d.ts.map +1 -0
- package/dist/internal/app/p/editor/inspector.js +336 -0
- package/dist/internal/app/p/editor/inspector.js.map +1 -0
- package/dist/internal/app/p/editor/library.d.ts +18 -0
- package/dist/internal/app/p/editor/library.d.ts.map +1 -0
- package/dist/internal/app/p/editor/library.js +61 -0
- package/dist/internal/app/p/editor/library.js.map +1 -0
- package/dist/internal/app/p/editor/parts.d.ts +75 -0
- package/dist/internal/app/p/editor/parts.d.ts.map +1 -0
- package/dist/internal/app/p/editor/parts.js +261 -0
- package/dist/internal/app/p/editor/parts.js.map +1 -0
- package/dist/internal/app/p/editor/templates-panel.d.ts +6 -0
- package/dist/internal/app/p/editor/templates-panel.d.ts.map +1 -0
- package/dist/internal/app/p/editor/templates-panel.js +12 -0
- package/dist/internal/app/p/editor/templates-panel.js.map +1 -0
- package/dist/internal/app/p/editor/use-canvas-view.d.ts +24 -0
- package/dist/internal/app/p/editor/use-canvas-view.d.ts.map +1 -0
- package/dist/internal/app/p/editor/use-canvas-view.js +242 -0
- package/dist/internal/app/p/editor/use-canvas-view.js.map +1 -0
- package/dist/internal/app/p/editor/use-editor.d.ts +48 -0
- package/dist/internal/app/p/editor/use-editor.d.ts.map +1 -0
- package/dist/internal/app/p/editor/use-editor.js +224 -0
- package/dist/internal/app/p/editor/use-editor.js.map +1 -0
- package/dist/internal/app/p/editor/variables-panel.d.ts +8 -0
- package/dist/internal/app/p/editor/variables-panel.d.ts.map +1 -0
- package/dist/internal/app/p/editor/variables-panel.js +52 -0
- package/dist/internal/app/p/editor/variables-panel.js.map +1 -0
- package/dist/internal/components/ui/select.d.ts +12 -0
- package/dist/internal/components/ui/select.d.ts.map +1 -0
- package/dist/internal/components/ui/select.js +32 -0
- package/dist/internal/components/ui/select.js.map +1 -0
- package/dist/internal/drizzle/index.d.ts +6 -0
- package/dist/internal/drizzle/index.d.ts.map +1 -0
- package/dist/internal/drizzle/index.js +20 -0
- package/dist/internal/drizzle/index.js.map +1 -0
- package/dist/internal/drizzle/schema.d.ts +405 -0
- package/dist/internal/drizzle/schema.d.ts.map +1 -0
- package/dist/internal/drizzle/schema.js +70 -0
- package/dist/internal/drizzle/schema.js.map +1 -0
- package/dist/internal/lib/data/context.d.ts +8 -0
- package/dist/internal/lib/data/context.d.ts.map +1 -0
- package/dist/internal/lib/data/context.js +17 -0
- package/dist/internal/lib/data/context.js.map +1 -0
- package/dist/internal/lib/data/source.d.ts +54 -0
- package/dist/internal/lib/data/source.d.ts.map +1 -0
- package/dist/internal/lib/data/source.js +229 -0
- package/dist/internal/lib/data/source.js.map +1 -0
- package/dist/internal/lib/editor/ai-types.d.ts +44 -0
- package/dist/internal/lib/editor/ai-types.d.ts.map +1 -0
- package/dist/internal/lib/editor/ai-types.js +2 -0
- package/dist/internal/lib/editor/ai-types.js.map +1 -0
- package/dist/internal/lib/editor/arrange.d.ts +12 -0
- package/dist/internal/lib/editor/arrange.d.ts.map +1 -0
- package/dist/internal/lib/editor/arrange.js +72 -0
- package/dist/internal/lib/editor/arrange.js.map +1 -0
- package/dist/internal/lib/editor/cascade.d.ts +39 -0
- package/dist/internal/lib/editor/cascade.d.ts.map +1 -0
- package/dist/internal/lib/editor/cascade.js +86 -0
- package/dist/internal/lib/editor/cascade.js.map +1 -0
- package/dist/internal/lib/editor/icon.d.ts +6 -0
- package/dist/internal/lib/editor/icon.d.ts.map +1 -0
- package/dist/internal/lib/editor/icon.js +13 -0
- package/dist/internal/lib/editor/icon.js.map +1 -0
- package/dist/internal/lib/editor/presets.d.ts +10 -0
- package/dist/internal/lib/editor/presets.d.ts.map +1 -0
- package/dist/internal/lib/editor/presets.js +83 -0
- package/dist/internal/lib/editor/presets.js.map +1 -0
- package/dist/internal/lib/editor/showcase.d.ts +14 -0
- package/dist/internal/lib/editor/showcase.d.ts.map +1 -0
- package/dist/internal/lib/editor/showcase.js +219 -0
- package/dist/internal/lib/editor/showcase.js.map +1 -0
- package/dist/internal/lib/editor/site-templates.d.ts +4 -0
- package/dist/internal/lib/editor/site-templates.d.ts.map +1 -0
- package/dist/internal/lib/editor/site-templates.js +156 -0
- package/dist/internal/lib/editor/site-templates.js.map +1 -0
- package/dist/internal/lib/editor/snap.d.ts +34 -0
- package/dist/internal/lib/editor/snap.d.ts.map +1 -0
- package/dist/internal/lib/editor/snap.js +70 -0
- package/dist/internal/lib/editor/snap.js.map +1 -0
- package/dist/internal/lib/editor/style.d.ts +53 -0
- package/dist/internal/lib/editor/style.d.ts.map +1 -0
- package/dist/internal/lib/editor/style.js +313 -0
- package/dist/internal/lib/editor/style.js.map +1 -0
- package/dist/internal/lib/editor/tree.d.ts +72 -0
- package/dist/internal/lib/editor/tree.d.ts.map +1 -0
- package/dist/internal/lib/editor/tree.js +301 -0
- package/dist/internal/lib/editor/tree.js.map +1 -0
- package/dist/internal/lib/editor/types.d.ts +273 -0
- package/dist/internal/lib/editor/types.d.ts.map +1 -0
- package/dist/internal/lib/editor/types.js +411 -0
- package/dist/internal/lib/editor/types.js.map +1 -0
- package/dist/internal/lib/editor/validate.d.ts +20 -0
- package/dist/internal/lib/editor/validate.d.ts.map +1 -0
- package/dist/internal/lib/editor/validate.js +467 -0
- package/dist/internal/lib/editor/validate.js.map +1 -0
- package/dist/internal/lib/pages.d.ts +83 -0
- package/dist/internal/lib/pages.d.ts.map +1 -0
- package/dist/internal/lib/pages.js +294 -0
- package/dist/internal/lib/pages.js.map +1 -0
- package/dist/internal/lib/render/bind.d.ts +18 -0
- package/dist/internal/lib/render/bind.d.ts.map +1 -0
- package/dist/internal/lib/render/bind.js +28 -0
- package/dist/internal/lib/render/bind.js.map +1 -0
- package/dist/internal/lib/render/css.d.ts +31 -0
- package/dist/internal/lib/render/css.d.ts.map +1 -0
- package/dist/internal/lib/render/css.js +239 -0
- package/dist/internal/lib/render/css.js.map +1 -0
- package/dist/internal/lib/render/load-data.d.ts +15 -0
- package/dist/internal/lib/render/load-data.d.ts.map +1 -0
- package/dist/internal/lib/render/load-data.js +39 -0
- package/dist/internal/lib/render/load-data.js.map +1 -0
- package/dist/internal/lib/render/page-render.d.ts +17 -0
- package/dist/internal/lib/render/page-render.d.ts.map +1 -0
- package/dist/internal/lib/render/page-render.js +117 -0
- package/dist/internal/lib/render/page-render.js.map +1 -0
- package/dist/internal/lib/utils.d.ts +3 -0
- package/dist/internal/lib/utils.d.ts.map +1 -0
- package/dist/internal/lib/utils.js +6 -0
- package/dist/internal/lib/utils.js.map +1 -0
- package/dist/manrope-data.d.ts +3 -0
- package/dist/manrope-data.d.ts.map +1 -0
- package/dist/manrope-data.js +3 -0
- package/dist/manrope-data.js.map +1 -0
- package/dist/page.d.ts +9 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +148 -0
- package/dist/page.js.map +1 -0
- package/dist/provider.d.ts +14 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +45 -0
- package/dist/provider.js.map +1 -0
- package/dist/runtime.d.ts +8 -0
- package/dist/runtime.js +717 -0
- package/dist/runtime.js.map +7 -0
- package/dist/server.d.ts +31 -0
- package/dist/server.js +2267 -0
- package/dist/server.js.map +7 -0
- package/dist/styles.css +300 -0
- package/package.json +94 -0
- 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"}
|