@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
@@ -14,10 +14,10 @@
14
14
  icon="clipboard"
15
15
  weight="-30"
16
16
  >
17
- <div class="bk-clipboard bk-control">
17
+ <div class="bk bk-clipboard bk-control">
18
18
  <div
19
19
  v-if="!pastedItems.length"
20
- class="bk bk-clipboard-info bk-sidebar-padding"
20
+ class="bk-clipboard-info bk-sidebar-padding"
21
21
  >
22
22
  <h4>{{ $t("clipboardEmpty", "No items in the clipboard") }}</h4>
23
23
  <div
@@ -63,6 +63,16 @@
63
63
  </div>
64
64
  </div>
65
65
  </PluginSidebar>
66
+ <PluginItemDropdown
67
+ id="clipboard"
68
+ :title="$t('clipboard', 'Clipboard')"
69
+ :enabled="
70
+ !!selection.blocks.value.length && state.editMode.value === 'editing'
71
+ "
72
+ :items="itemDropdownItems"
73
+ icon="clipboard"
74
+ @select="onSelectDropdownItem"
75
+ />
66
76
  </template>
67
77
 
68
78
  <script setup>
@@ -71,15 +81,17 @@ import {
71
81
  ref,
72
82
  useBlokkli,
73
83
  onMounted,
74
- onUnmounted
84
+ onUnmounted,
85
+ computed
75
86
  } from "#imports";
76
- import { PluginSidebar } from "#blokkli/plugins";
87
+ import { PluginSidebar, PluginItemDropdown } from "#blokkli/plugins";
77
88
  import ClipboardList from "./List/index.vue";
78
- import { falsy, generateUUID, getFieldKey } from "#blokkli/helpers";
89
+ import { generateUUID, getFieldKey } from "#blokkli/helpers";
79
90
  import { Icon } from "#blokkli/components";
80
91
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
81
92
  import defineShortcut from "#blokkli/helpers/composables/defineShortcut";
82
93
  import getVideoId from "get-video-id";
94
+ import { emitMessage } from "#blokkli/helpers/eventBus";
83
95
  const { settings, logger } = defineBlokkliFeature({
84
96
  id: "clipboard",
85
97
  label: "Clipboard",
@@ -96,8 +108,36 @@ const { settings, logger } = defineBlokkliFeature({
96
108
  },
97
109
  screenshot: "feature-clipboard.jpg"
98
110
  });
99
- const { selection, $t, adapter, dom, state, ui, types } = useBlokkli();
111
+ const { selection, $t, adapter, dom, state, ui, types, keyboard } = useBlokkli();
100
112
  const plugin = ref(null);
113
+ const selectionClipboard = ref([]);
114
+ const itemDropdownItems = computed(() => {
115
+ return [
116
+ {
117
+ id: "copy",
118
+ label: $t("copy", "Copy"),
119
+ icon: "copy",
120
+ description: $t("clipboardCopyShortcutHelp", "Copy selected blocks")
121
+ },
122
+ {
123
+ id: "paste",
124
+ label: $t("paste", "Paste"),
125
+ enabled: !!selectionClipboard.value.length,
126
+ icon: "clipboard",
127
+ description: $t(
128
+ "clipboardPasteDescription",
129
+ "Paste blocks from clipboard"
130
+ )
131
+ }
132
+ ];
133
+ });
134
+ function onSelectDropdownItem(item) {
135
+ if (item.id === "copy") {
136
+ copyCurrentSelectionToClipboard();
137
+ } else if (item.id === "paste" && selectionClipboard.value.length) {
138
+ handleSelectionPaste(selectionClipboard.value);
139
+ }
140
+ }
101
141
  const ALLOWED_HTML_ATTRIBUTES = ["href"];
102
142
  const _MOCK = [
103
143
  {
@@ -230,11 +270,21 @@ const showClipboardSidebar = () => {
230
270
  plugin?.value?.showSidebar();
231
271
  }
232
272
  };
273
+ function emitPasteError(message) {
274
+ const prefix = $t("clipboardPasteError", "Failed to paste:");
275
+ emitMessage(`${prefix} ${message}`, "error");
276
+ }
233
277
  const handleSelectionPaste = (pastedUuids) => {
234
278
  if (!adapter.pasteExistingBlocks) {
235
279
  return;
236
280
  }
237
281
  if (selection.uuids.value.length !== 1) {
282
+ emitPasteError(
283
+ $t(
284
+ "clipboardPasteErrorOneField",
285
+ "Pasting is only possible into one field at a time."
286
+ )
287
+ );
238
288
  return;
239
289
  }
240
290
  if (!pastedUuids.length) {
@@ -244,36 +294,114 @@ const handleSelectionPaste = (pastedUuids) => {
244
294
  if (!block) {
245
295
  return;
246
296
  }
247
- const field = state.getMutatedField(block.hostUuid, block.hostFieldName);
248
- if (!field) {
249
- return;
297
+ let targetField = null;
298
+ let targetFieldConfig = null;
299
+ let targetFieldKey = null;
300
+ let preceedingUuid = void 0;
301
+ if (!keyboard.isPressingShift.value) {
302
+ const pastedBundles = pastedUuids.map((uuid) => dom.findBlock(uuid)?.itemBundle).filter((bundle) => !!bundle);
303
+ if (pastedBundles.length) {
304
+ const nestedFields = types.fieldConfig.forEntityTypeAndBundle(
305
+ block.entityType,
306
+ block.itemBundle
307
+ );
308
+ for (const fieldConfig of nestedFields) {
309
+ const allowedPastedBundles = pastedBundles.filter(
310
+ (bundle) => fieldConfig.allowedBundles.includes(bundle)
311
+ );
312
+ if (allowedPastedBundles.length > 0) {
313
+ const nestedFieldKey = getFieldKey(block.uuid, fieldConfig.name);
314
+ const currentCount = state.getFieldBlockCount(nestedFieldKey);
315
+ if (fieldConfig.cardinality === -1 || currentCount + allowedPastedBundles.length <= fieldConfig.cardinality) {
316
+ targetField = {
317
+ entityType: block.entityType,
318
+ entityUuid: block.uuid,
319
+ name: fieldConfig.name
320
+ };
321
+ targetFieldConfig = fieldConfig;
322
+ targetFieldKey = nestedFieldKey;
323
+ preceedingUuid = void 0;
324
+ break;
325
+ }
326
+ }
327
+ }
328
+ }
250
329
  }
251
- const fieldConfig = types.getFieldConfig(
252
- field.entityType,
253
- block.hostBundle,
254
- field.name
255
- );
256
- if (!fieldConfig) {
257
- return;
330
+ if (!targetField || !targetFieldConfig || !targetFieldKey) {
331
+ const field = state.getMutatedField(block.hostUuid, block.hostFieldName);
332
+ if (!field) {
333
+ return;
334
+ }
335
+ const fieldConfig = types.getFieldConfig(
336
+ field.entityType,
337
+ block.hostBundle,
338
+ field.name
339
+ );
340
+ if (!fieldConfig) {
341
+ return;
342
+ }
343
+ targetField = {
344
+ entityType: field.entityType,
345
+ entityUuid: field.entityUuid,
346
+ name: field.name
347
+ };
348
+ targetFieldConfig = fieldConfig;
349
+ targetFieldKey = getFieldKey(field.entityUuid, field.name);
350
+ preceedingUuid = selection.uuids.value[0];
351
+ }
352
+ const pastedBlocks = [];
353
+ const notAllowedBundles = [];
354
+ for (let i = 0; i < pastedUuids.length; i++) {
355
+ const uuid = pastedUuids[i];
356
+ if (!uuid) {
357
+ continue;
358
+ }
359
+ const block2 = dom.findBlock(uuid);
360
+ if (!block2) {
361
+ continue;
362
+ }
363
+ const isAllowed = targetFieldConfig.allowedBundles.includes(
364
+ block2.itemBundle
365
+ );
366
+ if (!isAllowed) {
367
+ notAllowedBundles.push(block2.itemBundle);
368
+ continue;
369
+ }
370
+ pastedBlocks.push(block2);
258
371
  }
259
- const fieldKey = getFieldKey(field.entityUuid, field.name);
260
- const pastedBlocks = pastedUuids.map((uuid) => dom.findBlock(uuid)).filter(falsy).filter((block2) => fieldConfig.allowedBundles.includes(block2.itemBundle));
261
372
  if (!pastedBlocks.length) {
373
+ const blockTypes = notAllowedBundles.map((bundle) => {
374
+ return types.getBlockBundleDefinition(bundle)?.label ?? bundle;
375
+ });
376
+ const message = blockTypes.length === 1 ? $t(
377
+ "clipboardPasteErrorAllowedBundlesSingle",
378
+ 'Block type "@types" is not allowed here.'
379
+ ) : $t(
380
+ "clipboardPasteErrorAllowedBundlesMultiple",
381
+ "Block types (@types) are not allowed here."
382
+ );
383
+ emitPasteError(message.replace("@types", blockTypes.join(", ")));
262
384
  return;
263
385
  }
264
- const count = state.getFieldBlockCount(fieldKey);
265
- if (fieldConfig.cardinality !== -1 && count + pastedBlocks.length > fieldConfig.cardinality) {
386
+ const count = state.getFieldBlockCount(targetFieldKey);
387
+ if (targetFieldConfig.cardinality !== -1 && count + pastedBlocks.length > targetFieldConfig.cardinality) {
388
+ emitPasteError(
389
+ $t(
390
+ "clipboardPasteErrorCardinality",
391
+ "This field only allows up to @count blocks."
392
+ ).replace("@count", targetFieldConfig.cardinality.toString())
393
+ );
266
394
  return;
267
395
  }
268
396
  state.mutateWithLoadingState(
269
397
  () => adapter.pasteExistingBlocks({
270
398
  uuids: pastedBlocks.map((v) => v.uuid),
271
399
  host: {
272
- type: field.entityType,
273
- uuid: field.entityUuid,
274
- fieldName: field.name
400
+ type: targetField.entityType,
401
+ uuid: targetField.entityUuid,
402
+ fieldName: targetField.name
275
403
  },
276
- preceedingUuid: selection.uuids.value[0]
404
+ preceedingUuid
277
405
  })
278
406
  );
279
407
  };
@@ -371,16 +499,21 @@ function setClipboard(text) {
371
499
  } catch (_e) {
372
500
  }
373
501
  }
374
- onBlokkliEvent("keyPressed", (e) => {
502
+ function copyCurrentSelectionToClipboard() {
375
503
  if (!selection.blocks.value.length) {
376
- return;
377
- }
378
- if (e.code !== "c" || !e.meta) {
504
+ selectionClipboard.value = [];
379
505
  return;
380
506
  }
381
507
  setClipboard(
382
508
  JSON.stringify({ type: "selection", uuids: selection.uuids.value })
383
509
  );
510
+ selectionClipboard.value = selection.uuids.value;
511
+ }
512
+ onBlokkliEvent("keyPressed", (e) => {
513
+ if (e.code !== "c" || !e.meta) {
514
+ return;
515
+ }
516
+ copyCurrentSelectionToClipboard();
384
517
  });
385
518
  defineShortcut([
386
519
  {
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <div v-if="shouldRender" class="bk-command-palette-results-group">
3
- <h2>{{ label }}</h2>
2
+ <div v-if="shouldRender" class="bk-command-palette-results-list">
4
3
  <div>
5
4
  <button
6
5
  v-for="item in mapped"
@@ -18,21 +17,22 @@
18
17
  <ItemIcon v-else :bundle="item.bundle" />
19
18
  </div>
20
19
  <Highlight :text="item.label" tag="span" :positions="item.positions" />
20
+ <div class="bk-command-group">{{ getGroupLabel(item.group) }}</div>
21
21
  </button>
22
22
  </div>
23
23
  </div>
24
24
  </template>
25
25
 
26
26
  <script setup>
27
- import { computed } from "#imports";
27
+ import { computed, useBlokkli } from "#imports";
28
28
  import { Icon, ItemIcon, Highlight } from "#blokkli/components";
29
29
  const props = defineProps({
30
- label: { type: String, required: true },
31
30
  commands: { type: Array, required: true },
32
31
  visibleIds: { type: null, required: true },
33
32
  focusedId: { type: String, required: true }
34
33
  });
35
34
  defineEmits(["close", "focus", "select"]);
35
+ const { $t } = useBlokkli();
36
36
  const mapped = computed(() => {
37
37
  return props.commands.map((v) => {
38
38
  const found = props.visibleIds?.find((w) => w.id === v._id);
@@ -47,5 +47,17 @@ const mapped = computed(() => {
47
47
  return indexA - indexB;
48
48
  });
49
49
  });
50
+ const getGroupLabel = (id) => {
51
+ if (id === "ui") {
52
+ return $t("commandGroup.ui", "Interface");
53
+ } else if (id === "add") {
54
+ return $t("commandGroup.add", "Add new");
55
+ } else if (id === "action") {
56
+ return $t("commandGroup.action", "Actions");
57
+ } else if (id === "selection") {
58
+ return $t("commandGroup.selection", "Selection");
59
+ }
60
+ return $t("commandGroup.misc", "Miscellaneous");
61
+ };
50
62
  const shouldRender = computed(() => mapped.value.some((v) => v.visible));
51
63
  </script>
@@ -1,6 +1,5 @@
1
1
  import type { Command } from '#blokkli/types';
2
2
  type __VLS_Props = {
3
- label: string;
4
3
  commands: Array<Command & {
5
4
  _id: number;
6
5
  }>;
@@ -19,10 +19,7 @@
19
19
  </div>
20
20
  <div class="bk-command-palette-results bk-scrollbar-dark">
21
21
  <Group
22
- v-for="group in groups"
23
- :key="group.id"
24
- :label="group.label"
25
- :commands="group.commands"
22
+ :commands="items"
26
23
  :visible-ids="visibleIds"
27
24
  :focused-id="focusedId"
28
25
  @close="$emit('close')"
@@ -59,26 +56,6 @@ function onFocus(id) {
59
56
  }
60
57
  focusedId.value = id;
61
58
  }
62
- const getGroupLabel = (id) => {
63
- if (id === "ui") {
64
- return $t("commandGroup.ui", "Interface");
65
- } else if (id === "add") {
66
- return $t("commandGroup.add", "Add new");
67
- } else if (id === "action") {
68
- return $t("commandGroup.action", "Actions");
69
- } else if (id === "selection") {
70
- return $t("commandGroup.selection", "Selection");
71
- } else if (id === "misc") {
72
- return $t("commandGroup.misc", "Miscellaneous");
73
- }
74
- return id;
75
- };
76
- const groupOrder = computed(() => {
77
- if (selection.uuids.value.length) {
78
- return ["selection", "add"];
79
- }
80
- return ["add"];
81
- });
82
59
  const items = computed(
83
60
  () => commands.getCommands().filter((v) => !v.disabled).map((doc, index) => {
84
61
  return {
@@ -101,38 +78,12 @@ const visibleIds = computed(
101
78
  return results.map((v) => {
102
79
  return {
103
80
  id: v.item._id,
104
- positions: [...v.positions]
81
+ positions: [...v.positions],
82
+ score: v.score
105
83
  };
106
- });
84
+ }).sort((a, b) => b.score - a.score);
107
85
  }
108
86
  );
109
- const groups = computed(() => {
110
- return Object.values(
111
- items.value.reduce((acc, command) => {
112
- const group = command.group || "misc";
113
- if (!acc[group]) {
114
- acc[group] = {
115
- id: group,
116
- label: getGroupLabel(group),
117
- commands: []
118
- };
119
- }
120
- acc[group].commands.push(command);
121
- return acc;
122
- }, {})
123
- ).sort((a, b) => {
124
- const indexA = groupOrder.value.indexOf(a.id);
125
- const indexB = groupOrder.value.indexOf(b.id);
126
- if (indexA === -1 && indexB === -1) {
127
- return 0;
128
- } else if (indexA === -1) {
129
- return 1;
130
- } else if (indexB === -1) {
131
- return -1;
132
- }
133
- return indexA - indexB;
134
- });
135
- });
136
87
  watch(text, () => {
137
88
  nextTick(() => {
138
89
  focusFirst();
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <Teleport to="body">
3
3
  <div class="bk">
4
- <Transition name="bk-command-palette">
4
+ <BlokkliTransition name="command-palette">
5
5
  <Palette v-if="isVisible" @close="isVisible = false" />
6
- </Transition>
6
+ </BlokkliTransition>
7
7
  </div>
8
8
  </Teleport>
9
9
  <PluginToolbarButton
@@ -26,6 +26,7 @@
26
26
  <script setup>
27
27
  import { useBlokkli, defineBlokkliFeature, ref, computed } from "#imports";
28
28
  import { PluginToolbarButton } from "#blokkli/plugins";
29
+ import { BlokkliTransition } from "#blokkli/components";
29
30
  import Palette from "./Palette/index.vue";
30
31
  defineBlokkliFeature({
31
32
  id: "command-palette",
@@ -3,18 +3,10 @@
3
3
  id="conversions"
4
4
  :title="$t('convertTo', 'Convert to...')"
5
5
  :enabled="!!possibleConversions.length"
6
- >
7
- <button
8
- v-for="conversion in possibleConversions"
9
- :key="conversion.id"
10
- @click.prevent="onConvert(conversion.id)"
11
- >
12
- <ItemIcon :bundle="conversion.id" />
13
- <div>
14
- <div>{{ conversion.label }}</div>
15
- </div>
16
- </button>
17
- </PluginItemDropdown>
6
+ :items="possibleConversions"
7
+ weight="900"
8
+ @select="onConvert($event.id)"
9
+ />
18
10
  </template>
19
11
 
20
12
  <script setup>
@@ -25,7 +17,6 @@ import {
25
17
  useLazyAsyncData,
26
18
  watch
27
19
  } from "#imports";
28
- import { ItemIcon } from "#blokkli/components";
29
20
  import { PluginItemDropdown } from "#blokkli/plugins";
30
21
  import { falsy, onlyUnique } from "#blokkli/helpers";
31
22
  const { adapter } = defineBlokkliFeature({
@@ -69,9 +60,16 @@ const possibleConversions = computed(() => {
69
60
  return [];
70
61
  }
71
62
  const sourceType = itemBundleIds.value[0];
63
+ const titleBase = $t("conversionsConvertTo", "Convert to: @bundle");
72
64
  return conversions.value.filter(
73
65
  (v) => v.sourceBundle === sourceType && types.allowedTypesInList.value.includes(v.targetBundle)
74
- ).map((v) => types.getBlockBundleDefinition(v.targetBundle)).filter(falsy);
66
+ ).map((v) => types.getBlockBundleDefinition(v.targetBundle)).filter(falsy).map((v) => {
67
+ return {
68
+ id: v.id,
69
+ label: titleBase.replace("@bundle", v.label),
70
+ bundle: v.id
71
+ };
72
+ });
75
73
  });
76
74
  </script>
77
75
 
@@ -15,6 +15,13 @@
15
15
  :style="rect"
16
16
  />
17
17
 
18
+ <div
19
+ v-for="(rect, i) in intersectionRects"
20
+ :key="'intersection_' + i"
21
+ class="bk-debug-intersection-rects"
22
+ :style="rect"
23
+ />
24
+
18
25
  <div
19
26
  v-for="(line, i) in linesRects"
20
27
  :key="i"
@@ -25,6 +32,7 @@
25
32
 
26
33
  <script setup>
27
34
  import { useBlokkli, computed } from "#imports";
35
+ import { subtractRectFromViewport } from "#blokkli/helpers";
28
36
  const { ui } = useBlokkli();
29
37
  const rectToStyle = (rect) => {
30
38
  return {
@@ -81,4 +89,10 @@ const visibleViewportOverlayStyle = computed(
81
89
  const visibleViewportOverlayPaddedStyle = computed(
82
90
  () => rectToStyle(ui.visibleViewportPadded.value)
83
91
  );
92
+ const intersectionRects = computed(() => {
93
+ return subtractRectFromViewport(
94
+ ui.viewport.value,
95
+ ui.visibleViewport.value
96
+ ).map(rectToStyle);
97
+ });
84
98
  </script>
@@ -47,30 +47,26 @@
47
47
  <h2>Rendering</h2>
48
48
  <div class="bk-debug-list">
49
49
  <div v-for="overlay in debug.overlays.value" :key="overlay.id">
50
- <label class="bk-checkbox-toggle">
51
- <input
52
- :checked="overlay.active"
53
- type="checkbox"
54
- @change="debug.toggleOverlay(overlay.id)"
55
- />
56
- <div class="bk-checkbox-toggle-toggle" />
57
- <div class="bk-checkbox-toggle-label">
58
- <div>{{ overlay.label }}</div>
59
- </div>
60
- </label>
50
+ <FormToggle
51
+ :label="overlay.label"
52
+ :model-value="overlay.active"
53
+ @update:model-value="debug.toggleOverlay(overlay.id)"
54
+ />
61
55
  </div>
62
56
  <div>
63
- <label class="bk-checkbox-toggle">
64
- <input
65
- :checked="ui.isTransforming.value"
66
- type="checkbox"
67
- @change="toggleTransforming"
68
- />
69
- <div class="bk-checkbox-toggle-toggle" />
70
- <div class="bk-checkbox-toggle-label">
71
- <div>Set transforming</div>
72
- </div>
73
- </label>
57
+ <FormToggle
58
+ label="Set transforming"
59
+ :model-value="ui.isTransforming.value"
60
+ @update:model-value="toggleTransforming"
61
+ />
62
+ </div>
63
+
64
+ <div>
65
+ <FormToggle
66
+ label="Enable WebGL"
67
+ :model-value="animation.webglEnabled.value"
68
+ @update:model-value="toggleWebgl"
69
+ />
74
70
  </div>
75
71
  </div>
76
72
  </section>
@@ -124,7 +120,7 @@ import {
124
120
  computed
125
121
  } from "#imports";
126
122
  import { PluginSidebar, PluginDebugOverlay } from "#blokkli/plugins";
127
- import { Icon } from "#blokkli/components";
123
+ import { Icon, FormToggle } from "#blokkli/components";
128
124
  import { icons } from "#blokkli-build/icons";
129
125
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
130
126
  import DebugViewport from "./Viewport/index.vue";
@@ -135,7 +131,7 @@ const { logger } = defineBlokkliFeature({
135
131
  icon: "bug",
136
132
  description: "Provides debugging functionality."
137
133
  });
138
- const { keyboard, selection, eventBus, features, debug, ui } = useBlokkli();
134
+ const { keyboard, selection, eventBus, features, debug, ui, animation } = useBlokkli();
139
135
  const iconItems = computed(() => Object.keys(icons));
140
136
  const featuresList = computed(() => {
141
137
  return features.features.value.map((v) => {
@@ -171,6 +167,13 @@ function toggleTransforming() {
171
167
  ui.setTransform("Transform plugin label");
172
168
  }
173
169
  }
170
+ function toggleWebgl() {
171
+ if (animation.webglEnabled.value) {
172
+ animation.webglEnabled.value = false;
173
+ } else {
174
+ animation.webglEnabled.value = true;
175
+ }
176
+ }
174
177
  onMounted(() => {
175
178
  eventBus.on("*", onEvent);
176
179
  });