@mark-sorcery/vue 0.3.0 → 0.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/dist/{Blockquote-BeOfUsk-.js → Blockquote-CQ00l7_X.js} +2 -2
- package/dist/{Blockquote-BeOfUsk-.js.map → Blockquote-CQ00l7_X.js.map} +1 -1
- package/dist/{Blockquote-RI8XvPhG.cjs → Blockquote-CsDuM74x.cjs} +2 -2
- package/dist/{Blockquote-RI8XvPhG.cjs.map → Blockquote-CsDuM74x.cjs.map} +1 -1
- package/dist/{Bold-Bi1du8CJ.js → Bold-BeBMCbKR.js} +2 -2
- package/dist/{Bold-Bi1du8CJ.js.map → Bold-BeBMCbKR.js.map} +1 -1
- package/dist/{Bold-DWA5fzKp.cjs → Bold-Ci8roG6o.cjs} +2 -2
- package/dist/{Bold-DWA5fzKp.cjs.map → Bold-Ci8roG6o.cjs.map} +1 -1
- package/dist/{Code-DmkITyUd.cjs → Code-CNHJYkyL.cjs} +2 -2
- package/dist/{Code-DmkITyUd.cjs.map → Code-CNHJYkyL.cjs.map} +1 -1
- package/dist/{Code-DPKXUmPC.js → Code-wAxxAhcA.js} +2 -2
- package/dist/{Code-DPKXUmPC.js.map → Code-wAxxAhcA.js.map} +1 -1
- package/dist/{CodeBlock-CawFy9YT.cjs → CodeBlock-6Pr5Z5NL.cjs} +2 -2
- package/dist/{CodeBlock-CawFy9YT.cjs.map → CodeBlock-6Pr5Z5NL.cjs.map} +1 -1
- package/dist/{CodeBlock-Duwcxp3X.js → CodeBlock-ThF6XH4W.js} +2 -2
- package/dist/{CodeBlock-Duwcxp3X.js.map → CodeBlock-ThF6XH4W.js.map} +1 -1
- package/dist/Default-BdwUq6V5.js +17 -0
- package/dist/Default-BdwUq6V5.js.map +1 -0
- package/dist/Default-D303gqxw.cjs +17 -0
- package/dist/Default-D303gqxw.cjs.map +1 -0
- package/dist/{Heading-CPB6VryI.js → Heading-B9ci-RSS.js} +2 -2
- package/dist/{Heading-CPB6VryI.js.map → Heading-B9ci-RSS.js.map} +1 -1
- package/dist/{Heading-CQmmqddk.cjs → Heading-XHEaF_uw.cjs} +2 -2
- package/dist/{Heading-CQmmqddk.cjs.map → Heading-XHEaF_uw.cjs.map} +1 -1
- package/dist/{Italic-DmavDuWx.js → Italic-BtTOTH7U.js} +2 -2
- package/dist/{Italic-DmavDuWx.js.map → Italic-BtTOTH7U.js.map} +1 -1
- package/dist/{Italic-DLGLEgQL.cjs → Italic-Dm3v-svR.cjs} +2 -2
- package/dist/{Italic-DLGLEgQL.cjs.map → Italic-Dm3v-svR.cjs.map} +1 -1
- package/dist/{Link-B2nQX8af.js → Link-4GqqHDBl.js} +2 -2
- package/dist/{Link-B2nQX8af.js.map → Link-4GqqHDBl.js.map} +1 -1
- package/dist/{Link-9wbnSrks.cjs → Link-CCApvA47.cjs} +2 -2
- package/dist/{Link-9wbnSrks.cjs.map → Link-CCApvA47.cjs.map} +1 -1
- package/dist/{ListItem-L32ueBOJ.cjs → ListItem-C3yxx2gg.cjs} +2 -2
- package/dist/{ListItem-L32ueBOJ.cjs.map → ListItem-C3yxx2gg.cjs.map} +1 -1
- package/dist/{ListItem-tCoCmS98.js → ListItem-Cprot4T5.js} +2 -2
- package/dist/{ListItem-tCoCmS98.js.map → ListItem-Cprot4T5.js.map} +1 -1
- package/dist/NodeList-BRtZi6mG.js +136 -0
- package/dist/NodeList-BRtZi6mG.js.map +1 -0
- package/dist/{NodeList-CXCRf4Sf.cjs → NodeList-BSXOJrlM.cjs} +73 -60
- package/dist/NodeList-BSXOJrlM.cjs.map +1 -0
- package/dist/{OrderedList-Otuk3FD-.cjs → OrderedList-CV9g8PlL.cjs} +2 -2
- package/dist/{OrderedList-Otuk3FD-.cjs.map → OrderedList-CV9g8PlL.cjs.map} +1 -1
- package/dist/{OrderedList-BiBUuBtQ.js → OrderedList-XZIbdRZq.js} +2 -2
- package/dist/{OrderedList-BiBUuBtQ.js.map → OrderedList-XZIbdRZq.js.map} +1 -1
- package/dist/{Paragraph-D8vRiJdV.js → Paragraph-CjkSyimn.js} +2 -2
- package/dist/{Paragraph-D8vRiJdV.js.map → Paragraph-CjkSyimn.js.map} +1 -1
- package/dist/{Paragraph-Cn0qq6eD.cjs → Paragraph-GnFhfGoR.cjs} +2 -2
- package/dist/{Paragraph-Cn0qq6eD.cjs.map → Paragraph-GnFhfGoR.cjs.map} +1 -1
- package/dist/{Strikethrough-D6HU-DLr.cjs → Strikethrough-DDhdCH3H.cjs} +2 -2
- package/dist/{Strikethrough-D6HU-DLr.cjs.map → Strikethrough-DDhdCH3H.cjs.map} +1 -1
- package/dist/{Strikethrough-BhFf4qRs.js → Strikethrough-Y9TM_SwO.js} +2 -2
- package/dist/{Strikethrough-BhFf4qRs.js.map → Strikethrough-Y9TM_SwO.js.map} +1 -1
- package/dist/{Table-DxMMIS1J.js → Table-Bpu3YpNv.js} +2 -2
- package/dist/{Table-DxMMIS1J.js.map → Table-Bpu3YpNv.js.map} +1 -1
- package/dist/{Table-Da8GL8er.cjs → Table-D4j0j6E7.cjs} +2 -2
- package/dist/{Table-Da8GL8er.cjs.map → Table-D4j0j6E7.cjs.map} +1 -1
- package/dist/{TableBody-DWmHYRny.js → TableBody-COwElKNR.js} +2 -2
- package/dist/{TableBody-DWmHYRny.js.map → TableBody-COwElKNR.js.map} +1 -1
- package/dist/{TableBody-D6I9wlwE.cjs → TableBody-DAzn9CUu.cjs} +2 -2
- package/dist/{TableBody-D6I9wlwE.cjs.map → TableBody-DAzn9CUu.cjs.map} +1 -1
- package/dist/{TableData-8V3hQ4i0.cjs → TableData-DJJe9Tf6.cjs} +2 -2
- package/dist/{TableData-8V3hQ4i0.cjs.map → TableData-DJJe9Tf6.cjs.map} +1 -1
- package/dist/{TableData-CXjn9U8M.js → TableData-c1fn4umk.js} +2 -2
- package/dist/{TableData-CXjn9U8M.js.map → TableData-c1fn4umk.js.map} +1 -1
- package/dist/{TableHead-RMl2XF2I.js → TableHead-DZpaTt5a.js} +2 -2
- package/dist/{TableHead-RMl2XF2I.js.map → TableHead-DZpaTt5a.js.map} +1 -1
- package/dist/{TableHead-DSWO60r-.cjs → TableHead-rrVYInXV.cjs} +2 -2
- package/dist/{TableHead-DSWO60r-.cjs.map → TableHead-rrVYInXV.cjs.map} +1 -1
- package/dist/{TableHeader-D4nI4o6p.cjs → TableHeader-Cp4WDJMs.cjs} +2 -2
- package/dist/{TableHeader-D4nI4o6p.cjs.map → TableHeader-Cp4WDJMs.cjs.map} +1 -1
- package/dist/{TableHeader-CO5WWCf6.js → TableHeader-DKYmn1aU.js} +2 -2
- package/dist/{TableHeader-CO5WWCf6.js.map → TableHeader-DKYmn1aU.js.map} +1 -1
- package/dist/{TableRow-CFEKUaRS.js → TableRow-CUFzFAvX.js} +2 -2
- package/dist/{TableRow-CFEKUaRS.js.map → TableRow-CUFzFAvX.js.map} +1 -1
- package/dist/{TableRow-Cso50UW2.cjs → TableRow-YkwTraeY.cjs} +2 -2
- package/dist/{TableRow-Cso50UW2.cjs.map → TableRow-YkwTraeY.cjs.map} +1 -1
- package/dist/{TaskListInput-DiQhjFqy.js → TaskListInput-BEzV7Vfw.js} +1 -1
- package/dist/{TaskListInput-DiQhjFqy.js.map → TaskListInput-BEzV7Vfw.js.map} +1 -1
- package/dist/{TaskListInput-BlFjVLdG.cjs → TaskListInput-CJaIxj3X.cjs} +1 -1
- package/dist/{TaskListInput-BlFjVLdG.cjs.map → TaskListInput-CJaIxj3X.cjs.map} +1 -1
- package/dist/Text-B8_JK9gW.cjs +24 -0
- package/dist/Text-B8_JK9gW.cjs.map +1 -0
- package/dist/Text-C6WCz2NQ.js +24 -0
- package/dist/Text-C6WCz2NQ.js.map +1 -0
- package/dist/{UnorderedList-C_w27MXB.cjs → UnorderedList-CZRPCjH-.cjs} +2 -2
- package/dist/{UnorderedList-C_w27MXB.cjs.map → UnorderedList-CZRPCjH-.cjs.map} +1 -1
- package/dist/{UnorderedList-BCqaq94d.js → UnorderedList-Dz4nkM-t.js} +2 -2
- package/dist/{UnorderedList-BCqaq94d.js.map → UnorderedList-Dz4nkM-t.js.map} +1 -1
- package/dist/index.cjs +13 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/dist/NodeList-CXCRf4Sf.cjs.map +0 -1
- package/dist/NodeList-DliNdSdR.js +0 -123
- package/dist/NodeList-DliNdSdR.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeList-CXCRf4Sf.cjs","names":[],"sources":["../src/components/index.ts","../src/composables/markdown.ts","../src/components/NodeList.vue","../src/components/NodeList.vue"],"sourcesContent":["import { defineAsyncComponent } from \"vue\";\r\n\r\nconst heading = defineAsyncComponent(() => import('./elements/Heading.vue'));\r\n\r\nexport const DEFAULT_COMPONENTS = {\r\n p: defineAsyncComponent(() => import('./elements/Paragraph.vue')),\r\n h1: heading,\r\n h2: heading,\r\n h3: heading,\r\n h4: heading,\r\n h5: heading,\r\n h6: heading,\r\n strong: defineAsyncComponent(() => import('./elements/Bold.vue')),\r\n em: defineAsyncComponent(() => import('./elements/Italic.vue')),\r\n del: defineAsyncComponent(() => import('./elements/Strikethrough.vue')),\r\n blockquote: defineAsyncComponent(() => import('./elements/Blockquote.vue')),\r\n ul: defineAsyncComponent(() => import('./elements/UnorderedList.vue')),\r\n ol: defineAsyncComponent(() => import('./elements/OrderedList.vue')),\r\n li: defineAsyncComponent(() => import('./elements/ListItem.vue')),\r\n code: defineAsyncComponent(() => import('./elements/Code.vue')),\r\n a: defineAsyncComponent(() => import('./elements/Link.vue')),\r\n input: defineAsyncComponent(() => import('./elements/TaskListInput.vue')),\r\n pre: defineAsyncComponent(() => import('./elements/CodeBlock.vue')),\r\n table: defineAsyncComponent(() => import('./elements/Table.vue')),\r\n thead: defineAsyncComponent(() => import('./elements/TableHead.vue')),\r\n tbody: defineAsyncComponent(() => import('./elements/TableBody.vue')),\r\n tr: defineAsyncComponent(() => import('./elements/TableRow.vue')),\r\n th: defineAsyncComponent(() => import('./elements/TableHeader.vue')),\r\n td: defineAsyncComponent(() => import('./elements/TableData.vue')),\r\n}","import { computed, inject, provide, type ComputedRef } from \"vue\";\r\nimport type { MarkdownProps } from \"../types\";\r\nimport { DEFAULT_COMPONENTS } from \"../components\";\r\n\r\nconst MARKDOWN_KEY = \"__MARK_SORCERY_\"\r\n\r\nexport type MarkdownContext = {\r\n components: ComputedRef<NonNullable<MarkdownProps['components']>>\r\n transition: ComputedRef<MarkdownProps['transition']>\r\n}\r\n\r\nconst useProvideMarkdown = (\r\n userComponents: ComputedRef<MarkdownProps['components'] | undefined>,\r\n transition: ComputedRef<MarkdownProps['transition']>\r\n): MarkdownContext => {\r\n const components = computed<NonNullable<MarkdownProps['components']>>(() => ({\r\n ...DEFAULT_COMPONENTS,\r\n ...userComponents.value,\r\n }))\r\n\r\n provide(MARKDOWN_KEY, {\r\n components,\r\n transition,\r\n });\r\n\r\n return {\r\n components,\r\n transition,\r\n }\r\n}\r\n\r\nconst useMarkdown = (): MarkdownContext => {\r\n const context = inject<MarkdownContext>(MARKDOWN_KEY);\r\n\r\n if (!context) {\r\n throw new Error('useMarkdown must be used within a Markdown component');\r\n }\r\n\r\n return context;\r\n}\r\n\r\nexport {\r\n useProvideMarkdown,\r\n useMarkdown,\r\n}","<script setup lang=\"ts\">\r\nimport type { Nodes } from \"hast\";\r\n\r\nimport { computed, h, Transition as VueTransition } from \"vue\";\r\n\r\nimport type { NodeListProps } from \"../types\";\r\n\r\nimport { useMarkdown } from \"../composables/markdown\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { nodes, nodeKey, deep = 0, parentNode } = defineProps<NodeListProps>();\r\n\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst getRenderNode = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n if (node.type === \"text\") {\r\n return node.value;\r\n } else if (node.type === \"element\") {\r\n const component = components.value[node.tagName];\r\n if (!component) {\r\n return [];\r\n }\r\n return h(component, {\r\n element: node,\r\n nodeIdx: idx,\r\n deep: deep + 1,\r\n nodeKey,\r\n parentNode,\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst nodeRenderer = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n const renderNode = getRenderNode({ node, idx, nodeKey });\r\n\r\n if (transition.value) {\r\n const transitionProps = {\r\n appear: true,\r\n };\r\n if (typeof transition.value === \"object\") {\r\n Object.assign(transitionProps, transition.value);\r\n }\r\n return h(VueTransition, transitionProps, () => renderNode);\r\n }\r\n\r\n return renderNode;\r\n};\r\n\r\nconst nodeKeyPrefix = computed(() => (!nodeKey ? \"\" : `${nodeKey}.`));\r\n\r\nfunction getNodeKey(node: Nodes, idx: number) {\r\n if (node.type === \"text\") {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n } else if (node.type === \"element\") {\r\n return `${nodeKeyPrefix}${node.type}-${node.tagName}-${idx}`;\r\n } else {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n }\r\n}\r\n</script>\r\n\r\n<template>\r\n <template v-for=\"(node, idx) in nodes\" :key=\"getNodeKey(node, idx)\">\r\n <nodeRenderer :node=\"node\" :idx=\"idx\" :nodeKey=\"getNodeKey(node, idx)\" />\r\n </template>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { Nodes } from \"hast\";\r\n\r\nimport { computed, h, Transition as VueTransition } from \"vue\";\r\n\r\nimport type { NodeListProps } from \"../types\";\r\n\r\nimport { useMarkdown } from \"../composables/markdown\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { nodes, nodeKey, deep = 0, parentNode } = defineProps<NodeListProps>();\r\n\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst getRenderNode = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n if (node.type === \"text\") {\r\n return node.value;\r\n } else if (node.type === \"element\") {\r\n const component = components.value[node.tagName];\r\n if (!component) {\r\n return [];\r\n }\r\n return h(component, {\r\n element: node,\r\n nodeIdx: idx,\r\n deep: deep + 1,\r\n nodeKey,\r\n parentNode,\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst nodeRenderer = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n const renderNode = getRenderNode({ node, idx, nodeKey });\r\n\r\n if (transition.value) {\r\n const transitionProps = {\r\n appear: true,\r\n };\r\n if (typeof transition.value === \"object\") {\r\n Object.assign(transitionProps, transition.value);\r\n }\r\n return h(VueTransition, transitionProps, () => renderNode);\r\n }\r\n\r\n return renderNode;\r\n};\r\n\r\nconst nodeKeyPrefix = computed(() => (!nodeKey ? \"\" : `${nodeKey}.`));\r\n\r\nfunction getNodeKey(node: Nodes, idx: number) {\r\n if (node.type === \"text\") {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n } else if (node.type === \"element\") {\r\n return `${nodeKeyPrefix}${node.type}-${node.tagName}-${idx}`;\r\n } else {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n }\r\n}\r\n</script>\r\n\r\n<template>\r\n <template v-for=\"(node, idx) in nodes\" :key=\"getNodeKey(node, idx)\">\r\n <nodeRenderer :node=\"node\" :idx=\"idx\" :nodeKey=\"getNodeKey(node, idx)\" />\r\n </template>\r\n</template>\r\n"],"mappings":";;;AAEA,MAAM,mFAAqC,2BAAiC;AAE5E,MAAa,qBAAqB;CAC9B,4EAA8B,6BAAmC;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,iFAAmC,wBAA8B;CACjE,6EAA+B,0BAAgC;CAC/D,8EAAgC,iCAAuC;CACvE,qFAAuC,8BAAoC;CAC3E,6EAA+B,iCAAuC;CACtE,6EAA+B,+BAAqC;CACpE,6EAA+B,4BAAkC;CACjE,+EAAiC,wBAA8B;CAC/D,4EAA8B,wBAA8B;CAC5D,gFAAkC,iCAAuC;CACzE,8EAAgC,6BAAmC;CACnE,gFAAkC,yBAA+B;CACjE,gFAAkC,6BAAmC;CACrE,gFAAkC,6BAAmC;CACrE,6EAA+B,4BAAkC;CACjE,6EAA+B,+BAAqC;CACpE,6EAA+B,6BAAmC;;;;;ACxBtE,MAAM,eAAe;AAOrB,MAAM,sBACF,gBACA,eACkB;CAClB,MAAM,sCAAuE;EACzE,GAAG;EACH,GAAG,eAAe;EACrB,EAAE;AAEH,kBAAQ,cAAc;EAClB;EACA;EACH,CAAC;AAEF,QAAO;EACH;EACA;EACH;;AAGL,MAAM,oBAAqC;CACvC,MAAM,0BAAkC,aAAa;AAErD,KAAI,CAAC,QACD,OAAM,IAAI,MAAM,uDAAuD;AAG3E,QAAO;;;;;;;;;;;;;;;;;;ECvBX,MAAM,EAAE,YAAY,eAAe,aAAa;EAEhD,MAAM,iBAAiB,EAAE,MAAM,KAAK,cAA6D;AAC/F,OAAI,KAAK,SAAS,OAChB,QAAO,KAAK;YACH,KAAK,SAAS,WAAW;IAClC,MAAM,YAAY,WAAW,MAAM,KAAK;AACxC,QAAI,CAAC,UACH,QAAO,EAAE;AAEX,sBAAS,WAAW;KAClB,SAAS;KACT,SAAS;KACT,MAAM,QAAA,OAAO;KACb;KACA,YAAS,QAAA;KACV,CAAC;SAEF,QAAO,EAAE;;EAIb,MAAM,gBAAgB,EAAE,MAAM,KAAK,cAA6D;GAC9F,MAAM,aAAa,cAAc;IAAE;IAAM;IAAK;IAAS,CAAC;AAExD,OAAI,WAAW,OAAO;IACpB,MAAM,kBAAkB,EACtB,QAAQ,MACT;AACD,QAAI,OAAO,WAAW,UAAU,SAC9B,QAAO,OAAO,iBAAiB,WAAW,MAAM;AAElD,sBAAS,gBAAe,uBAAuB,WAAW;;AAG5D,UAAO;;EAGT,MAAM,wCAAgC,CAAC,QAAA,UAAU,KAAK,GAAG,QAAA,QAAQ,GAAI;EAErE,SAAS,WAAW,MAAa,KAAa;AAC5C,OAAI,KAAK,SAAS,OAChB,QAAO,GAAG,gBAAgB,KAAK,KAAK,GAAG;YAC9B,KAAK,SAAS,UACvB,QAAO,GAAG,gBAAgB,KAAK,KAAK,GAAG,KAAK,QAAQ,GAAG;OAEvD,QAAO,GAAG,gBAAgB,KAAK,KAAK,GAAG;;;gECQ9B,cAAA,0BAFqB,QAAA,QAAd,MAAM,QAAG;sDACgD,cAAA;UAD9B,WAAW,MAAM,IAAG;KAC1C;KAAY;KAAM,SAAS,WAAW,MAAM,IAAG"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { Fragment, Transition, computed, createBlock, createElementBlock, defineAsyncComponent, defineComponent, h, inject, openBlock, provide, renderList } from "vue";
|
|
2
|
-
|
|
3
|
-
//#region src/components/index.ts
|
|
4
|
-
const heading = defineAsyncComponent(() => import("./Heading-CPB6VryI.js"));
|
|
5
|
-
const DEFAULT_COMPONENTS = {
|
|
6
|
-
p: defineAsyncComponent(() => import("./Paragraph-D8vRiJdV.js")),
|
|
7
|
-
h1: heading,
|
|
8
|
-
h2: heading,
|
|
9
|
-
h3: heading,
|
|
10
|
-
h4: heading,
|
|
11
|
-
h5: heading,
|
|
12
|
-
h6: heading,
|
|
13
|
-
strong: defineAsyncComponent(() => import("./Bold-Bi1du8CJ.js")),
|
|
14
|
-
em: defineAsyncComponent(() => import("./Italic-DmavDuWx.js")),
|
|
15
|
-
del: defineAsyncComponent(() => import("./Strikethrough-BhFf4qRs.js")),
|
|
16
|
-
blockquote: defineAsyncComponent(() => import("./Blockquote-BeOfUsk-.js")),
|
|
17
|
-
ul: defineAsyncComponent(() => import("./UnorderedList-BCqaq94d.js")),
|
|
18
|
-
ol: defineAsyncComponent(() => import("./OrderedList-BiBUuBtQ.js")),
|
|
19
|
-
li: defineAsyncComponent(() => import("./ListItem-tCoCmS98.js")),
|
|
20
|
-
code: defineAsyncComponent(() => import("./Code-DPKXUmPC.js")),
|
|
21
|
-
a: defineAsyncComponent(() => import("./Link-B2nQX8af.js")),
|
|
22
|
-
input: defineAsyncComponent(() => import("./TaskListInput-DiQhjFqy.js")),
|
|
23
|
-
pre: defineAsyncComponent(() => import("./CodeBlock-Duwcxp3X.js")),
|
|
24
|
-
table: defineAsyncComponent(() => import("./Table-DxMMIS1J.js")),
|
|
25
|
-
thead: defineAsyncComponent(() => import("./TableHead-RMl2XF2I.js")),
|
|
26
|
-
tbody: defineAsyncComponent(() => import("./TableBody-DWmHYRny.js")),
|
|
27
|
-
tr: defineAsyncComponent(() => import("./TableRow-CFEKUaRS.js")),
|
|
28
|
-
th: defineAsyncComponent(() => import("./TableHeader-CO5WWCf6.js")),
|
|
29
|
-
td: defineAsyncComponent(() => import("./TableData-CXjn9U8M.js"))
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
//#endregion
|
|
33
|
-
//#region src/composables/markdown.ts
|
|
34
|
-
const MARKDOWN_KEY = "__MARK_SORCERY_";
|
|
35
|
-
const useProvideMarkdown = (userComponents, transition) => {
|
|
36
|
-
const components = computed(() => ({
|
|
37
|
-
...DEFAULT_COMPONENTS,
|
|
38
|
-
...userComponents.value
|
|
39
|
-
}));
|
|
40
|
-
provide(MARKDOWN_KEY, {
|
|
41
|
-
components,
|
|
42
|
-
transition
|
|
43
|
-
});
|
|
44
|
-
return {
|
|
45
|
-
components,
|
|
46
|
-
transition
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
const useMarkdown = () => {
|
|
50
|
-
const context = inject(MARKDOWN_KEY);
|
|
51
|
-
if (!context) throw new Error("useMarkdown must be used within a Markdown component");
|
|
52
|
-
return context;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
//#endregion
|
|
56
|
-
//#region src/components/NodeList.vue
|
|
57
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
58
|
-
inheritAttrs: false,
|
|
59
|
-
__name: "NodeList",
|
|
60
|
-
props: {
|
|
61
|
-
nodeIdx: {},
|
|
62
|
-
deep: { default: 0 },
|
|
63
|
-
nodeKey: {},
|
|
64
|
-
parentNode: {},
|
|
65
|
-
nodes: {},
|
|
66
|
-
components: {},
|
|
67
|
-
transition: { type: [Boolean, Object] }
|
|
68
|
-
},
|
|
69
|
-
setup(__props) {
|
|
70
|
-
const { components, transition } = useMarkdown();
|
|
71
|
-
const getRenderNode = ({ node, idx, nodeKey }) => {
|
|
72
|
-
if (node.type === "text") return node.value;
|
|
73
|
-
else if (node.type === "element") {
|
|
74
|
-
const component = components.value[node.tagName];
|
|
75
|
-
if (!component) return [];
|
|
76
|
-
return h(component, {
|
|
77
|
-
element: node,
|
|
78
|
-
nodeIdx: idx,
|
|
79
|
-
deep: __props.deep + 1,
|
|
80
|
-
nodeKey,
|
|
81
|
-
parentNode: __props.parentNode
|
|
82
|
-
});
|
|
83
|
-
} else return [];
|
|
84
|
-
};
|
|
85
|
-
const nodeRenderer = ({ node, idx, nodeKey }) => {
|
|
86
|
-
const renderNode = getRenderNode({
|
|
87
|
-
node,
|
|
88
|
-
idx,
|
|
89
|
-
nodeKey
|
|
90
|
-
});
|
|
91
|
-
if (transition.value) {
|
|
92
|
-
const transitionProps = { appear: true };
|
|
93
|
-
if (typeof transition.value === "object") Object.assign(transitionProps, transition.value);
|
|
94
|
-
return h(Transition, transitionProps, () => renderNode);
|
|
95
|
-
}
|
|
96
|
-
return renderNode;
|
|
97
|
-
};
|
|
98
|
-
const nodeKeyPrefix = computed(() => !__props.nodeKey ? "" : `${__props.nodeKey}.`);
|
|
99
|
-
function getNodeKey(node, idx) {
|
|
100
|
-
if (node.type === "text") return `${nodeKeyPrefix}${node.type}-${idx}`;
|
|
101
|
-
else if (node.type === "element") return `${nodeKeyPrefix}${node.type}-${node.tagName}-${idx}`;
|
|
102
|
-
else return `${nodeKeyPrefix}${node.type}-${idx}`;
|
|
103
|
-
}
|
|
104
|
-
return (_ctx, _cache) => {
|
|
105
|
-
return openBlock(true), createElementBlock(Fragment, null, renderList(__props.nodes, (node, idx) => {
|
|
106
|
-
return openBlock(), createBlock(nodeRenderer, {
|
|
107
|
-
key: getNodeKey(node, idx),
|
|
108
|
-
node,
|
|
109
|
-
idx,
|
|
110
|
-
nodeKey: getNodeKey(node, idx)
|
|
111
|
-
}, null, 8, [
|
|
112
|
-
"node",
|
|
113
|
-
"idx",
|
|
114
|
-
"nodeKey"
|
|
115
|
-
]);
|
|
116
|
-
}), 128);
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
//#endregion
|
|
122
|
-
export { DEFAULT_COMPONENTS as i, useMarkdown as n, useProvideMarkdown as r, _sfc_main as t };
|
|
123
|
-
//# sourceMappingURL=NodeList-DliNdSdR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NodeList-DliNdSdR.js","names":[],"sources":["../src/components/index.ts","../src/composables/markdown.ts","../src/components/NodeList.vue","../src/components/NodeList.vue"],"sourcesContent":["import { defineAsyncComponent } from \"vue\";\r\n\r\nconst heading = defineAsyncComponent(() => import('./elements/Heading.vue'));\r\n\r\nexport const DEFAULT_COMPONENTS = {\r\n p: defineAsyncComponent(() => import('./elements/Paragraph.vue')),\r\n h1: heading,\r\n h2: heading,\r\n h3: heading,\r\n h4: heading,\r\n h5: heading,\r\n h6: heading,\r\n strong: defineAsyncComponent(() => import('./elements/Bold.vue')),\r\n em: defineAsyncComponent(() => import('./elements/Italic.vue')),\r\n del: defineAsyncComponent(() => import('./elements/Strikethrough.vue')),\r\n blockquote: defineAsyncComponent(() => import('./elements/Blockquote.vue')),\r\n ul: defineAsyncComponent(() => import('./elements/UnorderedList.vue')),\r\n ol: defineAsyncComponent(() => import('./elements/OrderedList.vue')),\r\n li: defineAsyncComponent(() => import('./elements/ListItem.vue')),\r\n code: defineAsyncComponent(() => import('./elements/Code.vue')),\r\n a: defineAsyncComponent(() => import('./elements/Link.vue')),\r\n input: defineAsyncComponent(() => import('./elements/TaskListInput.vue')),\r\n pre: defineAsyncComponent(() => import('./elements/CodeBlock.vue')),\r\n table: defineAsyncComponent(() => import('./elements/Table.vue')),\r\n thead: defineAsyncComponent(() => import('./elements/TableHead.vue')),\r\n tbody: defineAsyncComponent(() => import('./elements/TableBody.vue')),\r\n tr: defineAsyncComponent(() => import('./elements/TableRow.vue')),\r\n th: defineAsyncComponent(() => import('./elements/TableHeader.vue')),\r\n td: defineAsyncComponent(() => import('./elements/TableData.vue')),\r\n}","import { computed, inject, provide, type ComputedRef } from \"vue\";\r\nimport type { MarkdownProps } from \"../types\";\r\nimport { DEFAULT_COMPONENTS } from \"../components\";\r\n\r\nconst MARKDOWN_KEY = \"__MARK_SORCERY_\"\r\n\r\nexport type MarkdownContext = {\r\n components: ComputedRef<NonNullable<MarkdownProps['components']>>\r\n transition: ComputedRef<MarkdownProps['transition']>\r\n}\r\n\r\nconst useProvideMarkdown = (\r\n userComponents: ComputedRef<MarkdownProps['components'] | undefined>,\r\n transition: ComputedRef<MarkdownProps['transition']>\r\n): MarkdownContext => {\r\n const components = computed<NonNullable<MarkdownProps['components']>>(() => ({\r\n ...DEFAULT_COMPONENTS,\r\n ...userComponents.value,\r\n }))\r\n\r\n provide(MARKDOWN_KEY, {\r\n components,\r\n transition,\r\n });\r\n\r\n return {\r\n components,\r\n transition,\r\n }\r\n}\r\n\r\nconst useMarkdown = (): MarkdownContext => {\r\n const context = inject<MarkdownContext>(MARKDOWN_KEY);\r\n\r\n if (!context) {\r\n throw new Error('useMarkdown must be used within a Markdown component');\r\n }\r\n\r\n return context;\r\n}\r\n\r\nexport {\r\n useProvideMarkdown,\r\n useMarkdown,\r\n}","<script setup lang=\"ts\">\r\nimport type { Nodes } from \"hast\";\r\n\r\nimport { computed, h, Transition as VueTransition } from \"vue\";\r\n\r\nimport type { NodeListProps } from \"../types\";\r\n\r\nimport { useMarkdown } from \"../composables/markdown\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { nodes, nodeKey, deep = 0, parentNode } = defineProps<NodeListProps>();\r\n\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst getRenderNode = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n if (node.type === \"text\") {\r\n return node.value;\r\n } else if (node.type === \"element\") {\r\n const component = components.value[node.tagName];\r\n if (!component) {\r\n return [];\r\n }\r\n return h(component, {\r\n element: node,\r\n nodeIdx: idx,\r\n deep: deep + 1,\r\n nodeKey,\r\n parentNode,\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst nodeRenderer = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n const renderNode = getRenderNode({ node, idx, nodeKey });\r\n\r\n if (transition.value) {\r\n const transitionProps = {\r\n appear: true,\r\n };\r\n if (typeof transition.value === \"object\") {\r\n Object.assign(transitionProps, transition.value);\r\n }\r\n return h(VueTransition, transitionProps, () => renderNode);\r\n }\r\n\r\n return renderNode;\r\n};\r\n\r\nconst nodeKeyPrefix = computed(() => (!nodeKey ? \"\" : `${nodeKey}.`));\r\n\r\nfunction getNodeKey(node: Nodes, idx: number) {\r\n if (node.type === \"text\") {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n } else if (node.type === \"element\") {\r\n return `${nodeKeyPrefix}${node.type}-${node.tagName}-${idx}`;\r\n } else {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n }\r\n}\r\n</script>\r\n\r\n<template>\r\n <template v-for=\"(node, idx) in nodes\" :key=\"getNodeKey(node, idx)\">\r\n <nodeRenderer :node=\"node\" :idx=\"idx\" :nodeKey=\"getNodeKey(node, idx)\" />\r\n </template>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { Nodes } from \"hast\";\r\n\r\nimport { computed, h, Transition as VueTransition } from \"vue\";\r\n\r\nimport type { NodeListProps } from \"../types\";\r\n\r\nimport { useMarkdown } from \"../composables/markdown\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { nodes, nodeKey, deep = 0, parentNode } = defineProps<NodeListProps>();\r\n\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst getRenderNode = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n if (node.type === \"text\") {\r\n return node.value;\r\n } else if (node.type === \"element\") {\r\n const component = components.value[node.tagName];\r\n if (!component) {\r\n return [];\r\n }\r\n return h(component, {\r\n element: node,\r\n nodeIdx: idx,\r\n deep: deep + 1,\r\n nodeKey,\r\n parentNode,\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst nodeRenderer = ({ node, idx, nodeKey }: { node: Nodes; idx: number; nodeKey: string }) => {\r\n const renderNode = getRenderNode({ node, idx, nodeKey });\r\n\r\n if (transition.value) {\r\n const transitionProps = {\r\n appear: true,\r\n };\r\n if (typeof transition.value === \"object\") {\r\n Object.assign(transitionProps, transition.value);\r\n }\r\n return h(VueTransition, transitionProps, () => renderNode);\r\n }\r\n\r\n return renderNode;\r\n};\r\n\r\nconst nodeKeyPrefix = computed(() => (!nodeKey ? \"\" : `${nodeKey}.`));\r\n\r\nfunction getNodeKey(node: Nodes, idx: number) {\r\n if (node.type === \"text\") {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n } else if (node.type === \"element\") {\r\n return `${nodeKeyPrefix}${node.type}-${node.tagName}-${idx}`;\r\n } else {\r\n return `${nodeKeyPrefix}${node.type}-${idx}`;\r\n }\r\n}\r\n</script>\r\n\r\n<template>\r\n <template v-for=\"(node, idx) in nodes\" :key=\"getNodeKey(node, idx)\">\r\n <nodeRenderer :node=\"node\" :idx=\"idx\" :nodeKey=\"getNodeKey(node, idx)\" />\r\n </template>\r\n</template>\r\n"],"mappings":";;;AAEA,MAAM,UAAU,2BAA2B,OAAO,yBAA0B;AAE5E,MAAa,qBAAqB;CAC9B,GAAG,2BAA2B,OAAO,2BAA4B;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,QAAQ,2BAA2B,OAAO,sBAAuB;CACjE,IAAI,2BAA2B,OAAO,wBAAyB;CAC/D,KAAK,2BAA2B,OAAO,+BAAgC;CACvE,YAAY,2BAA2B,OAAO,4BAA6B;CAC3E,IAAI,2BAA2B,OAAO,+BAAgC;CACtE,IAAI,2BAA2B,OAAO,6BAA8B;CACpE,IAAI,2BAA2B,OAAO,0BAA2B;CACjE,MAAM,2BAA2B,OAAO,sBAAuB;CAC/D,GAAG,2BAA2B,OAAO,sBAAuB;CAC5D,OAAO,2BAA2B,OAAO,+BAAgC;CACzE,KAAK,2BAA2B,OAAO,2BAA4B;CACnE,OAAO,2BAA2B,OAAO,uBAAwB;CACjE,OAAO,2BAA2B,OAAO,2BAA4B;CACrE,OAAO,2BAA2B,OAAO,2BAA4B;CACrE,IAAI,2BAA2B,OAAO,0BAA2B;CACjE,IAAI,2BAA2B,OAAO,6BAA8B;CACpE,IAAI,2BAA2B,OAAO,2BAA4B;;;;;ACxBtE,MAAM,eAAe;AAOrB,MAAM,sBACF,gBACA,eACkB;CAClB,MAAM,aAAa,gBAA0D;EACzE,GAAG;EACH,GAAG,eAAe;EACrB,EAAE;AAEH,SAAQ,cAAc;EAClB;EACA;EACH,CAAC;AAEF,QAAO;EACH;EACA;EACH;;AAGL,MAAM,oBAAqC;CACvC,MAAM,UAAU,OAAwB,aAAa;AAErD,KAAI,CAAC,QACD,OAAM,IAAI,MAAM,uDAAuD;AAG3E,QAAO;;;;;;;;;;;;;;;;;;ECvBX,MAAM,EAAE,YAAY,eAAe,aAAa;EAEhD,MAAM,iBAAiB,EAAE,MAAM,KAAK,cAA6D;AAC/F,OAAI,KAAK,SAAS,OAChB,QAAO,KAAK;YACH,KAAK,SAAS,WAAW;IAClC,MAAM,YAAY,WAAW,MAAM,KAAK;AACxC,QAAI,CAAC,UACH,QAAO,EAAE;AAEX,WAAO,EAAE,WAAW;KAClB,SAAS;KACT,SAAS;KACT,MAAM,QAAA,OAAO;KACb;KACA,YAAS,QAAA;KACV,CAAC;SAEF,QAAO,EAAE;;EAIb,MAAM,gBAAgB,EAAE,MAAM,KAAK,cAA6D;GAC9F,MAAM,aAAa,cAAc;IAAE;IAAM;IAAK;IAAS,CAAC;AAExD,OAAI,WAAW,OAAO;IACpB,MAAM,kBAAkB,EACtB,QAAQ,MACT;AACD,QAAI,OAAO,WAAW,UAAU,SAC9B,QAAO,OAAO,iBAAiB,WAAW,MAAM;AAElD,WAAO,EAAE,YAAe,uBAAuB,WAAW;;AAG5D,UAAO;;EAGT,MAAM,gBAAgB,eAAgB,CAAC,QAAA,UAAU,KAAK,GAAG,QAAA,QAAQ,GAAI;EAErE,SAAS,WAAW,MAAa,KAAa;AAC5C,OAAI,KAAK,SAAS,OAChB,QAAO,GAAG,gBAAgB,KAAK,KAAK,GAAG;YAC9B,KAAK,SAAS,UACvB,QAAO,GAAG,gBAAgB,KAAK,KAAK,GAAG,KAAK,QAAQ,GAAG;OAEvD,QAAO,GAAG,gBAAgB,KAAK,KAAK,GAAG;;;2BCMzC,mBAEW,UAAA,MAAA,WAFqB,QAAA,QAAd,MAAM,QAAG;wBACzB,YAAyE,cAAA;UAD9B,WAAW,MAAM,IAAG;KAC1C;KAAY;KAAM,SAAS,WAAW,MAAM,IAAG"}
|