@ecsplico/editor 3.1.0 → 3.2.0

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 (270) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/adapters/direct-ai.d.ts +36 -0
  3. package/dist/adapters/direct-ai.js +169 -0
  4. package/dist/adapters/direct-ai.js.map +1 -0
  5. package/dist/adapters/memory.js.map +1 -1
  6. package/dist/code/CodeSurface.vue.d.ts +2 -2
  7. package/dist/core/block-drag.js +3 -0
  8. package/dist/core/block-drag.js.map +1 -1
  9. package/dist/core/block-transfer.d.ts +44 -0
  10. package/dist/core/block-transfer.js +68 -0
  11. package/dist/core/block-transfer.js.map +1 -0
  12. package/dist/core/commands.js +5 -0
  13. package/dist/core/commands.js.map +1 -1
  14. package/dist/core/core-feature.d.ts +4 -1
  15. package/dist/core/core-feature.js +8 -3
  16. package/dist/core/core-feature.js.map +1 -1
  17. package/dist/core/editor-ui.d.ts +3 -1
  18. package/dist/core/editor-ui.js.map +1 -1
  19. package/dist/core/extension-points.d.ts +17 -1
  20. package/dist/core/feature.d.ts +6 -1
  21. package/dist/core/feature.js.map +1 -1
  22. package/dist/core/index.d.ts +4 -2
  23. package/dist/core/index.js +3 -2
  24. package/dist/core/schema/index.d.ts +24 -3
  25. package/dist/core/schema/index.js +21 -4
  26. package/dist/core/schema/index.js.map +1 -1
  27. package/dist/core/surface-session.js +3 -1
  28. package/dist/core/surface-session.js.map +1 -1
  29. package/dist/core/toolbar-items.js +1 -1
  30. package/dist/core/toolbar-items.js.map +1 -1
  31. package/dist/document/DocumentSurface.vue.d.ts +2 -2
  32. package/dist/features/ai/agent-op-review.js +1 -1
  33. package/dist/features/ai/agent-ops.js +2 -2
  34. package/dist/features/ai/ai-apply.js +1 -1
  35. package/dist/features/ai/assistant.js +1 -1
  36. package/dist/features/ai/components/AiSelectionMenu.js +2 -2
  37. package/dist/features/ai/components/AiSidebar.js +2 -2
  38. package/dist/features/ai/components/SettingsAiTab.js +1 -1
  39. package/dist/features/ai/components/SettingsModelProfiles.js +1 -1
  40. package/dist/features/ai/document-chat-model.js +1 -1
  41. package/dist/features/ai/document-chat.js +2 -2
  42. package/dist/features/ai/ghost-autocomplete.js +1 -1
  43. package/dist/features/ai/index.d.ts +4 -3
  44. package/dist/features/ai/index.js +6 -5
  45. package/dist/features/ai/protocol/complete.d.ts +19 -0
  46. package/dist/features/ai/protocol/complete.js +27 -1
  47. package/dist/features/ai/protocol/complete.js.map +1 -1
  48. package/dist/features/ai/protocol/generate.d.ts +95 -0
  49. package/dist/features/ai/protocol/generate.js +58 -0
  50. package/dist/features/ai/protocol/generate.js.map +1 -0
  51. package/dist/features/ai/protocol/index.d.ts +4 -3
  52. package/dist/features/ai/protocol/index.js +6 -5
  53. package/dist/features/ai/protocol/tasks.d.ts +3 -1
  54. package/dist/features/ai/protocol/tasks.js +74 -2
  55. package/dist/features/ai/protocol/tasks.js.map +1 -1
  56. package/dist/features/ai/react/AiSelectionMenu.js +2 -2
  57. package/dist/features/ai/react/AiSidebar.js +2 -2
  58. package/dist/features/ai/react/SettingsAiTab.js +1 -1
  59. package/dist/features/ai/react/SettingsModelProfiles.js +1 -1
  60. package/dist/features/ai/selection-flow.js +1 -1
  61. package/dist/features/ai/sidebar-flow.js +1 -1
  62. package/dist/features/block-ui/block-actions.d.ts +19 -3
  63. package/dist/features/block-ui/block-actions.js +49 -3
  64. package/dist/features/block-ui/block-actions.js.map +1 -1
  65. package/dist/features/block-ui/components/BlockActionsOverlay.js +24 -13
  66. package/dist/features/block-ui/components/BlockActionsOverlay.js.map +1 -1
  67. package/dist/features/block-ui/components/BlockActionsOverlay.vue.d.ts +12 -5
  68. package/dist/features/block-ui/components/BlockUi.js +52 -20
  69. package/dist/features/block-ui/components/BlockUi.js.map +1 -1
  70. package/dist/features/block-ui/components/BlockUi.vue.d.ts +6 -4
  71. package/dist/features/block-ui/feature.d.ts +8 -2
  72. package/dist/features/block-ui/feature.js +7 -2
  73. package/dist/features/block-ui/feature.js.map +1 -1
  74. package/dist/features/block-ui/index.d.ts +3 -2
  75. package/dist/features/block-ui/index.js +2 -2
  76. package/dist/features/block-ui/react/BlockActionsOverlay.d.ts +14 -7
  77. package/dist/features/block-ui/react/BlockActionsOverlay.js +25 -13
  78. package/dist/features/block-ui/react/BlockActionsOverlay.js.map +1 -1
  79. package/dist/features/block-ui/react/BlockUi.d.ts +6 -4
  80. package/dist/features/block-ui/react/BlockUi.js +43 -15
  81. package/dist/features/block-ui/react/BlockUi.js.map +1 -1
  82. package/dist/features/block-ui/react.d.ts +4 -2
  83. package/dist/features/block-ui/react.js +3 -3
  84. package/dist/features/block-ui/react.js.map +1 -1
  85. package/dist/features/block-ui/vue.d.ts +4 -2
  86. package/dist/features/block-ui/vue.js +3 -3
  87. package/dist/features/block-ui/vue.js.map +1 -1
  88. package/dist/features/composites/baskets.d.ts +27 -0
  89. package/dist/features/composites/baskets.js +46 -0
  90. package/dist/features/composites/baskets.js.map +1 -0
  91. package/dist/features/composites/components/CompositeBasketMenu.js +97 -0
  92. package/dist/features/composites/components/CompositeBasketMenu.js.map +1 -0
  93. package/dist/features/composites/components/CompositeChrome.js +79 -23
  94. package/dist/features/composites/components/CompositeChrome.js.map +1 -1
  95. package/dist/features/composites/components/CompositeFieldEditor.js +1 -0
  96. package/dist/features/composites/components/CompositeFieldEditor.js.map +1 -1
  97. package/dist/features/composites/components/CompositeView.js +17 -2
  98. package/dist/features/composites/components/CompositeView.js.map +1 -1
  99. package/dist/features/composites/components/DerivationBadge.js +12 -3
  100. package/dist/features/composites/components/DerivationBadge.js.map +1 -1
  101. package/dist/features/composites/components/FocusChip.js +53 -0
  102. package/dist/features/composites/components/FocusChip.js.map +1 -0
  103. package/dist/features/composites/components/FocusChip.vue.d.ts +14 -0
  104. package/dist/features/composites/components/SettingsEditingTab.js +40 -4
  105. package/dist/features/composites/components/SettingsEditingTab.js.map +1 -1
  106. package/dist/features/composites/derivation.d.ts +2 -1
  107. package/dist/features/composites/derivation.js +5 -1
  108. package/dist/features/composites/derivation.js.map +1 -1
  109. package/dist/features/composites/derived-chrome.js +13 -3
  110. package/dist/features/composites/derived-chrome.js.map +1 -1
  111. package/dist/features/composites/feature.d.ts +7 -1
  112. package/dist/features/composites/feature.js +96 -23
  113. package/dist/features/composites/feature.js.map +1 -1
  114. package/dist/features/composites/focus.d.ts +38 -0
  115. package/dist/features/composites/focus.js +86 -0
  116. package/dist/features/composites/focus.js.map +1 -0
  117. package/dist/features/composites/index.d.ts +6 -3
  118. package/dist/features/composites/index.js +6 -3
  119. package/dist/features/composites/meta-keys.d.ts +4 -0
  120. package/dist/features/composites/meta-keys.js +8 -4
  121. package/dist/features/composites/meta-keys.js.map +1 -1
  122. package/dist/features/composites/nodes.d.ts +14 -2
  123. package/dist/features/composites/nodes.js +61 -5
  124. package/dist/features/composites/nodes.js.map +1 -1
  125. package/dist/features/composites/outline.d.ts +4 -0
  126. package/dist/features/composites/outline.js +3 -0
  127. package/dist/features/composites/outline.js.map +1 -1
  128. package/dist/features/composites/react/CompositeBasketMenu.js +88 -0
  129. package/dist/features/composites/react/CompositeBasketMenu.js.map +1 -0
  130. package/dist/features/composites/react/CompositeChrome.js +52 -4
  131. package/dist/features/composites/react/CompositeChrome.js.map +1 -1
  132. package/dist/features/composites/react/CompositeView.js +12 -2
  133. package/dist/features/composites/react/CompositeView.js.map +1 -1
  134. package/dist/features/composites/react/DerivationBadge.js +10 -1
  135. package/dist/features/composites/react/DerivationBadge.js.map +1 -1
  136. package/dist/features/composites/react/FocusChip.d.ts +11 -0
  137. package/dist/features/composites/react/FocusChip.js +50 -0
  138. package/dist/features/composites/react/FocusChip.js.map +1 -0
  139. package/dist/features/composites/react/SettingsEditingTab.js +36 -1
  140. package/dist/features/composites/react/SettingsEditingTab.js.map +1 -1
  141. package/dist/features/composites/react.d.ts +2 -1
  142. package/dist/features/composites/react.js +3 -1
  143. package/dist/features/composites/react.js.map +1 -1
  144. package/dist/features/composites/schema.d.ts +5 -3
  145. package/dist/features/composites/schema.js +8 -4
  146. package/dist/features/composites/schema.js.map +1 -1
  147. package/dist/features/composites/split.d.ts +62 -0
  148. package/dist/features/composites/split.js +172 -0
  149. package/dist/features/composites/split.js.map +1 -0
  150. package/dist/features/composites/vue.d.ts +4 -3
  151. package/dist/features/composites/vue.js +7 -5
  152. package/dist/features/composites/vue.js.map +1 -1
  153. package/dist/features/media/index.js +1 -1
  154. package/dist/features/media/react/AudioRecorderModal.js +1 -1
  155. package/dist/features/media/react.js +1 -1
  156. package/dist/features/transfer/components/TransferMenu.js +93 -0
  157. package/dist/features/transfer/components/TransferMenu.js.map +1 -0
  158. package/dist/features/transfer/components/TransferMenu.vue.d.ts +15 -0
  159. package/dist/features/transfer/feature.d.ts +76 -0
  160. package/dist/features/transfer/feature.js +169 -0
  161. package/dist/features/transfer/feature.js.map +1 -0
  162. package/dist/features/transfer/index.d.ts +3 -0
  163. package/dist/features/transfer/index.js +3 -0
  164. package/dist/features/transfer/react/TransferMenu.d.ts +12 -0
  165. package/dist/features/transfer/react/TransferMenu.js +71 -0
  166. package/dist/features/transfer/react/TransferMenu.js.map +1 -0
  167. package/dist/features/transfer/react.d.ts +10 -0
  168. package/dist/features/transfer/react.js +11 -0
  169. package/dist/features/transfer/react.js.map +1 -0
  170. package/dist/features/transfer/transforms.d.ts +83 -0
  171. package/dist/features/transfer/transforms.js +137 -0
  172. package/dist/features/transfer/transforms.js.map +1 -0
  173. package/dist/features/transfer/vue.d.ts +9 -0
  174. package/dist/features/transfer/vue.js +11 -0
  175. package/dist/features/transfer/vue.js.map +1 -0
  176. package/dist/i18n/de/ai.js +4 -0
  177. package/dist/i18n/de/ai.js.map +1 -1
  178. package/dist/i18n/de/composites.js +20 -1
  179. package/dist/i18n/de/composites.js.map +1 -1
  180. package/dist/i18n/de/integrations.js +16 -0
  181. package/dist/i18n/de/integrations.js.map +1 -1
  182. package/dist/i18n/de/transfer.js +17 -0
  183. package/dist/i18n/de/transfer.js.map +1 -0
  184. package/dist/i18n/de/tree.js +6 -0
  185. package/dist/i18n/de/tree.js.map +1 -1
  186. package/dist/i18n/de.d.ts +55 -0
  187. package/dist/i18n/de.js +3 -1
  188. package/dist/i18n/de.js.map +1 -1
  189. package/dist/i18n/en/ai.js +4 -0
  190. package/dist/i18n/en/ai.js.map +1 -1
  191. package/dist/i18n/en/composites.js +20 -1
  192. package/dist/i18n/en/composites.js.map +1 -1
  193. package/dist/i18n/en/integrations.js +16 -0
  194. package/dist/i18n/en/integrations.js.map +1 -1
  195. package/dist/i18n/en/transfer.js +17 -0
  196. package/dist/i18n/en/transfer.js.map +1 -0
  197. package/dist/i18n/en/tree.js +6 -0
  198. package/dist/i18n/en/tree.js.map +1 -1
  199. package/dist/i18n/en.js +3 -1
  200. package/dist/i18n/en.js.map +1 -1
  201. package/dist/integrations/composite-ai/composite-fill.js +1 -1
  202. package/dist/integrations/composite-ai/composite-summary.js +1 -1
  203. package/dist/integrations/composite-ai/derive.d.ts +21 -0
  204. package/dist/integrations/composite-ai/derive.js +69 -47
  205. package/dist/integrations/composite-ai/derive.js.map +1 -1
  206. package/dist/integrations/composite-ai/index.d.ts +8 -3
  207. package/dist/integrations/composite-ai/index.js +50 -4
  208. package/dist/integrations/composite-ai/index.js.map +1 -1
  209. package/dist/integrations/composite-ai/outline-sanitize.d.ts +48 -0
  210. package/dist/integrations/composite-ai/outline-sanitize.js +175 -0
  211. package/dist/integrations/composite-ai/outline-sanitize.js.map +1 -0
  212. package/dist/integrations/composite-ai/split.d.ts +44 -0
  213. package/dist/integrations/composite-ai/split.js +187 -0
  214. package/dist/integrations/composite-ai/split.js.map +1 -0
  215. package/dist/integrations/composite-ai/transfer-transforms.d.ts +27 -0
  216. package/dist/integrations/composite-ai/transfer-transforms.js +153 -0
  217. package/dist/integrations/composite-ai/transfer-transforms.js.map +1 -0
  218. package/dist/integrations/transcript-ai/protocol.d.ts +13 -0
  219. package/dist/integrations/transcript-ai/protocol.js +49 -1
  220. package/dist/integrations/transcript-ai/protocol.js.map +1 -1
  221. package/dist/integrations/transcript-ai/transcript-cleanup.js +1 -1
  222. package/dist/markdown/MarkdownSurface.vue.d.ts +6 -6
  223. package/dist/nuxt/module.d.ts +110 -0
  224. package/dist/presets/compose.d.ts +24 -8
  225. package/dist/presets/compose.js +117 -58
  226. package/dist/presets/compose.js.map +1 -1
  227. package/dist/react/compose.js +6 -2
  228. package/dist/react/compose.js.map +1 -1
  229. package/dist/react/composed-surface.d.ts +9 -0
  230. package/dist/react/composed-surface.js +4 -1
  231. package/dist/react/composed-surface.js.map +1 -1
  232. package/dist/server/ai.d.ts +2 -5
  233. package/dist/server/ai.js.map +1 -1
  234. package/dist/server/handlers/ai.d.ts +7 -78
  235. package/dist/server/handlers/ai.js +30 -94
  236. package/dist/server/handlers/ai.js.map +1 -1
  237. package/dist/server/handlers/editor.d.ts +1 -0
  238. package/dist/server/handlers/index.d.ts +3 -1
  239. package/dist/server/handlers/index.js +3 -1
  240. package/dist/server/index.d.ts +2 -1
  241. package/dist/settings/index.d.ts +8 -0
  242. package/dist/settings/index.js +16 -4
  243. package/dist/settings/index.js.map +1 -1
  244. package/dist/styles/composites.css +32 -0
  245. package/dist/tree/DocumentTree.js +229 -78
  246. package/dist/tree/DocumentTree.js.map +1 -1
  247. package/dist/tree/drop-rules.js +8 -0
  248. package/dist/tree/drop-rules.js.map +1 -1
  249. package/dist/tree/react/DocumentTree.js +152 -31
  250. package/dist/tree/react/DocumentTree.js.map +1 -1
  251. package/dist/tree/tree-host.js +30 -1
  252. package/dist/tree/tree-host.js.map +1 -1
  253. package/dist/tree/tree-items.js +52 -5
  254. package/dist/tree/tree-items.js.map +1 -1
  255. package/dist/tree/tree-model.js +113 -10
  256. package/dist/tree/tree-model.js.map +1 -1
  257. package/dist/tree/tree-rows.js +20 -7
  258. package/dist/tree/tree-rows.js.map +1 -1
  259. package/dist/tree/tree-view-model.d.ts +5 -0
  260. package/dist/tree/tree-view-model.js +13 -0
  261. package/dist/tree/tree-view-model.js.map +1 -1
  262. package/dist/vue/AdvancedEditor.js +6 -0
  263. package/dist/vue/AdvancedEditor.js.map +1 -1
  264. package/dist/vue/AdvancedEditor.vue.d.ts +13 -5
  265. package/dist/vue/SimpleEditor.vue.d.ts +4 -4
  266. package/dist/vue/components/EditorSurface.vue.d.ts +4 -4
  267. package/dist/vue/compose.js +6 -2
  268. package/dist/vue/compose.js.map +1 -1
  269. package/dist/vue/kit/types.d.ts +2 -0
  270. package/package.json +21 -1
package/dist/i18n/de.d.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  //#region src/i18n/de.d.ts
2
2
  /** The German catalog (the default locale) and the source of every message key. */
3
3
  export declare const de: {
4
+ readonly 'transfer.copy': "Kopie einfügen";
5
+ readonly 'transfer.summary': "Zusammenfassung einfügen";
6
+ readonly 'transfer.bullets': "Stichpunkte einfügen";
7
+ readonly 'transfer.summaryTitle': "Zusammenfassung: {title}";
8
+ readonly 'transfer.bulletsTitle': "Stichpunkte: {title}";
9
+ readonly 'transfer.refused': "Hier lässt sich der Baustein nicht einfügen";
10
+ readonly 'transfer.selfDrop': "Ein Baustein lässt sich nicht auf sich selbst ablegen";
11
+ readonly 'transfer.running': "{title} wird erstellt…";
12
+ readonly 'transfer.done': "{title} eingefügt";
13
+ readonly 'transfer.menu.title': "Einfügen als …";
4
14
  readonly 'palette.title': "Befehle";
5
15
  readonly 'palette.description': "Befehle des Editors suchen und ausführen";
6
16
  readonly 'palette.placeholder': "Befehl suchen …";
@@ -48,6 +58,22 @@ export declare const de: {
48
58
  readonly 'integrations.compositeSummary.gone.title': "Baustein nicht mehr gefunden";
49
59
  readonly 'integrations.compositeSummary.gone.description': "Die Zusammenfassung wurde nicht übernommen.";
50
60
  readonly 'integrations.compositeSummary.done': "Zusammenfassung erstellt";
61
+ readonly 'integrations.compositeSplit.ai.children': "Mit KI in Unter-Bausteine teilen";
62
+ readonly 'integrations.compositeSplit.ai.siblings': "Mit KI in Bausteine teilen";
63
+ readonly 'integrations.compositeSplit.changed': "Die KI hat den Text verändert, nichts wurde geteilt";
64
+ readonly 'integrations.compositeSplit.running': "Baustein wird geteilt…";
65
+ readonly 'integrations.compositeSplit.failed': "Teilen fehlgeschlagen";
66
+ readonly 'integrations.compositeSplit.notPossible': "Dieser Baustein lässt sich so nicht teilen";
67
+ readonly 'integrations.compositeSplit.tooLong': "Der Text ist zu lang für die KI-Teilung";
68
+ readonly 'integrations.compositeSplit.gone': "Der Baustein wurde währenddessen geändert, nichts wurde geteilt";
69
+ readonly 'integrations.outlineSanitize.label': "Gliederung bereinigen (KI)";
70
+ readonly 'integrations.outlineSanitize.none': "Das Dokument enthält keine Überschriften";
71
+ readonly 'integrations.outlineSanitize.invalid': "Die Antwort der KI war unbrauchbar, nichts wurde geändert";
72
+ readonly 'integrations.outlineSanitize.running': "Gliederung wird bereinigt…";
73
+ readonly 'integrations.outlineSanitize.done': "Gliederung bereinigt";
74
+ readonly 'integrations.outlineSanitize.failed': "Gliederung bereinigen fehlgeschlagen";
75
+ readonly 'integrations.outlineSanitize.tooLong': "Die Gliederung ist zu lang für die KI";
76
+ readonly 'integrations.outlineSanitize.gone': "Das Dokument wurde währenddessen geändert, nichts wurde geändert";
51
77
  readonly 'integrations.rendition.action': "Lesefassung erzeugen";
52
78
  readonly 'integrations.rendition.regenerate': "Neu erzeugen (ersetzen)";
53
79
  readonly 'integrations.rendition.running': "Lesefassung wird erzeugt…";
@@ -144,6 +170,11 @@ export declare const de: {
144
170
  readonly 'tree.filterText.placeholder': "Titel filtern";
145
171
  readonly 'tree.filterText.clear': "Titelfilter löschen";
146
172
  readonly 'tree.noMatches': "Keine Treffer";
173
+ readonly 'tree.basketFilter.label': "Nach Korb filtern";
174
+ readonly 'tree.basketFilter.reset': "Korbfilter zurücksetzen";
175
+ readonly 'tree.focus.root': "Dokument";
176
+ readonly 'tree.focus.enter': "Fokussieren";
177
+ readonly 'tree.focus.leave': "Fokus aufheben";
147
178
  readonly 'tree.root.folders': "Ordner";
148
179
  readonly 'tree.root.file': "Datei als Wurzel";
149
180
  readonly 'tree.root.unavailable': "Nur mit einer geöffneten Baustein-Datei (Einstellung „Gliederung: Bausteine“).";
@@ -155,6 +186,7 @@ export declare const de: {
155
186
  readonly 'tree.drop.folderInFolder': "Der Ordner liegt schon in diesem Ordner.";
156
187
  readonly 'tree.drop.blocksOnlyInDocument': "Bausteine lassen sich nur im geöffneten Dokument verschieben.";
157
188
  readonly 'tree.drop.noBlocksHere': "Hier lassen sich keine Bausteine ablegen.";
189
+ readonly 'tree.drop.noTransfer': "Dieser Editor nimmt keine Bausteine von außen an.";
158
190
  readonly 'tree.drop.blockWithoutId': "Dieser Baustein hat noch keine ID und lässt sich nicht als Ziel ansprechen.";
159
191
  readonly 'tree.drop.editorClosed': "Der Editor ist nicht mehr geöffnet.";
160
192
  readonly 'themes.tab': "Darstellung";
@@ -298,6 +330,11 @@ export declare const de: {
298
330
  readonly 'composites.slash.flattenAll': "Bausteine in Überschriften (alle Ebenen)";
299
331
  readonly 'composites.blockAction.export': "Als Markdown exportieren";
300
332
  readonly 'composites.blockAction.bibtex': "Literaturangabe exportieren (BibTeX)";
333
+ readonly 'composites.split.here': "Baustein hier teilen";
334
+ readonly 'composites.split.children': "In Unter-Bausteine teilen";
335
+ readonly 'composites.split.lengthChildren': "Nach Länge in Unter-Bausteine teilen";
336
+ readonly 'composites.split.lengthSiblings': "Nach Länge in Bausteine teilen";
337
+ readonly 'settings.editing.splitTargetChars': "Zielgröße beim Teilen (Zeichen)";
301
338
  readonly 'composites.toolbar.toKind': "In Baustein umwandeln";
302
339
  readonly 'composites.toolbar.structure': "Gliederung umwandeln";
303
340
  readonly 'composites.menu.kindHeading': "Baustein";
@@ -334,6 +371,7 @@ export declare const de: {
334
371
  readonly 'composites.reference.backlinks': "Verweise";
335
372
  readonly 'composites.derivation.badge': "abgeleitet";
336
373
  readonly 'composites.derivation.stale': "Quelle geändert";
374
+ readonly 'composites.derivation.foreign': "aus anderem Dokument";
337
375
  readonly 'composites.derivation.edited': "bearbeitet";
338
376
  readonly 'composites.derivation.expand': "Abgeleiteten Inhalt aufklappen";
339
377
  readonly 'composites.derivation.collapse': "Abgeleiteten Inhalt zuklappen";
@@ -428,6 +466,19 @@ export declare const de: {
428
466
  readonly 'composites.move.targetNotBlock': "Das Ziel ist kein Baustein.";
429
467
  readonly 'composites.move.intoSelf': "Ein Block kann nicht in sich selbst verschoben werden.";
430
468
  readonly 'composites.move.intoOwn': "Ein Block kann nicht in einen Baustein verschoben werden, den er selbst enthält.";
469
+ readonly 'composites.basket.label': "Korb";
470
+ readonly 'composites.basket.none': "Kein Korb";
471
+ readonly 'composites.basket.red': "Rot";
472
+ readonly 'composites.basket.orange': "Orange";
473
+ readonly 'composites.basket.yellow': "Gelb";
474
+ readonly 'composites.basket.green': "Grün";
475
+ readonly 'composites.basket.blue': "Blau";
476
+ readonly 'composites.titleHidden.hide': "Titel ausblenden";
477
+ readonly 'composites.titleHidden.show': "Titel einblenden";
478
+ readonly 'composites.focus.action': "Fokussieren";
479
+ readonly 'composites.focus.leave': "Fokus aufheben";
480
+ readonly 'composites.focus.chip': "Fokus: {title}";
481
+ readonly 'composites.focus.release': "Aufheben";
431
482
  readonly 'authors.tab': "Autorenfarben";
432
483
  readonly 'authors.title': "Autorenfarben";
433
484
  readonly 'authors.switch.label': "Text nach Autor einfärben";
@@ -489,6 +540,10 @@ export declare const de: {
489
540
  readonly 'ai.task.continue.label': "Weiterschreiben";
490
541
  readonly 'ai.task.fillBlock.label': "Baustein füllen";
491
542
  readonly 'ai.task.fillBlock.promptLabel': "Hinweis (optional)";
543
+ readonly 'ai.task.splitBlock.label': "Baustein gliedern";
544
+ readonly 'ai.task.outlineSanitize.label': "Gliederung bereinigen";
545
+ readonly 'ai.task.transferSummary.label': "Zusammenfassung (Übertragen)";
546
+ readonly 'ai.task.transferBullets.label': "Stichpunkte (Übertragen)";
492
547
  readonly 'ai.slot.complete.label': "Vorschläge beim Tippen";
493
548
  readonly 'ai.slot.complete.description': "Schnelles Modell; muss Assistant-Prefill unterstützen.";
494
549
  readonly 'ai.slot.rewrite.label': "Text im Block";
package/dist/i18n/de.js CHANGED
@@ -16,6 +16,7 @@ import { de as de$15 } from "./de/mentions.js";
16
16
  import { de as de$16 } from "./de/integrations.js";
17
17
  import { de as de$17 } from "./de/markdown.js";
18
18
  import { de as de$18 } from "./de/palette.js";
19
+ import { de as de$19 } from "./de/transfer.js";
19
20
  //#region src/i18n/de.ts
20
21
  /** The German catalog (the default locale) and the source of every message key. */
21
22
  const de = {
@@ -36,7 +37,8 @@ const de = {
36
37
  ...de$15,
37
38
  ...de$16,
38
39
  ...de$17,
39
- ...de$18
40
+ ...de$18,
41
+ ...de$19
40
42
  };
41
43
  //#endregion
42
44
  export { de };
@@ -1 +1 @@
1
- {"version":3,"file":"de.js","names":["common","toolbar","block","settings","ai","comments","authors","composites","media","themes","tree","transcript","tables","outline","mentions","integrations","markdown","palette"],"sources":["../../src/i18n/de.ts"],"sourcesContent":["import { de as common } from './de/common'\nimport { de as toolbar } from './de/toolbar'\nimport { de as block } from './de/block'\nimport { de as settings } from './de/settings'\nimport { de as ai } from './de/ai'\nimport { de as comments } from './de/comments'\nimport { de as authors } from './de/authors'\nimport { de as composites } from './de/composites'\nimport { de as media } from './de/media'\nimport { de as themes } from './de/themes'\nimport { de as tree } from './de/tree'\nimport { de as transcript } from './de/transcript'\nimport { de as tables } from './de/tables'\nimport { de as outline } from './de/outline'\nimport { de as mentions } from './de/mentions'\nimport { de as integrations } from './de/integrations'\nimport { de as markdown } from './de/markdown'\nimport { de as palette } from './de/palette'\n\n/** The German catalog (the default locale) and the source of every message key. */\nexport const de = {\n ...common,\n ...toolbar,\n ...block,\n ...settings,\n ...ai,\n ...comments,\n ...authors,\n ...composites,\n ...media,\n ...themes,\n ...tree,\n ...transcript,\n ...tables,\n ...outline,\n ...mentions,\n ...integrations,\n ...markdown,\n ...palette,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA,MAAa,KAAK;CAChB,GAAGA;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;AACL"}
1
+ {"version":3,"file":"de.js","names":["common","toolbar","block","settings","ai","comments","authors","composites","media","themes","tree","transcript","tables","outline","mentions","integrations","markdown","palette","transfer"],"sources":["../../src/i18n/de.ts"],"sourcesContent":["import { de as common } from './de/common'\nimport { de as toolbar } from './de/toolbar'\nimport { de as block } from './de/block'\nimport { de as settings } from './de/settings'\nimport { de as ai } from './de/ai'\nimport { de as comments } from './de/comments'\nimport { de as authors } from './de/authors'\nimport { de as composites } from './de/composites'\nimport { de as media } from './de/media'\nimport { de as themes } from './de/themes'\nimport { de as tree } from './de/tree'\nimport { de as transcript } from './de/transcript'\nimport { de as tables } from './de/tables'\nimport { de as outline } from './de/outline'\nimport { de as mentions } from './de/mentions'\nimport { de as integrations } from './de/integrations'\nimport { de as markdown } from './de/markdown'\nimport { de as palette } from './de/palette'\nimport { de as transfer } from './de/transfer'\n\n/** The German catalog (the default locale) and the source of every message key. */\nexport const de = {\n ...common,\n ...toolbar,\n ...block,\n ...settings,\n ...ai,\n ...comments,\n ...authors,\n ...composites,\n ...media,\n ...themes,\n ...tree,\n ...transcript,\n ...tables,\n ...outline,\n ...mentions,\n ...integrations,\n ...markdown,\n ...palette,\n ...transfer,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,KAAK;CAChB,GAAGA;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;AACL"}
@@ -19,6 +19,10 @@ const en = {
19
19
  "ai.task.continue.label": "Continue writing",
20
20
  "ai.task.fillBlock.label": "Fill block",
21
21
  "ai.task.fillBlock.promptLabel": "Hint (optional)",
22
+ "ai.task.splitBlock.label": "Split block",
23
+ "ai.task.outlineSanitize.label": "Clean up outline",
24
+ "ai.task.transferSummary.label": "Summary (transfer)",
25
+ "ai.task.transferBullets.label": "Bullet points (transfer)",
22
26
  "ai.slot.complete.label": "Suggestions while typing",
23
27
  "ai.slot.complete.description": "Fast model; must support assistant prefill.",
24
28
  "ai.slot.rewrite.label": "Text in a block",
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","names":[],"sources":["../../../src/i18n/en/ai.ts"],"sourcesContent":["import type { de } from '../de/ai'\n\nexport const en: { [K in keyof typeof de]: string } = {\n // Tasks (menus, sidebar chips, prompt hints, result headings)\n 'ai.task.reformulate.label': 'Rephrase',\n 'ai.task.reformulate.promptLabel': 'Hint (optional), e.g. “shorter” or “more formal”',\n 'ai.task.generate.label': 'Generate text',\n 'ai.task.generate.promptLabel': 'What should be written?',\n 'ai.task.transcript.promptLabel': 'Hint (optional), e.g. “decisions only” or “in German”',\n 'ai.task.transcriptSummary.heading': 'Summary',\n 'ai.task.transcriptMinutes.heading': 'Minutes',\n 'ai.task.transcriptActionItems.heading': 'Action items',\n 'ai.task.fix.label': 'Fix',\n 'ai.task.shorter.label': 'Shorter',\n 'ai.task.formal.label': 'More formal',\n 'ai.task.casual.label': 'More casual',\n 'ai.task.translate.label': 'Translate',\n 'ai.task.summarize.label': 'Summarize',\n 'ai.task.custom.label': 'Custom instruction',\n 'ai.task.custom.promptLabel': 'Instruction for the AI, e.g. “as a bullet list”',\n 'ai.task.continue.label': 'Continue writing',\n 'ai.task.fillBlock.label': 'Fill block',\n 'ai.task.fillBlock.promptLabel': 'Hint (optional)',\n\n // Model slots and target languages\n 'ai.slot.complete.label': 'Suggestions while typing',\n 'ai.slot.complete.description': 'Fast model; must support assistant prefill.',\n 'ai.slot.rewrite.label': 'Text in a block',\n 'ai.slot.rewrite.description': 'Rephrase, fix, translate, summarize, clean up transcript.',\n 'ai.slot.generate.label': 'Generate blocks & chat',\n 'ai.slot.generate.description': 'New blocks, minutes, chat agent (needs tool calling).',\n 'ai.slot.ariaLabel': 'Model for “{slot}”',\n 'ai.slot.manage': 'Manage models…',\n 'ai.language.de': 'German',\n 'ai.language.en': 'English',\n 'ai.language.fr': 'French',\n 'ai.language.es': 'Spanish',\n 'ai.language.it': 'Italian',\n\n // Feature entry points (toolbar, block action, slash command, settings tab)\n 'ai.tab': 'AI',\n 'ai.toolbar.sidebar': 'AI sidebar',\n 'ai.toolbar.autocomplete': 'AI suggestions while typing (Tab accepts, Esc dismisses)',\n 'ai.blockAction.label': 'Edit with AI',\n 'ai.slash.label': 'AI',\n\n // Notices\n 'ai.rateLimited': 'Too many AI requests, please wait a moment',\n 'ai.sse.unknownError': 'Unknown error',\n 'ai.sse.httpError': 'Error {status}',\n 'ai.sse.aborted': 'Connection interrupted',\n 'ai.chat.emptyScope': 'The selection contains no editable blocks.',\n 'ai.apply.missing.title': 'Text passage not found anymore',\n 'ai.apply.missing.description': 'The result was not applied.',\n 'ai.apply.empty.title': 'Empty result',\n 'ai.apply.empty.description': 'The result was not applied.',\n 'ai.apply.unchanged.title': 'No changes',\n 'ai.apply.unchanged.description': 'The result matches the existing text.',\n 'ai.apply.overlap.title': 'Text passage is already under review',\n 'ai.apply.overlap.description': 'Accept or discard the open AI changes first.',\n\n // In-document review\n 'ai.review.accept': 'Accept',\n 'ai.review.discard': 'Discard',\n 'ai.review.acceptAll': 'Accept all',\n 'ai.review.rejectAll': 'Discard all',\n 'ai.review.barLabel': 'Review AI changes',\n 'ai.review.count.one': '1 AI change',\n 'ai.review.count.other': '{n} AI changes',\n 'ai.review.previous': 'Previous change',\n 'ai.review.next': 'Next change',\n 'ai.review.invalid.one': 'AI change discarded',\n 'ai.review.invalid.other': '{n} AI changes discarded',\n 'ai.review.invalid.description': 'The original text has been changed in the meantime.',\n\n // Selection / caret menu\n 'ai.menu.trigger': 'AI',\n 'ai.menu.model': 'Model',\n 'ai.menu.targetLanguage': 'Target language',\n 'ai.menu.sendInstruction': 'Send instruction',\n 'ai.menu.requestWithLanguage': '{task} – {language}',\n 'ai.menu.cancel': 'Cancel',\n 'ai.menu.discard': 'Discard',\n 'ai.menu.retry': 'Try again',\n 'ai.menu.insert': 'Insert',\n 'ai.menu.insertBelow': 'Insert below',\n 'ai.menu.replace': 'Replace',\n 'ai.menu.missing.selection': 'The selected text was deleted.',\n 'ai.menu.missing.line': 'The line was deleted.',\n 'ai.menu.missing.insert': 'The result was not inserted.',\n\n // Sidebar\n 'ai.sidebar.label': 'AI sidebar',\n 'ai.sidebar.title': 'AI',\n 'ai.sidebar.newConversation': 'New conversation',\n 'ai.sidebar.close': 'Close',\n 'ai.sidebar.selection.one': 'Selection: {n} block',\n 'ai.sidebar.selection.other': 'Selection: {n} blocks',\n 'ai.sidebar.selection.title': 'Changes only affect the selected blocks',\n 'ai.sidebar.selection.clear': 'Clear selection',\n 'ai.sidebar.intro': 'Ask a question about the content, e.g. “Who said the budget isn’t enough?”, or ask for a change, e.g. “Shorten section 2”. With text selected, changes only affect the selected blocks. The quick actions below generate new blocks, e.g. minutes.',\n 'ai.sidebar.stop': 'Stop',\n 'ai.sidebar.discard': 'Discard',\n 'ai.sidebar.apply': 'Accept',\n 'ai.sidebar.generateGroup': 'Generate blocks',\n 'ai.sidebar.generate': 'Generate',\n 'ai.sidebar.placeholder': 'Question or change request…',\n 'ai.sidebar.messageLabel': 'Message about the document',\n 'ai.sidebar.send': 'Send',\n 'ai.sidebar.revealMissing': 'Text passage no longer in the document',\n\n // Chat edit operations\n 'ai.op.addAtStart': 'Insert at the start of the document',\n 'ai.op.addAfter': 'Insert after “{snippet}”',\n 'ai.op.convert': 'Convert to {target}: “{snippet}”',\n 'ai.op.update': 'Change: “{snippet}”',\n 'ai.op.delete': 'Delete: “{snippet}”',\n 'ai.op.accept': 'Accept',\n 'ai.op.discard': 'Discard',\n 'ai.op.problems.one': '1 suggestion discarded',\n 'ai.op.problems.other': '{n} suggestions discarded',\n 'ai.op.problems.description': 'The AI referred to blocks or block types that do not exist or that are outside the selection.',\n 'ai.op.invalid.title': 'Change no longer applicable',\n 'ai.op.invalid.description': 'The text has been changed differently in the meantime.',\n 'ai.op.snippet.documentStart': 'Start of document',\n 'ai.op.snippet.missing': 'Block no longer exists',\n 'ai.op.snippet.emptyBlock': 'Empty block',\n 'ai.op.snippet.image': 'Image',\n 'ai.op.snippet.audio': 'Audio',\n 'ai.op.snippet.video': 'Video',\n 'ai.op.snippet.file': 'File',\n 'ai.opBadge.pending': 'Open',\n 'ai.opBadge.accepted': 'Accepted',\n 'ai.opBadge.rejected': 'Rejected',\n 'ai.opBadge.partial': 'Partial',\n 'ai.opBadge.invalid': 'Expired',\n 'ai.opBadge.unchanged': 'No change',\n 'ai.opBadge.missing': 'Block missing',\n 'ai.opBadge.stale': 'Block deleted',\n 'ai.opBadge.overlap': 'Spot occupied',\n 'ai.opBadge.empty': 'Empty',\n 'ai.opBadge.blocked': 'Outside the selection',\n 'ai.opTitle.pending': 'Suggestion not decided yet',\n 'ai.opTitle.accepted': 'Suggestion accepted',\n 'ai.opTitle.rejected': 'Suggestion rejected',\n 'ai.opTitle.partial': 'Suggestion partially accepted',\n 'ai.opTitle.invalid': 'Suggestion expired because the text has been changed differently in the meantime',\n 'ai.opTitle.unchanged': 'Suggestion not shown because it matches the existing text',\n 'ai.opTitle.missing': 'Suggestion not shown because the block no longer exists',\n 'ai.opTitle.stale': 'Suggestion not shown: the block was deleted in the meantime',\n 'ai.opTitle.overlap': 'Suggestion not shown because other AI changes are still open at that spot',\n 'ai.opTitle.empty': 'Suggestion not shown because its content is empty',\n 'ai.opTitle.blocked': 'Suggestion blocked because it lies outside the permitted area',\n\n // Settings tab\n 'ai.settings.writing.title': 'While writing',\n 'ai.settings.autocomplete.label': 'AI suggestions while typing',\n 'ai.settings.autocomplete.description': 'Grey text after the cursor; Tab accepts, Esc dismisses.',\n 'ai.settings.language.label': 'Target language for translating',\n 'ai.settings.language.description': 'Preselected; can be changed per call in the AI menu.',\n 'ai.settings.slots.title': 'Model per task',\n 'ai.settings.slots.description': 'Which profile the individual AI functions use.',\n 'ai.settings.profiles.title': 'Model profiles',\n 'ai.settings.profiles.description': 'Server presets are preconfigured. Your own profiles are stored in this browser only; their API key is sent with every request and not stored on the server.',\n 'ai.profiles.server': 'From the server',\n 'ai.profiles.noPresets': 'No presets loaded.',\n 'ai.profiles.serverBadge': 'Server',\n 'ai.profiles.own': 'Own profiles',\n 'ai.profiles.add': 'Add profile',\n 'ai.profiles.edit': 'Edit',\n 'ai.profiles.delete': 'Delete',\n 'ai.profiles.name': 'Name',\n 'ai.profiles.namePlaceholder': 'e.g. Local',\n 'ai.profiles.endpoint': 'Endpoint',\n 'ai.profiles.endpointHelp': 'OpenAI-compatible base URL.',\n 'ai.profiles.endpointPlaceholder': 'https://openrouter.ai/api/v1',\n 'ai.profiles.model': 'Model',\n 'ai.profiles.modelPlaceholder': 'google/gemini-2.5-flash',\n 'ai.profiles.apiKey': 'API key',\n 'ai.profiles.testOk': 'Connection works',\n 'ai.profiles.test': 'Test',\n 'ai.profiles.cancel': 'Cancel',\n 'ai.profiles.save': 'Save',\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","names":[],"sources":["../../../src/i18n/en/ai.ts"],"sourcesContent":["import type { de } from '../de/ai'\n\nexport const en: { [K in keyof typeof de]: string } = {\n // Tasks (menus, sidebar chips, prompt hints, result headings)\n 'ai.task.reformulate.label': 'Rephrase',\n 'ai.task.reformulate.promptLabel': 'Hint (optional), e.g. “shorter” or “more formal”',\n 'ai.task.generate.label': 'Generate text',\n 'ai.task.generate.promptLabel': 'What should be written?',\n 'ai.task.transcript.promptLabel': 'Hint (optional), e.g. “decisions only” or “in German”',\n 'ai.task.transcriptSummary.heading': 'Summary',\n 'ai.task.transcriptMinutes.heading': 'Minutes',\n 'ai.task.transcriptActionItems.heading': 'Action items',\n 'ai.task.fix.label': 'Fix',\n 'ai.task.shorter.label': 'Shorter',\n 'ai.task.formal.label': 'More formal',\n 'ai.task.casual.label': 'More casual',\n 'ai.task.translate.label': 'Translate',\n 'ai.task.summarize.label': 'Summarize',\n 'ai.task.custom.label': 'Custom instruction',\n 'ai.task.custom.promptLabel': 'Instruction for the AI, e.g. “as a bullet list”',\n 'ai.task.continue.label': 'Continue writing',\n 'ai.task.fillBlock.label': 'Fill block',\n 'ai.task.fillBlock.promptLabel': 'Hint (optional)',\n 'ai.task.splitBlock.label': 'Split block',\n 'ai.task.outlineSanitize.label': 'Clean up outline',\n 'ai.task.transferSummary.label': 'Summary (transfer)',\n 'ai.task.transferBullets.label': 'Bullet points (transfer)',\n\n // Model slots and target languages\n 'ai.slot.complete.label': 'Suggestions while typing',\n 'ai.slot.complete.description': 'Fast model; must support assistant prefill.',\n 'ai.slot.rewrite.label': 'Text in a block',\n 'ai.slot.rewrite.description': 'Rephrase, fix, translate, summarize, clean up transcript.',\n 'ai.slot.generate.label': 'Generate blocks & chat',\n 'ai.slot.generate.description': 'New blocks, minutes, chat agent (needs tool calling).',\n 'ai.slot.ariaLabel': 'Model for “{slot}”',\n 'ai.slot.manage': 'Manage models…',\n 'ai.language.de': 'German',\n 'ai.language.en': 'English',\n 'ai.language.fr': 'French',\n 'ai.language.es': 'Spanish',\n 'ai.language.it': 'Italian',\n\n // Feature entry points (toolbar, block action, slash command, settings tab)\n 'ai.tab': 'AI',\n 'ai.toolbar.sidebar': 'AI sidebar',\n 'ai.toolbar.autocomplete': 'AI suggestions while typing (Tab accepts, Esc dismisses)',\n 'ai.blockAction.label': 'Edit with AI',\n 'ai.slash.label': 'AI',\n\n // Notices\n 'ai.rateLimited': 'Too many AI requests, please wait a moment',\n 'ai.sse.unknownError': 'Unknown error',\n 'ai.sse.httpError': 'Error {status}',\n 'ai.sse.aborted': 'Connection interrupted',\n 'ai.chat.emptyScope': 'The selection contains no editable blocks.',\n 'ai.apply.missing.title': 'Text passage not found anymore',\n 'ai.apply.missing.description': 'The result was not applied.',\n 'ai.apply.empty.title': 'Empty result',\n 'ai.apply.empty.description': 'The result was not applied.',\n 'ai.apply.unchanged.title': 'No changes',\n 'ai.apply.unchanged.description': 'The result matches the existing text.',\n 'ai.apply.overlap.title': 'Text passage is already under review',\n 'ai.apply.overlap.description': 'Accept or discard the open AI changes first.',\n\n // In-document review\n 'ai.review.accept': 'Accept',\n 'ai.review.discard': 'Discard',\n 'ai.review.acceptAll': 'Accept all',\n 'ai.review.rejectAll': 'Discard all',\n 'ai.review.barLabel': 'Review AI changes',\n 'ai.review.count.one': '1 AI change',\n 'ai.review.count.other': '{n} AI changes',\n 'ai.review.previous': 'Previous change',\n 'ai.review.next': 'Next change',\n 'ai.review.invalid.one': 'AI change discarded',\n 'ai.review.invalid.other': '{n} AI changes discarded',\n 'ai.review.invalid.description': 'The original text has been changed in the meantime.',\n\n // Selection / caret menu\n 'ai.menu.trigger': 'AI',\n 'ai.menu.model': 'Model',\n 'ai.menu.targetLanguage': 'Target language',\n 'ai.menu.sendInstruction': 'Send instruction',\n 'ai.menu.requestWithLanguage': '{task} – {language}',\n 'ai.menu.cancel': 'Cancel',\n 'ai.menu.discard': 'Discard',\n 'ai.menu.retry': 'Try again',\n 'ai.menu.insert': 'Insert',\n 'ai.menu.insertBelow': 'Insert below',\n 'ai.menu.replace': 'Replace',\n 'ai.menu.missing.selection': 'The selected text was deleted.',\n 'ai.menu.missing.line': 'The line was deleted.',\n 'ai.menu.missing.insert': 'The result was not inserted.',\n\n // Sidebar\n 'ai.sidebar.label': 'AI sidebar',\n 'ai.sidebar.title': 'AI',\n 'ai.sidebar.newConversation': 'New conversation',\n 'ai.sidebar.close': 'Close',\n 'ai.sidebar.selection.one': 'Selection: {n} block',\n 'ai.sidebar.selection.other': 'Selection: {n} blocks',\n 'ai.sidebar.selection.title': 'Changes only affect the selected blocks',\n 'ai.sidebar.selection.clear': 'Clear selection',\n 'ai.sidebar.intro': 'Ask a question about the content, e.g. “Who said the budget isn’t enough?”, or ask for a change, e.g. “Shorten section 2”. With text selected, changes only affect the selected blocks. The quick actions below generate new blocks, e.g. minutes.',\n 'ai.sidebar.stop': 'Stop',\n 'ai.sidebar.discard': 'Discard',\n 'ai.sidebar.apply': 'Accept',\n 'ai.sidebar.generateGroup': 'Generate blocks',\n 'ai.sidebar.generate': 'Generate',\n 'ai.sidebar.placeholder': 'Question or change request…',\n 'ai.sidebar.messageLabel': 'Message about the document',\n 'ai.sidebar.send': 'Send',\n 'ai.sidebar.revealMissing': 'Text passage no longer in the document',\n\n // Chat edit operations\n 'ai.op.addAtStart': 'Insert at the start of the document',\n 'ai.op.addAfter': 'Insert after “{snippet}”',\n 'ai.op.convert': 'Convert to {target}: “{snippet}”',\n 'ai.op.update': 'Change: “{snippet}”',\n 'ai.op.delete': 'Delete: “{snippet}”',\n 'ai.op.accept': 'Accept',\n 'ai.op.discard': 'Discard',\n 'ai.op.problems.one': '1 suggestion discarded',\n 'ai.op.problems.other': '{n} suggestions discarded',\n 'ai.op.problems.description': 'The AI referred to blocks or block types that do not exist or that are outside the selection.',\n 'ai.op.invalid.title': 'Change no longer applicable',\n 'ai.op.invalid.description': 'The text has been changed differently in the meantime.',\n 'ai.op.snippet.documentStart': 'Start of document',\n 'ai.op.snippet.missing': 'Block no longer exists',\n 'ai.op.snippet.emptyBlock': 'Empty block',\n 'ai.op.snippet.image': 'Image',\n 'ai.op.snippet.audio': 'Audio',\n 'ai.op.snippet.video': 'Video',\n 'ai.op.snippet.file': 'File',\n 'ai.opBadge.pending': 'Open',\n 'ai.opBadge.accepted': 'Accepted',\n 'ai.opBadge.rejected': 'Rejected',\n 'ai.opBadge.partial': 'Partial',\n 'ai.opBadge.invalid': 'Expired',\n 'ai.opBadge.unchanged': 'No change',\n 'ai.opBadge.missing': 'Block missing',\n 'ai.opBadge.stale': 'Block deleted',\n 'ai.opBadge.overlap': 'Spot occupied',\n 'ai.opBadge.empty': 'Empty',\n 'ai.opBadge.blocked': 'Outside the selection',\n 'ai.opTitle.pending': 'Suggestion not decided yet',\n 'ai.opTitle.accepted': 'Suggestion accepted',\n 'ai.opTitle.rejected': 'Suggestion rejected',\n 'ai.opTitle.partial': 'Suggestion partially accepted',\n 'ai.opTitle.invalid': 'Suggestion expired because the text has been changed differently in the meantime',\n 'ai.opTitle.unchanged': 'Suggestion not shown because it matches the existing text',\n 'ai.opTitle.missing': 'Suggestion not shown because the block no longer exists',\n 'ai.opTitle.stale': 'Suggestion not shown: the block was deleted in the meantime',\n 'ai.opTitle.overlap': 'Suggestion not shown because other AI changes are still open at that spot',\n 'ai.opTitle.empty': 'Suggestion not shown because its content is empty',\n 'ai.opTitle.blocked': 'Suggestion blocked because it lies outside the permitted area',\n\n // Settings tab\n 'ai.settings.writing.title': 'While writing',\n 'ai.settings.autocomplete.label': 'AI suggestions while typing',\n 'ai.settings.autocomplete.description': 'Grey text after the cursor; Tab accepts, Esc dismisses.',\n 'ai.settings.language.label': 'Target language for translating',\n 'ai.settings.language.description': 'Preselected; can be changed per call in the AI menu.',\n 'ai.settings.slots.title': 'Model per task',\n 'ai.settings.slots.description': 'Which profile the individual AI functions use.',\n 'ai.settings.profiles.title': 'Model profiles',\n 'ai.settings.profiles.description': 'Server presets are preconfigured. Your own profiles are stored in this browser only; their API key is sent with every request and not stored on the server.',\n 'ai.profiles.server': 'From the server',\n 'ai.profiles.noPresets': 'No presets loaded.',\n 'ai.profiles.serverBadge': 'Server',\n 'ai.profiles.own': 'Own profiles',\n 'ai.profiles.add': 'Add profile',\n 'ai.profiles.edit': 'Edit',\n 'ai.profiles.delete': 'Delete',\n 'ai.profiles.name': 'Name',\n 'ai.profiles.namePlaceholder': 'e.g. Local',\n 'ai.profiles.endpoint': 'Endpoint',\n 'ai.profiles.endpointHelp': 'OpenAI-compatible base URL.',\n 'ai.profiles.endpointPlaceholder': 'https://openrouter.ai/api/v1',\n 'ai.profiles.model': 'Model',\n 'ai.profiles.modelPlaceholder': 'google/gemini-2.5-flash',\n 'ai.profiles.apiKey': 'API key',\n 'ai.profiles.testOk': 'Connection works',\n 'ai.profiles.test': 'Test',\n 'ai.profiles.cancel': 'Cancel',\n 'ai.profiles.save': 'Save',\n}\n"],"mappings":"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"}
@@ -103,6 +103,11 @@ const en = {
103
103
  "composites.slash.flattenAll": "Building blocks to headings (all levels)",
104
104
  "composites.blockAction.export": "Export as Markdown",
105
105
  "composites.blockAction.bibtex": "Export reference (BibTeX)",
106
+ "composites.split.here": "Split building block here",
107
+ "composites.split.children": "Split into sub-building blocks",
108
+ "composites.split.lengthChildren": "Split by length into sub-building blocks",
109
+ "composites.split.lengthSiblings": "Split by length into building blocks",
110
+ "settings.editing.splitTargetChars": "Target size when splitting (characters)",
106
111
  "composites.toolbar.toKind": "Convert to building block",
107
112
  "composites.toolbar.structure": "Convert structure",
108
113
  "composites.menu.kindHeading": "Building block",
@@ -139,6 +144,7 @@ const en = {
139
144
  "composites.reference.backlinks": "References",
140
145
  "composites.derivation.badge": "derived",
141
146
  "composites.derivation.stale": "Source changed",
147
+ "composites.derivation.foreign": "from another document",
142
148
  "composites.derivation.edited": "edited",
143
149
  "composites.derivation.expand": "Expand derived content",
144
150
  "composites.derivation.collapse": "Collapse derived content",
@@ -232,7 +238,20 @@ const en = {
232
238
  "composites.move.targetGone": "The target no longer exists.",
233
239
  "composites.move.targetNotBlock": "The target is not a building block.",
234
240
  "composites.move.intoSelf": "A block cannot be moved into itself.",
235
- "composites.move.intoOwn": "A block cannot be moved into a building block it contains itself."
241
+ "composites.move.intoOwn": "A block cannot be moved into a building block it contains itself.",
242
+ "composites.basket.label": "Basket",
243
+ "composites.basket.none": "No basket",
244
+ "composites.basket.red": "Red",
245
+ "composites.basket.orange": "Orange",
246
+ "composites.basket.yellow": "Yellow",
247
+ "composites.basket.green": "Green",
248
+ "composites.basket.blue": "Blue",
249
+ "composites.titleHidden.hide": "Hide title",
250
+ "composites.titleHidden.show": "Show title",
251
+ "composites.focus.action": "Focus",
252
+ "composites.focus.leave": "Leave focus",
253
+ "composites.focus.chip": "Focus: {title}",
254
+ "composites.focus.release": "Leave"
236
255
  };
237
256
  //#endregion
238
257
  export { en };
@@ -1 +1 @@
1
- {"version":3,"file":"composites.js","names":[],"sources":["../../../src/i18n/en/composites.ts"],"sourcesContent":["import type { de } from '../de/composites'\n\nexport const en: { [K in keyof typeof de]: string } = {\n 'composites.untitled': '(untitled)',\n\n 'composites.kind.section.label': 'Section',\n 'composites.kind.section.title': 'Heading',\n 'composites.kind.section.description': 'Summary',\n 'composites.kind.task.label': 'Task',\n 'composites.kind.task.title': 'Task',\n 'composites.kind.task.description': 'Description',\n 'composites.kind.task.field.status': 'Status',\n 'composites.kind.task.status.open': 'Open',\n 'composites.kind.task.status.doing': 'In progress',\n 'composites.kind.task.status.done': 'Done',\n 'composites.kind.task.field.due': 'Due',\n 'composites.kind.task.field.assignee': 'Assignee',\n 'composites.kind.note.label': 'Note',\n 'composites.kind.note.title': 'Title',\n 'composites.kind.note.description': 'Short description',\n 'composites.kind.document.label': 'Document',\n 'composites.kind.document.title': 'Document name',\n 'composites.kind.document.description': 'Summary',\n 'composites.kind.document.field.filename': 'File name',\n 'composites.kind.document.field.mimeType': 'Type',\n 'composites.kind.document.field.size': 'Size (bytes)',\n 'composites.kind.document.field.importedAt': 'Imported',\n 'composites.kind.recording.label': 'Recording',\n 'composites.kind.recording.title': 'Recording title',\n 'composites.kind.recording.description': 'Summary',\n 'composites.kind.recording.field.filename': 'File name',\n 'composites.kind.recording.field.mimeType': 'Type',\n 'composites.kind.recording.field.size': 'Size (bytes)',\n 'composites.kind.recording.field.importedAt': 'Imported',\n 'composites.kind.recording.field.recordedAt': 'Recorded on',\n 'composites.kind.recording.field.participants': 'Participants',\n 'composites.kind.recording.field.durationSeconds': 'Duration (seconds)',\n 'composites.kind.paper.label': 'Paper',\n 'composites.kind.paper.title': 'Paper title',\n 'composites.kind.paper.description': 'Summary',\n 'composites.kind.paper.field.filename': 'File name',\n 'composites.kind.paper.field.mimeType': 'Type',\n 'composites.kind.paper.field.size': 'Size (bytes)',\n 'composites.kind.paper.field.importedAt': 'Imported',\n 'composites.kind.paper.field.bib': 'Citation',\n 'composites.kind.paper.field.doi': 'DOI',\n 'composites.kind.book.label': 'Book',\n 'composites.kind.book.title': 'Book title',\n 'composites.kind.book.description': 'Summary',\n 'composites.kind.book.field.filename': 'File name',\n 'composites.kind.book.field.mimeType': 'Type',\n 'composites.kind.book.field.size': 'Size (bytes)',\n 'composites.kind.book.field.importedAt': 'Imported',\n 'composites.kind.book.field.bib': 'Citation',\n 'composites.kind.book.field.isbn': 'ISBN',\n 'composites.kind.figure.label': 'Figure',\n 'composites.kind.figure.title': 'Figure title',\n 'composites.kind.figure.description': 'Image description',\n 'composites.kind.figure.field.filename': 'File name',\n 'composites.kind.figure.field.mimeType': 'Type',\n 'composites.kind.figure.field.size': 'Size (bytes)',\n 'composites.kind.figure.field.importedAt': 'Imported',\n 'composites.kind.figure.field.credit': 'Credit',\n 'composites.kind.rendition.label': 'Rendition',\n 'composites.kind.rendition.title': 'Transcript, full text, description …',\n 'composites.kind.rendition.description': 'Note on its origin',\n 'composites.kind.rendition.field.derivation': 'Origin',\n 'composites.kind.rendition.field.language': 'Language',\n 'composites.bib.type.article-journal': 'Journal article',\n 'composites.bib.type.book': 'Book',\n 'composites.bib.type.chapter': 'Book chapter',\n 'composites.bib.type.paper-conference': 'Conference paper',\n 'composites.bib.type.thesis': 'Thesis',\n 'composites.bib.type.report': 'Report',\n 'composites.bib.type.webpage': 'Web page',\n 'composites.bib.type.article': 'Article',\n 'composites.bib.type.dataset': 'Dataset',\n 'composites.bib.field.type': 'Type',\n 'composites.bib.field.authors': 'Authors',\n 'composites.bib.field.authorsHelp': 'One person per line: Family, Given',\n 'composites.bib.field.year': 'Year',\n 'composites.bib.field.containerTitle': 'Journal / collection',\n 'composites.bib.field.volume': 'Volume',\n 'composites.bib.field.issue': 'Issue',\n 'composites.bib.field.page': 'Pages',\n 'composites.bib.field.publisher': 'Publisher',\n 'composites.bib.field.doi': 'DOI',\n 'composites.bib.field.isbn': 'ISBN',\n 'composites.bib.field.url': 'URL',\n 'composites.bib.field.abstract': 'Abstract',\n 'composites.bib.copyBibtex': 'Copy BibTeX',\n 'composites.bib.copied': 'BibTeX copied',\n 'composites.bib.fetchDoi': 'Fetch DOI',\n 'composites.kind.folder.label': 'Folder',\n 'composites.kind.folder.title': 'Folder name',\n 'composites.kind.folder.description': 'Description',\n 'composites.kind.select': 'Kind of building block',\n\n 'composites.status.none': 'No status',\n 'composites.status.label': 'Status: {status}',\n\n 'composites.tab': 'Editing',\n 'composites.slash.section': 'Section',\n 'composites.slash.group': 'Headings to building blocks',\n 'composites.slash.groupAll': 'Headings to building blocks (nested)',\n 'composites.slash.flatten': 'Building blocks to headings',\n 'composites.slash.flattenAll': 'Building blocks to headings (all levels)',\n 'composites.blockAction.export': 'Export as Markdown',\n 'composites.blockAction.bibtex': 'Export reference (BibTeX)',\n 'composites.toolbar.toKind': 'Convert to building block',\n 'composites.toolbar.structure': 'Convert structure',\n 'composites.menu.kindHeading': 'Building block',\n 'composites.menu.toComposites': 'Headings to building blocks',\n 'composites.menu.toComposites.top': 'Top level only',\n 'composites.menu.toComposites.top.description': 'Only the highest heading level becomes building blocks',\n 'composites.menu.toComposites.all': 'All levels (nested)',\n 'composites.menu.toComposites.all.description': 'Every heading level becomes a nested building block',\n 'composites.menu.toHeadings': 'Building blocks to headings',\n 'composites.menu.toHeadings.top': 'Top level only',\n 'composites.menu.toHeadings.top.description': 'The top building blocks become headings; inner building blocks stay',\n 'composites.menu.toHeadings.all': 'All levels',\n 'composites.menu.toHeadings.all.description': 'Every building block becomes a heading of its level; description, tags and fields as text',\n 'composites.menu.settings': 'Settings…',\n 'composites.menu.preferred': 'Preferred: {mode}',\n 'composites.convert.kind': '{kind} (building block)',\n\n 'composites.chrome.details': 'Kind and details: {kind}',\n 'composites.chrome.detailsDrag': 'Kind and details: {kind} · Drag to move',\n 'composites.tag.remove': 'Remove tag #{tag}',\n 'composites.tag.add': 'Add tag',\n\n 'composites.tags.label': 'Tags',\n 'composites.tags.placeholder': 'Add tags',\n 'composites.tags.create': 'Create #{tag}',\n\n 'composites.details.confirmLost': 'Really change the kind? Switching to “{kind}” discards this information:',\n 'composites.details.confirm': 'Really change the kind?',\n 'composites.details.cancel': 'Cancel',\n 'composites.details.change': 'Change',\n 'composites.details.summary': 'Summary',\n\n // Reference chip (`[@`), locator and backlinks.\n 'composites.reference.insert': 'Reference to a Baustein',\n 'composites.reference.empty': 'No matching Bausteine',\n 'composites.reference.gone': 'Baustein deleted',\n 'composites.reference.locator': 'Locator',\n 'composites.reference.locatorPlaceholder': 'Locator, e.g. p. 12 or 03:14',\n 'composites.reference.backlinks': 'References',\n\n 'composites.derivation.badge': 'derived',\n 'composites.derivation.stale': 'Source changed',\n 'composites.derivation.edited': 'edited',\n 'composites.derivation.expand': 'Expand derived content',\n 'composites.derivation.collapse': 'Collapse derived content',\n 'composites.derivation.method': 'Method',\n 'composites.derivation.model': 'Model',\n 'composites.derivation.createdAt': 'Created',\n 'composites.derivation.openOutput': 'Open original',\n 'composites.derivation.method.transcription': 'Transcription',\n 'composites.derivation.method.pdf-text': 'PDF text',\n 'composites.derivation.method.ocr': 'Text recognition (OCR)',\n 'composites.derivation.method.description': 'Image description',\n 'composites.derivation.method.bibliography': 'Bibliographic data',\n 'composites.derivation.method.ai': 'AI derivation',\n\n 'composites.summary.placeholder': 'Short summary of the building block',\n 'composites.summary.label': 'Summary',\n 'composites.summary.none': 'No summary',\n 'composites.summary.formatted': 'Contains formatting or mentions and can only be edited in the text.',\n 'composites.field.choose': 'Choose {field}',\n 'composites.field.none': 'None',\n\n 'composites.inspector.label': 'Properties',\n 'composites.inspector.document': 'Document',\n 'composites.inspector.composites': 'Building blocks',\n 'composites.inspector.summarized': '{n} of {total} summarized',\n 'composites.inspector.none': 'None',\n 'composites.inspector.mentions': 'Mentions',\n 'composites.inspector.composite': 'Building block',\n 'composites.inspector.kind': 'Kind',\n 'composites.inspector.title': 'Title',\n 'composites.inspector.titleHelp': 'Edit in the document',\n 'composites.inspector.untitled': 'Untitled',\n 'composites.inspector.description': 'Description',\n 'composites.inspector.descriptionHelp': 'Contains mentions or tags – edit in the document',\n 'composites.inspector.aiStatus': 'AI status',\n 'composites.inspector.summaryPresent': 'Summary present',\n 'composites.inspector.summaryMissing': 'Summary missing',\n\n 'composites.table.label': 'Building blocks as table',\n 'composites.table.emptyTitle': 'This document has no building blocks yet',\n 'composites.table.emptyText': 'Building blocks divide a document into sections, tasks or notes with a title, summary and tags. Insert one in the text with “/” and it appears here with all its details.',\n 'composites.table.column.composite': 'Building block',\n 'composites.table.column.kind': 'Kind',\n 'composites.table.column.tags': 'Tags',\n 'composites.table.column.summary': 'Summary',\n 'composites.table.search.placeholder': 'Title, summary, tags',\n 'composites.table.search.label': 'Search building blocks',\n 'composites.table.search.clear': 'Clear search',\n 'composites.table.filter.all': 'All',\n 'composites.table.filter.reset': 'Reset filters',\n 'composites.table.filter.byKind': 'Filter by kind',\n 'composites.table.filter.byTag': 'Filter by tag',\n 'composites.table.filter.noMatch': 'No building block matches these filters.',\n 'composites.table.count.one': '{n} of {total} building block',\n 'composites.table.count.other': '{n} of {total} building blocks',\n 'composites.table.noValue': 'No value',\n 'composites.table.noTags': 'No tags',\n 'composites.table.summaryPresent': 'Summary present',\n\n 'composites.settings.structure.title': 'Structure',\n 'composites.settings.structure.legend': 'Preferred structure',\n 'composites.settings.structure.flat.label': 'Headings',\n 'composites.settings.structure.flat.description': 'Toolbar with Heading 1–3. AI texts are structured flat with headings (##, ###); building blocks the AI writes anyway become headings.',\n 'composites.settings.structure.composite.label': 'Building blocks',\n 'composites.settings.structure.composite.description': 'Toolbar without Heading 1–3. AI texts are structured as building blocks, subsections as nested building blocks; headings the AI writes anyway become building blocks.',\n 'composites.settings.scope.legend': '“Convert structure” without a selection applies to',\n 'composites.settings.scope.container.label': 'Enclosing building block',\n 'composites.settings.scope.container.description': 'The building block the cursor is in; the whole document outside of building blocks.',\n 'composites.settings.scope.document.label': 'Whole document',\n 'composites.settings.scope.document.description': 'Always all blocks of the document.',\n 'composites.settings.scope.heading.label': 'Heading or building block at the cursor',\n 'composites.settings.scope.heading.description': 'Converting to building blocks: the heading at or before the cursor with its content. Converting to headings: the innermost building block around the cursor.',\n 'composites.settings.sidebar.title': 'Sidebar',\n 'composites.settings.treeRoot.legend': 'Document tree',\n 'composites.settings.treeRoot.folders.label': 'Nest folders and files',\n 'composites.settings.treeRoot.folders.description': 'The sidebar shows the folders with their files; the open file is an entry within them.',\n 'composites.settings.treeRoot.file.label': 'Root is a single file',\n 'composites.settings.treeRoot.file.description': 'While a building block file is open, the sidebar shows it as the root with its folders and documents. Without an open building block file it shows the folders.',\n 'composites.settings.composites.title': 'Building blocks',\n 'composites.settings.defaultKind.label': 'Default building block',\n 'composites.settings.defaultKind.description': 'Kind of the building blocks the toolbar, “/” commands and “Headings to building blocks” create.',\n 'composites.settings.kindIcon.legend': 'Kind icon',\n 'composites.settings.kindIcon.always.label': 'Always show',\n 'composites.settings.kindIcon.always.description': 'The kind icon is permanently shown in front of the building block.',\n 'composites.settings.kindIcon.hover.label': 'Only on hover',\n 'composites.settings.kindIcon.hover.description': 'The icon appears when the mouse is over the building block, it has focus or its details are open.',\n 'composites.settings.dragHandle.legend': 'Drag handle (blocks without icon)',\n 'composites.settings.dragHandle.hover.label': 'Only on hover',\n 'composites.settings.dragHandle.hover.description': 'The drag handle appears on the block under the mouse.',\n 'composites.settings.dragHandle.always.label': 'Always show',\n 'composites.settings.dragHandle.always.description': 'Every block without an icon permanently shows its drag handle.',\n\n 'composites.nesting.title': 'Nesting not possible',\n 'composites.nesting.refused': '{parent} does not accept {child}.',\n 'composites.move.blockGone': 'The block no longer exists.',\n 'composites.move.targetGone': 'The target no longer exists.',\n 'composites.move.targetNotBlock': 'The target is not a building block.',\n 'composites.move.intoSelf': 'A block cannot be moved into itself.',\n 'composites.move.intoOwn': 'A block cannot be moved into a building block it contains itself.',\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"composites.js","names":[],"sources":["../../../src/i18n/en/composites.ts"],"sourcesContent":["import type { de } from '../de/composites'\n\nexport const en: { [K in keyof typeof de]: string } = {\n 'composites.untitled': '(untitled)',\n\n 'composites.kind.section.label': 'Section',\n 'composites.kind.section.title': 'Heading',\n 'composites.kind.section.description': 'Summary',\n 'composites.kind.task.label': 'Task',\n 'composites.kind.task.title': 'Task',\n 'composites.kind.task.description': 'Description',\n 'composites.kind.task.field.status': 'Status',\n 'composites.kind.task.status.open': 'Open',\n 'composites.kind.task.status.doing': 'In progress',\n 'composites.kind.task.status.done': 'Done',\n 'composites.kind.task.field.due': 'Due',\n 'composites.kind.task.field.assignee': 'Assignee',\n 'composites.kind.note.label': 'Note',\n 'composites.kind.note.title': 'Title',\n 'composites.kind.note.description': 'Short description',\n 'composites.kind.document.label': 'Document',\n 'composites.kind.document.title': 'Document name',\n 'composites.kind.document.description': 'Summary',\n 'composites.kind.document.field.filename': 'File name',\n 'composites.kind.document.field.mimeType': 'Type',\n 'composites.kind.document.field.size': 'Size (bytes)',\n 'composites.kind.document.field.importedAt': 'Imported',\n 'composites.kind.recording.label': 'Recording',\n 'composites.kind.recording.title': 'Recording title',\n 'composites.kind.recording.description': 'Summary',\n 'composites.kind.recording.field.filename': 'File name',\n 'composites.kind.recording.field.mimeType': 'Type',\n 'composites.kind.recording.field.size': 'Size (bytes)',\n 'composites.kind.recording.field.importedAt': 'Imported',\n 'composites.kind.recording.field.recordedAt': 'Recorded on',\n 'composites.kind.recording.field.participants': 'Participants',\n 'composites.kind.recording.field.durationSeconds': 'Duration (seconds)',\n 'composites.kind.paper.label': 'Paper',\n 'composites.kind.paper.title': 'Paper title',\n 'composites.kind.paper.description': 'Summary',\n 'composites.kind.paper.field.filename': 'File name',\n 'composites.kind.paper.field.mimeType': 'Type',\n 'composites.kind.paper.field.size': 'Size (bytes)',\n 'composites.kind.paper.field.importedAt': 'Imported',\n 'composites.kind.paper.field.bib': 'Citation',\n 'composites.kind.paper.field.doi': 'DOI',\n 'composites.kind.book.label': 'Book',\n 'composites.kind.book.title': 'Book title',\n 'composites.kind.book.description': 'Summary',\n 'composites.kind.book.field.filename': 'File name',\n 'composites.kind.book.field.mimeType': 'Type',\n 'composites.kind.book.field.size': 'Size (bytes)',\n 'composites.kind.book.field.importedAt': 'Imported',\n 'composites.kind.book.field.bib': 'Citation',\n 'composites.kind.book.field.isbn': 'ISBN',\n 'composites.kind.figure.label': 'Figure',\n 'composites.kind.figure.title': 'Figure title',\n 'composites.kind.figure.description': 'Image description',\n 'composites.kind.figure.field.filename': 'File name',\n 'composites.kind.figure.field.mimeType': 'Type',\n 'composites.kind.figure.field.size': 'Size (bytes)',\n 'composites.kind.figure.field.importedAt': 'Imported',\n 'composites.kind.figure.field.credit': 'Credit',\n 'composites.kind.rendition.label': 'Rendition',\n 'composites.kind.rendition.title': 'Transcript, full text, description …',\n 'composites.kind.rendition.description': 'Note on its origin',\n 'composites.kind.rendition.field.derivation': 'Origin',\n 'composites.kind.rendition.field.language': 'Language',\n 'composites.bib.type.article-journal': 'Journal article',\n 'composites.bib.type.book': 'Book',\n 'composites.bib.type.chapter': 'Book chapter',\n 'composites.bib.type.paper-conference': 'Conference paper',\n 'composites.bib.type.thesis': 'Thesis',\n 'composites.bib.type.report': 'Report',\n 'composites.bib.type.webpage': 'Web page',\n 'composites.bib.type.article': 'Article',\n 'composites.bib.type.dataset': 'Dataset',\n 'composites.bib.field.type': 'Type',\n 'composites.bib.field.authors': 'Authors',\n 'composites.bib.field.authorsHelp': 'One person per line: Family, Given',\n 'composites.bib.field.year': 'Year',\n 'composites.bib.field.containerTitle': 'Journal / collection',\n 'composites.bib.field.volume': 'Volume',\n 'composites.bib.field.issue': 'Issue',\n 'composites.bib.field.page': 'Pages',\n 'composites.bib.field.publisher': 'Publisher',\n 'composites.bib.field.doi': 'DOI',\n 'composites.bib.field.isbn': 'ISBN',\n 'composites.bib.field.url': 'URL',\n 'composites.bib.field.abstract': 'Abstract',\n 'composites.bib.copyBibtex': 'Copy BibTeX',\n 'composites.bib.copied': 'BibTeX copied',\n 'composites.bib.fetchDoi': 'Fetch DOI',\n 'composites.kind.folder.label': 'Folder',\n 'composites.kind.folder.title': 'Folder name',\n 'composites.kind.folder.description': 'Description',\n 'composites.kind.select': 'Kind of building block',\n\n 'composites.status.none': 'No status',\n 'composites.status.label': 'Status: {status}',\n\n 'composites.tab': 'Editing',\n 'composites.slash.section': 'Section',\n 'composites.slash.group': 'Headings to building blocks',\n 'composites.slash.groupAll': 'Headings to building blocks (nested)',\n 'composites.slash.flatten': 'Building blocks to headings',\n 'composites.slash.flattenAll': 'Building blocks to headings (all levels)',\n 'composites.blockAction.export': 'Export as Markdown',\n 'composites.blockAction.bibtex': 'Export reference (BibTeX)',\n 'composites.split.here': 'Split building block here',\n 'composites.split.children': 'Split into sub-building blocks',\n 'composites.split.lengthChildren': 'Split by length into sub-building blocks',\n 'composites.split.lengthSiblings': 'Split by length into building blocks',\n 'settings.editing.splitTargetChars': 'Target size when splitting (characters)',\n 'composites.toolbar.toKind': 'Convert to building block',\n 'composites.toolbar.structure': 'Convert structure',\n 'composites.menu.kindHeading': 'Building block',\n 'composites.menu.toComposites': 'Headings to building blocks',\n 'composites.menu.toComposites.top': 'Top level only',\n 'composites.menu.toComposites.top.description': 'Only the highest heading level becomes building blocks',\n 'composites.menu.toComposites.all': 'All levels (nested)',\n 'composites.menu.toComposites.all.description': 'Every heading level becomes a nested building block',\n 'composites.menu.toHeadings': 'Building blocks to headings',\n 'composites.menu.toHeadings.top': 'Top level only',\n 'composites.menu.toHeadings.top.description': 'The top building blocks become headings; inner building blocks stay',\n 'composites.menu.toHeadings.all': 'All levels',\n 'composites.menu.toHeadings.all.description': 'Every building block becomes a heading of its level; description, tags and fields as text',\n 'composites.menu.settings': 'Settings…',\n 'composites.menu.preferred': 'Preferred: {mode}',\n 'composites.convert.kind': '{kind} (building block)',\n\n 'composites.chrome.details': 'Kind and details: {kind}',\n 'composites.chrome.detailsDrag': 'Kind and details: {kind} · Drag to move',\n 'composites.tag.remove': 'Remove tag #{tag}',\n 'composites.tag.add': 'Add tag',\n\n 'composites.tags.label': 'Tags',\n 'composites.tags.placeholder': 'Add tags',\n 'composites.tags.create': 'Create #{tag}',\n\n 'composites.details.confirmLost': 'Really change the kind? Switching to “{kind}” discards this information:',\n 'composites.details.confirm': 'Really change the kind?',\n 'composites.details.cancel': 'Cancel',\n 'composites.details.change': 'Change',\n 'composites.details.summary': 'Summary',\n\n // Reference chip (`[@`), locator and backlinks.\n 'composites.reference.insert': 'Reference to a Baustein',\n 'composites.reference.empty': 'No matching Bausteine',\n 'composites.reference.gone': 'Baustein deleted',\n 'composites.reference.locator': 'Locator',\n 'composites.reference.locatorPlaceholder': 'Locator, e.g. p. 12 or 03:14',\n 'composites.reference.backlinks': 'References',\n\n 'composites.derivation.badge': 'derived',\n 'composites.derivation.stale': 'Source changed',\n 'composites.derivation.foreign': 'from another document',\n 'composites.derivation.edited': 'edited',\n 'composites.derivation.expand': 'Expand derived content',\n 'composites.derivation.collapse': 'Collapse derived content',\n 'composites.derivation.method': 'Method',\n 'composites.derivation.model': 'Model',\n 'composites.derivation.createdAt': 'Created',\n 'composites.derivation.openOutput': 'Open original',\n 'composites.derivation.method.transcription': 'Transcription',\n 'composites.derivation.method.pdf-text': 'PDF text',\n 'composites.derivation.method.ocr': 'Text recognition (OCR)',\n 'composites.derivation.method.description': 'Image description',\n 'composites.derivation.method.bibliography': 'Bibliographic data',\n 'composites.derivation.method.ai': 'AI derivation',\n\n 'composites.summary.placeholder': 'Short summary of the building block',\n 'composites.summary.label': 'Summary',\n 'composites.summary.none': 'No summary',\n 'composites.summary.formatted': 'Contains formatting or mentions and can only be edited in the text.',\n 'composites.field.choose': 'Choose {field}',\n 'composites.field.none': 'None',\n\n 'composites.inspector.label': 'Properties',\n 'composites.inspector.document': 'Document',\n 'composites.inspector.composites': 'Building blocks',\n 'composites.inspector.summarized': '{n} of {total} summarized',\n 'composites.inspector.none': 'None',\n 'composites.inspector.mentions': 'Mentions',\n 'composites.inspector.composite': 'Building block',\n 'composites.inspector.kind': 'Kind',\n 'composites.inspector.title': 'Title',\n 'composites.inspector.titleHelp': 'Edit in the document',\n 'composites.inspector.untitled': 'Untitled',\n 'composites.inspector.description': 'Description',\n 'composites.inspector.descriptionHelp': 'Contains mentions or tags – edit in the document',\n 'composites.inspector.aiStatus': 'AI status',\n 'composites.inspector.summaryPresent': 'Summary present',\n 'composites.inspector.summaryMissing': 'Summary missing',\n\n 'composites.table.label': 'Building blocks as table',\n 'composites.table.emptyTitle': 'This document has no building blocks yet',\n 'composites.table.emptyText': 'Building blocks divide a document into sections, tasks or notes with a title, summary and tags. Insert one in the text with “/” and it appears here with all its details.',\n 'composites.table.column.composite': 'Building block',\n 'composites.table.column.kind': 'Kind',\n 'composites.table.column.tags': 'Tags',\n 'composites.table.column.summary': 'Summary',\n 'composites.table.search.placeholder': 'Title, summary, tags',\n 'composites.table.search.label': 'Search building blocks',\n 'composites.table.search.clear': 'Clear search',\n 'composites.table.filter.all': 'All',\n 'composites.table.filter.reset': 'Reset filters',\n 'composites.table.filter.byKind': 'Filter by kind',\n 'composites.table.filter.byTag': 'Filter by tag',\n 'composites.table.filter.noMatch': 'No building block matches these filters.',\n 'composites.table.count.one': '{n} of {total} building block',\n 'composites.table.count.other': '{n} of {total} building blocks',\n 'composites.table.noValue': 'No value',\n 'composites.table.noTags': 'No tags',\n 'composites.table.summaryPresent': 'Summary present',\n\n 'composites.settings.structure.title': 'Structure',\n 'composites.settings.structure.legend': 'Preferred structure',\n 'composites.settings.structure.flat.label': 'Headings',\n 'composites.settings.structure.flat.description': 'Toolbar with Heading 1–3. AI texts are structured flat with headings (##, ###); building blocks the AI writes anyway become headings.',\n 'composites.settings.structure.composite.label': 'Building blocks',\n 'composites.settings.structure.composite.description': 'Toolbar without Heading 1–3. AI texts are structured as building blocks, subsections as nested building blocks; headings the AI writes anyway become building blocks.',\n 'composites.settings.scope.legend': '“Convert structure” without a selection applies to',\n 'composites.settings.scope.container.label': 'Enclosing building block',\n 'composites.settings.scope.container.description': 'The building block the cursor is in; the whole document outside of building blocks.',\n 'composites.settings.scope.document.label': 'Whole document',\n 'composites.settings.scope.document.description': 'Always all blocks of the document.',\n 'composites.settings.scope.heading.label': 'Heading or building block at the cursor',\n 'composites.settings.scope.heading.description': 'Converting to building blocks: the heading at or before the cursor with its content. Converting to headings: the innermost building block around the cursor.',\n 'composites.settings.sidebar.title': 'Sidebar',\n 'composites.settings.treeRoot.legend': 'Document tree',\n 'composites.settings.treeRoot.folders.label': 'Nest folders and files',\n 'composites.settings.treeRoot.folders.description': 'The sidebar shows the folders with their files; the open file is an entry within them.',\n 'composites.settings.treeRoot.file.label': 'Root is a single file',\n 'composites.settings.treeRoot.file.description': 'While a building block file is open, the sidebar shows it as the root with its folders and documents. Without an open building block file it shows the folders.',\n 'composites.settings.composites.title': 'Building blocks',\n 'composites.settings.defaultKind.label': 'Default building block',\n 'composites.settings.defaultKind.description': 'Kind of the building blocks the toolbar, “/” commands and “Headings to building blocks” create.',\n 'composites.settings.kindIcon.legend': 'Kind icon',\n 'composites.settings.kindIcon.always.label': 'Always show',\n 'composites.settings.kindIcon.always.description': 'The kind icon is permanently shown in front of the building block.',\n 'composites.settings.kindIcon.hover.label': 'Only on hover',\n 'composites.settings.kindIcon.hover.description': 'The icon appears when the mouse is over the building block, it has focus or its details are open.',\n 'composites.settings.dragHandle.legend': 'Drag handle (blocks without icon)',\n 'composites.settings.dragHandle.hover.label': 'Only on hover',\n 'composites.settings.dragHandle.hover.description': 'The drag handle appears on the block under the mouse.',\n 'composites.settings.dragHandle.always.label': 'Always show',\n 'composites.settings.dragHandle.always.description': 'Every block without an icon permanently shows its drag handle.',\n\n 'composites.nesting.title': 'Nesting not possible',\n 'composites.nesting.refused': '{parent} does not accept {child}.',\n 'composites.move.blockGone': 'The block no longer exists.',\n 'composites.move.targetGone': 'The target no longer exists.',\n 'composites.move.targetNotBlock': 'The target is not a building block.',\n 'composites.move.intoSelf': 'A block cannot be moved into itself.',\n 'composites.move.intoOwn': 'A block cannot be moved into a building block it contains itself.',\n 'composites.basket.label': 'Basket',\n 'composites.basket.none': 'No basket',\n 'composites.basket.red': 'Red',\n 'composites.basket.orange': 'Orange',\n 'composites.basket.yellow': 'Yellow',\n 'composites.basket.green': 'Green',\n 'composites.basket.blue': 'Blue',\n 'composites.titleHidden.hide': 'Hide title',\n 'composites.titleHidden.show': 'Show title',\n 'composites.focus.action': 'Focus',\n 'composites.focus.leave': 'Leave focus',\n 'composites.focus.chip': 'Focus: {title}',\n 'composites.focus.release': 'Leave',\n}\n"],"mappings":";AAEA,MAAa,KAAyC;CACpD,uBAAuB;CAEvB,iCAAiC;CACjC,iCAAiC;CACjC,uCAAuC;CACvC,8BAA8B;CAC9B,8BAA8B;CAC9B,oCAAoC;CACpC,qCAAqC;CACrC,oCAAoC;CACpC,qCAAqC;CACrC,oCAAoC;CACpC,kCAAkC;CAClC,uCAAuC;CACvC,8BAA8B;CAC9B,8BAA8B;CAC9B,oCAAoC;CACpC,kCAAkC;CAClC,kCAAkC;CAClC,wCAAwC;CACxC,2CAA2C;CAC3C,2CAA2C;CAC3C,uCAAuC;CACvC,6CAA6C;CAC7C,mCAAmC;CACnC,mCAAmC;CACnC,yCAAyC;CACzC,4CAA4C;CAC5C,4CAA4C;CAC5C,wCAAwC;CACxC,8CAA8C;CAC9C,8CAA8C;CAC9C,gDAAgD;CAChD,mDAAmD;CACnD,+BAA+B;CAC/B,+BAA+B;CAC/B,qCAAqC;CACrC,wCAAwC;CACxC,wCAAwC;CACxC,oCAAoC;CACpC,0CAA0C;CAC1C,mCAAmC;CACnC,mCAAmC;CACnC,8BAA8B;CAC9B,8BAA8B;CAC9B,oCAAoC;CACpC,uCAAuC;CACvC,uCAAuC;CACvC,mCAAmC;CACnC,yCAAyC;CACzC,kCAAkC;CAClC,mCAAmC;CACnC,gCAAgC;CAChC,gCAAgC;CAChC,sCAAsC;CACtC,yCAAyC;CACzC,yCAAyC;CACzC,qCAAqC;CACrC,2CAA2C;CAC3C,uCAAuC;CACvC,mCAAmC;CACnC,mCAAmC;CACnC,yCAAyC;CACzC,8CAA8C;CAC9C,4CAA4C;CAC5C,uCAAuC;CACvC,4BAA4B;CAC5B,+BAA+B;CAC/B,wCAAwC;CACxC,8BAA8B;CAC9B,8BAA8B;CAC9B,+BAA+B;CAC/B,+BAA+B;CAC/B,+BAA+B;CAC/B,6BAA6B;CAC7B,gCAAgC;CAChC,oCAAoC;CACpC,6BAA6B;CAC7B,uCAAuC;CACvC,+BAA+B;CAC/B,8BAA8B;CAC9B,6BAA6B;CAC7B,kCAAkC;CAClC,4BAA4B;CAC5B,6BAA6B;CAC7B,4BAA4B;CAC5B,iCAAiC;CACjC,6BAA6B;CAC7B,yBAAyB;CACzB,2BAA2B;CAC3B,gCAAgC;CAChC,gCAAgC;CAChC,sCAAsC;CACtC,0BAA0B;CAE1B,0BAA0B;CAC1B,2BAA2B;CAE3B,kBAAkB;CAClB,4BAA4B;CAC5B,0BAA0B;CAC1B,6BAA6B;CAC7B,4BAA4B;CAC5B,+BAA+B;CAC/B,iCAAiC;CACjC,iCAAiC;CACjC,yBAAyB;CACzB,6BAA6B;CAC7B,mCAAmC;CACnC,mCAAmC;CACnC,qCAAqC;CACrC,6BAA6B;CAC7B,gCAAgC;CAChC,+BAA+B;CAC/B,gCAAgC;CAChC,oCAAoC;CACpC,gDAAgD;CAChD,oCAAoC;CACpC,gDAAgD;CAChD,8BAA8B;CAC9B,kCAAkC;CAClC,8CAA8C;CAC9C,kCAAkC;CAClC,8CAA8C;CAC9C,4BAA4B;CAC5B,6BAA6B;CAC7B,2BAA2B;CAE3B,6BAA6B;CAC7B,iCAAiC;CACjC,yBAAyB;CACzB,sBAAsB;CAEtB,yBAAyB;CACzB,+BAA+B;CAC/B,0BAA0B;CAE1B,kCAAkC;CAClC,8BAA8B;CAC9B,6BAA6B;CAC7B,6BAA6B;CAC7B,8BAA8B;CAG9B,+BAA+B;CAC/B,8BAA8B;CAC9B,6BAA6B;CAC7B,gCAAgC;CAChC,2CAA2C;CAC3C,kCAAkC;CAElC,+BAA+B;CAC/B,+BAA+B;CAC/B,iCAAiC;CACjC,gCAAgC;CAChC,gCAAgC;CAChC,kCAAkC;CAClC,gCAAgC;CAChC,+BAA+B;CAC/B,mCAAmC;CACnC,oCAAoC;CACpC,8CAA8C;CAC9C,yCAAyC;CACzC,oCAAoC;CACpC,4CAA4C;CAC5C,6CAA6C;CAC7C,mCAAmC;CAEnC,kCAAkC;CAClC,4BAA4B;CAC5B,2BAA2B;CAC3B,gCAAgC;CAChC,2BAA2B;CAC3B,yBAAyB;CAEzB,8BAA8B;CAC9B,iCAAiC;CACjC,mCAAmC;CACnC,mCAAmC;CACnC,6BAA6B;CAC7B,iCAAiC;CACjC,kCAAkC;CAClC,6BAA6B;CAC7B,8BAA8B;CAC9B,kCAAkC;CAClC,iCAAiC;CACjC,oCAAoC;CACpC,wCAAwC;CACxC,iCAAiC;CACjC,uCAAuC;CACvC,uCAAuC;CAEvC,0BAA0B;CAC1B,+BAA+B;CAC/B,8BAA8B;CAC9B,qCAAqC;CACrC,gCAAgC;CAChC,gCAAgC;CAChC,mCAAmC;CACnC,uCAAuC;CACvC,iCAAiC;CACjC,iCAAiC;CACjC,+BAA+B;CAC/B,iCAAiC;CACjC,kCAAkC;CAClC,iCAAiC;CACjC,mCAAmC;CACnC,8BAA8B;CAC9B,gCAAgC;CAChC,4BAA4B;CAC5B,2BAA2B;CAC3B,mCAAmC;CAEnC,uCAAuC;CACvC,wCAAwC;CACxC,4CAA4C;CAC5C,kDAAkD;CAClD,iDAAiD;CACjD,uDAAuD;CACvD,oCAAoC;CACpC,6CAA6C;CAC7C,mDAAmD;CACnD,4CAA4C;CAC5C,kDAAkD;CAClD,2CAA2C;CAC3C,iDAAiD;CACjD,qCAAqC;CACrC,uCAAuC;CACvC,8CAA8C;CAC9C,oDAAoD;CACpD,2CAA2C;CAC3C,iDAAiD;CACjD,wCAAwC;CACxC,yCAAyC;CACzC,+CAA+C;CAC/C,uCAAuC;CACvC,6CAA6C;CAC7C,mDAAmD;CACnD,4CAA4C;CAC5C,kDAAkD;CAClD,yCAAyC;CACzC,8CAA8C;CAC9C,oDAAoD;CACpD,+CAA+C;CAC/C,qDAAqD;CAErD,4BAA4B;CAC5B,8BAA8B;CAC9B,6BAA6B;CAC7B,8BAA8B;CAC9B,kCAAkC;CAClC,4BAA4B;CAC5B,2BAA2B;CAC3B,2BAA2B;CAC3B,0BAA0B;CAC1B,yBAAyB;CACzB,4BAA4B;CAC5B,4BAA4B;CAC5B,2BAA2B;CAC3B,0BAA0B;CAC1B,+BAA+B;CAC/B,+BAA+B;CAC/B,2BAA2B;CAC3B,0BAA0B;CAC1B,yBAAyB;CACzB,4BAA4B;AAC9B"}
@@ -23,6 +23,22 @@ const en = {
23
23
  "integrations.compositeSummary.gone.title": "Block not found anymore",
24
24
  "integrations.compositeSummary.gone.description": "The summary was not applied.",
25
25
  "integrations.compositeSummary.done": "Summary created",
26
+ "integrations.compositeSplit.ai.children": "Split into sub-blocks with AI",
27
+ "integrations.compositeSplit.ai.siblings": "Split into blocks with AI",
28
+ "integrations.compositeSplit.changed": "The AI changed the text, nothing was split",
29
+ "integrations.compositeSplit.running": "Splitting block…",
30
+ "integrations.compositeSplit.failed": "Splitting failed",
31
+ "integrations.compositeSplit.notPossible": "This block cannot be split this way",
32
+ "integrations.compositeSplit.tooLong": "The text is too long for AI splitting",
33
+ "integrations.compositeSplit.gone": "The block changed in the meantime, nothing was split",
34
+ "integrations.outlineSanitize.label": "Clean up outline (AI)",
35
+ "integrations.outlineSanitize.none": "The document has no headings",
36
+ "integrations.outlineSanitize.invalid": "The AI answer was unusable, nothing was changed",
37
+ "integrations.outlineSanitize.running": "Cleaning up the outline…",
38
+ "integrations.outlineSanitize.done": "Outline cleaned up",
39
+ "integrations.outlineSanitize.failed": "Cleaning up the outline failed",
40
+ "integrations.outlineSanitize.tooLong": "The outline is too long for the AI",
41
+ "integrations.outlineSanitize.gone": "The document changed in the meantime, nothing was changed",
26
42
  "integrations.rendition.action": "Create rendition",
27
43
  "integrations.rendition.regenerate": "Regenerate (replace)",
28
44
  "integrations.rendition.running": "Creating rendition…",
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.js","names":[],"sources":["../../../src/i18n/en/integrations.ts"],"sourcesContent":["import type { de } from '../de/integrations'\n\nexport const en: { [K in keyof typeof de]: string } = {\n // composite-ai: “Fill block (AI)”\n 'integrations.compositeFill.action': 'Fill block (AI)',\n 'integrations.compositeFill.dataMissing': 'Data for the block is missing',\n 'integrations.compositeFill.failed': 'Filling the block failed',\n 'integrations.compositeFill.empty.title': 'Empty result',\n 'integrations.compositeFill.empty.description': 'The block was not filled.',\n 'integrations.compositeFill.gone.title': 'Block not found anymore',\n 'integrations.compositeFill.gone.description': 'The block was not filled.',\n\n // composite-ai: “Derive (AI)”\n 'integrations.compositeDerive.action': 'Derive (AI)',\n 'integrations.compositeDerive.running': 'Deriving {kind}…',\n 'integrations.compositeDerive.done': '{kind} derived',\n 'integrations.compositeDerive.failed': 'Deriving failed',\n 'integrations.compositeDerive.notAccepted': 'This block cannot be inserted here',\n 'integrations.compositeDerive.empty.title': 'Empty result',\n 'integrations.compositeDerive.empty.description': 'No block was derived.',\n 'integrations.compositeDerive.gone.title': 'Block not found anymore',\n 'integrations.compositeDerive.gone.description': 'The result was not applied.',\n\n // composite-ai: “Generate summary (AI)”\n 'integrations.compositeSummary.action': 'Generate summary (AI)',\n 'integrations.compositeSummary.failed': 'Summary failed',\n 'integrations.compositeSummary.empty.title': 'Empty result',\n 'integrations.compositeSummary.empty.description': 'The summary was not applied.',\n 'integrations.compositeSummary.gone.title': 'Block not found anymore',\n 'integrations.compositeSummary.gone.description': 'The summary was not applied.',\n 'integrations.compositeSummary.done': 'Summary created',\n\n // composite-ai: “Create rendition” / “Regenerate (replace)”\n 'integrations.rendition.action': 'Create rendition',\n 'integrations.rendition.regenerate': 'Regenerate (replace)',\n 'integrations.rendition.running': 'Creating rendition…',\n 'integrations.rendition.done': 'Rendition created',\n 'integrations.rendition.failed': 'Rendition failed',\n 'integrations.rendition.noSource': 'The block has no stored source',\n 'integrations.rendition.notAccepted': 'A rendition cannot be inserted here',\n 'integrations.rendition.empty.title': 'Empty result',\n 'integrations.rendition.empty.description': 'The rendition was not applied.',\n 'integrations.rendition.gone.title': 'Block not found anymore',\n 'integrations.rendition.gone.description': 'The rendition was not applied.',\n 'integrations.rendition.title.transcription': 'Transcript',\n 'integrations.rendition.title.pdf-text': 'Full text',\n 'integrations.rendition.title.ocr': 'Full text (OCR)',\n 'integrations.rendition.title.description': 'Description',\n 'integrations.rendition.editedWarning.title': 'The rendition was edited',\n 'integrations.rendition.editedWarning.description': 'Regenerating replaces your changes.',\n 'integrations.rendition.editedWarning.confirm': 'Replace anyway',\n 'integrations.rendition.warnings.title': 'Notes on the rendition',\n 'integrations.rendition.warning.ocr-unavailable': 'OCR is unavailable; only the PDF text layer was read.',\n 'integrations.rendition.warning.crossref-unavailable': 'Crossref was unreachable; the citation data comes from the model.',\n 'integrations.rendition.warning.pages-truncated': 'Only the first pages were read.',\n 'integrations.rendition.warning.ocr-truncated': 'OCR read only the first pages (one model call per page); the rest is missing.',\n 'integrations.rendition.warning.bibliography-failed': 'No citation data was found for this source.',\n // Label that stands for a page break of a PDF inside the rendition's text (document content, not UI chrome).\n 'integrations.rendition.page': 'p. {n}',\n\n // composite-ai: “Fetch bibliography”\n 'integrations.bibliographyFetch.action': 'Fetch bibliography',\n 'integrations.bibliographyFetch.running': 'Fetching bibliography…',\n 'integrations.bibliographyFetch.done': 'Bibliography applied',\n 'integrations.bibliographyFetch.failed': 'Bibliography could not be fetched',\n 'integrations.bibliographyFetch.invalidDoi': 'The DOI is invalid',\n 'integrations.bibliographyFetch.noSource': 'The block has neither a DOI nor a stored PDF',\n 'integrations.bibliographyFetch.empty': 'No bibliographic data was found',\n 'integrations.bibliographyFetch.gone.title': 'Block not found anymore',\n 'integrations.bibliographyFetch.gone.description': 'The bibliographic data was not applied.',\n 'integrations.bibliographyFetch.crossrefUnavailable.title': 'Crossref unreachable',\n 'integrations.bibliographyFetch.crossrefUnavailable.description': 'The bibliographic data comes from the model and should be checked.',\n\n // composite-media\n 'integrations.compositeMedia.import': 'Import file',\n 'integrations.sourceReplace.action': 'Replace source',\n 'integrations.sourceReplace.done': 'Source replaced',\n 'integrations.sourceReplace.failed': 'Source could not be replaced',\n 'integrations.sourceReplace.gone': 'Block not found anymore',\n\n // transcript-ai: “Clean up transcript”\n 'integrations.transcriptCleanup.action': 'Clean up transcript',\n 'integrations.transcriptCleanup.actionAi': 'Clean up transcript (AI)',\n 'integrations.transcriptCleanup.noSegments': 'No speaker segments with text found',\n 'integrations.transcriptCleanup.failed': 'Clean-up failed',\n 'integrations.transcriptCleanup.skipped.title': '{skipped} of {total} segments were not cleaned up',\n 'integrations.transcriptCleanup.skipped.description': 'Too long, or the AI response was unusable.',\n 'integrations.transcriptCleanup.stale.title': '{n} segments were changed in the meantime',\n 'integrations.transcriptCleanup.stale.description': 'They stay unchanged.',\n 'integrations.transcriptCleanup.open.title': 'The segments still have open AI changes',\n 'integrations.transcriptCleanup.open.description': 'Accept or discard them first, then clean up again.',\n 'integrations.transcriptCleanup.nothing.title': 'Nothing to clean up',\n 'integrations.transcriptCleanup.nothing.description': 'The AI did not suggest any changes.',\n}\n"],"mappings":";AAEA,MAAa,KAAyC;CAEpD,qCAAqC;CACrC,0CAA0C;CAC1C,qCAAqC;CACrC,0CAA0C;CAC1C,gDAAgD;CAChD,yCAAyC;CACzC,+CAA+C;CAG/C,uCAAuC;CACvC,wCAAwC;CACxC,qCAAqC;CACrC,uCAAuC;CACvC,4CAA4C;CAC5C,4CAA4C;CAC5C,kDAAkD;CAClD,2CAA2C;CAC3C,iDAAiD;CAGjD,wCAAwC;CACxC,wCAAwC;CACxC,6CAA6C;CAC7C,mDAAmD;CACnD,4CAA4C;CAC5C,kDAAkD;CAClD,sCAAsC;CAGtC,iCAAiC;CACjC,qCAAqC;CACrC,kCAAkC;CAClC,+BAA+B;CAC/B,iCAAiC;CACjC,mCAAmC;CACnC,sCAAsC;CACtC,sCAAsC;CACtC,4CAA4C;CAC5C,qCAAqC;CACrC,2CAA2C;CAC3C,8CAA8C;CAC9C,yCAAyC;CACzC,oCAAoC;CACpC,4CAA4C;CAC5C,8CAA8C;CAC9C,oDAAoD;CACpD,gDAAgD;CAChD,yCAAyC;CACzC,kDAAkD;CAClD,uDAAuD;CACvD,kDAAkD;CAClD,gDAAgD;CAChD,sDAAsD;CAEtD,+BAA+B;CAG/B,yCAAyC;CACzC,0CAA0C;CAC1C,uCAAuC;CACvC,yCAAyC;CACzC,6CAA6C;CAC7C,2CAA2C;CAC3C,wCAAwC;CACxC,6CAA6C;CAC7C,mDAAmD;CACnD,4DAA4D;CAC5D,kEAAkE;CAGlE,sCAAsC;CACtC,qCAAqC;CACrC,mCAAmC;CACnC,qCAAqC;CACrC,mCAAmC;CAGnC,yCAAyC;CACzC,2CAA2C;CAC3C,6CAA6C;CAC7C,yCAAyC;CACzC,gDAAgD;CAChD,sDAAsD;CACtD,8CAA8C;CAC9C,oDAAoD;CACpD,6CAA6C;CAC7C,mDAAmD;CACnD,gDAAgD;CAChD,sDAAsD;AACxD"}
1
+ {"version":3,"file":"integrations.js","names":[],"sources":["../../../src/i18n/en/integrations.ts"],"sourcesContent":["import type { de } from '../de/integrations'\n\nexport const en: { [K in keyof typeof de]: string } = {\n // composite-ai: “Fill block (AI)”\n 'integrations.compositeFill.action': 'Fill block (AI)',\n 'integrations.compositeFill.dataMissing': 'Data for the block is missing',\n 'integrations.compositeFill.failed': 'Filling the block failed',\n 'integrations.compositeFill.empty.title': 'Empty result',\n 'integrations.compositeFill.empty.description': 'The block was not filled.',\n 'integrations.compositeFill.gone.title': 'Block not found anymore',\n 'integrations.compositeFill.gone.description': 'The block was not filled.',\n\n // composite-ai: “Derive (AI)”\n 'integrations.compositeDerive.action': 'Derive (AI)',\n 'integrations.compositeDerive.running': 'Deriving {kind}…',\n 'integrations.compositeDerive.done': '{kind} derived',\n 'integrations.compositeDerive.failed': 'Deriving failed',\n 'integrations.compositeDerive.notAccepted': 'This block cannot be inserted here',\n 'integrations.compositeDerive.empty.title': 'Empty result',\n 'integrations.compositeDerive.empty.description': 'No block was derived.',\n 'integrations.compositeDerive.gone.title': 'Block not found anymore',\n 'integrations.compositeDerive.gone.description': 'The result was not applied.',\n\n // composite-ai: “Generate summary (AI)”\n 'integrations.compositeSummary.action': 'Generate summary (AI)',\n 'integrations.compositeSummary.failed': 'Summary failed',\n 'integrations.compositeSummary.empty.title': 'Empty result',\n 'integrations.compositeSummary.empty.description': 'The summary was not applied.',\n 'integrations.compositeSummary.gone.title': 'Block not found anymore',\n 'integrations.compositeSummary.gone.description': 'The summary was not applied.',\n 'integrations.compositeSummary.done': 'Summary created',\n\n // composite-ai: “Split with AI”\n 'integrations.compositeSplit.ai.children': 'Split into sub-blocks with AI',\n 'integrations.compositeSplit.ai.siblings': 'Split into blocks with AI',\n 'integrations.compositeSplit.changed': 'The AI changed the text, nothing was split',\n 'integrations.compositeSplit.running': 'Splitting block…',\n 'integrations.compositeSplit.failed': 'Splitting failed',\n 'integrations.compositeSplit.notPossible': 'This block cannot be split this way',\n 'integrations.compositeSplit.tooLong': 'The text is too long for AI splitting',\n 'integrations.compositeSplit.gone': 'The block changed in the meantime, nothing was split',\n\n // composite-ai: “Clean up outline (AI)”\n 'integrations.outlineSanitize.label': 'Clean up outline (AI)',\n 'integrations.outlineSanitize.none': 'The document has no headings',\n 'integrations.outlineSanitize.invalid': 'The AI answer was unusable, nothing was changed',\n 'integrations.outlineSanitize.running': 'Cleaning up the outline…',\n 'integrations.outlineSanitize.done': 'Outline cleaned up',\n 'integrations.outlineSanitize.failed': 'Cleaning up the outline failed',\n 'integrations.outlineSanitize.tooLong': 'The outline is too long for the AI',\n 'integrations.outlineSanitize.gone': 'The document changed in the meantime, nothing was changed',\n\n // composite-ai: “Create rendition” / “Regenerate (replace)”\n 'integrations.rendition.action': 'Create rendition',\n 'integrations.rendition.regenerate': 'Regenerate (replace)',\n 'integrations.rendition.running': 'Creating rendition…',\n 'integrations.rendition.done': 'Rendition created',\n 'integrations.rendition.failed': 'Rendition failed',\n 'integrations.rendition.noSource': 'The block has no stored source',\n 'integrations.rendition.notAccepted': 'A rendition cannot be inserted here',\n 'integrations.rendition.empty.title': 'Empty result',\n 'integrations.rendition.empty.description': 'The rendition was not applied.',\n 'integrations.rendition.gone.title': 'Block not found anymore',\n 'integrations.rendition.gone.description': 'The rendition was not applied.',\n 'integrations.rendition.title.transcription': 'Transcript',\n 'integrations.rendition.title.pdf-text': 'Full text',\n 'integrations.rendition.title.ocr': 'Full text (OCR)',\n 'integrations.rendition.title.description': 'Description',\n 'integrations.rendition.editedWarning.title': 'The rendition was edited',\n 'integrations.rendition.editedWarning.description': 'Regenerating replaces your changes.',\n 'integrations.rendition.editedWarning.confirm': 'Replace anyway',\n 'integrations.rendition.warnings.title': 'Notes on the rendition',\n 'integrations.rendition.warning.ocr-unavailable': 'OCR is unavailable; only the PDF text layer was read.',\n 'integrations.rendition.warning.crossref-unavailable': 'Crossref was unreachable; the citation data comes from the model.',\n 'integrations.rendition.warning.pages-truncated': 'Only the first pages were read.',\n 'integrations.rendition.warning.ocr-truncated': 'OCR read only the first pages (one model call per page); the rest is missing.',\n 'integrations.rendition.warning.bibliography-failed': 'No citation data was found for this source.',\n // Label that stands for a page break of a PDF inside the rendition's text (document content, not UI chrome).\n 'integrations.rendition.page': 'p. {n}',\n\n // composite-ai: “Fetch bibliography”\n 'integrations.bibliographyFetch.action': 'Fetch bibliography',\n 'integrations.bibliographyFetch.running': 'Fetching bibliography…',\n 'integrations.bibliographyFetch.done': 'Bibliography applied',\n 'integrations.bibliographyFetch.failed': 'Bibliography could not be fetched',\n 'integrations.bibliographyFetch.invalidDoi': 'The DOI is invalid',\n 'integrations.bibliographyFetch.noSource': 'The block has neither a DOI nor a stored PDF',\n 'integrations.bibliographyFetch.empty': 'No bibliographic data was found',\n 'integrations.bibliographyFetch.gone.title': 'Block not found anymore',\n 'integrations.bibliographyFetch.gone.description': 'The bibliographic data was not applied.',\n 'integrations.bibliographyFetch.crossrefUnavailable.title': 'Crossref unreachable',\n 'integrations.bibliographyFetch.crossrefUnavailable.description': 'The bibliographic data comes from the model and should be checked.',\n\n // composite-media\n 'integrations.compositeMedia.import': 'Import file',\n 'integrations.sourceReplace.action': 'Replace source',\n 'integrations.sourceReplace.done': 'Source replaced',\n 'integrations.sourceReplace.failed': 'Source could not be replaced',\n 'integrations.sourceReplace.gone': 'Block not found anymore',\n\n // transcript-ai: “Clean up transcript”\n 'integrations.transcriptCleanup.action': 'Clean up transcript',\n 'integrations.transcriptCleanup.actionAi': 'Clean up transcript (AI)',\n 'integrations.transcriptCleanup.noSegments': 'No speaker segments with text found',\n 'integrations.transcriptCleanup.failed': 'Clean-up failed',\n 'integrations.transcriptCleanup.skipped.title': '{skipped} of {total} segments were not cleaned up',\n 'integrations.transcriptCleanup.skipped.description': 'Too long, or the AI response was unusable.',\n 'integrations.transcriptCleanup.stale.title': '{n} segments were changed in the meantime',\n 'integrations.transcriptCleanup.stale.description': 'They stay unchanged.',\n 'integrations.transcriptCleanup.open.title': 'The segments still have open AI changes',\n 'integrations.transcriptCleanup.open.description': 'Accept or discard them first, then clean up again.',\n 'integrations.transcriptCleanup.nothing.title': 'Nothing to clean up',\n 'integrations.transcriptCleanup.nothing.description': 'The AI did not suggest any changes.',\n}\n"],"mappings":";AAEA,MAAa,KAAyC;CAEpD,qCAAqC;CACrC,0CAA0C;CAC1C,qCAAqC;CACrC,0CAA0C;CAC1C,gDAAgD;CAChD,yCAAyC;CACzC,+CAA+C;CAG/C,uCAAuC;CACvC,wCAAwC;CACxC,qCAAqC;CACrC,uCAAuC;CACvC,4CAA4C;CAC5C,4CAA4C;CAC5C,kDAAkD;CAClD,2CAA2C;CAC3C,iDAAiD;CAGjD,wCAAwC;CACxC,wCAAwC;CACxC,6CAA6C;CAC7C,mDAAmD;CACnD,4CAA4C;CAC5C,kDAAkD;CAClD,sCAAsC;CAGtC,2CAA2C;CAC3C,2CAA2C;CAC3C,uCAAuC;CACvC,uCAAuC;CACvC,sCAAsC;CACtC,2CAA2C;CAC3C,uCAAuC;CACvC,oCAAoC;CAGpC,sCAAsC;CACtC,qCAAqC;CACrC,wCAAwC;CACxC,wCAAwC;CACxC,qCAAqC;CACrC,uCAAuC;CACvC,wCAAwC;CACxC,qCAAqC;CAGrC,iCAAiC;CACjC,qCAAqC;CACrC,kCAAkC;CAClC,+BAA+B;CAC/B,iCAAiC;CACjC,mCAAmC;CACnC,sCAAsC;CACtC,sCAAsC;CACtC,4CAA4C;CAC5C,qCAAqC;CACrC,2CAA2C;CAC3C,8CAA8C;CAC9C,yCAAyC;CACzC,oCAAoC;CACpC,4CAA4C;CAC5C,8CAA8C;CAC9C,oDAAoD;CACpD,gDAAgD;CAChD,yCAAyC;CACzC,kDAAkD;CAClD,uDAAuD;CACvD,kDAAkD;CAClD,gDAAgD;CAChD,sDAAsD;CAEtD,+BAA+B;CAG/B,yCAAyC;CACzC,0CAA0C;CAC1C,uCAAuC;CACvC,yCAAyC;CACzC,6CAA6C;CAC7C,2CAA2C;CAC3C,wCAAwC;CACxC,6CAA6C;CAC7C,mDAAmD;CACnD,4DAA4D;CAC5D,kEAAkE;CAGlE,sCAAsC;CACtC,qCAAqC;CACrC,mCAAmC;CACnC,qCAAqC;CACrC,mCAAmC;CAGnC,yCAAyC;CACzC,2CAA2C;CAC3C,6CAA6C;CAC7C,yCAAyC;CACzC,gDAAgD;CAChD,sDAAsD;CACtD,8CAA8C;CAC9C,oDAAoD;CACpD,6CAA6C;CAC7C,mDAAmD;CACnD,gDAAgD;CAChD,sDAAsD;AACxD"}
@@ -0,0 +1,17 @@
1
+ //#region src/i18n/en/transfer.ts
2
+ const en = {
3
+ "transfer.copy": "Insert copy",
4
+ "transfer.summary": "Insert summary",
5
+ "transfer.bullets": "Insert bullet points",
6
+ "transfer.summaryTitle": "Summary: {title}",
7
+ "transfer.bulletsTitle": "Bullet points: {title}",
8
+ "transfer.refused": "The block cannot be inserted here",
9
+ "transfer.selfDrop": "A block cannot be dropped onto itself",
10
+ "transfer.running": "Creating {title}…",
11
+ "transfer.done": "{title} inserted",
12
+ "transfer.menu.title": "Insert as …"
13
+ };
14
+ //#endregion
15
+ export { en };
16
+
17
+ //# sourceMappingURL=transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer.js","names":[],"sources":["../../../src/i18n/en/transfer.ts"],"sourcesContent":["import type { de } from '../de/transfer'\n\nexport const en: { [K in keyof typeof de]: string } = {\n 'transfer.copy': 'Insert copy',\n 'transfer.summary': 'Insert summary',\n 'transfer.bullets': 'Insert bullet points',\n 'transfer.summaryTitle': 'Summary: {title}',\n 'transfer.bulletsTitle': 'Bullet points: {title}',\n 'transfer.refused': 'The block cannot be inserted here',\n 'transfer.selfDrop': 'A block cannot be dropped onto itself',\n 'transfer.running': 'Creating {title}…',\n 'transfer.done': '{title} inserted',\n 'transfer.menu.title': 'Insert as …',\n}\n"],"mappings":";AAEA,MAAa,KAAyC;CACpD,iBAAiB;CACjB,oBAAoB;CACpB,oBAAoB;CACpB,yBAAyB;CACzB,yBAAyB;CACzB,oBAAoB;CACpB,qBAAqB;CACrB,oBAAoB;CACpB,iBAAiB;CACjB,uBAAuB;AACzB"}
@@ -27,6 +27,11 @@ const en = {
27
27
  "tree.filterText.placeholder": "Filter by title",
28
28
  "tree.filterText.clear": "Clear title filter",
29
29
  "tree.noMatches": "No matches",
30
+ "tree.basketFilter.label": "Filter by basket",
31
+ "tree.basketFilter.reset": "Reset basket filter",
32
+ "tree.focus.root": "Document",
33
+ "tree.focus.enter": "Focus",
34
+ "tree.focus.leave": "Leave focus",
30
35
  "tree.root.folders": "Folders",
31
36
  "tree.root.file": "File as root",
32
37
  "tree.root.unavailable": "Only with an open building-block file (setting “Structure: building blocks”).",
@@ -38,6 +43,7 @@ const en = {
38
43
  "tree.drop.folderInFolder": "The folder is already in this folder.",
39
44
  "tree.drop.blocksOnlyInDocument": "Building blocks can only be moved within the open document.",
40
45
  "tree.drop.noBlocksHere": "Building blocks cannot be dropped here.",
46
+ "tree.drop.noTransfer": "This editor does not take building blocks from outside.",
41
47
  "tree.drop.blockWithoutId": "This building block has no ID yet and cannot be addressed as a target.",
42
48
  "tree.drop.editorClosed": "The editor is no longer open."
43
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","names":[],"sources":["../../../src/i18n/en/tree.ts"],"sourcesContent":["import type { de } from '../de/tree'\n\nexport const en: { [K in keyof typeof de]: string } = {\n 'tree.aria': 'Documents',\n 'tree.loading': 'Loading…',\n 'tree.loadFailed': 'Documents could not be loaded',\n 'tree.empty': 'No documents yet',\n 'tree.rootFallback': 'Document',\n 'tree.untitled': '(untitled)',\n 'tree.summary': 'Has a summary',\n 'tree.filter.show': 'Show',\n 'tree.filter.title': 'Filter view',\n 'tree.filter.reset': 'Reset filter',\n 'tree.add': 'Add',\n 'tree.delete': 'Delete',\n 'tree.menu.newDocument': 'New document',\n 'tree.menu.newFolder': 'New folder',\n 'tree.menu.newSubfolder': 'New subfolder',\n 'tree.menu.newCompositeFolder': 'New folder block',\n 'tree.menu.importFile': 'Import file…',\n 'tree.menu.rename': 'Rename',\n 'tree.folder.name': 'Folder name',\n 'tree.folder.placeholder': 'New folder',\n 'tree.folder.placeholderIn': 'New folder in {parent}',\n 'tree.folder.renameFailed': 'Folder not renamed',\n 'tree.removed': 'Document deleted',\n 'tree.undo': 'Undo',\n 'tree.filterText.placeholder': 'Filter by title',\n 'tree.filterText.clear': 'Clear title filter',\n 'tree.noMatches': 'No matches',\n 'tree.root.folders': 'Folders',\n 'tree.root.file': 'File as root',\n 'tree.root.unavailable': 'Only with an open building-block file (setting “Structure: building blocks”).',\n\n 'tree.drop.nothing': 'Nothing is being dragged.',\n 'tree.drop.noDocumentMove': 'Documents and folders cannot be moved inside the open document.',\n 'tree.drop.foldersOnly': 'Only folders accept entries.',\n 'tree.drop.documentInFolder': 'The document is already in this folder.',\n 'tree.drop.folderIntoSelf': 'A folder cannot be moved into itself or one of its subfolders.',\n 'tree.drop.folderInFolder': 'The folder is already in this folder.',\n 'tree.drop.blocksOnlyInDocument': 'Building blocks can only be moved within the open document.',\n 'tree.drop.noBlocksHere': 'Building blocks cannot be dropped here.',\n 'tree.drop.blockWithoutId': 'This building block has no ID yet and cannot be addressed as a target.',\n 'tree.drop.editorClosed': 'The editor is no longer open.',\n}\n"],"mappings":";AAEA,MAAa,KAAyC;CACpD,aAAa;CACb,gBAAgB;CAChB,mBAAmB;CACnB,cAAc;CACd,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,YAAY;CACZ,eAAe;CACf,yBAAyB;CACzB,uBAAuB;CACvB,0BAA0B;CAC1B,gCAAgC;CAChC,wBAAwB;CACxB,oBAAoB;CACpB,oBAAoB;CACpB,2BAA2B;CAC3B,6BAA6B;CAC7B,4BAA4B;CAC5B,gBAAgB;CAChB,aAAa;CACb,+BAA+B;CAC/B,yBAAyB;CACzB,kBAAkB;CAClB,qBAAqB;CACrB,kBAAkB;CAClB,yBAAyB;CAEzB,qBAAqB;CACrB,4BAA4B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,4BAA4B;CAC5B,4BAA4B;CAC5B,kCAAkC;CAClC,0BAA0B;CAC1B,4BAA4B;CAC5B,0BAA0B;AAC5B"}
1
+ {"version":3,"file":"tree.js","names":[],"sources":["../../../src/i18n/en/tree.ts"],"sourcesContent":["import type { de } from '../de/tree'\n\nexport const en: { [K in keyof typeof de]: string } = {\n 'tree.aria': 'Documents',\n 'tree.loading': 'Loading…',\n 'tree.loadFailed': 'Documents could not be loaded',\n 'tree.empty': 'No documents yet',\n 'tree.rootFallback': 'Document',\n 'tree.untitled': '(untitled)',\n 'tree.summary': 'Has a summary',\n 'tree.filter.show': 'Show',\n 'tree.filter.title': 'Filter view',\n 'tree.filter.reset': 'Reset filter',\n 'tree.add': 'Add',\n 'tree.delete': 'Delete',\n 'tree.menu.newDocument': 'New document',\n 'tree.menu.newFolder': 'New folder',\n 'tree.menu.newSubfolder': 'New subfolder',\n 'tree.menu.newCompositeFolder': 'New folder block',\n 'tree.menu.importFile': 'Import file…',\n 'tree.menu.rename': 'Rename',\n 'tree.folder.name': 'Folder name',\n 'tree.folder.placeholder': 'New folder',\n 'tree.folder.placeholderIn': 'New folder in {parent}',\n 'tree.folder.renameFailed': 'Folder not renamed',\n 'tree.removed': 'Document deleted',\n 'tree.undo': 'Undo',\n 'tree.filterText.placeholder': 'Filter by title',\n 'tree.filterText.clear': 'Clear title filter',\n 'tree.noMatches': 'No matches',\n 'tree.basketFilter.label': 'Filter by basket',\n 'tree.basketFilter.reset': 'Reset basket filter',\n 'tree.focus.root': 'Document',\n 'tree.focus.enter': 'Focus',\n 'tree.focus.leave': 'Leave focus',\n 'tree.root.folders': 'Folders',\n 'tree.root.file': 'File as root',\n 'tree.root.unavailable': 'Only with an open building-block file (setting “Structure: building blocks”).',\n\n 'tree.drop.nothing': 'Nothing is being dragged.',\n 'tree.drop.noDocumentMove': 'Documents and folders cannot be moved inside the open document.',\n 'tree.drop.foldersOnly': 'Only folders accept entries.',\n 'tree.drop.documentInFolder': 'The document is already in this folder.',\n 'tree.drop.folderIntoSelf': 'A folder cannot be moved into itself or one of its subfolders.',\n 'tree.drop.folderInFolder': 'The folder is already in this folder.',\n 'tree.drop.blocksOnlyInDocument': 'Building blocks can only be moved within the open document.',\n 'tree.drop.noBlocksHere': 'Building blocks cannot be dropped here.',\n 'tree.drop.noTransfer': 'This editor does not take building blocks from outside.',\n 'tree.drop.blockWithoutId': 'This building block has no ID yet and cannot be addressed as a target.',\n 'tree.drop.editorClosed': 'The editor is no longer open.',\n}\n"],"mappings":";AAEA,MAAa,KAAyC;CACpD,aAAa;CACb,gBAAgB;CAChB,mBAAmB;CACnB,cAAc;CACd,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,YAAY;CACZ,eAAe;CACf,yBAAyB;CACzB,uBAAuB;CACvB,0BAA0B;CAC1B,gCAAgC;CAChC,wBAAwB;CACxB,oBAAoB;CACpB,oBAAoB;CACpB,2BAA2B;CAC3B,6BAA6B;CAC7B,4BAA4B;CAC5B,gBAAgB;CAChB,aAAa;CACb,+BAA+B;CAC/B,yBAAyB;CACzB,kBAAkB;CAClB,2BAA2B;CAC3B,2BAA2B;CAC3B,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,qBAAqB;CACrB,kBAAkB;CAClB,yBAAyB;CAEzB,qBAAqB;CACrB,4BAA4B;CAC5B,yBAAyB;CACzB,8BAA8B;CAC9B,4BAA4B;CAC5B,4BAA4B;CAC5B,kCAAkC;CAClC,0BAA0B;CAC1B,wBAAwB;CACxB,4BAA4B;CAC5B,0BAA0B;AAC5B"}
package/dist/i18n/en.js CHANGED
@@ -16,6 +16,7 @@ import { en as en$15 } from "./en/mentions.js";
16
16
  import { en as en$16 } from "./en/integrations.js";
17
17
  import { en as en$17 } from "./en/markdown.js";
18
18
  import { en as en$18 } from "./en/palette.js";
19
+ import { en as en$19 } from "./en/transfer.js";
19
20
  //#region src/i18n/en.ts
20
21
  /** The English catalog: the same keys as `de`, checked per area file. */
21
22
  const en = {
@@ -36,7 +37,8 @@ const en = {
36
37
  ...en$15,
37
38
  ...en$16,
38
39
  ...en$17,
39
- ...en$18
40
+ ...en$18,
41
+ ...en$19
40
42
  };
41
43
  //#endregion
42
44
  export { en };
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","names":["common","toolbar","block","settings","ai","comments","authors","composites","media","themes","tree","transcript","tables","outline","mentions","integrations","markdown","palette"],"sources":["../../src/i18n/en.ts"],"sourcesContent":["import { en as common } from './en/common'\nimport { en as toolbar } from './en/toolbar'\nimport { en as block } from './en/block'\nimport { en as settings } from './en/settings'\nimport { en as ai } from './en/ai'\nimport { en as comments } from './en/comments'\nimport { en as authors } from './en/authors'\nimport { en as composites } from './en/composites'\nimport { en as media } from './en/media'\nimport { en as themes } from './en/themes'\nimport { en as tree } from './en/tree'\nimport { en as transcript } from './en/transcript'\nimport { en as tables } from './en/tables'\nimport { en as outline } from './en/outline'\nimport { en as mentions } from './en/mentions'\nimport { en as integrations } from './en/integrations'\nimport { en as markdown } from './en/markdown'\nimport { en as palette } from './en/palette'\nimport type { de } from './de'\n\n/** The English catalog: the same keys as `de`, checked per area file. */\nexport const en: { [K in keyof typeof de]: string } = {\n ...common,\n ...toolbar,\n ...block,\n ...settings,\n ...ai,\n ...comments,\n ...authors,\n ...composites,\n ...media,\n ...themes,\n ...tree,\n ...transcript,\n ...tables,\n ...outline,\n ...mentions,\n ...integrations,\n ...markdown,\n ...palette,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAa,KAAyC;CACpD,GAAGA;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;AACL"}
1
+ {"version":3,"file":"en.js","names":["common","toolbar","block","settings","ai","comments","authors","composites","media","themes","tree","transcript","tables","outline","mentions","integrations","markdown","palette","transfer"],"sources":["../../src/i18n/en.ts"],"sourcesContent":["import { en as common } from './en/common'\nimport { en as toolbar } from './en/toolbar'\nimport { en as block } from './en/block'\nimport { en as settings } from './en/settings'\nimport { en as ai } from './en/ai'\nimport { en as comments } from './en/comments'\nimport { en as authors } from './en/authors'\nimport { en as composites } from './en/composites'\nimport { en as media } from './en/media'\nimport { en as themes } from './en/themes'\nimport { en as tree } from './en/tree'\nimport { en as transcript } from './en/transcript'\nimport { en as tables } from './en/tables'\nimport { en as outline } from './en/outline'\nimport { en as mentions } from './en/mentions'\nimport { en as integrations } from './en/integrations'\nimport { en as markdown } from './en/markdown'\nimport { en as palette } from './en/palette'\nimport { en as transfer } from './en/transfer'\nimport type { de } from './de'\n\n/** The English catalog: the same keys as `de`, checked per area file. */\nexport const en: { [K in keyof typeof de]: string } = {\n ...common,\n ...toolbar,\n ...block,\n ...settings,\n ...ai,\n ...comments,\n ...authors,\n ...composites,\n ...media,\n ...themes,\n ...tree,\n ...transcript,\n ...tables,\n ...outline,\n ...mentions,\n ...integrations,\n ...markdown,\n ...palette,\n ...transfer,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,KAAyC;CACpD,GAAGA;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;AACL"}
@@ -1,8 +1,8 @@
1
+ import { AI_LIMITS } from "../../features/ai/protocol/tasks.js";
1
2
  import { aiBlockDataOf, aiContextOf } from "../../core/pipeline.js";
2
3
  import { captureRange, releaseRanges, resolveRange } from "../../core/doc-anchors.js";
3
4
  import "../../features/composites/nodes.js";
4
5
  import { compositeAiBrief } from "../../features/composites/ai-brief.js";
5
- import { AI_LIMITS } from "../../features/ai/protocol/tasks.js";
6
6
  import { aiApplyFailure, documentMarkdown } from "../../features/ai/ai-apply.js";
7
7
  import { startAiReview } from "../../features/ai/ai-review.js";
8
8
  import { notifyAiRateLimited } from "../../features/ai/rate-limit.js";
@@ -1,7 +1,7 @@
1
+ import { AI_LIMITS } from "../../features/ai/protocol/tasks.js";
1
2
  import { parseBlocks } from "../../core/pipeline.js";
2
3
  import { captureRange, releaseRanges, resolveRange } from "../../core/doc-anchors.js";
3
4
  import "../../features/composites/nodes.js";
4
- import { AI_LIMITS } from "../../features/ai/protocol/tasks.js";
5
5
  import { notifyAiRateLimited } from "../../features/ai/rate-limit.js";
6
6
  import { postAiSse } from "../../features/ai/ai-sse.js";
7
7
  import { Fragment } from "@tiptap/pm/model";