@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
@@ -18,17 +18,19 @@
18
18
  />
19
19
  </div>
20
20
  <div class="bk-command-palette-results bk-scrollbar-dark">
21
- <Group
22
- v-for="group in groups"
23
- :key="group.id"
24
- :label="group.label"
25
- :commands="group.commands"
26
- :visible-ids="visibleIds"
27
- :focused-id="focusedId"
28
- @close="$emit('close')"
29
- @focus="onFocus"
30
- @select="onSelect($event)"
31
- />
21
+ <div class="bk-command-palette-results-list">
22
+ <div>
23
+ <Item
24
+ v-for="(item, index) in visibleCommands"
25
+ :key="item.id"
26
+ :item="item"
27
+ :index="index"
28
+ :is-focused="focusedIndex === index"
29
+ @focus="onFocus"
30
+ @select="onSelect"
31
+ />
32
+ </div>
33
+ </div>
32
34
  </div>
33
35
  </ScrollBoundary>
34
36
  </template>
@@ -41,44 +43,25 @@ import {
41
43
  useBlokkli,
42
44
  watch,
43
45
  nextTick,
44
- onBeforeUnmount
46
+ onBeforeUnmount,
47
+ useTemplateRef
45
48
  } from "#imports";
46
49
  import { Icon, ScrollBoundary } from "#blokkli/components";
47
- import Group from "./Group/index.vue";
48
- import { falsy } from "#blokkli/helpers";
49
50
  import { Fzf } from "fzf";
51
+ import { modulo } from "#blokkli/helpers";
52
+ import Item from "./Item/index.vue";
50
53
  const { commands, $t, selection } = useBlokkli();
51
54
  const emit = defineEmits(["close"]);
52
- const inputEl = ref(null);
55
+ const inputEl = useTemplateRef("inputEl");
53
56
  const text = ref("");
54
- const focusedId = ref("");
57
+ const focusedIndex = ref(0);
55
58
  const hasUsedMouse = ref(false);
56
- function onFocus(id) {
59
+ function onFocus(index) {
57
60
  if (!hasUsedMouse.value) {
58
61
  return;
59
62
  }
60
- focusedId.value = id;
63
+ focusedIndex.value = index;
61
64
  }
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
65
  const items = computed(
83
66
  () => commands.getCommands().filter((v) => !v.disabled).map((doc, index) => {
84
67
  return {
@@ -88,8 +71,6 @@ const items = computed(
88
71
  })
89
72
  );
90
73
  const fzf = new Fzf(items.value, {
91
- // With selector you tell FZF where it can find
92
- // the string that you want to query on
93
74
  selector: (item) => item.label
94
75
  });
95
76
  const visibleIds = computed(
@@ -101,37 +82,21 @@ const visibleIds = computed(
101
82
  return results.map((v) => {
102
83
  return {
103
84
  id: v.item._id,
104
- positions: [...v.positions]
85
+ positions: [...v.positions],
86
+ score: v.score
105
87
  };
106
- });
88
+ }).sort((a, b) => b.score - a.score);
107
89
  }
108
90
  );
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
- });
91
+ const visibleCommands = computed(() => {
92
+ return items.value.map((v) => {
93
+ const found = visibleIds.value?.find((w) => w.id === v._id);
94
+ return {
95
+ ...v,
96
+ visible: visibleIds.value === void 0 || !!found,
97
+ positions: found?.positions
98
+ };
99
+ }).filter((v) => v.visible);
135
100
  });
136
101
  watch(text, () => {
137
102
  nextTick(() => {
@@ -140,62 +105,25 @@ watch(text, () => {
140
105
  });
141
106
  watch(selection.uuids, () => emit("close"));
142
107
  const focusFirst = () => {
143
- const element = document.querySelector(
144
- '.bk-command-palette .bk-command[data-command-visible="true"]'
145
- );
146
- if (element instanceof HTMLElement) {
147
- focusedId.value = element.dataset.commandId || "";
148
- }
149
- };
150
- const getCommandElements = () => {
151
- return [
152
- ...document.querySelectorAll(
153
- '.bk-command-palette .bk-command[data-command-visible="true"]'
154
- )
155
- ].map((el) => {
156
- if (el instanceof HTMLElement) {
157
- const id = el.dataset.commandId;
158
- if (id) {
159
- return {
160
- id,
161
- el,
162
- focused: focusedId.value === id
163
- };
164
- }
165
- }
166
- }).filter(falsy);
108
+ focusedIndex.value = 0;
167
109
  };
168
110
  const focusPrev = () => {
169
- const elements = getCommandElements();
170
- if (elements.length === 0) {
111
+ if (visibleCommands.value.length === 0) {
171
112
  return;
172
113
  }
173
- const focusedIndex = elements.findIndex((v) => v.focused);
174
- if (focusedIndex <= 0) {
175
- focusedId.value = elements[elements.length - 1].id;
176
- } else {
177
- focusedId.value = elements[focusedIndex - 1].id;
178
- }
179
- scrollFocusedIntoView();
114
+ focusedIndex.value = modulo(
115
+ focusedIndex.value - 1,
116
+ visibleCommands.value.length
117
+ );
180
118
  };
181
119
  const focusNext = () => {
182
- const elements = getCommandElements();
183
- if (elements.length === 0) {
120
+ if (visibleCommands.value.length === 0) {
184
121
  return;
185
122
  }
186
- const focusedIndex = elements.findIndex((v) => v.focused);
187
- if (focusedIndex === -1 || focusedIndex === elements.length - 1) {
188
- focusedId.value = elements[0].id;
189
- } else {
190
- focusedId.value = elements[focusedIndex + 1].id;
191
- }
192
- scrollFocusedIntoView();
193
- };
194
- const scrollFocusedIntoView = () => {
195
- const element = getCommandElements().find((v) => v.focused)?.el;
196
- if (element) {
197
- element.scrollIntoView({ block: "nearest", inline: "nearest" });
198
- }
123
+ focusedIndex.value = modulo(
124
+ focusedIndex.value + 1,
125
+ visibleCommands.value.length
126
+ );
199
127
  };
200
128
  const onSelect = (id) => {
201
129
  const command = items.value.find((v) => v.id === id);
@@ -226,7 +154,10 @@ const onKeyDown = (e) => {
226
154
  focusPrev();
227
155
  } else if (e.code === "Enter") {
228
156
  e.preventDefault();
229
- onSelect(focusedId.value);
157
+ const command = visibleCommands.value[focusedIndex.value];
158
+ if (command) {
159
+ onSelect(command.id);
160
+ }
230
161
  } else if (e.code === "Escape") {
231
162
  e.preventDefault();
232
163
  emit("close");
@@ -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,7 +26,9 @@
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";
31
+ import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
30
32
  defineBlokkliFeature({
31
33
  id: "command-palette",
32
34
  icon: "command",
@@ -37,6 +39,7 @@ defineBlokkliFeature({
37
39
  const { $t } = useBlokkli();
38
40
  const isVisible = ref(false);
39
41
  const label = computed(() => $t("commandPaletteOpen", "Open Command Palette"));
42
+ onBlokkliEvent("window:clickAway", () => isVisible.value = false);
40
43
  </script>
41
44
 
42
45
  <script>
@@ -1,29 +1,44 @@
1
1
  <template>
2
- <div class="bk-blokkli-item-actions-comment-dropdown" @keydown.capture.stop>
3
- <label for="comment_body" class="bk-form-label">{{
4
- $t("commentBody", "Comment")
5
- }}</label>
6
- <textarea
7
- id="comment_body"
8
- v-model="comment"
9
- type="text"
10
- class="bk-form-input"
11
- rows="5"
12
- required
13
- />
14
- <button class="bk-button bk-is-primary" @click="$emit('add', comment)">
15
- {{ $t("commentSave", "Submit comment") }}
16
- </button>
17
- </div>
2
+ <ArtboardTooltip
3
+ id="add-comment"
4
+ :title="$t('addCommentHeader', 'Add Comment')"
5
+ class="bk-add-comment"
6
+ @close="$emit('close')"
7
+ >
8
+ <div class="bk-add-comment-inner" @keydown.capture.stop>
9
+ <CommentInput id="comment_body" v-model="comment" />
10
+ <footer>
11
+ <button
12
+ :disabled="!comment"
13
+ class="bk-button bk-is-warning"
14
+ @click.prevent="onAdd"
15
+ >
16
+ {{ $t("commentSave", "Submit comment") }}
17
+ </button>
18
+ </footer>
19
+ </div>
20
+ </ArtboardTooltip>
18
21
  </template>
19
22
 
20
23
  <script setup>
21
- import { ref, useBlokkli } from "#imports";
22
- const comment = ref("");
23
- defineEmits(["add"]);
24
- const { $t } = useBlokkli();
24
+ import { onBeforeUnmount, onMounted, useBlokkli } from "#imports";
25
+ import { ArtboardTooltip } from "#blokkli/components";
26
+ import CommentInput from "./../CommentInput/index.vue";
27
+ const emit = defineEmits(["add", "close"]);
28
+ const { $t, ui, storage } = useBlokkli();
29
+ const comment = storage.useWithContextPrefix("commentAddText", "");
25
30
  const getComment = () => {
26
31
  return comment.value;
27
32
  };
33
+ function onAdd() {
34
+ emit("add", comment.value);
35
+ comment.value = "";
36
+ }
28
37
  defineExpose({ getComment });
38
+ onMounted(() => {
39
+ ui.setSelectionColor("add-comment", "yellow");
40
+ });
41
+ onBeforeUnmount(() => {
42
+ ui.removeSelectionColor("add-comment");
43
+ });
29
44
  </script>
@@ -1,8 +1,10 @@
1
1
  declare const _default: import("vue").DefineComponent<{}, {
2
2
  getComment: () => string;
3
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
4
- add: (...args: any[]) => void;
3
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
+ close: () => any;
5
+ add: (comment: string) => any;
5
6
  }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
6
- onAdd?: ((...args: any[]) => any) | undefined;
7
+ onClose?: (() => any) | undefined;
8
+ onAdd?: ((comment: string) => any) | undefined;
7
9
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
10
  export default _default;
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <div class="bk-comment-textarea">
3
+ <textarea
4
+ id="comment_body"
5
+ ref="textarea"
6
+ v-model="value"
7
+ type="text"
8
+ class="bk-form-input"
9
+ rows="4"
10
+ :placeholder
11
+ required
12
+ />
13
+ </div>
14
+ </template>
15
+
16
+ <script setup>
17
+ import { onMounted, useTemplateRef } from "#imports";
18
+ defineProps({
19
+ id: { type: String, required: true },
20
+ placeholder: { type: String, required: false }
21
+ });
22
+ const value = defineModel({ type: String });
23
+ const el = useTemplateRef("textarea");
24
+ onMounted(() => {
25
+ if (el.value) {
26
+ el.value.focus();
27
+ }
28
+ });
29
+ </script>
@@ -0,0 +1,13 @@
1
+ type __VLS_Props = {
2
+ id: string;
3
+ placeholder?: string;
4
+ };
5
+ type __VLS_PublicProps = __VLS_Props & {
6
+ modelValue?: string;
7
+ };
8
+ declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ "update:modelValue": (value: string | undefined) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
11
+ "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ export default _default;
@@ -13,15 +13,24 @@
13
13
  :class="{
14
14
  'bk-has-unresolved-comments': unresolvedCount > 0
15
15
  }"
16
- @click="$emit('toggle')"
16
+ @click.prevent="$emit('toggle')"
17
+ @pointerdown.prevent.stop
18
+ @pointerup.prevent.stop
19
+ @pointermove.prevent.stop
17
20
  >
18
21
  <Icon v-if="showComments" name="close" />
19
22
  <span v-else>{{ unresolvedCount }}</span>
20
23
  </button>
21
24
  <div
22
- v-show="showComments"
25
+ v-if="showComments"
23
26
  class="bk-comments-overlay-comments"
24
27
  :class="{ 'bk-is-left': isLeft, 'bk-is-right': !isLeft }"
28
+ :style="{
29
+ width: width + 'px'
30
+ }"
31
+ @pointerdown.capture.stop
32
+ @pointerup.capture.stop
33
+ @pointermove.capture.stop
25
34
  >
26
35
  <div class="bk-comments-overlay-comments-header">
27
36
  <Icon name="comment" />
@@ -36,17 +45,14 @@
36
45
  <Comment v-bind="comment" @resolve="resolveComment(comment.uuid)" />
37
46
  </div>
38
47
  <div class="bk-comments-overlay-form" @keydown.capture.stop>
39
- <textarea
40
- v-model="commentText"
41
- type="text"
42
- class="bk-form-input"
48
+ <CommentInput
49
+ id="comment_reply"
50
+ v-model.lazy="commentText"
43
51
  :placeholder="$t('commentBodyPlaceholder', 'Add reply')"
44
- required
45
- @focus="showFullForm = true"
46
52
  />
47
53
  <button
48
- v-if="showFullForm && commentText"
49
- class="bk-button bk-is-primary bk-is-small"
54
+ v-if="commentText"
55
+ class="bk-button bk-is-warning"
50
56
  @click="addComment"
51
57
  >
52
58
  {{ $t("commentAdd", "Add comment") }}
@@ -57,12 +63,12 @@
57
63
  </template>
58
64
 
59
65
  <script setup>
60
- import { ref, computed, useBlokkli } from "#imports";
66
+ import { computed, useBlokkli } from "#imports";
61
67
  import { Icon } from "#blokkli/components";
62
68
  import Comment from "./../../Comment/index.vue";
63
- const { $t } = useBlokkli();
64
- const commentText = ref("");
65
- const showFullForm = ref(false);
69
+ import CommentInput from "./../../CommentInput/index.vue";
70
+ const { $t, storage } = useBlokkli();
71
+ const commentText = storage.useWithContextPrefix("commentReply", "");
66
72
  const emit = defineEmits(["toggle", "addComment", "resolveComment"]);
67
73
  const props = defineProps({
68
74
  isReduced: { type: Boolean, required: true },
@@ -70,14 +76,14 @@ const props = defineProps({
70
76
  uuids: { type: Array, required: true },
71
77
  comments: { type: Array, required: true },
72
78
  style: { type: null, required: true },
73
- showComments: { type: Boolean, required: true }
79
+ showComments: { type: Boolean, required: true },
80
+ width: { type: Number, required: true }
74
81
  });
75
82
  const unresolvedCount = computed(
76
83
  () => props.comments.filter((v) => !v.resolved).length
77
84
  );
78
85
  function addComment() {
79
86
  emit("addComment", commentText.value);
80
- showFullForm.value = false;
81
87
  commentText.value = "";
82
88
  }
83
89
  function resolveComment(uuid) {
@@ -6,6 +6,7 @@ type __VLS_Props = {
6
6
  comments: CommentItem[];
7
7
  style: any;
8
8
  showComments: boolean;
9
+ width: number;
9
10
  };
10
11
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
12
  toggle: () => void;
@@ -1,13 +1,14 @@
1
1
  <template>
2
- <Teleport to="body">
3
- <div class="bk bk-comments-overlay bk-control">
2
+ <Teleport to="#bk-canvas-overlay">
3
+ <div ref="overlay" class="bk bk-comments-overlay bk-control">
4
4
  <Item
5
5
  v-for="item in indicators"
6
6
  :key="item.id"
7
7
  v-bind="item"
8
- :is-reduced="isReduced"
9
- :is-left="isLeft"
8
+ :is-reduced
9
+ :is-left
10
10
  :show-comments="active === item.id"
11
+ :width
11
12
  @toggle="toggle(item)"
12
13
  @add-comment="$emit('addComment', { body: $event, uuids: item.uuids })"
13
14
  @resolve-comment="$emit('resolveComment', $event)"
@@ -17,11 +18,19 @@
17
18
  </template>
18
19
 
19
20
  <script setup>
20
- import { ref, useBlokkli } from "#imports";
21
+ import { computed, ref, useBlokkli } from "#imports";
21
22
  import { falsy, getBounds } from "#blokkli/helpers";
22
23
  import Item from "./Item/index.vue";
23
24
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
24
25
  const { eventBus, ui, dom } = useBlokkli();
26
+ const width = computed(() => {
27
+ if (ui.viewport.value.width > 1600) {
28
+ return 400;
29
+ } else if (ui.viewport.value.width > 1300) {
30
+ return 350;
31
+ }
32
+ return 300;
33
+ });
25
34
  const props = defineProps({
26
35
  comments: { type: Array, required: true }
27
36
  });
@@ -47,7 +56,7 @@ onBlokkliEvent("canvas:draw", (e) => {
47
56
  ui.visibleViewportPadded.value.x + ui.visibleViewportPadded.value.width - 30
48
57
  );
49
58
  isReduced.value = scale < 0.8;
50
- isLeft.value = x + 300 < ui.visibleViewportPadded.value.x + ui.visibleViewportPadded.value.width;
59
+ isLeft.value = x + width.value < ui.visibleViewportPadded.value.x + ui.visibleViewportPadded.value.width;
51
60
  const newIndicators = {};
52
61
  const yMap = /* @__PURE__ */ new Set();
53
62
  const findY = (y) => {
@@ -19,6 +19,7 @@
19
19
  </li>
20
20
  </ul>
21
21
  </div>
22
+
22
23
  <template v-if="unresolvedCount" #badge>
23
24
  <div class="bk-sidebar-badge bk-is-yellow">{{ unresolvedCount }}</div>
24
25
  </template>
@@ -26,17 +27,24 @@
26
27
 
27
28
  <PluginItemAction
28
29
  id="add_comment"
29
- :title="$t('addCommentToItem', 'Comment')"
30
+ :title="$t('addCommentToItem', 'Add Comment...')"
30
31
  :active="showAddComment"
31
32
  weight="last"
32
- icon="comment"
33
+ icon="comment_add"
33
34
  multiple
34
35
  @click="showAddComment = !showAddComment"
35
- >
36
- <template v-if="showAddComment" #default="{ uuids }">
37
- <CommentAddForm ref="commentForm" @add="onAddComment($event, uuids)" />
38
- </template>
39
- </PluginItemAction>
36
+ />
37
+
38
+ <Teleport to="body">
39
+ <BlokkliTransition name="caret-tooltip">
40
+ <CommentAddForm
41
+ v-if="showAddComment"
42
+ ref="commentForm"
43
+ @add="onAddComment($event)"
44
+ @close="showAddComment = false"
45
+ />
46
+ </BlokkliTransition>
47
+ </Teleport>
40
48
 
41
49
  <CommentsOverlay
42
50
  v-if="comments.length"
@@ -55,6 +63,7 @@ import {
55
63
  computed
56
64
  } from "#imports";
57
65
  import { PluginSidebar, PluginItemAction } from "#blokkli/plugins";
66
+ import { BlokkliTransition } from "#blokkli/components";
58
67
  import Comment from "./Comment/index.vue";
59
68
  import CommentAddForm from "./AddForm/index.vue";
60
69
  import CommentsOverlay from "./Overlay/index.vue";
@@ -79,8 +88,11 @@ comments.value = await adapter.loadComments();
79
88
  const unresolvedCount = computed(
80
89
  () => comments.value.filter((v) => !v.resolved).length
81
90
  );
82
- const onAddComment = async (body, uuids) => {
83
- comments.value = await adapter.addComment(uuids, body);
91
+ const onAddComment = async (body, providedUuids) => {
92
+ const uuids = providedUuids ?? [...selection.uuids.value];
93
+ if (uuids.length) {
94
+ comments.value = await adapter.addComment(uuids, body);
95
+ }
84
96
  showAddComment.value = false;
85
97
  };
86
98
  const onResolveComment = async (uuid) => {
@@ -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,9 +17,8 @@ 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
- import { falsy, onlyUnique } from "#blokkli/helpers";
21
+ import { falsy } from "#blokkli/helpers";
31
22
  const { adapter } = defineBlokkliFeature({
32
23
  id: "conversions",
33
24
  label: "Conversions",
@@ -55,23 +46,27 @@ async function onConvert(targetBundle) {
55
46
  }
56
47
  await state.mutateWithLoadingState(
57
48
  () => adapter.convertBlocks(
58
- selection.blocks.value.map((v) => v.uuid),
49
+ selection.items.value.map((v) => v.uuid),
59
50
  targetBundle
60
51
  ),
61
52
  $t("failedToConvert", "The block could not be converted.")
62
53
  );
63
54
  }
64
- const itemBundleIds = computed(
65
- () => selection.blocks.value.map((v) => v.itemBundle).filter(onlyUnique)
66
- );
67
55
  const possibleConversions = computed(() => {
68
- if (itemBundleIds.value.length !== 1) {
56
+ if (selection.bundles.value.length !== 1) {
69
57
  return [];
70
58
  }
71
- const sourceType = itemBundleIds.value[0];
59
+ const sourceType = selection.bundles.value[0];
60
+ const titleBase = $t("conversionsConvertTo", "Convert to: @bundle");
72
61
  return conversions.value.filter(
73
62
  (v) => v.sourceBundle === sourceType && types.allowedTypesInList.value.includes(v.targetBundle)
74
- ).map((v) => types.getBlockBundleDefinition(v.targetBundle)).filter(falsy);
63
+ ).map((v) => types.getBlockBundleDefinition(v.targetBundle)).filter(falsy).map((v) => {
64
+ return {
65
+ id: v.id,
66
+ label: titleBase.replace("@bundle", v.label),
67
+ bundle: v.id
68
+ };
69
+ });
75
70
  });
76
71
  </script>
77
72