@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,56 @@
1
+ <template>
2
+ <div class="bk-analyze-results-item">
3
+ <div class="bk-analyze-results-item-tags">
4
+ <Status :status :title="key" />
5
+ <div class="bk-pill bk-is-mono">{{ categoryLabel }}</div>
6
+ <div class="bk-analyze-results-item-help">
7
+ <a v-if="link" :href="link" target="_blank" :title="link">
8
+ <span>{{ $t("analyzeMoreLink", "More") }}</span>
9
+ <Icon name="help" />
10
+ </a>
11
+ </div>
12
+ </div>
13
+ <h3>{{ title }}</h3>
14
+ <p v-if="descriptionMapped || link">
15
+ {{ descriptionMapped }}
16
+ </p>
17
+
18
+ <ResultsItemNodes :nodes :result-id="id" />
19
+ </div>
20
+ </template>
21
+
22
+ <script setup>
23
+ import { computed, useBlokkli } from "#imports";
24
+ import { Icon } from "#blokkli/components";
25
+ import Status from "./Status.vue";
26
+ import ResultsItemNodes from "./ResultsItemNodes.vue";
27
+ import { useAnalyzeHelper } from "../helper";
28
+ const props = defineProps({
29
+ id: { type: String, required: true },
30
+ title: { type: String, required: true },
31
+ category: { type: String, required: true },
32
+ description: { type: String, required: true },
33
+ link: { type: String, required: false },
34
+ status: { type: String, required: true },
35
+ nodes: { type: [Object, Array], required: true },
36
+ impact: { type: String, required: false },
37
+ scoreTargets: { type: Boolean, required: false },
38
+ plugin: { type: String, required: true }
39
+ });
40
+ const { getCategoryLabel } = useAnalyzeHelper();
41
+ const { $t } = useBlokkli();
42
+ const categoryLabel = computed(() => {
43
+ return getCategoryLabel(props.category);
44
+ });
45
+ const descriptionMapped = computed(() => {
46
+ if (!props.description) {
47
+ return "";
48
+ }
49
+ const punctuation = /[.!?]$/;
50
+ if (punctuation.test(props.description.trim())) {
51
+ return props.description;
52
+ }
53
+ return props.description + ".";
54
+ });
55
+ const key = computed(() => `${props.plugin}:${props.id}`);
56
+ </script>
@@ -0,0 +1,3 @@
1
+ import type { AnalyzeResultMapped } from '../analyzers/types.js';
2
+ declare const _default: import("vue").DefineComponent<AnalyzeResultMapped, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<AnalyzeResultMapped> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
3
+ export default _default;
@@ -0,0 +1,87 @@
1
+ <template>
2
+ <details
3
+ v-if="mappedNodes.length"
4
+ class="bk-analyze-results-item-nodes"
5
+ :open="isSingle || isOpen"
6
+ @toggle="shouldRender = true"
7
+ >
8
+ <summary v-show="!isSingle">
9
+ <span>{{ $t("multipleItemsLabel", "Items") }}</span>
10
+ <Icon name="caret" />
11
+ </summary>
12
+
13
+ <div v-if="shouldRender" class="bk-analyze-results-item-nodes-list">
14
+ <ul v-for="(group, i) in grouped" :key="i">
15
+ <li>
16
+ <p
17
+ v-if="group.description && group.description !== 'NONE'"
18
+ :class="{
19
+ 'bk-is-single': isSingle
20
+ }"
21
+ v-html="group.description"
22
+ />
23
+ <ul>
24
+ <li v-for="(node, j) in group.nodes" :key="i + '_' + j">
25
+ <ResultsItemNodesTarget
26
+ v-for="(target, k) in node.targets"
27
+ :key="i + '_' + j + '_' + k"
28
+ :target="target"
29
+ :result-id
30
+ />
31
+ </li>
32
+ </ul>
33
+ </li>
34
+ </ul>
35
+ </div>
36
+ </details>
37
+ </template>
38
+
39
+ <script setup>
40
+ import { computed, ref, useBlokkli } from "#imports";
41
+ import ResultsItemNodesTarget from "./ResultsItemNodesTarget.vue";
42
+ import { Icon } from "#blokkli/components";
43
+ import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
44
+ const props = defineProps({
45
+ resultId: { type: String, required: true },
46
+ nodes: { type: [Object, Array], required: true }
47
+ });
48
+ const shouldRender = ref(false);
49
+ const isOpen = ref(false);
50
+ const { $t } = useBlokkli();
51
+ const mappedNodes = computed(() => {
52
+ const nodes = Array.isArray(props.nodes) ? props.nodes : [props.nodes];
53
+ return nodes.map((node) => {
54
+ return {
55
+ ...node,
56
+ targets: Array.isArray(node.targets) ? node.targets : [node.targets]
57
+ };
58
+ });
59
+ });
60
+ const isSingle = computed(
61
+ () => mappedNodes.value.length === 1 && mappedNodes.value[0]?.targets.length === 1
62
+ );
63
+ const grouped = computed(() => {
64
+ const map = mappedNodes.value.reduce(
65
+ (acc, node) => {
66
+ const description = node.description ?? "NONE";
67
+ if (!acc[description]) {
68
+ acc[description] = [];
69
+ }
70
+ acc[description].push(node);
71
+ return acc;
72
+ },
73
+ {}
74
+ );
75
+ return Object.entries(map).map(([description, nodes]) => {
76
+ return {
77
+ description: description === "none" ? "" : description,
78
+ nodes
79
+ };
80
+ });
81
+ });
82
+ onBlokkliEvent("analyze:click-node", (e) => {
83
+ if (e.id === props.resultId) {
84
+ isOpen.value = true;
85
+ }
86
+ });
87
+ </script>
@@ -0,0 +1,7 @@
1
+ import type { AnalyzeNode } from '../analyzers/types.js';
2
+ type __VLS_Props = {
3
+ resultId: string;
4
+ nodes: AnalyzeNode | AnalyzeNode[];
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ export default _default;
@@ -0,0 +1,105 @@
1
+ <template>
2
+ <div
3
+ class="bk-analyze-results-item-nodes-target"
4
+ :class="{
5
+ 'bk-is-focused': isFocused
6
+ }"
7
+ >
8
+ <div>
9
+ <button ref="elButton" @click.prevent="onClick">
10
+ <Icon name="eye" />
11
+ <span>{{ getLabel() }}</span>
12
+ </button>
13
+ </div>
14
+ </div>
15
+ </template>
16
+
17
+ <script setup>
18
+ import { Icon } from "#blokkli/components";
19
+ import { ref, useBlokkli, useTemplateRef } from "#imports";
20
+ import { renderCycle } from "#blokkli/helpers/renderCycle";
21
+ import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
22
+ const props = defineProps({
23
+ resultId: { type: String, required: true },
24
+ target: { type: null, required: true }
25
+ });
26
+ const { eventBus, dom, blocks, element } = useBlokkli();
27
+ const elButton = useTemplateRef("elButton");
28
+ const isFocused = ref(false);
29
+ let focusTimeout = null;
30
+ function getElement() {
31
+ if (props.target) {
32
+ if (typeof props.target === "string") {
33
+ return element.query(
34
+ document.documentElement,
35
+ props.target,
36
+ "Find analyze result item node target."
37
+ );
38
+ } else if (props.target instanceof HTMLElement) {
39
+ return props.target;
40
+ } else if (typeof props.target === "object" && "uuid" in props.target) {
41
+ const item = blocks.getBlock(props.target.uuid);
42
+ if (item) {
43
+ return dom.getDragElement(item) ?? null;
44
+ }
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+ function getLabel() {
50
+ if (props.target) {
51
+ if (typeof props.target === "string") {
52
+ return props.target;
53
+ } else if (props.target instanceof HTMLElement) {
54
+ return (props.target.textContent ?? "").slice(0, 50);
55
+ } else if (typeof props.target === "object" && "uuid" in props.target) {
56
+ return props.target.uuid;
57
+ }
58
+ }
59
+ }
60
+ function findClosestUuid(element2) {
61
+ const closestBlock = element2.closest("[data-uuid]");
62
+ if (closestBlock instanceof HTMLElement) {
63
+ const uuid = closestBlock.dataset.uuid;
64
+ if (uuid) {
65
+ return uuid;
66
+ }
67
+ }
68
+ }
69
+ async function onClick() {
70
+ const element2 = getElement();
71
+ if (!element2) {
72
+ return;
73
+ }
74
+ const closestUuid = findClosestUuid(element2);
75
+ if (closestUuid) {
76
+ eventBus.emit("select", closestUuid);
77
+ } else {
78
+ eventBus.emit("select:unselect");
79
+ }
80
+ await renderCycle();
81
+ eventBus.emit("scrollIntoView", {
82
+ element: element2
83
+ });
84
+ }
85
+ onBlokkliEvent("analyze:click-node", (e) => {
86
+ isFocused.value = false;
87
+ if (focusTimeout) {
88
+ window.clearTimeout(focusTimeout);
89
+ }
90
+ if (e.id === props.resultId) {
91
+ const el = getElement();
92
+ if (el === e.target && elButton.value) {
93
+ elButton.value.scrollIntoView({
94
+ behavior: "smooth",
95
+ block: "center"
96
+ });
97
+ isFocused.value = true;
98
+ focusTimeout = window.setTimeout(() => {
99
+ isFocused.value = false;
100
+ }, 1e3);
101
+ return;
102
+ }
103
+ }
104
+ });
105
+ </script>
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ resultId: string;
3
+ target: string | HTMLElement | {
4
+ uuid: string;
5
+ };
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ export default _default;
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <div
3
+ class="bk-pill bk-analyze-status"
4
+ :class="status === 'inapplicable' ? 'bk-is-mono' : 'bk-is-' + status"
5
+ >
6
+ {{ label }}
7
+ </div>
8
+ </template>
9
+
10
+ <script setup>
11
+ import { computed } from "#imports";
12
+ import { useAnalyzeHelper } from "../helper";
13
+ const props = defineProps({
14
+ status: { type: String, required: false, default: "inapplicable" }
15
+ });
16
+ const { getStatusLabel } = useAnalyzeHelper();
17
+ const label = computed(() => getStatusLabel(props.status ?? "inapplicable"));
18
+ </script>
@@ -0,0 +1,8 @@
1
+ import type { AnalyzeStatus } from '../analyzers/types.js';
2
+ type __VLS_Props = {
3
+ status?: AnalyzeStatus;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ status: AnalyzeStatus;
7
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ export default _default;
@@ -0,0 +1,92 @@
1
+ <template>
2
+ <svg :width="size" :height="size" :viewBox="`0 0 ${size} ${size}`">
3
+ <circle
4
+ v-if="data.length === 1"
5
+ :cx="radius"
6
+ :cy="radius"
7
+ :r="radius"
8
+ :fill="data[0]?.color"
9
+ />
10
+ <g v-else :transform="`translate(${radius}, ${radius})`">
11
+ <path
12
+ v-for="(segment, index) in segments"
13
+ :key="index"
14
+ :d="segment.path"
15
+ :fill="segment.color"
16
+ stroke-width="2"
17
+ stroke="white"
18
+ />
19
+ </g>
20
+ <circle :cx="radius" :cy="radius" :r="radius - thickness" fill="white" />
21
+ <text
22
+ v-if="percentage !== void 0"
23
+ x="50%"
24
+ y="50%"
25
+ dominant-baseline="middle"
26
+ text-anchor="middle"
27
+ fill="currentColor"
28
+ >
29
+ {{ percentage }}%
30
+ </text>
31
+ </svg>
32
+ </template>
33
+
34
+ <script setup>
35
+ import { computed } from "#imports";
36
+ const props = defineProps({
37
+ data: { type: Array, required: true },
38
+ radius: { type: Number, required: false, default: 34 },
39
+ thickness: { type: Number, required: false, default: 10 },
40
+ percentage: { type: Number, required: false, default: void 0 }
41
+ });
42
+ const size = computed(() => props.radius * 2);
43
+ const segments = computed(() => {
44
+ const total = props.data.reduce((sum, item) => sum + item.value, 0);
45
+ if (total === 0) return [];
46
+ let currentAngle = -90;
47
+ return props.data.map((item) => {
48
+ const percentage = item.value / total;
49
+ const angle = percentage * 360;
50
+ const startAngle = currentAngle;
51
+ const endAngle = currentAngle + angle;
52
+ const path = createPieSegment(
53
+ 0,
54
+ 0,
55
+ // center x, y
56
+ props.radius,
57
+ startAngle,
58
+ endAngle
59
+ );
60
+ currentAngle = endAngle;
61
+ return {
62
+ path,
63
+ color: item.color,
64
+ label: item.label,
65
+ value: item.value,
66
+ percentage
67
+ };
68
+ });
69
+ });
70
+ function createPieSegment(cx, cy, radius, startAngle, endAngle) {
71
+ const start = startAngle * Math.PI / 180;
72
+ const end = endAngle * Math.PI / 180;
73
+ const x1 = cx + radius * Math.cos(start);
74
+ const y1 = cy + radius * Math.sin(start);
75
+ const x2 = cx + radius * Math.cos(end);
76
+ const y2 = cy + radius * Math.sin(end);
77
+ const largeArc = endAngle - startAngle > 180 ? 1 : 0;
78
+ if (endAngle - startAngle >= 360) {
79
+ return `
80
+ M ${cx + radius} ${cy}
81
+ A ${radius} ${radius} 0 1 1 ${cx + radius} ${cy + 1e-3}
82
+ Z
83
+ `;
84
+ }
85
+ return `
86
+ M ${cx} ${cy}
87
+ L ${x1} ${y1}
88
+ A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2}
89
+ Z
90
+ `;
91
+ }
92
+ </script>
@@ -0,0 +1,17 @@
1
+ interface DataItem {
2
+ label: string;
3
+ value: number;
4
+ color: string;
5
+ }
6
+ type __VLS_Props = {
7
+ data: DataItem[];
8
+ radius?: number;
9
+ thickness?: number;
10
+ percentage?: number;
11
+ };
12
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
+ radius: number;
14
+ thickness: number;
15
+ percentage: number;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ export default _default;
@@ -0,0 +1,77 @@
1
+ <template>
2
+ <div class="bk-analyze-summary">
3
+ <div class="bk-analyze-summary-chart">
4
+ <Chart :data="summary" :percentage />
5
+ <ul>
6
+ <li v-for="item in summary" :key="item.status">
7
+ <div :style="{ backgroundColor: item.color }" />
8
+ <div>
9
+ <span>{{ item.label }}</span>
10
+ <span>{{ item.value }}</span>
11
+ </div>
12
+ </li>
13
+ </ul>
14
+ </div>
15
+ </div>
16
+ </template>
17
+
18
+ <script setup>
19
+ import { rgbaToString } from "#blokkli/helpers";
20
+ import { computed, useBlokkli } from "#imports";
21
+ import { useAnalyzeHelper } from "../helper";
22
+ import Chart from "./Chart.vue";
23
+ const props = defineProps({
24
+ results: { type: Array, required: true }
25
+ });
26
+ const { theme } = useBlokkli();
27
+ const { getStatusLabel } = useAnalyzeHelper();
28
+ const SORT = {
29
+ violation: 4,
30
+ incomplete: 3,
31
+ pass: 2,
32
+ inapplicable: 1
33
+ };
34
+ function getColor(status) {
35
+ if (status === "pass") {
36
+ return rgbaToString(theme.lime.value.normal);
37
+ } else if (status === "incomplete") {
38
+ return rgbaToString(theme.yellow.value.normal);
39
+ } else if (status === "violation") {
40
+ return rgbaToString(theme.red.value.normal);
41
+ }
42
+ return rgbaToString(theme.mono.value[200]);
43
+ }
44
+ const summary = computed(() => {
45
+ const byStatus = props.results.reduce(
46
+ (acc, result) => {
47
+ acc[result.status] ||= 0;
48
+ const nodes = Array.isArray(result.nodes) ? result.nodes : [result.nodes];
49
+ const total = nodes.reduce((acc2, node) => {
50
+ const targets = Array.isArray(node.targets) ? node.targets : [node.targets];
51
+ return acc2 + targets.length;
52
+ }, 0);
53
+ acc[result.status] += total;
54
+ return acc;
55
+ },
56
+ {}
57
+ );
58
+ return Object.entries(byStatus).map(([key, value]) => {
59
+ const status = key;
60
+ return {
61
+ status,
62
+ label: getStatusLabel(status),
63
+ value,
64
+ color: getColor(status)
65
+ };
66
+ }).filter((v) => v.status !== "inapplicable").sort((a, b) => {
67
+ return SORT[b.status] - SORT[a.status];
68
+ });
69
+ });
70
+ const percentage = computed(() => {
71
+ const total = summary.value.reduce((acc, item) => {
72
+ return acc + item.value;
73
+ }, 0);
74
+ const pass = summary.value.find((v) => v.status === "pass")?.value ?? 0;
75
+ return Math.round(pass / total * 100);
76
+ });
77
+ </script>
@@ -0,0 +1,6 @@
1
+ import type { AnalyzeResultMapped } from '../analyzers/types.js';
2
+ type __VLS_Props = {
3
+ results: AnalyzeResultMapped[];
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { type RunOptions } from 'axe-core';
2
+ declare const _default: (options?: {
3
+ /**
4
+ * Selectors to exclude.
5
+ */
6
+ exclude?: string[];
7
+ /**
8
+ * Run options passed to axe-core.
9
+ */
10
+ runOptions?: RunOptions;
11
+ } | undefined) => import("./types.js").Analyzer;
12
+ export default _default;
@@ -0,0 +1,75 @@
1
+ import { defineAnalyzer } from "./defineAnalyzer.js";
2
+ import axe from "axe-core";
3
+ import { falsy } from "#blokkli/helpers";
4
+ import de from "axe-core/locales/de.json";
5
+ import fr from "axe-core/locales/fr.json";
6
+ import it from "axe-core/locales/it.json";
7
+ function mapAxeNode(node) {
8
+ return {
9
+ description: node.failureSummary,
10
+ impact: node.impact ?? void 0,
11
+ targets: node.target.map((v) => {
12
+ if (Array.isArray(v)) {
13
+ return null;
14
+ }
15
+ return v;
16
+ }).filter(falsy)
17
+ };
18
+ }
19
+ function mapAxeResult(result, status) {
20
+ return {
21
+ id: result.id,
22
+ title: result.description,
23
+ category: "accessibility",
24
+ description: result.help,
25
+ link: result.helpUrl,
26
+ status,
27
+ impact: result.impact ?? void 0,
28
+ nodes: result.nodes.map(mapAxeNode)
29
+ };
30
+ }
31
+ function mapAxeResults(results, status) {
32
+ return results.map((v) => mapAxeResult(v, status));
33
+ }
34
+ function getLocale(langcode) {
35
+ if (langcode === "de") {
36
+ return de;
37
+ } else if (langcode === "fr") {
38
+ return fr;
39
+ } else if (langcode === "it") {
40
+ return it;
41
+ }
42
+ return null;
43
+ }
44
+ export default defineAnalyzer((options) => {
45
+ const userExclude = options?.exclude ?? [];
46
+ const elementContext = {
47
+ exclude: [
48
+ "#nuxt-devtools-container",
49
+ ".bk",
50
+ ".bk-sidebar",
51
+ "#bk-animation-canvas-webgl",
52
+ ...userExclude
53
+ ]
54
+ };
55
+ return {
56
+ id: "axe",
57
+ requireRawPage: true,
58
+ init: function(context) {
59
+ const locale = getLocale(context.interfaceLangcode) ?? {};
60
+ axe.configure({
61
+ locale
62
+ });
63
+ },
64
+ run: function() {
65
+ return axe.run(elementContext, options?.runOptions ?? {}).then((result) => {
66
+ return [
67
+ ...mapAxeResults(result.incomplete, "incomplete"),
68
+ ...mapAxeResults(result.inapplicable, "inapplicable"),
69
+ ...mapAxeResults(result.passes, "pass"),
70
+ ...mapAxeResults(result.violations, "violation")
71
+ ];
72
+ });
73
+ }
74
+ };
75
+ });
@@ -0,0 +1,4 @@
1
+ import type { Analyzer } from './types.js';
2
+ type AnalyzerInit<O extends object> = (options?: O) => Analyzer;
3
+ export declare function defineAnalyzer<O extends object, HasOptions = object extends O ? true : false>(init: AnalyzerInit<O>): HasOptions extends true ? (options?: O) => Analyzer : (options: O) => Analyzer;
4
+ export {};
@@ -0,0 +1,5 @@
1
+ export function defineAnalyzer(init) {
2
+ return function(options) {
3
+ return init(options);
4
+ };
5
+ }
@@ -0,0 +1,32 @@
1
+ import type { FieldListItemTyped } from '#blokkli-build/generated-types';
2
+ import type { StateProvider } from '#blokkli/helpers/stateProvider';
3
+ import type { TextProvider } from '#blokkli/helpers/textProvider';
4
+ import type { MutatedField } from '#blokkli/types';
5
+ import type { AnalyzeCategory, AnalyzeNode, AnalyzeResult, AnalyzeStatus } from '../types.js';
6
+ import { type TextElement } from './collectTextElements.js';
7
+ export declare class AnalyzerContext {
8
+ readonly langcode: string;
9
+ readonly interfaceLangcode: string;
10
+ readonly providerRootElement: HTMLElement;
11
+ private state;
12
+ readonly $t: TextProvider;
13
+ readonly mutatedFields: Readonly<MutatedField[]>;
14
+ /**
15
+ * The collected text elements.
16
+ */
17
+ private textElements;
18
+ constructor(langcode: string, interfaceLangcode: string, providerRootElement: HTMLElement, state: StateProvider, $t: TextProvider);
19
+ /**
20
+ * Get the field list item for a block UUID.
21
+ */
22
+ getFieldListItem(uuid: string): FieldListItemTyped | undefined;
23
+ /**
24
+ * Returns an array of all text elements inside the provider root element.
25
+ *
26
+ * A 'text element' is defined as the lowest block element that contains text.
27
+ * For example, a structure like `<p><span>Foobar</span> <strong>Test</strong></p>`
28
+ * would return as a single text element containing "Foobar Test".
29
+ */
30
+ getTextElements(): Readonly<TextElement[]>;
31
+ defineResult(id: string, title: string, category: AnalyzeCategory, description: string, status: AnalyzeStatus, nodes?: AnalyzeNode | AnalyzeNode[]): AnalyzeResult;
32
+ }
@@ -0,0 +1,45 @@
1
+ import { collectTextElements } from "./collectTextElements.js";
2
+ export class AnalyzerContext {
3
+ constructor(langcode, interfaceLangcode, providerRootElement, state, $t) {
4
+ this.langcode = langcode;
5
+ this.interfaceLangcode = interfaceLangcode;
6
+ this.providerRootElement = providerRootElement;
7
+ this.state = state;
8
+ this.$t = $t;
9
+ this.mutatedFields = JSON.parse(JSON.stringify(state.mutatedFields.value));
10
+ }
11
+ mutatedFields;
12
+ /**
13
+ * The collected text elements.
14
+ */
15
+ textElements = null;
16
+ /**
17
+ * Get the field list item for a block UUID.
18
+ */
19
+ getFieldListItem(uuid) {
20
+ return this.state.getFieldListItem(uuid);
21
+ }
22
+ /**
23
+ * Returns an array of all text elements inside the provider root element.
24
+ *
25
+ * A 'text element' is defined as the lowest block element that contains text.
26
+ * For example, a structure like `<p><span>Foobar</span> <strong>Test</strong></p>`
27
+ * would return as a single text element containing "Foobar Test".
28
+ */
29
+ getTextElements() {
30
+ if (!this.textElements) {
31
+ this.textElements = collectTextElements(this.providerRootElement);
32
+ }
33
+ return this.textElements;
34
+ }
35
+ defineResult(id, title, category, description, status, nodes = []) {
36
+ return {
37
+ id,
38
+ title,
39
+ category,
40
+ description,
41
+ status,
42
+ nodes
43
+ };
44
+ }
45
+ }