payload-richtext-tiptap 0.0.145 → 0.0.147

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 (40) hide show
  1. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js +3 -3
  2. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
  3. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts +10 -0
  4. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map +1 -0
  5. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +55 -0
  6. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +1 -0
  7. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts +2 -0
  8. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts.map +1 -0
  9. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js +3 -0
  10. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js.map +1 -0
  11. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.d.ts.map +1 -1
  12. package/dist/src/fields/TiptapEditor/extensions/error-boundary.d.ts +15 -0
  13. package/dist/src/fields/TiptapEditor/extensions/error-boundary.d.ts.map +1 -0
  14. package/dist/src/fields/TiptapEditor/extensions/error-boundary.js +35 -0
  15. package/dist/src/fields/TiptapEditor/extensions/error-boundary.js.map +1 -0
  16. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
  17. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js +1 -1
  18. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
  19. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts +8 -0
  20. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts.map +1 -0
  21. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +32 -0
  22. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +1 -0
  23. package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts +2 -0
  24. package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts.map +1 -0
  25. package/dist/src/fields/TiptapEditor/features/Sidebar/index.js +3 -0
  26. package/dist/src/fields/TiptapEditor/features/Sidebar/index.js.map +1 -0
  27. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts +8 -0
  28. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts.map +1 -0
  29. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js +57 -0
  30. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js.map +1 -0
  31. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts +2 -0
  32. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts.map +1 -0
  33. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js +3 -0
  34. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js.map +1 -0
  35. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts.map +1 -1
  36. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js +1 -4
  37. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
  38. package/dist/src/fields/TiptapEditor/lib/tiptapSchema.d.ts +68 -68
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +30 -26
@@ -1,10 +1,10 @@
1
1
  import { Node } from '@tiptap/core';
2
- export var ColumnLayout = /*#__PURE__*/ function(ColumnLayout) {
2
+ export var ColumnLayout;
3
+ (function(ColumnLayout) {
3
4
  ColumnLayout["SidebarLeft"] = "sidebar-left";
4
5
  ColumnLayout["SidebarRight"] = "sidebar-right";
5
6
  ColumnLayout["TwoColumn"] = "two-column";
6
- return ColumnLayout;
7
- }({});
7
+ })(ColumnLayout || (ColumnLayout = {}));
8
8
  export const Columns = Node.create({
9
9
  name: 'columns',
10
10
  group: 'columns',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/Columns.ts"],"sourcesContent":["import { Node } from '@tiptap/core'\n\nexport enum ColumnLayout {\n SidebarLeft = 'sidebar-left',\n SidebarRight = 'sidebar-right',\n TwoColumn = 'two-column',\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n columns: {\n setColumns: () => ReturnType\n setLayout: (layout: ColumnLayout) => ReturnType\n }\n }\n}\n\nexport const Columns = Node.create({\n name: 'columns',\n\n group: 'columns',\n\n content: 'column column',\n\n defining: true,\n\n isolating: true,\n\n addAttributes() {\n return {\n layout: {\n default: ColumnLayout.TwoColumn,\n },\n }\n },\n\n addCommands() {\n return {\n setColumns:\n () =>\n ({ commands }) =>\n commands.insertContent(\n `<div data-type=\"columns\"><div data-type=\"column\" data-position=\"left\"><p></p></div><div data-type=\"column\" data-position=\"right\"><p></p></div></div>`,\n ),\n setLayout:\n (layout: ColumnLayout) =>\n ({ commands }) =>\n commands.updateAttributes('columns', { layout }),\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', { 'data-type': 'columns', class: `layout-${HTMLAttributes.layout}` }, 0]\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"columns\"]',\n },\n ]\n },\n})\n\nexport default Columns\n"],"names":["Node","ColumnLayout","Columns","create","name","group","content","defining","isolating","addAttributes","layout","default","addCommands","setColumns","commands","insertContent","setLayout","updateAttributes","renderHTML","HTMLAttributes","class","parseHTML","tag"],"mappings":"AAAA,SAASA,IAAI,QAAQ,eAAc;AAEnC,OAAO,IAAA,AAAKC,sCAAAA;;;;WAAAA;MAIX;AAWD,OAAO,MAAMC,UAAUF,KAAKG,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IAEPC,SAAS;IAETC,UAAU;IAEVC,WAAW;IAEXC;QACE,OAAO;YACLC,QAAQ;gBACNC,OAAO;YACT;QACF;IACF;IAEAC;QACE,OAAO;YACLC,YACE,IACA,CAAC,EAAEC,QAAQ,EAAE,GACXA,SAASC,aAAa,CACpB,CAAC,oJAAoJ,CAAC;YAE5JC,WACE,CAACN,SACD,CAAC,EAAEI,QAAQ,EAAE,GACXA,SAASG,gBAAgB,CAAC,WAAW;wBAAEP;oBAAO;QACpD;IACF;IAEAQ,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,aAAa;gBAAWC,OAAO,CAAC,OAAO,EAAED,eAAeT,MAAM,EAAE;YAAC;YAAG;SAAE;IACzF;IAEAW;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;AACF,GAAE;AAEF,eAAepB,QAAO"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/Columns.ts"],"sourcesContent":["import { Node } from '@tiptap/core'\n\nexport enum ColumnLayout {\n SidebarLeft = 'sidebar-left',\n SidebarRight = 'sidebar-right',\n TwoColumn = 'two-column',\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n columns: {\n setColumns: () => ReturnType\n setLayout: (layout: ColumnLayout) => ReturnType\n }\n }\n}\n\nexport const Columns = Node.create({\n name: 'columns',\n\n group: 'columns',\n\n content: 'column column',\n\n defining: true,\n\n isolating: true,\n\n addAttributes() {\n return {\n layout: {\n default: ColumnLayout.TwoColumn,\n },\n }\n },\n\n addCommands() {\n return {\n setColumns:\n () =>\n ({ commands }) =>\n commands.insertContent(\n `<div data-type=\"columns\"><div data-type=\"column\" data-position=\"left\"><p></p></div><div data-type=\"column\" data-position=\"right\"><p></p></div></div>`,\n ),\n setLayout:\n (layout: ColumnLayout) =>\n ({ commands }) =>\n commands.updateAttributes('columns', { layout }),\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['div', { 'data-type': 'columns', class: `layout-${HTMLAttributes.layout}` }, 0]\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"columns\"]',\n },\n ]\n },\n})\n\nexport default Columns\n"],"names":["Node","ColumnLayout","Columns","create","name","group","content","defining","isolating","addAttributes","layout","default","addCommands","setColumns","commands","insertContent","setLayout","updateAttributes","renderHTML","HTMLAttributes","class","parseHTML","tag"],"mappings":"AAAA,SAASA,IAAI,QAAQ,eAAc;;UAEvBC;;;;GAAAA,iBAAAA;AAeZ,OAAO,MAAMC,UAAUF,KAAKG,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IAEPC,SAAS;IAETC,UAAU;IAEVC,WAAW;IAEXC;QACE,OAAO;YACLC,QAAQ;gBACNC,OAAO;YACT;QACF;IACF;IAEAC;QACE,OAAO;YACLC,YACE,IACA,CAAC,EAAEC,QAAQ,EAAE,GACXA,SAASC,aAAa,CACpB,CAAC,oJAAoJ,CAAC;YAE5JC,WACE,CAACN,SACD,CAAC,EAAEI,QAAQ,EAAE,GACXA,SAASG,gBAAgB,CAAC,WAAW;wBAAEP;oBAAO;QACpD;IACF;IAEAQ,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,aAAa;gBAAWC,OAAO,CAAC,OAAO,EAAED,eAAeT,MAAM,EAAE;YAAC;YAAG;SAAE;IACzF;IAEAW;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;AACF,GAAE;AAEF,eAAepB,QAAO"}
@@ -0,0 +1,10 @@
1
+ import { Node } from "@tiptap/core";
2
+ declare module "@tiptap/core" {
3
+ interface Commands<ReturnType> {
4
+ tableOfContentsNode: {
5
+ insertTableOfContents: () => ReturnType;
6
+ };
7
+ }
8
+ }
9
+ export declare const TableOfContentsNode: Node<any, any>;
10
+ //# sourceMappingURL=TableOfContentsNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableOfContentsNode.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAgB3D,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,mBAAmB,EAAE;YACnB,qBAAqB,EAAE,MAAM,UAAU,CAAC;SACzC,CAAC;KACH;CACF;AAED,eAAO,MAAM,mBAAmB,gBAmC9B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Node } from "@tiptap/core";
4
+ import { NodeViewWrapper, ReactNodeViewRenderer } from "@tiptap/react";
5
+ import { TableOfContents } from "../../features/TableOfContents/index.js";
6
+ const TableOfNodeContent = (props)=>{
7
+ const { editor } = props;
8
+ return /*#__PURE__*/ _jsx(NodeViewWrapper, {
9
+ children: /*#__PURE__*/ _jsx("div", {
10
+ className: "p-2 -m-2 rounded-lg",
11
+ contentEditable: false,
12
+ children: /*#__PURE__*/ _jsx(TableOfContents, {
13
+ editor: editor
14
+ })
15
+ })
16
+ });
17
+ };
18
+ export const TableOfContentsNode = Node.create({
19
+ name: "tableOfContentsNode",
20
+ group: "block",
21
+ atom: true,
22
+ selectable: true,
23
+ draggable: true,
24
+ inline: false,
25
+ parseHTML () {
26
+ return [
27
+ {
28
+ tag: 'div[data-type="table-of-content"]'
29
+ }
30
+ ];
31
+ },
32
+ renderHTML ({ HTMLAttributes }) {
33
+ return [
34
+ "div",
35
+ {
36
+ ...HTMLAttributes,
37
+ "data-type": "table-of-content"
38
+ }
39
+ ];
40
+ },
41
+ addNodeView () {
42
+ return ReactNodeViewRenderer(TableOfNodeContent);
43
+ },
44
+ addCommands () {
45
+ return {
46
+ insertTableOfContents: ()=>({ commands })=>{
47
+ return commands.insertContent({
48
+ type: this.name
49
+ });
50
+ }
51
+ };
52
+ }
53
+ });
54
+
55
+ //# sourceMappingURL=TableOfContentsNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"sourcesContent":["import React from \"react\";\nimport { Node, NodeViewRendererProps } from \"@tiptap/core\";\nimport { NodeViewWrapper, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { TableOfContents } from \"../../features/TableOfContents/index.js\";\n\nconst TableOfNodeContent = (props: NodeViewRendererProps) => {\n const { editor } = props;\n\n return (\n <NodeViewWrapper>\n <div className=\"p-2 -m-2 rounded-lg\" contentEditable={false}>\n <TableOfContents editor={editor} />\n </div>\n </NodeViewWrapper>\n );\n};\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n tableOfContentsNode: {\n insertTableOfContents: () => ReturnType;\n };\n }\n}\n\nexport const TableOfContentsNode = Node.create({\n name: \"tableOfContentsNode\",\n group: \"block\",\n atom: true,\n selectable: true,\n draggable: true,\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"table-of-content\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"div\", { ...HTMLAttributes, \"data-type\": \"table-of-content\" }];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TableOfNodeContent);\n },\n\n addCommands() {\n return {\n insertTableOfContents:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"names":["React","Node","NodeViewWrapper","ReactNodeViewRenderer","TableOfContents","TableOfNodeContent","props","editor","div","className","contentEditable","TableOfContentsNode","create","name","group","atom","selectable","draggable","inline","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","addCommands","insertTableOfContents","commands","insertContent","type"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAA+B,eAAe;AAC3D,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,gBAAgB;AACvE,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,MAAMC,qBAAqB,CAACC;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,qBACE,KAACJ;kBACC,cAAA,KAACM;YAAIC,WAAU;YAAsBC,iBAAiB;sBACpD,cAAA,KAACN;gBAAgBG,QAAQA;;;;AAIjC;AAUA,OAAO,MAAMI,sBAAsBV,KAAKW,MAAM,CAAC;IAC7CC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,WAAW;IACXC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,GAAGA,cAAc;gBAAE,aAAa;YAAmB;SAAE;IACxE;IAEAC;QACE,OAAOpB,sBAAsBE;IAC/B;IAEAmB;QACE,OAAO;YACLC,uBACE,IACA,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASC,aAAa,CAAC;wBAC5BC,MAAM,IAAI,CAACf,IAAI;oBACjB;gBACF;QACJ;IACF;AACF,GAAG"}
@@ -0,0 +1,2 @@
1
+ export * from "./TableOfContentsNode.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./TableOfContentsNode.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/index.ts"],"sourcesContent":["export * from \"./TableOfContentsNode.js\";\n"],"names":[],"mappings":"AAAA,cAAc,2BAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js"],"names":[],"mappings":"AAAA,gCAAiC,kBAAkB,CAAC;AACpD,+BAAgC,iBAAiB,CAAC;AAClD,qCAAsC,sBAAsB,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js"],"names":[],"mappings":"AAAA,mDAAoD;AACpD,iDAAkD;AAClD,4DAA6D"}
@@ -0,0 +1,15 @@
1
+ import React, { ReactNode, ErrorInfo } from 'react';
2
+ interface ErrorBoundaryProps {
3
+ children: ReactNode;
4
+ }
5
+ interface ErrorBoundaryState {
6
+ hasError: boolean;
7
+ }
8
+ export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
9
+ constructor(props: ErrorBoundaryProps);
10
+ static getDerivedStateFromError(_: Error): ErrorBoundaryState;
11
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
12
+ render(): string | number | bigint | boolean | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>>;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=error-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/extensions/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAC5E,KAAK,EAAE,kBAAkB;IAOrC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,GAAG,kBAAkB;IAK7D,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAKpD,MAAM;CAUP"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ export class ErrorBoundary extends React.Component {
4
+ constructor(props){
5
+ super(props);
6
+ // Define a state variable to track whether there is an error or not
7
+ this.state = {
8
+ hasError: false
9
+ };
10
+ }
11
+ static getDerivedStateFromError(_) {
12
+ // Update state so the next render will show the fallback UI
13
+ return {
14
+ hasError: true
15
+ };
16
+ }
17
+ componentDidCatch(error, errorInfo) {
18
+ // You can use your own error logging service here
19
+ console.log({
20
+ error,
21
+ errorInfo
22
+ });
23
+ }
24
+ render() {
25
+ // Check if the error is thrown
26
+ if (this.state.hasError) {
27
+ // You can render any custom fallback UI
28
+ return /*#__PURE__*/ _jsx(_Fragment, {});
29
+ }
30
+ // Return children components in case of no error
31
+ return this.props.children;
32
+ }
33
+ }
34
+
35
+ //# sourceMappingURL=error-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/error-boundary.tsx"],"sourcesContent":["import React, { ReactNode, ErrorInfo } from 'react';\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n\n // Define a state variable to track whether there is an error or not\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(_: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI\n return { hasError: true };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // You can use your own error logging service here\n console.log({ error, errorInfo });\n }\n\n render() {\n // Check if the error is thrown\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return <></>;\n }\n\n // Return children components in case of no error\n return this.props.children;\n }\n}\n\n"],"names":["React","ErrorBoundary","Component","constructor","props","state","hasError","getDerivedStateFromError","_","componentDidCatch","error","errorInfo","console","log","render","children"],"mappings":";AAAA,OAAOA,WAAqC,QAAQ;AAUpD,OAAO,MAAMC,sBAAsBD,MAAME,SAAS;IAChDC,YAAYC,KAAyB,CAAE;QACrC,KAAK,CAACA;QAEN,oEAAoE;QACpE,IAAI,CAACC,KAAK,GAAG;YAAEC,UAAU;QAAM;IACjC;IAEA,OAAOC,yBAAyBC,CAAQ,EAAsB;QAC5D,4DAA4D;QAC5D,OAAO;YAAEF,UAAU;QAAK;IAC1B;IAEAG,kBAAkBC,KAAY,EAAEC,SAAoB,EAAE;QACpD,kDAAkD;QAClDC,QAAQC,GAAG,CAAC;YAAEH;YAAOC;QAAU;IACjC;IAEAG,SAAS;QACP,+BAA+B;QAC/B,IAAI,IAAI,CAACT,KAAK,CAACC,QAAQ,EAAE;YACvB,wCAAwC;YACxC,qBAAO;QACT;QAEA,iDAAiD;QACjD,OAAO,IAAI,CAACF,KAAK,CAACW,QAAQ;IAC5B;AACF"}
@@ -3,6 +3,6 @@ interface ExtensionKitProps {
3
3
  openAssetHQHandler: openAssetHQType;
4
4
  dir?: "ltr" | "rtl";
5
5
  }
6
- export declare const ExtensionKit: ({ dir, openAssetHQHandler, }: ExtensionKitProps) => (import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Node<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>)[];
6
+ export declare const ExtensionKit: ({ dir, openAssetHQHandler, }: ExtensionKitProps) => (import("@tiptap/core").Node<any, any> | import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>)[];
7
7
  export default ExtensionKit;
8
8
  //# sourceMappingURL=extension-kit.d.ts.map
@@ -80,7 +80,7 @@ export const ServersideTiptapBody = ({ body, additionalContext })=>{
80
80
  if (!body) return null;
81
81
  // Initialize i18n synchronously
82
82
  initializeI18n(additionalContext);
83
- const textDirection = i18n.dir();
83
+ const textDirection = additionalContext?.textDirection || i18n.dir();
84
84
  return /*#__PURE__*/ _jsx(_Fragment, {
85
85
  children: /*#__PURE__*/ _jsx("div", {
86
86
  className: "tiptap ProseMirror min-h-full",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"sourcesContent":["import React from 'react';\nimport { generateHTML } from '@tiptap/html';\nimport i18n from 'i18next';\n// import { Text } from \"@tiptap/extension-text\";\nimport {\n StarterKit,\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n Subscript,\n // TableOfContents,\n Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n Link,\n // ImageUpload,\n // ImageBlock,\n // VideoBlock,\n // AudioBlock,\n // Youtube,\n // Instagram,\n // Columns,\n Paragraph,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n // Twitter,\n // Linkedin,\n // Tiktok,\n // Facebook,\n // Instagram,\n // Youtube,\n} from '../index.js';\n\nimport { TwitterBlockServerside } from './TwitterBlockServerside.js';\nimport { YouTubeServerside } from './YouTubeServerside.js';\nimport { InstagramServerside } from './InstagramServerside.js';\nimport { ImageBlockServerside } from './ImageBlockServerside.js';\nimport { TiktokServerside } from './TiktokServerside.js';\nimport { LinkedinServerside } from './LinkedinServerside.js';\nimport { FacebookServerside } from './FacebookServerside.js';\nimport { VideoBlockServerside } from './VideoBlockServerside.js';\nimport { InsideLinkServerside } from './InsideLinkServerside.js';\nimport { IFrameServerside } from './IFrameServerside.js';\nimport { AdditionalContextType } from '../../features/BlockEditor/types.js';\n\nconst DEFAULT_LANG = 'en';\n\ntype Props = {\n body: any;\n additionalContext?: AdditionalContextType;\n};\n\n// Initialize i18n based on additionalContext\nconst initializeI18n = (additionalContext?: AdditionalContextType) => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {}\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations\n }\n }\n });\n return;\n }\n\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {}\n });\n }\n};\n\nexport const ServersideTiptapBody = ({ body, additionalContext }: Props) => {\n if (!body) return null;\n\n // Initialize i18n synchronously\n initializeI18n(additionalContext);\n\n const textDirection = i18n.dir();\n\n return (\n <>\n <div\n className='tiptap ProseMirror min-h-full'\n dir={textDirection}\n dangerouslySetInnerHTML={{\n __html: generateHTML(body, [\n // Text,\n StarterKit.configure({\n paragraph: false,\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false\n }),\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n // Subscript,\n // TableOfContents,\n // Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // SlashCommand,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n ImageBlockServerside,\n VideoBlockServerside,\n // AudioBlock,\n // Columns,\n TwitterBlockServerside,\n InstagramServerside,\n YouTubeServerside,\n Paragraph,\n Superscript,\n Subscript,\n Link,\n TiktokServerside,\n LinkedinServerside,\n FacebookServerside,\n InsideLinkServerside,\n IFrameServerside,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n ])\n }}\n />\n </>\n );\n};\n"],"names":["React","generateHTML","i18n","StarterKit","Highlight","Underline","Placeholder","TextAlign","TextStyle","FontFamily","Typography","Subscript","Superscript","CodeBlock","Table","HorizontalRule","Heading","Document","BlockquoteFigure","Link","Paragraph","TableCell","TableHeader","TableRow","Column","LinkPreview","TwitterBlockServerside","YouTubeServerside","InstagramServerside","ImageBlockServerside","TiktokServerside","LinkedinServerside","FacebookServerside","VideoBlockServerside","InsideLinkServerside","IFrameServerside","DEFAULT_LANG","initializeI18n","additionalContext","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","ServersideTiptapBody","body","textDirection","dir","div","className","dangerouslySetInnerHTML","__html","configure","paragraph","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"sourcesContent":["import React from 'react';\nimport { generateHTML } from '@tiptap/html';\nimport i18n from 'i18next';\n// import { Text } from \"@tiptap/extension-text\";\nimport {\n StarterKit,\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n Subscript,\n // TableOfContents,\n Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n Link,\n // ImageUpload,\n // ImageBlock,\n // VideoBlock,\n // AudioBlock,\n // Youtube,\n // Instagram,\n // Columns,\n Paragraph,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n // Twitter,\n // Linkedin,\n // Tiktok,\n // Facebook,\n // Instagram,\n // Youtube,\n} from '../index.js';\n\nimport { TwitterBlockServerside } from './TwitterBlockServerside.js';\nimport { YouTubeServerside } from './YouTubeServerside.js';\nimport { InstagramServerside } from './InstagramServerside.js';\nimport { ImageBlockServerside } from './ImageBlockServerside.js';\nimport { TiktokServerside } from './TiktokServerside.js';\nimport { LinkedinServerside } from './LinkedinServerside.js';\nimport { FacebookServerside } from './FacebookServerside.js';\nimport { VideoBlockServerside } from './VideoBlockServerside.js';\nimport { InsideLinkServerside } from './InsideLinkServerside.js';\nimport { IFrameServerside } from './IFrameServerside.js';\nimport { AdditionalContextType } from '../../features/BlockEditor/types.js';\n\nconst DEFAULT_LANG = 'en';\n\ntype Props = {\n body: any;\n additionalContext?: AdditionalContextType;\n};\n\n// Initialize i18n based on additionalContext\nconst initializeI18n = (additionalContext?: AdditionalContextType) => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {}\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations\n }\n }\n });\n return;\n }\n\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {}\n });\n }\n};\n\nexport const ServersideTiptapBody = ({ body, additionalContext }: Props) => {\n if (!body) return null;\n\n // Initialize i18n synchronously\n initializeI18n(additionalContext);\n\n const textDirection = additionalContext?.textDirection || i18n.dir();\n\n return (\n <>\n <div\n className='tiptap ProseMirror min-h-full'\n dir={textDirection}\n dangerouslySetInnerHTML={{\n __html: generateHTML(body, [\n // Text,\n StarterKit.configure({\n paragraph: false,\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false\n }),\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n // Subscript,\n // TableOfContents,\n // Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // SlashCommand,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n ImageBlockServerside,\n VideoBlockServerside,\n // AudioBlock,\n // Columns,\n TwitterBlockServerside,\n InstagramServerside,\n YouTubeServerside,\n Paragraph,\n Superscript,\n Subscript,\n Link,\n TiktokServerside,\n LinkedinServerside,\n FacebookServerside,\n InsideLinkServerside,\n IFrameServerside,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n ])\n }}\n />\n </>\n );\n};\n"],"names":["React","generateHTML","i18n","StarterKit","Highlight","Underline","Placeholder","TextAlign","TextStyle","FontFamily","Typography","Subscript","Superscript","CodeBlock","Table","HorizontalRule","Heading","Document","BlockquoteFigure","Link","Paragraph","TableCell","TableHeader","TableRow","Column","LinkPreview","TwitterBlockServerside","YouTubeServerside","InstagramServerside","ImageBlockServerside","TiktokServerside","LinkedinServerside","FacebookServerside","VideoBlockServerside","InsideLinkServerside","IFrameServerside","DEFAULT_LANG","initializeI18n","additionalContext","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","ServersideTiptapBody","body","textDirection","dir","div","className","dangerouslySetInnerHTML","__html","configure","paragraph","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { Editor } from "@tiptap/react";
3
+ export declare const Sidebar: React.MemoExoticComponent<({ editor, isOpen, onClose, }: {
4
+ editor: Editor;
5
+ isOpen?: boolean;
6
+ onClose: () => void;
7
+ }) => React.JSX.Element>;
8
+ //# sourceMappingURL=Sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC,eAAO,MAAM,OAAO,2DAKf;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,uBA2BF,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { memo, useCallback } from "react";
5
+ import { TableOfContents } from "../TableOfContents/index.js";
6
+ import { cn } from "../../lib/utils/index.js";
7
+ export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
8
+ const handlePotentialClose = useCallback(()=>{
9
+ if (window.innerWidth < 1024) {
10
+ onClose();
11
+ }
12
+ }, [
13
+ onClose
14
+ ]);
15
+ const windowClassName = cn("absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all", "dark:bg-black lg:dark:bg-black/30", !isOpen && "border-r-transparent", isOpen && "w-80 border-r border-r-neutral-200 dark:border-r-neutral-800");
16
+ return /*#__PURE__*/ _jsx("div", {
17
+ className: windowClassName,
18
+ children: /*#__PURE__*/ _jsx("div", {
19
+ className: "w-full h-full overflow-hidden",
20
+ children: /*#__PURE__*/ _jsx("div", {
21
+ className: "w-full h-full p-2 overflow-auto",
22
+ children: /*#__PURE__*/ _jsx(TableOfContents, {
23
+ onItemClick: handlePotentialClose,
24
+ editor: editor
25
+ })
26
+ })
27
+ })
28
+ });
29
+ });
30
+ Sidebar.displayName = "TableOfContentSidepanel";
31
+
32
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { memo, useCallback } from \"react\";\nimport { Editor } from \"@tiptap/react\";\nimport { TableOfContents } from \"../TableOfContents/index.js\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const Sidebar = memo(\n ({\n editor,\n isOpen,\n onClose,\n }: {\n editor: Editor;\n isOpen?: boolean;\n onClose: () => void;\n }) => {\n const handlePotentialClose = useCallback(() => {\n if (window.innerWidth < 1024) {\n onClose();\n }\n }, [onClose]);\n\n const windowClassName = cn(\n \"absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all\",\n \"dark:bg-black lg:dark:bg-black/30\",\n !isOpen && \"border-r-transparent\",\n isOpen && \"w-80 border-r border-r-neutral-200 dark:border-r-neutral-800\"\n );\n\n return (\n <div className={windowClassName}>\n <div className=\"w-full h-full overflow-hidden\">\n <div className=\"w-full h-full p-2 overflow-auto\">\n <TableOfContents\n onItemClick={handlePotentialClose}\n editor={editor}\n />\n </div>\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"TableOfContentSidepanel\";\n"],"names":["React","memo","useCallback","TableOfContents","cn","Sidebar","editor","isOpen","onClose","handlePotentialClose","window","innerWidth","windowClassName","div","className","onItemClick","displayName"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AAE1C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,wBAAUJ,KACrB,CAAC,EACCK,MAAM,EACNC,MAAM,EACNC,OAAO,EAKR;IACC,MAAMC,uBAAuBP,YAAY;QACvC,IAAIQ,OAAOC,UAAU,GAAG,MAAM;YAC5BH;QACF;IACF,GAAG;QAACA;KAAQ;IAEZ,MAAMI,kBAAkBR,GACtB,0IACA,qCACA,CAACG,UAAU,wBACXA,UAAU;IAGZ,qBACE,KAACM;QAAIC,WAAWF;kBACd,cAAA,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACX;oBACCY,aAAaN;oBACbH,QAAQA;;;;;AAMpB,GACA;AAEFD,QAAQW,WAAW,GAAG"}
@@ -0,0 +1,2 @@
1
+ export * from "./Sidebar.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./Sidebar.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"sourcesContent":["export * from \"./Sidebar.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { Editor as CoreEditor } from "@tiptap/core";
3
+ export type TableOfContentsProps = {
4
+ editor: CoreEditor;
5
+ onItemClick?: () => void;
6
+ };
7
+ export declare const TableOfContents: React.MemoExoticComponent<({ editor, onItemClick }: TableOfContentsProps) => React.JSX.Element>;
8
+ //# sourceMappingURL=TableOfContents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAOpD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,sDACA,oBAAoB,uBAoD/C,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { memo, useEffect, useState } from "react";
4
+ import { cn } from "../../lib/utils/index.js";
5
+ // import { toTranslationKey } from '@/languages'
6
+ import { useTranslation } from "@payloadcms/ui/providers/Translation";
7
+ export const TableOfContents = /*#__PURE__*/ memo(({ editor, onItemClick })=>{
8
+ const [data, setData] = useState(null);
9
+ useEffect(()=>{
10
+ const handler = ({ editor: currentEditor })=>{
11
+ setData({
12
+ ...currentEditor.extensionStorage.tableOfContents
13
+ });
14
+ };
15
+ handler({
16
+ editor
17
+ });
18
+ editor.on("update", handler);
19
+ editor.on("selectionUpdate", handler);
20
+ return ()=>{
21
+ editor.off("update", handler);
22
+ editor.off("selectionUpdate", handler);
23
+ };
24
+ }, [
25
+ editor
26
+ ]);
27
+ const { i18n } = useTranslation();
28
+ return /*#__PURE__*/ _jsxs("div", {
29
+ lang: i18n.language,
30
+ children: [
31
+ /*#__PURE__*/ _jsx("div", {
32
+ className: "mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400"
33
+ }),
34
+ data && data.content.length > 0 ? /*#__PURE__*/ _jsx("div", {
35
+ className: "flex flex-col gap-1",
36
+ children: data.content.map((item)=>/*#__PURE__*/ _jsxs("a", {
37
+ href: `#${item.id}`,
38
+ style: {
39
+ marginLeft: `${1 * item.level - 1}rem`
40
+ },
41
+ onClick: onItemClick,
42
+ className: cn("block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full", item.isActive && "text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900"),
43
+ children: [
44
+ item.itemIndex,
45
+ ". ",
46
+ item.textContent
47
+ ]
48
+ }, item.id))
49
+ }) : /*#__PURE__*/ _jsx("div", {
50
+ className: "text-sm text-neutral-500"
51
+ })
52
+ ]
53
+ });
54
+ });
55
+ TableOfContents.displayName = "TableOfContents";
56
+
57
+ //# sourceMappingURL=TableOfContents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Editor as CoreEditor } from \"@tiptap/core\";\nimport { memo, useEffect, useState } from \"react\";\nimport { TableOfContentsStorage } from \"@tiptap-pro/extension-table-of-contents\";\nimport { cn } from \"../../lib/utils/index.js\";\n// import { toTranslationKey } from '@/languages'\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\n\nexport type TableOfContentsProps = {\n editor: CoreEditor;\n onItemClick?: () => void;\n};\n\nexport const TableOfContents = memo(\n ({ editor, onItemClick }: TableOfContentsProps) => {\n const [data, setData] = useState<TableOfContentsStorage | null>(null);\n\n useEffect(() => {\n const handler = ({ editor: currentEditor }: { editor: CoreEditor }) => {\n setData({ ...currentEditor.extensionStorage.tableOfContents });\n };\n\n handler({ editor });\n\n editor.on(\"update\", handler);\n editor.on(\"selectionUpdate\", handler);\n\n return () => {\n editor.off(\"update\", handler);\n editor.off(\"selectionUpdate\", handler);\n };\n }, [editor]);\n const { i18n } = useTranslation();\n\n return (\n <div lang={i18n.language}>\n <div className=\"mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400\">\n {/* {toTranslationKey('table_of_contents')}Table of Contents */}\n </div>\n {data && data.content.length > 0 ? (\n <div className=\"flex flex-col gap-1\">\n {data.content.map((item) => (\n <a\n key={item.id}\n href={`#${item.id}`}\n style={{ marginLeft: `${1 * item.level - 1}rem` }}\n onClick={onItemClick}\n className={cn(\n \"block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full\",\n item.isActive &&\n \"text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900\"\n )}\n >\n {item.itemIndex}. {item.textContent}\n </a>\n ))}\n </div>\n ) : (\n <div className=\"text-sm text-neutral-500\">\n {/* Start adding headlines to your document */}\n {/* {toTranslationKey(\"start_adding_headlines_to_your_document\")} */}\n </div>\n )}\n </div>\n );\n }\n);\n\nTableOfContents.displayName = \"TableOfContents\";\n"],"names":["React","memo","useEffect","useState","cn","useTranslation","TableOfContents","editor","onItemClick","data","setData","handler","currentEditor","extensionStorage","tableOfContents","on","off","i18n","div","lang","language","className","content","length","map","item","a","href","id","style","marginLeft","level","onClick","isActive","itemIndex","textContent","displayName"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAElD,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,iDAAiD;AACjD,SAASC,cAAc,QAAQ,uCAAuC;AAOtE,OAAO,MAAMC,gCAAkBL,KAC7B,CAAC,EAAEM,MAAM,EAAEC,WAAW,EAAwB;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGP,SAAwC;IAEhED,UAAU;QACR,MAAMS,UAAU,CAAC,EAAEJ,QAAQK,aAAa,EAA0B;YAChEF,QAAQ;gBAAE,GAAGE,cAAcC,gBAAgB,CAACC,eAAe;YAAC;QAC9D;QAEAH,QAAQ;YAAEJ;QAAO;QAEjBA,OAAOQ,EAAE,CAAC,UAAUJ;QACpBJ,OAAOQ,EAAE,CAAC,mBAAmBJ;QAE7B,OAAO;YACLJ,OAAOS,GAAG,CAAC,UAAUL;YACrBJ,OAAOS,GAAG,CAAC,mBAAmBL;QAChC;IACF,GAAG;QAACJ;KAAO;IACX,MAAM,EAAEU,IAAI,EAAE,GAAGZ;IAEjB,qBACE,MAACa;QAAIC,MAAMF,KAAKG,QAAQ;;0BACtB,KAACF;gBAAIG,WAAU;;YAGdZ,QAAQA,KAAKa,OAAO,CAACC,MAAM,GAAG,kBAC7B,KAACL;gBAAIG,WAAU;0BACZZ,KAAKa,OAAO,CAACE,GAAG,CAAC,CAACC,qBACjB,MAACC;wBAECC,MAAM,CAAC,CAAC,EAAEF,KAAKG,EAAE,EAAE;wBACnBC,OAAO;4BAAEC,YAAY,GAAG,IAAIL,KAAKM,KAAK,GAAG,EAAE,GAAG,CAAC;wBAAC;wBAChDC,SAASxB;wBACTa,WAAWjB,GACT,sLACAqB,KAAKQ,QAAQ,IACX;;4BAGHR,KAAKS,SAAS;4BAAC;4BAAGT,KAAKU,WAAW;;uBAV9BV,KAAKG,EAAE;+BAelB,KAACV;gBAAIG,WAAU;;;;AAOvB,GACA;AAEFf,gBAAgB8B,WAAW,GAAG"}
@@ -0,0 +1,2 @@
1
+ export * from "./TableOfContents.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./TableOfContents.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"sourcesContent":["export * from \"./TableOfContents.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBlockEditor.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAQlD,OAAO,EAAmB,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;CACF;AAOD,eAAO,MAAM,cAAc,6FAOxB;IACD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;;;;;CAkGA,CAAC"}
1
+ {"version":3,"file":"useBlockEditor.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAQlD,OAAO,EAAmB,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;CACF;AAOD,eAAO,MAAM,cAAc,6FAOxB;IACD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;;;;;CAiGA,CAAC"}
@@ -18,7 +18,6 @@ export const useBlockEditor = ({ content, handleChange, openAssetHQHandler, addi
18
18
  return "\n\n" + content + "\n\n";
19
19
  }
20
20
  });
21
- const dir = i18next.dir();
22
21
  const editor = useEditor({
23
22
  content: content?.json ?? content ?? {},
24
23
  immediatelyRender: false,
@@ -44,9 +43,7 @@ export const useBlockEditor = ({ content, handleChange, openAssetHQHandler, addi
44
43
  onUpdate: ({ editor })=>{
45
44
  handleChange(editor?.getJSON() ?? {});
46
45
  }
47
- }, [
48
- dir
49
- ]);
46
+ }, []);
50
47
  useEffect(()=>{
51
48
  if (editor?.storage?.aiCommand) {
52
49
  editor.storage.aiCommand.title = additionalContext?.title ?? "";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\n\nimport { Editor, useEditor } from \"@tiptap/react\";\n\nimport ExtensionKit from \"../extensions/extension-kit.js\";\nimport { EditorUser } from \"../features/BlockEditor/types.js\";\nimport { useSidebar } from \"./useSidebar.js\";\n\nimport TurndownService from \"turndown\";\nimport { gfm } from \"turndown-plugin-gfm\";\nimport { AssetReturnType, openAssetHQType } from \"../types.js\";\nimport i18next from \"i18next\";\n\ndeclare global {\n interface Window {\n editor: Editor | null;\n }\n}\n\nconst dummyAssetHqHandler = (\n listener: (asset: AssetReturnType) => void,\n file?: File\n) => {};\n\nexport const useBlockEditor = ({\n content,\n handleChange,\n openAssetHQHandler,\n additionalContext,\n autoFocus,\n isEditable,\n}: {\n content: { html: string; json: any };\n handleChange?: (data: any) => void;\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: Record<string, any>;\n autoFocus: boolean;\n isEditable?: boolean;\n}) => {\n const leftSidebar = useSidebar();\n\n const turndownService = new TurndownService({});\n // Use the gfm plugin\n turndownService.use(gfm);\n turndownService.addRule(\"twitter\", {\n filter: \"div\",\n replacement: function (content) {\n return \"\\n\\n\" + content + \"\\n\\n\";\n },\n });\n const dir = i18next.dir()\n\n const editor = useEditor(\n {\n content: content?.json ?? content ?? {},\n immediatelyRender: false,\n autofocus: autoFocus ?? true,\n editable: isEditable ?? true,\n onCreate: ({ editor }) => ({\n // provider?.on('synced', () => {\n // if (editor.isEmpty) {\n // editor.commands.setContent(initialContent)\n // }\n // })\n }),\n extensions: [\n ...ExtensionKit({\n dir: i18next.dir(),\n openAssetHQHandler: openAssetHQHandler ?? dummyAssetHqHandler,\n // provider,\n }),\n // Collaboration.configure({\n // document: ydoc,\n // }),\n // CollaborationCursor.configure({\n // provider,\n // user: {\n // name: randomElement(userNames),\n // color: randomElement(userColors),\n // },\n // }),\n ],\n editorProps: {\n attributes: {\n languages: i18next.language,\n autocomplete: \"off\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n class: \"min-h-full\",\n },\n },\n onUpdate: ({ editor }) => {\n handleChange(editor?.getJSON() ?? {});\n },\n },\n [dir]\n );\n\n useEffect(() => {\n if (editor?.storage?.aiCommand) {\n editor.storage.aiCommand.title = additionalContext?.title ?? \"\";\n editor.storage.aiCommand.language = additionalContext?.language ?? \"\";\n }\n }, [editor, additionalContext]);\n\n const users = useMemo(() => {\n if (!editor?.storage?.collaborationCursor?.users) {\n return [];\n }\n\n return editor?.storage?.collaborationCursor?.users.map(\n (user: EditorUser) => {\n const names = user.name?.split(\" \");\n const firstName = names?.[0];\n const lastName = names?.[names.length - 1];\n const initials = `${firstName?.[0] || \"?\"}${lastName?.[0] || \"?\"}`;\n\n return { ...user, initials: initials.length ? initials : \"?\" };\n }\n );\n }, [editor?.storage.collaborationCursor?.users]);\n\n const characterCount = editor?.storage.characterCount || {\n characters: () => 0,\n words: () => 0,\n };\n\n // useEffect(() => {\n // provider?.on('status', (event: { status: WebSocketStatus }) => {\n // setCollabState(event.status)\n // })\n // }, [provider])\n\n if (typeof window != \"undefined\") window.editor = editor;\n\n return { editor, users, characterCount, leftSidebar };\n};\n"],"names":["useEffect","useMemo","useEditor","ExtensionKit","useSidebar","TurndownService","gfm","i18next","dummyAssetHqHandler","listener","file","useBlockEditor","content","handleChange","openAssetHQHandler","additionalContext","autoFocus","isEditable","leftSidebar","turndownService","use","addRule","filter","replacement","dir","editor","json","immediatelyRender","autofocus","editable","onCreate","extensions","editorProps","attributes","languages","language","autocomplete","autocorrect","autocapitalize","class","onUpdate","getJSON","storage","aiCommand","title","users","collaborationCursor","map","user","names","name","split","firstName","lastName","length","initials","characterCount","characters","words","window"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAE3C,SAAiBC,SAAS,QAAQ,gBAAgB;AAElD,OAAOC,kBAAkB,iCAAiC;AAE1D,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,qBAAqB,WAAW;AACvC,SAASC,GAAG,QAAQ,sBAAsB;AAE1C,OAAOC,aAAa,UAAU;AAQ9B,MAAMC,sBAAsB,CAC1BC,UACAC,QACI;AAEN,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,YAAY,EACZC,kBAAkB,EAClBC,iBAAiB,EACjBC,SAAS,EACTC,UAAU,EAQX;IACC,MAAMC,cAAcd;IAEpB,MAAMe,kBAAkB,IAAId,gBAAgB,CAAC;IAC7C,qBAAqB;IACrBc,gBAAgBC,GAAG,CAACd;IACpBa,gBAAgBE,OAAO,CAAC,WAAW;QACjCC,QAAQ;QACRC,aAAa,SAAUX,OAAO;YAC5B,OAAO,SAASA,UAAU;QAC5B;IACF;IACD,MAAMY,MAAMjB,QAAQiB,GAAG;IAEtB,MAAMC,SAASvB,UACb;QACEU,SAASA,SAASc,QAAQd,WAAW,CAAC;QACtCe,mBAAmB;QACnBC,WAAWZ,aAAa;QACxBa,UAAUZ,cAAc;QACxBa,UAAU,CAAC,EAAEL,MAAM,EAAE,GAAM,CAAA;YAM3B,CAAA;QACAM,YAAY;eACP5B,aAAa;gBACdqB,KAAKjB,QAAQiB,GAAG;gBAChBV,oBAAoBA,sBAAsBN;YAE5C;SAWD;QACDwB,aAAa;YACXC,YAAY;gBACVC,WAAW3B,QAAQ4B,QAAQ;gBAC3BC,cAAc;gBACdC,aAAa;gBACbC,gBAAgB;gBAChBC,OAAO;YACT;QACF;QACAC,UAAU,CAAC,EAAEf,MAAM,EAAE;YACnBZ,aAAaY,QAAQgB,aAAa,CAAC;QACrC;IACF,GACA;QAACjB;KAAI;IAGPxB,UAAU;QACR,IAAIyB,QAAQiB,SAASC,WAAW;YAC9BlB,OAAOiB,OAAO,CAACC,SAAS,CAACC,KAAK,GAAG7B,mBAAmB6B,SAAS;YAC7DnB,OAAOiB,OAAO,CAACC,SAAS,CAACR,QAAQ,GAAGpB,mBAAmBoB,YAAY;QACrE;IACF,GAAG;QAACV;QAAQV;KAAkB;IAE9B,MAAM8B,QAAQ5C,QAAQ;QACpB,IAAI,CAACwB,QAAQiB,SAASI,qBAAqBD,OAAO;YAChD,OAAO,EAAE;QACX;QAEA,OAAOpB,QAAQiB,SAASI,qBAAqBD,MAAME,IACjD,CAACC;YACC,MAAMC,QAAQD,KAAKE,IAAI,EAAEC,MAAM;YAC/B,MAAMC,YAAYH,OAAO,CAAC,EAAE;YAC5B,MAAMI,WAAWJ,OAAO,CAACA,MAAMK,MAAM,GAAG,EAAE;YAC1C,MAAMC,WAAW,GAAGH,WAAW,CAAC,EAAE,IAAI,MAAMC,UAAU,CAAC,EAAE,IAAI,KAAK;YAElE,OAAO;gBAAE,GAAGL,IAAI;gBAAEO,UAAUA,SAASD,MAAM,GAAGC,WAAW;YAAI;QAC/D;IAEJ,GAAG;QAAC9B,QAAQiB,QAAQI,qBAAqBD;KAAM;IAE/C,MAAMW,iBAAiB/B,QAAQiB,QAAQc,kBAAkB;QACvDC,YAAY,IAAM;QAClBC,OAAO,IAAM;IACf;IAEA,oBAAoB;IACpB,qEAAqE;IACrE,mCAAmC;IACnC,OAAO;IACP,iBAAiB;IAEjB,IAAI,OAAOC,UAAU,aAAaA,OAAOlC,MAAM,GAAGA;IAElD,OAAO;QAAEA;QAAQoB;QAAOW;QAAgBtC;IAAY;AACtD,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/fields/TiptapEditor/hooks/useBlockEditor.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useMemo } from \"react\";\n\nimport { Editor, useEditor } from \"@tiptap/react\";\n\nimport ExtensionKit from \"../extensions/extension-kit.js\";\nimport { EditorUser } from \"../features/BlockEditor/types.js\";\nimport { useSidebar } from \"./useSidebar.js\";\n\nimport TurndownService from \"turndown\";\nimport { gfm } from \"turndown-plugin-gfm\";\nimport { AssetReturnType, openAssetHQType } from \"../types.js\";\nimport i18next from \"i18next\";\n\ndeclare global {\n interface Window {\n editor: Editor | null;\n }\n}\n\nconst dummyAssetHqHandler = (\n listener: (asset: AssetReturnType) => void,\n file?: File\n) => {};\n\nexport const useBlockEditor = ({\n content,\n handleChange,\n openAssetHQHandler,\n additionalContext,\n autoFocus,\n isEditable,\n}: {\n content: { html: string; json: any };\n handleChange?: (data: any) => void;\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: Record<string, any>;\n autoFocus: boolean;\n isEditable?: boolean;\n}) => {\n const leftSidebar = useSidebar();\n\n const turndownService = new TurndownService({});\n // Use the gfm plugin\n turndownService.use(gfm);\n turndownService.addRule(\"twitter\", {\n filter: \"div\",\n replacement: function (content) {\n return \"\\n\\n\" + content + \"\\n\\n\";\n },\n });\n\n const editor = useEditor(\n {\n content: content?.json ?? content ?? {},\n immediatelyRender: false,\n autofocus: autoFocus ?? true,\n editable: isEditable ?? true,\n onCreate: ({ editor }) => ({\n // provider?.on('synced', () => {\n // if (editor.isEmpty) {\n // editor.commands.setContent(initialContent)\n // }\n // })\n }),\n extensions: [\n ...ExtensionKit({\n dir: i18next.dir(),\n openAssetHQHandler: openAssetHQHandler ?? dummyAssetHqHandler,\n // provider,\n }),\n // Collaboration.configure({\n // document: ydoc,\n // }),\n // CollaborationCursor.configure({\n // provider,\n // user: {\n // name: randomElement(userNames),\n // color: randomElement(userColors),\n // },\n // }),\n ],\n editorProps: {\n attributes: {\n languages: i18next.language,\n autocomplete: \"off\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n class: \"min-h-full\",\n },\n },\n onUpdate: ({ editor }) => {\n handleChange(editor?.getJSON() ?? {});\n },\n },\n []\n );\n\n useEffect(() => {\n if (editor?.storage?.aiCommand) {\n editor.storage.aiCommand.title = additionalContext?.title ?? \"\";\n editor.storage.aiCommand.language = additionalContext?.language ?? \"\";\n }\n }, [editor, additionalContext]);\n\n const users = useMemo(() => {\n if (!editor?.storage?.collaborationCursor?.users) {\n return [];\n }\n\n return editor?.storage?.collaborationCursor?.users.map(\n (user: EditorUser) => {\n const names = user.name?.split(\" \");\n const firstName = names?.[0];\n const lastName = names?.[names.length - 1];\n const initials = `${firstName?.[0] || \"?\"}${lastName?.[0] || \"?\"}`;\n\n return { ...user, initials: initials.length ? initials : \"?\" };\n }\n );\n }, [editor?.storage.collaborationCursor?.users]);\n\n const characterCount = editor?.storage.characterCount || {\n characters: () => 0,\n words: () => 0,\n };\n\n // useEffect(() => {\n // provider?.on('status', (event: { status: WebSocketStatus }) => {\n // setCollabState(event.status)\n // })\n // }, [provider])\n\n if (typeof window != \"undefined\") window.editor = editor;\n\n return { editor, users, characterCount, leftSidebar };\n};\n"],"names":["useEffect","useMemo","useEditor","ExtensionKit","useSidebar","TurndownService","gfm","i18next","dummyAssetHqHandler","listener","file","useBlockEditor","content","handleChange","openAssetHQHandler","additionalContext","autoFocus","isEditable","leftSidebar","turndownService","use","addRule","filter","replacement","editor","json","immediatelyRender","autofocus","editable","onCreate","extensions","dir","editorProps","attributes","languages","language","autocomplete","autocorrect","autocapitalize","class","onUpdate","getJSON","storage","aiCommand","title","users","collaborationCursor","map","user","names","name","split","firstName","lastName","length","initials","characterCount","characters","words","window"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,QAAQ;AAE3C,SAAiBC,SAAS,QAAQ,gBAAgB;AAElD,OAAOC,kBAAkB,iCAAiC;AAE1D,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAOC,qBAAqB,WAAW;AACvC,SAASC,GAAG,QAAQ,sBAAsB;AAE1C,OAAOC,aAAa,UAAU;AAQ9B,MAAMC,sBAAsB,CAC1BC,UACAC,QACI;AAEN,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,YAAY,EACZC,kBAAkB,EAClBC,iBAAiB,EACjBC,SAAS,EACTC,UAAU,EAQX;IACC,MAAMC,cAAcd;IAEpB,MAAMe,kBAAkB,IAAId,gBAAgB,CAAC;IAC7C,qBAAqB;IACrBc,gBAAgBC,GAAG,CAACd;IACpBa,gBAAgBE,OAAO,CAAC,WAAW;QACjCC,QAAQ;QACRC,aAAa,SAAUX,OAAO;YAC5B,OAAO,SAASA,UAAU;QAC5B;IACF;IAEA,MAAMY,SAAStB,UACb;QACEU,SAASA,SAASa,QAAQb,WAAW,CAAC;QACtCc,mBAAmB;QACnBC,WAAWX,aAAa;QACxBY,UAAUX,cAAc;QACxBY,UAAU,CAAC,EAAEL,MAAM,EAAE,GAAM,CAAA;YAM3B,CAAA;QACAM,YAAY;eACP3B,aAAa;gBACd4B,KAAKxB,QAAQwB,GAAG;gBAChBjB,oBAAoBA,sBAAsBN;YAE5C;SAWD;QACDwB,aAAa;YACXC,YAAY;gBACVC,WAAW3B,QAAQ4B,QAAQ;gBAC3BC,cAAc;gBACdC,aAAa;gBACbC,gBAAgB;gBAChBC,OAAO;YACT;QACF;QACAC,UAAU,CAAC,EAAEhB,MAAM,EAAE;YACnBX,aAAaW,QAAQiB,aAAa,CAAC;QACrC;IACF,GACA,EAAE;IAGJzC,UAAU;QACR,IAAIwB,QAAQkB,SAASC,WAAW;YAC9BnB,OAAOkB,OAAO,CAACC,SAAS,CAACC,KAAK,GAAG7B,mBAAmB6B,SAAS;YAC7DpB,OAAOkB,OAAO,CAACC,SAAS,CAACR,QAAQ,GAAGpB,mBAAmBoB,YAAY;QACrE;IACF,GAAG;QAACX;QAAQT;KAAkB;IAE9B,MAAM8B,QAAQ5C,QAAQ;QACpB,IAAI,CAACuB,QAAQkB,SAASI,qBAAqBD,OAAO;YAChD,OAAO,EAAE;QACX;QAEA,OAAOrB,QAAQkB,SAASI,qBAAqBD,MAAME,IACjD,CAACC;YACC,MAAMC,QAAQD,KAAKE,IAAI,EAAEC,MAAM;YAC/B,MAAMC,YAAYH,OAAO,CAAC,EAAE;YAC5B,MAAMI,WAAWJ,OAAO,CAACA,MAAMK,MAAM,GAAG,EAAE;YAC1C,MAAMC,WAAW,GAAGH,WAAW,CAAC,EAAE,IAAI,MAAMC,UAAU,CAAC,EAAE,IAAI,KAAK;YAElE,OAAO;gBAAE,GAAGL,IAAI;gBAAEO,UAAUA,SAASD,MAAM,GAAGC,WAAW;YAAI;QAC/D;IAEJ,GAAG;QAAC/B,QAAQkB,QAAQI,qBAAqBD;KAAM;IAE/C,MAAMW,iBAAiBhC,QAAQkB,QAAQc,kBAAkB;QACvDC,YAAY,IAAM;QAClBC,OAAO,IAAM;IACf;IAEA,oBAAoB;IACpB,qEAAqE;IACrE,mCAAmC;IACnC,OAAO;IACP,iBAAiB;IAEjB,IAAI,OAAOC,UAAU,aAAaA,OAAOnC,MAAM,GAAGA;IAElD,OAAO;QAAEA;QAAQqB;QAAOW;QAAgBtC;IAAY;AACtD,EAAE"}