@dxos/plugin-markdown 0.8.4-main.5ea62a8 → 0.8.4-main.ae835ea
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/dist/lib/browser/MarkdownCard-SLM6QZYC.mjs +12 -0
- package/dist/lib/browser/MarkdownContainer-UZFQC6XY.mjs +15 -0
- package/dist/lib/browser/{anchor-sort-E33BSTYF.mjs → anchor-sort-4XPPLMZS.mjs} +5 -5
- package/dist/lib/browser/{anchor-sort-E33BSTYF.mjs.map → anchor-sort-4XPPLMZS.mjs.map} +1 -1
- package/dist/lib/browser/{app-graph-serializer-OX62DNPT.mjs → app-graph-serializer-QQFV4K6P.mjs} +8 -8
- package/dist/lib/browser/app-graph-serializer-QQFV4K6P.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-BC5R3T72.mjs +11 -0
- package/dist/lib/browser/blueprint-definition-BC5R3T72.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LAVZ2W6X.mjs → chunk-2LLVTQCK.mjs} +6 -5
- package/dist/lib/browser/chunk-2LLVTQCK.mjs.map +7 -0
- package/dist/lib/browser/{MarkdownCard-JLUQITYK.mjs → chunk-3VILQLA4.mjs} +46 -31
- package/dist/lib/browser/chunk-3VILQLA4.mjs.map +7 -0
- package/dist/lib/browser/chunk-5AYTOIUF.mjs +822 -0
- package/dist/lib/browser/chunk-5AYTOIUF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Z7P6JGGW.mjs → chunk-A3CQYGCN.mjs} +7 -4
- package/dist/lib/browser/{chunk-Z7P6JGGW.mjs.map → chunk-A3CQYGCN.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-ODB2PTBP.mjs → chunk-BQTYJOFB.mjs} +4 -4
- package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +7 -0
- package/dist/lib/browser/chunk-GLEYXJX3.mjs +22 -0
- package/dist/lib/browser/{chunk-D7UYVHL6.mjs.map → chunk-GLEYXJX3.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-OY6CGPOO.mjs → chunk-IBCHVMZW.mjs} +2 -2
- package/dist/lib/browser/{chunk-OY6CGPOO.mjs.map → chunk-IBCHVMZW.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-ZVVKLB5L.mjs → chunk-JAETS5LE.mjs} +33 -48
- package/dist/lib/browser/chunk-JAETS5LE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BEE7VQPU.mjs → chunk-UKTCPHLI.mjs} +9 -8
- package/dist/lib/browser/chunk-UKTCPHLI.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +21 -13
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WDDH56JC.mjs → intent-resolver-VQGMBNXZ.mjs} +7 -7
- package/dist/lib/browser/intent-resolver-VQGMBNXZ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-LN2XK2UN.mjs → react-surface-WOMJOPJE.mjs} +52 -50
- package/dist/lib/browser/react-surface-WOMJOPJE.mjs.map +7 -0
- package/dist/lib/browser/{settings-AABBTB4Q.mjs → settings-LBXJHVBU.mjs} +5 -5
- package/dist/lib/browser/{settings-AABBTB4Q.mjs.map → settings-LBXJHVBU.mjs.map} +1 -1
- package/dist/lib/browser/{state-FTHQQX7V.mjs → state-BTUKVZHY.mjs} +5 -5
- package/dist/lib/browser/{state-FTHQQX7V.mjs.map → state-BTUKVZHY.mjs.map} +1 -1
- package/dist/lib/browser/toolkit-YPIVDB4A.mjs +66 -0
- package/dist/lib/browser/toolkit-YPIVDB4A.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/MarkdownCard-MCWEFW4F.mjs +13 -0
- package/dist/lib/node-esm/MarkdownCard-MCWEFW4F.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownContainer-KAQOK7K5.mjs +16 -0
- package/dist/lib/node-esm/MarkdownContainer-KAQOK7K5.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-ALP2NH24.mjs → anchor-sort-4SXYVYXT.mjs} +5 -5
- package/dist/lib/node-esm/{anchor-sort-ALP2NH24.mjs.map → anchor-sort-4SXYVYXT.mjs.map} +1 -1
- package/dist/lib/node-esm/{app-graph-serializer-56TD3BMX.mjs → app-graph-serializer-KBVRLQN2.mjs} +8 -8
- package/dist/lib/node-esm/app-graph-serializer-KBVRLQN2.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-FPNOTEYC.mjs +12 -0
- package/dist/lib/node-esm/blueprint-definition-FPNOTEYC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2Q4WCKWT.mjs +823 -0
- package/dist/lib/node-esm/chunk-2Q4WCKWT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-Y422WR6A.mjs → chunk-DOB2MJAX.mjs} +33 -48
- package/dist/lib/node-esm/chunk-DOB2MJAX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GGKPPGWA.mjs +24 -0
- package/dist/lib/node-esm/{chunk-JPXFCBC4.mjs.map → chunk-GGKPPGWA.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-CB2R4YIY.mjs → chunk-GMMVSXQ6.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-CB2R4YIY.mjs.map → chunk-GMMVSXQ6.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-FXILAQ5F.mjs → chunk-JELROKGD.mjs} +9 -8
- package/dist/lib/node-esm/chunk-JELROKGD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-O6EXWGGS.mjs → chunk-QH4MC5BE.mjs} +6 -5
- package/dist/lib/node-esm/chunk-QH4MC5BE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-VCG2U522.mjs → chunk-SHAMSMKQ.mjs} +4 -4
- package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-J7A6TUB2.mjs → chunk-SJ2QRGPM.mjs} +7 -4
- package/dist/lib/node-esm/{chunk-J7A6TUB2.mjs.map → chunk-SJ2QRGPM.mjs.map} +2 -2
- package/dist/lib/node-esm/{MarkdownCard-XL5EVSJ7.mjs → chunk-YYSASY7X.mjs} +46 -31
- package/dist/lib/node-esm/chunk-YYSASY7X.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +21 -13
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-2I5HKCUU.mjs → intent-resolver-Q4XVI5EX.mjs} +7 -7
- package/dist/lib/node-esm/intent-resolver-Q4XVI5EX.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-DJGGKYBD.mjs → react-surface-FAMZTAXK.mjs} +52 -50
- package/dist/lib/node-esm/react-surface-FAMZTAXK.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-CXGR6DH4.mjs → settings-2YRA67H6.mjs} +5 -5
- package/dist/lib/node-esm/{settings-CXGR6DH4.mjs.map → settings-2YRA67H6.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-NWMQ3XAI.mjs → state-K6EH7SRZ.mjs} +5 -5
- package/dist/lib/node-esm/{state-NWMQ3XAI.mjs.map → state-K6EH7SRZ.mjs.map} +1 -1
- package/dist/lib/node-esm/toolkit-36BFLIR3.mjs +67 -0
- package/dist/lib/node-esm/toolkit-36BFLIR3.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/MarkdownPlugin.d.ts +1 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts +20 -0
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts +8 -12
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +7 -4
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +42 -23
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +5 -110
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +26 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +12 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
- package/dist/types/src/components/Suggestions.stories.d.ts +1 -2
- package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/functions/diff.d.ts.map +1 -1
- package/dist/types/src/functions/index.d.ts +0 -1
- package/dist/types/src/functions/index.d.ts.map +1 -1
- package/dist/types/src/functions/open.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +3 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useExtensions.d.ts +21 -0
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
- package/dist/types/src/hooks/usePopoverMenuOptions.d.ts +9 -0
- package/dist/types/src/hooks/usePopoverMenuOptions.d.ts.map +1 -0
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +1 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +6 -4
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownAction.d.ts +3 -2
- package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +58 -55
- package/src/MarkdownPlugin.tsx +100 -93
- package/src/capabilities/app-graph-serializer.ts +2 -2
- package/src/capabilities/artifact-definition.ts +4 -3
- package/src/capabilities/blueprint-definition.ts +5 -5
- package/src/capabilities/capabilities.ts +1 -0
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +2 -1
- package/src/capabilities/react-surface.tsx +35 -57
- package/src/capabilities/toolkit.ts +53 -0
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +3 -6
- package/src/components/MarkdownCard/MarkdownCard.tsx +42 -32
- package/src/components/MarkdownContainer.stories.tsx +75 -38
- package/src/components/MarkdownContainer.tsx +84 -218
- package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +56 -35
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +220 -272
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +134 -0
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +63 -0
- package/src/components/Suggestions.stories.tsx +28 -27
- package/src/components/index.ts +3 -1
- package/src/functions/diff.ts +4 -2
- package/src/functions/index.ts +0 -1
- package/src/functions/open.ts +4 -2
- package/src/hooks/index.ts +3 -0
- package/src/{extensions.tsx → hooks/useExtensions.tsx} +56 -114
- package/src/hooks/useLinkQuery.ts +82 -0
- package/src/hooks/usePopoverMenuOptions.ts +71 -0
- package/src/hooks/useSelectCurrentThread.tsx +2 -2
- package/src/meta.ts +3 -3
- package/src/translations.ts +3 -0
- package/src/types/Markdown.ts +6 -4
- package/src/types/MarkdownAction.ts +1 -1
- package/src/util.tsx +9 -2
- package/dist/lib/browser/MarkdownCard-JLUQITYK.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-7M37DXAD.mjs +0 -781
- package/dist/lib/browser/MarkdownContainer-7M37DXAD.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-OX62DNPT.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-Z3RQGWUD.mjs +0 -11
- package/dist/lib/browser/chunk-BEE7VQPU.mjs.map +0 -7
- package/dist/lib/browser/chunk-D7UYVHL6.mjs +0 -20
- package/dist/lib/browser/chunk-LAVZ2W6X.mjs.map +0 -7
- package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZVVKLB5L.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WDDH56JC.mjs.map +0 -7
- package/dist/lib/browser/react-surface-LN2XK2UN.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownCard-XL5EVSJ7.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-K3BPAGWO.mjs +0 -782
- package/dist/lib/node-esm/MarkdownContainer-K3BPAGWO.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-56TD3BMX.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-735OAX33.mjs +0 -12
- package/dist/lib/node-esm/chunk-FXILAQ5F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JPXFCBC4.mjs +0 -22
- package/dist/lib/node-esm/chunk-O6EXWGGS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Y422WR6A.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-2I5HKCUU.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-DJGGKYBD.mjs.map +0 -7
- package/dist/types/src/components/Toolbar.stories.d.ts +0 -48
- package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/extensions.d.ts +0 -24
- package/dist/types/src/extensions.d.ts.map +0 -1
- package/dist/types/src/functions/create.d.ts +0 -12
- package/dist/types/src/functions/create.d.ts.map +0 -1
- package/src/components/Toolbar.stories.tsx +0 -118
- package/src/functions/create.ts +0 -23
- /package/dist/lib/browser/{blueprint-definition-Z3RQGWUD.mjs.map → MarkdownCard-SLM6QZYC.mjs.map} +0 -0
- /package/dist/lib/{node-esm/blueprint-definition-735OAX33.mjs.map → browser/MarkdownContainer-UZFQC6XY.mjs.map} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MarkdownCard,
|
|
3
|
+
MarkdownCard_default
|
|
4
|
+
} from "./chunk-3VILQLA4.mjs";
|
|
5
|
+
import "./chunk-2LLVTQCK.mjs";
|
|
6
|
+
import "./chunk-UKTCPHLI.mjs";
|
|
7
|
+
import "./chunk-BQTYJOFB.mjs";
|
|
8
|
+
export {
|
|
9
|
+
MarkdownCard,
|
|
10
|
+
MarkdownCard_default as default
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=MarkdownCard-SLM6QZYC.mjs.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MarkdownContainer,
|
|
3
|
+
MarkdownContainer_default
|
|
4
|
+
} from "./chunk-5AYTOIUF.mjs";
|
|
5
|
+
import "./chunk-GLEYXJX3.mjs";
|
|
6
|
+
import "./chunk-JAETS5LE.mjs";
|
|
7
|
+
import "./chunk-IBCHVMZW.mjs";
|
|
8
|
+
import "./chunk-2LLVTQCK.mjs";
|
|
9
|
+
import "./chunk-UKTCPHLI.mjs";
|
|
10
|
+
import "./chunk-BQTYJOFB.mjs";
|
|
11
|
+
export {
|
|
12
|
+
MarkdownContainer,
|
|
13
|
+
MarkdownContainer_default as default
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=MarkdownContainer-UZFQC6XY.mjs.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Markdown_exports
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-UKTCPHLI.mjs";
|
|
4
|
+
import "./chunk-BQTYJOFB.mjs";
|
|
5
5
|
|
|
6
6
|
// src/capabilities/anchor-sort.ts
|
|
7
7
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
8
8
|
import { Type } from "@dxos/echo";
|
|
9
9
|
import { createDocAccessor, getRangeFromCursor, getTarget } from "@dxos/react-client/echo";
|
|
10
|
-
var anchor_sort_default = () => contributes(Capabilities.AnchorSort, {
|
|
10
|
+
var anchor_sort_default = (() => contributes(Capabilities.AnchorSort, {
|
|
11
11
|
key: Type.getTypename(Markdown_exports.Document),
|
|
12
12
|
sort: (anchorA, anchorB) => {
|
|
13
13
|
const doc = getTarget(anchorA);
|
|
@@ -25,8 +25,8 @@ var anchor_sort_default = () => contributes(Capabilities.AnchorSort, {
|
|
|
25
25
|
const posB = getStartPosition(anchorB.anchor);
|
|
26
26
|
return posA - posB;
|
|
27
27
|
}
|
|
28
|
-
});
|
|
28
|
+
}));
|
|
29
29
|
export {
|
|
30
30
|
anchor_sort_default as default
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=anchor-sort-
|
|
32
|
+
//# sourceMappingURL=anchor-sort-4XPPLMZS.mjs.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/capabilities/anchor-sort.ts"],
|
|
4
4
|
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Type } from '@dxos/echo';\nimport { createDocAccessor, getRangeFromCursor, getTarget } from '@dxos/react-client/echo';\n\nimport { Markdown } from '../types';\n\nexport default () =>\n contributes(Capabilities.AnchorSort, {\n key: Type.getTypename(Markdown.Document)!,\n sort: (anchorA, anchorB) => {\n const doc = getTarget(anchorA) as Markdown.Document;\n const accessor = doc.content.target ? createDocAccessor(doc.content.target, ['content']) : undefined;\n if (doc !== getTarget(anchorB) || !accessor) {\n return 0;\n }\n\n const getStartPosition = (cursor: string | undefined) => {\n const range = cursor ? getRangeFromCursor(accessor, cursor) : undefined;\n return range?.start ?? Number.MAX_SAFE_INTEGER;\n };\n\n const posA = getStartPosition(anchorA.anchor);\n const posB = getStartPosition(anchorB.anchor);\n return posA - posB;\n },\n });\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AACrB,SAASC,mBAAmBC,oBAAoBC,iBAAiB;AAIjE,IAAA,
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,YAAY;AACrB,SAASC,mBAAmBC,oBAAoBC,iBAAiB;AAIjE,IAAA,uBAAe,MACbC,YAAYC,aAAaC,YAAY;EACnCC,KAAKC,KAAKC,YAAYC,iBAASC,QAAQ;EACvCC,MAAM,CAACC,SAASC,YAAAA;AACd,UAAMC,MAAMC,UAAUH,OAAAA;AACtB,UAAMI,WAAWF,IAAIG,QAAQC,SAASC,kBAAkBL,IAAIG,QAAQC,QAAQ;MAAC;KAAU,IAAIE;AAC3F,QAAIN,QAAQC,UAAUF,OAAAA,KAAY,CAACG,UAAU;AAC3C,aAAO;IACT;AAEA,UAAMK,mBAAmB,CAACC,WAAAA;AACxB,YAAMC,QAAQD,SAASE,mBAAmBR,UAAUM,MAAAA,IAAUF;AAC9D,aAAOG,OAAOE,SAASC,OAAOC;IAChC;AAEA,UAAMC,OAAOP,iBAAiBT,QAAQiB,MAAM;AAC5C,UAAMC,OAAOT,iBAAiBR,QAAQgB,MAAM;AAC5C,WAAOD,OAAOE;EAChB;AACF,CAAA;",
|
|
6
6
|
"names": ["Capabilities", "contributes", "Type", "createDocAccessor", "getRangeFromCursor", "getTarget", "contributes", "Capabilities", "AnchorSort", "key", "Type", "getTypename", "Markdown", "Document", "sort", "anchorA", "anchorB", "doc", "getTarget", "accessor", "content", "target", "createDocAccessor", "undefined", "getStartPosition", "cursor", "range", "getRangeFromCursor", "start", "Number", "MAX_SAFE_INTEGER", "posA", "anchor", "posB"]
|
|
7
7
|
}
|
package/dist/lib/browser/{app-graph-serializer-OX62DNPT.mjs → app-graph-serializer-QQFV4K6P.mjs}
RENAMED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
translations
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-A3CQYGCN.mjs";
|
|
4
4
|
import {
|
|
5
5
|
MarkdownAction_exports,
|
|
6
6
|
Markdown_exports
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-UKTCPHLI.mjs";
|
|
8
|
+
import "./chunk-BQTYJOFB.mjs";
|
|
9
9
|
|
|
10
10
|
// src/capabilities/app-graph-serializer.ts
|
|
11
|
-
import
|
|
11
|
+
import * as Function from "effect/Function";
|
|
12
12
|
import { Capabilities, chain, contributes, createIntent } from "@dxos/app-framework";
|
|
13
13
|
import { Obj } from "@dxos/echo";
|
|
14
14
|
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
15
15
|
import { isSpace } from "@dxos/react-client/echo";
|
|
16
16
|
import { DataType } from "@dxos/schema";
|
|
17
|
-
var app_graph_serializer_default = (context) => contributes(Capabilities.AppGraphSerializer, [
|
|
17
|
+
var app_graph_serializer_default = ((context) => contributes(Capabilities.AppGraphSerializer, [
|
|
18
18
|
{
|
|
19
19
|
inputType: Markdown_exports.Document.typename,
|
|
20
20
|
outputType: "text/markdown",
|
|
@@ -35,7 +35,7 @@ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGrap
|
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
38
|
-
const result = await dispatch(pipe(createIntent(MarkdownAction_exports.Create, {
|
|
38
|
+
const result = await dispatch(Function.pipe(createIntent(MarkdownAction_exports.Create, {
|
|
39
39
|
name: data.name,
|
|
40
40
|
content: data.data
|
|
41
41
|
}), chain(SpaceAction.AddObject, {
|
|
@@ -44,8 +44,8 @@ var app_graph_serializer_default = (context) => contributes(Capabilities.AppGrap
|
|
|
44
44
|
return result.data?.object;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
]);
|
|
47
|
+
]));
|
|
48
48
|
export {
|
|
49
49
|
app_graph_serializer_default as default
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=app-graph-serializer-
|
|
51
|
+
//# sourceMappingURL=app-graph-serializer-QQFV4K6P.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-serializer.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\n\nimport { Capabilities, type PluginContext, chain, contributes, createIntent } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { isSpace } from '@dxos/react-client/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { translations } from '../translations';\nimport { Markdown, MarkdownAction } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphSerializer, [\n {\n inputType: Markdown.Document.typename,\n outputType: 'text/markdown',\n // Reconcile with metadata serializers.\n serialize: async (node) => {\n const doc = node.data;\n const content = await doc.content.load();\n return {\n name:\n doc.name ||\n doc.fallbackName ||\n translations[0]['en-US'][Markdown.Document.typename]['object name placeholder'],\n data: content.content,\n type: 'text/markdown',\n };\n },\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const target =\n ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ??\n space?.properties[DataType.Collection.typename]?.target;\n if (!space || !target) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(\n Function.pipe(\n createIntent(MarkdownAction.Create, { name: data.name, content: data.data }),\n chain(SpaceAction.AddObject, { target }),\n ),\n );\n\n return result.data?.object;\n },\n },\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,YAAYA,cAAc;AAE1B,SAASC,cAAkCC,OAAOC,aAAaC,oBAAoB;AACnF,SAASC,WAAW;AACpB,SAASC,mBAAmB;AAC5B,SAASC,eAAe;AACxB,SAASC,gBAAgB;AAKzB,IAAA,gCAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC,iBAASC,SAASC;IAC7BC,YAAY;;IAEZC,WAAW,OAAOC,SAAAA;AAChB,YAAMC,MAAMD,KAAKE;AACjB,YAAMC,UAAU,MAAMF,IAAIE,QAAQC,KAAI;AACtC,aAAO;QACLC,MACEJ,IAAII,QACJJ,IAAIK,gBACJC,aAAa,CAAA,EAAG,OAAA,EAASZ,iBAASC,SAASC,QAAQ,EAAE,yBAAA;QACvDK,MAAMC,QAAQA;QACdK,MAAM;MACR;IACF;IACAC,aAAa,OAAOP,MAAMQ,cAAAA;AACxB,YAAMC,QAAQD,UAAUE,KAAKC,OAAAA;AAC7B,YAAMC,SACJJ,UAAUK,SAAS,CAACC,aAAaC,IAAIC,WAAWC,SAASC,YAAYJ,QAAAA,CAAAA,KACrEL,OAAOU,WAAWF,SAASC,WAAWvB,QAAQ,GAAGiB;AACnD,UAAI,CAACH,SAAS,CAACG,QAAQ;AACrB;MACF;AAEA,YAAM,EAAEQ,iBAAiBC,SAAQ,IAAKjC,QAAQkC,cAAchC,aAAaiC,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SACVI,cACPC,aAAaC,uBAAeC,QAAQ;QAAEzB,MAAMH,KAAKG;QAAMF,SAASD,KAAKA;MAAK,CAAA,GAC1E6B,MAAMC,YAAYC,WAAW;QAAEnB;MAAO,CAAA,CAAA,CAAA;AAI1C,aAAOY,OAAOxB,MAAMgC;IACtB;EACF;CACD;",
|
|
6
|
+
"names": ["Function", "Capabilities", "chain", "contributes", "createIntent", "Obj", "SpaceAction", "isSpace", "DataType", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "Markdown", "Document", "typename", "outputType", "serialize", "node", "doc", "data", "content", "load", "name", "fallbackName", "translations", "type", "deserialize", "ancestors", "space", "find", "isSpace", "target", "findLast", "ancestor", "Obj", "instanceOf", "DataType", "Collection", "properties", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "result", "pipe", "createIntent", "MarkdownAction", "Create", "chain", "SpaceAction", "AddObject", "object"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ASSISTANT_BLUEPRINT_KEY,
|
|
3
|
+
blueprint_definition_default
|
|
4
|
+
} from "./chunk-JAETS5LE.mjs";
|
|
5
|
+
import "./chunk-UKTCPHLI.mjs";
|
|
6
|
+
import "./chunk-BQTYJOFB.mjs";
|
|
7
|
+
export {
|
|
8
|
+
ASSISTANT_BLUEPRINT_KEY,
|
|
9
|
+
blueprint_definition_default as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=blueprint-definition-BC5R3T72.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Markdown_exports
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UKTCPHLI.mjs";
|
|
4
4
|
|
|
5
5
|
// src/util.tsx
|
|
6
6
|
import { debounce } from "@dxos/async";
|
|
@@ -11,8 +11,9 @@ var nonTitleChars = /[^\w ]/g;
|
|
|
11
11
|
var getFallbackName = (content) => {
|
|
12
12
|
return content.substring(0, 31).split("\n")[0].replaceAll(nonTitleChars, "").trim();
|
|
13
13
|
};
|
|
14
|
-
var
|
|
15
|
-
|
|
14
|
+
var getContentSnippet = (content) => {
|
|
15
|
+
const abstract = content.split("\n").filter((line) => !line.startsWith("#")).filter((line) => line.trim() !== "")[0].replaceAll(nonTitleChars, "").trim();
|
|
16
|
+
return abstract + "...";
|
|
16
17
|
};
|
|
17
18
|
var setFallbackName = debounce((doc, content) => {
|
|
18
19
|
const name = getFallbackName(content);
|
|
@@ -43,8 +44,8 @@ export {
|
|
|
43
44
|
isEditorModel,
|
|
44
45
|
isMarkdownProperties,
|
|
45
46
|
getFallbackName,
|
|
46
|
-
|
|
47
|
+
getContentSnippet,
|
|
47
48
|
setFallbackName,
|
|
48
49
|
serializer
|
|
49
50
|
};
|
|
50
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-2LLVTQCK.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Markdown } from './types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\nexport const getFallbackName = (content: string) => {\n return content.substring(0, 31).split('\\n')[0].replaceAll(nonTitleChars, '').trim();\n};\n\nexport const getContentSnippet = (content: string) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('#'))\n .filter((line) => line.trim() !== '')[0]\n .replaceAll(nonTitleChars, '')\n .trim();\n\n return abstract + '...';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content: string) => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n doc.fallbackName = name;\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.makeDocument({ name, fallbackName, content });\n },\n};\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAUb,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCI,IAAIC,SAASL,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKM,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAEf,IAAMC,kBAAkB,CAACC,YAAAA;AAC9B,SAAOA,QAAQC,UAAU,GAAG,EAAA,EAAIC,MAAM,IAAA,EAAM,CAAA,EAAGC,WAAWL,eAAe,EAAA,EAAIM,KAAI;AACnF;AAEO,IAAMC,oBAAoB,CAACL,YAAAA;AAChC,QAAMM,WAAWN,QACdE,MAAM,IAAA,EACNK,OAAO,CAACC,SAAS,CAACA,KAAKC,WAAW,GAAA,CAAA,EAClCF,OAAO,CAACC,SAASA,KAAKJ,KAAI,MAAO,EAAA,EAAI,CAAA,EACrCD,WAAWL,eAAe,EAAA,EAC1BM,KAAI;AAEP,SAAOE,WAAW;AACpB;AAEO,IAAMI,kBAAkBC,SAAS,CAACC,KAAwBZ,YAAAA;AAC/D,QAAMa,OAAOd,gBAAgBC,OAAAA;AAC7B,MAAIY,IAAIE,iBAAiBD,MAAM;AAC7BD,QAAIE,eAAeD;EACrB;AACF,GAAG,GAAA;AAEI,IAAME,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEjB,QAAO,IAAK,MAAMiB,OAAOjB,QAAQkB,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAEP,MAAMI,OAAOJ;MAAMC,cAAcG,OAAOH;MAAcd;IAAQ,CAAA;EACxF;EAEAqB,aAAa,OAAO,EAAErB,SAASsB,WAAU,MAAE;AACzC,UAAM,EAAET,MAAMC,cAAcd,QAAO,IAAKmB,KAAKI,MAAMD,UAAAA;AACnD,WAAOE,iBAASC,aAAa;MAAEZ;MAAMC;MAAcd;IAAQ,CAAA;EAC7D;AACF;",
|
|
6
|
+
"names": ["debounce", "Obj", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "Obj", "isObject", "title", "nonTitleChars", "getFallbackName", "content", "substring", "split", "replaceAll", "trim", "getContentSnippet", "abstract", "filter", "line", "startsWith", "setFallbackName", "debounce", "doc", "name", "fallbackName", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "makeDocument"]
|
|
7
|
+
}
|
|
@@ -1,45 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
getContentSnippet,
|
|
3
3
|
getFallbackName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2LLVTQCK.mjs";
|
|
5
5
|
import {
|
|
6
6
|
Markdown_exports
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UKTCPHLI.mjs";
|
|
8
8
|
import {
|
|
9
9
|
meta
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BQTYJOFB.mjs";
|
|
11
11
|
|
|
12
12
|
// src/components/MarkdownCard/MarkdownCard.tsx
|
|
13
13
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
14
|
-
import
|
|
14
|
+
import * as Function from "effect/Function";
|
|
15
15
|
import React, { useCallback } from "react";
|
|
16
16
|
import { LayoutAction, chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
17
17
|
import { Obj } from "@dxos/echo";
|
|
18
18
|
import { fullyQualifiedId } from "@dxos/react-client/echo";
|
|
19
|
-
import {
|
|
19
|
+
import { IconButton, useTranslation } from "@dxos/react-ui";
|
|
20
20
|
import { Card } from "@dxos/react-ui-stack";
|
|
21
21
|
import { DataType } from "@dxos/schema";
|
|
22
|
-
var getTitle = (subject, fallback) => {
|
|
23
|
-
if (Obj.instanceOf(Markdown_exports.Document, subject)) {
|
|
24
|
-
return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);
|
|
25
|
-
} else if (Obj.instanceOf(DataType.Text, subject)) {
|
|
26
|
-
return getFallbackName(subject.content);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var getSnippet = (subject, fallback) => {
|
|
30
|
-
if (Obj.instanceOf(Markdown_exports.Document, subject)) {
|
|
31
|
-
return getAbstract(subject.content?.target?.content ?? fallback);
|
|
32
|
-
} else if (Obj.instanceOf(DataType.Text, subject)) {
|
|
33
|
-
return getAbstract(subject.content);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
22
|
var MarkdownCard = ({ subject, role }) => {
|
|
37
23
|
var _effect = _useSignals();
|
|
38
24
|
try {
|
|
39
25
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
40
26
|
const { t } = useTranslation(meta.id);
|
|
41
27
|
const snippet = getSnippet(subject, t("fallback abstract"));
|
|
42
|
-
const
|
|
28
|
+
const info = getInfo(subject);
|
|
29
|
+
const handleNavigate = useCallback(() => dispatch(Function.pipe(createIntent(LayoutAction.UpdatePopover, {
|
|
43
30
|
part: "popover",
|
|
44
31
|
subject: null,
|
|
45
32
|
options: {
|
|
@@ -57,24 +44,52 @@ var MarkdownCard = ({ subject, role }) => {
|
|
|
57
44
|
]);
|
|
58
45
|
return /* @__PURE__ */ React.createElement(Card.SurfaceRoot, {
|
|
59
46
|
role
|
|
60
|
-
}, /* @__PURE__ */ React.createElement(Card.Heading,
|
|
61
|
-
classNames: "
|
|
62
|
-
},
|
|
63
|
-
onClick: handleNavigate
|
|
64
|
-
}, /* @__PURE__ */ React.createElement("span", {
|
|
47
|
+
}, /* @__PURE__ */ React.createElement(Card.Heading, {
|
|
48
|
+
classNames: "flex items-center"
|
|
49
|
+
}, getTitle(subject, t("fallback title")), /* @__PURE__ */ React.createElement("span", {
|
|
65
50
|
className: "grow"
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
51
|
+
}), /* @__PURE__ */ React.createElement(IconButton, {
|
|
52
|
+
iconOnly: true,
|
|
53
|
+
icon: "ph--arrow-right--regular",
|
|
54
|
+
label: t("navigate to document label"),
|
|
55
|
+
onClick: handleNavigate
|
|
56
|
+
})), snippet && /* @__PURE__ */ React.createElement(Card.Text, {
|
|
57
|
+
classNames: "line-clamp-3 text-sm text-description"
|
|
58
|
+
}, snippet), /* @__PURE__ */ React.createElement(Card.Text, {
|
|
59
|
+
classNames: "text-xs text-description"
|
|
60
|
+
}, info.words, " ", t("words label", {
|
|
61
|
+
count: info.words
|
|
62
|
+
})));
|
|
69
63
|
} finally {
|
|
70
64
|
_effect.f();
|
|
71
65
|
}
|
|
72
66
|
};
|
|
67
|
+
var getInfo = (subject) => {
|
|
68
|
+
const text = (Obj.instanceOf(Markdown_exports.Document, subject) ? subject.content?.target?.content : subject.content) ?? "";
|
|
69
|
+
return {
|
|
70
|
+
words: text.split(" ").length
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
var getTitle = (subject, fallback) => {
|
|
74
|
+
if (Obj.instanceOf(Markdown_exports.Document, subject)) {
|
|
75
|
+
return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);
|
|
76
|
+
} else if (Obj.instanceOf(DataType.Text, subject)) {
|
|
77
|
+
return getFallbackName(subject.content);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var getSnippet = (subject, fallback) => {
|
|
81
|
+
if (Obj.instanceOf(Markdown_exports.Document, subject)) {
|
|
82
|
+
return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);
|
|
83
|
+
} else if (Obj.instanceOf(DataType.Text, subject)) {
|
|
84
|
+
return getContentSnippet(subject.content ?? fallback);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
73
87
|
|
|
74
88
|
// src/components/MarkdownCard/index.ts
|
|
75
89
|
var MarkdownCard_default = MarkdownCard;
|
|
90
|
+
|
|
76
91
|
export {
|
|
77
92
|
MarkdownCard,
|
|
78
|
-
MarkdownCard_default
|
|
93
|
+
MarkdownCard_default
|
|
79
94
|
};
|
|
80
|
-
//# sourceMappingURL=
|
|
95
|
+
//# sourceMappingURL=chunk-3VILQLA4.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/MarkdownCard/MarkdownCard.tsx", "../../../src/components/MarkdownCard/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { type PreviewProps } from '@dxos/plugin-preview';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { IconButton, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../../meta';\nimport { Markdown } from '../../types';\nimport { getContentSnippet, getFallbackName } from '../../util';\n\nexport type MarkdownCardProps = PreviewProps<Markdown.Document | DataType.Text>;\n\nexport const MarkdownCard = ({ subject, role }: MarkdownCardProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(meta.id);\n const snippet = getSnippet(subject, t('fallback abstract'));\n const info = getInfo(subject);\n\n // TODO(wittjosiah): Factor out so this component isn't dependent on the app framework.\n const handleNavigate = useCallback(\n () =>\n dispatch(\n Function.pipe(\n createIntent(LayoutAction.UpdatePopover, {\n part: 'popover',\n subject: null,\n options: { state: false, anchorId: '' },\n }),\n chain(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(subject)] }),\n ),\n ),\n [dispatch, subject],\n );\n\n return (\n <Card.SurfaceRoot role={role}>\n <Card.Heading classNames='flex items-center'>\n {getTitle(subject, t('fallback title'))}\n <span className='grow' />\n <IconButton\n iconOnly\n icon='ph--arrow-right--regular'\n label={t('navigate to document label')}\n onClick={handleNavigate}\n />\n </Card.Heading>\n {snippet && <Card.Text classNames='line-clamp-3 text-sm text-description'>{snippet}</Card.Text>}\n <Card.Text classNames='text-xs text-description'>\n {info.words} {t('words label', { count: info.words })}\n </Card.Text>\n </Card.SurfaceRoot>\n );\n};\n\nconst getInfo = (subject: Markdown.Document | DataType.Text) => {\n const text = (Obj.instanceOf(Markdown.Document, subject) ? subject.content?.target?.content : subject.content) ?? '';\n return { words: text.split(' ').length };\n};\n\n// TODO(burdon): Factor out.\nconst getTitle = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return subject.name ?? subject.fallbackName ?? getFallbackName(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getFallbackName(subject.content);\n }\n};\n\n// TODO(burdon): Factor out.\nconst getSnippet = (subject: Markdown.Document | DataType.Text, fallback: string) => {\n if (Obj.instanceOf(Markdown.Document, subject)) {\n return Obj.getDescription(subject) || getContentSnippet(subject.content?.target?.content ?? fallback);\n } else if (Obj.instanceOf(DataType.Text, subject)) {\n return getContentSnippet(subject.content ?? fallback);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { MarkdownCard } from './MarkdownCard';\n\nexport * from './MarkdownCard';\n\nexport default MarkdownCard;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;AAIA,YAAYA,cAAc;AAC1B,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,cAAcC,OAAOC,cAAcC,2BAA2B;AACvE,SAASC,WAAW;AAEpB,SAASC,wBAAwB;AACjC,SAASC,YAAYC,sBAAsB;AAC3C,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAQlB,IAAMC,eAAe,CAAC,EAAEC,SAASC,KAAI,MAAqB;;;AAC/D,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AACtC,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUC,WAAWV,SAASK,EAAE,mBAAA,CAAA;AACtC,UAAMM,OAAOC,QAAQZ,OAAAA;AAGrB,UAAMa,iBAAiBC,YACrB,MACEX,SACWY,cACPC,aAAaC,aAAaC,eAAe;MACvCC,MAAM;MACNnB,SAAS;MACToB,SAAS;QAAEC,OAAO;QAAOC,UAAU;MAAG;IACxC,CAAA,GACAC,MAAMN,aAAaO,MAAM;MAAEL,MAAM;MAAQnB,SAAS;QAACyB,iBAAiBzB,OAAAA;;IAAU,CAAA,CAAA,CAAA,GAGpF;MAACG;MAAUH;KAAQ;AAGrB,WACE,sBAAA,cAAC0B,KAAKC,aAAW;MAAC1B;OAChB,sBAAA,cAACyB,KAAKE,SAAO;MAACC,YAAW;OACtBC,SAAS9B,SAASK,EAAE,gBAAA,CAAA,GACrB,sBAAA,cAAC0B,QAAAA;MAAKC,WAAU;QAChB,sBAAA,cAACC,YAAAA;MACCC,UAAAA;MACAC,MAAK;MACLC,OAAO/B,EAAE,4BAAA;MACTgC,SAASxB;SAGZJ,WAAW,sBAAA,cAACiB,KAAKY,MAAI;MAACT,YAAW;OAAyCpB,OAAAA,GAC3E,sBAAA,cAACiB,KAAKY,MAAI;MAACT,YAAW;OACnBlB,KAAK4B,OAAM,KAAElC,EAAE,eAAe;MAAEmC,OAAO7B,KAAK4B;IAAM,CAAA,CAAA,CAAA;;;;AAI3D;AAEA,IAAM3B,UAAU,CAACZ,YAAAA;AACf,QAAMyC,QAAQC,IAAIC,WAAWC,iBAASC,UAAU7C,OAAAA,IAAWA,QAAQ8C,SAASC,QAAQD,UAAU9C,QAAQ8C,YAAY;AAClH,SAAO;IAAEP,OAAOE,KAAKO,MAAM,GAAA,EAAKC;EAAO;AACzC;AAGA,IAAMnB,WAAW,CAAC9B,SAA4CkD,aAAAA;AAC5D,MAAIR,IAAIC,WAAWC,iBAASC,UAAU7C,OAAAA,GAAU;AAC9C,WAAOA,QAAQmD,QAAQnD,QAAQoD,gBAAgBC,gBAAgBrD,QAAQ8C,SAASC,QAAQD,WAAWI,QAAAA;EACrG,WAAWR,IAAIC,WAAWW,SAAShB,MAAMtC,OAAAA,GAAU;AACjD,WAAOqD,gBAAgBrD,QAAQ8C,OAAO;EACxC;AACF;AAGA,IAAMpC,aAAa,CAACV,SAA4CkD,aAAAA;AAC9D,MAAIR,IAAIC,WAAWC,iBAASC,UAAU7C,OAAAA,GAAU;AAC9C,WAAO0C,IAAIa,eAAevD,OAAAA,KAAYwD,kBAAkBxD,QAAQ8C,SAASC,QAAQD,WAAWI,QAAAA;EAC9F,WAAWR,IAAIC,WAAWW,SAAShB,MAAMtC,OAAAA,GAAU;AACjD,WAAOwD,kBAAkBxD,QAAQ8C,WAAWI,QAAAA;EAC9C;AACF;;;AC5EA,IAAA,uBAAeO;",
|
|
6
|
+
"names": ["Function", "React", "useCallback", "LayoutAction", "chain", "createIntent", "useIntentDispatcher", "Obj", "fullyQualifiedId", "IconButton", "useTranslation", "Card", "DataType", "MarkdownCard", "subject", "role", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "meta", "id", "snippet", "getSnippet", "info", "getInfo", "handleNavigate", "useCallback", "pipe", "createIntent", "LayoutAction", "UpdatePopover", "part", "options", "state", "anchorId", "chain", "Open", "fullyQualifiedId", "Card", "SurfaceRoot", "Heading", "classNames", "getTitle", "span", "className", "IconButton", "iconOnly", "icon", "label", "onClick", "Text", "words", "count", "text", "Obj", "instanceOf", "Markdown", "Document", "content", "target", "split", "length", "fallback", "name", "fallbackName", "getFallbackName", "DataType", "getDescription", "getContentSnippet", "MarkdownCard"]
|
|
7
|
+
}
|