@ecsplico/editor 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/dist/adapters/direct-ai.d.ts +36 -0
- package/dist/adapters/direct-ai.js +169 -0
- package/dist/adapters/direct-ai.js.map +1 -0
- package/dist/adapters/memory.js.map +1 -1
- package/dist/code/CodeSurface.vue.d.ts +2 -2
- package/dist/core/block-drag.js +3 -0
- package/dist/core/block-drag.js.map +1 -1
- package/dist/core/block-transfer.d.ts +44 -0
- package/dist/core/block-transfer.js +68 -0
- package/dist/core/block-transfer.js.map +1 -0
- package/dist/core/commands.js +5 -0
- package/dist/core/commands.js.map +1 -1
- package/dist/core/core-feature.d.ts +4 -1
- package/dist/core/core-feature.js +8 -3
- package/dist/core/core-feature.js.map +1 -1
- package/dist/core/editor-ui.d.ts +3 -1
- package/dist/core/editor-ui.js.map +1 -1
- package/dist/core/extension-points.d.ts +17 -1
- package/dist/core/feature.d.ts +6 -1
- package/dist/core/feature.js.map +1 -1
- package/dist/core/index.d.ts +4 -2
- package/dist/core/index.js +3 -2
- package/dist/core/schema/index.d.ts +24 -3
- package/dist/core/schema/index.js +21 -4
- package/dist/core/schema/index.js.map +1 -1
- package/dist/core/surface-session.js +3 -1
- package/dist/core/surface-session.js.map +1 -1
- package/dist/core/toolbar-items.js +1 -1
- package/dist/core/toolbar-items.js.map +1 -1
- package/dist/document/DocumentSurface.vue.d.ts +2 -2
- package/dist/features/ai/agent-op-review.js +1 -1
- package/dist/features/ai/agent-ops.js +2 -2
- package/dist/features/ai/ai-apply.js +1 -1
- package/dist/features/ai/assistant.js +1 -1
- package/dist/features/ai/components/AiSelectionMenu.js +2 -2
- package/dist/features/ai/components/AiSidebar.js +2 -2
- package/dist/features/ai/components/SettingsAiTab.js +1 -1
- package/dist/features/ai/components/SettingsModelProfiles.js +1 -1
- package/dist/features/ai/document-chat-model.js +1 -1
- package/dist/features/ai/document-chat.js +2 -2
- package/dist/features/ai/ghost-autocomplete.js +1 -1
- package/dist/features/ai/index.d.ts +4 -3
- package/dist/features/ai/index.js +6 -5
- package/dist/features/ai/protocol/complete.d.ts +19 -0
- package/dist/features/ai/protocol/complete.js +27 -1
- package/dist/features/ai/protocol/complete.js.map +1 -1
- package/dist/features/ai/protocol/generate.d.ts +95 -0
- package/dist/features/ai/protocol/generate.js +58 -0
- package/dist/features/ai/protocol/generate.js.map +1 -0
- package/dist/features/ai/protocol/index.d.ts +4 -3
- package/dist/features/ai/protocol/index.js +6 -5
- package/dist/features/ai/protocol/tasks.d.ts +3 -1
- package/dist/features/ai/protocol/tasks.js +74 -2
- package/dist/features/ai/protocol/tasks.js.map +1 -1
- package/dist/features/ai/react/AiSelectionMenu.js +2 -2
- package/dist/features/ai/react/AiSidebar.js +2 -2
- package/dist/features/ai/react/SettingsAiTab.js +1 -1
- package/dist/features/ai/react/SettingsModelProfiles.js +1 -1
- package/dist/features/ai/selection-flow.js +1 -1
- package/dist/features/ai/sidebar-flow.js +1 -1
- package/dist/features/block-ui/block-actions.d.ts +19 -3
- package/dist/features/block-ui/block-actions.js +49 -3
- package/dist/features/block-ui/block-actions.js.map +1 -1
- package/dist/features/block-ui/components/BlockActionsOverlay.js +24 -13
- package/dist/features/block-ui/components/BlockActionsOverlay.js.map +1 -1
- package/dist/features/block-ui/components/BlockActionsOverlay.vue.d.ts +12 -5
- package/dist/features/block-ui/components/BlockUi.js +52 -20
- package/dist/features/block-ui/components/BlockUi.js.map +1 -1
- package/dist/features/block-ui/components/BlockUi.vue.d.ts +6 -4
- package/dist/features/block-ui/feature.d.ts +8 -2
- package/dist/features/block-ui/feature.js +7 -2
- package/dist/features/block-ui/feature.js.map +1 -1
- package/dist/features/block-ui/index.d.ts +3 -2
- package/dist/features/block-ui/index.js +2 -2
- package/dist/features/block-ui/react/BlockActionsOverlay.d.ts +14 -7
- package/dist/features/block-ui/react/BlockActionsOverlay.js +25 -13
- package/dist/features/block-ui/react/BlockActionsOverlay.js.map +1 -1
- package/dist/features/block-ui/react/BlockUi.d.ts +6 -4
- package/dist/features/block-ui/react/BlockUi.js +43 -15
- package/dist/features/block-ui/react/BlockUi.js.map +1 -1
- package/dist/features/block-ui/react.d.ts +4 -2
- package/dist/features/block-ui/react.js +3 -3
- package/dist/features/block-ui/react.js.map +1 -1
- package/dist/features/block-ui/vue.d.ts +4 -2
- package/dist/features/block-ui/vue.js +3 -3
- package/dist/features/block-ui/vue.js.map +1 -1
- package/dist/features/composites/baskets.d.ts +27 -0
- package/dist/features/composites/baskets.js +46 -0
- package/dist/features/composites/baskets.js.map +1 -0
- package/dist/features/composites/components/CompositeBasketMenu.js +97 -0
- package/dist/features/composites/components/CompositeBasketMenu.js.map +1 -0
- package/dist/features/composites/components/CompositeChrome.js +79 -23
- package/dist/features/composites/components/CompositeChrome.js.map +1 -1
- package/dist/features/composites/components/CompositeFieldEditor.js +1 -0
- package/dist/features/composites/components/CompositeFieldEditor.js.map +1 -1
- package/dist/features/composites/components/CompositeView.js +17 -2
- package/dist/features/composites/components/CompositeView.js.map +1 -1
- package/dist/features/composites/components/DerivationBadge.js +12 -3
- package/dist/features/composites/components/DerivationBadge.js.map +1 -1
- package/dist/features/composites/components/FocusChip.js +53 -0
- package/dist/features/composites/components/FocusChip.js.map +1 -0
- package/dist/features/composites/components/FocusChip.vue.d.ts +14 -0
- package/dist/features/composites/components/SettingsEditingTab.js +40 -4
- package/dist/features/composites/components/SettingsEditingTab.js.map +1 -1
- package/dist/features/composites/derivation.d.ts +2 -1
- package/dist/features/composites/derivation.js +5 -1
- package/dist/features/composites/derivation.js.map +1 -1
- package/dist/features/composites/derived-chrome.js +13 -3
- package/dist/features/composites/derived-chrome.js.map +1 -1
- package/dist/features/composites/feature.d.ts +7 -1
- package/dist/features/composites/feature.js +96 -23
- package/dist/features/composites/feature.js.map +1 -1
- package/dist/features/composites/focus.d.ts +38 -0
- package/dist/features/composites/focus.js +86 -0
- package/dist/features/composites/focus.js.map +1 -0
- package/dist/features/composites/index.d.ts +6 -3
- package/dist/features/composites/index.js +6 -3
- package/dist/features/composites/meta-keys.d.ts +4 -0
- package/dist/features/composites/meta-keys.js +8 -4
- package/dist/features/composites/meta-keys.js.map +1 -1
- package/dist/features/composites/nodes.d.ts +14 -2
- package/dist/features/composites/nodes.js +61 -5
- package/dist/features/composites/nodes.js.map +1 -1
- package/dist/features/composites/outline.d.ts +4 -0
- package/dist/features/composites/outline.js +3 -0
- package/dist/features/composites/outline.js.map +1 -1
- package/dist/features/composites/react/CompositeBasketMenu.js +88 -0
- package/dist/features/composites/react/CompositeBasketMenu.js.map +1 -0
- package/dist/features/composites/react/CompositeChrome.js +52 -4
- package/dist/features/composites/react/CompositeChrome.js.map +1 -1
- package/dist/features/composites/react/CompositeView.js +12 -2
- package/dist/features/composites/react/CompositeView.js.map +1 -1
- package/dist/features/composites/react/DerivationBadge.js +10 -1
- package/dist/features/composites/react/DerivationBadge.js.map +1 -1
- package/dist/features/composites/react/FocusChip.d.ts +11 -0
- package/dist/features/composites/react/FocusChip.js +50 -0
- package/dist/features/composites/react/FocusChip.js.map +1 -0
- package/dist/features/composites/react/SettingsEditingTab.js +36 -1
- package/dist/features/composites/react/SettingsEditingTab.js.map +1 -1
- package/dist/features/composites/react.d.ts +2 -1
- package/dist/features/composites/react.js +3 -1
- package/dist/features/composites/react.js.map +1 -1
- package/dist/features/composites/schema.d.ts +5 -3
- package/dist/features/composites/schema.js +8 -4
- package/dist/features/composites/schema.js.map +1 -1
- package/dist/features/composites/split.d.ts +62 -0
- package/dist/features/composites/split.js +172 -0
- package/dist/features/composites/split.js.map +1 -0
- package/dist/features/composites/vue.d.ts +4 -3
- package/dist/features/composites/vue.js +7 -5
- package/dist/features/composites/vue.js.map +1 -1
- package/dist/features/media/index.js +1 -1
- package/dist/features/media/react/AudioRecorderModal.js +1 -1
- package/dist/features/media/react.js +1 -1
- package/dist/features/transfer/components/TransferMenu.js +93 -0
- package/dist/features/transfer/components/TransferMenu.js.map +1 -0
- package/dist/features/transfer/components/TransferMenu.vue.d.ts +15 -0
- package/dist/features/transfer/feature.d.ts +76 -0
- package/dist/features/transfer/feature.js +169 -0
- package/dist/features/transfer/feature.js.map +1 -0
- package/dist/features/transfer/index.d.ts +3 -0
- package/dist/features/transfer/index.js +3 -0
- package/dist/features/transfer/react/TransferMenu.d.ts +12 -0
- package/dist/features/transfer/react/TransferMenu.js +71 -0
- package/dist/features/transfer/react/TransferMenu.js.map +1 -0
- package/dist/features/transfer/react.d.ts +10 -0
- package/dist/features/transfer/react.js +11 -0
- package/dist/features/transfer/react.js.map +1 -0
- package/dist/features/transfer/transforms.d.ts +83 -0
- package/dist/features/transfer/transforms.js +137 -0
- package/dist/features/transfer/transforms.js.map +1 -0
- package/dist/features/transfer/vue.d.ts +9 -0
- package/dist/features/transfer/vue.js +11 -0
- package/dist/features/transfer/vue.js.map +1 -0
- package/dist/i18n/de/ai.js +4 -0
- package/dist/i18n/de/ai.js.map +1 -1
- package/dist/i18n/de/composites.js +20 -1
- package/dist/i18n/de/composites.js.map +1 -1
- package/dist/i18n/de/integrations.js +16 -0
- package/dist/i18n/de/integrations.js.map +1 -1
- package/dist/i18n/de/transfer.js +17 -0
- package/dist/i18n/de/transfer.js.map +1 -0
- package/dist/i18n/de/tree.js +6 -0
- package/dist/i18n/de/tree.js.map +1 -1
- package/dist/i18n/de.d.ts +55 -0
- package/dist/i18n/de.js +3 -1
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en/ai.js +4 -0
- package/dist/i18n/en/ai.js.map +1 -1
- package/dist/i18n/en/composites.js +20 -1
- package/dist/i18n/en/composites.js.map +1 -1
- package/dist/i18n/en/integrations.js +16 -0
- package/dist/i18n/en/integrations.js.map +1 -1
- package/dist/i18n/en/transfer.js +17 -0
- package/dist/i18n/en/transfer.js.map +1 -0
- package/dist/i18n/en/tree.js +6 -0
- package/dist/i18n/en/tree.js.map +1 -1
- package/dist/i18n/en.js +3 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/integrations/composite-ai/composite-fill.js +1 -1
- package/dist/integrations/composite-ai/composite-summary.js +1 -1
- package/dist/integrations/composite-ai/derive.d.ts +21 -0
- package/dist/integrations/composite-ai/derive.js +69 -47
- package/dist/integrations/composite-ai/derive.js.map +1 -1
- package/dist/integrations/composite-ai/index.d.ts +8 -3
- package/dist/integrations/composite-ai/index.js +50 -4
- package/dist/integrations/composite-ai/index.js.map +1 -1
- package/dist/integrations/composite-ai/outline-sanitize.d.ts +48 -0
- package/dist/integrations/composite-ai/outline-sanitize.js +175 -0
- package/dist/integrations/composite-ai/outline-sanitize.js.map +1 -0
- package/dist/integrations/composite-ai/split.d.ts +44 -0
- package/dist/integrations/composite-ai/split.js +187 -0
- package/dist/integrations/composite-ai/split.js.map +1 -0
- package/dist/integrations/composite-ai/transfer-transforms.d.ts +27 -0
- package/dist/integrations/composite-ai/transfer-transforms.js +153 -0
- package/dist/integrations/composite-ai/transfer-transforms.js.map +1 -0
- package/dist/integrations/transcript-ai/protocol.d.ts +13 -0
- package/dist/integrations/transcript-ai/protocol.js +49 -1
- package/dist/integrations/transcript-ai/protocol.js.map +1 -1
- package/dist/integrations/transcript-ai/transcript-cleanup.js +1 -1
- package/dist/markdown/MarkdownSurface.vue.d.ts +6 -6
- package/dist/nuxt/module.d.ts +110 -0
- package/dist/presets/compose.d.ts +24 -8
- package/dist/presets/compose.js +117 -58
- package/dist/presets/compose.js.map +1 -1
- package/dist/react/compose.js +6 -2
- package/dist/react/compose.js.map +1 -1
- package/dist/react/composed-surface.d.ts +9 -0
- package/dist/react/composed-surface.js +4 -1
- package/dist/react/composed-surface.js.map +1 -1
- package/dist/server/ai.d.ts +2 -5
- package/dist/server/ai.js.map +1 -1
- package/dist/server/handlers/ai.d.ts +7 -78
- package/dist/server/handlers/ai.js +30 -94
- package/dist/server/handlers/ai.js.map +1 -1
- package/dist/server/handlers/editor.d.ts +1 -0
- package/dist/server/handlers/index.d.ts +3 -1
- package/dist/server/handlers/index.js +3 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/settings/index.d.ts +8 -0
- package/dist/settings/index.js +16 -4
- package/dist/settings/index.js.map +1 -1
- package/dist/styles/composites.css +32 -0
- package/dist/tree/DocumentTree.js +229 -78
- package/dist/tree/DocumentTree.js.map +1 -1
- package/dist/tree/drop-rules.js +8 -0
- package/dist/tree/drop-rules.js.map +1 -1
- package/dist/tree/react/DocumentTree.js +152 -31
- package/dist/tree/react/DocumentTree.js.map +1 -1
- package/dist/tree/tree-host.js +30 -1
- package/dist/tree/tree-host.js.map +1 -1
- package/dist/tree/tree-items.js +52 -5
- package/dist/tree/tree-items.js.map +1 -1
- package/dist/tree/tree-model.js +113 -10
- package/dist/tree/tree-model.js.map +1 -1
- package/dist/tree/tree-rows.js +20 -7
- package/dist/tree/tree-rows.js.map +1 -1
- package/dist/tree/tree-view-model.d.ts +5 -0
- package/dist/tree/tree-view-model.js +13 -0
- package/dist/tree/tree-view-model.js.map +1 -1
- package/dist/vue/AdvancedEditor.js +6 -0
- package/dist/vue/AdvancedEditor.js.map +1 -1
- package/dist/vue/AdvancedEditor.vue.d.ts +13 -5
- package/dist/vue/SimpleEditor.vue.d.ts +4 -4
- package/dist/vue/components/EditorSurface.vue.d.ts +4 -4
- package/dist/vue/compose.js +6 -2
- package/dist/vue/compose.js.map +1 -1
- package/dist/vue/kit/types.d.ts +2 -0
- package/package.json +21 -1
|
@@ -1,63 +1,83 @@
|
|
|
1
|
+
import { findBlockById } from "../core/schema/block-ids.js";
|
|
2
|
+
import { blockTransferOf, readBlockTransfer, writeBlockTransfer } from "../core/block-transfer.js";
|
|
3
|
+
import { basketById } from "../features/composites/baskets.js";
|
|
1
4
|
import { useUiKit } from "../vue/kit/use-ui-kit.js";
|
|
2
5
|
import { useEditorSettings } from "../vue/settings.js";
|
|
3
6
|
import { useEditorI18n } from "../vue/use-editor-i18n.js";
|
|
4
|
-
import { DRAG_MIME } from "./tree-items.js";
|
|
7
|
+
import { DRAG_MIME, focusCrumbs, itemBasket } from "./tree-items.js";
|
|
5
8
|
import { rowOf } from "./tree-model.js";
|
|
6
9
|
import { useTreeModel } from "./use-tree-model.js";
|
|
7
|
-
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderSlot, toDisplayString, unref, useModel, withCtx, withKeys, withModifiers } from "vue";
|
|
10
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, toDisplayString, unref, useModel, withCtx, withKeys, withModifiers } from "vue";
|
|
8
11
|
//#region src/tree/DocumentTree.vue
|
|
9
12
|
const _hoisted_1 = { class: "flex flex-col gap-2" };
|
|
10
|
-
const _hoisted_2 = { class: "flex items-center
|
|
11
|
-
const _hoisted_3 =
|
|
12
|
-
const _hoisted_4 =
|
|
13
|
+
const _hoisted_2 = { class: "flex items-center gap-1" };
|
|
14
|
+
const _hoisted_3 = ["aria-label"];
|
|
15
|
+
const _hoisted_4 = ["aria-checked", "onClick"];
|
|
16
|
+
const _hoisted_5 = { class: "truncate" };
|
|
17
|
+
const _hoisted_6 = { class: "truncate" };
|
|
18
|
+
const _hoisted_7 = { class: "flex items-center justify-end" };
|
|
19
|
+
const _hoisted_8 = { class: "inline-flex" };
|
|
20
|
+
const _hoisted_9 = {
|
|
13
21
|
key: 0,
|
|
14
22
|
class: "flex items-center"
|
|
15
23
|
};
|
|
16
|
-
const
|
|
24
|
+
const _hoisted_10 = {
|
|
17
25
|
key: 1,
|
|
18
26
|
class: "flex flex-col gap-1"
|
|
19
27
|
};
|
|
20
|
-
const
|
|
28
|
+
const _hoisted_11 = {
|
|
21
29
|
key: 0,
|
|
22
30
|
class: "px-0.5 text-xs text-[var(--sk-danger)]",
|
|
23
31
|
role: "alert"
|
|
24
32
|
};
|
|
25
|
-
const
|
|
33
|
+
const _hoisted_12 = {
|
|
26
34
|
key: 2,
|
|
35
|
+
class: "flex flex-wrap items-center gap-0.5 text-xs"
|
|
36
|
+
};
|
|
37
|
+
const _hoisted_13 = {
|
|
38
|
+
key: 0,
|
|
39
|
+
class: "min-w-0 truncate px-1.5 font-medium",
|
|
40
|
+
"aria-current": "location"
|
|
41
|
+
};
|
|
42
|
+
const _hoisted_14 = {
|
|
43
|
+
key: 3,
|
|
27
44
|
class: "px-2.5 py-1.5 text-sm text-[var(--sk-muted)]"
|
|
28
45
|
};
|
|
29
|
-
const
|
|
30
|
-
const
|
|
46
|
+
const _hoisted_15 = { class: "w-full" };
|
|
47
|
+
const _hoisted_16 = [
|
|
31
48
|
"draggable",
|
|
32
49
|
"onDragstart",
|
|
33
50
|
"onDragover",
|
|
34
51
|
"onDragleave",
|
|
35
52
|
"onDrop"
|
|
36
53
|
];
|
|
37
|
-
const
|
|
54
|
+
const _hoisted_17 = {
|
|
38
55
|
key: 1,
|
|
39
56
|
class: "size-3.5 shrink-0"
|
|
40
57
|
};
|
|
41
|
-
const
|
|
58
|
+
const _hoisted_18 = {
|
|
42
59
|
key: 2,
|
|
43
60
|
class: "flex min-w-0 flex-1 flex-col gap-0.5"
|
|
44
61
|
};
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
const
|
|
62
|
+
const _hoisted_19 = ["title", "aria-label"];
|
|
63
|
+
const _hoisted_20 = ["title"];
|
|
64
|
+
const _hoisted_21 = { class: "rounded-sm bg-[color-mix(in_oklab,var(--sk-primary)_20%,transparent)] text-inherit" };
|
|
65
|
+
const _hoisted_22 = { class: "flex opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 has-data-[state=open]:opacity-100" };
|
|
66
|
+
const _hoisted_23 = {
|
|
49
67
|
key: 0,
|
|
50
68
|
class: "px-2 pt-0.5 text-xs text-[var(--sk-danger)]",
|
|
51
69
|
role: "status"
|
|
52
70
|
};
|
|
53
|
-
const
|
|
54
|
-
key:
|
|
71
|
+
const _hoisted_24 = {
|
|
72
|
+
key: 5,
|
|
55
73
|
class: "px-2.5 py-1.5 text-sm text-[var(--sk-muted)]"
|
|
56
74
|
};
|
|
57
|
-
const
|
|
58
|
-
key:
|
|
75
|
+
const _hoisted_25 = {
|
|
76
|
+
key: 6,
|
|
59
77
|
class: "px-2.5 py-1.5 text-sm text-[var(--sk-muted)]"
|
|
60
78
|
};
|
|
79
|
+
const basketOption = "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-sm text-[var(--sk-fg)] transition-colors duration-150 hover:bg-[var(--sk-bg-elevated)] focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-[var(--sk-primary)]";
|
|
80
|
+
/** The breadcrumb of the focus: the document (first crumb, leaves focus) and the Bausteine down to the focused one. */
|
|
61
81
|
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
62
82
|
__name: "DocumentTree",
|
|
63
83
|
props: /*@__PURE__*/ mergeModels({
|
|
@@ -73,7 +93,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
73
93
|
/** The folder new documents, folders and host imports go to. Reset to `''` when it is deleted or moved away. */
|
|
74
94
|
const selectedFolder = useModel(__props, "selectedFolder");
|
|
75
95
|
const { t } = useEditorI18n();
|
|
76
|
-
const { Button: UButton, DropdownMenu: UDropdownMenu, Icon: UIcon, Input: UInput, Tooltip: UTooltip, Tree: UTree } = useUiKit();
|
|
96
|
+
const { Button: UButton, DropdownMenu: UDropdownMenu, Icon: UIcon, Input: UInput, Popover: UPopover, Tooltip: UTooltip, Tree: UTree } = useUiKit();
|
|
77
97
|
const { model, state } = useTreeModel({
|
|
78
98
|
store: () => props.store,
|
|
79
99
|
editor: () => props.editor,
|
|
@@ -85,6 +105,13 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
85
105
|
settings.value.blocks.treeRoot = settings.value.blocks.treeRoot === "file" ? "folders" : "file";
|
|
86
106
|
}
|
|
87
107
|
const row = (item) => rowOf(state.value, item, t);
|
|
108
|
+
/** The basket `item` is in, when the open editor offers it (the row shows its colour as a dot). */
|
|
109
|
+
const basketOf = (item) => itemBasket(item, state.value.baskets);
|
|
110
|
+
/** The basket filter button needs a live editor that offers baskets. */
|
|
111
|
+
const showBasketFilter = computed(() => state.value.hasEditor && state.value.baskets.length > 0);
|
|
112
|
+
/** The chosen baskets the open editor offers (an unknown id never filters, see `TreeModel`). */
|
|
113
|
+
const shownBaskets = computed(() => state.value.basketFilter.filter((id) => basketById(state.value.baskets, id)));
|
|
114
|
+
const breadcrumb = computed(() => focusCrumbs(state.value.focusPath));
|
|
88
115
|
/** Why dropping the drag on `item` is refused, while the pointer is over it. */
|
|
89
116
|
function refusal(item) {
|
|
90
117
|
const drop = row(item).drop;
|
|
@@ -145,50 +172,124 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
145
172
|
if (!payload) return event.preventDefault();
|
|
146
173
|
if (!event.dataTransfer) return model.value.dragEnd();
|
|
147
174
|
event.dataTransfer.setData(DRAG_MIME, JSON.stringify(payload));
|
|
148
|
-
|
|
175
|
+
const editor = props.editor;
|
|
176
|
+
const found = payload.type === "composite" && editor && !editor.isDestroyed ? findBlockById(editor.state.doc, payload.blockId) : null;
|
|
177
|
+
const transfer = found && editor ? blockTransferOf(editor, found.pos) : null;
|
|
178
|
+
if (transfer) writeBlockTransfer(event.dataTransfer, transfer);
|
|
179
|
+
event.dataTransfer.effectAllowed = transfer ? "copyMove" : "move";
|
|
149
180
|
}
|
|
181
|
+
/** A drag of this tree's own rows is running (a foreign drag is not). */
|
|
182
|
+
const ownDrag = () => !!state.value.drag && state.value.drag.source.type !== "foreign-block";
|
|
150
183
|
function onDragOver(event, item) {
|
|
151
|
-
const
|
|
184
|
+
const foreign = !ownDrag() && !!event.dataTransfer?.types.includes("application/x-tip-block");
|
|
185
|
+
const verdict = foreign ? model.value.foreignDragOver(item) : model.value.dragOver(item);
|
|
152
186
|
if (!verdict) return;
|
|
153
187
|
if (verdict.ok) event.preventDefault();
|
|
154
|
-
if (event.dataTransfer) event.dataTransfer.dropEffect = verdict.ok ? "move" : "none";
|
|
188
|
+
if (event.dataTransfer) event.dataTransfer.dropEffect = verdict.ok ? foreign ? "copy" : "move" : "none";
|
|
155
189
|
}
|
|
156
190
|
function onDragLeave(event, item) {
|
|
157
191
|
if (!event.currentTarget.contains(event.relatedTarget)) model.value.dragLeave(item);
|
|
158
192
|
}
|
|
159
193
|
function onDrop(event, item) {
|
|
160
|
-
if (
|
|
194
|
+
if (ownDrag()) {
|
|
195
|
+
event.preventDefault();
|
|
196
|
+
return model.value.drop(item);
|
|
197
|
+
}
|
|
198
|
+
const payload = event.dataTransfer ? readBlockTransfer(event.dataTransfer) : null;
|
|
199
|
+
if (!payload) return;
|
|
161
200
|
event.preventDefault();
|
|
162
|
-
return model.value.
|
|
201
|
+
return model.value.dropForeign(item, payload, event.shiftKey, event.clientX, event.clientY);
|
|
163
202
|
}
|
|
164
203
|
return (_ctx, _cache) => {
|
|
165
204
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
205
|
+
createElementVNode("div", _hoisted_2, [
|
|
206
|
+
createVNode(unref(UInput), {
|
|
207
|
+
"model-value": unref(state).filterText,
|
|
208
|
+
class: "min-w-0 flex-1",
|
|
209
|
+
icon: "i-lucide-search",
|
|
210
|
+
size: "sm",
|
|
211
|
+
placeholder: unref(t)("tree.filterText.placeholder"),
|
|
212
|
+
"aria-label": unref(t)("tree.filterText.placeholder"),
|
|
213
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(model).setFilterText($event)),
|
|
214
|
+
onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => unref(model).setFilterText(""), ["esc"]))
|
|
215
|
+
}, createSlots({ _: 2 }, [unref(state).filterText ? {
|
|
216
|
+
name: "trailing",
|
|
217
|
+
fn: withCtx(() => [createVNode(unref(UButton), {
|
|
218
|
+
icon: "i-lucide-x",
|
|
219
|
+
size: "xs",
|
|
220
|
+
color: "neutral",
|
|
221
|
+
variant: "link",
|
|
222
|
+
"aria-label": unref(t)("tree.filterText.clear"),
|
|
223
|
+
onClick: _cache[0] || (_cache[0] = ($event) => unref(model).setFilterText(""))
|
|
224
|
+
}, null, 8, ["aria-label"])]),
|
|
225
|
+
key: "0"
|
|
226
|
+
} : void 0]), 1032, [
|
|
227
|
+
"model-value",
|
|
228
|
+
"placeholder",
|
|
229
|
+
"aria-label"
|
|
230
|
+
]),
|
|
231
|
+
createCommentVNode(" A popover, not a dropdown menu: a menu item cannot show a dot in an arbitrary CSS colour. "),
|
|
232
|
+
showBasketFilter.value ? (openBlock(), createBlock(unref(UPopover), {
|
|
233
|
+
key: 0,
|
|
234
|
+
content: {
|
|
235
|
+
side: "bottom",
|
|
236
|
+
align: "end",
|
|
237
|
+
sideOffset: 4,
|
|
238
|
+
onCloseAutoFocus: (event) => event.preventDefault()
|
|
239
|
+
},
|
|
240
|
+
ui: { content: "w-44 p-1" }
|
|
241
|
+
}, {
|
|
242
|
+
content: withCtx(() => [createElementVNode("div", {
|
|
243
|
+
role: "menu",
|
|
244
|
+
"aria-label": unref(t)("tree.basketFilter.label")
|
|
245
|
+
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(state).baskets, (basket) => {
|
|
246
|
+
return openBlock(), createElementBlock("button", {
|
|
247
|
+
key: basket.id,
|
|
248
|
+
type: "button",
|
|
249
|
+
role: "menuitemcheckbox",
|
|
250
|
+
"aria-checked": shownBaskets.value.includes(basket.id),
|
|
251
|
+
class: normalizeClass(basketOption),
|
|
252
|
+
onClick: ($event) => unref(model).setBasketShown(basket.id, !shownBaskets.value.includes(basket.id))
|
|
253
|
+
}, [
|
|
254
|
+
createElementVNode("span", {
|
|
255
|
+
class: "size-2.5 shrink-0 rounded-full",
|
|
256
|
+
style: normalizeStyle({ backgroundColor: basket.color })
|
|
257
|
+
}, null, 4),
|
|
258
|
+
createElementVNode("span", _hoisted_5, toDisplayString(basket.label), 1),
|
|
259
|
+
shownBaskets.value.includes(basket.id) ? (openBlock(), createBlock(unref(UIcon), {
|
|
260
|
+
key: 0,
|
|
261
|
+
name: "i-lucide-check",
|
|
262
|
+
class: "ml-auto size-3.5 shrink-0"
|
|
263
|
+
})) : createCommentVNode("v-if", true)
|
|
264
|
+
], 8, _hoisted_4);
|
|
265
|
+
}), 128)), shownBaskets.value.length ? (openBlock(), createElementBlock("button", {
|
|
266
|
+
key: 0,
|
|
267
|
+
type: "button",
|
|
268
|
+
role: "menuitem",
|
|
269
|
+
class: normalizeClass(basketOption),
|
|
270
|
+
onClick: _cache[3] || (_cache[3] = ($event) => unref(model).clearBasketFilter())
|
|
271
|
+
}, [createVNode(unref(UIcon), {
|
|
272
|
+
name: "i-lucide-filter-x",
|
|
273
|
+
class: "size-3.5 shrink-0 text-[var(--sk-muted)]"
|
|
274
|
+
}), createElementVNode("span", _hoisted_6, toDisplayString(unref(t)("tree.basketFilter.reset")), 1)])) : createCommentVNode("v-if", true)], 8, _hoisted_3)]),
|
|
275
|
+
default: withCtx(() => [createVNode(unref(UButton), {
|
|
276
|
+
icon: "i-lucide-paint-bucket",
|
|
277
|
+
size: "xs",
|
|
278
|
+
color: shownBaskets.value.length ? "primary" : "neutral",
|
|
279
|
+
variant: shownBaskets.value.length ? "soft" : "ghost",
|
|
280
|
+
title: unref(t)("tree.basketFilter.label"),
|
|
281
|
+
"aria-label": unref(t)("tree.basketFilter.label")
|
|
282
|
+
}, null, 8, [
|
|
283
|
+
"color",
|
|
284
|
+
"variant",
|
|
285
|
+
"title",
|
|
286
|
+
"aria-label"
|
|
287
|
+
])]),
|
|
288
|
+
_: 1
|
|
289
|
+
}, 8, ["content"])) : createCommentVNode("v-if", true)
|
|
189
290
|
]),
|
|
190
|
-
createElementVNode("div",
|
|
191
|
-
default: withCtx(() => [createCommentVNode(" A disabled button swallows pointer events, so the tooltip hangs on the wrapper. "), createElementVNode("span",
|
|
291
|
+
createElementVNode("div", _hoisted_7, [createVNode(unref(UTooltip), { text: canUseFileRoot.value ? "" : unref(t)("tree.root.unavailable") }, {
|
|
292
|
+
default: withCtx(() => [createCommentVNode(" A disabled button swallows pointer events, so the tooltip hangs on the wrapper. "), createElementVNode("span", _hoisted_8, [createVNode(unref(UButton), {
|
|
192
293
|
icon: unref(state).virtual ? "i-lucide-file-stack" : "i-lucide-folder-tree",
|
|
193
294
|
label: unref(t)(unref(state).virtual ? "tree.root.file" : "tree.root.folders"),
|
|
194
295
|
size: "xs",
|
|
@@ -206,7 +307,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
206
307
|
])])]),
|
|
207
308
|
_: 1
|
|
208
309
|
}, 8, ["text"])]),
|
|
209
|
-
unref(state).view.hasKindFilters ? (openBlock(), createElementBlock("div",
|
|
310
|
+
unref(state).view.hasKindFilters ? (openBlock(), createElementBlock("div", _hoisted_9, [createVNode(unref(UButton), {
|
|
210
311
|
icon: "i-lucide-filter-x",
|
|
211
312
|
label: unref(t)("tree.filter.reset"),
|
|
212
313
|
size: "xs",
|
|
@@ -214,7 +315,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
214
315
|
variant: "subtle",
|
|
215
316
|
onClick: unref(model).clearAllFilters
|
|
216
317
|
}, null, 8, ["label", "onClick"])])) : createCommentVNode("v-if", true),
|
|
217
|
-
unref(state).creatingFolder ? (openBlock(), createElementBlock("div",
|
|
318
|
+
unref(state).creatingFolder ? (openBlock(), createElementBlock("div", _hoisted_10, [createVNode(unref(UInput), {
|
|
218
319
|
"model-value": unref(state).creatingFolder.draft,
|
|
219
320
|
size: "sm",
|
|
220
321
|
autofocus: "",
|
|
@@ -223,7 +324,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
223
324
|
placeholder: unref(state).creatingFolder.parent ? unref(t)("tree.folder.placeholderIn", { parent: unref(state).creatingFolder.parent }) : unref(t)("tree.folder.placeholder"),
|
|
224
325
|
"aria-label": unref(t)("tree.folder.name"),
|
|
225
326
|
"aria-invalid": !!unref(state).creatingFolder.error,
|
|
226
|
-
"onUpdate:modelValue": _cache[
|
|
327
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => unref(model).setFolderDraft($event)),
|
|
227
328
|
onKeydown: [withKeys(unref(model).commitCreateFolder, ["enter"]), withKeys(unref(model).cancelCreateFolder, ["esc"])],
|
|
228
329
|
onBlur: unref(model).cancelCreateFolder
|
|
229
330
|
}, null, 8, [
|
|
@@ -235,9 +336,35 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
235
336
|
"aria-invalid",
|
|
236
337
|
"onKeydown",
|
|
237
338
|
"onBlur"
|
|
238
|
-
]), unref(state).creatingFolder.error ? (openBlock(), createElementBlock("p",
|
|
239
|
-
|
|
240
|
-
|
|
339
|
+
]), unref(state).creatingFolder.error ? (openBlock(), createElementBlock("p", _hoisted_11, toDisplayString(unref(state).creatingFolder.error), 1)) : createCommentVNode("v-if", true)])) : createCommentVNode("v-if", true),
|
|
340
|
+
breadcrumb.value.crumbs.length ? (openBlock(), createElementBlock("div", _hoisted_12, [createVNode(unref(UButton), {
|
|
341
|
+
icon: "i-lucide-corner-up-left",
|
|
342
|
+
label: breadcrumb.value.document?.label ?? unref(t)("tree.focus.root"),
|
|
343
|
+
size: "xs",
|
|
344
|
+
color: "neutral",
|
|
345
|
+
variant: "ghost",
|
|
346
|
+
title: unref(t)("tree.focus.leave"),
|
|
347
|
+
"aria-label": unref(t)("tree.focus.leave"),
|
|
348
|
+
onClick: _cache[5] || (_cache[5] = ($event) => unref(model).defocus())
|
|
349
|
+
}, null, 8, [
|
|
350
|
+
"label",
|
|
351
|
+
"title",
|
|
352
|
+
"aria-label"
|
|
353
|
+
]), (openBlock(true), createElementBlock(Fragment, null, renderList(breadcrumb.value.crumbs, (crumb, index) => {
|
|
354
|
+
return openBlock(), createElementBlock(Fragment, { key: crumb.key }, [createVNode(unref(UIcon), {
|
|
355
|
+
name: "i-lucide-chevron-right",
|
|
356
|
+
class: "size-3 shrink-0 text-[var(--sk-muted)]"
|
|
357
|
+
}), index === breadcrumb.value.crumbs.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString(crumb.label), 1)) : (openBlock(), createBlock(unref(UButton), {
|
|
358
|
+
key: 1,
|
|
359
|
+
label: crumb.label,
|
|
360
|
+
size: "xs",
|
|
361
|
+
color: "neutral",
|
|
362
|
+
variant: "ghost",
|
|
363
|
+
onClick: ($event) => unref(model).focus(crumb.key)
|
|
364
|
+
}, null, 8, ["label", "onClick"]))], 64);
|
|
365
|
+
}), 128))])) : createCommentVNode("v-if", true),
|
|
366
|
+
!unref(state).tree && !unref(state).virtual ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString(unref(state).tree === null ? unref(t)("tree.loadFailed") : unref(t)("tree.loading")), 1)) : (openBlock(), createBlock(unref(UTree), {
|
|
367
|
+
key: 4,
|
|
241
368
|
expanded: unref(state).view.open,
|
|
242
369
|
items: unref(state).view.items,
|
|
243
370
|
"get-key": (item) => item.key,
|
|
@@ -245,31 +372,32 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
245
372
|
"aria-label": unref(t)("tree.aria"),
|
|
246
373
|
"onUpdate:expanded": onExpanded
|
|
247
374
|
}, {
|
|
248
|
-
"item-wrapper": withCtx(({ item }) => [createElementVNode("div",
|
|
375
|
+
"item-wrapper": withCtx(({ item }) => [createElementVNode("div", _hoisted_15, [createElementVNode("div", {
|
|
249
376
|
class: normalizeClass(["group flex w-full cursor-pointer items-center gap-1.5 rounded-md px-2 py-1 text-sm select-none hover:bg-[color-mix(in_oklab,var(--sk-bg-elevated)_60%,transparent)]", [
|
|
250
377
|
row(item).active && "bg-[color-mix(in_oklab,var(--sk-primary)_10%,transparent)] font-medium text-[var(--sk-primary)]",
|
|
251
378
|
row(item).selected && "bg-[var(--sk-bg-elevated)]",
|
|
252
379
|
row(item).drop?.ok && "ring-1 ring-[var(--sk-primary)]",
|
|
253
|
-
refusal(item) && "bg-[color-mix(in_oklab,var(--sk-danger)_10%,transparent)] ring-1 ring-[var(--sk-danger)]"
|
|
380
|
+
refusal(item) && "bg-[color-mix(in_oklab,var(--sk-danger)_10%,transparent)] ring-1 ring-[var(--sk-danger)]",
|
|
381
|
+
row(item).dimmed && "opacity-60"
|
|
254
382
|
]]),
|
|
255
383
|
draggable: unref(model).isDraggable(item),
|
|
256
384
|
onDragstart: ($event) => onDragStart($event, item),
|
|
257
385
|
onDragover: ($event) => onDragOver($event, item),
|
|
258
386
|
onDragleave: ($event) => onDragLeave($event, item),
|
|
259
387
|
onDrop: ($event) => onDrop($event, item),
|
|
260
|
-
onDragend: _cache[
|
|
388
|
+
onDragend: _cache[12] || (_cache[12] = (...args) => unref(model).dragEnd && unref(model).dragEnd(...args))
|
|
261
389
|
}, [
|
|
262
390
|
row(item).expandable ? (openBlock(), createBlock(unref(UIcon), {
|
|
263
391
|
key: 0,
|
|
264
392
|
name: "i-lucide-chevron-right",
|
|
265
393
|
class: normalizeClass(["size-3.5 shrink-0 text-[var(--sk-muted)] transition-transform", row(item).open && "rotate-90"]),
|
|
266
394
|
onClick: ($event) => onChevronClick($event, item)
|
|
267
|
-
}, null, 8, ["class", "onClick"])) : item.type === "composite" || item.type === "heading" ? (openBlock(), createElementBlock("span",
|
|
395
|
+
}, null, 8, ["class", "onClick"])) : item.type === "composite" || item.type === "heading" ? (openBlock(), createElementBlock("span", _hoisted_17)) : createCommentVNode("v-if", true),
|
|
268
396
|
createVNode(unref(UIcon), {
|
|
269
397
|
name: item.icon,
|
|
270
398
|
class: "size-4 shrink-0"
|
|
271
399
|
}, null, 8, ["name"]),
|
|
272
|
-
row(item).renaming ? (openBlock(), createElementBlock("div",
|
|
400
|
+
row(item).renaming ? (openBlock(), createElementBlock("div", _hoisted_18, [createVNode(unref(UInput), {
|
|
273
401
|
"model-value": row(item).renaming.draft,
|
|
274
402
|
size: "xs",
|
|
275
403
|
class: "min-w-0",
|
|
@@ -278,11 +406,11 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
278
406
|
highlight: !!row(item).renaming.error,
|
|
279
407
|
"aria-label": unref(t)("tree.folder.name"),
|
|
280
408
|
"aria-invalid": !!row(item).renaming.error,
|
|
281
|
-
"onUpdate:modelValue": _cache[
|
|
282
|
-
onFocus: _cache[
|
|
283
|
-
onClick: _cache[
|
|
409
|
+
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => unref(model).setRenameDraft($event)),
|
|
410
|
+
onFocus: _cache[7] || (_cache[7] = ($event) => $event.target.select()),
|
|
411
|
+
onClick: _cache[8] || (_cache[8] = withModifiers(() => {}, ["stop"])),
|
|
284
412
|
onKeydown: [
|
|
285
|
-
_cache[
|
|
413
|
+
_cache[9] || (_cache[9] = withModifiers(() => {}, ["stop"])),
|
|
286
414
|
withKeys(unref(model).commitRename, ["enter"]),
|
|
287
415
|
withKeys(unref(model).cancelRename, ["esc"])
|
|
288
416
|
],
|
|
@@ -299,25 +427,34 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
299
427
|
key: 0,
|
|
300
428
|
class: "text-xs text-[var(--sk-danger)]",
|
|
301
429
|
role: "alert",
|
|
302
|
-
onClick: _cache[
|
|
430
|
+
onClick: _cache[10] || (_cache[10] = withModifiers(() => {}, ["stop"]))
|
|
303
431
|
}, toDisplayString(row(item).renaming.error), 1)) : createCommentVNode("v-if", true)])) : (openBlock(), createElementBlock(Fragment, { key: 3 }, [
|
|
432
|
+
basketOf(item) ? (openBlock(), createElementBlock("span", {
|
|
433
|
+
key: 0,
|
|
434
|
+
class: "size-2 shrink-0 rounded-full",
|
|
435
|
+
style: normalizeStyle({ backgroundColor: basketOf(item).color }),
|
|
436
|
+
title: basketOf(item).label,
|
|
437
|
+
"aria-label": basketOf(item).label,
|
|
438
|
+
role: "img",
|
|
439
|
+
"data-basket-dot": ""
|
|
440
|
+
}, null, 12, _hoisted_19)) : createCommentVNode("v-if", true),
|
|
304
441
|
createElementVNode("span", {
|
|
305
442
|
class: "min-w-0 flex-1 truncate",
|
|
306
443
|
title: item.label
|
|
307
444
|
}, [labelParts(item) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
308
445
|
createTextVNode(toDisplayString(labelParts(item)[0]), 1),
|
|
309
|
-
createElementVNode("mark",
|
|
446
|
+
createElementVNode("mark", _hoisted_21, toDisplayString(labelParts(item)[1]), 1),
|
|
310
447
|
createTextVNode(toDisplayString(labelParts(item)[2]), 1)
|
|
311
|
-
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(item.label), 1)], 64))], 8,
|
|
448
|
+
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(item.label), 1)], 64))], 8, _hoisted_20),
|
|
312
449
|
item.hasSummary ? (openBlock(), createBlock(unref(UIcon), {
|
|
313
|
-
key:
|
|
450
|
+
key: 1,
|
|
314
451
|
name: "i-lucide-text-quote",
|
|
315
452
|
class: "size-3.5 shrink-0 text-[var(--sk-muted)]",
|
|
316
453
|
title: unref(t)("tree.summary")
|
|
317
454
|
}, null, 8, ["title"])) : createCommentVNode("v-if", true),
|
|
318
455
|
createElementVNode("div", {
|
|
319
456
|
class: "flex shrink-0",
|
|
320
|
-
onClick: _cache[
|
|
457
|
+
onClick: _cache[11] || (_cache[11] = withModifiers(() => {}, ["stop"]))
|
|
321
458
|
}, [row(item).showFilter ? (openBlock(), createBlock(unref(UDropdownMenu), {
|
|
322
459
|
key: 0,
|
|
323
460
|
items: filterMenu(item),
|
|
@@ -339,9 +476,23 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
339
476
|
"aria-label"
|
|
340
477
|
])]),
|
|
341
478
|
_: 2
|
|
342
|
-
}, 1032, ["items"])) : createCommentVNode("v-if", true), createElementVNode("div",
|
|
343
|
-
|
|
479
|
+
}, 1032, ["items"])) : createCommentVNode("v-if", true), createElementVNode("div", _hoisted_22, [
|
|
480
|
+
item.type === "composite" && item.blockId ? (openBlock(), createBlock(unref(UButton), {
|
|
344
481
|
key: 0,
|
|
482
|
+
icon: "i-lucide-focus",
|
|
483
|
+
size: "xs",
|
|
484
|
+
color: "neutral",
|
|
485
|
+
variant: "ghost",
|
|
486
|
+
title: unref(t)("tree.focus.enter"),
|
|
487
|
+
"aria-label": unref(t)("tree.focus.enter"),
|
|
488
|
+
onClick: ($event) => unref(model).focus(item.key)
|
|
489
|
+
}, null, 8, [
|
|
490
|
+
"title",
|
|
491
|
+
"aria-label",
|
|
492
|
+
"onClick"
|
|
493
|
+
])) : createCommentVNode("v-if", true),
|
|
494
|
+
addMenu(item).length ? (openBlock(), createBlock(unref(UDropdownMenu), {
|
|
495
|
+
key: 1,
|
|
345
496
|
items: addMenu(item),
|
|
346
497
|
content: {
|
|
347
498
|
align: "start",
|
|
@@ -361,9 +512,9 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
361
512
|
item.type === "document" ? renderSlot(_ctx.$slots, "document-actions", {
|
|
362
513
|
id: item.id,
|
|
363
514
|
title: item.label
|
|
364
|
-
}, void 0, void 0,
|
|
515
|
+
}, void 0, void 0, 2) : createCommentVNode("v-if", true),
|
|
365
516
|
item.type === "document" || item.type === "folder" ? (openBlock(), createBlock(unref(UButton), {
|
|
366
|
-
key:
|
|
517
|
+
key: 3,
|
|
367
518
|
icon: "i-lucide-trash-2",
|
|
368
519
|
size: "xs",
|
|
369
520
|
color: "error",
|
|
@@ -374,7 +525,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
374
525
|
}, null, 8, ["aria-label", "onClick"])) : createCommentVNode("v-if", true)
|
|
375
526
|
])])
|
|
376
527
|
], 64))
|
|
377
|
-
], 42,
|
|
528
|
+
], 42, _hoisted_16), refusal(item) ? (openBlock(), createElementBlock("p", _hoisted_23, toDisplayString(refusal(item)), 1)) : createCommentVNode("v-if", true)])]),
|
|
378
529
|
_: 3
|
|
379
530
|
}, 8, [
|
|
380
531
|
"expanded",
|
|
@@ -382,8 +533,8 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
382
533
|
"get-key",
|
|
383
534
|
"aria-label"
|
|
384
535
|
])),
|
|
385
|
-
unref(state).view.noMatches ? (openBlock(), createElementBlock("p",
|
|
386
|
-
unref(state).view.isEmpty ? (openBlock(), createElementBlock("p",
|
|
536
|
+
unref(state).view.noMatches ? (openBlock(), createElementBlock("p", _hoisted_24, toDisplayString(unref(t)("tree.noMatches")), 1)) : createCommentVNode("v-if", true),
|
|
537
|
+
unref(state).view.isEmpty ? (openBlock(), createElementBlock("p", _hoisted_25, toDisplayString(unref(t)("tree.empty")), 1)) : createCommentVNode("v-if", true)
|
|
387
538
|
]);
|
|
388
539
|
};
|
|
389
540
|
}
|