@mark-sorcery/vue 0.2.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 (96) hide show
  1. package/README.md +141 -7
  2. package/dist/Blockquote-CQ00l7_X.js +41 -0
  3. package/dist/Blockquote-CQ00l7_X.js.map +1 -0
  4. package/dist/Blockquote-CsDuM74x.cjs +41 -0
  5. package/dist/Blockquote-CsDuM74x.cjs.map +1 -0
  6. package/dist/Bold-BeBMCbKR.js +41 -0
  7. package/dist/Bold-BeBMCbKR.js.map +1 -0
  8. package/dist/Bold-Ci8roG6o.cjs +41 -0
  9. package/dist/Bold-Ci8roG6o.cjs.map +1 -0
  10. package/dist/Code-CNHJYkyL.cjs +41 -0
  11. package/dist/Code-CNHJYkyL.cjs.map +1 -0
  12. package/dist/Code-wAxxAhcA.js +41 -0
  13. package/dist/Code-wAxxAhcA.js.map +1 -0
  14. package/dist/CodeBlock-6Pr5Z5NL.cjs +45 -0
  15. package/dist/CodeBlock-6Pr5Z5NL.cjs.map +1 -0
  16. package/dist/CodeBlock-ThF6XH4W.js +45 -0
  17. package/dist/CodeBlock-ThF6XH4W.js.map +1 -0
  18. package/dist/Default-BdwUq6V5.js +17 -0
  19. package/dist/Default-BdwUq6V5.js.map +1 -0
  20. package/dist/Default-D303gqxw.cjs +17 -0
  21. package/dist/Default-D303gqxw.cjs.map +1 -0
  22. package/dist/Heading-B9ci-RSS.js +51 -0
  23. package/dist/Heading-B9ci-RSS.js.map +1 -0
  24. package/dist/Heading-XHEaF_uw.cjs +51 -0
  25. package/dist/Heading-XHEaF_uw.cjs.map +1 -0
  26. package/dist/Italic-BtTOTH7U.js +41 -0
  27. package/dist/Italic-BtTOTH7U.js.map +1 -0
  28. package/dist/Italic-Dm3v-svR.cjs +41 -0
  29. package/dist/Italic-Dm3v-svR.cjs.map +1 -0
  30. package/dist/Link-4GqqHDBl.js +41 -0
  31. package/dist/Link-4GqqHDBl.js.map +1 -0
  32. package/dist/Link-CCApvA47.cjs +41 -0
  33. package/dist/Link-CCApvA47.cjs.map +1 -0
  34. package/dist/ListItem-C3yxx2gg.cjs +41 -0
  35. package/dist/ListItem-C3yxx2gg.cjs.map +1 -0
  36. package/dist/ListItem-Cprot4T5.js +41 -0
  37. package/dist/ListItem-Cprot4T5.js.map +1 -0
  38. package/dist/NodeList-BRtZi6mG.js +136 -0
  39. package/dist/NodeList-BRtZi6mG.js.map +1 -0
  40. package/dist/NodeList-BSXOJrlM.cjs +159 -0
  41. package/dist/NodeList-BSXOJrlM.cjs.map +1 -0
  42. package/dist/OrderedList-CV9g8PlL.cjs +41 -0
  43. package/dist/OrderedList-CV9g8PlL.cjs.map +1 -0
  44. package/dist/OrderedList-XZIbdRZq.js +41 -0
  45. package/dist/OrderedList-XZIbdRZq.js.map +1 -0
  46. package/dist/Paragraph-CjkSyimn.js +41 -0
  47. package/dist/Paragraph-CjkSyimn.js.map +1 -0
  48. package/dist/Paragraph-GnFhfGoR.cjs +41 -0
  49. package/dist/Paragraph-GnFhfGoR.cjs.map +1 -0
  50. package/dist/Strikethrough-DDhdCH3H.cjs +41 -0
  51. package/dist/Strikethrough-DDhdCH3H.cjs.map +1 -0
  52. package/dist/Strikethrough-Y9TM_SwO.js +41 -0
  53. package/dist/Strikethrough-Y9TM_SwO.js.map +1 -0
  54. package/dist/Table-Bpu3YpNv.js +41 -0
  55. package/dist/Table-Bpu3YpNv.js.map +1 -0
  56. package/dist/Table-D4j0j6E7.cjs +41 -0
  57. package/dist/Table-D4j0j6E7.cjs.map +1 -0
  58. package/dist/TableBody-COwElKNR.js +41 -0
  59. package/dist/TableBody-COwElKNR.js.map +1 -0
  60. package/dist/TableBody-DAzn9CUu.cjs +41 -0
  61. package/dist/TableBody-DAzn9CUu.cjs.map +1 -0
  62. package/dist/TableData-DJJe9Tf6.cjs +41 -0
  63. package/dist/TableData-DJJe9Tf6.cjs.map +1 -0
  64. package/dist/TableData-c1fn4umk.js +41 -0
  65. package/dist/TableData-c1fn4umk.js.map +1 -0
  66. package/dist/TableHead-DZpaTt5a.js +41 -0
  67. package/dist/TableHead-DZpaTt5a.js.map +1 -0
  68. package/dist/TableHead-rrVYInXV.cjs +41 -0
  69. package/dist/TableHead-rrVYInXV.cjs.map +1 -0
  70. package/dist/TableHeader-Cp4WDJMs.cjs +41 -0
  71. package/dist/TableHeader-Cp4WDJMs.cjs.map +1 -0
  72. package/dist/TableHeader-DKYmn1aU.js +41 -0
  73. package/dist/TableHeader-DKYmn1aU.js.map +1 -0
  74. package/dist/TableRow-CUFzFAvX.js +41 -0
  75. package/dist/TableRow-CUFzFAvX.js.map +1 -0
  76. package/dist/TableRow-YkwTraeY.cjs +41 -0
  77. package/dist/TableRow-YkwTraeY.cjs.map +1 -0
  78. package/dist/TaskListInput-BEzV7Vfw.js +33 -0
  79. package/dist/TaskListInput-BEzV7Vfw.js.map +1 -0
  80. package/dist/TaskListInput-CJaIxj3X.cjs +33 -0
  81. package/dist/TaskListInput-CJaIxj3X.cjs.map +1 -0
  82. package/dist/Text-B8_JK9gW.cjs +24 -0
  83. package/dist/Text-B8_JK9gW.cjs.map +1 -0
  84. package/dist/Text-C6WCz2NQ.js +24 -0
  85. package/dist/Text-C6WCz2NQ.js.map +1 -0
  86. package/dist/UnorderedList-CZRPCjH-.cjs +41 -0
  87. package/dist/UnorderedList-CZRPCjH-.cjs.map +1 -0
  88. package/dist/UnorderedList-Dz4nkM-t.js +41 -0
  89. package/dist/UnorderedList-Dz4nkM-t.js.map +1 -0
  90. package/dist/index.cjs +28 -69
  91. package/dist/index.cjs.map +1 -1
  92. package/dist/index.d.cts +120 -36
  93. package/dist/index.d.ts +120 -36
  94. package/dist/index.js +27 -70
  95. package/dist/index.js.map +1 -1
  96. package/package.json +7 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heading-B9ci-RSS.js","names":[],"sources":["../src/components/elements/Heading.vue","../src/components/elements/Heading.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\n\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst headingLevel = computed(() => {\r\n const level = parseInt(element.tagName.slice(1));\r\n return isNaN(level) ? 1 : level;\r\n});\r\n</script>\r\n\r\n<template>\r\n <component\r\n :is=\"element.tagName\"\r\n data-mark-sorcery=\"heading\"\r\n :data-heading-level=\"headingLevel\"\r\n v-bind=\"element.properties\"\r\n >\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </component>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\n\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst headingLevel = computed(() => {\r\n const level = parseInt(element.tagName.slice(1));\r\n return isNaN(level) ? 1 : level;\r\n});\r\n</script>\r\n\r\n<template>\r\n <component\r\n :is=\"element.tagName\"\r\n data-mark-sorcery=\"heading\"\r\n :data-heading-level=\"headingLevel\"\r\n v-bind=\"element.properties\"\r\n >\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </component>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAaA,MAAM,EAAE,YAAY,eAAe,aAAa;EAEhD,MAAM,eAAe,eAAe;GAClC,MAAM,QAAQ,SAAS,QAAA,QAAQ,QAAQ,MAAM,EAAE,CAAC;AAChD,UAAO,MAAM,MAAM,GAAG,IAAI;IAC1B;;uBCIA,YAeY,wBAdL,QAAA,QAAQ,QAAO,EADtB,WAeY;IAbV,qBAAkB;IACjB,sBAAoB,aAAA;MACb,QAAA,QAAQ,WAAU,EAAA;2BAUxB,CARF,YAQE,aAAA;KAPC,OAAO,QAAA,QAAQ;KACf,SAAS,QAAA;KACT,MAAM,QAAA;KACN,SAAS,QAAA;KACT,YAAY,QAAA;KACZ,YAAY,MAAA,WAAU;KACtB,YAAY,MAAA,WAAU"}
@@ -0,0 +1,51 @@
1
+ const require_NodeList = require('./NodeList-BSXOJrlM.cjs');
2
+ let vue = require("vue");
3
+
4
+ //#region src/components/elements/Heading.vue
5
+ const _sfc_main = /* @__PURE__ */ (0, vue.defineComponent)({
6
+ inheritAttrs: false,
7
+ __name: "Heading",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = require_NodeList.useMarkdown();
17
+ const headingLevel = (0, vue.computed)(() => {
18
+ const level = parseInt(__props.element.tagName.slice(1));
19
+ return isNaN(level) ? 1 : level;
20
+ });
21
+ return (_ctx, _cache) => {
22
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.element.tagName), (0, vue.mergeProps)({
23
+ "data-mark-sorcery": "heading",
24
+ "data-heading-level": headingLevel.value
25
+ }, __props.element.properties), {
26
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)(require_NodeList._sfc_main, {
27
+ nodes: __props.element.children,
28
+ nodeIdx: __props.nodeIdx,
29
+ deep: __props.deep,
30
+ nodeKey: __props.nodeKey,
31
+ parentNode: __props.element,
32
+ components: (0, vue.unref)(components),
33
+ transition: (0, vue.unref)(transition)
34
+ }, null, 8, [
35
+ "nodes",
36
+ "nodeIdx",
37
+ "deep",
38
+ "nodeKey",
39
+ "parentNode",
40
+ "components",
41
+ "transition"
42
+ ])]),
43
+ _: 1
44
+ }, 16, ["data-heading-level"]);
45
+ };
46
+ }
47
+ });
48
+
49
+ //#endregion
50
+ exports.default = _sfc_main;
51
+ //# sourceMappingURL=Heading-XHEaF_uw.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heading-XHEaF_uw.cjs","names":[],"sources":["../src/components/elements/Heading.vue","../src/components/elements/Heading.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\n\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst headingLevel = computed(() => {\r\n const level = parseInt(element.tagName.slice(1));\r\n return isNaN(level) ? 1 : level;\r\n});\r\n</script>\r\n\r\n<template>\r\n <component\r\n :is=\"element.tagName\"\r\n data-mark-sorcery=\"heading\"\r\n :data-heading-level=\"headingLevel\"\r\n v-bind=\"element.properties\"\r\n >\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </component>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\n\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n\r\nconst headingLevel = computed(() => {\r\n const level = parseInt(element.tagName.slice(1));\r\n return isNaN(level) ? 1 : level;\r\n});\r\n</script>\r\n\r\n<template>\r\n <component\r\n :is=\"element.tagName\"\r\n data-mark-sorcery=\"heading\"\r\n :data-heading-level=\"headingLevel\"\r\n v-bind=\"element.properties\"\r\n >\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </component>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAaA,MAAM,EAAE,YAAY,eAAe,8BAAa;EAEhD,MAAM,uCAA8B;GAClC,MAAM,QAAQ,SAAS,QAAA,QAAQ,QAAQ,MAAM,EAAE,CAAC;AAChD,UAAO,MAAM,MAAM,GAAG,IAAI;IAC1B;;sFCKO,QAAA,QAAQ,QAAO,sBAcV;IAbV,qBAAkB;IACjB,sBAAoB,aAAA;MACb,QAAA,QAAQ,WAAU,EAAA;oCAUxB,sBAAA,4BAAA;KAPC,OAAO,QAAA,QAAQ;KACf,SAAS,QAAA;KACT,MAAM,QAAA;KACN,SAAS,QAAA;KACT,YAAY,QAAA;KACZ,2BAAY,WAAU;KACtB,2BAAY,WAAU"}
@@ -0,0 +1,41 @@
1
+ import { n as useMarkdown, t as _sfc_main$1 } from "./NodeList-BRtZi6mG.js";
2
+ import { createElementBlock, createVNode, defineComponent, mergeProps, openBlock, unref } from "vue";
3
+
4
+ //#region src/components/elements/Italic.vue
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ inheritAttrs: false,
7
+ __name: "Italic",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = useMarkdown();
17
+ return (_ctx, _cache) => {
18
+ return openBlock(), createElementBlock("em", mergeProps({ "data-mark-sorcery": "italic" }, __props.element.properties), [createVNode(_sfc_main$1, {
19
+ nodes: __props.element.children,
20
+ nodeIdx: __props.nodeIdx,
21
+ deep: __props.deep,
22
+ nodeKey: __props.nodeKey,
23
+ parentNode: __props.element,
24
+ components: unref(components),
25
+ transition: unref(transition)
26
+ }, null, 8, [
27
+ "nodes",
28
+ "nodeIdx",
29
+ "deep",
30
+ "nodeKey",
31
+ "parentNode",
32
+ "components",
33
+ "transition"
34
+ ])], 16);
35
+ };
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ export { _sfc_main as default };
41
+ //# sourceMappingURL=Italic-BtTOTH7U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Italic-BtTOTH7U.js","names":[],"sources":["../src/components/elements/Italic.vue","../src/components/elements/Italic.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <em data-mark-sorcery=\"italic\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </em>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <em data-mark-sorcery=\"italic\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </em>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,YAAY,eAAe,aAAa;;uBCI9C,mBAUK,MAVL,WAUK,EAVD,qBAAkB,UAAQ,EAAS,QAAA,QAAQ,WAAU,EAAA,CACvD,YAQE,aAAA;IAPC,OAAO,QAAA,QAAQ;IACf,SAAS,QAAA;IACT,MAAM,QAAA;IACN,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,YAAY,MAAA,WAAU;IACtB,YAAY,MAAA,WAAU"}
@@ -0,0 +1,41 @@
1
+ const require_NodeList = require('./NodeList-BSXOJrlM.cjs');
2
+ let vue = require("vue");
3
+
4
+ //#region src/components/elements/Italic.vue
5
+ const _sfc_main = /* @__PURE__ */ (0, vue.defineComponent)({
6
+ inheritAttrs: false,
7
+ __name: "Italic",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = require_NodeList.useMarkdown();
17
+ return (_ctx, _cache) => {
18
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("em", (0, vue.mergeProps)({ "data-mark-sorcery": "italic" }, __props.element.properties), [(0, vue.createVNode)(require_NodeList._sfc_main, {
19
+ nodes: __props.element.children,
20
+ nodeIdx: __props.nodeIdx,
21
+ deep: __props.deep,
22
+ nodeKey: __props.nodeKey,
23
+ parentNode: __props.element,
24
+ components: (0, vue.unref)(components),
25
+ transition: (0, vue.unref)(transition)
26
+ }, null, 8, [
27
+ "nodes",
28
+ "nodeIdx",
29
+ "deep",
30
+ "nodeKey",
31
+ "parentNode",
32
+ "components",
33
+ "transition"
34
+ ])], 16);
35
+ };
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ exports.default = _sfc_main;
41
+ //# sourceMappingURL=Italic-Dm3v-svR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Italic-Dm3v-svR.cjs","names":[],"sources":["../src/components/elements/Italic.vue","../src/components/elements/Italic.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <em data-mark-sorcery=\"italic\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </em>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <em data-mark-sorcery=\"italic\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </em>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,YAAY,eAAe,8BAAa;;4DCczC,0BAAA,EAVD,qBAAkB,UAAQ,EAAS,QAAA,QAAQ,WAAU,EAAA,sBASrD,4BAAA;IAPC,OAAO,QAAA,QAAQ;IACf,SAAS,QAAA;IACT,MAAM,QAAA;IACN,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,2BAAY,WAAU;IACtB,2BAAY,WAAU"}
@@ -0,0 +1,41 @@
1
+ import { n as useMarkdown, t as _sfc_main$1 } from "./NodeList-BRtZi6mG.js";
2
+ import { createElementBlock, createVNode, defineComponent, mergeProps, openBlock, unref } from "vue";
3
+
4
+ //#region src/components/elements/Link.vue
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ inheritAttrs: false,
7
+ __name: "Link",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = useMarkdown();
17
+ return (_ctx, _cache) => {
18
+ return openBlock(), createElementBlock("a", mergeProps({ "data-mark-sorcery": "link" }, __props.element.properties), [createVNode(_sfc_main$1, {
19
+ nodes: __props.element.children,
20
+ nodeIdx: __props.nodeIdx,
21
+ deep: __props.deep,
22
+ nodeKey: __props.nodeKey,
23
+ parentNode: __props.element,
24
+ components: unref(components),
25
+ transition: unref(transition)
26
+ }, null, 8, [
27
+ "nodes",
28
+ "nodeIdx",
29
+ "deep",
30
+ "nodeKey",
31
+ "parentNode",
32
+ "components",
33
+ "transition"
34
+ ])], 16);
35
+ };
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ export { _sfc_main as default };
41
+ //# sourceMappingURL=Link-4GqqHDBl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link-4GqqHDBl.js","names":[],"sources":["../src/components/elements/Link.vue","../src/components/elements/Link.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <a data-mark-sorcery=\"link\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </a>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <a data-mark-sorcery=\"link\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </a>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,YAAY,eAAe,aAAa;;uBCI9C,mBAUI,KAVJ,WAUI,EAVD,qBAAkB,QAAM,EAAS,QAAA,QAAQ,WAAU,EAAA,CACpD,YAQE,aAAA;IAPC,OAAO,QAAA,QAAQ;IACf,SAAS,QAAA;IACT,MAAM,QAAA;IACN,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,YAAY,MAAA,WAAU;IACtB,YAAY,MAAA,WAAU"}
@@ -0,0 +1,41 @@
1
+ const require_NodeList = require('./NodeList-BSXOJrlM.cjs');
2
+ let vue = require("vue");
3
+
4
+ //#region src/components/elements/Link.vue
5
+ const _sfc_main = /* @__PURE__ */ (0, vue.defineComponent)({
6
+ inheritAttrs: false,
7
+ __name: "Link",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = require_NodeList.useMarkdown();
17
+ return (_ctx, _cache) => {
18
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("a", (0, vue.mergeProps)({ "data-mark-sorcery": "link" }, __props.element.properties), [(0, vue.createVNode)(require_NodeList._sfc_main, {
19
+ nodes: __props.element.children,
20
+ nodeIdx: __props.nodeIdx,
21
+ deep: __props.deep,
22
+ nodeKey: __props.nodeKey,
23
+ parentNode: __props.element,
24
+ components: (0, vue.unref)(components),
25
+ transition: (0, vue.unref)(transition)
26
+ }, null, 8, [
27
+ "nodes",
28
+ "nodeIdx",
29
+ "deep",
30
+ "nodeKey",
31
+ "parentNode",
32
+ "components",
33
+ "transition"
34
+ ])], 16);
35
+ };
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ exports.default = _sfc_main;
41
+ //# sourceMappingURL=Link-CCApvA47.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link-CCApvA47.cjs","names":[],"sources":["../src/components/elements/Link.vue","../src/components/elements/Link.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <a data-mark-sorcery=\"link\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </a>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <a data-mark-sorcery=\"link\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </a>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,YAAY,eAAe,8BAAa;;4DCc1C,yBAAA,EAVD,qBAAkB,QAAM,EAAS,QAAA,QAAQ,WAAU,EAAA,sBASlD,4BAAA;IAPC,OAAO,QAAA,QAAQ;IACf,SAAS,QAAA;IACT,MAAM,QAAA;IACN,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,2BAAY,WAAU;IACtB,2BAAY,WAAU"}
@@ -0,0 +1,41 @@
1
+ const require_NodeList = require('./NodeList-BSXOJrlM.cjs');
2
+ let vue = require("vue");
3
+
4
+ //#region src/components/elements/ListItem.vue
5
+ const _sfc_main = /* @__PURE__ */ (0, vue.defineComponent)({
6
+ inheritAttrs: false,
7
+ __name: "ListItem",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = require_NodeList.useMarkdown();
17
+ return (_ctx, _cache) => {
18
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", (0, vue.mergeProps)({ "data-mark": "list-item" }, __props.element.properties), [(0, vue.createVNode)(require_NodeList._sfc_main, {
19
+ nodes: __props.element.children,
20
+ nodeIdx: __props.nodeIdx,
21
+ deep: __props.deep,
22
+ nodeKey: __props.nodeKey,
23
+ parentNode: __props.element,
24
+ components: (0, vue.unref)(components),
25
+ transition: (0, vue.unref)(transition)
26
+ }, null, 8, [
27
+ "nodes",
28
+ "nodeIdx",
29
+ "deep",
30
+ "nodeKey",
31
+ "parentNode",
32
+ "components",
33
+ "transition"
34
+ ])], 16);
35
+ };
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ exports.default = _sfc_main;
41
+ //# sourceMappingURL=ListItem-C3yxx2gg.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem-C3yxx2gg.cjs","names":[],"sources":["../src/components/elements/ListItem.vue","../src/components/elements/ListItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <li data-mark=\"list-item\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </li>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <li data-mark=\"list-item\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </li>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,YAAY,eAAe,8BAAa;;4DCczC,0BAAA,EAVD,aAAU,aAAW,EAAS,QAAA,QAAQ,WAAU,EAAA,sBAShD,4BAAA;IAPC,OAAO,QAAA,QAAQ;IACf,SAAS,QAAA;IACT,MAAM,QAAA;IACN,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,2BAAY,WAAU;IACtB,2BAAY,WAAU"}
@@ -0,0 +1,41 @@
1
+ import { n as useMarkdown, t as _sfc_main$1 } from "./NodeList-BRtZi6mG.js";
2
+ import { createElementBlock, createVNode, defineComponent, mergeProps, openBlock, unref } from "vue";
3
+
4
+ //#region src/components/elements/ListItem.vue
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ inheritAttrs: false,
7
+ __name: "ListItem",
8
+ props: {
9
+ nodeIdx: {},
10
+ deep: {},
11
+ nodeKey: {},
12
+ parentNode: {},
13
+ element: {}
14
+ },
15
+ setup(__props) {
16
+ const { components, transition } = useMarkdown();
17
+ return (_ctx, _cache) => {
18
+ return openBlock(), createElementBlock("li", mergeProps({ "data-mark": "list-item" }, __props.element.properties), [createVNode(_sfc_main$1, {
19
+ nodes: __props.element.children,
20
+ nodeIdx: __props.nodeIdx,
21
+ deep: __props.deep,
22
+ nodeKey: __props.nodeKey,
23
+ parentNode: __props.element,
24
+ components: unref(components),
25
+ transition: unref(transition)
26
+ }, null, 8, [
27
+ "nodes",
28
+ "nodeIdx",
29
+ "deep",
30
+ "nodeKey",
31
+ "parentNode",
32
+ "components",
33
+ "transition"
34
+ ])], 16);
35
+ };
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ export { _sfc_main as default };
41
+ //# sourceMappingURL=ListItem-Cprot4T5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem-Cprot4T5.js","names":[],"sources":["../src/components/elements/ListItem.vue","../src/components/elements/ListItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <li data-mark=\"list-item\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </li>\r\n</template>\r\n","<script setup lang=\"ts\">\r\nimport type { ElementProps } from \"../../types\";\r\n\r\nimport { useMarkdown } from \"../../composables/markdown\";\r\nimport NodeList from \"../NodeList.vue\";\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n});\r\n\r\nconst { element, nodeIdx, deep, nodeKey } = defineProps<ElementProps>();\r\nconst { components, transition } = useMarkdown();\r\n</script>\r\n\r\n<template>\r\n <li data-mark=\"list-item\" v-bind=\"element.properties\">\r\n <NodeList\r\n :nodes=\"element.children\"\r\n :nodeIdx=\"nodeIdx\"\r\n :deep=\"deep\"\r\n :nodeKey=\"nodeKey\"\r\n :parentNode=\"element\"\r\n :components=\"components\"\r\n :transition=\"transition\"\r\n />\r\n </li>\r\n</template>\r\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,YAAY,eAAe,aAAa;;uBCI9C,mBAUK,MAVL,WAUK,EAVD,aAAU,aAAW,EAAS,QAAA,QAAQ,WAAU,EAAA,CAClD,YAQE,aAAA;IAPC,OAAO,QAAA,QAAQ;IACf,SAAS,QAAA;IACT,MAAM,QAAA;IACN,SAAS,QAAA;IACT,YAAY,QAAA;IACZ,YAAY,MAAA,WAAU;IACtB,YAAY,MAAA,WAAU"}
@@ -0,0 +1,136 @@
1
+ import { Fragment, Transition, computed, createBlock, createElementBlock, defineAsyncComponent, defineComponent, h, inject, mergeProps, openBlock, provide, renderList, resolveDynamicComponent, withCtx } from "vue";
2
+
3
+ //#region src/components/index.ts
4
+ const heading = defineAsyncComponent(() => import("./Heading-B9ci-RSS.js"));
5
+ const DEFAULT_COMPONENTS = {
6
+ p: defineAsyncComponent(() => import("./Paragraph-CjkSyimn.js")),
7
+ h1: heading,
8
+ h2: heading,
9
+ h3: heading,
10
+ h4: heading,
11
+ h5: heading,
12
+ h6: heading,
13
+ strong: defineAsyncComponent(() => import("./Bold-BeBMCbKR.js")),
14
+ em: defineAsyncComponent(() => import("./Italic-BtTOTH7U.js")),
15
+ del: defineAsyncComponent(() => import("./Strikethrough-Y9TM_SwO.js")),
16
+ blockquote: defineAsyncComponent(() => import("./Blockquote-CQ00l7_X.js")),
17
+ ul: defineAsyncComponent(() => import("./UnorderedList-Dz4nkM-t.js")),
18
+ ol: defineAsyncComponent(() => import("./OrderedList-XZIbdRZq.js")),
19
+ li: defineAsyncComponent(() => import("./ListItem-Cprot4T5.js")),
20
+ code: defineAsyncComponent(() => import("./Code-wAxxAhcA.js")),
21
+ a: defineAsyncComponent(() => import("./Link-4GqqHDBl.js")),
22
+ input: defineAsyncComponent(() => import("./TaskListInput-BEzV7Vfw.js")),
23
+ pre: defineAsyncComponent(() => import("./CodeBlock-ThF6XH4W.js")),
24
+ table: defineAsyncComponent(() => import("./Table-Bpu3YpNv.js")),
25
+ thead: defineAsyncComponent(() => import("./TableHead-DZpaTt5a.js")),
26
+ tbody: defineAsyncComponent(() => import("./TableBody-COwElKNR.js")),
27
+ tr: defineAsyncComponent(() => import("./TableRow-CUFzFAvX.js")),
28
+ th: defineAsyncComponent(() => import("./TableHeader-DKYmn1aU.js")),
29
+ td: defineAsyncComponent(() => import("./TableData-c1fn4umk.js")),
30
+ text: defineAsyncComponent(() => import("./Text-C6WCz2NQ.js")),
31
+ default: defineAsyncComponent(() => import("./Default-BdwUq6V5.js"))
32
+ };
33
+
34
+ //#endregion
35
+ //#region src/composables/markdown.ts
36
+ const MARKDOWN_KEY = "__MARK_SORCERY_";
37
+ const useProvideMarkdown = (userComponents, transition) => {
38
+ const components = computed(() => ({
39
+ ...DEFAULT_COMPONENTS,
40
+ ...userComponents.value
41
+ }));
42
+ provide(MARKDOWN_KEY, {
43
+ components,
44
+ transition
45
+ });
46
+ return {
47
+ components,
48
+ transition
49
+ };
50
+ };
51
+ const useMarkdown = () => {
52
+ const context = inject(MARKDOWN_KEY);
53
+ if (!context) throw new Error("useMarkdown must be used within a Markdown component");
54
+ return context;
55
+ };
56
+
57
+ //#endregion
58
+ //#region src/components/NodeList.vue
59
+ const _sfc_main = /* @__PURE__ */ defineComponent({
60
+ inheritAttrs: false,
61
+ __name: "NodeList",
62
+ props: {
63
+ nodeIdx: {},
64
+ deep: { default: 0 },
65
+ nodeKey: {},
66
+ parentNode: {},
67
+ nodes: {},
68
+ components: {},
69
+ transition: { type: [Boolean, Object] }
70
+ },
71
+ setup(__props) {
72
+ const { components, transition } = useMarkdown();
73
+ const nodeKeyPrefix = computed(() => !__props.nodeKey ? "" : `${__props.nodeKey}.`);
74
+ const transitionConfig = computed(() => {
75
+ if (transition.value === true) return {};
76
+ if (typeof transition.value === "object") return transition.value;
77
+ return false;
78
+ });
79
+ function getNodeKey(node, idx) {
80
+ if (node.type === "text") return `${nodeKeyPrefix.value}${node.type}-${idx}`;
81
+ else if (node.type === "element") return `${nodeKeyPrefix.value}${node.type}-${node.tagName}-${idx}`;
82
+ else return `${nodeKeyPrefix.value}${node.type}-${idx}`;
83
+ }
84
+ function getNodeComponent(node) {
85
+ if (node.type === "text") return components.value["text"];
86
+ else if (node.type === "element") return components.value[node.tagName];
87
+ else return components.value["default"];
88
+ }
89
+ const items = computed(() => __props.nodes.map((node, idx) => ({
90
+ node,
91
+ idx,
92
+ key: getNodeKey(node, idx),
93
+ component: getNodeComponent(node)
94
+ })));
95
+ return (_ctx, _cache) => {
96
+ return openBlock(true), createElementBlock(Fragment, null, renderList(items.value, (item) => {
97
+ return openBlock(), createElementBlock(Fragment, { key: item.key }, [transitionConfig.value ? (openBlock(), createBlock(Transition, mergeProps({
98
+ key: 0,
99
+ appear: ""
100
+ }, { ref_for: true }, transitionConfig.value), {
101
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(item.component), {
102
+ element: item.node,
103
+ "node-idx": item.idx,
104
+ deep: __props.deep + 1,
105
+ "node-key": item.key,
106
+ "parent-node": __props.parentNode
107
+ }, null, 8, [
108
+ "element",
109
+ "node-idx",
110
+ "deep",
111
+ "node-key",
112
+ "parent-node"
113
+ ]))]),
114
+ _: 2
115
+ }, 1040)) : (openBlock(), createBlock(resolveDynamicComponent(item.component), {
116
+ key: 1,
117
+ element: item.node,
118
+ "node-idx": item.idx,
119
+ deep: __props.deep + 1,
120
+ "node-key": item.key,
121
+ "parent-node": __props.parentNode
122
+ }, null, 8, [
123
+ "element",
124
+ "node-idx",
125
+ "deep",
126
+ "node-key",
127
+ "parent-node"
128
+ ]))], 64);
129
+ }), 128);
130
+ };
131
+ }
132
+ });
133
+
134
+ //#endregion
135
+ export { DEFAULT_COMPONENTS as i, useMarkdown as n, useProvideMarkdown as r, _sfc_main as t };
136
+ //# sourceMappingURL=NodeList-BRtZi6mG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeList-BRtZi6mG.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 text: defineAsyncComponent(() => import('./elements/Text.vue')),\r\n default: defineAsyncComponent(() => import('./elements/Default.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\nconst transitionConfig = computed(() => {\r\n if (transition.value === true) {\r\n return {};\r\n }\r\n if (typeof transition.value === \"object\") {\r\n return transition.value;\r\n }\r\n return false;\r\n});\r\n\r\nfunction getNodeKey(node: Nodes, idx: number) {\r\n if (node.type === \"text\") {\r\n return `${nodeKeyPrefix.value}${node.type}-${idx}`;\r\n } else if (node.type === \"element\") {\r\n return `${nodeKeyPrefix.value}${node.type}-${node.tagName}-${idx}`;\r\n } else {\r\n return `${nodeKeyPrefix.value}${node.type}-${idx}`;\r\n }\r\n}\r\n\r\nfunction getNodeComponent(node: Nodes) {\r\n if (node.type === \"text\") {\r\n return components.value[\"text\"];\r\n } else if (node.type === \"element\") {\r\n return components.value[node.tagName];\r\n } else {\r\n return components.value[\"default\"];\r\n }\r\n}\r\n\r\nconst items = computed(() =>\r\n nodes.map((node, idx) => ({\r\n node,\r\n idx,\r\n key: getNodeKey(node, idx),\r\n component: getNodeComponent(node),\r\n })),\r\n);\r\n</script>\r\n\r\n<template>\r\n <template v-for=\"item in items\" :key=\"item.key\">\r\n <VueTransition v-if=\"transitionConfig\" appear v-bind=\"transitionConfig\">\r\n <component\r\n :is=\"item.component\"\r\n :element=\"item.node\"\r\n :node-idx=\"item.idx\"\r\n :deep=\"deep + 1\"\r\n :node-key=\"item.key\"\r\n :parent-node=\"parentNode\"\r\n />\r\n </VueTransition>\r\n <component\r\n v-else\r\n :is=\"item.component\"\r\n :element=\"item.node\"\r\n :node-idx=\"item.idx\"\r\n :deep=\"deep + 1\"\r\n :node-key=\"item.key\"\r\n :parent-node=\"parentNode\"\r\n />\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\nconst transitionConfig = computed(() => {\r\n if (transition.value === true) {\r\n return {};\r\n }\r\n if (typeof transition.value === \"object\") {\r\n return transition.value;\r\n }\r\n return false;\r\n});\r\n\r\nfunction getNodeKey(node: Nodes, idx: number) {\r\n if (node.type === \"text\") {\r\n return `${nodeKeyPrefix.value}${node.type}-${idx}`;\r\n } else if (node.type === \"element\") {\r\n return `${nodeKeyPrefix.value}${node.type}-${node.tagName}-${idx}`;\r\n } else {\r\n return `${nodeKeyPrefix.value}${node.type}-${idx}`;\r\n }\r\n}\r\n\r\nfunction getNodeComponent(node: Nodes) {\r\n if (node.type === \"text\") {\r\n return components.value[\"text\"];\r\n } else if (node.type === \"element\") {\r\n return components.value[node.tagName];\r\n } else {\r\n return components.value[\"default\"];\r\n }\r\n}\r\n\r\nconst items = computed(() =>\r\n nodes.map((node, idx) => ({\r\n node,\r\n idx,\r\n key: getNodeKey(node, idx),\r\n component: getNodeComponent(node),\r\n })),\r\n);\r\n</script>\r\n\r\n<template>\r\n <template v-for=\"item in items\" :key=\"item.key\">\r\n <VueTransition v-if=\"transitionConfig\" appear v-bind=\"transitionConfig\">\r\n <component\r\n :is=\"item.component\"\r\n :element=\"item.node\"\r\n :node-idx=\"item.idx\"\r\n :deep=\"deep + 1\"\r\n :node-key=\"item.key\"\r\n :parent-node=\"parentNode\"\r\n />\r\n </VueTransition>\r\n <component\r\n v-else\r\n :is=\"item.component\"\r\n :element=\"item.node\"\r\n :node-idx=\"item.idx\"\r\n :deep=\"deep + 1\"\r\n :node-key=\"item.key\"\r\n :parent-node=\"parentNode\"\r\n />\r\n </template>\r\n</template>\r\n"],"mappings":"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"}