@gravity-ui/page-constructor 8.5.0-alpha.4 → 8.5.0-alpha.6

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.
Files changed (96) hide show
  1. package/build/cjs/blocks/ContentLayout/index_deprecated.d.ts +1 -1
  2. package/build/cjs/blocks/ExtendedFeatures/index_deprecated.d.ts +1 -1
  3. package/build/cjs/blocks/FilterBlock/index.d.ts +1 -1
  4. package/build/cjs/blocks/FilterBlock/index_deprecated.d.ts +1 -1
  5. package/build/cjs/blocks/Form/index.d.ts +1 -1
  6. package/build/cjs/blocks/Form/index_deprecated.d.ts +1 -1
  7. package/build/cjs/blocks/HeaderSlider/index.d.ts +1 -1
  8. package/build/cjs/blocks/HeaderSlider/index_deprecated.d.ts +1 -1
  9. package/build/cjs/blocks/Icons/index.d.ts +1 -1
  10. package/build/cjs/blocks/Icons/index_deprecated.d.ts +1 -1
  11. package/build/cjs/blocks/Info/index.d.ts +1 -1
  12. package/build/cjs/blocks/Info/index_deprecated.d.ts +1 -1
  13. package/build/cjs/blocks/Map/index.d.ts +1 -1
  14. package/build/cjs/blocks/Map/index_deprecated.d.ts +1 -1
  15. package/build/cjs/blocks/Media/index_deprecated.d.ts +1 -1
  16. package/build/cjs/blocks/PromoFeaturesBlock/index_deprecated.d.ts +1 -1
  17. package/build/cjs/blocks/Questions/index_deprecated.d.ts +1 -1
  18. package/build/cjs/blocks/Share/index.d.ts +1 -1
  19. package/build/cjs/blocks/Share/index_deprecated.d.ts +1 -1
  20. package/build/cjs/blocks/Slider/index.d.ts +1 -1
  21. package/build/cjs/blocks/Slider/index_deprecated.d.ts +1 -1
  22. package/build/cjs/blocks/Table/index.d.ts +1 -1
  23. package/build/cjs/blocks/Table/index_deprecated.d.ts +1 -1
  24. package/build/cjs/blocks/Tabs/index.d.ts +1 -1
  25. package/build/cjs/blocks/Tabs/index_deprecated.d.ts +1 -1
  26. package/build/cjs/common/constants.d.ts +1 -0
  27. package/build/cjs/common/constants.js +5 -0
  28. package/build/cjs/common/constants.js.map +1 -0
  29. package/build/cjs/common/postMessage.d.ts +1 -0
  30. package/build/cjs/common/postMessage.js +13 -5
  31. package/build/cjs/common/postMessage.js.map +1 -1
  32. package/build/cjs/common/types/messages.d.ts +3 -0
  33. package/build/cjs/common/types/messages.js.map +1 -1
  34. package/build/cjs/context/editorStoreContext/PCEditorStoreProvider.js +5 -3
  35. package/build/cjs/context/editorStoreContext/PCEditorStoreProvider.js.map +1 -1
  36. package/build/cjs/editor-v2/context/editorStore/MainEditorStoreProvider.js +2 -0
  37. package/build/cjs/editor-v2/context/editorStore/MainEditorStoreProvider.js.map +1 -1
  38. package/build/cjs/form-builder-v2/FormBuilderV2.js +1 -1
  39. package/build/cjs/form-builder-v2/FormBuilderV2.js.map +1 -1
  40. package/build/cjs/form-builder-v2/components/Palette/Palette.js +1 -1
  41. package/build/cjs/form-builder-v2/components/Palette/Palette.js.map +1 -1
  42. package/build/cjs/form-generator-v2/components/constants.d.ts +11 -11
  43. package/build/cjs/form-generator-v2/index.d.ts +2 -0
  44. package/build/cjs/form-generator-v2/index.js +8 -0
  45. package/build/cjs/form-generator-v2/index.js.map +1 -0
  46. package/build/cjs/hooks/usePostMessageAPI.js +8 -5
  47. package/build/cjs/hooks/usePostMessageAPI.js.map +1 -1
  48. package/build/esm/blocks/ContentLayout/index_deprecated.d.ts +1 -1
  49. package/build/esm/blocks/ExtendedFeatures/index_deprecated.d.ts +1 -1
  50. package/build/esm/blocks/FilterBlock/index.d.ts +1 -1
  51. package/build/esm/blocks/FilterBlock/index_deprecated.d.ts +1 -1
  52. package/build/esm/blocks/Form/index.d.ts +1 -1
  53. package/build/esm/blocks/Form/index_deprecated.d.ts +1 -1
  54. package/build/esm/blocks/HeaderSlider/index.d.ts +1 -1
  55. package/build/esm/blocks/HeaderSlider/index_deprecated.d.ts +1 -1
  56. package/build/esm/blocks/Icons/index.d.ts +1 -1
  57. package/build/esm/blocks/Icons/index_deprecated.d.ts +1 -1
  58. package/build/esm/blocks/Info/index.d.ts +1 -1
  59. package/build/esm/blocks/Info/index_deprecated.d.ts +1 -1
  60. package/build/esm/blocks/Map/index.d.ts +1 -1
  61. package/build/esm/blocks/Map/index_deprecated.d.ts +1 -1
  62. package/build/esm/blocks/Media/index_deprecated.d.ts +1 -1
  63. package/build/esm/blocks/PromoFeaturesBlock/index_deprecated.d.ts +1 -1
  64. package/build/esm/blocks/Questions/index_deprecated.d.ts +1 -1
  65. package/build/esm/blocks/Share/index.d.ts +1 -1
  66. package/build/esm/blocks/Share/index_deprecated.d.ts +1 -1
  67. package/build/esm/blocks/Slider/index.d.ts +1 -1
  68. package/build/esm/blocks/Slider/index_deprecated.d.ts +1 -1
  69. package/build/esm/blocks/Table/index.d.ts +1 -1
  70. package/build/esm/blocks/Table/index_deprecated.d.ts +1 -1
  71. package/build/esm/blocks/Tabs/index.d.ts +1 -1
  72. package/build/esm/blocks/Tabs/index_deprecated.d.ts +1 -1
  73. package/build/esm/common/constants.d.ts +1 -0
  74. package/build/esm/common/constants.js +2 -0
  75. package/build/esm/common/constants.js.map +1 -0
  76. package/build/esm/common/postMessage.d.ts +1 -0
  77. package/build/esm/common/postMessage.js +12 -5
  78. package/build/esm/common/postMessage.js.map +1 -1
  79. package/build/esm/common/types/messages.d.ts +3 -0
  80. package/build/esm/common/types/messages.js.map +1 -1
  81. package/build/esm/context/editorStoreContext/PCEditorStoreProvider.js +5 -3
  82. package/build/esm/context/editorStoreContext/PCEditorStoreProvider.js.map +1 -1
  83. package/build/esm/editor-v2/context/editorStore/MainEditorStoreProvider.js +2 -0
  84. package/build/esm/editor-v2/context/editorStore/MainEditorStoreProvider.js.map +1 -1
  85. package/build/esm/form-builder-v2/FormBuilderV2.js +1 -1
  86. package/build/esm/form-builder-v2/FormBuilderV2.js.map +1 -1
  87. package/build/esm/form-builder-v2/components/Palette/Palette.js +2 -2
  88. package/build/esm/form-builder-v2/components/Palette/Palette.js.map +1 -1
  89. package/build/esm/form-generator-v2/components/constants.d.ts +11 -11
  90. package/build/esm/form-generator-v2/index.d.ts +2 -0
  91. package/build/esm/form-generator-v2/index.js +3 -0
  92. package/build/esm/form-generator-v2/index.js.map +1 -0
  93. package/build/esm/hooks/usePostMessageAPI.js +8 -5
  94. package/build/esm/hooks/usePostMessageAPI.js.map +1 -1
  95. package/package.json +9 -1
  96. package/widget/index.js +1 -1
@@ -1,16 +1,16 @@
1
1
  export declare const componentMap: {
2
- section: ({ title, opened, fields, when, content, onUpdate, className, index, withAddButton, itemTitle, itemView, }: import("../../index.js").ClassNameProps & import("../types.js").CommonProps & import("../types.js").SectionField) => import("react/jsx-runtime").JSX.Element;
3
- select: ({ title, name, options, when, content, onUpdate, hasClear, defaultValue, }: import("../types.js").CommonProps & import("../types.js").SelectField) => import("react/jsx-runtime").JSX.Element;
4
- textInput: ({ title, name, when, content, onUpdate, defaultValue }: import("../types.js").CommonProps & import("../types.js").TextField) => import("react/jsx-runtime").JSX.Element;
5
- segmentedRadioGroup: ({ title, name, options, when, content, onUpdate, defaultValue, }: import("../types.js").CommonProps & import("../types.js").SegmentedRadioGroupField) => import("react/jsx-runtime").JSX.Element;
6
- colorInput: ({ title, name, when, content, onUpdate, className, defaultValue, }: import("../../index.js").ClassNameProps & import("../types.js").CommonProps & import("../types.js").ColorField) => import("react/jsx-runtime").JSX.Element;
2
+ section: ({ title, opened, fields, when, content, onUpdate, className, index, withAddButton, itemTitle, itemView, }: import("../../index.js").ClassNameProps & import("../index.js").CommonProps & import("../index.js").SectionField) => import("react/jsx-runtime").JSX.Element;
3
+ select: ({ title, name, options, when, content, onUpdate, hasClear, defaultValue, }: import("../index.js").CommonProps & import("../index.js").SelectField) => import("react/jsx-runtime").JSX.Element;
4
+ textInput: ({ title, name, when, content, onUpdate, defaultValue }: import("../index.js").CommonProps & import("../index.js").TextField) => import("react/jsx-runtime").JSX.Element;
5
+ segmentedRadioGroup: ({ title, name, options, when, content, onUpdate, defaultValue, }: import("../index.js").CommonProps & import("../index.js").SegmentedRadioGroupField) => import("react/jsx-runtime").JSX.Element;
6
+ colorInput: ({ title, name, when, content, onUpdate, className, defaultValue, }: import("../../index.js").ClassNameProps & import("../index.js").CommonProps & import("../index.js").ColorField) => import("react/jsx-runtime").JSX.Element;
7
7
  text: ({ text, level, color, when, content, className }: import("../../index.js").ClassNameProps & {
8
8
  text: string;
9
- level?: import("../types.js").Text["level"];
10
- color?: import("../types.js").Text["color"];
11
- when?: import("../types.js").When;
12
- content: import("../types.js").Content;
9
+ level?: import("../index.js").Text["level"];
10
+ color?: import("../index.js").Text["color"];
11
+ when?: import("../index.js").When;
12
+ content: import("../index.js").Content;
13
13
  }) => import("react/jsx-runtime").JSX.Element;
14
- textArea: ({ when, title, content, name, onUpdate, defaultValue }: import("../types.js").CommonProps & import("../types.js").TextField) => import("react/jsx-runtime").JSX.Element;
15
- switch: ({ title, when, name, content, onUpdate, className, defaultValue }: import("../../index.js").ClassNameProps & import("../types.js").SwitchField & import("../types.js").CommonProps) => import("react/jsx-runtime").JSX.Element;
14
+ textArea: ({ when, title, content, name, onUpdate, defaultValue }: import("../index.js").CommonProps & import("../index.js").TextField) => import("react/jsx-runtime").JSX.Element;
15
+ switch: ({ title, when, name, content, onUpdate, className, defaultValue }: import("../../index.js").ClassNameProps & import("../index.js").SwitchField & import("../index.js").CommonProps) => import("react/jsx-runtime").JSX.Element;
16
16
  };
@@ -0,0 +1,2 @@
1
+ export { default as FormGeneratorV2 } from "./FormGenerator.js";
2
+ export * from "./types.js";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormGeneratorV2 = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var FormGenerator_1 = require("./FormGenerator.js");
6
+ Object.defineProperty(exports, "FormGeneratorV2", { enumerable: true, get: function () { return tslib_1.__importDefault(FormGenerator_1).default; } });
7
+ tslib_1.__exportStar(require("./types.js"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["form-generator-v2/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA2D;AAAnD,yIAAA,OAAO,OAAmB;AAClC,qDAAwB","sourcesContent":["export {default as FormGeneratorV2} from './FormGenerator';\nexport * from './types';\n"]}
@@ -5,22 +5,25 @@ exports.listenPostMessageActions = listenPostMessageActions;
5
5
  exports.useInternalPostMessageAPIListener = useInternalPostMessageAPIListener;
6
6
  const tslib_1 = require("tslib");
7
7
  const React = tslib_1.__importStar(require("react"));
8
+ const constants_1 = require("../common/constants.js");
9
+ const postMessage_1 = require("../common/postMessage.js");
8
10
  function sendEventPostMessage(action, data) {
9
- const message = { action, data };
11
+ const message = { action, data, source: constants_1.POST_MESSAGE_SOURCE };
10
12
  window.parent.postMessage(message, '*');
11
13
  }
12
14
  function listenPostMessageActions(action, callback) {
13
15
  const onMessage = (e) => {
16
+ if (!(0, postMessage_1.isValidPostMessage)(e.data)) {
17
+ return undefined;
18
+ }
14
19
  const message = e.data;
15
- if ('action' in message && message.action === action) {
20
+ if (message.action === action) {
16
21
  return callback(message.data);
17
22
  }
18
23
  return undefined;
19
24
  };
20
25
  window.addEventListener('message', onMessage);
21
- return () => {
22
- window.removeEventListener('message', onMessage);
23
- };
26
+ return () => window.removeEventListener('message', onMessage);
24
27
  }
25
28
  function useInternalPostMessageAPIListener(action, callback) {
26
29
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePostMessageAPI.js","sourceRoot":"../../../src","sources":["hooks/usePostMessageAPI.ts"],"names":[],"mappings":";;AAKA,oDAMC;AAED,4DAmBC;AAED,8EAOC;;AAzCD,qDAA+B;AAK/B,SAAgB,oBAAoB,CAChC,MAAS,EACT,IAA0B;IAE1B,MAAM,OAAO,GAAG,EAAC,MAAM,EAAE,IAAI,EAA6B,CAAC;IAC3D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,wBAAwB,CACpC,MAAS,EACT,QAA+C;IAE/C,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAgC,CAAC;QAEnD,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,GAAG,EAAE;QACR,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,iCAAiC,CAC7C,MAAS,EACT,QAA+C;IAE/C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {PostMessageAPIMessage} from '../common/types';\nimport {ActionMessageTypes, EventMessageTypes} from '../common/types/actions';\n\nexport function sendEventPostMessage<K extends keyof EventMessageTypes>(\n action: K,\n data: EventMessageTypes[K],\n) {\n const message = {action, data} as PostMessageAPIMessage<K>;\n window.parent.postMessage(message, '*');\n}\n\nexport function listenPostMessageActions<K extends keyof ActionMessageTypes>(\n action: K,\n callback: (data: ActionMessageTypes[K]) => void,\n) {\n const onMessage = (e: MessageEvent) => {\n const message = e.data as PostMessageAPIMessage<K>;\n\n if ('action' in message && message.action === action) {\n return callback(message.data);\n }\n\n return undefined;\n };\n\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n}\n\nexport function useInternalPostMessageAPIListener<K extends keyof ActionMessageTypes>(\n action: K,\n callback: (data: ActionMessageTypes[K]) => void,\n) {\n React.useEffect(() => {\n return listenPostMessageActions(action, callback);\n }, [action, callback]);\n}\n"]}
1
+ {"version":3,"file":"usePostMessageAPI.js","sourceRoot":"../../../src","sources":["hooks/usePostMessageAPI.ts"],"names":[],"mappings":";;AAOA,oDAMC;AAED,4DAmBC;AAED,8EAOC;;AA3CD,qDAA+B;AAE/B,sDAAwD;AACxD,0DAAyD;AAIzD,SAAgB,oBAAoB,CAChC,MAAS,EACT,IAA0B;IAE1B,MAAM,OAAO,GAAG,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,+BAAmB,EAA6B,CAAC;IACxF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,wBAAwB,CACpC,MAAS,EACT,QAA+C;IAE/C,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;QAClC,IAAI,CAAC,IAAA,gCAAkB,EAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,IAAgC,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,iCAAiC,CAC7C,MAAS,EACT,QAA+C;IAE/C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {POST_MESSAGE_SOURCE} from '../common/constants';\nimport {isValidPostMessage} from '../common/postMessage';\nimport {PostMessageAPIMessage} from '../common/types';\nimport {ActionMessageTypes, EventMessageTypes} from '../common/types/actions';\n\nexport function sendEventPostMessage<K extends keyof EventMessageTypes>(\n action: K,\n data: EventMessageTypes[K],\n) {\n const message = {action, data, source: POST_MESSAGE_SOURCE} as PostMessageAPIMessage<K>;\n window.parent.postMessage(message, '*');\n}\n\nexport function listenPostMessageActions<K extends keyof ActionMessageTypes>(\n action: K,\n callback: (data: ActionMessageTypes[K]) => void,\n) {\n const onMessage = (e: MessageEvent) => {\n if (!isValidPostMessage(e.data)) {\n return undefined;\n }\n\n const message = e.data as PostMessageAPIMessage<K>;\n if (message.action === action) {\n return callback(message.data);\n }\n\n return undefined;\n };\n\n window.addEventListener('message', onMessage);\n return () => window.removeEventListener('message', onMessage);\n}\n\nexport function useInternalPostMessageAPIListener<K extends keyof ActionMessageTypes>(\n action: K,\n callback: (data: ActionMessageTypes[K]) => void,\n) {\n React.useEffect(() => {\n return listenPostMessageActions(action, callback);\n }, [action, callback]);\n}\n"]}
@@ -5,7 +5,7 @@ declare const ContentLayoutBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  textContent: {
11
11
  title: string;
@@ -5,7 +5,7 @@ declare const ExtendedFeaturesBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  type: string;
11
11
  title: {
@@ -4,7 +4,7 @@ declare const FilterBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  allTag: boolean;
10
10
  description: string;
@@ -5,7 +5,7 @@ declare const FilterBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  allTag: boolean;
11
11
  description: string;
@@ -4,7 +4,7 @@ declare const FormBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  title: string;
10
10
  formData: {};
@@ -5,7 +5,7 @@ declare const FormBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  title: string;
11
11
  formData: {};
@@ -4,7 +4,7 @@ declare const HeaderSliderBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  type: string;
10
10
  items: ({
@@ -5,7 +5,7 @@ declare const HeaderSliderBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  type: string;
11
11
  items: ({
@@ -4,7 +4,7 @@ declare const IconsBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  type: string;
10
10
  title: string;
@@ -5,7 +5,7 @@ declare const IconsBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  type: string;
11
11
  title: string;
@@ -4,7 +4,7 @@ declare const InfoBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  type: string;
10
10
  title: string;
@@ -5,7 +5,7 @@ declare const InfoBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  type: string;
11
11
  title: string;
@@ -4,7 +4,7 @@ declare const MapBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  title: string;
10
10
  };
@@ -5,7 +5,7 @@ declare const MapBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  title: string;
11
11
  };
@@ -5,7 +5,7 @@ declare const MediaBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  title: string;
11
11
  description: string;
@@ -5,7 +5,7 @@ declare const PromoFeaturesBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  title: string;
11
11
  theme: string;
@@ -5,7 +5,7 @@ declare const QuestionsBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  type: string;
11
11
  title: string;
@@ -4,7 +4,7 @@ declare const ShareBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  items: string[];
10
10
  title: string;
@@ -5,7 +5,7 @@ declare const ShareBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  items: string[];
11
11
  title: string;
@@ -4,7 +4,7 @@ declare const SliderBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  dots: boolean;
10
10
  type: string;
@@ -5,7 +5,7 @@ declare const SliderBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  dots: boolean;
11
11
  type: string;
@@ -4,7 +4,7 @@ declare const TableBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  type: string;
10
10
  title: string;
@@ -5,7 +5,7 @@ declare const TableBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  type: string;
11
11
  title: string;
@@ -4,7 +4,7 @@ declare const TabsBlockConfig: {
4
4
  schema: {
5
5
  name: string;
6
6
  group: string;
7
- inputs: import("../../form-generator-v2/types.js").Fields;
7
+ inputs: import("../../form-generator-v2/index.js").Fields;
8
8
  default: {
9
9
  title: string;
10
10
  items: {
@@ -5,7 +5,7 @@ declare const TabsBlockConfig: {
5
5
  name: string;
6
6
  group: string;
7
7
  hidden: boolean;
8
- inputs: import("../../form-generator-v2/types.js").Fields;
8
+ inputs: import("../../form-generator-v2/index.js").Fields;
9
9
  default: {
10
10
  title: string;
11
11
  items: {
@@ -0,0 +1 @@
1
+ export declare const POST_MESSAGE_SOURCE = "page-constructor-editor";
@@ -0,0 +1,2 @@
1
+ export const POST_MESSAGE_SOURCE = 'page-constructor-editor';
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"../../../src","sources":["common/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC","sourcesContent":["export const POST_MESSAGE_SOURCE = 'page-constructor-editor';\n"]}
@@ -1,4 +1,5 @@
1
1
  import { ActionMessageTypes, EventMessageTypes } from "./types/index.js";
2
+ export declare function isValidPostMessage(data: unknown): data is Record<string, unknown>;
2
3
  export declare function requestActionPostMessage<K extends keyof ActionMessageTypes>(action: K, data: ActionMessageTypes[K], destinationElement: Window): void;
3
4
  export declare function listenPostMessageEvents<K extends keyof EventMessageTypes>(action: K, callback: (data: EventMessageTypes[K]) => void): () => void;
4
5
  export declare function usePostMessageAPIListener<K extends keyof EventMessageTypes>(action: K, callback: (data: EventMessageTypes[K]) => void, deps?: unknown[]): void;
@@ -1,20 +1,27 @@
1
1
  import * as React from 'react';
2
+ import { POST_MESSAGE_SOURCE } from "./constants.js";
3
+ export function isValidPostMessage(data) {
4
+ return (typeof data === 'object' &&
5
+ data !== null &&
6
+ data.source === POST_MESSAGE_SOURCE);
7
+ }
2
8
  export function requestActionPostMessage(action, data, destinationElement) {
3
- const message = { action, data };
9
+ const message = { action, data, source: POST_MESSAGE_SOURCE };
4
10
  destinationElement.postMessage(message, '*');
5
11
  }
6
12
  export function listenPostMessageEvents(action, callback) {
7
13
  const onMessage = (e) => {
14
+ if (!isValidPostMessage(e.data)) {
15
+ return undefined;
16
+ }
8
17
  const message = e.data;
9
- if ('action' in message && message.action === action) {
18
+ if (message.action === action) {
10
19
  return callback(message.data);
11
20
  }
12
21
  return undefined;
13
22
  };
14
23
  window.addEventListener('message', onMessage);
15
- return () => {
16
- window.removeEventListener('message', onMessage);
17
- };
24
+ return () => window.removeEventListener('message', onMessage);
18
25
  }
19
26
  export function usePostMessageAPIListener(action, callback, deps = []) {
20
27
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"postMessage.js","sourceRoot":"../../../src","sources":["common/postMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,UAAU,wBAAwB,CACpC,MAAS,EACT,IAA2B,EAC3B,kBAA0B;IAE1B,MAAM,OAAO,GAAG,EAAC,MAAM,EAAE,IAAI,EAA6B,CAAC;IAC3D,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,MAAS,EACT,QAA8C;IAE9C,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAgC,CAAC;QAEnD,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,GAAG,EAAE;QACR,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAS,EACT,QAA8C,EAC9C,OAAkB,EAAE;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,uDAAuD;IAC3D,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAClB,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ActionMessageTypes, EventMessageTypes, PostMessageAPIMessage} from './types';\n\nexport function requestActionPostMessage<K extends keyof ActionMessageTypes>(\n action: K,\n data: ActionMessageTypes[K],\n destinationElement: Window,\n) {\n const message = {action, data} as PostMessageAPIMessage<K>;\n destinationElement.postMessage(message, '*');\n}\n\nexport function listenPostMessageEvents<K extends keyof EventMessageTypes>(\n action: K,\n callback: (data: EventMessageTypes[K]) => void,\n) {\n const onMessage = (e: MessageEvent) => {\n const message = e.data as PostMessageAPIMessage<K>;\n\n if ('action' in message && message.action === action) {\n return callback(message.data);\n }\n\n return undefined;\n };\n\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n}\n\nexport function usePostMessageAPIListener<K extends keyof EventMessageTypes>(\n action: K,\n callback: (data: EventMessageTypes[K]) => void,\n deps: unknown[] = [],\n) {\n React.useEffect(() => {\n return listenPostMessageEvents(action, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...deps]);\n}\n"]}
1
+ {"version":3,"file":"postMessage.js","sourceRoot":"../../../src","sources":["common/postMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,mBAAmB,EAAC,uBAAoB;AAGhD,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC5C,OAAO,CACH,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACZ,IAAgC,CAAC,MAAM,KAAK,mBAAmB,CACnE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,MAAS,EACT,IAA2B,EAC3B,kBAA0B;IAE1B,MAAM,OAAO,GAAG,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAA6B,CAAC;IACxF,kBAAkB,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,MAAS,EACT,QAA8C;IAE9C,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;QAClC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,IAAgC,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAS,EACT,QAA8C,EAC9C,OAAkB,EAAE;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,uDAAuD;IAC3D,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAClB,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {POST_MESSAGE_SOURCE} from './constants';\nimport {ActionMessageTypes, EventMessageTypes, PostMessageAPIMessage} from './types';\n\nexport function isValidPostMessage(data: unknown): data is Record<string, unknown> {\n return (\n typeof data === 'object' &&\n data !== null &&\n (data as Record<string, unknown>).source === POST_MESSAGE_SOURCE\n );\n}\n\nexport function requestActionPostMessage<K extends keyof ActionMessageTypes>(\n action: K,\n data: ActionMessageTypes[K],\n destinationElement: Window,\n) {\n const message = {action, data, source: POST_MESSAGE_SOURCE} as PostMessageAPIMessage<K>;\n destinationElement.postMessage(message, '*');\n}\n\nexport function listenPostMessageEvents<K extends keyof EventMessageTypes>(\n action: K,\n callback: (data: EventMessageTypes[K]) => void,\n) {\n const onMessage = (e: MessageEvent) => {\n if (!isValidPostMessage(e.data)) {\n return undefined;\n }\n\n const message = e.data as PostMessageAPIMessage<K>;\n if (message.action === action) {\n return callback(message.data);\n }\n\n return undefined;\n };\n\n window.addEventListener('message', onMessage);\n return () => window.removeEventListener('message', onMessage);\n}\n\nexport function usePostMessageAPIListener<K extends keyof EventMessageTypes>(\n action: K,\n callback: (data: EventMessageTypes[K]) => void,\n deps: unknown[] = [],\n) {\n React.useEffect(() => {\n return listenPostMessageEvents(action, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [...deps]);\n}\n"]}
@@ -1,9 +1,12 @@
1
+ import { POST_MESSAGE_SOURCE } from "../constants.js";
1
2
  import { EditorState } from "../store.js";
2
3
  import { MessageTypes } from "./actions.js";
3
4
  export type PostMessageAPIMessage<K extends keyof MessageTypes> = {
4
5
  action: K;
5
6
  data: MessageTypes[K];
7
+ source: typeof POST_MESSAGE_SOURCE;
6
8
  };
7
9
  export type StoreSyncMessage = {
8
10
  state: EditorState;
11
+ source: typeof POST_MESSAGE_SOURCE;
9
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"../../../../src","sources":["common/types/messages.ts"],"names":[],"mappings":"","sourcesContent":["import {EditorState} from '../store';\n\nimport {MessageTypes} from './actions';\n\nexport type PostMessageAPIMessage<K extends keyof MessageTypes> = {\n action: K;\n data: MessageTypes[K];\n};\n\nexport type StoreSyncMessage = {\n state: EditorState;\n};\n"]}
1
+ {"version":3,"file":"messages.js","sourceRoot":"../../../../src","sources":["common/types/messages.ts"],"names":[],"mappings":"","sourcesContent":["import {POST_MESSAGE_SOURCE} from '../constants';\nimport {EditorState} from '../store';\n\nimport {MessageTypes} from './actions';\n\nexport type PostMessageAPIMessage<K extends keyof MessageTypes> = {\n action: K;\n data: MessageTypes[K];\n source: typeof POST_MESSAGE_SOURCE;\n};\n\nexport type StoreSyncMessage = {\n state: EditorState;\n source: typeof POST_MESSAGE_SOURCE;\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
+ import { isValidPostMessage } from "../../common/postMessage.js";
3
4
  import { createPCEditorStore } from "../../common/store.js";
4
5
  import { sendEventPostMessage } from "../../hooks/usePostMessageAPI.js";
5
6
  import { PCEditorStoreContext } from "./PCEditorStoreContext.js";
@@ -12,13 +13,14 @@ export const PCEditorStoreProvider = ({ children }) => {
12
13
  }, []);
13
14
  React.useEffect(() => {
14
15
  const onMessage = (e) => {
16
+ if (!isValidPostMessage(e.data)) {
17
+ return;
18
+ }
15
19
  const message = e.data;
16
20
  syncStore(message);
17
21
  };
18
22
  window.addEventListener('message', onMessage);
19
- return () => {
20
- window.removeEventListener('message', onMessage);
21
- };
23
+ return () => window.removeEventListener('message', onMessage);
22
24
  }, [syncStore]);
23
25
  // When Page Constructor runs inside the editor preview iframe, keyboard focus stays in the iframe
24
26
  // after clicking the canvas — parent window never receives Cmd+Z. Forward to parent via postMessage.
@@ -1 +1 @@
1
- {"version":3,"file":"PCEditorStoreProvider.js","sourceRoot":"../../../../src","sources":["context/editorStoreContext/PCEditorStoreProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAc,mBAAmB,EAAC,8BAA2B;AAEpE,OAAO,EAAC,oBAAoB,EAAC,yCAAsC;AAEnE,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAI5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAC,QAAQ,EAA6B,EAAE,EAAE;IAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAyB,CAAC;IAEvD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,OAAyB,EAAE,EAAE;QAC9D,IAAI,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAwB,CAAC;YAC3C,SAAS,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9C,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,kGAAkG;IAClG,qGAAqG;IACrG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;YACnC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC3D,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAA4B,CAAC;YAC9C,IAAI,MAAM,EAAE,OAAO,CAAC,mDAAmD,CAAC,EAAE,CAAC;gBACvE,OAAO;YACX,CAAC;YAED,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACb,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,CACH,KAAC,oBAAoB,CAAC,QAAQ,IAC1B,KAAK,EAAE;YACH,KAAK,EAAE,QAAQ,CAAC,OAAO;SAC1B,YAEA,QAAQ,GACmB,CACnC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {StoreApi} from 'zustand';\n\nimport {EditorState, createPCEditorStore} from '../../common/store';\nimport {StoreSyncMessage} from '../../common/types';\nimport {sendEventPostMessage} from '../../hooks/usePostMessageAPI';\n\nimport {PCEditorStoreContext} from './PCEditorStoreContext';\n\ninterface PCEditorStoreProviderProps extends React.PropsWithChildren {}\n\nexport const PCEditorStoreProvider = ({children}: PCEditorStoreProviderProps) => {\n const storeRef = React.useRef<StoreApi<EditorState>>();\n\n const syncStore = React.useCallback((message: StoreSyncMessage) => {\n if (storeRef.current && message.state) {\n storeRef.current.setState(message.state);\n }\n }, []);\n\n React.useEffect(() => {\n const onMessage = (e: MessageEvent) => {\n const message = e.data as StoreSyncMessage;\n syncStore(message);\n };\n\n window.addEventListener('message', onMessage);\n\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [syncStore]);\n\n // When Page Constructor runs inside the editor preview iframe, keyboard focus stays in the iframe\n // after clicking the canvas — parent window never receives Cmd+Z. Forward to parent via postMessage.\n React.useEffect(() => {\n if (typeof window === 'undefined' || window.parent === window) {\n return undefined;\n }\n const onKeyDown = (e: KeyboardEvent) => {\n if (!(e.metaKey || e.ctrlKey) || e.key.toLowerCase() !== 'z') {\n return;\n }\n\n const target = e.target as HTMLElement | null;\n if (target?.closest('input, textarea, select, [contenteditable=\"true\"]')) {\n return;\n }\n\n e.preventDefault();\n\n if (e.shiftKey) {\n sendEventPostMessage('ON_EDITOR_REDO', {});\n } else {\n sendEventPostMessage('ON_EDITOR_UNDO', {});\n }\n };\n window.addEventListener('keydown', onKeyDown, true);\n return () => window.removeEventListener('keydown', onKeyDown, true);\n }, []);\n\n if (!storeRef.current) {\n storeRef.current = createPCEditorStore();\n }\n\n return (\n <PCEditorStoreContext.Provider\n value={{\n state: storeRef.current,\n }}\n >\n {children}\n </PCEditorStoreContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"PCEditorStoreProvider.js","sourceRoot":"../../../../src","sources":["context/editorStoreContext/PCEditorStoreProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,kBAAkB,EAAC,oCAAiC;AAC5D,OAAO,EAAc,mBAAmB,EAAC,8BAA2B;AAEpE,OAAO,EAAC,oBAAoB,EAAC,yCAAsC;AAEnE,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAI5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAC,QAAQ,EAA6B,EAAE,EAAE;IAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAyB,CAAC;IAEvD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,OAAyB,EAAE,EAAE;QAC9D,IAAI,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO;YACX,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,CAAC,IAAwB,CAAC;YAC3C,SAAS,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,kGAAkG;IAClG,qGAAqG;IACrG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;YACnC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC3D,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAA4B,CAAC;YAC9C,IAAI,MAAM,EAAE,OAAO,CAAC,mDAAmD,CAAC,EAAE,CAAC;gBACvE,OAAO;YACX,CAAC;YAED,CAAC,CAAC,cAAc,EAAE,CAAC;YAEnB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACb,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,oBAAoB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,CACH,KAAC,oBAAoB,CAAC,QAAQ,IAC1B,KAAK,EAAE;YACH,KAAK,EAAE,QAAQ,CAAC,OAAO;SAC1B,YAEA,QAAQ,GACmB,CACnC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {StoreApi} from 'zustand';\n\nimport {isValidPostMessage} from '../../common/postMessage';\nimport {EditorState, createPCEditorStore} from '../../common/store';\nimport {StoreSyncMessage} from '../../common/types';\nimport {sendEventPostMessage} from '../../hooks/usePostMessageAPI';\n\nimport {PCEditorStoreContext} from './PCEditorStoreContext';\n\ninterface PCEditorStoreProviderProps extends React.PropsWithChildren {}\n\nexport const PCEditorStoreProvider = ({children}: PCEditorStoreProviderProps) => {\n const storeRef = React.useRef<StoreApi<EditorState>>();\n\n const syncStore = React.useCallback((message: StoreSyncMessage) => {\n if (storeRef.current && message.state) {\n storeRef.current.setState(message.state);\n }\n }, []);\n\n React.useEffect(() => {\n const onMessage = (e: MessageEvent) => {\n if (!isValidPostMessage(e.data)) {\n return;\n }\n\n const message = e.data as StoreSyncMessage;\n syncStore(message);\n };\n\n window.addEventListener('message', onMessage);\n return () => window.removeEventListener('message', onMessage);\n }, [syncStore]);\n\n // When Page Constructor runs inside the editor preview iframe, keyboard focus stays in the iframe\n // after clicking the canvas — parent window never receives Cmd+Z. Forward to parent via postMessage.\n React.useEffect(() => {\n if (typeof window === 'undefined' || window.parent === window) {\n return undefined;\n }\n const onKeyDown = (e: KeyboardEvent) => {\n if (!(e.metaKey || e.ctrlKey) || e.key.toLowerCase() !== 'z') {\n return;\n }\n\n const target = e.target as HTMLElement | null;\n if (target?.closest('input, textarea, select, [contenteditable=\"true\"]')) {\n return;\n }\n\n e.preventDefault();\n\n if (e.shiftKey) {\n sendEventPostMessage('ON_EDITOR_REDO', {});\n } else {\n sendEventPostMessage('ON_EDITOR_UNDO', {});\n }\n };\n window.addEventListener('keydown', onKeyDown, true);\n return () => window.removeEventListener('keydown', onKeyDown, true);\n }, []);\n\n if (!storeRef.current) {\n storeRef.current = createPCEditorStore();\n }\n\n return (\n <PCEditorStoreContext.Provider\n value={{\n state: storeRef.current,\n }}\n >\n {children}\n </PCEditorStoreContext.Provider>\n );\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
+ import { POST_MESSAGE_SOURCE } from "../../../common/constants.js";
3
4
  import { removeFn } from "../../../common/utils.js";
4
5
  import { createEditorStore } from "../../store.js";
5
6
  import { IframeContext } from "../iframeContext/index.js";
@@ -10,6 +11,7 @@ export const MainEditorStoreProvider = ({ children }) => {
10
11
  const sendPostMessage = React.useCallback((data) => {
11
12
  const message = {
12
13
  state: data,
14
+ source: POST_MESSAGE_SOURCE,
13
15
  };
14
16
  if (iframeElement && iframeElement.contentWindow) {
15
17
  iframeElement.contentWindow.postMessage(message, '*');
@@ -1 +1 @@
1
- {"version":3,"file":"MainEditorStoreProvider.js","sourceRoot":"../../../../../src","sources":["editor-v2/context/editorStore/MainEditorStoreProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAC,QAAQ,EAAC,iCAA8B;AAC/C,OAAO,EAAc,iBAAiB,EAAC,uBAAoB;AAC3D,OAAO,EAAC,aAAa,EAAC,kCAAyB;AAE/C,OAAO,EAAC,sBAAsB,EAAC,oCAAiC;AAIhE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAC,QAAQ,EAA0B,EAAE,EAAE;IAC3E,MAAM,EAAC,aAAa,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAyB,CAAC;IAEvD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,IAAiB,EAAE,EAAE;QAClB,MAAM,OAAO,GAAqB;YAC9B,KAAK,EAAE,IAAI;SACd,CAAC;QAEF,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;YAC/C,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,EACD,CAAC,aAAa,CAAC,CAClB,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,EAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAC,GAAG,KAAK,CAAC;YACtF,eAAe,CAAC,QAAQ,CAAC,EAAC,GAAG,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,CACH,KAAC,sBAAsB,CAAC,QAAQ,IAC5B,KAAK,EAAE;YACH,KAAK,EAAE,QAAQ,CAAC,OAAO;SAC1B,YAEA,QAAQ,GACqB,CACrC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {StoreApi} from 'zustand';\n\nimport {EditorState} from '../../../common/store';\nimport {StoreSyncMessage} from '../../../common/types';\nimport {removeFn} from '../../../common/utils';\nimport {EditorStore, createEditorStore} from '../../store';\nimport {IframeContext} from '../iframeContext';\n\nimport {MainEditorStoreContext} from './MainEditorStoreContext';\n\ninterface MainEditorProviderProps extends React.PropsWithChildren {}\n\nexport const MainEditorStoreProvider = ({children}: MainEditorProviderProps) => {\n const {iframeElement} = React.useContext(IframeContext);\n const storeRef = React.useRef<StoreApi<EditorStore>>();\n\n const sendPostMessage = React.useCallback(\n (data: EditorState) => {\n const message: StoreSyncMessage = {\n state: data,\n };\n\n if (iframeElement && iframeElement.contentWindow) {\n iframeElement.contentWindow.postMessage(message, '*');\n }\n },\n [iframeElement],\n );\n\n if (!storeRef.current) {\n storeRef.current = createEditorStore();\n }\n\n React.useEffect(() => {\n storeRef.current?.subscribe((state) => {\n const {historyPast: _historyPast, historyFuture: _historyFuture, ...syncable} = state;\n sendPostMessage(removeFn({...syncable, historyPast: [], historyFuture: []}));\n });\n }, [sendPostMessage]);\n\n return (\n <MainEditorStoreContext.Provider\n value={{\n state: storeRef.current,\n }}\n >\n {children}\n </MainEditorStoreContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"MainEditorStoreProvider.js","sourceRoot":"../../../../../src","sources":["editor-v2/context/editorStore/MainEditorStoreProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,mBAAmB,EAAC,qCAAkC;AAG9D,OAAO,EAAC,QAAQ,EAAC,iCAA8B;AAC/C,OAAO,EAAc,iBAAiB,EAAC,uBAAoB;AAC3D,OAAO,EAAC,aAAa,EAAC,kCAAyB;AAE/C,OAAO,EAAC,sBAAsB,EAAC,oCAAiC;AAIhE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAC,QAAQ,EAA0B,EAAE,EAAE;IAC3E,MAAM,EAAC,aAAa,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAyB,CAAC;IAEvD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,IAAiB,EAAE,EAAE;QAClB,MAAM,OAAO,GAAqB;YAC9B,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,mBAAmB;SAC9B,CAAC;QAEF,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;YAC/C,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,EACD,CAAC,aAAa,CAAC,CAClB,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,EAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAC,GAAG,KAAK,CAAC;YACtF,eAAe,CAAC,QAAQ,CAAC,EAAC,GAAG,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,CACH,KAAC,sBAAsB,CAAC,QAAQ,IAC5B,KAAK,EAAE;YACH,KAAK,EAAE,QAAQ,CAAC,OAAO;SAC1B,YAEA,QAAQ,GACqB,CACrC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {StoreApi} from 'zustand';\n\nimport {POST_MESSAGE_SOURCE} from '../../../common/constants';\nimport {EditorState} from '../../../common/store';\nimport {StoreSyncMessage} from '../../../common/types';\nimport {removeFn} from '../../../common/utils';\nimport {EditorStore, createEditorStore} from '../../store';\nimport {IframeContext} from '../iframeContext';\n\nimport {MainEditorStoreContext} from './MainEditorStoreContext';\n\ninterface MainEditorProviderProps extends React.PropsWithChildren {}\n\nexport const MainEditorStoreProvider = ({children}: MainEditorProviderProps) => {\n const {iframeElement} = React.useContext(IframeContext);\n const storeRef = React.useRef<StoreApi<EditorStore>>();\n\n const sendPostMessage = React.useCallback(\n (data: EditorState) => {\n const message: StoreSyncMessage = {\n state: data,\n source: POST_MESSAGE_SOURCE,\n };\n\n if (iframeElement && iframeElement.contentWindow) {\n iframeElement.contentWindow.postMessage(message, '*');\n }\n },\n [iframeElement],\n );\n\n if (!storeRef.current) {\n storeRef.current = createEditorStore();\n }\n\n React.useEffect(() => {\n storeRef.current?.subscribe((state) => {\n const {historyPast: _historyPast, historyFuture: _historyFuture, ...syncable} = state;\n sendPostMessage(removeFn({...syncable, historyPast: [], historyFuture: []}));\n });\n }, [sendPostMessage]);\n\n return (\n <MainEditorStoreContext.Provider\n value={{\n state: storeRef.current,\n }}\n >\n {children}\n </MainEditorStoreContext.Provider>\n );\n};\n"]}
@@ -24,7 +24,7 @@ const b = formBuilderV2Cn('main');
24
24
  const PALETTE_MIN = 160;
25
25
  const PALETTE_MAX = 400;
26
26
  const PALETTE_DEFAULT = 220;
27
- const INSPECTOR_MIN = 240;
27
+ const INSPECTOR_MIN = 270;
28
28
  const INSPECTOR_MAX = 560;
29
29
  const INSPECTOR_DEFAULT = 320;
30
30
  const FormBuilderShell = ({ className, density }) => {