@juo/blocks 2.0.0-alpha.8 → 2.0.0-alpha.9

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.
@@ -401,6 +401,13 @@ function createEditorBridge() {
401
401
  return;
402
402
  }
403
403
  if (clickedBlockId && clickedBlockId === selectedBlockId.value) {
404
+ if (!isEditorUI) {
405
+ const message = createSelectBlockMessage(
406
+ { blockId: clickedBlockId },
407
+ clickedBlockId
408
+ );
409
+ messageHandlers.forEach((handler) => handler(message));
410
+ }
404
411
  return;
405
412
  }
406
413
  if (isNewSelection) {
package/dist/core.js CHANGED
@@ -6,7 +6,7 @@ import { B, q, t, S, v, _, x, c, y, g, z, A, D, F, G, i, H, b, I, o, J, k, K, l,
6
6
  import { G as GRID_V1_ENGINE_ID, d as clampRect, e as applyFillExpansion, f as compactItems, g as findFreeRect, D as DEFAULT_GRID } from "./css-runtime-CjZl0K48.js";
7
7
  import { h, i as i2, L as L2, P, a, T, b as b2, j, k as k2, l as l2, m, n, o as o2, p, q as q2, s, t as t2, u as u2, v as v2, c as c2, w as w3, r } from "./css-runtime-CjZl0K48.js";
8
8
  import { reportBlockWarning, reportBlockError } from "./observability.js";
9
- import { a as createEditorBridge, E as createSelectBlockMessage } from "./bridge-Mz0CqG6E.js";
9
+ import { a as createEditorBridge, E as createSelectBlockMessage } from "./bridge-Bss7Xq3D.js";
10
10
  import { p as p2 } from "./project-gridstack-CRZ_7HoT.js";
11
11
  import { clearLayoutModeAdapter, getLayoutModeAdapter, registerLayoutModeAdapter } from "./layout-mode-adapter-BBd4JRQd.js";
12
12
  const SUPPORTED_UI_LANGUAGES = [
@@ -740,8 +740,12 @@ function createLoginService(init) {
740
740
  function storeTokens(data) {
741
741
  const { access_token, refresh_token, expires_in } = data;
742
742
  accessToken.value = access_token;
743
- refreshToken.value = refresh_token;
744
- expires.value = new Date(Date.now() + expires_in);
743
+ if (typeof refresh_token === "string" && refresh_token !== "") {
744
+ refreshToken.value = refresh_token;
745
+ }
746
+ const lifetime = Number.isFinite(expires_in) ? expires_in : 300;
747
+ const margin = Math.min(60, lifetime / 2);
748
+ expires.value = new Date(Date.now() + (lifetime - margin) * 1e3);
745
749
  }
746
750
  async function getToken() {
747
751
  if (refreshToken.value == null) return null;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/editor/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAGd,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,WAAW,UAAU,CACzB,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,SAAS;IAC1E,KAAK,EAAE,MAAM,CAAC,CAAC;CAChB,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,oBAAoB,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,SAAS;IAC5E,OAAO,EAAE,MAAM,CAAC,CAAC;CAClB,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,KAAK;QACxD,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,CAAC;IACF;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACxC,mBAAmB,CAAC,QAAQ,GAAG,OAAO,EACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CACR,MAAM,EAAE,UAAU,CAChB,kBAAkB,CAAC,QAAQ,CAAC,EAC5B,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,GAAG,IAAI,KACL,IAAI,GACR;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC/B,iBAAiB,EAAE,CACjB,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,MAAM,KACP,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACzC,gBAAgB,EAAE,CAChB,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,KAAK,EAAE,KACZ,IAAI,CAAC;IACV,2BAA2B,EAAE,CAC3B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpC,mBAAmB,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,0BAA0B,EAAE,MAAM,IAAI,CAAC;IACvC;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CA+gBjD"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/editor/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAGd,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,WAAW,UAAU,CACzB,MAAM,GAAG,OAAO,EAChB,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,SAAS;IAC1E,KAAK,EAAE,MAAM,CAAC,CAAC;CAChB,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,oBAAoB,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,SAAS;IAC5E,OAAO,EAAE,MAAM,CAAC,CAAC;CAClB,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,KAAK;QACxD,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,CAAC;IACF;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACxC,mBAAmB,CAAC,QAAQ,GAAG,OAAO,EACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CACR,MAAM,EAAE,UAAU,CAChB,kBAAkB,CAAC,QAAQ,CAAC,EAC5B,oBAAoB,CAAC,QAAQ,CAAC,CAC/B,GAAG,IAAI,KACL,IAAI,GACR;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC/B,iBAAiB,EAAE,CACjB,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,MAAM,KACP,OAAO,CAAC;QAAE,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACzC,gBAAgB,EAAE,CAChB,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,KAAK,EAAE,KACZ,IAAI,CAAC;IACV,2BAA2B,EAAE,CAC3B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpC,mBAAmB,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,0BAA0B,EAAE,MAAM,IAAI,CAAC;IACvC;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAmiBjD"}
@@ -39,6 +39,15 @@ export declare class BlockWrapper extends HTMLElement {
39
39
  private openMenu;
40
40
  private closeMenu;
41
41
  setBlock(block: BlockInstance): void;
42
+ /**
43
+ * SELECT_BLOCK is broadcast once per selection change, so a wrapper that
44
+ * mounts afterwards (overlay content renders asynchronously) would never
45
+ * hear it and stay inactive — leaving its slotted content with
46
+ * pointer-events: none and every juo-text unclickable. Seed the active
47
+ * state from the bridge's cached selection instead of waiting for the
48
+ * next change.
49
+ */
50
+ private syncActiveStateFromBridge;
42
51
  private updateActiveState;
43
52
  /**
44
53
  * Traverses up the DOM tree to find the parent element, crossing shadow root boundaries
@@ -158,6 +167,8 @@ export declare class LayoutBlockWrapper extends HTMLElement {
158
167
  /** Assign each bar its width from the block-type-seeded sequence. */
159
168
  private applyBarWidths;
160
169
  setBlock(block: BlockInstance): void;
170
+ /** See BlockWrapper.syncActiveStateFromBridge. */
171
+ private syncActiveStateFromBridge;
161
172
  }
162
173
  declare global {
163
174
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/editor/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/editor/components.ts"],"names":[],"mappings":"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"}
package/dist/editor.js CHANGED
@@ -3,10 +3,10 @@ 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 { serializeBlocks, createBlockInstanceFromObject, setActiveSurfaceContext, indexOverrides, canvasMode, getActiveSurfaceContext, emitLayoutCommand, DEFAULT_GLOBAL_STYLES, effect, setLayoutCommandEmitter, setLayoutCommandDispatcher, onRegisterBlock, getDefinedBlocks, clearAllSurfaceContexts } from "@juo/blocks";
5
5
  import { canvasMode as canvasMode2 } from "@juo/blocks";
6
- import { L as LAYOUT_BLOCK_WRAPPER_TAG, a as createEditorBridge, b as createOpenAddBlockMenuMessage, d as createRemoveBlockMessage, i as isBlockWrapperTag, r as resolveOutlineTarget, e as getBlockLabel, f as createLayoutCommandMessage, h as createRegisterBlocksMessage, j as createRegisterOverlaysMessage, k as createRegisterRoutesMessage } from "./bridge-Mz0CqG6E.js";
7
- import { l, m, n, c, o, p, q, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, M, g, N, O } from "./bridge-Mz0CqG6E.js";
8
- import { s as setCanvasMode, e as enterLayout } from "./morph-CT5hc5Qp.js";
9
- import { r } from "./morph-CT5hc5Qp.js";
6
+ import { L as LAYOUT_BLOCK_WRAPPER_TAG, a as createEditorBridge, b as createOpenAddBlockMenuMessage, d as createRemoveBlockMessage, i as isBlockWrapperTag, r as resolveOutlineTarget, e as getBlockLabel, f as createLayoutCommandMessage, h as createRegisterBlocksMessage, j as createRegisterOverlaysMessage, k as createRegisterRoutesMessage } from "./bridge-Bss7Xq3D.js";
7
+ import { l, m, n, c, o, p, q, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, M, g, N, O } from "./bridge-Bss7Xq3D.js";
8
+ import { s as setCanvasMode, e as enterLayout } from "./morph-LwttdRML.js";
9
+ import { r } from "./morph-LwttdRML.js";
10
10
  function createEditorHandler(options) {
11
11
  const { themeState, onBlockSelection } = options;
12
12
  const blockSurfaceIndex = /* @__PURE__ */ new Map();
@@ -1052,11 +1052,7 @@ class BlockWrapper extends HTMLElement {
1052
1052
  }
1053
1053
  this.addEventListener("mouseenter", this.handleHoverEnter);
1054
1054
  this.addEventListener("mouseleave", this.handleHoverLeave);
1055
- if (this.block != null) {
1056
- this.updateActiveState(
1057
- this.editorBridge.getSelectedBlockId() === this.block.id
1058
- );
1059
- }
1055
+ this.syncActiveStateFromBridge();
1060
1056
  }
1061
1057
  /**
1062
1058
  * Resolve the slotted block's first painted descendant — the
@@ -1125,6 +1121,21 @@ class BlockWrapper extends HTMLElement {
1125
1121
  if (this.nameElement) {
1126
1122
  this.nameElement.textContent = block.definition.displayName ?? block.definition.name;
1127
1123
  }
1124
+ this.syncActiveStateFromBridge();
1125
+ }
1126
+ /**
1127
+ * SELECT_BLOCK is broadcast once per selection change, so a wrapper that
1128
+ * mounts afterwards (overlay content renders asynchronously) would never
1129
+ * hear it and stay inactive — leaving its slotted content with
1130
+ * pointer-events: none and every juo-text unclickable. Seed the active
1131
+ * state from the bridge's cached selection instead of waiting for the
1132
+ * next change.
1133
+ */
1134
+ syncActiveStateFromBridge() {
1135
+ if (!this.block) return;
1136
+ if (this.editorBridge.getSelectedBlockId() === this.block.id) {
1137
+ this.updateActiveState(true);
1138
+ }
1128
1139
  }
1129
1140
  updateActiveState(isActive) {
1130
1141
  if (isActive) {
@@ -1784,6 +1795,7 @@ const _LayoutBlockWrapper = class _LayoutBlockWrapper extends HTMLElement {
1784
1795
  }
1785
1796
  this.addEventListener("mouseenter", this.handleHoverEnter);
1786
1797
  this.addEventListener("mouseleave", this.handleHoverLeave);
1798
+ this.syncActiveStateFromBridge();
1787
1799
  if (typeof ResizeObserver !== "undefined" && this.skeletonLines) {
1788
1800
  this.skeletonResizeObserver = new ResizeObserver(
1789
1801
  this.scheduleSkeletonRecompute
@@ -1831,6 +1843,10 @@ const _LayoutBlockWrapper = class _LayoutBlockWrapper extends HTMLElement {
1831
1843
  if (this.hasAttribute("data-juo-grid-cell")) return;
1832
1844
  const target = this.paintTarget();
1833
1845
  if (!target) return;
1846
+ if (this.selectionOutlineTarget && this.selectionOutlineTarget !== target) {
1847
+ this.selectionOutlineTarget.style.outline = "";
1848
+ this.selectionOutlineTarget.style.outlineOffset = "";
1849
+ }
1834
1850
  this.selectionOutlineTarget = target;
1835
1851
  target.style.outline = "2px solid #060606";
1836
1852
  target.style.outlineOffset = "0";
@@ -1906,6 +1922,14 @@ const _LayoutBlockWrapper = class _LayoutBlockWrapper extends HTMLElement {
1906
1922
  this.skeletonTitle.textContent = getBlockLabel(block);
1907
1923
  }
1908
1924
  this.applyBarWidths();
1925
+ this.syncActiveStateFromBridge();
1926
+ }
1927
+ /** See BlockWrapper.syncActiveStateFromBridge. */
1928
+ syncActiveStateFromBridge() {
1929
+ if (!this.block) return;
1930
+ if (this.editorBridge.getSelectedBlockId() === this.block.id) {
1931
+ this.updateActiveState(true);
1932
+ }
1909
1933
  }
1910
1934
  };
1911
1935
  /**
@@ -1,5 +1,5 @@
1
1
  import { canvasMode, effect } from "@juo/blocks";
2
- import { g as getEditorBridge, c as createLayoutingModeChangedMessage, W as WRAPPER_SELECTOR } from "./bridge-Mz0CqG6E.js";
2
+ import { g as getEditorBridge, c as createLayoutingModeChangedMessage, W as WRAPPER_SELECTOR } from "./bridge-Bss7Xq3D.js";
3
3
  import { LAYOUT_INTERACTION_START, LAYOUT_INTERACTION_END, LAYOUT_POP_CLASS } from "./layout-mode-adapter-BBd4JRQd.js";
4
4
  function setCanvasMode(enabled) {
5
5
  var _a;
package/dist/preact.js CHANGED
@@ -8,7 +8,7 @@ import { a } from "./block-DnhzyZ1H.js";
8
8
  import { createContext, h, render } from "preact";
9
9
  import { getHook } from "./devtools.js";
10
10
  import { _ as __recordDevtoolsPropSetter, a as applyDevtoolsPropOverride } from "./block-BjJztStr.js";
11
- import { a as createEditorBridge } from "./bridge-Mz0CqG6E.js";
11
+ import { a as createEditorBridge } from "./bridge-Bss7Xq3D.js";
12
12
  function toState(signal) {
13
13
  const [value, setValue] = useState(() => getSignalValue(signal));
14
14
  const disposeRef = useRef(null);
package/dist/react.js CHANGED
@@ -8,7 +8,7 @@ import { a } from "./block-DnhzyZ1H.js";
8
8
  import { createRoot } from "react-dom/client";
9
9
  import { getHook } from "./devtools.js";
10
10
  import { _ as __recordDevtoolsPropSetter, a as applyDevtoolsPropOverride } from "./block-BjJztStr.js";
11
- import { a as createEditorBridge } from "./bridge-Mz0CqG6E.js";
11
+ import { a as createEditorBridge } from "./bridge-Bss7Xq3D.js";
12
12
  function toState(signal) {
13
13
  const subscribe = (callback) => {
14
14
  const dispose = effect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"loginService.d.ts","sourceRoot":"","sources":["../../../src/services/login/loginService.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,oBAAY,yBAAyB;IACnC,OAAO,YAAY;IACnB,aAAa,eAAe;IAC5B,YAAY,mBAAmB;IAC/B,OAAO,aAAa;IACpB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,EAAE,yBAAyB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAG5B,MAAM,EAAE,yBAAyB,EACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMjC;AAED,UAAU,aAAa;IACrB,IAAI,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,KAAK;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;EAmBA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,wBAAwB;;;;;;;;;;;;;;;;EA+MhE"}
1
+ {"version":3,"file":"loginService.d.ts","sourceRoot":"","sources":["../../../src/services/login/loginService.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,oBAAY,yBAAyB;IACnC,OAAO,YAAY;IACnB,aAAa,eAAe;IAC5B,YAAY,mBAAmB;IAC/B,OAAO,aAAa;IACpB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,MAAM,EAAE,yBAAyB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAG5B,MAAM,EAAE,yBAAyB,EACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMjC;AAED,UAAU,aAAa;IACrB,IAAI,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,KAAK;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;EAmBA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,wBAAwB;;;;;;;;;;;;;;;;EAsNhE"}
@@ -17,6 +17,21 @@ export interface RenewalSummarySettings {
17
17
  cancel?: boolean;
18
18
  changeFrequency?: boolean;
19
19
  changeRenewalDate?: boolean;
20
+ /**
21
+ * Whether an anchored subscription may still change its plan.
22
+ *
23
+ * The one key here that does NOT follow the `undefined` = "default visible"
24
+ * convention above, because it is a capability rather than a visibility flag:
25
+ * an anchor bars changing plan *until the merchant opts in*, so only an
26
+ * explicit `true` unblocks it. That matches the backend, which both defaults
27
+ * the setting to `false` and rejects the change server-side when it is off.
28
+ *
29
+ * Note this is not the same predicate as "the subscription is anchored" — an
30
+ * anchor permanently bars moving the renewal *date* (the anchor is the
31
+ * constraint on which day may bill) but bars a plan change only while this is
32
+ * off, since changing plan is how the governing anchor changes.
33
+ */
34
+ changeAnchoredPlan?: boolean;
20
35
  customDeliveryEnabled?: boolean;
21
36
  customChangePlanMessage?: string;
22
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/settings/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,QAAS,SAAQ,sBAAsB;IAGtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAChE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/settings/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,QAAS,SAAQ,sBAAsB;IAGtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAChE"}
@@ -8,9 +8,14 @@
8
8
  * machine-readable code — so hosts discriminate on status. The backend's own
9
9
  * refusal codes collapse accordingly: `invalid_items` and
10
10
  * `shipping_method_unavailable` both arrive as 400, and `disabled`,
11
- * `product_not_allowed` and `subscription_ineligible` all arrive as 403. Telling
12
- * those apart would need the backend to send a code first, the way discounts send
11
+ * `product_not_allowed` and `subscription_ineligible` all as 403. Telling those
12
+ * apart would need the backend to send a code first, the way discounts send
13
13
  * `DISCOUNT_CODE_REJECTED`.
14
+ *
15
+ * `outstanding_balance` is the exception, and it is why granularity matters
16
+ * here: it gets its own status (402) precisely so a host can tell the customer
17
+ * to settle up rather than showing them the "not available" copy every other
18
+ * 403 earns. Any future refusal a customer can act on should do the same.
14
19
  */
15
20
  /**
16
21
  * Reading the instant-order catalog. An adapter that does not implement instant
@@ -58,6 +63,15 @@ export type PlaceInstantOrderError =
58
63
  kind: "AMBIGUOUS_SHIPPING_METHOD";
59
64
  message?: string;
60
65
  }
66
+ /**
67
+ * 402 — the customer has an unpaid or overdue order on their account. Split
68
+ * out of `REFUSED` because it is the only refusal the customer can act on:
69
+ * settle the outstanding order and the purchase becomes available again.
70
+ */
71
+ | {
72
+ kind: "OUTSTANDING_BALANCE";
73
+ message?: string;
74
+ }
61
75
  /**
62
76
  * 403 — the shop has the feature off, the product is not on the allowlist, or
63
77
  * the subscription cannot carry an instant order.
@@ -1 +1 @@
1
- {"version":3,"file":"instantOrderErrors.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/instantOrderErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,MAAM,MAAM,sBAAsB;AAChC,iEAAiE;AAC/D;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE;AACzB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACjD,wEAAwE;GACtE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC5C,2EAA2E;GACzE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC/C;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACzD;;;GAGG;GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"instantOrderErrors.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/instantOrderErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,MAAM,MAAM,sBAAsB;AAChC,iEAAiE;AAC/D;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE;AACzB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACjD,wEAAwE;GACtE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC5C,2EAA2E;GACzE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAC/C;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACzD;;;;GAIG;GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACnD;;;GAGG;GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
package/dist/vue.js CHANGED
@@ -3,7 +3,7 @@ import { getHook } from "./devtools.js";
3
3
  import { a as applyDevtoolsPropOverride, _ as __recordDevtoolsPropSetter } from "./block-BjJztStr.js";
4
4
  import { effect, signal, injectContext, provideContext, TranslationContext, createCeRenderer, attachEmptyTracking } from "@juo/blocks";
5
5
  import { hasRenderedContent } from "@juo/blocks";
6
- import { w as createRegisterBlockTranslationKeysMessage, a as createEditorBridge } from "./bridge-Mz0CqG6E.js";
6
+ import { w as createRegisterBlockTranslationKeysMessage, a as createEditorBridge } from "./bridge-Bss7Xq3D.js";
7
7
  const signalsMap = /* @__PURE__ */ new WeakMap();
8
8
  function toSignal(ref2) {
9
9
  if (!signalsMap.has(ref2)) {
@@ -5,9 +5,9 @@ import { i as injectContext, C as ContextRoot } from "./block-BjJztStr.js";
5
5
  import { V as ViewLayoutController, E as ExtensionRoot, B as Block } from "./ExtensionRoot-CG9dH98z.js";
6
6
  import { canvasMode, getActiveSurfaceContext, emitLayoutSetRects, effect } from "@juo/blocks";
7
7
  import { getLayoutModeAdapter } from "./layout-mode-adapter-BBd4JRQd.js";
8
- import { a as createEditorBridge, n as createFocusInlineTextMessage, K as createUpdateBlockTranslationMessage } from "./bridge-Mz0CqG6E.js";
8
+ import { a as createEditorBridge, n as createFocusInlineTextMessage, K as createUpdateBlockTranslationMessage } from "./bridge-Bss7Xq3D.js";
9
9
  import { T as TranslationContext } from "./css-runtime-CjZl0K48.js";
10
- import { i as initMorphController } from "./morph-CT5hc5Qp.js";
10
+ import { i as initMorphController } from "./morph-LwttdRML.js";
11
11
  class EditorLayoutController {
12
12
  constructor() {
13
13
  __publicField(this, "currentAdapter", null);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@juo/blocks",
3
3
  "private": false,
4
- "version": "2.0.0-alpha.8",
4
+ "version": "2.0.0-alpha.9",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"