@blokkli/editor 2.0.0-alpha.51 → 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 (377) 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.d.vue.ts +2 -1
  61. package/dist/runtime/components/BlokkliEditable.vue +58 -42
  62. package/dist/runtime/components/BlokkliEditable.vue.d.ts +2 -1
  63. package/dist/runtime/components/BlokkliItem.d.vue.ts +1 -1
  64. package/dist/runtime/components/BlokkliItem.vue.d.ts +1 -1
  65. package/dist/runtime/editor/adapter/index.d.ts +8 -1
  66. package/dist/runtime/editor/components/Actions/Interactions/index.vue +77 -17
  67. package/dist/runtime/editor/components/Actions/{ItemDropdown.vue → ItemDropdown/index.vue} +9 -10
  68. package/dist/runtime/editor/components/Actions/index.vue +586 -23
  69. package/dist/runtime/editor/components/AnimationCanvas/index.vue +1 -0
  70. package/dist/runtime/editor/components/AppMenu/MenuButton.vue +185 -1
  71. package/dist/runtime/editor/components/AppMenu/index.vue +24 -10
  72. package/dist/runtime/editor/components/ArtboardTooltip/index.d.vue.ts +6 -2
  73. package/dist/runtime/editor/components/ArtboardTooltip/index.vue +223 -3
  74. package/dist/runtime/editor/components/ArtboardTooltip/index.vue.d.ts +6 -2
  75. package/dist/runtime/editor/components/AutoHeight/index.vue +23 -0
  76. package/dist/runtime/editor/components/Banner/Inner.d.vue.ts +30 -0
  77. package/dist/runtime/editor/components/Banner/Inner.vue +32 -0
  78. package/dist/runtime/editor/components/Banner/Inner.vue.d.ts +30 -0
  79. package/dist/runtime/editor/components/Banner/index.d.vue.ts +3 -13
  80. package/dist/runtime/editor/components/Banner/index.vue +2 -14
  81. package/dist/runtime/editor/components/Banner/index.vue.d.ts +3 -13
  82. package/dist/runtime/editor/components/BetaIndicator/index.d.vue.ts +6 -0
  83. package/dist/runtime/editor/components/BetaIndicator/index.vue +16 -0
  84. package/dist/runtime/editor/components/BetaIndicator/index.vue.d.ts +6 -0
  85. package/dist/runtime/editor/components/BlockPreviewItem/index.vue +51 -1
  86. package/dist/runtime/editor/components/BlockPreviewRenderer/index.vue +27 -1
  87. package/dist/runtime/editor/components/BlockProxy/index.vue +148 -1
  88. package/dist/runtime/editor/components/BlokkliRootErrorBoundary.vue +59 -0
  89. package/dist/runtime/editor/components/BundleSelector/index.vue +170 -20
  90. package/dist/runtime/editor/components/Dialog/index.d.vue.ts +2 -0
  91. package/dist/runtime/editor/components/Dialog/index.vue +341 -0
  92. package/dist/runtime/editor/components/Dialog/index.vue.d.ts +2 -0
  93. package/dist/runtime/editor/components/DiffApproval/Highlight/index.vue +117 -0
  94. package/dist/runtime/editor/components/DiffApproval/Toolbar/index.vue +224 -28
  95. package/dist/runtime/editor/components/DiffViewer/DiffValue.d.vue.ts +1 -0
  96. package/dist/runtime/editor/components/DiffViewer/DiffValue.vue +5 -1
  97. package/dist/runtime/editor/components/DiffViewer/DiffValue.vue.d.ts +1 -0
  98. package/dist/runtime/editor/components/DiffViewer/State.vue +319 -0
  99. package/dist/runtime/editor/components/DraggableList.vue +103 -0
  100. package/dist/runtime/editor/components/Dropdown/index.vue +84 -0
  101. package/dist/runtime/editor/components/EditProvider.vue +72 -15
  102. package/dist/runtime/editor/components/FileDropHandler/index.d.vue.ts +23 -0
  103. package/dist/runtime/editor/components/FileDropHandler/index.vue +108 -0
  104. package/dist/runtime/editor/components/FileDropHandler/index.vue.d.ts +23 -0
  105. package/dist/runtime/editor/components/FlexTextarea/index.vue +4 -2
  106. package/dist/runtime/editor/components/Form/Datepicker/index.vue +149 -0
  107. package/dist/runtime/editor/components/Form/Toggle/index.vue +205 -1
  108. package/dist/runtime/editor/components/FormOverlay/index.vue +90 -0
  109. package/dist/runtime/editor/components/Icon/index.vue +6 -0
  110. package/dist/runtime/editor/components/Indicators/index.vue +161 -0
  111. package/dist/runtime/editor/components/InfoBox/index.vue +65 -0
  112. package/dist/runtime/editor/components/Konami/index.vue +119 -0
  113. package/dist/runtime/editor/components/Loading/index.d.vue.ts +6 -3
  114. package/dist/runtime/editor/components/Loading/index.vue +10 -5
  115. package/dist/runtime/editor/components/Loading/index.vue.d.ts +6 -3
  116. package/dist/runtime/editor/components/Messages/index.vue +131 -0
  117. package/dist/runtime/editor/components/NestedEditorOverlay/index.d.vue.ts +1 -0
  118. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue +246 -12
  119. package/dist/runtime/editor/components/NestedEditorOverlay/index.vue.d.ts +1 -0
  120. package/dist/runtime/editor/components/NotEditStateInfo/index.d.vue.ts +3 -0
  121. package/dist/runtime/editor/components/NotEditStateInfo/index.vue +19 -0
  122. package/dist/runtime/editor/components/NotEditStateInfo/index.vue.d.ts +3 -0
  123. package/dist/runtime/editor/components/Overlay/index.vue +84 -0
  124. package/dist/runtime/editor/components/Pagination/index.vue +41 -0
  125. package/dist/runtime/editor/components/PluginConfigForm/index.vue +23 -0
  126. package/dist/runtime/editor/components/PluginConfigFormInline/FilterSelect/index.vue +429 -0
  127. package/dist/runtime/editor/components/PluginConfigFormInline/index.d.vue.ts +22 -0
  128. package/dist/runtime/editor/components/PluginConfigFormInline/index.vue +150 -0
  129. package/dist/runtime/editor/components/PluginConfigFormInline/index.vue.d.ts +22 -0
  130. package/dist/runtime/editor/components/Popup/index.vue +77 -2
  131. package/dist/runtime/editor/components/PreviewProvider.vue +7 -0
  132. package/dist/runtime/editor/components/Resizable/index.vue +90 -1
  133. package/dist/runtime/editor/components/ScaleToFit/index.vue +30 -1
  134. package/dist/runtime/editor/components/SearchOverlay/index.d.vue.ts +43 -0
  135. package/dist/runtime/editor/components/SearchOverlay/index.vue +264 -0
  136. package/dist/runtime/editor/components/SearchOverlay/index.vue.d.ts +43 -0
  137. package/dist/runtime/editor/components/StatusIcon/index.vue +104 -0
  138. package/dist/runtime/editor/components/StatusIndicator/index.d.vue.ts +9 -0
  139. package/dist/runtime/editor/components/StatusIndicator/index.vue +16 -0
  140. package/dist/runtime/editor/components/StatusIndicator/index.vue.d.ts +9 -0
  141. package/dist/runtime/editor/components/SystemRequirements/index.vue +57 -0
  142. package/dist/runtime/editor/components/Tabs/index.d.vue.ts +30 -0
  143. package/dist/runtime/editor/components/Tabs/index.vue +32 -0
  144. package/dist/runtime/editor/components/Tabs/index.vue.d.ts +30 -0
  145. package/dist/runtime/editor/components/Toolbar/index.vue +214 -3
  146. package/dist/runtime/editor/components/Tooltip/Context.d.vue.ts +7 -0
  147. package/dist/runtime/editor/components/Tooltip/Context.vue +13 -0
  148. package/dist/runtime/editor/components/Tooltip/Context.vue.d.ts +7 -0
  149. package/dist/runtime/editor/components/Tooltip/Status.d.vue.ts +8 -0
  150. package/dist/runtime/editor/components/Tooltip/Status.vue +27 -0
  151. package/dist/runtime/editor/components/Tooltip/Status.vue.d.ts +8 -0
  152. package/dist/runtime/editor/components/Tooltip/index.d.vue.ts +27 -0
  153. package/dist/runtime/editor/components/Tooltip/index.vue +40 -0
  154. package/dist/runtime/editor/components/Tooltip/index.vue.d.ts +27 -0
  155. package/dist/runtime/editor/components/index.d.ts +59 -49
  156. package/dist/runtime/editor/components/index.js +59 -98
  157. package/dist/runtime/editor/composables/defineHighlight.d.ts +2 -0
  158. package/dist/runtime/editor/composables/defineHighlight.js +10 -0
  159. package/dist/runtime/editor/composables/index.d.ts +1 -0
  160. package/dist/runtime/editor/composables/index.js +1 -0
  161. package/dist/runtime/editor/composables/useBlockRegistration.js +8 -0
  162. package/dist/runtime/editor/composables/useStickyToolbar.d.ts +1 -0
  163. package/dist/runtime/editor/composables/useStickyToolbar.js +16 -0
  164. package/dist/runtime/editor/css/output.css +1 -1
  165. package/dist/runtime/editor/events/index.d.ts +10 -0
  166. package/dist/runtime/editor/features/add-list/Help/index.vue +193 -0
  167. package/dist/runtime/editor/features/add-list/index.vue +441 -0
  168. package/dist/runtime/editor/features/analyze/Ignored/index.d.vue.ts +7 -0
  169. package/dist/runtime/editor/features/analyze/Ignored/index.vue +35 -0
  170. package/dist/runtime/editor/features/analyze/Ignored/index.vue.d.ts +7 -0
  171. package/dist/runtime/editor/features/analyze/Main.vue +148 -24
  172. package/dist/runtime/editor/features/analyze/Results/Results.d.vue.ts +1 -9
  173. package/dist/runtime/editor/features/analyze/Results/Results.vue +0 -2
  174. package/dist/runtime/editor/features/analyze/Results/Results.vue.d.ts +1 -9
  175. package/dist/runtime/editor/features/analyze/Results/ResultsItem.d.vue.ts +1 -9
  176. package/dist/runtime/editor/features/analyze/Results/ResultsItem.vue +1 -2
  177. package/dist/runtime/editor/features/analyze/Results/ResultsItem.vue.d.ts +1 -9
  178. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.d.vue.ts +1 -9
  179. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.vue +11 -8
  180. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodes.vue.d.ts +1 -9
  181. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.d.vue.ts +3 -10
  182. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.vue +63 -25
  183. package/dist/runtime/editor/features/analyze/Results/ResultsItemNodesTarget.vue.d.ts +3 -10
  184. package/dist/runtime/editor/features/analyze/analyzers/altText.js +2 -0
  185. package/dist/runtime/editor/features/analyze/analyzers/headingStructure.js +3 -0
  186. package/dist/runtime/editor/features/analyze/analyzers/helpers/hashString.d.ts +7 -0
  187. package/dist/runtime/editor/features/analyze/analyzers/helpers/hashString.js +8 -0
  188. package/dist/runtime/editor/features/analyze/analyzers/readability.js +6 -12
  189. package/dist/runtime/editor/features/analyze/analyzers/types.d.ts +20 -0
  190. package/dist/runtime/editor/features/analyze/index.vue +458 -0
  191. package/dist/runtime/editor/features/analyze/types.d.ts +12 -0
  192. package/dist/runtime/editor/features/artboard/Overview/index.vue +37 -4
  193. package/dist/runtime/editor/features/artboard/Renderer.vue +79 -9
  194. package/dist/runtime/editor/features/artboard/Scrollbar/index.vue +84 -0
  195. package/dist/runtime/editor/features/block-scheduler/Dialog/index.vue +1 -1
  196. package/dist/runtime/editor/features/block-scheduler/index.vue +114 -0
  197. package/dist/runtime/editor/features/breadcrumbs/index.vue +150 -0
  198. package/dist/runtime/editor/features/changelog/Dialog/index.vue +62 -7
  199. package/dist/runtime/editor/features/changelog/changelog.json +9 -1
  200. package/dist/runtime/editor/features/clipboard/index.vue +153 -1
  201. package/dist/runtime/editor/features/command-palette/Palette/Item/index.vue +39 -16
  202. package/dist/runtime/editor/features/command-palette/Palette/index.vue +24 -130
  203. package/dist/runtime/editor/features/comments/index.vue +235 -0
  204. package/dist/runtime/editor/features/complex-options/index.vue +4 -1
  205. package/dist/runtime/editor/features/debug/Main.vue +1 -1
  206. package/dist/runtime/editor/features/debug/Section/Features.vue +2 -4
  207. package/dist/runtime/editor/features/debug/index.vue +168 -0
  208. package/dist/runtime/editor/features/dev-mode/index.vue +92 -27
  209. package/dist/runtime/editor/features/dragging-overlay/Renderer/index.vue +1 -1
  210. package/dist/runtime/editor/features/dragging-overlay/index.vue +330 -0
  211. package/dist/runtime/editor/features/edit/index.vue +15 -17
  212. package/dist/runtime/editor/features/edit-form/Frame/index.vue +21 -4
  213. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.d.vue.ts +9 -1
  214. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue +32 -3
  215. package/dist/runtime/editor/features/editable-field/Overlay/Frame/index.vue.d.ts +9 -1
  216. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/ChunkOverlay.vue +77 -0
  217. package/dist/runtime/editor/features/editable-field/Overlay/ReadabilityIndicator/index.vue +55 -56
  218. package/dist/runtime/editor/features/editable-field/Overlay/index.vue +416 -8
  219. package/dist/runtime/editor/features/editable-mask/index.vue +9 -0
  220. package/dist/runtime/editor/features/entity-title/index.vue +40 -56
  221. package/dist/runtime/editor/features/fragments/Dialog/index.vue +90 -0
  222. package/dist/runtime/editor/features/help/Shortcuts/index.vue +71 -0
  223. package/dist/runtime/editor/features/help/index.vue +17 -0
  224. package/dist/runtime/editor/features/highlights/Renderer/fragment.glsl +89 -0
  225. package/dist/runtime/editor/features/highlights/Renderer/index.vue +408 -0
  226. package/dist/runtime/editor/features/highlights/Renderer/vertex.glsl +87 -0
  227. package/dist/runtime/editor/features/highlights/index.d.vue.ts +3 -0
  228. package/dist/runtime/editor/features/highlights/index.vue +20 -0
  229. package/dist/runtime/editor/features/highlights/index.vue.d.ts +3 -0
  230. package/dist/runtime/editor/features/history/List/index.vue +209 -0
  231. package/dist/runtime/editor/features/history/index.vue +0 -1
  232. package/dist/runtime/editor/features/hover/Renderer/index.vue +1 -1
  233. package/dist/runtime/editor/features/hover/Renderer/vertex.glsl +1 -1
  234. package/dist/runtime/editor/features/import-existing/Dialog/index.vue +18 -0
  235. package/dist/runtime/editor/features/media-library/Library/index.vue +10 -30
  236. package/dist/runtime/editor/features/media-library/index.vue +331 -0
  237. package/dist/runtime/editor/features/options/Form/Checkbox/index.vue +1 -1
  238. package/dist/runtime/editor/features/options/Form/Checkboxes/index.vue +1 -1
  239. package/dist/runtime/editor/features/options/Form/ComplexType/index.vue +6 -2
  240. package/dist/runtime/editor/features/options/Form/Item.vue +21 -18
  241. package/dist/runtime/editor/features/options/Form/Radios/index.d.vue.ts +6 -0
  242. package/dist/runtime/editor/features/options/Form/Radios/index.vue +25 -6
  243. package/dist/runtime/editor/features/options/Form/Radios/index.vue.d.ts +6 -0
  244. package/dist/runtime/editor/features/options/Form/index.vue +1 -4
  245. package/dist/runtime/editor/features/options/index.vue +729 -0
  246. package/dist/runtime/editor/features/ownership/Banner/index.vue +9 -8
  247. package/dist/runtime/editor/features/ownership/index.vue +1 -1
  248. package/dist/runtime/editor/features/preview-grant/QrCode/index.vue +8 -3
  249. package/dist/runtime/editor/features/publish/Dialog/Item.vue +18 -20
  250. package/dist/runtime/editor/features/publish/Dialog/index.vue +5 -1
  251. package/dist/runtime/editor/features/publish/index.vue +835 -0
  252. package/dist/runtime/editor/features/publish/types.d.ts +5 -1
  253. package/dist/runtime/editor/features/referenced-entities/List/Item/index.d.vue.ts +4 -0
  254. package/dist/runtime/editor/features/referenced-entities/List/Item/index.vue +81 -0
  255. package/dist/runtime/editor/features/referenced-entities/List/Item/index.vue.d.ts +4 -0
  256. package/dist/runtime/editor/features/referenced-entities/List/index.d.vue.ts +11 -0
  257. package/dist/runtime/editor/features/referenced-entities/List/index.vue +78 -0
  258. package/dist/runtime/editor/features/referenced-entities/List/index.vue.d.ts +11 -0
  259. package/dist/runtime/editor/features/referenced-entities/index.d.vue.ts +3 -0
  260. package/dist/runtime/editor/features/referenced-entities/index.vue +36 -0
  261. package/dist/runtime/editor/features/referenced-entities/index.vue.d.ts +3 -0
  262. package/dist/runtime/editor/features/referenced-entities/types.d.ts +13 -0
  263. package/dist/runtime/editor/features/responsive-preview/Frame/index.vue +188 -0
  264. package/dist/runtime/editor/features/search/Overlay/Results/Page/index.vue +1 -1
  265. package/dist/runtime/editor/features/search/index.vue +511 -0
  266. package/dist/runtime/editor/features/selection/AddButtons/Renderer/index.vue +58 -0
  267. package/dist/runtime/editor/features/selection/index.vue +47 -15
  268. package/dist/runtime/editor/features/settings/Dialog/FeatureSetting/index.vue +23 -0
  269. package/dist/runtime/editor/features/settings/Dialog/index.vue +5 -2
  270. package/dist/runtime/editor/features/settings/index.vue +152 -0
  271. package/dist/runtime/editor/features/structure/List/Item/index.vue +7 -0
  272. package/dist/runtime/editor/features/structure/index.vue +178 -0
  273. package/dist/runtime/editor/features/templates/ManageDialog/Item.vue +3 -3
  274. package/dist/runtime/editor/features/templates/ManageDialog/index.vue +24 -3
  275. package/dist/runtime/editor/features/theme/index.vue +94 -0
  276. package/dist/runtime/editor/features/touch-action-bar/Bar/index.vue +34 -0
  277. package/dist/runtime/editor/features/tour/Overlay/index.vue +243 -13
  278. package/dist/runtime/editor/features/transform/Dialog/index.vue +132 -1
  279. package/dist/runtime/editor/features/translations/Banner/index.d.vue.ts +14 -1
  280. package/dist/runtime/editor/features/translations/Banner/index.vue +139 -12
  281. package/dist/runtime/editor/features/translations/Banner/index.vue.d.ts +14 -1
  282. package/dist/runtime/editor/features/translations/CsvDialog/Export/index.d.vue.ts +3 -0
  283. package/dist/runtime/editor/features/translations/CsvDialog/Export/index.vue +272 -0
  284. package/dist/runtime/editor/features/translations/CsvDialog/Export/index.vue.d.ts +3 -0
  285. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.d.vue.ts +10 -0
  286. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.vue +382 -0
  287. package/dist/runtime/editor/features/translations/CsvDialog/Import/index.vue.d.ts +10 -0
  288. package/dist/runtime/editor/features/translations/CsvDialog/csv.d.ts +22 -0
  289. package/dist/runtime/editor/features/translations/CsvDialog/csv.js +50 -0
  290. package/dist/runtime/editor/features/translations/CsvDialog/index.d.vue.ts +10 -0
  291. package/dist/runtime/editor/features/translations/CsvDialog/index.vue +37 -0
  292. package/dist/runtime/editor/features/translations/CsvDialog/index.vue.d.ts +10 -0
  293. package/dist/runtime/editor/features/translations/CsvDialog/po.d.ts +7 -0
  294. package/dist/runtime/editor/features/translations/CsvDialog/po.js +36 -0
  295. package/dist/runtime/editor/features/translations/SelectionTable/index.d.vue.ts +37 -0
  296. package/dist/runtime/editor/features/translations/SelectionTable/index.vue +102 -0
  297. package/dist/runtime/editor/features/translations/SelectionTable/index.vue.d.ts +37 -0
  298. package/dist/runtime/editor/features/translations/TranslateDialog/index.d.vue.ts +7 -0
  299. package/dist/runtime/editor/features/translations/TranslateDialog/index.vue +294 -0
  300. package/dist/runtime/editor/features/translations/TranslateDialog/index.vue.d.ts +7 -0
  301. package/dist/runtime/editor/features/translations/index.vue +276 -6
  302. package/dist/runtime/editor/features/translations/types.d.ts +47 -0
  303. package/dist/runtime/editor/features/validations/Overlay/index.vue +130 -0
  304. package/dist/runtime/editor/features/validations/index.vue +41 -0
  305. package/dist/runtime/editor/features/{assistant → workspace}/Overlay/index.d.vue.ts +2 -4
  306. package/dist/runtime/editor/features/workspace/Overlay/index.vue +177 -0
  307. package/dist/runtime/editor/features/{assistant → workspace}/Overlay/index.vue.d.ts +2 -4
  308. package/dist/runtime/editor/features/workspace/index.d.vue.ts +3 -0
  309. package/dist/runtime/editor/features/workspace/index.vue +46 -0
  310. package/dist/runtime/editor/features/workspace/index.vue.d.ts +3 -0
  311. package/dist/runtime/editor/features/workspace/types.d.ts +59 -0
  312. package/dist/runtime/editor/features/workspace/types.js +0 -0
  313. package/dist/runtime/editor/icons/svg/spinner.svg +2 -2
  314. package/dist/runtime/editor/plugins/ContextMenu/Menu/index.vue +21 -7
  315. package/dist/runtime/editor/plugins/ContextMenu/index.vue +4 -0
  316. package/dist/runtime/editor/plugins/ItemAction/index.d.vue.ts +9 -2
  317. package/dist/runtime/editor/plugins/ItemAction/index.vue +26 -16
  318. package/dist/runtime/editor/plugins/ItemAction/index.vue.d.ts +9 -2
  319. package/dist/runtime/editor/plugins/Sidebar/Detached/index.vue +24 -26
  320. package/dist/runtime/editor/plugins/Sidebar/index.vue +612 -27
  321. package/dist/runtime/editor/plugins/ToolbarButton/index.d.vue.ts +13 -84
  322. package/dist/runtime/editor/plugins/ToolbarButton/index.vue +36 -22
  323. package/dist/runtime/editor/plugins/ToolbarButton/index.vue.d.ts +13 -84
  324. package/dist/runtime/editor/plugins/ViewOption/index.vue +13 -14
  325. package/dist/runtime/editor/providers/blocks.js +1 -0
  326. package/dist/runtime/editor/providers/cache.d.ts +23 -0
  327. package/dist/runtime/editor/providers/cache.js +29 -0
  328. package/dist/runtime/editor/providers/directive.d.ts +25 -0
  329. package/dist/runtime/editor/providers/directive.js +20 -0
  330. package/dist/runtime/editor/providers/fieldValue.d.ts +5 -5
  331. package/dist/runtime/editor/providers/fieldValue.js +8 -7
  332. package/dist/runtime/editor/providers/plugin.d.ts +14 -0
  333. package/dist/runtime/editor/providers/plugin.js +9 -0
  334. package/dist/runtime/editor/providers/readability.js +1 -1
  335. package/dist/runtime/editor/providers/selection.js +1 -1
  336. package/dist/runtime/editor/providers/state.d.ts +1 -0
  337. package/dist/runtime/editor/providers/state.js +1 -0
  338. package/dist/runtime/editor/providers/texts.js +11 -1
  339. package/dist/runtime/editor/providers/ui.d.ts +11 -0
  340. package/dist/runtime/editor/providers/ui.js +5 -1
  341. package/dist/runtime/editor/translations/de.json +316 -56
  342. package/dist/runtime/editor/translations/fr.json +310 -50
  343. package/dist/runtime/editor/translations/gsw_CH.json +311 -51
  344. package/dist/runtime/editor/translations/it.json +310 -50
  345. package/dist/runtime/editor/types/app.d.ts +2 -0
  346. package/dist/runtime/editor/types/definitions.d.ts +8 -0
  347. package/dist/runtime/editor/types/field.d.ts +1 -0
  348. package/dist/runtime/editor/types/state.d.ts +10 -0
  349. package/dist/runtime/editor/types/ui.d.ts +3 -1
  350. package/dist/runtime/helpers/tw.d.ts +15 -0
  351. package/dist/runtime/helpers/tw.js +3 -0
  352. package/dist/runtime/types/field.d.ts +1 -0
  353. package/dist/shared/{editor.DsGJIlGn.d.mts → editor.BTOBvmaz.d.mts} +20 -3
  354. package/dist/types.d.mts +1 -1
  355. package/package.json +16 -3
  356. package/dist/runtime/editor/features/analyze/Renderer/fragment.glsl +0 -74
  357. package/dist/runtime/editor/features/analyze/Renderer/index.d.vue.ts +0 -24
  358. package/dist/runtime/editor/features/analyze/Renderer/index.vue +0 -330
  359. package/dist/runtime/editor/features/analyze/Renderer/index.vue.d.ts +0 -24
  360. package/dist/runtime/editor/features/analyze/Renderer/vertex.glsl +0 -94
  361. package/dist/runtime/editor/features/assistant/Overlay/ResultMarkup/index.d.vue.ts +0 -7
  362. package/dist/runtime/editor/features/assistant/Overlay/ResultMarkup/index.vue +0 -17
  363. package/dist/runtime/editor/features/assistant/Overlay/ResultMarkup/index.vue.d.ts +0 -7
  364. package/dist/runtime/editor/features/assistant/Overlay/index.vue +0 -108
  365. package/dist/runtime/editor/features/assistant/docs.md +0 -7
  366. package/dist/runtime/editor/features/assistant/index.vue +0 -66
  367. package/dist/runtime/editor/features/assistant/types.d.ts +0 -37
  368. package/dist/runtime/editor/features/media-library/Library/FilterSelect/index.vue +0 -168
  369. package/dist/runtime/editor/providers/fieldValueAdapterTypes.d.ts +0 -13
  370. /package/dist/{runtime/editor/features/assistant → modules/iframes/runtime}/types.js +0 -0
  371. /package/dist/runtime/editor/components/Actions/{ItemDropdown.d.vue.ts → ItemDropdown/index.d.vue.ts} +0 -0
  372. /package/dist/runtime/editor/components/Actions/{ItemDropdown.vue.d.ts → ItemDropdown/index.vue.d.ts} +0 -0
  373. /package/dist/runtime/editor/{features/media-library/Library → components/PluginConfigFormInline}/FilterSelect/index.d.vue.ts +0 -0
  374. /package/dist/runtime/editor/{features/media-library/Library → components/PluginConfigFormInline}/FilterSelect/index.vue.d.ts +0 -0
  375. /package/dist/runtime/editor/features/{assistant → highlights/Renderer}/index.d.vue.ts +0 -0
  376. /package/dist/runtime/editor/features/{assistant → highlights/Renderer}/index.vue.d.ts +0 -0
  377. /package/dist/runtime/editor/{providers/fieldValueAdapterTypes.js → features/referenced-entities/types.js} +0 -0
@@ -34,11 +34,11 @@ const zIndexKeys = [
34
34
  "tour-overlay",
35
35
  "tour-item",
36
36
  "context-menu",
37
- "search",
38
37
  "resizable",
39
38
  "transform-overlay",
40
- "overlay",
41
39
  "sidebar-detached",
40
+ "search",
41
+ "overlay",
42
42
  "form-overlay",
43
43
  "form-overlay-header",
44
44
  "dialog",
@@ -56,7 +56,7 @@ const zIndex = zIndexKeys.reduce((acc, key, index) => {
56
56
  return acc;
57
57
  }, {});
58
58
  const tailwindConfig = {
59
- content: [],
59
+ content: ["./src/runtime/**/*.vue", "./src/modules/*/runtime/**/*.vue"],
60
60
  corePlugins: {
61
61
  preflight: false,
62
62
  container: false
@@ -235,6 +235,10 @@ type DefinitionOptionRadiosGridOption = {
235
235
  * The label displayed for this option.
236
236
  */
237
237
  label: string;
238
+ /**
239
+ * Optional description providing additional context for this option.
240
+ */
241
+ description?: string;
238
242
  };
239
243
  type DefinitionOptionRadiosGrid = {
240
244
  /**
@@ -265,6 +269,10 @@ type DefinitionOptionRadiosColorsOption = {
265
269
  * The label displayed for this option.
266
270
  */
267
271
  label: string;
272
+ /**
273
+ * Optional description providing additional context for this option.
274
+ */
275
+ description?: string;
268
276
  };
269
277
  type DefinitionOptionRadiosColors = {
270
278
  /**
@@ -288,9 +296,13 @@ type DefinitionOptionRadiosRadios = {
288
296
  /**
289
297
  * Available options.
290
298
  *
291
- * Key is the option value, value is the display label.
299
+ * Key is the option value, value is the display label or an object with
300
+ * label and optional description.
292
301
  */
293
- options: Record<string, string>;
302
+ options: Record<string, string | {
303
+ label: string;
304
+ description?: string;
305
+ }>;
294
306
  };
295
307
  type DefinitionOptionRadiosIconsOptionBase<Icon extends string = string> = {
296
308
  /**
@@ -303,6 +315,10 @@ type DefinitionOptionRadiosIconsOptionBase<Icon extends string = string> = {
303
315
  * The label displayed for this option.
304
316
  */
305
317
  label: string;
318
+ /**
319
+ * Optional description providing additional context for this option.
320
+ */
321
+ description?: string;
306
322
  };
307
323
  type DefinitionOptionRadiosIconsBase<Icon extends string = string> = {
308
324
  /**
package/dist/module.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { NuxtModule } from 'nuxt/schema';
2
- import { M as ModuleOptions } from './shared/editor.DsGJIlGn.mjs';
3
- export { a as ModuleHooks } from './shared/editor.DsGJIlGn.mjs';
2
+ import { M as ModuleOptions } from './shared/editor.BTOBvmaz.mjs';
3
+ export { a as ModuleHooks } from './shared/editor.BTOBvmaz.mjs';
4
4
  import 'consola';
5
5
  import '../dist/global/types/definitions.js';
6
6
  import '../dist/global/types/theme.js';
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blokkli/editor",
3
3
  "configKey": "blokkli",
4
- "version": "2.0.0-alpha.51",
4
+ "version": "2.0.0-alpha.53",
5
5
  "compatibility": {
6
6
  "nuxt": ">=3.15.0"
7
7
  },
package/dist/module.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { resolveAlias, resolveFiles, createResolver, addComponent, addImports, addTemplate, useLogger, defineNuxtModule, addPlugin, addBuildPlugin, updateTemplates } from '@nuxt/kit';
1
+ import { resolveAlias, resolveFiles, createResolver, addComponent, addImports, addTemplate, useLogger, defineNuxtModule, addPlugin, addBuildPlugin, addVitePlugin, updateTemplates } from '@nuxt/kit';
2
2
  import path__default, { basename, dirname as dirname$1, resolve as resolve$1, join } from 'node:path';
3
3
  import { createUnplugin } from 'unplugin';
4
4
  import MagicString from 'magic-string';
@@ -14,11 +14,12 @@ import { LANGUAGES, BK_VISIBLE_LANGUAGES, BK_HIDDEN_GLOBALLY } from './global/co
14
14
  import { createRequire } from 'node:module';
15
15
  import { d as defineCodeTemplate, a as defineFileTemplate, w as withHelper } from './shared/editor.6D5vApr0.mjs';
16
16
  import { defu, createDefu } from 'defu';
17
+ import * as acorn from 'acorn';
17
18
  import 'typescript';
18
19
  import 'oxc-walker';
19
20
 
20
21
  const name = "@blokkli/editor";
21
- const version = "2.0.0-alpha.51";
22
+ const version = "2.0.0-alpha.53";
22
23
 
23
24
  function validateOption(optionKey, option, icons) {
24
25
  const errors = [];
@@ -1211,6 +1212,7 @@ class ModuleContext {
1211
1212
  featureFragments = /* @__PURE__ */ new Set();
1212
1213
  complexOptionTypes = /* @__PURE__ */ new Map();
1213
1214
  cssFiles = [];
1215
+ contentPaths = [];
1214
1216
  additionalIcons = [];
1215
1217
  collectors = [];
1216
1218
  addCSS(filePath) {
@@ -1219,6 +1221,21 @@ class ModuleContext {
1219
1221
  getCSSFiles() {
1220
1222
  return this.cssFiles;
1221
1223
  }
1224
+ /**
1225
+ * Register a directory containing Vue files that should participate in
1226
+ * blökkli's CSS build pipeline. Files in these directories will:
1227
+ * - Have their Tailwind utility classes generated and included in the output
1228
+ * - Have their template class names mangled (_bk_ prefix) at build time
1229
+ * - Have their <style> blocks processed through blökkli's PostCSS pipeline
1230
+ *
1231
+ * @param dirPath - Absolute path to a directory containing Vue components
1232
+ */
1233
+ addContentPath(dirPath) {
1234
+ this.contentPaths.push(dirPath);
1235
+ }
1236
+ getContentPaths() {
1237
+ return this.contentPaths;
1238
+ }
1222
1239
  addIcon(...names) {
1223
1240
  this.additionalIcons.push(...names);
1224
1241
  }
@@ -1480,6 +1497,7 @@ const USED_MATERIAL_ICONS = [
1480
1497
  "bk_mdi_check",
1481
1498
  "bk_mdi_check_box",
1482
1499
  "bk_mdi_check_box_outline_blank",
1500
+ "bk_mdi_check_circle",
1483
1501
  "bk_mdi_chevron_backward",
1484
1502
  "bk_mdi_chevron_forward",
1485
1503
  "bk_mdi_chevron_left",
@@ -1494,6 +1512,7 @@ const USED_MATERIAL_ICONS = [
1494
1512
  "bk_mdi_delete",
1495
1513
  "bk_mdi_dock_to_left",
1496
1514
  "bk_mdi_dock_to_right",
1515
+ "bk_mdi_docs",
1497
1516
  "bk_mdi_done_all",
1498
1517
  "bk_mdi_donut_large",
1499
1518
  "bk_mdi_drag_pan",
@@ -1502,7 +1521,11 @@ const USED_MATERIAL_ICONS = [
1502
1521
  "bk_mdi_exit_to_app",
1503
1522
  "bk_mdi_expand_all",
1504
1523
  "bk_mdi_extension",
1524
+ "bk_mdi_feature_search",
1525
+ "bk_mdi_fit_screen",
1505
1526
  "bk_mdi_forum",
1527
+ "bk_mdi_fullscreen",
1528
+ "bk_mdi_fullscreen_exit",
1506
1529
  "bk_mdi_function",
1507
1530
  "bk_mdi_grid_view",
1508
1531
  "bk_mdi_grid_view-fill",
@@ -1514,6 +1537,7 @@ const USED_MATERIAL_ICONS = [
1514
1537
  "bk_mdi_info-fill",
1515
1538
  "bk_mdi_ink_selection",
1516
1539
  "bk_mdi_inventory",
1540
+ "bk_mdi_join",
1517
1541
  "bk_mdi_keyboard_arrow_down",
1518
1542
  "bk_mdi_keyboard_command_key",
1519
1543
  "bk_mdi_lists",
@@ -1528,6 +1552,7 @@ const USED_MATERIAL_ICONS = [
1528
1552
  "bk_mdi_person",
1529
1553
  "bk_mdi_person-fill",
1530
1554
  "bk_mdi_pie_chart",
1555
+ "bk_mdi_play_circle",
1531
1556
  "bk_mdi_priority_high",
1532
1557
  "bk_mdi_publish",
1533
1558
  "bk_mdi_qr_code",
@@ -1558,6 +1583,9 @@ const USED_MATERIAL_ICONS = [
1558
1583
  "bk_mdi_text_compare",
1559
1584
  "bk_mdi_text_select_end",
1560
1585
  "bk_mdi_texture",
1586
+ "bk_mdi_thumb_down",
1587
+ "bk_mdi_thumb_up",
1588
+ "bk_mdi_thumbs_up_double",
1561
1589
  "bk_mdi_title",
1562
1590
  "bk_mdi_track_changes",
1563
1591
  "bk_mdi_trackpad_input",
@@ -1567,10 +1595,10 @@ const USED_MATERIAL_ICONS = [
1567
1595
  "bk_mdi_upload",
1568
1596
  "bk_mdi_video_camera_back",
1569
1597
  "bk_mdi_visibility",
1570
- "bk_mdi_visibility-fill",
1571
1598
  "bk_mdi_visibility_off",
1572
1599
  "bk_mdi_warning",
1573
1600
  "bk_mdi_web_traffic",
1601
+ "bk_mdi_workspaces",
1574
1602
  "bk_mdi_zoom_in"
1575
1603
  ];
1576
1604
 
@@ -1832,31 +1860,70 @@ export default adapterExtensions
1832
1860
  }
1833
1861
  );
1834
1862
 
1835
- let processor = null;
1836
- async function processCSS(css, from) {
1837
- if (!processor) {
1838
- processor = await createProcessor();
1863
+ const processors = /* @__PURE__ */ new Map();
1864
+ function postcssMangleClasses(selectorParser) {
1865
+ const plugin = () => ({
1866
+ postcssPlugin: "postcss-mangle-blokkli-classes",
1867
+ OnceExit(root) {
1868
+ root.walkRules((rule) => {
1869
+ if (rule.parent && rule.parent.type === "atrule" && rule.parent.name === "keyframes") {
1870
+ return;
1871
+ }
1872
+ rule.selector = selectorParser((selectors) => {
1873
+ selectors.each((selector) => {
1874
+ let hasMangled = false;
1875
+ let hasBk = false;
1876
+ selector.walkClasses((classNode) => {
1877
+ if (classNode.value === "bk") {
1878
+ hasBk = true;
1879
+ return;
1880
+ }
1881
+ if (classNode.value.startsWith("bk-")) return;
1882
+ classNode.value = "_bk_" + classNode.value;
1883
+ hasMangled = true;
1884
+ });
1885
+ if (hasMangled && !hasBk) {
1886
+ const descendant = selector.clone();
1887
+ descendant.prepend(selectorParser.combinator({ value: " " }));
1888
+ descendant.prepend(selectorParser.className({ value: "bk" }));
1889
+ const compound = selector.clone();
1890
+ compound.prepend(selectorParser.className({ value: "bk" }));
1891
+ selector.replaceWith(descendant, compound);
1892
+ }
1893
+ });
1894
+ }).processSync(rule.selector);
1895
+ });
1896
+ }
1897
+ });
1898
+ plugin.postcss = true;
1899
+ return plugin;
1900
+ }
1901
+ async function processCSS(css, from, contentPaths) {
1902
+ const key = contentPaths?.join(",") || "";
1903
+ if (!processors.has(key)) {
1904
+ processors.set(key, await createProcessor(contentPaths));
1839
1905
  }
1906
+ const processor = processors.get(key);
1840
1907
  const result = await processor.process(css, { from: from || "module.css" });
1841
1908
  return result.css;
1842
1909
  }
1843
1910
  function resetProcessor() {
1844
- processor = null;
1911
+ processors.clear();
1845
1912
  }
1846
- async function createProcessor() {
1913
+ async function createProcessor(contentPaths) {
1847
1914
  const _require = createRequire(import.meta.url);
1848
1915
  try {
1849
1916
  const postcss = _require("postcss");
1850
1917
  const { default: tailwindConfig } = await import('./chunks/tailwindConfig.mjs');
1918
+ const content = contentPaths?.length ? contentPaths.map((dir) => dir + "/**/*.vue") : [{ raw: " ", extension: "html" }];
1851
1919
  const plugins = [
1852
1920
  _require("postcss-import"),
1853
1921
  _require("tailwindcss/nesting"),
1854
1922
  _require("tailwindcss")({
1855
1923
  ...tailwindConfig,
1856
- // Empty content prevents Tailwind from scanning the project.
1857
- // @apply directives are resolved regardless of content scanning.
1858
- content: [{ raw: " ", extension: "html" }]
1924
+ content
1859
1925
  }),
1926
+ postcssMangleClasses(_require("postcss-selector-parser")),
1860
1927
  // Same scoping rules as postcss.config.cjs: scope selectors to .bk
1861
1928
  // and rename Tailwind CSS variables from --tw-* to --bk-tw-*.
1862
1929
  _require("postcss-replace")({
@@ -1911,6 +1978,24 @@ ${e.message}`
1911
1978
  moduleCSS = "\n/* Module CSS */\n" + processed.join("\n");
1912
1979
  }
1913
1980
  }
1981
+ const contentPaths = ctx.getContentPaths();
1982
+ if (contentPaths.length > 0) {
1983
+ try {
1984
+ const utilities = await processCSS(
1985
+ "@tailwind utilities;",
1986
+ "module-utilities.css",
1987
+ contentPaths
1988
+ );
1989
+ if (utilities.trim()) {
1990
+ moduleCSS += "\n/* Module Utilities */\n" + utilities;
1991
+ }
1992
+ } catch (e) {
1993
+ logger$1.error(
1994
+ `Failed to generate utilities for module content paths:
1995
+ ${e.message}`
1996
+ );
1997
+ }
1998
+ }
1914
1999
  return `
1915
2000
  @import url("${cssFilePath}");
1916
2001
 
@@ -3697,9 +3782,8 @@ const complexOptionTypes = defineCodeTemplate(
3697
3782
  const entries = types.map(
3698
3783
  (t) => ` '${t.id}': {
3699
3784
  editorComponent: defineAsyncComponent(() => import('${ctx.helper.toModuleBuildRelative(t.editorComponentPath)}')),
3700
- editorButtonLabel: '${t.editorButtonLabel}',
3785
+ editTitle: ${JSON.stringify(t.editTitle)},
3701
3786
  editorIcon: '${t.editorIcon}',
3702
- editorTitle: '${t.editorTitle || t.editorButtonLabel}',
3703
3787
  }`
3704
3788
  ).join(",\n");
3705
3789
  return `import { defineAsyncComponent } from 'vue'
@@ -3728,9 +3812,8 @@ ${entries}
3728
3812
 
3729
3813
  export const COMPLEX_OPTION_TYPES: Record<string, {
3730
3814
  editorComponent: Component
3731
- editorButtonLabel: string
3815
+ editTitle: { key: string; defaultTranslation: string }
3732
3816
  editorIcon: BlokkliIcon
3733
- editorTitle: string
3734
3817
  }>`;
3735
3818
  },
3736
3819
  {
@@ -3938,6 +4021,136 @@ class ThemeData {
3938
4021
  }
3939
4022
  }
3940
4023
 
4024
+ function mangleClassName(name) {
4025
+ if (name === "bk" || name.startsWith("bk-")) return name;
4026
+ return "_bk_" + name;
4027
+ }
4028
+ function mangleClassString(str) {
4029
+ return str.split(/\s+/).filter(Boolean).map(mangleClassName).join(" ");
4030
+ }
4031
+
4032
+ function collectClassReplacements(node, out) {
4033
+ switch (node.type) {
4034
+ case "Literal":
4035
+ if (typeof node.value === "string" && node.value) {
4036
+ const mangled = mangleClassString(node.value);
4037
+ if (mangled !== node.value) {
4038
+ out.push({ start: node.start + 1, end: node.end - 1, value: mangled });
4039
+ }
4040
+ }
4041
+ break;
4042
+ case "ObjectExpression":
4043
+ for (const prop of node.properties) {
4044
+ if (prop.type === "Property") {
4045
+ if (prop.key.type === "Literal" && typeof prop.key.value === "string") {
4046
+ const mangled = mangleClassString(prop.key.value);
4047
+ if (mangled !== prop.key.value) {
4048
+ out.push({
4049
+ start: prop.key.start + 1,
4050
+ end: prop.key.end - 1,
4051
+ value: mangled
4052
+ });
4053
+ }
4054
+ } else if (prop.computed) {
4055
+ collectClassReplacements(prop.key, out);
4056
+ }
4057
+ }
4058
+ }
4059
+ break;
4060
+ case "ArrayExpression":
4061
+ for (const el of node.elements) {
4062
+ if (el) collectClassReplacements(el, out);
4063
+ }
4064
+ break;
4065
+ case "ConditionalExpression":
4066
+ collectClassReplacements(node.consequent, out);
4067
+ collectClassReplacements(node.alternate, out);
4068
+ break;
4069
+ case "LogicalExpression":
4070
+ collectClassReplacements(node.left, out);
4071
+ collectClassReplacements(node.right, out);
4072
+ break;
4073
+ case "CallExpression":
4074
+ if (node.callee.type === "Identifier" && node.callee.name === "tw") {
4075
+ for (const arg of node.arguments) {
4076
+ if (arg.type === "Literal" && typeof arg.value === "string") {
4077
+ const mangled = mangleClassString(arg.value);
4078
+ if (mangled !== arg.value) {
4079
+ out.push({
4080
+ start: arg.start + 1,
4081
+ end: arg.end - 1,
4082
+ value: mangled
4083
+ });
4084
+ }
4085
+ }
4086
+ }
4087
+ }
4088
+ break;
4089
+ }
4090
+ }
4091
+ function mangleClassExpression(expr) {
4092
+ let ast;
4093
+ try {
4094
+ ast = acorn.parse("(" + expr + ")", {
4095
+ ecmaVersion: 2022,
4096
+ sourceType: "module"
4097
+ });
4098
+ } catch {
4099
+ return expr;
4100
+ }
4101
+ const body = ast.body[0];
4102
+ if (!body || body.type !== "ExpressionStatement") return expr;
4103
+ const replacements = [];
4104
+ collectClassReplacements(body.expression, replacements);
4105
+ if (replacements.length === 0) return expr;
4106
+ replacements.sort((a, b) => b.start - a.start);
4107
+ let result = expr;
4108
+ for (const r of replacements) {
4109
+ result = result.slice(0, r.start - 1) + r.value + result.slice(r.end - 1);
4110
+ }
4111
+ return result;
4112
+ }
4113
+ function mangleTemplateAndScript(code) {
4114
+ let result = code;
4115
+ result = result.replace(
4116
+ /(?<![-:.])\bclass="([^"]*)"/g,
4117
+ (_match, value) => `class="${mangleClassString(value)}"`
4118
+ );
4119
+ result = result.replace(
4120
+ /\btw\(\s*(['"])([\s\S]*?)\1\s*\)/g,
4121
+ (_match, quote, value) => `tw(${quote}${mangleClassString(value)}${quote})`
4122
+ );
4123
+ result = result.replace(
4124
+ /(?::|v-bind:)class="([^"]*)"/g,
4125
+ (_match, expr) => `:class="${mangleClassExpression(expr)}"`
4126
+ );
4127
+ return result;
4128
+ }
4129
+ async function processStyleBlocks(code, filePath) {
4130
+ const styleRegex = /<style([^>]*)>([\s\S]*?)<\/style>/g;
4131
+ let result = code;
4132
+ let styleMatch;
4133
+ while ((styleMatch = styleRegex.exec(result)) !== null) {
4134
+ const fullMatch = styleMatch[0];
4135
+ const attrs = styleMatch[1] || "";
4136
+ const cssContent = styleMatch[2] || "";
4137
+ if (cssContent.trim()) {
4138
+ const processed = await processCSS(cssContent, filePath);
4139
+ const cleanAttrs = attrs.replace(/\s*lang=["']postcss["']/g, "");
4140
+ const replacement = `<style${cleanAttrs}>${processed}</style>`;
4141
+ result = result.slice(0, styleMatch.index) + replacement + result.slice(styleMatch.index + fullMatch.length);
4142
+ styleRegex.lastIndex = styleMatch.index + replacement.length;
4143
+ }
4144
+ }
4145
+ return result;
4146
+ }
4147
+ async function mangleVueSFC(code, id) {
4148
+ let result = mangleTemplateAndScript(code);
4149
+ result = await processStyleBlocks(result, id);
4150
+ if (result === code) return null;
4151
+ return result;
4152
+ }
4153
+
3941
4154
  const logger = useLogger("@blokkli/editor");
3942
4155
  const module$1 = defineNuxtModule({
3943
4156
  meta: {
@@ -4000,7 +4213,10 @@ const module$1 = defineNuxtModule({
4000
4213
  const app = {
4001
4214
  helper,
4002
4215
  context,
4003
- $t: (key, _defaultText) => key
4216
+ $t: (key, defaultText) => ({
4217
+ key,
4218
+ defaultTranslation: defaultText
4219
+ })
4004
4220
  };
4005
4221
  for (const module of blokkliModules) {
4006
4222
  await module.init.setup(app, module.options);
@@ -4031,6 +4247,9 @@ const module$1 = defineNuxtModule({
4031
4247
  const moduleDir = import.meta.url;
4032
4248
  const resolver = createResolver(moduleDir);
4033
4249
  nuxt.options.build.transpile.push(resolver.resolve("runtime"));
4250
+ nuxt.options.vite.optimizeDeps ??= {};
4251
+ nuxt.options.vite.optimizeDeps.include ??= [];
4252
+ nuxt.options.vite.optimizeDeps.include.push("papaparse", "pofile");
4034
4253
  helper.addComponent("BlokkliField");
4035
4254
  helper.addComponent("BlokkliEditable");
4036
4255
  helper.addComponent("BlokkliProvider");
@@ -4066,7 +4285,7 @@ const module$1 = defineNuxtModule({
4066
4285
  });
4067
4286
  });
4068
4287
  addPlugin({
4069
- src: resolver.resolve("runtime/plugins/blokkliDirectives")
4288
+ src: resolver.resolve("./runtime/plugins/blokkliDirectives")
4070
4289
  });
4071
4290
  addBuildPlugin(RuntimeDefinitionPlugin(nuxt, helper, "defineBlokkli"));
4072
4291
  addBuildPlugin(
@@ -4076,6 +4295,50 @@ const module$1 = defineNuxtModule({
4076
4295
  RuntimeDefinitionPlugin(nuxt, helper, "defineBlokkliProvider", 1)
4077
4296
  );
4078
4297
  addBuildPlugin(BlokkliEditingPlugin(nuxt));
4298
+ const contentPaths = context.getContentPaths();
4299
+ if (contentPaths.length > 0) {
4300
+ addVitePlugin({
4301
+ name: "blokkli-mangle-module-classes",
4302
+ enforce: "pre",
4303
+ async transform(code, id) {
4304
+ if (!id.endsWith(".vue")) return null;
4305
+ if (!contentPaths.some((dir) => id.startsWith(dir))) return null;
4306
+ const result = await mangleVueSFC(code, id);
4307
+ return result ? { code: result, map: null } : null;
4308
+ },
4309
+ hotUpdate: {
4310
+ order: "post",
4311
+ async handler({ file, server, modules: hmrModules }) {
4312
+ if (!file.endsWith(".vue")) return;
4313
+ if (!contentPaths.some((dir) => file.startsWith(dir))) return;
4314
+ const environment = server.environments["client"];
4315
+ if (!environment) return;
4316
+ const modules = environment.moduleGraph.getModulesByFile(file);
4317
+ if (!modules || modules.size === 0) return;
4318
+ const mainModule = [...modules].find((m) => !m.url.includes("?"));
4319
+ if (mainModule) {
4320
+ environment.moduleGraph.invalidateModule(mainModule);
4321
+ await environment.transformRequest(mainModule.url);
4322
+ }
4323
+ const styleModules = [...modules].filter(
4324
+ (m) => m.url.includes("type=style")
4325
+ );
4326
+ if (styleModules.length) {
4327
+ for (const styleMod of styleModules) {
4328
+ environment.moduleGraph.invalidateModule(styleMod);
4329
+ }
4330
+ const result = [...hmrModules];
4331
+ for (const styleMod of styleModules) {
4332
+ if (!result.some((m) => m.url === styleMod.url)) {
4333
+ result.push(styleMod);
4334
+ }
4335
+ }
4336
+ return result;
4337
+ }
4338
+ }
4339
+ }
4340
+ });
4341
+ }
4079
4342
  if (nuxt.options.dev) {
4080
4343
  for (const cssFile of context.getCSSFiles()) {
4081
4344
  nuxt.options.watch.push(dirname$1(cssFile));
@@ -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';
@@ -56,6 +56,7 @@ export type AgentProvider = {
56
56
  switchConversation: (id: string) => void;
57
57
  deleteConversation: (id: string) => void;
58
58
  refreshConversationList: () => Promise<void>;
59
+ feedbackItemIds: Ref<Set<string>>;
59
60
  pageContext: Ref<PageContext | null>;
60
61
  };
61
62
  export default function (app: BlokkliApp, adapter: FullBlokkliAdapter<any>, agentName: string): AgentProvider;
@@ -46,6 +46,7 @@ export default function(app, adapter, agentName) {
46
46
  const activeConversationId = ref(null);
47
47
  const conversationList = ref([]);
48
48
  const showConversationList = ref(false);
49
+ const feedbackItemIds = ref(/* @__PURE__ */ new Set());
49
50
  const toolDetails = reactive(/* @__PURE__ */ new Map());
50
51
  async function saveCurrentConversation(serverState) {
51
52
  if (!adapter.agentConversations) return;
@@ -102,6 +103,7 @@ export default function(app, adapter, agentName) {
102
103
  return {
103
104
  conversation: clientConversation,
104
105
  usageTurns: parsed.usageTurns ?? [],
106
+ feedbackItemIds: data.feedbackItemIds ?? [],
105
107
  serverState: {
106
108
  messages: serverParsed.messages,
107
109
  activatedLazyTools: serverParsed.activatedLazyTools,
@@ -147,6 +149,7 @@ export default function(app, adapter, agentName) {
147
149
  if (!loaded) return;
148
150
  conversation.value = loaded.conversation;
149
151
  usageTurns.value = loaded.usageTurns;
152
+ feedbackItemIds.value = new Set(loaded.feedbackItemIds);
150
153
  activeItem.value = null;
151
154
  activeConversationId.value = id;
152
155
  send({ type: "restore_conversation", state: loaded.serverState });
@@ -331,6 +334,7 @@ export default function(app, adapter, agentName) {
331
334
  activeConversationId.value = latest.uuid;
332
335
  conversation.value = parsed.conversation;
333
336
  usageTurns.value = parsed.usageTurns;
337
+ feedbackItemIds.value = new Set(parsed.feedbackItemIds);
334
338
  send({ type: "restore_conversation", state: parsed.serverState });
335
339
  }
336
340
  }
@@ -976,6 +980,7 @@ export default function(app, adapter, agentName) {
976
980
  activeConversationId.value = null;
977
981
  plan.value = null;
978
982
  usageTurns.value = [];
983
+ feedbackItemIds.value = /* @__PURE__ */ new Set();
979
984
  toolDetails.clear();
980
985
  send({ type: "new_conversation" });
981
986
  }
@@ -1034,6 +1039,8 @@ export default function(app, adapter, agentName) {
1034
1039
  switchConversation,
1035
1040
  deleteConversation,
1036
1041
  refreshConversationList,
1042
+ // Feedback
1043
+ feedbackItemIds,
1037
1044
  // Page context (built once during connection)
1038
1045
  pageContext: storedPageContext
1039
1046
  };
@@ -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;