@blokkli/editor 2.0.0-alpha.59 → 2.0.0-alpha.60

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 (217) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +28 -11
  3. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/Component.d.vue.ts +29 -0
  4. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/Component.vue +172 -0
  5. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/Component.vue.d.ts +29 -0
  6. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/index.d.ts +19 -0
  7. package/dist/modules/agent/runtime/app/tools/auto_translate_paragraphs/index.js +80 -0
  8. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/Component.vue +16 -0
  9. package/dist/modules/agent/runtime/app/tools/get_all_page_content/index.js +1 -1
  10. package/dist/modules/agent/runtime/app/tools/get_content_fields/index.js +12 -9
  11. package/dist/modules/agent/runtime/app/tools/get_page_text/index.d.ts +2 -0
  12. package/dist/modules/agent/runtime/app/tools/get_page_text/index.js +65 -0
  13. package/dist/modules/agent/runtime/app/tools/get_referenced_entities/index.d.ts +2 -0
  14. package/dist/modules/agent/runtime/app/tools/get_referenced_entities/index.js +62 -0
  15. package/dist/modules/agent/runtime/app/tools/helpers.d.ts +8 -2
  16. package/dist/modules/agent/runtime/app/tools/helpers.js +9 -9
  17. package/dist/modules/agent/runtime/app/tools/schemas.d.ts +12 -0
  18. package/dist/modules/agent/runtime/app/tools/schemas.js +20 -0
  19. package/dist/modules/agent/runtime/app/tools/search_media/index.js +1 -1
  20. package/dist/modules/agent/runtime/app/tools/select_media/Component.vue +1 -1
  21. package/dist/modules/agent/runtime/server/agent.js +0 -1
  22. package/dist/modules/agent/runtime/server/classes/Session/index.js +4 -0
  23. package/dist/modules/agent/runtime/shared/toolResult.d.ts +4 -0
  24. package/dist/modules/agent/runtime/shared/toolResult.js +5 -0
  25. package/dist/modules/drupal/graphql/features/notifications.graphql +39 -0
  26. package/dist/modules/drupal/index.mjs +6 -1
  27. package/dist/modules/drupal/runtime/adapter/index.js +38 -0
  28. package/dist/runtime/editor/components/Actions/ItemDropdown/Item.vue +0 -1
  29. package/dist/runtime/editor/components/Actions/ScrollArrow/index.d.vue.ts +13 -0
  30. package/dist/runtime/editor/components/Actions/ScrollArrow/index.vue +52 -0
  31. package/dist/runtime/editor/components/Actions/ScrollArrow/index.vue.d.ts +13 -0
  32. package/dist/runtime/editor/components/Actions/Title/index.vue +2 -2
  33. package/dist/runtime/editor/components/Actions/index.vue +47 -7
  34. package/dist/runtime/editor/components/Actions/useToolbarScroll.d.ts +25 -0
  35. package/dist/runtime/editor/components/Actions/useToolbarScroll.js +125 -0
  36. package/dist/runtime/editor/components/AddListItem/index.vue +0 -2
  37. package/dist/runtime/editor/components/AppMenu/MenuButton.vue +1 -3
  38. package/dist/runtime/editor/components/ArtboardTooltip/index.vue +4 -1
  39. package/dist/runtime/editor/components/Avatar/index.vue +0 -1
  40. package/dist/runtime/editor/components/BlockPreviewRenderer/index.d.vue.ts +1 -1
  41. package/dist/runtime/editor/components/BlockPreviewRenderer/index.vue.d.ts +1 -1
  42. package/dist/runtime/editor/components/BundleSelector/index.vue +0 -4
  43. package/dist/runtime/editor/components/Dialog/index.d.vue.ts +2 -2
  44. package/dist/runtime/editor/components/Dialog/index.vue +1 -3
  45. package/dist/runtime/editor/components/Dialog/index.vue.d.ts +2 -2
  46. package/dist/runtime/editor/components/DiffApproval/Highlight/Item.d.vue.ts +8 -0
  47. package/dist/runtime/editor/components/DiffApproval/Highlight/Item.vue +12 -2
  48. package/dist/runtime/editor/components/DiffApproval/Highlight/Item.vue.d.ts +8 -0
  49. package/dist/runtime/editor/components/DiffApproval/Highlight/index.d.vue.ts +8 -0
  50. package/dist/runtime/editor/components/DiffApproval/Highlight/index.vue +14 -2
  51. package/dist/runtime/editor/components/DiffApproval/Highlight/index.vue.d.ts +8 -0
  52. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.d.vue.ts +2 -2
  53. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue +0 -2
  54. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue.d.ts +2 -2
  55. package/dist/runtime/editor/components/DiffApproval/index.vue +1 -0
  56. package/dist/runtime/editor/components/Form/Datepicker/index.vue +0 -1
  57. package/dist/runtime/editor/components/Form/TextDark/index.vue +0 -1
  58. package/dist/runtime/editor/components/Form/Textarea/index.vue +0 -1
  59. package/dist/runtime/editor/components/Form/Toggle/index.d.vue.ts +1 -0
  60. package/dist/runtime/editor/components/Form/Toggle/index.vue +9 -2
  61. package/dist/runtime/editor/components/Form/Toggle/index.vue.d.ts +1 -0
  62. package/dist/runtime/editor/components/FormOverlay/index.vue +0 -1
  63. package/dist/runtime/editor/components/Icon/index.vue +0 -2
  64. package/dist/runtime/editor/components/Messages/Item/index.vue +4 -1
  65. package/dist/runtime/editor/components/Messages/index.vue +3 -0
  66. package/dist/runtime/editor/components/Panel/Sheet/index.vue +1 -1
  67. package/dist/runtime/editor/components/Popup/index.vue +0 -2
  68. package/dist/runtime/editor/components/RichText/Editor/index.d.vue.ts +1 -1
  69. package/dist/runtime/editor/components/RichText/Editor/index.vue.d.ts +1 -1
  70. package/dist/runtime/editor/components/ScheduleDate/index.vue +1 -3
  71. package/dist/runtime/editor/components/SearchOverlay/index.d.vue.ts +1 -1
  72. package/dist/runtime/editor/components/SearchOverlay/index.vue.d.ts +1 -1
  73. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/Button/index.d.vue.ts +3 -0
  74. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/Button/index.vue +74 -0
  75. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/Button/index.vue.d.ts +3 -0
  76. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/index.d.vue.ts +7 -0
  77. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/index.vue +16 -0
  78. package/dist/runtime/editor/components/Toolbar/ViewOptions/List/index.vue.d.ts +7 -0
  79. package/dist/runtime/editor/components/Toolbar/ViewOptions/index.d.vue.ts +3 -0
  80. package/dist/runtime/editor/components/Toolbar/ViewOptions/index.vue +57 -0
  81. package/dist/runtime/editor/components/Toolbar/ViewOptions/index.vue.d.ts +3 -0
  82. package/dist/runtime/editor/components/Toolbar/index.vue +3 -56
  83. package/dist/runtime/editor/components/ToolbarDropdown/index.d.vue.ts +21 -0
  84. package/dist/runtime/editor/components/ToolbarDropdown/index.vue +36 -0
  85. package/dist/runtime/editor/components/ToolbarDropdown/index.vue.d.ts +21 -0
  86. package/dist/runtime/editor/components/Tooltip/Context.vue +3 -1
  87. package/dist/runtime/editor/components/Tooltip/index.d.vue.ts +1 -1
  88. package/dist/runtime/editor/components/Tooltip/index.vue +4 -1
  89. package/dist/runtime/editor/components/Tooltip/index.vue.d.ts +1 -1
  90. package/dist/runtime/editor/components/index.d.ts +1 -0
  91. package/dist/runtime/editor/components/index.js +1 -0
  92. package/dist/runtime/editor/composables/defineViewOption.d.ts +5 -0
  93. package/dist/runtime/editor/composables/defineViewOption.js +10 -0
  94. package/dist/runtime/editor/composables/index.d.ts +3 -0
  95. package/dist/runtime/editor/composables/index.js +2 -0
  96. package/dist/runtime/editor/composables/useDismiss.d.ts +30 -0
  97. package/dist/runtime/editor/composables/useDismiss.js +43 -0
  98. package/dist/runtime/editor/composables/useGlobalBlokkliObject.d.ts +3 -3
  99. package/dist/runtime/editor/css/output.css +1 -1
  100. package/dist/runtime/editor/events/index.d.ts +23 -0
  101. package/dist/runtime/editor/features/add-list/Actions/index.vue +0 -1
  102. package/dist/runtime/editor/features/add-list/Blocks/index.vue +0 -1
  103. package/dist/runtime/editor/features/add-list/Help/Item.vue +2 -7
  104. package/dist/runtime/editor/features/add-list/Help/index.vue +1 -1
  105. package/dist/runtime/editor/features/add-list/index.vue +0 -2
  106. package/dist/runtime/editor/features/anchors/index.vue +11 -11
  107. package/dist/runtime/editor/features/anchors/types.d.ts +1 -0
  108. package/dist/runtime/editor/features/anchors/types.js +1 -0
  109. package/dist/runtime/editor/features/artboard/Renderer.vue +30 -28
  110. package/dist/runtime/editor/features/block-scheduler/Dialog/ScheduleSection.vue +0 -3
  111. package/dist/runtime/editor/features/block-scheduler/index.vue +0 -1
  112. package/dist/runtime/editor/features/block-transfer/SummaryDialog/index.vue +0 -4
  113. package/dist/runtime/editor/features/breadcrumbs/Crumb/index.vue +0 -5
  114. package/dist/runtime/editor/features/changelog/changelog.json +8 -0
  115. package/dist/runtime/editor/features/command-palette/Palette/Item/index.vue +0 -3
  116. package/dist/runtime/editor/features/command-palette/Palette/index.vue +0 -1
  117. package/dist/runtime/editor/features/comments/AddForm/index.vue +0 -1
  118. package/dist/runtime/editor/features/comments/Comment/Actions/index.vue +0 -4
  119. package/dist/runtime/editor/features/comments/Comment/index.d.vue.ts +14 -0
  120. package/dist/runtime/editor/features/comments/Comment/index.vue +29 -8
  121. package/dist/runtime/editor/features/comments/Comment/index.vue.d.ts +14 -0
  122. package/dist/runtime/editor/features/comments/CommentInput/index.d.vue.ts +1 -1
  123. package/dist/runtime/editor/features/comments/CommentInput/index.vue +0 -3
  124. package/dist/runtime/editor/features/comments/CommentInput/index.vue.d.ts +1 -1
  125. package/dist/runtime/editor/features/comments/Sidebar/AddForm/index.vue +0 -1
  126. package/dist/runtime/editor/features/comments/Sidebar/index.d.vue.ts +16 -0
  127. package/dist/runtime/editor/features/comments/Sidebar/index.vue +13 -8
  128. package/dist/runtime/editor/features/comments/Sidebar/index.vue.d.ts +16 -0
  129. package/dist/runtime/editor/features/comments/Thread/ReplyForm/index.vue +0 -1
  130. package/dist/runtime/editor/features/comments/Thread/index.d.vue.ts +16 -0
  131. package/dist/runtime/editor/features/comments/Thread/index.vue +26 -6
  132. package/dist/runtime/editor/features/comments/Thread/index.vue.d.ts +16 -0
  133. package/dist/runtime/editor/features/comments/index.vue +28 -3
  134. package/dist/runtime/editor/features/delete/types.d.ts +1 -0
  135. package/dist/runtime/editor/features/delete/types.js +1 -0
  136. package/dist/runtime/editor/features/dev-mode/index.vue +17 -15
  137. package/dist/runtime/editor/features/dragging-overlay/DragItems/index.vue +1 -0
  138. package/dist/runtime/editor/features/duplicate/types.d.ts +1 -0
  139. package/dist/runtime/editor/features/duplicate/types.js +1 -0
  140. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue +0 -2
  141. package/dist/runtime/editor/features/editable-field/Overlay/Plaintext/index.vue +0 -1
  142. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/index.vue +0 -5
  143. package/dist/runtime/editor/features/editable-field/Overlay/index.vue +0 -5
  144. package/dist/runtime/editor/features/editable-mask/index.vue +21 -20
  145. package/dist/runtime/editor/features/entity-title/index.vue +0 -4
  146. package/dist/runtime/editor/features/fragments/Dialog/index.vue +0 -4
  147. package/dist/runtime/editor/features/grid/index.vue +16 -15
  148. package/dist/runtime/editor/features/grid/types.d.ts +1 -0
  149. package/dist/runtime/editor/features/grid/types.js +1 -0
  150. package/dist/runtime/editor/features/help/Dialog/index.d.vue.ts +7 -0
  151. package/dist/runtime/editor/features/help/Dialog/index.vue +57 -0
  152. package/dist/runtime/editor/features/help/Dialog/index.vue.d.ts +7 -0
  153. package/dist/runtime/editor/features/help/index.vue +52 -47
  154. package/dist/runtime/editor/features/history/List/index.vue +2 -9
  155. package/dist/runtime/editor/features/history/types.d.ts +1 -0
  156. package/dist/runtime/editor/features/history/types.js +1 -0
  157. package/dist/runtime/editor/features/notifications/Item/index.d.vue.ts +4 -0
  158. package/dist/runtime/editor/features/notifications/Item/index.vue +96 -0
  159. package/dist/runtime/editor/features/notifications/Item/index.vue.d.ts +4 -0
  160. package/dist/runtime/editor/features/notifications/List/index.d.vue.ts +11 -0
  161. package/dist/runtime/editor/features/notifications/List/index.vue +126 -0
  162. package/dist/runtime/editor/features/notifications/List/index.vue.d.ts +11 -0
  163. package/dist/runtime/editor/features/notifications/docs.md +12 -0
  164. package/dist/runtime/editor/features/notifications/index.d.vue.ts +3 -0
  165. package/dist/runtime/editor/features/notifications/index.vue +123 -0
  166. package/dist/runtime/editor/features/notifications/index.vue.d.ts +3 -0
  167. package/dist/runtime/editor/features/notifications/types.d.ts +132 -0
  168. package/dist/runtime/editor/features/notifications/types.js +20 -0
  169. package/dist/runtime/editor/features/options/Form/Checkbox/index.vue +6 -2
  170. package/dist/runtime/editor/features/options/Form/Checkboxes/index.vue +14 -4
  171. package/dist/runtime/editor/features/options/Form/Color/index.vue +1 -1
  172. package/dist/runtime/editor/features/options/Form/ComplexType/index.vue +0 -1
  173. package/dist/runtime/editor/features/options/Form/DateTimeLocal/index.vue +0 -1
  174. package/dist/runtime/editor/features/options/Form/Group.vue +3 -1
  175. package/dist/runtime/editor/features/options/Form/Item.vue +1 -2
  176. package/dist/runtime/editor/features/options/Form/Number/index.vue +9 -3
  177. package/dist/runtime/editor/features/options/Form/Radios/index.vue +3 -2
  178. package/dist/runtime/editor/features/options/Form/Range/index.vue +8 -2
  179. package/dist/runtime/editor/features/options/Form/Text/index.vue +6 -2
  180. package/dist/runtime/editor/features/options/index.vue +7 -1
  181. package/dist/runtime/editor/features/ownership/Banner/index.vue +3 -1
  182. package/dist/runtime/editor/features/ownership/types.d.ts +1 -0
  183. package/dist/runtime/editor/features/ownership/types.js +1 -0
  184. package/dist/runtime/editor/features/preview-grant/types.d.ts +1 -0
  185. package/dist/runtime/editor/features/preview-grant/types.js +1 -0
  186. package/dist/runtime/editor/features/proxy-view/index.vue +24 -21
  187. package/dist/runtime/editor/features/publish/Dialog/PublishOption.vue +0 -2
  188. package/dist/runtime/editor/features/publish/Dialog/index.vue +1 -2
  189. package/dist/runtime/editor/features/responsive-preview/Frame/index.vue +0 -1
  190. package/dist/runtime/editor/features/revert/types.d.ts +1 -0
  191. package/dist/runtime/editor/features/revert/types.js +1 -0
  192. package/dist/runtime/editor/features/settings/Dialog/FeatureSetting/index.vue +18 -8
  193. package/dist/runtime/editor/features/swap/types.d.ts +1 -0
  194. package/dist/runtime/editor/features/swap/types.js +1 -0
  195. package/dist/runtime/editor/features/translations/Banner/index.vue +4 -1
  196. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.vue +4 -1
  197. package/dist/runtime/editor/features/translations/TranslateDialog/index.vue +7 -2
  198. package/dist/runtime/editor/plugins/BlockIndicator/index.vue +0 -2
  199. package/dist/runtime/editor/plugins/ContextMenu/Menu/index.vue +4 -36
  200. package/dist/runtime/editor/plugins/ItemAction/index.vue +0 -1
  201. package/dist/runtime/editor/plugins/Sidebar/index.vue +7 -50
  202. package/dist/runtime/editor/plugins/ToolbarButton/index.d.vue.ts +8 -2
  203. package/dist/runtime/editor/plugins/ToolbarButton/index.vue +122 -28
  204. package/dist/runtime/editor/plugins/ToolbarButton/index.vue.d.ts +8 -2
  205. package/dist/runtime/editor/plugins/index.d.ts +1 -2
  206. package/dist/runtime/editor/plugins/index.js +1 -3
  207. package/dist/runtime/editor/providers/fieldValue.js +11 -13
  208. package/dist/runtime/editor/providers/plugin.d.ts +12 -0
  209. package/dist/runtime/editor/providers/plugin.js +9 -0
  210. package/dist/runtime/editor/translations/de.json +51 -19
  211. package/dist/runtime/editor/translations/fr.json +16 -4
  212. package/dist/runtime/editor/translations/gsw_CH.json +44 -19
  213. package/dist/runtime/editor/translations/it.json +16 -4
  214. package/package.json +4 -5
  215. package/dist/runtime/editor/plugins/ViewOption/index.d.vue.ts +0 -139
  216. package/dist/runtime/editor/plugins/ViewOption/index.vue +0 -99
  217. package/dist/runtime/editor/plugins/ViewOption/index.vue.d.ts +0 -139
@@ -197,6 +197,26 @@ export type ScrollSelectionIntoViewEvent = {
197
197
  center?: boolean;
198
198
  immediate?: boolean;
199
199
  };
200
+ /**
201
+ * Pan the artboard to a specific offset. Pass `null` for an axis to leave it
202
+ * unchanged. `immediate` skips the easing animation.
203
+ */
204
+ export type SetArtboardOffsetEvent = {
205
+ x?: number | null;
206
+ y?: number | null;
207
+ immediate?: boolean;
208
+ };
209
+ /**
210
+ * Ask the actions toolbar to make a specific element reachable. If the element
211
+ * lives inside the toolbar's horizontally-scrolled content and is past either
212
+ * edge, the toolbar scrolls so the element clears the arrow buttons. Elements
213
+ * outside the toolbar's vertical extent (group popups, unrelated nodes) are
214
+ * ignored — they sit below the toolbar and are already visible once the group
215
+ * itself is in view.
216
+ */
217
+ export type ActionsScrollIntoViewEvent = {
218
+ element: HTMLElement;
219
+ };
200
220
  export interface EventbusEvents {
201
221
  select: string | string[];
202
222
  'select:unselect': undefined;
@@ -212,6 +232,7 @@ export interface EventbusEvents {
212
232
  updatePreviewState: UpdatePreviewStateEvent;
213
233
  animationFrame: AnimationFrameEvent;
214
234
  message: Message;
235
+ 'message:clear': undefined;
215
236
  keyPressed: KeyPressedEvent;
216
237
  editEntity: undefined;
217
238
  reloadState: undefined;
@@ -228,6 +249,8 @@ export interface EventbusEvents {
228
249
  'item:doubleClick': RenderedFieldListItem;
229
250
  scrollIntoView: ScrollIntoViewEvent;
230
251
  scrollSelectionIntoView: ScrollSelectionIntoViewEvent;
252
+ setArtboardOffset: SetArtboardOffsetEvent;
253
+ 'actions:scrollIntoView': ActionsScrollIntoViewEvent;
231
254
  highlight: HTMLElement | null;
232
255
  'animationFrame:before': AnimationFrameBeforeEvent;
233
256
  'animationFrame:after': undefined;
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <Sortli
3
3
  id="blokkli-add-list-actions"
4
- data-test="add-list-actions"
5
4
  :build-item="buildItemAction"
6
5
  >
7
6
  <ActionButton
@@ -2,7 +2,6 @@
2
2
  <Sortli
3
3
  v-if="shouldRender"
4
4
  id="blokkli-add-list-blocks"
5
- data-test="add-list-blocks"
6
5
  :build-item
7
6
  >
8
7
  <AddListItem
@@ -2,8 +2,6 @@
2
2
  <div
3
3
  ref="el"
4
4
  class="bk-add-list-help-item"
5
- :data-test="'add-list-help-' + type + '-' + id"
6
- :data-test-visible="isVisible"
7
5
  :style="{
8
6
  visibility: isVisible ? 'visible' : 'hidden'
9
7
  }"
@@ -15,8 +13,8 @@
15
13
  </div>
16
14
  </div>
17
15
  <h2>
18
- <ItemIconBox data-test="add-list-help-icon" :bundle :icon :color />
19
- <span data-test="add-list-help-title">{{ title }}</span>
16
+ <ItemIconBox :bundle :icon :color />
17
+ <span>{{ title }}</span>
20
18
  </h2>
21
19
 
22
20
  <hr />
@@ -24,7 +22,6 @@
24
22
  <div
25
23
  v-if="text"
26
24
  class="bk-add-list-help-description"
27
- data-test="add-list-help-description"
28
25
  v-html="text"
29
26
  />
30
27
 
@@ -39,7 +36,6 @@
39
36
  v-for="field in section.fields"
40
37
  :key="field.name"
41
38
  class="bk-add-list-help-fields-item"
42
- :data-test="'add-list-help-field-' + field.name"
43
39
  >
44
40
  <ul>
45
41
  <li v-if="section.fields.length > 1" class="bk-is-field">
@@ -49,7 +45,6 @@
49
45
  v-for="allowed in field.items"
50
46
  :key="field.name + allowed.bundle + allowed.label"
51
47
  class="bk-is-bundle"
52
- :data-test="'add-list-help-allowed-' + allowed.bundle"
53
48
  >
54
49
  <ItemIconBox
55
50
  :bundle="allowed.bundle"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div ref="rootEl" data-test="add-list-help" class="bk bk-add-list-help">
2
+ <div ref="rootEl" class="bk bk-add-list-help">
3
3
  <div
4
4
  ref="innerEl"
5
5
  class="bk-add-list-help-inner _bk_relative _bk_will-change-transform _bk_text-mono-50 _bk_bg-mono-950/90 _bk_backdrop-blur-md _bk_overflow-hidden _bk_rounded"
@@ -4,7 +4,6 @@
4
4
  v-show="!ui.isApproving.value"
5
5
  id="bk-add-list"
6
6
  ref="wrapper"
7
- data-test="add-list"
8
7
  class="bk bk-add-list bk-control"
9
8
  @wheel.capture.passive="onWheel"
10
9
  @mouseenter="onMouseEnter"
@@ -13,7 +12,6 @@
13
12
  >
14
13
  <div
15
14
  class="bk-add-list-inner"
16
- :data-test-expanded="isActive"
17
15
  :class="{
18
16
  'bk-is-active': isActive
19
17
  }"
@@ -1,14 +1,5 @@
1
1
  <template>
2
- <PluginViewOption
3
- id="anchor"
4
- v-slot="{ isActive }"
5
- :label="$t('anchorToggle', 'Toggle anchor links')"
6
- :title-on="$t('anchorShow', 'Show anchor links')"
7
- :title-off="$t('anchorHide', 'Hide anchor links')"
8
- icon="bk_mdi_anchor"
9
- >
10
- <AnchorOverlay v-if="isActive" />
11
- </PluginViewOption>
2
+ <AnchorOverlay v-if="isVisible" />
12
3
  </template>
13
4
 
14
5
  <script setup>
@@ -17,7 +8,7 @@ import {
17
8
  defineBlokkliFeature,
18
9
  defineAsyncComponent
19
10
  } from "#imports";
20
- import { PluginViewOption } from "#blokkli/editor/plugins";
11
+ import { defineViewOption } from "#blokkli/editor/composables";
21
12
  const AnchorOverlay = defineAsyncComponent(() => import("./Overlay/index.vue"));
22
13
  defineBlokkliFeature({
23
14
  id: "anchors",
@@ -27,6 +18,15 @@ defineBlokkliFeature({
27
18
  viewports: ["desktop"]
28
19
  });
29
20
  const { $t } = useBlokkli();
21
+ const { isVisible } = defineViewOption({
22
+ id: "anchor",
23
+ label: $t("viewOptionAnchors", "Anchor links"),
24
+ description: $t(
25
+ "viewOptionAnchorsDescription",
26
+ "Highlights blocks that have an anchor ID."
27
+ ),
28
+ icon: "bk_mdi_anchor"
29
+ });
30
30
  </script>
31
31
 
32
32
  <script>
@@ -6,3 +6,4 @@ declare module '#blokkli/editor/adapter' {
6
6
  buildAnchorLink?: (id: string, uuid: string) => string;
7
7
  }
8
8
  }
9
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -27,29 +27,12 @@
27
27
  </PluginContextMenu>
28
28
  </PluginToolbarButton>
29
29
 
30
- <PluginViewOption
31
- id="artboardOverview"
32
- v-slot="{ isActive }"
33
- :label="$t('artboardOverviewToggle', 'Toggle overview')"
34
- :title-on="$t('artboardOverviewShow', 'Show overview')"
35
- :title-off="$t('artboardOverviewHide', 'Hide overview')"
36
- :tour-text="
37
- $t(
38
- 'artboardOverviewTourText',
39
- `Displays a top level overview of your content.`
40
- )
41
- "
42
- icon="bk_mdi_visibility"
43
- key-code="O"
44
- weight="90"
30
+ <Teleport
31
+ v-if="isOverviewVisible && dom.isReady.value"
32
+ :to="ui.mainLayoutElement.value"
45
33
  >
46
- <Teleport
47
- v-if="isActive && dom.isReady.value"
48
- :to="ui.mainLayoutElement.value"
49
- >
50
- <Overview :artboard="artboard" />
51
- </Teleport>
52
- </PluginViewOption>
34
+ <Overview :artboard="artboard" />
35
+ </Teleport>
53
36
  </template>
54
37
 
55
38
  <script setup>
@@ -66,13 +49,13 @@ import {
66
49
  isInsideRect,
67
50
  subtractRectFromViewport
68
51
  } from "#blokkli/editor/helpers/geometry";
69
- import {
70
- PluginToolbarButton,
71
- PluginViewOption,
72
- PluginContextMenu
73
- } from "#blokkli/editor/plugins";
52
+ import { PluginToolbarButton, PluginContextMenu } from "#blokkli/editor/plugins";
74
53
  import Scrollbar from "./Scrollbar/index.vue";
75
- import { addElementClasses, onBlokkliEvent } from "#blokkli/editor/composables";
54
+ import {
55
+ addElementClasses,
56
+ defineViewOption,
57
+ onBlokkliEvent
58
+ } from "#blokkli/editor/composables";
76
59
  import { asValidNumber } from "#blokkli/editor/helpers/math";
77
60
  import {
78
61
  createArtboard,
@@ -89,6 +72,21 @@ const props = defineProps({
89
72
  });
90
73
  addElementClasses(document.documentElement, "bk-is-artboard");
91
74
  const { context, storage, ui, animation, $t, dom, selection } = useBlokkli();
75
+ const { isVisible: isOverviewVisible } = defineViewOption({
76
+ id: "artboardOverview",
77
+ label: $t("viewOptionArtboardOverview", "Overview"),
78
+ description: $t(
79
+ "viewOptionArtboardOverviewDescription",
80
+ "Displays a top-level overview of all content blocks."
81
+ ),
82
+ tourText: $t(
83
+ "artboardOverviewTourText",
84
+ "Displays a top level overview of your content."
85
+ ),
86
+ icon: "bk_mdi_crop_9_16",
87
+ keyCode: "O",
88
+ weight: 90
89
+ });
92
90
  const artboardElement = ui.artboardElement();
93
91
  const zoomLevel = computed(() => Math.round(ui.artboardScale.value * 100) + "%");
94
92
  const ZOOM_LEVELS = [10, 25, 50, 75, 100, 125, 150, 200, 300];
@@ -374,6 +372,10 @@ onBlokkliEvent("scrollIntoView", (e) => {
374
372
  }
375
373
  }
376
374
  });
375
+ onBlokkliEvent("setArtboardOffset", (e) => {
376
+ artboard.setOffset(e.x ?? null, e.y ?? null, e.immediate ?? false);
377
+ animation.requestDraw();
378
+ });
377
379
  onBlokkliEvent("scrollSelectionIntoView", (e) => {
378
380
  const uuids = selection.uuids.value;
379
381
  if (uuids.length === 0) {
@@ -2,13 +2,10 @@
2
2
  <PanelSection :title="label" padded :help>
3
3
  <div
4
4
  class="bk-schedule-section"
5
- :data-test="testId"
6
- :data-test-disabled="disabled"
7
5
  >
8
6
  <FormToggle
9
7
  v-model="isEnabled"
10
8
  :disabled
11
- :data-test="testId + '-toggle'"
12
9
  :label="$t('scheduleEnable', 'Enable schedule')"
13
10
  />
14
11
 
@@ -13,7 +13,6 @@
13
13
  <template #icon-addon>
14
14
  <div
15
15
  v-if="selectionHasDates"
16
- data-test="block-scheduler-indicator"
17
16
  class="_bk_absolute _bk_-top-5 _bk_-right-5 _bk_size-15 _bk_bg-yellow-normal _bk_rounded-full _bk_flex _bk_items-center _bk_justify-center _bk_text-yellow-dark"
18
17
  >
19
18
  <Icon name="bk_mdi_check" class="_bk_size-10" />
@@ -34,7 +34,6 @@
34
34
  <tr
35
35
  v-for="row in summary.skippedBundles"
36
36
  :key="row.bundle"
37
- data-test="transfer-summary-skipped-row"
38
37
  >
39
38
  <td>
40
39
  <code>{{ row.bundle }}</code>
@@ -67,7 +66,6 @@
67
66
  <tr
68
67
  v-for="(row, i) in summary.droppedFields"
69
68
  :key="`${row.bundle}-${row.fieldName}-${i}`"
70
- data-test="transfer-summary-dropped-row"
71
69
  >
72
70
  <td>
73
71
  <code>{{ row.bundle }}</code>
@@ -108,7 +106,6 @@
108
106
  <tr
109
107
  v-for="(row, i) in summary.referencesResolvedByLabel"
110
108
  :key="`${row.entityType}-${row.targetId}-${i}`"
111
- data-test="transfer-summary-references-label-row"
112
109
  >
113
110
  <td>
114
111
  <code>{{ row.entityType }}</code>
@@ -147,7 +144,6 @@
147
144
  <tr
148
145
  v-for="(row, i) in summary.referencesUnresolved"
149
146
  :key="`${row.uuid ?? row.label ?? ''}-${i}`"
150
- data-test="transfer-summary-unresolved-row"
151
147
  >
152
148
  <td>
153
149
  <code>{{ row.entityType }}</code>
@@ -5,11 +5,6 @@
5
5
  canShrink ? '_bk_shrink _bk_min-w-0' : '_bk_shrink-0',
6
6
  isLast ? '_bk_text-mono-50 _bk_pointer-events-none' : ''
7
7
  ]"
8
- :data-test="`breadcrumb-${testId ?? crumb?.type}`"
9
- :data-test-current="isLast"
10
- :data-test-uuid="crumb?.type === 'block' ? crumb.uuid : void 0"
11
- :data-test-field="crumb?.type === 'field' ? crumb.fieldName : void 0"
12
- :data-test-count="crumb?.type === 'multiple' ? crumb.count : void 0"
13
8
  >
14
9
  <span v-if="!isFirst" class="_bk_text-mono-400 _bk_shrink-0">»</span>
15
10
 
@@ -1,4 +1,12 @@
1
1
  [
2
+ {
3
+ "version": "2.0.0-alpha.60",
4
+ "date": "2026-06-02",
5
+ "body": {
6
+ "en": "<h3>New Features</h3>\n<h4>Notifications</h4>\n<p>A new notifications button has been added to the toolbar. A small badge shows\nhow many unread notifications you have. Opening the dropdown reveals a list of\nrelevant events — for example, when you have been mentioned in a comment, when\na comment has been resolved or when an edit has been approved.</p>\n<p>Clicking a notification opens the related page directly in edit mode in a new\ntab — and for comment mentions, jumps straight to the relevant comment.</p>\n<p>All notifications can be marked as read with a single click.</p>\n<h4>The AI assistant understands page content better</h4>\n<p>The AI assistant can now read the complete page text — exactly what you see on\nthe page. This makes answers to questions like &quot;What is this page about?&quot;,\n&quot;Summarize this page&quot; or &quot;Write an intro that matches the content&quot; noticeably\nmore accurate.</p>\n<h3>Improvements</h3>\n<h4>View options in a dropdown</h4>\n<p>The view options (e.g. grid, anchor links, structure view) are now grouped into\na dropdown menu in the top toolbar.</p>\n<h4>Help in the app menu</h4>\n<p>The help dialog with the list of keyboard shortcuts has moved out of the right\nsidebar and into the main menu.</p>\n<h4>Other improvements</h4>\n<ul>\n<li>The toolbar with actions and options above a selected block can now be\nscrolled sideways when not all buttons fit.</li>\n<li>The preview thumbnails when the AI assistant picks media are larger.</li>\n</ul>\n<h3>Fixes</h3>\n<ul>\n<li>After applying or rejecting changes made by the AI assistant, page content\noccasionally appeared out of date — the display now updates reliably.</li>\n<li>Starting a new chat while confirming an AI action now cleanly cancels the\npending action and starts the new chat fresh.</li>\n</ul>\n",
7
+ "de": "<h3>Neue Funktionen</h3>\n<h4>Benachrichtigungen</h4>\n<p>In der Werkzeugleiste gibt es eine neue Schaltfläche für Benachrichtigungen.\nEine kleine Markierung zeigt an, wie viele ungelesene Benachrichtigungen\nvorhanden sind. Im aufklappbaren Bereich sehen Sie eine Liste mit allen\nrelevanten Ereignissen – zum Beispiel, wenn Sie in einem Kommentar erwähnt\nwurden, wenn ein Kommentar erledigt wurde oder wenn eine Bearbeitung freigegeben\nwurde.</p>\n<p>Ein Klick auf eine Benachrichtigung öffnet die zugehörige Seite direkt im\nBearbeitungsmodus in einem neuen Tab – und springt bei Kommentar-Erwähnungen\ndirekt zum richtigen Kommentar.</p>\n<p>Alle Benachrichtigungen lassen sich mit einem Klick als gelesen markieren.</p>\n<h4>KI-Assistent versteht den Seiteninhalt besser</h4>\n<p>Der KI-Assistent kann jetzt den kompletten Seitentext lesen – also genau das,\nwas Sie auch auf der Seite sehen. Dadurch werden Antworten auf Fragen wie «Worum\ngeht es auf dieser Seite?», «Fasse die Seite zusammen» oder «Schreibe eine\nEinleitung, die zum Inhalt passt» deutlich präziser.</p>\n<h3>Verbesserungen</h3>\n<h4>Darstellungsoptionen im Aufklappmenü</h4>\n<p>Die Darstellungsoptionen (z. B. Raster, Ankerlinks, Strukturansicht) sind neu in\neinem aufklappbaren Menü in der oberen Toolbar zusammengefasst.</p>\n<h4>Hilfe im App-Menü</h4>\n<p>Die Hilfe mit der Liste der Tastenkürzel ist nicht mehr in der rechten Sidebar,\nsondern direkt im Hauptmenü zu finden.</p>\n<h4>Weitere Verbesserungen</h4>\n<ul>\n<li>Die Werkzeugleiste mit den Aktionen und Optionen über einem ausgewählten Block\nlässt sich nun seitlich scrollen, wenn nicht alle Schaltflächen Platz haben.</li>\n<li>Die Vorschaubilder bei der Medienauswahl durch den KI-Assistenten sind grösser</li>\n</ul>\n<h3>Fehlerbehebungen</h3>\n<ul>\n<li>Nach dem Übernehmen oder Ablehnen von Änderungen durch den KI-Assistenten\nwurden Inhalte auf der Seite in manchen Fällen veraltet dargestellt – die\nAnzeige wird jetzt zuverlässig aktualisiert.</li>\n<li>Wird während der Bestätigung einer KI-Aktion ein neuer Chat gestartet, ist die\nlaufende Aktion korrekt abgebrochen und der neue Chat startet sauber.</li>\n</ul>\n"
8
+ }
9
+ },
2
10
  {
3
11
  "version": "2.0.0-alpha.59",
4
12
  "date": "2026-05-27",
@@ -2,9 +2,6 @@
2
2
  <button
3
3
  class="bk-command _bk_flex _bk_pl-[12px] _bk_pr-10 _bk_w-full _bk_text-left _bk_gap-10 _bk_items-center _bk_border _bk_border-transparent"
4
4
  :class="isFocused ? '_bk_bg-mono-800 _bk_text-white' : '_bk_text-mono-300'"
5
- data-test="command-palette-item"
6
- :data-test-command-id="item.id"
7
- :data-test-focused="isFocused"
8
5
  @mouseenter="$emit('focus', index)"
9
6
  @click.prevent="$emit('select', item.id)"
10
7
  >
@@ -2,7 +2,6 @@
2
2
  <SearchOverlay
3
3
  v-slot="{ focusedIndex, onMouseEnter }"
4
4
  v-model:text="text"
5
- data-test="command-palette"
6
5
  :title="$t('commandPaletteTitle', 'Command Palette')"
7
6
  :total-items="visibleCommands.length"
8
7
  :placeholder="
@@ -7,7 +7,6 @@
7
7
  >
8
8
  <div
9
9
  class="bk-add-comment-inner _bk_w-full _bk_min-w-[400px] _bk_border-t _bk_border-t-yellow-dark"
10
- data-test="comment-add-form"
11
10
  @keydown.capture.stop
12
11
  >
13
12
  <CommentInput
@@ -4,7 +4,6 @@
4
4
  v-if="canEdit"
5
5
  icon="bk_mdi_edit"
6
6
  :label="$t('edit', 'Edit')"
7
- data-test="comment-action-edit"
8
7
  @click="$emit('edit')"
9
8
  />
10
9
  <InlineActionsButton
@@ -12,7 +11,6 @@
12
11
  icon="bk_mdi_delete"
13
12
  :label="$t('delete', 'Delete')"
14
13
  scheme="red"
15
- data-test="comment-action-delete"
16
14
  @click="onDeleteClick"
17
15
  />
18
16
  <InlineActionsButton
@@ -20,7 +18,6 @@
20
18
  icon="bk_mdi_check_circle"
21
19
  scheme="lime"
22
20
  :label="$t('commentsMarkAsResolved', 'Mark as resolved')"
23
- data-test="comment-action-resolve"
24
21
  @click="$emit('resolve')"
25
22
  />
26
23
  <InlineActionsButton
@@ -28,7 +25,6 @@
28
25
  icon="bk_mdi_unpublished"
29
26
  scheme="lime"
30
27
  :label="$t('commentsMarkAsUnresolved', 'Mark as unresolved')"
31
- data-test="comment-action-unresolve"
32
28
  @click="$emit('unresolve')"
33
29
  />
34
30
 
@@ -5,6 +5,12 @@ declare const __VLS_export: import("vue").DefineComponent<{
5
5
  comment: CommentItem;
6
6
  isReply: boolean;
7
7
  hideBlocksPill?: boolean;
8
+ /**
9
+ * Whether this specific comment is the deep-link target. Renders a
10
+ * persistent highlight ring; cleared by emitting `dismissHighlight`
11
+ * on the first `pointerleave` after the user has engaged with it.
12
+ */
13
+ highlighted?: boolean;
8
14
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
15
  edit: (body: string) => void;
10
16
  toggleTask: (taskIndex: number) => void;
@@ -12,10 +18,17 @@ declare const __VLS_export: import("vue").DefineComponent<{
12
18
  resolve: () => void;
13
19
  unresolve: () => void;
14
20
  selectBlocks: () => void;
21
+ dismissHighlight: () => void;
15
22
  }, string, import("vue").PublicProps, Readonly<{
16
23
  comment: CommentItem;
17
24
  isReply: boolean;
18
25
  hideBlocksPill?: boolean;
26
+ /**
27
+ * Whether this specific comment is the deep-link target. Renders a
28
+ * persistent highlight ring; cleared by emitting `dismissHighlight`
29
+ * on the first `pointerleave` after the user has engaged with it.
30
+ */
31
+ highlighted?: boolean;
19
32
  }> & Readonly<{
20
33
  onDelete?: (() => any) | undefined;
21
34
  onEdit?: ((body: string) => any) | undefined;
@@ -23,4 +36,5 @@ declare const __VLS_export: import("vue").DefineComponent<{
23
36
  onUnresolve?: (() => any) | undefined;
24
37
  onToggleTask?: ((taskIndex: number) => any) | undefined;
25
38
  onSelectBlocks?: (() => any) | undefined;
39
+ onDismissHighlight?: (() => any) | undefined;
26
40
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -16,12 +16,13 @@
16
16
  </div>
17
17
  <div
18
18
  v-else
19
+ ref="rootEl"
19
20
  class="_bk_group/comment _bk_relative _bk_flex _bk_gap-(--bk-comment-avatar-gap) _bk_px-(--bk-comment-pad-x) _bk_font-sans"
20
- data-test="comment"
21
- :data-test-uuid="comment.uuid"
22
- :class="
23
- isReply ? '_bk_py-(--bk-comment-reply-pad-y)' : '_bk_py-(--bk-comment-pad-y)'
24
- "
21
+ :class="[
22
+ isReply ? '_bk_py-(--bk-comment-reply-pad-y)' : '_bk_py-(--bk-comment-pad-y)',
23
+ { '_bk_outline-2 _bk_outline-yellow-normal _bk_rounded': highlighted }
24
+ ]"
25
+ @pointerleave="highlighted ? $emit('dismissHighlight') : null"
25
26
  >
26
27
  <Avatar
27
28
  :deleted="!comment.user"
@@ -82,7 +83,14 @@
82
83
  </template>
83
84
 
84
85
  <script setup>
85
- import { computed, ref, useBlokkli } from "#imports";
86
+ import {
87
+ computed,
88
+ nextTick,
89
+ ref,
90
+ useBlokkli,
91
+ useTemplateRef,
92
+ watch
93
+ } from "#imports";
86
94
  import { Avatar, Pill } from "#blokkli/editor/components";
87
95
  import CommentMeta from "./Meta/index.vue";
88
96
  import CommentActions from "./Actions/index.vue";
@@ -92,10 +100,23 @@ const { $t, adapter, user } = useBlokkli();
92
100
  const props = defineProps({
93
101
  comment: { type: Object, required: true },
94
102
  isReply: { type: Boolean, required: true },
95
- hideBlocksPill: { type: Boolean, required: false }
103
+ hideBlocksPill: { type: Boolean, required: false },
104
+ highlighted: { type: Boolean, required: false }
96
105
  });
97
- const emit = defineEmits(["edit", "toggleTask", "delete", "resolve", "unresolve", "selectBlocks"]);
106
+ const emit = defineEmits(["edit", "toggleTask", "delete", "resolve", "unresolve", "selectBlocks", "dismissHighlight"]);
98
107
  const isEditing = ref(false);
108
+ const rootEl = useTemplateRef("rootEl");
109
+ watch(
110
+ () => props.highlighted,
111
+ async (isHighlighted) => {
112
+ if (!isHighlighted) {
113
+ return;
114
+ }
115
+ await nextTick();
116
+ rootEl.value?.scrollIntoView({ behavior: "smooth", block: "center" });
117
+ },
118
+ { immediate: true }
119
+ );
99
120
  const blocksLabel = computed(() => {
100
121
  const count = props.comment.blockUuids?.length || 0;
101
122
  const template = count === 1 ? $t("commentBlocksCountOne", "1 block") : $t("blocksCount", "@count blocks");
@@ -5,6 +5,12 @@ declare const __VLS_export: import("vue").DefineComponent<{
5
5
  comment: CommentItem;
6
6
  isReply: boolean;
7
7
  hideBlocksPill?: boolean;
8
+ /**
9
+ * Whether this specific comment is the deep-link target. Renders a
10
+ * persistent highlight ring; cleared by emitting `dismissHighlight`
11
+ * on the first `pointerleave` after the user has engaged with it.
12
+ */
13
+ highlighted?: boolean;
8
14
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
15
  edit: (body: string) => void;
10
16
  toggleTask: (taskIndex: number) => void;
@@ -12,10 +18,17 @@ declare const __VLS_export: import("vue").DefineComponent<{
12
18
  resolve: () => void;
13
19
  unresolve: () => void;
14
20
  selectBlocks: () => void;
21
+ dismissHighlight: () => void;
15
22
  }, string, import("vue").PublicProps, Readonly<{
16
23
  comment: CommentItem;
17
24
  isReply: boolean;
18
25
  hideBlocksPill?: boolean;
26
+ /**
27
+ * Whether this specific comment is the deep-link target. Renders a
28
+ * persistent highlight ring; cleared by emitting `dismissHighlight`
29
+ * on the first `pointerleave` after the user has engaged with it.
30
+ */
31
+ highlighted?: boolean;
19
32
  }> & Readonly<{
20
33
  onDelete?: (() => any) | undefined;
21
34
  onEdit?: ((body: string) => any) | undefined;
@@ -23,4 +36,5 @@ declare const __VLS_export: import("vue").DefineComponent<{
23
36
  onUnresolve?: (() => any) | undefined;
24
37
  onToggleTask?: ((taskIndex: number) => any) | undefined;
25
38
  onSelectBlocks?: (() => any) | undefined;
39
+ onDismissHighlight?: (() => any) | undefined;
26
40
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -22,8 +22,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
22
22
  onSubmit?: ((value: string) => any) | undefined;
23
23
  }>, {
24
24
  canSubmit: boolean;
25
- initialValue: string;
26
25
  autofocus: boolean;
26
+ initialValue: string;
27
27
  cancellable: boolean;
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,5 @@
1
1
  <template>
2
2
  <form
3
- data-test="comment-input"
4
3
  :class="{
5
4
  '_bk_border _bk_border-mono-300 _bk_rounded _bk_bg-white _bk_focus-within:border-mono-400': boxed
6
5
  }"
@@ -22,7 +21,6 @@
22
21
  v-if="cancellable"
23
22
  type="button"
24
23
  class="bk-button bk-is-small bk-is-light"
25
- data-test="comment-input-cancel"
26
24
  @click="$emit('cancel')"
27
25
  >
28
26
  {{ $t("cancel", "Cancel") }}
@@ -30,7 +28,6 @@
30
28
  <button
31
29
  type="submit"
32
30
  class="bk-button bk-scheme-yellow bk-is-small _bk_ml-auto"
33
- data-test="comment-input-submit"
34
31
  :disabled="!effectiveCanSubmit"
35
32
  >
36
33
  {{ submitLabel }}
@@ -22,8 +22,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
22
22
  onSubmit?: ((value: string) => any) | undefined;
23
23
  }>, {
24
24
  canSubmit: boolean;
25
- initialValue: string;
26
25
  autofocus: boolean;
26
+ initialValue: string;
27
27
  cancellable: boolean;
28
28
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const _default: typeof __VLS_export;
@@ -4,7 +4,6 @@
4
4
  v-if="!isOpen"
5
5
  type="button"
6
6
  class="bk-button _bk_w-full bk-scheme-yellow"
7
- data-test="comments-sidebar-add-button"
8
7
  @click="open"
9
8
  >
10
9
  <Icon name="bk_mdi_add_comment" class="_bk_size-18" />
@@ -4,6 +4,13 @@ export default _default;
4
4
  declare const __VLS_export: import("vue").DefineComponent<{
5
5
  comments: CommentItem[];
6
6
  recentlyResolved: string[];
7
+ /**
8
+ * UUID of the deep-link target comment (root or reply). Passed through
9
+ * to each `<Comment>` via the thread; the matching comment self-scrolls
10
+ * and shows a persistent highlight ring. Cleared by the parent on the
11
+ * `dismissHighlight` event.
12
+ */
13
+ highlightUuid?: string | null;
7
14
  } & {
8
15
  showResolved?: boolean;
9
16
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -23,10 +30,18 @@ declare const __VLS_export: import("vue").DefineComponent<{
23
30
  delete: (value: string) => void;
24
31
  resolve: (value: string) => void;
25
32
  unresolve: (value: string) => void;
33
+ dismissHighlight: () => void;
26
34
  "update:showResolved": (value: boolean) => void;
27
35
  }, string, import("vue").PublicProps, Readonly<{
28
36
  comments: CommentItem[];
29
37
  recentlyResolved: string[];
38
+ /**
39
+ * UUID of the deep-link target comment (root or reply). Passed through
40
+ * to each `<Comment>` via the thread; the matching comment self-scrolls
41
+ * and shows a persistent highlight ring. Cleared by the parent on the
42
+ * `dismissHighlight` event.
43
+ */
44
+ highlightUuid?: string | null;
30
45
  } & {
31
46
  showResolved?: boolean;
32
47
  }> & Readonly<{
@@ -42,6 +57,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
42
57
  uuid: string;
43
58
  taskIndex: number;
44
59
  }) => any) | undefined;
60
+ onDismissHighlight?: (() => any) | undefined;
45
61
  onReply?: ((value: {
46
62
  parentUuid: string;
47
63
  body: string;