@jxsuite/studio 0.36.0 → 0.37.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/iframe-entry.js +18 -9
- package/dist/iframe-entry.js.map +4 -4
- package/dist/studio.js +11525 -2877
- package/dist/studio.js.map +64 -17
- package/package.json +4 -2
- package/src/canvas/canvas-render.ts +85 -12
- package/src/canvas/iframe-host.ts +85 -0
- package/src/canvas/iframe-overlay.ts +30 -1
- package/src/collab/collab-session.ts +903 -0
- package/src/collab/collab-state.ts +71 -0
- package/src/collab/monaco-cursors.ts +69 -0
- package/src/collab/presence-chips.ts +58 -0
- package/src/files/file-ops.ts +6 -0
- package/src/files/files.ts +6 -0
- package/src/panels/git-panel.ts +5 -0
- package/src/panels/toolbar.ts +13 -3
- package/src/platforms/cloud.ts +31 -0
- package/src/platforms/devserver.ts +37 -0
- package/src/studio.ts +17 -0
- package/src/tabs/doc-op-apply.ts +5 -81
- package/src/tabs/patch-ops.ts +7 -23
- package/src/tabs/transact.ts +138 -12
- package/src/types.ts +8 -0
- package/src/workspace/workspace.ts +4 -0
package/dist/iframe-entry.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/canvas/iframe-channel.ts", "../../../node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../runtime/src/expression.ts", "../../schema/src/guards.ts", "../../runtime/src/runtime.ts", "../src/canvas/path-mapping.ts", "../src/canvas/iframe-render.ts", "../src/utils/geometry.ts", "../src/state.ts", "../src/canvas/iframe-insert.ts", "../src/editor/inline-format.ts", "../src/editor/inline-edit.ts", "../src/canvas/iframe-interaction.ts", "../src/canvas/iframe-drop.ts", "../src/editor/inline-link.ts", "../src/utils/edit-display.ts", "../src/canvas/iframe-inline-edit.ts", "../src/canvas/iframe-slash.ts", "../src/canvas/iframe-keys.ts", "
|
|
3
|
+
"sources": ["../src/canvas/iframe-channel.ts", "../../../node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../runtime/src/expression.ts", "../../schema/src/guards.ts", "../../runtime/src/runtime.ts", "../src/canvas/path-mapping.ts", "../src/canvas/iframe-render.ts", "../src/utils/geometry.ts", "../src/state.ts", "../src/canvas/iframe-insert.ts", "../src/editor/inline-format.ts", "../src/editor/inline-edit.ts", "../src/canvas/iframe-interaction.ts", "../src/canvas/iframe-drop.ts", "../src/editor/inline-link.ts", "../src/utils/edit-display.ts", "../src/canvas/iframe-inline-edit.ts", "../src/canvas/iframe-slash.ts", "../src/canvas/iframe-keys.ts", "../../collab/src/ops.ts", "../src/utils/strip-events.ts", "../src/canvas/iframe-subtree.ts", "../src/canvas/iframe-patch.ts", "../src/canvas/serialize-scope.ts", "../src/canvas/iframe-entry.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/// <reference lib=\"dom\" />\n/**\n * IframeChannel — the typed message boundary between the editor (parent) and the canvas iframe.\n *\n * Per the migration's cross-origin bridge decision, the parent never touches the iframe's\n * `contentDocument`; everything (render commands, patches, geometry, selection, hit-tests) crosses\n * as serializable messages through this one interface. Phases 1+ instantiate it with concrete\n * message unions (`ParentToIframe`/`IframeToParent`); this module owns only the transport contract\n * plus an in-memory `fakeChannelPair` so cross-frame logic is unit-testable without a live iframe.\n */\n\n/**\n * A typed, bidirectional message channel. `TOut` is what this side sends; `TIn` is what it\n * receives. Implementations: a real `postMessage` channel over an `<iframe>` (added with the iframe\n * host), and {@link fakeChannelPair} for tests.\n */\nexport interface IframeChannel<TOut, TIn> {\n /** Send a message to the other side. */\n post: (message: TOut) => void;\n /** Subscribe to messages from the other side. Returns an unsubscribe function. */\n onMessage: (handler: (message: TIn) => void) => () => void;\n /** Detach all handlers and release the transport. */\n dispose: () => void;\n}\n\n/** Envelope key that tags every cross-frame message so foreign `message` events are ignored. */\nconst ENVELOPE = \"jx:canvas\";\n\ninterface PostMessageTarget {\n postMessage: (message: unknown, targetOrigin: string) => void;\n}\n\ninterface MessageSource {\n addEventListener: (type: \"message\", listener: (event: MessageEvent) => void) => void;\n removeEventListener: (type: \"message\", listener: (event: MessageEvent) => void) => void;\n}\n\n/**\n * A real `IframeChannel` over `window.postMessage`. Outbound messages are wrapped in an envelope\n * tagged with a shared `token`; inbound messages are dropped unless their `event.origin` matches\n * `acceptOrigin` (pass `\"*\"` to skip the origin check) AND they carry the same token. This is the\n * origin + secret-token authentication that keeps other local pages from driving the canvas.\n *\n * Parent side: `target` = the iframe's `contentWindow`, `source` = `window`, origins = the iframe\n * origin. Iframe side: `target` = `window.parent`, `source` = `window`, origins = the editor\n * origin.\n */\nexport function postMessageChannel<TOut, TIn>(opts: {\n target: PostMessageTarget;\n source: MessageSource;\n targetOrigin: string;\n acceptOrigin: string;\n token: string;\n}): IframeChannel<TOut, TIn> {\n const { target, source, targetOrigin, acceptOrigin, token } = opts;\n const handlers = new Set<(message: TIn) => void>();\n\n const listener = (event: MessageEvent) => {\n if (acceptOrigin !== \"*\" && event.origin !== acceptOrigin) {\n return;\n }\n const data = event.data as { [ENVELOPE]?: string; payload?: TIn } | null;\n if (!data || typeof data !== \"object\" || data[ENVELOPE] !== token) {\n return;\n }\n for (const handler of handlers) {\n handler(data.payload as TIn);\n }\n };\n source.addEventListener(\"message\", listener);\n\n return {\n dispose() {\n handlers.clear();\n source.removeEventListener(\"message\", listener);\n },\n onMessage(handler) {\n handlers.add(handler);\n return () => handlers.delete(handler);\n },\n post(message) {\n target.postMessage({ [ENVELOPE]: token, payload: message }, targetOrigin);\n },\n };\n}\n\n/**\n * Two in-memory channels wired to each other for tests. A message `parent.post(x)` is delivered to\n * the `iframe` side's handlers (and vice versa) only when `flush()` is called — so tests drive the\n * inherently-async postMessage ordering deterministically. Messages posted _during_ a flush are\n * queued for the next flush, never delivered re-entrantly.\n */\nexport function fakeChannelPair<ParentOut, IframeOut>(): {\n parent: IframeChannel<ParentOut, IframeOut>;\n iframe: IframeChannel<IframeOut, ParentOut>;\n flush: () => void;\n /** Number of messages waiting to be delivered (both directions). */\n pending: () => number;\n} {\n let toIframe: ParentOut[] = [];\n let toParent: IframeOut[] = [];\n const iframeHandlers = new Set<(m: ParentOut) => void>();\n const parentHandlers = new Set<(m: IframeOut) => void>();\n\n const parent: IframeChannel<ParentOut, IframeOut> = {\n dispose() {\n parentHandlers.clear();\n },\n onMessage(handler) {\n parentHandlers.add(handler);\n return () => parentHandlers.delete(handler);\n },\n post(message) {\n toIframe.push(message);\n },\n };\n\n const iframe: IframeChannel<IframeOut, ParentOut> = {\n dispose() {\n iframeHandlers.clear();\n },\n onMessage(handler) {\n iframeHandlers.add(handler);\n return () => iframeHandlers.delete(handler);\n },\n post(message) {\n toParent.push(message);\n },\n };\n\n function flush() {\n const forIframe = toIframe;\n const forParent = toParent;\n toIframe = [];\n toParent = [];\n for (const message of forIframe) {\n for (const handler of iframeHandlers) {\n handler(message);\n }\n }\n for (const message of forParent) {\n for (const handler of parentHandlers) {\n handler(message);\n }\n }\n }\n\n return {\n flush,\n iframe,\n parent,\n pending: () => toIframe.length + toParent.length,\n };\n}\n",
|
|
6
6
|
"/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n",
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
"/// <reference lib=\"dom\" />\n/**\n * In-iframe inline editing — runs the contenteditable session INSIDE the canvas iframe (Selection /\n * Range / execCommand are per-realm singletons bound to their document, so the editing must happen\n * where the edited DOM lives) and posts the serializable results to the parent, which applies them\n * via transactDoc. Double-click enters editing; the parent posts `enterEdit` to re-enter on the new\n * element after a split/insert re-renders.\n *\n * Phase 4b-2 adds the format-toolbar bridge: the iframe owns the Selection and posts a serializable\n * `selectionChanged` snapshot (active tags + caret rect + link state + seq); the parent toolbar\n * renders pressed-state/position from it and posts `applyFormat` intents back, which this module\n * applies to the iframe's cached range. The parent NEVER reads the iframe DOM/Selection.\n *\n * NOTE ON REALM ISOLATION (unit tests can't prove it): the session engine (`inline-edit.ts` +\n * `inline-format.ts`) and `inline-link.ts` are bundled into the iframe and use ambient\n * `window`/`document`, so at runtime `window === iframe.contentWindow`. Under happy-dom there is\n * one shared global, so the cross-realm focus/Selection behavior (a parent-toolbar click blurring\n * the iframe; CSS Custom Highlight painting) is STRUCTURAL, verified by CDP — not by this unit\n * suite.\n */\n\nimport {\n getActiveElement,\n isEditableBlock,\n isEditing,\n isSlashActive,\n resumeBlurClose,\n startEditing,\n stopEditing,\n suspendBlurClose,\n} from \"../editor/inline-edit\";\nimport { isTagActiveInSelection, toggleInlineFormat } from \"../editor/inline-format\";\nimport { applyLink, insertTemplateToken, linkStateForSelection } from \"../editor/inline-link\";\nimport { restoreTemplateExpressions } from \"../utils/edit-display\";\nimport { rectOfRange } from \"../utils/geometry\";\nimport { parseJxPath, serializeJxPath } from \"./path-mapping\";\nimport type { IframeChannel } from \"./iframe-channel\";\nimport type {\n ApplyFormatIntent,\n IframeToParent,\n ParentToIframe,\n SelectionSnapshot,\n SerializableRect,\n} from \"./iframe-protocol\";\nimport type { JxPath } from \"../state\";\n\n/** Toolbar command → inline tag (mirrors the parent's old `cmdToTag`, now iframe-side). */\nconst CMD_TO_TAG: Record<string, string> = {\n bold: \"strong\",\n code: \"code\",\n italic: \"em\",\n strikethrough: \"del\",\n subscript: \"sub\",\n superscript: \"sup\",\n underline: \"u\",\n};\n\n/** Inline tags whose active state the snapshot reports (everything except `a`, handled via link). */\nconst ACTIVE_TAG_PROBES = [\"strong\", \"em\", \"u\", \"del\", \"sub\", \"sup\", \"code\"];\n\n/** CSS Custom Highlight name + the id of the injected `::highlight()` style rule. */\nconst HIGHLIGHT_NAME = \"jx-pending-format\";\nconst HIGHLIGHT_STYLE_ID = \"jx-pending-format-style\";\n\n/** Walk up from an event target to the nearest editable element carrying a `data-jx-path`. */\nfunction findEditableTarget(target: EventTarget | null): { el: HTMLElement; path: JxPath } | null {\n let el = target instanceof Element ? target : null;\n while (el) {\n if (el instanceof HTMLElement && el.dataset.jxPath && isEditableBlock(el)) {\n return { el, path: parseJxPath(el.dataset.jxPath) };\n }\n el = el.parentElement;\n }\n return null;\n}\n\n/** Locate the rendered element for a document path via its stamped `data-jx-path`. */\nfunction elementForPath(container: HTMLElement, path: JxPath): HTMLElement | null {\n const serialized = serializeJxPath(path);\n const esc = serialized.replaceAll(\"\\\\\", String.raw`\\\\`).replaceAll(\"'\", String.raw`\\'`);\n const el = container.querySelector(`[data-jx-path='${esc}']`);\n return el instanceof HTMLElement ? el : null;\n}\n\n/** A DOMRect → the serializable rect shape the snapshot carries (iframe-viewport coords). */\nfunction toSerializableRect(rect: DOMRect): SerializableRect {\n return { height: rect.height, width: rect.width, x: rect.x, y: rect.y };\n}\n\n/**\n * Wire double-click → inline editing on `container`'s editable elements, the parent `enterEdit`\n * re-entry, the selection-snapshot post stream, and the `applyFormat` apply path. The session's\n * onCommit/onSplit/onInsert/onEnd results are posted to the parent. Returns a teardown function.\n */\nexport function startIframeInlineEdit(\n channel: IframeChannel<IframeToParent, ParentToIframe>,\n container: HTMLElement,\n opts?: { getMode?: () => string },\n): () => void {\n const doc = container.ownerDocument;\n\n // Inline editing exists only in design/edit renders — a stylebook (or preview) render must not\n // Start a contenteditable session on its nodes. An absent getMode is permissive (tests).\n const editingAllowed = () => {\n const mode = opts?.getMode?.();\n return mode === undefined || mode === \"design\" || mode === \"edit\";\n };\n\n // The most recent non-empty range inside the active editable. Cached AGGRESSIVELY (not just on\n // Selectionchange) because focus can collapse the live selection before the post-blur event runs.\n let lastNonEmptyRange: Range | null = null;\n // Monotonic per session; the parent drops stale snapshots.\n let seq = 0;\n\n /** The live selection's first range, if it sits inside the active editable. */\n const liveRangeInEditable = (el: HTMLElement): Range | null => {\n const sel = window.getSelection();\n if (!sel || !sel.rangeCount) {\n return null;\n }\n const range = sel.getRangeAt(0);\n return el.contains(range.commonAncestorContainer) ? range : null;\n };\n\n /** Cache the live range when it's non-empty and inside the active editable. */\n const cacheRange = () => {\n const el = getActiveElement();\n if (!el) {\n return;\n }\n const range = liveRangeInEditable(el);\n if (range && !range.collapsed) {\n lastNonEmptyRange = range.cloneRange();\n }\n };\n\n /**\n * Inject the `::highlight()` rule once so the cached range is visible while the toolbar has\n * focus.\n */\n const ensureHighlightStyle = () => {\n if (doc.querySelector(`#${HIGHLIGHT_STYLE_ID}`)) {\n return;\n }\n const style = doc.createElement(\"style\");\n style.id = HIGHLIGHT_STYLE_ID;\n style.textContent = `::highlight(${HIGHLIGHT_NAME}) { background-color: Highlight; color: HighlightText; }`;\n doc.head.append(style);\n };\n\n /**\n * Paint (or clear) the cached range via the CSS Custom Highlight API so the selection stays\n * visible while the parent link-URL field is focused. Feature-detected: happy-dom lacks\n * `Highlight`/`CSS.highlights`, so this is a silent no-op there (and in non-Chromium engines).\n */\n const updateHighlight = () => {\n const HighlightCtor = (globalThis as { Highlight?: unknown }).Highlight as\n | (new (range: Range) => unknown)\n | undefined;\n const highlights = (globalThis.CSS as unknown as { highlights?: Map<string, unknown> })\n ?.highlights;\n if (!HighlightCtor || !highlights) {\n return;\n }\n if (lastNonEmptyRange && lastNonEmptyRange.startContainer.isConnected) {\n ensureHighlightStyle();\n highlights.set(HIGHLIGHT_NAME, new HighlightCtor(lastNonEmptyRange.cloneRange()));\n } else {\n highlights.delete(HIGHLIGHT_NAME);\n }\n };\n\n /** Tear down the Custom Highlight (on teardown / real editEnd). */\n const clearHighlight = () => {\n const highlights = (globalThis.CSS as unknown as { highlights?: Map<string, unknown> })\n ?.highlights;\n highlights?.delete(HIGHLIGHT_NAME);\n };\n\n /**\n * Build the serializable selection snapshot from the live selection (falling back to the cached\n * range for geometry when the live one collapsed). Returns null when no session is active.\n */\n const buildSnapshot = (): SelectionSnapshot | null => {\n const el = getActiveElement();\n if (!el || !el.dataset.jxPath) {\n return null;\n }\n const liveRange = liveRangeInEditable(el);\n const geomRange = liveRange ?? lastNonEmptyRange;\n const rect = geomRange ? toSerializableRect(rectOfRange(geomRange)) : null;\n const collapsed = liveRange ? liveRange.collapsed : true;\n\n const activeTags = ACTIVE_TAG_PROBES.filter((tag) => isTagActiveInSelection(tag, el));\n const link = linkStateForSelection(el);\n if (link.active) {\n activeTags.push(\"a\");\n }\n\n seq += 1;\n return {\n activeTags,\n collapsed,\n kind: \"selectionChanged\",\n link,\n localScope: null,\n path: parseJxPath(el.dataset.jxPath),\n rect,\n seq,\n };\n };\n\n /** Recompute + post a snapshot (and repaint the highlight) when a session is live. */\n const onSelectionChange = () => {\n if (!isEditing()) {\n return;\n }\n // Cache the (possibly just-changed) live range BEFORE painting/snapshotting so the highlight and\n // The snapshot reflect the current selection — selectionchange is one of the aggressive triggers.\n cacheRange();\n updateHighlight();\n const snapshot = buildSnapshot();\n if (snapshot) {\n channel.post(snapshot);\n }\n };\n\n const enterEditAt = (el: HTMLElement, path: JxPath) => {\n // Show raw `${expr}` syntax for editing (the render displays it as ❪ expr ❫).\n restoreTemplateExpressions(el);\n channel.post({ kind: \"editStart\", path });\n // While the session is live the parent toolbar/popover may take focus — a blur must not tear\n // The session down across the bridge (focus-loss BLOCKER fix).\n suspendBlurClose();\n startEditing(el, path, {\n onCommit: (p, children, textContent) =>\n channel.post({ children, kind: \"editCommit\", path: p, textContent }),\n onEnd: () => {\n // A real session end: stop suspending blur-close and drop the selection viz.\n resumeBlurClose();\n clearHighlight();\n lastNonEmptyRange = null;\n channel.post({ kind: \"editEnd\" });\n },\n onInsert: (p, cmd, commitData) =>\n channel.post({ cmd, commitData, kind: \"editInsert\", path: p }),\n onSplit: (p, before, after) => channel.post({ after, before, kind: \"editSplit\", path: p }),\n });\n // Post an initial (collapsed-caret) snapshot so the toolbar shows on entry.\n cacheRange();\n onSelectionChange();\n };\n\n /** Apply a format/link/insert intent to the iframe's cached selection range. */\n const applyFormatIntent = (intent: ApplyFormatIntent) => {\n const el = getActiveElement();\n if (!el) {\n return; // Session not active → no-op.\n }\n // Restore the cached range ONLY if it's still usable (the DOM may have re-rendered).\n if (\n lastNonEmptyRange &&\n lastNonEmptyRange.startContainer.isConnected &&\n el.contains(lastNonEmptyRange.commonAncestorContainer)\n ) {\n const sel = window.getSelection();\n el.focus();\n sel?.removeAllRanges();\n sel?.addRange(lastNonEmptyRange);\n }\n\n if (intent.command === \"link\") {\n applyLink(el, intent.href);\n } else if (intent.command === \"insertData\") {\n insertTemplateToken(el, intent.token);\n } else {\n const tag = CMD_TO_TAG[intent.command];\n if (tag) {\n toggleInlineFormat(tag, el);\n }\n }\n\n // Re-emit so the parent's pressed-state/position updates. The parent guards re-render of an\n // OPEN link popover (so this won't yank a mid-edit URL field).\n cacheRange();\n onSelectionChange();\n };\n\n const onDblClick = (e: Event) => {\n if (!editingAllowed()) {\n return;\n }\n const hit = findEditableTarget(e.target);\n if (hit) {\n enterEditAt(hit.el, hit.path);\n }\n };\n\n const onMouseUp = () => cacheRange();\n const onKeyUp = () => cacheRange();\n // Capture-phase blur: cache the range before focus moves out (the bubbling blur fires too late).\n const onBlurCapture = () => cacheRange();\n\n /**\n * Commit-on-click-away: a pointerdown INSIDE the iframe but OUTSIDE the active editable ends the\n * session (committing via the engine's stopEditing → onCommit). Blur-close stays suspended for\n * the whole session (a parent-toolbar click across the bridge must not kill it), so without this\n * an in-canvas click-away would never commit — text edits would never reach the document.\n */\n const onPointerDownCapture = (e: Event) => {\n if (!isEditing() || isSlashActive()) {\n return;\n }\n const el = getActiveElement();\n if (el && e.target instanceof Node && !el.contains(e.target)) {\n stopEditing();\n }\n };\n\n doc.addEventListener(\"dblclick\", onDblClick, true);\n doc.addEventListener(\"selectionchange\", onSelectionChange);\n doc.addEventListener(\"mouseup\", onMouseUp, true);\n doc.addEventListener(\"keyup\", onKeyUp, true);\n doc.addEventListener(\"blur\", onBlurCapture, true);\n doc.addEventListener(\"pointerdown\", onPointerDownCapture, true);\n\n const off = channel.onMessage((msg) => {\n if (msg.kind === \"applyFormat\") {\n applyFormatIntent(msg.intent);\n return;\n }\n if (msg.kind === \"endEdit\") {\n // The parent detected intent leaving the edit surface in ITS realm (tab switch, chrome click\n // Outside the edit toolbars) — commit and end, a no-op when no session is live.\n if (isEditing()) {\n stopEditing();\n }\n return;\n }\n if (msg.kind !== \"enterEdit\") {\n return;\n }\n if (!editingAllowed()) {\n return;\n }\n const el = elementForPath(container, msg.path);\n if (el && isEditableBlock(el)) {\n enterEditAt(el, msg.path);\n }\n });\n\n return () => {\n doc.removeEventListener(\"dblclick\", onDblClick, true);\n doc.removeEventListener(\"selectionchange\", onSelectionChange);\n doc.removeEventListener(\"mouseup\", onMouseUp, true);\n doc.removeEventListener(\"keyup\", onKeyUp, true);\n doc.removeEventListener(\"blur\", onBlurCapture, true);\n doc.removeEventListener(\"pointerdown\", onPointerDownCapture, true);\n off();\n clearHighlight();\n lastNonEmptyRange = null;\n resumeBlurClose();\n if (isEditing()) {\n stopEditing();\n }\n };\n}\n",
|
|
23
23
|
"/// <reference lib=\"dom\" />\n/**\n * Iframe-realm slash-menu bridge — the inline-edit engine detects \"/\" and drives a DI'd\n * {@link SlashController}; the real lit/Spectrum menu can't render in the slim iframe bundle, so\n * this controller proxies it across the postMessage bridge. It posts `slashShow` (with the edited\n * element's IFRAME-VIEWPORT rect + the typed filter) / `slashDismiss`; the host shows the parent\n * menu and posts back `slashSelect` / `slashDismissed`.\n *\n * While the menu is open, the four navigation keys are intercepted here CAPTURE-PHASE — before the\n * engine's element-level keydown — and posted as `slashNav` for the parent menu's key handler. That\n * restores the legacy \"shared slash menu captures Enter\" contract (the engine's own Enter handler\n * defers when `slash.isOpen()`), and keeps Escape from ending the edit session while the menu is\n * up.\n */\n\nimport { setSlashController } from \"../editor/inline-edit\";\nimport { rectOf } from \"../utils/geometry\";\nimport type { SlashCommand, SlashController } from \"../editor/inline-edit\";\nimport type { IframeChannel } from \"./iframe-channel\";\nimport type { IframeToParent, ParentToIframe } from \"./iframe-protocol\";\n\ntype SlashNavKey = Extract<IframeToParent, { kind: \"slashNav\" }>[\"key\"];\n\nconst NAV_KEYS = new Set([\"ArrowUp\", \"ArrowDown\", \"Enter\", \"Escape\"]);\n\n/**\n * Register the bridge SlashController for this iframe realm and wire its keyboard/dismissal\n * listeners. Returns a teardown function (restores a no-op controller).\n */\nexport function startIframeSlashBridge(\n channel: IframeChannel<IframeToParent, ParentToIframe>,\n doc: Document,\n): () => void {\n let open = false;\n // Kept across `slashDismissed`: the parent's select() dismisses the menu BEFORE it fires\n // OnSelect, so a slashSelect legitimately arrives after the dismissal notification.\n let onSelect: ((cmd: SlashCommand) => void) | null = null;\n let lastPostedFilter: string | null = null;\n\n const controller: SlashController = {\n dismiss: () => {\n if (!open) {\n return;\n }\n open = false;\n lastPostedFilter = null;\n channel.post({ kind: \"slashDismiss\" });\n },\n isOpen: () => open,\n show: (anchorEl, filter, cbs) => {\n ({ onSelect } = cbs);\n if (open && filter === lastPostedFilter) {\n return;\n }\n open = true;\n lastPostedFilter = filter;\n const r = rectOf(anchorEl);\n channel.post({\n filter,\n kind: \"slashShow\",\n rect: { height: r.height, width: r.width, x: r.left, y: r.top },\n });\n },\n };\n setSlashController(controller);\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (!open || !NAV_KEYS.has(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n channel.post({ key: e.key as SlashNavKey, kind: \"slashNav\" });\n };\n const onMouseDown = () => {\n // The parent menu's outside-click listener can't see iframe clicks — any in-iframe press while\n // The menu is open dismisses it (legacy parity: the popover is never inside this document). The\n // Engine's click-away commit is gated on slash.isOpen(), so the dismissal wins and the edit\n // Session survives the click.\n if (open) {\n controller.dismiss();\n }\n };\n doc.addEventListener(\"keydown\", onKeyDown, true);\n doc.addEventListener(\"mousedown\", onMouseDown, true);\n\n const off = channel.onMessage((msg) => {\n if (msg.kind === \"slashSelect\") {\n open = false;\n lastPostedFilter = null;\n onSelect?.({ ...msg.cmd });\n return;\n }\n if (msg.kind === \"slashDismissed\") {\n open = false;\n lastPostedFilter = null;\n }\n });\n\n return () => {\n doc.removeEventListener(\"keydown\", onKeyDown, true);\n doc.removeEventListener(\"mousedown\", onMouseDown, true);\n off();\n setSlashController({\n dismiss: () => {\n // Bridge torn down — no menu in this realm.\n },\n isOpen: () => false,\n show: () => {\n // Bridge torn down — no menu in this realm.\n },\n });\n };\n}\n",
|
|
24
24
|
"/// <reference lib=\"dom\" />\n/**\n * In-iframe keyboard forwarding. Studio's shortcuts are bound to the EDITOR document, so once focus\n * moves into the canvas iframe (a click selects a node there) undo/redo/save/delete/duplicate/arrow\n * navigation stop firing. This captures the global-shortcut subset inside the iframe, prevents the\n * browser default, and posts a flattened event the parent re-dispatches to its shortcut handler.\n *\n * The subset mirrors `editor/shortcuts.ts`: any Ctrl/Cmd combo, plus the bare editing/navigation\n * keys. Keystrokes while an editable element (input / contenteditable — e.g. a future inline edit)\n * is focused inside the iframe are left alone so typing still works.\n */\n\nimport { cancelIframeDrag, isDragActive } from \"./iframe-drop\";\nimport type { IframeChannel } from \"./iframe-channel\";\nimport type { IframeToParent, ParentToIframe, SerializedKey } from \"./iframe-protocol\";\n\n/** Bare (non-modifier) keys the editor's shortcut handler acts on. */\nconst BARE_FORWARD_KEYS: ReadonlySet<string> = new Set([\n \"Delete\",\n \"Backspace\",\n \"Escape\",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n]);\n\n/** Whether `el` is a text-entry target whose own keystrokes must not be hijacked. */\nfunction isEditableTarget(el: EventTarget | null): boolean {\n if (!(el instanceof HTMLElement)) {\n return false;\n }\n if (el.isContentEditable) {\n return true;\n }\n return el.tagName === \"INPUT\" || el.tagName === \"TEXTAREA\" || el.tagName === \"SELECT\";\n}\n\n/** Whether this keydown belongs to the global-shortcut subset the parent handles. */\nexport function shouldForwardKey(e: KeyboardEvent): boolean {\n if (isEditableTarget(e.target)) {\n return false;\n }\n return e.ctrlKey || e.metaKey || BARE_FORWARD_KEYS.has(e.key);\n}\n\n/** Flatten a KeyboardEvent to the structured-cloneable subset the bridge carries. */\nexport function serializeKey(e: KeyboardEvent): SerializedKey {\n return {\n altKey: e.altKey,\n code: e.code,\n ctrlKey: e.ctrlKey,\n key: e.key,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n };\n}\n\n/**\n * Listen for global-shortcut keystrokes on the iframe document, prevent their default, and forward\n * them to the parent. Returns a teardown function.\n */\nexport function startKeyForwarding(\n channel: IframeChannel<IframeToParent, ParentToIframe>,\n doc: Document = document,\n): () => void {\n const onKey = (e: KeyboardEvent) => {\n // Escape during a flow-3 (iframe-originated) drag cancels locally — the iframe owns cancel for\n // That case (single-sourced through iframe-drop), so it must NOT also forward Escape to the\n // Parent (which would tear down via a second path and double-fire).\n if (e.key === \"Escape\" && isDragActive()) {\n e.preventDefault();\n cancelIframeDrag();\n return;\n }\n if (!shouldForwardKey(e)) {\n return;\n }\n e.preventDefault();\n channel.post({ event: serializeKey(e), kind: \"forwardKey\" });\n };\n doc.addEventListener(\"keydown\", onKey, true);\n return () => doc.removeEventListener(\"keydown\", onKey, true);\n}\n",
|
|
25
|
-
"/**\n *
|
|
25
|
+
"/**\n * The canonical Jx document-op vocabulary and its pure applier. A `JxDocOp` is a value-carrying,\n * replayable mutation of a plain-JSON Jx document tree, addressed by `JxPath` (alternating\n * \"children\" / index segments for structure, plus node keys). Studio's transaction pipeline records\n * forward/inverse pairs of these for history replay; the collab bridge mirrors them into a shared\n * Y.Doc.\n *\n * This module is deliberately yjs-free and dependency-light: the slim canvas-iframe bundle imports\n * the applier for its non-reactive shadow doc, and it MUST stay byte-identical in behavior to the\n * parent's history replay — both sides import this one implementation.\n */\n\nimport type { JxMutableNode, JxPath } from \"@jxsuite/schema/types\";\n\n/** Value-carrying document mutation, replayable in either direction. */\nexport type JxDocOp =\n /** Set (or delete, when value is undefined) a key on the node at path. */\n | { op: \"set-key\"; path: JxPath; key: string; value?: unknown }\n /** Insert a node at parentPath.children[index]. */\n | { op: \"insert-child\"; parentPath: JxPath; index: number; node: unknown }\n /** Remove parentPath.children[index]. */\n | { op: \"remove-child\"; parentPath: JxPath; index: number }\n /** Replace parentPath.children[index] with node. */\n | { op: \"set-child\"; parentPath: JxPath; index: number; node: unknown }\n /** Raw two-splice move: remove fromParent.children[fromIndex], insert at toParent[toIndex]. */\n | {\n op: \"move-child\";\n fromParentPath: JxPath;\n fromIndex: number;\n toParentPath: JxPath;\n toIndex: number;\n };\n\nexport interface JxDocOpPair {\n forward: JxDocOp;\n inverse: JxDocOp;\n}\n\n/** JSON round-trip clone — also normalizes away reactive proxies / functions / undefined. */\nfunction jsonClone<T>(value: T): T {\n // oxlint-disable-next-line unicorn/prefer-structured-clone -- structuredClone throws on reactive proxies; JSON normalization is the point\n return JSON.parse(JSON.stringify(value)) as T;\n}\n\n/** Deep-clone a recorded value (undefined/null pass through; reactive proxies are read through). */\nexport function cloneValue<T>(v: T): T {\n return v === undefined || v === null ? v : (jsonClone(v as object) as T);\n}\n\n/**\n * Walk a plain document tree by path. Paths address nodes by construction; missing segments and\n * non-node leaves surface as undefined (typed as node for caller ergonomics, matching Studio's\n * historical helper).\n */\nexport function getNodeAtPath(doc: JxMutableNode, path: JxPath): JxMutableNode {\n let node = doc;\n for (const key of path) {\n if (node == null) {\n return undefined as unknown as JxMutableNode;\n }\n node = node[key] as JxMutableNode;\n }\n return node;\n}\n\n/** The node's children array, lazily created; throws if `node` is itself a children array or mapped. */\nexport function childArray(node: JxMutableNode): (JxMutableNode | string)[] {\n // Defense-in-depth: a path that resolves to a children array (rather than a node) would\n // Otherwise get a bogus `.children` property tacked on here, silently storing the insert where\n // Nothing renders. Callers must pass a node; fail loudly if they don't.\n if (Array.isArray(node)) {\n throw new TypeError(\"Cannot insert into a children array; parentPath must point at a node\");\n }\n if (!node.children) {\n node.children = [];\n }\n if (!Array.isArray(node.children)) {\n throw new TypeError(\"Cannot insert into mapped-array children; edit the map template instead\");\n }\n return node.children;\n}\n\n/**\n * Apply a replayable doc op to a bare document tree. Values/nodes are cloned in, so the tree never\n * aliases the op object. Throws (with a machine-readable reason) when a target path is missing.\n */\nexport function applyDocOpToDoc(doc: JxMutableNode, op: JxDocOp): void {\n switch (op.op) {\n case \"set-key\": {\n const node = getNodeAtPath(doc, op.path);\n if (!node) {\n throw new Error(`doc-op-node-not-found:${op.path.join(\"/\")}`);\n }\n const target = node as Record<string, unknown>;\n if (op.value === undefined) {\n delete target[op.key];\n } else {\n target[op.key] = cloneValue(op.value);\n }\n return;\n }\n case \"insert-child\": {\n const parent = getNodeAtPath(doc, op.parentPath);\n childArray(parent).splice(op.index, 0, cloneValue(op.node) as JxMutableNode);\n return;\n }\n case \"remove-child\": {\n const parent = getNodeAtPath(doc, op.parentPath);\n childArray(parent).splice(op.index, 1);\n return;\n }\n case \"set-child\": {\n const parent = getNodeAtPath(doc, op.parentPath);\n childArray(parent).splice(op.index, 1, cloneValue(op.node) as JxMutableNode);\n return;\n }\n case \"move-child\": {\n const fromParent = getNodeAtPath(doc, op.fromParentPath);\n const toParent = getNodeAtPath(doc, op.toParentPath);\n const [node] = childArray(fromParent).splice(op.fromIndex, 1);\n childArray(toParent).splice(op.toIndex, 0, node!);\n return;\n }\n default: {\n throw new Error(`unknown-doc-op:${(op as JxDocOp).op}`);\n }\n }\n}\n",
|
|
26
26
|
"/**\n * Strip `on*` event-handler bindings from a Jx document tree (returns a shallow-rebuilt copy). Used\n * to neutralize handlers before edit/design rendering so the canvas never wires live behavior, and\n * to drop `timing: \"server\"` state entries the canvas can't run.\n *\n * Lives in its own dependency-light module (it pulls only the pure `@jxsuite/schema/guards`\n * predicate) so the slim canvas-iframe subtree renderer can import it without dragging in the\n * editor's reactive `store.ts`; `store.ts` re-exports it for the legacy in-realm patcher.\n */\n\nimport { isEventBinding } from \"@jxsuite/schema/guards\";\nimport type { JxMutableNode } from \"@jxsuite/schema/types\";\n\n/** Strip all `on*` event-handler properties (and server-timed state) from a document tree. */\nexport function stripEventHandlers(node: JxMutableNode): JxMutableNode {\n if (!node || typeof node !== \"object\") {\n return node;\n }\n if (Array.isArray(node)) {\n // Arrays of nodes round-trip element-wise; the array itself is not a node.\n return node.map((n: JxMutableNode) => stripEventHandlers(n)) as unknown as JxMutableNode;\n }\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(node)) {\n if (k.startsWith(\"on\") && isEventBinding(v)) {\n continue;\n }\n if (k === \"children\") {\n out.children = Array.isArray(v)\n ? v.map((c: JxMutableNode) => stripEventHandlers(c))\n : stripEventHandlers(v as JxMutableNode);\n } else if (k === \"cases\" && typeof v === \"object\") {\n const cases: Record<string, unknown> = {};\n for (const [ck, cv] of Object.entries(v as Record<string, unknown>)) {\n cases[ck] = stripEventHandlers(cv as JxMutableNode);\n }\n out.cases = cases;\n } else if (k === \"state\" && typeof v === \"object\" && v !== null) {\n const state: Record<string, unknown> = {};\n for (const [sk, sv] of Object.entries(v as Record<string, unknown>)) {\n if (sv && typeof sv === \"object\" && (sv as Record<string, unknown>).timing === \"server\") {\n continue;\n }\n state[sk] = sv;\n }\n out.state = state;\n } else if (k === \"style\" || k === \"attributes\" || k === \"$media\") {\n out[k] = v;\n } else {\n out[k] = v;\n }\n }\n return out;\n}\n",
|
|
27
27
|
"/// <reference lib=\"dom\" />\n/// <reference lib=\"dom.iterable\" />\n/**\n * In-iframe subtree rendering for surgical structural patches (insert / replace / attribute edits).\n * The cross-frame analog of `canvas-subtree-render.ts`: it re-renders a single shadow-doc node into\n * fresh DOM using the SAME edit-mode transform, runtime renderer, scope (`$defs`), path mapping,\n * and mode the full render used — so a patched subtree is indistinguishable from a full re-render.\n *\n * Dependency-light (runtime + reactivity + the pure path/edit helpers) so it stays inside the slim\n * canvas-iframe bundle. Where the legacy patcher records render scopes in the `elToRenderScope`\n * WeakMap, this stamps `data-jx-path` and tracks per-subtree effect scopes locally.\n */\n\nimport { elementStyleTags, renderNode, runScoped } from \"@jxsuite/runtime\";\nimport { getNodeAtPath } from \"../state\";\nimport { makeStamper } from \"./iframe-render\";\nimport { prepareForEditMode } from \"../utils/edit-display\";\nimport { stripEventHandlers } from \"../utils/strip-events\";\nimport type { IframeRenderCtx } from \"./iframe-render\";\nimport type { JxPath } from \"../state\";\nimport type { JxMutableNode } from \"@jxsuite/schema/types\";\n\n/**\n * The scope disposer each surgically-rendered subtree root owns (for disposal on remove/replace).\n * Disposers come from the RUNTIME's runScoped — renderNode's effects belong to the runtime's copy\n * of vue-reactivity, so a studio-instance effectScope here would collect nothing and leak every\n * binding effect of a superseded subtree (they keep firing against detached DOM).\n */\nconst elScope = new WeakMap<HTMLElement, () => void>();\n/** Every live subtree disposer, so a full re-render can stop them all (they're detached roots). */\nconst liveScopes = new Set<() => void>();\n\n/**\n * Render the shadow-doc node at `docPath` into a detached DOM subtree, stamped with `data-jx-path`\n * and edit-mode-prepared exactly like the full render. Throws when the path resolves to nothing.\n */\nexport function renderSubtreeIframe(\n shadowDoc: JxMutableNode,\n docPath: JxPath,\n ctx: IframeRenderCtx,\n): HTMLElement | Text {\n const node = getNodeAtPath(shadowDoc, docPath) as JxMutableNode | string | undefined;\n if (node === undefined) {\n throw new Error(`iframe-patch-node-not-found:${docPath.join(\"/\")}`);\n }\n const def = typeof node === \"string\" ? node : prepareForEditMode(stripEventHandlers(node));\n const { result: rendered, stop } = runScoped(() =>\n renderNode(def, ctx.defs, {\n _path: docPathToRenderPath(docPath, ctx),\n onNodeCreated: makeStamper(ctx.mapperCtx),\n }),\n );\n // Track the disposer for bulk dispose on full re-render; element disposers are also keyed by their\n // Root element so a targeted remove/replace can stop just that subtree (a bare text node owns none).\n liveScopes.add(stop);\n if (rendered instanceof HTMLElement) {\n elScope.set(rendered, stop);\n }\n return rendered;\n}\n\n/**\n * Release a removed/replaced subtree: stop the effect scopes rooted inside it and drop the scoped\n * `<style>` tags the runtime emitted for its elements (otherwise they orphan in the iframe head).\n */\nexport function disposeSubtree(el: Element): void {\n const targets: Element[] = [el, ...el.querySelectorAll(\"*\")];\n for (const t of targets) {\n if (!(t instanceof HTMLElement)) {\n continue;\n }\n const tag = elementStyleTags.get(t);\n if (tag) {\n tag.remove();\n elementStyleTags.delete(t);\n }\n const stop = elScope.get(t);\n if (stop) {\n stop();\n liveScopes.delete(stop);\n elScope.delete(t);\n }\n }\n}\n\n/** Stop every live subtree scope — called before a full re-render replaces the whole document. */\nexport function disposeAllSubtrees(): void {\n for (const stop of liveScopes) {\n stop();\n }\n liveScopes.clear();\n}\n\n/**\n * Inverse of the path mapper's layout-prefix strip: shadow-doc paths are page-relative, render\n * paths are layout-merged. Re-applies the slot-container offset so the runtime renders the subtree\n * at the same render path the full render used. ($map/$switch paths never reach here — they\n * escalate.)\n */\nfunction docPathToRenderPath(docPath: JxPath, ctx: IframeRenderCtx): (string | number)[] {\n const { mapperCtx } = ctx;\n if (mapperCtx.layoutWrapped && mapperCtx.pageContentPrefix && docPath[0] === \"children\") {\n const [, idx] = docPath;\n return typeof idx === \"number\"\n ? [\n ...mapperCtx.pageContentPrefix,\n idx + (mapperCtx.pageContentOffset ?? 0),\n ...docPath.slice(2),\n ]\n : [...mapperCtx.pageContentPrefix, ...docPath.slice(1)];\n }\n return docPath;\n}\n",
|
|
28
28
|
"/// <reference lib=\"dom\" />\n/**\n * In-iframe surgical patcher — applies value-carrying forward ops to the iframe's shadow doc and\n * the live DOM, so an edit updates in place instead of re-rendering the whole document. This is the\n * cross-frame analog of `canvas-patcher.ts`: the parent classifies + records ops and posts the\n * forward (value-carrying) half; the iframe folds them into its non-reactive shadow doc and mutates\n * the DOM it owns.\n *\n * It applies the full op set the legacy patcher does: in-place `set-key` writes (`style`/\n * `textContent`, and inert event bindings); structural relocation (`remove-child`/`move-child`) as\n * pure DOM moves with `data-jx-path` remapping; and subtree re-renders (`insert-child`/`set-child`,\n * and any other `set-key` that changes rendered output) via {@link renderSubtreeIframe}. Any op it\n * can't apply throws, which the caller reports as `patchError` so the parent escalates to a full\n * render.\n */\n\nimport { reapplyStyle } from \"@jxsuite/runtime\";\nimport { getNodeAtPath } from \"../state\";\nimport { applyDocOpToDoc } from \"../tabs/doc-op-apply\";\nimport { parseJxPath, serializeJxPath } from \"./path-mapping\";\nimport { disposeSubtree, renderSubtreeIframe } from \"./iframe-subtree\";\nimport {\n computeEmptyPlaceholderClass,\n EMPTY_PLACEHOLDER_CLASSES,\n templateToEditDisplay,\n} from \"../utils/edit-display\";\nimport type { IframeRenderCtx } from \"./iframe-render\";\nimport type { WireDocOp } from \"./iframe-protocol\";\nimport type { JxPath } from \"../state\";\nimport type { JxMutableNode, JxStyle } from \"@jxsuite/schema/types\";\n\n/**\n * Apply a batch of forward ops. Every op is folded into the shadow doc first (so DOM reads see\n * post-mutation truth, mirroring the parent patcher reading its already-mutated reactive doc), then\n * each op patches the DOM. Throws on the first op it cannot apply surgically.\n */\nexport function applyIframePatch(\n shadowDoc: JxMutableNode,\n forwardOps: WireDocOp[],\n container: HTMLElement,\n ctx?: IframeRenderCtx,\n): void {\n for (const op of forwardOps) {\n applyDocOpToDoc(shadowDoc, op);\n }\n for (const op of forwardOps) {\n applyOpToDom(shadowDoc, op, container, ctx);\n }\n}\n\n/** The render context, asserted present for ops that re-render a subtree (the caller always has it). */\nfunction requireCtx(ctx: IframeRenderCtx | undefined): IframeRenderCtx {\n if (!ctx) {\n throw new Error(\"iframe-patch-no-render-ctx\");\n }\n return ctx;\n}\n\nfunction applyOpToDom(\n doc: JxMutableNode,\n op: WireDocOp,\n container: HTMLElement,\n ctx: IframeRenderCtx | undefined,\n): void {\n switch (op.op) {\n case \"set-key\": {\n if (op.key === \"style\") {\n patchStyle(doc, op.path, container, ctx);\n return;\n }\n if (op.key === \"textContent\") {\n patchText(doc, op.path, container);\n return;\n }\n // Event bindings are stripped from the design/edit render — nothing to patch.\n if (op.key.startsWith(\"on\")) {\n return;\n }\n // Any other key (attributes / $props / cases / tagName / a non-event prop) changes rendered\n // Output, so re-render the node's subtree in place — mirrors the legacy patcher's replace.\n replaceSubtree(doc, op.path, container, requireCtx(ctx));\n return;\n }\n case \"insert-child\": {\n insertChild(doc, op.parentPath, op.index, container, requireCtx(ctx));\n return;\n }\n case \"set-child\": {\n replaceSubtree(doc, [...op.parentPath, \"children\", op.index], container, requireCtx(ctx));\n return;\n }\n case \"remove-child\": {\n removeChild(doc, op.parentPath, op.index, container);\n return;\n }\n case \"move-child\": {\n moveChild(doc, op.fromParentPath, op.fromIndex, op.toParentPath, op.toIndex, container);\n return;\n }\n default: {\n // The WireDocOp union is exhaustively handled above; this guards a future op kind.\n throw new Error(`iframe-patch-unsupported-op:${JSON.stringify(op)}`);\n }\n }\n}\n\n// ─── Structural ops needing a subtree render (Phase 3b-2) ───────────────────────\n\n/** Render the inserted node and splice it into the parent's DOM, shifting later siblings up. */\nfunction insertChild(\n doc: JxMutableNode,\n parentPath: JxPath,\n index: number,\n container: HTMLElement,\n ctx: IframeRenderCtx,\n): void {\n const parentEl = requireElement(container, parentPath);\n const parentNode = getNodeAtPath(doc, parentPath);\n const newEl = renderSubtreeIframe(doc, [...parentPath, \"children\", index], ctx);\n // Remap existing siblings BEFORE attaching the new subtree so it isn't itself remapped.\n remapChildPaths(container, parentPath, index, 1);\n insertAt(parentEl, newEl, domChildReference(parentEl, parentNode, index));\n syncContainerPlaceholder(parentEl, parentNode);\n}\n\n/** Re-render the node at `docPath` and swap it into the DOM in place (disposing the old subtree). */\nfunction replaceSubtree(\n doc: JxMutableNode,\n docPath: JxPath,\n container: HTMLElement,\n ctx: IframeRenderCtx,\n): void {\n const oldEl = requireElement(container, docPath);\n const newEl = renderSubtreeIframe(doc, docPath, ctx);\n disposeSubtree(oldEl);\n oldEl.replaceWith(newEl);\n}\n\n// ─── Structural ops (no subtree render: pure DOM move + data-jx-path remap) ──────\n\n/** Remove the element at `parentPath/children/index`, shift later siblings down, dispose its scope. */\nfunction removeChild(\n doc: JxMutableNode,\n parentPath: JxPath,\n index: number,\n container: HTMLElement,\n): void {\n const el = requireElement(container, [...parentPath, \"children\", index]);\n const parentEl = el.parentElement;\n disposeSubtree(el);\n el.remove();\n remapChildPaths(container, parentPath, index + 1, -1);\n if (parentEl) {\n syncContainerPlaceholder(parentEl, getNodeAtPath(doc, parentPath));\n }\n}\n\n/**\n * Move the element from `fromParentPath/children/fromIndex` to `toParentPath/children/toIndex`.\n * Detach first, shift the from-parent's later siblings down, then re-read the to-parent's (possibly\n * shifted) path, shift its siblings up, rewrite the moved subtree's path prefix, and reinsert. The\n * shadow doc is already folded, so `toIndex` and the to-parent's children reflect post-move truth.\n */\nfunction moveChild(\n doc: JxMutableNode,\n fromParentPath: JxPath,\n fromIndex: number,\n toParentPath: JxPath,\n toIndex: number,\n container: HTMLElement,\n): void {\n const fromPath = [...fromParentPath, \"children\", fromIndex];\n const el = requireElement(container, fromPath);\n const fromParentEl = el.parentElement;\n // Resolve the destination element before any remap renames it out from under us.\n const toParentEl = requireElement(container, toParentPath);\n\n el.remove();\n remapChildPaths(container, fromParentPath, fromIndex + 1, -1);\n // The detach remap may have shifted the to-parent's own path — read it fresh.\n const toPrefix = elementPath(toParentEl) ?? toParentPath;\n remapChildPaths(container, toPrefix, toIndex, 1);\n rewriteSubtreePathPrefix(el, fromPath, [...toPrefix, \"children\", toIndex]);\n\n const toParentNode = getNodeAtPath(doc, toPrefix);\n insertAt(toParentEl, el, domChildReference(toParentEl, toParentNode, toIndex));\n\n // Emptiness may have changed at either end (e.g. moved the last/only child out, or into an empty\n // Container) — keep both parents' placeholder classes in sync with the folded doc.\n if (fromParentEl) {\n syncContainerPlaceholder(\n fromParentEl,\n getNodeAtPath(doc, elementPath(fromParentEl) ?? fromParentPath),\n );\n }\n syncContainerPlaceholder(toParentEl, toParentNode);\n}\n\n/**\n * Keep a container's empty-placeholder class in sync with its (folded) doc node after a child\n * change.\n */\nfunction syncContainerPlaceholder(parentEl: Element, parentNode: JxMutableNode | undefined): void {\n for (const cls of EMPTY_PLACEHOLDER_CLASSES) {\n parentEl.classList.remove(cls);\n }\n const placeholder = parentNode ? computeEmptyPlaceholderClass(parentNode) : null;\n if (placeholder) {\n parentEl.classList.add(placeholder);\n }\n}\n\n/** Insert `node` before `ref`, or append when `ref` is null (inserting at the end). */\nfunction insertAt(parentEl: Element, node: Node, ref: ChildNode | null): void {\n if (ref) {\n ref.before(node);\n } else {\n parentEl.append(node);\n }\n}\n\n/**\n * The DOM node currently occupying `children[index]` of `parentEl`, or null to append. The runtime\n * renders an optional leading text node (when the parent has its own textContent) followed by one\n * node per child entry, in order — so the index is offset by that text node.\n */\nfunction domChildReference(\n parentEl: Element,\n parentNode: JxMutableNode | undefined,\n index: number,\n): ChildNode | null {\n const text = parentNode?.textContent;\n const textOffset = text != null && String(text) !== \"\" ? 1 : 0;\n return parentEl.childNodes[textOffset + index] ?? null;\n}\n\n/**\n * Shift the child-index segment of every `data-jx-path` under `container` whose path is\n * `[...parentPath, \"children\", i, ...]` with `i >= fromIndex`, by `delta`. Mirrors the legacy\n * patcher's `elToPath` remap, but the iframe stores paths as `data-jx-path` attributes.\n */\nfunction remapChildPaths(\n container: HTMLElement,\n parentPath: JxPath,\n fromIndex: number,\n delta: number,\n): void {\n const depth = parentPath.length;\n for (const el of container.querySelectorAll<HTMLElement>(\"[data-jx-path]\")) {\n const p = elementPath(el);\n if (!p || p.length < depth + 2 || p[depth] !== \"children\") {\n continue;\n }\n const idx = p[depth + 1];\n if (typeof idx !== \"number\" || idx < fromIndex) {\n continue;\n }\n if (!parentPath.every((seg, i) => p[i] === seg)) {\n continue;\n }\n const np = [...p];\n np[depth + 1] = idx + delta;\n el.dataset.jxPath = serializeJxPath(np);\n }\n}\n\n/** Rewrite the `data-jx-path` of `el` and its descendants, replacing `oldPrefix` with `newPrefix`. */\nfunction rewriteSubtreePathPrefix(el: HTMLElement, oldPrefix: JxPath, newPrefix: JxPath): void {\n const targets: HTMLElement[] = [el, ...el.querySelectorAll<HTMLElement>(\"[data-jx-path]\")];\n for (const t of targets) {\n const p = elementPath(t);\n if (!p || p.length < oldPrefix.length || !oldPrefix.every((seg, i) => p[i] === seg)) {\n continue;\n }\n t.dataset.jxPath = serializeJxPath([...newPrefix, ...p.slice(oldPrefix.length)]);\n }\n}\n\n/** Read an element's stamped document path, or null when it carries no `data-jx-path`. */\nfunction elementPath(el: HTMLElement): JxPath | null {\n const raw = el.dataset.jxPath;\n return raw === undefined ? null : parseJxPath(raw);\n}\n\n/**\n * Re-emit the node's style onto its element, matching the full render's edit-mode style transform.\n * Pass the document's merged `$media` map (the same one resolveCanvasDocument put on the render\n * doc, carried on the render ctx's built scope) through to reapplyStyle so an `@--name` block\n * resolves to its real `@media (min-width:…)` query — otherwise a surgical edit on a media-bearing\n * node would re-emit an invalid `@media name` and silently drop the responsive rule until the next\n * full render.\n */\nfunction patchStyle(\n doc: JxMutableNode,\n path: (string | number)[],\n container: HTMLElement,\n ctx: IframeRenderCtx | undefined,\n): void {\n const el = requireElement(container, path);\n const node = getNodeAtPath(doc, path);\n const mediaQueries = (ctx?.defs?.[\"$media\"] as Record<string, string> | undefined) ?? {};\n reapplyStyle(el, editModeStyle(node?.style), mediaQueries);\n}\n\n/** Write the node's display text, syncing the empty-placeholder class like the full render. */\nfunction patchText(doc: JxMutableNode, path: (string | number)[], container: HTMLElement): void {\n const el = requireElement(container, path);\n const node = getNodeAtPath(doc, path);\n el.textContent = textDisplayValue(node);\n for (const cls of EMPTY_PLACEHOLDER_CLASSES) {\n el.classList.remove(cls);\n }\n const placeholder = node ? computeEmptyPlaceholderClass(node) : null;\n if (placeholder) {\n el.classList.add(placeholder);\n }\n}\n\n/** Locate the rendered element for a document path via its stamped `data-jx-path` attribute. */\nfunction requireElement(container: HTMLElement, path: (string | number)[]): HTMLElement {\n const serialized = serializeJxPath(path);\n const esc = serialized.replaceAll(\"\\\\\", String.raw`\\\\`).replaceAll(\"'\", String.raw`\\'`);\n const el = container.querySelector(`[data-jx-path='${esc}']`);\n if (!(el instanceof HTMLElement)) {\n throw new Error(`iframe-patch-element-not-found:${serialized}`);\n }\n return el;\n}\n\n/**\n * Edit-mode style transform — mirrors prepareForEditMode (and the legacy patcher's editModeStyle):\n * top-level template-string values are blanked so no reactive bindings are created for them.\n */\nfunction editModeStyle(style: JxStyle | undefined): JxStyle | undefined {\n if (!style || typeof style !== \"object\") {\n return undefined;\n }\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(style)) {\n out[k] = typeof v === \"string\" && v.includes(\"${\") ? \"\" : v;\n }\n return out as JxStyle;\n}\n\n/**\n * Display text for a node's textContent in design/edit mode — mirrors prepareForEditMode's\n * template-string and $ref display rules (and the legacy patcher's textDisplayValue).\n */\nfunction textDisplayValue(node: JxMutableNode | undefined): string {\n const v = (node as { textContent?: unknown } | undefined)?.textContent;\n if (v == null) {\n return \"\";\n }\n if (typeof v === \"string\") {\n return v.includes(\"${\") ? templateToEditDisplay(v) : v;\n }\n if (typeof v === \"object\" && (v as Record<string, unknown>).$ref) {\n const ref = String((v as Record<string, unknown>).$ref);\n const label = ref.startsWith(\"#/state/\") ? ref.slice(8) : ref;\n return `{${label}}`;\n }\n return String(v);\n}\n",
|
|
29
29
|
"/**\n * Serialize the iframe's resolved `$defs` scope (buildScope's output) into a structured-clone-safe\n * plain object the iframe can postMessage to the parent editor. The data-explorer panel reads this\n * from `S.canvas.scope` to show each data source's live value; the iframe (not the parent) resolves\n * the scope since the iframe canvas migration moved buildScope into the iframe realm.\n *\n * The input is the resolved `$defs` — typically a Vue reactive proxy. Reading `defs[key]`\n * auto-unwraps a top-level `ref`/`computed` to its current value; a JSON round-trip then reads\n * THROUGH any nested reactive proxies and drops non-cloneable residue (nested functions, symbols,\n * proxy artifacts) so the result crosses postMessage without a DataCloneError.\n *\n * Pure and DOM-free — no reactivity/runtime imports — so it stays trivially unit-testable.\n */\n\n/**\n * Per-value size cap (in JSON-string chars). A single large content collection can be tens of KB;\n * past this cap we store a small placeholder so one big data source can't bloat every render's\n * postMessage. Generous on purpose — most scope values are far smaller.\n */\nconst MAX_VALUE_CHARS = 256_000;\n\n/** The placeholder stored in place of a value whose JSON string exceeds {@link MAX_VALUE_CHARS}. */\nconst LARGE_VALUE_PLACEHOLDER = \"[large value omitted]\";\n\n/**\n * Produce a structured-clone-safe snapshot of `defs` for the data-explorer.\n *\n * For each own enumerable key: - functions (`typeof v === \"function\"`) are SKIPPED entirely\n * (handlers/server fns aren't data); - other values are JSON deep-cloned\n * (`JSON.parse(JSON.stringify(v))`) inside try/catch — a throw (e.g. a computed getter that throws)\n * or a circular/unserializable value maps the key to `null`; - a value whose JSON string exceeds\n * the size cap is replaced with a short placeholder string.\n *\n * @param defs The resolved `$defs` scope (may be a Vue reactive proxy).\n * @returns A plain object safe to `postMessage` (every value is JSON-round-trippable).\n */\nexport function serializeDataScope(defs: Record<string, unknown>): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(defs)) {\n try {\n // Reading through the reactive proxy auto-unwraps a top-level ref/computed to its value, and\n // Can THROW (a computed getter that throws) — done inside the try so that maps the key to null\n // Rather than aborting the whole snapshot.\n const value = defs[key];\n if (typeof value === \"function\") {\n continue; // Data sources only — a resolved server/handler fn isn't a \"value\".\n }\n const json = JSON.stringify(value);\n if (json === undefined) {\n // JSON.stringify returns undefined for a bare function/symbol/undefined at the top level.\n out[key] = null;\n continue;\n }\n if (json.length > MAX_VALUE_CHARS) {\n out[key] = LARGE_VALUE_PLACEHOLDER;\n continue;\n }\n out[key] = JSON.parse(json) as unknown;\n } catch {\n // A circular structure or a throwing getter → the key exists but carries no serializable value.\n out[key] = null;\n }\n }\n return out;\n}\n",
|
|
30
30
|
"/// <reference lib=\"dom\" />\n/**\n * Canvas iframe entry — runs INSIDE the canvas iframe. It opens a postMessage channel to the parent\n * editor, announces `ready`, and renders the documents the parent posts via `render`. Kept tiny: it\n * pulls in only the render core, so the iframe bundle stays small.\n */\n\nimport { postMessageChannel } from \"./iframe-channel\";\nimport { installCanvasImageRetry, renderResolvedDocument } from \"./iframe-render\";\nimport { measureHits, startInteraction } from \"./iframe-interaction\";\nimport {\n AUTO_SCROLL_STEP,\n clearIframeDrag,\n computeDropInstruction,\n resolveDropTarget,\n scrollDirection,\n startGrabDetector,\n} from \"./iframe-drop\";\nimport { startIframeInlineEdit } from \"./iframe-inline-edit\";\nimport { startIframeSlashBridge } from \"./iframe-slash\";\nimport { startKeyForwarding } from \"./iframe-keys\";\nimport { applyIframePatch } from \"./iframe-patch\";\nimport { disposeAllSubtrees } from \"./iframe-subtree\";\nimport { serializeDataScope } from \"./serialize-scope\";\nimport { getActivePath, isEditing, stopEditing } from \"../editor/inline-edit\";\nimport { isAncestor } from \"../state\";\nimport type { JxDocOp } from \"../tabs/patch-ops\";\nimport type { JxPath } from \"../state\";\n// ObserveScope MUST come from the runtime: the $defs refs are created by the runtime's copy of\n// @vue/reactivity, and dep tracking is per module instance — an effect from the studio's own copy\n// Would never re-run when a dev-proxy data source settles.\nimport { observeScope, reapplyStyle, setResolveToken } from \"@jxsuite/runtime\";\nimport type { IframeChannel } from \"./iframe-channel\";\nimport type { CanvasMode, DragSrcKind, IframeToParent, ParentToIframe } from \"./iframe-protocol\";\nimport type { JxDocument, JxMutableNode, JxStyle } from \"@jxsuite/schema/types\";\nimport type { IframeRenderCtx, RenderHandle } from \"./iframe-render\";\n\n/**\n * Resolve the drop placement for a forwarded cursor: point hit-test → nearest `[data-jx-path]` →\n * pure {@link computeDropInstruction}. Returns null when the cursor resolves to no droppable target.\n * Shared by the `dragMove` (display-only preview) and `drop` (fresh, authoritative) handlers.\n */\nfunction previewAt(\n cursor: { x: number; y: number },\n src: DragSrcKind,\n shadowDoc: JxMutableNode,\n doc: Document,\n) {\n const targetEl = resolveDropTarget(cursor.x, cursor.y, doc);\n if (!targetEl) {\n return null;\n }\n return computeDropInstruction(targetEl, cursor.y, shadowDoc, src);\n}\n\n/** Set-key keys the patcher applies IN PLACE (never a subtree re-render) — safe under a live edit. */\nconst IN_PLACE_KEYS = new Set([\"style\", \"textContent\"]);\n\n/**\n * Whether applying `forwardOps` would re-render/detach the element of the live edit session: any op\n * that is NOT an in-place set-key (style/text/event) whose affected node is an ancestor-or-self of\n * the active edit path. Structural ops affect the PARENT's children (any sibling churn under an\n * ancestor can reflow/replace the edited element's position), so their parent path is compared.\n */\nexport function patchDisturbsActiveEdit(forwardOps: JxDocOp[]): boolean {\n const activePath = getActivePath();\n if (!activePath) {\n return false;\n }\n for (const op of forwardOps) {\n let affected: JxPath;\n if (op.op === \"set-key\") {\n if (IN_PLACE_KEYS.has(op.key) || op.key.startsWith(\"on\")) {\n continue;\n }\n affected = op.path;\n } else if (op.op === \"move-child\") {\n affected = op.fromParentPath;\n if (isAncestor(affected, activePath) || isAncestor(op.toParentPath, activePath)) {\n return true;\n }\n continue;\n } else {\n affected = op.parentPath;\n }\n if (isAncestor(affected, activePath)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Drive a channel: render each `render` message into `container`, dropping stale generations, and\n * acknowledge with `renderComplete`/`renderError`. Exposed (rather than inlined in {@link boot}) so\n * tests can exercise it with a fake channel. Returns a teardown function.\n */\nexport function startCanvasIframe(opts: {\n channel: IframeChannel<IframeToParent, ParentToIframe>;\n container: HTMLElement;\n}): () => void {\n const { channel, container } = opts;\n let handle: RenderHandle | null = null;\n // Disposer for the live render's dataScope re-post effect (see the render handler); stopped\n // Alongside the handle so a superseded render's refs can't keep posting.\n let stopDataScopeWatch: (() => void) | null = null;\n let latestGen = -1;\n // The raw page doc the current DOM was rendered from — the patch source-of-truth. `renderedGen`\n // Tracks which generation it (and the DOM) reflect, so patches for an in-flight/superseded render\n // Are handled correctly rather than applied against the wrong tree.\n let shadowDoc: JxMutableNode | null = null;\n let renderedGen = -1;\n // The mode of the LIVE render — gates the interactive surfaces (inline editing, insert zones,\n // Grab-drags) that only design/edit modes own. Adopted alongside shadowDoc.\n let currentMode: CanvasMode = \"design\";\n // The current render's retained context (scope/mapping), used to render subtrees for structural\n // Patches. Set together with `shadowDoc`, so it's non-null whenever a patch is applied.\n let renderCtx: IframeRenderCtx | null = null;\n\n // Cross-frame drag session (Phase 4c). `dragStart` records the source kind + the gen the session\n // Began against; dragMove/drop tag every reply with both so the parent can stale-gate them.\n let dragSrc: DragSrcKind | null = null;\n let dragGen = -1;\n // The parent-session id (from dragStart), so NATIVE drag events routed into this frame can post\n // DragOver/dropResult tagged for the parent's seq gate.\n let sessionSeq = -1;\n\n // ─── Auto-scroll (commit 6) — a SELF-SUSTAINING rAF loop. When a dragMove lands in an edge band,\n // The loop each frame scrolls the viewport AND re-hit-tests the CACHED cursor (elementFromPoint is\n // Viewport-relative, so the same x,y now resolves to a different node after the scroll) and re-posts\n // The over-preview. It is NOT driven by dragMove (the pointer is stationary at an edge-hold). Stops\n // On: band exit (next dragMove, dir 0), drop/dragEnd/dragCancel, or scroll extent reached (scrollY\n // Unchanged). The win/rAF body is the only uncovered line; scrollDirection is PURE + unit-tested.\n let autoScrollFrame = 0;\n // The cached edge-hold cursor. For a flow-3 (iframe-driven) drag it also carries the drag `src`\n // (the parent never posts a dragStart, so `dragSrc`/`dragGen` are null) and `withCursor`, so the\n // Loop re-posts dragOver WITH the cursor to keep the parent's ghost tracking during an edge-hold\n // (the parent has no pointer of its own then). Parent-driven flows (1/2/4) leave `src` undefined\n // And `withCursor` false — the tick falls back to `dragSrc`/`dragGen` and the parent moves the\n // Ghost from its own raw pointer.\n let autoScrollCursor: {\n x: number;\n y: number;\n dragSeq: number;\n withCursor: boolean;\n src?: DragSrcKind;\n gen?: number;\n } | null = null;\n const win = container.ownerDocument.defaultView;\n\n function stopAutoScroll(): void {\n if (autoScrollFrame && win) {\n win.cancelAnimationFrame(autoScrollFrame);\n }\n autoScrollFrame = 0;\n autoScrollCursor = null;\n }\n\n function autoScrollTick(): void {\n autoScrollFrame = 0;\n // Flow 3 supplies its own src on the cached cursor; flows 1/2/4 use the session's dragSrc.\n const src = autoScrollCursor?.src ?? dragSrc;\n if (!win || !autoScrollCursor || !src || !shadowDoc) {\n return;\n }\n const dir = scrollDirection(autoScrollCursor.y, win.innerHeight);\n if (dir === 0) {\n return;\n }\n const before = win.scrollY;\n win.scrollBy(0, dir * AUTO_SCROLL_STEP);\n if (win.scrollY === before) {\n // Scroll extent reached — nothing more to reveal, so stop the loop.\n return;\n }\n const preview = previewAt(autoScrollCursor, src, shadowDoc, container.ownerDocument);\n channel.post({\n // Flow 3 (withCursor) re-posts the cursor so the parent keeps tracking the ghost at an edge-hold.\n ...(autoScrollCursor.withCursor\n ? { cursor: { x: autoScrollCursor.x, y: autoScrollCursor.y } }\n : {}),\n dragSeq: autoScrollCursor.dragSeq,\n gen: autoScrollCursor.gen ?? dragGen,\n kind: \"dragOver\",\n preview,\n });\n autoScrollFrame = win.requestAnimationFrame(autoScrollTick);\n }\n\n /**\n * (Re)evaluate auto-scroll for a dragMove cursor: arm the loop in a band, stop it outside. The\n * optional `flow3` carries the iframe-driven drag's src/gen (and forces the cursor to be\n * re-posted during edge-holds); parent-driven flows pass nothing and the loop uses\n * `dragSrc`/`dragGen`.\n */\n function updateAutoScroll(\n cursor: { x: number; y: number },\n dragSeq: number,\n flow3?: { src: DragSrcKind; gen: number },\n ): void {\n if (!win || scrollDirection(cursor.y, win.innerHeight) === 0) {\n stopAutoScroll();\n return;\n }\n autoScrollCursor = {\n dragSeq,\n withCursor: flow3 != null,\n x: cursor.x,\n y: cursor.y,\n ...(flow3 ? { gen: flow3.gen, src: flow3.src } : {}),\n };\n if (!autoScrollFrame) {\n autoScrollFrame = win.requestAnimationFrame(autoScrollTick);\n }\n }\n\n // Report pointer hit/hover (resolved to data-jx-path) to the parent, which owns selection +\n // Overlays — the cross-origin bridge means the parent never reads our DOM directly. The shadow-doc\n // Accessor feeds the insertion \"+\" zone computation hung off the same pointermove (the parent\n // Draws the clickable \"+\" and runs the slash-menu → mutateInsertNode flow on click).\n const stopInteraction = startInteraction(channel, container.ownerDocument, {\n getMode: () => currentMode,\n getShadowDoc: () => shadowDoc,\n });\n // Forward global-shortcut keystrokes to the parent — its shortcut handler is bound to the editor\n // Document, so without this they'd be swallowed whenever focus is inside the canvas iframe.\n const stopKeyForwarding = startKeyForwarding(channel, container.ownerDocument);\n // Run inline editing (contenteditable) here, posting committed/split/insert results to the parent.\n const stopInlineEdit = startIframeInlineEdit(channel, container, {\n getMode: () => currentMode,\n });\n // Bridge the engine's slash menu to the parent's Spectrum menu (show/nav/select over the channel).\n const stopSlashBridge = startIframeSlashBridge(channel, container.ownerDocument);\n // Flow 3 (grab-anywhere): detect an element-body drag and DRIVE it locally. A drag that begins in\n // The iframe gets its held-button moves in the IFRAME document (not the parent), so the iframe\n // Computes the preview/drop from its own cursor and posts dragOver/dropResult directly; the parent\n // Only adopts the seq, draws the indicator, and positions the ghost from the posted cursor. The\n // Detector reuses the SAME previewAt + auto-scroll loop the dragMove/drop handlers use.\n const stopGrabDetector = startGrabDetector(channel, container.ownerDocument, {\n armAutoScroll: (cursor, dragSeq, src) =>\n updateAutoScroll(cursor, dragSeq, { gen: renderedGen, src }),\n gen: () => renderedGen,\n getMode: () => currentMode,\n previewAt: (cursor, src) =>\n shadowDoc ? previewAt(cursor, src, shadowDoc, container.ownerDocument) : null,\n stopAutoScroll,\n });\n // Auto-recover canvas images that 404 on a cold first render (component <img>s created in\n // ConnectedCallback fire late, before the loopback server is warm). Re-fires the failed request a\n // Few times — what the manual data-sidebar \"Refresh\" does, but without a full re-render.\n const stopImageRetry = installCanvasImageRetry(container);\n\n // ─── Content-height auto-sizing ─────────────────────────────────────────────\n // Measure the content height and post it so the host sizes the iframe to fit — the canvas then never\n // Scrolls internally (the parent overlay can't follow an internal scroll, and every node stays inside\n // The iframe box so it's hit-testable). The runtime transposes viewport units to container units, so\n // This converges instead of feeding back; `MAX` is a backstop if some unit slips through. `container`\n // Is `#jx-canvas-root`, which overflows the fixed-size query container freely, so its scrollHeight is\n // The true content height.\n const MAX_CANVAS_HEIGHT = 30_000;\n let lastPostedHeight = -1;\n function postContentHeight(): void {\n const measured = Math.min(container.scrollHeight, MAX_CANVAS_HEIGHT);\n if (measured > 0 && Math.abs(measured - lastPostedHeight) >= 1) {\n lastPostedHeight = measured;\n // A component-definition root (marked by makeStamper) is a fragment, not a page — tell the host\n // So it can drop its 480px iframe floor and let a short component hug its content.\n const root = container.firstElementChild;\n const fragment = root instanceof HTMLElement && root.dataset.jxDefinitionRoot !== undefined;\n channel.post({ fragment, height: measured, kind: \"contentHeight\" });\n }\n }\n const ResizeObs = win?.ResizeObserver;\n const heightObserver = ResizeObs ? new ResizeObs(() => postContentHeight()) : null;\n heightObserver?.observe(container);\n\n // ─── Wheel forwarding (canvas zoom/pan) ─────────────────────────────────────\n // The iframe is sized to its content (never scrolls itself), so wheel events over it are meant for\n // The parent canvas: ctrl/cmd+wheel = zoom, plain = pan. A cross-origin OOPIF doesn't bubble wheel to\n // The parent, so forward the deltas + modifiers + cursor; the host redispatches to its wheel handler.\n const onWheel = (e: WheelEvent) => {\n e.preventDefault();\n channel.post({\n ctrlKey: e.ctrlKey,\n deltaX: e.deltaX,\n deltaY: e.deltaY,\n kind: \"forwardWheel\",\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n x: e.clientX,\n y: e.clientY,\n });\n };\n container.ownerDocument.addEventListener(\"wheel\", onWheel, { passive: false });\n\n // ─── Native drag routing (flows 1/2/4 over the canvas) ─────────────────────\n // Chromium delivers native dragover/drop to the frame UNDER THE CURSOR, so once a\n // Parent-originated drag (palette / layers / ⠿ handle) crosses onto the canvas the parent stops\n // Seeing dragover — it can't forward dragMove, and cross-origin nothing preventDefaults here,\n // Giving the \"not allowed\" cursor and a dead drop. So handle the native stream directly: while a\n // Parent session is live (dragSrc set), accept the drag, post dragOver previews from OUR\n // ClientX/y (already iframe-local — no rect conversion), and on drop post the authoritative\n // DropResult. The cursor rides on dragOver so the parent can keep its ghost tracking (it has no\n // Pointer stream of its own while the drag is over this frame).\n //\n // A native stream arriving with NO session yet (dragSrc null) is a parent drag that crossed onto\n // The canvas before the parent could bind a host (it never sees a cursor inside the iframe rect) —\n // Post nativeDragEnter so the bridge binds the session here. Throttled: dragover fires\n // Continuously (~350ms even stationary), and an unclaimable stream (e.g. an OS file drag) would\n // Otherwise spam the channel forever.\n const NATIVE_ENTER_REPOST_MS = 300;\n let lastNativeEnterPost = 0;\n const onNativeDragOver = (e: DragEvent) => {\n if (!dragSrc) {\n const now = Date.now();\n if (now - lastNativeEnterPost >= NATIVE_ENTER_REPOST_MS) {\n lastNativeEnterPost = now;\n channel.post({ kind: \"nativeDragEnter\" });\n }\n return;\n }\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = \"move\";\n }\n const cursor = { x: e.clientX, y: e.clientY };\n const preview = shadowDoc\n ? previewAt(cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({ cursor, dragSeq: sessionSeq, gen: dragGen, kind: \"dragOver\", preview });\n updateAutoScroll(cursor, sessionSeq);\n };\n const onNativeDrop = (e: DragEvent) => {\n if (!dragSrc) {\n return;\n }\n e.preventDefault();\n const cursor = { x: e.clientX, y: e.clientY };\n const preview = shadowDoc\n ? previewAt(cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({\n dragSeq: sessionSeq,\n gen: dragGen,\n instruction: preview?.instruction ?? null,\n kind: \"dropResult\",\n targetPath: preview?.targetPath ?? null,\n });\n dragSrc = null;\n dragGen = -1;\n sessionSeq = -1;\n stopAutoScroll();\n clearIframeDrag();\n };\n container.ownerDocument.addEventListener(\"dragenter\", onNativeDragOver, true);\n container.ownerDocument.addEventListener(\"dragover\", onNativeDragOver, true);\n container.ownerDocument.addEventListener(\"drop\", onNativeDrop, true);\n\n const off = channel.onMessage((msg) => {\n if (msg.kind === \"measure\") {\n channel.post({\n hits: measureHits(msg.paths, container.ownerDocument),\n kind: \"geometry\",\n reqId: msg.reqId,\n });\n return;\n }\n if (msg.kind === \"patch\") {\n const { gen } = msg;\n if (gen < renderedGen) {\n // A newer full render already supersedes this edit — drop it.\n return;\n }\n if (gen > renderedGen || !shadowDoc || !renderCtx) {\n // The render this patch targets hasn't landed yet; let the parent escalate to a full render.\n channel.post({ gen, kind: \"patchError\", message: \"patch-ahead-of-render\" });\n return;\n }\n // A structural/subtree op that re-renders the active editable (or an ancestor) would detach\n // The session's element mid-edit — commit and end the session first (in-place style/text\n // Patches elsewhere leave it alone).\n if (isEditing() && patchDisturbsActiveEdit(msg.forwardOps)) {\n stopEditing();\n }\n try {\n applyIframePatch(shadowDoc, msg.forwardOps, container, renderCtx);\n channel.post({ gen, kind: \"patchComplete\" });\n } catch (error) {\n channel.post({\n gen,\n kind: \"patchError\",\n message: String((error as Error)?.message ?? error),\n });\n }\n return;\n }\n if (msg.kind === \"styleUpdate\") {\n // Stylebook live style edit: swap the ROOT's style and re-run the runtime's style applier —\n // One reapply regenerates the whole scoped-CSS cascade (real @media included) without a\n // Re-render. A stale gen is dropped; the superseding render carries the same style.\n if (msg.gen !== renderedGen || !shadowDoc) {\n return;\n }\n (shadowDoc as { style?: JxStyle }).style = msg.style as JxStyle;\n const rootEl = container.firstElementChild;\n if (rootEl instanceof HTMLElement) {\n reapplyStyle(\n rootEl,\n msg.style as JxStyle,\n (shadowDoc as { $media?: Record<string, string> }).$media ?? {},\n );\n }\n return;\n }\n if (msg.kind === \"dragStart\") {\n // Begin a drag session: retain the source kind + the gen it targets. dragMove/drop replies are\n // Tagged with this gen so the parent drops any that arrive after a re-render superseded it.\n dragSrc = msg.src;\n dragGen = msg.gen;\n sessionSeq = msg.dragSeq;\n return;\n }\n if (msg.kind === \"dragEnd\" || msg.kind === \"dragCancel\") {\n // The pointer left the canvas / the session was cancelled: forget the session so a late move\n // Or drop is a no-op, and clear any flow-3 (iframe-originated) drag state + auto-scroll.\n dragSrc = null;\n dragGen = -1;\n sessionSeq = -1;\n stopAutoScroll();\n clearIframeDrag();\n return;\n }\n if (msg.kind === \"dragMove\") {\n // Display-only preview: hit-test the forwarded cursor, compute the placement, post dragOver.\n // Null target/instruction → post a null preview so the parent clears any stale indicator.\n const preview =\n dragSrc && shadowDoc\n ? previewAt(msg.cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({ dragSeq: msg.dragSeq, gen: dragGen, kind: \"dragOver\", preview });\n // Arm/stop the self-sustaining auto-scroll for this cursor (an edge-hold keeps scrolling).\n updateAutoScroll(msg.cursor, msg.dragSeq);\n return;\n }\n if (msg.kind === \"drop\") {\n // Compute the drop FRESH from the live DOM (never from a cached preview) and post the result.\n const preview =\n dragSrc && shadowDoc\n ? previewAt(msg.cursor, dragSrc, shadowDoc, container.ownerDocument)\n : null;\n channel.post({\n dragSeq: msg.dragSeq,\n gen: dragGen,\n instruction: preview?.instruction ?? null,\n kind: \"dropResult\",\n targetPath: preview?.targetPath ?? null,\n });\n dragSrc = null;\n dragGen = -1;\n sessionSeq = -1;\n stopAutoScroll();\n clearIframeDrag();\n return;\n }\n if (msg.kind !== \"render\" || msg.gen < latestGen) {\n return;\n }\n // A render replaces the DOM under a live edit session — COMMIT it first (never discard). The\n // Resulting editCommit/editEnd post synchronously here, so on the FIFO channel they precede\n // This render's renderComplete and the parent routes them by the host's not-yet-flipped tab\n // Identity — a commit racing a tab switch still lands in the document it belonged to.\n if (isEditing()) {\n stopEditing();\n }\n latestGen = msg.gen;\n const { gen, mapperCtx } = msg;\n const rawDoc = msg.shadowDoc as JxMutableNode;\n void (async () => {\n try {\n // Drop the previous render's reactive scopes (root + any surgically-rendered subtrees).\n disposeAllSubtrees();\n stopDataScopeWatch?.();\n stopDataScopeWatch = null;\n handle?.dispose();\n handle = await renderResolvedDocument({\n container,\n doc: msg.doc as JxDocument,\n docBase: msg.docBase,\n mapperCtx: {\n arrayPaths: new Set(mapperCtx.arrayPaths),\n canvasMode: mapperCtx.canvasMode,\n layoutWrapped: mapperCtx.layoutWrapped,\n pageContentOffset: mapperCtx.pageContentOffset,\n pageContentPrefix: mapperCtx.pageContentPrefix,\n },\n mode: msg.mode,\n siteStyle: msg.siteStyle,\n });\n if (gen === latestGen) {\n // Adopt this generation's shadow doc + render context only once it's the live render.\n shadowDoc = rawDoc;\n renderCtx = handle.ctx;\n renderedGen = gen;\n currentMode = msg.mode;\n channel.post({ gen, kind: \"renderComplete\" });\n // Thread a serializable snapshot of the resolved $defs to the parent so the data-explorer\n // Panel shows live data (the iframe, not the parent, now resolves the scope). Inside a\n // Reactive effect: dev-proxy data sources ($prototype/$src) return a ref that fills AFTER\n // BuildScope returns, and serializeDataScope reads defs[key], so the effect tracks those\n // Refs and RE-POSTS an updated snapshot when the data settles (the host gen-gates stale\n // Ones). Isolated in try/catch: a serialization failure never breaks the render ack above.\n const defs = handle.ctx.defs as Record<string, unknown>;\n stopDataScopeWatch = observeScope(() => {\n try {\n channel.post({ gen, kind: \"dataScope\", scope: serializeDataScope(defs) });\n } catch {\n // A pathological scope can't be serialized — skip; the render itself succeeded.\n }\n });\n // Size the iframe to the freshly-rendered content (the ResizeObserver tracks later reflows).\n postContentHeight();\n }\n } catch (error) {\n channel.post({\n gen,\n kind: \"renderError\",\n message: String((error as Error)?.message ?? error),\n });\n }\n })();\n });\n\n channel.post({ kind: \"ready\" });\n return () => {\n off();\n stopInteraction();\n stopKeyForwarding();\n stopInlineEdit();\n stopSlashBridge();\n stopGrabDetector();\n stopImageRetry();\n stopAutoScroll();\n heightObserver?.disconnect();\n container.ownerDocument.removeEventListener(\"wheel\", onWheel);\n container.ownerDocument.removeEventListener(\"dragenter\", onNativeDragOver, true);\n container.ownerDocument.removeEventListener(\"dragover\", onNativeDragOver, true);\n container.ownerDocument.removeEventListener(\"drop\", onNativeDrop, true);\n stopDataScopeWatch?.();\n handle?.dispose();\n };\n}\n\n/** The window surface {@link bootCanvasIframe} needs — injected so it's testable without a frame. */\ninterface BootWindow {\n location: { search: string };\n document: { querySelector: (selectors: string) => Element | null; body: HTMLElement };\n parent: { postMessage: (message: unknown, targetOrigin: string) => void };\n addEventListener: (type: \"message\", listener: (event: MessageEvent) => void) => void;\n removeEventListener: (type: \"message\", listener: (event: MessageEvent) => void) => void;\n}\n\n/**\n * Boot the entry against a window: open a token+origin-authenticated channel to the parent (origin\n * and token are passed in via the iframe URL) and render into `#jx-canvas-root` (or `<body>`).\n */\nexport function bootCanvasIframe(win: BootWindow): () => void {\n const params = new URLSearchParams(win.location.search);\n // Authenticate the runtime dev-proxy resolve/server fetches to the token-gated loopback server.\n // The server rpcToken rides the iframe URL as `rpcToken`; the `token` param is the separate\n // PostMessage channel secret (set by the host). Absent on dev/chromium, where setResolveToken no-ops.\n setResolveToken(params.get(\"rpcToken\"));\n // ParentOrigin authenticates the parent peer. The host (iframe-host.ts) passes it ONLY for an\n // Http(s) parent (dev / chromium — same-origin, the origin round-trips). It OMITS it for a\n // Non-http(s) parent (electrobun views://), whose custom scheme may not surface as a postMessage\n // Origin: a missing value here means fall back to \"*\" — token-gated, NOT a silent omission — and\n // Log it loudly so the looser origin check is visible.\n const explicitParentOrigin = params.get(\"parentOrigin\");\n const parentOrigin = explicitParentOrigin || \"*\";\n if (!explicitParentOrigin) {\n console.warn(\n \"[jx-canvas] no parentOrigin in iframe URL — accepting messages from any origin (token-gated). \" +\n \"The parent origin did not round-trip; the channel relies on the shared token alone.\",\n );\n }\n const container = (win.document.querySelector(\"#jx-canvas-root\") ??\n win.document.body) as HTMLElement;\n const channel = postMessageChannel<IframeToParent, ParentToIframe>({\n acceptOrigin: parentOrigin,\n source: win,\n target: win.parent,\n targetOrigin: parentOrigin,\n token: params.get(\"token\") || \"\",\n });\n return startCanvasIframe({ channel, container });\n}\n\n// Boot only when actually loaded as the iframe document (has a real parent frame), never in tests.\nif (typeof window !== \"undefined\" && window.parent !== window) {\n bootCanvasIframe(window as unknown as BootWindow);\n}\n"
|
|
31
31
|
],
|
|
32
|
-
"mappings": "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",
|
|
33
|
-
"debugId": "
|
|
32
|
+
"mappings": "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",
|
|
33
|
+
"debugId": "FE3AC1CBD1F2F79E64756E2164756E21",
|
|
34
34
|
"names": []
|
|
35
35
|
}
|