@blokkli/editor 2.0.0-alpha.13 → 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 (272) hide show
  1. package/dist/module.d.mts +1 -1
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +4003 -1162
  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 +1 -1
  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 +35 -6
  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 +14 -9
  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/domProvider.d.ts +2 -1
  220. package/dist/runtime/helpers/domProvider.js +89 -43
  221. package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
  222. package/dist/runtime/helpers/dropTargets/index.js +49 -0
  223. package/dist/runtime/helpers/eventBus.d.ts +1 -1
  224. package/dist/runtime/helpers/eventBus.js +2 -2
  225. package/dist/runtime/helpers/index.d.ts +10 -1
  226. package/dist/runtime/helpers/index.js +57 -0
  227. package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
  228. package/dist/runtime/helpers/indicatorsProvider.js +23 -0
  229. package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
  230. package/dist/runtime/helpers/keyboardProvider.js +17 -1
  231. package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
  232. package/dist/runtime/helpers/pluginProvider.js +33 -0
  233. package/dist/runtime/helpers/renderCycle.d.ts +1 -0
  234. package/dist/runtime/helpers/renderCycle.js +10 -0
  235. package/dist/runtime/helpers/runtimeHelpers/index.js +14 -11
  236. package/dist/runtime/helpers/selectionProvider.d.ts +16 -0
  237. package/dist/runtime/helpers/selectionProvider.js +47 -35
  238. package/dist/runtime/helpers/stateProvider.d.ts +6 -2
  239. package/dist/runtime/helpers/stateProvider.js +58 -14
  240. package/dist/runtime/helpers/storageProvider.d.ts +4 -3
  241. package/dist/runtime/helpers/storageProvider.js +56 -3
  242. package/dist/runtime/helpers/symbols.d.ts +1 -0
  243. package/dist/runtime/helpers/symbols.js +1 -0
  244. package/dist/runtime/helpers/textProvider.js +6 -0
  245. package/dist/runtime/helpers/themeProvider.d.ts +2 -0
  246. package/dist/runtime/helpers/themeProvider.js +4 -1
  247. package/dist/runtime/helpers/transform.js +1 -3
  248. package/dist/runtime/helpers/uiProvider.d.ts +7 -2
  249. package/dist/runtime/helpers/uiProvider.js +49 -47
  250. package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
  251. package/dist/runtime/helpers/useTransitionedValue.js +57 -0
  252. package/dist/runtime/icons/anchor.svg +1 -0
  253. package/dist/runtime/icons/arrow-left.svg +1 -1
  254. package/dist/runtime/icons/arrow-right.svg +1 -1
  255. package/dist/runtime/icons/arrow-top-right.svg +1 -0
  256. package/dist/runtime/icons/chart.svg +1 -0
  257. package/dist/runtime/icons/copy.svg +1 -0
  258. package/dist/runtime/icons/cursor-move.svg +1 -1
  259. package/dist/runtime/icons/diff.svg +1 -1
  260. package/dist/runtime/icons/eye.svg +1 -1
  261. package/dist/runtime/icons/info.svg +1 -1
  262. package/dist/runtime/icons/link.svg +1 -0
  263. package/dist/runtime/icons/speedometer.svg +1 -0
  264. package/dist/runtime/types/blokkOptions.d.ts +8 -0
  265. package/dist/runtime/types/index.d.ts +163 -5
  266. package/dist/runtime/types/theme.d.ts +2 -1
  267. package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
  268. package/package.json +20 -5
  269. package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
  270. package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
  271. /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay → Analyze}/index.vue.d.ts +0 -0
  272. /package/dist/runtime/components/Edit/Features/{FieldAreas/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
@@ -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;
@@ -1,21 +1,18 @@
1
1
  import onBlokkliEvent from "./composables/onBlokkliEvent.js";
2
2
  import { computed, ref } from "#imports";
3
- import {
4
- findElement,
5
- buildDraggableItem,
6
- falsy,
7
- modulo,
8
- onlyUnique
9
- } from "#blokkli/helpers";
3
+ import { falsy, modulo, onlyUnique } from "#blokkli/helpers";
10
4
  import { eventBus } from "#blokkli/helpers/eventBus";
11
5
  export default function(dom) {
12
6
  const selectedUuids = ref([]);
7
+ const hasHostSelected = ref(false);
13
8
  const activeFieldKey = ref("");
14
9
  const draggingMode = ref(null);
15
10
  const editableActive = ref(false);
16
11
  const isChangingOptions = ref(false);
17
12
  const isMultiSelecting = ref(false);
18
13
  const interactionMode = ref("mouse");
14
+ const selectionLocks = ref([]);
15
+ const selectionIsLocked = computed(() => !!selectionLocks.value.length);
19
16
  const dragItems = ref([]);
20
17
  const dragItemsBundles = computed(
21
18
  () => dragItems.value.map((v) => v.itemBundle).filter(falsy)
@@ -24,34 +21,30 @@ export default function(dom) {
24
21
  const isDragging = computed(() => !!draggingMode.value);
25
22
  const blocks = computed(
26
23
  () => selectedUuids.value.map((uuid) => {
27
- return dom.findBlock(uuid);
24
+ if (dom.registeredBlockUuids.value.includes(uuid)) {
25
+ return dom.findBlock(uuid);
26
+ }
27
+ return null;
28
28
  }).filter(falsy)
29
29
  );
30
- function selectItems(uuids) {
31
- unselectItems();
32
- const items = uuids.map((uuid) => {
33
- const element = findElement(uuid);
34
- if (element) {
35
- const item = buildDraggableItem(element);
36
- if (item && item.itemType === "existing") {
37
- return item;
38
- }
39
- }
40
- }).filter(falsy);
41
- selectedUuids.value = items.map((v) => v.uuid);
30
+ function updateSelectedUuids(uuids, force) {
31
+ if (selectionIsLocked.value && !force) {
32
+ return;
33
+ }
34
+ selectedUuids.value = uuids;
42
35
  }
43
36
  function unselectItems() {
44
37
  activeFieldKey.value = "";
45
38
  if (selectedUuids.value.length === 0) {
46
39
  return;
47
40
  }
48
- selectedUuids.value = [];
41
+ updateSelectedUuids([]);
49
42
  }
50
- function onSelect(v) {
43
+ function onSelect(v, force) {
51
44
  if (typeof v === "string") {
52
- selectItems([v]);
45
+ updateSelectedUuids([v], force);
53
46
  } else {
54
- selectItems(v.filter(onlyUnique));
47
+ updateSelectedUuids(v.filter(onlyUnique), force);
55
48
  }
56
49
  }
57
50
  const selectInList = (prev) => {
@@ -74,15 +67,18 @@ export default function(dom) {
74
67
  };
75
68
  const setActiveFieldKey = (key) => activeFieldKey.value = key;
76
69
  onBlokkliEvent("select", onSelect);
70
+ onBlokkliEvent("select:force", (arg) => {
71
+ onSelect(arg, true);
72
+ });
77
73
  onBlokkliEvent("select:start", (e) => {
78
- selectedUuids.value = (e.uuids || []).filter(onlyUnique);
74
+ updateSelectedUuids((e.uuids || []).filter(onlyUnique));
79
75
  isMultiSelecting.value = true;
80
76
  interactionMode.value = e.mode;
81
77
  activeFieldKey.value = "";
82
78
  });
83
79
  onBlokkliEvent("select:toggle", (uuid) => {
84
80
  if (selectedUuids.value.includes(uuid)) {
85
- selectedUuids.value = selectedUuids.value.filter((v) => v !== uuid);
81
+ updateSelectedUuids(selectedUuids.value.filter((v) => v !== uuid));
86
82
  } else {
87
83
  selectedUuids.value.push(uuid);
88
84
  }
@@ -92,16 +88,11 @@ export default function(dom) {
92
88
  if (!uuids || uuids.length === 0 && selectedUuids.value.length === 0) {
93
89
  return;
94
90
  }
95
- selectItems(uuids);
91
+ updateSelectedUuids(uuids);
96
92
  });
97
93
  onBlokkliEvent("select:previous", () => selectInList(true));
98
94
  onBlokkliEvent("select:next", selectInList);
99
95
  onBlokkliEvent("setActiveFieldKey", setActiveFieldKey);
100
- onBlokkliEvent("state:reloaded", () => {
101
- selectedUuids.value = selectedUuids.value.filter((uuid) => {
102
- return !!dom.findBlock(uuid);
103
- });
104
- });
105
96
  onBlokkliEvent("dragging:start", (e) => {
106
97
  draggingMode.value = e.mode;
107
98
  isMultiSelecting.value = false;
@@ -110,14 +101,20 @@ export default function(dom) {
110
101
  (v) => v.itemType === "existing"
111
102
  );
112
103
  if (blocks2.length) {
113
- selectItems(blocks2.map((v) => v.uuid));
104
+ updateSelectedUuids(blocks2.map((v) => v.uuid));
114
105
  }
115
106
  });
116
107
  onBlokkliEvent("dragging:end", () => {
117
108
  draggingMode.value = null;
118
109
  });
119
110
  onBlokkliEvent("select:unselect", () => {
120
- selectedUuids.value = [];
111
+ updateSelectedUuids([]);
112
+ });
113
+ onBlokkliEvent("select:host", () => {
114
+ hasHostSelected.value = true;
115
+ });
116
+ onBlokkliEvent("select:host:unselect", () => {
117
+ hasHostSelected.value = false;
121
118
  });
122
119
  onBlokkliEvent("window:clickAway", () => {
123
120
  unselectItems();
@@ -131,9 +128,18 @@ export default function(dom) {
131
128
  (v) => v.itemType === "existing" || v.itemType === "existing_structure"
132
129
  );
133
130
  });
131
+ const hasAnythingSelected = computed(() => {
132
+ return hasHostSelected.value || !!selectedUuids.value.length;
133
+ });
134
134
  function isBlockSelected(uuid) {
135
135
  return uuidsSet.value.has(uuid);
136
136
  }
137
+ function lockSelection(key) {
138
+ selectionLocks.value.push(key);
139
+ }
140
+ function unlockSelection(key) {
141
+ selectionLocks.value = selectionLocks.value.filter((v) => v !== key);
142
+ }
137
143
  return {
138
144
  uuids: selectedUuids,
139
145
  blocks,
@@ -149,6 +155,12 @@ export default function(dom) {
149
155
  dragItems,
150
156
  uuidsSet,
151
157
  dragItemsBundles,
152
- isBlockSelected
158
+ isBlockSelected,
159
+ hasHostSelected: computed(() => {
160
+ return hasHostSelected.value && !selectedUuids.value.length;
161
+ }),
162
+ hasAnythingSelected,
163
+ lockSelection,
164
+ unlockSelection
153
165
  };
154
166
  }
@@ -1,6 +1,6 @@
1
1
  import { type Ref, type ComputedRef } from 'vue';
2
2
  import type { BlokkliAdapter, AdapterContext } from '../adapter/index.js';
3
- import type { MutatedField, EditEntity, MutatedOptions, TranslationState, MutationItem, Validation, MutateWithLoadingStateFunction, EditMode, FieldListItem } from '#blokkli/types';
3
+ import type { MutatedField, EditEntity, MutatedOptions, TranslationState, MappedState, MutationItem, Validation, MutateWithLoadingStateFunction, EditMode, FieldListItem } from '#blokkli/types';
4
4
  import type { TextProvider } from './textProvider.js';
5
5
  export type BlokkliOwner = {
6
6
  name: string | undefined;
@@ -33,5 +33,9 @@ export type StateProvider = {
33
33
  getFieldListItem: (uuid: string) => FieldListItem | undefined;
34
34
  getFieldListForBlock: (uuid: string) => MutatedField | undefined;
35
35
  getMutatedField: (uuid: string, fieldName: string) => MutatedField | undefined;
36
+ getAllUuids: (bundle?: string) => string[];
37
+ getMappedState: () => MappedState;
38
+ setOverrideState: (state: MappedState) => void;
39
+ clearOverrideState: () => void;
36
40
  };
37
- export default function (adapter: BlokkliAdapter<any>, context: ComputedRef<AdapterContext>, $t: TextProvider): Promise<StateProvider>;
41
+ export default function (adapter: BlokkliAdapter<any>, context: ComputedRef<AdapterContext>, $t: TextProvider, providerKey: string): Promise<StateProvider>;