@blokkli/editor 2.0.0-alpha.2 → 2.0.0-alpha.21

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 (428) hide show
  1. package/dist/module.d.mts +1 -1
  2. package/dist/module.json +5 -5
  3. package/dist/module.mjs +5549 -1269
  4. package/dist/modules/drupal/graphql/base/fragment.ParagraphsBlokkliConfigInput.graphql +31 -0
  5. package/dist/modules/drupal/graphql/base/fragment.blokkliProps.graphql +9 -0
  6. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +5 -0
  7. package/dist/modules/drupal/graphql/base/fragment.paragraphsFieldItem.graphql +9 -0
  8. package/dist/modules/drupal/graphql/base/query.pbConfig.graphql +1 -10
  9. package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
  10. package/dist/modules/drupal/graphql/features/comments.graphql +11 -8
  11. package/dist/modules/drupal/graphql/features/publishNew.graphql +1 -4
  12. package/dist/modules/drupal/graphql/features/scheduler.graphql +31 -0
  13. package/dist/modules/drupal/graphql/features/transform.graphql +9 -1
  14. package/dist/modules/drupal/graphql/features/transform_host.graphql +38 -0
  15. package/dist/modules/drupal/graphql/mutations/set_paragraph_schedule.graphql +15 -0
  16. package/dist/modules/drupal/graphql/mutations/update_host_options.graphql +15 -0
  17. package/dist/modules/drupal/index.d.mts +1 -1
  18. package/dist/modules/drupal/index.mjs +79 -9
  19. package/dist/modules/drupal/runtime/adapter/index.d.ts +3 -0
  20. package/dist/modules/drupal/{adapter/index.mjs → runtime/adapter/index.js} +166 -20
  21. package/dist/runtime/adapter/index.d.ts +111 -1
  22. package/dist/runtime/blokkliPlugins/AddAction/index.vue +27 -3
  23. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue +65 -0
  24. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +26 -0
  25. package/dist/runtime/blokkliPlugins/ContextMenu/Menu/index.vue +6 -0
  26. package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
  27. package/dist/runtime/blokkliPlugins/ContextMenu/index.vue.d.ts +2 -19
  28. package/dist/runtime/blokkliPlugins/DebugOverlay/index.vue.d.ts +2 -7
  29. package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
  30. package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue.d.ts +2 -19
  31. package/dist/runtime/blokkliPlugins/ItemAction/index.vue +23 -15
  32. package/dist/runtime/blokkliPlugins/ItemAction/index.vue.d.ts +21 -44
  33. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue +49 -11
  34. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue.d.ts +29 -15
  35. package/dist/runtime/blokkliPlugins/MenuButton/index.vue.d.ts +3 -3
  36. package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
  37. package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue.d.ts +2 -51
  38. package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
  39. package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +15 -9
  40. package/dist/runtime/blokkliPlugins/ToolbarButton/index.vue.d.ts +1 -1
  41. package/dist/runtime/blokkliPlugins/TourItem/index.vue +10 -5
  42. package/dist/runtime/blokkliPlugins/TourItem/index.vue.d.ts +2 -4
  43. package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -3
  44. package/dist/runtime/blokkliPlugins/ViewOption/index.vue.d.ts +4 -3
  45. package/dist/runtime/blokkliPlugins/index.d.ts +8 -7
  46. package/dist/runtime/blokkliPlugins/index.js +15 -13
  47. package/dist/runtime/components/Blocks/Fragment/icon.svg +1 -1
  48. package/dist/runtime/components/Blocks/FromLibrary/index.vue +4 -2
  49. package/dist/runtime/components/BlokkliEditable.vue +34 -16
  50. package/dist/runtime/components/BlokkliEditable.vue.d.ts +2 -1
  51. package/dist/runtime/components/BlokkliField.vue +31 -27
  52. package/dist/runtime/components/BlokkliField.vue.d.ts +61 -17
  53. package/dist/runtime/components/BlokkliItem.vue +2 -2
  54. package/dist/runtime/components/BlokkliItem.vue.d.ts +4 -2
  55. package/dist/runtime/components/BlokkliProvider.vue +60 -45
  56. package/dist/runtime/components/BlokkliProvider.vue.d.ts +45 -7
  57. package/dist/runtime/components/Edit/Actions/index.vue +69 -78
  58. package/dist/runtime/components/Edit/AddListItem/index.vue +2 -5
  59. package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +1 -1
  60. package/dist/runtime/components/Edit/AddListItemIcon/index.vue +19 -0
  61. package/dist/runtime/components/Edit/AddListItemIcon/index.vue.d.ts +15 -0
  62. package/dist/runtime/components/Edit/AnimationCanvas/index.vue +436 -25
  63. package/dist/runtime/components/Edit/AppMenu/index.vue +5 -5
  64. package/dist/runtime/components/Edit/ArtboardTooltip/index.vue +83 -0
  65. package/dist/runtime/components/Edit/ArtboardTooltip/index.vue.d.ts +32 -0
  66. package/dist/runtime/components/Edit/Banner/index.vue +51 -0
  67. package/dist/runtime/components/Edit/Banner/index.vue.d.ts +18 -0
  68. package/dist/runtime/components/Edit/BlockProxy/index.vue +3 -1
  69. package/dist/runtime/components/Edit/BlokkliErrorBoundary.vue.d.ts +2 -13
  70. package/dist/runtime/components/Edit/Dialog/index.vue +14 -5
  71. package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +4 -2
  72. package/dist/runtime/components/Edit/DiffViewer/State.vue +276 -0
  73. package/dist/runtime/components/Edit/DiffViewer/State.vue.d.ts +16 -0
  74. package/dist/runtime/components/Edit/DraggableList.vue +20 -50
  75. package/dist/runtime/components/Edit/DraggableList.vue.d.ts +7 -7
  76. package/dist/runtime/components/Edit/EditIndicator.vue +118 -44
  77. package/dist/runtime/components/Edit/EditIndicator.vue.d.ts +3 -0
  78. package/dist/runtime/components/Edit/EditProvider.vue +192 -80
  79. package/dist/runtime/components/Edit/EditProvider.vue.d.ts +3 -0
  80. package/dist/runtime/components/Edit/Features/AddList/index.vue +24 -36
  81. package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
  82. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +170 -0
  83. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue.d.ts +9 -0
  84. package/dist/runtime/components/Edit/Features/Analyze/Overlay/vertex.glsl +72 -0
  85. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue +159 -0
  86. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue.d.ts +7 -0
  87. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +100 -0
  88. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +6 -0
  89. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +56 -0
  90. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +3 -0
  91. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +87 -0
  92. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +7 -0
  93. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +105 -0
  94. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +8 -0
  95. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue +18 -0
  96. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue.d.ts +8 -0
  97. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +92 -0
  98. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue.d.ts +17 -0
  99. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue +77 -0
  100. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue.d.ts +6 -0
  101. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.d.ts +12 -0
  102. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +75 -0
  103. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.d.ts +4 -0
  104. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.js +5 -0
  105. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +32 -0
  106. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +45 -0
  107. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.d.ts +5 -0
  108. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.js +95 -0
  109. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.d.ts +3 -0
  110. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.js +13 -0
  111. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.d.ts +2 -0
  112. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.js +2 -0
  113. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.d.ts +2 -0
  114. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +165 -0
  115. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +44 -0
  116. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.js +0 -0
  117. package/dist/runtime/components/Edit/Features/Analyze/helper.d.ts +5 -0
  118. package/dist/runtime/components/Edit/Features/Analyze/helper.js +28 -0
  119. package/dist/runtime/components/Edit/Features/Analyze/index.vue +44 -0
  120. package/dist/runtime/components/Edit/Features/Anchors/Renderer.vue +53 -0
  121. package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
  122. package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
  123. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +299 -0
  124. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
  125. package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -217
  126. package/dist/runtime/components/Edit/Features/Assistant/index.vue +5 -3
  127. package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +33 -57
  128. package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/ScheduleSection.vue +154 -0
  129. package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/ScheduleSection.vue.d.ts +27 -0
  130. package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/index.vue +222 -0
  131. package/dist/runtime/components/Edit/Features/BlockScheduler/Dialog/index.vue.d.ts +11 -0
  132. package/dist/runtime/components/Edit/Features/BlockScheduler/index.vue +96 -0
  133. package/dist/runtime/components/Edit/Features/BlockScheduler/index.vue.d.ts +2 -0
  134. package/dist/runtime/components/Edit/Features/Clipboard/index.vue +177 -46
  135. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Item/index.vue +51 -0
  136. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Item/index.vue.d.ts +17 -0
  137. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +48 -117
  138. package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +5 -2
  139. package/dist/runtime/components/Edit/Features/Comments/AddForm/index.vue +35 -20
  140. package/dist/runtime/components/Edit/Features/Comments/AddForm/index.vue.d.ts +5 -3
  141. package/dist/runtime/components/Edit/Features/Comments/CommentInput/index.vue +29 -0
  142. package/dist/runtime/components/Edit/Features/Comments/CommentInput/index.vue.d.ts +13 -0
  143. package/dist/runtime/components/Edit/Features/Comments/Overlay/Item/index.vue +22 -16
  144. package/dist/runtime/components/Edit/Features/Comments/Overlay/Item/index.vue.d.ts +1 -0
  145. package/dist/runtime/components/Edit/Features/Comments/Overlay/index.vue +15 -6
  146. package/dist/runtime/components/Edit/Features/Comments/index.vue +21 -9
  147. package/dist/runtime/components/Edit/Features/Conversions/index.vue +16 -21
  148. package/dist/runtime/components/Edit/Features/Debug/Rects/index.vue +26 -35
  149. package/dist/runtime/components/Edit/Features/Debug/Renderer.vue +240 -0
  150. package/dist/runtime/components/Edit/Features/Debug/Renderer.vue.d.ts +6 -0
  151. package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
  152. package/dist/runtime/components/Edit/Features/Debug/index.vue +7 -162
  153. package/dist/runtime/components/Edit/Features/Delete/index.vue +1 -1
  154. package/dist/runtime/components/Edit/Features/Diff/DiffView/index.vue +13 -190
  155. package/dist/runtime/components/Edit/Features/Diff/index.vue +2 -2
  156. package/dist/runtime/components/Edit/Features/DraggingOverlay/DragItems/index.vue +18 -10
  157. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +8 -2
  158. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +111 -121
  159. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue.d.ts +3 -132
  160. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +2 -1
  161. package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +87 -61
  162. package/dist/runtime/components/Edit/Features/Duplicate/index.vue +6 -8
  163. package/dist/runtime/components/Edit/Features/Edit/index.vue +16 -22
  164. package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
  165. package/dist/runtime/components/Edit/Features/EditForm/index.vue +10 -9
  166. package/dist/runtime/components/Edit/Features/EditableField/Overlay/Frame/index.vue +69 -4
  167. package/dist/runtime/components/Edit/Features/EditableField/Overlay/Frame/index.vue.d.ts +2 -2
  168. package/dist/runtime/components/Edit/Features/EditableField/Overlay/Plaintext/index.vue +13 -9
  169. package/dist/runtime/components/Edit/Features/EditableField/Overlay/index.vue +45 -87
  170. package/dist/runtime/components/Edit/Features/EditableField/Overlay/index.vue.d.ts +2 -2
  171. package/dist/runtime/components/Edit/Features/EditableField/index.vue +45 -43
  172. package/dist/runtime/components/Edit/Features/EditableMask/index.vue +3 -20
  173. package/dist/runtime/components/Edit/Features/EntityTitle/index.vue +33 -1
  174. package/dist/runtime/components/Edit/Features/Fragments/Dialog/index.vue +11 -9
  175. package/dist/runtime/components/Edit/Features/Fragments/index.vue +8 -6
  176. package/dist/runtime/components/Edit/Features/History/index.vue +39 -13
  177. package/dist/runtime/components/Edit/Features/Hover/Overlay/fragment.glsl +139 -0
  178. package/dist/runtime/components/Edit/Features/Hover/Overlay/index.vue +261 -0
  179. package/dist/runtime/components/Edit/Features/Hover/Overlay/index.vue.d.ts +6 -0
  180. package/dist/runtime/components/Edit/Features/Hover/Overlay/vertex.glsl +117 -0
  181. package/dist/runtime/components/Edit/Features/Hover/index.vue +25 -0
  182. package/dist/runtime/components/Edit/Features/Hover/index.vue.d.ts +2 -0
  183. package/dist/runtime/components/Edit/Features/ImportExisting/Dialog/index.vue +6 -2
  184. package/dist/runtime/components/Edit/Features/ImportExisting/index.vue +3 -2
  185. package/dist/runtime/components/Edit/Features/Library/EditReusable/index.vue +5 -7
  186. package/dist/runtime/components/Edit/Features/Library/LibraryDialog/index.vue +19 -27
  187. package/dist/runtime/components/Edit/Features/Library/ReusableDialog/index.vue +32 -28
  188. package/dist/runtime/components/Edit/Features/Library/index.vue +40 -32
  189. package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +11 -11
  190. package/dist/runtime/components/Edit/Features/MediaLibrary/index.vue +15 -12
  191. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
  192. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +44 -32
  193. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
  194. package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +10 -18
  195. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue +3 -2
  196. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue.d.ts +2 -0
  197. package/dist/runtime/components/Edit/Features/Options/Form/Group.vue.d.ts +2 -11
  198. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue +14 -3
  199. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +0 -1
  200. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue +37 -19
  201. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue.d.ts +8 -2
  202. package/dist/runtime/components/Edit/Features/Options/Form/index.vue +88 -42
  203. package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
  204. package/dist/runtime/components/Edit/Features/Options/index.vue +35 -11
  205. package/dist/runtime/components/Edit/Features/Ownership/Renderer.vue +35 -0
  206. package/dist/runtime/components/Edit/Features/Ownership/Renderer.vue.d.ts +6 -0
  207. package/dist/runtime/components/Edit/Features/Ownership/index.vue +7 -25
  208. package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
  209. package/dist/runtime/components/Edit/Features/ProxyView/index.vue +5 -1
  210. package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue +41 -14
  211. package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue.d.ts +2 -0
  212. package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue +47 -0
  213. package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue.d.ts +19 -0
  214. package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue +83 -0
  215. package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue.d.ts +9 -0
  216. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +439 -123
  217. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue.d.ts +3 -14
  218. package/dist/runtime/components/Edit/Features/Publish/index.vue +57 -24
  219. package/dist/runtime/components/Edit/Features/ResponsivePreview/Frame/index.vue.d.ts +2 -13
  220. package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
  221. package/dist/runtime/components/Edit/Features/Search/Overlay/Results/Page/index.vue +15 -15
  222. package/dist/runtime/components/Edit/Features/Search/index.vue +7 -3
  223. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +85 -0
  224. package/dist/runtime/components/Edit/Features/{CommandPalette/Palette/Group → Selection/AddButtons/Overlay}/index.vue.d.ts +8 -13
  225. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/fragment.glsl +106 -0
  226. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/index.vue +440 -0
  227. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/index.vue.d.ts +32 -0
  228. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Renderer/vertex.glsl +102 -0
  229. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +387 -0
  230. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue.d.ts +6 -0
  231. package/dist/runtime/components/Edit/Features/Selection/Overlay/fragment.glsl +15 -10
  232. package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +105 -25
  233. package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue.d.ts +5 -3
  234. package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +12 -3
  235. package/dist/runtime/components/Edit/Features/Selection/OverlayFallback/index.vue +2 -2
  236. package/dist/runtime/components/Edit/Features/Selection/index.vue +135 -25
  237. package/dist/runtime/components/Edit/Features/Settings/Dialog/FeatureSetting/index.vue +12 -17
  238. package/dist/runtime/components/Edit/Features/Settings/index.vue +11 -25
  239. package/dist/runtime/components/Edit/Features/Structure/List/Field/index.vue +2 -2
  240. package/dist/runtime/components/Edit/Features/Structure/List/Item/index.vue +13 -6
  241. package/dist/runtime/components/Edit/Features/Theme/Color/index.vue +5 -1
  242. package/dist/runtime/components/Edit/Features/Theme/index.vue +2 -1
  243. package/dist/runtime/components/Edit/Features/TouchActionBar/index.vue +3 -2
  244. package/dist/runtime/components/Edit/Features/Tour/Overlay/index.vue +3 -0
  245. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +198 -0
  246. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue.d.ts +13 -0
  247. package/dist/runtime/components/Edit/Features/Transform/index.vue +156 -70
  248. package/dist/runtime/components/Edit/Features/Translations/Banner/index.vue +17 -11
  249. package/dist/runtime/components/Edit/Features/Translations/index.vue +20 -23
  250. package/dist/runtime/components/Edit/Features/Validations/SidebarItem/index.vue +5 -5
  251. package/dist/runtime/components/Edit/Features/index.vue +17 -7
  252. package/dist/runtime/components/Edit/Form/Datepicker/index.vue +198 -0
  253. package/dist/runtime/components/Edit/Form/Datepicker/index.vue.d.ts +15 -0
  254. package/dist/runtime/components/Edit/Form/Group/index.vue.d.ts +2 -4
  255. package/dist/runtime/components/Edit/Form/Item/index.vue.d.ts +2 -4
  256. package/dist/runtime/components/Edit/Form/Radio/index.vue +33 -0
  257. package/dist/runtime/components/Edit/Form/Radio/index.vue.d.ts +20 -0
  258. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue +37 -0
  259. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue.d.ts +22 -0
  260. package/dist/runtime/components/Edit/Form/Select/index.vue +29 -0
  261. package/dist/runtime/components/Edit/Form/Select/index.vue.d.ts +20 -0
  262. package/dist/runtime/components/Edit/Form/Text/index.vue +34 -0
  263. package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +20 -0
  264. package/dist/runtime/components/Edit/Form/Textarea/index.vue +13 -6
  265. package/dist/runtime/components/Edit/Form/Textarea/index.vue.d.ts +4 -0
  266. package/dist/runtime/components/Edit/Form/Toggle/index.vue +4 -3
  267. package/dist/runtime/components/Edit/Form/Toggle/index.vue.d.ts +12 -2
  268. package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
  269. package/dist/runtime/components/Edit/FormOverlay/index.vue.d.ts +3 -2
  270. package/dist/runtime/components/Edit/Indicators/index.vue +123 -0
  271. package/dist/runtime/components/Edit/Indicators/index.vue.d.ts +2 -0
  272. package/dist/runtime/components/Edit/InfoBox/index.vue +6 -2
  273. package/dist/runtime/components/Edit/InfoBox/index.vue.d.ts +12 -2
  274. package/dist/runtime/components/Edit/ItemIcon/index.vue +2 -1
  275. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue +66 -0
  276. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue.d.ts +7 -0
  277. package/dist/runtime/components/Edit/Konami/Game/blokkli.png +0 -0
  278. package/dist/runtime/components/Edit/Konami/Game/charmap.d.ts +2 -0
  279. package/dist/runtime/components/Edit/Konami/Game/charmap.js +168 -0
  280. package/dist/runtime/components/Edit/Konami/Game/index.vue +752 -0
  281. package/dist/runtime/components/Edit/Konami/Game/index.vue.d.ts +6 -0
  282. package/dist/runtime/components/Edit/Konami/Game/textRendering.d.ts +8 -0
  283. package/dist/runtime/components/Edit/Konami/Game/textRendering.js +138 -0
  284. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.d.ts +9 -0
  285. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.js +130 -0
  286. package/dist/runtime/components/Edit/Konami/index.vue +44 -0
  287. package/dist/runtime/components/Edit/Konami/index.vue.d.ts +2 -0
  288. package/dist/runtime/components/Edit/Loading/index.vue +6 -2
  289. package/dist/runtime/components/Edit/Loading/index.vue.d.ts +2 -0
  290. package/dist/runtime/components/Edit/Messages/index.vue +8 -3
  291. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue +17 -0
  292. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue.d.ts +11 -0
  293. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue +37 -0
  294. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue.d.ts +11 -0
  295. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue +43 -0
  296. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue.d.ts +11 -0
  297. package/dist/runtime/components/Edit/PluginConfigForm/index.vue +57 -0
  298. package/dist/runtime/components/Edit/PluginConfigForm/index.vue.d.ts +16 -0
  299. package/dist/runtime/components/Edit/PreviewProvider.vue +3 -4
  300. package/dist/runtime/components/Edit/RelativeTime/index.vue +3 -2
  301. package/dist/runtime/components/Edit/RelativeTime/index.vue.d.ts +2 -2
  302. package/dist/runtime/components/Edit/Resizable/index.vue.d.ts +1 -1
  303. package/dist/runtime/components/Edit/ScaleToFit/index.vue.d.ts +1 -1
  304. package/dist/runtime/components/Edit/ScheduleDate/index.vue +131 -0
  305. package/dist/runtime/components/Edit/ScheduleDate/index.vue.d.ts +23 -0
  306. package/dist/runtime/components/Edit/ScrollBoundary/index.vue.d.ts +2 -7
  307. package/dist/runtime/components/Edit/ShortcutIndicator/index.vue +11 -3
  308. package/dist/runtime/components/Edit/Sortli/index.vue.d.ts +1 -1
  309. package/dist/runtime/components/Edit/SystemRequirements/index.vue +3 -3
  310. package/dist/runtime/components/Edit/Toolbar/index.vue +3 -2
  311. package/dist/runtime/components/Edit/Transition/Height.vue +95 -0
  312. package/dist/runtime/components/Edit/Transition/Height.vue.d.ts +36 -0
  313. package/dist/runtime/components/Edit/Transition/index.vue +41 -0
  314. package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
  315. package/dist/runtime/components/Edit/ViewportBlockingRect/index.vue.d.ts +2 -7
  316. package/dist/runtime/components/Edit/index.d.ts +28 -15
  317. package/dist/runtime/components/Edit/index.js +54 -28
  318. package/dist/runtime/composables/defineBlokkli.js +16 -3
  319. package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
  320. package/dist/runtime/composables/defineBlokkliFragment.js +8 -1
  321. package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
  322. package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
  323. package/dist/runtime/composables/useBlokkliHelper.d.ts +19 -0
  324. package/dist/runtime/composables/useBlokkliHelper.js +95 -0
  325. package/dist/runtime/constants/index.d.ts +3 -0
  326. package/dist/runtime/constants/index.js +3 -0
  327. package/dist/runtime/css/output.css +1 -1
  328. package/dist/runtime/helpers/addElementClasses.d.ts +2 -0
  329. package/dist/runtime/helpers/addElementClasses.js +24 -0
  330. package/dist/runtime/helpers/animationProvider.d.ts +38 -2
  331. package/dist/runtime/helpers/animationProvider.js +188 -47
  332. package/dist/runtime/helpers/bundles/index.d.ts +1 -0
  333. package/dist/runtime/helpers/bundles/index.js +4 -0
  334. package/dist/runtime/helpers/composables/defineRenderer.d.ts +8 -0
  335. package/dist/runtime/helpers/composables/defineRenderer.js +8 -0
  336. package/dist/runtime/helpers/composables/useBlockRegistration.d.ts +5 -0
  337. package/dist/runtime/helpers/composables/useBlockRegistration.js +23 -0
  338. package/dist/runtime/helpers/composables/useDelayedIntersectionObserver.d.ts +1 -1
  339. package/dist/runtime/helpers/composables/useDelayedIntersectionObserver.js +3 -2
  340. package/dist/runtime/helpers/composables/useStateBasedCache.d.ts +4 -0
  341. package/dist/runtime/helpers/composables/useStateBasedCache.js +13 -0
  342. package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +23 -0
  343. package/dist/runtime/helpers/composables/useStickyToolbar.js +233 -0
  344. package/dist/runtime/helpers/definitionProvider.d.ts +3 -2
  345. package/dist/runtime/helpers/definitionProvider.js +17 -0
  346. package/dist/runtime/helpers/dom/index.d.ts +60 -0
  347. package/dist/runtime/helpers/dom/index.js +48 -0
  348. package/dist/runtime/helpers/domProvider.d.ts +58 -17
  349. package/dist/runtime/helpers/domProvider.js +320 -245
  350. package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
  351. package/dist/runtime/helpers/dropTargets/index.js +49 -0
  352. package/dist/runtime/helpers/eventBus.d.ts +1 -1
  353. package/dist/runtime/helpers/eventBus.js +2 -2
  354. package/dist/runtime/helpers/index.d.ts +10 -14
  355. package/dist/runtime/helpers/index.js +58 -121
  356. package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
  357. package/dist/runtime/helpers/indicatorsProvider.js +23 -0
  358. package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
  359. package/dist/runtime/helpers/keyboardProvider.js +17 -1
  360. package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
  361. package/dist/runtime/helpers/pluginProvider.js +33 -0
  362. package/dist/runtime/helpers/providers/blocks.d.ts +10 -0
  363. package/dist/runtime/helpers/providers/blocks.js +91 -0
  364. package/dist/runtime/helpers/providers/directive.d.ts +25 -0
  365. package/dist/runtime/helpers/providers/directive.js +208 -0
  366. package/dist/runtime/helpers/providers/element.d.ts +6 -0
  367. package/dist/runtime/helpers/providers/element.js +35 -0
  368. package/dist/runtime/helpers/providers/fields.d.ts +8 -0
  369. package/dist/runtime/helpers/providers/fields.js +47 -0
  370. package/dist/runtime/helpers/renderCycle.d.ts +1 -0
  371. package/dist/runtime/helpers/renderCycle.js +10 -0
  372. package/dist/runtime/helpers/runtimeHelpers/index.js +15 -12
  373. package/dist/runtime/helpers/selectionProvider.d.ts +27 -11
  374. package/dist/runtime/helpers/selectionProvider.js +79 -74
  375. package/dist/runtime/helpers/stateProvider.d.ts +12 -2
  376. package/dist/runtime/helpers/stateProvider.js +164 -20
  377. package/dist/runtime/helpers/storageProvider.d.ts +5 -3
  378. package/dist/runtime/helpers/storageProvider.js +61 -4
  379. package/dist/runtime/helpers/symbols.d.ts +2 -0
  380. package/dist/runtime/helpers/symbols.js +2 -0
  381. package/dist/runtime/helpers/textProvider.js +6 -0
  382. package/dist/runtime/helpers/themeProvider.d.ts +4 -1
  383. package/dist/runtime/helpers/themeProvider.js +28 -15
  384. package/dist/runtime/helpers/transform.js +1 -3
  385. package/dist/runtime/helpers/typesProvider.js +10 -26
  386. package/dist/runtime/helpers/uiProvider.d.ts +18 -3
  387. package/dist/runtime/helpers/uiProvider.js +114 -61
  388. package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
  389. package/dist/runtime/helpers/useTransitionedValue.js +57 -0
  390. package/dist/runtime/helpers/webgl/index.d.ts +11 -2
  391. package/dist/runtime/helpers/webgl/index.js +162 -7
  392. package/dist/runtime/icons/anchor.svg +1 -0
  393. package/dist/runtime/icons/arrow-left.svg +1 -1
  394. package/dist/runtime/icons/arrow-right.svg +1 -1
  395. package/dist/runtime/icons/arrow-top-right.svg +1 -0
  396. package/dist/runtime/icons/calendar-clock.svg +1 -0
  397. package/dist/runtime/icons/calendar.svg +1 -0
  398. package/dist/runtime/icons/chart.svg +1 -0
  399. package/dist/runtime/icons/clock.svg +1 -0
  400. package/dist/runtime/icons/comment_add.svg +1 -5
  401. package/dist/runtime/icons/copy.svg +1 -0
  402. package/dist/runtime/icons/cursor-move.svg +1 -1
  403. package/dist/runtime/icons/delete.svg +1 -8
  404. package/dist/runtime/icons/diff.svg +1 -1
  405. package/dist/runtime/icons/duplicate.svg +1 -12
  406. package/dist/runtime/icons/edit.svg +1 -8
  407. package/dist/runtime/icons/eye-off.svg +1 -0
  408. package/dist/runtime/icons/eye.svg +1 -1
  409. package/dist/runtime/icons/info.svg +1 -1
  410. package/dist/runtime/icons/link.svg +1 -0
  411. package/dist/runtime/icons/reusable.svg +1 -5
  412. package/dist/runtime/icons/speedometer.svg +1 -0
  413. package/dist/runtime/plugins/blokkliDirectives.js +109 -0
  414. package/dist/runtime/types/blokkOptions.d.ts +8 -0
  415. package/dist/runtime/types/index.d.ts +278 -42
  416. package/dist/runtime/types/theme.d.ts +2 -1
  417. package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
  418. package/package.json +55 -38
  419. package/dist/modules/drupal/adapter/index.d.mts +0 -6
  420. package/dist/runtime/components/Edit/DragInteractions/index.vue +0 -364
  421. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +0 -51
  422. package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
  423. package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
  424. package/dist/runtime/plugins/blokkliEditable.js +0 -31
  425. /package/dist/runtime/components/Edit/{DragInteractions → Features/Analyze}/index.vue.d.ts +0 -0
  426. /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
  427. /package/dist/runtime/components/Edit/Features/{FieldAreas → Anchors}/index.vue.d.ts +0 -0
  428. /package/dist/runtime/plugins/{blokkliEditable.d.ts → blokkliDirectives.d.ts} +0 -0
@@ -1,40 +1,43 @@
1
1
  <template>
2
2
  <div
3
+ ref="providerEl"
3
4
  :data-provider-uuid="entityUuid"
4
5
  :data-provider-entity-type="entityType"
5
6
  :data-provider-entity-bundle="entityBundle"
6
- :data-blokkli-provider-active="isInEditor || void 0"
7
+ :data-blokkli-provider-active="isInEditor ? 'true' : 'false'"
7
8
  >
8
9
  <BlokkliErrorBoundary v-if="isInEditor">
9
10
  <PreviewProvider
10
11
  v-if="isPreviewing"
11
12
  v-slot="{ mutatedEntity }"
12
- :entity="entity"
13
- :entity-type="entityType"
14
- :entity-uuid="entityUuid"
15
- :entity-bundle="entityBundle"
16
- :language="language"
13
+ :entity
14
+ :entity-type
15
+ :entity-uuid
16
+ :entity-bundle
17
+ :language
17
18
  >
18
19
  <slot
19
20
  :entity="mutatedEntity"
20
- :is-editing="isEditing"
21
- :can-edit="canEdit"
21
+ :is-editing
22
+ :can-edit
22
23
  :is-preview="isPreviewing"
23
24
  />
24
25
  </PreviewProvider>
25
26
  <EditProvider
26
- v-else-if="isEditing && shouldRender"
27
+ v-else-if="isEditing && shouldRender && providerEl"
27
28
  v-slot="{ mutatedEntity }"
28
- :entity="entity"
29
- :entity-type="entityType"
30
- :entity-uuid="entityUuid"
31
- :entity-bundle="entityBundle"
32
- :language="language"
33
- :isolate="isolate"
29
+ :provider-el
30
+ :entity
31
+ :entity-type
32
+ :entity-uuid
33
+ :entity-bundle
34
+ :language
35
+ :isolate
36
+ :permissions
34
37
  >
35
38
  <slot
36
- :is-editing="isEditing"
37
- :can-edit="canEdit"
39
+ :is-editing
40
+ :can-edit
38
41
  :is-preview="isPreviewing"
39
42
  :entity="mutatedEntity"
40
43
  />
@@ -43,18 +46,22 @@
43
46
 
44
47
  <slot
45
48
  v-else
46
- :is-editing="isEditing"
47
- :can-edit="canEdit"
49
+ :is-editing
50
+ :can-edit
48
51
  :is-preview="isPreviewing"
49
52
  :entity="entity"
50
53
  />
51
54
 
52
- <EditIndicator
53
- v-if="showIndicator"
54
- :uuid="entityUuid"
55
- :edit-label="editLabel"
56
- @edit="edit"
57
- />
55
+ <ClientOnly>
56
+ <EditIndicator
57
+ v-if="showIndicator"
58
+ :uuid="entityUuid"
59
+ :entity-type
60
+ :edit-label
61
+ :permissions
62
+ @edit="edit"
63
+ />
64
+ </ClientOnly>
58
65
  </div>
59
66
  </template>
60
67
 
@@ -66,13 +73,28 @@ import {
66
73
  useRouter,
67
74
  provide,
68
75
  ref,
69
- onMounted
76
+ onMounted,
77
+ useTemplateRef
70
78
  } from "#imports";
71
79
  import {
72
80
  INJECT_ENTITY_CONTEXT,
73
81
  INJECT_PROVIDER_CONTEXT
74
82
  } from "../helpers/symbols";
83
+ const props = defineProps({
84
+ entityType: { type: String, required: true },
85
+ entityBundle: { type: String, required: true },
86
+ entityUuid: { type: String, required: true },
87
+ tag: { type: String, required: false, default: "div" },
88
+ language: { type: String, required: false, default: "" },
89
+ editLabel: { type: String, required: false, default: "" },
90
+ editPath: { type: String, required: false, default: void 0 },
91
+ hostOptions: { type: Object, required: false, default: void 0 },
92
+ permissions: { type: Array, required: false, default: () => [] },
93
+ isolate: { type: Boolean, required: false },
94
+ entity: { type: null, required: false, default: void 0 }
95
+ });
75
96
  defineSlots();
97
+ const providerEl = useTemplateRef("providerEl");
76
98
  const PreviewProvider = defineAsyncComponent(
77
99
  () => import("./Edit/PreviewProvider.vue")
78
100
  );
@@ -87,30 +109,20 @@ const EditIndicator = defineAsyncComponent(
87
109
  );
88
110
  const route = useRoute();
89
111
  const router = useRouter();
90
- const props = defineProps({
91
- entity: { type: null, required: false, default: void 0 },
92
- entityType: { type: String, required: true },
93
- entityBundle: { type: String, required: true },
94
- entityUuid: { type: String, required: true },
95
- canEdit: { type: Boolean, required: true },
96
- tag: { type: String, required: false, default: "div" },
97
- language: { type: String, required: false, default: "" },
98
- editLabel: { type: String, required: false, default: "" },
99
- editPath: { type: String, required: false, default: void 0 },
100
- isolate: { type: Boolean, required: false }
101
- });
102
112
  const shouldRender = ref(false);
103
113
  const isInEditor = computed(
104
114
  () => props.entityUuid && props.entityType && props.entityBundle && (isPreviewing.value || isEditing.value)
105
115
  );
116
+ const canEdit = computed(() => props.permissions.includes("edit"));
117
+ const canUseBlokkli = computed(() => !!props.permissions.length);
106
118
  const isEditing = computed(
107
- () => props.canEdit && !!props.entityUuid && route.query.blokkliEditing === props.entityUuid
119
+ () => canUseBlokkli.value && !!props.entityUuid && route.query.blokkliEditing === props.entityUuid
108
120
  );
109
121
  const isPreviewing = computed(
110
122
  () => !!props.entityUuid && route.query.blokkliPreview === props.entityUuid
111
123
  );
112
124
  const showIndicator = computed(
113
- () => props.canEdit && !route.query.blokkliEditing && !route.query.blokkliPreview
125
+ () => !!props.permissions.length && !route.query.blokkliEditing && !route.query.blokkliPreview
114
126
  );
115
127
  function edit() {
116
128
  router.push({
@@ -131,12 +143,15 @@ const blokkliProviderEntityContext = computed(
131
143
  };
132
144
  }
133
145
  );
134
- provide(INJECT_PROVIDER_CONTEXT, blokkliProviderEntityContext);
135
- provide(INJECT_ENTITY_CONTEXT, {
136
- uuid: props.entityUuid,
137
- type: props.entityType,
138
- bundle: props.entityBundle
146
+ const entityContext = computed(() => {
147
+ return {
148
+ uuid: props.entityUuid,
149
+ type: props.entityType,
150
+ bundle: props.entityBundle
151
+ };
139
152
  });
153
+ provide(INJECT_PROVIDER_CONTEXT, blokkliProviderEntityContext);
154
+ provide(INJECT_ENTITY_CONTEXT, entityContext.value);
140
155
  onMounted(() => {
141
156
  shouldRender.value = true;
142
157
  });
@@ -1,19 +1,57 @@
1
- declare const _default: <T extends object>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & {
3
- entity?: T;
1
+ import type { EditPermission } from '#blokkli/types';
2
+ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & ({
4
+ /**
5
+ * The entity type.
6
+ */
4
7
  entityType: string;
8
+ /**
9
+ * The entity bundle.
10
+ */
5
11
  entityBundle: string;
12
+ /**
13
+ * The entity UUID.
14
+ */
6
15
  entityUuid: string;
7
- canEdit: boolean;
16
+ /**
17
+ * The tag to use for the root element.
18
+ */
8
19
  tag?: string;
20
+ /**
21
+ * The current language code.
22
+ */
9
23
  language?: string;
24
+ /**
25
+ * The override label for the edit button.
26
+ */
10
27
  editLabel?: string;
28
+ /**
29
+ * The path to use to open the editor. Defaults to the current route.path value.
30
+ */
11
31
  editPath?: string;
12
32
  /**
13
- * When set to true, during editing, everything except the provider element will be hidden.
33
+ * The host options as a key value object.
34
+ */
35
+ hostOptions?: Record<string, any>;
36
+ /**
37
+ * The edit permissions.
38
+ */
39
+ permissions?: EditPermission[];
40
+ /**
41
+ * Whether to isolate the provider element during editing.
14
42
  */
15
43
  isolate?: boolean;
16
- } & Partial<{}>> & import("vue").PublicProps;
44
+ } & ({
45
+ /**
46
+ * The entity data. Will be merged with the mutatedEntity data during editing.
47
+ */
48
+ entity: T;
49
+ } | {
50
+ /**
51
+ * The entity data. Will be merged with the mutatedEntity data during editing.
52
+ */
53
+ entity?: never;
54
+ })) & Partial<{}>> & import("vue").PublicProps;
17
55
  expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
18
56
  attrs: any;
19
57
  slots: {
@@ -21,7 +59,7 @@ declare const _default: <T extends object>(__VLS_props: NonNullable<Awaited<type
21
59
  isEditing: boolean;
22
60
  canEdit: boolean;
23
61
  isPreview: boolean;
24
- entity?: T | undefined;
62
+ entity: T;
25
63
  }): any;
26
64
  };
27
65
  emit: {};
@@ -3,7 +3,7 @@
3
3
  <div class="bk bk-blokkli-item-actions bk-control" @click.stop>
4
4
  <div
5
5
  v-show="
6
- selection.blocks.value.length && !selection.isDragging.value && !selection.editableActive.value && !ui.isAnimating.value
6
+ !selection.isDragging.value && !selection.editableActive.value && !ui.isAnimating.value && !ui.hasTransformOverlayOpen.value && hasAnythingSelected && shouldRender && !ui.hasTooltipOpen.value
7
7
  "
8
8
  ref="el"
9
9
  class="bk-blokkli-item-actions-inner"
@@ -20,7 +20,6 @@
20
20
  <button
21
21
  class="bk-blokkli-item-actions-type-button"
22
22
  :disabled="!shouldRenderButton"
23
- :title="title"
24
23
  :class="{
25
24
  'is-open': showDropdown,
26
25
  'is-interactive': shouldRenderButton,
@@ -29,18 +28,35 @@
29
28
  }"
30
29
  @click.prevent="showDropdown = !showDropdown"
31
30
  >
32
- <div class="bk-blokkli-item-actions-title-icon">
31
+ <div v-if="shouldRenderButton" class="bk-tooltip">
32
+ {{ $t("actionsDropdownToolip", "Further actions") }}
33
+ </div>
34
+ <div
35
+ v-show="!hasSelectedHost"
36
+ class="bk-blokkli-item-actions-title-icon"
37
+ >
33
38
  <Icon v-if="ui.isTransforming.value" name="loader" />
34
39
  <ItemIcon v-else-if="bundleIcon" :bundle="bundleIcon" />
35
40
  <Icon v-else name="selection" />
41
+ <div
42
+ v-if="itemBundle?.id === 'from_library'"
43
+ class="bk-blokkli-item-actions-title-icon-reusable"
44
+ >
45
+ <Icon name="reusable" />
46
+ </div>
36
47
  </div>
37
48
  <span class="bk-blokkli-item-actions-title-label">{{
38
49
  title
39
50
  }}</span>
40
51
  <span
41
- v-if="selection.blocks.value.length > 1"
52
+ v-if="selection.items.value.length > 1"
42
53
  class="bk-blokkli-item-actions-title-count"
43
- >{{ selection.blocks.value.length }}</span
54
+ >{{ selection.items.value.length }}</span
55
+ >
56
+ <span
57
+ v-show="selectedIsNew"
58
+ class="bk-blokkli-item-actions-title-pill"
59
+ >{{ $t("selectedIsNew", "New") }}</span
44
60
  >
45
61
  <Icon v-if="shouldRenderButton" name="caret" class="bk-caret" />
46
62
  </button>
@@ -51,9 +67,8 @@
51
67
  />
52
68
  </div>
53
69
 
54
- <div id="bk-blokkli-item-actions-after" />
55
-
56
70
  <div
71
+ v-show="!selection.hasHostSelected.value"
57
72
  id="bk-blokkli-item-actions"
58
73
  class="bk-blokkli-item-actions-buttons"
59
74
  />
@@ -70,37 +85,58 @@ import {
70
85
  computed,
71
86
  useBlokkli,
72
87
  onMounted,
73
- onBeforeUnmount
88
+ onBeforeUnmount,
89
+ useTemplateRef
74
90
  } from "#imports";
75
- import { onlyUnique, findIdealRectPosition, falsy } from "#blokkli/helpers";
91
+ import { falsy } from "#blokkli/helpers";
76
92
  import { ItemIcon, Icon } from "#blokkli/components";
77
93
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
78
- const { selection, $t, types, state, ui, dom, definitions } = useBlokkli();
94
+ import useStickyToolbar from "#blokkli/helpers/composables/useStickyToolbar";
95
+ const { selection, $t, types, state, ui, definitions, debug } = useBlokkli();
79
96
  const editingEnabled = computed(
80
97
  () => state.editMode.value === "editing" || state.editMode.value === "translating"
81
98
  );
82
99
  const ACTIONS_HEIGHT = 52;
83
- const el = ref(null);
100
+ let scrollWidth = 0;
101
+ const el = useTemplateRef("el");
102
+ const { shouldRender } = useStickyToolbar(el, {
103
+ getPlacementY: () => "top",
104
+ shouldUpdate: () => !selection.isChangingOptions.value,
105
+ getHeight: () => ACTIONS_HEIGHT,
106
+ getWidth: () => scrollWidth,
107
+ getMargin: () => 20,
108
+ allowHorizontalOverflow: true
109
+ });
84
110
  const controlsEl = ref(null);
85
111
  const mountedPlugins = ref([]);
86
112
  const showDropdown = ref(false);
87
- watch(selection.blocks, () => {
113
+ const hasAnythingSelected = computed(
114
+ () => selection.hasHostSelected.value || !!selection.items.value.length
115
+ );
116
+ watch(selection.items, () => {
117
+ showDropdown.value = false;
118
+ });
119
+ watch(selection.hasHostSelected, () => {
88
120
  showDropdown.value = false;
89
121
  });
90
122
  const bundleIcon = computed(() => {
91
123
  if (itemBundle.value?.id === "from_library") {
92
- const reusableBundle = selection.blocks.value[0]?.reusableBundle;
124
+ const reusableBundle = selection.items.value[0]?.library?.reusableBundle;
93
125
  if (reusableBundle) {
94
126
  return reusableBundle;
95
127
  }
96
128
  }
97
129
  return itemBundle.value?.id;
98
130
  });
131
+ const hasSelectedHost = computed(() => {
132
+ return selection.items.value.length === 0;
133
+ });
99
134
  const title = computed(() => {
100
135
  if (ui.transformLabel.value) {
101
136
  return ui.transformLabel.value;
102
- }
103
- if (itemBundle.value) {
137
+ } else if (debug.isEnabled.value && selection.uuids.value.length === 1) {
138
+ return selection.uuids.value[0];
139
+ } else if (itemBundle.value) {
104
140
  if (itemBundle.value.id === "blokkli_fragment") {
105
141
  const fragments = selection.uuids.value.map((uuid) => {
106
142
  const item = state.getFieldListItem(uuid);
@@ -118,40 +154,34 @@ const title = computed(() => {
118
154
  return fragments.join(", ");
119
155
  }
120
156
  } else if (itemBundle.value.id === "from_library") {
121
- const title2 = selection.blocks.value[0]?.editTitle;
157
+ const title2 = selection.items.value[0]?.library?.label;
122
158
  if (title2) {
123
159
  return title2;
124
160
  }
125
161
  }
126
162
  return itemBundle.value.label;
163
+ } else if (!selection.items.value.length) {
164
+ return state.entity.value.label;
127
165
  }
128
166
  return $t("multipleItemsLabel", "Items");
129
167
  });
130
- const itemBundleIds = computed(
131
- () => selection.blocks.value.map((v) => v.itemBundle).filter(onlyUnique)
132
- );
168
+ const selectedIsNew = computed(() => {
169
+ if (selection.uuids.value.length !== 1) {
170
+ return false;
171
+ }
172
+ const uuid = selection.uuids.value[0];
173
+ if (!uuid) {
174
+ return false;
175
+ }
176
+ return !!state.getFieldListItem(uuid)?.editContext?.isNew;
177
+ });
133
178
  const itemBundle = computed(() => {
134
- if (itemBundleIds.value.length !== 1) {
179
+ if (selection.bundles.value.length !== 1) {
135
180
  return;
136
181
  }
137
- const bundle = itemBundleIds.value[0];
182
+ const bundle = selection.bundles.value[0];
138
183
  return types.getBlockBundleDefinition(bundle);
139
184
  });
140
- const limitPlacedRect = (rect, padding) => {
141
- return {
142
- width: rect.width,
143
- height: rect.height,
144
- x: Math.min(
145
- Math.max(rect.x, padding.x),
146
- padding.x + padding.width - rect.width
147
- ),
148
- y: Math.min(
149
- Math.max(padding.y, rect.y),
150
- padding.height + padding.y - rect.height
151
- )
152
- };
153
- };
154
- let scrollWidth = 0;
155
185
  const observer = new ResizeObserver((entries) => {
156
186
  const size = entries[0]?.contentBoxSize?.[0];
157
187
  if (!size) {
@@ -170,48 +200,6 @@ onBeforeUnmount(() => {
170
200
  observer.disconnect();
171
201
  }
172
202
  });
173
- onBlokkliEvent("canvas:draw", () => {
174
- if (!selection.blocks.value.length || ui.isMobile.value || selection.isChangingOptions.value) {
175
- return;
176
- }
177
- let minX = 0;
178
- let minY = 0;
179
- const rects = selection.uuids.value.map((uuid) => dom.getBlockRect(uuid)).filter(falsy);
180
- if (!rects.length) {
181
- return;
182
- }
183
- const offset = ui.artboardOffset.value;
184
- const scale = ui.artboardScale.value;
185
- for (let i = 0; i < rects.length; i++) {
186
- const { x, y } = rects[i];
187
- const rectX = (x + offset.x / scale) * scale;
188
- const rectY = (y + offset.y / scale) * scale;
189
- if (i === 0 || rectX < minX) {
190
- minX = rectX;
191
- }
192
- if (i === 0 || rectY < minY) {
193
- minY = rectY;
194
- }
195
- }
196
- const padding = ui.visibleViewportPadded.value;
197
- const rect = limitPlacedRect(
198
- {
199
- x: minX - 5 * Math.min(scale, 1),
200
- y: minY - ACTIONS_HEIGHT - 15 * Math.min(scale, 1),
201
- width: scrollWidth,
202
- height: ACTIONS_HEIGHT
203
- },
204
- padding
205
- );
206
- const ideal = findIdealRectPosition(
207
- ui.viewportBlockingRects.value,
208
- rect,
209
- padding
210
- );
211
- if (el.value) {
212
- el.value.style.transform = ui.isMobile.value ? "" : `translate3d(${ideal.x}px, ${ideal.y}px, 0)`;
213
- }
214
- });
215
203
  const shouldRenderButton = computed(
216
204
  () => mountedPlugins.value.some((v) => v.isRendering)
217
205
  );
@@ -227,6 +215,9 @@ onBlokkliEvent("plugin:unmount", (e) => {
227
215
  }
228
216
  mountedPlugins.value = mountedPlugins.value.filter((v) => v.type !== e.id);
229
217
  });
218
+ onBlokkliEvent("action:selected", () => {
219
+ showDropdown.value = false;
220
+ });
230
221
  watch(ui.isTransforming, function(isTransforming) {
231
222
  if (isTransforming) {
232
223
  showDropdown.value = false;
@@ -16,10 +16,7 @@
16
16
  ]"
17
17
  >
18
18
  <div class="bk-list-item-inner">
19
- <div class="bk-list-item-icon">
20
- <Icon v-if="icon" :name="icon" />
21
- <ItemIcon v-else-if="bundle" :bundle="bundle" />
22
- </div>
19
+ <AddListItemIcon :orientation :color :bundle :icon />
23
20
  <div
24
21
  class="bk-list-item-label"
25
22
  :class="{
@@ -45,7 +42,7 @@
45
42
 
46
43
  <script setup>
47
44
  import { useBlokkli, computed, ref } from "#imports";
48
- import { ItemIcon, Icon } from "#blokkli/components";
45
+ import { ItemIcon, Icon, AddListItemIcon } from "#blokkli/components";
49
46
  import { PluginContextMenu } from "#blokkli/plugins";
50
47
  const { ui, storage, $t } = useBlokkli();
51
48
  const props = defineProps({
@@ -22,7 +22,7 @@ declare const _default: import("vue").DefineComponent<{
22
22
  noContextMenu?: boolean;
23
23
  }> & Readonly<{}>, {
24
24
  bundle: string;
25
- color: "rose" | "lime" | "default" | "yellow" | "accent";
26
25
  icon: BlokkliIcon;
26
+ color: "rose" | "lime" | "default" | "yellow" | "accent";
27
27
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
28
  export default _default;
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <div
3
+ class="bk-list-item-icon"
4
+ :class="['bk-is-' + color, 'bk-is-' + orientation]"
5
+ >
6
+ <Icon v-if="icon" :name="icon" />
7
+ <ItemIcon v-else-if="bundle" :bundle="bundle" />
8
+ </div>
9
+ </template>
10
+
11
+ <script setup>
12
+ import { ItemIcon, Icon } from "#blokkli/components";
13
+ defineProps({
14
+ icon: { type: null, required: false, default: void 0 },
15
+ bundle: { type: String, required: false, default: void 0 },
16
+ color: { type: String, required: false, default: "default" },
17
+ orientation: { type: String, required: false, default: "horizontal" }
18
+ });
19
+ </script>
@@ -0,0 +1,15 @@
1
+ import type { BlokkliIcon } from '#blokkli-build/icons';
2
+ import type { AddListOrientation } from '#blokkli/types';
3
+ type __VLS_Props = {
4
+ icon?: BlokkliIcon;
5
+ bundle?: string;
6
+ color?: 'rose' | 'lime' | 'default' | 'yellow' | 'accent';
7
+ orientation?: AddListOrientation;
8
+ };
9
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ bundle: string;
11
+ icon: BlokkliIcon;
12
+ color: "rose" | "lime" | "default" | "yellow" | "accent";
13
+ orientation: AddListOrientation;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;