@juo/blocks 1.7.1 → 1.8.1

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.
@@ -5,7 +5,7 @@ import { signal, effect, createBlockInstance } from "@juo/blocks";
5
5
  import { reportBlockWarning, reportBlockError } from "./observability.js";
6
6
  import { d, v as subscribeContext, E, y as withWrapper, x as n, e as backfillInstanceDefaults, p as isStubDefinition, q as onRegisterBlock } from "./block-C8lPBCF8.js";
7
7
  import { T as ThemeStateContext } from "./theme-state-LZS5T-Xb.js";
8
- import "./juo-workflow-Dqr1lB1k.js";
8
+ import "./juo-workflow-B3OHYsp-.js";
9
9
  class Block extends HTMLElement {
10
10
  constructor() {
11
11
  super();
@@ -1,8 +1,8 @@
1
1
  function isEditorMessage(message) {
2
- return message.type === "PROVIDE_THEME_STATE" || message.type === "PROVIDE_TRANSLATION_OVERRIDES" || message.type === "SELECT_BLOCK" || message.type === "UPDATE_BLOCK_PROPS" || message.type === "ADD_BLOCK" || message.type === "REMOVE_BLOCK" || message.type === "MOVE_BLOCK" || message.type === "SET_BLOCK_PRESET" || message.type === "SET_LOCALE" || message.type === "SET_GLOBAL_STYLES" || message.type === "PROVIDE_GLOBAL_STYLES" || message.type === "SCROLL_SYNC" || message.type === "REQUEST_CONTENT_HEIGHT";
2
+ return message.type === "PROVIDE_THEME_STATE" || message.type === "PROVIDE_TRANSLATION_OVERRIDES" || message.type === "SELECT_BLOCK" || message.type === "UPDATE_BLOCK_PROPS" || message.type === "ADD_BLOCK" || message.type === "REMOVE_BLOCK" || message.type === "MOVE_BLOCK" || message.type === "SET_BLOCK_PRESET" || message.type === "SET_LOCALE" || message.type === "SET_GLOBAL_STYLES" || message.type === "PROVIDE_GLOBAL_STYLES" || message.type === "SCROLL_SYNC" || message.type === "REQUEST_CONTENT_HEIGHT" || message.type === "ADD_BLOCK_MENU_CLOSED";
3
3
  }
4
4
  function isIframeMessage(message) {
5
- return message.type === "SELECT_BLOCK" || message.type === "IFRAME_READY" || message.type === "REGISTER_BLOCKS" || message.type === "REGISTER_ROUTES" || message.type === "REMOVE_BLOCK" || message.type === "UPDATE_BLOCK_PROPS" || message.type === "REQUEST_THEME_STATE" || message.type === "UPSERT_THEME_STATE" || message.type === "REQUEST_TRANSLATION_OVERRIDES" || message.type === "UPDATE_BLOCK_TRANSLATION" || message.type === "REGISTER_BLOCK_TRANSLATION_KEYS" || message.type === "FOCUS_INLINE_TEXT" || message.type === "REQUEST_GLOBAL_STYLES" || message.type === "PROVIDE_INITIAL_GLOBAL_STYLES" || message.type === "REPORT_CONTENT_HEIGHT" || message.type === "SCROLL_SYNC";
5
+ return message.type === "SELECT_BLOCK" || message.type === "IFRAME_READY" || message.type === "REGISTER_BLOCKS" || message.type === "REGISTER_ROUTES" || message.type === "REMOVE_BLOCK" || message.type === "UPDATE_BLOCK_PROPS" || message.type === "REQUEST_THEME_STATE" || message.type === "UPSERT_THEME_STATE" || message.type === "REQUEST_TRANSLATION_OVERRIDES" || message.type === "UPDATE_BLOCK_TRANSLATION" || message.type === "REGISTER_BLOCK_TRANSLATION_KEYS" || message.type === "FOCUS_INLINE_TEXT" || message.type === "REQUEST_GLOBAL_STYLES" || message.type === "PROVIDE_INITIAL_GLOBAL_STYLES" || message.type === "REPORT_CONTENT_HEIGHT" || message.type === "SCROLL_SYNC" || message.type === "OPEN_ADD_BLOCK_MENU";
6
6
  }
7
7
  function createProvideThemeStateMessage(payload) {
8
8
  return {
@@ -182,6 +182,20 @@ function createReportContentHeightMessage(payload) {
182
182
  timestamp: Date.now()
183
183
  };
184
184
  }
185
+ function createOpenAddBlockMenuMessage(payload) {
186
+ return {
187
+ type: "OPEN_ADD_BLOCK_MENU",
188
+ payload,
189
+ timestamp: Date.now()
190
+ };
191
+ }
192
+ function createAddBlockMenuClosedMessage(payload) {
193
+ return {
194
+ type: "ADD_BLOCK_MENU_CLOSED",
195
+ payload,
196
+ timestamp: Date.now()
197
+ };
198
+ }
185
199
  let bridgeInstance = null;
186
200
  function getEditorBridge() {
187
201
  return bridgeInstance;
@@ -243,13 +257,20 @@ function createEditorBridge() {
243
257
  }
244
258
  return false;
245
259
  });
260
+ const isAddBlockButton = path.some((node) => {
261
+ if (!(node instanceof HTMLElement)) return false;
262
+ return node.classList.contains("block-wrapper__add-btn") || node.classList.contains("block-wrapper__add-btn-inner") || node.classList.contains("block-wrapper__add-btn-surface") || node.classList.contains("block-wrapper__add-btn-plus") || node.classList.contains("block-wrapper__add-btn-text");
263
+ });
264
+ if (isAddBlockButton) {
265
+ return;
266
+ }
246
267
  const isEditorUI = path.some((node) => {
247
268
  if (!(node instanceof HTMLElement)) return false;
248
269
  let current = node;
249
270
  const root = node.getRootNode();
250
271
  while (current && current !== root) {
251
272
  const classList = current.classList;
252
- if (classList.contains("block-wrapper__name") || classList.contains("block-wrapper__actions") || classList.contains("block-wrapper__icon") || classList.contains("block-wrapper__remove-icon") || current.hasAttribute("data-block-editor")) {
273
+ if (classList.contains("block-wrapper__name") || classList.contains("block-wrapper__actions") || classList.contains("block-wrapper__icon") || classList.contains("block-wrapper__remove-icon") || classList.contains("block-wrapper__add-btn") || current.hasAttribute("data-block-editor")) {
253
274
  return true;
254
275
  }
255
276
  current = current.parentElement;
@@ -501,31 +522,33 @@ function createEditorBridge() {
501
522
  return bridgeInstance;
502
523
  }
503
524
  export {
504
- isIframeMessage as A,
525
+ getEditorBridge as A,
526
+ isEditorMessage as B,
527
+ isIframeMessage as C,
505
528
  createEditorBridge as a,
506
529
  createFocusInlineTextMessage as b,
507
530
  createRegisterBlockTranslationKeysMessage as c,
508
531
  createUpdateBlockTranslationMessage as d,
509
532
  createSelectBlockMessage as e,
510
- createRemoveBlockMessage as f,
511
- createRegisterBlocksMessage as g,
512
- createRegisterRoutesMessage as h,
513
- createAddBlockMessage as i,
514
- createMoveBlockMessage as j,
515
- createProvideGlobalStylesMessage as k,
516
- createProvideInitialGlobalStylesMessage as l,
517
- createProvideThemeStateMessage as m,
518
- createProvideTranslationOverridesMessage as n,
519
- createReportContentHeightMessage as o,
520
- createRequestGlobalStylesMessage as p,
521
- createRequestThemeStateMessage as q,
522
- createRequestTranslationOverridesMessage as r,
523
- createScrollSyncMessage as s,
524
- createSetBlockPresetMessage as t,
525
- createSetGlobalStylesMessage as u,
526
- createSetLocaleMessage as v,
527
- createUpdateBlockPropsMessage as w,
528
- createUpsertThemeStateMessage as x,
529
- getEditorBridge as y,
530
- isEditorMessage as z
533
+ createOpenAddBlockMenuMessage as f,
534
+ createRemoveBlockMessage as g,
535
+ createRegisterBlocksMessage as h,
536
+ createRegisterRoutesMessage as i,
537
+ createAddBlockMenuClosedMessage as j,
538
+ createAddBlockMessage as k,
539
+ createMoveBlockMessage as l,
540
+ createProvideGlobalStylesMessage as m,
541
+ createProvideInitialGlobalStylesMessage as n,
542
+ createProvideThemeStateMessage as o,
543
+ createProvideTranslationOverridesMessage as p,
544
+ createReportContentHeightMessage as q,
545
+ createRequestGlobalStylesMessage as r,
546
+ createRequestThemeStateMessage as s,
547
+ createRequestTranslationOverridesMessage as t,
548
+ createScrollSyncMessage as u,
549
+ createSetBlockPresetMessage as v,
550
+ createSetGlobalStylesMessage as w,
551
+ createSetLocaleMessage as x,
552
+ createUpdateBlockPropsMessage as y,
553
+ createUpsertThemeStateMessage as z
531
554
  };
package/dist/core.js CHANGED
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { c as createContext, d, w, r as registerBlock, E, u } from "./block-C8lPBCF8.js";
5
5
  import { B, C, a, S, b, e, f, g, h, i, j, k, l, m, n, o, p, q, s, t, v, x, y } from "./block-C8lPBCF8.js";
6
6
  import { D, T, c, i as i2 } from "./theme-state-LZS5T-Xb.js";
7
- import { T as T2, W, c as c2, a as a2, b as b2, g as g2, h as h2 } from "./juo-workflow-Dqr1lB1k.js";
7
+ import { T as T2, W, c as c2, a as a2, b as b2, g as g2, h as h2 } from "./juo-workflow-B3OHYsp-.js";
8
8
  import { reportBlockWarning, reportBlockError } from "./observability.js";
9
9
  function createState() {
10
10
  const discountCode = d(null);
@@ -758,7 +758,7 @@ function createMockRouterService() {
758
758
  }
759
759
  }).routerService;
760
760
  }
761
- function createMockSubscriptionAdapter() {
761
+ function createMockSubscriptionAdapter(options = {}) {
762
762
  const mockSubscriptions = [
763
763
  {
764
764
  id: "sub_1",
@@ -815,19 +815,19 @@ function createMockSubscriptionAdapter() {
815
815
  const subscription = mockSubscriptions.find((sub) => sub.id === id) || null;
816
816
  return { _tag: "Success", data: subscription };
817
817
  },
818
- async search(options = {}) {
818
+ async search(options2 = {}) {
819
819
  await new Promise((resolve) => setTimeout(resolve, 300));
820
820
  const pageSize = 1;
821
821
  const allItems = mockSubscriptions;
822
822
  let startIndex = 0;
823
823
  let endIndex = pageSize;
824
- if (options.pagination) {
825
- if ("after" in options.pagination) {
826
- const cursorIndex = parseInt(options.pagination.after, 10);
824
+ if (options2.pagination) {
825
+ if ("after" in options2.pagination) {
826
+ const cursorIndex = parseInt(options2.pagination.after, 10);
827
827
  startIndex = cursorIndex + 1;
828
828
  endIndex = startIndex + pageSize;
829
- } else if ("before" in options.pagination) {
830
- const cursorIndex = parseInt(options.pagination.before, 10);
829
+ } else if ("before" in options2.pagination) {
830
+ const cursorIndex = parseInt(options2.pagination.before, 10);
831
831
  endIndex = cursorIndex;
832
832
  startIndex = Math.max(0, endIndex - pageSize);
833
833
  }
@@ -858,11 +858,25 @@ function createMockSubscriptionAdapter() {
858
858
  },
859
859
  async addDiscount() {
860
860
  await new Promise((resolve) => setTimeout(resolve, 300));
861
- return { _tag: "Success", data: void 0 };
861
+ const behavior = options.addDiscountBehavior ?? { kind: "success" };
862
+ if (behavior.kind === "success") {
863
+ return { _tag: "Success", data: void 0 };
864
+ }
865
+ if (behavior.kind === "rejected") {
866
+ return {
867
+ _tag: "Failure",
868
+ error: { kind: "REJECTED", reason: behavior.reason }
869
+ };
870
+ }
871
+ return { _tag: "Failure", error: { kind: behavior.error } };
862
872
  },
863
873
  async removeDiscount() {
864
874
  await new Promise((resolve) => setTimeout(resolve, 300));
865
- return { _tag: "Success", data: void 0 };
875
+ const behavior = options.removeDiscountBehavior ?? { kind: "success" };
876
+ if (behavior.kind === "success") {
877
+ return { _tag: "Success", data: void 0 };
878
+ }
879
+ return { _tag: "Failure", error: { kind: behavior.error } };
866
880
  },
867
881
  async reschedule(params) {
868
882
  await new Promise((resolve) => setTimeout(resolve, 300));
@@ -1032,14 +1046,55 @@ function getCurrentSubscriptionId() {
1032
1046
  }
1033
1047
  function createSubscriptionService(adapter) {
1034
1048
  const current = d(null);
1049
+ const discountsChangedAtSignal = d(0);
1050
+ async function refreshAfterDiscountChange(subscriptionId) {
1051
+ const result = await adapter.getById(subscriptionId);
1052
+ if (result._tag === "Success" && result.data != null) {
1053
+ current.value = result.data;
1054
+ }
1055
+ discountsChangedAtSignal.value = discountsChangedAtSignal.value + 1;
1056
+ }
1057
+ function subscriptionIdFromCurrent() {
1058
+ var _a;
1059
+ return ((_a = current.value) == null ? void 0 : _a.id) ?? null;
1060
+ }
1035
1061
  const service = {
1036
1062
  search: adapter.search,
1037
1063
  getById: adapter.getById,
1038
1064
  getCurrentSubscriptionId,
1039
1065
  addItem: (subscriptionId, item) => adapter.addItem({ subscriptionId, item }),
1040
1066
  removeItem: (subscriptionId, itemId) => adapter.removeItem({ subscriptionId, itemId }),
1041
- addDiscount: (subscriptionId, code) => adapter.addDiscount({ subscriptionId, code }),
1042
- removeDiscount: (subscriptionId, discountId) => adapter.removeDiscount({ subscriptionId, discountId }),
1067
+ addDiscount: async (code, subscriptionId) => {
1068
+ const id = subscriptionId ?? subscriptionIdFromCurrent();
1069
+ if (id == null) {
1070
+ return {
1071
+ _tag: "Failure",
1072
+ error: { kind: "SUBSCRIPTION_NOT_FOUND" }
1073
+ };
1074
+ }
1075
+ const result = await adapter.addDiscount({ subscriptionId: id, code });
1076
+ if (result._tag === "Success") {
1077
+ await refreshAfterDiscountChange(id);
1078
+ }
1079
+ return result;
1080
+ },
1081
+ removeDiscount: async (discountId, subscriptionId) => {
1082
+ const id = subscriptionId ?? subscriptionIdFromCurrent();
1083
+ if (id == null) {
1084
+ return {
1085
+ _tag: "Failure",
1086
+ error: { kind: "SUBSCRIPTION_NOT_FOUND" }
1087
+ };
1088
+ }
1089
+ const result = await adapter.removeDiscount({
1090
+ subscriptionId: id,
1091
+ discountId
1092
+ });
1093
+ if (result._tag === "Success") {
1094
+ await refreshAfterDiscountChange(id);
1095
+ }
1096
+ return result;
1097
+ },
1043
1098
  reschedule: (subscriptionId, newDate) => adapter.reschedule({ subscriptionId, newDate }),
1044
1099
  resume: (subscriptionId) => adapter.resume({ subscriptionId }),
1045
1100
  pause: (subscriptionId) => adapter.pause({ subscriptionId }),
@@ -1047,10 +1102,22 @@ function createSubscriptionService(adapter) {
1047
1102
  cancel: (subscriptionId, reason) => adapter.cancel({ subscriptionId, reason }),
1048
1103
  getAvailablePlans: (subscriptionId) => adapter.getAvailablePlans({ subscriptionId }),
1049
1104
  getDefaultSubscriptionId: () => adapter.getDefaultSubscriptionId(),
1050
- current
1105
+ current,
1106
+ discountsChangedAt: discountsChangedAtSignal
1051
1107
  };
1052
1108
  return service;
1053
1109
  }
1110
+ const DISCOUNT_REJECTION_REASONS = [
1111
+ "INVALID_CODE",
1112
+ "INACTIVE",
1113
+ "NOT_APPLICABLE_TO_CUSTOMER",
1114
+ "ALREADY_ADDED",
1115
+ "ALREADY_USED",
1116
+ "NOT_APPLICABLE_TO_PRODUCTS",
1117
+ "NOT_APPLICABLE_TO_SUBSCRIPTION",
1118
+ "INVALID_COMBINATION",
1119
+ "QUANTITY_REQUIREMENT_NOT_MET"
1120
+ ];
1054
1121
  const MOCK_FLOWS = {
1055
1122
  cancellation: [
1056
1123
  {
@@ -1309,6 +1376,7 @@ export {
1309
1376
  a as ContextRequestEvent,
1310
1377
  CustomerServiceContext,
1311
1378
  D as DEFAULT_GLOBAL_STYLES,
1379
+ DISCOUNT_REJECTION_REASONS,
1312
1380
  LoginServiceContext,
1313
1381
  ProductServiceContext,
1314
1382
  RouterServiceContext,
@@ -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;AAWpB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,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;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAidjD"}
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;AAWpB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,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;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAmejD"}
@@ -6,18 +6,34 @@ export declare class BlockWrapper extends HTMLElement {
6
6
  private menuElement;
7
7
  private isMenuOpen;
8
8
  private closeMenuOnOutsideClick;
9
- private emptyObserver;
9
+ private addButtons;
10
+ private addRail;
10
11
  static get observedAttributes(): string[];
11
12
  constructor();
12
13
  private setupStyles;
13
14
  private setupTemplate;
15
+ private createAddButton;
16
+ private handleAddBlock;
17
+ private clearAddButtonMenuState;
14
18
  connectedCallback(): void;
15
19
  /**
16
- * Mirror `data-empty` from the slotted block wrapper onto this editor
17
- * wrapper so page-level divider CSS (and live-data preview) treat empty
18
- * blocks the same as in view mode.
20
+ * Resolve the slotted block's first painted descendant — the
21
+ * card-like surface we paint the hover outline on. We can't use
22
+ * ::slotted() (CE blocks' own :host rules win the cascade) and we
23
+ * can't put outline on .block-wrapper directly (it has no radius and
24
+ * adopting one is more code than this), so we apply outline as an
25
+ * inline style on the visible element. Skips:
26
+ * - <style> nodes (Vue's defineCustomElement injects styles into
27
+ * the CE shadow root next to the rendered tree).
28
+ * - display:contents wrappers (Vue's <ContextProvider> sits between
29
+ * the slotted div and the actual UiCard for createVueRenderer).
30
+ * Crosses one shadow-root boundary for createVueCeRenderer blocks
31
+ * whose slotted element is itself a CE host.
19
32
  */
20
- private observeSlotEmptyState;
33
+ private static resolveOutlineTarget;
34
+ private hoverOutlineTarget;
35
+ private handleHoverEnter;
36
+ private handleHoverLeave;
21
37
  disconnectedCallback(): void;
22
38
  private toggleMenu;
23
39
  private openMenu;
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/editor/components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiQ9C,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,uBAAuB,CAA0C;IACzE,OAAO,CAAC,aAAa,CAAiC;IAEtD,MAAM,KAAK,kBAAkB,aAE5B;;IASD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAiFrB,iBAAiB;IAiCjB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAqC7B,oBAAoB;IAYpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,SAAS;IAWjB,QAAQ,CAAC,KAAK,EAAE,aAAa;IAQ7B,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;CAmD1B;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,0BAA0B,EAAE,YAAY,CAAC;KAC1C;CACF"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/editor/components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmgB9C,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,uBAAuB,CAA0C;IACzE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAA4B;IAE3C,MAAM,KAAK,kBAAkB,aAE5B;;IASD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IA8GrB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,uBAAuB;IAO/B,iBAAiB;IAuCjB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAuBnC,OAAO,CAAC,kBAAkB,CAA4B;IAEtD,OAAO,CAAC,gBAAgB,CAUtB;IAEF,OAAO,CAAC,gBAAgB,CAKtB;IAEF,oBAAoB;IAUpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,SAAS;IAWjB,QAAQ,CAAC,KAAK,EAAE,aAAa;IAQ7B,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;CAmD1B;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,0BAA0B,EAAE,YAAY,CAAC;KAC1C;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { Block, BlockPresets } from '../block';
2
2
  import { GlobalStyles, ThemeSurface, TranslationOverride } from '../theme-state';
3
- export type MessageType = "PROVIDE_THEME_STATE" | "SELECT_BLOCK" | "UPDATE_BLOCK_PROPS" | "ADD_BLOCK" | "REMOVE_BLOCK" | "MOVE_BLOCK" | "IFRAME_READY" | "REGISTER_BLOCKS" | "REGISTER_ROUTES" | "SET_BLOCK_PRESET" | "SET_LOCALE" | "REQUEST_THEME_STATE" | "UPSERT_THEME_STATE" | "REQUEST_TRANSLATION_OVERRIDES" | "PROVIDE_TRANSLATION_OVERRIDES" | "UPDATE_BLOCK_TRANSLATION" | "REGISTER_BLOCK_TRANSLATION_KEYS" | "FOCUS_INLINE_TEXT" | "SET_GLOBAL_STYLES" | "REQUEST_GLOBAL_STYLES" | "PROVIDE_GLOBAL_STYLES" | "PROVIDE_INITIAL_GLOBAL_STYLES" | "SCROLL_SYNC" | "REPORT_CONTENT_HEIGHT" | "REQUEST_CONTENT_HEIGHT";
3
+ export type MessageType = "PROVIDE_THEME_STATE" | "SELECT_BLOCK" | "UPDATE_BLOCK_PROPS" | "ADD_BLOCK" | "REMOVE_BLOCK" | "MOVE_BLOCK" | "IFRAME_READY" | "REGISTER_BLOCKS" | "REGISTER_ROUTES" | "SET_BLOCK_PRESET" | "SET_LOCALE" | "REQUEST_THEME_STATE" | "UPSERT_THEME_STATE" | "REQUEST_TRANSLATION_OVERRIDES" | "PROVIDE_TRANSLATION_OVERRIDES" | "UPDATE_BLOCK_TRANSLATION" | "REGISTER_BLOCK_TRANSLATION_KEYS" | "FOCUS_INLINE_TEXT" | "SET_GLOBAL_STYLES" | "REQUEST_GLOBAL_STYLES" | "PROVIDE_GLOBAL_STYLES" | "PROVIDE_INITIAL_GLOBAL_STYLES" | "SCROLL_SYNC" | "REPORT_CONTENT_HEIGHT" | "REQUEST_CONTENT_HEIGHT" | "OPEN_ADD_BLOCK_MENU" | "ADD_BLOCK_MENU_CLOSED";
4
4
  export interface BaseMessage {
5
5
  type: MessageType;
6
6
  timestamp: number;
@@ -194,8 +194,8 @@ export interface ProvideInitialGlobalStylesMessage extends BaseMessage {
194
194
  styles: GlobalStyles;
195
195
  };
196
196
  }
197
- export type EditorMessage = ProvideThemeStateMessage | ProvideTranslationOverridesMessage | SelectBlockMessage | UpdateBlockPropsMessage | AddBlockMessage | RemoveBlockMessage | MoveBlockMessage | SetBlockPresetMessage | SetLocaleMessage | SetGlobalStylesMessage | ProvideGlobalStylesMessage | ScrollSyncMessage | RequestContentHeightMessage;
198
- export type IframeMessage = SelectBlockMessage | IframeReadyMessage | RegisterBlocksMessage | RegisterRoutesMessage | RemoveBlockMessage | UpdateBlockPropsMessage | RequestThemeStateMessage | UpsertThemeStateMessage | RequestTranslationOverridesMessage | UpdateBlockTranslationMessage | RegisterBlockTranslationKeysMessage | FocusInlineTextMessage | RequestGlobalStylesMessage | ProvideInitialGlobalStylesMessage | ReportContentHeightMessage | ScrollSyncMessage;
197
+ export type EditorMessage = ProvideThemeStateMessage | ProvideTranslationOverridesMessage | SelectBlockMessage | UpdateBlockPropsMessage | AddBlockMessage | RemoveBlockMessage | MoveBlockMessage | SetBlockPresetMessage | SetLocaleMessage | SetGlobalStylesMessage | ProvideGlobalStylesMessage | ScrollSyncMessage | RequestContentHeightMessage | AddBlockMenuClosedMessage;
198
+ export type IframeMessage = SelectBlockMessage | IframeReadyMessage | RegisterBlocksMessage | RegisterRoutesMessage | RemoveBlockMessage | UpdateBlockPropsMessage | RequestThemeStateMessage | UpsertThemeStateMessage | RequestTranslationOverridesMessage | UpdateBlockTranslationMessage | RegisterBlockTranslationKeysMessage | FocusInlineTextMessage | RequestGlobalStylesMessage | ProvideInitialGlobalStylesMessage | ReportContentHeightMessage | ScrollSyncMessage | OpenAddBlockMenuMessage;
199
199
  export type AnyMessage = EditorMessage | IframeMessage;
200
200
  export declare function isEditorMessage(message: AnyMessage): message is EditorMessage;
201
201
  export declare function isIframeMessage(message: AnyMessage): message is IframeMessage;
@@ -234,8 +234,40 @@ export interface RequestContentHeightMessage extends BaseMessage {
234
234
  type: "REQUEST_CONTENT_HEIGHT";
235
235
  payload: Record<string, never>;
236
236
  }
237
+ export interface OpenAddBlockMenuMessage extends BaseMessage {
238
+ type: "OPEN_ADD_BLOCK_MENU";
239
+ payload: {
240
+ targetBlockId: string;
241
+ position: "before" | "after";
242
+ /**
243
+ * Anchor point in iframe-local viewport coordinates (the iframe's own
244
+ * `getBoundingClientRect()` reference frame). The parent translates this
245
+ * into parent-window coordinates by adding the iframe element's own
246
+ * bounding rect offset.
247
+ */
248
+ anchor: {
249
+ x: number;
250
+ y: number;
251
+ };
252
+ };
253
+ }
254
+ /**
255
+ * Sent from the editor (parent) back to the iframe when the floating
256
+ * AddMenu opened by OPEN_ADD_BLOCK_MENU is dismissed. The originating
257
+ * BlockWrapper uses this to reset its add-button visual state (it kept
258
+ * the "Add block" pill visible while the menu was open).
259
+ */
260
+ export interface AddBlockMenuClosedMessage extends BaseMessage {
261
+ type: "ADD_BLOCK_MENU_CLOSED";
262
+ payload: {
263
+ targetBlockId: string;
264
+ position: "before" | "after";
265
+ };
266
+ }
237
267
  export declare function createProvideGlobalStylesMessage(payload: ProvideGlobalStylesMessage["payload"]): ProvideGlobalStylesMessage;
238
268
  export declare function createProvideInitialGlobalStylesMessage(payload: ProvideInitialGlobalStylesMessage["payload"]): ProvideInitialGlobalStylesMessage;
239
269
  export declare function createScrollSyncMessage(payload: ScrollSyncMessage["payload"]): ScrollSyncMessage;
240
270
  export declare function createReportContentHeightMessage(payload: ReportContentHeightMessage["payload"]): ReportContentHeightMessage;
271
+ export declare function createOpenAddBlockMenuMessage(payload: OpenAddBlockMenuMessage["payload"]): OpenAddBlockMenuMessage;
272
+ export declare function createAddBlockMenuClosedMessage(payload: AddBlockMenuClosedMessage["payload"]): AddBlockMenuClosedMessage;
241
273
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/editor/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/editor/messages.ts"],"names":[],"mappings":"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"}