@gravity-ui/page-constructor 6.3.2-alpha.2 → 6.3.2-alpha.3

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 (254) hide show
  1. package/build/cjs/blocks/CardLayout/index.d.ts +1 -1
  2. package/build/cjs/blocks/CardLayout/index.js.map +1 -1
  3. package/build/cjs/blocks/Header/dynamic-form.d.ts +1 -1
  4. package/build/cjs/blocks/Header/dynamic-form.js.map +1 -1
  5. package/build/cjs/blocks/Slider/dynamic-form.d.ts +1 -1
  6. package/build/cjs/blocks/Slider/dynamic-form.js.map +1 -1
  7. package/build/cjs/blocks/TestEditorBlock/form.d.ts +1 -1
  8. package/build/cjs/blocks/TestEditorBlock/form.js.map +1 -1
  9. package/build/cjs/common/postMessage.d.ts +4 -0
  10. package/build/cjs/common/postMessage.js +31 -0
  11. package/build/cjs/common/postMessage.js.map +1 -0
  12. package/build/cjs/common/store.d.ts +40 -0
  13. package/build/cjs/common/store.js +20 -0
  14. package/build/cjs/common/store.js.map +1 -0
  15. package/build/cjs/common/types/actions.d.ts +36 -0
  16. package/build/cjs/common/types/actions.js +3 -0
  17. package/build/cjs/common/types/actions.js.map +1 -0
  18. package/build/cjs/common/types/common.d.ts +5 -0
  19. package/build/cjs/common/types/common.js +3 -0
  20. package/build/cjs/common/types/common.js.map +1 -0
  21. package/build/cjs/common/types/forms.d.ts +97 -0
  22. package/build/cjs/common/types/forms.js +3 -0
  23. package/build/cjs/common/types/forms.js.map +1 -0
  24. package/build/cjs/common/types/index.d.ts +4 -0
  25. package/build/cjs/common/types/index.js +8 -0
  26. package/build/cjs/common/types/index.js.map +1 -0
  27. package/build/cjs/common/types/messages.d.ts +9 -0
  28. package/build/cjs/common/types/messages.js +3 -0
  29. package/build/cjs/common/types/messages.js.map +1 -0
  30. package/build/cjs/common/utils.d.ts +25 -0
  31. package/build/cjs/common/utils.js +22 -0
  32. package/build/cjs/common/utils.js.map +1 -0
  33. package/build/cjs/components/Image/dynamic-form.d.ts +1 -1
  34. package/build/cjs/components/Image/dynamic-form.js.map +1 -1
  35. package/build/cjs/constructor-items.d.ts +1 -1
  36. package/build/cjs/constructor-items.js.map +1 -1
  37. package/build/cjs/context/editorStoreContext/PCEditorStoreContext.d.ts +1 -1
  38. package/build/cjs/context/editorStoreContext/PCEditorStoreContext.js +1 -1
  39. package/build/cjs/context/editorStoreContext/PCEditorStoreContext.js.map +1 -1
  40. package/build/cjs/context/editorStoreContext/PCEditorStoreProvider.js +1 -1
  41. package/build/cjs/context/editorStoreContext/PCEditorStoreProvider.js.map +1 -1
  42. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.d.ts +1 -1
  43. package/build/cjs/editor-v2/components/DynamicForm/DynamicForm.js.map +1 -1
  44. package/build/cjs/editor-v2/components/DynamicForm/FieldBase/FieldBase.css +0 -13
  45. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.d.ts +1 -1
  46. package/build/cjs/editor-v2/components/DynamicForm/Fields/Array/Array.js.map +1 -1
  47. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.d.ts +1 -1
  48. package/build/cjs/editor-v2/components/DynamicForm/Fields/Object/Object.js.map +1 -1
  49. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.d.ts +1 -1
  50. package/build/cjs/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js.map +1 -1
  51. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.d.ts +1 -1
  52. package/build/cjs/editor-v2/components/DynamicForm/Fields/Select/Select.js.map +1 -1
  53. package/build/cjs/editor-v2/components/DynamicForm/utils.d.ts +1 -1
  54. package/build/cjs/editor-v2/components/DynamicForm/utils.js.map +1 -1
  55. package/build/cjs/editor-v2/components/Panels/Panels.css +0 -13
  56. package/build/cjs/editor-v2/components/Sidebar/Sidebar.css +3 -13
  57. package/build/cjs/editor-v2/components/Tabs/Tabs.css +7 -2
  58. package/build/cjs/editor-v2/containers/BigOverlay/BigOverlay.css +0 -13
  59. package/build/cjs/editor-v2/containers/BigOverlay/BigOverlay.js +1 -1
  60. package/build/cjs/editor-v2/containers/BigOverlay/BigOverlay.js.map +1 -1
  61. package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.css +20 -0
  62. package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.d.ts +5 -0
  63. package/build/cjs/editor-v2/containers/{BlockConfig/BlockConfig.js → BlockConfigForm/BlockConfigForm.js} +4 -4
  64. package/build/cjs/editor-v2/containers/BlockConfigForm/BlockConfigForm.js.map +1 -0
  65. package/build/cjs/editor-v2/containers/BlocksList/BlocksList.css +3 -16
  66. package/build/cjs/editor-v2/containers/BlocksList/BlocksList.js.map +1 -1
  67. package/build/cjs/editor-v2/containers/Editor/Editor.css +0 -13
  68. package/build/cjs/editor-v2/containers/Editor/Editor.js +3 -2
  69. package/build/cjs/editor-v2/containers/Editor/Editor.js.map +1 -1
  70. package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.css +2 -17
  71. package/build/cjs/editor-v2/containers/GlobalConfig/GlobalConfig.js.map +1 -1
  72. package/build/cjs/editor-v2/containers/MiddleScreen/MiddleScreen.css +1 -14
  73. package/build/cjs/editor-v2/containers/MiddleScreen/MiddleScreen.js +1 -1
  74. package/build/cjs/editor-v2/containers/MiddleScreen/MiddleScreen.js.map +1 -1
  75. package/build/cjs/editor-v2/containers/Overlay/Overlay.css +21 -17
  76. package/build/cjs/editor-v2/containers/Overlay/Overlay.js +2 -2
  77. package/build/cjs/editor-v2/containers/Overlay/Overlay.js.map +1 -1
  78. package/build/cjs/editor-v2/containers/Source/Source.css +0 -13
  79. package/build/cjs/editor-v2/containers/SourceCode/SourceCode.css +1 -14
  80. package/build/cjs/editor-v2/containers/Tree/DragContext.css +2 -15
  81. package/build/cjs/editor-v2/containers/Tree/Tree.css +0 -13
  82. package/build/cjs/editor-v2/containers/Tree/TreeContent.css +0 -16
  83. package/build/cjs/editor-v2/containers/Tree/TreeItem.css +1 -17
  84. package/build/cjs/editor-v2/containers/ViewSwitches/ViewSwitches.css +3 -13
  85. package/build/cjs/editor-v2/containers/ViewSwitches/ViewSwitches.js +1 -1
  86. package/build/cjs/editor-v2/containers/ViewSwitches/ViewSwitches.js.map +1 -1
  87. package/build/cjs/editor-v2/containers/index.d.ts +7 -0
  88. package/build/cjs/editor-v2/containers/index.js +19 -0
  89. package/build/cjs/editor-v2/containers/index.js.map +1 -0
  90. package/build/cjs/editor-v2/context/editorStore/MainEditorStoreProvider.js +1 -1
  91. package/build/cjs/editor-v2/context/editorStore/MainEditorStoreProvider.js.map +1 -1
  92. package/build/cjs/editor-v2/hooks/index.d.ts +2 -0
  93. package/build/cjs/editor-v2/hooks/index.js +8 -0
  94. package/build/cjs/editor-v2/hooks/index.js.map +1 -0
  95. package/build/cjs/editor-v2/hooks/useEditorTabs.js +2 -2
  96. package/build/cjs/editor-v2/hooks/useEditorTabs.js.map +1 -1
  97. package/build/cjs/editor-v2/hooks/useMainEditorInitialize.js +1 -1
  98. package/build/cjs/editor-v2/hooks/useMainEditorInitialize.js.map +1 -1
  99. package/build/cjs/editor-v2/hooks/usePostMessageEvents.d.ts +1 -1
  100. package/build/cjs/editor-v2/hooks/usePostMessageEvents.js +1 -1
  101. package/build/cjs/editor-v2/hooks/usePostMessageEvents.js.map +1 -1
  102. package/build/cjs/editor-v2/index.d.ts +5 -2
  103. package/build/cjs/editor-v2/index.js +5 -4
  104. package/build/cjs/editor-v2/index.js.map +1 -1
  105. package/build/cjs/editor-v2/store.d.ts +2 -2
  106. package/build/cjs/editor-v2/store.js +2 -2
  107. package/build/cjs/editor-v2/store.js.map +1 -1
  108. package/build/cjs/editor-v2/styles/root.css +3 -6
  109. package/build/cjs/editor-v2/utils/index.d.ts +2 -0
  110. package/build/cjs/editor-v2/utils/index.js +2 -0
  111. package/build/cjs/editor-v2/utils/index.js.map +1 -1
  112. package/build/cjs/hooks/usePCEditorInitializeEvents.js.map +1 -1
  113. package/build/cjs/hooks/usePCEditorStore.d.ts +1 -1
  114. package/build/cjs/hooks/usePostMessageAPI.d.ts +1 -1
  115. package/build/cjs/hooks/usePostMessageAPI.js.map +1 -1
  116. package/build/cjs/sub-blocks/BackgroundCard/dynamic-form.d.ts +1 -1
  117. package/build/cjs/sub-blocks/BackgroundCard/dynamic-form.js.map +1 -1
  118. package/build/cjs/utils/form-generator.d.ts +1 -1
  119. package/build/cjs/utils/form-generator.js.map +1 -1
  120. package/build/esm/blocks/CardLayout/index.d.ts +1 -1
  121. package/build/esm/blocks/CardLayout/index.js.map +1 -1
  122. package/build/esm/blocks/Header/dynamic-form.d.ts +1 -1
  123. package/build/esm/blocks/Header/dynamic-form.js.map +1 -1
  124. package/build/esm/blocks/Slider/dynamic-form.d.ts +1 -1
  125. package/build/esm/blocks/Slider/dynamic-form.js.map +1 -1
  126. package/build/esm/blocks/TestEditorBlock/form.d.ts +1 -1
  127. package/build/esm/blocks/TestEditorBlock/form.js.map +1 -1
  128. package/build/esm/common/postMessage.d.ts +4 -0
  129. package/build/esm/common/postMessage.js +25 -0
  130. package/build/esm/common/postMessage.js.map +1 -0
  131. package/build/esm/common/store.d.ts +40 -0
  132. package/build/esm/common/store.js +17 -0
  133. package/build/esm/common/store.js.map +1 -0
  134. package/build/esm/common/types/actions.d.ts +36 -0
  135. package/build/esm/common/types/actions.js +2 -0
  136. package/build/esm/common/types/actions.js.map +1 -0
  137. package/build/esm/common/types/common.d.ts +5 -0
  138. package/build/esm/common/types/common.js +2 -0
  139. package/build/esm/common/types/common.js.map +1 -0
  140. package/build/esm/common/types/forms.d.ts +97 -0
  141. package/build/esm/common/types/forms.js +2 -0
  142. package/build/esm/common/types/forms.js.map +1 -0
  143. package/build/esm/common/types/index.d.ts +4 -0
  144. package/build/esm/common/types/index.js +5 -0
  145. package/build/esm/common/types/index.js.map +1 -0
  146. package/build/esm/common/types/messages.d.ts +9 -0
  147. package/build/esm/common/types/messages.js +2 -0
  148. package/build/esm/common/types/messages.js.map +1 -0
  149. package/build/esm/common/utils.d.ts +25 -0
  150. package/build/esm/common/utils.js +17 -0
  151. package/build/esm/common/utils.js.map +1 -0
  152. package/build/esm/components/Image/dynamic-form.d.ts +1 -1
  153. package/build/esm/components/Image/dynamic-form.js.map +1 -1
  154. package/build/esm/constructor-items.d.ts +1 -1
  155. package/build/esm/constructor-items.js.map +1 -1
  156. package/build/esm/context/editorStoreContext/PCEditorStoreContext.d.ts +1 -1
  157. package/build/esm/context/editorStoreContext/PCEditorStoreContext.js +1 -1
  158. package/build/esm/context/editorStoreContext/PCEditorStoreContext.js.map +1 -1
  159. package/build/esm/context/editorStoreContext/PCEditorStoreProvider.js +1 -1
  160. package/build/esm/context/editorStoreContext/PCEditorStoreProvider.js.map +1 -1
  161. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.d.ts +1 -1
  162. package/build/esm/editor-v2/components/DynamicForm/DynamicForm.js.map +1 -1
  163. package/build/esm/editor-v2/components/DynamicForm/FieldBase/FieldBase.css +0 -13
  164. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.d.ts +1 -1
  165. package/build/esm/editor-v2/components/DynamicForm/Fields/Array/Array.js.map +1 -1
  166. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.d.ts +1 -1
  167. package/build/esm/editor-v2/components/DynamicForm/Fields/Object/Object.js.map +1 -1
  168. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.d.ts +1 -1
  169. package/build/esm/editor-v2/components/DynamicForm/Fields/OneOf/OneOf.js.map +1 -1
  170. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.d.ts +1 -1
  171. package/build/esm/editor-v2/components/DynamicForm/Fields/Select/Select.js.map +1 -1
  172. package/build/esm/editor-v2/components/DynamicForm/utils.d.ts +1 -1
  173. package/build/esm/editor-v2/components/DynamicForm/utils.js.map +1 -1
  174. package/build/esm/editor-v2/components/Panels/Panels.css +0 -13
  175. package/build/esm/editor-v2/components/Sidebar/Sidebar.css +3 -13
  176. package/build/esm/editor-v2/components/Tabs/Tabs.css +7 -2
  177. package/build/esm/editor-v2/containers/BigOverlay/BigOverlay.css +0 -13
  178. package/build/esm/editor-v2/containers/BigOverlay/BigOverlay.js +1 -1
  179. package/build/esm/editor-v2/containers/BigOverlay/BigOverlay.js.map +1 -1
  180. package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.css +20 -0
  181. package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.d.ts +6 -0
  182. package/build/esm/editor-v2/containers/{BlockConfig/BlockConfig.js → BlockConfigForm/BlockConfigForm.js} +5 -5
  183. package/build/esm/editor-v2/containers/BlockConfigForm/BlockConfigForm.js.map +1 -0
  184. package/build/esm/editor-v2/containers/BlocksList/BlocksList.css +3 -16
  185. package/build/esm/editor-v2/containers/BlocksList/BlocksList.js.map +1 -1
  186. package/build/esm/editor-v2/containers/Editor/Editor.css +0 -13
  187. package/build/esm/editor-v2/containers/Editor/Editor.js +3 -2
  188. package/build/esm/editor-v2/containers/Editor/Editor.js.map +1 -1
  189. package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.css +2 -17
  190. package/build/esm/editor-v2/containers/GlobalConfig/GlobalConfig.js.map +1 -1
  191. package/build/esm/editor-v2/containers/MiddleScreen/MiddleScreen.css +1 -14
  192. package/build/esm/editor-v2/containers/MiddleScreen/MiddleScreen.js +1 -1
  193. package/build/esm/editor-v2/containers/MiddleScreen/MiddleScreen.js.map +1 -1
  194. package/build/esm/editor-v2/containers/Overlay/Overlay.css +21 -17
  195. package/build/esm/editor-v2/containers/Overlay/Overlay.js +2 -2
  196. package/build/esm/editor-v2/containers/Overlay/Overlay.js.map +1 -1
  197. package/build/esm/editor-v2/containers/Source/Source.css +0 -13
  198. package/build/esm/editor-v2/containers/SourceCode/SourceCode.css +1 -14
  199. package/build/esm/editor-v2/containers/Tree/DragContext.css +2 -15
  200. package/build/esm/editor-v2/containers/Tree/Tree.css +0 -13
  201. package/build/esm/editor-v2/containers/Tree/TreeContent.css +0 -16
  202. package/build/esm/editor-v2/containers/Tree/TreeItem.css +1 -17
  203. package/build/esm/editor-v2/containers/ViewSwitches/ViewSwitches.css +3 -13
  204. package/build/esm/editor-v2/containers/ViewSwitches/ViewSwitches.js +1 -1
  205. package/build/esm/editor-v2/containers/ViewSwitches/ViewSwitches.js.map +1 -1
  206. package/build/esm/editor-v2/containers/index.d.ts +7 -0
  207. package/build/esm/editor-v2/containers/index.js +8 -0
  208. package/build/esm/editor-v2/containers/index.js.map +1 -0
  209. package/build/esm/editor-v2/context/editorStore/MainEditorStoreProvider.js +1 -1
  210. package/build/esm/editor-v2/context/editorStore/MainEditorStoreProvider.js.map +1 -1
  211. package/build/esm/editor-v2/hooks/index.d.ts +2 -0
  212. package/build/esm/editor-v2/hooks/index.js +3 -0
  213. package/build/esm/editor-v2/hooks/index.js.map +1 -0
  214. package/build/esm/editor-v2/hooks/useEditorTabs.js +2 -2
  215. package/build/esm/editor-v2/hooks/useEditorTabs.js.map +1 -1
  216. package/build/esm/editor-v2/hooks/useMainEditorInitialize.js +1 -1
  217. package/build/esm/editor-v2/hooks/useMainEditorInitialize.js.map +1 -1
  218. package/build/esm/editor-v2/hooks/usePostMessageEvents.d.ts +1 -1
  219. package/build/esm/editor-v2/hooks/usePostMessageEvents.js +1 -1
  220. package/build/esm/editor-v2/hooks/usePostMessageEvents.js.map +1 -1
  221. package/build/esm/editor-v2/index.d.ts +5 -2
  222. package/build/esm/editor-v2/index.js +5 -2
  223. package/build/esm/editor-v2/index.js.map +1 -1
  224. package/build/esm/editor-v2/store.d.ts +2 -2
  225. package/build/esm/editor-v2/store.js +2 -2
  226. package/build/esm/editor-v2/store.js.map +1 -1
  227. package/build/esm/editor-v2/styles/root.css +3 -6
  228. package/build/esm/editor-v2/utils/index.d.ts +2 -0
  229. package/build/esm/editor-v2/utils/index.js +2 -0
  230. package/build/esm/editor-v2/utils/index.js.map +1 -1
  231. package/build/esm/hooks/usePCEditorInitializeEvents.js.map +1 -1
  232. package/build/esm/hooks/usePCEditorStore.d.ts +1 -1
  233. package/build/esm/hooks/usePostMessageAPI.d.ts +1 -1
  234. package/build/esm/hooks/usePostMessageAPI.js.map +1 -1
  235. package/build/esm/sub-blocks/BackgroundCard/dynamic-form.d.ts +1 -1
  236. package/build/esm/sub-blocks/BackgroundCard/dynamic-form.js.map +1 -1
  237. package/build/esm/utils/form-generator.d.ts +1 -1
  238. package/build/esm/utils/form-generator.js.map +1 -1
  239. package/package.json +1 -2
  240. package/widget/index.js +1 -1
  241. package/build/cjs/editor-v2/components/StoreViewer/StoreViewer.css +0 -29
  242. package/build/cjs/editor-v2/components/StoreViewer/StoreViewer.d.ts +0 -6
  243. package/build/cjs/editor-v2/components/StoreViewer/StoreViewer.js +0 -17
  244. package/build/cjs/editor-v2/components/StoreViewer/StoreViewer.js.map +0 -1
  245. package/build/cjs/editor-v2/containers/BlockConfig/BlockConfig.css +0 -33
  246. package/build/cjs/editor-v2/containers/BlockConfig/BlockConfig.d.ts +0 -5
  247. package/build/cjs/editor-v2/containers/BlockConfig/BlockConfig.js.map +0 -1
  248. package/build/esm/editor-v2/components/StoreViewer/StoreViewer.css +0 -29
  249. package/build/esm/editor-v2/components/StoreViewer/StoreViewer.d.ts +0 -7
  250. package/build/esm/editor-v2/components/StoreViewer/StoreViewer.js +0 -15
  251. package/build/esm/editor-v2/components/StoreViewer/StoreViewer.js.map +0 -1
  252. package/build/esm/editor-v2/containers/BlockConfig/BlockConfig.css +0 -33
  253. package/build/esm/editor-v2/containers/BlockConfig/BlockConfig.d.ts +0 -6
  254. package/build/esm/editor-v2/containers/BlockConfig/BlockConfig.js.map +0 -1
@@ -1,16 +1,3 @@
1
- .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
- --g-color-base-selection: var(--g-color-private-black-200);
5
- --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
8
- --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
- --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
12
- }
13
-
14
1
  .pceditor-source-code {
15
2
  height: 100%;
16
3
  padding: 16px 12px;
@@ -23,7 +10,7 @@
23
10
  font-weight: 500;
24
11
  font-size: 13px;
25
12
  line-height: 18px;
26
- color: var(--g-color-private-black-300);
13
+ color: var(--g-color-text-secondary);
27
14
  }
28
15
  .pceditor-source-code__code {
29
16
  white-space: pre;
@@ -1,21 +1,8 @@
1
- .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
- --g-color-base-selection: var(--g-color-private-black-200);
5
- --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
8
- --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
- --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
12
- }
13
-
14
1
  .pceditor-preview {
15
2
  position: absolute;
16
3
  height: auto;
17
- background-color: var(--g-color-base-brand-light);
18
- border: 1px dashed var(--g-color-line-brand);
4
+ background-color: var(--g-color-text-hint);
5
+ border: 1px dashed var(--g-color-text-primary);
19
6
  border-radius: 4px;
20
7
  padding: 8px;
21
8
  z-index: 1000;
@@ -1,16 +1,3 @@
1
- .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
- --g-color-base-selection: var(--g-color-private-black-200);
5
- --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
8
- --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
- --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
12
- }
13
-
14
1
  .pceditor-tree {
15
2
  padding: 12px;
16
3
  position: relative;
@@ -1,16 +1,3 @@
1
- .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
- --g-color-base-selection: var(--g-color-private-black-200);
5
- --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
8
- --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
- --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
12
- }
13
-
14
1
  .pceditor-tree-content {
15
2
  position: relative;
16
3
  }
@@ -20,9 +7,6 @@
20
7
  border-radius: 4px;
21
8
  transition: background-color 0.2s;
22
9
  }
23
- .pceditor-tree-content__drop-zone:hover {
24
- background-color: var(--g-color-text-light-secondary);
25
- }
26
10
  .pceditor-tree-content__children {
27
11
  margin-top: 8px;
28
12
  }
@@ -1,16 +1,3 @@
1
- .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
- --g-color-base-selection: var(--g-color-private-black-200);
5
- --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
8
- --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
- --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
12
- }
13
-
14
1
  .pceditor-tree-item {
15
2
  padding: 8px;
16
3
  margin-bottom: 8px;
@@ -47,7 +34,7 @@
47
34
  display: none;
48
35
  }
49
36
  .pceditor-tree-item__type {
50
- color: var(--g-color-text-dark-secondary);
37
+ color: var(--g-color-text-secondary);
51
38
  }
52
39
  .pceditor-tree-item__title {
53
40
  white-space: nowrap;
@@ -60,7 +47,4 @@
60
47
  margin-bottom: 0;
61
48
  border-radius: 4px;
62
49
  transition: background-color 0.2s;
63
- }
64
- .pceditor-tree-item__children-drop-zone:hover {
65
- background-color: var(--g-color-text-light-secondary);
66
50
  }
@@ -1,16 +1,3 @@
1
- .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
- --g-color-base-selection: var(--g-color-private-black-200);
5
- --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
8
- --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
- --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
12
- }
13
-
14
1
  .pceditor-view-switches {
15
2
  padding: 12px;
16
3
  display: inline-flex;
@@ -20,4 +7,7 @@
20
7
  .pceditor-view-switches__zoom {
21
8
  display: flex;
22
9
  gap: 4px;
10
+ }
11
+ .pceditor-view-switches__zoom-select {
12
+ min-width: 80px;
23
13
  }
@@ -46,7 +46,7 @@ const ViewSwitches = () => {
46
46
  setZoom(newZoom);
47
47
  }
48
48
  }, [setZoom]);
49
- return (_jsxs("div", { className: b(), role: "toolbar", "aria-label": "View controls", children: [_jsx(SegmentedRadioGroup, { value: deviceWidth, onUpdate: setDeviceWidth, "aria-label": "Device viewport selector", children: DEVICE_OPTIONS.map(({ value, label, ariaLabel }) => (_jsx(SegmentedRadioGroup.Option, { value: value, "aria-label": ariaLabel, children: label }, value))) }), _jsxs("div", { className: b('zoom'), role: "group", "aria-label": "Zoom controls", children: [_jsx(Button, { view: "flat", onClick: decreaseZoom, "aria-label": "Decrease zoom", disabled: zoom <= Math.min(...ZOOM_STEPS), children: _jsx(Icon, { data: Minus }) }), _jsx(Select, { multiple: false, value: currentZoomValue, options: zoomOptions, onUpdate: handleZoomUpdate, "aria-label": "Select zoom level", width: "max" }), _jsx(Button, { view: "flat", onClick: increaseZoom, "aria-label": "Increase zoom", disabled: zoom >= Math.max(...ZOOM_STEPS), children: _jsx(Icon, { data: Plus }) })] })] }));
49
+ return (_jsxs("div", { className: b(), role: "toolbar", "aria-label": "View controls", children: [_jsx(SegmentedRadioGroup, { value: deviceWidth, onUpdate: setDeviceWidth, "aria-label": "Device viewport selector", children: DEVICE_OPTIONS.map(({ value, label, ariaLabel }) => (_jsx(SegmentedRadioGroup.Option, { value: value, "aria-label": ariaLabel, children: label }, value))) }), _jsxs("div", { className: b('zoom'), role: "group", "aria-label": "Zoom controls", children: [_jsx(Button, { view: "flat", onClick: decreaseZoom, "aria-label": "Decrease zoom", disabled: zoom <= Math.min(...ZOOM_STEPS), children: _jsx(Icon, { data: Minus }) }), _jsx(Select, { className: b('zoom-select'), multiple: false, value: currentZoomValue, options: zoomOptions, onUpdate: handleZoomUpdate, "aria-label": "Select zoom level", width: "max" }), _jsx(Button, { view: "flat", onClick: increaseZoom, "aria-label": "Increase zoom", disabled: zoom >= Math.max(...ZOOM_STEPS), children: _jsx(Icon, { data: Plus }) })] })] }));
50
50
  };
51
51
  export default React.memo(ViewSwitches);
52
52
  //# sourceMappingURL=ViewSwitches.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitches.js","sourceRoot":"../../../../../src","sources":["editor-v2/containers/ViewSwitches/ViewSwitches.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {Display, Minus, Plus, Smartphone} from '@gravity-ui/icons';\nimport {Button, Icon, SegmentedRadioGroup, Select} from '@gravity-ui/uikit';\n\nimport {ZOOM_STEPS} from '../../constants';\nimport {useMainEditorStore} from '../../hooks/useMainEditorStore';\nimport {editorCn} from '../../utils/cn';\n\nimport './ViewSwitches.scss';\n\nconst b = editorCn('view-switches');\n\n/**\n * Device option type definition\n */\ninterface DeviceOption {\n /** React node to display as the option label */\n label: React.ReactNode;\n /** Device width value (e.g., '100%', '768px') */\n value: string;\n /** Descriptive name for accessibility */\n ariaLabel: string;\n}\n\n/**\n * Available device viewport options\n * - Desktop: 100% width\n * - Tablet: 768px width\n * - Mobile: 576px width\n */\nconst DEVICE_OPTIONS: DeviceOption[] = [\n {\n label: <Icon data={Display} />,\n value: '100%',\n ariaLabel: 'Desktop view',\n },\n {\n label: <Icon data={Smartphone} />,\n value: '768px',\n ariaLabel: 'Tablet view',\n },\n {\n label: <Icon width={14} data={Smartphone} />,\n value: '576px',\n ariaLabel: 'Mobile view',\n },\n];\n\nconst ViewSwitches: React.FC = () => {\n const {zoom, setZoom, decreaseZoom, increaseZoom, deviceWidth, setDeviceWidth} =\n useMainEditorStore();\n\n // Memoize zoom options to prevent unnecessary recalculations\n const zoomOptions = React.useMemo(\n () =>\n ZOOM_STEPS.map((step) => ({\n value: String(step),\n content: `${step}%`,\n })),\n [],\n );\n\n // Memoize current zoom value for Select component\n const currentZoomValue = React.useMemo(() => [String(zoom)], [zoom]);\n\n // Create stable callback for zoom updates\n const handleZoomUpdate = React.useCallback(\n (value: string | string[]) => {\n const newZoom = Number(Array.isArray(value) ? value[0] : value);\n if (!isNaN(newZoom) && ZOOM_STEPS.includes(newZoom)) {\n setZoom(newZoom);\n }\n },\n [setZoom],\n );\n\n return (\n <div className={b()} role=\"toolbar\" aria-label=\"View controls\">\n <SegmentedRadioGroup\n value={deviceWidth}\n onUpdate={setDeviceWidth}\n aria-label=\"Device viewport selector\"\n >\n {DEVICE_OPTIONS.map(({value, label, ariaLabel}) => (\n <SegmentedRadioGroup.Option key={value} value={value} aria-label={ariaLabel}>\n {label}\n </SegmentedRadioGroup.Option>\n ))}\n </SegmentedRadioGroup>\n\n <div className={b('zoom')} role=\"group\" aria-label=\"Zoom controls\">\n <Button\n view=\"flat\"\n onClick={decreaseZoom}\n aria-label=\"Decrease zoom\"\n disabled={zoom <= Math.min(...ZOOM_STEPS)}\n >\n <Icon data={Minus} />\n </Button>\n\n <Select\n multiple={false}\n value={currentZoomValue}\n options={zoomOptions}\n onUpdate={handleZoomUpdate}\n aria-label=\"Select zoom level\"\n width=\"max\"\n />\n\n <Button\n view=\"flat\"\n onClick={increaseZoom}\n aria-label=\"Increase zoom\"\n disabled={zoom >= Math.max(...ZOOM_STEPS)}\n >\n <Icon data={Plus} />\n </Button>\n </div>\n </div>\n );\n};\n\nexport default React.memo(ViewSwitches);\n"]}
1
+ {"version":3,"file":"ViewSwitches.js","sourceRoot":"../../../../../src","sources":["editor-v2/containers/ViewSwitches/ViewSwitches.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {Display, Minus, Plus, Smartphone} from '@gravity-ui/icons';\nimport {Button, Icon, SegmentedRadioGroup, Select} from '@gravity-ui/uikit';\n\nimport {ZOOM_STEPS} from '../../constants';\nimport {useMainEditorStore} from '../../hooks/useMainEditorStore';\nimport {editorCn} from '../../utils/cn';\n\nimport './ViewSwitches.scss';\n\nconst b = editorCn('view-switches');\n\n/**\n * Device option type definition\n */\ninterface DeviceOption {\n /** React node to display as the option label */\n label: React.ReactNode;\n /** Device width value (e.g., '100%', '768px') */\n value: string;\n /** Descriptive name for accessibility */\n ariaLabel: string;\n}\n\n/**\n * Available device viewport options\n * - Desktop: 100% width\n * - Tablet: 768px width\n * - Mobile: 576px width\n */\nconst DEVICE_OPTIONS: DeviceOption[] = [\n {\n label: <Icon data={Display} />,\n value: '100%',\n ariaLabel: 'Desktop view',\n },\n {\n label: <Icon data={Smartphone} />,\n value: '768px',\n ariaLabel: 'Tablet view',\n },\n {\n label: <Icon width={14} data={Smartphone} />,\n value: '576px',\n ariaLabel: 'Mobile view',\n },\n];\n\nconst ViewSwitches: React.FC = () => {\n const {zoom, setZoom, decreaseZoom, increaseZoom, deviceWidth, setDeviceWidth} =\n useMainEditorStore();\n\n // Memoize zoom options to prevent unnecessary recalculations\n const zoomOptions = React.useMemo(\n () =>\n ZOOM_STEPS.map((step) => ({\n value: String(step),\n content: `${step}%`,\n })),\n [],\n );\n\n // Memoize current zoom value for Select component\n const currentZoomValue = React.useMemo(() => [String(zoom)], [zoom]);\n\n // Create stable callback for zoom updates\n const handleZoomUpdate = React.useCallback(\n (value: string | string[]) => {\n const newZoom = Number(Array.isArray(value) ? value[0] : value);\n if (!isNaN(newZoom) && ZOOM_STEPS.includes(newZoom)) {\n setZoom(newZoom);\n }\n },\n [setZoom],\n );\n\n return (\n <div className={b()} role=\"toolbar\" aria-label=\"View controls\">\n <SegmentedRadioGroup\n value={deviceWidth}\n onUpdate={setDeviceWidth}\n aria-label=\"Device viewport selector\"\n >\n {DEVICE_OPTIONS.map(({value, label, ariaLabel}) => (\n <SegmentedRadioGroup.Option key={value} value={value} aria-label={ariaLabel}>\n {label}\n </SegmentedRadioGroup.Option>\n ))}\n </SegmentedRadioGroup>\n\n <div className={b('zoom')} role=\"group\" aria-label=\"Zoom controls\">\n <Button\n view=\"flat\"\n onClick={decreaseZoom}\n aria-label=\"Decrease zoom\"\n disabled={zoom <= Math.min(...ZOOM_STEPS)}\n >\n <Icon data={Minus} />\n </Button>\n\n <Select\n className={b('zoom-select')}\n multiple={false}\n value={currentZoomValue}\n options={zoomOptions}\n onUpdate={handleZoomUpdate}\n aria-label=\"Select zoom level\"\n width=\"max\"\n />\n\n <Button\n view=\"flat\"\n onClick={increaseZoom}\n aria-label=\"Increase zoom\"\n disabled={zoom >= Math.max(...ZOOM_STEPS)}\n >\n <Icon data={Plus} />\n </Button>\n </div>\n </div>\n );\n};\n\nexport default React.memo(ViewSwitches);\n"]}
@@ -0,0 +1,7 @@
1
+ export { Editor } from "./Editor/Editor.js";
2
+ export { default as BlockConfigForm } from "./BlockConfigForm/BlockConfigForm.js";
3
+ export { default as BlocksList } from "./BlocksList/BlocksList.js";
4
+ export { default as Source } from "./Source/Source.js";
5
+ export { default as SourceCode } from "./SourceCode/SourceCode.js";
6
+ export { default as Tree } from "./Tree/Tree.js";
7
+ export { default as ViewSwitches } from "./ViewSwitches/ViewSwitches.js";
@@ -0,0 +1,8 @@
1
+ export { Editor } from "./Editor/Editor.js";
2
+ export { default as BlockConfigForm } from "./BlockConfigForm/BlockConfigForm.js";
3
+ export { default as BlocksList } from "./BlocksList/BlocksList.js";
4
+ export { default as Source } from "./Source/Source.js";
5
+ export { default as SourceCode } from "./SourceCode/SourceCode.js";
6
+ export { default as Tree } from "./Tree/Tree.js";
7
+ export { default as ViewSwitches } from "./ViewSwitches/ViewSwitches.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["editor-v2/containers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,2BAAwB;AACvC,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,6CAA0C;AAC7E,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,mCAAgC;AAC9D,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,2BAAwB;AAClD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,mCAAgC;AAC9D,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,uBAAoB;AAC5C,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,uCAAoC","sourcesContent":["export {Editor} from './Editor/Editor';\nexport {default as BlockConfigForm} from './BlockConfigForm/BlockConfigForm';\nexport {default as BlocksList} from './BlocksList/BlocksList';\nexport {default as Source} from './Source/Source';\nexport {default as SourceCode} from './SourceCode/SourceCode';\nexport {default as Tree} from './Tree/Tree';\nexport {default as ViewSwitches} from './ViewSwitches/ViewSwitches';\n"]}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import { removeFn } from "../../../../common/utils.js";
3
+ import { removeFn } from "../../../common/utils.js";
4
4
  import { createEditorStore } from "../../store.js";
5
5
  import { IframeContext } from "../iframeContext/index.js";
6
6
  import { MainEditorStoreContext } from "./MainEditorStoreContext.js";
@@ -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;AAK/B,OAAO,EAAC,QAAQ,EAAC,oCAAiC;AAClD,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,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,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';\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 sendPostMessage(removeFn(state));\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;AAK/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,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,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';\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 sendPostMessage(removeFn(state));\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"]}
@@ -0,0 +1,2 @@
1
+ export { usePostMessageEvents } from "./usePostMessageEvents.js";
2
+ export { useMainEditorStore } from "./useMainEditorStore.js";
@@ -0,0 +1,3 @@
1
+ export { usePostMessageEvents } from "./usePostMessageEvents.js";
2
+ export { useMainEditorStore } from "./useMainEditorStore.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAC5D,OAAO,EAAC,kBAAkB,EAAC,gCAA6B","sourcesContent":["export {usePostMessageEvents} from './usePostMessageEvents';\nexport {useMainEditorStore} from './useMainEditorStore';\n"]}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import Tabs from "../components/Tabs/Tabs.js";
4
- import BlockConfig from "../containers/BlockConfig/BlockConfig.js";
4
+ import BlockConfigForm from "../containers/BlockConfigForm/BlockConfigForm.js";
5
5
  import BlocksList from "../containers/BlocksList/BlocksList.js";
6
6
  import GlobalConfig from "../containers/GlobalConfig/GlobalConfig.js";
7
7
  import SourceCode from "../containers/SourceCode/SourceCode.js";
@@ -50,7 +50,7 @@ export const useEditorTabs = ({ leftTabs, rightTabs, }) => {
50
50
  {
51
51
  id: 'block-config',
52
52
  title: 'INPUTS',
53
- component: BlockConfig,
53
+ component: BlockConfigForm,
54
54
  },
55
55
  {
56
56
  id: 'source-code-yaml',
@@ -1 +1 @@
1
- {"version":3,"file":"useEditorTabs.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/useEditorTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,IAAqB,mCAAgC;AAC5D,OAAO,WAAW,iDAA8C;AAChE,OAAO,UAAU,+CAA4C;AAC7D,OAAO,YAAY,mDAAgD;AACnE,OAAO,UAAU,+CAA4C;AAC7D,OAAO,IAAI,oCAA2B;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,QAAQ,EACR,SAAS,GAIZ,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACH,IAAI,EAAE;YACF;gBACI,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,GAAG,EAAE,CAAC,CACb,KAAC,IAAI,IACD,KAAK,EAAE;wBACH;4BACI,EAAE,EAAE,aAAa;4BACjB,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,UAAU;yBACxB;wBACD;4BACI,EAAE,EAAE,QAAQ;4BACZ,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,IAAI;yBAClB;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;qBACJ,GACH,CACL;aACJ;YACD;gBACI,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,YAAY;aAC1B;YACD,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SACtB;QACD,KAAK,EAAE;YACH;gBACI,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,GAAG,EAAE,CAAC,CACb,KAAC,IAAI,IACD,KAAK,EAAE;wBACH;4BACI,EAAE,EAAE,cAAc;4BAClB,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,WAAW;yBACzB;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;qBACJ,GACH,CACL;aACJ;YACD,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;SACvB;KACJ,CAAC,EACF,CAAC,QAAQ,EAAE,SAAS,CAAC,CACxB,CAAC;IAEF,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport Tabs, {TabsItemProps} from '../components/Tabs/Tabs';\nimport BlockConfig from '../containers/BlockConfig/BlockConfig';\nimport BlocksList from '../containers/BlocksList/BlocksList';\nimport GlobalConfig from '../containers/GlobalConfig/GlobalConfig';\nimport SourceCode from '../containers/SourceCode/SourceCode';\nimport Tree from '../containers/Tree';\n\nexport const useEditorTabs = ({\n leftTabs,\n rightTabs,\n}: {\n leftTabs?: TabsItemProps[];\n rightTabs?: TabsItemProps[];\n}) => {\n const tabs = React.useMemo(\n () => ({\n left: [\n {\n id: 'page',\n title: 'PAGE',\n component: () => (\n <Tabs\n items={[\n {\n id: 'blocks-list',\n title: 'BLOCKS',\n component: BlocksList,\n },\n {\n id: 'layers',\n title: 'LAYERS',\n component: Tree,\n },\n {\n id: 'source-code-yaml',\n title: 'YAML',\n component: () => <SourceCode format=\"yaml\" />,\n },\n {\n id: 'source-code-json',\n title: 'JSON',\n component: () => <SourceCode format=\"json\" />,\n },\n ]}\n />\n ),\n },\n {\n id: 'navigation',\n title: 'NAVIGATION',\n component: GlobalConfig,\n },\n ...(leftTabs || []),\n ],\n right: [\n {\n id: 'edit',\n title: 'EDIT',\n component: () => (\n <Tabs\n items={[\n {\n id: 'block-config',\n title: 'INPUTS',\n component: BlockConfig,\n },\n {\n id: 'source-code-yaml',\n title: 'YAML',\n component: () => <SourceCode format=\"yaml\" />,\n },\n {\n id: 'source-code-json',\n title: 'JSON',\n component: () => <SourceCode format=\"json\" />,\n },\n ]}\n />\n ),\n },\n ...(rightTabs || []),\n ],\n }),\n [leftTabs, rightTabs],\n );\n\n return tabs;\n};\n"]}
1
+ {"version":3,"file":"useEditorTabs.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/useEditorTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,IAAqB,mCAAgC;AAC5D,OAAO,eAAe,yDAAsD;AAC5E,OAAO,UAAU,+CAA4C;AAC7D,OAAO,YAAY,mDAAgD;AACnE,OAAO,UAAU,+CAA4C;AAC7D,OAAO,IAAI,oCAA2B;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC1B,QAAQ,EACR,SAAS,GAIZ,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACH,IAAI,EAAE;YACF;gBACI,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,GAAG,EAAE,CAAC,CACb,KAAC,IAAI,IACD,KAAK,EAAE;wBACH;4BACI,EAAE,EAAE,aAAa;4BACjB,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,UAAU;yBACxB;wBACD;4BACI,EAAE,EAAE,QAAQ;4BACZ,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,IAAI;yBAClB;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;qBACJ,GACH,CACL;aACJ;YACD;gBACI,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,YAAY;aAC1B;YACD,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SACtB;QACD,KAAK,EAAE;YACH;gBACI,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,GAAG,EAAE,CAAC,CACb,KAAC,IAAI,IACD,KAAK,EAAE;wBACH;4BACI,EAAE,EAAE,cAAc;4BAClB,KAAK,EAAE,QAAQ;4BACf,SAAS,EAAE,eAAe;yBAC7B;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;wBACD;4BACI,EAAE,EAAE,kBAAkB;4BACtB,KAAK,EAAE,MAAM;4BACb,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,GAAG;yBAChD;qBACJ,GACH,CACL;aACJ;YACD,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;SACvB;KACJ,CAAC,EACF,CAAC,QAAQ,EAAE,SAAS,CAAC,CACxB,CAAC;IAEF,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport Tabs, {TabsItemProps} from '../components/Tabs/Tabs';\nimport BlockConfigForm from '../containers/BlockConfigForm/BlockConfigForm';\nimport BlocksList from '../containers/BlocksList/BlocksList';\nimport GlobalConfig from '../containers/GlobalConfig/GlobalConfig';\nimport SourceCode from '../containers/SourceCode/SourceCode';\nimport Tree from '../containers/Tree';\n\nexport const useEditorTabs = ({\n leftTabs,\n rightTabs,\n}: {\n leftTabs?: TabsItemProps[];\n rightTabs?: TabsItemProps[];\n}) => {\n const tabs = React.useMemo(\n () => ({\n left: [\n {\n id: 'page',\n title: 'PAGE',\n component: () => (\n <Tabs\n items={[\n {\n id: 'blocks-list',\n title: 'BLOCKS',\n component: BlocksList,\n },\n {\n id: 'layers',\n title: 'LAYERS',\n component: Tree,\n },\n {\n id: 'source-code-yaml',\n title: 'YAML',\n component: () => <SourceCode format=\"yaml\" />,\n },\n {\n id: 'source-code-json',\n title: 'JSON',\n component: () => <SourceCode format=\"json\" />,\n },\n ]}\n />\n ),\n },\n {\n id: 'navigation',\n title: 'NAVIGATION',\n component: GlobalConfig,\n },\n ...(leftTabs || []),\n ],\n right: [\n {\n id: 'edit',\n title: 'EDIT',\n component: () => (\n <Tabs\n items={[\n {\n id: 'block-config',\n title: 'INPUTS',\n component: BlockConfigForm,\n },\n {\n id: 'source-code-yaml',\n title: 'YAML',\n component: () => <SourceCode format=\"yaml\" />,\n },\n {\n id: 'source-code-json',\n title: 'JSON',\n component: () => <SourceCode format=\"json\" />,\n },\n ]}\n />\n ),\n },\n ...(rightTabs || []),\n ],\n }),\n [leftTabs, rightTabs],\n );\n\n return tabs;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { usePostMessageAPIListener } from "../../../common/postMessage.js";
1
+ import { usePostMessageAPIListener } from "../../common/postMessage.js";
2
2
  import { useMainEditorStore } from "./useMainEditorStore.js";
3
3
  import { usePostMessageEvents } from "./usePostMessageEvents.js";
4
4
  const useMainEditorInitialize = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useMainEditorInitialize.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/useMainEditorInitialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,uCAAoC;AAEtE,OAAO,EAAC,kBAAkB,EAAC,gCAA6B;AACxD,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAE5D,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACjC,MAAM,EAAC,kBAAkB,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACpD,MAAM,EACF,UAAU,EACV,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,GACtB,GAAG,kBAAkB,EAAE,CAAC;IAEzB,yBAAyB,CACrB,SAAS,EACT,GAAG,EAAE;QACD,UAAU,EAAE,CAAC;QACb,kBAAkB,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAC/C,kBAAkB,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,kBAAkB,CAAC,CACvB,CAAC;IAEF,yBAAyB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QACrD,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,yBAAyB,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;QACtD,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,yBAAyB,CACrB,aAAa,EACb,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAE;QACjB,IAAI,qBAAqB,KAAK,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC/E,WAAW,CACP,IAAI,EACJ,kBAAkB,EAClB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAC5D,CAAC;QACN,CAAC;QACD,IAAI,qBAAqB,KAAK,SAAS,IAAI,IAAI,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YACjF,YAAY,CACR,mBAAmB,EACnB,IAAI,EACJ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAC5D,CAAC;QACN,CAAC;QACD,WAAW,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAC5C,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["import {usePostMessageAPIListener} from '../../../common/postMessage';\n\nimport {useMainEditorStore} from './useMainEditorStore';\nimport {usePostMessageEvents} from './usePostMessageEvents';\n\nconst useMainEditorInitialize = () => {\n const {requestPostMessage} = usePostMessageEvents();\n const {\n initialize,\n setConfig,\n setContent,\n manipulateOverlayMode,\n disableMode,\n insertBlock,\n reorderBlock,\n preInsertBlockType,\n preReorderBlockPath,\n } = useMainEditorStore();\n\n usePostMessageAPIListener(\n 'ON_INIT',\n () => {\n initialize();\n requestPostMessage('GET_SUPPORTED_BLOCKS', {});\n requestPostMessage('GET_INITIAL_CONTENT', {});\n },\n [requestPostMessage],\n );\n\n usePostMessageAPIListener('ON_INITIAL_CONTENT', (data) => {\n setContent(data);\n });\n\n usePostMessageAPIListener('ON_SUPPORTED_BLOCKS', (data) => {\n setConfig(data);\n });\n\n usePostMessageAPIListener(\n 'ON_MOUSE_UP',\n ({path, position}) => {\n if (manipulateOverlayMode === 'insert' && path && position && preInsertBlockType) {\n insertBlock(\n path,\n preInsertBlockType,\n ['left', 'top'].includes(position) ? 'prepend' : 'append',\n );\n }\n if (manipulateOverlayMode === 'reorder' && path && position && preReorderBlockPath) {\n reorderBlock(\n preReorderBlockPath,\n path,\n ['left', 'top'].includes(position) ? 'prepend' : 'append',\n );\n }\n disableMode();\n },\n [preInsertBlockType, preReorderBlockPath],\n );\n};\n\nexport default useMainEditorInitialize;\n"]}
1
+ {"version":3,"file":"useMainEditorInitialize.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/useMainEditorInitialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,oCAAiC;AAEnE,OAAO,EAAC,kBAAkB,EAAC,gCAA6B;AACxD,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAE5D,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACjC,MAAM,EAAC,kBAAkB,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACpD,MAAM,EACF,UAAU,EACV,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,GACtB,GAAG,kBAAkB,EAAE,CAAC;IAEzB,yBAAyB,CACrB,SAAS,EACT,GAAG,EAAE;QACD,UAAU,EAAE,CAAC;QACb,kBAAkB,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAC/C,kBAAkB,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,EACD,CAAC,kBAAkB,CAAC,CACvB,CAAC;IAEF,yBAAyB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QACrD,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,yBAAyB,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;QACtD,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,yBAAyB,CACrB,aAAa,EACb,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAE;QACjB,IAAI,qBAAqB,KAAK,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC/E,WAAW,CACP,IAAI,EACJ,kBAAkB,EAClB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAC5D,CAAC;QACN,CAAC;QACD,IAAI,qBAAqB,KAAK,SAAS,IAAI,IAAI,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YACjF,YAAY,CACR,mBAAmB,EACnB,IAAI,EACJ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAC5D,CAAC;QACN,CAAC;QACD,WAAW,EAAE,CAAC;IAClB,CAAC,EACD,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAC5C,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["import {usePostMessageAPIListener} from '../../common/postMessage';\n\nimport {useMainEditorStore} from './useMainEditorStore';\nimport {usePostMessageEvents} from './usePostMessageEvents';\n\nconst useMainEditorInitialize = () => {\n const {requestPostMessage} = usePostMessageEvents();\n const {\n initialize,\n setConfig,\n setContent,\n manipulateOverlayMode,\n disableMode,\n insertBlock,\n reorderBlock,\n preInsertBlockType,\n preReorderBlockPath,\n } = useMainEditorStore();\n\n usePostMessageAPIListener(\n 'ON_INIT',\n () => {\n initialize();\n requestPostMessage('GET_SUPPORTED_BLOCKS', {});\n requestPostMessage('GET_INITIAL_CONTENT', {});\n },\n [requestPostMessage],\n );\n\n usePostMessageAPIListener('ON_INITIAL_CONTENT', (data) => {\n setContent(data);\n });\n\n usePostMessageAPIListener('ON_SUPPORTED_BLOCKS', (data) => {\n setConfig(data);\n });\n\n usePostMessageAPIListener(\n 'ON_MOUSE_UP',\n ({path, position}) => {\n if (manipulateOverlayMode === 'insert' && path && position && preInsertBlockType) {\n insertBlock(\n path,\n preInsertBlockType,\n ['left', 'top'].includes(position) ? 'prepend' : 'append',\n );\n }\n if (manipulateOverlayMode === 'reorder' && path && position && preReorderBlockPath) {\n reorderBlock(\n preReorderBlockPath,\n path,\n ['left', 'top'].includes(position) ? 'prepend' : 'append',\n );\n }\n disableMode();\n },\n [preInsertBlockType, preReorderBlockPath],\n );\n};\n\nexport default useMainEditorInitialize;\n"]}
@@ -1,4 +1,4 @@
1
- import { ActionMessageTypes } from "../../../common/types/index.js";
1
+ import { ActionMessageTypes } from "../../common/types/index.js";
2
2
  interface UsePostMessageRequestReturn {
3
3
  requestPostMessage: <K extends keyof ActionMessageTypes>(action: K, data: ActionMessageTypes[K]) => void;
4
4
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { requestActionPostMessage } from "../../../common/postMessage.js";
2
+ import { requestActionPostMessage } from "../../common/postMessage.js";
3
3
  import { IframeContext } from "../context/iframeContext/index.js";
4
4
  export function usePostMessageEvents() {
5
5
  const { iframeElement } = React.useContext(IframeContext);
@@ -1 +1 @@
1
- {"version":3,"file":"usePostMessageEvents.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/usePostMessageEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,wBAAwB,EAAC,uCAAoC;AAErE,OAAO,EAAC,aAAa,EAAC,0CAAiC;AASvD,MAAM,UAAU,oBAAoB;IAChC,MAAM,EAAC,aAAa,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACH,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;gBAC/C,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {requestActionPostMessage} from '../../../common/postMessage';\nimport {ActionMessageTypes} from '../../../common/types';\nimport {IframeContext} from '../context/iframeContext';\n\ninterface UsePostMessageRequestReturn {\n requestPostMessage: <K extends keyof ActionMessageTypes>(\n action: K,\n data: ActionMessageTypes[K],\n ) => void;\n}\n\nexport function usePostMessageEvents(): UsePostMessageRequestReturn {\n const {iframeElement} = React.useContext(IframeContext);\n\n return {\n requestPostMessage: (action, data) => {\n if (iframeElement && iframeElement.contentWindow) {\n return requestActionPostMessage(action, data, iframeElement.contentWindow);\n }\n\n return undefined;\n },\n };\n}\n"]}
1
+ {"version":3,"file":"usePostMessageEvents.js","sourceRoot":"../../../../src","sources":["editor-v2/hooks/usePostMessageEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,wBAAwB,EAAC,oCAAiC;AAElE,OAAO,EAAC,aAAa,EAAC,0CAAiC;AASvD,MAAM,UAAU,oBAAoB;IAChC,MAAM,EAAC,aAAa,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAExD,OAAO;QACH,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,aAAa,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;gBAC/C,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {requestActionPostMessage} from '../../common/postMessage';\nimport {ActionMessageTypes} from '../../common/types';\nimport {IframeContext} from '../context/iframeContext';\n\ninterface UsePostMessageRequestReturn {\n requestPostMessage: <K extends keyof ActionMessageTypes>(\n action: K,\n data: ActionMessageTypes[K],\n ) => void;\n}\n\nexport function usePostMessageEvents(): UsePostMessageRequestReturn {\n const {iframeElement} = React.useContext(IframeContext);\n\n return {\n requestPostMessage: (action, data) => {\n if (iframeElement && iframeElement.contentWindow) {\n return requestActionPostMessage(action, data, iframeElement.contentWindow);\n }\n\n return undefined;\n },\n };\n}\n"]}
@@ -1,2 +1,5 @@
1
- export { Editor } from "./containers/Editor/Editor.js";
2
- export * from "../../common/types/index.js";
1
+ export * from "../common/types/index.js";
2
+ export * from "./containers/index.js";
3
+ export * from "./hooks/index.js";
4
+ export * from "./utils/index.js";
5
+ export * from "./constants.js";
@@ -1,3 +1,6 @@
1
- export { Editor } from "./containers/Editor/Editor.js";
2
- export * from "../../common/types/index.js";
1
+ export * from "../common/types/index.js";
2
+ export * from "./containers/index.js";
3
+ export * from "./hooks/index.js";
4
+ export * from "./utils/index.js";
5
+ export * from "./constants.js";
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["editor-v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,sCAAmC;AAClD,4CAAmC","sourcesContent":["export {Editor} from './containers/Editor/Editor';\nexport * from '../../common/types';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["editor-v2/index.ts"],"names":[],"mappings":"AAAA,yCAAgC;AAChC,sCAA6B;AAC7B,iCAAwB;AACxB,iCAAwB;AACxB,+BAA4B","sourcesContent":["export * from '../common/types';\nexport * from './containers';\nexport * from './hooks';\nexport * from './utils';\nexport * from './constants';\n"]}
@@ -1,5 +1,5 @@
1
- import { EditorState } from "../../common/store.js";
2
- import { DynamicFormValue } from "../../common/types/index.js";
1
+ import { EditorState } from "../common/store.js";
2
+ import { DynamicFormValue } from "../common/types/index.js";
3
3
  import { PageContentWithNavigation } from "../models/index.js";
4
4
  export interface EditorMethods {
5
5
  initialize(): void;
@@ -1,6 +1,6 @@
1
1
  import _ from 'lodash';
2
- import { initialStore } from "../../common/store.js";
3
- import { initializeStore } from "../../common/utils.js";
2
+ import { initialStore } from "../common/store.js";
3
+ import { initializeStore } from "../common/utils.js";
4
4
  import { ZOOM_STEPS } from "./constants.js";
5
5
  import { duplicateArrayItem, generateChildrenPathFromArray, getDestinationShiftBeforeReorder, insert, isItemsNeighbours, modifyObjectByPath, removeFromArray, reorderArrayItems, } from "./utils/index.js";
6
6
  export const createEditorStore = initializeStore(initialStore, (set, get) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"../../../src","sources":["editor-v2/store.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash';\n\nimport {EditorState, initialStore} from '../../common/store';\nimport {DynamicFormValue} from '../../common/types';\nimport {initializeStore} from '../../common/utils';\nimport {ConstructorBlock, PageContentWithNavigation} from '../models';\n\nimport {ZOOM_STEPS} from './constants';\nimport {\n duplicateArrayItem,\n generateChildrenPathFromArray,\n getDestinationShiftBeforeReorder,\n insert,\n isItemsNeighbours,\n modifyObjectByPath,\n removeFromArray,\n reorderArrayItems,\n} from './utils';\n\nexport interface EditorMethods {\n initialize(): void;\n setSelectedBlock(path: number[] | null): void;\n setHeight(height: number): void;\n setDeviceWidth(deviceWidth: string): void;\n setZoom(zoom: number): void;\n increaseZoom(): void;\n decreaseZoom(): void;\n setConfig(data: Pick<EditorState, 'blocks' | 'subBlocks' | 'global'>): void;\n setContent(data: PageContentWithNavigation): void;\n insertBlock(path: number[], blockType: string, position?: 'prepend' | 'append'): void;\n enableInsertMode(blockType: string): void;\n enableReorderMode(path: number[]): void;\n disableMode(): void;\n updateField(path: string, value: DynamicFormValue): void;\n deleteBlock(path: number[]): void;\n duplicateBlock(path: number[]): void;\n reorderBlock(path: number[], destination: number[], position?: 'prepend' | 'append'): void;\n resetInitialize(): void;\n resetBlocks(): void;\n}\n\nexport type EditorStore = EditorState & EditorMethods;\n\nexport const createEditorStore = initializeStore<EditorState, EditorMethods>(\n initialStore,\n (set, get) => ({\n setHeight(height: number) {\n // We have to add 200-500px, because of bottom padding or margin of last element\n // which is not taken into calculation of final height\n const newHeight = height + 500;\n set((state) => ({...state, height: newHeight}));\n },\n setDeviceWidth(deviceWidth: string) {\n set((state) => ({...state, deviceWidth}));\n },\n setZoom(zoom) {\n if (zoom > 0) {\n set((state) => ({...state, zoom}));\n }\n },\n increaseZoom() {\n const currentZoom = get().zoom;\n\n for (const step of ZOOM_STEPS) {\n if (currentZoom < step) {\n get().setZoom(step);\n break;\n }\n }\n },\n decreaseZoom() {\n const currentZoom = get().zoom;\n const reverseSteps = ZOOM_STEPS.slice().reverse();\n\n for (const step of reverseSteps) {\n if (currentZoom > step) {\n get().setZoom(step);\n break;\n }\n }\n },\n setConfig(data) {\n set((state) => ({...state, ...data}));\n },\n insertBlock: (arrayPath, blockType, position = 'append') => {\n if (position === 'append') {\n // TODO: fix\n // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign\n arrayPath[arrayPath.length - 1] = arrayPath[arrayPath.length - 1] + 1;\n }\n\n const blocksConfig = get().content.blocks;\n const blocksData = get().blocks;\n\n const foundBlock = blocksData.find(({type}) => type === blockType);\n const defaultValue =\n foundBlock && foundBlock.schema.default\n ? {...foundBlock.schema.default, type: blockType}\n : {type: blockType};\n\n const newBlocksConfig = modifyObjectByPath(\n blocksConfig,\n arrayPath,\n (parentBlocks, index) =>\n insert(parentBlocks, index, defaultValue as ConstructorBlock),\n );\n\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n selectedBlock: arrayPath,\n }));\n },\n enableInsertMode(blockType: string) {\n set((state) => ({\n ...state,\n manipulateOverlayMode: 'insert',\n preInsertBlockType: blockType,\n }));\n },\n disableMode() {\n set((state) => ({\n ...state,\n manipulateOverlayMode: false,\n preInsertBlockType: undefined,\n preReorderBlockPath: undefined,\n }));\n },\n enableReorderMode(path) {\n set((state) => ({\n ...state,\n manipulateOverlayMode: 'reorder',\n preReorderBlockPath: path,\n }));\n },\n setContent(content) {\n set((state) => ({\n ...state,\n content: content,\n }));\n },\n initialize() {\n set((state) => ({\n ...state,\n initialized: true,\n }));\n },\n setSelectedBlock(path) {\n set((state) => ({\n ...state,\n selectedBlock: path,\n }));\n },\n updateField(path, value) {\n set((state) => {\n const newConfig = _.set(state.content, path, value);\n return {\n ...state,\n content: newConfig,\n };\n });\n },\n deleteBlock: (arrayPath) => {\n const blocksConfig = get().content.blocks;\n\n const newBlocksConfig = modifyObjectByPath(blocksConfig, arrayPath, removeFromArray);\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n selectedBlock: null,\n }));\n },\n duplicateBlock: (arrayPath) => {\n const blocksConfig = get().content.blocks;\n\n const newBlocksConfig = modifyObjectByPath(blocksConfig, arrayPath, duplicateArrayItem);\n\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n }));\n },\n reorderBlock: (arrayPath, destination, position = 'append') => {\n // Create a copy of the destination array before any modifications\n let finalDestinationPath: number[] = _.cloneDeep(destination);\n\n if (position === 'append') {\n // TODO: fix\n // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign\n destination[destination.length - 1] = destination[destination.length - 1] + 1;\n }\n\n let newBlocksConfig: ConstructorBlock[];\n const blocksConfig = get().content.blocks;\n // Copy\n const copiedBlock = _.get(blocksConfig, generateChildrenPathFromArray(arrayPath));\n\n if (isItemsNeighbours(arrayPath, destination)) {\n newBlocksConfig = modifyObjectByPath(blocksConfig, arrayPath, (parentBlocks) => {\n return reorderArrayItems(\n parentBlocks,\n arrayPath[arrayPath.length - 1],\n destination[destination.length - 1],\n );\n });\n\n if (\n position === 'append' &&\n destination[destination.length - 1] < arrayPath[arrayPath.length - 1]\n ) {\n finalDestinationPath[finalDestinationPath.length - 1] =\n finalDestinationPath[finalDestinationPath.length - 1] + 1;\n }\n } else {\n const arrayDest = getDestinationShiftBeforeReorder(arrayPath, destination);\n finalDestinationPath = _.cloneDeep(arrayDest);\n\n // Delete\n const blocksConfigWithoutBlock = modifyObjectByPath(\n blocksConfig,\n arrayPath,\n removeFromArray,\n );\n // Paste\n newBlocksConfig = modifyObjectByPath(\n blocksConfigWithoutBlock,\n arrayDest,\n (parentBlocks, index) => insert(parentBlocks, index, copiedBlock),\n );\n }\n\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n selectedBlock: finalDestinationPath,\n }));\n },\n resetInitialize: () => {\n set((state) => ({\n ...state,\n initialized: false,\n }));\n },\n resetBlocks: () => {\n set((state) => ({\n ...state,\n content: {...state.content, blocks: []},\n }));\n },\n }),\n);\n"]}
1
+ {"version":3,"file":"store.js","sourceRoot":"../../../src","sources":["editor-v2/store.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash';\n\nimport {EditorState, initialStore} from '../common/store';\nimport {DynamicFormValue} from '../common/types';\nimport {initializeStore} from '../common/utils';\nimport {ConstructorBlock, PageContentWithNavigation} from '../models';\n\nimport {ZOOM_STEPS} from './constants';\nimport {\n duplicateArrayItem,\n generateChildrenPathFromArray,\n getDestinationShiftBeforeReorder,\n insert,\n isItemsNeighbours,\n modifyObjectByPath,\n removeFromArray,\n reorderArrayItems,\n} from './utils';\n\nexport interface EditorMethods {\n initialize(): void;\n setSelectedBlock(path: number[] | null): void;\n setHeight(height: number): void;\n setDeviceWidth(deviceWidth: string): void;\n setZoom(zoom: number): void;\n increaseZoom(): void;\n decreaseZoom(): void;\n setConfig(data: Pick<EditorState, 'blocks' | 'subBlocks' | 'global'>): void;\n setContent(data: PageContentWithNavigation): void;\n insertBlock(path: number[], blockType: string, position?: 'prepend' | 'append'): void;\n enableInsertMode(blockType: string): void;\n enableReorderMode(path: number[]): void;\n disableMode(): void;\n updateField(path: string, value: DynamicFormValue): void;\n deleteBlock(path: number[]): void;\n duplicateBlock(path: number[]): void;\n reorderBlock(path: number[], destination: number[], position?: 'prepend' | 'append'): void;\n resetInitialize(): void;\n resetBlocks(): void;\n}\n\nexport type EditorStore = EditorState & EditorMethods;\n\nexport const createEditorStore = initializeStore<EditorState, EditorMethods>(\n initialStore,\n (set, get) => ({\n setHeight(height: number) {\n // We have to add 200-500px, because of bottom padding or margin of last element\n // which is not taken into calculation of final height\n const newHeight = height + 500;\n set((state) => ({...state, height: newHeight}));\n },\n setDeviceWidth(deviceWidth: string) {\n set((state) => ({...state, deviceWidth}));\n },\n setZoom(zoom) {\n if (zoom > 0) {\n set((state) => ({...state, zoom}));\n }\n },\n increaseZoom() {\n const currentZoom = get().zoom;\n\n for (const step of ZOOM_STEPS) {\n if (currentZoom < step) {\n get().setZoom(step);\n break;\n }\n }\n },\n decreaseZoom() {\n const currentZoom = get().zoom;\n const reverseSteps = ZOOM_STEPS.slice().reverse();\n\n for (const step of reverseSteps) {\n if (currentZoom > step) {\n get().setZoom(step);\n break;\n }\n }\n },\n setConfig(data) {\n set((state) => ({...state, ...data}));\n },\n insertBlock: (arrayPath, blockType, position = 'append') => {\n if (position === 'append') {\n // TODO: fix\n // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign\n arrayPath[arrayPath.length - 1] = arrayPath[arrayPath.length - 1] + 1;\n }\n\n const blocksConfig = get().content.blocks;\n const blocksData = get().blocks;\n\n const foundBlock = blocksData.find(({type}) => type === blockType);\n const defaultValue =\n foundBlock && foundBlock.schema.default\n ? {...foundBlock.schema.default, type: blockType}\n : {type: blockType};\n\n const newBlocksConfig = modifyObjectByPath(\n blocksConfig,\n arrayPath,\n (parentBlocks, index) =>\n insert(parentBlocks, index, defaultValue as ConstructorBlock),\n );\n\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n selectedBlock: arrayPath,\n }));\n },\n enableInsertMode(blockType: string) {\n set((state) => ({\n ...state,\n manipulateOverlayMode: 'insert',\n preInsertBlockType: blockType,\n }));\n },\n disableMode() {\n set((state) => ({\n ...state,\n manipulateOverlayMode: false,\n preInsertBlockType: undefined,\n preReorderBlockPath: undefined,\n }));\n },\n enableReorderMode(path) {\n set((state) => ({\n ...state,\n manipulateOverlayMode: 'reorder',\n preReorderBlockPath: path,\n }));\n },\n setContent(content) {\n set((state) => ({\n ...state,\n content: content,\n }));\n },\n initialize() {\n set((state) => ({\n ...state,\n initialized: true,\n }));\n },\n setSelectedBlock(path) {\n set((state) => ({\n ...state,\n selectedBlock: path,\n }));\n },\n updateField(path, value) {\n set((state) => {\n const newConfig = _.set(state.content, path, value);\n return {\n ...state,\n content: newConfig,\n };\n });\n },\n deleteBlock: (arrayPath) => {\n const blocksConfig = get().content.blocks;\n\n const newBlocksConfig = modifyObjectByPath(blocksConfig, arrayPath, removeFromArray);\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n selectedBlock: null,\n }));\n },\n duplicateBlock: (arrayPath) => {\n const blocksConfig = get().content.blocks;\n\n const newBlocksConfig = modifyObjectByPath(blocksConfig, arrayPath, duplicateArrayItem);\n\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n }));\n },\n reorderBlock: (arrayPath, destination, position = 'append') => {\n // Create a copy of the destination array before any modifications\n let finalDestinationPath: number[] = _.cloneDeep(destination);\n\n if (position === 'append') {\n // TODO: fix\n // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign\n destination[destination.length - 1] = destination[destination.length - 1] + 1;\n }\n\n let newBlocksConfig: ConstructorBlock[];\n const blocksConfig = get().content.blocks;\n // Copy\n const copiedBlock = _.get(blocksConfig, generateChildrenPathFromArray(arrayPath));\n\n if (isItemsNeighbours(arrayPath, destination)) {\n newBlocksConfig = modifyObjectByPath(blocksConfig, arrayPath, (parentBlocks) => {\n return reorderArrayItems(\n parentBlocks,\n arrayPath[arrayPath.length - 1],\n destination[destination.length - 1],\n );\n });\n\n if (\n position === 'append' &&\n destination[destination.length - 1] < arrayPath[arrayPath.length - 1]\n ) {\n finalDestinationPath[finalDestinationPath.length - 1] =\n finalDestinationPath[finalDestinationPath.length - 1] + 1;\n }\n } else {\n const arrayDest = getDestinationShiftBeforeReorder(arrayPath, destination);\n finalDestinationPath = _.cloneDeep(arrayDest);\n\n // Delete\n const blocksConfigWithoutBlock = modifyObjectByPath(\n blocksConfig,\n arrayPath,\n removeFromArray,\n );\n // Paste\n newBlocksConfig = modifyObjectByPath(\n blocksConfigWithoutBlock,\n arrayDest,\n (parentBlocks, index) => insert(parentBlocks, index, copiedBlock),\n );\n }\n\n set((state) => ({\n ...state,\n content: {...state.content, blocks: newBlocksConfig},\n selectedBlock: finalDestinationPath,\n }));\n },\n resetInitialize: () => {\n set((state) => ({\n ...state,\n initialized: false,\n }));\n },\n resetBlocks: () => {\n set((state) => ({\n ...state,\n content: {...state.content, blocks: []},\n }));\n },\n }),\n);\n"]}
@@ -1,12 +1,9 @@
1
1
  .g-root {
2
- --g-color-base-brand: var(--g-color-private-black-550-solid);
3
- --g-color-base-brand-hover: var(--g-color-private-black-600-solid);
4
2
  --g-color-base-selection: var(--g-color-private-black-200);
5
3
  --g-color-base-selection-hover: var(--g-color-private-black-300);
6
- --g-color-base-brand: var(--g-color-text-primary);
7
- --g-color-base-brand-hover: var(--g-color-text-complementary);
4
+ --g-color-base-brand: var(--g-color-private-black-850-solid);
5
+ --g-color-base-brand-hover: var(--g-color-private-black-700-solid);
8
6
  --g-color-text-brand-contrast: var(--g-color-text-light-primary);
9
- --g-color-line-brand: var(--g-color-text-primary);
10
- --g-color-text-brand: var(--g-color-private-brand-700-solid);
11
7
  --g-color-text-brand-heavy: var(--g-color-private-black-700-solid);
8
+ --g-color-line-brand: var(--g-color-text-primary);
12
9
  }
@@ -1,4 +1,6 @@
1
1
  import { ConstructorBlock } from "../../models/index.js";
2
+ export * from "./code.js";
3
+ export * from "./cn.js";
2
4
  export declare function insert<T>(arr: Array<T>, index: number, newItem: T): T[];
3
5
  export declare function removeFromArray<T>(array: Array<T>, index: number): T[];
4
6
  export declare function swapArrayItems<T>(array: Array<T>, firstIndex: number, secondIndex: number): T[];
@@ -1,4 +1,6 @@
1
1
  import _ from 'lodash';
2
+ export * from "./code.js";
3
+ export * from "./cn.js";
2
4
  export function insert(arr, index, newItem) {
3
5
  return [...arr.slice(0, index), newItem, ...arr.slice(index)];
4
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["editor-v2/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash';\n\nimport {ConstructorBlock} from '../../models';\n\nexport function insert<T>(arr: Array<T>, index: number, newItem: T) {\n return [...arr.slice(0, index), newItem, ...arr.slice(index)];\n}\n\nexport function removeFromArray<T>(array: Array<T>, index: number) {\n return [...array.slice(0, index), ...array.slice(index + 1)];\n}\n\nexport function swapArrayItems<T>(array: Array<T>, firstIndex: number, secondIndex: number) {\n const results = array.slice();\n const firstItem = array[firstIndex];\n results[firstIndex] = array[secondIndex];\n results[secondIndex] = firstItem;\n return results;\n}\n\nexport function reorderArrayItems<T>(array: Array<T>, index: number, destination: number) {\n const min = Math.min(index, destination);\n const max = Math.max(index, destination);\n const firstOperationRemove = index < destination;\n const result = [];\n result.push(...array.slice(0, min));\n if (!firstOperationRemove) {\n result.push(array[index]);\n }\n result.push(...array.slice(firstOperationRemove ? min + 1 : min, max));\n if (firstOperationRemove) {\n result.push(array[index]);\n }\n result.push(...array.slice(firstOperationRemove ? max : max + 1, array.length));\n return result;\n}\n\nexport function duplicateArrayItem<T>(array: Array<T>, index: number) {\n const duplicatedItem = _.cloneDeep(array[index]);\n return [...array.slice(0, index), duplicatedItem, ...array.slice(index)];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function insertByPath<T extends object>(object: T, path: string, value: any) {\n if (!path) {\n return value as T;\n }\n\n return _.setWith(_.clone(object), path, value, _.clone);\n}\n\n/*\n * path: string;\n * Example:\n * 1. blocks[0] => {path: blocks, index: 0}\n * 2. blocks[2].children[10] => {path: blocks[2].children, index: 10}\n **/\nexport function splitPathAndIndex(path: string) {\n // Match blocks[3], blocks[0].children[12], blocks[0], blocks[999999]\n const bracketsRegExp = /(.*)\\[(\\d+)]$/g;\n const regexpMatches = [...path.matchAll(bracketsRegExp)];\n if (regexpMatches.length) {\n return {\n // blocks, blocks[0].children\n path: regexpMatches[0][1],\n // 3, 12, 0, 9999\n index: Number(regexpMatches[0][2]),\n };\n }\n\n // eslint-disable-next-line no-console\n console.error('Non correct path for splitting');\n return undefined;\n}\n\n/*\n * [0, 4, 3] => [0].children[4].children[3]\n * */\nexport function generateChildrenPathFromArray(indexes: number[]) {\n if (!indexes.length) {\n return '';\n }\n\n let resultPath = `[${indexes[0]}]`;\n\n if (indexes.length > 1) {\n for (let i = 1; i < indexes.length; i++) {\n resultPath += `.children[${indexes[i]}]`;\n }\n }\n\n return resultPath;\n}\n\nexport function modifyObjectByPath(\n blocks: ConstructorBlock[],\n arrayPath: number[],\n modifyCallback: (parentBlocks: ConstructorBlock[], index: number) => ConstructorBlock[],\n) {\n // [1]\n // [4].children[3]\n const insertPath = generateChildrenPathFromArray(arrayPath);\n // path: '' index: 1\n // path: '[4].children' index: 3\n const splitPath = splitPathAndIndex(insertPath);\n\n if (splitPath) {\n const {path: parentPath, index} = splitPath;\n // Get Array that lies on path\n const parentArray = parentPath ? _.get(blocks, parentPath) : blocks;\n\n const value = Array.isArray(parentArray) ? parentArray : [];\n // Modify Array\n const newModifiedArray = modifyCallback(value, index);\n\n // Return it back\n return insertByPath(blocks, parentPath, newModifiedArray);\n }\n\n return blocks;\n}\n\nexport function isItemsNeighbours(arrayA: number[], arrayB: number[]) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n for (let i = 0; i < arrayA.length - 1; i++) {\n if (arrayA[i] !== arrayB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function getDestinationShiftBeforeReorder(arrayInit: number[], arrayDest: number[]) {\n if (arrayInit.length === arrayDest.length || arrayInit.length > arrayDest.length) {\n return arrayDest;\n }\n\n for (let i = 0; i < arrayInit.length; i++) {\n if (arrayInit[i] < arrayDest[i]) {\n return prepareShift(arrayInit, arrayDest);\n }\n }\n\n return arrayDest;\n}\n\nexport function prepareShift(arrayInit: number[], arrayDest: number[]) {\n if (arrayInit.length === arrayDest.length || arrayInit.length > arrayDest.length) {\n return arrayDest;\n }\n\n return arrayDest.map((pathIndex, index) =>\n index === arrayInit.length - 1 ? pathIndex - 1 : pathIndex,\n );\n}\n\nexport const getUrlOrigin = (url: string) => {\n try {\n const urlObject = new URL(url);\n return urlObject.origin;\n } catch {\n return undefined;\n }\n};\n\nexport const getItemTitle = (item: object): string | undefined => {\n return (\n _.get(item, 'title.text') ||\n _.get(item, 'title') ||\n _.get(item, 'textContent.title') ||\n _.get(item, 'content.title')\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["editor-v2/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash';\n\nimport {ConstructorBlock} from '../../models';\nexport * from './code';\nexport * from './cn';\n\nexport function insert<T>(arr: Array<T>, index: number, newItem: T) {\n return [...arr.slice(0, index), newItem, ...arr.slice(index)];\n}\n\nexport function removeFromArray<T>(array: Array<T>, index: number) {\n return [...array.slice(0, index), ...array.slice(index + 1)];\n}\n\nexport function swapArrayItems<T>(array: Array<T>, firstIndex: number, secondIndex: number) {\n const results = array.slice();\n const firstItem = array[firstIndex];\n results[firstIndex] = array[secondIndex];\n results[secondIndex] = firstItem;\n return results;\n}\n\nexport function reorderArrayItems<T>(array: Array<T>, index: number, destination: number) {\n const min = Math.min(index, destination);\n const max = Math.max(index, destination);\n const firstOperationRemove = index < destination;\n const result = [];\n result.push(...array.slice(0, min));\n if (!firstOperationRemove) {\n result.push(array[index]);\n }\n result.push(...array.slice(firstOperationRemove ? min + 1 : min, max));\n if (firstOperationRemove) {\n result.push(array[index]);\n }\n result.push(...array.slice(firstOperationRemove ? max : max + 1, array.length));\n return result;\n}\n\nexport function duplicateArrayItem<T>(array: Array<T>, index: number) {\n const duplicatedItem = _.cloneDeep(array[index]);\n return [...array.slice(0, index), duplicatedItem, ...array.slice(index)];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function insertByPath<T extends object>(object: T, path: string, value: any) {\n if (!path) {\n return value as T;\n }\n\n return _.setWith(_.clone(object), path, value, _.clone);\n}\n\n/*\n * path: string;\n * Example:\n * 1. blocks[0] => {path: blocks, index: 0}\n * 2. blocks[2].children[10] => {path: blocks[2].children, index: 10}\n **/\nexport function splitPathAndIndex(path: string) {\n // Match blocks[3], blocks[0].children[12], blocks[0], blocks[999999]\n const bracketsRegExp = /(.*)\\[(\\d+)]$/g;\n const regexpMatches = [...path.matchAll(bracketsRegExp)];\n if (regexpMatches.length) {\n return {\n // blocks, blocks[0].children\n path: regexpMatches[0][1],\n // 3, 12, 0, 9999\n index: Number(regexpMatches[0][2]),\n };\n }\n\n // eslint-disable-next-line no-console\n console.error('Non correct path for splitting');\n return undefined;\n}\n\n/*\n * [0, 4, 3] => [0].children[4].children[3]\n * */\nexport function generateChildrenPathFromArray(indexes: number[]) {\n if (!indexes.length) {\n return '';\n }\n\n let resultPath = `[${indexes[0]}]`;\n\n if (indexes.length > 1) {\n for (let i = 1; i < indexes.length; i++) {\n resultPath += `.children[${indexes[i]}]`;\n }\n }\n\n return resultPath;\n}\n\nexport function modifyObjectByPath(\n blocks: ConstructorBlock[],\n arrayPath: number[],\n modifyCallback: (parentBlocks: ConstructorBlock[], index: number) => ConstructorBlock[],\n) {\n // [1]\n // [4].children[3]\n const insertPath = generateChildrenPathFromArray(arrayPath);\n // path: '' index: 1\n // path: '[4].children' index: 3\n const splitPath = splitPathAndIndex(insertPath);\n\n if (splitPath) {\n const {path: parentPath, index} = splitPath;\n // Get Array that lies on path\n const parentArray = parentPath ? _.get(blocks, parentPath) : blocks;\n\n const value = Array.isArray(parentArray) ? parentArray : [];\n // Modify Array\n const newModifiedArray = modifyCallback(value, index);\n\n // Return it back\n return insertByPath(blocks, parentPath, newModifiedArray);\n }\n\n return blocks;\n}\n\nexport function isItemsNeighbours(arrayA: number[], arrayB: number[]) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n for (let i = 0; i < arrayA.length - 1; i++) {\n if (arrayA[i] !== arrayB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function getDestinationShiftBeforeReorder(arrayInit: number[], arrayDest: number[]) {\n if (arrayInit.length === arrayDest.length || arrayInit.length > arrayDest.length) {\n return arrayDest;\n }\n\n for (let i = 0; i < arrayInit.length; i++) {\n if (arrayInit[i] < arrayDest[i]) {\n return prepareShift(arrayInit, arrayDest);\n }\n }\n\n return arrayDest;\n}\n\nexport function prepareShift(arrayInit: number[], arrayDest: number[]) {\n if (arrayInit.length === arrayDest.length || arrayInit.length > arrayDest.length) {\n return arrayDest;\n }\n\n return arrayDest.map((pathIndex, index) =>\n index === arrayInit.length - 1 ? pathIndex - 1 : pathIndex,\n );\n}\n\nexport const getUrlOrigin = (url: string) => {\n try {\n const urlObject = new URL(url);\n return urlObject.origin;\n } catch {\n return undefined;\n }\n};\n\nexport const getItemTitle = (item: object): string | undefined => {\n return (\n _.get(item, 'title.text') ||\n _.get(item, 'title') ||\n _.get(item, 'textContent.title') ||\n _.get(item, 'content.title')\n );\n};\n"]}