@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
@@ -0,0 +1,18 @@
1
+ import type { BlokkliIcon } from '#blokkli-build/icons';
2
+ import type { ThemeColorName } from '#blokkli/types/theme';
3
+ type __VLS_Props = {
4
+ id: string;
5
+ icon: BlokkliIcon;
6
+ text: string;
7
+ button?: string;
8
+ scheme?: ThemeColorName;
9
+ };
10
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
11
+ click: () => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onClick?: (() => any) | undefined;
14
+ }>, {
15
+ button: string;
16
+ scheme: ThemeColorName;
17
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ export default _default;
@@ -34,6 +34,7 @@ import { computed, useBlokkli, ref } from "#imports";
34
34
  import { getBlokkliItemProxyComponent } from "#blokkli/helpers/editComponents";
35
35
  import { ItemIcon } from "#blokkli/components";
36
36
  import { buildAttributesForLibraryItem, falsy } from "#blokkli/helpers";
37
+ import { useBlockRegistration } from "#blokkli/helpers/composables/useBlockRegistration";
37
38
  const props = defineProps({
38
39
  uuid: { type: String, required: true },
39
40
  bundle: { type: String, required: true },
@@ -63,7 +64,7 @@ const rootProps = computed(() => {
63
64
  const proxyBundle = computed(
64
65
  () => libraryItemProps.value?.block?.bundle || props.bundle
65
66
  );
66
- const { types, runtimeConfig, definitions } = useBlokkli();
67
+ const { types, runtimeConfig, definitions, dom } = useBlokkli();
67
68
  const root = ref(null);
68
69
  const type = computed(() => types.getBlockBundleDefinition(proxyBundle.value));
69
70
  const proxyComponent = getBlokkliItemProxyComponent(proxyBundle.value);
@@ -89,4 +90,5 @@ const fieldLayout = computed(() => {
89
90
  }
90
91
  return types.fieldConfig.forEntityTypeAndBundle(runtimeConfig.itemEntityType, proxyBundle.value).map((config) => [config]);
91
92
  });
93
+ useBlockRegistration(dom, props.uuid);
92
94
  </script>
@@ -1,18 +1,7 @@
1
- import { Icon } from '#blokkli/components';
2
- declare const errors: import("vue").Ref<Error[], Error[]>;
3
- declare const $t: import("#blokkli/helpers/textProvider").TextProvider;
4
- declare const unique: import("vue").ComputedRef<Error[]>;
5
- declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
6
1
  declare var __VLS_1: {};
7
- type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
2
+ type __VLS_Slots = {} & {
8
3
  default?: (props: typeof __VLS_1) => any;
9
- }>;
10
- declare const __VLS_self: import("vue").DefineComponent<{}, {
11
- Icon: typeof Icon;
12
- errors: typeof errors;
13
- $t: typeof $t;
14
- unique: typeof unique;
15
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ };
16
5
  declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
17
6
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
18
7
  export default _default;
@@ -32,6 +32,9 @@
32
32
  <slot />
33
33
  </div>
34
34
  </div>
35
+ <div v-if="$slots['pre-footer']" class="bk-dialog-pre-footer">
36
+ <slot name="pre-footer" />
37
+ </div>
35
38
  <div v-if="!hideButtons" class="bk bk-dialog-footer">
36
39
  <button
37
40
  class="bk-button"
@@ -50,10 +53,10 @@
50
53
  </template>
51
54
 
52
55
  <script setup>
53
- import { useBlokkli, onMounted, computed, ref } from "#imports";
56
+ import { useBlokkli, onMounted, computed, ref, onBeforeUnmount } from "#imports";
54
57
  import { Icon } from "#blokkli/components";
55
58
  import { modulo } from "#blokkli/helpers";
56
- const { ui } = useBlokkli();
59
+ const { ui, element } = useBlokkli();
57
60
  const emit = defineEmits(["submit", "cancel"]);
58
61
  const rootEl = ref(null);
59
62
  const props = defineProps({
@@ -91,9 +94,11 @@ const getFocusableElements = () => {
91
94
  if (!rootEl.value) {
92
95
  return [];
93
96
  }
94
- return [
95
- ...rootEl.value.querySelectorAll("input,select,button,textarea")
96
- ];
97
+ return element.queryAll(
98
+ rootEl.value,
99
+ "input,select,button,textarea",
100
+ `Dialog "${props.title}" getFocusableElements`
101
+ );
97
102
  };
98
103
  const onKeyDown = (e) => {
99
104
  if (e.code === "Escape") {
@@ -125,12 +130,16 @@ const onKeyDown = (e) => {
125
130
  }
126
131
  };
127
132
  onMounted(() => {
133
+ ui.hasDialogOpen.value = true;
128
134
  const focusableElements = getFocusableElements();
129
135
  const bestMatch = focusableElements.find((el) => !(el instanceof HTMLButtonElement)) || focusableElements[0];
130
136
  if (bestMatch) {
131
137
  bestMatch.focus();
132
138
  }
133
139
  });
140
+ onBeforeUnmount(() => {
141
+ ui.hasDialogOpen.value = false;
142
+ });
134
143
  </script>
135
144
 
136
145
  <script>
@@ -28,13 +28,15 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
28
28
  onCancel?: ((...args: any[]) => any) | undefined;
29
29
  onSubmit?: ((...args: any[]) => any) | undefined;
30
30
  }>, {
31
- width: number | string;
32
31
  icon: BlokkliIcon;
32
+ width: number | string;
33
33
  lead: string;
34
34
  submitLabel: string;
35
35
  canSubmit: boolean;
36
36
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
37
- default?: ((props: {}) => any) | undefined;
37
+ default?: (props: {}) => any;
38
+ } & {
39
+ 'pre-footer'?: (props: {}) => any;
38
40
  }>;
39
41
  export default _default;
40
42
  type __VLS_WithSlots<T, S> = T & {
@@ -0,0 +1,276 @@
1
+ <template>
2
+ <div class="bk bk-diff-view">
3
+ <div class="bk-diff-mode-selector">
4
+ <FormRadioTabs
5
+ id="diff-viewer-state-display"
6
+ v-model="diffMode"
7
+ :options="diffModeOptions"
8
+ :label="$t('diffModeLabel', 'Display')"
9
+ :scheme
10
+ />
11
+ </div>
12
+ <div class="bk-diff-table" :data-diff-mode="diffMode">
13
+ <button
14
+ v-for="item in diffItems"
15
+ :key="item.uuid"
16
+ class="bk-diff-item"
17
+ :class="{
18
+ 'bk-is-muted': showSelect && !selected?.includes(item.uuid)
19
+ }"
20
+ @click.prevent="onClick(item.uuid)"
21
+ >
22
+ <div
23
+ class="bk-diff-item-header"
24
+ :disabled="item.status === 'removed' && !showSelect"
25
+ :class="{
26
+ 'bk-is-selected': showSelect && selected?.includes(item.uuid)
27
+ }"
28
+ >
29
+ <div class="bk-blokkli-item-label">
30
+ <div class="bk-blokkli-item-label-icon">
31
+ <ItemIcon :bundle="item.bundle" />
32
+ </div>
33
+ <span>{{ getLabel(item.bundle) }}</span>
34
+ </div>
35
+ <div class="bk-diff-status">
36
+ <div
37
+ v-if="item.status === 'added'"
38
+ class="bk-diff-status-label bk-is-added"
39
+ >
40
+ {{ $t("diffStatusAdded", "Added") }}
41
+ </div>
42
+ <div
43
+ v-else-if="item.status === 'removed'"
44
+ class="bk-diff-status-label bk-is-removed"
45
+ >
46
+ {{ $t("diffStatusDeleted", "Deleted") }}
47
+ </div>
48
+ <div
49
+ v-else-if="item.status === 'unchanged'"
50
+ class="bk-diff-status-label"
51
+ >
52
+ {{ $t("diffStatusUnchanged", "Unchanged") }}
53
+ </div>
54
+ <div v-else class="bk-diff-status-label">
55
+ {{ $t("diffStatusEdited", "Edited") }}
56
+ </div>
57
+ </div>
58
+ </div>
59
+ <div class="bk-diff-item-diffs">
60
+ <div
61
+ v-for="prop in item.props"
62
+ :key="prop.key"
63
+ class="bk-diff-prop-row"
64
+ >
65
+ <h3>{{ prop.key }}</h3>
66
+ <div class="bk-diff-monospace">
67
+ <div
68
+ v-if="diffMode === 'inline'"
69
+ class="bk-diff-prop-diff"
70
+ v-html="prop.diff"
71
+ />
72
+ <div
73
+ v-else-if="diffMode === 'side_by_side'"
74
+ class="bk-diff-prop-side-by-side"
75
+ >
76
+ <div class="bk-diff-prop-before">
77
+ <div class="bk-diff-prop-label">
78
+ {{ $t("diffBefore", "Before") }}
79
+ </div>
80
+ <div class="bk-diff-prop-content" v-html="prop.before" />
81
+ </div>
82
+ <div class="bk-diff-prop-after">
83
+ <div class="bk-diff-prop-label">
84
+ {{ $t("diffAfter", "After") }}
85
+ </div>
86
+ <div class="bk-diff-prop-content" v-html="prop.after" />
87
+ </div>
88
+ </div>
89
+ <div
90
+ v-else-if="diffMode === 'after'"
91
+ class="bk-diff-prop-after-only"
92
+ >
93
+ <div class="bk-diff-prop-content" v-html="prop.after" />
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ </button>
99
+ </div>
100
+ </div>
101
+ </template>
102
+
103
+ <script setup>
104
+ import { computed, useBlokkli } from "#imports";
105
+ import { ItemIcon, FormRadioTabs } from "#blokkli/components";
106
+ import diff from "html-diff-ts";
107
+ const props = defineProps({
108
+ stateBefore: { type: Object, required: true },
109
+ stateAfter: { type: Object, required: true },
110
+ showSelect: { type: Boolean, required: false },
111
+ includeUuids: { type: Array, required: false },
112
+ selected: { type: Array, required: false },
113
+ scheme: { type: String, required: false }
114
+ });
115
+ const { types, $t, eventBus, dom, definitions, storage } = useBlokkli();
116
+ const diffMode = storage.use(
117
+ "diffMode",
118
+ "inline"
119
+ );
120
+ const diffModeOptions = computed(() => [
121
+ {
122
+ value: "inline",
123
+ label: $t("diffModeInline", "Inline")
124
+ },
125
+ {
126
+ value: "side_by_side",
127
+ label: $t("diffModeSideBySide", "Both")
128
+ },
129
+ {
130
+ value: "after",
131
+ label: $t("diffModeAfter", "After")
132
+ }
133
+ ]);
134
+ const emit = defineEmits(["toggle"]);
135
+ function getProps(bundle, props2) {
136
+ const definition = definitions.getDefaultDefinition(bundle);
137
+ if (definition?.editor?.mapDiffProps) {
138
+ return definition.editor.mapDiffProps(props2);
139
+ }
140
+ if (typeof props2 === "object") {
141
+ return Object.entries(props2).reduce(
142
+ (acc, [key, value]) => {
143
+ if (typeof value === "string" || typeof value === "number") {
144
+ acc[key] = value.toString();
145
+ } else if (typeof value === "object") {
146
+ try {
147
+ const json = JSON.stringify(value, null, 2);
148
+ acc[key] = `<pre>${json}</pre>`;
149
+ } catch {
150
+ }
151
+ }
152
+ return acc;
153
+ },
154
+ {}
155
+ );
156
+ }
157
+ return {};
158
+ }
159
+ function buildDiffItems(fields) {
160
+ const items = (fields || []).flatMap((v) => v.list);
161
+ return items;
162
+ }
163
+ const itemsBefore = computed(
164
+ () => buildDiffItems(props.stateBefore.mutatedState?.fields)
165
+ );
166
+ const itemsAfter = computed(
167
+ () => buildDiffItems(props.stateAfter.mutatedState?.fields)
168
+ );
169
+ function toString(v) {
170
+ if (typeof v === "string") {
171
+ return v;
172
+ } else if (typeof v === "number") {
173
+ return v.toString();
174
+ }
175
+ return "";
176
+ }
177
+ const diffItems = computed(() => {
178
+ const diffMap = /* @__PURE__ */ new Map();
179
+ itemsBefore.value.forEach((beforeItem) => {
180
+ if (props.includeUuids && !props.includeUuids.includes(beforeItem.uuid)) {
181
+ return;
182
+ }
183
+ const afterItem = itemsAfter.value.find(
184
+ (item) => item.uuid === beforeItem.uuid
185
+ );
186
+ const beforeProps = getProps(beforeItem.bundle, beforeItem.props);
187
+ if (!afterItem) {
188
+ diffMap.set(beforeItem.uuid, {
189
+ uuid: beforeItem.uuid,
190
+ bundle: beforeItem.bundle,
191
+ status: "removed",
192
+ props: Object.entries(beforeProps).map(([key, value]) => ({
193
+ key,
194
+ diff: diff(toString(value), ""),
195
+ before: toString(value),
196
+ after: ""
197
+ }))
198
+ });
199
+ } else {
200
+ const afterProps = getProps(afterItem.bundle, afterItem.props);
201
+ const changedProps = [];
202
+ Object.entries(beforeProps).forEach(([key, beforeValue]) => {
203
+ const afterValue = afterProps[key];
204
+ if (beforeValue !== afterValue) {
205
+ changedProps.push({
206
+ key,
207
+ diff: diff(toString(beforeValue), toString(afterValue)),
208
+ before: toString(beforeValue),
209
+ after: toString(afterValue)
210
+ });
211
+ }
212
+ });
213
+ Object.keys(afterProps).forEach((key) => {
214
+ if (!(key in beforeProps)) {
215
+ changedProps.push({
216
+ key,
217
+ diff: diff("", toString(afterProps[key])),
218
+ before: "",
219
+ after: toString(afterProps[key])
220
+ });
221
+ }
222
+ });
223
+ if (changedProps.length > 0) {
224
+ diffMap.set(beforeItem.uuid, {
225
+ uuid: beforeItem.uuid,
226
+ bundle: beforeItem.bundle,
227
+ status: "changed",
228
+ props: changedProps
229
+ });
230
+ } else if (props.includeUuids) {
231
+ diffMap.set(beforeItem.uuid, {
232
+ uuid: beforeItem.uuid,
233
+ bundle: beforeItem.bundle,
234
+ status: "unchanged",
235
+ props: []
236
+ });
237
+ }
238
+ }
239
+ });
240
+ itemsAfter.value.forEach((afterItem) => {
241
+ if (!itemsBefore.value.some((item) => item.uuid === afterItem.uuid)) {
242
+ const afterProps = getProps(afterItem.bundle, afterItem.props);
243
+ diffMap.set(afterItem.uuid, {
244
+ uuid: afterItem.uuid,
245
+ bundle: afterItem.bundle,
246
+ status: "added",
247
+ props: Object.entries(afterProps).map(([key, value]) => ({
248
+ key,
249
+ diff: diff("", toString(value)),
250
+ before: "",
251
+ after: toString(value)
252
+ }))
253
+ });
254
+ }
255
+ });
256
+ return Array.from(diffMap.values()).sort((a, b) => {
257
+ const aY = dom.getBlockRect(a.uuid)?.y || 0;
258
+ const bY = dom.getBlockRect(b.uuid)?.y || 0;
259
+ return aY - bY;
260
+ });
261
+ });
262
+ function onClick(uuid) {
263
+ if (props.showSelect) {
264
+ emit("toggle", uuid);
265
+ } else {
266
+ scrollToBlock(uuid);
267
+ }
268
+ }
269
+ function getLabel(bundle) {
270
+ return types.getBlockBundleDefinition(bundle)?.label || bundle;
271
+ }
272
+ function scrollToBlock(uuid) {
273
+ eventBus.emit("scrollIntoView", { uuid, center: true });
274
+ eventBus.emit("select", uuid);
275
+ }
276
+ </script>
@@ -0,0 +1,16 @@
1
+ import type { MappedState } from '#blokkli/types';
2
+ import type { ThemeColorName } from '#blokkli/types/theme';
3
+ type __VLS_Props = {
4
+ stateBefore: MappedState;
5
+ stateAfter: MappedState;
6
+ showSelect?: boolean;
7
+ includeUuids?: string[];
8
+ selected?: string[];
9
+ scheme?: ThemeColorName;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ toggle: (uuid: string) => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onToggle?: ((uuid: string) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ export default _default;
@@ -12,14 +12,12 @@
12
12
  <div
13
13
  ref="root"
14
14
  class="bk-field-list-proxy-list bk-draggable-list-container"
15
- v-bind="fieldAttributes"
16
15
  >
17
16
  <BlokkliItem
18
17
  v-for="(item, i) in list"
19
18
  :key="item.uuid + fieldListType + definitions.renderKey.value"
20
19
  :uuid="item.uuid"
21
20
  :bundle="item.bundle"
22
- :is-new="item.isNew"
23
21
  :options="item.options"
24
22
  :props="item.props"
25
23
  is-editing
@@ -36,7 +34,6 @@
36
34
  :data-host-field-name="name"
37
35
  :data-host-field-list-type="fieldListType"
38
36
  :data-is-nested="isNested"
39
- :data-is-new="item.isNew"
40
37
  :data-entity-type="runtimeConfig.itemEntityType"
41
38
  :data-bk-is-muted="isMuted(item)"
42
39
  />
@@ -47,14 +44,12 @@
47
44
  v-else
48
45
  ref="root"
49
46
  :class="['bk-draggable-list-container', attrs.class]"
50
- v-bind="fieldAttributes"
51
47
  >
52
48
  <BlokkliItem
53
49
  v-for="(item, i) in list"
54
50
  :key="item.uuid + fieldListType"
55
51
  :uuid="item.uuid"
56
52
  :bundle="item.bundle"
57
- :is-new="item.isNew"
58
53
  :options="item.options"
59
54
  :props="item.props"
60
55
  is-editing
@@ -71,7 +66,6 @@
71
66
  :data-host-field-name="name"
72
67
  :data-host-field-list-type="fieldListType"
73
68
  :data-is-nested="isNested"
74
- :data-is-new="item.isNew"
75
69
  :data-entity-type="runtimeConfig.itemEntityType"
76
70
  :data-bk-is-muted="isMuted(item)"
77
71
  />
@@ -95,7 +89,7 @@ import {
95
89
  INJECT_FIELD_PROXY_MODE,
96
90
  INJECT_IS_EDITING
97
91
  } from "#blokkli/helpers/symbols";
98
- const { dom, types, runtimeConfig, selection, definitions } = useBlokkli();
92
+ const { dom, runtimeConfig, selection, definitions } = useBlokkli();
99
93
  const root = ref(null);
100
94
  const props = defineProps({
101
95
  name: { type: String, required: true },
@@ -105,8 +99,10 @@ const props = defineProps({
105
99
  language: { type: String, required: false, default: void 0 },
106
100
  tag: { type: String, required: false, default: "div" },
107
101
  isNested: { type: Boolean, required: true },
108
- fieldListType: { type: String, required: true },
109
- allowedFragments: { type: Array, required: false, default: void 0 },
102
+ fieldListType: { type: null, required: true },
103
+ allowedFragments: { type: null, required: false, default: () => {
104
+ return [];
105
+ } },
110
106
  dropAlignment: { type: String, required: false, default: void 0 },
111
107
  proxyMode: { type: Boolean, required: false },
112
108
  globalProxyMode: { type: Boolean, required: false },
@@ -119,61 +115,35 @@ provide(INJECT_IS_EDITING, true);
119
115
  const proxyVisible = computed(
120
116
  () => props.proxyMode && (selection.uuids.value.length || selection.isDragging.value || selection.isMultiSelecting.value)
121
117
  );
122
- const fieldConfig = computed(() => {
123
- const match = types.getFieldConfig(
124
- props.entity.type,
125
- props.entity.bundle,
126
- props.name
127
- );
128
- if (!match) {
129
- throw new Error(
130
- `Missing field configuration for field "${props.name}" on entity type "${props.entity.type}" with bundle "${props.entity.bundle}". Make sure the "name" prop passed to <BlokkliField> is correct.`
131
- );
132
- }
133
- return match;
134
- });
135
- const allowedBundles = computed(() => {
136
- const bundles = fieldConfig.value.allowedBundles;
137
- if (!bundles.length) {
138
- console.error(
139
- `Field with name "${props.name}" on entity "${props.entity.type}" with bundle "${props.entity.bundle}" does not define any allowed bundles.`
140
- );
141
- }
142
- return bundles.join(",");
143
- });
144
- const fieldAttributes = computed(() => {
145
- return {
146
- "data-field-name": props.name,
147
- "data-field-label": fieldConfig.value.label,
148
- "data-field-is-nested": props.isNested,
149
- "data-bk-nesting-level": props.nestingLevel,
150
- "data-host-entity-type": props.entity.type,
151
- "data-host-entity-uuid": props.entity.uuid,
152
- "data-host-entity-bundle": props.entity.bundle,
153
- "data-field-key": props.fieldKey,
154
- "data-field-drop-alignment": props.dropAlignment,
155
- "data-allowed-fragments": props.allowedFragments ? props.allowedFragments.join(",") : void 0,
156
- "data-field-allowed-bundles": allowedBundles.value,
157
- "data-field-list-type": props.fieldListType,
158
- "data-field-cardinality": fieldConfig.value.cardinality
159
- };
160
- });
161
118
  function isMuted(item) {
162
119
  if (!item) {
163
120
  return true;
164
121
  }
122
+ if (!item.editContext?.isPublished) {
123
+ return true;
124
+ }
165
125
  const isVisible = isVisibleByOptions(item, props.language);
166
126
  const isVisibleCustom = props.shouldRenderItem ? props.shouldRenderItem(item) : true;
167
127
  return !(isVisible && isVisibleCustom);
168
128
  }
129
+ const data = computed(() => {
130
+ const allowedFragments = Array.isArray(props.allowedFragments) ? props.allowedFragments : [props.allowedFragments];
131
+ return {
132
+ fieldListType: props.fieldListType,
133
+ allowedFragments,
134
+ isNested: props.isNested,
135
+ nestingLevel: props.nestingLevel,
136
+ dropAlignment: props.dropAlignment ?? null
137
+ };
138
+ });
169
139
  watch(root, function(newRoot) {
170
140
  if (newRoot) {
171
- dom.updateFieldElement(props.entity, props.name, newRoot);
141
+ dom.updateFieldElement(props.entity, props.name, newRoot, data.value);
172
142
  }
173
143
  });
174
144
  onMounted(() => {
175
145
  if (root.value) {
176
- dom.registerField(props.entity, props.name, root.value);
146
+ dom.registerField(props.entity, props.name, root.value, data.value);
177
147
  }
178
148
  });
179
149
  onBeforeUnmount(() => {
@@ -1,6 +1,6 @@
1
- import type { FieldListItem, EntityContext } from '#blokkli/types';
1
+ import type { FieldListItem, EntityContext, FieldDropAlignment } from '#blokkli/types';
2
2
  import type { BlokkliFragmentName } from '#blokkli-build/definitions';
3
- import type { FieldListItemTyped } from '#blokkli-build/generated-types';
3
+ import type { FieldListItemTyped, ValidFieldListTypes } from '#blokkli-build/generated-types';
4
4
  type __VLS_Props = {
5
5
  name: string;
6
6
  fieldKey: string;
@@ -9,19 +9,19 @@ type __VLS_Props = {
9
9
  language?: string;
10
10
  tag?: string;
11
11
  isNested: boolean;
12
- fieldListType: string;
13
- allowedFragments?: BlokkliFragmentName[];
14
- dropAlignment?: 'vertical' | 'horizontal';
12
+ fieldListType: ValidFieldListTypes;
13
+ allowedFragments?: BlokkliFragmentName[] | BlokkliFragmentName;
14
+ dropAlignment?: FieldDropAlignment;
15
15
  proxyMode?: boolean;
16
16
  globalProxyMode?: boolean;
17
17
  nestingLevel: number;
18
18
  shouldRenderItem?: (item: FieldListItem | FieldListItemTyped) => boolean;
19
19
  };
20
20
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
21
- allowedFragments: BlokkliFragmentName[];
21
+ allowedFragments: BlokkliFragmentName[] | BlokkliFragmentName;
22
+ dropAlignment: FieldDropAlignment;
22
23
  tag: string;
23
24
  language: string;
24
- dropAlignment: "vertical" | "horizontal";
25
25
  shouldRenderItem: (item: FieldListItem | FieldListItemTyped) => boolean;
26
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
27
  export default _default;