@blokkli/editor 2.0.0-alpha.13 → 2.0.0-alpha.15

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 (289) hide show
  1. package/dist/module.d.mts +1 -1
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +4873 -1167
  4. package/dist/modules/drupal/graphql/base/fragment.ParagraphsBlokkliConfigInput.graphql +31 -0
  5. package/dist/modules/drupal/graphql/base/fragment.blokkliProps.graphql +1 -0
  6. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +5 -0
  7. package/dist/modules/drupal/graphql/base/query.pbEntityConfig.graphql +5 -0
  8. package/dist/modules/drupal/graphql/features/publishNew.graphql +1 -4
  9. package/dist/modules/drupal/graphql/features/scheduler.graphql +31 -0
  10. package/dist/modules/drupal/graphql/features/transform.graphql +9 -1
  11. package/dist/modules/drupal/graphql/features/transform_host.graphql +38 -0
  12. package/dist/modules/drupal/graphql/mutations/update_host_options.graphql +15 -0
  13. package/dist/modules/drupal/index.d.mts +1 -1
  14. package/dist/modules/drupal/index.mjs +37 -7
  15. package/dist/modules/drupal/runtime/adapter/index.js +140 -5
  16. package/dist/runtime/adapter/index.d.ts +90 -1
  17. package/dist/runtime/blokkliPlugins/AddAction/index.vue +27 -3
  18. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue +65 -0
  19. package/dist/runtime/blokkliPlugins/BlockIndicator/index.vue.d.ts +26 -0
  20. package/dist/runtime/blokkliPlugins/ContextMenu/Menu/index.vue +3 -0
  21. package/dist/runtime/blokkliPlugins/ContextMenu/index.vue +3 -2
  22. package/dist/runtime/blokkliPlugins/DroppableEdit/index.vue +3 -3
  23. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue +49 -11
  24. package/dist/runtime/blokkliPlugins/ItemDropdown/index.vue.d.ts +29 -15
  25. package/dist/runtime/blokkliPlugins/MenuButton/index.vue.d.ts +2 -2
  26. package/dist/runtime/blokkliPlugins/Sidebar/Detached/index.vue +6 -7
  27. package/dist/runtime/blokkliPlugins/Sidebar/index.vue +2 -9
  28. package/dist/runtime/blokkliPlugins/Sidebar/index.vue.d.ts +1 -1
  29. package/dist/runtime/blokkliPlugins/ViewOption/index.vue +6 -3
  30. package/dist/runtime/blokkliPlugins/index.d.ts +8 -7
  31. package/dist/runtime/blokkliPlugins/index.js +15 -13
  32. package/dist/runtime/components/Blocks/Fragment/icon.svg +1 -1
  33. package/dist/runtime/components/BlokkliProvider.vue +1 -0
  34. package/dist/runtime/components/BlokkliProvider.vue.d.ts +1 -0
  35. package/dist/runtime/components/Edit/Actions/index.vue +39 -67
  36. package/dist/runtime/components/Edit/AddListItem/index.vue +2 -5
  37. package/dist/runtime/components/Edit/AddListItem/index.vue.d.ts +1 -1
  38. package/dist/runtime/components/Edit/AddListItemIcon/index.vue +19 -0
  39. package/dist/runtime/components/Edit/AddListItemIcon/index.vue.d.ts +15 -0
  40. package/dist/runtime/components/Edit/AppMenu/index.vue +5 -5
  41. package/dist/runtime/components/Edit/Dialog/index.vue +5 -1
  42. package/dist/runtime/components/Edit/Dialog/index.vue.d.ts +1 -1
  43. package/dist/runtime/components/Edit/DiffViewer/State.vue +276 -0
  44. package/dist/runtime/components/Edit/DiffViewer/State.vue.d.ts +16 -0
  45. package/dist/runtime/components/Edit/DragInteractions/index.vue +35 -6
  46. package/dist/runtime/components/Edit/EditProvider.vue +46 -35
  47. package/dist/runtime/components/Edit/Features/AddList/index.vue +15 -25
  48. package/dist/runtime/components/Edit/Features/Analyze/Overlay/fragment.glsl +58 -0
  49. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue +168 -0
  50. package/dist/runtime/components/Edit/Features/Analyze/Overlay/index.vue.d.ts +9 -0
  51. package/dist/runtime/components/Edit/Features/Analyze/Overlay/vertex.glsl +72 -0
  52. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue +159 -0
  53. package/dist/runtime/components/Edit/Features/Analyze/Renderer.vue.d.ts +7 -0
  54. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue +100 -0
  55. package/dist/runtime/components/Edit/Features/Analyze/Results/Results.vue.d.ts +6 -0
  56. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue +56 -0
  57. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItem.vue.d.ts +3 -0
  58. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue +87 -0
  59. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodes.vue.d.ts +7 -0
  60. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue +101 -0
  61. package/dist/runtime/components/Edit/Features/Analyze/Results/ResultsItemNodesTarget.vue.d.ts +8 -0
  62. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue +18 -0
  63. package/dist/runtime/components/Edit/Features/Analyze/Results/Status.vue.d.ts +8 -0
  64. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue +92 -0
  65. package/dist/runtime/components/Edit/Features/Analyze/Summary/Chart.vue.d.ts +17 -0
  66. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue +77 -0
  67. package/dist/runtime/components/Edit/Features/Analyze/Summary/index.vue.d.ts +6 -0
  68. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.d.ts +12 -0
  69. package/dist/runtime/components/Edit/Features/Analyze/analyzers/axe.js +75 -0
  70. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.d.ts +4 -0
  71. package/dist/runtime/components/Edit/Features/Analyze/analyzers/defineAnalyzer.js +5 -0
  72. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.d.ts +32 -0
  73. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/Context.js +45 -0
  74. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.d.ts +5 -0
  75. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/collectTextElements.js +95 -0
  76. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.d.ts +3 -0
  77. package/dist/runtime/components/Edit/Features/Analyze/analyzers/helpers/normalizeArray.js +13 -0
  78. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.d.ts +2 -0
  79. package/dist/runtime/components/Edit/Features/Analyze/analyzers/index.js +2 -0
  80. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.d.ts +2 -0
  81. package/dist/runtime/components/Edit/Features/Analyze/analyzers/readability.js +165 -0
  82. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.d.ts +44 -0
  83. package/dist/runtime/components/Edit/Features/Analyze/analyzers/types.js +0 -0
  84. package/dist/runtime/components/Edit/Features/Analyze/helper.d.ts +5 -0
  85. package/dist/runtime/components/Edit/Features/Analyze/helper.js +28 -0
  86. package/dist/runtime/components/Edit/Features/Analyze/index.vue +44 -0
  87. package/dist/runtime/components/Edit/Features/Anchors/Renderer.vue +136 -0
  88. package/dist/runtime/components/Edit/Features/Anchors/index.vue +32 -0
  89. package/dist/runtime/components/Edit/Features/Anchors/index.vue.d.ts +2 -0
  90. package/dist/runtime/components/Edit/Features/Artboard/Overview/index.vue +25 -13
  91. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue +296 -0
  92. package/dist/runtime/components/Edit/Features/Artboard/Renderer.vue.d.ts +7 -0
  93. package/dist/runtime/components/Edit/Features/Artboard/index.vue +10 -245
  94. package/dist/runtime/components/Edit/Features/Assistant/index.vue +3 -2
  95. package/dist/runtime/components/Edit/Features/BlockAddList/index.vue +4 -4
  96. package/dist/runtime/components/Edit/Features/Clipboard/index.vue +161 -28
  97. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue +16 -4
  98. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/Group/index.vue.d.ts +0 -1
  99. package/dist/runtime/components/Edit/Features/CommandPalette/Palette/index.vue +4 -53
  100. package/dist/runtime/components/Edit/Features/CommandPalette/index.vue +3 -2
  101. package/dist/runtime/components/Edit/Features/Conversions/index.vue +12 -14
  102. package/dist/runtime/components/Edit/Features/Debug/Viewport/index.vue +14 -0
  103. package/dist/runtime/components/Edit/Features/Debug/index.vue +27 -24
  104. package/dist/runtime/components/Edit/Features/Diff/DiffView/index.vue +13 -190
  105. package/dist/runtime/components/Edit/Features/Diff/index.vue +2 -2
  106. package/dist/runtime/components/Edit/Features/DraggingOverlay/DragItems/index.vue +4 -4
  107. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/fragment.glsl +1 -1
  108. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/index.vue +35 -71
  109. package/dist/runtime/components/Edit/Features/DraggingOverlay/DropTargets/vertex.glsl +1 -1
  110. package/dist/runtime/components/Edit/Features/DraggingOverlay/index.vue +62 -48
  111. package/dist/runtime/components/Edit/Features/EditForm/Frame/index.vue +3 -3
  112. package/dist/runtime/components/Edit/Features/EditForm/index.vue +3 -3
  113. package/dist/runtime/components/Edit/Features/EditableField/index.vue +6 -2
  114. package/dist/runtime/components/Edit/Features/EditableMask/index.vue +3 -20
  115. package/dist/runtime/components/Edit/Features/EntityTitle/index.vue +33 -1
  116. package/dist/runtime/components/Edit/Features/Fragments/index.vue +3 -2
  117. package/dist/runtime/components/Edit/Features/History/index.vue +35 -12
  118. package/dist/runtime/components/Edit/Features/ImportExisting/Dialog/index.vue +6 -2
  119. package/dist/runtime/components/Edit/Features/ImportExisting/index.vue +3 -2
  120. package/dist/runtime/components/Edit/Features/Library/index.vue +11 -9
  121. package/dist/runtime/components/Edit/Features/MediaLibrary/Library/index.vue +5 -8
  122. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/fragment.glsl +1 -1
  123. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/index.vue +9 -4
  124. package/dist/runtime/components/Edit/Features/MultiSelect/Overlay/vertex.glsl +1 -1
  125. package/dist/runtime/components/Edit/Features/MultiSelect/index.vue +8 -14
  126. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue +3 -2
  127. package/dist/runtime/components/Edit/Features/Options/Form/Checkbox/index.vue.d.ts +2 -0
  128. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue +9 -3
  129. package/dist/runtime/components/Edit/Features/Options/Form/Item.vue.d.ts +0 -1
  130. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue +37 -19
  131. package/dist/runtime/components/Edit/Features/Options/Form/Radios/index.vue.d.ts +8 -2
  132. package/dist/runtime/components/Edit/Features/Options/Form/index.vue +81 -37
  133. package/dist/runtime/components/Edit/Features/Options/Form/index.vue.d.ts +5 -5
  134. package/dist/runtime/components/Edit/Features/Options/index.vue +30 -6
  135. package/dist/runtime/components/Edit/Features/PreviewGrant/index.vue +3 -3
  136. package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue +41 -14
  137. package/dist/runtime/components/Edit/Features/Publish/Dialog/Item.vue.d.ts +2 -0
  138. package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue +47 -0
  139. package/dist/runtime/components/Edit/Features/Publish/Dialog/PublishOption.vue.d.ts +19 -0
  140. package/dist/runtime/components/Edit/Features/Publish/Dialog/ScheduleDate.vue +183 -0
  141. package/dist/runtime/components/Edit/Features/Publish/Dialog/ScheduleDate.vue.d.ts +13 -0
  142. package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue +83 -0
  143. package/dist/runtime/components/Edit/Features/Publish/Dialog/Summary.vue.d.ts +9 -0
  144. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue +381 -128
  145. package/dist/runtime/components/Edit/Features/Publish/Dialog/index.vue.d.ts +3 -14
  146. package/dist/runtime/components/Edit/Features/Publish/index.vue +37 -22
  147. package/dist/runtime/components/Edit/Features/Revert/index.vue +3 -3
  148. package/dist/runtime/components/Edit/Features/Search/index.vue +3 -2
  149. package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue +54 -0
  150. package/dist/runtime/components/Edit/Features/Selection/AddButtons/AddButtonsField.vue.d.ts +14 -0
  151. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue +120 -0
  152. package/dist/runtime/components/Edit/Features/Selection/AddButtons/Overlay/index.vue.d.ts +15 -0
  153. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue +459 -0
  154. package/dist/runtime/components/Edit/Features/Selection/AddButtons/index.vue.d.ts +6 -0
  155. package/dist/runtime/components/Edit/Features/Selection/Overlay/fragment.glsl +14 -9
  156. package/dist/runtime/components/Edit/Features/Selection/Overlay/index.vue +32 -11
  157. package/dist/runtime/components/Edit/Features/Selection/Overlay/vertex.glsl +1 -1
  158. package/dist/runtime/components/Edit/Features/Selection/index.vue +76 -7
  159. package/dist/runtime/components/Edit/Features/Settings/Dialog/FeatureSetting/index.vue +12 -17
  160. package/dist/runtime/components/Edit/Features/Settings/index.vue +11 -25
  161. package/dist/runtime/components/Edit/Features/Theme/Color/index.vue +5 -1
  162. package/dist/runtime/components/Edit/Features/Theme/index.vue +2 -1
  163. package/dist/runtime/components/Edit/Features/TouchActionBar/index.vue +3 -2
  164. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue +198 -0
  165. package/dist/runtime/components/Edit/Features/Transform/Dialog/index.vue.d.ts +13 -0
  166. package/dist/runtime/components/Edit/Features/Transform/index.vue +155 -44
  167. package/dist/runtime/components/Edit/Form/Datepicker/index.vue +198 -0
  168. package/dist/runtime/components/Edit/Form/Datepicker/index.vue.d.ts +15 -0
  169. package/dist/runtime/components/Edit/Form/Radio/index.vue +33 -0
  170. package/dist/runtime/components/Edit/Form/Radio/index.vue.d.ts +20 -0
  171. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue +37 -0
  172. package/dist/runtime/components/Edit/Form/RadioTabs/index.vue.d.ts +22 -0
  173. package/dist/runtime/components/Edit/Form/Select/index.vue +29 -0
  174. package/dist/runtime/components/Edit/Form/Select/index.vue.d.ts +20 -0
  175. package/dist/runtime/components/Edit/Form/Text/index.vue +33 -0
  176. package/dist/runtime/components/Edit/Form/Text/index.vue.d.ts +19 -0
  177. package/dist/runtime/components/Edit/Form/Textarea/index.vue +13 -6
  178. package/dist/runtime/components/Edit/Form/Textarea/index.vue.d.ts +4 -0
  179. package/dist/runtime/components/Edit/FormOverlay/index.vue +1 -1
  180. package/dist/runtime/components/Edit/Indicators/index.vue +123 -0
  181. package/dist/runtime/components/Edit/Indicators/index.vue.d.ts +2 -0
  182. package/dist/runtime/components/Edit/ItemIcon/index.vue +2 -1
  183. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue +66 -0
  184. package/dist/runtime/components/Edit/Konami/Game/PixelGrid.vue.d.ts +7 -0
  185. package/dist/runtime/components/Edit/Konami/Game/blokkli.png +0 -0
  186. package/dist/runtime/components/Edit/Konami/Game/charmap.d.ts +2 -0
  187. package/dist/runtime/components/Edit/Konami/Game/charmap.js +168 -0
  188. package/dist/runtime/components/Edit/Konami/Game/index.vue +752 -0
  189. package/dist/runtime/components/Edit/Konami/Game/index.vue.d.ts +6 -0
  190. package/dist/runtime/components/Edit/Konami/Game/textRendering.d.ts +8 -0
  191. package/dist/runtime/components/Edit/Konami/Game/textRendering.js +138 -0
  192. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.d.ts +9 -0
  193. package/dist/runtime/components/Edit/Konami/Game/useIconRendering.js +130 -0
  194. package/dist/runtime/components/Edit/Konami/index.vue +44 -0
  195. package/dist/runtime/components/Edit/Konami/index.vue.d.ts +2 -0
  196. package/dist/runtime/components/Edit/Loading/index.vue +6 -2
  197. package/dist/runtime/components/Edit/Loading/index.vue.d.ts +2 -0
  198. package/dist/runtime/components/Edit/Messages/index.vue +8 -3
  199. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue +17 -0
  200. package/dist/runtime/components/Edit/PluginConfigForm/Checkbox/index.vue.d.ts +11 -0
  201. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue +37 -0
  202. package/dist/runtime/components/Edit/PluginConfigForm/Options/index.vue.d.ts +11 -0
  203. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue +43 -0
  204. package/dist/runtime/components/Edit/PluginConfigForm/Text/index.vue.d.ts +11 -0
  205. package/dist/runtime/components/Edit/PluginConfigForm/index.vue +57 -0
  206. package/dist/runtime/components/Edit/PluginConfigForm/index.vue.d.ts +16 -0
  207. package/dist/runtime/components/Edit/PreviewProvider.vue +3 -4
  208. package/dist/runtime/components/Edit/RelativeTime/index.vue +3 -2
  209. package/dist/runtime/components/Edit/ShortcutIndicator/index.vue +8 -3
  210. package/dist/runtime/components/Edit/SystemRequirements/index.vue +3 -3
  211. package/dist/runtime/components/Edit/Toolbar/index.vue +3 -2
  212. package/dist/runtime/components/Edit/Transition/index.vue +41 -0
  213. package/dist/runtime/components/Edit/Transition/index.vue.d.ts +19 -0
  214. package/dist/runtime/components/Edit/index.d.ts +24 -15
  215. package/dist/runtime/components/Edit/index.js +46 -28
  216. package/dist/runtime/composables/defineBlokkli.js +7 -3
  217. package/dist/runtime/composables/defineBlokkliFeature.d.ts +4 -7
  218. package/dist/runtime/composables/defineBlokkliProvider.d.ts +11 -0
  219. package/dist/runtime/composables/defineBlokkliProvider.js +46 -0
  220. package/dist/runtime/composables/useBlokkliHelper.js +1 -1
  221. package/dist/runtime/constants/index.d.ts +3 -0
  222. package/dist/runtime/constants/index.js +3 -0
  223. package/dist/runtime/css/output.css +1 -1
  224. package/dist/runtime/helpers/addElementClasses.d.ts +2 -0
  225. package/dist/runtime/helpers/addElementClasses.js +24 -0
  226. package/dist/runtime/helpers/animationProvider.d.ts +4 -2
  227. package/dist/runtime/helpers/animationProvider.js +7 -2
  228. package/dist/runtime/helpers/bundles/index.d.ts +1 -0
  229. package/dist/runtime/helpers/bundles/index.js +4 -0
  230. package/dist/runtime/helpers/composables/useStickyToolbar.d.ts +20 -0
  231. package/dist/runtime/helpers/composables/useStickyToolbar.js +215 -0
  232. package/dist/runtime/helpers/definitionProvider.d.ts +2 -1
  233. package/dist/runtime/helpers/definitionProvider.js +17 -0
  234. package/dist/runtime/helpers/domProvider.d.ts +2 -1
  235. package/dist/runtime/helpers/domProvider.js +89 -43
  236. package/dist/runtime/helpers/dropTargets/index.d.ts +6 -0
  237. package/dist/runtime/helpers/dropTargets/index.js +49 -0
  238. package/dist/runtime/helpers/eventBus.d.ts +1 -1
  239. package/dist/runtime/helpers/eventBus.js +2 -2
  240. package/dist/runtime/helpers/index.d.ts +10 -1
  241. package/dist/runtime/helpers/index.js +57 -0
  242. package/dist/runtime/helpers/indicatorsProvider.d.ts +10 -0
  243. package/dist/runtime/helpers/indicatorsProvider.js +23 -0
  244. package/dist/runtime/helpers/keyboardProvider.d.ts +2 -0
  245. package/dist/runtime/helpers/keyboardProvider.js +17 -1
  246. package/dist/runtime/helpers/pluginProvider.d.ts +10 -0
  247. package/dist/runtime/helpers/pluginProvider.js +33 -0
  248. package/dist/runtime/helpers/renderCycle.d.ts +1 -0
  249. package/dist/runtime/helpers/renderCycle.js +10 -0
  250. package/dist/runtime/helpers/runtimeHelpers/index.js +14 -11
  251. package/dist/runtime/helpers/selectionProvider.d.ts +16 -0
  252. package/dist/runtime/helpers/selectionProvider.js +47 -35
  253. package/dist/runtime/helpers/stateProvider.d.ts +7 -2
  254. package/dist/runtime/helpers/stateProvider.js +89 -14
  255. package/dist/runtime/helpers/storageProvider.d.ts +4 -3
  256. package/dist/runtime/helpers/storageProvider.js +56 -3
  257. package/dist/runtime/helpers/symbols.d.ts +1 -0
  258. package/dist/runtime/helpers/symbols.js +1 -0
  259. package/dist/runtime/helpers/textProvider.js +6 -0
  260. package/dist/runtime/helpers/themeProvider.d.ts +2 -0
  261. package/dist/runtime/helpers/themeProvider.js +4 -1
  262. package/dist/runtime/helpers/transform.js +1 -3
  263. package/dist/runtime/helpers/uiProvider.d.ts +9 -2
  264. package/dist/runtime/helpers/uiProvider.js +72 -47
  265. package/dist/runtime/helpers/useTransitionedValue.d.ts +18 -0
  266. package/dist/runtime/helpers/useTransitionedValue.js +57 -0
  267. package/dist/runtime/icons/anchor.svg +1 -0
  268. package/dist/runtime/icons/arrow-left.svg +1 -1
  269. package/dist/runtime/icons/arrow-right.svg +1 -1
  270. package/dist/runtime/icons/arrow-top-right.svg +1 -0
  271. package/dist/runtime/icons/calendar-clock.svg +1 -0
  272. package/dist/runtime/icons/chart.svg +1 -0
  273. package/dist/runtime/icons/copy.svg +1 -0
  274. package/dist/runtime/icons/cursor-move.svg +1 -1
  275. package/dist/runtime/icons/diff.svg +1 -1
  276. package/dist/runtime/icons/eye-off.svg +1 -0
  277. package/dist/runtime/icons/eye.svg +1 -1
  278. package/dist/runtime/icons/info.svg +1 -1
  279. package/dist/runtime/icons/link.svg +1 -0
  280. package/dist/runtime/icons/speedometer.svg +1 -0
  281. package/dist/runtime/types/blokkOptions.d.ts +8 -0
  282. package/dist/runtime/types/index.d.ts +172 -6
  283. package/dist/runtime/types/theme.d.ts +2 -1
  284. package/dist/shared/{editor.gz_ac6uT.d.mts → editor.CKsrTpc1.d.mts} +1 -1
  285. package/package.json +20 -5
  286. package/dist/runtime/components/Edit/Features/FieldAreas/Overlay/index.vue +0 -22
  287. package/dist/runtime/components/Edit/Features/FieldAreas/index.vue +0 -41
  288. /package/dist/runtime/components/Edit/Features/{FieldAreas/Overlay → Analyze}/index.vue.d.ts +0 -0
  289. /package/dist/runtime/components/Edit/Features/{FieldAreas/index.vue.d.ts → Anchors/Renderer.vue.d.ts} +0 -0
@@ -32,13 +32,13 @@
32
32
  "
33
33
  icon="reusable"
34
34
  color="lime"
35
- item-bundle="from_library"
35
+ :item-bundle="BUNDLE_FROM_LIBRARY"
36
36
  :disabled="!fromLibraryAllowedInList"
37
37
  @placed="placedAction = $event"
38
38
  />
39
39
 
40
40
  <Teleport to="body">
41
- <transition appear name="bk-slide-up" :duration="300">
41
+ <BlokkliTransition name="slide-up">
42
42
  <ReusableDialog
43
43
  v-if="showReusableDialog && selectedItem"
44
44
  :uuid="selectedItem.uuid"
@@ -46,18 +46,18 @@
46
46
  @confirm="onMakeReusable"
47
47
  @cancel="showReusableDialog = false"
48
48
  />
49
- </transition>
49
+ </BlokkliTransition>
50
50
  </Teleport>
51
51
 
52
52
  <Teleport to="body">
53
- <transition appear name="bk-slide-in" :duration="200">
53
+ <BlokkliTransition name="slide-in">
54
54
  <LibraryDialog
55
55
  v-if="placedAction && adapter.getLibraryItems"
56
56
  :field="placedAction.field"
57
57
  @close="placedAction = null"
58
58
  @submit="onAddLibraryItem"
59
59
  />
60
- </transition>
60
+ </BlokkliTransition>
61
61
  </Teleport>
62
62
  <EditReusable
63
63
  v-if="editingLibraryItem"
@@ -73,7 +73,9 @@ import { PluginItemAction, PluginAddAction } from "#blokkli/plugins";
73
73
  import ReusableDialog from "./ReusableDialog/index.vue";
74
74
  import LibraryDialog from "./LibraryDialog/index.vue";
75
75
  import EditReusable from "./EditReusable/index.vue";
76
+ import { BlokkliTransition } from "#blokkli/components";
76
77
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
78
+ import { BUNDLE_FROM_LIBRARY } from "#blokkli/constants";
77
79
  const { adapter } = defineBlokkliFeature({
78
80
  id: "library",
79
81
  icon: "reusable",
@@ -126,7 +128,7 @@ const itemBundle = computed(
126
128
  () => selectedItem?.value ? types.getBlockBundleDefinition(selectedItem.value.itemBundle) : null
127
129
  );
128
130
  const isReusable = computed(
129
- () => selection.blocks.value.length && selection.blocks.value.every((v) => v.itemBundle === "from_library")
131
+ () => selection.blocks.value.length && selection.blocks.value.every((v) => v.itemBundle === BUNDLE_FROM_LIBRARY)
130
132
  );
131
133
  async function onMakeReusable(label) {
132
134
  showReusableDialog.value = false;
@@ -143,15 +145,15 @@ async function onMakeReusable(label) {
143
145
  eventBus.emit("select:end");
144
146
  }
145
147
  const isSupportedOnEntity = computed(
146
- () => types.generallyAvailableBundles.find((v) => v.id === "from_library")
148
+ () => types.generallyAvailableBundles.find((v) => v.id === BUNDLE_FROM_LIBRARY)
147
149
  );
148
150
  const fromLibraryAllowedInList = computed(() => {
149
151
  if (!selection.uuids.value.length) {
150
152
  return !!types.generallyAvailableBundles.find(
151
- (v) => v.id === "from_library"
153
+ (v) => v.id === BUNDLE_FROM_LIBRARY
152
154
  );
153
155
  }
154
- return types.allowedTypesInList.value.includes("from_library");
156
+ return types.allowedTypesInList.value.includes(BUNDLE_FROM_LIBRARY);
155
157
  });
156
158
  const canMakeReusable = computed(
157
159
  () => !isReusable.value && itemBundle?.value?.allowReusable && fromLibraryAllowedInList.value
@@ -35,14 +35,11 @@
35
35
  </option>
36
36
  </select>
37
37
  </label>
38
- <label
38
+ <FormToggle
39
39
  v-else-if="filter.filter.type === 'checkbox'"
40
- class="bk-checkbox-toggle"
41
- >
42
- <input v-model="filterValues[filter.key]" type="checkbox" />
43
- <div />
44
- <span>{{ filter.filter.label }}</span>
45
- </label>
40
+ v-model="filterValues[filter.key]"
41
+ :label="filter.filter.label"
42
+ />
46
43
  </div>
47
44
  </div>
48
45
  <div
@@ -83,7 +80,7 @@ import {
83
80
  watch,
84
81
  nextTick
85
82
  } from "#imports";
86
- import { Sortli, Icon, Pagination } from "#blokkli/components";
83
+ import { Sortli, Icon, Pagination, FormToggle } from "#blokkli/components";
87
84
  import Item from "./Item.vue";
88
85
  import { buildDraggableItem, falsy } from "#blokkli/helpers";
89
86
  import onBlokkliEvent from "#blokkli/helpers/composables/onBlokkliEvent";
@@ -1,6 +1,6 @@
1
1
  #version 300 es
2
2
 
3
- precision mediump float;
3
+ precision highp float;
4
4
 
5
5
  in float v_intersecting;
6
6
  in float v_is_select_rect;
@@ -25,6 +25,7 @@ const props = defineProps({
25
25
  isPressingControl: { type: Boolean, required: true },
26
26
  gl: { type: null, required: true }
27
27
  });
28
+ const startTimestamp = Date.now();
28
29
  defineEmits(["select"]);
29
30
  class MultiSelectRectangleBufferCollector extends RectangleBufferCollector {
30
31
  getBufferInfo(offset, scale) {
@@ -95,7 +96,7 @@ class MultiSelectRectangleBufferCollector extends RectangleBufferCollector {
95
96
  }
96
97
  }
97
98
  const collector = new MultiSelectRectangleBufferCollector(props.gl);
98
- const thick = 100;
99
+ const thick = 300;
99
100
  collector.addRectangle(
100
101
  {
101
102
  width: 1e3,
@@ -180,7 +181,6 @@ function getSelectRect(offset, scale) {
180
181
  };
181
182
  return { shader, check };
182
183
  }
183
- const now = Date.now();
184
184
  onBlokkliEvent("canvas:draw", (e) => {
185
185
  mouseX = e.mouseX;
186
186
  mouseY = e.mouseY;
@@ -188,7 +188,7 @@ onBlokkliEvent("canvas:draw", (e) => {
188
188
  const { nested } = collector.getSelectedUuids(check);
189
189
  const shouldSelectAll = props.isPressingControl || !nested.length;
190
190
  props.gl.useProgram(programInfo.program);
191
- const time = (Date.now() - now) / 1e3;
191
+ const time = (Date.now() - startTimestamp) / 1e3;
192
192
  setUniforms(programInfo, uniforms);
193
193
  setUniforms(programInfo, {
194
194
  u_select_all: shouldSelectAll ? 1 : 0,
@@ -223,7 +223,12 @@ function getUuidsToSelect() {
223
223
  }
224
224
  onBeforeUnmount(() => {
225
225
  props.gl.clear(props.gl.COLOR_BUFFER_BIT);
226
- eventBus.emit("select:end", getUuidsToSelect());
226
+ const diff = Date.now() - startTimestamp;
227
+ if (diff > 175) {
228
+ eventBus.emit("select:end", getUuidsToSelect());
229
+ } else {
230
+ eventBus.emit("select:end");
231
+ }
227
232
  logger.log("MultiSelectOverlay unmounted");
228
233
  });
229
234
  </script>
@@ -1,6 +1,6 @@
1
1
  #version 300 es
2
2
 
3
- precision mediump float;
3
+ precision highp float;
4
4
 
5
5
  in vec3 a_position;
6
6
  in vec4 a_quad;
@@ -32,24 +32,18 @@ const onSelect = (uuids) => {
32
32
  shouldRender.value = false;
33
33
  eventBus.emit("select:end", uuids);
34
34
  };
35
- let startTimeout = null;
36
- onBlokkliEvent("mouse:down", (e) => {
37
- if (!enabled.value || e.type !== "mouse" || selection.isDragging.value) {
35
+ const startTimeout = null;
36
+ onBlokkliEvent("multi-select:start", (e) => {
37
+ if (!enabled.value) {
38
38
  return;
39
39
  }
40
- if (keyboard.isPressingSpace.value || keyboard.isPressingControl.value) {
41
- return;
42
- }
43
- clearTimeout(startTimeout);
44
40
  downX.value = e.x;
45
41
  downY.value = e.y;
46
- startTimeout = setTimeout(() => {
47
- eventBus.emit("select:start", {
48
- uuids: [],
49
- mode: "mouse"
50
- });
51
- shouldRender.value = true;
52
- }, 70);
42
+ eventBus.emit("select:start", {
43
+ uuids: [],
44
+ mode: "mouse"
45
+ });
46
+ shouldRender.value = true;
53
47
  });
54
48
  onBlokkliEvent("mouse:up", () => {
55
49
  shouldRender.value = false;
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <label class="bk-blokkli-item-options-checkbox">
3
- <input v-model="checked" type="checkbox" class="peer" />
3
+ <input v-model="checked" type="checkbox" class="peer" :required />
4
4
  <div />
5
5
  <span>{{ label }}</span>
6
6
  </label>
@@ -13,7 +13,8 @@ const { $t, state } = useBlokkli();
13
13
  const props = defineProps({
14
14
  label: { type: String, required: true },
15
15
  property: { type: String, required: true },
16
- modelValue: { type: String, required: false }
16
+ modelValue: { type: String, required: false },
17
+ required: { type: Boolean, required: false }
17
18
  });
18
19
  const emit = defineEmits(["update:modelValue"]);
19
20
  const checked = computed({
@@ -2,12 +2,14 @@ declare const _default: import("vue").DefineComponent<{
2
2
  label: string;
3
3
  property: string;
4
4
  modelValue?: string;
5
+ required?: boolean;
5
6
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
7
  "update:modelValue": (...args: any[]) => void;
7
8
  }, string, import("vue").PublicProps, Readonly<{
8
9
  label: string;
9
10
  property: string;
10
11
  modelValue?: string;
12
+ required?: boolean;
11
13
  }> & Readonly<{
12
14
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
13
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -4,7 +4,11 @@
4
4
  v-if="showLabel"
5
5
  :class="isGrouped ? 'bk-blokkli-item-options-item-label' : 'bk-tooltip'"
6
6
  >
7
- <span>{{ label }}</span>
7
+ <div class="bk-is-label">
8
+ <span>{{ label }}</span>
9
+ <span v-if="hoveredOption">:&nbsp;{{ hoveredOption }}</span>
10
+ </div>
11
+ <span v-if="description">{{ description }}</span>
8
12
  </div>
9
13
  <div
10
14
  class="bk-blokkli-item-options-item-content"
@@ -15,6 +19,7 @@
15
19
  <OptionRadios
16
20
  v-if="option.type === 'radios'"
17
21
  v-model="value"
22
+ v-model:hovered="hoveredOption"
18
23
  :label="label"
19
24
  :options="option.options"
20
25
  :property="property"
@@ -74,7 +79,7 @@
74
79
  </template>
75
80
 
76
81
  <script setup>
77
- import { computed, useBlokkli } from "#imports";
82
+ import { ref, computed, useBlokkli } from "#imports";
78
83
  import OptionRadios from "./Radios/index.vue";
79
84
  import OptionCheckbox from "./Checkbox/index.vue";
80
85
  import OptionCheckboxes from "./Checkboxes/index.vue";
@@ -94,9 +99,9 @@ const props = defineProps({
94
99
  option: { type: Object, required: true },
95
100
  property: { type: String, required: true },
96
101
  mutatedValue: { type: null, required: true },
97
- uuids: { type: Array, required: true },
98
102
  isGrouped: { type: Boolean, required: false }
99
103
  });
104
+ const hoveredOption = ref("");
100
105
  const showLabel = computed(() => {
101
106
  if (props.isGrouped) {
102
107
  if (props.option.type === "checkbox") {
@@ -108,6 +113,7 @@ const showLabel = computed(() => {
108
113
  const label = computed(
109
114
  () => $blokkliText(`blockOption_${props.property}_label`, props.option.label)
110
115
  );
116
+ const description = computed(() => props.option.description);
111
117
  const checkboxOptions = computed(() => {
112
118
  if (props.option.type !== "checkboxes") {
113
119
  return [];
@@ -3,7 +3,6 @@ type __VLS_Props = {
3
3
  option: BlockOptionDefinition;
4
4
  property: string;
5
5
  mutatedValue: any;
6
- uuids: string[];
7
6
  isGrouped?: boolean;
8
7
  };
9
8
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
@@ -6,8 +6,13 @@
6
6
  'bk-is-grid': displayAs === 'grid',
7
7
  'bk-is-icons': displayAs === 'icons'
8
8
  }"
9
+ @mouseleave="onMouseLeave"
9
10
  >
10
- <label v-for="option in mappedOptions" :key="option.key">
11
+ <label
12
+ v-for="option in mappedOptions"
13
+ :key="option.key"
14
+ @mouseenter="active = option.label"
15
+ >
11
16
  <div v-bind="getInputWrapperAttributes(option.value)">
12
17
  <input
13
18
  :id="option.key"
@@ -15,7 +20,7 @@
15
20
  :name="property"
16
21
  :value="option.key"
17
22
  :checked="modelValue === option.key"
18
- @change="$emit('update:modelValue', option.key)"
23
+ @change="value = option.key"
19
24
  />
20
25
  <div
21
26
  v-if="
@@ -51,7 +56,7 @@
51
56
  </template>
52
57
 
53
58
  <script setup>
54
- import { computed, useBlokkli } from "#imports";
59
+ import { computed, useBlokkli, onMounted } from "#imports";
55
60
  import { Icon } from "#blokkli/components";
56
61
  import defineCommands from "#blokkli/helpers/composables/defineCommands";
57
62
  const { $t, state } = useBlokkli();
@@ -59,37 +64,45 @@ const props = defineProps({
59
64
  label: { type: String, required: true },
60
65
  property: { type: String, required: true },
61
66
  displayAs: { type: String, required: false },
62
- options: { type: Object, required: true },
63
- modelValue: { type: String, required: false }
67
+ options: { type: Object, required: true }
64
68
  });
65
- const emit = defineEmits(["update:modelValue"]);
66
- function getInputWrapperAttributes(value) {
67
- if (props.displayAs === "colors" && typeof value !== "string") {
68
- if (value.hex && value.hex.indexOf("#") === 0) {
69
+ const value = defineModel({ type: String, ...{
70
+ default: ""
71
+ } });
72
+ const active = defineModel("hovered", { type: String, ...{
73
+ default: ""
74
+ } });
75
+ function getInputWrapperAttributes(value2) {
76
+ if (props.displayAs === "colors" && typeof value2 !== "string") {
77
+ if (value2.hex && value2.hex.indexOf("#") === 0) {
69
78
  return {
70
- style: "background-color: " + value.hex
79
+ style: "background-color: " + value2.hex
71
80
  };
72
- } else if (value.class) {
81
+ } else if (value2.class) {
73
82
  return {
74
- class: value.class
83
+ class: value2.class
75
84
  };
76
85
  }
77
86
  }
78
87
  return {};
79
88
  }
80
89
  const mappedOptions = computed(() => {
81
- return Object.entries(props.options).map(([key, value]) => {
82
- return { key, value };
90
+ return Object.entries(props.options).map(([key, value2]) => {
91
+ const label = typeof value2 === "string" ? value2 : value2.label;
92
+ return { key, value: value2, label };
83
93
  });
84
94
  });
85
- const setValue = (value) => {
86
- emit("update:modelValue", value);
87
- };
95
+ const selectedLabel = computed(() => {
96
+ return mappedOptions.value.find((v) => v.key === value.value)?.label;
97
+ });
98
+ function onMouseLeave() {
99
+ active.value = selectedLabel.value ?? "";
100
+ }
88
101
  defineCommands(() => {
89
102
  if (state.editMode.value !== "editing") {
90
103
  return;
91
104
  }
92
- return mappedOptions.value.filter((v) => v.key !== props.modelValue).map((option) => {
105
+ return mappedOptions.value.filter((v) => v.key !== value.value).map((option) => {
93
106
  return {
94
107
  id: "options:" + props.property + option.key,
95
108
  label: $t(
@@ -98,10 +111,15 @@ defineCommands(() => {
98
111
  ).replace("@option", props.label).replace("@value", option.key),
99
112
  group: "selection",
100
113
  icon: "form",
101
- callback: () => setValue(option.key)
114
+ callback: () => {
115
+ value.value = option.key;
116
+ }
102
117
  };
103
118
  });
104
119
  });
120
+ onMounted(() => {
121
+ active.value = selectedLabel.value ?? "";
122
+ });
105
123
  </script>
106
124
 
107
125
  <script>
@@ -9,9 +9,12 @@ declare const _default: import("vue").DefineComponent<{
9
9
  icon?: string;
10
10
  label: string;
11
11
  }>;
12
+ } & {
12
13
  modelValue?: string;
14
+ hovered?: string;
13
15
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
- "update:modelValue": (...args: any[]) => void;
16
+ "update:modelValue": (value: string) => any;
17
+ "update:hovered": (value: string) => any;
15
18
  }, string, import("vue").PublicProps, Readonly<{
16
19
  label: string;
17
20
  property: string;
@@ -23,8 +26,11 @@ declare const _default: import("vue").DefineComponent<{
23
26
  icon?: string;
24
27
  label: string;
25
28
  }>;
29
+ } & {
26
30
  modelValue?: string;
31
+ hovered?: string;
27
32
  }> & Readonly<{
28
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
33
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
34
+ "onUpdate:hovered"?: ((value: string) => any) | undefined;
29
35
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
36
  export default _default;
@@ -12,7 +12,6 @@
12
12
  :option="plugin.option"
13
13
  :property="plugin.property"
14
14
  :mutated-value="currentValues[plugin.property]"
15
- :uuids="uuids"
16
15
  class="bk-blokkli-item-options-item"
17
16
  :class="{
18
17
  'bk-is-disabled': isDisabled(plugin)
@@ -34,7 +33,6 @@
34
33
  :option="plugin.option"
35
34
  :property="plugin.property"
36
35
  :mutated-value="currentValues[plugin.property]"
37
- :uuids="uuids"
38
36
  class="bk-blokkli-item-options-item"
39
37
  :class="{
40
38
  'bk-is-disabled': isDisabled(plugin)
@@ -57,6 +55,7 @@ import {
57
55
  BK_HIDDEN_GLOBALLY,
58
56
  BK_VISIBLE_LANGUAGES
59
57
  } from "#blokkli/helpers/symbols";
58
+ import { BUNDLE_FROM_LIBRARY } from "#blokkli/constants";
60
59
  if (import.meta.hot) {
61
60
  import.meta.hot.accept("#blokkli/runtime-helpers", () => {
62
61
  });
@@ -102,7 +101,7 @@ const {
102
101
  definitions
103
102
  } = useBlokkli();
104
103
  const props = defineProps({
105
- uuids: { type: Array, required: true },
104
+ uuids: { type: [Array, String], required: true },
106
105
  definition: { type: null, required: true }
107
106
  });
108
107
  let pointerTimeout = null;
@@ -134,16 +133,18 @@ function stopChangingOptions() {
134
133
  if (!selection.isChangingOptions.value) {
135
134
  return;
136
135
  }
137
- props.uuids.forEach((uuid) => {
138
- dom.refreshBlockRect(uuid);
139
- const block = dom.findBlock(uuid);
140
- if (block) {
141
- const el = dom.getDragElement(block);
142
- if (el) {
143
- theme.invalidateCachedStyle(el);
136
+ if (Array.isArray(props.uuids)) {
137
+ props.uuids.forEach((uuid) => {
138
+ dom.refreshBlockRect(uuid);
139
+ const block = dom.findBlock(uuid);
140
+ if (block) {
141
+ const el = dom.getDragElement(block);
142
+ if (el) {
143
+ theme.invalidateCachedStyle(el);
144
+ }
144
145
  }
145
- }
146
- });
146
+ });
147
+ }
147
148
  selection.isChangingOptions.value = false;
148
149
  }
149
150
  class OptionCollector {
@@ -205,21 +206,28 @@ function getOptionValue(uuid, key, defaultValue) {
205
206
  }
206
207
  const currentValues = computed(() => {
207
208
  return availableOptions.value.reduce((acc, v) => {
208
- const values = props.uuids.map((uuid) => {
209
- return JSON.stringify(
210
- getRuntimeOptionValue(
209
+ if (Array.isArray(props.uuids)) {
210
+ const values = props.uuids.map((uuid) => {
211
+ return JSON.stringify(
212
+ getRuntimeOptionValue(
213
+ v.option,
214
+ getOptionValue(uuid, v.property, v.option.default)
215
+ )
216
+ );
217
+ }).filter(onlyUnique);
218
+ if (values.length === 1) {
219
+ acc[v.property] = getRuntimeOptionValue(
211
220
  v.option,
212
- getOptionValue(uuid, v.property, v.option.default)
213
- )
214
- );
215
- }).filter(onlyUnique);
216
- if (values.length === 1) {
221
+ getOptionValue(props.uuids[0], v.property, v.option.default)
222
+ );
223
+ } else {
224
+ acc[v.property] = "";
225
+ }
226
+ } else {
217
227
  acc[v.property] = getRuntimeOptionValue(
218
228
  v.option,
219
- getOptionValue(props.uuids[0], v.property, v.option.default)
229
+ getOptionValue("HOST", v.property, v.option.default)
220
230
  );
221
- } else {
222
- acc[v.property] = "";
223
231
  }
224
232
  return acc;
225
233
  }, {});
@@ -234,7 +242,7 @@ function isInternalOption(property) {
234
242
  return property === BK_VISIBLE_LANGUAGES || property === BK_HIDDEN_GLOBALLY;
235
243
  }
236
244
  const visibleOptions = computed(() => {
237
- if (!props.definition.editor?.determineVisibleOptions) {
245
+ if (!("editor" in props.definition) || !props.definition.editor?.determineVisibleOptions) {
238
246
  return availableOptions.value.filter(filterInternal);
239
247
  }
240
248
  const uuid = props.uuids[0];
@@ -244,7 +252,7 @@ const visibleOptions = computed(() => {
244
252
  return [];
245
253
  }
246
254
  const parentType = block?.hostType === runtimeConfig.itemEntityType ? block.parentBlockBundle : void 0;
247
- const ctxProps = item?.bundle === "from_library" ? item?.props?.libraryItem?.block?.props : item?.props;
255
+ const ctxProps = item?.bundle === BUNDLE_FROM_LIBRARY ? item?.props?.libraryItem?.block?.props : item?.props;
248
256
  const visibleKeys = (
249
257
  // We have to cast to any here because the types are guaranteed to be correct.
250
258
  props.definition.editor.determineVisibleOptions({
@@ -289,30 +297,53 @@ const optionGroups = computed(() => {
289
297
  );
290
298
  });
291
299
  function setOptionValue(key, value) {
292
- props.uuids.forEach((uuid) => {
293
- updated.set(uuid, key, value);
294
- if (!state.mutatedOptions[uuid]) {
295
- state.mutatedOptions[uuid] = {};
300
+ if (Array.isArray(props.uuids)) {
301
+ props.uuids.forEach((uuid) => {
302
+ updated.set(uuid, key, value);
303
+ if (!state.mutatedOptions[uuid]) {
304
+ state.mutatedOptions[uuid] = {};
305
+ }
306
+ state.mutatedOptions[uuid][key] = value;
307
+ eventBus.emit("option:update", { uuid, key, value });
308
+ });
309
+ } else {
310
+ updated.set("HOST", key, value);
311
+ if (!state.mutatedOptions.HOST) {
312
+ state.mutatedOptions.HOST = {};
296
313
  }
297
- state.mutatedOptions[uuid][key] = value;
298
- eventBus.emit("option:update", { uuid, key, value });
299
- });
314
+ state.mutatedOptions.HOST[key] = value;
315
+ }
300
316
  }
301
317
  onMounted(() => {
302
- props.uuids.forEach((uuid) => {
318
+ if (Array.isArray(props.uuids)) {
319
+ props.uuids.forEach((uuid) => {
320
+ availableOptions.value.forEach((option) => {
321
+ const currentValue = getOptionValue(
322
+ uuid,
323
+ option.property,
324
+ option.option.default
325
+ );
326
+ original.set(
327
+ uuid,
328
+ option.property,
329
+ optionValueToStorable(option.option, currentValue)
330
+ );
331
+ });
332
+ });
333
+ } else {
303
334
  availableOptions.value.forEach((option) => {
304
335
  const currentValue = getOptionValue(
305
- uuid,
336
+ "HOST",
306
337
  option.property,
307
338
  option.option.default
308
339
  );
309
340
  original.set(
310
- uuid,
341
+ "HOST",
311
342
  option.property,
312
343
  optionValueToStorable(option.option, currentValue)
313
344
  );
314
345
  });
315
- });
346
+ }
316
347
  });
317
348
  onBeforeUnmount(() => {
318
349
  selection.isChangingOptions.value = false;
@@ -326,7 +357,20 @@ onBeforeUnmount(() => {
326
357
  if (!values.length) {
327
358
  return;
328
359
  }
329
- state.mutateWithLoadingState(() => adapter.updateOptions(values));
360
+ if (Array.isArray(props.uuids)) {
361
+ state.mutateWithLoadingState(() => adapter.updateOptions(values));
362
+ } else {
363
+ state.mutateWithLoadingState(
364
+ () => adapter.updateHostOptions(
365
+ values.map((v) => {
366
+ return {
367
+ ...v,
368
+ uuid: void 0
369
+ };
370
+ })
371
+ )
372
+ );
373
+ }
330
374
  });
331
375
  </script>
332
376
 
@@ -1,9 +1,9 @@
1
- import type { BlockDefinitionInput, FragmentDefinitionInput } from '#blokkli/types';
1
+ import type { BlockDefinitionInput, FragmentDefinitionInput, ProviderDefinitionInput } from '#blokkli/types';
2
2
  declare const _default: import("vue").DefineComponent<{
3
- uuids: string[];
4
- definition: BlockDefinitionInput | FragmentDefinitionInput;
3
+ uuids: string[] | "provider";
4
+ definition: BlockDefinitionInput | FragmentDefinitionInput | ProviderDefinitionInput;
5
5
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
6
- uuids: string[];
7
- definition: BlockDefinitionInput | FragmentDefinitionInput;
6
+ uuids: string[] | "provider";
7
+ definition: BlockDefinitionInput | FragmentDefinitionInput | ProviderDefinitionInput;
8
8
  }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
9
  export default _default;