@blokkli/editor 2.0.0-alpha.62 → 2.0.0-alpha.64

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 (312) hide show
  1. package/dist/global/types/blockOptions.d.ts +32 -27
  2. package/dist/global/types/colorOptions.d.ts +16 -0
  3. package/dist/module.d.mts +2 -2
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +275 -18
  6. package/dist/modules/agent/index.d.mts +1 -1
  7. package/dist/modules/agent/index.mjs +2 -1
  8. package/dist/modules/agent/runtime/app/components/Attachment/PreviewCsv/index.vue +1 -1
  9. package/dist/modules/agent/runtime/app/components/Conversation/Item/Assistant/index.vue +14 -5
  10. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/ConversationsTab/Item.vue +2 -2
  11. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/RatingsTab/Item.vue +2 -2
  12. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/SplitView/ConversationDetail.vue +2 -2
  13. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/SplitView/index.d.vue.ts +1 -1
  14. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/SplitView/index.vue.d.ts +1 -1
  15. package/dist/modules/agent/runtime/app/features/agent/Panel/Input/Actions/index.vue +1 -1
  16. package/dist/modules/agent/runtime/app/features/agent/Panel/Welcome/index.vue +1 -1
  17. package/dist/modules/agent/runtime/app/features/agent/Transcript/MessageContent.vue +14 -1
  18. package/dist/modules/agent/runtime/app/features/agent/Transcript/index.vue +31 -13
  19. package/dist/modules/agent/runtime/app/features/agent/index.vue +1 -1
  20. package/dist/modules/agent/runtime/app/helpers/linkifyBlockUuids.d.ts +11 -0
  21. package/dist/modules/agent/runtime/app/helpers/linkifyBlockUuids.js +47 -0
  22. package/dist/modules/agent/runtime/app/tools/add_content_search_paragraphs/index.d.ts +1 -1
  23. package/dist/modules/agent/runtime/app/tools/add_fragment/index.d.ts +1 -1
  24. package/dist/modules/agent/runtime/app/tools/add_media_paragraph/index.d.ts +1 -1
  25. package/dist/modules/agent/runtime/app/tools/add_paragraphs/index.d.ts +1 -1
  26. package/dist/modules/agent/runtime/app/tools/add_reusable_paragraph/index.d.ts +1 -1
  27. package/dist/modules/agent/runtime/app/tools/add_template/index.d.ts +1 -1
  28. package/dist/modules/agent/runtime/app/tools/ask_question/Component.vue +1 -1
  29. package/dist/modules/agent/runtime/app/tools/ask_question/index.d.ts +1 -1
  30. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/Component.d.vue.ts +22 -0
  31. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/Component.vue +28 -26
  32. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/Component.vue.d.ts +22 -0
  33. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/index.d.ts +16 -1
  34. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/Component.d.vue.ts +22 -0
  35. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/Component.vue +59 -16
  36. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/Component.vue.d.ts +22 -0
  37. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/index.d.ts +15 -0
  38. package/dist/modules/agent/runtime/app/tools/delete_paragraphs/index.d.ts +1 -1
  39. package/dist/modules/agent/runtime/app/tools/detach_reusable_paragraph/index.d.ts +1 -1
  40. package/dist/modules/agent/runtime/app/tools/duplicate_paragraphs/index.d.ts +1 -1
  41. package/dist/modules/agent/runtime/app/tools/fieldDiffApproval.d.ts +85 -15
  42. package/dist/modules/agent/runtime/app/tools/fieldDiffApproval.js +136 -28
  43. package/dist/modules/agent/runtime/app/tools/find_paragraphs/index.d.ts +2 -2
  44. package/dist/modules/agent/runtime/app/tools/get_bundle_info/index.js +6 -2
  45. package/dist/modules/agent/runtime/app/tools/get_content_fields/index.d.ts +3 -3
  46. package/dist/modules/agent/runtime/app/tools/get_paragraph_context/index.d.ts +5 -5
  47. package/dist/modules/agent/runtime/app/tools/get_paragraphs_in_viewport/index.d.ts +1 -1
  48. package/dist/modules/agent/runtime/app/tools/get_referenced_entities/index.d.ts +1 -1
  49. package/dist/modules/agent/runtime/app/tools/go_to_history_index/index.d.ts +1 -1
  50. package/dist/modules/agent/runtime/app/tools/move_paragraphs/index.d.ts +1 -1
  51. package/dist/modules/agent/runtime/app/tools/rearrange_paragraphs/index.d.ts +1 -1
  52. package/dist/modules/agent/runtime/app/tools/replace_content_search_item/index.d.ts +1 -1
  53. package/dist/modules/agent/runtime/app/tools/replace_media_field/index.d.ts +1 -1
  54. package/dist/modules/agent/runtime/app/tools/schemas.d.ts +17 -7
  55. package/dist/modules/agent/runtime/app/tools/schemas.js +29 -12
  56. package/dist/modules/agent/runtime/app/tools/search_text/index.js +1 -1
  57. package/dist/modules/agent/runtime/app/tools/set_paragraph_options/index.d.ts +1 -1
  58. package/dist/modules/agent/runtime/app/tools/swap_paragraphs/index.d.ts +1 -1
  59. package/dist/modules/agent/runtime/app/tools/update_text_fields/Component.d.vue.ts +22 -0
  60. package/dist/modules/agent/runtime/app/tools/update_text_fields/Component.vue +54 -30
  61. package/dist/modules/agent/runtime/app/tools/update_text_fields/Component.vue.d.ts +22 -0
  62. package/dist/modules/agent/runtime/app/tools/update_text_fields/index.d.ts +18 -3
  63. package/dist/modules/agent/runtime/server/classes/FieldStreamParser/index.js +10 -15
  64. package/dist/modules/agent/runtime/server/default-system-prompts/architecture.js +1 -1
  65. package/dist/modules/agent/runtime/server/default-system-prompts/important-rules.js +1 -0
  66. package/dist/modules/agent/runtime/shared/toolParams.d.ts +3 -3
  67. package/dist/modules/agent/runtime/shared/types.d.ts +3 -3
  68. package/dist/modules/charts/index.d.mts +14 -1
  69. package/dist/modules/charts/index.mjs +37 -2
  70. package/dist/modules/charts/runtime/blokkli/tools/chart_schemas.d.ts +1 -1
  71. package/dist/modules/charts/runtime/blokkli/tools/chart_schemas.js +12 -5
  72. package/dist/modules/charts/runtime/components/ChartRenderer/index.vue +7 -16
  73. package/dist/modules/charts/runtime/features/charts/Editor/AdvancedConfigPanel/index.vue +1 -1
  74. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypeOptions/Field.vue +19 -9
  75. package/dist/modules/charts/runtime/features/charts/Editor/ColorDropdown/index.vue +7 -77
  76. package/dist/modules/charts/runtime/features/charts/Editor/CsvImport/OutputPreviewTable/index.vue +1 -1
  77. package/dist/modules/charts/runtime/features/charts/Editor/CsvImport/csvHelpers.d.ts +1 -1
  78. package/dist/modules/charts/runtime/features/charts/Editor/DataTable/index.vue +16 -8
  79. package/dist/modules/charts/runtime/features/charts/Editor/NumberFormatEditor/index.vue +23 -7
  80. package/dist/modules/charts/runtime/features/charts/Editor/index.vue +5 -6
  81. package/dist/modules/charts/runtime/features/charts/Editor/useChartEditorState.d.ts +1 -1
  82. package/dist/modules/charts/runtime/helpers/index.d.ts +2 -1
  83. package/dist/modules/charts/runtime/helpers/index.js +4 -2
  84. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +5 -0
  85. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliMutationResult.graphql +3 -0
  86. package/dist/modules/drupal/index.d.mts +1 -1
  87. package/dist/modules/drupal/runtime/adapter/index.js +5 -1
  88. package/dist/modules/iframes/index.d.mts +1 -1
  89. package/dist/modules/index.d.mts +1 -1
  90. package/dist/modules/readability/index.d.mts +1 -1
  91. package/dist/modules/readability/index.mjs +2 -1
  92. package/dist/modules/table-of-contents/index.d.mts +1 -1
  93. package/dist/runtime/components/Blocks/NotImplemented/index.vue +1 -1
  94. package/dist/runtime/composables/useBlokkliRuntimeConfig.d.ts +50 -0
  95. package/dist/runtime/composables/useBlokkliRuntimeConfig.js +34 -0
  96. package/dist/runtime/editor/adapter/index.d.ts +2 -1
  97. package/dist/runtime/editor/components/Actions/Title/index.vue +1 -1
  98. package/dist/runtime/editor/components/Actions/index.vue +1 -1
  99. package/dist/runtime/editor/components/ArtboardTooltip/index.d.vue.ts +1 -0
  100. package/dist/runtime/editor/components/ArtboardTooltip/index.vue +2 -2
  101. package/dist/runtime/editor/components/ArtboardTooltip/index.vue.d.ts +1 -0
  102. package/dist/runtime/editor/components/Avatar/index.vue +1 -1
  103. package/dist/runtime/editor/components/BlockPreviewItem/index.vue +1 -1
  104. package/dist/runtime/editor/components/BlockPreviewRenderer/index.vue +1 -1
  105. package/dist/runtime/editor/components/BlockProxy/index.vue +1 -1
  106. package/dist/runtime/editor/components/BlokkliRootErrorBoundary.vue +1 -1
  107. package/dist/runtime/editor/components/BundleSelector/index.vue +1 -1
  108. package/dist/runtime/editor/components/ColorDropdown/index.d.vue.ts +26 -0
  109. package/dist/runtime/editor/components/ColorDropdown/index.vue +116 -0
  110. package/dist/runtime/editor/components/ColorDropdown/index.vue.d.ts +26 -0
  111. package/dist/runtime/editor/components/Dialog/index.vue +1 -1
  112. package/dist/runtime/editor/components/DiffApproval/Highlight/Item.d.vue.ts +14 -20
  113. package/dist/runtime/editor/components/DiffApproval/Highlight/Item.vue +97 -52
  114. package/dist/runtime/editor/components/DiffApproval/Highlight/Item.vue.d.ts +14 -20
  115. package/dist/runtime/editor/components/DiffApproval/Highlight/index.d.vue.ts +6 -6
  116. package/dist/runtime/editor/components/DiffApproval/Highlight/index.vue +30 -21
  117. package/dist/runtime/editor/components/DiffApproval/Highlight/index.vue.d.ts +6 -6
  118. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.d.vue.ts +19 -9
  119. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue +19 -10
  120. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue.d.ts +19 -9
  121. package/dist/runtime/editor/components/DiffApproval/index.d.vue.ts +14 -6
  122. package/dist/runtime/editor/components/DiffApproval/index.vue +62 -35
  123. package/dist/runtime/editor/components/DiffApproval/index.vue.d.ts +14 -6
  124. package/dist/runtime/editor/components/DiffApproval/types.d.ts +32 -0
  125. package/dist/runtime/editor/components/DiffApproval/types.js +20 -0
  126. package/dist/runtime/editor/components/DiffViewer/State.vue +1 -1
  127. package/dist/runtime/editor/components/DraggableList.vue +1 -1
  128. package/dist/runtime/editor/components/Dropdown/index.d.vue.ts +6 -4
  129. package/dist/runtime/editor/components/Dropdown/index.vue +91 -31
  130. package/dist/runtime/editor/components/Dropdown/index.vue.d.ts +6 -4
  131. package/dist/runtime/editor/components/DropdownItem/index.vue +1 -1
  132. package/dist/runtime/editor/components/EditIndicator.vue +1 -1
  133. package/dist/runtime/editor/components/EditProvider.vue +2 -2
  134. package/dist/runtime/editor/components/FileDropHandler/index.vue +1 -1
  135. package/dist/runtime/editor/components/FlexTextarea/index.d.vue.ts +1 -1
  136. package/dist/runtime/editor/components/FlexTextarea/index.vue.d.ts +1 -1
  137. package/dist/runtime/editor/components/Form/RadioTabs/index.vue +1 -1
  138. package/dist/runtime/editor/components/Form/Search/index.d.vue.ts +1 -0
  139. package/dist/runtime/editor/components/Form/Search/index.vue +2 -2
  140. package/dist/runtime/editor/components/Form/Search/index.vue.d.ts +1 -0
  141. package/dist/runtime/editor/components/FormOverlay/index.vue +1 -1
  142. package/dist/runtime/editor/components/Icon/index.vue +1 -1
  143. package/dist/runtime/editor/components/Indicators/index.vue +31 -100
  144. package/dist/runtime/editor/components/Konami/Game/index.vue +1 -1
  145. package/dist/runtime/editor/components/Messages/index.vue +1 -1
  146. package/dist/runtime/editor/components/NestedEditorOverlay/index.d.vue.ts +3 -2
  147. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue +5 -4
  148. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue.d.ts +3 -2
  149. package/dist/runtime/editor/components/Overlay/index.vue +1 -1
  150. package/dist/runtime/editor/components/Pagination/index.vue +1 -1
  151. package/dist/runtime/editor/components/Panel/Section/index.vue +1 -1
  152. package/dist/runtime/editor/components/Panel/Tabs/index.d.vue.ts +1 -1
  153. package/dist/runtime/editor/components/Panel/Tabs/index.vue.d.ts +1 -1
  154. package/dist/runtime/editor/components/PluginConfigForm/index.vue +1 -1
  155. package/dist/runtime/editor/components/PluginConfigFormInline/FilterSelect/index.vue +1 -1
  156. package/dist/runtime/editor/components/PluginConfigFormInline/index.vue +1 -1
  157. package/dist/runtime/editor/components/Popup/index.vue +1 -1
  158. package/dist/runtime/editor/components/PopupHost/index.d.vue.ts +13 -0
  159. package/dist/runtime/editor/components/PopupHost/index.vue +12 -0
  160. package/dist/runtime/editor/components/PopupHost/index.vue.d.ts +13 -0
  161. package/dist/runtime/editor/components/PreviewProvider.vue +3 -2
  162. package/dist/runtime/editor/components/RelativeTime/index.vue +7 -13
  163. package/dist/runtime/editor/components/Resizable/index.vue +1 -1
  164. package/dist/runtime/editor/components/RichText/Editor/index.vue +1 -1
  165. package/dist/runtime/editor/components/ScaleToFit/index.vue +1 -1
  166. package/dist/runtime/editor/components/SearchOverlay/index.vue +1 -1
  167. package/dist/runtime/editor/components/SidebarFloater/index.vue +1 -1
  168. package/dist/runtime/editor/components/StatusIcon/index.vue +1 -1
  169. package/dist/runtime/editor/components/StatusIndicator/index.vue +1 -1
  170. package/dist/runtime/editor/components/SystemRequirements/index.vue +1 -1
  171. package/dist/runtime/editor/components/Tabs/index.d.vue.ts +1 -1
  172. package/dist/runtime/editor/components/Tabs/index.vue.d.ts +1 -1
  173. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/Button/index.vue +2 -1
  174. package/dist/runtime/editor/components/Toolbar/index.vue +1 -1
  175. package/dist/runtime/editor/components/Transition/Collapse/index.vue +1 -1
  176. package/dist/runtime/editor/components/Transition/List/index.vue +1 -1
  177. package/dist/runtime/editor/components/index.d.ts +2 -0
  178. package/dist/runtime/editor/components/index.js +2 -0
  179. package/dist/runtime/editor/composables/defineViewOption.js +5 -1
  180. package/dist/runtime/editor/composables/useStickyToolbar.js +1 -4
  181. package/dist/runtime/editor/css/output.css +1 -1
  182. package/dist/runtime/editor/features/add-list/Help/index.vue +1 -1
  183. package/dist/runtime/editor/features/add-list/index.vue +1 -1
  184. package/dist/runtime/editor/features/analyze/Main.vue +15 -2
  185. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.vue +4 -1
  186. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.vue +25 -16
  187. package/dist/runtime/editor/features/analyze/analyzers/defaults/validations.d.ts +10 -0
  188. package/dist/runtime/editor/features/analyze/analyzers/defaults/validations.js +39 -0
  189. package/dist/runtime/editor/features/analyze/analyzers/helpers/Context.d.ts +5 -1
  190. package/dist/runtime/editor/features/analyze/analyzers/helpers/Context.js +5 -0
  191. package/dist/runtime/editor/features/analyze/index.vue +1 -2
  192. package/dist/runtime/editor/features/anchors/Overlay/index.vue +11 -5
  193. package/dist/runtime/editor/features/anchors/index.vue +2 -1
  194. package/dist/runtime/editor/features/artboard/Overview/index.vue +1 -1
  195. package/dist/runtime/editor/features/artboard/Renderer.vue +1 -1
  196. package/dist/runtime/editor/features/artboard/Scrollbar/index.vue +1 -1
  197. package/dist/runtime/editor/features/block-scheduler/Dialog/index.vue +1 -1
  198. package/dist/runtime/editor/features/block-transfer/index.vue +1 -1
  199. package/dist/runtime/editor/features/breadcrumbs/index.vue +1 -1
  200. package/dist/runtime/editor/features/changelog/changelog.json +17 -1
  201. package/dist/runtime/editor/features/clipboard/DropElement/index.vue +1 -1
  202. package/dist/runtime/editor/features/comments/AddForm/index.vue +1 -1
  203. package/dist/runtime/editor/features/comments/Comment/Meta/index.vue +1 -1
  204. package/dist/runtime/editor/features/comments/Comment/index.vue +1 -1
  205. package/dist/runtime/editor/features/comments/Thread/index.vue +1 -1
  206. package/dist/runtime/editor/features/complex-options/index.vue +1 -0
  207. package/dist/runtime/editor/features/debug/Main.vue +1 -1
  208. package/dist/runtime/editor/features/dev-mode/index.vue +1 -1
  209. package/dist/runtime/editor/features/dragging-overlay/DragItems/index.vue +1 -1
  210. package/dist/runtime/editor/features/dragging-overlay/index.vue +1 -1
  211. package/dist/runtime/editor/features/droppable-field-edit/Overlay/index.vue +1 -1
  212. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue +1 -1
  213. package/dist/runtime/editor/features/editable-field/Overlay/Plaintext/index.d.vue.ts +1 -5
  214. package/dist/runtime/editor/features/editable-field/Overlay/Plaintext/index.vue.d.ts +1 -5
  215. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/ChunkOverlay.vue +1 -1
  216. package/dist/runtime/editor/features/editable-field/Overlay/index.vue +1 -1
  217. package/dist/runtime/editor/features/editable-mask/index.vue +1 -1
  218. package/dist/runtime/editor/features/entity-title/index.vue +17 -7
  219. package/dist/runtime/editor/features/help/Dialog/index.vue +1 -1
  220. package/dist/runtime/editor/features/help/Shortcuts/index.vue +1 -1
  221. package/dist/runtime/editor/features/history/List/index.vue +1 -1
  222. package/dist/runtime/editor/features/import-existing/Dialog/index.vue +1 -1
  223. package/dist/runtime/editor/features/library/index.vue +1 -0
  224. package/dist/runtime/editor/features/media-library/index.vue +1 -1
  225. package/dist/runtime/editor/features/options/Form/Item.vue +5 -12
  226. package/dist/runtime/editor/features/options/Form/Radios/index.d.vue.ts +5 -4
  227. package/dist/runtime/editor/features/options/Form/Radios/index.vue +8 -5
  228. package/dist/runtime/editor/features/options/Form/Radios/index.vue.d.ts +5 -4
  229. package/dist/runtime/editor/features/options/Form/Text/index.d.vue.ts +4 -0
  230. package/dist/runtime/editor/features/options/Form/Text/index.vue +11 -3
  231. package/dist/runtime/editor/features/options/Form/Text/index.vue.d.ts +4 -0
  232. package/dist/runtime/editor/features/options/index.vue +1 -1
  233. package/dist/runtime/editor/features/publish/Dialog/Item.vue +4 -7
  234. package/dist/runtime/editor/features/publish/Dialog/PublishOption.vue +1 -1
  235. package/dist/runtime/editor/features/publish/Dialog/Violations.d.vue.ts +12 -0
  236. package/dist/runtime/editor/features/publish/Dialog/Violations.vue +117 -0
  237. package/dist/runtime/editor/features/publish/Dialog/Violations.vue.d.ts +12 -0
  238. package/dist/runtime/editor/features/publish/Dialog/index.vue +61 -24
  239. package/dist/runtime/editor/features/publish/index.vue +2 -4
  240. package/dist/runtime/editor/features/publish/types.d.ts +0 -4
  241. package/dist/runtime/editor/features/referenced-entities/List/Item/index.vue +1 -0
  242. package/dist/runtime/editor/features/responsive-preview/Frame/index.vue +1 -1
  243. package/dist/runtime/editor/features/search/index.vue +1 -1
  244. package/dist/runtime/editor/features/selection/AddButtons/Renderer/index.vue +1 -1
  245. package/dist/runtime/editor/features/settings/Dialog/FeatureSetting/index.vue +1 -1
  246. package/dist/runtime/editor/features/settings/index.vue +1 -1
  247. package/dist/runtime/editor/features/structure/List/Item/index.vue +1 -1
  248. package/dist/runtime/editor/features/structure/index.vue +1 -1
  249. package/dist/runtime/editor/features/templates/DialogManageTemplates/Item.vue +1 -0
  250. package/dist/runtime/editor/features/templates/DialogManageTemplates/index.vue +1 -1
  251. package/dist/runtime/editor/features/theme/index.vue +1 -1
  252. package/dist/runtime/editor/features/touch-action-bar/Bar/index.vue +1 -1
  253. package/dist/runtime/editor/features/tour/Overlay/index.vue +1 -1
  254. package/dist/runtime/editor/features/transform/Dialog/index.vue +1 -1
  255. package/dist/runtime/editor/features/translations/SelectionTable/index.vue +1 -1
  256. package/dist/runtime/editor/features/workspace/index.vue +1 -1
  257. package/dist/runtime/editor/helpers/color/index.d.ts +7 -0
  258. package/dist/runtime/editor/helpers/color/index.js +14 -0
  259. package/dist/runtime/editor/helpers/diff/index.d.ts +98 -0
  260. package/dist/runtime/editor/helpers/diff/index.js +262 -0
  261. package/dist/runtime/editor/helpers/injections.d.ts +11 -0
  262. package/dist/runtime/editor/helpers/injections.js +1 -0
  263. package/dist/runtime/editor/helpers/options/index.d.ts +2 -0
  264. package/dist/runtime/editor/helpers/options/index.js +21 -0
  265. package/dist/runtime/editor/plugins/BlockIndicator/index.d.vue.ts +24 -1
  266. package/dist/runtime/editor/plugins/BlockIndicator/index.vue +17 -7
  267. package/dist/runtime/editor/plugins/BlockIndicator/index.vue.d.ts +24 -1
  268. package/dist/runtime/editor/plugins/ItemAction/index.d.vue.ts +1 -0
  269. package/dist/runtime/editor/plugins/ItemAction/index.vue +1 -1
  270. package/dist/runtime/editor/plugins/ItemAction/index.vue.d.ts +1 -0
  271. package/dist/runtime/editor/plugins/Sidebar/Detached/index.d.vue.ts +1 -1
  272. package/dist/runtime/editor/plugins/Sidebar/Detached/index.vue.d.ts +1 -1
  273. package/dist/runtime/editor/plugins/Sidebar/index.d.vue.ts +2 -2
  274. package/dist/runtime/editor/plugins/Sidebar/index.vue +1 -1
  275. package/dist/runtime/editor/plugins/Sidebar/index.vue.d.ts +2 -2
  276. package/dist/runtime/editor/plugins/ToolbarButton/index.vue +1 -1
  277. package/dist/runtime/editor/providers/analyze.js +5 -2
  278. package/dist/runtime/editor/providers/animation.d.ts +2 -0
  279. package/dist/runtime/editor/providers/config.d.ts +3 -1
  280. package/dist/runtime/editor/providers/config.js +46 -15
  281. package/dist/runtime/editor/providers/definition.d.ts +4 -3
  282. package/dist/runtime/editor/providers/definition.js +10 -2
  283. package/dist/runtime/editor/providers/plugin.d.ts +1 -0
  284. package/dist/runtime/editor/providers/state.d.ts +21 -0
  285. package/dist/runtime/editor/providers/state.js +10 -0
  286. package/dist/runtime/editor/translations/de.json +9 -4
  287. package/dist/runtime/editor/translations/fr.json +4 -4
  288. package/dist/runtime/editor/translations/gsw_CH.json +9 -4
  289. package/dist/runtime/editor/translations/it.json +4 -4
  290. package/dist/runtime/editor/types/state.d.ts +7 -0
  291. package/dist/runtime/editor/types/ui.d.ts +1 -0
  292. package/dist/runtime/helpers/colors.d.ts +39 -0
  293. package/dist/runtime/helpers/colors.js +28 -0
  294. package/dist/runtime/types/colors.d.ts +11 -0
  295. package/dist/shared/{editor.D28NbXr3.d.mts → editor.BDyiQvbV.d.mts} +434 -406
  296. package/dist/shared/{editor.Gu7mgJ5Q.mjs → editor.BGemL1Oh.mjs} +146 -146
  297. package/dist/types.d.mts +1 -1
  298. package/package.json +74 -82
  299. package/dist/runtime/editor/features/validations/Overlay/Item.d.vue.ts +0 -7
  300. package/dist/runtime/editor/features/validations/Overlay/Item.vue +0 -36
  301. package/dist/runtime/editor/features/validations/Overlay/Item.vue.d.ts +0 -7
  302. package/dist/runtime/editor/features/validations/Overlay/index.d.vue.ts +0 -7
  303. package/dist/runtime/editor/features/validations/Overlay/index.vue +0 -115
  304. package/dist/runtime/editor/features/validations/Overlay/index.vue.d.ts +0 -7
  305. package/dist/runtime/editor/features/validations/SidebarItem/index.d.vue.ts +0 -10
  306. package/dist/runtime/editor/features/validations/SidebarItem/index.vue +0 -41
  307. package/dist/runtime/editor/features/validations/SidebarItem/index.vue.d.ts +0 -10
  308. package/dist/runtime/editor/features/validations/index.d.vue.ts +0 -3
  309. package/dist/runtime/editor/features/validations/index.vue +0 -91
  310. package/dist/runtime/editor/features/validations/index.vue.d.ts +0 -3
  311. package/dist/runtime/editor/types/config.d.ts +0 -5
  312. /package/dist/runtime/{editor/types/config.js → types/colors.js} +0 -0
@@ -130,7 +130,7 @@ async function setMutationItemStatus(index, status) {
130
130
  }
131
131
  </script>
132
132
 
133
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
133
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
134
134
  .bk.bk-history .bk-history-load-more {
135
135
  height: 70px;
136
136
  padding-top: 10px;
@@ -179,7 +179,7 @@ onBeforeUnmount(() => {
179
179
  });
180
180
  </script>
181
181
 
182
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
182
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
183
183
  .bk.bk-import-existing-dialog .bk.bk-dialog-footer {
184
184
  margin-top: 0px;
185
185
  }
@@ -46,6 +46,7 @@
46
46
  <NestedEditorOverlay
47
47
  v-if="editingLibraryItem"
48
48
  v-bind="editingLibraryItem"
49
+ id="library-item"
49
50
  theme="lime"
50
51
  icon="reusable"
51
52
  :title="$t('libraryItemEditOverlayTitle', 'Edit reusable block')"
@@ -150,7 +150,7 @@ export default {
150
150
  };
151
151
  </script>
152
152
 
153
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
153
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
154
154
  .bk.bk-media-library {
155
155
  height: 100%;
156
156
  width: 100%;
@@ -58,6 +58,7 @@
58
58
  v-model="value"
59
59
  :label="label"
60
60
  :type="option.inputType"
61
+ :placeholder="option.placeholder"
61
62
  />
62
63
  <OptionColor
63
64
  v-else-if="option.type === 'color'"
@@ -110,7 +111,7 @@ import OptionDateTimeLocal from "./DateTimeLocal/index.vue";
110
111
  import OptionComplexType from "./ComplexType/index.vue";
111
112
  import { Tooltip, TooltipContext } from "#blokkli/editor/components";
112
113
  import { BK_VISIBLE_LANGUAGES } from "./../../../../../global/constants";
113
- const { state, $t: $blokkliText } = useBlokkli();
114
+ const { state, definitions } = useBlokkli();
114
115
  const emit = defineEmits(["update"]);
115
116
  const props = defineProps({
116
117
  option: { type: null, required: true },
@@ -122,18 +123,10 @@ const props = defineProps({
122
123
  const hoveredOption = ref("");
123
124
  const hoveredOptionDescription = ref("");
124
125
  const label = computed(
125
- () => $blokkliText(`blockOption_${props.property}_label`, props.option.label)
126
+ () => definitions.resolveDefinitionString(props.option.label)
126
127
  );
127
128
  const description = computed(() => {
128
- if (!props.option.description) {
129
- return null;
130
- }
131
- const key = `blockOption_${props.property}_description`;
132
- const translation = $blokkliText(key, props.option.description);
133
- if (key === translation) {
134
- return null;
135
- }
136
- return translation;
129
+ return definitions.resolveDefinitionString(props.option.description ?? "");
137
130
  });
138
131
  const checkboxOptions = computed(() => {
139
132
  if (props.option.type !== "checkboxes") {
@@ -152,7 +145,7 @@ const checkboxOptions = computed(() => {
152
145
  return Object.entries(props.option.options).map(([value2, label2]) => {
153
146
  return {
154
147
  value: value2,
155
- label: label2
148
+ label: definitions.resolveDefinitionString(label2)
156
149
  };
157
150
  });
158
151
  });
@@ -1,3 +1,4 @@
1
+ import type { DefinitionString } from '../../../../../../global/types/blockOptions.js';
1
2
  declare const _default: typeof __VLS_export;
2
3
  export default _default;
3
4
  declare const __VLS_export: import("vue").DefineComponent<{
@@ -9,8 +10,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
9
10
  class?: string;
10
11
  columns?: number[];
11
12
  icon?: string;
12
- label: string;
13
- description?: string;
13
+ label: DefinitionString;
14
+ description?: DefinitionString;
14
15
  }>;
15
16
  } & {
16
17
  modelValue?: string;
@@ -29,8 +30,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
29
30
  class?: string;
30
31
  columns?: number[];
31
32
  icon?: string;
32
- label: string;
33
- description?: string;
33
+ label: DefinitionString;
34
+ description?: DefinitionString;
34
35
  }>;
35
36
  } & {
36
37
  modelValue?: string;
@@ -44,9 +44,7 @@
44
44
  />
45
45
  </div>
46
46
  <span v-else>
47
- {{
48
- typeof option.value === "string" ? option.value : option.value.label
49
- }}
47
+ {{ typeof option.value === "string" ? option.value : option.label }}
50
48
  </span>
51
49
  </div>
52
50
  </label>
@@ -57,7 +55,7 @@
57
55
  import { computed, useBlokkli, onMounted } from "#imports";
58
56
  import { Icon } from "#blokkli/editor/components";
59
57
  import { defineCommands } from "#blokkli/editor/composables";
60
- const { $t, state } = useBlokkli();
58
+ const { $t, state, definitions } = useBlokkli();
61
59
  const props = defineProps({
62
60
  label: { type: String, required: true },
63
61
  property: { type: String, required: true },
@@ -91,7 +89,12 @@ const mappedOptions = computed(() => {
91
89
  return Object.entries(props.options).map(([key, value2]) => {
92
90
  const label = typeof value2 === "string" ? value2 : value2.label;
93
91
  const description = typeof value2 === "object" ? value2.description || "" : "";
94
- return { key, value: value2, label, description };
92
+ return {
93
+ key,
94
+ value: value2,
95
+ label: definitions.resolveDefinitionString(label),
96
+ description: definitions.resolveDefinitionString(description)
97
+ };
95
98
  });
96
99
  });
97
100
  const selectedOption = computed(() => {
@@ -1,3 +1,4 @@
1
+ import type { DefinitionString } from '../../../../../../global/types/blockOptions.js';
1
2
  declare const _default: typeof __VLS_export;
2
3
  export default _default;
3
4
  declare const __VLS_export: import("vue").DefineComponent<{
@@ -9,8 +10,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
9
10
  class?: string;
10
11
  columns?: number[];
11
12
  icon?: string;
12
- label: string;
13
- description?: string;
13
+ label: DefinitionString;
14
+ description?: DefinitionString;
14
15
  }>;
15
16
  } & {
16
17
  modelValue?: string;
@@ -29,8 +30,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
29
30
  class?: string;
30
31
  columns?: number[];
31
32
  icon?: string;
32
- label: string;
33
- description?: string;
33
+ label: DefinitionString;
34
+ description?: DefinitionString;
34
35
  }>;
35
36
  } & {
36
37
  modelValue?: string;
@@ -1,18 +1,22 @@
1
+ import type { DefinitionString } from '../../../../../../global/types/blockOptions.js';
1
2
  declare const _default: typeof __VLS_export;
2
3
  export default _default;
3
4
  declare const __VLS_export: import("vue").DefineComponent<{
4
5
  label: string;
5
6
  modelValue?: string;
6
7
  type?: string;
8
+ placeholder?: DefinitionString;
7
9
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
10
  "update:modelValue": (...args: any[]) => void;
9
11
  }, string, import("vue").PublicProps, Readonly<{
10
12
  label: string;
11
13
  modelValue?: string;
12
14
  type?: string;
15
+ placeholder?: DefinitionString;
13
16
  }> & Readonly<{
14
17
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
15
18
  }>, {
16
19
  type: string;
20
+ placeholder: DefinitionString;
17
21
  modelValue: string;
18
22
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -3,20 +3,28 @@
3
3
  <input
4
4
  v-model="text"
5
5
  :type="type"
6
- :placeholder="label"
6
+ :placeholder="renderedPlaceholder"
7
7
  />
8
8
  <div>{{ text }}</div>
9
9
  </div>
10
10
  </template>
11
11
 
12
12
  <script setup>
13
- import { computed } from "#imports";
13
+ import { computed, useBlokkli } from "#imports";
14
14
  const props = defineProps({
15
15
  label: { type: String, required: true },
16
16
  modelValue: { type: String, required: false, default: "" },
17
- type: { type: String, required: false, default: "text" }
17
+ type: { type: String, required: false, default: "text" },
18
+ placeholder: { type: [String, Object], required: false, default: void 0 }
18
19
  });
19
20
  const emit = defineEmits(["update:modelValue"]);
21
+ const { definitions } = useBlokkli();
22
+ const renderedPlaceholder = computed(() => {
23
+ if (props.placeholder) {
24
+ return definitions.resolveDefinitionString(props.placeholder);
25
+ }
26
+ return props.label;
27
+ });
20
28
  const text = computed({
21
29
  get() {
22
30
  return props.modelValue || "";
@@ -1,18 +1,22 @@
1
+ import type { DefinitionString } from '../../../../../../global/types/blockOptions.js';
1
2
  declare const _default: typeof __VLS_export;
2
3
  export default _default;
3
4
  declare const __VLS_export: import("vue").DefineComponent<{
4
5
  label: string;
5
6
  modelValue?: string;
6
7
  type?: string;
8
+ placeholder?: DefinitionString;
7
9
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
10
  "update:modelValue": (...args: any[]) => void;
9
11
  }, string, import("vue").PublicProps, Readonly<{
10
12
  label: string;
11
13
  modelValue?: string;
12
14
  type?: string;
15
+ placeholder?: DefinitionString;
13
16
  }> & Readonly<{
14
17
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
15
18
  }>, {
16
19
  type: string;
20
+ placeholder: DefinitionString;
17
21
  modelValue: string;
18
22
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -90,7 +90,7 @@ export default {
90
90
  };
91
91
  </script>
92
92
 
93
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
93
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
94
94
  .bk .bk-blokkli-item-options {
95
95
  display: flex;
96
96
  min-width: 100vw;
@@ -58,7 +58,7 @@
58
58
  }"
59
59
  >
60
60
  <div v-if="isSuccess">
61
- <StatusIndicator :status="newStatusPropValue" class="_bk_mx-0" />
61
+ <StatusIndicator :status="newStatusPropValue" />
62
62
  </div>
63
63
  <div v-else-if="isSelected && isMutating">
64
64
  <Icon
@@ -67,13 +67,10 @@
67
67
  />
68
68
  </div>
69
69
  <div v-else-if="isSelected">
70
- <StatusIndicator
71
- :status="isCurrentlyPublished ? 'success' : 'error'"
72
- class="_bk_mx-0"
73
- />
70
+ <StatusIndicator :status="isCurrentlyPublished ? 'success' : 'error'" />
74
71
  <template v-if="newStatus.status !== isCurrentlyPublished">
75
72
  <Icon name="arrow-right-thin" class="_bk_[&_svg]:size-15" />
76
- <StatusIndicator :status="newStatusPropValue" class="_bk_mx-0" />
73
+ <StatusIndicator :status="newStatusPropValue" />
77
74
  </template>
78
75
  </div>
79
76
  </td>
@@ -167,7 +164,7 @@ const newStatusPropValue = computed(() => {
167
164
  });
168
165
  </script>
169
166
 
170
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
167
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
171
168
  .bk tr.bk-is-success input:checked + span:before {
172
169
  background-color: rgb(var(--bk-theme-lime-normal) / 1) !important;
173
170
  }
@@ -26,7 +26,7 @@
26
26
  >
27
27
  <Icon :name="icon" />
28
28
  <div
29
- class="_bk_absolute _bk_-top-[1px] _bk_-right-[9px] _bk_size-20 _bk_rounded-full _bk_bg-mono-950 _bk_flex _bk_items-center _bk_justify-center _bk_[&_.bk-icon_svg]:size-[13px] _bk_[&_.bk-icon_svg]:fill-white"
29
+ class="_bk_absolute _bk_top-[-1px] _bk_right-[-9px] _bk_size-20 _bk_rounded-full _bk_bg-mono-950 _bk_flex _bk_items-center _bk_justify-center _bk_[&_.bk-icon_svg]:size-[13px] _bk_[&_.bk-icon_svg]:fill-white"
30
30
  :class="isChecked ? '_bk_visible' : '_bk_invisible'"
31
31
  >
32
32
  <Icon name="bk_mdi_check" />
@@ -0,0 +1,12 @@
1
+ import type { Validation } from '#blokkli/editor/types/state';
2
+ type __VLS_Props = {
3
+ violations: Validation[];
4
+ errors: string[];
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,117 @@
1
+ <template>
2
+ <PanelSection
3
+ :title="
4
+ $t('publishValidationErrorsTitle', 'Cannot publish: validation errors')
5
+ "
6
+ padded
7
+ >
8
+ <InfoBox
9
+ :text="
10
+ $t(
11
+ 'publishValidationErrorsDescription',
12
+ 'Fix the following issues and try publishing again.'
13
+ )
14
+ "
15
+ icon="bk_mdi_error-fill"
16
+ color="red"
17
+ />
18
+
19
+ <ul
20
+ v-if="resolvedViolations.length"
21
+ class="bk-publish-violations bk-control _bk_mt-15"
22
+ >
23
+ <li
24
+ v-for="(item, i) in resolvedViolations"
25
+ :key="item.violation.message + i"
26
+ >
27
+ <button
28
+ type="button"
29
+ class="bk-validation-item"
30
+ @click.prevent="onClick(item)"
31
+ >
32
+ <div v-if="item.block" class="bk-validation-item-header">
33
+ <ItemIcon :bundle="item.block.bundle" />
34
+ <div>{{ item.bundleLabel }}</div>
35
+ </div>
36
+ <div
37
+ v-if="item.fieldLabel"
38
+ class="_bk_text-xs _bk_text-mono-600 _bk_font-medium _bk_mb-3"
39
+ >
40
+ {{ item.fieldLabel }}
41
+ </div>
42
+ <div v-html="item.violation.message" />
43
+ </button>
44
+ </li>
45
+ </ul>
46
+
47
+ <ul
48
+ v-if="errors.length"
49
+ class="bk-publish-errors _bk_list-disc _bk_pl-20 _bk_mt-15 _bk_text-base"
50
+ >
51
+ <li
52
+ v-for="(error, i) in errors"
53
+ :key="'err' + i"
54
+ class="_bk_text-red-dark"
55
+ >
56
+ {{ error }}
57
+ </li>
58
+ </ul>
59
+ </PanelSection>
60
+ </template>
61
+
62
+ <script setup>
63
+ import { computed, useBlokkli } from "#imports";
64
+ import { InfoBox, ItemIcon } from "#blokkli/editor/components";
65
+ import PanelSection from "#blokkli/editor/components/Panel/Section/index.vue";
66
+ import { itemEntityType } from "#blokkli-build/config";
67
+ const props = defineProps({
68
+ violations: { type: Array, required: true },
69
+ errors: { type: Array, required: true }
70
+ });
71
+ const emit = defineEmits(["close"]);
72
+ const { types, blocks, context, eventBus, $t } = useBlokkli();
73
+ function firstFieldSegment(propertyPath) {
74
+ for (const segment of propertyPath.split(".")) {
75
+ if (segment && !/^\d+$/.test(segment)) {
76
+ return segment;
77
+ }
78
+ }
79
+ return void 0;
80
+ }
81
+ function resolveBundle(violation, block) {
82
+ if (block) return block.bundle;
83
+ if (!violation.entityType || violation.entityType === context.value.entityType) {
84
+ return context.value.entityBundle;
85
+ }
86
+ return void 0;
87
+ }
88
+ function resolveFieldLabel(violation, block) {
89
+ if (!violation.propertyPath) return void 0;
90
+ const fieldName = firstFieldSegment(violation.propertyPath);
91
+ if (!fieldName) return void 0;
92
+ const entityType = violation.entityType ?? context.value.entityType;
93
+ const bundle = resolveBundle(violation, block);
94
+ if (!entityType || !bundle) return void 0;
95
+ return types.getFieldConfig(entityType, bundle, fieldName)?.label;
96
+ }
97
+ const resolvedViolations = computed(
98
+ () => props.violations.map((violation) => {
99
+ const block = violation.entityUuid ? blocks.getBlock(violation.entityUuid) ?? null : null;
100
+ const bundleLabel = block ? types.getBlockBundleDefinition(block.bundle)?.label : void 0;
101
+ return {
102
+ violation,
103
+ block,
104
+ bundleLabel,
105
+ fieldLabel: resolveFieldLabel(violation, block)
106
+ };
107
+ })
108
+ );
109
+ function onClick(item) {
110
+ if (item.violation.entityType !== itemEntityType || !item.violation.entityUuid) {
111
+ return;
112
+ }
113
+ eventBus.emit("select", item.violation.entityUuid);
114
+ eventBus.emit("scrollIntoView", { uuid: item.violation.entityUuid });
115
+ emit("close");
116
+ }
117
+ </script>
@@ -0,0 +1,12 @@
1
+ import type { Validation } from '#blokkli/editor/types/state';
2
+ type __VLS_Props = {
3
+ violations: Validation[];
4
+ errors: string[];
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -116,6 +116,12 @@
116
116
  </InfoBox>
117
117
  </FormItem>
118
118
  </PanelSection>
119
+ <Violations
120
+ v-if="hasFailures"
121
+ :violations="failedViolations"
122
+ :errors="failedErrors"
123
+ @close="$emit('close')"
124
+ />
119
125
  <div>
120
126
  <FormItem v-if="successItems.length && showTable">
121
127
  <h2 class="bk-heading-2">
@@ -200,6 +206,7 @@ import { emitMessage } from "#blokkli/editor/events";
200
206
  import Item from "./Item.vue";
201
207
  import PublishOption, {} from "./PublishOption.vue";
202
208
  import Summary from "./Summary.vue";
209
+ import Violations from "./Violations.vue";
203
210
  import PanelSection from "#blokkli/editor/components/Panel/Section/index.vue";
204
211
  const showTable = false;
205
212
  const { adapter, $t, state, context, ui } = useBlokkli();
@@ -393,6 +400,17 @@ const selectedToPublishItems = computed(
393
400
  )
394
401
  );
395
402
  const isLoading = computed(() => status.value === "pending" || isMutating.value);
403
+ const failedStatuses = computed(
404
+ () => Object.values(mutationStatusItems.value).filter((s) => !s.success)
405
+ );
406
+ const failedViolations = computed(
407
+ () => failedStatuses.value.flatMap((s) => s.violations ?? [])
408
+ );
409
+ const failedErrors = computed(() => {
410
+ const messages = failedStatuses.value.flatMap((s) => s.errors ?? []);
411
+ return Array.from(new Set(messages));
412
+ });
413
+ const hasFailures = computed(() => failedStatuses.value.length > 0);
396
414
  const scheduleDateError = computed(() => {
397
415
  if (publishMode.value !== "scheduled" || !scheduleDate.value) {
398
416
  return "";
@@ -499,12 +517,19 @@ async function removeScheduledDate() {
499
517
  }
500
518
  isMutating.value = true;
501
519
  const previousScheduleDate = scheduleDate.value;
502
- const success = await state.mutateWithLoadingState(
503
- () => adapter.unscheduleEditState({
520
+ let success = false;
521
+ try {
522
+ const response = await adapter.unscheduleEditState({
504
523
  hostEntityType: context.value.entityType,
505
524
  hostEntityUuid: context.value.entityUuid
506
- })
507
- );
525
+ });
526
+ success = !!response?.success;
527
+ if (response?.state) {
528
+ state.applyMutationState(response.state);
529
+ }
530
+ } catch {
531
+ success = false;
532
+ }
508
533
  if (success) {
509
534
  await refresh();
510
535
  scheduleDate.value = previousScheduleDate;
@@ -518,8 +543,7 @@ async function onSubmit() {
518
543
  }
519
544
  isMutating.value = true;
520
545
  const items = stateItems.value;
521
- const hasAnyError = false;
522
- let mutationResult = false;
546
+ const selectedItems = [];
523
547
  for (const item of items) {
524
548
  const isSelected = states.value.includes(item.id) || item.hostEntityType === context.value.entityType && item.hostEntityUuid === context.value.entityUuid;
525
549
  if (!isSelected) {
@@ -528,29 +552,41 @@ async function onSubmit() {
528
552
  if (publishedIds.value.includes(item.id)) {
529
553
  continue;
530
554
  }
555
+ selectedItems.push(item);
531
556
  try {
557
+ let response;
532
558
  if (publishMode.value === "scheduled") {
533
559
  if (!adapter.scheduleEditState) {
534
560
  throw new Error("scheduleEditState method not available");
535
561
  }
536
- mutationResult = await state.mutateWithLoadingState(
537
- () => adapter.scheduleEditState({
538
- hostEntityType: item.hostEntityType,
539
- hostEntityUuid: item.hostEntityUuid,
540
- revisionLogMessage: revisionMessage.value,
541
- date: scheduleDate.value
542
- })
543
- );
562
+ response = await adapter.scheduleEditState({
563
+ hostEntityType: item.hostEntityType,
564
+ hostEntityUuid: item.hostEntityUuid,
565
+ revisionLogMessage: revisionMessage.value,
566
+ date: scheduleDate.value
567
+ });
544
568
  } else {
545
- mutationResult = await state.mutateWithLoadingState(
546
- () => adapter.publish({
547
- hostEntityType: item.hostEntityType,
548
- hostEntityUuid: item.hostEntityUuid,
549
- closeAfterPublish: true,
550
- revisionLogMessage: revisionMessage.value,
551
- publishIfUnpublished: shouldPublish.value
552
- })
553
- );
569
+ response = await adapter.publish({
570
+ hostEntityType: item.hostEntityType,
571
+ hostEntityUuid: item.hostEntityUuid,
572
+ closeAfterPublish: true,
573
+ revisionLogMessage: revisionMessage.value,
574
+ publishIfUnpublished: shouldPublish.value
575
+ });
576
+ }
577
+ if (response?.success) {
578
+ mutationStatusItems.value[item.id] = { id: item.id, success: true };
579
+ publishedIds.value.push(item.id);
580
+ } else {
581
+ mutationStatusItems.value[item.id] = {
582
+ id: item.id,
583
+ success: false,
584
+ errors: response?.errors,
585
+ violations: response?.violations
586
+ };
587
+ }
588
+ if (response?.state && item.id === currentId.value) {
589
+ state.applyMutationState(response.state);
554
590
  }
555
591
  } catch {
556
592
  mutationStatusItems.value[item.id] = {
@@ -563,7 +599,8 @@ async function onSubmit() {
563
599
  }
564
600
  }
565
601
  isMutating.value = false;
566
- if (hasAnyError || !mutationResult) {
602
+ const allSucceeded = selectedItems.length > 0 && selectedItems.every((item) => mutationStatusItems.value[item.id]?.success);
603
+ if (!allSucceeded) {
567
604
  return;
568
605
  }
569
606
  if (publishMode.value === "scheduled") {
@@ -93,10 +93,8 @@ async function publishCurrent() {
93
93
  $t("publishSuccess", "Changes published successfully.")
94
94
  );
95
95
  if (!success) {
96
- const validations = state.violations.value;
97
- if (validations.length) {
98
- eventBus.emit("publish:failed");
99
- eventBus.emit("sidebar:open", "violations");
96
+ if (state.violations.value.length) {
97
+ eventBus.emit("sidebar:open", "analyze");
100
98
  }
101
99
  return;
102
100
  }
@@ -101,10 +101,6 @@ declare module '#blokkli/editor/adapter' {
101
101
  }
102
102
  declare module '#blokkli/editor/events' {
103
103
  interface EventbusEvents {
104
- /**
105
- * Emitted when publishing failed.
106
- */
107
- 'publish:failed': undefined;
108
104
  /**
109
105
  * Show the publish dialog.
110
106
  */
@@ -25,6 +25,7 @@
25
25
  </a>
26
26
  <NestedEditorOverlay
27
27
  v-if="editUrl && isEditing"
28
+ id="referenced-entity"
28
29
  :url="editUrl"
29
30
  :uuid="entityUuid"
30
31
  :element
@@ -79,7 +79,7 @@ onBeforeUnmount(() => {
79
79
  });
80
80
  </script>
81
81
 
82
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
82
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
83
83
  .bk .bk-preview {
84
84
  position: absolute;
85
85
  top: 0px;
@@ -169,7 +169,7 @@ export default {
169
169
  };
170
170
  </script>
171
171
 
172
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
172
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
173
173
  .bk.bk-search {
174
174
  pointer-events: auto;
175
175
  position: absolute;
@@ -620,7 +620,7 @@ export default {
620
620
  };
621
621
  </script>
622
622
 
623
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
623
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
624
624
  .bk.bk-add-button-tooltip {
625
625
  pointer-events: none;
626
626
  position: absolute;