@blokkli/editor 2.0.0-alpha.12 → 2.0.0-alpha.14

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 (274) hide show
  1. package/dist/module.d.mts +1 -1
  2. package/dist/module.json +5 -5
  3. package/dist/module.mjs +4006 -1164
  4. package/dist/modules/drupal/graphql/base/fragment.ParagraphsBlokkliConfigInput.graphql +31 -0
  5. package/dist/modules/drupal/graphql/base/fragment.blokkliProps.graphql +1 -0
  6. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +1 -0
  7. package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
  8. package/dist/modules/drupal/graphql/features/transform.graphql +9 -1
  9. package/dist/modules/drupal/graphql/features/transform_host.graphql +38 -0
  10. package/dist/modules/drupal/graphql/mutations/update_host_options.graphql +15 -0
  11. package/dist/modules/drupal/index.d.mts +1 -1
  12. package/dist/modules/drupal/index.mjs +20 -7
  13. package/dist/modules/drupal/runtime/adapter/index.js +109 -4
  14. package/dist/runtime/adapter/index.d.ts +54 -1
  15. package/dist/runtime/blokkliPlugins/AddAction/index.vue +27 -3
  16. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue +65 -0
  17. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +26 -0
  18. package/dist/runtime/blokkliPlugins/ContextMenu/Menu/index.vue +3 -0
  19. package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
  20. package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
  21. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue +49 -11
  22. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue.d.ts +29 -15
  23. package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
  24. package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
  25. package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +4 -4
  26. package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -3
  27. package/dist/runtime/blokkliPlugins/index.d.ts +8 -7
  28. package/dist/runtime/blokkliPlugins/index.js +15 -13
  29. package/dist/runtime/components/Blocks/Fragment/icon.svg +1 -1
  30. package/dist/runtime/components/BlokkliProvider.vue +1 -0
  31. package/dist/runtime/components/BlokkliProvider.vue.d.ts +1 -0
  32. package/dist/runtime/components/Edit/Actions/index.vue +39 -67
  33. package/dist/runtime/components/Edit/AddListItem/index.vue +2 -5
  34. package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +1 -1
  35. package/dist/runtime/components/Edit/AddListItemIcon/index.vue +19 -0
  36. package/dist/runtime/components/Edit/AddListItemIcon/index.vue.d.ts +15 -0
  37. package/dist/runtime/components/Edit/AppMenu/index.vue +5 -5
  38. package/dist/runtime/components/Edit/Dialog/index.vue +5 -1
  39. package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +1 -1
  40. package/dist/runtime/components/Edit/DiffViewer/State.vue +276 -0
  41. package/dist/runtime/components/Edit/DiffViewer/State.vue.d.ts +16 -0
  42. package/dist/runtime/components/Edit/DragInteractions/index.vue +45 -8
  43. package/dist/runtime/components/Edit/EditProvider.vue +46 -35
  44. package/dist/runtime/components/Edit/Features/AddList/index.vue +15 -25
  45. package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
  46. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +168 -0
  47. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue.d.ts +9 -0
  48. package/dist/runtime/components/Edit/Features/Analyze/Overlay/vertex.glsl +72 -0
  49. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue +159 -0
  50. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue.d.ts +7 -0
  51. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +100 -0
  52. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +6 -0
  53. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +56 -0
  54. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +3 -0
  55. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +87 -0
  56. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +7 -0
  57. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +101 -0
  58. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +8 -0
  59. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue +18 -0
  60. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue.d.ts +8 -0
  61. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +92 -0
  62. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue.d.ts +17 -0
  63. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue +77 -0
  64. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue.d.ts +6 -0
  65. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.d.ts +12 -0
  66. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +75 -0
  67. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.d.ts +4 -0
  68. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.js +5 -0
  69. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +32 -0
  70. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +45 -0
  71. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.d.ts +5 -0
  72. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.js +95 -0
  73. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.d.ts +3 -0
  74. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.js +13 -0
  75. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.d.ts +2 -0
  76. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.js +2 -0
  77. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.d.ts +2 -0
  78. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +165 -0
  79. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +44 -0
  80. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.js +0 -0
  81. package/dist/runtime/components/Edit/Features/Analyze/helper.d.ts +5 -0
  82. package/dist/runtime/components/Edit/Features/Analyze/helper.js +28 -0
  83. package/dist/runtime/components/Edit/Features/Analyze/index.vue +44 -0
  84. package/dist/runtime/components/Edit/Features/Anchors/Renderer.vue +136 -0
  85. package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
  86. package/dist/runtime/components/Edit/Features/Anchors/index.vue.d.ts +2 -0
  87. package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
  88. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +296 -0
  89. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
  90. package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -245
  91. package/dist/runtime/components/Edit/Features/Assistant/index.vue +3 -2
  92. package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +4 -4
  93. package/dist/runtime/components/Edit/Features/Clipboard/index.vue +161 -28
  94. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +16 -4
  95. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue.d.ts +0 -1
  96. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +4 -53
  97. package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +3 -2
  98. package/dist/runtime/components/Edit/Features/Conversions/index.vue +12 -14
  99. package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
  100. package/dist/runtime/components/Edit/Features/Debug/index.vue +27 -24
  101. package/dist/runtime/components/Edit/Features/Diff/DiffView/index.vue +13 -190
  102. package/dist/runtime/components/Edit/Features/Diff/index.vue +2 -2
  103. package/dist/runtime/components/Edit/Features/DraggingOverlay/DragItems/index.vue +4 -4
  104. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +1 -1
  105. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +35 -71
  106. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +1 -1
  107. package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +62 -48
  108. package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
  109. package/dist/runtime/components/Edit/Features/EditForm/index.vue +3 -3
  110. package/dist/runtime/components/Edit/Features/EditableField/index.vue +6 -2
  111. package/dist/runtime/components/Edit/Features/EditableMask/index.vue +3 -20
  112. package/dist/runtime/components/Edit/Features/Fragments/index.vue +3 -2
  113. package/dist/runtime/components/Edit/Features/History/index.vue +35 -12
  114. package/dist/runtime/components/Edit/Features/ImportExisting/Dialog/index.vue +6 -2
  115. package/dist/runtime/components/Edit/Features/ImportExisting/index.vue +3 -2
  116. package/dist/runtime/components/Edit/Features/Library/index.vue +11 -9
  117. package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +5 -8
  118. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
  119. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +9 -4
  120. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
  121. package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +8 -14
  122. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue +3 -2
  123. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue.d.ts +2 -0
  124. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue +9 -3
  125. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +0 -1
  126. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue +37 -19
  127. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue.d.ts +8 -2
  128. package/dist/runtime/components/Edit/Features/Options/Form/index.vue +81 -37
  129. package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
  130. package/dist/runtime/components/Edit/Features/Options/index.vue +30 -6
  131. package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
  132. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +1 -0
  133. package/dist/runtime/components/Edit/Features/Publish/index.vue +3 -2
  134. package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
  135. package/dist/runtime/components/Edit/Features/Search/index.vue +3 -2
  136. package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue +54 -0
  137. package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue.d.ts +14 -0
  138. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +120 -0
  139. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue.d.ts +15 -0
  140. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +459 -0
  141. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue.d.ts +6 -0
  142. package/dist/runtime/components/Edit/Features/Selection/Overlay/fragment.glsl +15 -10
  143. package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +32 -11
  144. package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +1 -1
  145. package/dist/runtime/components/Edit/Features/Selection/index.vue +76 -7
  146. package/dist/runtime/components/Edit/Features/Settings/Dialog/FeatureSetting/index.vue +12 -17
  147. package/dist/runtime/components/Edit/Features/Settings/index.vue +11 -25
  148. package/dist/runtime/components/Edit/Features/Theme/Color/index.vue +5 -1
  149. package/dist/runtime/components/Edit/Features/Theme/index.vue +2 -1
  150. package/dist/runtime/components/Edit/Features/TouchActionBar/index.vue +3 -2
  151. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +198 -0
  152. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue.d.ts +13 -0
  153. package/dist/runtime/components/Edit/Features/Transform/index.vue +155 -44
  154. package/dist/runtime/components/Edit/Form/Radio/index.vue +33 -0
  155. package/dist/runtime/components/Edit/Form/Radio/index.vue.d.ts +20 -0
  156. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue +37 -0
  157. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue.d.ts +22 -0
  158. package/dist/runtime/components/Edit/Form/Select/index.vue +29 -0
  159. package/dist/runtime/components/Edit/Form/Select/index.vue.d.ts +20 -0
  160. package/dist/runtime/components/Edit/Form/Text/index.vue +33 -0
  161. package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +19 -0
  162. package/dist/runtime/components/Edit/Form/Textarea/index.vue +13 -6
  163. package/dist/runtime/components/Edit/Form/Textarea/index.vue.d.ts +4 -0
  164. package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
  165. package/dist/runtime/components/Edit/Indicators/index.vue +123 -0
  166. package/dist/runtime/components/Edit/Indicators/index.vue.d.ts +2 -0
  167. package/dist/runtime/components/Edit/ItemIcon/index.vue +2 -1
  168. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue +66 -0
  169. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue.d.ts +7 -0
  170. package/dist/runtime/components/Edit/Konami/Game/blokkli.png +0 -0
  171. package/dist/runtime/components/Edit/Konami/Game/charmap.d.ts +2 -0
  172. package/dist/runtime/components/Edit/Konami/Game/charmap.js +168 -0
  173. package/dist/runtime/components/Edit/Konami/Game/index.vue +745 -0
  174. package/dist/runtime/components/Edit/Konami/Game/index.vue.d.ts +6 -0
  175. package/dist/runtime/components/Edit/Konami/Game/textRendering.d.ts +8 -0
  176. package/dist/runtime/components/Edit/Konami/Game/textRendering.js +138 -0
  177. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.d.ts +9 -0
  178. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.js +130 -0
  179. package/dist/runtime/components/Edit/Konami/index.vue +44 -0
  180. package/dist/runtime/components/Edit/Konami/index.vue.d.ts +2 -0
  181. package/dist/runtime/components/Edit/Loading/index.vue +6 -2
  182. package/dist/runtime/components/Edit/Loading/index.vue.d.ts +2 -0
  183. package/dist/runtime/components/Edit/Messages/index.vue +8 -3
  184. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue +17 -0
  185. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue.d.ts +11 -0
  186. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue +37 -0
  187. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue.d.ts +11 -0
  188. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue +43 -0
  189. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue.d.ts +11 -0
  190. package/dist/runtime/components/Edit/PluginConfigForm/index.vue +57 -0
  191. package/dist/runtime/components/Edit/PluginConfigForm/index.vue.d.ts +16 -0
  192. package/dist/runtime/components/Edit/PreviewProvider.vue +3 -4
  193. package/dist/runtime/components/Edit/RelativeTime/index.vue +3 -2
  194. package/dist/runtime/components/Edit/ShortcutIndicator/index.vue +8 -3
  195. package/dist/runtime/components/Edit/SystemRequirements/index.vue +3 -3
  196. package/dist/runtime/components/Edit/Toolbar/index.vue +3 -2
  197. package/dist/runtime/components/Edit/Transition/index.vue +41 -0
  198. package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
  199. package/dist/runtime/components/Edit/index.d.ts +23 -15
  200. package/dist/runtime/components/Edit/index.js +44 -28
  201. package/dist/runtime/composables/defineBlokkli.js +7 -3
  202. package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
  203. package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
  204. package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
  205. package/dist/runtime/composables/useBlokkliHelper.js +1 -1
  206. package/dist/runtime/constants/index.d.ts +3 -0
  207. package/dist/runtime/constants/index.js +3 -0
  208. package/dist/runtime/css/output.css +1 -1
  209. package/dist/runtime/helpers/addElementClasses.d.ts +2 -0
  210. package/dist/runtime/helpers/addElementClasses.js +24 -0
  211. package/dist/runtime/helpers/animationProvider.d.ts +4 -2
  212. package/dist/runtime/helpers/animationProvider.js +7 -2
  213. package/dist/runtime/helpers/bundles/index.d.ts +1 -0
  214. package/dist/runtime/helpers/bundles/index.js +4 -0
  215. package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +20 -0
  216. package/dist/runtime/helpers/composables/useStickyToolbar.js +215 -0
  217. package/dist/runtime/helpers/definitionProvider.d.ts +2 -1
  218. package/dist/runtime/helpers/definitionProvider.js +17 -0
  219. package/dist/runtime/helpers/dom/index.d.ts +59 -0
  220. package/dist/runtime/helpers/dom/index.js +48 -0
  221. package/dist/runtime/helpers/domProvider.d.ts +2 -1
  222. package/dist/runtime/helpers/domProvider.js +89 -43
  223. package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
  224. package/dist/runtime/helpers/dropTargets/index.js +49 -0
  225. package/dist/runtime/helpers/eventBus.d.ts +1 -1
  226. package/dist/runtime/helpers/eventBus.js +2 -2
  227. package/dist/runtime/helpers/index.d.ts +10 -1
  228. package/dist/runtime/helpers/index.js +57 -0
  229. package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
  230. package/dist/runtime/helpers/indicatorsProvider.js +23 -0
  231. package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
  232. package/dist/runtime/helpers/keyboardProvider.js +17 -1
  233. package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
  234. package/dist/runtime/helpers/pluginProvider.js +33 -0
  235. package/dist/runtime/helpers/renderCycle.d.ts +1 -0
  236. package/dist/runtime/helpers/renderCycle.js +10 -0
  237. package/dist/runtime/helpers/runtimeHelpers/index.js +14 -11
  238. package/dist/runtime/helpers/selectionProvider.d.ts +16 -0
  239. package/dist/runtime/helpers/selectionProvider.js +47 -35
  240. package/dist/runtime/helpers/stateProvider.d.ts +6 -2
  241. package/dist/runtime/helpers/stateProvider.js +58 -14
  242. package/dist/runtime/helpers/storageProvider.d.ts +4 -3
  243. package/dist/runtime/helpers/storageProvider.js +56 -3
  244. package/dist/runtime/helpers/symbols.d.ts +1 -0
  245. package/dist/runtime/helpers/symbols.js +1 -0
  246. package/dist/runtime/helpers/textProvider.js +6 -0
  247. package/dist/runtime/helpers/themeProvider.d.ts +2 -0
  248. package/dist/runtime/helpers/themeProvider.js +4 -1
  249. package/dist/runtime/helpers/transform.js +1 -3
  250. package/dist/runtime/helpers/uiProvider.d.ts +7 -2
  251. package/dist/runtime/helpers/uiProvider.js +49 -47
  252. package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
  253. package/dist/runtime/helpers/useTransitionedValue.js +57 -0
  254. package/dist/runtime/icons/anchor.svg +1 -0
  255. package/dist/runtime/icons/arrow-left.svg +1 -1
  256. package/dist/runtime/icons/arrow-right.svg +1 -1
  257. package/dist/runtime/icons/arrow-top-right.svg +1 -0
  258. package/dist/runtime/icons/chart.svg +1 -0
  259. package/dist/runtime/icons/copy.svg +1 -0
  260. package/dist/runtime/icons/cursor-move.svg +1 -1
  261. package/dist/runtime/icons/diff.svg +1 -1
  262. package/dist/runtime/icons/eye.svg +1 -1
  263. package/dist/runtime/icons/info.svg +1 -1
  264. package/dist/runtime/icons/link.svg +1 -0
  265. package/dist/runtime/icons/speedometer.svg +1 -0
  266. package/dist/runtime/types/blokkOptions.d.ts +8 -0
  267. package/dist/runtime/types/index.d.ts +163 -5
  268. package/dist/runtime/types/theme.d.ts +2 -1
  269. package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
  270. package/package.json +55 -38
  271. package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
  272. package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
  273. /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay → Analyze}/index.vue.d.ts +0 -0
  274. /package/dist/runtime/components/Edit/Features/{FieldAreas/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
@@ -0,0 +1,95 @@
1
+ const blockElements = /* @__PURE__ */ new Set([
2
+ "ADDRESS",
3
+ "ARTICLE",
4
+ "ASIDE",
5
+ "BLOCKQUOTE",
6
+ "CANVAS",
7
+ "DD",
8
+ "DIV",
9
+ "DL",
10
+ "DT",
11
+ "FIELDSET",
12
+ "FIGCAPTION",
13
+ "FIGURE",
14
+ "FOOTER",
15
+ "FORM",
16
+ "H1",
17
+ "H2",
18
+ "H3",
19
+ "H4",
20
+ "H5",
21
+ "H6",
22
+ "HEADER",
23
+ "HR",
24
+ "LI",
25
+ "MAIN",
26
+ "NAV",
27
+ "OL",
28
+ "P",
29
+ "PRE",
30
+ "SECTION",
31
+ "TABLE",
32
+ "TD",
33
+ "TH",
34
+ "UL",
35
+ "DETAILS",
36
+ "SUMMARY",
37
+ "DIALOG"
38
+ ]);
39
+ const isBlockElement = (element) => {
40
+ if (blockElements.has(element.tagName.toUpperCase())) {
41
+ return true;
42
+ }
43
+ if (element.tagName.toUpperCase() === "A" && element instanceof HTMLElement) {
44
+ const display = window.getComputedStyle(element).display;
45
+ return display === "block" || display === "flex" || display === "grid";
46
+ }
47
+ return false;
48
+ };
49
+ const containsBlockElements = (element) => {
50
+ for (const child of element.children) {
51
+ if (isBlockElement(child)) {
52
+ return true;
53
+ }
54
+ if (child instanceof HTMLElement && containsBlockElements(child)) {
55
+ return true;
56
+ }
57
+ }
58
+ return false;
59
+ };
60
+ const getCleanText = (element) => {
61
+ return element.textContent?.trim() || "";
62
+ };
63
+ const traverse = (element, results) => {
64
+ if (element.tagName === "SCRIPT" || element.tagName === "STYLE") {
65
+ return;
66
+ }
67
+ if (isBlockElement(element)) {
68
+ if (!containsBlockElements(element)) {
69
+ const text = getCleanText(element);
70
+ if (text) {
71
+ results.push({
72
+ text,
73
+ element
74
+ });
75
+ }
76
+ } else {
77
+ for (const child of element.children) {
78
+ if (child instanceof HTMLElement) {
79
+ traverse(child, results);
80
+ }
81
+ }
82
+ }
83
+ } else {
84
+ for (const child of element.children) {
85
+ if (child instanceof HTMLElement) {
86
+ traverse(child, results);
87
+ }
88
+ }
89
+ }
90
+ };
91
+ export function collectTextElements(rootElement) {
92
+ const results = [];
93
+ traverse(rootElement, results);
94
+ return results;
95
+ }
@@ -0,0 +1,3 @@
1
+ type NormalizeToArray<T> = undefined | null | T | T[] | Promise<T | T[] | undefined | null>;
2
+ export declare function normalizeToArray<T>(input: NormalizeToArray<T>): Promise<T[]>;
3
+ export {};
@@ -0,0 +1,13 @@
1
+ export async function normalizeToArray(input) {
2
+ if (input === null || input === void 0) {
3
+ return [];
4
+ }
5
+ if (input instanceof Promise) {
6
+ const resolved = await input;
7
+ if (resolved === null || resolved === void 0) {
8
+ return [];
9
+ }
10
+ return Array.isArray(resolved) ? resolved : [resolved];
11
+ }
12
+ return Array.isArray(input) ? input : [input];
13
+ }
@@ -0,0 +1,2 @@
1
+ import { defineAnalyzer } from './defineAnalyzer.js';
2
+ export { defineAnalyzer };
@@ -0,0 +1,2 @@
1
+ import { defineAnalyzer } from "./defineAnalyzer.js";
2
+ export { defineAnalyzer };
@@ -0,0 +1,2 @@
1
+ declare const _default: (options?: object | undefined) => import("./types.js").Analyzer;
2
+ export default _default;
@@ -0,0 +1,165 @@
1
+ import { defineAnalyzer } from "./defineAnalyzer.js";
2
+ import { TextReadability } from "@lunarisapp/readability";
3
+ function isSupportedLangcode(v) {
4
+ if (v === "en" || v === "de" || v === "fr" || v === "it") {
5
+ return true;
6
+ }
7
+ return false;
8
+ }
9
+ const LIX_BANDS = { easyMax: 40, okMax: 59 };
10
+ const CLI_HARD_MIN = 12;
11
+ const ARI_HARD_MIN = 12;
12
+ const GULPEASE_BANDS = { easyMin: 80, okMin: 60 };
13
+ const MIN_WORDS_FOR_CONFIDENCE = 30;
14
+ function mapLang(langcode) {
15
+ const lc = (langcode || "").toLowerCase();
16
+ if (lc.startsWith("de")) return "de_CH";
17
+ if (lc.startsWith("fr")) return "fr";
18
+ if (lc.startsWith("it")) return "it";
19
+ return "en_GB";
20
+ }
21
+ function segmentWords(text) {
22
+ if ("Segmenter" in Intl) {
23
+ const seg = new Intl.Segmenter(void 0, { granularity: "word" });
24
+ const out = [];
25
+ for (const s of seg.segment(text)) {
26
+ if (s.isWordLike)
27
+ out.push(text.slice(s.index, s.index + s.segment.length));
28
+ }
29
+ return out;
30
+ }
31
+ return text.match(/\p{Letter}+(?:['’]\p{Letter}+)?/gu) ?? [];
32
+ }
33
+ function countSentences(text) {
34
+ const m = text.match(/[.!?…]+["')\]]*(\s+|$)/g);
35
+ if (m?.length) return m.length;
36
+ return /\p{Letter}/u.test(text) ? 1 : 0;
37
+ }
38
+ function toBand(lang, scores) {
39
+ const { lix, cli, ari, gulpease } = scores;
40
+ if (typeof lix === "number") {
41
+ if (lix <= LIX_BANDS.easyMax) return "easy";
42
+ if (lix <= LIX_BANDS.okMax) return "ok";
43
+ }
44
+ if (lang === "it" && typeof gulpease === "number") {
45
+ if (gulpease >= GULPEASE_BANDS.easyMin) return "easy";
46
+ if (gulpease >= GULPEASE_BANDS.okMin) return "ok";
47
+ return "hard";
48
+ }
49
+ const hardVotes = (typeof cli === "number" && cli >= CLI_HARD_MIN ? 1 : 0) + (typeof ari === "number" && ari >= ARI_HARD_MIN ? 1 : 0);
50
+ if (hardVotes >= 1) return "hard";
51
+ return "ok";
52
+ }
53
+ function impactFor(lix) {
54
+ if (lix == null) return "moderate";
55
+ if (lix >= 70) return "critical";
56
+ if (lix >= 60) return "serious";
57
+ if (lix >= 50) return "moderate";
58
+ return "minor";
59
+ }
60
+ function summarizeImpact(nodes) {
61
+ const order = ["minor", "moderate", "serious", "critical"];
62
+ let maxIdx = -1;
63
+ for (const n of nodes) {
64
+ if (!n.impact) continue;
65
+ const i = order.indexOf(n.impact);
66
+ if (i > maxIdx) maxIdx = i;
67
+ }
68
+ return maxIdx >= 0 ? order[maxIdx] : void 0;
69
+ }
70
+ function format(n, d = 1) {
71
+ return typeof n === "number" && Number.isFinite(n) ? n.toFixed(d) : "\u2014";
72
+ }
73
+ function analyzeReadability(tr, blocks, langcode, $t) {
74
+ const lang = langcode ?? "en";
75
+ const nodes = [];
76
+ for (const b of blocks) {
77
+ const text = (b.text || "").trim();
78
+ if (!text) continue;
79
+ const words = segmentWords(text);
80
+ if (words.length < MIN_WORDS_FOR_CONFIDENCE) continue;
81
+ const sentences = Math.max(1, countSentences(text));
82
+ const avgSentLen = words.length / sentences;
83
+ const lix = safe(() => tr.lix(text));
84
+ const cli = safe(() => tr.colemanLiauIndex(text));
85
+ const ari = safe(() => tr.automatedReadabilityIndex(text));
86
+ const gulpease = lang === "it" ? safe(() => tr.gulpeaseIndex(text)) : void 0;
87
+ const band = toBand(lang, { lix, cli, ari, gulpease });
88
+ if (band !== "hard") continue;
89
+ const parts = [];
90
+ parts.push(
91
+ $t("analyzerReadabiliyHardToRead", `Hard to read (@lang).`).replace(
92
+ "@lang",
93
+ lang.toUpperCase()
94
+ )
95
+ );
96
+ if (lix != null) parts.push(`LIX ${format(lix)}`);
97
+ if (lang === "it" && gulpease != null)
98
+ parts.push(`Gulpease ${format(gulpease)}`);
99
+ if (cli != null) parts.push(`CLI ${format(cli)}`);
100
+ if (avgSentLen > 25) {
101
+ parts.push(
102
+ $t(
103
+ "analyzerReadabiliyAverageSentenceLength",
104
+ `Average sentence length @length \u2192 split sentences.`
105
+ ).replace("@length", format(avgSentLen))
106
+ );
107
+ } else {
108
+ parts.push(
109
+ $t(
110
+ "analyzerReadabiliyShorterSentences",
111
+ `Consider shorter sentences and simpler wording.`
112
+ )
113
+ );
114
+ }
115
+ nodes.push({
116
+ description: parts.join(" \xB7 "),
117
+ impact: impactFor(lix),
118
+ targets: [b.element]
119
+ });
120
+ }
121
+ return {
122
+ id: "low-readability",
123
+ title: $t("analyzerReadabiliyTitle", "Text readability issues"),
124
+ category: "text",
125
+ description: $t(
126
+ "analyzerReadabiliyDescription",
127
+ "Avoid texts that are hard to read."
128
+ ),
129
+ link: "https://en.wikipedia.org/wiki/Readability",
130
+ status: nodes.length ? "violation" : "pass",
131
+ nodes,
132
+ impact: summarizeImpact(nodes)
133
+ };
134
+ }
135
+ function safe(fn) {
136
+ try {
137
+ const n = fn();
138
+ return Number.isFinite(n) ? n : void 0;
139
+ } catch {
140
+ return void 0;
141
+ }
142
+ }
143
+ export default defineAnalyzer(() => {
144
+ let textReadability = null;
145
+ return {
146
+ id: "readability",
147
+ init: function(context) {
148
+ textReadability = new TextReadability({
149
+ lang: mapLang(context.langcode),
150
+ cache: true
151
+ });
152
+ },
153
+ run(context) {
154
+ if (!isSupportedLangcode(context.langcode)) {
155
+ return;
156
+ }
157
+ return analyzeReadability(
158
+ textReadability,
159
+ context.getTextElements(),
160
+ context.langcode,
161
+ context.$t
162
+ );
163
+ }
164
+ };
165
+ });
@@ -0,0 +1,44 @@
1
+ import type { AnalyzerContext } from './helpers/Context.js';
2
+ export type AnalyzeStatus = 'pass' | 'incomplete' | 'inapplicable' | 'violation';
3
+ export type AnalyzeImpact = 'minor' | 'moderate' | 'serious' | 'critical';
4
+ export type AnalyzeCategory = 'accessibility' | 'seo' | 'text' | 'content';
5
+ export type AnalyzeNodeTarget = string | HTMLElement | {
6
+ uuid: string;
7
+ };
8
+ export type AnalyzeNode = {
9
+ description?: string;
10
+ impact?: AnalyzeImpact;
11
+ /**
12
+ * An array of either:
13
+ * - string: a valid selector
14
+ * - HTMLElement: the DOM node
15
+ * - object: An object containing the UUID of a block
16
+ */
17
+ targets: AnalyzeNodeTarget | AnalyzeNodeTarget[];
18
+ };
19
+ export type AnalyzeResult = {
20
+ id: string;
21
+ title: string;
22
+ category: AnalyzeCategory;
23
+ description: string;
24
+ link?: string;
25
+ status: AnalyzeStatus;
26
+ nodes: AnalyzeNode | AnalyzeNode[];
27
+ impact?: AnalyzeImpact;
28
+ /**
29
+ * If true, the total summary score will be calculated for each target element.
30
+ */
31
+ scoreTargets?: boolean;
32
+ };
33
+ export type AnalyzeResultMapped = AnalyzeResult & {
34
+ plugin: string;
35
+ };
36
+ export type Analyzer = {
37
+ id: string;
38
+ /**
39
+ * If true, the raw page (without editor UI) is required for this analyzer.
40
+ */
41
+ requireRawPage?: boolean;
42
+ init?: (context: AnalyzerContext) => void | Promise<void>;
43
+ run: (context: AnalyzerContext) => undefined | null | AnalyzeResult | AnalyzeResult[] | Promise<undefined | null | AnalyzeResult | AnalyzeResult[]>;
44
+ };
@@ -0,0 +1,5 @@
1
+ import type { AnalyzeCategory, AnalyzeStatus } from './analyzers/types.js';
2
+ export declare function useAnalyzeHelper(): {
3
+ getCategoryLabel: (category: AnalyzeCategory) => string;
4
+ getStatusLabel: (status: AnalyzeStatus) => string;
5
+ };
@@ -0,0 +1,28 @@
1
+ import { useBlokkli } from "#imports";
2
+ export function useAnalyzeHelper() {
3
+ const { $t } = useBlokkli();
4
+ function getCategoryLabel(category) {
5
+ if (category === "accessibility") {
6
+ return $t("analyzeCategoryAccessibility", "Accessibility");
7
+ } else if (category === "seo") {
8
+ return $t("analyzeCategorySeo", "SEO");
9
+ } else if (category === "content") {
10
+ return $t("analyzeCategoryContent", "Content");
11
+ }
12
+ return $t("analyzeCategoryText", "Text");
13
+ }
14
+ function getStatusLabel(status) {
15
+ if (status === "pass") {
16
+ return $t("analyzeStatusPass", "Pass");
17
+ } else if (status === "incomplete") {
18
+ return $t("analyzeStatusIncomplete", "Incomplete");
19
+ } else if (status === "violation") {
20
+ return $t("analyzeStatusViolation", "Violation");
21
+ }
22
+ return $t("analyzeStatusInapplicable", "Inapplicable");
23
+ }
24
+ return {
25
+ getCategoryLabel,
26
+ getStatusLabel
27
+ };
28
+ }
@@ -0,0 +1,44 @@
1
+ <template>
2
+ <PluginSidebar
3
+ id="analyze"
4
+ :title="$t('analyzeSidebarTitle', 'Analyze')"
5
+ :tour-text="$t('analyzeTourText', 'Analyze the content of your page')"
6
+ icon="speedometer"
7
+ >
8
+ <Renderer :langcode="context.language" :analyzers />
9
+ </PluginSidebar>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { useBlokkli, defineBlokkliFeature } from "#imports";
14
+ import { PluginSidebar } from "#blokkli/plugins";
15
+ import Renderer from "./Renderer.vue";
16
+ const { adapter } = defineBlokkliFeature({
17
+ id: "analyze",
18
+ label: "Analyze",
19
+ icon: "speedometer",
20
+ requiredAdapterMethods: ["getAnalyzers"],
21
+ description: "Analyze blocks and page for SEO, accessibility, etc.",
22
+ viewports: []
23
+ });
24
+ function getAdapterAnalyzers() {
25
+ const result = adapter.getAnalyzers();
26
+ if (Array.isArray(result)) {
27
+ return Promise.resolve(result);
28
+ }
29
+ return Promise.resolve(result).then((result2) => {
30
+ if (Array.isArray(result2)) {
31
+ return result2;
32
+ }
33
+ return [result2];
34
+ });
35
+ }
36
+ const analyzers = await getAdapterAnalyzers();
37
+ const { $t, context } = useBlokkli();
38
+ </script>
39
+
40
+ <script>
41
+ export default {
42
+ name: "Analyze"
43
+ };
44
+ </script>
@@ -0,0 +1,136 @@
1
+ <template>
2
+ <PluginBlockIndicator
3
+ v-for="item in items"
4
+ id="anchor"
5
+ :key="item.uuid"
6
+ :uuid="item.uuid"
7
+ :label="'#' + item.id"
8
+ icon="anchor"
9
+ @click="onClick(item)"
10
+ />
11
+ </template>
12
+
13
+ <script setup>
14
+ import { useBlokkli, ref, onMounted, onBeforeUnmount, useRoute } from "#imports";
15
+ import { PluginBlockIndicator } from "#blokkli/plugins";
16
+ import { emitMessage } from "#blokkli/helpers/eventBus";
17
+ const route = useRoute();
18
+ const { ui, $t, adapter } = useBlokkli();
19
+ const rootElement = ui.providerElement();
20
+ function getLinkForClipboard(item) {
21
+ if (adapter.buildAnchorLink) {
22
+ return adapter.buildAnchorLink(item.id, item.uuid);
23
+ }
24
+ return route.path + "#" + item.id;
25
+ }
26
+ function onClick(item) {
27
+ if (navigator.clipboard?.writeText) {
28
+ const link = getLinkForClipboard(item);
29
+ navigator.clipboard.writeText(link);
30
+ const message = $t(
31
+ "copiedToClipboardMessage",
32
+ '"@text" has been copied to your clipboard'
33
+ ).replace("@text", link);
34
+ emitMessage(message, "success", void 0, true);
35
+ }
36
+ }
37
+ const items = ref([]);
38
+ const trackedElements = /* @__PURE__ */ new Map();
39
+ let observer = null;
40
+ const getAnchorData = (el) => {
41
+ const uuid = el.getAttribute("data-uuid");
42
+ const id = el.getAttribute("id");
43
+ return uuid && id ? { uuid, id } : null;
44
+ };
45
+ const syncItems = () => {
46
+ const newItems = Array.from(trackedElements.values());
47
+ items.value = newItems;
48
+ };
49
+ const checkElement = (el) => {
50
+ const data = getAnchorData(el);
51
+ const isTracked = trackedElements.has(el);
52
+ if (data && !isTracked) {
53
+ trackedElements.set(el, data);
54
+ return true;
55
+ } else if (!data && isTracked) {
56
+ trackedElements.delete(el);
57
+ return true;
58
+ } else if (data && isTracked) {
59
+ const existing = trackedElements.get(el);
60
+ if (existing.uuid !== data.uuid || existing.id !== data.id) {
61
+ trackedElements.set(el, data);
62
+ return true;
63
+ }
64
+ }
65
+ return false;
66
+ };
67
+ const processAddedNode = (node) => {
68
+ if (node.nodeType !== Node.ELEMENT_NODE) return false;
69
+ let changed = false;
70
+ const el = node;
71
+ if (el.hasAttribute("data-uuid") && el.hasAttribute("id")) {
72
+ changed = checkElement(el) || changed;
73
+ }
74
+ return changed;
75
+ };
76
+ const processRemovedNode = (node) => {
77
+ if (node.nodeType !== Node.ELEMENT_NODE) return false;
78
+ let changed = false;
79
+ const el = node;
80
+ if (!el.id) {
81
+ return false;
82
+ }
83
+ if (trackedElements.delete(el)) {
84
+ changed = true;
85
+ }
86
+ const toRemove = [];
87
+ for (const [trackedEl] of trackedElements) {
88
+ if (node.contains(trackedEl)) {
89
+ toRemove.push(trackedEl);
90
+ }
91
+ }
92
+ for (const el2 of toRemove) {
93
+ trackedElements.delete(el2);
94
+ changed = true;
95
+ }
96
+ return changed;
97
+ };
98
+ onMounted(() => {
99
+ const elements = rootElement.querySelectorAll("[data-uuid][id]");
100
+ for (const el of elements) {
101
+ const data = getAnchorData(el);
102
+ if (data) {
103
+ trackedElements.set(el, data);
104
+ }
105
+ }
106
+ syncItems();
107
+ observer = new MutationObserver((mutations) => {
108
+ let changed = false;
109
+ for (const mutation of mutations) {
110
+ if (mutation.type === "childList") {
111
+ for (const node of mutation.addedNodes) {
112
+ changed = processAddedNode(node) || changed;
113
+ }
114
+ for (const node of mutation.removedNodes) {
115
+ changed = processRemovedNode(node) || changed;
116
+ }
117
+ } else if (mutation.type === "attributes") {
118
+ const target = mutation.target;
119
+ changed = checkElement(target) || changed;
120
+ }
121
+ }
122
+ if (changed) {
123
+ syncItems();
124
+ }
125
+ });
126
+ observer.observe(rootElement, {
127
+ childList: true,
128
+ subtree: true,
129
+ attributes: true,
130
+ attributeFilter: ["data-uuid", "id"]
131
+ });
132
+ });
133
+ onBeforeUnmount(() => {
134
+ observer?.disconnect();
135
+ });
136
+ </script>
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <PluginViewOption
3
+ id="anchor"
4
+ v-slot="{ isActive }"
5
+ :label="$t('anchorToggle', 'Toggle anchor links')"
6
+ :title-on="$t('anchorShow', 'Show anchor links')"
7
+ :title-off="$t('anchorHide', 'Hide anchor links')"
8
+ icon="anchor"
9
+ >
10
+ <AnchorRenderer v-if="isActive" />
11
+ </PluginViewOption>
12
+ </template>
13
+
14
+ <script setup>
15
+ import { useBlokkli, defineBlokkliFeature } from "#imports";
16
+ import { PluginViewOption } from "#blokkli/plugins";
17
+ import AnchorRenderer from "./Renderer.vue";
18
+ defineBlokkliFeature({
19
+ id: "anchors",
20
+ label: "Anchors",
21
+ icon: "anchor",
22
+ description: "Displays indicators for blocks with anchor IDs",
23
+ viewports: ["desktop"]
24
+ });
25
+ const { $t } = useBlokkli();
26
+ </script>
27
+
28
+ <script>
29
+ export default {
30
+ name: "Anchors"
31
+ };
32
+ </script>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <div
2
+ <ViewportBlockingRect
3
+ id="artboard-overview"
3
4
  ref="overviewEl"
4
5
  class="bk bk-artboard-overview"
5
6
  @touchstart.stop
@@ -13,12 +14,20 @@
13
14
  <div class="bk-artboard-overview-visible">
14
15
  <button ref="overviewVisibleEl" />
15
16
  </div>
16
- </div>
17
+ </ViewportBlockingRect>
17
18
  </template>
18
19
 
19
20
  <script setup>
20
21
  import { overview } from "artboard-deluxe";
21
- import { onBeforeUnmount, onMounted, ref, useBlokkli, computed } from "#imports";
22
+ import {
23
+ onBeforeUnmount,
24
+ onMounted,
25
+ ref,
26
+ useBlokkli,
27
+ computed,
28
+ useTemplateRef
29
+ } from "#imports";
30
+ import { ViewportBlockingRect } from "#blokkli/components";
22
31
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
23
32
  const props = defineProps({
24
33
  artboard: { type: Object, required: true }
@@ -30,7 +39,7 @@ const overviewFillColor = computed(() => {
30
39
  const selectedColor = computed(() => {
31
40
  return theme.getColorString("accent", "700", 1);
32
41
  });
33
- const overviewEl = ref();
42
+ const overviewEl = useTemplateRef("overviewEl");
34
43
  const overviewArtboardEl = ref();
35
44
  const overviewVisibleEl = ref();
36
45
  const canvas = ref();
@@ -71,15 +80,18 @@ function updateCanvas() {
71
80
  onBlokkliEvent("animationFrame", updateCanvas);
72
81
  onMounted(() => {
73
82
  if (overviewEl.value && overviewArtboardEl.value && overviewVisibleEl.value) {
74
- pluginOverview = props.artboard.addPlugin(
75
- overview({
76
- element: overviewEl.value,
77
- artboardElement: overviewArtboardEl.value,
78
- visibleAreaElement: overviewVisibleEl.value,
79
- padding: 20,
80
- autoHeight: true
81
- })
82
- );
83
+ const el = overviewEl.value.$el;
84
+ if (el) {
85
+ pluginOverview = props.artboard.addPlugin(
86
+ overview({
87
+ element: el,
88
+ artboardElement: overviewArtboardEl.value,
89
+ visibleAreaElement: overviewVisibleEl.value,
90
+ padding: 20,
91
+ autoHeight: true
92
+ })
93
+ );
94
+ }
83
95
  }
84
96
  });
85
97
  onBeforeUnmount(() => {