@skaile/forge-editor 6.2.1 → 6.4.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.
- package/CHANGELOG.md +20 -1
- package/dist/adapters/nitro.d.ts +11 -3
- package/dist/adapters/nitro.js +2 -1
- package/dist/adapters/nitro.js.map +1 -1
- package/dist/code/CodeSurface.vue.d.ts +1 -1
- package/dist/document/DocumentSurface.vue.d.ts +1 -1
- package/dist/features/ai/index.d.ts +2 -2
- package/dist/features/ai/index.js +2 -2
- package/dist/features/ai/protocol/chat.d.ts +5 -0
- package/dist/features/ai/protocol/chat.js +7 -4
- package/dist/features/ai/protocol/chat.js.map +1 -1
- package/dist/features/ai/protocol/index.d.ts +2 -2
- package/dist/features/ai/protocol/index.js +2 -2
- package/dist/features/composites/components/CompositeInspector.js +8 -8
- package/dist/features/composites/components/SettingsEditingTab.js +16 -3
- package/dist/features/composites/components/SettingsEditingTab.js.map +1 -1
- package/dist/features/composites/feature.js +26 -6
- package/dist/features/composites/feature.js.map +1 -1
- package/dist/features/composites/index.d.ts +2 -2
- package/dist/features/composites/index.js +2 -2
- package/dist/features/composites/react/SettingsEditingTab.js +22 -0
- package/dist/features/composites/react/SettingsEditingTab.js.map +1 -1
- package/dist/features/composites/split.d.ts +19 -1
- package/dist/features/composites/split.js +57 -4
- package/dist/features/composites/split.js.map +1 -1
- package/dist/features/composites/vue.js +1 -1
- package/dist/i18n/de/composites.js +4 -0
- package/dist/i18n/de/composites.js.map +1 -1
- package/dist/i18n/de.d.ts +4 -0
- package/dist/i18n/en/composites.js +4 -0
- package/dist/i18n/en/composites.js.map +1 -1
- package/dist/markdown/MarkdownSurface.vue.d.ts +1 -1
- package/dist/server/chat-agent.d.ts +85 -0
- package/dist/server/chat-agent.js +61 -0
- package/dist/server/chat-agent.js.map +1 -0
- package/dist/server/document-tools.d.ts +22 -0
- package/dist/server/document-tools.js +190 -0
- package/dist/server/document-tools.js.map +1 -0
- package/dist/server/handlers/ai.d.ts +2 -1
- package/dist/server/handlers/ai.js +232 -121
- package/dist/server/handlers/ai.js.map +1 -1
- package/dist/server/handlers/context.d.ts +4 -1
- package/dist/server/handlers/context.js.map +1 -1
- package/dist/server/handlers/editor.d.ts +1 -0
- package/dist/server/index.d.ts +7 -3
- package/dist/server/index.js +5 -2
- package/dist/server/workspace-tools.d.ts +1 -0
- package/dist/server/workspace-tools.js +8 -3
- package/dist/server/workspace-tools.js.map +1 -1
- package/dist/settings/index.d.ts +3 -0
- package/dist/settings/index.js +7 -3
- package/dist/settings/index.js.map +1 -1
- package/dist/tree/DocumentTree.js +1 -1
- package/dist/tree/use-tree-model.js +1 -1
- package/dist/vue/compose.js +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split.js","names":[],"sources":["../../../src/features/composites/split.ts"],"sourcesContent":["// Splitting a Typed block: at the caret or by length, into sibling Typed blocks or into nested Typed blocks. The pure parts\n// (`splitBodyByLength`, `generatedTitle`, `childKindFor`, `splitComposite`) know nothing about the editor; the\n// `CompositeSplit` extension wraps them into commands. Generated parts get a title from their first sentence and hide it.\nimport { Extension } from '@tiptap/core'\nimport { Fragment, type Node as PMNode, type Schema } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { EDITOR_SETTINGS_DEFAULTS } from '../../settings'\nimport { typeIdOf } from '../../core/typed-block'\nimport { acceptsChild, type BlockType } from './block-types'\nimport { TITLE_HIDDEN_KEY } from './meta-keys'\nimport { COMPOSITE_CHROME_COUNT, compositeAround, compositeAt, blockTypesOf } from './nodes'\n\n/** Where the parts of a split go: next to the split Typed block (`siblings`) or into it as nested Typed blocks (`children`). */\nexport type SplitMode = 'siblings' | 'children'\n\n/** Longest generated title; a longer first sentence is cut and ends in `…`. */\nconst TITLE_MAX_CHARS = 60\n\n/**\n * Groups `blocks` in order so that no group exceeds `targetChars` text characters, never splitting inside a block: a\n * new group starts when adding the block would exceed the target and the group is not empty, so a single block longer\n * than the target forms a group of its own.\n */\nexport function splitBodyByLength(blocks: readonly PMNode[], targetChars: number): PMNode[][] {\n const groups: PMNode[][] = []\n let current: PMNode[] = []\n let size = 0\n for (const block of blocks) {\n const chars = block.textContent.length\n if (current.length && size + chars > targetChars) {\n groups.push(current)\n current = []\n size = 0\n }\n current.push(block)\n size += chars\n }\n if (current.length) groups.push(current)\n return groups\n}\n\n/** Text of the first non-empty textblock in `blocks` (nested ones included), or ''. */\nfunction firstText(blocks: readonly PMNode[]): string {\n let found = ''\n for (const block of blocks) {\n if (block.isTextblock) found = block.textContent.trim()\n else block.descendants((node) => {\n if (found) return false\n if (node.isTextblock) found = node.textContent.trim()\n return !node.isTextblock\n })\n if (found) return found\n }\n return ''\n}\n\n/**\n * Title for a part holding `blocks`: the first sentence of its first textblock (up to the first `.`, `!` or `?` that\n * is followed by white space or ends the text; the mark itself is left out), at most 60 characters, `…` appended when\n * cut. '' when the blocks hold no text.\n */\nexport function generatedTitle(blocks: readonly PMNode[]): string {\n const text = firstText(blocks).replace(/\\s+/g, ' ')\n const end = text.search(/[.!?](?=\\s|$)/)\n const sentence = (end === -1 ? text : text.slice(0, end)).trim()\n return sentence.length > TITLE_MAX_CHARS ? `${sentence.slice(0, TITLE_MAX_CHARS).trimEnd()}…` : sentence\n}\n\n/**\n * Kind of the nested Typed blocks a split of a `parentKind` Typed block creates: `defaultBlockType` when the parent accepts it, else\n * the parent's own kind when it accepts itself, else null (the split is refused).\n */\nexport function childKindFor(kinds: readonly BlockType[], parentKind: string, defaultBlockType: string): string | null {\n if (acceptsChild(kinds, parentKind, defaultBlockType)) return defaultBlockType\n if (acceptsChild(kinds, parentKind, parentKind)) return parentKind\n return null\n}\n\nfunction chromeOf(composite: PMNode): PMNode[] {\n const chrome: PMNode[] = []\n for (let i = 0; i < COMPOSITE_CHROME_COUNT; i++) chrome.push(composite.child(i))\n return chrome\n}\n\nfunction bodyOf(composite: PMNode): PMNode[] {\n const body: PMNode[] = []\n composite.forEach((child, _offset, index) => {\n if (index >= COMPOSITE_CHROME_COUNT) body.push(child)\n })\n return body\n}\n\n/** A new Typed block of `kind` holding `group`, titled by `generatedTitle(group)`. */\nfunction newPart(schema: Schema, kind: string, group: readonly PMNode[], hideTitle: boolean): PMNode {\n const { nodes } = schema\n const title = generatedTitle(group)\n return nodes.typedBlock!.create({ blockType: kind, meta: hideTitle ? { [TITLE_HIDDEN_KEY]: true } : {} }, [\n nodes.typedBlockTitle!.create(null, title ? schema.text(title) : null),\n nodes.typedBlockDescription!.create(),\n nodes.typedBlockTags!.create(),\n ...(group.length ? group : [nodes.paragraph!.create()]),\n ])\n}\n\n/**\n * The nodes that replace `composite` once its body is cut into `groups` (in order, each non-empty).\n * - `children`: one node, `composite` with its own title, description, tags and meta whose body is one new Typed block of\n * `childKind` per group.\n * - `siblings`: `composite` itself keeping the first group, then one new Typed block of the same Block type per further group.\n * New parts carry a generated title, hidden when `hideTitles`, and no block id.\n */\nexport function splitComposite(schema: Schema, composite: PMNode, groups: readonly (readonly PMNode[])[], mode: SplitMode, childKind: string, hideTitles: boolean): PMNode[] {\n const chrome = chromeOf(composite)\n if (mode === 'children') return [composite.copy(Fragment.from([...chrome, ...groups.map(group => newPart(schema, childKind, group, hideTitles))]))]\n const [first = [], ...rest] = groups\n return [\n composite.copy(Fragment.from([...chrome, ...(first.length ? first : [schema.nodes.paragraph!.create()])])),\n ...rest.map(group => newPart(schema, typeIdOf(composite), group, hideTitles)),\n ]\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n compositeSplit: {\n /**\n * Split the caret's innermost Typed block in front of the body block holding the caret (refused when that is the first body block or the caret is not in a body): the part before and the part from the caret on become sibling Typed blocks or nested Typed blocks (`children`, of the default Block type or the parent's own; refused when neither is accepted). The caret moves into the new part.\n */\n splitCompositeAtCaret: (options: { mode: SplitMode }) => ReturnType\n /**\n * Split the Typed block at `pos` (default: the caret's innermost one) into parts of about `targetChars` characters (default: setting `blocks.splitTargetChars`) without cutting inside a block. Refused with fewer than two parts, or in `children` mode when no child Block type is accepted. The generated titles are hidden.\n */\n splitCompositeByLength: (options: { mode: SplitMode, targetChars?: number, pos?: number }) => ReturnType\n }\n }\n}\n\n/** Options of `CompositeSplit`: read on every use, so a changed setting applies without recreating the editor. */\nexport interface CompositeSplitOptions {\n /** Kind of the nested Typed blocks a `children` split creates when the parent accepts it (setting `blocks.defaultBlockType`). */\n defaultBlockType: () => string\n /** Target size in characters of a length split (setting `blocks.splitTargetChars`). */\n targetChars: () => number\n}\n\n/** Position right in front of the body of `composite`, which starts at `pos`. */\nfunction bodyStartOf(pos: number, composite: PMNode): number {\n return pos + 1 + chromeOf(composite).reduce((size, child) => size + child.nodeSize, 0)\n}\n\n/** Position in front of the body of the last part among `nodes`, which replaced a composite starting at `pos`. */\nfunction lastPartBodyStart(pos: number, nodes: readonly PMNode[], mode: SplitMode): number {\n if (mode === 'children') {\n const parent = nodes[0]!\n const last = parent.lastChild!\n return bodyStartOf(pos + parent.nodeSize - 1 - last.nodeSize, last)\n }\n const last = nodes[nodes.length - 1]!\n return bodyStartOf(pos + nodes.reduce((size, node) => size + node.nodeSize, 0) - last.nodeSize, last)\n}\n\n/** Client-only, no schema: the split commands of Typed blocks. */\nexport const CompositeSplit = Extension.create<CompositeSplitOptions>({\n name: 'compositeSplit',\n addOptions: () => ({\n defaultBlockType: () => EDITOR_SETTINGS_DEFAULTS.blocks.defaultBlockType,\n targetChars: () => EDITOR_SETTINGS_DEFAULTS.blocks.splitTargetChars,\n }),\n addCommands() {\n /** The Block type of the nested Typed blocks (`children`) or of the composite itself (`siblings`); null when a `children` split has no accepted Block type. */\n const partKind = (composite: PMNode, mode: SplitMode): string | null =>\n mode === 'siblings' ? typeIdOf(composite) : childKindFor(blockTypesOf(this.editor), typeIdOf(composite), this.options.defaultBlockType())\n\n return {\n splitCompositeAtCaret: ({ mode }) => ({ state, tr, dispatch }) => {\n const { $head } = state.selection\n const found = compositeAround($head)\n if (!found) return false\n const index = $head.index(found.depth) - COMPOSITE_CHROME_COUNT\n if (index < 1) return false\n const kind = partKind(found.node, mode)\n if (kind === null) return false\n if (dispatch) {\n const body = bodyOf(found.node)\n const nodes = splitComposite(state.schema, found.node, [body.slice(0, index), body.slice(index)], mode, kind, true)\n tr.replaceWith(found.pos, found.pos + found.node.nodeSize, nodes)\n tr.setSelection(TextSelection.near(tr.doc.resolve(lastPartBodyStart(found.pos, nodes, mode))))\n }\n return true\n },\n\n splitCompositeByLength: ({ mode, targetChars, pos }) => ({ state, tr, dispatch }) => {\n const found = compositeAt(state, pos)\n if (!found) return false\n const groups = splitBodyByLength(bodyOf(found.node), targetChars ?? this.options.targetChars())\n if (groups.length < 2) return false\n const kind = partKind(found.node, mode)\n if (kind === null) return false\n if (dispatch) tr.replaceWith(found.pos, found.pos + found.node.nodeSize, splitComposite(state.schema, found.node, groups, mode, kind, true))\n return true\n },\n }\n },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"split.js","names":[],"sources":["../../../src/features/composites/split.ts"],"sourcesContent":["// Splitting a Typed block: at the caret, by length or at its horizontal rules, into sibling Typed blocks or into nested Typed\n// blocks; typing `---` on an empty body line splits it right there. The pure parts (`splitBodyByLength`, `splitBodyAtRules`,\n// `generatedTitle`, `childKindFor`, `splitComposite`) know nothing about the editor; the `CompositeSplit` extension wraps them\n// into commands and the input rule. Generated parts get a title from their first sentence and hide it.\nimport { Extension, InputRule } from '@tiptap/core'\nimport { Fragment, type Node as PMNode, type Schema } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { EDITOR_SETTINGS_DEFAULTS } from '../../settings'\nimport { abilitiesAt, capabilitiesOf } from '../../core'\nimport { ABILITY } from '../../core/schema'\nimport { typeIdOf } from '../../core/typed-block'\nimport { acceptsChild, type BlockType } from './block-types'\nimport { TITLE_HIDDEN_KEY } from './meta-keys'\nimport { COMPOSITE_CHROME_COUNT, compositeAround, compositeAt, blockTypesOf } from './nodes'\n\n/** Where the parts of a split go: next to the split Typed block (`siblings`) or into it as nested Typed blocks (`children`). */\nexport type SplitMode = 'siblings' | 'children'\n\n/** Longest generated title; a longer first sentence is cut and ends in `…`. */\nconst TITLE_MAX_CHARS = 60\n\n/**\n * Groups `blocks` in order so that no group exceeds `targetChars` text characters, never splitting inside a block: a\n * new group starts when adding the block would exceed the target and the group is not empty, so a single block longer\n * than the target forms a group of its own.\n */\nexport function splitBodyByLength(blocks: readonly PMNode[], targetChars: number): PMNode[][] {\n const groups: PMNode[][] = []\n let current: PMNode[] = []\n let size = 0\n for (const block of blocks) {\n const chars = block.textContent.length\n if (current.length && size + chars > targetChars) {\n groups.push(current)\n current = []\n size = 0\n }\n current.push(block)\n size += chars\n }\n if (current.length) groups.push(current)\n return groups\n}\n\n/** Name of the horizontal rule node (StarterKit). */\nconst RULE_NODE = 'horizontalRule'\n\n/**\n * Groups `blocks` at their horizontal rules: the blocks between two rules form a group, the rules themselves are dropped,\n * and so are empty groups (a rule first, last or right after another).\n */\nexport function splitBodyAtRules(blocks: readonly PMNode[]): PMNode[][] {\n const groups: PMNode[][] = [[]]\n for (const block of blocks) {\n if (block.type.name === RULE_NODE) groups.push([])\n else groups[groups.length - 1]!.push(block)\n }\n return groups.filter(group => group.length > 0)\n}\n\n/** Text of the first non-empty textblock in `blocks` (nested ones included), or ''. */\nfunction firstText(blocks: readonly PMNode[]): string {\n let found = ''\n for (const block of blocks) {\n if (block.isTextblock) found = block.textContent.trim()\n else block.descendants((node) => {\n if (found) return false\n if (node.isTextblock) found = node.textContent.trim()\n return !node.isTextblock\n })\n if (found) return found\n }\n return ''\n}\n\n/**\n * Title for a part holding `blocks`: the first sentence of its first textblock (up to the first `.`, `!` or `?` that\n * is followed by white space or ends the text; the mark itself is left out), at most 60 characters, `…` appended when\n * cut. '' when the blocks hold no text.\n */\nexport function generatedTitle(blocks: readonly PMNode[]): string {\n const text = firstText(blocks).replace(/\\s+/g, ' ')\n const end = text.search(/[.!?](?=\\s|$)/)\n const sentence = (end === -1 ? text : text.slice(0, end)).trim()\n return sentence.length > TITLE_MAX_CHARS ? `${sentence.slice(0, TITLE_MAX_CHARS).trimEnd()}…` : sentence\n}\n\n/**\n * Kind of the nested Typed blocks a split of a `parentKind` Typed block creates: `defaultBlockType` when the parent accepts it, else\n * the parent's own kind when it accepts itself, else null (the split is refused).\n */\nexport function childKindFor(kinds: readonly BlockType[], parentKind: string, defaultBlockType: string): string | null {\n if (acceptsChild(kinds, parentKind, defaultBlockType)) return defaultBlockType\n if (acceptsChild(kinds, parentKind, parentKind)) return parentKind\n return null\n}\n\nfunction chromeOf(composite: PMNode): PMNode[] {\n const chrome: PMNode[] = []\n for (let i = 0; i < COMPOSITE_CHROME_COUNT; i++) chrome.push(composite.child(i))\n return chrome\n}\n\nfunction bodyOf(composite: PMNode): PMNode[] {\n const body: PMNode[] = []\n composite.forEach((child, _offset, index) => {\n if (index >= COMPOSITE_CHROME_COUNT) body.push(child)\n })\n return body\n}\n\n/** A new Typed block of `kind` holding `group`, titled by `generatedTitle(group)`. */\nfunction newPart(schema: Schema, kind: string, group: readonly PMNode[], hideTitle: boolean): PMNode {\n const { nodes } = schema\n const title = generatedTitle(group)\n return nodes.typedBlock!.create({ blockType: kind, meta: hideTitle ? { [TITLE_HIDDEN_KEY]: true } : {} }, [\n nodes.typedBlockTitle!.create(null, title ? schema.text(title) : null),\n nodes.typedBlockDescription!.create(),\n nodes.typedBlockTags!.create(),\n ...(group.length ? group : [nodes.paragraph!.create()]),\n ])\n}\n\n/**\n * The nodes that replace `composite` once its body is cut into `groups` (in order, each non-empty).\n * - `children`: one node, `composite` with its own title, description, tags and meta whose body is one new Typed block of\n * `childKind` per group.\n * - `siblings`: `composite` itself keeping the first group, then one new Typed block of the same Block type per further group.\n * New parts carry a generated title, hidden when `hideTitles`, and no block id.\n */\nexport function splitComposite(schema: Schema, composite: PMNode, groups: readonly (readonly PMNode[])[], mode: SplitMode, childKind: string, hideTitles: boolean): PMNode[] {\n const chrome = chromeOf(composite)\n if (mode === 'children') return [composite.copy(Fragment.from([...chrome, ...groups.map(group => newPart(schema, childKind, group, hideTitles))]))]\n const [first = [], ...rest] = groups\n return [\n composite.copy(Fragment.from([...chrome, ...(first.length ? first : [schema.nodes.paragraph!.create()])])),\n ...rest.map(group => newPart(schema, typeIdOf(composite), group, hideTitles)),\n ]\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n compositeSplit: {\n /**\n * Split the caret's innermost Typed block in front of the body block holding the caret (refused when that is the first body block or the caret is not in a body): the part before and the part from the caret on become sibling Typed blocks or nested Typed blocks (`children`, of the default Block type or the parent's own; refused when neither is accepted). The caret moves into the new part.\n */\n splitCompositeAtCaret: (options: { mode: SplitMode }) => ReturnType\n /**\n * Split the Typed block at `pos` (default: the caret's innermost one) into parts of about `targetChars` characters (default: setting `blocks.splitTargetChars`) without cutting inside a block. Refused with fewer than two parts, or in `children` mode when no child Block type is accepted. The generated titles are hidden.\n */\n splitCompositeByLength: (options: { mode: SplitMode, targetChars?: number, pos?: number }) => ReturnType\n /**\n * Split the Typed block at `pos` (default: the caret's innermost one) at the horizontal rules of its body; the rules go away. Refused with fewer than two non-empty parts, or in `children` mode when no child Block type is accepted. The generated titles are hidden.\n */\n splitCompositeAtRules: (options: { mode: SplitMode, pos?: number }) => ReturnType\n }\n }\n}\n\n/** Options of `CompositeSplit`: read on every use, so a changed setting applies without recreating the editor. */\nexport interface CompositeSplitOptions {\n /** Kind of the nested Typed blocks a `children` split creates when the parent accepts it (setting `blocks.defaultBlockType`). */\n defaultBlockType: () => string\n /** Target size in characters of a length split (setting `blocks.splitTargetChars`). */\n targetChars: () => number\n /** Typing `---` on an empty body line of a Typed block splits it there instead of inserting a rule (setting `blocks.splitOnRule`). */\n splitOnRule: () => boolean\n}\n\n/** `---` typed at the start of a line; `—-` is the same after the typography extension turned `--` into an em dash. */\nconst RULE_INPUT = /^(?:---|—-)$/\n\n/** Position right in front of the body of `composite`, which starts at `pos`. */\nfunction bodyStartOf(pos: number, composite: PMNode): number {\n return pos + 1 + chromeOf(composite).reduce((size, child) => size + child.nodeSize, 0)\n}\n\n/** Position in front of the body of the last part among `nodes`, which replaced a composite starting at `pos`. */\nfunction lastPartBodyStart(pos: number, nodes: readonly PMNode[], mode: SplitMode): number {\n if (mode === 'children') {\n const parent = nodes[0]!\n const last = parent.lastChild!\n return bodyStartOf(pos + parent.nodeSize - 1 - last.nodeSize, last)\n }\n const last = nodes[nodes.length - 1]!\n return bodyStartOf(pos + nodes.reduce((size, node) => size + node.nodeSize, 0) - last.nodeSize, last)\n}\n\n/**\n * Client-only, no schema: the split commands of Typed blocks and the `---` input rule. Priority above the `abilities`\n * extension (1000) and StarterKit's horizontal rule: the abilities gate types `---` literally where rules are not allowed,\n * and the rule's own input rule matches `---` too. This rule runs first and leaves the line to them whenever it does not split.\n */\nexport const CompositeSplit = Extension.create<CompositeSplitOptions>({\n name: 'compositeSplit',\n priority: 1001,\n addOptions: () => ({\n defaultBlockType: () => EDITOR_SETTINGS_DEFAULTS.blocks.defaultBlockType,\n targetChars: () => EDITOR_SETTINGS_DEFAULTS.blocks.splitTargetChars,\n splitOnRule: () => EDITOR_SETTINGS_DEFAULTS.blocks.splitOnRule,\n }),\n addInputRules() {\n return [new InputRule({\n find: RULE_INPUT,\n // Splits only on an otherwise empty paragraph directly in a Typed block's body, past its first body block, under the\n // same gates as the split block actions (capabilities `container` and `title`, ability `composite.meta`); the\n // paragraph goes away and the caret moves into the new sibling part (empty when the line was the last one).\n handler: ({ state, range }) => {\n if (!this.options.splitOnRule()) return null\n const $from = state.doc.resolve(range.from)\n if ($from.parent.type.name !== 'paragraph' || $from.parentOffset !== 0 || $from.end() !== range.to) return null\n const found = compositeAround($from)\n if (!found || found.depth !== $from.depth - 1) return null\n const capabilities = capabilitiesOf(this.editor, found.node)\n if (!capabilities.has('container') || !capabilities.has('title') || !abilitiesAt(this.editor, found.pos, found.node).has(ABILITY.compositeMeta)) return null\n const index = $from.index(found.depth) - COMPOSITE_CHROME_COUNT\n if (index < 1) return null\n const body = bodyOf(found.node)\n const nodes = splitComposite(state.schema, found.node, [body.slice(0, index), body.slice(index + 1)], 'siblings', typeIdOf(found.node), true)\n state.tr.replaceWith(found.pos, found.pos + found.node.nodeSize, nodes)\n state.tr.setSelection(TextSelection.near(state.tr.doc.resolve(lastPartBodyStart(found.pos, nodes, 'siblings'))))\n },\n })]\n },\n addCommands() {\n /** The Block type of the nested Typed blocks (`children`) or of the composite itself (`siblings`); null when a `children` split has no accepted Block type. */\n const partKind = (composite: PMNode, mode: SplitMode): string | null =>\n mode === 'siblings' ? typeIdOf(composite) : childKindFor(blockTypesOf(this.editor), typeIdOf(composite), this.options.defaultBlockType())\n\n return {\n splitCompositeAtCaret: ({ mode }) => ({ state, tr, dispatch }) => {\n const { $head } = state.selection\n const found = compositeAround($head)\n if (!found) return false\n const index = $head.index(found.depth) - COMPOSITE_CHROME_COUNT\n if (index < 1) return false\n const kind = partKind(found.node, mode)\n if (kind === null) return false\n if (dispatch) {\n const body = bodyOf(found.node)\n const nodes = splitComposite(state.schema, found.node, [body.slice(0, index), body.slice(index)], mode, kind, true)\n tr.replaceWith(found.pos, found.pos + found.node.nodeSize, nodes)\n tr.setSelection(TextSelection.near(tr.doc.resolve(lastPartBodyStart(found.pos, nodes, mode))))\n }\n return true\n },\n\n splitCompositeByLength: ({ mode, targetChars, pos }) => ({ state, tr, dispatch }) => {\n const found = compositeAt(state, pos)\n if (!found) return false\n const groups = splitBodyByLength(bodyOf(found.node), targetChars ?? this.options.targetChars())\n if (groups.length < 2) return false\n const kind = partKind(found.node, mode)\n if (kind === null) return false\n if (dispatch) tr.replaceWith(found.pos, found.pos + found.node.nodeSize, splitComposite(state.schema, found.node, groups, mode, kind, true))\n return true\n },\n\n splitCompositeAtRules: ({ mode, pos }) => ({ state, tr, dispatch }) => {\n const found = compositeAt(state, pos)\n if (!found) return false\n const groups = splitBodyAtRules(bodyOf(found.node))\n if (groups.length < 2) return false\n const kind = partKind(found.node, mode)\n if (kind === null) return false\n if (dispatch) tr.replaceWith(found.pos, found.pos + found.node.nodeSize, splitComposite(state.schema, found.node, groups, mode, kind, true))\n return true\n },\n }\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { embedViewOptions } from "./embed-dom.js";
|
|
2
2
|
import { typedBlockViewOptions } from "./node-views.js";
|
|
3
3
|
import { compositeFeatureCore } from "./feature.js";
|
|
4
|
+
import _sfc_main$13 from "./components/DocumentBadges.js";
|
|
4
5
|
import _sfc_main from "./components/BlockEmbedView.js";
|
|
5
6
|
import _sfc_main$1 from "./components/CiteView.js";
|
|
6
7
|
import _sfc_main$11 from "./components/CompositeView.js";
|
|
@@ -20,7 +21,6 @@ import _sfc_main$14 from "./components/EdgesSection.js";
|
|
|
20
21
|
import _sfc_main$16 from "./components/FocusChip.js";
|
|
21
22
|
import _sfc_main$18 from "./components/ReferenceView.js";
|
|
22
23
|
import _sfc_main$19 from "./components/SettingsEditingTab.js";
|
|
23
|
-
import _sfc_main$13 from "./components/DocumentBadges.js";
|
|
24
24
|
import _sfc_main$6 from "./components/CompositeInspector.js";
|
|
25
25
|
import _sfc_main$9 from "./components/CompositeTable.js";
|
|
26
26
|
import { VueNodeViewRenderer } from "@tiptap/vue-3";
|
|
@@ -219,8 +219,12 @@ const de = {
|
|
|
219
219
|
"composites.split.children": "In Unterblöcke teilen",
|
|
220
220
|
"composites.split.lengthChildren": "Nach Länge in Unterblöcke teilen",
|
|
221
221
|
"composites.split.lengthSiblings": "Nach Länge in Blöcke teilen",
|
|
222
|
+
"composites.split.rulesChildren": "An Trennlinien in Unterblöcke teilen",
|
|
223
|
+
"composites.split.rulesSiblings": "An Trennlinien in Blöcke teilen",
|
|
222
224
|
"composites.merge.next": "Mit nächstem zusammenführen",
|
|
223
225
|
"settings.editing.splitTargetChars": "Zielgröße beim Teilen (Zeichen)",
|
|
226
|
+
"settings.editing.splitOnRule.label": "--- teilt den Block",
|
|
227
|
+
"settings.editing.splitOnRule.description": "--- in einer leeren Zeile eines Blocks teilt ihn dort in zwei Blöcke, statt eine Trennlinie einzufügen.",
|
|
224
228
|
"composites.toolbar.toKind": "In Block umwandeln",
|
|
225
229
|
"composites.toolbar.structure": "Gliederung umwandeln",
|
|
226
230
|
"composites.menu.kindHeading": "Block",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composites.js","names":[],"sources":["../../../src/i18n/de/composites.ts"],"sourcesContent":["export const de = {\n // Fallback title of an untitled Typed block (outline, table).\n 'composites.untitled': '(ohne Titel)',\n\n // Built-in Block types (`defaultBlockTypes`): label, placeholders of the empty title/description, fields and their choices.\n 'composites.kind.section.label': 'Abschnitt',\n 'composites.kind.section.title': 'Überschrift',\n 'composites.kind.section.description': 'Zusammenfassung',\n 'composites.kind.task.label': 'Aufgabe',\n 'composites.kind.task.title': 'Aufgabe',\n 'composites.kind.task.description': 'Beschreibung',\n 'composites.kind.task.field.status': 'Status',\n 'composites.kind.task.status.open': 'Offen',\n 'composites.kind.task.status.doing': 'In Arbeit',\n 'composites.kind.task.status.done': 'Erledigt',\n 'composites.kind.task.field.due': 'Fällig',\n 'composites.kind.task.field.assignee': 'Zuständig',\n 'composites.kind.note.label': 'Notiz',\n 'composites.kind.note.title': 'Titel',\n 'composites.kind.note.description': 'Kurzbeschreibung',\n 'composites.kind.document.label': 'Dokument',\n 'composites.kind.document.title': 'Dokumentname',\n 'composites.kind.document.description': 'Zusammenfassung',\n 'composites.kind.document.field.filename': 'Dateiname',\n 'composites.kind.document.field.mimeType': 'Typ',\n 'composites.kind.document.field.size': 'Größe (Bytes)',\n 'composites.kind.document.field.importedAt': 'Importiert',\n 'composites.kind.recording.label': 'Aufnahme',\n 'composites.kind.recording.title': 'Titel der Aufnahme',\n 'composites.kind.recording.description': 'Zusammenfassung',\n 'composites.kind.recording.field.filename': 'Dateiname',\n 'composites.kind.recording.field.mimeType': 'Typ',\n 'composites.kind.recording.field.size': 'Größe (Bytes)',\n 'composites.kind.recording.field.importedAt': 'Importiert',\n 'composites.kind.recording.field.recordedAt': 'Aufgenommen am',\n 'composites.kind.recording.field.participants': 'Beteiligte',\n 'composites.kind.recording.field.durationSeconds': 'Dauer (Sekunden)',\n 'composites.kind.paper.label': 'Paper',\n 'composites.kind.paper.title': 'Titel der Arbeit',\n 'composites.kind.paper.description': 'Zusammenfassung',\n 'composites.kind.paper.field.filename': 'Dateiname',\n 'composites.kind.paper.field.mimeType': 'Typ',\n 'composites.kind.paper.field.size': 'Größe (Bytes)',\n 'composites.kind.paper.field.importedAt': 'Importiert',\n 'composites.kind.paper.field.bib': 'Literaturangabe',\n 'composites.kind.paper.field.doi': 'DOI',\n 'composites.kind.book.label': 'Buch',\n 'composites.kind.book.title': 'Buchtitel',\n 'composites.kind.book.description': 'Zusammenfassung',\n 'composites.kind.book.field.filename': 'Dateiname',\n 'composites.kind.book.field.mimeType': 'Typ',\n 'composites.kind.book.field.size': 'Größe (Bytes)',\n 'composites.kind.book.field.importedAt': 'Importiert',\n 'composites.kind.book.field.bib': 'Literaturangabe',\n 'composites.kind.book.field.isbn': 'ISBN',\n 'composites.kind.figure.label': 'Bild',\n 'composites.kind.figure.title': 'Bildtitel',\n 'composites.kind.figure.description': 'Bildbeschreibung',\n 'composites.kind.figure.field.filename': 'Dateiname',\n 'composites.kind.figure.field.mimeType': 'Typ',\n 'composites.kind.figure.field.size': 'Größe (Bytes)',\n 'composites.kind.figure.field.importedAt': 'Importiert',\n 'composites.kind.figure.field.credit': 'Quellenangabe',\n 'composites.kind.rendition.label': 'Lesefassung',\n 'composites.kind.rendition.title': 'Transkript, Volltext, Beschreibung …',\n 'composites.kind.rendition.description': 'Hinweis zur Entstehung',\n 'composites.kind.rendition.field.derivation': 'Herkunft',\n 'composites.kind.rendition.field.language': 'Sprache',\n /** Literature types of a `bibliography` field (CSL-JSON `type`). */\n 'composites.bib.type.article-journal': 'Zeitschriftenartikel',\n 'composites.bib.type.book': 'Buch',\n 'composites.bib.type.chapter': 'Buchkapitel',\n 'composites.bib.type.paper-conference': 'Konferenzbeitrag',\n 'composites.bib.type.thesis': 'Abschlussarbeit',\n 'composites.bib.type.report': 'Bericht',\n 'composites.bib.type.webpage': 'Webseite',\n 'composites.bib.type.article': 'Artikel',\n 'composites.bib.type.dataset': 'Datensatz',\n /** The `bibliography` field editor. */\n 'composites.bib.field.type': 'Art',\n 'composites.bib.field.authors': 'Autorinnen und Autoren',\n 'composites.bib.field.authorsHelp': 'Eine Person pro Zeile: Nachname, Vorname',\n 'composites.bib.field.year': 'Jahr',\n 'composites.bib.field.containerTitle': 'Zeitschrift / Sammelwerk',\n 'composites.bib.field.volume': 'Band',\n 'composites.bib.field.issue': 'Heft',\n 'composites.bib.field.page': 'Seiten',\n 'composites.bib.field.publisher': 'Verlag',\n 'composites.bib.field.doi': 'DOI',\n 'composites.bib.field.isbn': 'ISBN',\n 'composites.bib.field.url': 'URL',\n 'composites.bib.field.abstract': 'Kurzfassung',\n 'composites.bib.copyBibtex': 'BibTeX kopieren',\n 'composites.bib.copied': 'BibTeX kopiert',\n 'composites.bib.fetchDoi': 'DOI abrufen',\n 'composites.kind.folder.label': 'Ordner',\n 'composites.kind.folder.title': 'Ordnername',\n 'composites.kind.folder.description': 'Beschreibung',\n 'composites.kind.collection.label': 'Sammlung',\n 'composites.kind.collection.title': 'Name der Sammlung',\n 'composites.kind.collection.description': 'Wofür die Sammlung gedacht ist',\n 'composites.kind.collection.items': 'Einträge',\n 'composites.kind.collection.query': 'Abfrage',\n /** The collection's list and the action that adds a block to one. */\n 'composites.collection.list': 'Einträge der Sammlung',\n 'composites.collection.empty': 'Noch keine Einträge',\n 'composites.collection.fill': 'Aus Abfrage füllen',\n 'composites.collection.filled.one': '1 Block hinzugefügt',\n 'composites.collection.filled.other': '{n} Blöcke hinzugefügt',\n 'composites.collection.filledNone': 'Keine neuen Treffer',\n 'composites.collection.fillFailed': 'Die Abfrage ist fehlgeschlagen',\n 'composites.collection.moveUp': '„{title}“ nach oben',\n 'composites.collection.moveDown': '„{title}“ nach unten',\n 'composites.collection.add': 'Zu Sammlung hinzufügen',\n 'composites.kind.dataView.label': 'Ansicht',\n 'composites.kind.dataView.title': 'Name der Ansicht',\n 'composites.kind.dataView.description': 'Was die Ansicht zeigt',\n 'composites.kind.dataView.query': 'Abfrage',\n 'composites.kind.dataView.layout': 'Anordnung',\n /** The data view block: its layouts, states and the line under it. */\n 'composites.slash.dataView': 'Ansicht',\n 'composites.dataView.layout.table': 'Tabelle',\n 'composites.dataView.layout.list': 'Liste',\n 'composites.dataView.layout.board': 'Brett',\n 'composites.dataView.layout.label': 'Anordnung der Ansicht',\n 'composites.dataView.noQuery': 'Diese Ansicht hat noch keine Abfrage.',\n 'composites.dataView.needsGroup': 'Ein Brett braucht eine Gruppierung: Die Abfrage nennt kein Feld, nach dem die Spalten gebildet werden.',\n 'composites.dataView.loading': 'Ansicht wird geladen …',\n 'composites.dataView.error': 'Die Abfrage der Ansicht ist fehlgeschlagen',\n 'composites.dataView.empty': 'Keine Treffer',\n 'composites.dataView.count.one': '1 Treffer',\n 'composites.dataView.count.other': '{n} Treffer',\n 'composites.dataView.more': '{n} von {total} Treffern angezeigt',\n 'composites.dataView.documentOnly': 'Nur die Blöcke dieses Dokuments',\n 'composites.dataView.lane.none': 'Ohne Wert',\n 'composites.dataView.rows': 'Treffer der Ansicht',\n /** The query builder of a data view: a form over its stored query. */\n 'composites.queryBuilder.toggle': 'Abfrage bearbeiten',\n 'composites.queryBuilder.blockType': 'Blocktyp',\n 'composites.queryBuilder.blockType.none': 'Blocktyp wählen',\n 'composites.queryBuilder.noType': 'Wähle einen Blocktyp.',\n 'composites.queryBuilder.moreTypes': 'Die Abfrage liest mehrere Blocktypen: {types}. Ein anderer Typ ersetzt sie.',\n 'composites.queryBuilder.filter': 'Filter (alle Bedingungen)',\n 'composites.queryBuilder.filter.empty': 'Keine Bedingung: alle Blöcke des Typs.',\n 'composites.queryBuilder.filter.locked': 'Der Filter der Abfrage ist verschachtelt oder enthält „oder“ und bleibt unverändert.',\n 'composites.queryBuilder.filter.clear': 'Filter ersetzen',\n 'composites.queryBuilder.add': 'Bedingung hinzufügen',\n 'composites.queryBuilder.remove': 'Bedingung entfernen',\n 'composites.queryBuilder.field': 'Feld',\n 'composites.queryBuilder.operator': 'Vergleich',\n 'composites.queryBuilder.value': 'Wert',\n 'composites.queryBuilder.value.true': 'Ja',\n 'composites.queryBuilder.value.false': 'Nein',\n 'composites.queryBuilder.value.list': 'Werte, durch Komma getrennt',\n 'composites.queryBuilder.sort': 'Sortieren nach',\n 'composites.queryBuilder.sort.none': 'Keine Sortierung',\n 'composites.queryBuilder.sort.asc': 'Aufsteigend',\n 'composites.queryBuilder.sort.desc': 'Absteigend',\n 'composites.queryBuilder.group': 'Gruppieren nach',\n 'composites.queryBuilder.group.none': 'Keine Gruppierung',\n 'composites.queryBuilder.group.hideEmpty': 'Gruppe ohne Wert ausblenden',\n 'composites.queryBuilder.invalid': 'Die Abfrage ist noch nicht gespeichert: {n} offen.',\n 'composites.queryBuilder.pseudo.title': 'Titel',\n 'composites.queryBuilder.pseudo.tags': 'Tags',\n 'composites.queryBuilder.pseudo.type': 'Blocktyp',\n 'composites.queryBuilder.pseudo.id': 'Block-ID',\n 'composites.queryBuilder.pseudo.doc': 'Dokument',\n 'composites.queryBuilder.pseudo.basket': 'Farbe',\n 'composites.queryBuilder.op.eq': 'ist',\n 'composites.queryBuilder.op.ne': 'ist nicht',\n 'composites.queryBuilder.op.lt': 'kleiner als',\n 'composites.queryBuilder.op.lte': 'höchstens',\n 'composites.queryBuilder.op.gt': 'größer als',\n 'composites.queryBuilder.op.gte': 'mindestens',\n 'composites.queryBuilder.op.contains': 'enthält',\n 'composites.queryBuilder.op.startsWith': 'beginnt mit',\n 'composites.queryBuilder.op.isEmpty': 'ist leer',\n 'composites.queryBuilder.op.isNotEmpty': 'ist nicht leer',\n 'composites.queryBuilder.op.hasAny': 'hat eines von',\n 'composites.queryBuilder.op.hasAll': 'hat alle von',\n 'composites.queryBuilder.op.hasNone': 'hat keines von',\n 'composites.queryBuilder.op.before': 'vor',\n 'composites.queryBuilder.op.after': 'nach',\n 'composites.queryBuilder.op.on': 'am',\n /** The select that changes a Typed block's Block type (details popover, inspector). */\n 'composites.kind.select': 'Blocktyp',\n\n // Status chip.\n 'composites.status.none': 'Kein Status',\n 'composites.status.label': 'Status: {status}',\n\n // Feature: settings tab, `/` commands, block action, toolbar.\n 'composites.tab': 'Bearbeiten',\n 'composites.slash.section': 'Abschnitt',\n 'composites.slash.group': 'Überschriften in Blöcke',\n 'composites.slash.groupAll': 'Überschriften in Blöcke (verschachtelt)',\n 'composites.slash.flatten': 'Blöcke in Überschriften',\n 'composites.slash.flattenAll': 'Blöcke in Überschriften (alle Ebenen)',\n 'composites.blockAction.export': 'Als Markdown exportieren',\n 'composites.export.issues.one': '1 Hinweis',\n 'composites.export.issues.other': '{n} Hinweise',\n 'composites.export.issues.description': 'Der Export wurde trotzdem erstellt. Die Hinweise stehen im Inspektor unter „Export-Hinweise“.',\n 'composites.export.section': 'Export-Hinweise',\n 'composites.export.none': 'Keine Hinweise',\n 'composites.export.code.ai-unchecked': 'KI-Vorschlag ungeprüft',\n 'composites.export.code.stale-derived': 'Quelle geändert',\n 'composites.export.code.source-missing': 'Quelle fehlt',\n 'composites.export.code.unresolved-reference': 'Verweis ohne Ziel',\n 'composites.edges.section': 'Kanten',\n 'composites.edges.none': 'Keine Kanten',\n 'composites.edges.kind': 'Art der Kante',\n 'composites.edges.kindPlaceholder': 'z. B. stützt',\n 'composites.edges.target': 'Ziel suchen',\n 'composites.edges.noMatch': 'Kein Block gefunden',\n 'composites.edges.add': 'Kante hinzufügen',\n 'composites.edges.remove': 'Kante zu „{title}“ entfernen',\n 'composites.blockAction.bibtex': 'Literaturangabe exportieren (BibTeX)',\n 'composites.blockAction.details': 'Details',\n 'composites.render.block': 'Erzeugen als …',\n 'composites.render.document': 'Dokument erzeugen als …',\n 'composites.render.running': '„{target}“ wird erzeugt',\n 'composites.render.done': '„{target}“ ist fertig',\n 'composites.render.failed': '„{target}“ ist fehlgeschlagen',\n // Splitting a Typed block (block actions) and the target size setting.\n 'composites.split.here': 'Block hier teilen',\n 'composites.split.children': 'In Unterblöcke teilen',\n 'composites.split.lengthChildren': 'Nach Länge in Unterblöcke teilen',\n 'composites.split.lengthSiblings': 'Nach Länge in Blöcke teilen',\n 'composites.merge.next': 'Mit nächstem zusammenführen',\n 'settings.editing.splitTargetChars': 'Zielgröße beim Teilen (Zeichen)',\n 'composites.toolbar.toKind': 'In Block umwandeln',\n 'composites.toolbar.structure': 'Gliederung umwandeln',\n 'composites.menu.kindHeading': 'Block',\n 'composites.menu.toComposites': 'Überschriften in Blöcke',\n 'composites.menu.toComposites.top': 'Nur oberste Ebene',\n 'composites.menu.toComposites.top.description': 'Nur die höchste Überschriftenebene wird zu Blöcken',\n 'composites.menu.toComposites.all': 'Alle Ebenen (verschachtelt)',\n 'composites.menu.toComposites.all.description': 'Jede Überschriftenebene wird zu einem verschachtelten Block',\n 'composites.menu.toHeadings': 'Blöcke in Überschriften',\n 'composites.menu.toHeadings.top': 'Nur oberste Ebene',\n 'composites.menu.toHeadings.top.description': 'Die obersten Blöcke werden zu Überschriften; innere Blöcke bleiben',\n 'composites.menu.toHeadings.all': 'Alle Ebenen',\n 'composites.menu.toHeadings.all.description': 'Jeder Block wird zur Überschrift seiner Ebene; Beschreibung, Tags und Felder als Text',\n 'composites.menu.settings': 'Einstellungen…',\n 'composites.menu.preferred': 'Bevorzugt: {mode}',\n /** Conversion target label: the Block type as a Typed block. */\n 'composites.convert.kind': '{kind} (Block)',\n\n // Chrome on the title line and the kind icon.\n 'composites.chrome.details': 'Blocktyp und Details: {kind}',\n 'composites.chrome.detailsDrag': 'Blocktyp und Details: {kind} · Ziehen zum Verschieben',\n 'composites.tag.remove': 'Tag #{tag} entfernen',\n 'composites.tag.add': 'Tag hinzufügen',\n\n // Tags editor (details popover, inspector).\n 'composites.tags.label': 'Tags',\n 'composites.tags.placeholder': 'Tags hinzufügen',\n 'composites.tags.create': '#{tag} erstellen',\n\n // Details popover.\n 'composites.details.confirmLost': 'Blocktyp wirklich ändern? Beim Wechsel zu „{kind}“ gehen diese Angaben verloren:',\n 'composites.details.confirm': 'Blocktyp wirklich ändern?',\n 'composites.details.cancel': 'Abbrechen',\n 'composites.details.change': 'Ändern',\n 'composites.details.summary': 'Zusammen\\u00ADfassung',\n\n // Reference chip (`[@`), locator and backlinks.\n 'composites.reference.insert': 'Verweis auf Block',\n 'composites.reference.empty': 'Keine passenden Blöcke',\n 'composites.reference.gone': 'Block gelöscht',\n 'composites.reference.locator': 'Stelle',\n 'composites.reference.locatorPlaceholder': 'Stelle, z. B. S. 12 oder 03:14',\n 'composites.reference.backlinks': 'Verweise',\n // Citation (`[cite:`, `/zitat`) of a bibliography entry of the Document.\n 'composites.cite.insert': 'Zitat einfügen',\n 'composites.cite.empty': 'Keine passenden Literaturangaben',\n 'composites.cite.gone': 'Literaturangabe nicht gefunden',\n 'composites.cite.locator': 'Stelle',\n 'composites.cite.locatorPlaceholder': 'Stelle, z. B. S. 12',\n 'composites.embed.insert': 'Block einbetten',\n 'composites.embed.empty': 'In diesem Block gibt es nichts anzuzeigen',\n 'composites.embed.gone': 'Block gelöscht',\n 'composites.embed.cycle': 'Ein Block kann sich nicht selbst enthalten',\n 'composites.embed.limit': 'Zu viele ineinander eingebettete Blöcke',\n 'composites.embed.unavailable': 'Block kann nicht angezeigt werden',\n 'composites.embed.open': 'Am Ursprung bearbeiten',\n 'composites.embed.children': 'Inhalt',\n 'composites.embed.noMatch': 'Keine passenden Blöcke',\n\n // Derived Typed blocks (provenance badge, collapse toggle, details).\n 'composites.derivation.badge': 'abgeleitet',\n 'composites.derivation.stale': 'Quelle geändert',\n 'composites.derivation.foreign': 'aus anderem Dokument',\n 'composites.derivation.sourceMissing': 'Quelle fehlt',\n 'composites.derivation.edited': 'bearbeitet',\n 'composites.derivation.state.fresh': 'aktuell',\n 'composites.derivation.state.stale': 'veraltet',\n 'composites.derivation.state.edited': 'bearbeitet',\n 'composites.derivation.state.missing': 'Quelle fehlt',\n 'composites.derivation.state.foreign': 'aus anderem Dokument',\n 'composites.derivation.expand': 'Abgeleiteten Inhalt aufklappen',\n 'composites.derivation.collapse': 'Abgeleiteten Inhalt zuklappen',\n 'composites.derivation.method': 'Methode',\n 'composites.derivation.model': 'Modell',\n 'composites.derivation.createdAt': 'Erzeugt',\n 'composites.derivation.openOutput': 'Original öffnen',\n 'composites.derivation.method.transcription': 'Transkription',\n 'composites.derivation.method.pdf-text': 'PDF-Text',\n 'composites.derivation.method.ocr': 'Texterkennung (OCR)',\n 'composites.derivation.method.description': 'Bildbeschreibung',\n 'composites.derivation.method.bibliography': 'Literaturangaben',\n 'composites.derivation.method.ai': 'KI-Ableitung',\n\n // Summary and field editors.\n 'composites.summary.placeholder': 'Kurze Zusammenfassung des Blocks',\n 'composites.summary.label': 'Zusammenfassung',\n 'composites.summary.none': 'Keine Zusammenfassung',\n 'composites.summary.formatted': 'Enthält Formatierung oder Erwähnungen und lässt sich nur im Text bearbeiten.',\n 'composites.field.choose': '{field} wählen',\n 'composites.field.anchorPage': 'S. {page}',\n 'composites.field.none': 'Keine Auswahl',\n 'composites.field.addBlock': 'Block hinzufügen',\n 'composites.field.removeEntry': '{title} entfernen',\n\n // Inspector.\n 'composites.inspector.label': 'Eigenschaften',\n 'composites.inspector.document': 'Dokument',\n 'composites.inspector.composites': 'Blöcke',\n 'composites.inspector.summarized': '{n} von {total} zusammengefasst',\n 'composites.inspector.none': 'Keine',\n 'composites.inspector.mentions': 'Erwähnungen',\n 'composites.inspector.composite': 'Block',\n 'composites.inspector.kind': 'Blocktyp',\n 'composites.inspector.properties': 'Blockeigenschaften',\n 'composites.inspector.derivation': 'Herkunft',\n 'composites.inspector.title': 'Titel',\n 'composites.inspector.titleHelp': 'Im Dokument bearbeiten',\n 'composites.inspector.untitled': 'Ohne Titel',\n 'composites.inspector.description': 'Beschreibung',\n 'composites.inspector.descriptionHelp': 'Enthält Erwähnungen oder Tags – im Dokument bearbeiten',\n 'composites.inspector.aiStatus': 'KI-Status',\n 'composites.inspector.summaryPresent': 'Zusammenfassung vorhanden',\n 'composites.inspector.summaryMissing': 'Zusammenfassung fehlt',\n\n // Table.\n 'composites.table.label': 'Blöcke als Tabelle',\n 'composites.table.emptyTitle': 'Dieses Dokument enthält noch keine Blöcke',\n 'composites.table.emptyText': 'Blöcke gliedern ein Dokument in Abschnitte, Aufgaben oder Notizen mit Titel, Zusammenfassung und Tags. Füge im Text über „/“ einen Block ein, dann erscheint er hier mit allen Angaben.',\n 'composites.table.column.composite': 'Block',\n 'composites.table.column.kind': 'Blocktyp',\n 'composites.table.column.tags': 'Tags',\n 'composites.table.column.summary': 'Zusammenfassung',\n 'composites.table.search.placeholder': 'Titel, Zusammenfassung, Tags',\n 'composites.table.search.label': 'Blöcke durchsuchen',\n 'composites.table.search.clear': 'Suche leeren',\n 'composites.table.filter.all': 'Alle',\n 'composites.table.filter.reset': 'Filter zurücksetzen',\n 'composites.table.filter.byKind': 'Nach Blocktyp filtern',\n 'composites.table.filter.byTag': 'Nach Tag filtern',\n 'composites.table.filter.noMatch': 'Kein Block passt zu diesen Filtern.',\n 'composites.table.count.one': '{n} von {total} Block',\n 'composites.table.count.other': '{n} von {total} Blöcken',\n 'composites.table.noValue': 'Kein Wert',\n 'composites.table.noTags': 'Keine Tags',\n 'composites.table.summaryPresent': 'Zusammenfassung vorhanden',\n\n // Settings tab „Bearbeiten“.\n 'composites.settings.structure.title': 'Gliederung',\n 'composites.settings.structure.legend': 'Bevorzugte Gliederung',\n 'composites.settings.structure.flat.label': 'Überschriften',\n 'composites.settings.structure.flat.description': 'Werkzeugleiste mit Überschrift 1–3. KI-Texte werden flach mit Überschriften (##, ###) gegliedert; Blöcke, die die KI dennoch schreibt, werden zu Überschriften.',\n 'composites.settings.structure.structured.label': 'Blöcke',\n 'composites.settings.structure.structured.description': 'Werkzeugleiste ohne Überschrift 1–3. KI-Texte werden als Blöcke gegliedert, Unterabschnitte als verschachtelte Blöcke; Überschriften, die die KI dennoch schreibt, werden zu Blöcken.',\n 'composites.settings.scope.legend': '„Gliederung umwandeln“ ohne Markierung bezieht sich auf',\n 'composites.settings.scope.container.label': 'Umgebender Block',\n 'composites.settings.scope.container.description': 'Den Block, in dem der Cursor steht; außerhalb von Blöcken das ganze Dokument.',\n 'composites.settings.scope.document.label': 'Gesamtes Dokument',\n 'composites.settings.scope.document.description': 'Immer alle Blöcke des Dokuments.',\n 'composites.settings.scope.heading.label': 'Überschrift oder Block am Cursor',\n 'composites.settings.scope.heading.description': 'Beim Umwandeln in Blöcke: die Überschrift am oder vor dem Cursor mit ihrem Inhalt. Beim Umwandeln in Überschriften: der innerste Block um den Cursor.',\n 'composites.settings.sidebar.title': 'Seitenleiste',\n 'composites.settings.treeRoot.legend': 'Baum der Dokumente',\n 'composites.settings.treeRoot.folders.label': 'Ordner und Dateien verschachteln',\n 'composites.settings.treeRoot.folders.description': 'Die Seitenleiste zeigt die Ordner mit ihren Dateien; die geöffnete Datei steht als Eintrag darin.',\n 'composites.settings.treeRoot.file.label': 'Wurzel ist eine einzelne Datei',\n 'composites.settings.treeRoot.file.description': 'Ist eine Block-Datei geöffnet, zeigt die Seitenleiste sie als Wurzel mit ihren Ordnern und Dokumenten. Ohne geöffnete Block-Datei sind es die Ordner.',\n 'composites.settings.composites.title': 'Blöcke',\n 'composites.settings.defaultBlockType.label': 'Standard-Blocktyp',\n 'composites.settings.defaultBlockType.description': 'Blocktyp der Blöcke, die die Werkzeugleiste, „/“-Befehle und „Überschriften in Blöcke“ anlegen.',\n 'composites.settings.blockTypeIcon.legend': 'Blocktyp-Symbol',\n 'composites.settings.blockTypeIcon.always.label': 'Immer anzeigen',\n 'composites.settings.blockTypeIcon.always.description': 'Das Symbol des Blocktyps steht dauerhaft vor dem Block.',\n 'composites.settings.blockTypeIcon.hover.label': 'Nur beim Überfahren',\n 'composites.settings.blockTypeIcon.hover.description': 'Das Symbol erscheint, wenn die Maus über dem Block steht, er den Fokus hat oder seine Details geöffnet sind.',\n 'composites.settings.dragHandle.legend': 'Ziehgriff (Blöcke ohne Symbol)',\n 'composites.settings.dragHandle.hover.label': 'Nur beim Überfahren',\n 'composites.settings.dragHandle.hover.description': 'Der Ziehgriff erscheint am Block unter der Maus.',\n 'composites.settings.dragHandle.always.label': 'Immer anzeigen',\n 'composites.settings.dragHandle.always.description': 'Jeder Block ohne Symbol zeigt seinen Ziehgriff dauerhaft.',\n\n // Accepted children per Block type (`AcceptedChildren`, `moveIntoVerdict`): the notice of a refused edit and why a block cannot move.\n 'composites.nesting.title': 'Verschachtelung nicht möglich',\n 'composites.property.syncFailed': 'Eigenschaft konnte nicht synchron gespeichert werden',\n 'composites.nesting.refused': '{parent} nimmt keine {child} auf.',\n 'composites.move.blockGone': 'Der Block existiert nicht mehr.',\n 'composites.move.targetGone': 'Das Ziel existiert nicht mehr.',\n 'composites.move.targetNotBlock': 'Das Ziel ist kein Block.',\n 'composites.move.intoSelf': 'Ein Block kann nicht in sich selbst verschoben werden.',\n 'composites.move.intoOwn': 'Ein Block kann nicht in einen Block verschoben werden, den er selbst enthält.',\n // Colour baskets of a Typed block and the hidden-title toggle in its chrome.\n 'composites.basket.label': 'Korb',\n 'composites.basket.none': 'Kein Korb',\n 'composites.basket.red': 'Rot',\n 'composites.basket.orange': 'Orange',\n 'composites.basket.yellow': 'Gelb',\n 'composites.basket.green': 'Grün',\n 'composites.basket.blue': 'Blau',\n 'composites.titleHidden.hide': 'Titel ausblenden',\n 'composites.titleHidden.show': 'Titel einblenden',\n // Focus mode: the block action, the chip while a Typed block is focused and its button.\n 'composites.focus.action': 'Fokussieren',\n 'composites.focus.leave': 'Fokus aufheben',\n 'composites.focus.chip': 'Fokus: {title}',\n 'composites.focus.release': 'Aufheben',\n} as const\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composites.js","names":[],"sources":["../../../src/i18n/de/composites.ts"],"sourcesContent":["export const de = {\n // Fallback title of an untitled Typed block (outline, table).\n 'composites.untitled': '(ohne Titel)',\n\n // Built-in Block types (`defaultBlockTypes`): label, placeholders of the empty title/description, fields and their choices.\n 'composites.kind.section.label': 'Abschnitt',\n 'composites.kind.section.title': 'Überschrift',\n 'composites.kind.section.description': 'Zusammenfassung',\n 'composites.kind.task.label': 'Aufgabe',\n 'composites.kind.task.title': 'Aufgabe',\n 'composites.kind.task.description': 'Beschreibung',\n 'composites.kind.task.field.status': 'Status',\n 'composites.kind.task.status.open': 'Offen',\n 'composites.kind.task.status.doing': 'In Arbeit',\n 'composites.kind.task.status.done': 'Erledigt',\n 'composites.kind.task.field.due': 'Fällig',\n 'composites.kind.task.field.assignee': 'Zuständig',\n 'composites.kind.note.label': 'Notiz',\n 'composites.kind.note.title': 'Titel',\n 'composites.kind.note.description': 'Kurzbeschreibung',\n 'composites.kind.document.label': 'Dokument',\n 'composites.kind.document.title': 'Dokumentname',\n 'composites.kind.document.description': 'Zusammenfassung',\n 'composites.kind.document.field.filename': 'Dateiname',\n 'composites.kind.document.field.mimeType': 'Typ',\n 'composites.kind.document.field.size': 'Größe (Bytes)',\n 'composites.kind.document.field.importedAt': 'Importiert',\n 'composites.kind.recording.label': 'Aufnahme',\n 'composites.kind.recording.title': 'Titel der Aufnahme',\n 'composites.kind.recording.description': 'Zusammenfassung',\n 'composites.kind.recording.field.filename': 'Dateiname',\n 'composites.kind.recording.field.mimeType': 'Typ',\n 'composites.kind.recording.field.size': 'Größe (Bytes)',\n 'composites.kind.recording.field.importedAt': 'Importiert',\n 'composites.kind.recording.field.recordedAt': 'Aufgenommen am',\n 'composites.kind.recording.field.participants': 'Beteiligte',\n 'composites.kind.recording.field.durationSeconds': 'Dauer (Sekunden)',\n 'composites.kind.paper.label': 'Paper',\n 'composites.kind.paper.title': 'Titel der Arbeit',\n 'composites.kind.paper.description': 'Zusammenfassung',\n 'composites.kind.paper.field.filename': 'Dateiname',\n 'composites.kind.paper.field.mimeType': 'Typ',\n 'composites.kind.paper.field.size': 'Größe (Bytes)',\n 'composites.kind.paper.field.importedAt': 'Importiert',\n 'composites.kind.paper.field.bib': 'Literaturangabe',\n 'composites.kind.paper.field.doi': 'DOI',\n 'composites.kind.book.label': 'Buch',\n 'composites.kind.book.title': 'Buchtitel',\n 'composites.kind.book.description': 'Zusammenfassung',\n 'composites.kind.book.field.filename': 'Dateiname',\n 'composites.kind.book.field.mimeType': 'Typ',\n 'composites.kind.book.field.size': 'Größe (Bytes)',\n 'composites.kind.book.field.importedAt': 'Importiert',\n 'composites.kind.book.field.bib': 'Literaturangabe',\n 'composites.kind.book.field.isbn': 'ISBN',\n 'composites.kind.figure.label': 'Bild',\n 'composites.kind.figure.title': 'Bildtitel',\n 'composites.kind.figure.description': 'Bildbeschreibung',\n 'composites.kind.figure.field.filename': 'Dateiname',\n 'composites.kind.figure.field.mimeType': 'Typ',\n 'composites.kind.figure.field.size': 'Größe (Bytes)',\n 'composites.kind.figure.field.importedAt': 'Importiert',\n 'composites.kind.figure.field.credit': 'Quellenangabe',\n 'composites.kind.rendition.label': 'Lesefassung',\n 'composites.kind.rendition.title': 'Transkript, Volltext, Beschreibung …',\n 'composites.kind.rendition.description': 'Hinweis zur Entstehung',\n 'composites.kind.rendition.field.derivation': 'Herkunft',\n 'composites.kind.rendition.field.language': 'Sprache',\n /** Literature types of a `bibliography` field (CSL-JSON `type`). */\n 'composites.bib.type.article-journal': 'Zeitschriftenartikel',\n 'composites.bib.type.book': 'Buch',\n 'composites.bib.type.chapter': 'Buchkapitel',\n 'composites.bib.type.paper-conference': 'Konferenzbeitrag',\n 'composites.bib.type.thesis': 'Abschlussarbeit',\n 'composites.bib.type.report': 'Bericht',\n 'composites.bib.type.webpage': 'Webseite',\n 'composites.bib.type.article': 'Artikel',\n 'composites.bib.type.dataset': 'Datensatz',\n /** The `bibliography` field editor. */\n 'composites.bib.field.type': 'Art',\n 'composites.bib.field.authors': 'Autorinnen und Autoren',\n 'composites.bib.field.authorsHelp': 'Eine Person pro Zeile: Nachname, Vorname',\n 'composites.bib.field.year': 'Jahr',\n 'composites.bib.field.containerTitle': 'Zeitschrift / Sammelwerk',\n 'composites.bib.field.volume': 'Band',\n 'composites.bib.field.issue': 'Heft',\n 'composites.bib.field.page': 'Seiten',\n 'composites.bib.field.publisher': 'Verlag',\n 'composites.bib.field.doi': 'DOI',\n 'composites.bib.field.isbn': 'ISBN',\n 'composites.bib.field.url': 'URL',\n 'composites.bib.field.abstract': 'Kurzfassung',\n 'composites.bib.copyBibtex': 'BibTeX kopieren',\n 'composites.bib.copied': 'BibTeX kopiert',\n 'composites.bib.fetchDoi': 'DOI abrufen',\n 'composites.kind.folder.label': 'Ordner',\n 'composites.kind.folder.title': 'Ordnername',\n 'composites.kind.folder.description': 'Beschreibung',\n 'composites.kind.collection.label': 'Sammlung',\n 'composites.kind.collection.title': 'Name der Sammlung',\n 'composites.kind.collection.description': 'Wofür die Sammlung gedacht ist',\n 'composites.kind.collection.items': 'Einträge',\n 'composites.kind.collection.query': 'Abfrage',\n /** The collection's list and the action that adds a block to one. */\n 'composites.collection.list': 'Einträge der Sammlung',\n 'composites.collection.empty': 'Noch keine Einträge',\n 'composites.collection.fill': 'Aus Abfrage füllen',\n 'composites.collection.filled.one': '1 Block hinzugefügt',\n 'composites.collection.filled.other': '{n} Blöcke hinzugefügt',\n 'composites.collection.filledNone': 'Keine neuen Treffer',\n 'composites.collection.fillFailed': 'Die Abfrage ist fehlgeschlagen',\n 'composites.collection.moveUp': '„{title}“ nach oben',\n 'composites.collection.moveDown': '„{title}“ nach unten',\n 'composites.collection.add': 'Zu Sammlung hinzufügen',\n 'composites.kind.dataView.label': 'Ansicht',\n 'composites.kind.dataView.title': 'Name der Ansicht',\n 'composites.kind.dataView.description': 'Was die Ansicht zeigt',\n 'composites.kind.dataView.query': 'Abfrage',\n 'composites.kind.dataView.layout': 'Anordnung',\n /** The data view block: its layouts, states and the line under it. */\n 'composites.slash.dataView': 'Ansicht',\n 'composites.dataView.layout.table': 'Tabelle',\n 'composites.dataView.layout.list': 'Liste',\n 'composites.dataView.layout.board': 'Brett',\n 'composites.dataView.layout.label': 'Anordnung der Ansicht',\n 'composites.dataView.noQuery': 'Diese Ansicht hat noch keine Abfrage.',\n 'composites.dataView.needsGroup': 'Ein Brett braucht eine Gruppierung: Die Abfrage nennt kein Feld, nach dem die Spalten gebildet werden.',\n 'composites.dataView.loading': 'Ansicht wird geladen …',\n 'composites.dataView.error': 'Die Abfrage der Ansicht ist fehlgeschlagen',\n 'composites.dataView.empty': 'Keine Treffer',\n 'composites.dataView.count.one': '1 Treffer',\n 'composites.dataView.count.other': '{n} Treffer',\n 'composites.dataView.more': '{n} von {total} Treffern angezeigt',\n 'composites.dataView.documentOnly': 'Nur die Blöcke dieses Dokuments',\n 'composites.dataView.lane.none': 'Ohne Wert',\n 'composites.dataView.rows': 'Treffer der Ansicht',\n /** The query builder of a data view: a form over its stored query. */\n 'composites.queryBuilder.toggle': 'Abfrage bearbeiten',\n 'composites.queryBuilder.blockType': 'Blocktyp',\n 'composites.queryBuilder.blockType.none': 'Blocktyp wählen',\n 'composites.queryBuilder.noType': 'Wähle einen Blocktyp.',\n 'composites.queryBuilder.moreTypes': 'Die Abfrage liest mehrere Blocktypen: {types}. Ein anderer Typ ersetzt sie.',\n 'composites.queryBuilder.filter': 'Filter (alle Bedingungen)',\n 'composites.queryBuilder.filter.empty': 'Keine Bedingung: alle Blöcke des Typs.',\n 'composites.queryBuilder.filter.locked': 'Der Filter der Abfrage ist verschachtelt oder enthält „oder“ und bleibt unverändert.',\n 'composites.queryBuilder.filter.clear': 'Filter ersetzen',\n 'composites.queryBuilder.add': 'Bedingung hinzufügen',\n 'composites.queryBuilder.remove': 'Bedingung entfernen',\n 'composites.queryBuilder.field': 'Feld',\n 'composites.queryBuilder.operator': 'Vergleich',\n 'composites.queryBuilder.value': 'Wert',\n 'composites.queryBuilder.value.true': 'Ja',\n 'composites.queryBuilder.value.false': 'Nein',\n 'composites.queryBuilder.value.list': 'Werte, durch Komma getrennt',\n 'composites.queryBuilder.sort': 'Sortieren nach',\n 'composites.queryBuilder.sort.none': 'Keine Sortierung',\n 'composites.queryBuilder.sort.asc': 'Aufsteigend',\n 'composites.queryBuilder.sort.desc': 'Absteigend',\n 'composites.queryBuilder.group': 'Gruppieren nach',\n 'composites.queryBuilder.group.none': 'Keine Gruppierung',\n 'composites.queryBuilder.group.hideEmpty': 'Gruppe ohne Wert ausblenden',\n 'composites.queryBuilder.invalid': 'Die Abfrage ist noch nicht gespeichert: {n} offen.',\n 'composites.queryBuilder.pseudo.title': 'Titel',\n 'composites.queryBuilder.pseudo.tags': 'Tags',\n 'composites.queryBuilder.pseudo.type': 'Blocktyp',\n 'composites.queryBuilder.pseudo.id': 'Block-ID',\n 'composites.queryBuilder.pseudo.doc': 'Dokument',\n 'composites.queryBuilder.pseudo.basket': 'Farbe',\n 'composites.queryBuilder.op.eq': 'ist',\n 'composites.queryBuilder.op.ne': 'ist nicht',\n 'composites.queryBuilder.op.lt': 'kleiner als',\n 'composites.queryBuilder.op.lte': 'höchstens',\n 'composites.queryBuilder.op.gt': 'größer als',\n 'composites.queryBuilder.op.gte': 'mindestens',\n 'composites.queryBuilder.op.contains': 'enthält',\n 'composites.queryBuilder.op.startsWith': 'beginnt mit',\n 'composites.queryBuilder.op.isEmpty': 'ist leer',\n 'composites.queryBuilder.op.isNotEmpty': 'ist nicht leer',\n 'composites.queryBuilder.op.hasAny': 'hat eines von',\n 'composites.queryBuilder.op.hasAll': 'hat alle von',\n 'composites.queryBuilder.op.hasNone': 'hat keines von',\n 'composites.queryBuilder.op.before': 'vor',\n 'composites.queryBuilder.op.after': 'nach',\n 'composites.queryBuilder.op.on': 'am',\n /** The select that changes a Typed block's Block type (details popover, inspector). */\n 'composites.kind.select': 'Blocktyp',\n\n // Status chip.\n 'composites.status.none': 'Kein Status',\n 'composites.status.label': 'Status: {status}',\n\n // Feature: settings tab, `/` commands, block action, toolbar.\n 'composites.tab': 'Bearbeiten',\n 'composites.slash.section': 'Abschnitt',\n 'composites.slash.group': 'Überschriften in Blöcke',\n 'composites.slash.groupAll': 'Überschriften in Blöcke (verschachtelt)',\n 'composites.slash.flatten': 'Blöcke in Überschriften',\n 'composites.slash.flattenAll': 'Blöcke in Überschriften (alle Ebenen)',\n 'composites.blockAction.export': 'Als Markdown exportieren',\n 'composites.export.issues.one': '1 Hinweis',\n 'composites.export.issues.other': '{n} Hinweise',\n 'composites.export.issues.description': 'Der Export wurde trotzdem erstellt. Die Hinweise stehen im Inspektor unter „Export-Hinweise“.',\n 'composites.export.section': 'Export-Hinweise',\n 'composites.export.none': 'Keine Hinweise',\n 'composites.export.code.ai-unchecked': 'KI-Vorschlag ungeprüft',\n 'composites.export.code.stale-derived': 'Quelle geändert',\n 'composites.export.code.source-missing': 'Quelle fehlt',\n 'composites.export.code.unresolved-reference': 'Verweis ohne Ziel',\n 'composites.edges.section': 'Kanten',\n 'composites.edges.none': 'Keine Kanten',\n 'composites.edges.kind': 'Art der Kante',\n 'composites.edges.kindPlaceholder': 'z. B. stützt',\n 'composites.edges.target': 'Ziel suchen',\n 'composites.edges.noMatch': 'Kein Block gefunden',\n 'composites.edges.add': 'Kante hinzufügen',\n 'composites.edges.remove': 'Kante zu „{title}“ entfernen',\n 'composites.blockAction.bibtex': 'Literaturangabe exportieren (BibTeX)',\n 'composites.blockAction.details': 'Details',\n 'composites.render.block': 'Erzeugen als …',\n 'composites.render.document': 'Dokument erzeugen als …',\n 'composites.render.running': '„{target}“ wird erzeugt',\n 'composites.render.done': '„{target}“ ist fertig',\n 'composites.render.failed': '„{target}“ ist fehlgeschlagen',\n // Splitting a Typed block (block actions) and the target size setting.\n 'composites.split.here': 'Block hier teilen',\n 'composites.split.children': 'In Unterblöcke teilen',\n 'composites.split.lengthChildren': 'Nach Länge in Unterblöcke teilen',\n 'composites.split.lengthSiblings': 'Nach Länge in Blöcke teilen',\n 'composites.split.rulesChildren': 'An Trennlinien in Unterblöcke teilen',\n 'composites.split.rulesSiblings': 'An Trennlinien in Blöcke teilen',\n 'composites.merge.next': 'Mit nächstem zusammenführen',\n 'settings.editing.splitTargetChars': 'Zielgröße beim Teilen (Zeichen)',\n 'settings.editing.splitOnRule.label': '--- teilt den Block',\n 'settings.editing.splitOnRule.description': '--- in einer leeren Zeile eines Blocks teilt ihn dort in zwei Blöcke, statt eine Trennlinie einzufügen.',\n 'composites.toolbar.toKind': 'In Block umwandeln',\n 'composites.toolbar.structure': 'Gliederung umwandeln',\n 'composites.menu.kindHeading': 'Block',\n 'composites.menu.toComposites': 'Überschriften in Blöcke',\n 'composites.menu.toComposites.top': 'Nur oberste Ebene',\n 'composites.menu.toComposites.top.description': 'Nur die höchste Überschriftenebene wird zu Blöcken',\n 'composites.menu.toComposites.all': 'Alle Ebenen (verschachtelt)',\n 'composites.menu.toComposites.all.description': 'Jede Überschriftenebene wird zu einem verschachtelten Block',\n 'composites.menu.toHeadings': 'Blöcke in Überschriften',\n 'composites.menu.toHeadings.top': 'Nur oberste Ebene',\n 'composites.menu.toHeadings.top.description': 'Die obersten Blöcke werden zu Überschriften; innere Blöcke bleiben',\n 'composites.menu.toHeadings.all': 'Alle Ebenen',\n 'composites.menu.toHeadings.all.description': 'Jeder Block wird zur Überschrift seiner Ebene; Beschreibung, Tags und Felder als Text',\n 'composites.menu.settings': 'Einstellungen…',\n 'composites.menu.preferred': 'Bevorzugt: {mode}',\n /** Conversion target label: the Block type as a Typed block. */\n 'composites.convert.kind': '{kind} (Block)',\n\n // Chrome on the title line and the kind icon.\n 'composites.chrome.details': 'Blocktyp und Details: {kind}',\n 'composites.chrome.detailsDrag': 'Blocktyp und Details: {kind} · Ziehen zum Verschieben',\n 'composites.tag.remove': 'Tag #{tag} entfernen',\n 'composites.tag.add': 'Tag hinzufügen',\n\n // Tags editor (details popover, inspector).\n 'composites.tags.label': 'Tags',\n 'composites.tags.placeholder': 'Tags hinzufügen',\n 'composites.tags.create': '#{tag} erstellen',\n\n // Details popover.\n 'composites.details.confirmLost': 'Blocktyp wirklich ändern? Beim Wechsel zu „{kind}“ gehen diese Angaben verloren:',\n 'composites.details.confirm': 'Blocktyp wirklich ändern?',\n 'composites.details.cancel': 'Abbrechen',\n 'composites.details.change': 'Ändern',\n 'composites.details.summary': 'Zusammen\\u00ADfassung',\n\n // Reference chip (`[@`), locator and backlinks.\n 'composites.reference.insert': 'Verweis auf Block',\n 'composites.reference.empty': 'Keine passenden Blöcke',\n 'composites.reference.gone': 'Block gelöscht',\n 'composites.reference.locator': 'Stelle',\n 'composites.reference.locatorPlaceholder': 'Stelle, z. B. S. 12 oder 03:14',\n 'composites.reference.backlinks': 'Verweise',\n // Citation (`[cite:`, `/zitat`) of a bibliography entry of the Document.\n 'composites.cite.insert': 'Zitat einfügen',\n 'composites.cite.empty': 'Keine passenden Literaturangaben',\n 'composites.cite.gone': 'Literaturangabe nicht gefunden',\n 'composites.cite.locator': 'Stelle',\n 'composites.cite.locatorPlaceholder': 'Stelle, z. B. S. 12',\n 'composites.embed.insert': 'Block einbetten',\n 'composites.embed.empty': 'In diesem Block gibt es nichts anzuzeigen',\n 'composites.embed.gone': 'Block gelöscht',\n 'composites.embed.cycle': 'Ein Block kann sich nicht selbst enthalten',\n 'composites.embed.limit': 'Zu viele ineinander eingebettete Blöcke',\n 'composites.embed.unavailable': 'Block kann nicht angezeigt werden',\n 'composites.embed.open': 'Am Ursprung bearbeiten',\n 'composites.embed.children': 'Inhalt',\n 'composites.embed.noMatch': 'Keine passenden Blöcke',\n\n // Derived Typed blocks (provenance badge, collapse toggle, details).\n 'composites.derivation.badge': 'abgeleitet',\n 'composites.derivation.stale': 'Quelle geändert',\n 'composites.derivation.foreign': 'aus anderem Dokument',\n 'composites.derivation.sourceMissing': 'Quelle fehlt',\n 'composites.derivation.edited': 'bearbeitet',\n 'composites.derivation.state.fresh': 'aktuell',\n 'composites.derivation.state.stale': 'veraltet',\n 'composites.derivation.state.edited': 'bearbeitet',\n 'composites.derivation.state.missing': 'Quelle fehlt',\n 'composites.derivation.state.foreign': 'aus anderem Dokument',\n 'composites.derivation.expand': 'Abgeleiteten Inhalt aufklappen',\n 'composites.derivation.collapse': 'Abgeleiteten Inhalt zuklappen',\n 'composites.derivation.method': 'Methode',\n 'composites.derivation.model': 'Modell',\n 'composites.derivation.createdAt': 'Erzeugt',\n 'composites.derivation.openOutput': 'Original öffnen',\n 'composites.derivation.method.transcription': 'Transkription',\n 'composites.derivation.method.pdf-text': 'PDF-Text',\n 'composites.derivation.method.ocr': 'Texterkennung (OCR)',\n 'composites.derivation.method.description': 'Bildbeschreibung',\n 'composites.derivation.method.bibliography': 'Literaturangaben',\n 'composites.derivation.method.ai': 'KI-Ableitung',\n\n // Summary and field editors.\n 'composites.summary.placeholder': 'Kurze Zusammenfassung des Blocks',\n 'composites.summary.label': 'Zusammenfassung',\n 'composites.summary.none': 'Keine Zusammenfassung',\n 'composites.summary.formatted': 'Enthält Formatierung oder Erwähnungen und lässt sich nur im Text bearbeiten.',\n 'composites.field.choose': '{field} wählen',\n 'composites.field.anchorPage': 'S. {page}',\n 'composites.field.none': 'Keine Auswahl',\n 'composites.field.addBlock': 'Block hinzufügen',\n 'composites.field.removeEntry': '{title} entfernen',\n\n // Inspector.\n 'composites.inspector.label': 'Eigenschaften',\n 'composites.inspector.document': 'Dokument',\n 'composites.inspector.composites': 'Blöcke',\n 'composites.inspector.summarized': '{n} von {total} zusammengefasst',\n 'composites.inspector.none': 'Keine',\n 'composites.inspector.mentions': 'Erwähnungen',\n 'composites.inspector.composite': 'Block',\n 'composites.inspector.kind': 'Blocktyp',\n 'composites.inspector.properties': 'Blockeigenschaften',\n 'composites.inspector.derivation': 'Herkunft',\n 'composites.inspector.title': 'Titel',\n 'composites.inspector.titleHelp': 'Im Dokument bearbeiten',\n 'composites.inspector.untitled': 'Ohne Titel',\n 'composites.inspector.description': 'Beschreibung',\n 'composites.inspector.descriptionHelp': 'Enthält Erwähnungen oder Tags – im Dokument bearbeiten',\n 'composites.inspector.aiStatus': 'KI-Status',\n 'composites.inspector.summaryPresent': 'Zusammenfassung vorhanden',\n 'composites.inspector.summaryMissing': 'Zusammenfassung fehlt',\n\n // Table.\n 'composites.table.label': 'Blöcke als Tabelle',\n 'composites.table.emptyTitle': 'Dieses Dokument enthält noch keine Blöcke',\n 'composites.table.emptyText': 'Blöcke gliedern ein Dokument in Abschnitte, Aufgaben oder Notizen mit Titel, Zusammenfassung und Tags. Füge im Text über „/“ einen Block ein, dann erscheint er hier mit allen Angaben.',\n 'composites.table.column.composite': 'Block',\n 'composites.table.column.kind': 'Blocktyp',\n 'composites.table.column.tags': 'Tags',\n 'composites.table.column.summary': 'Zusammenfassung',\n 'composites.table.search.placeholder': 'Titel, Zusammenfassung, Tags',\n 'composites.table.search.label': 'Blöcke durchsuchen',\n 'composites.table.search.clear': 'Suche leeren',\n 'composites.table.filter.all': 'Alle',\n 'composites.table.filter.reset': 'Filter zurücksetzen',\n 'composites.table.filter.byKind': 'Nach Blocktyp filtern',\n 'composites.table.filter.byTag': 'Nach Tag filtern',\n 'composites.table.filter.noMatch': 'Kein Block passt zu diesen Filtern.',\n 'composites.table.count.one': '{n} von {total} Block',\n 'composites.table.count.other': '{n} von {total} Blöcken',\n 'composites.table.noValue': 'Kein Wert',\n 'composites.table.noTags': 'Keine Tags',\n 'composites.table.summaryPresent': 'Zusammenfassung vorhanden',\n\n // Settings tab „Bearbeiten“.\n 'composites.settings.structure.title': 'Gliederung',\n 'composites.settings.structure.legend': 'Bevorzugte Gliederung',\n 'composites.settings.structure.flat.label': 'Überschriften',\n 'composites.settings.structure.flat.description': 'Werkzeugleiste mit Überschrift 1–3. KI-Texte werden flach mit Überschriften (##, ###) gegliedert; Blöcke, die die KI dennoch schreibt, werden zu Überschriften.',\n 'composites.settings.structure.structured.label': 'Blöcke',\n 'composites.settings.structure.structured.description': 'Werkzeugleiste ohne Überschrift 1–3. KI-Texte werden als Blöcke gegliedert, Unterabschnitte als verschachtelte Blöcke; Überschriften, die die KI dennoch schreibt, werden zu Blöcken.',\n 'composites.settings.scope.legend': '„Gliederung umwandeln“ ohne Markierung bezieht sich auf',\n 'composites.settings.scope.container.label': 'Umgebender Block',\n 'composites.settings.scope.container.description': 'Den Block, in dem der Cursor steht; außerhalb von Blöcken das ganze Dokument.',\n 'composites.settings.scope.document.label': 'Gesamtes Dokument',\n 'composites.settings.scope.document.description': 'Immer alle Blöcke des Dokuments.',\n 'composites.settings.scope.heading.label': 'Überschrift oder Block am Cursor',\n 'composites.settings.scope.heading.description': 'Beim Umwandeln in Blöcke: die Überschrift am oder vor dem Cursor mit ihrem Inhalt. Beim Umwandeln in Überschriften: der innerste Block um den Cursor.',\n 'composites.settings.sidebar.title': 'Seitenleiste',\n 'composites.settings.treeRoot.legend': 'Baum der Dokumente',\n 'composites.settings.treeRoot.folders.label': 'Ordner und Dateien verschachteln',\n 'composites.settings.treeRoot.folders.description': 'Die Seitenleiste zeigt die Ordner mit ihren Dateien; die geöffnete Datei steht als Eintrag darin.',\n 'composites.settings.treeRoot.file.label': 'Wurzel ist eine einzelne Datei',\n 'composites.settings.treeRoot.file.description': 'Ist eine Block-Datei geöffnet, zeigt die Seitenleiste sie als Wurzel mit ihren Ordnern und Dokumenten. Ohne geöffnete Block-Datei sind es die Ordner.',\n 'composites.settings.composites.title': 'Blöcke',\n 'composites.settings.defaultBlockType.label': 'Standard-Blocktyp',\n 'composites.settings.defaultBlockType.description': 'Blocktyp der Blöcke, die die Werkzeugleiste, „/“-Befehle und „Überschriften in Blöcke“ anlegen.',\n 'composites.settings.blockTypeIcon.legend': 'Blocktyp-Symbol',\n 'composites.settings.blockTypeIcon.always.label': 'Immer anzeigen',\n 'composites.settings.blockTypeIcon.always.description': 'Das Symbol des Blocktyps steht dauerhaft vor dem Block.',\n 'composites.settings.blockTypeIcon.hover.label': 'Nur beim Überfahren',\n 'composites.settings.blockTypeIcon.hover.description': 'Das Symbol erscheint, wenn die Maus über dem Block steht, er den Fokus hat oder seine Details geöffnet sind.',\n 'composites.settings.dragHandle.legend': 'Ziehgriff (Blöcke ohne Symbol)',\n 'composites.settings.dragHandle.hover.label': 'Nur beim Überfahren',\n 'composites.settings.dragHandle.hover.description': 'Der Ziehgriff erscheint am Block unter der Maus.',\n 'composites.settings.dragHandle.always.label': 'Immer anzeigen',\n 'composites.settings.dragHandle.always.description': 'Jeder Block ohne Symbol zeigt seinen Ziehgriff dauerhaft.',\n\n // Accepted children per Block type (`AcceptedChildren`, `moveIntoVerdict`): the notice of a refused edit and why a block cannot move.\n 'composites.nesting.title': 'Verschachtelung nicht möglich',\n 'composites.property.syncFailed': 'Eigenschaft konnte nicht synchron gespeichert werden',\n 'composites.nesting.refused': '{parent} nimmt keine {child} auf.',\n 'composites.move.blockGone': 'Der Block existiert nicht mehr.',\n 'composites.move.targetGone': 'Das Ziel existiert nicht mehr.',\n 'composites.move.targetNotBlock': 'Das Ziel ist kein Block.',\n 'composites.move.intoSelf': 'Ein Block kann nicht in sich selbst verschoben werden.',\n 'composites.move.intoOwn': 'Ein Block kann nicht in einen Block verschoben werden, den er selbst enthält.',\n // Colour baskets of a Typed block and the hidden-title toggle in its chrome.\n 'composites.basket.label': 'Korb',\n 'composites.basket.none': 'Kein Korb',\n 'composites.basket.red': 'Rot',\n 'composites.basket.orange': 'Orange',\n 'composites.basket.yellow': 'Gelb',\n 'composites.basket.green': 'Grün',\n 'composites.basket.blue': 'Blau',\n 'composites.titleHidden.hide': 'Titel ausblenden',\n 'composites.titleHidden.show': 'Titel einblenden',\n // Focus mode: the block action, the chip while a Typed block is focused and its button.\n 'composites.focus.action': 'Fokussieren',\n 'composites.focus.leave': 'Fokus aufheben',\n 'composites.focus.chip': 'Fokus: {title}',\n 'composites.focus.release': 'Aufheben',\n} as const\n"],"mappings":";AAAA,MAAa,KAAK;CAEhB,uBAAuB;CAGvB,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;;CAE5C,uCAAuC;CACvC,4BAA4B;CAC5B,+BAA+B;CAC/B,wCAAwC;CACxC,8BAA8B;CAC9B,8BAA8B;CAC9B,+BAA+B;CAC/B,+BAA+B;CAC/B,+BAA+B;;CAE/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,oCAAoC;CACpC,oCAAoC;CACpC,0CAA0C;CAC1C,oCAAoC;CACpC,oCAAoC;;CAEpC,8BAA8B;CAC9B,+BAA+B;CAC/B,8BAA8B;CAC9B,oCAAoC;CACpC,sCAAsC;CACtC,oCAAoC;CACpC,oCAAoC;CACpC,gCAAgC;CAChC,kCAAkC;CAClC,6BAA6B;CAC7B,kCAAkC;CAClC,kCAAkC;CAClC,wCAAwC;CACxC,kCAAkC;CAClC,mCAAmC;;CAEnC,6BAA6B;CAC7B,oCAAoC;CACpC,mCAAmC;CACnC,oCAAoC;CACpC,oCAAoC;CACpC,+BAA+B;CAC/B,kCAAkC;CAClC,+BAA+B;CAC/B,6BAA6B;CAC7B,6BAA6B;CAC7B,iCAAiC;CACjC,mCAAmC;CACnC,4BAA4B;CAC5B,oCAAoC;CACpC,iCAAiC;CACjC,4BAA4B;;CAE5B,kCAAkC;CAClC,qCAAqC;CACrC,0CAA0C;CAC1C,kCAAkC;CAClC,qCAAqC;CACrC,kCAAkC;CAClC,wCAAwC;CACxC,yCAAyC;CACzC,wCAAwC;CACxC,+BAA+B;CAC/B,kCAAkC;CAClC,iCAAiC;CACjC,oCAAoC;CACpC,iCAAiC;CACjC,sCAAsC;CACtC,uCAAuC;CACvC,sCAAsC;CACtC,gCAAgC;CAChC,qCAAqC;CACrC,oCAAoC;CACpC,qCAAqC;CACrC,iCAAiC;CACjC,sCAAsC;CACtC,2CAA2C;CAC3C,mCAAmC;CACnC,wCAAwC;CACxC,uCAAuC;CACvC,uCAAuC;CACvC,qCAAqC;CACrC,sCAAsC;CACtC,yCAAyC;CACzC,iCAAiC;CACjC,iCAAiC;CACjC,iCAAiC;CACjC,kCAAkC;CAClC,iCAAiC;CACjC,kCAAkC;CAClC,uCAAuC;CACvC,yCAAyC;CACzC,sCAAsC;CACtC,yCAAyC;CACzC,qCAAqC;CACrC,qCAAqC;CACrC,sCAAsC;CACtC,qCAAqC;CACrC,oCAAoC;CACpC,iCAAiC;;CAEjC,0BAA0B;CAG1B,0BAA0B;CAC1B,2BAA2B;CAG3B,kBAAkB;CAClB,4BAA4B;CAC5B,0BAA0B;CAC1B,6BAA6B;CAC7B,4BAA4B;CAC5B,+BAA+B;CAC/B,iCAAiC;CACjC,gCAAgC;CAChC,kCAAkC;CAClC,wCAAwC;CACxC,6BAA6B;CAC7B,0BAA0B;CAC1B,uCAAuC;CACvC,wCAAwC;CACxC,yCAAyC;CACzC,+CAA+C;CAC/C,4BAA4B;CAC5B,yBAAyB;CACzB,yBAAyB;CACzB,oCAAoC;CACpC,2BAA2B;CAC3B,4BAA4B;CAC5B,wBAAwB;CACxB,2BAA2B;CAC3B,iCAAiC;CACjC,kCAAkC;CAClC,2BAA2B;CAC3B,8BAA8B;CAC9B,6BAA6B;CAC7B,0BAA0B;CAC1B,4BAA4B;CAE5B,yBAAyB;CACzB,6BAA6B;CAC7B,mCAAmC;CACnC,mCAAmC;CACnC,kCAAkC;CAClC,kCAAkC;CAClC,yBAAyB;CACzB,qCAAqC;CACrC,sCAAsC;CACtC,4CAA4C;CAC5C,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;;CAE7B,2BAA2B;CAG3B,6BAA6B;CAC7B,iCAAiC;CACjC,yBAAyB;CACzB,sBAAsB;CAGtB,yBAAyB;CACzB,+BAA+B;CAC/B,0BAA0B;CAG1B,kCAAkC;CAClC,8BAA8B;CAC9B,6BAA6B;CAC7B,6BAA6B;CAC7B,8BAA8B;CAG9B,+BAA+B;CAC/B,8BAA8B;CAC9B,6BAA6B;CAC7B,gCAAgC;CAChC,2CAA2C;CAC3C,kCAAkC;CAElC,0BAA0B;CAC1B,yBAAyB;CACzB,wBAAwB;CACxB,2BAA2B;CAC3B,sCAAsC;CACtC,2BAA2B;CAC3B,0BAA0B;CAC1B,yBAAyB;CACzB,0BAA0B;CAC1B,0BAA0B;CAC1B,gCAAgC;CAChC,yBAAyB;CACzB,6BAA6B;CAC7B,4BAA4B;CAG5B,+BAA+B;CAC/B,+BAA+B;CAC/B,iCAAiC;CACjC,uCAAuC;CACvC,gCAAgC;CAChC,qCAAqC;CACrC,qCAAqC;CACrC,sCAAsC;CACtC,uCAAuC;CACvC,uCAAuC;CACvC,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;CAGnC,kCAAkC;CAClC,4BAA4B;CAC5B,2BAA2B;CAC3B,gCAAgC;CAChC,2BAA2B;CAC3B,+BAA+B;CAC/B,yBAAyB;CACzB,6BAA6B;CAC7B,gCAAgC;CAGhC,8BAA8B;CAC9B,iCAAiC;CACjC,mCAAmC;CACnC,mCAAmC;CACnC,6BAA6B;CAC7B,iCAAiC;CACjC,kCAAkC;CAClC,6BAA6B;CAC7B,mCAAmC;CACnC,mCAAmC;CACnC,8BAA8B;CAC9B,kCAAkC;CAClC,iCAAiC;CACjC,oCAAoC;CACpC,wCAAwC;CACxC,iCAAiC;CACjC,uCAAuC;CACvC,uCAAuC;CAGvC,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;CAGnC,uCAAuC;CACvC,wCAAwC;CACxC,4CAA4C;CAC5C,kDAAkD;CAClD,kDAAkD;CAClD,wDAAwD;CACxD,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,8CAA8C;CAC9C,oDAAoD;CACpD,4CAA4C;CAC5C,kDAAkD;CAClD,wDAAwD;CACxD,iDAAiD;CACjD,uDAAuD;CACvD,yCAAyC;CACzC,8CAA8C;CAC9C,oDAAoD;CACpD,+CAA+C;CAC/C,qDAAqD;CAGrD,4BAA4B;CAC5B,kCAAkC;CAClC,8BAA8B;CAC9B,6BAA6B;CAC7B,8BAA8B;CAC9B,kCAAkC;CAClC,4BAA4B;CAC5B,2BAA2B;CAE3B,2BAA2B;CAC3B,0BAA0B;CAC1B,yBAAyB;CACzB,4BAA4B;CAC5B,4BAA4B;CAC5B,2BAA2B;CAC3B,0BAA0B;CAC1B,+BAA+B;CAC/B,+BAA+B;CAE/B,2BAA2B;CAC3B,0BAA0B;CAC1B,yBAAyB;CACzB,4BAA4B;AAC9B"}
|
package/dist/i18n/de.d.ts
CHANGED
|
@@ -559,8 +559,12 @@ export declare const de: {
|
|
|
559
559
|
readonly 'composites.split.children': "In Unterblöcke teilen";
|
|
560
560
|
readonly 'composites.split.lengthChildren': "Nach Länge in Unterblöcke teilen";
|
|
561
561
|
readonly 'composites.split.lengthSiblings': "Nach Länge in Blöcke teilen";
|
|
562
|
+
readonly 'composites.split.rulesChildren': "An Trennlinien in Unterblöcke teilen";
|
|
563
|
+
readonly 'composites.split.rulesSiblings': "An Trennlinien in Blöcke teilen";
|
|
562
564
|
readonly 'composites.merge.next': "Mit nächstem zusammenführen";
|
|
563
565
|
readonly 'settings.editing.splitTargetChars': "Zielgröße beim Teilen (Zeichen)";
|
|
566
|
+
readonly 'settings.editing.splitOnRule.label': "--- teilt den Block";
|
|
567
|
+
readonly 'settings.editing.splitOnRule.description': "--- in einer leeren Zeile eines Blocks teilt ihn dort in zwei Blöcke, statt eine Trennlinie einzufügen.";
|
|
564
568
|
readonly 'composites.toolbar.toKind': "In Block umwandeln";
|
|
565
569
|
readonly 'composites.toolbar.structure': "Gliederung umwandeln";
|
|
566
570
|
readonly 'composites.menu.kindHeading': "Block";
|
|
@@ -215,8 +215,12 @@ const en = {
|
|
|
215
215
|
"composites.split.children": "Split into nested Typed blocks",
|
|
216
216
|
"composites.split.lengthChildren": "Split by length into nested Typed blocks",
|
|
217
217
|
"composites.split.lengthSiblings": "Split by length into Typed blocks",
|
|
218
|
+
"composites.split.rulesChildren": "Split at rules into nested Typed blocks",
|
|
219
|
+
"composites.split.rulesSiblings": "Split at rules into Typed blocks",
|
|
218
220
|
"composites.merge.next": "Merge with next",
|
|
219
221
|
"settings.editing.splitTargetChars": "Target size when splitting (characters)",
|
|
222
|
+
"settings.editing.splitOnRule.label": "--- splits the Typed block",
|
|
223
|
+
"settings.editing.splitOnRule.description": "--- on an empty line of a Typed block splits it there into two Typed blocks instead of inserting a horizontal rule.",
|
|
220
224
|
"composites.toolbar.toKind": "Convert to Typed block",
|
|
221
225
|
"composites.toolbar.structure": "Convert structure",
|
|
222
226
|
"composites.menu.kindHeading": "Typed block",
|
|
@@ -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': 'Readable 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.collection.label': 'Collection',\n 'composites.kind.collection.title': 'Collection name',\n 'composites.kind.collection.description': 'What the collection is for',\n 'composites.kind.collection.items': 'Entries',\n 'composites.kind.collection.query': 'Query',\n 'composites.collection.list': 'Entries of the collection',\n 'composites.collection.empty': 'No entries yet',\n 'composites.collection.fill': 'Fill from query',\n 'composites.collection.filled.one': '1 block added',\n 'composites.collection.filled.other': '{n} blocks added',\n 'composites.collection.filledNone': 'No new matches',\n 'composites.collection.fillFailed': 'The query failed',\n 'composites.collection.moveUp': '“{title}” up',\n 'composites.collection.moveDown': '“{title}” down',\n 'composites.collection.add': 'Add to collection',\n 'composites.kind.dataView.label': 'View',\n 'composites.kind.dataView.title': 'View name',\n 'composites.kind.dataView.description': 'What the view shows',\n 'composites.kind.dataView.query': 'Query',\n 'composites.kind.dataView.layout': 'Layout',\n /** The data view block: its layouts, states and the line under it. */\n 'composites.slash.dataView': 'View',\n 'composites.dataView.layout.table': 'Table',\n 'composites.dataView.layout.list': 'List',\n 'composites.dataView.layout.board': 'Board',\n 'composites.dataView.layout.label': 'Layout of the view',\n 'composites.dataView.noQuery': 'This view has no query yet.',\n 'composites.dataView.needsGroup': 'A board needs a grouping: the query names no field to form the columns by.',\n 'composites.dataView.loading': 'Loading the view …',\n 'composites.dataView.error': 'The query of the view failed',\n 'composites.dataView.empty': 'No matches',\n 'composites.dataView.count.one': '1 match',\n 'composites.dataView.count.other': '{n} matches',\n 'composites.dataView.more': '{n} of {total} matches shown',\n 'composites.dataView.documentOnly': 'Only the blocks of this Document',\n 'composites.dataView.lane.none': 'No value',\n 'composites.dataView.rows': 'Matches of the view',\n /** The query builder of a data view: a form over its stored query. */\n 'composites.queryBuilder.toggle': 'Edit query',\n 'composites.queryBuilder.blockType': 'Block type',\n 'composites.queryBuilder.blockType.none': 'Choose a Block type',\n 'composites.queryBuilder.noType': 'Choose a Block type.',\n 'composites.queryBuilder.moreTypes': 'The query reads several Block types: {types}. Another type replaces them.',\n 'composites.queryBuilder.filter': 'Filter (all conditions)',\n 'composites.queryBuilder.filter.empty': 'No condition: every Block of the type.',\n 'composites.queryBuilder.filter.locked': 'The filter of the query is nested or uses “or” and stays as it is.',\n 'composites.queryBuilder.filter.clear': 'Replace filter',\n 'composites.queryBuilder.add': 'Add condition',\n 'composites.queryBuilder.remove': 'Remove condition',\n 'composites.queryBuilder.field': 'Field',\n 'composites.queryBuilder.operator': 'Comparison',\n 'composites.queryBuilder.value': 'Value',\n 'composites.queryBuilder.value.true': 'Yes',\n 'composites.queryBuilder.value.false': 'No',\n 'composites.queryBuilder.value.list': 'Values, separated by commas',\n 'composites.queryBuilder.sort': 'Sort by',\n 'composites.queryBuilder.sort.none': 'No sorting',\n 'composites.queryBuilder.sort.asc': 'Ascending',\n 'composites.queryBuilder.sort.desc': 'Descending',\n 'composites.queryBuilder.group': 'Group by',\n 'composites.queryBuilder.group.none': 'No grouping',\n 'composites.queryBuilder.group.hideEmpty': 'Hide the group without a value',\n 'composites.queryBuilder.invalid': 'The query is not saved yet: {n} open.',\n 'composites.queryBuilder.pseudo.title': 'Title',\n 'composites.queryBuilder.pseudo.tags': 'Tags',\n 'composites.queryBuilder.pseudo.type': 'Block type',\n 'composites.queryBuilder.pseudo.id': 'Block ID',\n 'composites.queryBuilder.pseudo.doc': 'Document',\n 'composites.queryBuilder.pseudo.basket': 'Colour',\n 'composites.queryBuilder.op.eq': 'is',\n 'composites.queryBuilder.op.ne': 'is not',\n 'composites.queryBuilder.op.lt': 'less than',\n 'composites.queryBuilder.op.lte': 'at most',\n 'composites.queryBuilder.op.gt': 'greater than',\n 'composites.queryBuilder.op.gte': 'at least',\n 'composites.queryBuilder.op.contains': 'contains',\n 'composites.queryBuilder.op.startsWith': 'starts with',\n 'composites.queryBuilder.op.isEmpty': 'is empty',\n 'composites.queryBuilder.op.isNotEmpty': 'is not empty',\n 'composites.queryBuilder.op.hasAny': 'has any of',\n 'composites.queryBuilder.op.hasAll': 'has all of',\n 'composites.queryBuilder.op.hasNone': 'has none of',\n 'composites.queryBuilder.op.before': 'before',\n 'composites.queryBuilder.op.after': 'after',\n 'composites.queryBuilder.op.on': 'on',\n 'composites.kind.select': 'Block type',\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 Typed blocks',\n 'composites.slash.groupAll': 'Headings to Typed blocks (nested)',\n 'composites.slash.flatten': 'Typed blocks to headings',\n 'composites.slash.flattenAll': 'Typed blocks to headings (all levels)',\n 'composites.blockAction.export': 'Export as Markdown',\n 'composites.export.issues.one': '1 issue',\n 'composites.export.issues.other': '{n} issues',\n 'composites.export.issues.description': 'The export was created anyway. The issues are listed in the inspector under “Export notes”.',\n 'composites.export.section': 'Export notes',\n 'composites.export.none': 'No issues',\n 'composites.export.code.ai-unchecked': 'AI proposal not checked',\n 'composites.export.code.stale-derived': 'Source changed',\n 'composites.export.code.source-missing': 'Source missing',\n 'composites.export.code.unresolved-reference': 'Reference without target',\n 'composites.edges.section': 'Edges',\n 'composites.edges.none': 'No edges',\n 'composites.edges.kind': 'Kind of edge',\n 'composites.edges.kindPlaceholder': 'e.g. supports',\n 'composites.edges.target': 'Find target',\n 'composites.edges.noMatch': 'No block found',\n 'composites.edges.add': 'Add edge',\n 'composites.edges.remove': 'Remove edge to “{title}”',\n 'composites.blockAction.bibtex': 'Export reference (BibTeX)',\n 'composites.blockAction.details': 'Details',\n 'composites.render.block': 'Generate as …',\n 'composites.render.document': 'Generate document as …',\n 'composites.render.running': 'Generating “{target}”',\n 'composites.render.done': '“{target}” is ready',\n 'composites.render.failed': '“{target}” failed',\n 'composites.split.here': 'Split Typed block here',\n 'composites.split.children': 'Split into nested Typed blocks',\n 'composites.split.lengthChildren': 'Split by length into nested Typed blocks',\n 'composites.split.lengthSiblings': 'Split by length into Typed blocks',\n 'composites.merge.next': 'Merge with next',\n 'settings.editing.splitTargetChars': 'Target size when splitting (characters)',\n 'composites.toolbar.toKind': 'Convert to Typed block',\n 'composites.toolbar.structure': 'Convert structure',\n 'composites.menu.kindHeading': 'Typed block',\n 'composites.menu.toComposites': 'Headings to Typed blocks',\n 'composites.menu.toComposites.top': 'Top level only',\n 'composites.menu.toComposites.top.description': 'Only the highest heading level becomes Typed blocks',\n 'composites.menu.toComposites.all': 'All levels (nested)',\n 'composites.menu.toComposites.all.description': 'Every heading level becomes a nested Typed block',\n 'composites.menu.toHeadings': 'Typed blocks to headings',\n 'composites.menu.toHeadings.top': 'Top level only',\n 'composites.menu.toHeadings.top.description': 'The top Typed blocks become headings; inner Typed blocks stay',\n 'composites.menu.toHeadings.all': 'All levels',\n 'composites.menu.toHeadings.all.description': 'Every Typed block becomes a heading of its level; description, tags and properties as text',\n 'composites.menu.settings': 'Settings…',\n 'composites.menu.preferred': 'Preferred: {mode}',\n 'composites.convert.kind': '{kind} (Typed block)',\n\n 'composites.chrome.details': 'Block type and details: {kind}',\n 'composites.chrome.detailsDrag': 'Block type 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 block type? Switching to “{kind}” discards this information:',\n 'composites.details.confirm': 'Really change the block type?',\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 block',\n 'composites.reference.empty': 'No matching blocks',\n 'composites.reference.gone': 'Block deleted',\n 'composites.reference.locator': 'Locator',\n 'composites.reference.locatorPlaceholder': 'Locator, e.g. p. 12 or 03:14',\n 'composites.reference.backlinks': 'References',\n // Citation (`[cite:`, `/zitat`) of a bibliography entry of the Document.\n 'composites.cite.insert': 'Insert citation',\n 'composites.cite.empty': 'No matching bibliography entries',\n 'composites.cite.gone': 'Bibliography entry not found',\n 'composites.cite.locator': 'Locator',\n 'composites.cite.locatorPlaceholder': 'Locator, e.g. p. 12',\n 'composites.embed.insert': 'Embed a block',\n 'composites.embed.empty': 'Nothing to show in this block',\n 'composites.embed.gone': 'Block deleted',\n 'composites.embed.cycle': 'This block cannot contain itself',\n 'composites.embed.limit': 'Too many blocks embedded within one another',\n 'composites.embed.unavailable': 'Block cannot be shown',\n 'composites.embed.open': 'Edit at source',\n 'composites.embed.children': 'Contents',\n 'composites.embed.noMatch': 'No matching blocks',\n\n 'composites.derivation.badge': 'derived',\n 'composites.derivation.stale': 'Source changed',\n 'composites.derivation.foreign': 'from another document',\n 'composites.derivation.sourceMissing': 'Source missing',\n 'composites.derivation.edited': 'edited',\n 'composites.derivation.state.fresh': 'current',\n 'composites.derivation.state.stale': 'outdated',\n 'composites.derivation.state.edited': 'edited',\n 'composites.derivation.state.missing': 'Source missing',\n 'composites.derivation.state.foreign': 'from another document',\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 Typed 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.anchorPage': 'p. {page}',\n 'composites.field.none': 'None',\n 'composites.field.addBlock': 'Add block',\n 'composites.field.removeEntry': 'Remove {title}',\n\n 'composites.inspector.label': 'Properties',\n 'composites.inspector.document': 'Document facts',\n 'composites.inspector.composites': 'Typed blocks',\n 'composites.inspector.summarized': '{n} of {total} summarized',\n 'composites.inspector.none': 'None',\n 'composites.inspector.mentions': 'Mentions',\n 'composites.inspector.composite': 'Typed block',\n 'composites.inspector.kind': 'Block type',\n 'composites.inspector.properties': 'Block properties',\n 'composites.inspector.derivation': 'Origin',\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': 'Typed blocks as table',\n 'composites.table.emptyTitle': 'This document has no Typed blocks yet',\n 'composites.table.emptyText': 'Typed 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': 'Typed block',\n 'composites.table.column.kind': 'Block type',\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 Typed 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 block type',\n 'composites.table.filter.byTag': 'Filter by tag',\n 'composites.table.filter.noMatch': 'No Typed block matches these filters.',\n 'composites.table.count.one': '{n} of {total} Typed block',\n 'composites.table.count.other': '{n} of {total} Typed 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': 'Structure mode',\n 'composites.settings.structure.flat.label': 'Flat mode',\n 'composites.settings.structure.flat.description': 'Toolbar with Heading 1–3. AI texts are structured flat with headings (##, ###); Typed blocks the AI writes anyway become headings.',\n 'composites.settings.structure.structured.label': 'Structure mode',\n 'composites.settings.structure.structured.description': 'Toolbar without Heading 1–3. AI texts are structured as Typed blocks, subsections as nested Typed blocks; headings the AI writes anyway become Typed blocks.',\n 'composites.settings.scope.legend': '“Convert structure” without a selection applies to',\n 'composites.settings.scope.container.label': 'Enclosing Typed block',\n 'composites.settings.scope.container.description': 'The Typed block the cursor is in; the whole document outside of Typed 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 Typed block at the cursor',\n 'composites.settings.scope.heading.description': 'Converting to Typed blocks: the heading at or before the cursor with its content. Converting to headings: the innermost Typed 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 Typed block file is open, the sidebar shows it as the root with its folders and documents. Without an open Typed block file it shows the folders.',\n 'composites.settings.composites.title': 'Typed blocks',\n 'composites.settings.defaultBlockType.label': 'Default block type',\n 'composites.settings.defaultBlockType.description': 'Block type of the Typed blocks the toolbar, “/” commands and “Headings to Typed blocks” create.',\n 'composites.settings.blockTypeIcon.legend': 'Block type icon',\n 'composites.settings.blockTypeIcon.always.label': 'Always show',\n 'composites.settings.blockTypeIcon.always.description': 'The block type icon is permanently shown in front of the Typed block.',\n 'composites.settings.blockTypeIcon.hover.label': 'Only on hover',\n 'composites.settings.blockTypeIcon.hover.description': 'The icon appears when the mouse is over the Typed 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.property.syncFailed': 'Property could not be saved in sync',\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 Typed block.',\n 'composites.move.intoSelf': 'A block cannot be moved into itself.',\n 'composites.move.intoOwn': 'A block cannot be moved into a Typed 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":"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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': 'Readable 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.collection.label': 'Collection',\n 'composites.kind.collection.title': 'Collection name',\n 'composites.kind.collection.description': 'What the collection is for',\n 'composites.kind.collection.items': 'Entries',\n 'composites.kind.collection.query': 'Query',\n 'composites.collection.list': 'Entries of the collection',\n 'composites.collection.empty': 'No entries yet',\n 'composites.collection.fill': 'Fill from query',\n 'composites.collection.filled.one': '1 block added',\n 'composites.collection.filled.other': '{n} blocks added',\n 'composites.collection.filledNone': 'No new matches',\n 'composites.collection.fillFailed': 'The query failed',\n 'composites.collection.moveUp': '“{title}” up',\n 'composites.collection.moveDown': '“{title}” down',\n 'composites.collection.add': 'Add to collection',\n 'composites.kind.dataView.label': 'View',\n 'composites.kind.dataView.title': 'View name',\n 'composites.kind.dataView.description': 'What the view shows',\n 'composites.kind.dataView.query': 'Query',\n 'composites.kind.dataView.layout': 'Layout',\n /** The data view block: its layouts, states and the line under it. */\n 'composites.slash.dataView': 'View',\n 'composites.dataView.layout.table': 'Table',\n 'composites.dataView.layout.list': 'List',\n 'composites.dataView.layout.board': 'Board',\n 'composites.dataView.layout.label': 'Layout of the view',\n 'composites.dataView.noQuery': 'This view has no query yet.',\n 'composites.dataView.needsGroup': 'A board needs a grouping: the query names no field to form the columns by.',\n 'composites.dataView.loading': 'Loading the view …',\n 'composites.dataView.error': 'The query of the view failed',\n 'composites.dataView.empty': 'No matches',\n 'composites.dataView.count.one': '1 match',\n 'composites.dataView.count.other': '{n} matches',\n 'composites.dataView.more': '{n} of {total} matches shown',\n 'composites.dataView.documentOnly': 'Only the blocks of this Document',\n 'composites.dataView.lane.none': 'No value',\n 'composites.dataView.rows': 'Matches of the view',\n /** The query builder of a data view: a form over its stored query. */\n 'composites.queryBuilder.toggle': 'Edit query',\n 'composites.queryBuilder.blockType': 'Block type',\n 'composites.queryBuilder.blockType.none': 'Choose a Block type',\n 'composites.queryBuilder.noType': 'Choose a Block type.',\n 'composites.queryBuilder.moreTypes': 'The query reads several Block types: {types}. Another type replaces them.',\n 'composites.queryBuilder.filter': 'Filter (all conditions)',\n 'composites.queryBuilder.filter.empty': 'No condition: every Block of the type.',\n 'composites.queryBuilder.filter.locked': 'The filter of the query is nested or uses “or” and stays as it is.',\n 'composites.queryBuilder.filter.clear': 'Replace filter',\n 'composites.queryBuilder.add': 'Add condition',\n 'composites.queryBuilder.remove': 'Remove condition',\n 'composites.queryBuilder.field': 'Field',\n 'composites.queryBuilder.operator': 'Comparison',\n 'composites.queryBuilder.value': 'Value',\n 'composites.queryBuilder.value.true': 'Yes',\n 'composites.queryBuilder.value.false': 'No',\n 'composites.queryBuilder.value.list': 'Values, separated by commas',\n 'composites.queryBuilder.sort': 'Sort by',\n 'composites.queryBuilder.sort.none': 'No sorting',\n 'composites.queryBuilder.sort.asc': 'Ascending',\n 'composites.queryBuilder.sort.desc': 'Descending',\n 'composites.queryBuilder.group': 'Group by',\n 'composites.queryBuilder.group.none': 'No grouping',\n 'composites.queryBuilder.group.hideEmpty': 'Hide the group without a value',\n 'composites.queryBuilder.invalid': 'The query is not saved yet: {n} open.',\n 'composites.queryBuilder.pseudo.title': 'Title',\n 'composites.queryBuilder.pseudo.tags': 'Tags',\n 'composites.queryBuilder.pseudo.type': 'Block type',\n 'composites.queryBuilder.pseudo.id': 'Block ID',\n 'composites.queryBuilder.pseudo.doc': 'Document',\n 'composites.queryBuilder.pseudo.basket': 'Colour',\n 'composites.queryBuilder.op.eq': 'is',\n 'composites.queryBuilder.op.ne': 'is not',\n 'composites.queryBuilder.op.lt': 'less than',\n 'composites.queryBuilder.op.lte': 'at most',\n 'composites.queryBuilder.op.gt': 'greater than',\n 'composites.queryBuilder.op.gte': 'at least',\n 'composites.queryBuilder.op.contains': 'contains',\n 'composites.queryBuilder.op.startsWith': 'starts with',\n 'composites.queryBuilder.op.isEmpty': 'is empty',\n 'composites.queryBuilder.op.isNotEmpty': 'is not empty',\n 'composites.queryBuilder.op.hasAny': 'has any of',\n 'composites.queryBuilder.op.hasAll': 'has all of',\n 'composites.queryBuilder.op.hasNone': 'has none of',\n 'composites.queryBuilder.op.before': 'before',\n 'composites.queryBuilder.op.after': 'after',\n 'composites.queryBuilder.op.on': 'on',\n 'composites.kind.select': 'Block type',\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 Typed blocks',\n 'composites.slash.groupAll': 'Headings to Typed blocks (nested)',\n 'composites.slash.flatten': 'Typed blocks to headings',\n 'composites.slash.flattenAll': 'Typed blocks to headings (all levels)',\n 'composites.blockAction.export': 'Export as Markdown',\n 'composites.export.issues.one': '1 issue',\n 'composites.export.issues.other': '{n} issues',\n 'composites.export.issues.description': 'The export was created anyway. The issues are listed in the inspector under “Export notes”.',\n 'composites.export.section': 'Export notes',\n 'composites.export.none': 'No issues',\n 'composites.export.code.ai-unchecked': 'AI proposal not checked',\n 'composites.export.code.stale-derived': 'Source changed',\n 'composites.export.code.source-missing': 'Source missing',\n 'composites.export.code.unresolved-reference': 'Reference without target',\n 'composites.edges.section': 'Edges',\n 'composites.edges.none': 'No edges',\n 'composites.edges.kind': 'Kind of edge',\n 'composites.edges.kindPlaceholder': 'e.g. supports',\n 'composites.edges.target': 'Find target',\n 'composites.edges.noMatch': 'No block found',\n 'composites.edges.add': 'Add edge',\n 'composites.edges.remove': 'Remove edge to “{title}”',\n 'composites.blockAction.bibtex': 'Export reference (BibTeX)',\n 'composites.blockAction.details': 'Details',\n 'composites.render.block': 'Generate as …',\n 'composites.render.document': 'Generate document as …',\n 'composites.render.running': 'Generating “{target}”',\n 'composites.render.done': '“{target}” is ready',\n 'composites.render.failed': '“{target}” failed',\n 'composites.split.here': 'Split Typed block here',\n 'composites.split.children': 'Split into nested Typed blocks',\n 'composites.split.lengthChildren': 'Split by length into nested Typed blocks',\n 'composites.split.lengthSiblings': 'Split by length into Typed blocks',\n 'composites.split.rulesChildren': 'Split at rules into nested Typed blocks',\n 'composites.split.rulesSiblings': 'Split at rules into Typed blocks',\n 'composites.merge.next': 'Merge with next',\n 'settings.editing.splitTargetChars': 'Target size when splitting (characters)',\n 'settings.editing.splitOnRule.label': '--- splits the Typed block',\n 'settings.editing.splitOnRule.description': '--- on an empty line of a Typed block splits it there into two Typed blocks instead of inserting a horizontal rule.',\n 'composites.toolbar.toKind': 'Convert to Typed block',\n 'composites.toolbar.structure': 'Convert structure',\n 'composites.menu.kindHeading': 'Typed block',\n 'composites.menu.toComposites': 'Headings to Typed blocks',\n 'composites.menu.toComposites.top': 'Top level only',\n 'composites.menu.toComposites.top.description': 'Only the highest heading level becomes Typed blocks',\n 'composites.menu.toComposites.all': 'All levels (nested)',\n 'composites.menu.toComposites.all.description': 'Every heading level becomes a nested Typed block',\n 'composites.menu.toHeadings': 'Typed blocks to headings',\n 'composites.menu.toHeadings.top': 'Top level only',\n 'composites.menu.toHeadings.top.description': 'The top Typed blocks become headings; inner Typed blocks stay',\n 'composites.menu.toHeadings.all': 'All levels',\n 'composites.menu.toHeadings.all.description': 'Every Typed block becomes a heading of its level; description, tags and properties as text',\n 'composites.menu.settings': 'Settings…',\n 'composites.menu.preferred': 'Preferred: {mode}',\n 'composites.convert.kind': '{kind} (Typed block)',\n\n 'composites.chrome.details': 'Block type and details: {kind}',\n 'composites.chrome.detailsDrag': 'Block type 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 block type? Switching to “{kind}” discards this information:',\n 'composites.details.confirm': 'Really change the block type?',\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 block',\n 'composites.reference.empty': 'No matching blocks',\n 'composites.reference.gone': 'Block deleted',\n 'composites.reference.locator': 'Locator',\n 'composites.reference.locatorPlaceholder': 'Locator, e.g. p. 12 or 03:14',\n 'composites.reference.backlinks': 'References',\n // Citation (`[cite:`, `/zitat`) of a bibliography entry of the Document.\n 'composites.cite.insert': 'Insert citation',\n 'composites.cite.empty': 'No matching bibliography entries',\n 'composites.cite.gone': 'Bibliography entry not found',\n 'composites.cite.locator': 'Locator',\n 'composites.cite.locatorPlaceholder': 'Locator, e.g. p. 12',\n 'composites.embed.insert': 'Embed a block',\n 'composites.embed.empty': 'Nothing to show in this block',\n 'composites.embed.gone': 'Block deleted',\n 'composites.embed.cycle': 'This block cannot contain itself',\n 'composites.embed.limit': 'Too many blocks embedded within one another',\n 'composites.embed.unavailable': 'Block cannot be shown',\n 'composites.embed.open': 'Edit at source',\n 'composites.embed.children': 'Contents',\n 'composites.embed.noMatch': 'No matching blocks',\n\n 'composites.derivation.badge': 'derived',\n 'composites.derivation.stale': 'Source changed',\n 'composites.derivation.foreign': 'from another document',\n 'composites.derivation.sourceMissing': 'Source missing',\n 'composites.derivation.edited': 'edited',\n 'composites.derivation.state.fresh': 'current',\n 'composites.derivation.state.stale': 'outdated',\n 'composites.derivation.state.edited': 'edited',\n 'composites.derivation.state.missing': 'Source missing',\n 'composites.derivation.state.foreign': 'from another document',\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 Typed 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.anchorPage': 'p. {page}',\n 'composites.field.none': 'None',\n 'composites.field.addBlock': 'Add block',\n 'composites.field.removeEntry': 'Remove {title}',\n\n 'composites.inspector.label': 'Properties',\n 'composites.inspector.document': 'Document facts',\n 'composites.inspector.composites': 'Typed blocks',\n 'composites.inspector.summarized': '{n} of {total} summarized',\n 'composites.inspector.none': 'None',\n 'composites.inspector.mentions': 'Mentions',\n 'composites.inspector.composite': 'Typed block',\n 'composites.inspector.kind': 'Block type',\n 'composites.inspector.properties': 'Block properties',\n 'composites.inspector.derivation': 'Origin',\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': 'Typed blocks as table',\n 'composites.table.emptyTitle': 'This document has no Typed blocks yet',\n 'composites.table.emptyText': 'Typed 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': 'Typed block',\n 'composites.table.column.kind': 'Block type',\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 Typed 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 block type',\n 'composites.table.filter.byTag': 'Filter by tag',\n 'composites.table.filter.noMatch': 'No Typed block matches these filters.',\n 'composites.table.count.one': '{n} of {total} Typed block',\n 'composites.table.count.other': '{n} of {total} Typed 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': 'Structure mode',\n 'composites.settings.structure.flat.label': 'Flat mode',\n 'composites.settings.structure.flat.description': 'Toolbar with Heading 1–3. AI texts are structured flat with headings (##, ###); Typed blocks the AI writes anyway become headings.',\n 'composites.settings.structure.structured.label': 'Structure mode',\n 'composites.settings.structure.structured.description': 'Toolbar without Heading 1–3. AI texts are structured as Typed blocks, subsections as nested Typed blocks; headings the AI writes anyway become Typed blocks.',\n 'composites.settings.scope.legend': '“Convert structure” without a selection applies to',\n 'composites.settings.scope.container.label': 'Enclosing Typed block',\n 'composites.settings.scope.container.description': 'The Typed block the cursor is in; the whole document outside of Typed 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 Typed block at the cursor',\n 'composites.settings.scope.heading.description': 'Converting to Typed blocks: the heading at or before the cursor with its content. Converting to headings: the innermost Typed 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 Typed block file is open, the sidebar shows it as the root with its folders and documents. Without an open Typed block file it shows the folders.',\n 'composites.settings.composites.title': 'Typed blocks',\n 'composites.settings.defaultBlockType.label': 'Default block type',\n 'composites.settings.defaultBlockType.description': 'Block type of the Typed blocks the toolbar, “/” commands and “Headings to Typed blocks” create.',\n 'composites.settings.blockTypeIcon.legend': 'Block type icon',\n 'composites.settings.blockTypeIcon.always.label': 'Always show',\n 'composites.settings.blockTypeIcon.always.description': 'The block type icon is permanently shown in front of the Typed block.',\n 'composites.settings.blockTypeIcon.hover.label': 'Only on hover',\n 'composites.settings.blockTypeIcon.hover.description': 'The icon appears when the mouse is over the Typed 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.property.syncFailed': 'Property could not be saved in sync',\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 Typed block.',\n 'composites.move.intoSelf': 'A block cannot be moved into itself.',\n 'composites.move.intoOwn': 'A block cannot be moved into a Typed 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":"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"}
|
|
@@ -61,9 +61,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
61
61
|
onFrontmatter?: ((frontmatter: string | null) => any) | undefined;
|
|
62
62
|
onDiagnostics?: ((diagnostics: MarkdownDiagnostic[]) => any) | undefined;
|
|
63
63
|
}>, {
|
|
64
|
+
modelValue: string;
|
|
64
65
|
editable: boolean;
|
|
65
66
|
settingsUi: "internal" | "external";
|
|
66
|
-
modelValue: string;
|
|
67
67
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
68
68
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
69
69
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { AgentOp } from "../core/agent-op-types.js";
|
|
2
|
+
import { AGENT_TOOL, AgentOpProblem } from "../features/ai/protocol/agent-ops.js";
|
|
3
|
+
import { ChatBlockModel, ChatToolCall, DocumentChatMessage } from "../features/ai/protocol/chat.js";
|
|
4
|
+
import "../features/ai/protocol/index.js";
|
|
5
|
+
import { ToolContext, ToolRegistry } from "./tools.js";
|
|
6
|
+
import { JSONSchema7 } from "ai";
|
|
7
|
+
//#region src/server/chat-agent.d.ts
|
|
8
|
+
/** The `edit_document` tool as an agent offers it to its model: name, description and JSON schema of the input. */
|
|
9
|
+
export interface ChatAgentEditTool {
|
|
10
|
+
name: typeof AGENT_TOOL;
|
|
11
|
+
description: string;
|
|
12
|
+
inputSchema: JSONSchema7;
|
|
13
|
+
}
|
|
14
|
+
/** What `ChatAgentTurn.checkEdit` answers for one `edit_document` call. */
|
|
15
|
+
export interface ChatAgentEdit {
|
|
16
|
+
/** The valid operations, numbered on from the request's `nextOp` across the calls of the turn. */
|
|
17
|
+
ops: AgentOp[];
|
|
18
|
+
/** The operations dropped from this call, with the reason. */
|
|
19
|
+
problems: AgentOpProblem[];
|
|
20
|
+
/** The tool result for the model: which operations are shown for review and, with problems, what to correct and send again. */
|
|
21
|
+
feedback: string;
|
|
22
|
+
}
|
|
23
|
+
/** One chat turn as the agent receives it: everything the built-in loop would give its model, prepared by the server. */
|
|
24
|
+
export interface ChatAgentTurn {
|
|
25
|
+
/** The user `ports.identity` authenticated for the request. */
|
|
26
|
+
user: object;
|
|
27
|
+
/** The Document open in the chat (`documentId` of the request); absent for a chat without a Document. */
|
|
28
|
+
documentId?: string;
|
|
29
|
+
/** The conversation as the client sent it; the last message is the user's new message. */
|
|
30
|
+
messages: readonly DocumentChatMessage[];
|
|
31
|
+
/** The open Document as block lines (`[id] markdown`), the snapshot the client sent. */
|
|
32
|
+
document: string;
|
|
33
|
+
/** Block IDs edits are limited to (the selection, as far as the document has them); null: the whole document. */
|
|
34
|
+
scope: readonly string[] | null;
|
|
35
|
+
/** Block types, host blocks, `convert` targets and preferred structure, as the system prompt describes them. */
|
|
36
|
+
blockModel: ChatBlockModel;
|
|
37
|
+
/** The read-only tools of the chat (`EditorServerOptions.tools`); run a call with `tools.providers.get(name)!.handle(toolContext, input)`. */
|
|
38
|
+
tools: ToolRegistry;
|
|
39
|
+
/** The context the tools run with (ports, user, the request's abort signal, live content, open Document). */
|
|
40
|
+
toolContext: ToolContext;
|
|
41
|
+
/** The system prompt of the built-in loop (`documentChatSystem(blockModel, tools.infos)`): citations, editing through `edit_document`, the block model. */
|
|
42
|
+
system: string;
|
|
43
|
+
/** The `edit_document` tool to offer the model; with the host's change sets its operations may name other Documents. */
|
|
44
|
+
editTool: ChatAgentEditTool;
|
|
45
|
+
/**
|
|
46
|
+
* Checks the input of one `edit_document` call like the built-in loop does (`checkAgentOps`), together with the operations
|
|
47
|
+
* the turn's earlier calls accepted (the per-turn limit, a block edited twice, an operation inside a replaced block); an
|
|
48
|
+
* operation naming another Document is checked against it when the host keeps change sets. Hand `feedback` back to the
|
|
49
|
+
* model as the tool result (with problems it asks for corrected versions of only the dropped operations), and yield
|
|
50
|
+
* `{ type: 'edit', ops, dropped: problems }` so the client shows the operations for review.
|
|
51
|
+
*/
|
|
52
|
+
checkEdit(input: unknown): Promise<ChatAgentEdit>;
|
|
53
|
+
/** Aborts when the client cancels the chat. */
|
|
54
|
+
signal: AbortSignal;
|
|
55
|
+
}
|
|
56
|
+
/** What an agent streams for one turn: answer text (deltas), a read-only tool call it ran, operations `checkEdit` accepted. */
|
|
57
|
+
export type ChatAgentPart = {
|
|
58
|
+
type: 'text';
|
|
59
|
+
text: string;
|
|
60
|
+
} | {
|
|
61
|
+
type: 'tool';
|
|
62
|
+
call: ChatToolCall;
|
|
63
|
+
} | {
|
|
64
|
+
type: 'edit';
|
|
65
|
+
ops: AgentOp[];
|
|
66
|
+
dropped: AgentOpProblem[];
|
|
67
|
+
};
|
|
68
|
+
/** A host-provided agent that answers document chat turns in place of the built-in model loop. A thrown error ends the turn as the stream's `error` event. */
|
|
69
|
+
export interface ChatAgent {
|
|
70
|
+
turn(input: ChatAgentTurn): AsyncIterable<ChatAgentPart>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* JSON schema of the `edit_document` input: the list `ops`. Deliberately loose (only `type` is required), so a malformed
|
|
74
|
+
* call reaches `checkAgentOps` and gets a precise retry message. With `workspace` (the host keeps change sets and a mutator)
|
|
75
|
+
* an operation may name another Document by `documentId`.
|
|
76
|
+
*/
|
|
77
|
+
export declare function documentEditInputSchema({ workspace }?: {
|
|
78
|
+
workspace?: boolean;
|
|
79
|
+
}): JSONSchema7;
|
|
80
|
+
/** The `edit_document` tool of the document chat (name, description, `documentEditInputSchema`), as the built-in loop and `ChatAgentTurn.editTool` offer it. */
|
|
81
|
+
export declare function documentEditTool({ workspace }?: {
|
|
82
|
+
workspace?: boolean;
|
|
83
|
+
}): ChatAgentEditTool;
|
|
84
|
+
//#endregion
|
|
85
|
+
//# sourceMappingURL=chat-agent.d.ts.map
|