@particle-academy/fancy-cms-ui 0.6.0 → 0.7.0

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/dist/editor.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- export { C as Canvas, a as CanvasProps, E as Editor, b as EditorAction, c as EditorApi, d as EditorProps, e as EditorState, I as Inspector, f as InspectorProps, L as LayersPanel, g as LayersPanelProps, i as editorReduce, j as initEditor, u as useEditor } from './useEditor-DLBWS6j0.cjs';
1
+ export { C as Canvas, a as CanvasProps, E as Editor, b as EditorAction, c as EditorApi, d as EditorProps, e as EditorState, I as Inspector, f as InspectorProps, L as LayersPanel, g as LayersPanelProps, i as editorReduce, j as initEditor, u as useEditor } from './useEditor-CoxNeC53.cjs';
2
2
  import { ReactNode, ReactElement } from 'react';
3
- import { P as PageDoc, h as ElementRegistry, g as DataContext, N as Node, q as StyleProps, L as LayoutMode } from './registry-CvzbUd5E.cjs';
3
+ import { P as PageDoc, h as ElementRegistry, g as DataContext, N as Node, q as StyleProps, L as LayoutMode } from './registry-CiPir27w.cjs';
4
4
  import '@particle-academy/fancy-doc-commons';
5
5
 
6
6
  /** Animatable per-node transform (mirrors fancy-motion's NodeState, kept local to avoid a hard dep). */
package/dist/editor.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { C as Canvas, a as CanvasProps, E as Editor, b as EditorAction, c as EditorApi, d as EditorProps, e as EditorState, I as Inspector, f as InspectorProps, L as LayersPanel, g as LayersPanelProps, i as editorReduce, j as initEditor, u as useEditor } from './useEditor-DFHy1dWc.js';
1
+ export { C as Canvas, a as CanvasProps, E as Editor, b as EditorAction, c as EditorApi, d as EditorProps, e as EditorState, I as Inspector, f as InspectorProps, L as LayersPanel, g as LayersPanelProps, i as editorReduce, j as initEditor, u as useEditor } from './useEditor-DAE36OYU.js';
2
2
  import { ReactNode, ReactElement } from 'react';
3
- import { P as PageDoc, h as ElementRegistry, g as DataContext, N as Node, q as StyleProps, L as LayoutMode } from './registry-CvzbUd5E.js';
3
+ import { P as PageDoc, h as ElementRegistry, g as DataContext, N as Node, q as StyleProps, L as LayoutMode } from './registry-CiPir27w.js';
4
4
  import '@particle-academy/fancy-doc-commons';
5
5
 
6
6
  /** Animatable per-node transform (mirrors fancy-motion's NodeState, kept local to avoid a hard dep). */
package/dist/editor.js CHANGED
@@ -1,6 +1,6 @@
1
- import { useEditor, useLatestRef, CONTAINER_TYPES, ADD_DEFAULTS, ADD_MENU } from './chunk-LVOBZ2OO.js';
2
- export { Canvas, Editor, Inspector, LayersPanel, editorReduce, initEditor, useEditor } from './chunk-LVOBZ2OO.js';
3
- import { isBinding, lastRootId, childrenOf, CmsPage, defaultRegistry } from './chunk-TG5O4K75.js';
1
+ import { useEditor, useLatestRef, CONTAINER_TYPES, ADD_DEFAULTS, ADD_MENU } from './chunk-YOAZRQKN.js';
2
+ export { Canvas, Editor, Inspector, LayersPanel, editorReduce, initEditor, useEditor } from './chunk-YOAZRQKN.js';
3
+ import { isBinding, lastRootId, childrenOf, CmsPage, defaultRegistry } from './chunk-IWQQINCF.js';
4
4
  import { useState, useRef, useEffect, useCallback, useLayoutEffect } from 'react';
5
5
  import { ContextMenu } from '@particle-academy/react-fancy';
6
6
  import { fractionalKey } from '@particle-academy/fancy-doc-commons';
package/dist/index.cjs CHANGED
@@ -23,6 +23,39 @@ function emptyDoc(id, slug = "/") {
23
23
  nodes: {}
24
24
  };
25
25
  }
26
+
27
+ // src/document/bindings.ts
28
+ function isSource(v) {
29
+ return Array.isArray(v) && v.length > 0 && v.every((seg) => typeof seg === "string" || typeof seg === "number");
30
+ }
31
+ function isLiveBinding(v) {
32
+ return isBinding(v) && isSource(v.$source);
33
+ }
34
+ function eachBinding(value, visit) {
35
+ if (isBinding(value)) {
36
+ visit(value);
37
+ return;
38
+ }
39
+ if (Array.isArray(value)) {
40
+ for (const item of value) eachBinding(item, visit);
41
+ return;
42
+ }
43
+ if (typeof value === "object" && value !== null) {
44
+ for (const item of Object.values(value)) eachBinding(item, visit);
45
+ }
46
+ }
47
+ function bindingSources(doc) {
48
+ const seen = /* @__PURE__ */ new Map();
49
+ const take = (b) => {
50
+ if (!isLiveBinding(b)) return;
51
+ seen.set(JSON.stringify(b.$source), b.$source);
52
+ };
53
+ for (const node of Object.values(doc.nodes)) {
54
+ eachBinding(node.props, take);
55
+ if (node.repeat?.each) eachBinding(node.repeat.each, take);
56
+ }
57
+ return [...seen.values()];
58
+ }
26
59
  function childrenOf(doc, parent) {
27
60
  return fancyDocCommons.childrenOf(doc, parent);
28
61
  }
@@ -1079,6 +1112,7 @@ exports.Editor = Editor;
1079
1112
  exports.Inspector = Inspector;
1080
1113
  exports.LayersPanel = LayersPanel;
1081
1114
  exports.RenderNode = RenderNode;
1115
+ exports.bindingSources = bindingSources;
1082
1116
  exports.buildInsertOp = buildInsertOp;
1083
1117
  exports.childrenOf = childrenOf;
1084
1118
  exports.defaultRegistry = defaultRegistry;
@@ -1090,6 +1124,7 @@ exports.getPath = getPath;
1090
1124
  exports.initEditor = initEditor;
1091
1125
  exports.invert = invert;
1092
1126
  exports.isBinding = isBinding;
1127
+ exports.isLiveBinding = isLiveBinding;
1093
1128
  exports.lastRootId = lastRootId;
1094
1129
  exports.migrateDoc = migrateDoc;
1095
1130
  exports.migrateDocVerbose = migrateDocVerbose;