@valkyrianlabs/payload-markdown 1.3.1

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 (204) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/dist/blocks/MarkdownBlock/Component.d.ts +2 -0
  4. package/dist/blocks/MarkdownBlock/Component.js +13 -0
  5. package/dist/blocks/MarkdownBlock/Component.js.map +1 -0
  6. package/dist/blocks/MarkdownBlock/config.d.ts +2 -0
  7. package/dist/blocks/MarkdownBlock/config.js +20 -0
  8. package/dist/blocks/MarkdownBlock/config.js.map +1 -0
  9. package/dist/blocks/MarkdownBlock/types.d.js +3 -0
  10. package/dist/blocks/MarkdownBlock/types.d.js.map +1 -0
  11. package/dist/components/MarkdownRenderer/Component.client.d.ts +5 -0
  12. package/dist/components/MarkdownRenderer/Component.client.js +163 -0
  13. package/dist/components/MarkdownRenderer/Component.client.js.map +1 -0
  14. package/dist/components/MarkdownRenderer/Component.d.ts +3 -0
  15. package/dist/components/MarkdownRenderer/Component.js +87 -0
  16. package/dist/components/MarkdownRenderer/Component.js.map +1 -0
  17. package/dist/components/MarkdownRenderer/index.css +69 -0
  18. package/dist/components/MarkdownRenderer/index.module.css +45 -0
  19. package/dist/components/MarkdownRenderer/index.module.scss +43 -0
  20. package/dist/components/MarkdownRenderer/index.scss +83 -0
  21. package/dist/components/MarkdownRenderer/types.d.js +5 -0
  22. package/dist/components/MarkdownRenderer/types.d.js.map +1 -0
  23. package/dist/core/codeConfig.d.ts +6 -0
  24. package/dist/core/codeConfig.js +45 -0
  25. package/dist/core/codeConfig.js.map +1 -0
  26. package/dist/core/codeToHtml.d.ts +5 -0
  27. package/dist/core/codeToHtml.js +180 -0
  28. package/dist/core/codeToHtml.js.map +1 -0
  29. package/dist/core/plugins/rehypeApplyLayoutClasses.d.ts +4 -0
  30. package/dist/core/plugins/rehypeApplyLayoutClasses.js +72 -0
  31. package/dist/core/plugins/rehypeApplyLayoutClasses.js.map +1 -0
  32. package/dist/core/plugins/rehypeStripAuthoredInlineStyles.d.ts +3 -0
  33. package/dist/core/plugins/rehypeStripAuthoredInlineStyles.js +17 -0
  34. package/dist/core/plugins/rehypeStripAuthoredInlineStyles.js.map +1 -0
  35. package/dist/core/plugins/remarkCompileLayouts.d.ts +3 -0
  36. package/dist/core/plugins/remarkCompileLayouts.js +169 -0
  37. package/dist/core/plugins/remarkCompileLayouts.js.map +1 -0
  38. package/dist/core/plugins/remarkHeadingAnchorsAndToc.d.ts +3 -0
  39. package/dist/core/plugins/remarkHeadingAnchorsAndToc.js +68 -0
  40. package/dist/core/plugins/remarkHeadingAnchorsAndToc.js.map +1 -0
  41. package/dist/core/plugins/remarkLayoutDirectives.d.ts +3 -0
  42. package/dist/core/plugins/remarkLayoutDirectives.js +26 -0
  43. package/dist/core/plugins/remarkLayoutDirectives.js.map +1 -0
  44. package/dist/core/plugins/remarkLayoutSentinels.d.ts +3 -0
  45. package/dist/core/plugins/remarkLayoutSentinels.js +184 -0
  46. package/dist/core/plugins/remarkLayoutSentinels.js.map +1 -0
  47. package/dist/core/plugins/remarkLiftLayoutDirectives.d.ts +3 -0
  48. package/dist/core/plugins/remarkLiftLayoutDirectives.js +93 -0
  49. package/dist/core/plugins/remarkLiftLayoutDirectives.js.map +1 -0
  50. package/dist/core/plugins/remarkNormalizeLayoutSyntax.d.ts +3 -0
  51. package/dist/core/plugins/remarkValidateDirectiveThemes.d.ts +4 -0
  52. package/dist/core/plugins/remarkValidateDirectiveThemes.js +28 -0
  53. package/dist/core/plugins/remarkValidateDirectiveThemes.js.map +1 -0
  54. package/dist/core/renderMarkdown.d.ts +2 -0
  55. package/dist/core/renderMarkdown.js +270 -0
  56. package/dist/core/renderMarkdown.js.map +1 -0
  57. package/dist/core/types.d.js +7 -0
  58. package/dist/core/types.d.js.map +1 -0
  59. package/dist/core/types.d.ts +238 -0
  60. package/dist/core/types.js +5 -0
  61. package/dist/core/types.js.map +1 -0
  62. package/dist/directives/attributes.d.ts +14 -0
  63. package/dist/directives/attributes.js +121 -0
  64. package/dist/directives/attributes.js.map +1 -0
  65. package/dist/directives/definitions/callout.d.ts +6 -0
  66. package/dist/directives/definitions/callout.js +107 -0
  67. package/dist/directives/definitions/callout.js.map +1 -0
  68. package/dist/directives/definitions/card.d.ts +4 -0
  69. package/dist/directives/definitions/card.js +120 -0
  70. package/dist/directives/definitions/card.js.map +1 -0
  71. package/dist/directives/definitions/cards.d.ts +7 -0
  72. package/dist/directives/definitions/cards.js +72 -0
  73. package/dist/directives/definitions/cards.js.map +1 -0
  74. package/dist/directives/definitions/cell.d.ts +4 -0
  75. package/dist/directives/definitions/cell.js +44 -0
  76. package/dist/directives/definitions/cell.js.map +1 -0
  77. package/dist/directives/definitions/columns.d.ts +4 -0
  78. package/dist/directives/definitions/columns.js +89 -0
  79. package/dist/directives/definitions/columns.js.map +1 -0
  80. package/dist/directives/definitions/details.d.ts +2 -0
  81. package/dist/directives/definitions/details.js +76 -0
  82. package/dist/directives/definitions/details.js.map +1 -0
  83. package/dist/directives/definitions/section.d.ts +2 -0
  84. package/dist/directives/definitions/section.js +32 -0
  85. package/dist/directives/definitions/section.js.map +1 -0
  86. package/dist/directives/definitions/steps.d.ts +2 -0
  87. package/dist/directives/definitions/steps.js +242 -0
  88. package/dist/directives/definitions/steps.js.map +1 -0
  89. package/dist/directives/definitions/tab.d.ts +8 -0
  90. package/dist/directives/definitions/tab.js +59 -0
  91. package/dist/directives/definitions/tab.js.map +1 -0
  92. package/dist/directives/definitions/tabs.d.ts +2 -0
  93. package/dist/directives/definitions/tabs.js +197 -0
  94. package/dist/directives/definitions/tabs.js.map +1 -0
  95. package/dist/directives/definitions/toc.d.ts +7 -0
  96. package/dist/directives/definitions/toc.js +59 -0
  97. package/dist/directives/definitions/toc.js.map +1 -0
  98. package/dist/directives/diagnostics.d.ts +8 -0
  99. package/dist/directives/diagnostics.js +167 -0
  100. package/dist/directives/diagnostics.js.map +1 -0
  101. package/dist/directives/headingAnchors.d.ts +9 -0
  102. package/dist/directives/headingAnchors.js +54 -0
  103. package/dist/directives/headingAnchors.js.map +1 -0
  104. package/dist/directives/index.d.ts +5 -0
  105. package/dist/directives/index.js +6 -0
  106. package/dist/directives/index.js.map +1 -0
  107. package/dist/directives/registry.d.ts +20 -0
  108. package/dist/directives/registry.js +152 -0
  109. package/dist/directives/registry.js.map +1 -0
  110. package/dist/directives/renderData.d.ts +3 -0
  111. package/dist/directives/renderData.js +11 -0
  112. package/dist/directives/renderData.js.map +1 -0
  113. package/dist/directives/themes.d.ts +25 -0
  114. package/dist/directives/themes.js +274 -0
  115. package/dist/directives/themes.js.map +1 -0
  116. package/dist/directives/types.d.ts +72 -0
  117. package/dist/directives/types.js +3 -0
  118. package/dist/directives/types.js.map +1 -0
  119. package/dist/editor/MarkdownCodeMirror/Component.client.d.ts +8 -0
  120. package/dist/editor/MarkdownCodeMirror/Component.client.js +78 -0
  121. package/dist/editor/MarkdownCodeMirror/Component.client.js.map +1 -0
  122. package/dist/editor/MarkdownCodeMirror/Component.d.ts +9 -0
  123. package/dist/editor/MarkdownCodeMirror/Component.js +10 -0
  124. package/dist/editor/MarkdownCodeMirror/Component.js.map +1 -0
  125. package/dist/editor/MarkdownCodeMirror.d.ts +8 -0
  126. package/dist/editor/MarkdownCodeMirror.js +74 -0
  127. package/dist/editor/MarkdownCodeMirror.js.map +1 -0
  128. package/dist/editor/MarkdownEditor.d.ts +10 -0
  129. package/dist/editor/MarkdownEditor.js +22 -0
  130. package/dist/editor/MarkdownEditor.js.map +1 -0
  131. package/dist/editor/directives/completions.d.ts +5 -0
  132. package/dist/editor/directives/completions.js +93 -0
  133. package/dist/editor/directives/completions.js.map +1 -0
  134. package/dist/editor/directives/diagnostics.d.ts +1 -0
  135. package/dist/editor/directives/diagnostics.js +12 -0
  136. package/dist/editor/directives/diagnostics.js.map +1 -0
  137. package/dist/editor/themes/payload.d.ts +27 -0
  138. package/dist/editor/themes/payload.js +269 -0
  139. package/dist/editor/themes/payload.js.map +1 -0
  140. package/dist/editor/themes/support/highlighters.d.ts +20 -0
  141. package/dist/editor/themes/support/highlighters.js +1141 -0
  142. package/dist/editor/themes/support/highlighters.js.map +1 -0
  143. package/dist/editor/themes/support/lang.d.ts +40 -0
  144. package/dist/editor/themes/support/lang.js +201 -0
  145. package/dist/editor/themes/support/lang.js.map +1 -0
  146. package/dist/exports/advanced.d.ts +3 -0
  147. package/dist/exports/advanced.js +5 -0
  148. package/dist/exports/advanced.js.map +1 -0
  149. package/dist/exports/client.d.ts +1 -0
  150. package/dist/exports/client.js +2 -0
  151. package/dist/exports/client.js.map +1 -0
  152. package/dist/exports/server.d.ts +3 -0
  153. package/dist/exports/server.js +5 -0
  154. package/dist/exports/server.js.map +1 -0
  155. package/dist/field/BlocksParams/config.d.ts +7 -0
  156. package/dist/field/BlocksParams/config.js +149 -0
  157. package/dist/field/BlocksParams/config.js.map +1 -0
  158. package/dist/field/CodeBlock/config.d.ts +7 -0
  159. package/dist/field/CodeBlock/config.js +321 -0
  160. package/dist/field/CodeBlock/config.js.map +1 -0
  161. package/dist/field/CodeBlockConfig/config.d.ts +7 -0
  162. package/dist/field/CodeBlockConfig/config.js +306 -0
  163. package/dist/field/CodeBlockConfig/config.js.map +1 -0
  164. package/dist/field/CodeBlockParams/config.d.ts +7 -0
  165. package/dist/field/CodeBlockParams/config.js +321 -0
  166. package/dist/field/CodeBlockParams/config.js.map +1 -0
  167. package/dist/field/Config/config.d.ts +7 -0
  168. package/dist/field/Config/config.js +149 -0
  169. package/dist/field/Config/config.js.map +1 -0
  170. package/dist/field/MarkdownField/Component.d.ts +2 -0
  171. package/dist/field/MarkdownField/Component.js +42 -0
  172. package/dist/field/MarkdownField/Component.js.map +1 -0
  173. package/dist/field/MarkdownField/config.d.ts +3 -0
  174. package/dist/field/MarkdownField/config.js +20 -0
  175. package/dist/field/MarkdownField/config.js.map +1 -0
  176. package/dist/field/Tailwind/config.d.ts +9 -0
  177. package/dist/field/Tailwind/config.js +13 -0
  178. package/dist/field/Tailwind/config.js.map +1 -0
  179. package/dist/field/TailwindField/config.d.ts +9 -0
  180. package/dist/field/TailwindField/config.js +13 -0
  181. package/dist/field/TailwindField/config.js.map +1 -0
  182. package/dist/index.d.ts +10 -0
  183. package/dist/index.js +91 -0
  184. package/dist/index.js.map +1 -0
  185. package/dist/runtime/index.d.ts +36 -0
  186. package/dist/runtime/index.js +124 -0
  187. package/dist/runtime/index.js.map +1 -0
  188. package/dist/styles/directiveSurface.d.ts +11 -0
  189. package/dist/styles/directiveSurface.js +38 -0
  190. package/dist/styles/directiveSurface.js.map +1 -0
  191. package/dist/types/core.d.ts +285 -0
  192. package/dist/types/core.js +5 -0
  193. package/dist/types/core.js.map +1 -0
  194. package/dist/types/layoutToken.d.ts +1 -0
  195. package/dist/types/layoutToken.js +3 -0
  196. package/dist/types/layoutToken.js.map +1 -0
  197. package/dist/types/mdast.d.js +5 -0
  198. package/dist/types/mdast.d.js.map +1 -0
  199. package/dist/types.d.js +3 -0
  200. package/dist/types.d.js.map +1 -0
  201. package/dist/types.d.ts +80 -0
  202. package/dist/types.js +3 -0
  203. package/dist/types.js.map +1 -0
  204. package/package.json +181 -0
@@ -0,0 +1,78 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
4
+ import { EditorState } from '@codemirror/state';
5
+ import { placeholder as cmPlaceholder, EditorView, keymap } from '@codemirror/view';
6
+ import React, { useEffect, useRef } from 'react';
7
+ import { directiveCompletions } from '../directives/completions.js';
8
+ import { directiveDiagnostics } from '../directives/diagnostics.js';
9
+ import { payloadMarkdownTheme } from '../themes/payload.js';
10
+ export const MarkdownCodeMirrorClient = ({ onChangeAction, placeholder = 'Write markdown...', value = '' })=>{
11
+ const containerRef = useRef(null);
12
+ const viewRef = useRef(null);
13
+ useEffect(()=>{
14
+ if (!containerRef.current || viewRef.current) return;
15
+ const state = EditorState.create({
16
+ doc: value,
17
+ extensions: [
18
+ history(),
19
+ keymap.of([
20
+ ...defaultKeymap,
21
+ ...historyKeymap
22
+ ]),
23
+ EditorView.lineWrapping,
24
+ cmPlaceholder(placeholder),
25
+ payloadMarkdownTheme,
26
+ directiveCompletions,
27
+ directiveDiagnostics,
28
+ EditorView.updateListener.of((update)=>{
29
+ if (!update.docChanged) return;
30
+ onChangeAction(update.state.doc.toString());
31
+ })
32
+ ]
33
+ });
34
+ viewRef.current = new EditorView({
35
+ parent: containerRef.current,
36
+ state
37
+ });
38
+ return ()=>{
39
+ viewRef.current?.destroy();
40
+ viewRef.current = null;
41
+ };
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
43
+ }, [
44
+ onChangeAction,
45
+ placeholder
46
+ ]);
47
+ useEffect(()=>{
48
+ const view = viewRef.current;
49
+ if (!view) return;
50
+ const current = view.state.doc.toString();
51
+ if (current === value) return;
52
+ view.dispatch({
53
+ changes: {
54
+ from: 0,
55
+ insert: value,
56
+ to: current.length
57
+ }
58
+ });
59
+ }, [
60
+ value
61
+ ]);
62
+ return /*#__PURE__*/ _jsx("div", {
63
+ style: {
64
+ border: '1px solid rgba(120, 120, 120, .5)',
65
+ borderRadius: '5px',
66
+ maxHeight: '80vh',
67
+ minHeight: '125px',
68
+ overflowX: 'hidden',
69
+ overflowY: 'scroll',
70
+ padding: '6px 0'
71
+ },
72
+ children: /*#__PURE__*/ _jsx("div", {
73
+ ref: containerRef
74
+ })
75
+ });
76
+ };
77
+
78
+ //# sourceMappingURL=Component.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/editor/MarkdownCodeMirror/Component.client.tsx"],"sourcesContent":["'use client'\n\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { EditorState } from '@codemirror/state'\nimport { placeholder as cmPlaceholder, EditorView, keymap } from '@codemirror/view'\nimport React, { useEffect, useRef } from 'react'\n\nimport { directiveCompletions } from '../directives/completions.js'\nimport { directiveDiagnostics } from '../directives/diagnostics.js'\nimport { payloadMarkdownTheme } from '../themes/payload.js'\n\ntype MarkdownCodeMirrorClientProps = {\n onChangeAction: (value: string) => void\n placeholder?: string\n value?: string\n}\n\nexport const MarkdownCodeMirrorClient: React.FC<MarkdownCodeMirrorClientProps> = ({\n onChangeAction,\n placeholder = 'Write markdown...',\n value = '',\n}) => {\n const containerRef = useRef<HTMLDivElement | null>(null)\n const viewRef = useRef<EditorView | null>(null)\n\n useEffect(() => {\n if (!containerRef.current || viewRef.current) return\n\n const state = EditorState.create({\n doc: value,\n extensions: [\n history(),\n keymap.of([...defaultKeymap, ...historyKeymap]),\n EditorView.lineWrapping,\n cmPlaceholder(placeholder),\n payloadMarkdownTheme,\n directiveCompletions,\n directiveDiagnostics,\n EditorView.updateListener.of((update) => {\n if (!update.docChanged) return\n onChangeAction(update.state.doc.toString())\n }),\n ],\n })\n\n viewRef.current = new EditorView({\n parent: containerRef.current,\n state,\n })\n\n return () => {\n viewRef.current?.destroy()\n viewRef.current = null\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onChangeAction, placeholder])\n\n useEffect(() => {\n const view = viewRef.current\n if (!view) return\n\n const current = view.state.doc.toString()\n if (current === value) return\n\n view.dispatch({\n changes: {\n from: 0,\n insert: value,\n to: current.length,\n },\n })\n }, [value])\n\n return (\n <div\n style={{\n border: '1px solid rgba(120, 120, 120, .5)',\n borderRadius: '5px',\n maxHeight: '80vh',\n minHeight: '125px',\n overflowX: 'hidden',\n overflowY: 'scroll',\n padding: '6px 0',\n }}\n >\n <div ref={containerRef} />\n </div>\n )\n}\n"],"names":["defaultKeymap","history","historyKeymap","EditorState","placeholder","cmPlaceholder","EditorView","keymap","React","useEffect","useRef","directiveCompletions","directiveDiagnostics","payloadMarkdownTheme","MarkdownCodeMirrorClient","onChangeAction","value","containerRef","viewRef","current","state","create","doc","extensions","of","lineWrapping","updateListener","update","docChanged","toString","parent","destroy","view","dispatch","changes","from","insert","to","length","div","style","border","borderRadius","maxHeight","minHeight","overflowX","overflowY","padding","ref"],"mappings":"AAAA;;AAEA,SAASA,aAAa,EAAEC,OAAO,EAAEC,aAAa,QAAQ,uBAAsB;AAC5E,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAASC,eAAeC,aAAa,EAAEC,UAAU,EAAEC,MAAM,QAAQ,mBAAkB;AACnF,OAAOC,SAASC,SAAS,EAAEC,MAAM,QAAQ,QAAO;AAEhD,SAASC,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,oBAAoB,QAAQ,uBAAsB;AAQ3D,OAAO,MAAMC,2BAAoE,CAAC,EAChFC,cAAc,EACdX,cAAc,mBAAmB,EACjCY,QAAQ,EAAE,EACX;IACC,MAAMC,eAAeP,OAA8B;IACnD,MAAMQ,UAAUR,OAA0B;IAE1CD,UAAU;QACR,IAAI,CAACQ,aAAaE,OAAO,IAAID,QAAQC,OAAO,EAAE;QAE9C,MAAMC,QAAQjB,YAAYkB,MAAM,CAAC;YAC/BC,KAAKN;YACLO,YAAY;gBACVtB;gBACAM,OAAOiB,EAAE,CAAC;uBAAIxB;uBAAkBE;iBAAc;gBAC9CI,WAAWmB,YAAY;gBACvBpB,cAAcD;gBACdS;gBACAF;gBACAC;gBACAN,WAAWoB,cAAc,CAACF,EAAE,CAAC,CAACG;oBAC5B,IAAI,CAACA,OAAOC,UAAU,EAAE;oBACxBb,eAAeY,OAAOP,KAAK,CAACE,GAAG,CAACO,QAAQ;gBAC1C;aACD;QACH;QAEAX,QAAQC,OAAO,GAAG,IAAIb,WAAW;YAC/BwB,QAAQb,aAAaE,OAAO;YAC5BC;QACF;QAEA,OAAO;YACLF,QAAQC,OAAO,EAAEY;YACjBb,QAAQC,OAAO,GAAG;QACpB;IACA,uDAAuD;IACzD,GAAG;QAACJ;QAAgBX;KAAY;IAEhCK,UAAU;QACR,MAAMuB,OAAOd,QAAQC,OAAO;QAC5B,IAAI,CAACa,MAAM;QAEX,MAAMb,UAAUa,KAAKZ,KAAK,CAACE,GAAG,CAACO,QAAQ;QACvC,IAAIV,YAAYH,OAAO;QAEvBgB,KAAKC,QAAQ,CAAC;YACZC,SAAS;gBACPC,MAAM;gBACNC,QAAQpB;gBACRqB,IAAIlB,QAAQmB,MAAM;YACpB;QACF;IACF,GAAG;QAACtB;KAAM;IAEV,qBACE,KAACuB;QACCC,OAAO;YACLC,QAAQ;YACRC,cAAc;YACdC,WAAW;YACXC,WAAW;YACXC,WAAW;YACXC,WAAW;YACXC,SAAS;QACX;kBAEA,cAAA,KAACR;YAAIS,KAAK/B;;;AAGhB,EAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type MarkdownCodeMirrorProps = {
3
+ className?: string;
4
+ onChangeAction: (value: string) => void;
5
+ placeholder?: string;
6
+ value?: string;
7
+ };
8
+ export declare const MarkdownCodeMirror: React.FC<MarkdownCodeMirrorProps>;
9
+ export {};
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { MarkdownCodeMirrorClient } from './Component.client.js';
4
+ export const MarkdownCodeMirror = (props)=>{
5
+ return /*#__PURE__*/ _jsx(MarkdownCodeMirrorClient, {
6
+ ...props
7
+ });
8
+ };
9
+
10
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/editor/MarkdownCodeMirror/Component.tsx"],"sourcesContent":["import React from 'react'\n\nimport { MarkdownCodeMirrorClient } from './Component.client.js'\n\ntype MarkdownCodeMirrorProps = {\n className?: string\n onChangeAction: (value: string) => void\n placeholder?: string\n value?: string\n}\n\nexport const MarkdownCodeMirror: React.FC<MarkdownCodeMirrorProps> = (props) => {\n return <MarkdownCodeMirrorClient {...props} />\n}\n"],"names":["React","MarkdownCodeMirrorClient","MarkdownCodeMirror","props"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,wBAAwB,QAAQ,wBAAuB;AAShE,OAAO,MAAMC,qBAAwD,CAACC;IACpE,qBAAO,KAACF;QAA0B,GAAGE,KAAK;;AAC5C,EAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type MarkdownCodeMirrorProps = {
3
+ onChangeAction: (value: string) => void;
4
+ placeholder?: string;
5
+ value?: string;
6
+ };
7
+ export declare const MarkdownCodeMirror: React.FC<MarkdownCodeMirrorProps>;
8
+ export {};
@@ -0,0 +1,74 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
4
+ import { EditorState } from '@codemirror/state';
5
+ import { placeholder as cmPlaceholder, EditorView, keymap } from '@codemirror/view';
6
+ import React, { useEffect, useRef } from 'react';
7
+ import { payloadMarkdownTheme } from './themes/payload.js';
8
+ export const MarkdownCodeMirror = ({ onChangeAction, placeholder = 'Write markdown...', value = '' })=>{
9
+ const containerRef = useRef(null);
10
+ const viewRef = useRef(null);
11
+ const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
12
+ useEffect(()=>{
13
+ if (!containerRef.current || viewRef.current) return;
14
+ const state = EditorState.create({
15
+ doc: value,
16
+ extensions: [
17
+ history(),
18
+ keymap.of([
19
+ ...defaultKeymap,
20
+ ...historyKeymap
21
+ ]),
22
+ EditorView.lineWrapping,
23
+ cmPlaceholder(placeholder),
24
+ payloadMarkdownTheme,
25
+ EditorView.updateListener.of((update)=>{
26
+ if (!update.docChanged) return;
27
+ onChangeAction(update.state.doc.toString());
28
+ })
29
+ ]
30
+ });
31
+ viewRef.current = new EditorView({
32
+ parent: containerRef.current,
33
+ state
34
+ });
35
+ return ()=>{
36
+ viewRef.current?.destroy();
37
+ viewRef.current = null;
38
+ };
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ }, [
41
+ onChangeAction,
42
+ placeholder
43
+ ]);
44
+ useEffect(()=>{
45
+ const view = viewRef.current;
46
+ if (!view) return;
47
+ const current = view.state.doc.toString();
48
+ if (current === value) return;
49
+ view.dispatch({
50
+ changes: {
51
+ from: 0,
52
+ insert: value,
53
+ to: current.length
54
+ }
55
+ });
56
+ }, [
57
+ value
58
+ ]);
59
+ return /*#__PURE__*/ _jsx("div", {
60
+ style: {
61
+ border: isDarkMode ? '1px solid rgba(120, 120, 120, .4)' : '1px solid rgba(120, 120, 120, .8)',
62
+ borderRadius: '5px',
63
+ maxHeight: '80vh',
64
+ minHeight: '125px',
65
+ overflowX: 'hidden',
66
+ overflowY: 'scroll'
67
+ },
68
+ children: /*#__PURE__*/ _jsx("div", {
69
+ ref: containerRef
70
+ })
71
+ });
72
+ };
73
+
74
+ //# sourceMappingURL=MarkdownCodeMirror.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/editor/MarkdownCodeMirror.tsx"],"sourcesContent":["'use client'\n\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands'\nimport { EditorState } from '@codemirror/state'\nimport { placeholder as cmPlaceholder, EditorView, keymap } from '@codemirror/view'\nimport React, { useEffect, useRef } from 'react'\n\nimport { payloadMarkdownTheme } from './themes/payload.js'\n\ntype MarkdownCodeMirrorProps = {\n onChangeAction: (value: string) => void\n placeholder?: string\n value?: string\n}\n\nexport const MarkdownCodeMirror: React.FC<MarkdownCodeMirrorProps> = ({\n onChangeAction,\n placeholder = 'Write markdown...',\n value = '',\n}) => {\n const containerRef = useRef<HTMLDivElement | null>(null)\n const viewRef = useRef<EditorView | null>(null)\n const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n\n useEffect(() => {\n if (!containerRef.current || viewRef.current) return\n\n const state = EditorState.create({\n doc: value,\n extensions: [\n history(),\n keymap.of([...defaultKeymap, ...historyKeymap]),\n EditorView.lineWrapping,\n cmPlaceholder(placeholder),\n payloadMarkdownTheme,\n EditorView.updateListener.of((update) => {\n if (!update.docChanged) return\n onChangeAction(update.state.doc.toString())\n }),\n ],\n })\n\n viewRef.current = new EditorView({\n parent: containerRef.current,\n state,\n })\n\n return () => {\n viewRef.current?.destroy()\n viewRef.current = null\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onChangeAction, placeholder])\n\n useEffect(() => {\n const view = viewRef.current\n if (!view) return\n\n const current = view.state.doc.toString()\n if (current === value) return\n\n view.dispatch({\n changes: {\n from: 0,\n insert: value,\n to: current.length,\n },\n })\n }, [value])\n\n return (\n <div\n style={{\n border: isDarkMode ? '1px solid rgba(120, 120, 120, .4)' : '1px solid rgba(120, 120, 120, .8)',\n borderRadius: '5px',\n maxHeight: '80vh',\n minHeight: '125px',\n overflowX: 'hidden',\n overflowY: 'scroll',\n }}>\n <div ref={containerRef} />\n </div>\n )\n}\n"],"names":["defaultKeymap","history","historyKeymap","EditorState","placeholder","cmPlaceholder","EditorView","keymap","React","useEffect","useRef","payloadMarkdownTheme","MarkdownCodeMirror","onChangeAction","value","containerRef","viewRef","isDarkMode","window","matchMedia","matches","current","state","create","doc","extensions","of","lineWrapping","updateListener","update","docChanged","toString","parent","destroy","view","dispatch","changes","from","insert","to","length","div","style","border","borderRadius","maxHeight","minHeight","overflowX","overflowY","ref"],"mappings":"AAAA;;AAEA,SAASA,aAAa,EAAEC,OAAO,EAAEC,aAAa,QAAQ,uBAAsB;AAC5E,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,SAASC,eAAeC,aAAa,EAAEC,UAAU,EAAEC,MAAM,QAAQ,mBAAkB;AACnF,OAAOC,SAASC,SAAS,EAAEC,MAAM,QAAQ,QAAO;AAEhD,SAASC,oBAAoB,QAAQ,sBAAqB;AAQ1D,OAAO,MAAMC,qBAAwD,CAAC,EACpEC,cAAc,EACdT,cAAc,mBAAmB,EACjCU,QAAQ,EAAE,EACX;IACC,MAAMC,eAAeL,OAA8B;IACnD,MAAMM,UAAUN,OAA0B;IAC1C,MAAMO,aAAaC,OAAOC,UAAU,IAAID,OAAOC,UAAU,CAAC,gCAAgCC,OAAO;IAEjGX,UAAU;QACR,IAAI,CAACM,aAAaM,OAAO,IAAIL,QAAQK,OAAO,EAAE;QAE9C,MAAMC,QAAQnB,YAAYoB,MAAM,CAAC;YAC/BC,KAAKV;YACLW,YAAY;gBACVxB;gBACAM,OAAOmB,EAAE,CAAC;uBAAI1B;uBAAkBE;iBAAc;gBAC9CI,WAAWqB,YAAY;gBACvBtB,cAAcD;gBACdO;gBACAL,WAAWsB,cAAc,CAACF,EAAE,CAAC,CAACG;oBAC5B,IAAI,CAACA,OAAOC,UAAU,EAAE;oBACxBjB,eAAegB,OAAOP,KAAK,CAACE,GAAG,CAACO,QAAQ;gBAC1C;aACD;QACH;QAEAf,QAAQK,OAAO,GAAG,IAAIf,WAAW;YAC/B0B,QAAQjB,aAAaM,OAAO;YAC5BC;QACF;QAEA,OAAO;YACLN,QAAQK,OAAO,EAAEY;YACjBjB,QAAQK,OAAO,GAAG;QACpB;IACA,uDAAuD;IACzD,GAAG;QAACR;QAAgBT;KAAY;IAEhCK,UAAU;QACR,MAAMyB,OAAOlB,QAAQK,OAAO;QAC5B,IAAI,CAACa,MAAM;QAEX,MAAMb,UAAUa,KAAKZ,KAAK,CAACE,GAAG,CAACO,QAAQ;QACvC,IAAIV,YAAYP,OAAO;QAEvBoB,KAAKC,QAAQ,CAAC;YACZC,SAAS;gBACPC,MAAM;gBACNC,QAAQxB;gBACRyB,IAAIlB,QAAQmB,MAAM;YACpB;QACF;IACF,GAAG;QAAC1B;KAAM;IAEV,qBACE,KAAC2B;QACCC,OAAO;YACLC,QAAQ1B,aAAa,sCAAsC;YAC3D2B,cAAc;YACdC,WAAW;YACXC,WAAW;YACXC,WAAW;YACXC,WAAW;QACb;kBACA,cAAA,KAACP;YAAIQ,KAAKlC;;;AAGhB,EAAC"}
@@ -0,0 +1,10 @@
1
+ import type { StaticLabel } from 'payload';
2
+ import React from 'react';
3
+ type MarkdownEditorProps = {
4
+ label?: StaticLabel;
5
+ onChangeAction: (value: string) => void;
6
+ placeholder?: string;
7
+ value?: string;
8
+ };
9
+ export declare const MarkdownEditor: React.FC<MarkdownEditorProps>;
10
+ export {};
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { MarkdownCodeMirror } from './MarkdownCodeMirror/Component.js';
4
+ export const MarkdownEditor = ({ label = 'Markdown', onChangeAction, placeholder = 'Write markdown...', value = '' })=>{
5
+ return /*#__PURE__*/ _jsxs(_Fragment, {
6
+ children: [
7
+ /*#__PURE__*/ _jsx("div", {
8
+ style: {
9
+ margin: '1rem 0'
10
+ },
11
+ children: String(label)
12
+ }),
13
+ /*#__PURE__*/ _jsx(MarkdownCodeMirror, {
14
+ onChangeAction: onChangeAction,
15
+ placeholder: placeholder,
16
+ value: value
17
+ })
18
+ ]
19
+ });
20
+ };
21
+
22
+ //# sourceMappingURL=MarkdownEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/editor/MarkdownEditor.tsx"],"sourcesContent":["import type { StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport { MarkdownCodeMirror } from './MarkdownCodeMirror/Component.js'\n\ntype MarkdownEditorProps = {\n label?: StaticLabel\n onChangeAction: (value: string) => void\n placeholder?: string\n value?: string\n}\n\nexport const MarkdownEditor: React.FC<MarkdownEditorProps> = ({\n label = 'Markdown',\n onChangeAction,\n placeholder = 'Write markdown...',\n value = '',\n}) => {\n return (\n <>\n {/* eslint-disable-next-line @typescript-eslint/no-base-to-string */}\n <div style={{ margin: '1rem 0' }}>{String(label)}</div>\n <MarkdownCodeMirror onChangeAction={onChangeAction} placeholder={placeholder} value={value} />\n </>\n )\n}\n"],"names":["React","MarkdownCodeMirror","MarkdownEditor","label","onChangeAction","placeholder","value","div","style","margin","String"],"mappings":";AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,kBAAkB,QAAQ,oCAAmC;AAStE,OAAO,MAAMC,iBAAgD,CAAC,EAC5DC,QAAQ,UAAU,EAClBC,cAAc,EACdC,cAAc,mBAAmB,EACjCC,QAAQ,EAAE,EACX;IACC,qBACE;;0BAEE,KAACC;gBAAIC,OAAO;oBAAEC,QAAQ;gBAAS;0BAAIC,OAAOP;;0BAC1C,KAACF;gBAAmBG,gBAAgBA;gBAAgBC,aAAaA;gBAAaC,OAAOA;;;;AAG3F,EAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Completion } from '@codemirror/autocomplete';
2
+ export declare function getDirectiveCompletionOptions(): Completion[];
3
+ export declare function getDirectiveAttributeCompletionOptions(name: string): Completion[];
4
+ export declare function getDirectiveThemeValueCompletionOptions(name: string, attribute: string): Completion[];
5
+ export declare const directiveCompletions: import("@codemirror/state").Extension;
@@ -0,0 +1,93 @@
1
+ import { autocompletion, snippetCompletion } from '@codemirror/autocomplete';
2
+ import { layoutDirectiveRegistry } from '../../directives/registry.js';
3
+ import { getDirectiveThemeNames } from '../../directives/themes.js';
4
+ export function getDirectiveCompletionOptions() {
5
+ return layoutDirectiveRegistry.getPublicDefinitions().flatMap((definition)=>{
6
+ const snippets = [
7
+ {
8
+ detail: definition.editor.detail,
9
+ label: `:::${definition.name}`,
10
+ snippet: definition.editor.snippet
11
+ },
12
+ ...(definition.editor.snippets ?? []).map((snippet)=>({
13
+ detail: snippet.detail ?? definition.editor.detail,
14
+ label: snippet.label,
15
+ snippet: snippet.snippet
16
+ }))
17
+ ];
18
+ return snippets.map((snippet)=>snippetCompletion(snippet.snippet, {
19
+ type: 'keyword',
20
+ detail: snippet.detail,
21
+ info: definition.description,
22
+ label: snippet.label
23
+ }));
24
+ });
25
+ }
26
+ export function getDirectiveAttributeCompletionOptions(name) {
27
+ const definition = layoutDirectiveRegistry.get(name);
28
+ const attributes = definition?.allowedAttributes ?? [];
29
+ return attributes.map((attribute)=>snippetCompletion(`${attribute}="\${${attribute}}"`, {
30
+ type: 'property',
31
+ detail: `:::${name} attribute`,
32
+ label: attribute
33
+ }));
34
+ }
35
+ export function getDirectiveThemeValueCompletionOptions(name, attribute) {
36
+ const definition = layoutDirectiveRegistry.get(name);
37
+ const groupName = definition?.themeAttributes?.[attribute];
38
+ if (!groupName) return (definition?.attributeValues?.[attribute] ?? []).map((value)=>({
39
+ type: 'constant',
40
+ detail: `:::${name} ${attribute}`,
41
+ label: value
42
+ }));
43
+ return getDirectiveThemeNames(groupName).map((themeName)=>({
44
+ type: 'constant',
45
+ detail: `${groupName} theme`,
46
+ label: themeName
47
+ }));
48
+ }
49
+ function attributeCompletionSource(context) {
50
+ const line = context.state.doc.lineAt(context.pos);
51
+ const beforeCursor = line.text.slice(0, context.pos - line.from);
52
+ const directiveMatch = beforeCursor.match(/^\s*:::(\w+)\s+\{([^}]*)$/);
53
+ if (!directiveMatch) return null;
54
+ const [, name, attributesBeforeCursor] = directiveMatch;
55
+ const valueMatch = attributesBeforeCursor.match(/(?:^|\s)(theme|cardTheme|cellTheme|stepTheme|tabTheme)="([^"]*)$/);
56
+ if (valueMatch) {
57
+ const [, attribute, typedValue] = valueMatch;
58
+ const options = getDirectiveThemeValueCompletionOptions(name, attribute);
59
+ if (options.length === 0) return null;
60
+ return {
61
+ from: context.pos - typedValue.length,
62
+ options
63
+ };
64
+ }
65
+ const attributeMatch = attributesBeforeCursor.match(/(?:^|\s)([\w-]*)$/);
66
+ const typedAttribute = attributeMatch?.[1] ?? '';
67
+ const options = getDirectiveAttributeCompletionOptions(name);
68
+ if (options.length === 0) return null;
69
+ if (!context.explicit && typedAttribute.length === 0) return null;
70
+ return {
71
+ from: context.pos - typedAttribute.length,
72
+ options
73
+ };
74
+ }
75
+ function directiveCompletionSource(context) {
76
+ const attributeResult = attributeCompletionSource(context);
77
+ if (attributeResult) return attributeResult;
78
+ const match = context.matchBefore(/:::[\w-]*/);
79
+ if (!match) return null;
80
+ if (match.from === match.to && !context.explicit) return null;
81
+ return {
82
+ from: match.from,
83
+ options: getDirectiveCompletionOptions()
84
+ };
85
+ }
86
+ export const directiveCompletions = autocompletion({
87
+ activateOnTyping: true,
88
+ override: [
89
+ directiveCompletionSource
90
+ ]
91
+ });
92
+
93
+ //# sourceMappingURL=completions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/editor/directives/completions.ts"],"sourcesContent":["import type { Completion, CompletionContext } from '@codemirror/autocomplete'\n\nimport { autocompletion, snippetCompletion } from '@codemirror/autocomplete'\n\nimport { layoutDirectiveRegistry } from '../../directives/registry.js'\nimport { getDirectiveThemeNames } from '../../directives/themes.js'\n\nexport function getDirectiveCompletionOptions() {\n return layoutDirectiveRegistry.getPublicDefinitions().flatMap((definition) => {\n const snippets = [\n {\n detail: definition.editor.detail,\n label: `:::${definition.name}`,\n snippet: definition.editor.snippet,\n },\n ...(definition.editor.snippets ?? []).map((snippet) => ({\n detail: snippet.detail ?? definition.editor.detail,\n label: snippet.label,\n snippet: snippet.snippet,\n })),\n ]\n\n return snippets.map((snippet) =>\n snippetCompletion(snippet.snippet, {\n type: 'keyword',\n detail: snippet.detail,\n info: definition.description,\n label: snippet.label,\n }),\n )\n })\n}\n\nexport function getDirectiveAttributeCompletionOptions(name: string): Completion[] {\n const definition = layoutDirectiveRegistry.get(name)\n const attributes = definition?.allowedAttributes ?? []\n\n return attributes.map((attribute) =>\n snippetCompletion(`${attribute}=\"\\${${attribute}}\"`, {\n type: 'property',\n detail: `:::${name} attribute`,\n label: attribute,\n }),\n )\n}\n\nexport function getDirectiveThemeValueCompletionOptions(\n name: string,\n attribute: string,\n): Completion[] {\n const definition = layoutDirectiveRegistry.get(name)\n const groupName = definition?.themeAttributes?.[attribute]\n\n if (!groupName)\n return (definition?.attributeValues?.[attribute] ?? []).map((value) => ({\n type: 'constant',\n detail: `:::${name} ${attribute}`,\n label: value,\n }))\n\n return getDirectiveThemeNames(groupName).map((themeName) => ({\n type: 'constant',\n detail: `${groupName} theme`,\n label: themeName,\n }))\n}\n\nfunction attributeCompletionSource(context: CompletionContext) {\n const line = context.state.doc.lineAt(context.pos)\n const beforeCursor = line.text.slice(0, context.pos - line.from)\n const directiveMatch = beforeCursor.match(/^\\s*:::(\\w+)\\s+\\{([^}]*)$/)\n\n if (!directiveMatch) return null\n\n const [, name, attributesBeforeCursor] = directiveMatch\n const valueMatch = attributesBeforeCursor.match(\n /(?:^|\\s)(theme|cardTheme|cellTheme|stepTheme|tabTheme)=\"([^\"]*)$/,\n )\n\n if (valueMatch) {\n const [, attribute, typedValue] = valueMatch\n const options = getDirectiveThemeValueCompletionOptions(name, attribute)\n\n if (options.length === 0) return null\n\n return {\n from: context.pos - typedValue.length,\n options,\n }\n }\n\n const attributeMatch = attributesBeforeCursor.match(/(?:^|\\s)([\\w-]*)$/)\n const typedAttribute = attributeMatch?.[1] ?? ''\n const options = getDirectiveAttributeCompletionOptions(name)\n\n if (options.length === 0) return null\n if (!context.explicit && typedAttribute.length === 0) return null\n\n return {\n from: context.pos - typedAttribute.length,\n options,\n }\n}\n\nfunction directiveCompletionSource(context: CompletionContext) {\n const attributeResult = attributeCompletionSource(context)\n if (attributeResult) return attributeResult\n\n const match = context.matchBefore(/:::[\\w-]*/)\n\n if (!match) return null\n if (match.from === match.to && !context.explicit) return null\n\n return {\n from: match.from,\n options: getDirectiveCompletionOptions(),\n }\n}\n\nexport const directiveCompletions = autocompletion({\n activateOnTyping: true,\n override: [directiveCompletionSource],\n})\n"],"names":["autocompletion","snippetCompletion","layoutDirectiveRegistry","getDirectiveThemeNames","getDirectiveCompletionOptions","getPublicDefinitions","flatMap","definition","snippets","detail","editor","label","name","snippet","map","type","info","description","getDirectiveAttributeCompletionOptions","get","attributes","allowedAttributes","attribute","getDirectiveThemeValueCompletionOptions","groupName","themeAttributes","attributeValues","value","themeName","attributeCompletionSource","context","line","state","doc","lineAt","pos","beforeCursor","text","slice","from","directiveMatch","match","attributesBeforeCursor","valueMatch","typedValue","options","length","attributeMatch","typedAttribute","explicit","directiveCompletionSource","attributeResult","matchBefore","to","directiveCompletions","activateOnTyping","override"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const directiveDiagnostics: import("@codemirror/state").Extension;
@@ -0,0 +1,12 @@
1
+ import { linter } from '@codemirror/lint';
2
+ import { lintMarkdownDirectives } from '../../directives/diagnostics.js';
3
+ export const directiveDiagnostics = linter((view)=>{
4
+ return lintMarkdownDirectives(view.state.doc.toString()).map((diagnostic)=>({
5
+ from: diagnostic.from,
6
+ message: diagnostic.message,
7
+ severity: diagnostic.severity,
8
+ to: diagnostic.to
9
+ }));
10
+ });
11
+
12
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/editor/directives/diagnostics.ts"],"sourcesContent":["import type { Diagnostic } from '@codemirror/lint'\n\nimport { linter } from '@codemirror/lint'\n\nimport { lintMarkdownDirectives } from '../../directives/diagnostics.js'\n\nexport const directiveDiagnostics = linter((view): Diagnostic[] => {\n return lintMarkdownDirectives(view.state.doc.toString()).map((diagnostic) => ({\n from: diagnostic.from,\n message: diagnostic.message,\n severity: diagnostic.severity,\n to: diagnostic.to,\n }))\n})\n"],"names":["linter","lintMarkdownDirectives","directiveDiagnostics","view","state","doc","toString","map","diagnostic","from","message","severity","to"],"mappings":"AAEA,SAASA,MAAM,QAAQ,mBAAkB;AAEzC,SAASC,sBAAsB,QAAQ,kCAAiC;AAExE,OAAO,MAAMC,uBAAuBF,OAAO,CAACG;IAC1C,OAAOF,uBAAuBE,KAAKC,KAAK,CAACC,GAAG,CAACC,QAAQ,IAAIC,GAAG,CAAC,CAACC,aAAgB,CAAA;YAC5EC,MAAMD,WAAWC,IAAI;YACrBC,SAASF,WAAWE,OAAO;YAC3BC,UAAUH,WAAWG,QAAQ;YAC7BC,IAAIJ,WAAWI,EAAE;QACnB,CAAA;AACF,GAAE"}
@@ -0,0 +1,27 @@
1
+ import type { Extension } from '@codemirror/state';
2
+ import { HighlightStyle } from '@codemirror/language';
3
+ export declare const color: {
4
+ activeLine: string;
5
+ bracketMatch: string;
6
+ chalky: string;
7
+ coral: string;
8
+ cursor: string;
9
+ cyan: string;
10
+ highlightBackground: string;
11
+ invalid: string;
12
+ ivory: string;
13
+ malibu: string;
14
+ sage: string;
15
+ searchMatch: string;
16
+ searchMatchOutline: string;
17
+ selection: string;
18
+ selectionBackground: string;
19
+ selectionMatch: string;
20
+ stone: string;
21
+ tooltipBackground: string;
22
+ violet: string;
23
+ whiskey: string;
24
+ };
25
+ export declare const payloadTheme: Extension;
26
+ export declare const payloadHighlightStyle: HighlightStyle;
27
+ export declare const payloadMarkdownTheme: Extension;