@blokkli/editor 2.0.0-alpha.63 → 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 (213) hide show
  1. package/dist/global/types/blockOptions.d.ts +32 -27
  2. package/dist/module.d.mts +2 -2
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +108 -5
  5. package/dist/modules/agent/index.d.mts +1 -1
  6. package/dist/modules/agent/index.mjs +2 -1
  7. package/dist/modules/agent/runtime/app/components/Attachment/PreviewCsv/index.vue +1 -1
  8. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/SplitView/index.d.vue.ts +1 -1
  9. package/dist/modules/agent/runtime/app/features/agent/ConversationsAdmin/SplitView/index.vue.d.ts +1 -1
  10. package/dist/modules/agent/runtime/app/features/agent/Panel/Input/Actions/index.vue +1 -1
  11. package/dist/modules/agent/runtime/app/features/agent/Panel/Welcome/index.vue +1 -1
  12. package/dist/modules/agent/runtime/app/features/agent/Transcript/index.vue +1 -1
  13. package/dist/modules/agent/runtime/app/features/agent/index.vue +1 -1
  14. package/dist/modules/agent/runtime/app/tools/add_content_search_paragraphs/index.d.ts +1 -1
  15. package/dist/modules/agent/runtime/app/tools/add_fragment/index.d.ts +1 -1
  16. package/dist/modules/agent/runtime/app/tools/add_media_paragraph/index.d.ts +1 -1
  17. package/dist/modules/agent/runtime/app/tools/add_paragraphs/index.d.ts +1 -1
  18. package/dist/modules/agent/runtime/app/tools/add_reusable_paragraph/index.d.ts +1 -1
  19. package/dist/modules/agent/runtime/app/tools/add_template/index.d.ts +1 -1
  20. package/dist/modules/agent/runtime/app/tools/ask_question/Component.vue +1 -1
  21. package/dist/modules/agent/runtime/app/tools/ask_question/index.d.ts +1 -1
  22. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/index.d.ts +1 -1
  23. package/dist/modules/agent/runtime/app/tools/delete_paragraphs/index.d.ts +1 -1
  24. package/dist/modules/agent/runtime/app/tools/detach_reusable_paragraph/index.d.ts +1 -1
  25. package/dist/modules/agent/runtime/app/tools/duplicate_paragraphs/index.d.ts +1 -1
  26. package/dist/modules/agent/runtime/app/tools/fieldDiffApproval.js +1 -3
  27. package/dist/modules/agent/runtime/app/tools/find_paragraphs/index.d.ts +2 -2
  28. package/dist/modules/agent/runtime/app/tools/get_bundle_info/index.js +6 -2
  29. package/dist/modules/agent/runtime/app/tools/get_content_fields/index.d.ts +3 -3
  30. package/dist/modules/agent/runtime/app/tools/get_paragraph_context/index.d.ts +5 -5
  31. package/dist/modules/agent/runtime/app/tools/get_paragraphs_in_viewport/index.d.ts +1 -1
  32. package/dist/modules/agent/runtime/app/tools/get_referenced_entities/index.d.ts +1 -1
  33. package/dist/modules/agent/runtime/app/tools/go_to_history_index/index.d.ts +1 -1
  34. package/dist/modules/agent/runtime/app/tools/move_paragraphs/index.d.ts +1 -1
  35. package/dist/modules/agent/runtime/app/tools/rearrange_paragraphs/index.d.ts +1 -1
  36. package/dist/modules/agent/runtime/app/tools/replace_content_search_item/index.d.ts +1 -1
  37. package/dist/modules/agent/runtime/app/tools/replace_media_field/index.d.ts +1 -1
  38. package/dist/modules/agent/runtime/app/tools/schemas.d.ts +2 -2
  39. package/dist/modules/agent/runtime/app/tools/set_paragraph_options/index.d.ts +1 -1
  40. package/dist/modules/agent/runtime/app/tools/swap_paragraphs/index.d.ts +1 -1
  41. package/dist/modules/agent/runtime/app/tools/update_text_fields/index.d.ts +3 -3
  42. package/dist/modules/agent/runtime/server/classes/FieldStreamParser/index.js +10 -15
  43. package/dist/modules/agent/runtime/shared/toolParams.d.ts +3 -3
  44. package/dist/modules/agent/runtime/shared/types.d.ts +3 -3
  45. package/dist/modules/charts/index.d.mts +14 -1
  46. package/dist/modules/charts/index.mjs +37 -2
  47. package/dist/modules/charts/runtime/features/charts/Editor/AdvancedConfigPanel/index.vue +1 -1
  48. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypeOptions/Field.vue +19 -9
  49. package/dist/modules/charts/runtime/features/charts/Editor/CsvImport/OutputPreviewTable/index.vue +1 -1
  50. package/dist/modules/charts/runtime/features/charts/Editor/DataTable/index.vue +16 -8
  51. package/dist/modules/charts/runtime/features/charts/Editor/NumberFormatEditor/index.vue +23 -7
  52. package/dist/modules/charts/runtime/features/charts/Editor/index.vue +5 -6
  53. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +5 -0
  54. package/dist/modules/drupal/index.d.mts +1 -1
  55. package/dist/modules/drupal/runtime/adapter/index.js +3 -0
  56. package/dist/modules/iframes/index.d.mts +1 -1
  57. package/dist/modules/index.d.mts +1 -1
  58. package/dist/modules/readability/index.d.mts +1 -1
  59. package/dist/modules/readability/index.mjs +2 -1
  60. package/dist/modules/table-of-contents/index.d.mts +1 -1
  61. package/dist/runtime/components/Blocks/NotImplemented/index.vue +1 -1
  62. package/dist/runtime/editor/components/Actions/Title/index.vue +1 -1
  63. package/dist/runtime/editor/components/Actions/index.vue +1 -1
  64. package/dist/runtime/editor/components/ArtboardTooltip/index.d.vue.ts +1 -0
  65. package/dist/runtime/editor/components/ArtboardTooltip/index.vue +2 -2
  66. package/dist/runtime/editor/components/ArtboardTooltip/index.vue.d.ts +1 -0
  67. package/dist/runtime/editor/components/Avatar/index.vue +1 -1
  68. package/dist/runtime/editor/components/BlockPreviewItem/index.vue +1 -1
  69. package/dist/runtime/editor/components/BlockPreviewRenderer/index.vue +1 -1
  70. package/dist/runtime/editor/components/BlockProxy/index.vue +1 -1
  71. package/dist/runtime/editor/components/BlokkliRootErrorBoundary.vue +1 -1
  72. package/dist/runtime/editor/components/BundleSelector/index.vue +1 -1
  73. package/dist/runtime/editor/components/ColorDropdown/index.vue +1 -1
  74. package/dist/runtime/editor/components/Dialog/index.vue +1 -1
  75. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue +1 -1
  76. package/dist/runtime/editor/components/DiffApproval/types.js +1 -3
  77. package/dist/runtime/editor/components/DiffViewer/State.vue +1 -1
  78. package/dist/runtime/editor/components/DraggableList.vue +1 -1
  79. package/dist/runtime/editor/components/Dropdown/index.d.vue.ts +1 -0
  80. package/dist/runtime/editor/components/Dropdown/index.vue +2 -2
  81. package/dist/runtime/editor/components/Dropdown/index.vue.d.ts +1 -0
  82. package/dist/runtime/editor/components/DropdownItem/index.vue +1 -1
  83. package/dist/runtime/editor/components/EditIndicator.vue +1 -1
  84. package/dist/runtime/editor/components/EditProvider.vue +2 -2
  85. package/dist/runtime/editor/components/FileDropHandler/index.vue +1 -1
  86. package/dist/runtime/editor/components/Form/RadioTabs/index.vue +1 -1
  87. package/dist/runtime/editor/components/Form/Search/index.d.vue.ts +1 -0
  88. package/dist/runtime/editor/components/Form/Search/index.vue +2 -2
  89. package/dist/runtime/editor/components/Form/Search/index.vue.d.ts +1 -0
  90. package/dist/runtime/editor/components/FormOverlay/index.vue +1 -1
  91. package/dist/runtime/editor/components/Icon/index.vue +1 -1
  92. package/dist/runtime/editor/components/Indicators/index.vue +31 -100
  93. package/dist/runtime/editor/components/Konami/Game/index.vue +1 -1
  94. package/dist/runtime/editor/components/Messages/index.vue +1 -1
  95. package/dist/runtime/editor/components/NestedEditorOverlay/index.d.vue.ts +1 -0
  96. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue +2 -1
  97. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue.d.ts +1 -0
  98. package/dist/runtime/editor/components/Overlay/index.vue +1 -1
  99. package/dist/runtime/editor/components/Pagination/index.vue +1 -1
  100. package/dist/runtime/editor/components/Panel/Section/index.vue +1 -1
  101. package/dist/runtime/editor/components/Panel/Tabs/index.d.vue.ts +1 -1
  102. package/dist/runtime/editor/components/Panel/Tabs/index.vue.d.ts +1 -1
  103. package/dist/runtime/editor/components/PluginConfigForm/index.vue +1 -1
  104. package/dist/runtime/editor/components/PluginConfigFormInline/FilterSelect/index.vue +1 -1
  105. package/dist/runtime/editor/components/PluginConfigFormInline/index.vue +1 -1
  106. package/dist/runtime/editor/components/Popup/index.vue +1 -1
  107. package/dist/runtime/editor/components/PreviewProvider.vue +3 -2
  108. package/dist/runtime/editor/components/RelativeTime/index.vue +7 -13
  109. package/dist/runtime/editor/components/Resizable/index.vue +1 -1
  110. package/dist/runtime/editor/components/RichText/Editor/index.vue +1 -1
  111. package/dist/runtime/editor/components/ScaleToFit/index.vue +1 -1
  112. package/dist/runtime/editor/components/SearchOverlay/index.vue +1 -1
  113. package/dist/runtime/editor/components/SidebarFloater/index.vue +1 -1
  114. package/dist/runtime/editor/components/StatusIcon/index.vue +1 -1
  115. package/dist/runtime/editor/components/StatusIndicator/index.vue +1 -1
  116. package/dist/runtime/editor/components/SystemRequirements/index.vue +1 -1
  117. package/dist/runtime/editor/components/Tabs/index.d.vue.ts +1 -1
  118. package/dist/runtime/editor/components/Tabs/index.vue.d.ts +1 -1
  119. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/Button/index.vue +2 -1
  120. package/dist/runtime/editor/components/Toolbar/index.vue +1 -1
  121. package/dist/runtime/editor/components/Transition/Collapse/index.vue +1 -1
  122. package/dist/runtime/editor/components/Transition/List/index.vue +1 -1
  123. package/dist/runtime/editor/composables/defineViewOption.js +5 -1
  124. package/dist/runtime/editor/composables/useStickyToolbar.js +1 -4
  125. package/dist/runtime/editor/css/output.css +1 -1
  126. package/dist/runtime/editor/features/add-list/Help/index.vue +1 -1
  127. package/dist/runtime/editor/features/add-list/index.vue +1 -1
  128. package/dist/runtime/editor/features/analyze/index.vue +1 -1
  129. package/dist/runtime/editor/features/anchors/Overlay/index.vue +11 -5
  130. package/dist/runtime/editor/features/anchors/index.vue +2 -1
  131. package/dist/runtime/editor/features/artboard/Overview/index.vue +1 -1
  132. package/dist/runtime/editor/features/artboard/Renderer.vue +1 -1
  133. package/dist/runtime/editor/features/artboard/Scrollbar/index.vue +1 -1
  134. package/dist/runtime/editor/features/block-scheduler/Dialog/index.vue +1 -1
  135. package/dist/runtime/editor/features/block-transfer/index.vue +1 -1
  136. package/dist/runtime/editor/features/breadcrumbs/index.vue +1 -1
  137. package/dist/runtime/editor/features/changelog/changelog.json +8 -0
  138. package/dist/runtime/editor/features/clipboard/DropElement/index.vue +1 -1
  139. package/dist/runtime/editor/features/comments/AddForm/index.vue +1 -1
  140. package/dist/runtime/editor/features/comments/Thread/index.vue +1 -1
  141. package/dist/runtime/editor/features/complex-options/index.vue +1 -0
  142. package/dist/runtime/editor/features/debug/Main.vue +1 -1
  143. package/dist/runtime/editor/features/dev-mode/index.vue +1 -1
  144. package/dist/runtime/editor/features/dragging-overlay/DragItems/index.vue +1 -1
  145. package/dist/runtime/editor/features/dragging-overlay/index.vue +1 -1
  146. package/dist/runtime/editor/features/droppable-field-edit/Overlay/index.vue +1 -1
  147. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue +1 -1
  148. package/dist/runtime/editor/features/editable-field/Overlay/Plaintext/index.d.vue.ts +1 -5
  149. package/dist/runtime/editor/features/editable-field/Overlay/Plaintext/index.vue.d.ts +1 -5
  150. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/ChunkOverlay.vue +1 -1
  151. package/dist/runtime/editor/features/editable-field/Overlay/index.vue +1 -1
  152. package/dist/runtime/editor/features/editable-mask/index.vue +1 -1
  153. package/dist/runtime/editor/features/entity-title/index.vue +17 -7
  154. package/dist/runtime/editor/features/help/Dialog/index.vue +1 -1
  155. package/dist/runtime/editor/features/help/Shortcuts/index.vue +1 -1
  156. package/dist/runtime/editor/features/history/List/index.vue +1 -1
  157. package/dist/runtime/editor/features/import-existing/Dialog/index.vue +1 -1
  158. package/dist/runtime/editor/features/library/index.vue +1 -0
  159. package/dist/runtime/editor/features/media-library/index.vue +1 -1
  160. package/dist/runtime/editor/features/options/Form/Item.vue +5 -12
  161. package/dist/runtime/editor/features/options/Form/Radios/index.d.vue.ts +5 -4
  162. package/dist/runtime/editor/features/options/Form/Radios/index.vue +8 -5
  163. package/dist/runtime/editor/features/options/Form/Radios/index.vue.d.ts +5 -4
  164. package/dist/runtime/editor/features/options/Form/Text/index.d.vue.ts +4 -0
  165. package/dist/runtime/editor/features/options/Form/Text/index.vue +11 -3
  166. package/dist/runtime/editor/features/options/Form/Text/index.vue.d.ts +4 -0
  167. package/dist/runtime/editor/features/options/index.vue +1 -1
  168. package/dist/runtime/editor/features/publish/Dialog/Item.vue +4 -7
  169. package/dist/runtime/editor/features/publish/Dialog/PublishOption.vue +1 -1
  170. package/dist/runtime/editor/features/referenced-entities/List/Item/index.vue +1 -0
  171. package/dist/runtime/editor/features/responsive-preview/Frame/index.vue +1 -1
  172. package/dist/runtime/editor/features/search/index.vue +1 -1
  173. package/dist/runtime/editor/features/selection/AddButtons/Renderer/index.vue +1 -1
  174. package/dist/runtime/editor/features/settings/Dialog/FeatureSetting/index.vue +1 -1
  175. package/dist/runtime/editor/features/settings/index.vue +1 -1
  176. package/dist/runtime/editor/features/structure/List/Item/index.vue +1 -1
  177. package/dist/runtime/editor/features/structure/index.vue +1 -1
  178. package/dist/runtime/editor/features/templates/DialogManageTemplates/Item.vue +1 -0
  179. package/dist/runtime/editor/features/templates/DialogManageTemplates/index.vue +1 -1
  180. package/dist/runtime/editor/features/theme/index.vue +1 -1
  181. package/dist/runtime/editor/features/touch-action-bar/Bar/index.vue +1 -1
  182. package/dist/runtime/editor/features/tour/Overlay/index.vue +1 -1
  183. package/dist/runtime/editor/features/transform/Dialog/index.vue +1 -1
  184. package/dist/runtime/editor/features/translations/SelectionTable/index.vue +1 -1
  185. package/dist/runtime/editor/features/workspace/index.vue +1 -1
  186. package/dist/runtime/editor/helpers/diff/index.d.ts +11 -0
  187. package/dist/runtime/editor/helpers/diff/index.js +13 -7
  188. package/dist/runtime/editor/helpers/options/index.d.ts +2 -0
  189. package/dist/runtime/editor/helpers/options/index.js +21 -0
  190. package/dist/runtime/editor/plugins/BlockIndicator/index.d.vue.ts +24 -1
  191. package/dist/runtime/editor/plugins/BlockIndicator/index.vue +17 -7
  192. package/dist/runtime/editor/plugins/BlockIndicator/index.vue.d.ts +24 -1
  193. package/dist/runtime/editor/plugins/ItemAction/index.d.vue.ts +1 -0
  194. package/dist/runtime/editor/plugins/ItemAction/index.vue +1 -1
  195. package/dist/runtime/editor/plugins/ItemAction/index.vue.d.ts +1 -0
  196. package/dist/runtime/editor/plugins/Sidebar/index.vue +1 -1
  197. package/dist/runtime/editor/plugins/ToolbarButton/index.vue +1 -1
  198. package/dist/runtime/editor/providers/animation.d.ts +2 -0
  199. package/dist/runtime/editor/providers/definition.d.ts +4 -3
  200. package/dist/runtime/editor/providers/definition.js +10 -2
  201. package/dist/runtime/editor/providers/plugin.d.ts +1 -0
  202. package/dist/runtime/editor/providers/state.d.ts +8 -0
  203. package/dist/runtime/editor/providers/state.js +3 -0
  204. package/dist/runtime/editor/translations/de.json +2 -0
  205. package/dist/runtime/editor/translations/fr.json +2 -0
  206. package/dist/runtime/editor/translations/gsw_CH.json +2 -0
  207. package/dist/runtime/editor/translations/it.json +2 -0
  208. package/dist/runtime/editor/types/state.d.ts +7 -0
  209. package/dist/runtime/editor/types/ui.d.ts +1 -0
  210. package/dist/shared/{editor.D28NbXr3.d.mts → editor.BDyiQvbV.d.mts} +434 -406
  211. package/dist/shared/{editor.Gu7mgJ5Q.mjs → editor.BGemL1Oh.mjs} +146 -146
  212. package/dist/types.d.mts +1 -1
  213. package/package.json +74 -82
@@ -131,7 +131,7 @@ useAnimationFrame(() => {
131
131
  });
132
132
  </script>
133
133
 
134
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
134
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
135
135
  .bk.bk-add-list-help {
136
136
  position: absolute;
137
137
  top: 0px;
@@ -305,7 +305,7 @@ export default {
305
305
  };
306
306
  </script>
307
307
 
308
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
308
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
309
309
  .bk.bk-add-list {
310
310
  pointer-events: auto;
311
311
  z-index: calc(var(--bk-z-index-base) + 190000) /* "add-list" */;
@@ -71,7 +71,7 @@ export default {
71
71
  };
72
72
  </script>
73
73
 
74
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
74
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
75
75
  .bk-is-analyzing .bk,.bk-is-analyzing .bk-sidebar {
76
76
  display: none !important;
77
77
  }
@@ -6,6 +6,7 @@
6
6
  :uuid="item.uuid"
7
7
  :label="'#' + item.id"
8
8
  icon="bk_mdi_anchor"
9
+ sticky
9
10
  @click="onClick(item)"
10
11
  />
11
12
  </template>
@@ -14,6 +15,7 @@
14
15
  import { useBlokkli, useRoute, ref, onMounted } from "#imports";
15
16
  import { PluginBlockIndicator } from "#blokkli/editor/plugins";
16
17
  import { onBlokkliEvent } from "#blokkli/editor/composables";
18
+ import { renderCycle } from "#blokkli/editor/helpers/vue";
17
19
  const route = useRoute();
18
20
  const { adapter, ui } = useBlokkli();
19
21
  function getAnchorItems() {
@@ -27,6 +29,9 @@ function getAnchorItems() {
27
29
  if (!(block instanceof HTMLElement)) {
28
30
  continue;
29
31
  }
32
+ if (element.closest("form")) {
33
+ continue;
34
+ }
30
35
  const uuid = block.dataset.bkUuid;
31
36
  if (!uuid) {
32
37
  continue;
@@ -54,10 +59,11 @@ function onClick(item) {
54
59
  const link = getLinkForClipboard(item);
55
60
  ui.copyTextToClipboard(link);
56
61
  }
57
- onBlokkliEvent("state:reloaded", () => {
62
+ async function updateAnchorItems() {
63
+ await renderCycle();
58
64
  items.value = getAnchorItems();
59
- });
60
- onMounted(() => {
61
- items.value = getAnchorItems();
62
- });
65
+ }
66
+ onBlokkliEvent("state:reloaded", updateAnchorItems);
67
+ onBlokkliEvent("option:update", updateAnchorItems);
68
+ onMounted(updateAnchorItems);
63
69
  </script>
@@ -25,7 +25,8 @@ const { isVisible } = defineViewOption({
25
25
  "viewOptionAnchorsDescription",
26
26
  "Highlights blocks that have an anchor ID."
27
27
  ),
28
- icon: "bk_mdi_anchor"
28
+ icon: "bk_mdi_anchor",
29
+ default: true
29
30
  });
30
31
  </script>
31
32
 
@@ -129,7 +129,7 @@ defineOptions({
129
129
  });
130
130
  </script>
131
131
 
132
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
132
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
133
133
  .bk.bk-artboard-overview {
134
134
  position: absolute;
135
135
  top: 0px;
@@ -417,7 +417,7 @@ onBlokkliEvent("scrollSelectionIntoView", (e) => {
417
417
  });
418
418
  </script>
419
419
 
420
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
420
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
421
421
  :is(.bk-html-root.bk-is-artboard .bk-body) .bk-main-canvas {
422
422
  pointer-events: none;
423
423
  position: fixed;
@@ -50,7 +50,7 @@ defineOptions({
50
50
  });
51
51
  </script>
52
52
 
53
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
53
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
54
54
  .bk-html-root {
55
55
  --bk-artboard-scrollbar-size: 4px;
56
56
  }
@@ -239,7 +239,7 @@ async function onSubmit() {
239
239
  }
240
240
  </script>
241
241
 
242
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
242
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
243
243
  .bk.bk-block-scheduler-dialog {
244
244
  min-height: calc(100vh - 350px);
245
245
  }
@@ -212,7 +212,7 @@ export default {
212
212
  };
213
213
  </script>
214
214
 
215
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
215
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
216
216
  .bk-block-transfer-drag-preview {
217
217
  display: flex;
218
218
  align-items: center;
@@ -213,7 +213,7 @@ export default {
213
213
  };
214
214
  </script>
215
215
 
216
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
216
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
217
217
  .bk.bk-breadcrumbs {
218
218
  grid-area: breadcrumbs;
219
219
  }
@@ -1,4 +1,12 @@
1
1
  [
2
+ {
3
+ "version": "2.0.0-alpha.64",
4
+ "date": "2026-07-08",
5
+ "body": {
6
+ "en": "<h3>Improvements</h3>\n<ul>\n<li>The anchor links view option is now enabled by default.</li>\n<li>The anchor link icon now stays visible at the left edge at all times.</li>\n<li>The page title now shows when the page was last changed.</li>\n</ul>\n<h3>Fixes</h3>\n<ul>\n<li>In some cases, changes from the AI assistant could not be accepted because the\ncontrol for doing so was not shown.</li>\n<li>Colors in the chart editor were reset in some cases.</li>\n</ul>\n",
7
+ "de": "<h3>Verbesserungen</h3>\n<ul>\n<li>Die Ansichtsoption «Ankerlinks» ist neu standardmässig aktiviert.</li>\n<li>Das Symbol für Ankerlinks ist nun immer am linken Rand sichtbar.</li>\n<li>Im Seitentitel wird neu angezeigt, wann die Seite zuletzt geändert wurde.</li>\n</ul>\n<h3>Fehlerbehebungen</h3>\n<ul>\n<li>In gewissen Fällen konnten Änderungen vom KI-Assistenten nicht akzeptiert\nwerden, weil das entsprechende Bedienelement nicht angezeigt wurde.</li>\n<li>Farben im Diagramm-Editor wurden in gewissen Fällen zurückgesetzt.</li>\n</ul>\n"
8
+ }
9
+ },
2
10
  {
3
11
  "version": "2.0.0-alpha.63",
4
12
  "date": "2026-06-11",
@@ -96,7 +96,7 @@ const label = computed(() => {
96
96
  const icon = computed(() => getItemIcon(itemType.value));
97
97
  </script>
98
98
 
99
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
99
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
100
100
  .bk .bk-clipboard-drop-element {
101
101
  pointer-events: none;
102
102
  display: flex;
@@ -43,7 +43,7 @@ onBeforeUnmount(() => {
43
43
  });
44
44
  </script>
45
45
 
46
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
46
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
47
47
  .bk.bk-add-comment {
48
48
  --bk-bg: white;
49
49
  --bk-header-bg: rgb(var(--bk-theme-yellow-normal) / 1);
@@ -109,7 +109,7 @@ export default {
109
109
  };
110
110
  </script>
111
111
 
112
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
112
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
113
113
  .bk-comment-thread {
114
114
  --bk-comment-pad-x: 8px;
115
115
  --bk-comment-pad-y: 10px;
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <NestedEditorOverlay
3
3
  v-if="uuid"
4
+ :id="'complex-option-' + dataType"
4
5
  :uuid
5
6
  :title="
6
7
  getText(config.editTitle.key, config.editTitle.defaultTranslation)
@@ -79,7 +79,7 @@ defineItemDropdownAction(() => {
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
  :is(.bk .bk-debug) .bk-debug-section {
84
84
  border-bottom-style: var(--bk-tw-border-style);
85
85
  border-bottom-width: 1px;
@@ -112,7 +112,7 @@ export default {
112
112
  };
113
113
  </script>
114
114
 
115
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
115
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
116
116
  html.bk-hide-interaction-layers #bk-canvas-overlay {
117
117
  visibility: hidden !important;
118
118
  }
@@ -394,7 +394,7 @@ onBeforeUnmount(() => {
394
394
  });
395
395
  </script>
396
396
 
397
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
397
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
398
398
  .bk.bk-dragging-overlay-label {
399
399
  position: fixed;
400
400
  top: 0px;
@@ -356,7 +356,7 @@ export default {
356
356
  };
357
357
  </script>
358
358
 
359
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
359
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
360
360
  .bk-vars.bk-dragging-overlay {
361
361
  pointer-events: none;
362
362
  position: fixed;
@@ -524,7 +524,7 @@ onBeforeUnmount(() => {
524
524
  });
525
525
  </script>
526
526
 
527
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
527
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
528
528
  .bk.bk-droppable-field-edit {
529
529
  --bk-bg: white;
530
530
  --bk-header-bg: rgb(var(--bk-theme-teal-normal) / 1);
@@ -140,7 +140,7 @@ onBeforeUnmount(() => {
140
140
  });
141
141
  </script>
142
142
 
143
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
143
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
144
144
  :is(.bk .bk-editable-field-frame):not(.bk-is-fullscreen) iframe {
145
145
  max-height: calc(100vh - 500px);
146
146
  }
@@ -8,13 +8,9 @@ type __VLS_ModelProps = {
8
8
  };
9
9
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
10
10
  declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
- save: (...args: any[]) => void;
12
- discard: (...args: any[]) => void;
13
- "update:modelValue": (value: string) => void;
11
+ "update:modelValue": (value: string) => any;
14
12
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
15
13
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
16
- onSave?: ((...args: any[]) => any) | undefined;
17
- onDiscard?: ((...args: any[]) => any) | undefined;
18
14
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
15
  declare const _default: typeof __VLS_export;
20
16
  export default _default;
@@ -8,13 +8,9 @@ type __VLS_ModelProps = {
8
8
  };
9
9
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
10
10
  declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
- save: (...args: any[]) => void;
12
- discard: (...args: any[]) => void;
13
- "update:modelValue": (value: string) => void;
11
+ "update:modelValue": (value: string) => any;
14
12
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
15
13
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
16
- onSave?: ((...args: any[]) => any) | undefined;
17
- onDiscard?: ((...args: any[]) => any) | undefined;
18
14
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
15
  declare const _default: typeof __VLS_export;
20
16
  export default _default;
@@ -134,7 +134,7 @@ onBeforeUnmount(() => {
134
134
  });
135
135
  </script>
136
136
 
137
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
137
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
138
138
  .bk.bk-readability-chunk-overlay {
139
139
  pointer-events: none;
140
140
  position: absolute;
@@ -366,7 +366,7 @@ onBeforeUnmount(async () => {
366
366
  });
367
367
  </script>
368
368
 
369
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
369
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
370
370
  .bk.bk-editable-field {
371
371
  --bk-bg: white;
372
372
  --bk-header-bg: rgb(var(--bk-theme-teal-normal) / 1);
@@ -39,7 +39,7 @@ export default {
39
39
  };
40
40
  </script>
41
41
 
42
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
42
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
43
43
  :is(html.bk-hide-non-editable .bk-main-canvas) > * {
44
44
  visibility: hidden;
45
45
  }
@@ -21,14 +21,19 @@
21
21
  :disabled="!state.canEdit.value"
22
22
  @click="onEditEntity"
23
23
  >
24
- <div class="bk-toolbar-title _bk_relative _bk_size-full">
25
- <div
26
- class="_bk_min-w-0 _bk_truncate _bk_absolute _bk_top-1/2 _bk_left-0 _bk_w-full _bk_-translate-y-1/2 _bk_text-left _bk_flex _bk_items-center"
27
- >
28
- <StatusIndicator :status="statusIndicatorStatus" />
24
+ <div class="_bk_flex _bk_items-center _bk_relative _bk_size-full">
25
+ <div class="_bk_flex _bk_items-center">
26
+ <StatusIndicator :status="statusIndicatorStatus" class="_bk_mr-10" />
29
27
  <strong class="_bk_text-mono-100">{{ entity.label }}</strong>
30
28
  <span>&nbsp;{{ entity.bundleLabel }}</span>
31
29
  </div>
30
+ <div
31
+ v-if="lastChanged"
32
+ class="_bk_text-[11px] _bk_text-mono-300 _bk_border _bk_border-mono-500 _bk_px-5 _bk_py-1 _bk_rounded-full _bk_ml-10 _bk_font-medium"
33
+ >
34
+ {{ $t("entityTitleLastChanged", "Last changed") }}
35
+ <RelativeTime :timestamp="lastChanged" />
36
+ </div>
32
37
  </div>
33
38
  <Tooltip :label="tooltipLabel" />
34
39
  </button>
@@ -42,7 +47,12 @@ import {
42
47
  computed,
43
48
  useTemplateRef
44
49
  } from "#imports";
45
- import { Icon, StatusIndicator, Tooltip } from "#blokkli/editor/components";
50
+ import {
51
+ Icon,
52
+ RelativeTime,
53
+ StatusIndicator,
54
+ Tooltip
55
+ } from "#blokkli/editor/components";
46
56
  import { defineCommands, defineTourItem } from "#blokkli/editor/composables";
47
57
  defineBlokkliFeature({
48
58
  id: "entity-title",
@@ -51,7 +61,7 @@ defineBlokkliFeature({
51
61
  description: "Renders the title and status of the page entity."
52
62
  });
53
63
  const { state, eventBus, $t, ui } = useBlokkli();
54
- const { entity, mutations } = state;
64
+ const { entity, mutations, lastChanged } = state;
55
65
  const buttonEl = useTemplateRef("buttonEl");
56
66
  async function onEditEntity() {
57
67
  await ui.flushPendingChanges();
@@ -40,7 +40,7 @@ function onStartTour() {
40
40
  }
41
41
  </script>
42
42
 
43
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
43
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
44
44
  .bk.bk-help {
45
45
  padding: 20px;
46
46
  container-type: inline-size;
@@ -59,7 +59,7 @@ const groups = computed(() => {
59
59
  });
60
60
  </script>
61
61
 
62
- <style>/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
62
+ <style>/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
63
63
  :is(.bk .bk-help-shortcuts) table {
64
64
  width: 100%;
65
65
  font-size: var(--text-sm, 14px);
@@ -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 || "";