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 @@
1
+ {"version":3,"file":"site-templates.js","sourceRoot":"","sources":["../../../../src/internal/lib/editor/site-templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Breakpoint, CanvasElement } from "./types";
2
+ /** How close (in canvas px) an edge must be before it snaps. */
3
+ export declare const SNAP_THRESHOLD = 6;
4
+ export type Guide = {
5
+ axis: "x" | "y";
6
+ /** Position in the dragged element's own coordinate space. */
7
+ at: number;
8
+ /** Span of the guide line, so it only reaches as far as the pairing needs. */
9
+ from: number;
10
+ to: number;
11
+ };
12
+ type Box = {
13
+ x: number;
14
+ y: number;
15
+ w: number;
16
+ h: number;
17
+ };
18
+ /**
19
+ * Aligns the moving box against its siblings and the frame it lives in,
20
+ * returning the corrected position plus the guides worth drawing.
21
+ *
22
+ * Everything is expressed in the moving element's parent coordinate space, so
23
+ * a nested element snaps against its own container rather than the page.
24
+ */
25
+ export declare function snapPosition(elements: CanvasElement[], movingId: string, proposed: Box, frame: {
26
+ w: number;
27
+ h: number;
28
+ }, breakpoint: Breakpoint, threshold?: number): {
29
+ x: number;
30
+ y: number;
31
+ guides: Guide[];
32
+ };
33
+ export {};
34
+ //# sourceMappingURL=snap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../../../src/internal/lib/editor/snap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEzD,gEAAgE;AAChE,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,KAAK,GAAG;IAChB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAChB,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ1D;;;;;;GAMG;AACH,wBAAgB,YAAY,CACxB,QAAQ,EAAE,aAAa,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,UAAU,EAAE,UAAU,EACtB,SAAS,SAAiB,GAC3B;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,CA0D3C"}
@@ -0,0 +1,70 @@
1
+ import { resolveStyle } from "./style";
2
+ import { childrenOf, subtreeIds } from "./tree";
3
+ /** How close (in canvas px) an edge must be before it snaps. */
4
+ export const SNAP_THRESHOLD = 6;
5
+ function edges(box, axis) {
6
+ return axis === "x"
7
+ ? [box.x, box.x + box.w / 2, box.x + box.w]
8
+ : [box.y, box.y + box.h / 2, box.y + box.h];
9
+ }
10
+ /**
11
+ * Aligns the moving box against its siblings and the frame it lives in,
12
+ * returning the corrected position plus the guides worth drawing.
13
+ *
14
+ * Everything is expressed in the moving element's parent coordinate space, so
15
+ * a nested element snaps against its own container rather than the page.
16
+ */
17
+ export function snapPosition(elements, movingId, proposed, frame, breakpoint, threshold = SNAP_THRESHOLD) {
18
+ const moving = elements.find((el) => el.id === movingId);
19
+ if (!moving)
20
+ return { x: proposed.x, y: proposed.y, guides: [] };
21
+ const excluded = subtreeIds(elements, movingId);
22
+ const siblings = childrenOf(elements, moving.parentId)
23
+ .filter((el) => !excluded.has(el.id))
24
+ .map((el) => ({ el, style: resolveStyle(el, breakpoint) }))
25
+ .filter(({ style }) => !style.hidden);
26
+ const targets = [
27
+ { x: 0, y: 0, w: frame.w, h: frame.h },
28
+ ...siblings.map(({ style }) => ({
29
+ x: style.x,
30
+ y: style.y,
31
+ w: style.w,
32
+ h: style.h,
33
+ })),
34
+ ];
35
+ const guides = [];
36
+ const result = { x: proposed.x, y: proposed.y };
37
+ for (const axis of ["x", "y"]) {
38
+ const movingEdges = edges(proposed, axis);
39
+ let best = null;
40
+ for (const target of targets) {
41
+ for (const targetEdge of edges(target, axis)) {
42
+ for (const movingEdge of movingEdges) {
43
+ const delta = targetEdge - movingEdge;
44
+ if (Math.abs(delta) > threshold)
45
+ continue;
46
+ if (!best || Math.abs(delta) < Math.abs(best.delta)) {
47
+ best = { delta, at: targetEdge, target };
48
+ }
49
+ }
50
+ }
51
+ }
52
+ if (!best)
53
+ continue;
54
+ result[axis] = proposed[axis] + best.delta;
55
+ const crossAxis = axis === "x" ? "y" : "x";
56
+ const crossSize = axis === "x" ? "h" : "w";
57
+ const movingStart = proposed[crossAxis];
58
+ const movingEnd = movingStart + proposed[crossSize];
59
+ const targetStart = best.target[crossAxis];
60
+ const targetEnd = targetStart + best.target[crossSize];
61
+ guides.push({
62
+ axis,
63
+ at: best.at,
64
+ from: Math.min(movingStart, targetStart),
65
+ to: Math.max(movingEnd, targetEnd),
66
+ });
67
+ }
68
+ return { ...result, guides };
69
+ }
70
+ //# sourceMappingURL=snap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap.js","sourceRoot":"","sources":["../../../../src/internal/lib/editor/snap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { CSSProperties } from "react";
2
+ import { type Cascade } from "./cascade";
3
+ import { type Breakpoint, type CanvasElement, type ElementStyle, type RootStyle, type StyleKey } from "./types";
4
+ /**
5
+ * Flattens the cascade for one breakpoint: the base values, then each override
6
+ * between the base and this artboard, nearest-to-base first.
7
+ */
8
+ export declare function resolveStyle(element: CanvasElement, breakpoint: Breakpoint, cascade?: Cascade): ElementStyle;
9
+ /**
10
+ * Which breakpoint actually supplies the value shown for `key` — used to mark
11
+ * a field in the inspector as inherited rather than set here.
12
+ */
13
+ export declare function originOf(element: CanvasElement, breakpoint: Breakpoint, key: StyleKey, cascade?: Cascade): Breakpoint;
14
+ export declare function hasOverride(element: CanvasElement, breakpoint: Breakpoint, key: StyleKey, cascade?: Cascade): boolean;
15
+ /**
16
+ * Writes style changes to the right layer: an edit on the base artboard
17
+ * changes the shared values, anywhere else accumulates an override so the
18
+ * other artboards keep theirs.
19
+ */
20
+ export declare function applyStyle(element: CanvasElement, breakpoint: Breakpoint, patch: Partial<ElementStyle>, cascade?: Cascade): CanvasElement;
21
+ /** Keeps a base-breakpoint edit local by snapshotting the affected values on
22
+ * every other artboard before changing the shared desktop base. */
23
+ export declare function applyStyleIsolated(element: CanvasElement, breakpoint: Breakpoint, patch: Partial<ElementStyle>, breakpoints: readonly Breakpoint[], cascade?: Cascade): CanvasElement;
24
+ /** Drops overrides for `keys` at this breakpoint so they inherit again. */
25
+ export declare function clearOverrides(element: CanvasElement, breakpoint: Breakpoint, keys: StyleKey[], cascade?: Cascade): CanvasElement;
26
+ export type BoxContext = {
27
+ /** How the parent arranges this element; drives positioning vs flex sizing. */
28
+ parentLayout: "absolute" | "stack";
29
+ parentDirection: "row" | "column";
30
+ };
31
+ /**
32
+ * Turns a resolved style into inline CSS. Positioning depends on the parent:
33
+ * inside an absolute parent the element is placed at x/y, inside a stack it is
34
+ * a flex item whose sizing comes from widthMode/heightMode.
35
+ */
36
+ export declare function styleToCss(style: ElementStyle, context: BoxContext, element?: Pick<CanvasElement, "type">): CSSProperties;
37
+ /**
38
+ * A Section is a full-bleed band: its background reaches both edges of the
39
+ * viewport while the content inside stays within the page's content width.
40
+ * Capping the Section itself instead would box the background too, which is
41
+ * why the published page used to sit in a container the canvas never showed.
42
+ *
43
+ * Returns the outer shell and the centred inner box; the inner one keeps the
44
+ * flex/grid layout so children lay out exactly as before.
45
+ */
46
+ export declare function splitBand(css: CSSProperties, contentWidth: number): {
47
+ shell: CSSProperties;
48
+ inner: CSSProperties;
49
+ };
50
+ /** Whether this element should render as a full-bleed band. */
51
+ export declare function isBand(type: string, style: ElementStyle, root: Pick<RootStyle, "fullWidth">): boolean;
52
+ export declare function rootStyleToCss(root: RootStyle): CSSProperties;
53
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../src/internal/lib/editor/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAU,KAAK,OAAO,EAA6B,MAAM,WAAW,CAAC;AAC5E,OAAO,EAEH,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,SAAS,EACd,KAAK,QAAQ,EAChB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,wBAAgB,YAAY,CACxB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,OAAyB,GACnC,YAAY,CAOd;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACpB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,OAAyB,GACnC,UAAU,CAMZ;AAED,wBAAgB,WAAW,CACvB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,OAAyB,WAMrC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACtB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAC5B,OAAO,GAAE,OAAyB,GACnC,aAAa,CAqBf;AAED;mEACmE;AACnE,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAC5B,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,OAAO,GAAE,OAAyB,GACnC,aAAa,CAiBf;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAC1B,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EAAE,EAChB,OAAO,GAAE,OAAyB,GACnC,aAAa,CAcf;AAkBD,MAAM,MAAM,UAAU,GAAG;IACrB,+EAA+E;IAC/E,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC;IACnC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GACtC,aAAa,CAuHf;AAmCD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACrB,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,GACrB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CA2BhD;AAED,+DAA+D;AAC/D,wBAAgB,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,WAGrC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAiB7D"}
@@ -0,0 +1,313 @@
1
+ import { baseOf, chainFor, DEFAULT_CASCADE } from "./cascade";
2
+ /**
3
+ * Flattens the cascade for one breakpoint: the base values, then each override
4
+ * between the base and this artboard, nearest-to-base first.
5
+ */
6
+ export function resolveStyle(element, breakpoint, cascade = DEFAULT_CASCADE) {
7
+ let style = element.base;
8
+ for (const step of chainFor(cascade, breakpoint)) {
9
+ const override = element.overrides?.[step];
10
+ if (override)
11
+ style = { ...style, ...override };
12
+ }
13
+ return style;
14
+ }
15
+ /**
16
+ * Which breakpoint actually supplies the value shown for `key` — used to mark
17
+ * a field in the inspector as inherited rather than set here.
18
+ */
19
+ export function originOf(element, breakpoint, key, cascade = DEFAULT_CASCADE) {
20
+ let origin = baseOf(cascade).id;
21
+ for (const step of chainFor(cascade, breakpoint)) {
22
+ if (element.overrides?.[step]?.[key] !== undefined)
23
+ origin = step;
24
+ }
25
+ return origin;
26
+ }
27
+ export function hasOverride(element, breakpoint, key, cascade = DEFAULT_CASCADE) {
28
+ return (breakpoint !== baseOf(cascade).id &&
29
+ element.overrides?.[breakpoint]?.[key] !== undefined);
30
+ }
31
+ /**
32
+ * Writes style changes to the right layer: an edit on the base artboard
33
+ * changes the shared values, anywhere else accumulates an override so the
34
+ * other artboards keep theirs.
35
+ */
36
+ export function applyStyle(element, breakpoint, patch, cascade = DEFAULT_CASCADE) {
37
+ const baseId = baseOf(cascade).id;
38
+ if (breakpoint === baseId) {
39
+ const next = { ...element, base: { ...element.base, ...patch } };
40
+ // The base owns `base`, so an override under its own id is dead weight
41
+ // — usually left behind when the base moved. Clear it as we pass.
42
+ if (next.overrides?.[baseId]) {
43
+ const overrides = { ...next.overrides };
44
+ delete overrides[baseId];
45
+ next.overrides =
46
+ Object.keys(overrides).length > 0 ? overrides : undefined;
47
+ }
48
+ return next;
49
+ }
50
+ return {
51
+ ...element,
52
+ overrides: {
53
+ ...element.overrides,
54
+ [breakpoint]: { ...element.overrides?.[breakpoint], ...patch },
55
+ },
56
+ };
57
+ }
58
+ /** Keeps a base-breakpoint edit local by snapshotting the affected values on
59
+ * every other artboard before changing the shared desktop base. */
60
+ export function applyStyleIsolated(element, breakpoint, patch, breakpoints, cascade = DEFAULT_CASCADE) {
61
+ const keys = Object.keys(patch);
62
+ const baseId = baseOf(cascade).id;
63
+ const snapshots = new Map();
64
+ for (const target of breakpoints) {
65
+ if (target !== breakpoint && target !== baseId) {
66
+ snapshots.set(target, resolveStyle(element, target, cascade));
67
+ }
68
+ }
69
+ const updated = applyStyle(element, breakpoint, patch, cascade);
70
+ const overrides = { ...updated.overrides };
71
+ for (const [target, effective] of snapshots) {
72
+ const layer = { ...overrides[target] };
73
+ for (const key of keys)
74
+ layer[key] = effective[key];
75
+ overrides[target] = layer;
76
+ }
77
+ return { ...updated, overrides };
78
+ }
79
+ /** Drops overrides for `keys` at this breakpoint so they inherit again. */
80
+ export function clearOverrides(element, breakpoint, keys, cascade = DEFAULT_CASCADE) {
81
+ // The base artboard holds the shared values; there is nothing to clear.
82
+ if (breakpoint === baseOf(cascade).id)
83
+ return element;
84
+ const current = element.overrides?.[breakpoint];
85
+ if (!current)
86
+ return element;
87
+ const next = { ...current };
88
+ for (const key of keys)
89
+ delete next[key];
90
+ const overrides = { ...element.overrides };
91
+ if (Object.keys(next).length === 0)
92
+ delete overrides[breakpoint];
93
+ else
94
+ overrides[breakpoint] = next;
95
+ return { ...element, overrides };
96
+ }
97
+ /* ------------------------------------------------------------------ to CSS */
98
+ const JUSTIFY_MAP = {
99
+ start: "flex-start",
100
+ center: "center",
101
+ end: "flex-end",
102
+ between: "space-between",
103
+ };
104
+ const ALIGN_MAP = {
105
+ start: "flex-start",
106
+ center: "center",
107
+ end: "flex-end",
108
+ stretch: "stretch",
109
+ };
110
+ /**
111
+ * Turns a resolved style into inline CSS. Positioning depends on the parent:
112
+ * inside an absolute parent the element is placed at x/y, inside a stack it is
113
+ * a flex item whose sizing comes from widthMode/heightMode.
114
+ */
115
+ export function styleToCss(style, context, element) {
116
+ const css = {
117
+ boxSizing: "border-box",
118
+ display: "flex",
119
+ flexDirection: style.direction,
120
+ gap: style.gap || undefined,
121
+ justifyContent: JUSTIFY_MAP[style.justify],
122
+ alignItems: ALIGN_MAP[style.align],
123
+ flexWrap: style.wrap ? "wrap" : "nowrap",
124
+ paddingTop: style.padT || undefined,
125
+ paddingRight: style.padR || undefined,
126
+ paddingBottom: style.padB || undefined,
127
+ paddingLeft: style.padL || undefined,
128
+ backgroundColor: style.bg || undefined,
129
+ // A gradient and a photo can be layered; the gradient is painted first
130
+ // so it reads as a scrim over the image.
131
+ backgroundImage: [style.gradient, style.bgImage && `url("${style.bgImage}")`]
132
+ .filter(Boolean)
133
+ .join(", ") || undefined,
134
+ backgroundSize: style.bgImage ? style.bgSize : undefined,
135
+ backgroundPosition: style.bgImage ? style.bgPosition : undefined,
136
+ backgroundRepeat: style.bgImage ? "no-repeat" : undefined,
137
+ overflow: style.overflow === "visible" ? undefined : style.overflow,
138
+ aspectRatio: style.aspectRatio || undefined,
139
+ cursor: style.cursor === "auto" ? undefined : style.cursor,
140
+ mixBlendMode: style.blendMode === "normal" ? undefined : style.blendMode,
141
+ filter: style.blur ? `blur(${style.blur}px)` : undefined,
142
+ backdropFilter: style.backdropBlur
143
+ ? `blur(${style.backdropBlur}px)`
144
+ : undefined,
145
+ color: style.color,
146
+ borderRadius: style.radius || undefined,
147
+ opacity: style.opacity === 100 ? undefined : style.opacity / 100,
148
+ borderWidth: style.borderW || undefined,
149
+ borderColor: style.borderW ? style.borderC : undefined,
150
+ borderStyle: style.borderW ? style.borderStyle : undefined,
151
+ boxShadow: style.shadow || undefined,
152
+ transform: [
153
+ style.rotate ? `rotate(${style.rotate}deg)` : "",
154
+ style.scale === 100 ? "" : `scale(${style.scale / 100})`,
155
+ ]
156
+ .filter(Boolean)
157
+ .join(" ") || undefined,
158
+ fontFamily: style.fontFamily === "inherit" ? undefined : style.fontFamily,
159
+ fontSize: style.fontSize,
160
+ fontWeight: style.fontWeight,
161
+ lineHeight: style.lineHeight,
162
+ letterSpacing: style.letterSpacing || undefined,
163
+ textAlign: style.textAlign,
164
+ textTransform: style.textTransform,
165
+ };
166
+ // A Grid ignores the flex axis and lays its children out in columns.
167
+ if (element?.type === "Grid" && style.layout === "stack") {
168
+ css.display = "grid";
169
+ css.gridTemplateColumns = `repeat(${Math.max(1, style.columns)}, minmax(0, 1fr))`;
170
+ css.alignItems = ALIGN_MAP[style.align];
171
+ }
172
+ // An absolute container is still a positioning context for its children.
173
+ if (style.layout === "absolute") {
174
+ css.display = "block";
175
+ }
176
+ if (context.parentLayout === "absolute") {
177
+ css.position = "absolute";
178
+ css.left = style.x;
179
+ css.top = style.y;
180
+ css.width = style.widthMode === "fixed" ? style.w : "max-content";
181
+ css.height = style.heightMode === "fixed" ? style.h : "max-content";
182
+ if (style.widthMode === "fill")
183
+ css.width = "100%";
184
+ if (style.heightMode === "fill")
185
+ css.height = "100%";
186
+ const transforms = [];
187
+ if (style.constraintX === "center") {
188
+ css.left = `calc(50% + ${style.x}px)`;
189
+ transforms.push("translateX(-50%)");
190
+ }
191
+ else if (style.constraintX === "end") {
192
+ css.left = undefined;
193
+ css.right = style.x;
194
+ }
195
+ else if (style.constraintX === "stretch") {
196
+ css.left = style.x;
197
+ css.right = style.x;
198
+ css.width = "auto";
199
+ }
200
+ if (style.constraintY === "center") {
201
+ css.top = `calc(50% + ${style.y}px)`;
202
+ transforms.push("translateY(-50%)");
203
+ }
204
+ else if (style.constraintY === "end") {
205
+ css.top = undefined;
206
+ css.bottom = style.y;
207
+ }
208
+ else if (style.constraintY === "stretch") {
209
+ css.top = style.y;
210
+ css.bottom = style.y;
211
+ css.height = "auto";
212
+ }
213
+ if (css.transform)
214
+ transforms.push(String(css.transform));
215
+ css.transform = transforms.join(" ") || undefined;
216
+ return css;
217
+ }
218
+ // Sticky only means anything inside a flowing parent; in an absolute one
219
+ // the element is already taken out of the flow above.
220
+ css.position = style.position === "sticky" ? "sticky" : "relative";
221
+ if (style.position === "sticky")
222
+ css.top = style.stickyOffset;
223
+ const mainAxisIsWidth = context.parentDirection === "row";
224
+ applySize(css, "width", style.widthMode, style.w, mainAxisIsWidth);
225
+ applySize(css, "height", style.heightMode, style.h, !mainAxisIsWidth);
226
+ return css;
227
+ }
228
+ function applySize(css, axis, mode, value, isMainAxis) {
229
+ if (mode === "fixed") {
230
+ css[axis] = value;
231
+ if (isMainAxis)
232
+ css.flexShrink = 0;
233
+ // An explicit size already wins over the parent's `stretch`.
234
+ return;
235
+ }
236
+ if (mode === "auto") {
237
+ css[axis] = "auto";
238
+ if (isMainAxis)
239
+ css.flexGrow = 0;
240
+ // Without this the parent's `align-items: stretch` would blow an
241
+ // auto-sized element out to the full cross axis instead of hugging.
242
+ else
243
+ css.alignSelf = "flex-start";
244
+ return;
245
+ }
246
+ // fill
247
+ css[axis] = "auto";
248
+ if (isMainAxis) {
249
+ css.flexGrow = 1;
250
+ css.flexBasis = 0;
251
+ }
252
+ else {
253
+ css.alignSelf = "stretch";
254
+ }
255
+ }
256
+ /**
257
+ * A Section is a full-bleed band: its background reaches both edges of the
258
+ * viewport while the content inside stays within the page's content width.
259
+ * Capping the Section itself instead would box the background too, which is
260
+ * why the published page used to sit in a container the canvas never showed.
261
+ *
262
+ * Returns the outer shell and the centred inner box; the inner one keeps the
263
+ * flex/grid layout so children lay out exactly as before.
264
+ */
265
+ export function splitBand(css, contentWidth) {
266
+ const inner = {
267
+ boxSizing: "border-box",
268
+ display: css.display,
269
+ flexDirection: css.flexDirection,
270
+ gap: css.gap,
271
+ justifyContent: css.justifyContent,
272
+ alignItems: css.alignItems,
273
+ flexWrap: css.flexWrap,
274
+ gridTemplateColumns: css.gridTemplateColumns,
275
+ width: "100%",
276
+ maxWidth: contentWidth,
277
+ marginLeft: "auto",
278
+ marginRight: "auto",
279
+ };
280
+ const shell = { ...css };
281
+ // The inner box owns the layout now.
282
+ shell.flexDirection = undefined;
283
+ shell.gap = undefined;
284
+ shell.justifyContent = undefined;
285
+ shell.alignItems = undefined;
286
+ shell.flexWrap = undefined;
287
+ shell.gridTemplateColumns = undefined;
288
+ shell.display = "block";
289
+ return { shell, inner };
290
+ }
291
+ /** Whether this element should render as a full-bleed band. */
292
+ export function isBand(type, style, root) {
293
+ return type === "Section" && style.layout === "stack" && !root.fullWidth;
294
+ }
295
+ export function rootStyleToCss(root) {
296
+ return {
297
+ boxSizing: "border-box",
298
+ display: root.layout === "stack" ? "flex" : "block",
299
+ flexDirection: root.direction,
300
+ gap: root.gap || undefined,
301
+ alignItems: ALIGN_MAP[root.align],
302
+ paddingTop: root.padT || undefined,
303
+ paddingRight: root.padR || undefined,
304
+ paddingBottom: root.padB || undefined,
305
+ paddingLeft: root.padL || undefined,
306
+ backgroundColor: root.bg,
307
+ fontFamily: root.fontFamily === "inherit" ? undefined : root.fontFamily,
308
+ position: "relative",
309
+ minHeight: "100%",
310
+ width: "100%",
311
+ };
312
+ }
313
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../../src/internal/lib/editor/style.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { type Cascade } from "./cascade";
2
+ import { type Breakpoint, type CanvasElement, type ElementType, type LayoutMode } from "./types";
3
+ export declare function indexById(elements: CanvasElement[]): Map<string, CanvasElement>;
4
+ export declare function childrenOf(elements: CanvasElement[], parentId?: string): CanvasElement[];
5
+ /** The element plus every descendant. */
6
+ export declare function subtreeIds(elements: CanvasElement[], rootId: string): Set<string>;
7
+ export declare function removeSubtree(elements: CanvasElement[], rootId: string): CanvasElement[];
8
+ export declare function nextZ(elements: CanvasElement[], parentId?: string): number;
9
+ export declare function newId(): string;
10
+ export declare function createElement(type: ElementType, position: {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ parentId?: string;
15
+ }): CanvasElement;
16
+ /**
17
+ * Copies an element and everything under it, giving each node a fresh id while
18
+ * keeping the parent/child wiring intact.
19
+ */
20
+ export declare function cloneSubtree(elements: CanvasElement[], rootId: string, offset?: {
21
+ x: number;
22
+ y: number;
23
+ }): {
24
+ elements: CanvasElement[];
25
+ rootId: string;
26
+ } | null;
27
+ /** Absolute position on the canvas, accumulating every ancestor's offset. */
28
+ export declare function absolutePosition(byId: Map<string, CanvasElement>, element: CanvasElement, breakpoint: Breakpoint, cascade?: Cascade): {
29
+ x: number;
30
+ y: number;
31
+ };
32
+ export declare function isAncestor(byId: Map<string, CanvasElement>, maybeAncestorId: string, elementId: string): boolean;
33
+ export declare function displayName(element: CanvasElement): string;
34
+ /** Moves an element one step up or down among its siblings. */
35
+ export declare function reorder(elements: CanvasElement[], id: string, direction: "up" | "down"): CanvasElement[];
36
+ /**
37
+ * Inserts a Container between an element and its parent, sized to the element
38
+ * and taking over its slot, so a loose element can be grouped in one step.
39
+ */
40
+ export declare function wrapInContainer(elements: CanvasElement[], id: string, breakpoint: Breakpoint): {
41
+ elements: CanvasElement[];
42
+ wrapperId: string;
43
+ } | null;
44
+ /**
45
+ * Moves an element under a new parent, refusing the moves that would corrupt
46
+ * the tree (into itself, into a descendant, or into a leaf).
47
+ */
48
+ export declare function reparent(elements: CanvasElement[], id: string, newParentId: string | undefined, breakpoint: Breakpoint,
49
+ /** Insert before this sibling; appended last when omitted. */
50
+ beforeSiblingId?: string): CanvasElement[];
51
+ /**
52
+ * The deepest container under a point that can accept `draggedId`, or
53
+ * undefined for the page root.
54
+ */
55
+ export declare function containerAt(elements: CanvasElement[], byId: Map<string, CanvasElement>, point: {
56
+ x: number;
57
+ y: number;
58
+ }, breakpoint: Breakpoint, draggedId?: string): string | undefined;
59
+ /**
60
+ * An element parked beside the canvas is treated as a note: it stays visible
61
+ * while designing but is left out of the published page.
62
+ *
63
+ * Only the horizontal axis counts. The canvas has a definite width — the
64
+ * simulated viewport — while its height grows with the content, so "below the
65
+ * fold" is a normal place for content to be, not a margin.
66
+ */
67
+ export declare function isNote(element: CanvasElement, byId: Map<string, CanvasElement>, breakpoint: Breakpoint, frameWidth: number,
68
+ /** How the page root arranges its own children. */
69
+ rootLayout?: LayoutMode, cascade?: Cascade): boolean;
70
+ /** Ids of every note and everything inside one. */
71
+ export declare function noteIds(elements: CanvasElement[], byId: Map<string, CanvasElement>, breakpoint: Breakpoint, frameWidth: number, rootLayout?: LayoutMode, cascade?: Cascade): Set<string>;
72
+ //# sourceMappingURL=tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/internal/lib/editor/tree.ts"],"names":[],"mappings":"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"}