@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
@@ -52,12 +52,25 @@ export default function(ui, debug, definitions) {
52
52
  const logger = debug.createLogger("DomProvider");
53
53
  const mutationsReady = ref(true);
54
54
  const intersectionReady = ref(false);
55
+ const registeredBlocks = reactive({});
56
+ const registeredFields = reactive({});
55
57
  const visibleBlocks = /* @__PURE__ */ new Set();
56
58
  const visibleFields = /* @__PURE__ */ new Set();
57
59
  const blockRects = {};
58
60
  const fieldRects = {};
59
61
  const blockUuidCurrentKey = {};
60
62
  let draggableBlockCache = {};
63
+ let initTimeout = null;
64
+ const isInitalizing = ref(true);
65
+ const observedElementCache = /* @__PURE__ */ new Map();
66
+ const registeredBlockUuids = computed(() => {
67
+ return Object.entries(registeredBlocks).map(([uuid, element]) => {
68
+ if (element) {
69
+ return uuid;
70
+ }
71
+ return null;
72
+ }).filter(falsy);
73
+ });
61
74
  const resizeObserver = new ResizeObserver(function(entries) {
62
75
  for (const entry of entries) {
63
76
  if (!(entry.target instanceof HTMLElement)) {
@@ -127,8 +140,6 @@ export default function(ui, debug, definitions) {
127
140
  }
128
141
  }
129
142
  const intersectionObserver = useDelayedIntersectionObserver(intersectionCallback);
130
- const registeredBlocks = reactive({});
131
- const registeredFields = reactive({});
132
143
  const registeredFieldTypes = computed(() => {
133
144
  const fields = Object.values(registeredFields);
134
145
  const found = /* @__PURE__ */ new Set();
@@ -172,10 +183,15 @@ export default function(ui, debug, definitions) {
172
183
  visibleFields.delete(key);
173
184
  registeredFields[key] = void 0;
174
185
  };
175
- function getElementToObserve(el, bundle, fieldListType, parentBlockBundle) {
186
+ function getElementToObserve(uuid, el, bundle, fieldListType, parentBlockBundle) {
176
187
  if (el.classList.contains("bk-block-proxy")) {
177
188
  return el;
178
189
  }
190
+ const key = `${uuid}${bundle}${fieldListType}${parentBlockBundle ?? "none"}`;
191
+ const cached = observedElementCache.get(key);
192
+ if (cached) {
193
+ return cached;
194
+ }
179
195
  const definition = definitions.getBlockDefinition(
180
196
  bundle,
181
197
  fieldListType,
@@ -186,8 +202,10 @@ export default function(ui, debug, definitions) {
186
202
  }
187
203
  const observableElement = (definition.editor?.getDraggableElement ? definition.editor.getDraggableElement(el) : el) || el;
188
204
  if (observableElement instanceof HTMLElement) {
205
+ observedElementCache.set(key, observableElement);
189
206
  return observableElement;
190
207
  }
208
+ observedElementCache.set(key, el);
191
209
  return el;
192
210
  }
193
211
  const findBlock = (uuid) => {
@@ -261,23 +279,41 @@ export default function(ui, debug, definitions) {
261
279
  function getBlockRects() {
262
280
  return blockRects;
263
281
  }
264
- function getBlockRect(uuid) {
282
+ function getBlockRect(uuid, refresh) {
283
+ if (refresh) {
284
+ refreshBlockRect(uuid);
285
+ }
265
286
  return blockRects[uuid];
266
287
  }
267
288
  function getFieldRect(key) {
268
289
  return fieldRects[key];
269
290
  }
270
- function refreshBlockRect(uuid) {
271
- const block = findBlock(uuid);
272
- if (!block) {
291
+ function refreshBlockRect(uuid, providedOffset, providedScale) {
292
+ const offset = providedOffset ?? ui.artboardOffset.value;
293
+ const scale = providedScale ?? ui.artboardScale.value;
294
+ const el = registeredBlocks[uuid];
295
+ if (!el) {
273
296
  return;
274
297
  }
275
- const el = getDragElement(block);
276
- if (!el) {
298
+ const bundle = el.dataset.itemBundle;
299
+ const hostBundle = el.dataset.hostBundle;
300
+ const hostFieldListType = el.dataset.hostFieldListType;
301
+ if (!bundle || !hostFieldListType) {
277
302
  return;
278
303
  }
304
+ const observableElement = getElementToObserve(
305
+ uuid,
306
+ el,
307
+ bundle,
308
+ hostFieldListType,
309
+ hostBundle
310
+ );
279
311
  blockRects[uuid] = rectWithTime(
280
- ui.getAbsoluteElementRect(el.getBoundingClientRect())
312
+ ui.getAbsoluteElementRect(
313
+ observableElement.getBoundingClientRect(),
314
+ scale,
315
+ offset
316
+ )
281
317
  );
282
318
  }
283
319
  function refreshFieldRect(key) {
@@ -298,34 +334,15 @@ export default function(ui, debug, definitions) {
298
334
  return getVisibleBlocks();
299
335
  }
300
336
  function updateVisibleRects() {
337
+ logger.log("Update visible rects");
301
338
  const toUpdate = getUuidsToUpdateRectsFor();
302
339
  const offset = ui.artboardOffset.value;
303
340
  const scale = ui.artboardScale.value;
304
341
  for (let i = 0; i < toUpdate.length; i++) {
305
342
  const uuid = toUpdate[i];
306
- const el = registeredBlocks[uuid];
307
- if (!el) {
308
- continue;
343
+ if (uuid) {
344
+ refreshBlockRect(uuid, offset, scale);
309
345
  }
310
- const bundle = el.dataset.itemBundle;
311
- const hostBundle = el.dataset.hostBundle;
312
- const hostFieldListType = el.dataset.hostFieldListType;
313
- if (!bundle || !hostFieldListType) {
314
- continue;
315
- }
316
- const observableElement = getElementToObserve(
317
- el,
318
- bundle,
319
- hostFieldListType,
320
- hostBundle
321
- );
322
- blockRects[uuid] = rectWithTime(
323
- ui.getAbsoluteElementRect(
324
- observableElement.getBoundingClientRect(),
325
- scale,
326
- offset
327
- )
328
- );
329
346
  }
330
347
  const visibleFieldKeys = getVisibleFields();
331
348
  for (let i = 0; i < visibleFieldKeys.length; i++) {
@@ -342,10 +359,15 @@ export default function(ui, debug, definitions) {
342
359
  }
343
360
  }
344
361
  onBlokkliEvent("state:reloaded", () => {
362
+ observedElementCache.clear();
345
363
  draggableBlockCache = {};
346
364
  if (stateReloadTimeout) {
347
365
  window.clearTimeout(stateReloadTimeout);
348
366
  }
367
+ const allUuids = Object.keys(registeredBlocks);
368
+ if (allUuids.length < 150) {
369
+ updateVisibleRects();
370
+ }
349
371
  stateReloadTimeout = window.setTimeout(updateVisibleRects, 300);
350
372
  });
351
373
  onBlokkliEvent("ui:resized", function() {
@@ -361,24 +383,45 @@ export default function(ui, debug, definitions) {
361
383
  const dragElementUuidMap = /* @__PURE__ */ new WeakMap();
362
384
  const dragElementCache = /* @__PURE__ */ new Map();
363
385
  function getDragElement(block) {
364
- const cached = dragElementCache.get(block.uuid);
365
- if (cached && document.body.contains(cached)) {
366
- return cached;
367
- }
368
386
  const el = block.element();
369
387
  if (!el) {
370
- return;
388
+ return void 0;
371
389
  }
372
- dragElementUuidMap.set(el, block.uuid);
373
- dragElementCache.set(block.uuid, el);
374
- return el;
390
+ return getElementToObserve(
391
+ block.uuid,
392
+ el,
393
+ block.itemBundle,
394
+ block.hostFieldListType,
395
+ block.hostBundle
396
+ );
375
397
  }
376
398
  function isBlockVisible(uuid) {
377
399
  return visibleBlocks.has(uuid);
378
400
  }
401
+ function refreshAllBlockRects() {
402
+ const uuids = Object.keys(blockRects);
403
+ if (uuids.length < 200) {
404
+ for (let i = 0; i < uuids.length; i++) {
405
+ const uuid = uuids[i];
406
+ if (!uuid) {
407
+ continue;
408
+ }
409
+ refreshBlockRect(uuid);
410
+ }
411
+ }
412
+ }
379
413
  function registerBlock(key, uuid, el) {
380
414
  logger.log("registerBlock: " + uuid);
381
415
  blockUuidCurrentKey[uuid] = key;
416
+ if (initTimeout) {
417
+ window.clearTimeout(initTimeout);
418
+ }
419
+ if (isInitalizing.value) {
420
+ initTimeout = window.setTimeout(() => {
421
+ isInitalizing.value = false;
422
+ refreshAllBlockRects();
423
+ }, 500);
424
+ }
382
425
  if (!el) {
383
426
  logger.log("registerBlock call unregisterBlock because no element", uuid);
384
427
  unregisterBlock(key, uuid);
@@ -394,6 +437,7 @@ export default function(ui, debug, definitions) {
394
437
  const item = buildDraggableItem(el);
395
438
  if (item && item.itemType === "existing") {
396
439
  const observableElement = getElementToObserve(
440
+ item.uuid,
397
441
  el,
398
442
  item.itemBundle,
399
443
  item.hostFieldListType,
@@ -415,7 +459,6 @@ export default function(ui, debug, definitions) {
415
459
  intersectionObserver.unobserve(el);
416
460
  resizeObserver.unobserve(el);
417
461
  dragElementUuidMap.delete(el);
418
- dragElementUuidMap.delete(el);
419
462
  }
420
463
  dragElementCache.delete(uuid);
421
464
  registeredBlocks[uuid] = void 0;
@@ -441,12 +484,15 @@ export default function(ui, debug, definitions) {
441
484
  getFieldRect,
442
485
  refreshBlockRect,
443
486
  isBlockVisible,
444
- isReady: computed(() => mutationsReady.value && intersectionReady.value),
487
+ isReady: computed(
488
+ () => mutationsReady.value && intersectionReady.value && !isInitalizing.value
489
+ ),
445
490
  init,
446
491
  getDragElement,
447
492
  updateVisibleRects,
448
493
  registeredFieldTypes,
449
494
  registerBlock,
450
- unregisterBlock
495
+ unregisterBlock,
496
+ registeredBlockUuids
451
497
  };
452
498
  }
@@ -0,0 +1,6 @@
1
+ import type { BlokkliFieldElement } from '#blokkli/types';
2
+ export type Orientation = 'horizontal' | 'vertical';
3
+ export declare const MIN_GAP = 20;
4
+ export declare function getGapSize(orientation: Orientation, element: HTMLElement): number;
5
+ export declare function getChildrenOrientation(element: HTMLElement): Orientation;
6
+ export declare function determineCanAddChildren(field: BlokkliFieldElement, children: HTMLElement[], uuids: string[], currentCount: number, itemsToAdd: number, draggingBundles?: string[]): boolean;
@@ -0,0 +1,49 @@
1
+ export const MIN_GAP = 20;
2
+ export function getGapSize(orientation, element) {
3
+ const computedStyle = window.getComputedStyle(element);
4
+ if (computedStyle.display.includes("grid") || computedStyle.display.includes("flex")) {
5
+ const gap = orientation === "vertical" ? computedStyle.columnGap || computedStyle.gridColumnGap : computedStyle.rowGap || computedStyle.gridRowGap;
6
+ if (gap) {
7
+ const gapParts = gap.split(" ");
8
+ const gapValue = gapParts[0];
9
+ if (gapValue?.endsWith("px")) {
10
+ return Number.parseFloat(gapValue);
11
+ }
12
+ }
13
+ }
14
+ return MIN_GAP;
15
+ }
16
+ export function getChildrenOrientation(element) {
17
+ const computedStyle = window.getComputedStyle(element);
18
+ if (computedStyle.display.includes("flex")) {
19
+ if (computedStyle.flexDirection === "row" || computedStyle.flexDirection === "row-reverse") {
20
+ return "horizontal";
21
+ } else {
22
+ return "vertical";
23
+ }
24
+ }
25
+ if (computedStyle.display.includes("grid")) {
26
+ if (computedStyle.gridTemplateColumns.split(" ").length > 1) {
27
+ return "horizontal";
28
+ } else {
29
+ return "vertical";
30
+ }
31
+ }
32
+ return "vertical";
33
+ }
34
+ export function determineCanAddChildren(field, children, uuids, currentCount, itemsToAdd, draggingBundles) {
35
+ if (field.cardinality !== -1) {
36
+ const childrenThatAreSelection = children.filter((child) => {
37
+ const uuid = child.dataset.uuid;
38
+ if (!uuid) {
39
+ return false;
40
+ }
41
+ return uuids.includes(uuid);
42
+ }).length;
43
+ const countAfter = currentCount - childrenThatAreSelection + itemsToAdd;
44
+ if (countAfter > field.cardinality) {
45
+ return false;
46
+ }
47
+ }
48
+ return !draggingBundles?.length || draggingBundles.every((bundle) => field.allowedBundles.includes(bundle));
49
+ }
@@ -1,3 +1,3 @@
1
1
  import type { EventbusEvents } from '#blokkli/types';
2
2
  export declare const eventBus: import("mitt").Emitter<EventbusEvents>;
3
- export declare const emitMessage: (message: string, type?: "success" | "error", additional?: string | Error | unknown) => void;
3
+ export declare const emitMessage: (message: string, type?: "success" | "error", additional?: string | Error | unknown, replace?: boolean) => void;
@@ -1,5 +1,5 @@
1
1
  import mitt from "mitt";
2
2
  export const eventBus = mitt();
3
- export const emitMessage = (message, type = "success", additional) => {
4
- eventBus.emit("message", { type, message, additional });
3
+ export const emitMessage = (message, type = "success", additional, replace) => {
4
+ eventBus.emit("message", { type, message, additional, replace });
5
5
  };
@@ -1,4 +1,4 @@
1
- import type { DraggableItem, Rectangle, DroppableEntityField, DraggableExistingBlock, EntityContext, Coord, LibraryItemProps } from '#blokkli/types';
1
+ import type { DraggableItem, Rectangle, DroppableEntityField, DraggableExistingBlock, EntityContext, Coord, LibraryItemProps, Size } from '#blokkli/types';
2
2
  import type { RGB } from '#blokkli/types/theme';
3
3
  /**
4
4
  * Type check for falsy values.
@@ -39,6 +39,15 @@ export declare function distanceToRectangle(x: number, y: number, rect: Rectangl
39
39
  * Return the distance from the given coordinates to the center of the rectangle.
40
40
  */
41
41
  export declare function distanceToClosestRectangleEdge(x: number, y: number, rect: Rectangle): number;
42
+ /**
43
+ * Subtracts a rectangle from a viewport and returns the remaining area as rectangles.
44
+ * The viewport is assumed to have x=0 and y=0.
45
+ *
46
+ * @param viewport - The size of the viewport to subtract from
47
+ * @param rect - The rectangle to subtract
48
+ * @returns An array of 0 to 4 rectangles representing the area outside of rect
49
+ */
50
+ export declare function subtractRectFromViewport(viewport: Size, rect: Rectangle): Rectangle[];
42
51
  export declare function getDistance(a: Coord, b: Coord): number;
43
52
  export declare const parseColorString: (color: string) => RGB | undefined;
44
53
  /**
@@ -234,6 +234,63 @@ export function distanceToClosestRectangleEdge(x, y, rect) {
234
234
  const dy = Math.max(minY - y, 0, y - maxY);
235
235
  return Math.sqrt(dx * dx + dy * dy);
236
236
  }
237
+ export function subtractRectFromViewport(viewport, rect) {
238
+ const viewportLeft = 0;
239
+ const viewportTop = 0;
240
+ const viewportRight = viewport.width;
241
+ const viewportBottom = viewport.height;
242
+ const intersectLeft = Math.max(viewportLeft, rect.x);
243
+ const intersectTop = Math.max(viewportTop, rect.y);
244
+ const intersectRight = Math.min(viewportRight, rect.x + rect.width);
245
+ const intersectBottom = Math.min(viewportBottom, rect.y + rect.height);
246
+ if (intersectLeft >= intersectRight || intersectTop >= intersectBottom) {
247
+ return [
248
+ {
249
+ x: 0,
250
+ y: 0,
251
+ width: viewport.width,
252
+ height: viewport.height
253
+ }
254
+ ];
255
+ }
256
+ if (intersectLeft <= viewportLeft && intersectTop <= viewportTop && intersectRight >= viewportRight && intersectBottom >= viewportBottom) {
257
+ return [];
258
+ }
259
+ const result = [];
260
+ if (intersectTop > viewportTop) {
261
+ result.push({
262
+ x: viewportLeft,
263
+ y: viewportTop,
264
+ width: viewport.width,
265
+ height: intersectTop - viewportTop
266
+ });
267
+ }
268
+ if (intersectBottom < viewportBottom) {
269
+ result.push({
270
+ x: viewportLeft,
271
+ y: intersectBottom,
272
+ width: viewport.width,
273
+ height: viewportBottom - intersectBottom
274
+ });
275
+ }
276
+ if (intersectLeft > viewportLeft) {
277
+ result.push({
278
+ x: viewportLeft,
279
+ y: intersectTop,
280
+ width: intersectLeft - viewportLeft,
281
+ height: intersectBottom - intersectTop
282
+ });
283
+ }
284
+ if (intersectRight < viewportRight) {
285
+ result.push({
286
+ x: intersectRight,
287
+ y: intersectTop,
288
+ width: viewportRight - intersectRight,
289
+ height: intersectBottom - intersectTop
290
+ });
291
+ }
292
+ return result;
293
+ }
237
294
  export function getDistance(a, b) {
238
295
  const dx = a.x - b.x;
239
296
  const dy = a.y - b.y;
@@ -0,0 +1,10 @@
1
+ import { type Ref } from 'vue';
2
+ import type { BlockIndicator } from '../types/index.js';
3
+ export type IndicatorsProvider = {
4
+ indicators: Ref<BlockIndicator[]>;
5
+ hovered: Ref<string>;
6
+ addIndicator: (indicator: BlockIndicator) => void;
7
+ removeIndicator: (id: string, uuid: string) => void;
8
+ setHovered: (uuid?: string | null) => void;
9
+ };
10
+ export default function (): IndicatorsProvider;
@@ -0,0 +1,23 @@
1
+ import { ref } from "vue";
2
+ export default function() {
3
+ const indicators = ref([]);
4
+ const hovered = ref("");
5
+ function addIndicator(indicator) {
6
+ indicators.value.push(indicator);
7
+ }
8
+ function removeIndicator(id, uuid) {
9
+ indicators.value = indicators.value.filter(
10
+ (v) => v.id !== id || v.uuid !== uuid
11
+ );
12
+ }
13
+ function setHovered(uuid) {
14
+ hovered.value = uuid ?? "";
15
+ }
16
+ return {
17
+ indicators,
18
+ hovered,
19
+ addIndicator,
20
+ removeIndicator,
21
+ setHovered
22
+ };
23
+ }
@@ -13,6 +13,8 @@ export type KeyboardProvider = {
13
13
  shortcuts: ComputedRef<RegisteredShortcut[]>;
14
14
  registerShortcut: (shortcut: KeyboardShortcut) => void;
15
15
  unregisterShortcut: (shortcut: KeyboardShortcut) => void;
16
+ lockKeyboardEvents: (id: string) => void;
17
+ unlockKeyboardEvents: (id: string) => void;
16
18
  };
17
19
  export default function (animationProvider: AnimationProvider): KeyboardProvider;
18
20
  export {};
@@ -18,6 +18,8 @@ export default function(animationProvider) {
18
18
  const isPressingSpace = ref(false);
19
19
  const isPressingShift = ref(false);
20
20
  const registeredShortcuts = ref([]);
21
+ const keyboardLocks = ref([]);
22
+ const keyboardLocked = computed(() => !!keyboardLocks.value.length);
21
23
  const onKeyUp = (e) => {
22
24
  isPressingControl.value = e.getModifierState("Control") || e.getModifierState("Meta");
23
25
  isPressingShift.value = e.getModifierState("Shift");
@@ -29,6 +31,9 @@ export default function(animationProvider) {
29
31
  }
30
32
  };
31
33
  const onKeyDown = (e) => {
34
+ if (keyboardLocked.value) {
35
+ return;
36
+ }
32
37
  isPressingControl.value = getControlState(e);
33
38
  isPressingShift.value = e.getModifierState("Shift");
34
39
  if (!isPressingSpace.value) {
@@ -78,6 +83,15 @@ export default function(animationProvider) {
78
83
  isPressingControl.value = getControlState(e);
79
84
  isPressingShift.value = !!e.shiftKey;
80
85
  }
86
+ function lockKeyboardEvents(id) {
87
+ if (keyboardLocks.value.includes(id)) {
88
+ return;
89
+ }
90
+ keyboardLocks.value.push(id);
91
+ }
92
+ function unlockKeyboardEvents(id) {
93
+ keyboardLocks.value = keyboardLocks.value.filter((v) => v !== id);
94
+ }
81
95
  return {
82
96
  isPressingSpace: readonly(isPressingSpace),
83
97
  isPressingControl: readonly(isPressingControl),
@@ -85,6 +99,8 @@ export default function(animationProvider) {
85
99
  shortcuts,
86
100
  registerShortcut,
87
101
  unregisterShortcut,
88
- setShortcutStateFromEvent
102
+ setShortcutStateFromEvent,
103
+ lockKeyboardEvents,
104
+ unlockKeyboardEvents
89
105
  };
90
106
  }
@@ -0,0 +1,10 @@
1
+ import type { AddAction } from '#blokkli/types';
2
+ type PluginAddFunction<T> = () => T | T[] | undefined;
3
+ type AddActionFunction = PluginAddFunction<AddAction>;
4
+ export type PluginProvider = {
5
+ addAddAction: (fn: AddActionFunction) => void;
6
+ removeAddAction: (fn: AddActionFunction) => void;
7
+ getAddActions: () => AddAction[];
8
+ };
9
+ export default function (): PluginProvider;
10
+ export {};
@@ -0,0 +1,33 @@
1
+ export default function() {
2
+ let addActions = [];
3
+ function addAddAction(fn) {
4
+ addActions.push(fn);
5
+ }
6
+ function removeAddAction(fn) {
7
+ addActions = addActions.filter((v) => v !== fn);
8
+ }
9
+ function getAddActions() {
10
+ const actions = [];
11
+ for (let i = 0; i < addActions.length; i++) {
12
+ const callback = addActions[i];
13
+ if (!callback) {
14
+ continue;
15
+ }
16
+ const result = callback();
17
+ if (!result) {
18
+ continue;
19
+ }
20
+ if (Array.isArray(result)) {
21
+ actions.push(...result);
22
+ } else {
23
+ actions.push(result);
24
+ }
25
+ }
26
+ return actions;
27
+ }
28
+ return {
29
+ addAddAction,
30
+ removeAddAction,
31
+ getAddActions
32
+ };
33
+ }
@@ -0,0 +1 @@
1
+ export declare function renderCycle(): Promise<void>;
@@ -0,0 +1,10 @@
1
+ import { nextTick } from "#imports";
2
+ export function renderCycle() {
3
+ return new Promise((resolve) => {
4
+ nextTick(() => {
5
+ window.requestAnimationFrame(() => {
6
+ resolve();
7
+ });
8
+ });
9
+ });
10
+ }
@@ -6,6 +6,7 @@ import {
6
6
  bundlesWithHiddenGlobally
7
7
  } from "#blokkli-build/default-global-options";
8
8
  import { BK_HIDDEN_GLOBALLY, BK_VISIBLE_LANGUAGES } from "../symbols.js";
9
+ import { BUNDLE_FROM_LIBRARY } from "#blokkli/constants";
9
10
  export function mapCheckboxTrue(v) {
10
11
  return v === true || v === "1" || v === 1 || v === "true" ? "1" : "0";
11
12
  }
@@ -82,16 +83,18 @@ export function isVisibleByOptions(item, language) {
82
83
  return true;
83
84
  }
84
85
  export function getRuntimeOptions(item, context, fromLibraryOptions) {
85
- if (item.bundle === "from_library" && "libraryItem" in item.props) {
86
- const actualBlock = item.props.libraryItem?.block;
87
- if (!actualBlock) {
88
- throw new Error("Missing block");
86
+ if (item.bundle === BUNDLE_FROM_LIBRARY) {
87
+ if ("props" in item && item.props && "libraryItem" in item.props) {
88
+ const actualBlock = item.props.libraryItem?.block;
89
+ if (actualBlock) {
90
+ return getRuntimeOptions(
91
+ actualBlock,
92
+ context,
93
+ item.options
94
+ );
95
+ }
89
96
  }
90
- return getRuntimeOptions(
91
- actualBlock,
92
- context,
93
- item.options
94
- );
97
+ throw new Error("Missing block");
95
98
  }
96
99
  const availableOptions = OPTIONS["block:" + item.bundle] || {};
97
100
  return Object.entries(availableOptions).reduce(
@@ -114,7 +117,7 @@ export function getRuntimeOptions(item, context, fromLibraryOptions) {
114
117
  );
115
118
  }
116
119
  export function getActualBlock(item) {
117
- if (item.bundle === "from_library") {
120
+ if (item.bundle === BUNDLE_FROM_LIBRARY) {
118
121
  const block = item.props.libraryItem?.block;
119
122
  if (!block) {
120
123
  return null;
@@ -131,7 +134,7 @@ export function getItemsforBundles(items, bundles) {
131
134
  const filtered = [];
132
135
  for (let i = 0; i < items.length; i++) {
133
136
  const item = items[i];
134
- if (item.bundle === "from_library") {
137
+ if (item.bundle === BUNDLE_FROM_LIBRARY) {
135
138
  const actual = getActualBlock(item);
136
139
  if (actual && bundles.includes(actual.bundle)) {
137
140
  filtered.push(actual);
@@ -6,6 +6,14 @@ export type SelectionProvider = {
6
6
  * The currently selected UUIDs.
7
7
  */
8
8
  uuids: Readonly<Ref<string[]>>;
9
+ /**
10
+ * Whether the host is currently selected.
11
+ */
12
+ hasHostSelected: ComputedRef<boolean>;
13
+ /**
14
+ * Whether anything is selected.
15
+ */
16
+ hasAnythingSelected: ComputedRef<boolean>;
9
17
  /**
10
18
  * The currently selected UUIDs as a Set.
11
19
  */
@@ -59,5 +67,13 @@ export type SelectionProvider = {
59
67
  */
60
68
  dragItemsBundles: ComputedRef<string[]>;
61
69
  isBlockSelected(uuid: string): boolean;
70
+ /**
71
+ * Lock selection.
72
+ */
73
+ lockSelection: (key: string) => void;
74
+ /**
75
+ * Unlock selection.
76
+ */
77
+ unlockSelection: (key: string) => void;
62
78
  };
63
79
  export default function (dom: DomProvider): SelectionProvider;