@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.
Files changed (98) hide show
  1. package/dist/{Blockquote-BeOfUsk-.js → Blockquote-CQ00l7_X.js} +2 -2
  2. package/dist/{Blockquote-BeOfUsk-.js.map → Blockquote-CQ00l7_X.js.map} +1 -1
  3. package/dist/{Blockquote-RI8XvPhG.cjs → Blockquote-CsDuM74x.cjs} +2 -2
  4. package/dist/{Blockquote-RI8XvPhG.cjs.map → Blockquote-CsDuM74x.cjs.map} +1 -1
  5. package/dist/{Bold-Bi1du8CJ.js → Bold-BeBMCbKR.js} +2 -2
  6. package/dist/{Bold-Bi1du8CJ.js.map → Bold-BeBMCbKR.js.map} +1 -1
  7. package/dist/{Bold-DWA5fzKp.cjs → Bold-Ci8roG6o.cjs} +2 -2
  8. package/dist/{Bold-DWA5fzKp.cjs.map → Bold-Ci8roG6o.cjs.map} +1 -1
  9. package/dist/{Code-DmkITyUd.cjs → Code-CNHJYkyL.cjs} +2 -2
  10. package/dist/{Code-DmkITyUd.cjs.map → Code-CNHJYkyL.cjs.map} +1 -1
  11. package/dist/{Code-DPKXUmPC.js → Code-wAxxAhcA.js} +2 -2
  12. package/dist/{Code-DPKXUmPC.js.map → Code-wAxxAhcA.js.map} +1 -1
  13. package/dist/{CodeBlock-CawFy9YT.cjs → CodeBlock-6Pr5Z5NL.cjs} +2 -2
  14. package/dist/{CodeBlock-CawFy9YT.cjs.map → CodeBlock-6Pr5Z5NL.cjs.map} +1 -1
  15. package/dist/{CodeBlock-Duwcxp3X.js → CodeBlock-ThF6XH4W.js} +2 -2
  16. package/dist/{CodeBlock-Duwcxp3X.js.map → CodeBlock-ThF6XH4W.js.map} +1 -1
  17. package/dist/Default-BdwUq6V5.js +17 -0
  18. package/dist/Default-BdwUq6V5.js.map +1 -0
  19. package/dist/Default-D303gqxw.cjs +17 -0
  20. package/dist/Default-D303gqxw.cjs.map +1 -0
  21. package/dist/{Heading-CPB6VryI.js → Heading-B9ci-RSS.js} +2 -2
  22. package/dist/{Heading-CPB6VryI.js.map → Heading-B9ci-RSS.js.map} +1 -1
  23. package/dist/{Heading-CQmmqddk.cjs → Heading-XHEaF_uw.cjs} +2 -2
  24. package/dist/{Heading-CQmmqddk.cjs.map → Heading-XHEaF_uw.cjs.map} +1 -1
  25. package/dist/{Italic-DmavDuWx.js → Italic-BtTOTH7U.js} +2 -2
  26. package/dist/{Italic-DmavDuWx.js.map → Italic-BtTOTH7U.js.map} +1 -1
  27. package/dist/{Italic-DLGLEgQL.cjs → Italic-Dm3v-svR.cjs} +2 -2
  28. package/dist/{Italic-DLGLEgQL.cjs.map → Italic-Dm3v-svR.cjs.map} +1 -1
  29. package/dist/{Link-B2nQX8af.js → Link-4GqqHDBl.js} +2 -2
  30. package/dist/{Link-B2nQX8af.js.map → Link-4GqqHDBl.js.map} +1 -1
  31. package/dist/{Link-9wbnSrks.cjs → Link-CCApvA47.cjs} +2 -2
  32. package/dist/{Link-9wbnSrks.cjs.map → Link-CCApvA47.cjs.map} +1 -1
  33. package/dist/{ListItem-L32ueBOJ.cjs → ListItem-C3yxx2gg.cjs} +2 -2
  34. package/dist/{ListItem-L32ueBOJ.cjs.map → ListItem-C3yxx2gg.cjs.map} +1 -1
  35. package/dist/{ListItem-tCoCmS98.js → ListItem-Cprot4T5.js} +2 -2
  36. package/dist/{ListItem-tCoCmS98.js.map → ListItem-Cprot4T5.js.map} +1 -1
  37. package/dist/NodeList-BRtZi6mG.js +136 -0
  38. package/dist/NodeList-BRtZi6mG.js.map +1 -0
  39. package/dist/{NodeList-CXCRf4Sf.cjs → NodeList-BSXOJrlM.cjs} +73 -60
  40. package/dist/NodeList-BSXOJrlM.cjs.map +1 -0
  41. package/dist/{OrderedList-Otuk3FD-.cjs → OrderedList-CV9g8PlL.cjs} +2 -2
  42. package/dist/{OrderedList-Otuk3FD-.cjs.map → OrderedList-CV9g8PlL.cjs.map} +1 -1
  43. package/dist/{OrderedList-BiBUuBtQ.js → OrderedList-XZIbdRZq.js} +2 -2
  44. package/dist/{OrderedList-BiBUuBtQ.js.map → OrderedList-XZIbdRZq.js.map} +1 -1
  45. package/dist/{Paragraph-D8vRiJdV.js → Paragraph-CjkSyimn.js} +2 -2
  46. package/dist/{Paragraph-D8vRiJdV.js.map → Paragraph-CjkSyimn.js.map} +1 -1
  47. package/dist/{Paragraph-Cn0qq6eD.cjs → Paragraph-GnFhfGoR.cjs} +2 -2
  48. package/dist/{Paragraph-Cn0qq6eD.cjs.map → Paragraph-GnFhfGoR.cjs.map} +1 -1
  49. package/dist/{Strikethrough-D6HU-DLr.cjs → Strikethrough-DDhdCH3H.cjs} +2 -2
  50. package/dist/{Strikethrough-D6HU-DLr.cjs.map → Strikethrough-DDhdCH3H.cjs.map} +1 -1
  51. package/dist/{Strikethrough-BhFf4qRs.js → Strikethrough-Y9TM_SwO.js} +2 -2
  52. package/dist/{Strikethrough-BhFf4qRs.js.map → Strikethrough-Y9TM_SwO.js.map} +1 -1
  53. package/dist/{Table-DxMMIS1J.js → Table-Bpu3YpNv.js} +2 -2
  54. package/dist/{Table-DxMMIS1J.js.map → Table-Bpu3YpNv.js.map} +1 -1
  55. package/dist/{Table-Da8GL8er.cjs → Table-D4j0j6E7.cjs} +2 -2
  56. package/dist/{Table-Da8GL8er.cjs.map → Table-D4j0j6E7.cjs.map} +1 -1
  57. package/dist/{TableBody-DWmHYRny.js → TableBody-COwElKNR.js} +2 -2
  58. package/dist/{TableBody-DWmHYRny.js.map → TableBody-COwElKNR.js.map} +1 -1
  59. package/dist/{TableBody-D6I9wlwE.cjs → TableBody-DAzn9CUu.cjs} +2 -2
  60. package/dist/{TableBody-D6I9wlwE.cjs.map → TableBody-DAzn9CUu.cjs.map} +1 -1
  61. package/dist/{TableData-8V3hQ4i0.cjs → TableData-DJJe9Tf6.cjs} +2 -2
  62. package/dist/{TableData-8V3hQ4i0.cjs.map → TableData-DJJe9Tf6.cjs.map} +1 -1
  63. package/dist/{TableData-CXjn9U8M.js → TableData-c1fn4umk.js} +2 -2
  64. package/dist/{TableData-CXjn9U8M.js.map → TableData-c1fn4umk.js.map} +1 -1
  65. package/dist/{TableHead-RMl2XF2I.js → TableHead-DZpaTt5a.js} +2 -2
  66. package/dist/{TableHead-RMl2XF2I.js.map → TableHead-DZpaTt5a.js.map} +1 -1
  67. package/dist/{TableHead-DSWO60r-.cjs → TableHead-rrVYInXV.cjs} +2 -2
  68. package/dist/{TableHead-DSWO60r-.cjs.map → TableHead-rrVYInXV.cjs.map} +1 -1
  69. package/dist/{TableHeader-D4nI4o6p.cjs → TableHeader-Cp4WDJMs.cjs} +2 -2
  70. package/dist/{TableHeader-D4nI4o6p.cjs.map → TableHeader-Cp4WDJMs.cjs.map} +1 -1
  71. package/dist/{TableHeader-CO5WWCf6.js → TableHeader-DKYmn1aU.js} +2 -2
  72. package/dist/{TableHeader-CO5WWCf6.js.map → TableHeader-DKYmn1aU.js.map} +1 -1
  73. package/dist/{TableRow-CFEKUaRS.js → TableRow-CUFzFAvX.js} +2 -2
  74. package/dist/{TableRow-CFEKUaRS.js.map → TableRow-CUFzFAvX.js.map} +1 -1
  75. package/dist/{TableRow-Cso50UW2.cjs → TableRow-YkwTraeY.cjs} +2 -2
  76. package/dist/{TableRow-Cso50UW2.cjs.map → TableRow-YkwTraeY.cjs.map} +1 -1
  77. package/dist/{TaskListInput-DiQhjFqy.js → TaskListInput-BEzV7Vfw.js} +1 -1
  78. package/dist/{TaskListInput-DiQhjFqy.js.map → TaskListInput-BEzV7Vfw.js.map} +1 -1
  79. package/dist/{TaskListInput-BlFjVLdG.cjs → TaskListInput-CJaIxj3X.cjs} +1 -1
  80. package/dist/{TaskListInput-BlFjVLdG.cjs.map → TaskListInput-CJaIxj3X.cjs.map} +1 -1
  81. package/dist/Text-B8_JK9gW.cjs +24 -0
  82. package/dist/Text-B8_JK9gW.cjs.map +1 -0
  83. package/dist/Text-C6WCz2NQ.js +24 -0
  84. package/dist/Text-C6WCz2NQ.js.map +1 -0
  85. package/dist/{UnorderedList-C_w27MXB.cjs → UnorderedList-CZRPCjH-.cjs} +2 -2
  86. package/dist/{UnorderedList-C_w27MXB.cjs.map → UnorderedList-CZRPCjH-.cjs.map} +1 -1
  87. package/dist/{UnorderedList-BCqaq94d.js → UnorderedList-Dz4nkM-t.js} +2 -2
  88. package/dist/{UnorderedList-BCqaq94d.js.map → UnorderedList-Dz4nkM-t.js.map} +1 -1
  89. package/dist/index.cjs +13 -2
  90. package/dist/index.cjs.map +1 -1
  91. package/dist/index.d.cts +5 -0
  92. package/dist/index.d.ts +5 -0
  93. package/dist/index.js +13 -2
  94. package/dist/index.js.map +1 -1
  95. package/package.json +4 -2
  96. package/dist/NodeList-CXCRf4Sf.cjs.map +0 -1
  97. package/dist/NodeList-DliNdSdR.js +0 -123
  98. 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"}