@blokkli/editor 2.0.0-alpha.52 → 2.0.0-alpha.53

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 (373) hide show
  1. package/dist/chunks/tailwindConfig.mjs +3 -3
  2. package/dist/global/types/blockOptions.d.ts +18 -2
  3. package/dist/module.d.mts +2 -2
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +281 -18
  6. package/dist/modules/agent/index.d.mts +1 -1
  7. package/dist/modules/agent/runtime/app/composables/agentProvider.d.ts +1 -0
  8. package/dist/modules/agent/runtime/app/composables/agentProvider.js +7 -0
  9. package/dist/modules/agent/runtime/app/features/agent/Panel/DropHandler/index.d.vue.ts +2 -2
  10. package/dist/modules/agent/runtime/app/features/agent/Panel/DropHandler/index.vue +14 -49
  11. package/dist/modules/agent/runtime/app/features/agent/Panel/DropHandler/index.vue.d.ts +2 -2
  12. package/dist/modules/agent/runtime/app/features/agent/Panel/Feedback/index.d.vue.ts +10 -0
  13. package/dist/modules/agent/runtime/app/features/agent/Panel/Feedback/index.vue +102 -0
  14. package/dist/modules/agent/runtime/app/features/agent/Panel/Feedback/index.vue.d.ts +10 -0
  15. package/dist/modules/agent/runtime/app/features/agent/Panel/Input/Actions/index.vue +8 -5
  16. package/dist/modules/agent/runtime/app/features/agent/Panel/ToolCard/index.d.vue.ts +3 -3
  17. package/dist/modules/agent/runtime/app/features/agent/Panel/ToolCard/index.vue +9 -5
  18. package/dist/modules/agent/runtime/app/features/agent/Panel/ToolCard/index.vue.d.ts +3 -3
  19. package/dist/modules/agent/runtime/app/features/agent/Panel/index.d.vue.ts +7 -0
  20. package/dist/modules/agent/runtime/app/features/agent/Panel/index.vue +16 -2
  21. package/dist/modules/agent/runtime/app/features/agent/Panel/index.vue.d.ts +7 -0
  22. package/dist/modules/agent/runtime/app/features/agent/index.vue +29 -0
  23. package/dist/modules/agent/runtime/app/features/agent/types.d.ts +16 -0
  24. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/Component.vue +3 -1
  25. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/index.d.ts +2 -0
  26. package/dist/modules/agent/runtime/app/tools/delegate_text_rewrite/index.js +8 -1
  27. package/dist/modules/charts/index.d.mts +1 -1
  28. package/dist/modules/charts/index.mjs +2 -3
  29. package/dist/modules/charts/runtime/features/charts/Editor/ChartTypePicker/index.vue +1 -1
  30. package/dist/modules/charts/runtime/features/charts/Editor/ColorDropdown/index.vue +1 -1
  31. package/dist/modules/drupal/graphql/base/fragment.paragraphsBlokkliEditState.graphql +16 -0
  32. package/dist/modules/drupal/graphql/base/query.pbConfig.graphql +9 -0
  33. package/dist/modules/drupal/graphql/features/agent.graphql +20 -0
  34. package/dist/modules/drupal/graphql/features/publishNew.graphql +14 -0
  35. package/dist/modules/drupal/graphql/features/referenced-entities.graphql +21 -0
  36. package/dist/modules/drupal/graphql/features/textFieldValues.graphql +20 -0
  37. package/dist/modules/drupal/graphql/features/workspace.graphql +23 -0
  38. package/dist/modules/drupal/graphql/mutations/bulk_translate_field_values.graphql +19 -0
  39. package/dist/modules/drupal/graphql/mutations/clear_outdated_translation.graphql +15 -0
  40. package/dist/modules/drupal/graphql/mutations/ignore_analyze.graphql +15 -0
  41. package/dist/modules/drupal/graphql/mutations/request_translation.graphql +10 -0
  42. package/dist/modules/drupal/graphql/mutations/unignore_analyze.graphql +15 -0
  43. package/dist/modules/drupal/index.d.mts +1 -1
  44. package/dist/modules/drupal/index.mjs +16 -0
  45. package/dist/modules/drupal/runtime/adapter/index.js +180 -11
  46. package/dist/modules/iframes/index.d.mts +31 -0
  47. package/dist/modules/iframes/index.mjs +52 -0
  48. package/dist/modules/iframes/runtime/components/BlokkliIframe/index.d.vue.ts +18 -0
  49. package/dist/modules/iframes/runtime/components/BlokkliIframe/index.vue +61 -0
  50. package/dist/modules/iframes/runtime/components/BlokkliIframe/index.vue.d.ts +18 -0
  51. package/dist/modules/iframes/runtime/components/index.d.ts +1 -0
  52. package/dist/modules/iframes/runtime/components/index.js +1 -0
  53. package/dist/modules/iframes/runtime/features/iframes/Editor/index.d.vue.ts +12 -0
  54. package/dist/modules/iframes/runtime/features/iframes/Editor/index.vue +220 -0
  55. package/dist/modules/iframes/runtime/features/iframes/Editor/index.vue.d.ts +12 -0
  56. package/dist/modules/iframes/runtime/types.d.ts +10 -0
  57. package/dist/modules/index.d.mts +1 -1
  58. package/dist/modules/table-of-contents/index.d.mts +1 -1
  59. package/dist/runtime/components/Blocks/NotImplemented/index.vue +57 -0
  60. package/dist/runtime/components/BlokkliEditable.vue +1 -1
  61. package/dist/runtime/editor/adapter/index.d.ts +8 -1
  62. package/dist/runtime/editor/components/Actions/Interactions/index.vue +77 -17
  63. package/dist/runtime/editor/components/Actions/{ItemDropdown.vue → ItemDropdown/index.vue} +9 -10
  64. package/dist/runtime/editor/components/Actions/index.vue +586 -23
  65. package/dist/runtime/editor/components/AnimationCanvas/index.vue +1 -0
  66. package/dist/runtime/editor/components/AppMenu/MenuButton.vue +185 -1
  67. package/dist/runtime/editor/components/AppMenu/index.vue +24 -10
  68. package/dist/runtime/editor/components/ArtboardTooltip/index.d.vue.ts +6 -2
  69. package/dist/runtime/editor/components/ArtboardTooltip/index.vue +223 -3
  70. package/dist/runtime/editor/components/ArtboardTooltip/index.vue.d.ts +6 -2
  71. package/dist/runtime/editor/components/AutoHeight/index.vue +23 -0
  72. package/dist/runtime/editor/components/Banner/Inner.d.vue.ts +30 -0
  73. package/dist/runtime/editor/components/Banner/Inner.vue +32 -0
  74. package/dist/runtime/editor/components/Banner/Inner.vue.d.ts +30 -0
  75. package/dist/runtime/editor/components/Banner/index.d.vue.ts +3 -13
  76. package/dist/runtime/editor/components/Banner/index.vue +2 -14
  77. package/dist/runtime/editor/components/Banner/index.vue.d.ts +3 -13
  78. package/dist/runtime/editor/components/BetaIndicator/index.d.vue.ts +6 -0
  79. package/dist/runtime/editor/components/BetaIndicator/index.vue +16 -0
  80. package/dist/runtime/editor/components/BetaIndicator/index.vue.d.ts +6 -0
  81. package/dist/runtime/editor/components/BlockPreviewItem/index.vue +51 -1
  82. package/dist/runtime/editor/components/BlockPreviewRenderer/index.vue +27 -1
  83. package/dist/runtime/editor/components/BlockProxy/index.vue +148 -1
  84. package/dist/runtime/editor/components/BlokkliRootErrorBoundary.vue +59 -0
  85. package/dist/runtime/editor/components/BundleSelector/index.vue +170 -20
  86. package/dist/runtime/editor/components/Dialog/index.d.vue.ts +2 -0
  87. package/dist/runtime/editor/components/Dialog/index.vue +341 -0
  88. package/dist/runtime/editor/components/Dialog/index.vue.d.ts +2 -0
  89. package/dist/runtime/editor/components/DiffApproval/Highlight/index.vue +117 -0
  90. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue +224 -28
  91. package/dist/runtime/editor/components/DiffViewer/DiffValue.d.vue.ts +1 -0
  92. package/dist/runtime/editor/components/DiffViewer/DiffValue.vue +5 -1
  93. package/dist/runtime/editor/components/DiffViewer/DiffValue.vue.d.ts +1 -0
  94. package/dist/runtime/editor/components/DiffViewer/State.vue +319 -0
  95. package/dist/runtime/editor/components/DraggableList.vue +103 -0
  96. package/dist/runtime/editor/components/Dropdown/index.vue +84 -0
  97. package/dist/runtime/editor/components/EditProvider.vue +72 -15
  98. package/dist/runtime/editor/components/FileDropHandler/index.d.vue.ts +23 -0
  99. package/dist/runtime/editor/components/FileDropHandler/index.vue +108 -0
  100. package/dist/runtime/editor/components/FileDropHandler/index.vue.d.ts +23 -0
  101. package/dist/runtime/editor/components/FlexTextarea/index.vue +4 -2
  102. package/dist/runtime/editor/components/Form/Datepicker/index.vue +149 -0
  103. package/dist/runtime/editor/components/Form/Toggle/index.vue +205 -1
  104. package/dist/runtime/editor/components/FormOverlay/index.vue +90 -0
  105. package/dist/runtime/editor/components/Icon/index.vue +6 -0
  106. package/dist/runtime/editor/components/Indicators/index.vue +161 -0
  107. package/dist/runtime/editor/components/InfoBox/index.vue +65 -0
  108. package/dist/runtime/editor/components/Konami/index.vue +119 -0
  109. package/dist/runtime/editor/components/Loading/index.d.vue.ts +6 -3
  110. package/dist/runtime/editor/components/Loading/index.vue +10 -5
  111. package/dist/runtime/editor/components/Loading/index.vue.d.ts +6 -3
  112. package/dist/runtime/editor/components/Messages/index.vue +131 -0
  113. package/dist/runtime/editor/components/NestedEditorOverlay/index.d.vue.ts +1 -0
  114. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue +246 -12
  115. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue.d.ts +1 -0
  116. package/dist/runtime/editor/components/NotEditStateInfo/index.d.vue.ts +3 -0
  117. package/dist/runtime/editor/components/NotEditStateInfo/index.vue +19 -0
  118. package/dist/runtime/editor/components/NotEditStateInfo/index.vue.d.ts +3 -0
  119. package/dist/runtime/editor/components/Overlay/index.vue +84 -0
  120. package/dist/runtime/editor/components/Pagination/index.vue +41 -0
  121. package/dist/runtime/editor/components/PluginConfigForm/index.vue +23 -0
  122. package/dist/runtime/editor/components/PluginConfigFormInline/FilterSelect/index.vue +429 -0
  123. package/dist/runtime/editor/components/PluginConfigFormInline/index.d.vue.ts +22 -0
  124. package/dist/runtime/editor/components/PluginConfigFormInline/index.vue +150 -0
  125. package/dist/runtime/editor/components/PluginConfigFormInline/index.vue.d.ts +22 -0
  126. package/dist/runtime/editor/components/Popup/index.vue +77 -2
  127. package/dist/runtime/editor/components/PreviewProvider.vue +7 -0
  128. package/dist/runtime/editor/components/Resizable/index.vue +90 -1
  129. package/dist/runtime/editor/components/ScaleToFit/index.vue +30 -1
  130. package/dist/runtime/editor/components/SearchOverlay/index.d.vue.ts +43 -0
  131. package/dist/runtime/editor/components/SearchOverlay/index.vue +264 -0
  132. package/dist/runtime/editor/components/SearchOverlay/index.vue.d.ts +43 -0
  133. package/dist/runtime/editor/components/StatusIcon/index.vue +104 -0
  134. package/dist/runtime/editor/components/StatusIndicator/index.d.vue.ts +9 -0
  135. package/dist/runtime/editor/components/StatusIndicator/index.vue +16 -0
  136. package/dist/runtime/editor/components/StatusIndicator/index.vue.d.ts +9 -0
  137. package/dist/runtime/editor/components/SystemRequirements/index.vue +57 -0
  138. package/dist/runtime/editor/components/Tabs/index.d.vue.ts +30 -0
  139. package/dist/runtime/editor/components/Tabs/index.vue +32 -0
  140. package/dist/runtime/editor/components/Tabs/index.vue.d.ts +30 -0
  141. package/dist/runtime/editor/components/Toolbar/index.vue +214 -3
  142. package/dist/runtime/editor/components/Tooltip/Context.d.vue.ts +7 -0
  143. package/dist/runtime/editor/components/Tooltip/Context.vue +13 -0
  144. package/dist/runtime/editor/components/Tooltip/Context.vue.d.ts +7 -0
  145. package/dist/runtime/editor/components/Tooltip/Status.d.vue.ts +8 -0
  146. package/dist/runtime/editor/components/Tooltip/Status.vue +27 -0
  147. package/dist/runtime/editor/components/Tooltip/Status.vue.d.ts +8 -0
  148. package/dist/runtime/editor/components/Tooltip/index.d.vue.ts +27 -0
  149. package/dist/runtime/editor/components/Tooltip/index.vue +40 -0
  150. package/dist/runtime/editor/components/Tooltip/index.vue.d.ts +27 -0
  151. package/dist/runtime/editor/components/index.d.ts +59 -49
  152. package/dist/runtime/editor/components/index.js +59 -98
  153. package/dist/runtime/editor/composables/defineHighlight.d.ts +2 -0
  154. package/dist/runtime/editor/composables/defineHighlight.js +10 -0
  155. package/dist/runtime/editor/composables/index.d.ts +1 -0
  156. package/dist/runtime/editor/composables/index.js +1 -0
  157. package/dist/runtime/editor/composables/useBlockRegistration.js +8 -0
  158. package/dist/runtime/editor/composables/useStickyToolbar.d.ts +1 -0
  159. package/dist/runtime/editor/composables/useStickyToolbar.js +16 -0
  160. package/dist/runtime/editor/css/output.css +1 -1
  161. package/dist/runtime/editor/events/index.d.ts +10 -0
  162. package/dist/runtime/editor/features/add-list/Help/index.vue +193 -0
  163. package/dist/runtime/editor/features/add-list/index.vue +441 -0
  164. package/dist/runtime/editor/features/analyze/Ignored/index.d.vue.ts +7 -0
  165. package/dist/runtime/editor/features/analyze/Ignored/index.vue +35 -0
  166. package/dist/runtime/editor/features/analyze/Ignored/index.vue.d.ts +7 -0
  167. package/dist/runtime/editor/features/analyze/Main.vue +148 -24
  168. package/dist/runtime/editor/features/analyze/Results/Results.d.vue.ts +1 -9
  169. package/dist/runtime/editor/features/analyze/Results/Results.vue +0 -2
  170. package/dist/runtime/editor/features/analyze/Results/Results.vue.d.ts +1 -9
  171. package/dist/runtime/editor/features/analyze/Results/ResultsItem.d.vue.ts +1 -9
  172. package/dist/runtime/editor/features/analyze/Results/ResultsItem.vue +1 -2
  173. package/dist/runtime/editor/features/analyze/Results/ResultsItem.vue.d.ts +1 -9
  174. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.d.vue.ts +1 -9
  175. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.vue +11 -8
  176. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.vue.d.ts +1 -9
  177. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.d.vue.ts +3 -10
  178. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.vue +63 -25
  179. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.vue.d.ts +3 -10
  180. package/dist/runtime/editor/features/analyze/analyzers/altText.js +2 -0
  181. package/dist/runtime/editor/features/analyze/analyzers/headingStructure.js +3 -0
  182. package/dist/runtime/editor/features/analyze/analyzers/helpers/hashString.d.ts +7 -0
  183. package/dist/runtime/editor/features/analyze/analyzers/helpers/hashString.js +8 -0
  184. package/dist/runtime/editor/features/analyze/analyzers/readability.js +6 -12
  185. package/dist/runtime/editor/features/analyze/analyzers/types.d.ts +20 -0
  186. package/dist/runtime/editor/features/analyze/index.vue +458 -0
  187. package/dist/runtime/editor/features/analyze/types.d.ts +12 -0
  188. package/dist/runtime/editor/features/artboard/Overview/index.vue +37 -4
  189. package/dist/runtime/editor/features/artboard/Renderer.vue +79 -9
  190. package/dist/runtime/editor/features/artboard/Scrollbar/index.vue +84 -0
  191. package/dist/runtime/editor/features/block-scheduler/Dialog/index.vue +1 -1
  192. package/dist/runtime/editor/features/block-scheduler/index.vue +114 -0
  193. package/dist/runtime/editor/features/breadcrumbs/index.vue +150 -0
  194. package/dist/runtime/editor/features/changelog/Dialog/index.vue +62 -7
  195. package/dist/runtime/editor/features/changelog/changelog.json +9 -1
  196. package/dist/runtime/editor/features/clipboard/index.vue +153 -1
  197. package/dist/runtime/editor/features/command-palette/Palette/Item/index.vue +39 -16
  198. package/dist/runtime/editor/features/command-palette/Palette/index.vue +24 -130
  199. package/dist/runtime/editor/features/comments/index.vue +235 -0
  200. package/dist/runtime/editor/features/complex-options/index.vue +4 -1
  201. package/dist/runtime/editor/features/debug/Main.vue +1 -1
  202. package/dist/runtime/editor/features/debug/Section/Features.vue +2 -4
  203. package/dist/runtime/editor/features/debug/index.vue +168 -0
  204. package/dist/runtime/editor/features/dev-mode/index.vue +92 -27
  205. package/dist/runtime/editor/features/dragging-overlay/Renderer/index.vue +1 -1
  206. package/dist/runtime/editor/features/dragging-overlay/index.vue +330 -0
  207. package/dist/runtime/editor/features/edit/index.vue +15 -17
  208. package/dist/runtime/editor/features/edit-form/Frame/index.vue +21 -4
  209. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.d.vue.ts +9 -1
  210. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue +32 -3
  211. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue.d.ts +9 -1
  212. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/ChunkOverlay.vue +77 -0
  213. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/index.vue +55 -56
  214. package/dist/runtime/editor/features/editable-field/Overlay/index.vue +416 -8
  215. package/dist/runtime/editor/features/editable-mask/index.vue +9 -0
  216. package/dist/runtime/editor/features/entity-title/index.vue +40 -56
  217. package/dist/runtime/editor/features/fragments/Dialog/index.vue +90 -0
  218. package/dist/runtime/editor/features/help/Shortcuts/index.vue +71 -0
  219. package/dist/runtime/editor/features/help/index.vue +17 -0
  220. package/dist/runtime/editor/features/highlights/Renderer/fragment.glsl +89 -0
  221. package/dist/runtime/editor/features/highlights/Renderer/index.vue +408 -0
  222. package/dist/runtime/editor/features/highlights/Renderer/vertex.glsl +87 -0
  223. package/dist/runtime/editor/features/highlights/index.d.vue.ts +3 -0
  224. package/dist/runtime/editor/features/highlights/index.vue +20 -0
  225. package/dist/runtime/editor/features/highlights/index.vue.d.ts +3 -0
  226. package/dist/runtime/editor/features/history/List/index.vue +209 -0
  227. package/dist/runtime/editor/features/history/index.vue +0 -1
  228. package/dist/runtime/editor/features/hover/Renderer/index.vue +1 -1
  229. package/dist/runtime/editor/features/hover/Renderer/vertex.glsl +1 -1
  230. package/dist/runtime/editor/features/import-existing/Dialog/index.vue +18 -0
  231. package/dist/runtime/editor/features/media-library/Library/index.vue +10 -30
  232. package/dist/runtime/editor/features/media-library/index.vue +331 -0
  233. package/dist/runtime/editor/features/options/Form/Checkbox/index.vue +1 -1
  234. package/dist/runtime/editor/features/options/Form/Checkboxes/index.vue +1 -1
  235. package/dist/runtime/editor/features/options/Form/ComplexType/index.vue +6 -2
  236. package/dist/runtime/editor/features/options/Form/Item.vue +21 -18
  237. package/dist/runtime/editor/features/options/Form/Radios/index.d.vue.ts +6 -0
  238. package/dist/runtime/editor/features/options/Form/Radios/index.vue +25 -6
  239. package/dist/runtime/editor/features/options/Form/Radios/index.vue.d.ts +6 -0
  240. package/dist/runtime/editor/features/options/Form/index.vue +1 -4
  241. package/dist/runtime/editor/features/options/index.vue +729 -0
  242. package/dist/runtime/editor/features/ownership/Banner/index.vue +9 -8
  243. package/dist/runtime/editor/features/ownership/index.vue +1 -1
  244. package/dist/runtime/editor/features/preview-grant/QrCode/index.vue +8 -3
  245. package/dist/runtime/editor/features/publish/Dialog/Item.vue +18 -20
  246. package/dist/runtime/editor/features/publish/Dialog/index.vue +5 -1
  247. package/dist/runtime/editor/features/publish/index.vue +835 -0
  248. package/dist/runtime/editor/features/publish/types.d.ts +5 -1
  249. package/dist/runtime/editor/features/referenced-entities/List/Item/index.d.vue.ts +4 -0
  250. package/dist/runtime/editor/features/referenced-entities/List/Item/index.vue +81 -0
  251. package/dist/runtime/editor/features/referenced-entities/List/Item/index.vue.d.ts +4 -0
  252. package/dist/runtime/editor/features/referenced-entities/List/index.d.vue.ts +11 -0
  253. package/dist/runtime/editor/features/referenced-entities/List/index.vue +78 -0
  254. package/dist/runtime/editor/features/referenced-entities/List/index.vue.d.ts +11 -0
  255. package/dist/runtime/editor/features/referenced-entities/index.d.vue.ts +3 -0
  256. package/dist/runtime/editor/features/referenced-entities/index.vue +36 -0
  257. package/dist/runtime/editor/features/referenced-entities/index.vue.d.ts +3 -0
  258. package/dist/runtime/editor/features/referenced-entities/types.d.ts +13 -0
  259. package/dist/runtime/editor/features/responsive-preview/Frame/index.vue +188 -0
  260. package/dist/runtime/editor/features/search/Overlay/Results/Page/index.vue +1 -1
  261. package/dist/runtime/editor/features/search/index.vue +511 -0
  262. package/dist/runtime/editor/features/selection/AddButtons/Renderer/index.vue +58 -0
  263. package/dist/runtime/editor/features/selection/index.vue +47 -15
  264. package/dist/runtime/editor/features/settings/Dialog/FeatureSetting/index.vue +23 -0
  265. package/dist/runtime/editor/features/settings/Dialog/index.vue +5 -2
  266. package/dist/runtime/editor/features/settings/index.vue +152 -0
  267. package/dist/runtime/editor/features/structure/List/Item/index.vue +7 -0
  268. package/dist/runtime/editor/features/structure/index.vue +178 -0
  269. package/dist/runtime/editor/features/templates/ManageDialog/Item.vue +3 -3
  270. package/dist/runtime/editor/features/templates/ManageDialog/index.vue +24 -3
  271. package/dist/runtime/editor/features/theme/index.vue +94 -0
  272. package/dist/runtime/editor/features/touch-action-bar/Bar/index.vue +34 -0
  273. package/dist/runtime/editor/features/tour/Overlay/index.vue +243 -13
  274. package/dist/runtime/editor/features/transform/Dialog/index.vue +132 -1
  275. package/dist/runtime/editor/features/translations/Banner/index.d.vue.ts +14 -1
  276. package/dist/runtime/editor/features/translations/Banner/index.vue +139 -12
  277. package/dist/runtime/editor/features/translations/Banner/index.vue.d.ts +14 -1
  278. package/dist/runtime/editor/features/translations/CsvDialog/Export/index.d.vue.ts +3 -0
  279. package/dist/runtime/editor/features/translations/CsvDialog/Export/index.vue +272 -0
  280. package/dist/runtime/editor/features/translations/CsvDialog/Export/index.vue.d.ts +3 -0
  281. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.d.vue.ts +10 -0
  282. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.vue +382 -0
  283. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.vue.d.ts +10 -0
  284. package/dist/runtime/editor/features/translations/CsvDialog/csv.d.ts +22 -0
  285. package/dist/runtime/editor/features/translations/CsvDialog/csv.js +50 -0
  286. package/dist/runtime/editor/features/translations/CsvDialog/index.d.vue.ts +10 -0
  287. package/dist/runtime/editor/features/translations/CsvDialog/index.vue +37 -0
  288. package/dist/runtime/editor/features/translations/CsvDialog/index.vue.d.ts +10 -0
  289. package/dist/runtime/editor/features/translations/CsvDialog/po.d.ts +7 -0
  290. package/dist/runtime/editor/features/translations/CsvDialog/po.js +36 -0
  291. package/dist/runtime/editor/features/translations/SelectionTable/index.d.vue.ts +37 -0
  292. package/dist/runtime/editor/features/translations/SelectionTable/index.vue +102 -0
  293. package/dist/runtime/editor/features/translations/SelectionTable/index.vue.d.ts +37 -0
  294. package/dist/runtime/editor/features/translations/TranslateDialog/index.d.vue.ts +7 -0
  295. package/dist/runtime/editor/features/translations/TranslateDialog/index.vue +294 -0
  296. package/dist/runtime/editor/features/translations/TranslateDialog/index.vue.d.ts +7 -0
  297. package/dist/runtime/editor/features/translations/index.vue +276 -6
  298. package/dist/runtime/editor/features/translations/types.d.ts +47 -0
  299. package/dist/runtime/editor/features/validations/Overlay/index.vue +130 -0
  300. package/dist/runtime/editor/features/validations/index.vue +41 -0
  301. package/dist/runtime/editor/features/{assistant → workspace}/Overlay/index.d.vue.ts +2 -4
  302. package/dist/runtime/editor/features/workspace/Overlay/index.vue +177 -0
  303. package/dist/runtime/editor/features/{assistant → workspace}/Overlay/index.vue.d.ts +2 -4
  304. package/dist/runtime/editor/features/workspace/index.d.vue.ts +3 -0
  305. package/dist/runtime/editor/features/workspace/index.vue +46 -0
  306. package/dist/runtime/editor/features/workspace/index.vue.d.ts +3 -0
  307. package/dist/runtime/editor/features/workspace/types.d.ts +59 -0
  308. package/dist/runtime/editor/features/workspace/types.js +0 -0
  309. package/dist/runtime/editor/icons/svg/spinner.svg +2 -2
  310. package/dist/runtime/editor/plugins/ContextMenu/Menu/index.vue +21 -7
  311. package/dist/runtime/editor/plugins/ContextMenu/index.vue +4 -0
  312. package/dist/runtime/editor/plugins/ItemAction/index.d.vue.ts +9 -2
  313. package/dist/runtime/editor/plugins/ItemAction/index.vue +26 -16
  314. package/dist/runtime/editor/plugins/ItemAction/index.vue.d.ts +9 -2
  315. package/dist/runtime/editor/plugins/Sidebar/Detached/index.vue +24 -26
  316. package/dist/runtime/editor/plugins/Sidebar/index.vue +612 -27
  317. package/dist/runtime/editor/plugins/ToolbarButton/index.d.vue.ts +13 -84
  318. package/dist/runtime/editor/plugins/ToolbarButton/index.vue +36 -22
  319. package/dist/runtime/editor/plugins/ToolbarButton/index.vue.d.ts +13 -84
  320. package/dist/runtime/editor/plugins/ViewOption/index.vue +13 -14
  321. package/dist/runtime/editor/providers/blocks.js +1 -0
  322. package/dist/runtime/editor/providers/cache.d.ts +23 -0
  323. package/dist/runtime/editor/providers/cache.js +29 -0
  324. package/dist/runtime/editor/providers/directive.d.ts +25 -0
  325. package/dist/runtime/editor/providers/directive.js +20 -0
  326. package/dist/runtime/editor/providers/fieldValue.d.ts +5 -5
  327. package/dist/runtime/editor/providers/fieldValue.js +8 -7
  328. package/dist/runtime/editor/providers/plugin.d.ts +14 -0
  329. package/dist/runtime/editor/providers/plugin.js +9 -0
  330. package/dist/runtime/editor/providers/readability.js +1 -1
  331. package/dist/runtime/editor/providers/selection.js +1 -1
  332. package/dist/runtime/editor/providers/state.d.ts +1 -0
  333. package/dist/runtime/editor/providers/state.js +1 -0
  334. package/dist/runtime/editor/providers/texts.js +11 -1
  335. package/dist/runtime/editor/providers/ui.d.ts +11 -0
  336. package/dist/runtime/editor/providers/ui.js +5 -1
  337. package/dist/runtime/editor/translations/de.json +316 -56
  338. package/dist/runtime/editor/translations/fr.json +310 -50
  339. package/dist/runtime/editor/translations/gsw_CH.json +311 -51
  340. package/dist/runtime/editor/translations/it.json +310 -50
  341. package/dist/runtime/editor/types/app.d.ts +2 -0
  342. package/dist/runtime/editor/types/definitions.d.ts +8 -0
  343. package/dist/runtime/editor/types/field.d.ts +1 -0
  344. package/dist/runtime/editor/types/state.d.ts +10 -0
  345. package/dist/runtime/editor/types/ui.d.ts +3 -1
  346. package/dist/runtime/helpers/tw.d.ts +15 -0
  347. package/dist/runtime/helpers/tw.js +3 -0
  348. package/dist/runtime/types/field.d.ts +1 -0
  349. package/dist/shared/{editor.DsGJIlGn.d.mts → editor.BTOBvmaz.d.mts} +20 -3
  350. package/dist/types.d.mts +1 -1
  351. package/package.json +16 -3
  352. package/dist/runtime/editor/features/analyze/Renderer/fragment.glsl +0 -74
  353. package/dist/runtime/editor/features/analyze/Renderer/index.d.vue.ts +0 -24
  354. package/dist/runtime/editor/features/analyze/Renderer/index.vue +0 -330
  355. package/dist/runtime/editor/features/analyze/Renderer/index.vue.d.ts +0 -24
  356. package/dist/runtime/editor/features/analyze/Renderer/vertex.glsl +0 -94
  357. package/dist/runtime/editor/features/assistant/Overlay/ResultMarkup/index.d.vue.ts +0 -7
  358. package/dist/runtime/editor/features/assistant/Overlay/ResultMarkup/index.vue +0 -17
  359. package/dist/runtime/editor/features/assistant/Overlay/ResultMarkup/index.vue.d.ts +0 -7
  360. package/dist/runtime/editor/features/assistant/Overlay/index.vue +0 -108
  361. package/dist/runtime/editor/features/assistant/docs.md +0 -7
  362. package/dist/runtime/editor/features/assistant/index.vue +0 -66
  363. package/dist/runtime/editor/features/assistant/types.d.ts +0 -37
  364. package/dist/runtime/editor/features/media-library/Library/FilterSelect/index.vue +0 -168
  365. package/dist/runtime/editor/providers/fieldValueAdapterTypes.d.ts +0 -13
  366. /package/dist/{runtime/editor/features/assistant → modules/iframes/runtime}/types.js +0 -0
  367. /package/dist/runtime/editor/components/Actions/{ItemDropdown.d.vue.ts → ItemDropdown/index.d.vue.ts} +0 -0
  368. /package/dist/runtime/editor/components/Actions/{ItemDropdown.vue.d.ts → ItemDropdown/index.vue.d.ts} +0 -0
  369. /package/dist/runtime/editor/{features/media-library/Library → components/PluginConfigFormInline}/FilterSelect/index.d.vue.ts +0 -0
  370. /package/dist/runtime/editor/{features/media-library/Library → components/PluginConfigFormInline}/FilterSelect/index.vue.d.ts +0 -0
  371. /package/dist/runtime/editor/features/{assistant → highlights/Renderer}/index.d.vue.ts +0 -0
  372. /package/dist/runtime/editor/features/{assistant → highlights/Renderer}/index.vue.d.ts +0 -0
  373. /package/dist/runtime/editor/{providers/fieldValueAdapterTypes.js → features/referenced-entities/types.js} +0 -0
@@ -1,26 +1,17 @@
1
1
  <template>
2
- <div
3
- @dragenter.stop.prevent="onDragEnter"
4
- @dragleave.stop="onDragLeave"
5
- @dragover.stop.prevent="onDragOver"
6
- @drop.stop.prevent="onDrop"
2
+ <FileDropHandler
3
+ icon="bk_mdi_attach_file"
4
+ :label="$t('aiAgentDropFiles', 'Drop files to attach')"
5
+ :accept="acceptTextFile"
6
+ @drop="onDrop"
7
7
  >
8
8
  <slot />
9
- <Transition name="bk-agent-drop" :duration="200">
10
- <div v-if="isDragOver" class="bk-agent-drop-overlay">
11
- <div class="bk-agent-drop-overlay-backdrop" />
12
- <div class="bk-agent-drop-overlay-content">
13
- <Icon name="bk_mdi_attach_file" />
14
- <span>{{ $t("aiAgentDropFiles", "Drop files to attach") }}</span>
15
- </div>
16
- </div>
17
- </Transition>
18
- </div>
9
+ </FileDropHandler>
19
10
  </template>
20
11
 
21
12
  <script setup>
22
- import { ref, useBlokkli } from "#imports";
23
- import { Icon } from "#blokkli/editor/components";
13
+ import { useBlokkli } from "#imports";
14
+ import { FileDropHandler } from "#blokkli/editor/components";
24
15
  import { generateUUID } from "#blokkli/editor/helpers/uuid";
25
16
  const emit = defineEmits(["drop"]);
26
17
  const { $t } = useBlokkli();
@@ -176,41 +167,15 @@ async function extractDocxText(file) {
176
167
  const cleaned = markdown.replace(/!\[[^\]]*\]\([^)]*\)/g, "").trim();
177
168
  return cleaned;
178
169
  }
179
- let dragCounter = 0;
180
- const isDragOver = ref(false);
181
- function hasTextItems(dt) {
182
- for (const item of dt.items) {
183
- if (item.kind !== "file") continue;
184
- if (item.type.startsWith("text/") || TEXT_MIME_TYPES.has(item.type) || item.type === DOCX_MIME) {
185
- return true;
186
- }
187
- if (!item.type) return true;
170
+ function acceptTextFile(item) {
171
+ if (item.kind !== "file") return false;
172
+ if (item.type.startsWith("text/") || TEXT_MIME_TYPES.has(item.type) || item.type === DOCX_MIME) {
173
+ return true;
188
174
  }
175
+ if (!item.type) return true;
189
176
  return false;
190
177
  }
191
- function onDragEnter(e) {
192
- dragCounter++;
193
- if (e.dataTransfer?.types.includes("Files") && hasTextItems(e.dataTransfer)) {
194
- isDragOver.value = true;
195
- }
196
- }
197
- function onDragLeave() {
198
- dragCounter--;
199
- if (dragCounter <= 0) {
200
- dragCounter = 0;
201
- isDragOver.value = false;
202
- }
203
- }
204
- function onDragOver(e) {
205
- if (e.dataTransfer) {
206
- e.dataTransfer.dropEffect = "copy";
207
- }
208
- }
209
- async function onDrop(e) {
210
- dragCounter = 0;
211
- isDragOver.value = false;
212
- const files = e.dataTransfer?.files;
213
- if (!files?.length) return;
178
+ async function onDrop(files) {
214
179
  const dropped = [];
215
180
  for (const file of files) {
216
181
  if (!isTextFile(file)) continue;
@@ -1,6 +1,6 @@
1
- declare var __VLS_1: {};
1
+ declare var __VLS_10: {};
2
2
  type __VLS_Slots = {} & {
3
- default?: (props: typeof __VLS_1) => any;
3
+ default?: (props: typeof __VLS_10) => any;
4
4
  };
5
5
  declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
6
  drop: (attachments: Attachment[]) => any;
@@ -0,0 +1,10 @@
1
+ import type { AgentConversationFeedbackRating } from '../../types.js';
2
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ done: () => any;
4
+ submit: (rating: AgentConversationFeedbackRating, comment?: string | undefined) => any;
5
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
6
+ onDone?: (() => any) | undefined;
7
+ onSubmit?: ((rating: AgentConversationFeedbackRating, comment?: string | undefined) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -0,0 +1,102 @@
1
+ <template>
2
+ <div class="_bk_mt-10 _bk_p-10 _bk_border _bk_border-mono-300 _bk_rounded-lg">
3
+ <div class="_bk_flex _bk_items-center _bk_justify-between _bk_gap-8">
4
+ <span class="_bk_text-sm _bk_font-semibold">
5
+ {{
6
+ rating ? $t("aiAgentFeedbackThanks", "Thanks for your feedback!") : $t("aiAgentFeedbackPrompt", "How was this response?")
7
+ }}
8
+ </span>
9
+ <div class="_bk_flex _bk_relative _bk_-mr-3">
10
+ <button
11
+ v-for="option in options"
12
+ :key="option.value"
13
+ class="_bk_block _bk_disabled:pointer-events-none _bk_px-3 _bk_group/tooltip _bk_group"
14
+ :disabled="submitted && option.value !== rating"
15
+ @click="onRate(option.value)"
16
+ >
17
+ <div
18
+ class="_bk_size-30 _bk_flex _bk_items-center _bk_justify-center _bk_rounded-full _bk_text-mono-600 _bk_group-hover:bg-mono-200"
19
+ :class="[
20
+ 'bk-scheme-' + option.theme,
21
+ {
22
+ '_bk_!bg-scheme-normal _bk_!text-scheme-text': rating === option.value,
23
+ '_bk_!text-mono-300': submitted && option.value !== rating
24
+ }
25
+ ]"
26
+ >
27
+ <Icon :name="option.icon" class="_bk_size-[16px]" />
28
+ <Tooltip
29
+ :label="option.label"
30
+ placement="above-right"
31
+ class="_bk_w-full"
32
+ />
33
+ </div>
34
+ </button>
35
+ </div>
36
+ </div>
37
+ <TransitionHeight opacity :duration="300">
38
+ <div v-if="rating && !submitted" class="_bk_flex _bk_flex-col _bk_gap-10 _bk_mt-10">
39
+ <textarea
40
+ v-model="comment"
41
+ class="_bk_text-sm _bk_p-8 _bk_rounded _bk_border _bk_border-mono-300 _bk_bg-white _bk_resize-none _bk_focus:border-mono-500 _bk_focus:outline-none"
42
+ :rows="2"
43
+ :placeholder="
44
+ $t('aiAgentFeedbackPlaceholder', 'Tell us more (optional)...')
45
+ "
46
+ />
47
+ <button
48
+ class="bk-button bk-is-small bk-is-primary _bk_self-end"
49
+ :disabled="!comment"
50
+ @click="onSubmit"
51
+ >
52
+ {{ $t("aiAgentFeedbackSubmit", "Submit") }}
53
+ </button>
54
+ </div>
55
+ </TransitionHeight>
56
+ </div>
57
+ </template>
58
+
59
+ <script setup>
60
+ import { computed, ref, useBlokkli } from "#imports";
61
+ import { Icon, TransitionHeight, Tooltip } from "#blokkli/editor/components";
62
+ const { $t } = useBlokkli();
63
+ const emit = defineEmits(["submit", "done"]);
64
+ const options = computed(() => {
65
+ return [
66
+ {
67
+ value: "bad",
68
+ label: $t("aiAgentFeedbackBad", "Bad"),
69
+ icon: "bk_mdi_thumb_down",
70
+ theme: "red"
71
+ },
72
+ {
73
+ value: "fine",
74
+ label: $t("aiAgentFeedbackFine", "Fine"),
75
+ icon: "bk_mdi_thumb_up",
76
+ theme: "yellow"
77
+ },
78
+ {
79
+ value: "good",
80
+ label: $t("aiAgentFeedbackGood", "Good"),
81
+ icon: "bk_mdi_thumbs_up_double",
82
+ theme: "lime"
83
+ }
84
+ ];
85
+ });
86
+ const rating = ref(null);
87
+ const comment = ref("");
88
+ const submitted = ref(false);
89
+ function onRate(value) {
90
+ if (submitted.value) {
91
+ return;
92
+ }
93
+ rating.value = value;
94
+ emit("submit", value);
95
+ }
96
+ function onSubmit() {
97
+ if (!rating.value) return;
98
+ submitted.value = true;
99
+ emit("submit", rating.value, comment.value || void 0);
100
+ emit("done");
101
+ }
102
+ </script>
@@ -0,0 +1,10 @@
1
+ import type { AgentConversationFeedbackRating } from '../../types.js';
2
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ done: () => any;
4
+ submit: (rating: AgentConversationFeedbackRating, comment?: string | undefined) => any;
5
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
6
+ onDone?: (() => any) | undefined;
7
+ onSubmit?: ((rating: AgentConversationFeedbackRating, comment?: string | undefined) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -19,7 +19,7 @@
19
19
  <div class="bk-agent-input-actions-bar">
20
20
  <div class="bk-agent-input-actions-left">
21
21
  <button
22
- class="bk-agent-input-actions-button"
22
+ class="bk-agent-input-actions-button _bk_group/tooltip"
23
23
  :class="{ 'bk-is-active': isExpanded }"
24
24
  :disabled="!isConnected"
25
25
  @click="isExpanded = !isExpanded"
@@ -27,9 +27,11 @@
27
27
  <Icon
28
28
  :name="isExpanded ? 'bk_mdi_collapse_all' : 'bk_mdi_expand_all'"
29
29
  />
30
- <div v-if="!isExpanded" class="bk-tooltip">
31
- <span>{{ $t("aiAgentExpandButton", "Show more") }}</span>
32
- </div>
30
+ <Tooltip
31
+ v-show="!isExpanded"
32
+ :label="$t('aiAgentExpandButton', 'Show more')"
33
+ placement="above-left"
34
+ />
33
35
  </button>
34
36
  <button
35
37
  v-show="!hasText && hasConversation"
@@ -73,7 +75,8 @@ import { ref, useBlokkli } from "#imports";
73
75
  import {
74
76
  Icon,
75
77
  DropdownItem,
76
- TransitionHeight
78
+ TransitionHeight,
79
+ Tooltip
77
80
  } from "#blokkli/editor/components";
78
81
  import TokenUsage from "./TokenUsage/index.vue";
79
82
  defineProps({
@@ -4,11 +4,11 @@ type __VLS_Props = {
4
4
  title: string;
5
5
  hideCancel?: boolean;
6
6
  };
7
- declare var __VLS_11: {}, __VLS_13: {};
7
+ declare var __VLS_16: {}, __VLS_18: {};
8
8
  type __VLS_Slots = {} & {
9
- default?: (props: typeof __VLS_11) => any;
9
+ default?: (props: typeof __VLS_16) => any;
10
10
  } & {
11
- actions?: (props: typeof __VLS_13) => any;
11
+ actions?: (props: typeof __VLS_18) => any;
12
12
  };
13
13
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
14
14
  cancel: () => any;
@@ -5,13 +5,17 @@
5
5
  <Icon :name="icon" />
6
6
  <span>{{ title }}</span>
7
7
  </div>
8
- <div v-if="!hideCancel" class="bk-agent-tool-card-header-cancel">
8
+ <div
9
+ v-if="!hideCancel"
10
+ class="bk-agent-tool-card-header-cancel _bk_group/tooltip _bk_relative"
11
+ >
9
12
  <button type="button" @click="$emit('cancel')">
10
13
  <Icon name="bk_mdi_close" />
11
14
  </button>
12
- <div class="bk-tooltip">
13
- <span>{{ $t("aiAgentReject", "Reject") }}</span>
14
- </div>
15
+ <Tooltip
16
+ :label="$t('aiAgentReject', 'Reject')"
17
+ placement="above-right"
18
+ />
15
19
  </div>
16
20
  </div>
17
21
 
@@ -24,7 +28,7 @@
24
28
  </template>
25
29
 
26
30
  <script setup>
27
- import { Icon } from "#blokkli/editor/components";
31
+ import { Icon, Tooltip } from "#blokkli/editor/components";
28
32
  import { useBlokkli } from "#imports";
29
33
  defineProps({
30
34
  icon: { type: null, required: true },
@@ -4,11 +4,11 @@ type __VLS_Props = {
4
4
  title: string;
5
5
  hideCancel?: boolean;
6
6
  };
7
- declare var __VLS_11: {}, __VLS_13: {};
7
+ declare var __VLS_16: {}, __VLS_18: {};
8
8
  type __VLS_Slots = {} & {
9
- default?: (props: typeof __VLS_11) => any;
9
+ default?: (props: typeof __VLS_16) => any;
10
10
  } & {
11
- actions?: (props: typeof __VLS_13) => any;
11
+ actions?: (props: typeof __VLS_18) => any;
12
12
  };
13
13
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
14
14
  cancel: () => any;
@@ -1,3 +1,4 @@
1
+ import type { AgentConversationFeedbackRating } from '../types.js';
1
2
  import type { AgentConversationSummary, PendingMutationState, PendingToolCall } from '#blokkli/agent/app/composables';
2
3
  import type { ConversationItem, ActiveItem } from '#blokkli/agent/app/types';
3
4
  import type { ClientPlanState, PageContext, UsageTurn } from '#blokkli/agent/shared/types';
@@ -19,6 +20,8 @@ type __VLS_Props = {
19
20
  plan: ClientPlanState | null;
20
21
  usageTurns: UsageTurn[];
21
22
  pageContext: PageContext | null;
23
+ supportsFeedback: boolean;
24
+ feedbackItemIds: Set<string>;
22
25
  };
23
26
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
27
  cancel: () => any;
@@ -37,6 +40,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
37
40
  hideConversations: () => any;
38
41
  approvePlan: () => any;
39
42
  rejectPlan: () => any;
43
+ submitFeedback: (rating: AgentConversationFeedbackRating, comment?: string | undefined) => any;
44
+ feedbackDone: () => any;
40
45
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
41
46
  onCancel?: (() => any) | undefined;
42
47
  onRetry?: (() => any) | undefined;
@@ -54,6 +59,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
54
59
  onHideConversations?: (() => any) | undefined;
55
60
  onApprovePlan?: (() => any) | undefined;
56
61
  onRejectPlan?: (() => any) | undefined;
62
+ onSubmitFeedback?: ((rating: AgentConversationFeedbackRating, comment?: string | undefined) => any) | undefined;
63
+ onFeedbackDone?: (() => any) | undefined;
57
64
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
58
65
  declare const _default: typeof __VLS_export;
59
66
  export default _default;
@@ -48,6 +48,17 @@
48
48
  @reject="emit('reject')"
49
49
  @always-approve="onAlwaysApprove"
50
50
  />
51
+ <TransitionHeight opacity :duration="300">
52
+ <Feedback
53
+ v-if="
54
+ supportsFeedback && !isProcessing && !pendingMutation && !pendingToolCall && conversation.length > 0 && conversation[conversation.length - 1]?.type === 'assistant' && !feedbackItemIds.has(conversation[conversation.length - 1].id)
55
+ "
56
+ @submit="
57
+ (rating, comment) => emit('submitFeedback', rating, comment)
58
+ "
59
+ @done="emit('feedbackDone')"
60
+ />
61
+ </TransitionHeight>
51
62
  </template>
52
63
  </div>
53
64
 
@@ -134,6 +145,7 @@ import DebugGallery from "./DebugGallery/index.vue";
134
145
  import Welcome from "./Welcome/index.vue";
135
146
  import AgentInput from "./Input/index.vue";
136
147
  import ConversationList from "./ConversationList/index.vue";
148
+ import Feedback from "./Feedback/index.vue";
137
149
  import Plan from "./Plan/index.vue";
138
150
  import DropHandler from "./DropHandler/index.vue";
139
151
  import { mcpTools } from "#blokkli-build/agent-client";
@@ -155,9 +167,11 @@ const props = defineProps({
155
167
  showConversationList: { type: Boolean, required: true },
156
168
  plan: { type: [Object, null], required: true },
157
169
  usageTurns: { type: Array, required: true },
158
- pageContext: { type: [Object, null], required: true }
170
+ pageContext: { type: [Object, null], required: true },
171
+ supportsFeedback: { type: Boolean, required: true },
172
+ feedbackItemIds: { type: Set, required: true }
159
173
  });
160
- const emit = defineEmits(["connect", "sendPrompt", "cancel", "approve", "reject", "setAutoApprove", "newConversation", "getTranscript", "toolComponentDone", "switchConversation", "deleteConversation", "showConversations", "hideConversations", "retry", "approvePlan", "rejectPlan"]);
174
+ const emit = defineEmits(["connect", "sendPrompt", "cancel", "approve", "reject", "setAutoApprove", "newConversation", "getTranscript", "toolComponentDone", "switchConversation", "deleteConversation", "showConversations", "hideConversations", "retry", "approvePlan", "rejectPlan", "submitFeedback", "feedbackDone"]);
161
175
  const DEBUG_STYLING = import.meta.dev && false;
162
176
  const app = useBlokkli();
163
177
  const { $t } = app;
@@ -1,3 +1,4 @@
1
+ import type { AgentConversationFeedbackRating } from '../types.js';
1
2
  import type { AgentConversationSummary, PendingMutationState, PendingToolCall } from '#blokkli/agent/app/composables';
2
3
  import type { ConversationItem, ActiveItem } from '#blokkli/agent/app/types';
3
4
  import type { ClientPlanState, PageContext, UsageTurn } from '#blokkli/agent/shared/types';
@@ -19,6 +20,8 @@ type __VLS_Props = {
19
20
  plan: ClientPlanState | null;
20
21
  usageTurns: UsageTurn[];
21
22
  pageContext: PageContext | null;
23
+ supportsFeedback: boolean;
24
+ feedbackItemIds: Set<string>;
22
25
  };
23
26
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
27
  cancel: () => any;
@@ -37,6 +40,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
37
40
  hideConversations: () => any;
38
41
  approvePlan: () => any;
39
42
  rejectPlan: () => any;
43
+ submitFeedback: (rating: AgentConversationFeedbackRating, comment?: string | undefined) => any;
44
+ feedbackDone: () => any;
40
45
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
41
46
  onCancel?: (() => any) | undefined;
42
47
  onRetry?: (() => any) | undefined;
@@ -54,6 +59,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
54
59
  onHideConversations?: (() => any) | undefined;
55
60
  onApprovePlan?: (() => any) | undefined;
56
61
  onRejectPlan?: (() => any) | undefined;
62
+ onSubmitFeedback?: ((rating: AgentConversationFeedbackRating, comment?: string | undefined) => any) | undefined;
63
+ onFeedbackDone?: (() => any) | undefined;
57
64
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
58
65
  declare const _default: typeof __VLS_export;
59
66
  export default _default;
@@ -35,6 +35,8 @@
35
35
  :tool-details
36
36
  :usage-turns="usageTurns"
37
37
  :page-context="pageContext"
38
+ :supports-feedback="!!adapter.submitConversationFeedback"
39
+ :feedback-item-ids="feedbackItemIds"
38
40
  @connect="connect"
39
41
  @send-prompt="sendPrompt"
40
42
  @retry="retry"
@@ -47,6 +49,8 @@
47
49
  @tool-component-done="onToolComponentDone"
48
50
  @switch-conversation="switchConversation"
49
51
  @delete-conversation="deleteConversation"
52
+ @submit-feedback="onSubmitFeedback"
53
+ @feedback-done="onFeedbackDone"
50
54
  @show-conversations="onShowConversations"
51
55
  @hide-conversations="onHideConversations"
52
56
  @approve-plan="approvePlan"
@@ -178,8 +182,33 @@ const {
178
182
  switchConversation,
179
183
  deleteConversation,
180
184
  refreshConversationList,
185
+ activeConversationId,
186
+ feedbackItemIds,
181
187
  pageContext
182
188
  } = agentProvider(app, adapter, agentName);
189
+ async function onSubmitFeedback(rating, comment) {
190
+ if (!adapter.submitConversationFeedback) return;
191
+ const conversationId = activeConversationId.value;
192
+ if (!conversationId) return;
193
+ const lastItem = conversation.value[conversation.value.length - 1];
194
+ if (!lastItem) return;
195
+ try {
196
+ await adapter.submitConversationFeedback({
197
+ conversationId,
198
+ rating,
199
+ lastItemId: lastItem.id,
200
+ comment
201
+ });
202
+ } catch (e) {
203
+ console.warn("[blokkli agent] Failed to submit feedback:", e);
204
+ }
205
+ }
206
+ function onFeedbackDone() {
207
+ const lastItem = conversation.value[conversation.value.length - 1];
208
+ if (lastItem) {
209
+ feedbackItemIds.value.add(lastItem.id);
210
+ }
211
+ }
183
212
  async function onShowConversations() {
184
213
  await refreshConversationList();
185
214
  showConversationList.value = true;
@@ -4,6 +4,7 @@ export type AgentConversationData = {
4
4
  clientState: string;
5
5
  serverState: string;
6
6
  hash: string;
7
+ feedbackItemIds?: string[];
7
8
  };
8
9
  export type AgentConversationSummary = {
9
10
  uuid: string;
@@ -11,6 +12,13 @@ export type AgentConversationSummary = {
11
12
  createdAt: string;
12
13
  updatedAt: string;
13
14
  };
15
+ export type AgentConversationFeedbackRating = 'bad' | 'fine' | 'good';
16
+ export type AgentConversationFeedback = {
17
+ conversationId: string;
18
+ rating: AgentConversationFeedbackRating;
19
+ lastItemId: string;
20
+ comment?: string;
21
+ };
14
22
  declare module '#blokkli/editor/types/permissions' {
15
23
  interface UserPermissionMap {
16
24
  use_agent: 'Use the AI agent.';
@@ -50,5 +58,13 @@ declare module '#blokkli/editor/adapter' {
50
58
  list: () => Promise<AgentConversationSummary[]>;
51
59
  delete: (uuid: string) => Promise<boolean>;
52
60
  };
61
+ /**
62
+ * Submit user feedback for an agent conversation.
63
+ *
64
+ * Feedback is stored separately from the conversation data and should
65
+ * survive conversation deletion. The lastItemId references the
66
+ * conversation item visible when the user gave feedback.
67
+ */
68
+ submitConversationFeedback?: (feedback: AgentConversationFeedback) => Promise<boolean>;
53
69
  }
54
70
  }
@@ -203,7 +203,9 @@ async function analyzeReadability() {
203
203
  uuid: fs.uuid,
204
204
  fieldName: fs.fieldName,
205
205
  value: getProposedValue(fs),
206
- fieldType: field.fieldType
206
+ fieldType: field.fieldType,
207
+ entityType: field.entityType,
208
+ entityBundle: field.entityBundle
207
209
  });
208
210
  }
209
211
  const rawAnalysis = await props.context.app.readability.analyzeFieldValues(textFields);
@@ -28,6 +28,8 @@ export type ResolvedField = {
28
28
  fieldName: string;
29
29
  currentValue: string;
30
30
  fieldType: 'plain' | 'markup';
31
+ entityType: string;
32
+ entityBundle: string;
31
33
  };
32
34
  export type ComponentParams = {
33
35
  template: string;
@@ -96,7 +96,14 @@ export default defineBlokkliAgentTool({
96
96
  fieldName,
97
97
  fieldType
98
98
  );
99
- resolvedFields.push({ uuid, fieldName, currentValue, fieldType });
99
+ resolvedFields.push({
100
+ uuid,
101
+ fieldName,
102
+ currentValue,
103
+ fieldType,
104
+ entityType,
105
+ entityBundle: bundle
106
+ });
100
107
  }
101
108
  let templateParams = params.templateParams;
102
109
  if (params.template === "fix_readability") {
@@ -1,4 +1,4 @@
1
- import { B as BlokkliModule } from '../../shared/editor.DsGJIlGn.mjs';
1
+ import { B as BlokkliModule } from '../../shared/editor.BTOBvmaz.mjs';
2
2
  import 'nuxt/schema';
3
3
  import 'consola';
4
4
  import '../../../dist/global/types/definitions.js';
@@ -47,9 +47,8 @@ const index = defineBlokkliModule({
47
47
  editorComponentPath: resolve(
48
48
  "./runtime/features/charts/Editor/index.vue"
49
49
  ),
50
- editorButtonLabel: $t("chartsEditButton", "Edit chart..."),
51
- editorIcon: "bk_mdi_area_chart",
52
- editorTitle: $t("chartsEditorTitle", "Edit chart")
50
+ editTitle: $t("chartsEditTitle", "Edit chart"),
51
+ editorIcon: "bk_mdi_area_chart"
53
52
  });
54
53
  }
55
54
  });
@@ -4,7 +4,7 @@
4
4
  v-for="option in chartTypes"
5
5
  :key="option.value"
6
6
  type="button"
7
- :class="{ 'is-active': modelValue === option.value }"
7
+ :class="{ '_bk_is-active': modelValue === option.value }"
8
8
  @click="emit('update:modelValue', option.value)"
9
9
  >
10
10
  <div>
@@ -12,7 +12,7 @@
12
12
  :key="id"
13
13
  type="button"
14
14
  class="bk-chart-color-option"
15
- :class="{ 'is-active': colorId === id }"
15
+ :class="{ '_bk_is-active': colorId === id }"
16
16
  @click="
17
17
  () => {
18
18
  emit('select', id);
@@ -6,6 +6,18 @@ fragment paragraphsBlokkliEditState on ParagraphsBlokkliEditState {
6
6
  currentIndex
7
7
  currentUserIsOwner
8
8
  ownerName
9
+ user: uid {
10
+ id
11
+ }
12
+ textFieldValues(langcode: $langcode) {
13
+ uuid
14
+ fieldName
15
+ value
16
+ fieldType
17
+ entityType
18
+ entityBundle
19
+ }
20
+
9
21
  mutatedState {
10
22
  fields(langcode: $langcode) {
11
23
  ...paragraphsBlokkliMutatedField
@@ -31,6 +43,10 @@ fragment paragraphsBlokkliEditState on ParagraphsBlokkliEditState {
31
43
  ...pbMutatedEntity
32
44
  }
33
45
 
46
+ stateSettings {
47
+ ignoredAnalyzeIdentifiers
48
+ }
49
+
34
50
  translationState {
35
51
  isTranslatable
36
52
  sourceLanguage
@@ -78,6 +78,15 @@ query pbConfig($entityType: String!, $entityBundle: String!) {
78
78
  langcode
79
79
  prefix
80
80
  }
81
+
82
+ entityTypeConfig: paragraphsBlokkliEntityTypeConfig {
83
+ id: entityTypeId
84
+ label
85
+ bundles {
86
+ id: bundle
87
+ label
88
+ }
89
+ }
81
90
  }
82
91
 
83
92
  fragment paragraphsBlokkliAvailableFeatures on ParagraphsBlokkliAvailableFeatures {