@juo/blocks 1.4.3 → 1.4.5

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.
@@ -3,8 +3,8 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { signal, effect, createBlockInstance } from "@juo/blocks";
5
5
  import { reportBlockWarning, reportBlockError } from "./observability.js";
6
- import { d, t as subscribeContext, T as ThemeStateContext, E, x as withWrapper, v as n } from "./theme-state-BpmgtjdC.js";
7
- import "./juo-workflow-BXGQS82N.js";
6
+ import { d, v as subscribeContext, T as ThemeStateContext, E, y as withWrapper, x as n, b as backfillInstanceDefaults, p as isStubDefinition, q as onRegisterBlock } from "./theme-state-D3w_B6gQ.js";
7
+ import "./juo-workflow-ZGS5rbZi.js";
8
8
  class Block extends HTMLElement {
9
9
  constructor() {
10
10
  super();
@@ -64,6 +64,18 @@ class ExtensionRoot extends HTMLElement {
64
64
  __publicField(this, "unsubscribeThemeContext");
65
65
  __publicField(this, "disposeEffect");
66
66
  __publicField(this, "__vueInstance", null);
67
+ /**
68
+ * Names of top-level slot children that resolved to a stub on the last
69
+ * render pass — i.e. blocks whose definition hasn't been registered yet.
70
+ * Rebuilt on each render and consulted from the registration listener so
71
+ * we only retrigger when a block we're actually waiting on lands.
72
+ *
73
+ * Only top-level children are tracked — nested stubs inside a registered
74
+ * parent's renderer aren't currently handled (rare in practice; revisit
75
+ * if it shows up).
76
+ */
77
+ __publicField(this, "unresolvedNames", /* @__PURE__ */ new Set());
78
+ __publicField(this, "unregisterListener");
67
79
  /**
68
80
  * Optional function to wrap each rendered block element.
69
81
  * Called with the rendered block HTMLElement, must return an HTMLElement.
@@ -124,11 +136,17 @@ class ExtensionRoot extends HTMLElement {
124
136
  const blocks = state.blocks.value;
125
137
  n(() => {
126
138
  var _a;
139
+ let extensionBlocks = [];
127
140
  try {
128
- const extensionBlocks = (((_a = blocks.at(0)) == null ? void 0 : _a.slots) ?? {})[name] ?? [];
141
+ extensionBlocks = (((_a = blocks.at(0)) == null ? void 0 : _a.slots) ?? {})[name] ?? [];
142
+ for (const block of extensionBlocks) {
143
+ if (block != null && typeof block === "object") {
144
+ backfillInstanceDefaults(block);
145
+ }
146
+ }
129
147
  const children = extensionBlocks.map(
130
148
  (block) => this.withWrapper(block)
131
- ) ?? [];
149
+ );
132
150
  this.replaceChildren(...children);
133
151
  } catch (error) {
134
152
  reportBlockError(error, {
@@ -139,6 +157,32 @@ class ExtensionRoot extends HTMLElement {
139
157
  }
140
158
  });
141
159
  this.replaceChildren();
160
+ extensionBlocks = [];
161
+ }
162
+ this.unresolvedNames.clear();
163
+ for (const block of extensionBlocks) {
164
+ if (block != null && typeof block === "object" && isStubDefinition(block.definition)) {
165
+ this.unresolvedNames.add(block.type);
166
+ }
167
+ }
168
+ if (this.unresolvedNames.size > 0 && !this.unregisterListener) {
169
+ this.unregisterListener = onRegisterBlock((name2) => {
170
+ var _a2;
171
+ if (!this.unresolvedNames.has(name2)) return;
172
+ const stateRef = this.state.value;
173
+ if (stateRef == null) return;
174
+ const surfaceBlocks = stateRef.blocks.value;
175
+ const slotName = this.getAttribute("name");
176
+ if (slotName != null) {
177
+ const children = (((_a2 = surfaceBlocks.at(0)) == null ? void 0 : _a2.slots) ?? {})[slotName] ?? [];
178
+ for (const child of children) {
179
+ if (child != null && typeof child === "object" && child.type === name2) {
180
+ backfillInstanceDefaults(child);
181
+ }
182
+ }
183
+ }
184
+ this.state.value = { ...stateRef };
185
+ });
142
186
  }
143
187
  });
144
188
  });
@@ -163,6 +207,11 @@ class ExtensionRoot extends HTMLElement {
163
207
  this.disposeEffect();
164
208
  this.disposeEffect = void 0;
165
209
  }
210
+ if (this.unregisterListener) {
211
+ this.unregisterListener();
212
+ this.unregisterListener = void 0;
213
+ }
214
+ this.unresolvedNames.clear();
166
215
  }
167
216
  }
168
217
  export {
package/dist/block.d.ts CHANGED
@@ -70,7 +70,7 @@ declare global {
70
70
  }
71
71
  export declare function withWrapper(fn: (block: BlockInstance) => HTMLElement): (block: BlockInstance) => HTMLElement;
72
72
  export declare function registerBlock<T>(block: BlockDefinition<T>): void;
73
- export declare function onRegisterBlock(cb: (name: string, block: BlockDefinition) => void): void;
73
+ export declare function onRegisterBlock(cb: (name: string, block: BlockDefinition) => void): () => void;
74
74
  export declare function defineBlock<T>(name: string, opts: {
75
75
  group: "internal" | "juo" | "theme" | "integration" | "page" | "workflow" | "action";
76
76
  schema: JSONSchema;
@@ -89,6 +89,25 @@ export declare function defineBlockRuntime<T = never>(name: string, opts: {
89
89
  export declare function getDefinedBlocks(): BlockDefinition[];
90
90
  export declare function createCeRenderer(name: string): (block: BlockInstance) => HTMLDivElement;
91
91
  export declare function isStubDefinition(definition: BlockDefinition): boolean;
92
+ /**
93
+ * Backfill an empty block instance with `props`/`slots` defaults sourced
94
+ * from its (now-resolved) definition's `initialValue`.
95
+ *
96
+ * Why this exists: when `createBlockInstance(name)` runs before the real
97
+ * definition for `name` is registered, it falls back to a stub whose
98
+ * `initialValue` is `{ props: {}, slots: {} }`. The instance ends up with
99
+ * empty `props`/`slots` and keeps them — those fields are captured at
100
+ * instantiation time, only `definition` is a getter that re-resolves.
101
+ * Once the real definition lands, this helper fills the instance from it
102
+ * so a single render nudge picks up the real defaults.
103
+ *
104
+ * Returns `false` (no-op) when:
105
+ * - `props` or `slots` already have entries (nothing to backfill), or
106
+ * - `definition` is still a stub (no real defaults to source from yet).
107
+ *
108
+ * Returns `true` when the instance was mutated in place.
109
+ */
110
+ export declare function backfillInstanceDefaults(block: BlockInstance): boolean;
92
111
  export declare function createBlockInstance(name: string, opts?: {
93
112
  props?: any;
94
113
  slots?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../src/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../src/block.ts"],"names":[],"mappings":"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"}
package/dist/core.js CHANGED
@@ -1,9 +1,9 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { c as createContext, d, w, r as registerBlock, E, u } from "./theme-state-BpmgtjdC.js";
5
- import { B, C, a, D, S, T, b, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, v, x } from "./theme-state-BpmgtjdC.js";
6
- import { T as T2, W, c, a as a2, b as b2, g as g2, h as h2 } from "./juo-workflow-BXGQS82N.js";
4
+ import { c as createContext, d, w, r as registerBlock, E, u } from "./theme-state-D3w_B6gQ.js";
5
+ import { B, C, a, D, S, T, b, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, v, x, y } from "./theme-state-D3w_B6gQ.js";
6
+ import { T as T2, W, c, a as a2, b as b2, g as g2, h as h2 } from "./juo-workflow-ZGS5rbZi.js";
7
7
  import { reportBlockWarning, reportBlockError } from "./observability.js";
8
8
  function createState() {
9
9
  const discountCode = d(null);
@@ -1264,42 +1264,43 @@ export {
1264
1264
  T as ThemeStateContext,
1265
1265
  T2 as TranslationContext,
1266
1266
  W as WorkflowServiceContext,
1267
+ b as backfillInstanceDefaults,
1267
1268
  w as computed,
1268
- b as createBlockInstance,
1269
- e as createBlockInstanceFromJSON,
1270
- f as createBlockInstanceFromObject,
1271
- g as createCeRenderer,
1269
+ e as createBlockInstance,
1270
+ f as createBlockInstanceFromJSON,
1271
+ g as createBlockInstanceFromObject,
1272
+ h as createCeRenderer,
1272
1273
  createContext,
1273
1274
  createCustomerService,
1274
1275
  createMockProductAdapter,
1275
1276
  createMockSubscriptionAdapter,
1276
1277
  createMockWorkflowApiAdapter,
1277
1278
  createProductService,
1278
- h as createSelectedBlock,
1279
+ i as createSelectedBlock,
1279
1280
  createState,
1280
1281
  createSubscriptionService,
1281
- i as createThemeState,
1282
+ j as createThemeState,
1282
1283
  c as createTranslationService,
1283
1284
  a2 as createWorkflowApiAdapter,
1284
1285
  b2 as createWorkflowService,
1285
- j as defineBlock,
1286
- k as defineBlockRuntime,
1286
+ k as defineBlock,
1287
+ l as defineBlockRuntime,
1287
1288
  E as effect,
1288
1289
  g2 as getDefaultBlockForAction,
1289
- l as getDefinedBlocks,
1290
+ m as getDefinedBlocks,
1290
1291
  h2 as hasDefaultBlockForAction,
1291
- m as indexOverrides,
1292
- n as injectContext,
1293
- o as isStubDefinition,
1292
+ n as indexOverrides,
1293
+ o as injectContext,
1294
+ p as isStubDefinition,
1294
1295
  loadBlockRegistry,
1295
1296
  loginService,
1296
- p as onRegisterBlock,
1297
- q as provideContext,
1297
+ q as onRegisterBlock,
1298
+ s as provideContext,
1298
1299
  registerBlock,
1299
- s as serializeBlocks,
1300
+ t as serializeBlocks,
1300
1301
  d as signal,
1301
- t as subscribeContext,
1302
- v as untracked,
1302
+ v as subscribeContext,
1303
+ x as untracked,
1303
1304
  waitForDevBlocksUrl,
1304
- x as withWrapper
1305
+ y as withWrapper
1305
1306
  };
package/dist/editor.js CHANGED
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { getDefinedBlocks, onRegisterBlock } from "@juo/blocks";
5
5
  import { a as createEditorBridge, f as createRemoveBlockMessage, g as createRegisterBlocksMessage, h as createRegisterRoutesMessage } from "./bridge-B8cVa2-2.js";
6
6
  import { i, b, j, k, l, m, n, c, o, p, q, r, s, e, t, u, v, w, d, x, y, z, A } from "./bridge-B8cVa2-2.js";
7
- import { f as createBlockInstanceFromObject, m as indexOverrides } from "./theme-state-BpmgtjdC.js";
7
+ import { g as createBlockInstanceFromObject, n as indexOverrides } from "./theme-state-D3w_B6gQ.js";
8
8
  function createEditorHandler(options) {
9
9
  const { themeState, onBlockSelection } = options;
10
10
  const blockSurfaceIndex = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { c as createContext, d, E, l as getDefinedBlocks, b as createBlockInstance, w, r as registerBlock, j as defineBlock, t as subscribeContext } from "./theme-state-BpmgtjdC.js";
4
+ import { c as createContext, d, E, m as getDefinedBlocks, e as createBlockInstance, w, r as registerBlock, k as defineBlock, v as subscribeContext } from "./theme-state-D3w_B6gQ.js";
5
5
  import { a as createEditorBridge, e as createSelectBlockMessage } from "./bridge-B8cVa2-2.js";
6
6
  const TranslationContext = createContext("translation");
7
7
  function toStringRecord(input) {
package/dist/main.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type { Block, BlockInstance, BlockDefinition, BlockLocaleFile, BlockRenderer, BlockPreset, BlockPresets, } from './block';
2
- export { createBlockInstance, createBlockInstanceFromJSON, createBlockInstanceFromObject, createCeRenderer, defineBlock, defineBlockRuntime, getDefinedBlocks, isStubDefinition, withWrapper, registerBlock, SelectedBlockContext, createSelectedBlock, BlockWrapperEvent, serializeBlocks, onRegisterBlock, } from './block';
2
+ export { backfillInstanceDefaults, createBlockInstance, createBlockInstanceFromJSON, createBlockInstanceFromObject, createCeRenderer, defineBlock, defineBlockRuntime, getDefinedBlocks, isStubDefinition, withWrapper, registerBlock, SelectedBlockContext, createSelectedBlock, BlockWrapperEvent, serializeBlocks, onRegisterBlock, } from './block';
3
3
  export { ThemeStateContext, createThemeState, indexOverrides, type TranslationCatalogs, type TranslationMode, type TranslationScope, type TranslationOverride, type ThemeLocaleState, type ThemeState, type ThemeSurface, type ThemeSurfaceState, type GlobalStyles, type GlobalStyleColors, type ThemeType, DEFAULT_GLOBAL_STYLES, } from './theme-state';
4
4
  export { TranslationContext, createTranslationService, type TranslationServiceOptions, type TranslationService, } from './translation';
5
5
  export { ContextRequestEvent, ContextProvideEvent, type ContextCallback, createContext, injectContext, provideContext, subscribeContext, type ContextType, type UnknownContext, } from './context';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,eAAe,EACpB,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpE,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,GACV,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,eAAe,EACpB,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpE,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,GACV,MAAM,sBAAsB,CAAC"}
@@ -566,10 +566,15 @@ function withWrapper(fn) {
566
566
  const registerBlockListeners = [];
567
567
  function registerBlock(block) {
568
568
  blockDefinitions.set(block.name, block);
569
+ stubDefinitionCache.delete(block.name);
569
570
  registerBlockListeners.forEach((cb) => cb(block.name, block));
570
571
  }
571
572
  function onRegisterBlock(cb) {
572
573
  registerBlockListeners.push(cb);
574
+ return () => {
575
+ const idx = registerBlockListeners.indexOf(cb);
576
+ if (idx >= 0) registerBlockListeners.splice(idx, 1);
577
+ };
573
578
  }
574
579
  function defineBlock(name, opts) {
575
580
  const definition = {
@@ -690,6 +695,30 @@ function createStubDefinition(name) {
690
695
  function isStubDefinition(definition) {
691
696
  return definition.__stub === true;
692
697
  }
698
+ function backfillInstanceDefaults(block) {
699
+ if (Object.keys(block.props ?? {}).length > 0) return false;
700
+ if (Object.keys(block.slots ?? {}).length > 0) return false;
701
+ if (isStubDefinition(block.definition)) return false;
702
+ let defaults;
703
+ try {
704
+ const iv = block.definition.initialValue;
705
+ defaults = (typeof iv === "function" ? iv() : iv) ?? {};
706
+ } catch (error) {
707
+ reportBlockError(error, {
708
+ site: "block.backfillInstanceDefaults",
709
+ block: { id: block.id, type: block.type, definition: block.definition }
710
+ });
711
+ return false;
712
+ }
713
+ const propsDefault = defaults.props ?? {};
714
+ const slotsDefault = defaults.slots ?? {};
715
+ const hasProps = Object.keys(propsDefault).length > 0;
716
+ const hasSlots = Object.keys(slotsDefault).length > 0;
717
+ if (!hasProps && !hasSlots) return false;
718
+ if (hasProps) Object.assign(block.props, propsDefault);
719
+ if (hasSlots) Object.assign(block.slots, slotsDefault);
720
+ return true;
721
+ }
693
722
  function getDefinitionByName(name) {
694
723
  const definition = blockDefinitions.get(name);
695
724
  if (definition != null) {
@@ -962,28 +991,29 @@ export {
962
991
  SelectedBlockContext as S,
963
992
  ThemeStateContext as T,
964
993
  ContextRequestEvent as a,
965
- createBlockInstance as b,
994
+ backfillInstanceDefaults as b,
966
995
  createContext as c,
967
996
  d,
968
- createBlockInstanceFromJSON as e,
969
- createBlockInstanceFromObject as f,
970
- createCeRenderer as g,
971
- createSelectedBlock as h,
972
- createThemeState as i,
973
- defineBlock as j,
974
- defineBlockRuntime as k,
975
- getDefinedBlocks as l,
976
- indexOverrides as m,
977
- injectContext as n,
978
- isStubDefinition as o,
979
- onRegisterBlock as p,
980
- provideContext as q,
997
+ createBlockInstance as e,
998
+ createBlockInstanceFromJSON as f,
999
+ createBlockInstanceFromObject as g,
1000
+ createCeRenderer as h,
1001
+ createSelectedBlock as i,
1002
+ createThemeState as j,
1003
+ defineBlock as k,
1004
+ defineBlockRuntime as l,
1005
+ getDefinedBlocks as m,
1006
+ indexOverrides as n,
1007
+ injectContext as o,
1008
+ isStubDefinition as p,
1009
+ onRegisterBlock as q,
981
1010
  registerBlock as r,
982
- serializeBlocks as s,
983
- subscribeContext as t,
1011
+ provideContext as s,
1012
+ serializeBlocks as t,
984
1013
  u,
985
- n as v,
1014
+ subscribeContext as v,
986
1015
  w,
987
- withWrapper as x,
988
- ContextRoot as y
1016
+ n as x,
1017
+ withWrapper as y,
1018
+ ContextRoot as z
989
1019
  };
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/vue/block.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAGR,SAAS,EAUV,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AA6B9D,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,WAuCZ,aAAa,iBAyD7B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,EAAE,UAAiB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,4CAoCrD"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/vue/block.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAGR,SAAS,EAUV,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AA6B9D,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,WAuCZ,aAAa,iBA0D7B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,EAAE,UAAiB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,4CAoCrD"}
package/dist/vue.js CHANGED
@@ -206,6 +206,7 @@ function createVueRenderer(component, options) {
206
206
  const wrapper = (existing == null ? void 0 : existing.wrapper) ?? document.createElement("div");
207
207
  if (!existing) {
208
208
  wrapper.setAttribute("data-block-id", block.id);
209
+ wrapper.setAttribute("data-block-type", block.type);
209
210
  wrapper.style.display = "contents";
210
211
  }
211
212
  const vnode = h(Root);
@@ -4,6 +4,18 @@ export default class ExtensionRoot extends HTMLElement {
4
4
  private unsubscribeThemeContext?;
5
5
  private disposeEffect?;
6
6
  private __vueInstance;
7
+ /**
8
+ * Names of top-level slot children that resolved to a stub on the last
9
+ * render pass — i.e. blocks whose definition hasn't been registered yet.
10
+ * Rebuilt on each render and consulted from the registration listener so
11
+ * we only retrigger when a block we're actually waiting on lands.
12
+ *
13
+ * Only top-level children are tracked — nested stubs inside a registered
14
+ * parent's renderer aren't currently handled (rare in practice; revisit
15
+ * if it shows up).
16
+ */
17
+ private unresolvedNames;
18
+ private unregisterListener?;
7
19
  /**
8
20
  * Optional function to wrap each rendered block element.
9
21
  * Called with the rendered block HTMLElement, must return an HTMLElement.
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionRoot.d.ts","sourceRoot":"","sources":["../../src/web-components/ExtensionRoot.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,uBAAuB,CAAC,CAAa;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,aAAa,CAA0C;IAE/D;;;;;;OAMG;IACI,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,CAAC,GAAG,IAAI,CAAQ;IAE5E,MAAM,KAAK,kBAAkB,aAE5B;;IAMD,OAAO,CAAC,YAAY,CAGhB;IAEJ,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,sBAAsB;IAM9B,iBAAiB;IAwDjB,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiBzB,oBAAoB;CAWrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,aAAa,CAAC;KACrC;CACF"}
1
+ {"version":3,"file":"ExtensionRoot.d.ts","sourceRoot":"","sources":["../../src/web-components/ExtensionRoot.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,uBAAuB,CAAC,CAAa;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,aAAa,CAA0C;IAE/D;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAa;IAExC;;;;;;OAMG;IACI,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,CAAC,GAAG,IAAI,CAAQ;IAE5E,MAAM,KAAK,kBAAkB,aAE5B;;IAMD,OAAO,CAAC,YAAY,CAGhB;IAEJ,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,sBAAsB;IAM9B,iBAAiB;IAuHjB,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiBzB,oBAAoB;CAkBrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,aAAa,CAAC;KACrC;CACF"}
@@ -1,10 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { n as injectContext, E, y as ContextRoot } from "./theme-state-BpmgtjdC.js";
5
- import { E as ExtensionRoot, B as Block } from "./ExtensionRoot-B27vHVGI.js";
4
+ import { o as injectContext, E, z as ContextRoot } from "./theme-state-D3w_B6gQ.js";
5
+ import { E as ExtensionRoot, B as Block } from "./ExtensionRoot-CoDMQ-Gw.js";
6
6
  import { a as createEditorBridge, b as createFocusInlineTextMessage, d as createUpdateBlockTranslationMessage } from "./bridge-B8cVa2-2.js";
7
- import { T as TranslationContext } from "./juo-workflow-BXGQS82N.js";
7
+ import { T as TranslationContext } from "./juo-workflow-ZGS5rbZi.js";
8
8
  const _InlineText = class _InlineText extends HTMLElement {
9
9
  constructor() {
10
10
  super();
@@ -1,9 +1,9 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { n as injectContext, E, y as ContextRoot } from "./theme-state-BpmgtjdC.js";
5
- import { E as ExtensionRoot, B as Block } from "./ExtensionRoot-B27vHVGI.js";
6
- import { T as TranslationContext } from "./juo-workflow-BXGQS82N.js";
4
+ import { o as injectContext, E, z as ContextRoot } from "./theme-state-D3w_B6gQ.js";
5
+ import { E as ExtensionRoot, B as Block } from "./ExtensionRoot-CoDMQ-Gw.js";
6
+ import { T as TranslationContext } from "./juo-workflow-ZGS5rbZi.js";
7
7
  class InlineText extends HTMLElement {
8
8
  constructor() {
9
9
  super(...arguments);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@juo/blocks",
3
3
  "private": false,
4
- "version": "1.4.3",
4
+ "version": "1.4.5",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"