@blokkli/editor 2.0.0-alpha.13 → 2.0.0-alpha.15

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 (289) hide show
  1. package/dist/module.d.mts +1 -1
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +4873 -1167
  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 +5 -0
  7. package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
  8. package/dist/modules/drupal/graphql/features/publishNew.graphql +1 -4
  9. package/dist/modules/drupal/graphql/features/scheduler.graphql +31 -0
  10. package/dist/modules/drupal/graphql/features/transform.graphql +9 -1
  11. package/dist/modules/drupal/graphql/features/transform_host.graphql +38 -0
  12. package/dist/modules/drupal/graphql/mutations/update_host_options.graphql +15 -0
  13. package/dist/modules/drupal/index.d.mts +1 -1
  14. package/dist/modules/drupal/index.mjs +37 -7
  15. package/dist/modules/drupal/runtime/adapter/index.js +140 -5
  16. package/dist/runtime/adapter/index.d.ts +90 -1
  17. package/dist/runtime/blokkliPlugins/AddAction/index.vue +27 -3
  18. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue +65 -0
  19. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +26 -0
  20. package/dist/runtime/blokkliPlugins/ContextMenu/Menu/index.vue +3 -0
  21. package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
  22. package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
  23. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue +49 -11
  24. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue.d.ts +29 -15
  25. package/dist/runtime/blokkliPlugins/MenuButton/index.vue.d.ts +2 -2
  26. package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
  27. package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
  28. package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +1 -1
  29. package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -3
  30. package/dist/runtime/blokkliPlugins/index.d.ts +8 -7
  31. package/dist/runtime/blokkliPlugins/index.js +15 -13
  32. package/dist/runtime/components/Blocks/Fragment/icon.svg +1 -1
  33. package/dist/runtime/components/BlokkliProvider.vue +1 -0
  34. package/dist/runtime/components/BlokkliProvider.vue.d.ts +1 -0
  35. package/dist/runtime/components/Edit/Actions/index.vue +39 -67
  36. package/dist/runtime/components/Edit/AddListItem/index.vue +2 -5
  37. package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +1 -1
  38. package/dist/runtime/components/Edit/AddListItemIcon/index.vue +19 -0
  39. package/dist/runtime/components/Edit/AddListItemIcon/index.vue.d.ts +15 -0
  40. package/dist/runtime/components/Edit/AppMenu/index.vue +5 -5
  41. package/dist/runtime/components/Edit/Dialog/index.vue +5 -1
  42. package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +1 -1
  43. package/dist/runtime/components/Edit/DiffViewer/State.vue +276 -0
  44. package/dist/runtime/components/Edit/DiffViewer/State.vue.d.ts +16 -0
  45. package/dist/runtime/components/Edit/DragInteractions/index.vue +35 -6
  46. package/dist/runtime/components/Edit/EditProvider.vue +46 -35
  47. package/dist/runtime/components/Edit/Features/AddList/index.vue +15 -25
  48. package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
  49. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +168 -0
  50. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue.d.ts +9 -0
  51. package/dist/runtime/components/Edit/Features/Analyze/Overlay/vertex.glsl +72 -0
  52. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue +159 -0
  53. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue.d.ts +7 -0
  54. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +100 -0
  55. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +6 -0
  56. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +56 -0
  57. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +3 -0
  58. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +87 -0
  59. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +7 -0
  60. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +101 -0
  61. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +8 -0
  62. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue +18 -0
  63. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue.d.ts +8 -0
  64. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +92 -0
  65. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue.d.ts +17 -0
  66. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue +77 -0
  67. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue.d.ts +6 -0
  68. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.d.ts +12 -0
  69. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +75 -0
  70. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.d.ts +4 -0
  71. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.js +5 -0
  72. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +32 -0
  73. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +45 -0
  74. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.d.ts +5 -0
  75. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.js +95 -0
  76. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.d.ts +3 -0
  77. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.js +13 -0
  78. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.d.ts +2 -0
  79. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.js +2 -0
  80. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.d.ts +2 -0
  81. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +165 -0
  82. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +44 -0
  83. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.js +0 -0
  84. package/dist/runtime/components/Edit/Features/Analyze/helper.d.ts +5 -0
  85. package/dist/runtime/components/Edit/Features/Analyze/helper.js +28 -0
  86. package/dist/runtime/components/Edit/Features/Analyze/index.vue +44 -0
  87. package/dist/runtime/components/Edit/Features/Anchors/Renderer.vue +136 -0
  88. package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
  89. package/dist/runtime/components/Edit/Features/Anchors/index.vue.d.ts +2 -0
  90. package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
  91. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +296 -0
  92. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
  93. package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -245
  94. package/dist/runtime/components/Edit/Features/Assistant/index.vue +3 -2
  95. package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +4 -4
  96. package/dist/runtime/components/Edit/Features/Clipboard/index.vue +161 -28
  97. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +16 -4
  98. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue.d.ts +0 -1
  99. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +4 -53
  100. package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +3 -2
  101. package/dist/runtime/components/Edit/Features/Conversions/index.vue +12 -14
  102. package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
  103. package/dist/runtime/components/Edit/Features/Debug/index.vue +27 -24
  104. package/dist/runtime/components/Edit/Features/Diff/DiffView/index.vue +13 -190
  105. package/dist/runtime/components/Edit/Features/Diff/index.vue +2 -2
  106. package/dist/runtime/components/Edit/Features/DraggingOverlay/DragItems/index.vue +4 -4
  107. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +1 -1
  108. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +35 -71
  109. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +1 -1
  110. package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +62 -48
  111. package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
  112. package/dist/runtime/components/Edit/Features/EditForm/index.vue +3 -3
  113. package/dist/runtime/components/Edit/Features/EditableField/index.vue +6 -2
  114. package/dist/runtime/components/Edit/Features/EditableMask/index.vue +3 -20
  115. package/dist/runtime/components/Edit/Features/EntityTitle/index.vue +33 -1
  116. package/dist/runtime/components/Edit/Features/Fragments/index.vue +3 -2
  117. package/dist/runtime/components/Edit/Features/History/index.vue +35 -12
  118. package/dist/runtime/components/Edit/Features/ImportExisting/Dialog/index.vue +6 -2
  119. package/dist/runtime/components/Edit/Features/ImportExisting/index.vue +3 -2
  120. package/dist/runtime/components/Edit/Features/Library/index.vue +11 -9
  121. package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +5 -8
  122. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
  123. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +9 -4
  124. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
  125. package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +8 -14
  126. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue +3 -2
  127. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue.d.ts +2 -0
  128. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue +9 -3
  129. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +0 -1
  130. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue +37 -19
  131. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue.d.ts +8 -2
  132. package/dist/runtime/components/Edit/Features/Options/Form/index.vue +81 -37
  133. package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
  134. package/dist/runtime/components/Edit/Features/Options/index.vue +30 -6
  135. package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
  136. package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue +41 -14
  137. package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue.d.ts +2 -0
  138. package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue +47 -0
  139. package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue.d.ts +19 -0
  140. package/dist/runtime/components/Edit/Features/Publish/Dialog/ScheduleDate.vue +183 -0
  141. package/dist/runtime/components/Edit/Features/Publish/Dialog/ScheduleDate.vue.d.ts +13 -0
  142. package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue +83 -0
  143. package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue.d.ts +9 -0
  144. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +381 -128
  145. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue.d.ts +3 -14
  146. package/dist/runtime/components/Edit/Features/Publish/index.vue +37 -22
  147. package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
  148. package/dist/runtime/components/Edit/Features/Search/index.vue +3 -2
  149. package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue +54 -0
  150. package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue.d.ts +14 -0
  151. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +120 -0
  152. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue.d.ts +15 -0
  153. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +459 -0
  154. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue.d.ts +6 -0
  155. package/dist/runtime/components/Edit/Features/Selection/Overlay/fragment.glsl +14 -9
  156. package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +32 -11
  157. package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +1 -1
  158. package/dist/runtime/components/Edit/Features/Selection/index.vue +76 -7
  159. package/dist/runtime/components/Edit/Features/Settings/Dialog/FeatureSetting/index.vue +12 -17
  160. package/dist/runtime/components/Edit/Features/Settings/index.vue +11 -25
  161. package/dist/runtime/components/Edit/Features/Theme/Color/index.vue +5 -1
  162. package/dist/runtime/components/Edit/Features/Theme/index.vue +2 -1
  163. package/dist/runtime/components/Edit/Features/TouchActionBar/index.vue +3 -2
  164. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +198 -0
  165. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue.d.ts +13 -0
  166. package/dist/runtime/components/Edit/Features/Transform/index.vue +155 -44
  167. package/dist/runtime/components/Edit/Form/Datepicker/index.vue +198 -0
  168. package/dist/runtime/components/Edit/Form/Datepicker/index.vue.d.ts +15 -0
  169. package/dist/runtime/components/Edit/Form/Radio/index.vue +33 -0
  170. package/dist/runtime/components/Edit/Form/Radio/index.vue.d.ts +20 -0
  171. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue +37 -0
  172. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue.d.ts +22 -0
  173. package/dist/runtime/components/Edit/Form/Select/index.vue +29 -0
  174. package/dist/runtime/components/Edit/Form/Select/index.vue.d.ts +20 -0
  175. package/dist/runtime/components/Edit/Form/Text/index.vue +33 -0
  176. package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +19 -0
  177. package/dist/runtime/components/Edit/Form/Textarea/index.vue +13 -6
  178. package/dist/runtime/components/Edit/Form/Textarea/index.vue.d.ts +4 -0
  179. package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
  180. package/dist/runtime/components/Edit/Indicators/index.vue +123 -0
  181. package/dist/runtime/components/Edit/Indicators/index.vue.d.ts +2 -0
  182. package/dist/runtime/components/Edit/ItemIcon/index.vue +2 -1
  183. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue +66 -0
  184. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue.d.ts +7 -0
  185. package/dist/runtime/components/Edit/Konami/Game/blokkli.png +0 -0
  186. package/dist/runtime/components/Edit/Konami/Game/charmap.d.ts +2 -0
  187. package/dist/runtime/components/Edit/Konami/Game/charmap.js +168 -0
  188. package/dist/runtime/components/Edit/Konami/Game/index.vue +752 -0
  189. package/dist/runtime/components/Edit/Konami/Game/index.vue.d.ts +6 -0
  190. package/dist/runtime/components/Edit/Konami/Game/textRendering.d.ts +8 -0
  191. package/dist/runtime/components/Edit/Konami/Game/textRendering.js +138 -0
  192. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.d.ts +9 -0
  193. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.js +130 -0
  194. package/dist/runtime/components/Edit/Konami/index.vue +44 -0
  195. package/dist/runtime/components/Edit/Konami/index.vue.d.ts +2 -0
  196. package/dist/runtime/components/Edit/Loading/index.vue +6 -2
  197. package/dist/runtime/components/Edit/Loading/index.vue.d.ts +2 -0
  198. package/dist/runtime/components/Edit/Messages/index.vue +8 -3
  199. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue +17 -0
  200. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue.d.ts +11 -0
  201. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue +37 -0
  202. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue.d.ts +11 -0
  203. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue +43 -0
  204. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue.d.ts +11 -0
  205. package/dist/runtime/components/Edit/PluginConfigForm/index.vue +57 -0
  206. package/dist/runtime/components/Edit/PluginConfigForm/index.vue.d.ts +16 -0
  207. package/dist/runtime/components/Edit/PreviewProvider.vue +3 -4
  208. package/dist/runtime/components/Edit/RelativeTime/index.vue +3 -2
  209. package/dist/runtime/components/Edit/ShortcutIndicator/index.vue +8 -3
  210. package/dist/runtime/components/Edit/SystemRequirements/index.vue +3 -3
  211. package/dist/runtime/components/Edit/Toolbar/index.vue +3 -2
  212. package/dist/runtime/components/Edit/Transition/index.vue +41 -0
  213. package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
  214. package/dist/runtime/components/Edit/index.d.ts +24 -15
  215. package/dist/runtime/components/Edit/index.js +46 -28
  216. package/dist/runtime/composables/defineBlokkli.js +7 -3
  217. package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
  218. package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
  219. package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
  220. package/dist/runtime/composables/useBlokkliHelper.js +1 -1
  221. package/dist/runtime/constants/index.d.ts +3 -0
  222. package/dist/runtime/constants/index.js +3 -0
  223. package/dist/runtime/css/output.css +1 -1
  224. package/dist/runtime/helpers/addElementClasses.d.ts +2 -0
  225. package/dist/runtime/helpers/addElementClasses.js +24 -0
  226. package/dist/runtime/helpers/animationProvider.d.ts +4 -2
  227. package/dist/runtime/helpers/animationProvider.js +7 -2
  228. package/dist/runtime/helpers/bundles/index.d.ts +1 -0
  229. package/dist/runtime/helpers/bundles/index.js +4 -0
  230. package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +20 -0
  231. package/dist/runtime/helpers/composables/useStickyToolbar.js +215 -0
  232. package/dist/runtime/helpers/definitionProvider.d.ts +2 -1
  233. package/dist/runtime/helpers/definitionProvider.js +17 -0
  234. package/dist/runtime/helpers/domProvider.d.ts +2 -1
  235. package/dist/runtime/helpers/domProvider.js +89 -43
  236. package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
  237. package/dist/runtime/helpers/dropTargets/index.js +49 -0
  238. package/dist/runtime/helpers/eventBus.d.ts +1 -1
  239. package/dist/runtime/helpers/eventBus.js +2 -2
  240. package/dist/runtime/helpers/index.d.ts +10 -1
  241. package/dist/runtime/helpers/index.js +57 -0
  242. package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
  243. package/dist/runtime/helpers/indicatorsProvider.js +23 -0
  244. package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
  245. package/dist/runtime/helpers/keyboardProvider.js +17 -1
  246. package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
  247. package/dist/runtime/helpers/pluginProvider.js +33 -0
  248. package/dist/runtime/helpers/renderCycle.d.ts +1 -0
  249. package/dist/runtime/helpers/renderCycle.js +10 -0
  250. package/dist/runtime/helpers/runtimeHelpers/index.js +14 -11
  251. package/dist/runtime/helpers/selectionProvider.d.ts +16 -0
  252. package/dist/runtime/helpers/selectionProvider.js +47 -35
  253. package/dist/runtime/helpers/stateProvider.d.ts +7 -2
  254. package/dist/runtime/helpers/stateProvider.js +89 -14
  255. package/dist/runtime/helpers/storageProvider.d.ts +4 -3
  256. package/dist/runtime/helpers/storageProvider.js +56 -3
  257. package/dist/runtime/helpers/symbols.d.ts +1 -0
  258. package/dist/runtime/helpers/symbols.js +1 -0
  259. package/dist/runtime/helpers/textProvider.js +6 -0
  260. package/dist/runtime/helpers/themeProvider.d.ts +2 -0
  261. package/dist/runtime/helpers/themeProvider.js +4 -1
  262. package/dist/runtime/helpers/transform.js +1 -3
  263. package/dist/runtime/helpers/uiProvider.d.ts +9 -2
  264. package/dist/runtime/helpers/uiProvider.js +72 -47
  265. package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
  266. package/dist/runtime/helpers/useTransitionedValue.js +57 -0
  267. package/dist/runtime/icons/anchor.svg +1 -0
  268. package/dist/runtime/icons/arrow-left.svg +1 -1
  269. package/dist/runtime/icons/arrow-right.svg +1 -1
  270. package/dist/runtime/icons/arrow-top-right.svg +1 -0
  271. package/dist/runtime/icons/calendar-clock.svg +1 -0
  272. package/dist/runtime/icons/chart.svg +1 -0
  273. package/dist/runtime/icons/copy.svg +1 -0
  274. package/dist/runtime/icons/cursor-move.svg +1 -1
  275. package/dist/runtime/icons/diff.svg +1 -1
  276. package/dist/runtime/icons/eye-off.svg +1 -0
  277. package/dist/runtime/icons/eye.svg +1 -1
  278. package/dist/runtime/icons/info.svg +1 -1
  279. package/dist/runtime/icons/link.svg +1 -0
  280. package/dist/runtime/icons/speedometer.svg +1 -0
  281. package/dist/runtime/types/blokkOptions.d.ts +8 -0
  282. package/dist/runtime/types/index.d.ts +172 -6
  283. package/dist/runtime/types/theme.d.ts +2 -1
  284. package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
  285. package/package.json +20 -5
  286. package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
  287. package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
  288. /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay → Analyze}/index.vue.d.ts +0 -0
  289. /package/dist/runtime/components/Edit/Features/{FieldAreas/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
@@ -3,7 +3,7 @@
3
3
  <div class="bk bk-blokkli-item-actions bk-control" @click.stop>
4
4
  <div
5
5
  v-show="
6
- selection.blocks.value.length && !selection.isDragging.value && !selection.editableActive.value && !ui.isAnimating.value
6
+ !selection.isDragging.value && !selection.editableActive.value && !ui.isAnimating.value && !ui.hasTransformOverlayOpen.value && hasAnythingSelected && shouldRender && !ui.hasAddTooltipOpen.value
7
7
  "
8
8
  ref="el"
9
9
  class="bk-blokkli-item-actions-inner"
@@ -29,7 +29,13 @@
29
29
  }"
30
30
  @click.prevent="showDropdown = !showDropdown"
31
31
  >
32
- <div class="bk-blokkli-item-actions-title-icon">
32
+ <div v-if="shouldRenderButton" class="bk-tooltip">
33
+ {{ $t("actionsDropdownToolip", "Further actions") }}
34
+ </div>
35
+ <div
36
+ v-show="!hasSelectedHost"
37
+ class="bk-blokkli-item-actions-title-icon"
38
+ >
33
39
  <Icon v-if="ui.isTransforming.value" name="loader" />
34
40
  <ItemIcon v-else-if="bundleIcon" :bundle="bundleIcon" />
35
41
  <Icon v-else name="selection" />
@@ -54,6 +60,7 @@
54
60
  <div id="bk-blokkli-item-actions-after" />
55
61
 
56
62
  <div
63
+ v-show="selection.blocks.value.length"
57
64
  id="bk-blokkli-item-actions"
58
65
  class="bk-blokkli-item-actions-buttons"
59
66
  />
@@ -70,23 +77,39 @@ import {
70
77
  computed,
71
78
  useBlokkli,
72
79
  onMounted,
73
- onBeforeUnmount
80
+ onBeforeUnmount,
81
+ useTemplateRef
74
82
  } from "#imports";
75
- import { onlyUnique, findIdealRectPosition, falsy } from "#blokkli/helpers";
83
+ import { onlyUnique, falsy } from "#blokkli/helpers";
76
84
  import { ItemIcon, Icon } from "#blokkli/components";
77
85
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
78
- const { selection, $t, types, state, ui, dom, definitions, debug } = useBlokkli();
86
+ import useStickyToolbar from "#blokkli/helpers/composables/useStickyToolbar";
87
+ const { selection, $t, types, state, ui, definitions, debug } = useBlokkli();
79
88
  const editingEnabled = computed(
80
89
  () => state.editMode.value === "editing" || state.editMode.value === "translating"
81
90
  );
82
91
  const ACTIONS_HEIGHT = 52;
83
- const el = ref(null);
92
+ let scrollWidth = 0;
93
+ const el = useTemplateRef("el");
94
+ const { shouldRender } = useStickyToolbar(el, {
95
+ getPlacementY: () => "top",
96
+ shouldUpdate: () => !selection.isChangingOptions.value,
97
+ getHeight: () => ACTIONS_HEIGHT,
98
+ getWidth: () => scrollWidth,
99
+ getMargin: () => 20
100
+ });
84
101
  const controlsEl = ref(null);
85
102
  const mountedPlugins = ref([]);
86
103
  const showDropdown = ref(false);
104
+ const hasAnythingSelected = computed(
105
+ () => selection.hasHostSelected.value || !!selection.blocks.value.length
106
+ );
87
107
  watch(selection.blocks, () => {
88
108
  showDropdown.value = false;
89
109
  });
110
+ watch(selection.hasHostSelected, () => {
111
+ showDropdown.value = false;
112
+ });
90
113
  const bundleIcon = computed(() => {
91
114
  if (itemBundle.value?.id === "from_library") {
92
115
  const reusableBundle = selection.blocks.value[0]?.reusableBundle;
@@ -96,14 +119,15 @@ const bundleIcon = computed(() => {
96
119
  }
97
120
  return itemBundle.value?.id;
98
121
  });
122
+ const hasSelectedHost = computed(() => {
123
+ return selection.blocks.value.length === 0;
124
+ });
99
125
  const title = computed(() => {
100
126
  if (ui.transformLabel.value) {
101
127
  return ui.transformLabel.value;
102
- }
103
- if (debug.isEnabled.value && selection.uuids.value.length === 1) {
128
+ } else if (debug.isEnabled.value && selection.uuids.value.length === 1) {
104
129
  return selection.uuids.value[0];
105
- }
106
- if (itemBundle.value) {
130
+ } else if (itemBundle.value) {
107
131
  if (itemBundle.value.id === "blokkli_fragment") {
108
132
  const fragments = selection.uuids.value.map((uuid) => {
109
133
  const item = state.getFieldListItem(uuid);
@@ -127,6 +151,8 @@ const title = computed(() => {
127
151
  }
128
152
  }
129
153
  return itemBundle.value.label;
154
+ } else if (!selection.blocks.value.length) {
155
+ return state.entity.value.label;
130
156
  }
131
157
  return $t("multipleItemsLabel", "Items");
132
158
  });
@@ -140,21 +166,6 @@ const itemBundle = computed(() => {
140
166
  const bundle = itemBundleIds.value[0];
141
167
  return types.getBlockBundleDefinition(bundle);
142
168
  });
143
- const limitPlacedRect = (rect, padding) => {
144
- return {
145
- width: rect.width,
146
- height: rect.height,
147
- x: Math.min(
148
- Math.max(rect.x, padding.x),
149
- padding.x + padding.width - rect.width
150
- ),
151
- y: Math.min(
152
- Math.max(padding.y, rect.y),
153
- padding.height + padding.y - rect.height
154
- )
155
- };
156
- };
157
- let scrollWidth = 0;
158
169
  const observer = new ResizeObserver((entries) => {
159
170
  const size = entries[0]?.contentBoxSize?.[0];
160
171
  if (!size) {
@@ -173,48 +184,6 @@ onBeforeUnmount(() => {
173
184
  observer.disconnect();
174
185
  }
175
186
  });
176
- onBlokkliEvent("canvas:draw", () => {
177
- if (!selection.blocks.value.length || ui.isMobile.value || selection.isChangingOptions.value) {
178
- return;
179
- }
180
- let minX = 0;
181
- let minY = 0;
182
- const rects = selection.uuids.value.map((uuid) => dom.getBlockRect(uuid)).filter(falsy);
183
- if (!rects.length) {
184
- return;
185
- }
186
- const offset = ui.artboardOffset.value;
187
- const scale = ui.artboardScale.value;
188
- for (let i = 0; i < rects.length; i++) {
189
- const { x, y } = rects[i];
190
- const rectX = (x + offset.x / scale) * scale;
191
- const rectY = (y + offset.y / scale) * scale;
192
- if (i === 0 || rectX < minX) {
193
- minX = rectX;
194
- }
195
- if (i === 0 || rectY < minY) {
196
- minY = rectY;
197
- }
198
- }
199
- const padding = ui.visibleViewportPadded.value;
200
- const rect = limitPlacedRect(
201
- {
202
- x: minX - 5 * Math.min(scale, 1),
203
- y: minY - ACTIONS_HEIGHT - 15 * Math.min(scale, 1),
204
- width: scrollWidth,
205
- height: ACTIONS_HEIGHT
206
- },
207
- padding
208
- );
209
- const ideal = findIdealRectPosition(
210
- ui.viewportBlockingRects.value,
211
- rect,
212
- padding
213
- );
214
- if (el.value) {
215
- el.value.style.transform = ui.isMobile.value ? "" : `translate3d(${ideal.x}px, ${ideal.y}px, 0)`;
216
- }
217
- });
218
187
  const shouldRenderButton = computed(
219
188
  () => mountedPlugins.value.some((v) => v.isRendering)
220
189
  );
@@ -230,6 +199,9 @@ onBlokkliEvent("plugin:unmount", (e) => {
230
199
  }
231
200
  mountedPlugins.value = mountedPlugins.value.filter((v) => v.type !== e.id);
232
201
  });
202
+ onBlokkliEvent("action:selected", () => {
203
+ showDropdown.value = false;
204
+ });
233
205
  watch(ui.isTransforming, function(isTransforming) {
234
206
  if (isTransforming) {
235
207
  showDropdown.value = false;
@@ -16,10 +16,7 @@
16
16
  ]"
17
17
  >
18
18
  <div class="bk-list-item-inner">
19
- <div class="bk-list-item-icon">
20
- <Icon v-if="icon" :name="icon" />
21
- <ItemIcon v-else-if="bundle" :bundle="bundle" />
22
- </div>
19
+ <AddListItemIcon :orientation :color :bundle :icon />
23
20
  <div
24
21
  class="bk-list-item-label"
25
22
  :class="{
@@ -45,7 +42,7 @@
45
42
 
46
43
  <script setup>
47
44
  import { useBlokkli, computed, ref } from "#imports";
48
- import { ItemIcon, Icon } from "#blokkli/components";
45
+ import { ItemIcon, Icon, AddListItemIcon } from "#blokkli/components";
49
46
  import { PluginContextMenu } from "#blokkli/plugins";
50
47
  const { ui, storage, $t } = useBlokkli();
51
48
  const props = defineProps({
@@ -22,7 +22,7 @@ declare const _default: import("vue").DefineComponent<{
22
22
  noContextMenu?: boolean;
23
23
  }> & Readonly<{}>, {
24
24
  bundle: string;
25
- color: "rose" | "lime" | "default" | "yellow" | "accent";
26
25
  icon: BlokkliIcon;
26
+ color: "rose" | "lime" | "default" | "yellow" | "accent";
27
27
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
28
  export default _default;
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <div
3
+ class="bk-list-item-icon"
4
+ :class="['bk-is-' + color, 'bk-is-' + orientation]"
5
+ >
6
+ <Icon v-if="icon" :name="icon" />
7
+ <ItemIcon v-else-if="bundle" :bundle="bundle" />
8
+ </div>
9
+ </template>
10
+
11
+ <script setup>
12
+ import { ItemIcon, Icon } from "#blokkli/components";
13
+ defineProps({
14
+ icon: { type: null, required: false, default: void 0 },
15
+ bundle: { type: String, required: false, default: void 0 },
16
+ color: { type: String, required: false, default: "default" },
17
+ orientation: { type: String, required: false, default: "horizontal" }
18
+ });
19
+ </script>
@@ -0,0 +1,15 @@
1
+ import type { BlokkliIcon } from '#blokkli-build/icons';
2
+ import type { AddListOrientation } from '#blokkli/types';
3
+ type __VLS_Props = {
4
+ icon?: BlokkliIcon;
5
+ bundle?: string;
6
+ color?: 'rose' | 'lime' | 'default' | 'yellow' | 'accent';
7
+ orientation?: AddListOrientation;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ bundle: string;
11
+ icon: BlokkliIcon;
12
+ color: "rose" | "lime" | "default" | "yellow" | "accent";
13
+ orientation: AddListOrientation;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -7,14 +7,14 @@
7
7
  </div>
8
8
  </Teleport>
9
9
  <Teleport to="body">
10
- <transition name="bk-fade" :duration="200">
10
+ <BlokkliTransition name="fade">
11
11
  <div
12
12
  v-if="menuOpen"
13
13
  class="bk bk-menu-overlay bk-overlay"
14
14
  @click="ui.menu.close()"
15
15
  />
16
- </transition>
17
- <transition name="bk-menu" :duration="200">
16
+ </BlokkliTransition>
17
+ <BlokkliTransition name="menu">
18
18
  <div v-show="menuOpen" class="bk bk-menu-list">
19
19
  <button :class="{ 'bk-is-active': menuOpen }" @click="ui.menu.close">
20
20
  <Icon name="close" />
@@ -34,13 +34,13 @@
34
34
  </aside>
35
35
  </div>
36
36
  </div>
37
- </transition>
37
+ </BlokkliTransition>
38
38
  </Teleport>
39
39
  </template>
40
40
 
41
41
  <script setup>
42
42
  import { computed, useBlokkli } from "#imports";
43
- import { Icon } from "#blokkli/components";
43
+ import { Icon, BlokkliTransition } from "#blokkli/components";
44
44
  import { blokkliVersion } from "#blokkli-build/config";
45
45
  const { ui, eventBus } = useBlokkli();
46
46
  const menuOpen = computed(() => ui.menu.isOpen.value);
@@ -50,7 +50,7 @@
50
50
  </template>
51
51
 
52
52
  <script setup>
53
- import { useBlokkli, onMounted, computed, ref } from "#imports";
53
+ import { useBlokkli, onMounted, computed, ref, onBeforeUnmount } from "#imports";
54
54
  import { Icon } from "#blokkli/components";
55
55
  import { modulo } from "#blokkli/helpers";
56
56
  const { ui } = useBlokkli();
@@ -125,12 +125,16 @@ const onKeyDown = (e) => {
125
125
  }
126
126
  };
127
127
  onMounted(() => {
128
+ ui.hasDialogOpen.value = true;
128
129
  const focusableElements = getFocusableElements();
129
130
  const bestMatch = focusableElements.find((el) => !(el instanceof HTMLButtonElement)) || focusableElements[0];
130
131
  if (bestMatch) {
131
132
  bestMatch.focus();
132
133
  }
133
134
  });
135
+ onBeforeUnmount(() => {
136
+ ui.hasDialogOpen.value = false;
137
+ });
134
138
  </script>
135
139
 
136
140
  <script>
@@ -28,8 +28,8 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
28
28
  onCancel?: ((...args: any[]) => any) | undefined;
29
29
  onSubmit?: ((...args: any[]) => any) | undefined;
30
30
  }>, {
31
- width: number | string;
32
31
  icon: BlokkliIcon;
32
+ width: number | string;
33
33
  lead: string;
34
34
  submitLabel: string;
35
35
  canSubmit: boolean;
@@ -0,0 +1,276 @@
1
+ <template>
2
+ <div class="bk bk-diff-view">
3
+ <div class="bk-diff-mode-selector">
4
+ <FormRadioTabs
5
+ id="diff-viewer-state-display"
6
+ v-model="diffMode"
7
+ :options="diffModeOptions"
8
+ :label="$t('diffModeLabel', 'Display')"
9
+ :scheme
10
+ />
11
+ </div>
12
+ <div class="bk-diff-table" :data-diff-mode="diffMode">
13
+ <button
14
+ v-for="item in diffItems"
15
+ :key="item.uuid"
16
+ class="bk-diff-item"
17
+ :class="{
18
+ 'bk-is-muted': showSelect && !selected?.includes(item.uuid)
19
+ }"
20
+ @click.prevent="onClick(item.uuid)"
21
+ >
22
+ <div
23
+ class="bk-diff-item-header"
24
+ :disabled="item.status === 'removed' && !showSelect"
25
+ :class="{
26
+ 'bk-is-selected': showSelect && selected?.includes(item.uuid)
27
+ }"
28
+ >
29
+ <div class="bk-blokkli-item-label">
30
+ <div class="bk-blokkli-item-label-icon">
31
+ <ItemIcon :bundle="item.bundle" />
32
+ </div>
33
+ <span>{{ getLabel(item.bundle) }}</span>
34
+ </div>
35
+ <div class="bk-diff-status">
36
+ <div
37
+ v-if="item.status === 'added'"
38
+ class="bk-diff-status-label bk-is-added"
39
+ >
40
+ {{ $t("diffStatusAdded", "Added") }}
41
+ </div>
42
+ <div
43
+ v-else-if="item.status === 'removed'"
44
+ class="bk-diff-status-label bk-is-removed"
45
+ >
46
+ {{ $t("diffStatusDeleted", "Deleted") }}
47
+ </div>
48
+ <div
49
+ v-else-if="item.status === 'unchanged'"
50
+ class="bk-diff-status-label"
51
+ >
52
+ {{ $t("diffStatusUnchanged", "Unchanged") }}
53
+ </div>
54
+ <div v-else class="bk-diff-status-label">
55
+ {{ $t("diffStatusEdited", "Edited") }}
56
+ </div>
57
+ </div>
58
+ </div>
59
+ <div class="bk-diff-item-diffs">
60
+ <div
61
+ v-for="prop in item.props"
62
+ :key="prop.key"
63
+ class="bk-diff-prop-row"
64
+ >
65
+ <h3>{{ prop.key }}</h3>
66
+ <div class="bk-diff-monospace">
67
+ <div
68
+ v-if="diffMode === 'inline'"
69
+ class="bk-diff-prop-diff"
70
+ v-html="prop.diff"
71
+ />
72
+ <div
73
+ v-else-if="diffMode === 'side_by_side'"
74
+ class="bk-diff-prop-side-by-side"
75
+ >
76
+ <div class="bk-diff-prop-before">
77
+ <div class="bk-diff-prop-label">
78
+ {{ $t("diffBefore", "Before") }}
79
+ </div>
80
+ <div class="bk-diff-prop-content" v-html="prop.before" />
81
+ </div>
82
+ <div class="bk-diff-prop-after">
83
+ <div class="bk-diff-prop-label">
84
+ {{ $t("diffAfter", "After") }}
85
+ </div>
86
+ <div class="bk-diff-prop-content" v-html="prop.after" />
87
+ </div>
88
+ </div>
89
+ <div
90
+ v-else-if="diffMode === 'after'"
91
+ class="bk-diff-prop-after-only"
92
+ >
93
+ <div class="bk-diff-prop-content" v-html="prop.after" />
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ </button>
99
+ </div>
100
+ </div>
101
+ </template>
102
+
103
+ <script setup>
104
+ import { computed, useBlokkli } from "#imports";
105
+ import { ItemIcon, FormRadioTabs } from "#blokkli/components";
106
+ import diff from "html-diff-ts";
107
+ const props = defineProps({
108
+ stateBefore: { type: Object, required: true },
109
+ stateAfter: { type: Object, required: true },
110
+ showSelect: { type: Boolean, required: false },
111
+ includeUuids: { type: Array, required: false },
112
+ selected: { type: Array, required: false },
113
+ scheme: { type: String, required: false }
114
+ });
115
+ const { types, $t, eventBus, dom, definitions, storage } = useBlokkli();
116
+ const diffMode = storage.use(
117
+ "diffMode",
118
+ "inline"
119
+ );
120
+ const diffModeOptions = computed(() => [
121
+ {
122
+ value: "inline",
123
+ label: $t("diffModeInline", "Inline")
124
+ },
125
+ {
126
+ value: "side_by_side",
127
+ label: $t("diffModeSideBySide", "Both")
128
+ },
129
+ {
130
+ value: "after",
131
+ label: $t("diffModeAfter", "After")
132
+ }
133
+ ]);
134
+ const emit = defineEmits(["toggle"]);
135
+ function getProps(bundle, props2) {
136
+ const definition = definitions.getDefaultDefinition(bundle);
137
+ if (definition?.editor?.mapDiffProps) {
138
+ return definition.editor.mapDiffProps(props2);
139
+ }
140
+ if (typeof props2 === "object") {
141
+ return Object.entries(props2).reduce(
142
+ (acc, [key, value]) => {
143
+ if (typeof value === "string" || typeof value === "number") {
144
+ acc[key] = value.toString();
145
+ } else if (typeof value === "object") {
146
+ try {
147
+ const json = JSON.stringify(value, null, 2);
148
+ acc[key] = `<pre>${json}</pre>`;
149
+ } catch {
150
+ }
151
+ }
152
+ return acc;
153
+ },
154
+ {}
155
+ );
156
+ }
157
+ return {};
158
+ }
159
+ function buildDiffItems(fields) {
160
+ const items = (fields || []).flatMap((v) => v.list);
161
+ return items;
162
+ }
163
+ const itemsBefore = computed(
164
+ () => buildDiffItems(props.stateBefore.mutatedState?.fields)
165
+ );
166
+ const itemsAfter = computed(
167
+ () => buildDiffItems(props.stateAfter.mutatedState?.fields)
168
+ );
169
+ function toString(v) {
170
+ if (typeof v === "string") {
171
+ return v;
172
+ } else if (typeof v === "number") {
173
+ return v.toString();
174
+ }
175
+ return "";
176
+ }
177
+ const diffItems = computed(() => {
178
+ const diffMap = /* @__PURE__ */ new Map();
179
+ itemsBefore.value.forEach((beforeItem) => {
180
+ if (props.includeUuids && !props.includeUuids.includes(beforeItem.uuid)) {
181
+ return;
182
+ }
183
+ const afterItem = itemsAfter.value.find(
184
+ (item) => item.uuid === beforeItem.uuid
185
+ );
186
+ const beforeProps = getProps(beforeItem.bundle, beforeItem.props);
187
+ if (!afterItem) {
188
+ diffMap.set(beforeItem.uuid, {
189
+ uuid: beforeItem.uuid,
190
+ bundle: beforeItem.bundle,
191
+ status: "removed",
192
+ props: Object.entries(beforeProps).map(([key, value]) => ({
193
+ key,
194
+ diff: diff(toString(value), ""),
195
+ before: toString(value),
196
+ after: ""
197
+ }))
198
+ });
199
+ } else {
200
+ const afterProps = getProps(afterItem.bundle, afterItem.props);
201
+ const changedProps = [];
202
+ Object.entries(beforeProps).forEach(([key, beforeValue]) => {
203
+ const afterValue = afterProps[key];
204
+ if (beforeValue !== afterValue) {
205
+ changedProps.push({
206
+ key,
207
+ diff: diff(toString(beforeValue), toString(afterValue)),
208
+ before: toString(beforeValue),
209
+ after: toString(afterValue)
210
+ });
211
+ }
212
+ });
213
+ Object.keys(afterProps).forEach((key) => {
214
+ if (!(key in beforeProps)) {
215
+ changedProps.push({
216
+ key,
217
+ diff: diff("", toString(afterProps[key])),
218
+ before: "",
219
+ after: toString(afterProps[key])
220
+ });
221
+ }
222
+ });
223
+ if (changedProps.length > 0) {
224
+ diffMap.set(beforeItem.uuid, {
225
+ uuid: beforeItem.uuid,
226
+ bundle: beforeItem.bundle,
227
+ status: "changed",
228
+ props: changedProps
229
+ });
230
+ } else if (props.includeUuids) {
231
+ diffMap.set(beforeItem.uuid, {
232
+ uuid: beforeItem.uuid,
233
+ bundle: beforeItem.bundle,
234
+ status: "unchanged",
235
+ props: []
236
+ });
237
+ }
238
+ }
239
+ });
240
+ itemsAfter.value.forEach((afterItem) => {
241
+ if (!itemsBefore.value.some((item) => item.uuid === afterItem.uuid)) {
242
+ const afterProps = getProps(afterItem.bundle, afterItem.props);
243
+ diffMap.set(afterItem.uuid, {
244
+ uuid: afterItem.uuid,
245
+ bundle: afterItem.bundle,
246
+ status: "added",
247
+ props: Object.entries(afterProps).map(([key, value]) => ({
248
+ key,
249
+ diff: diff("", toString(value)),
250
+ before: "",
251
+ after: toString(value)
252
+ }))
253
+ });
254
+ }
255
+ });
256
+ return Array.from(diffMap.values()).sort((a, b) => {
257
+ const aY = dom.getBlockRect(a.uuid)?.y || 0;
258
+ const bY = dom.getBlockRect(b.uuid)?.y || 0;
259
+ return aY - bY;
260
+ });
261
+ });
262
+ function onClick(uuid) {
263
+ if (props.showSelect) {
264
+ emit("toggle", uuid);
265
+ } else {
266
+ scrollToBlock(uuid);
267
+ }
268
+ }
269
+ function getLabel(bundle) {
270
+ return types.getBlockBundleDefinition(bundle)?.label || bundle;
271
+ }
272
+ function scrollToBlock(uuid) {
273
+ eventBus.emit("scrollIntoView", { uuid, center: true });
274
+ eventBus.emit("select", uuid);
275
+ }
276
+ </script>
@@ -0,0 +1,16 @@
1
+ import type { MappedState } from '#blokkli/types';
2
+ import type { ThemeColorName } from '#blokkli/types/theme';
3
+ type __VLS_Props = {
4
+ stateBefore: MappedState;
5
+ stateAfter: MappedState;
6
+ showSelect?: boolean;
7
+ includeUuids?: string[];
8
+ selected?: string[];
9
+ scheme?: ThemeColorName;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ toggle: (uuid: string) => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onToggle?: ((uuid: string) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ export default _default;