@mark-sorcery/vue 0.1.0 → 0.3.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 (88) hide show
  1. package/README.md +141 -7
  2. package/dist/Blockquote-BeOfUsk-.js +41 -0
  3. package/dist/Blockquote-BeOfUsk-.js.map +1 -0
  4. package/dist/Blockquote-RI8XvPhG.cjs +41 -0
  5. package/dist/Blockquote-RI8XvPhG.cjs.map +1 -0
  6. package/dist/Bold-Bi1du8CJ.js +41 -0
  7. package/dist/Bold-Bi1du8CJ.js.map +1 -0
  8. package/dist/Bold-DWA5fzKp.cjs +41 -0
  9. package/dist/Bold-DWA5fzKp.cjs.map +1 -0
  10. package/dist/Code-DPKXUmPC.js +41 -0
  11. package/dist/Code-DPKXUmPC.js.map +1 -0
  12. package/dist/Code-DmkITyUd.cjs +41 -0
  13. package/dist/Code-DmkITyUd.cjs.map +1 -0
  14. package/dist/CodeBlock-CawFy9YT.cjs +45 -0
  15. package/dist/CodeBlock-CawFy9YT.cjs.map +1 -0
  16. package/dist/CodeBlock-Duwcxp3X.js +45 -0
  17. package/dist/CodeBlock-Duwcxp3X.js.map +1 -0
  18. package/dist/Heading-CPB6VryI.js +51 -0
  19. package/dist/Heading-CPB6VryI.js.map +1 -0
  20. package/dist/Heading-CQmmqddk.cjs +51 -0
  21. package/dist/Heading-CQmmqddk.cjs.map +1 -0
  22. package/dist/Italic-DLGLEgQL.cjs +41 -0
  23. package/dist/Italic-DLGLEgQL.cjs.map +1 -0
  24. package/dist/Italic-DmavDuWx.js +41 -0
  25. package/dist/Italic-DmavDuWx.js.map +1 -0
  26. package/dist/Link-9wbnSrks.cjs +41 -0
  27. package/dist/Link-9wbnSrks.cjs.map +1 -0
  28. package/dist/Link-B2nQX8af.js +41 -0
  29. package/dist/Link-B2nQX8af.js.map +1 -0
  30. package/dist/ListItem-L32ueBOJ.cjs +41 -0
  31. package/dist/ListItem-L32ueBOJ.cjs.map +1 -0
  32. package/dist/ListItem-tCoCmS98.js +41 -0
  33. package/dist/ListItem-tCoCmS98.js.map +1 -0
  34. package/dist/NodeList-CXCRf4Sf.cjs +146 -0
  35. package/dist/NodeList-CXCRf4Sf.cjs.map +1 -0
  36. package/dist/NodeList-DliNdSdR.js +123 -0
  37. package/dist/NodeList-DliNdSdR.js.map +1 -0
  38. package/dist/OrderedList-BiBUuBtQ.js +41 -0
  39. package/dist/OrderedList-BiBUuBtQ.js.map +1 -0
  40. package/dist/OrderedList-Otuk3FD-.cjs +41 -0
  41. package/dist/OrderedList-Otuk3FD-.cjs.map +1 -0
  42. package/dist/Paragraph-Cn0qq6eD.cjs +41 -0
  43. package/dist/Paragraph-Cn0qq6eD.cjs.map +1 -0
  44. package/dist/Paragraph-D8vRiJdV.js +41 -0
  45. package/dist/Paragraph-D8vRiJdV.js.map +1 -0
  46. package/dist/Strikethrough-BhFf4qRs.js +41 -0
  47. package/dist/Strikethrough-BhFf4qRs.js.map +1 -0
  48. package/dist/Strikethrough-D6HU-DLr.cjs +41 -0
  49. package/dist/Strikethrough-D6HU-DLr.cjs.map +1 -0
  50. package/dist/Table-Da8GL8er.cjs +41 -0
  51. package/dist/Table-Da8GL8er.cjs.map +1 -0
  52. package/dist/Table-DxMMIS1J.js +41 -0
  53. package/dist/Table-DxMMIS1J.js.map +1 -0
  54. package/dist/TableBody-D6I9wlwE.cjs +41 -0
  55. package/dist/TableBody-D6I9wlwE.cjs.map +1 -0
  56. package/dist/TableBody-DWmHYRny.js +41 -0
  57. package/dist/TableBody-DWmHYRny.js.map +1 -0
  58. package/dist/TableData-8V3hQ4i0.cjs +41 -0
  59. package/dist/TableData-8V3hQ4i0.cjs.map +1 -0
  60. package/dist/TableData-CXjn9U8M.js +41 -0
  61. package/dist/TableData-CXjn9U8M.js.map +1 -0
  62. package/dist/TableHead-DSWO60r-.cjs +41 -0
  63. package/dist/TableHead-DSWO60r-.cjs.map +1 -0
  64. package/dist/TableHead-RMl2XF2I.js +41 -0
  65. package/dist/TableHead-RMl2XF2I.js.map +1 -0
  66. package/dist/TableHeader-CO5WWCf6.js +41 -0
  67. package/dist/TableHeader-CO5WWCf6.js.map +1 -0
  68. package/dist/TableHeader-D4nI4o6p.cjs +41 -0
  69. package/dist/TableHeader-D4nI4o6p.cjs.map +1 -0
  70. package/dist/TableRow-CFEKUaRS.js +41 -0
  71. package/dist/TableRow-CFEKUaRS.js.map +1 -0
  72. package/dist/TableRow-Cso50UW2.cjs +41 -0
  73. package/dist/TableRow-Cso50UW2.cjs.map +1 -0
  74. package/dist/TaskListInput-BlFjVLdG.cjs +33 -0
  75. package/dist/TaskListInput-BlFjVLdG.cjs.map +1 -0
  76. package/dist/TaskListInput-DiQhjFqy.js +33 -0
  77. package/dist/TaskListInput-DiQhjFqy.js.map +1 -0
  78. package/dist/UnorderedList-BCqaq94d.js +41 -0
  79. package/dist/UnorderedList-BCqaq94d.js.map +1 -0
  80. package/dist/UnorderedList-C_w27MXB.cjs +41 -0
  81. package/dist/UnorderedList-C_w27MXB.cjs.map +1 -0
  82. package/dist/index.cjs +57 -65
  83. package/dist/index.cjs.map +1 -1
  84. package/dist/index.d.cts +97 -45
  85. package/dist/index.d.ts +97 -45
  86. package/dist/index.js +51 -67
  87. package/dist/index.js.map +1 -1
  88. package/package.json +5 -3
@@ -0,0 +1,51 @@
1
+ const require_NodeList = require('./NodeList-CXCRf4Sf.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-CQmmqddk.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heading-CQmmqddk.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
+ const require_NodeList = require('./NodeList-CXCRf4Sf.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-DLGLEgQL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Italic-DLGLEgQL.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-DliNdSdR.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-DmavDuWx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Italic-DmavDuWx.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-CXCRf4Sf.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-9wbnSrks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link-9wbnSrks.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
+ import { n as useMarkdown, t as _sfc_main$1 } from "./NodeList-DliNdSdR.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-B2nQX8af.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link-B2nQX8af.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-CXCRf4Sf.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-L32ueBOJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem-L32ueBOJ.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-DliNdSdR.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-tCoCmS98.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem-tCoCmS98.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,146 @@
1
+ let vue = require("vue");
2
+
3
+ //#region src/components/index.ts
4
+ const heading = (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Heading-CQmmqddk.cjs")));
5
+ const DEFAULT_COMPONENTS = {
6
+ p: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Paragraph-Cn0qq6eD.cjs"))),
7
+ h1: heading,
8
+ h2: heading,
9
+ h3: heading,
10
+ h4: heading,
11
+ h5: heading,
12
+ h6: heading,
13
+ strong: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Bold-DWA5fzKp.cjs"))),
14
+ em: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Italic-DLGLEgQL.cjs"))),
15
+ del: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Strikethrough-D6HU-DLr.cjs"))),
16
+ blockquote: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Blockquote-RI8XvPhG.cjs"))),
17
+ ul: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./UnorderedList-C_w27MXB.cjs"))),
18
+ ol: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./OrderedList-Otuk3FD-.cjs"))),
19
+ li: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./ListItem-L32ueBOJ.cjs"))),
20
+ code: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Code-DmkITyUd.cjs"))),
21
+ a: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Link-9wbnSrks.cjs"))),
22
+ input: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./TaskListInput-BlFjVLdG.cjs"))),
23
+ pre: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./CodeBlock-CawFy9YT.cjs"))),
24
+ table: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./Table-Da8GL8er.cjs"))),
25
+ thead: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./TableHead-DSWO60r-.cjs"))),
26
+ tbody: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./TableBody-D6I9wlwE.cjs"))),
27
+ tr: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./TableRow-Cso50UW2.cjs"))),
28
+ th: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./TableHeader-D4nI4o6p.cjs"))),
29
+ td: (0, vue.defineAsyncComponent)(() => Promise.resolve().then(() => require("./TableData-8V3hQ4i0.cjs")))
30
+ };
31
+
32
+ //#endregion
33
+ //#region src/composables/markdown.ts
34
+ const MARKDOWN_KEY = "__MARK_SORCERY_";
35
+ const useProvideMarkdown = (userComponents, transition) => {
36
+ const components = (0, vue.computed)(() => ({
37
+ ...DEFAULT_COMPONENTS,
38
+ ...userComponents.value
39
+ }));
40
+ (0, vue.provide)(MARKDOWN_KEY, {
41
+ components,
42
+ transition
43
+ });
44
+ return {
45
+ components,
46
+ transition
47
+ };
48
+ };
49
+ const useMarkdown = () => {
50
+ const context = (0, vue.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__ */ (0, vue.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 (0, vue.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 (0, vue.h)(vue.Transition, transitionProps, () => renderNode);
95
+ }
96
+ return renderNode;
97
+ };
98
+ const nodeKeyPrefix = (0, vue.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 (0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.nodes, (node, idx) => {
106
+ return (0, vue.openBlock)(), (0, vue.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
+ Object.defineProperty(exports, 'DEFAULT_COMPONENTS', {
123
+ enumerable: true,
124
+ get: function () {
125
+ return DEFAULT_COMPONENTS;
126
+ }
127
+ });
128
+ Object.defineProperty(exports, '_sfc_main', {
129
+ enumerable: true,
130
+ get: function () {
131
+ return _sfc_main;
132
+ }
133
+ });
134
+ Object.defineProperty(exports, 'useMarkdown', {
135
+ enumerable: true,
136
+ get: function () {
137
+ return useMarkdown;
138
+ }
139
+ });
140
+ Object.defineProperty(exports, 'useProvideMarkdown', {
141
+ enumerable: true,
142
+ get: function () {
143
+ return useProvideMarkdown;
144
+ }
145
+ });
146
+ //# sourceMappingURL=NodeList-CXCRf4Sf.cjs.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,123 @@
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