@powerhousedao/powerhouse-vetra-packages 6.2.0-dev.2 → 6.2.0-dev.4

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 (55) hide show
  1. package/dist/browser/{connect-ZnLjvmRt.js → connect-DPNyOTBV.js} +4 -4
  2. package/dist/browser/{connect-ZnLjvmRt.js.map → connect-DPNyOTBV.js.map} +1 -1
  3. package/dist/browser/{dist-C1nRM9t2.js → dist-Bha1Om6O.js} +4 -25
  4. package/dist/browser/dist-Bha1Om6O.js.map +1 -0
  5. package/dist/browser/{dist-DLFI75Zd.js → dist-DnQpckQ8.js} +2 -2
  6. package/dist/browser/{dist-DLFI75Zd.js.map → dist-DnQpckQ8.js.map} +1 -1
  7. package/dist/browser/{document-drive-oqv68jDU.js → document-drive-CDaY4aIj.js} +5 -7
  8. package/dist/browser/document-drive-CDaY4aIj.js.map +1 -0
  9. package/dist/browser/document-models/index.js +1 -1
  10. package/dist/browser/{editor-DC3bigBu.js → editor-BtOSWTjb.js} +5 -5
  11. package/dist/browser/{editor-DC3bigBu.js.map → editor-BtOSWTjb.js.map} +1 -1
  12. package/dist/browser/{editor-CoTq6fqT.js → editor-CJFM1rC9.js} +6 -6
  13. package/dist/browser/{editor-CoTq6fqT.js.map → editor-CJFM1rC9.js.map} +1 -1
  14. package/dist/browser/editors/document-model-editor/module.js +1 -1
  15. package/dist/browser/editors/generic-drive-explorer/index.js +4 -4
  16. package/dist/browser/editors/generic-drive-explorer/module.js +1 -1
  17. package/dist/browser/{folder-view-DmYBf2pP.js → folder-view-DAhpWssS.js} +3 -3
  18. package/dist/browser/{folder-view-DmYBf2pP.js.map → folder-view-DAhpWssS.js.map} +1 -1
  19. package/dist/browser/{graphql-editor-CiGd_Li7.js → graphql-editor-Dwgpm08w.js} +3 -3
  20. package/dist/browser/{graphql-editor-CiGd_Li7.js.map → graphql-editor-Dwgpm08w.js.map} +1 -1
  21. package/dist/browser/index.js +2 -2
  22. package/dist/browser/{json-editor-sEqd5piI.js → json-editor-SKLjwlux.js} +3 -3
  23. package/dist/browser/{json-editor-sEqd5piI.js.map → json-editor-SKLjwlux.js.map} +1 -1
  24. package/dist/browser/{state-schemas-DJmzG_M8.js → state-schemas-S69fnpVk.js} +3 -3
  25. package/dist/browser/{state-schemas-DJmzG_M8.js.map → state-schemas-S69fnpVk.js.map} +1 -1
  26. package/dist/node/{connect-BLC4PXD9.mjs → connect-5a3Nx0Jd.mjs} +4 -4
  27. package/dist/node/{connect-BLC4PXD9.mjs.map → connect-5a3Nx0Jd.mjs.map} +1 -1
  28. package/dist/node/{dist-Cn3iExnV.mjs → dist-C7ZmTHz4.mjs} +2 -2
  29. package/dist/node/{dist-Cn3iExnV.mjs.map → dist-C7ZmTHz4.mjs.map} +1 -1
  30. package/dist/node/{dist-Bm05eoTg.mjs → dist-QOGgRb-y.mjs} +4 -25
  31. package/dist/node/dist-QOGgRb-y.mjs.map +1 -0
  32. package/dist/node/{document-drive-sM33juXr.mjs → document-drive-BK2-EDni.mjs} +5 -7
  33. package/dist/node/document-drive-BK2-EDni.mjs.map +1 -0
  34. package/dist/node/document-models/index.mjs +1 -1
  35. package/dist/node/{editor-BFBa9nsO.mjs → editor-BNOTRmUU.mjs} +6 -6
  36. package/dist/node/{editor-BFBa9nsO.mjs.map → editor-BNOTRmUU.mjs.map} +1 -1
  37. package/dist/node/{editor-BrS98lEH.mjs → editor-C_Gchmop.mjs} +5 -5
  38. package/dist/node/{editor-BrS98lEH.mjs.map → editor-C_Gchmop.mjs.map} +1 -1
  39. package/dist/node/editors/document-model-editor/module.mjs +1 -1
  40. package/dist/node/editors/generic-drive-explorer/index.mjs +4 -4
  41. package/dist/node/editors/generic-drive-explorer/module.mjs +1 -1
  42. package/dist/node/{folder-view-DHph3Yuu.mjs → folder-view-af4hVjjx.mjs} +3 -3
  43. package/dist/node/{folder-view-DHph3Yuu.mjs.map → folder-view-af4hVjjx.mjs.map} +1 -1
  44. package/dist/node/{graphql-editor-CPq7oIbf.mjs → graphql-editor-BoTCyC9n.mjs} +3 -3
  45. package/dist/node/{graphql-editor-CPq7oIbf.mjs.map → graphql-editor-BoTCyC9n.mjs.map} +1 -1
  46. package/dist/node/index.mjs +2 -2
  47. package/dist/node/{json-editor-L32CP7TS.mjs → json-editor-Bk4_b03g.mjs} +3 -3
  48. package/dist/node/{json-editor-L32CP7TS.mjs.map → json-editor-Bk4_b03g.mjs.map} +1 -1
  49. package/dist/node/{state-schemas-XTTjQZOe.mjs → state-schemas-DMw1UvT8.mjs} +3 -3
  50. package/dist/node/{state-schemas-XTTjQZOe.mjs.map → state-schemas-DMw1UvT8.mjs.map} +1 -1
  51. package/package.json +6 -6
  52. package/dist/browser/dist-C1nRM9t2.js.map +0 -1
  53. package/dist/browser/document-drive-oqv68jDU.js.map +0 -1
  54. package/dist/node/dist-Bm05eoTg.mjs.map +0 -1
  55. package/dist/node/document-drive-sM33juXr.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
- import { r as driveDocumentModelModule, u as documentModelDocumentModelModule } from "./document-drive-oqv68jDU.js";
2
- import { t as reactorDriveDocumentModelModule } from "./dist-DLFI75Zd.js";
1
+ import { r as driveDocumentModelModule, u as documentModelDocumentModelModule } from "./document-drive-CDaY4aIj.js";
2
+ import { t as reactorDriveDocumentModelModule } from "./dist-DnQpckQ8.js";
3
3
  import { DocumentModelEditor } from "./editors/document-model-editor/module.js";
4
4
  import { GenericDriveExplorer } from "./editors/generic-drive-explorer/module.js";
5
5
  //#region powerhouse.manifest.json
@@ -1,5 +1,5 @@
1
- import "./document-drive-oqv68jDU.js";
2
- import { D as useTheme } from "./dist-C1nRM9t2.js";
1
+ import "./document-drive-CDaY4aIj.js";
2
+ import { D as useTheme } from "./dist-Bha1Om6O.js";
3
3
  import { C as linter, D as EditorState, E as Compartment, S as forceLinting, T as keymap, _ as foldNodeProp, a as makeFocusHandler, b as tags, c as baseEditorExtensions, d as ayuLight, f as LRLanguage, g as foldInside, i as useHandlerReconfiguration, l as baseKeymap, m as continuedIndent, n as useEditorCleanup, o as makePasteHandler, p as LanguageSupport, r as useEditorRefs, s as makeUpdateHandler, t as useDocumentSync, u as dracula, v as indentNodeProp, w as EditorView, x as LRParser, y as styleTags } from "./hooks-CORHBNHb.js";
4
4
  import { memo, useEffect, useRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -151,4 +151,4 @@ const JSONEditor = memo(function JSONEditor(props) {
151
151
  //#endregion
152
152
  export { JSONEditor as default };
153
153
 
154
- //# sourceMappingURL=json-editor-sEqd5piI.js.map
154
+ //# sourceMappingURL=json-editor-SKLjwlux.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-editor-sEqd5piI.js","names":[],"sources":["../../../../node_modules/.pnpm/@lezer+json@1.0.3/node_modules/@lezer/json/dist/index.js","../../../../node_modules/.pnpm/@codemirror+lang-json@6.0.1/node_modules/@codemirror/lang-json/dist/index.js","../../editors/document-model-editor/components/code-editors/json-editor.tsx"],"sourcesContent":["import { LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\nconst jsonHighlighting = styleTags({\n String: tags.string,\n Number: tags.number,\n \"True False\": tags.bool,\n PropertyName: tags.propertyName,\n Null: tags.null,\n \", :\": tags.separator,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l\",\n stateData: \"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O\",\n goto: \"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R\",\n nodeNames: \"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array\",\n maxTerm: 25,\n nodeProps: [\n [\"isolate\", -2,6,11,\"\"],\n [\"openedBy\", 7,\"{\",14,\"[\"],\n [\"closedBy\", 8,\"}\",15,\"]\"]\n ],\n propSources: [jsonHighlighting],\n skippedNodes: [0],\n repeatNodeCount: 2,\n tokenData: \"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~\",\n tokenizers: [0],\n topRules: {\"JsonText\":[0,1]},\n tokenPrec: 0\n});\n\nexport { parser };\n","import { parser } from '@lezer/json';\nimport { LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\n\n/**\nCalls\n[`JSON.parse`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)\non the document and, if that throws an error, reports it as a\nsingle diagnostic.\n*/\nconst jsonParseLinter = () => (view) => {\n try {\n JSON.parse(view.state.doc.toString());\n }\n catch (e) {\n if (!(e instanceof SyntaxError))\n throw e;\n const pos = getErrorPosition(e, view.state.doc);\n return [{\n from: pos,\n message: e.message,\n severity: 'error',\n to: pos\n }];\n }\n return [];\n};\nfunction getErrorPosition(error, doc) {\n let m;\n if (m = error.message.match(/at position (\\d+)/))\n return Math.min(+m[1], doc.length);\n if (m = error.message.match(/at line (\\d+) column (\\d+)/))\n return Math.min(doc.line(+m[1]).from + (+m[2]) - 1, doc.length);\n return 0;\n}\n\n/**\nA language provider that provides JSON parsing.\n*/\nconst jsonLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"json\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Object: /*@__PURE__*/continuedIndent({ except: /^\\s*\\}/ }),\n Array: /*@__PURE__*/continuedIndent({ except: /^\\s*\\]/ })\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Object Array\": foldInside\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"[\", \"{\", '\"'] },\n indentOnInput: /^\\s*[\\}\\]]$/\n }\n});\n/**\nJSON language support.\n*/\nfunction json() {\n return new LanguageSupport(jsonLanguage);\n}\n\nexport { json, jsonLanguage, jsonParseLinter };\n","import { json, jsonLanguage, jsonParseLinter } from \"@codemirror/lang-json\";\nimport { forceLinting, linter } from \"@codemirror/lint\";\nimport { Compartment, EditorState } from \"@codemirror/state\";\nimport { EditorView, keymap } from \"@codemirror/view\";\nimport { useTheme } from \"@powerhousedao/reactor-browser\";\nimport { memo, useEffect, useRef } from \"react\";\nimport { ayuLight, dracula } from \"thememirror\";\nimport { baseEditorExtensions, baseKeymap } from \"./constants.js\";\nimport {\n makeFocusHandler,\n makePasteHandler,\n makeUpdateHandler,\n} from \"./factories.js\";\nimport {\n useDocumentSync,\n useEditorCleanup,\n useEditorRefs,\n useHandlerReconfiguration,\n} from \"./hooks.js\";\n\ntype Props = {\n doc: string;\n readonly?: boolean;\n /* Updates the document in the model, should be wrapped in `useCallback` in the parent */\n updateDocumentInModel?: (newDoc: string) => void;\n};\n\nconst JSONEditor = memo(function JSONEditor(props: Props) {\n const { doc, readonly = false, updateDocumentInModel } = props;\n const {\n editorRef,\n viewRef,\n updateListenerCompartment,\n focusHandlerCompartment,\n pasteHandlerCompartment,\n timeoutRef,\n } = useEditorRefs();\n const { theme } = useTheme();\n const themeCompartment = useRef(new Compartment());\n\n useEffect(() => {\n if (!viewRef.current) {\n viewRef.current = new EditorView({\n state: EditorState.create({\n doc,\n extensions: [\n ...baseEditorExtensions,\n keymap.of(baseKeymap),\n themeCompartment.current.of(theme === \"light\" ? ayuLight : dracula),\n jsonLanguage,\n json(),\n linter(jsonParseLinter()),\n updateListenerCompartment.current.of(\n makeUpdateHandler(readonly, timeoutRef, updateDocumentInModel),\n ),\n focusHandlerCompartment.current.of(\n makeFocusHandler(readonly, timeoutRef, updateDocumentInModel),\n ),\n pasteHandlerCompartment.current.of(\n makePasteHandler(readonly, timeoutRef, updateDocumentInModel),\n ),\n EditorState.readOnly.of(readonly),\n ],\n }),\n parent: editorRef.current!,\n });\n forceLinting(viewRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (!viewRef.current) return;\n viewRef.current.dispatch({\n effects: themeCompartment.current.reconfigure(\n theme === \"light\" ? ayuLight : dracula,\n ),\n });\n }, [theme]);\n\n useEditorCleanup(viewRef);\n\n useHandlerReconfiguration(\n viewRef.current,\n readonly,\n timeoutRef,\n updateDocumentInModel,\n {\n updateListener: updateListenerCompartment.current,\n focusHandler: focusHandlerCompartment.current,\n pasteHandler: pasteHandlerCompartment.current,\n },\n );\n\n useDocumentSync(viewRef.current, doc);\n\n return <div ref={editorRef} />;\n});\n\nexport default JSONEditor;\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"json-editor-SKLjwlux.js","names":[],"sources":["../../../../node_modules/.pnpm/@lezer+json@1.0.3/node_modules/@lezer/json/dist/index.js","../../../../node_modules/.pnpm/@codemirror+lang-json@6.0.1/node_modules/@codemirror/lang-json/dist/index.js","../../editors/document-model-editor/components/code-editors/json-editor.tsx"],"sourcesContent":["import { LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\nconst jsonHighlighting = styleTags({\n String: tags.string,\n Number: tags.number,\n \"True False\": tags.bool,\n PropertyName: tags.propertyName,\n Null: tags.null,\n \", :\": tags.separator,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l\",\n stateData: \"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O\",\n goto: \"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R\",\n nodeNames: \"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array\",\n maxTerm: 25,\n nodeProps: [\n [\"isolate\", -2,6,11,\"\"],\n [\"openedBy\", 7,\"{\",14,\"[\"],\n [\"closedBy\", 8,\"}\",15,\"]\"]\n ],\n propSources: [jsonHighlighting],\n skippedNodes: [0],\n repeatNodeCount: 2,\n tokenData: \"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~\",\n tokenizers: [0],\n topRules: {\"JsonText\":[0,1]},\n tokenPrec: 0\n});\n\nexport { parser };\n","import { parser } from '@lezer/json';\nimport { LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\n\n/**\nCalls\n[`JSON.parse`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)\non the document and, if that throws an error, reports it as a\nsingle diagnostic.\n*/\nconst jsonParseLinter = () => (view) => {\n try {\n JSON.parse(view.state.doc.toString());\n }\n catch (e) {\n if (!(e instanceof SyntaxError))\n throw e;\n const pos = getErrorPosition(e, view.state.doc);\n return [{\n from: pos,\n message: e.message,\n severity: 'error',\n to: pos\n }];\n }\n return [];\n};\nfunction getErrorPosition(error, doc) {\n let m;\n if (m = error.message.match(/at position (\\d+)/))\n return Math.min(+m[1], doc.length);\n if (m = error.message.match(/at line (\\d+) column (\\d+)/))\n return Math.min(doc.line(+m[1]).from + (+m[2]) - 1, doc.length);\n return 0;\n}\n\n/**\nA language provider that provides JSON parsing.\n*/\nconst jsonLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"json\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Object: /*@__PURE__*/continuedIndent({ except: /^\\s*\\}/ }),\n Array: /*@__PURE__*/continuedIndent({ except: /^\\s*\\]/ })\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Object Array\": foldInside\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"[\", \"{\", '\"'] },\n indentOnInput: /^\\s*[\\}\\]]$/\n }\n});\n/**\nJSON language support.\n*/\nfunction json() {\n return new LanguageSupport(jsonLanguage);\n}\n\nexport { json, jsonLanguage, jsonParseLinter };\n","import { json, jsonLanguage, jsonParseLinter } from \"@codemirror/lang-json\";\nimport { forceLinting, linter } from \"@codemirror/lint\";\nimport { Compartment, EditorState } from \"@codemirror/state\";\nimport { EditorView, keymap } from \"@codemirror/view\";\nimport { useTheme } from \"@powerhousedao/reactor-browser\";\nimport { memo, useEffect, useRef } from \"react\";\nimport { ayuLight, dracula } from \"thememirror\";\nimport { baseEditorExtensions, baseKeymap } from \"./constants.js\";\nimport {\n makeFocusHandler,\n makePasteHandler,\n makeUpdateHandler,\n} from \"./factories.js\";\nimport {\n useDocumentSync,\n useEditorCleanup,\n useEditorRefs,\n useHandlerReconfiguration,\n} from \"./hooks.js\";\n\ntype Props = {\n doc: string;\n readonly?: boolean;\n /* Updates the document in the model, should be wrapped in `useCallback` in the parent */\n updateDocumentInModel?: (newDoc: string) => void;\n};\n\nconst JSONEditor = memo(function JSONEditor(props: Props) {\n const { doc, readonly = false, updateDocumentInModel } = props;\n const {\n editorRef,\n viewRef,\n updateListenerCompartment,\n focusHandlerCompartment,\n pasteHandlerCompartment,\n timeoutRef,\n } = useEditorRefs();\n const { theme } = useTheme();\n const themeCompartment = useRef(new Compartment());\n\n useEffect(() => {\n if (!viewRef.current) {\n viewRef.current = new EditorView({\n state: EditorState.create({\n doc,\n extensions: [\n ...baseEditorExtensions,\n keymap.of(baseKeymap),\n themeCompartment.current.of(theme === \"light\" ? ayuLight : dracula),\n jsonLanguage,\n json(),\n linter(jsonParseLinter()),\n updateListenerCompartment.current.of(\n makeUpdateHandler(readonly, timeoutRef, updateDocumentInModel),\n ),\n focusHandlerCompartment.current.of(\n makeFocusHandler(readonly, timeoutRef, updateDocumentInModel),\n ),\n pasteHandlerCompartment.current.of(\n makePasteHandler(readonly, timeoutRef, updateDocumentInModel),\n ),\n EditorState.readOnly.of(readonly),\n ],\n }),\n parent: editorRef.current!,\n });\n forceLinting(viewRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (!viewRef.current) return;\n viewRef.current.dispatch({\n effects: themeCompartment.current.reconfigure(\n theme === \"light\" ? ayuLight : dracula,\n ),\n });\n }, [theme]);\n\n useEditorCleanup(viewRef);\n\n useHandlerReconfiguration(\n viewRef.current,\n readonly,\n timeoutRef,\n updateDocumentInModel,\n {\n updateListener: updateListenerCompartment.current,\n focusHandler: focusHandlerCompartment.current,\n pasteHandler: pasteHandlerCompartment.current,\n },\n );\n\n useDocumentSync(viewRef.current, doc);\n\n return <div ref={editorRef} />;\n});\n\nexport default JSONEditor;\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -82,8 +82,8 @@ const TabsContent = React$1.forwardRef(({ className, ...props }, ref) => /* @__P
82
82
  TabsContent.displayName = Content.displayName;
83
83
  //#endregion
84
84
  //#region editors/document-model-editor/components/state-schemas.tsx
85
- const GraphqlEditor = lazy(() => import("./graphql-editor-CiGd_Li7.js"));
86
- const JSONEditor = lazy(() => import("./json-editor-sEqd5piI.js"));
85
+ const GraphqlEditor = lazy(() => import("./graphql-editor-Dwgpm08w.js"));
86
+ const JSONEditor = lazy(() => import("./json-editor-SKLjwlux.js"));
87
87
  function StateEditor({ modelName, stateSchema, initialValue, setStateSchema, setInitialState, scope }) {
88
88
  const { sharedSchema: sharedSchemaSdl, error: sharedSchemaError } = useSchemaContext();
89
89
  const [showStandardLib, setShowStandardLib] = useState(false);
@@ -305,4 +305,4 @@ function StateSchemas({ modelName, globalStateSchema, localStateSchema, globalSt
305
305
  //#endregion
306
306
  export { StateSchemas as default };
307
307
 
308
- //# sourceMappingURL=state-schemas-DJmzG_M8.js.map
308
+ //# sourceMappingURL=state-schemas-S69fnpVk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-schemas-DJmzG_M8.js","names":["TabsPrimitive.Root","React","TabsPrimitive.List","TabsPrimitive.Trigger","TabsPrimitive.Content"],"sources":["../../editors/document-model-editor/components/button.tsx","../../editors/document-model-editor/components/state-error.tsx","../../editors/document-model-editor/components/tabs.tsx","../../editors/document-model-editor/components/state-schemas.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from \"react\";\nimport { forwardRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Props = ComponentPropsWithRef<\"button\">;\n\nexport const Button = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { className, ...rest } = props;\n return (\n <button\n ref={ref}\n {...rest}\n className={twMerge(\n \"h-10 rounded-md border border-gray-200 bg-gray-50 px-4 py-2 text-sm font-medium whitespace-nowrap text-gray-900 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700 dark:hover:text-slate-50\",\n className,\n )}\n />\n );\n});\n","import type { StateValidationError } from \"../utils/helpers.js\";\n\nexport function StateValidationErrorMessage({\n error,\n}: {\n error: StateValidationError;\n}) {\n const { payload } = error;\n\n switch (payload.kind) {\n case \"MISSING\":\n return (\n <span>\n Field <strong>{payload.field}</strong> is missing.\n </span>\n );\n\n case \"MISSING_OPTIONAL\":\n return (\n <span>\n Optional field <strong>{payload.field}</strong> is not defined.\n </span>\n );\n\n case \"UNKNOWN_FIELD\":\n return (\n <span>\n Field <strong>{payload.field}</strong> is not a known field.\n </span>\n );\n\n case \"NON_NULL\":\n return (\n <span>\n Field <strong>{payload.field}</strong> cannot be null.\n </span>\n );\n\n case \"TYPE\":\n return (\n <span>\n Field <strong>{payload.field}</strong>\n {payload.expectedType ? (\n <>\n {\" \"}\n must be a{\" \"}\n <strong>{payload.expectedType.replace(/!/g, \"\")}</strong>.\n </>\n ) : (\n <> has an invalid value.</>\n )}\n </span>\n );\n\n case \"RECURSIVE_TYPE\":\n return (\n <span>\n Field <strong>{payload.typeName}</strong> has a recursive type. It\n must be optional.\n </span>\n );\n\n default:\n return <span>Invalid value.</span>;\n }\n}\n","import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={twMerge(\n \"flex items-center justify-center rounded-xl bg-gray-50 p-1 shadow-inner dark:bg-slate-800\",\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={twMerge(\n \"flex w-full items-center justify-center rounded-lg p-1 text-sm whitespace-nowrap text-gray-500 transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-gray-50 data-[state=active]:text-gray-800 data-[state=active]:shadow-tab dark:text-slate-400\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content ref={ref} className={className} {...props} />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import { twMerge } from \"tailwind-merge\";\nimport { Checkbox } from \"@powerhousedao/design-system/ui\";\nimport { Kind } from \"graphql\";\nimport {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { typeDefsDoc } from \"../constants/documents.js\";\nimport { safeParseSdl, useSchemaContext } from \"../context/schema-context.js\";\nimport type { Scope } from \"../types/documents.js\";\nimport {\n makeInitialSchemaDoc,\n makeMinimalObjectForStateType,\n makeStateSchemaNameForScope,\n StateValidationError,\n validateStateObject,\n} from \"../utils/helpers.js\";\nimport { ensureValidStateSchemaName } from \"../utils/linting.js\";\nimport { Button } from \"./button.js\";\nimport { StateValidationErrorMessage } from \"./state-error.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"./tabs.js\";\nconst GraphqlEditor = lazy(() => import(\"./code-editors/graphql-editor.js\"));\nconst JSONEditor = lazy(() => import(\"./code-editors/json-editor.js\"));\ntype Props = {\n modelName: string;\n globalStateSchema: string;\n localStateSchema: string;\n globalStateInitialValue: string;\n localStateInitialValue: string;\n setStateSchema: (doc: string, scope: Scope) => void;\n setInitialState: (doc: string, scope: Scope) => void;\n currentScope: Scope;\n onScopeChange: (scope: Scope) => void;\n};\n\ntype StateEditorProps = {\n modelName: string;\n stateSchema: string;\n initialValue: string;\n setStateSchema: (doc: string, scope: Scope) => void;\n setInitialState: (doc: string, scope: Scope) => void;\n scope: Scope;\n};\n\nfunction StateEditor({\n modelName,\n stateSchema,\n initialValue,\n setStateSchema,\n setInitialState,\n scope,\n}: StateEditorProps) {\n const { sharedSchema: sharedSchemaSdl, error: sharedSchemaError } =\n useSchemaContext();\n const [showStandardLib, setShowStandardLib] = useState(false);\n const [syncWithSchema, setSyncWithSchema] = useState(true);\n\n const customLinter = useCallback(\n (doc: string) => ensureValidStateSchemaName(doc, modelName, scope),\n [modelName, scope],\n );\n\n const schemaErrors = useMemo(() => {\n const errors = ensureValidStateSchemaName(stateSchema, modelName, scope);\n if (sharedSchemaError) {\n return [...errors, sharedSchemaError];\n }\n return errors;\n }, [stateSchema, modelName, scope, sharedSchemaError]);\n\n const handleToggleStandardLib = useCallback(() => {\n setShowStandardLib((prev) => !prev);\n }, []);\n\n const handleSchemaUpdate = useCallback(\n (newDoc: string) => setStateSchema(newDoc, scope),\n [setStateSchema, scope],\n );\n\n const handleInitialStateUpdate = useCallback(\n (newDoc: string) => setInitialState(newDoc, scope),\n [setInitialState, scope],\n );\n\n // Track if we've already synced to prevent double-calls in StrictMode\n const hasSyncedRef = useRef(false);\n\n const { initialValueErrors, fixedState } = useMemo(() => {\n const existingValue = initialValue || \"{}\";\n const sharedSchemaDocumentNode = safeParseSdl(sharedSchemaSdl);\n if (!sharedSchemaDocumentNode)\n return { initialValueErrors: [], fixedState: null };\n const stateTypeName = makeStateSchemaNameForScope(modelName, scope);\n if (!stateTypeName) return { initialValueErrors: [], fixedState: null };\n const stateTypeDefinitionNode = sharedSchemaDocumentNode.definitions.find(\n (def) =>\n def.kind === Kind.OBJECT_TYPE_DEFINITION &&\n def.name.value === stateTypeName,\n );\n if (\n !stateTypeDefinitionNode ||\n stateTypeDefinitionNode.kind !== Kind.OBJECT_TYPE_DEFINITION\n )\n return { initialValueErrors: [], fixedState: null };\n\n const errors = validateStateObject(\n sharedSchemaDocumentNode,\n stateTypeDefinitionNode,\n existingValue,\n );\n\n if (errors.length && syncWithSchema) {\n const computedFixedState = makeMinimalObjectForStateType({\n sharedSchemaDocumentNode,\n stateTypeDefinitionNode,\n existingValue,\n });\n if (initialValue !== computedFixedState) {\n return { initialValueErrors: [], fixedState: computedFixedState };\n }\n }\n return { initialValueErrors: errors, fixedState: null };\n }, [sharedSchemaSdl, initialValue, syncWithSchema, scope, modelName]);\n\n // Handle the side effect of syncing initial state separately\n useEffect(() => {\n if (fixedState && !hasSyncedRef.current) {\n hasSyncedRef.current = true;\n setInitialState(fixedState, scope);\n } else if (!fixedState) {\n // Reset the ref when there's no fix needed\n hasSyncedRef.current = false;\n }\n }, [fixedState, setInitialState, scope]);\n\n return (\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <h3 className=\"mb-2 text-lg text-gray-900 capitalize dark:text-slate-100\">\n {scope} state schema *\n </h3>\n <Button\n onClick={handleToggleStandardLib}\n className=\"mb-2 flex w-fit items-center gap-2\"\n >\n {showStandardLib ? \"Hide\" : \"Show\"} standard library\n <svg\n className={twMerge(\n \"inline-block transition-transform\",\n showStandardLib ? \"rotate-180\" : \"rotate-0\",\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path\n d=\"M11.9883 6.01172C11.4363 6.01172 10.9883 6.45972 10.9883 7.01172V13.0117H6.98828L11.9883 18.0117L16.9883 13.0117H12.9883V7.01172C12.9883 6.45972 12.5403 6.01172 11.9883 6.01172Z\"\n fill=\"currentColor\"\n />\n </svg>\n </Button>\n <Suspense>\n {showStandardLib && <GraphqlEditor doc={typeDefsDoc} readonly />}\n <GraphqlEditor\n doc={stateSchema}\n updateDocumentInModel={handleSchemaUpdate}\n customLinter={customLinter}\n />\n {schemaErrors.length > 0 && (\n <p className=\"mt-2 text-sm text-red-600 dark:text-red-100\">\n {schemaErrors[0].message}\n </p>\n )}\n </Suspense>\n </div>\n <div>\n <div className=\"flex flex-col items-end\">\n <h3 className=\"mb-2 text-right text-lg text-gray-900 capitalize dark:text-slate-100\">\n {scope} state initial value *\n </h3>\n <label className=\"mb-2 flex w-fit items-center gap-2 rounded-md border border-gray-200 bg-gray-50 p-2 text-sm font-medium whitespace-nowrap text-gray-900 transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-500 dark:hover:text-slate-50\">\n <input\n type=\"checkbox\"\n className=\"\"\n value={syncWithSchema.toString()}\n onChange={(e) => {\n setSyncWithSchema(\n e.currentTarget.value === \"true\" ? true : false,\n );\n }}\n />\n Sync with schema{\" \"}\n <svg\n className=\"inline-block\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M8.00521 1.99219C6.63588 1.99219 5.32788 2.45152 4.27588 3.28419C3.98721 3.51219 3.94321 3.93285 4.17188 4.22151C4.40054 4.51018 4.82055 4.55418 5.10921 4.32552C5.92721 3.67819 6.93921 3.32552 8.00521 3.32552C10.5825 3.32552 12.6719 5.41485 12.6719 7.99218H11.3385L13.3385 10.6588L15.3385 7.99218H14.0052C14.0052 4.67818 11.3192 1.99219 8.00521 1.99219ZM2.67188 5.32552L0.671875 7.99218H2.00521C2.00521 11.3062 4.69121 13.9922 8.00521 13.9922C9.37521 13.9922 10.6825 13.5335 11.7345 12.7002C12.0232 12.4722 12.0672 12.0515 11.8385 11.7628C11.6099 11.4742 11.1899 11.4302 10.9012 11.6588C10.0825 12.3068 9.07188 12.6588 8.00521 12.6588C5.42788 12.6588 3.33854 10.5695 3.33854 7.99218H4.67188L2.67188 5.32552Z\"\n fill=\"currentColor\"\n />\n </svg>\n </label>\n </div>\n <Suspense>\n <JSONEditor\n doc={initialValue}\n updateDocumentInModel={handleInitialStateUpdate}\n />\n {initialValueErrors.map((error, index) => (\n <p\n key={index}\n className=\"mt-2 text-sm text-red-600 dark:text-red-100\"\n >\n {error instanceof StateValidationError ? (\n <StateValidationErrorMessage error={error} />\n ) : (\n error.message\n )}\n </p>\n ))}\n </Suspense>\n </div>\n </div>\n );\n}\n\nexport default function StateSchemas({\n modelName,\n globalStateSchema,\n localStateSchema,\n globalStateInitialValue,\n localStateInitialValue,\n setStateSchema,\n setInitialState,\n currentScope,\n onScopeChange,\n}: Props) {\n const handleAddLocalState = useCallback(() => {\n const initialDoc = makeInitialSchemaDoc(modelName, \"local\");\n setStateSchema(initialDoc, \"local\");\n setInitialState(\"\", \"local\");\n }, [modelName, setStateSchema, setInitialState]);\n\n return (\n <Tabs\n className=\"pb-8\"\n activationMode=\"manual\"\n value={currentScope}\n onValueChange={(value) => onScopeChange(value as Scope)}\n >\n <div className=\"my-6\">\n <TabsList className=\"mx-auto flex max-w-sm\">\n <TabsTrigger value=\"global\">Global</TabsTrigger>\n <TabsTrigger value=\"local\">Local</TabsTrigger>\n </TabsList>\n </div>\n\n <TabsContent value=\"global\" tabIndex={-1}>\n <StateEditor\n modelName={modelName}\n stateSchema={globalStateSchema}\n initialValue={globalStateInitialValue}\n setStateSchema={setStateSchema}\n setInitialState={setInitialState}\n scope=\"global\"\n />\n </TabsContent>\n\n <TabsContent value=\"local\" tabIndex={-1}>\n {!localStateSchema ? (\n <div className=\"\">\n <h3 className=\"mb-2 text-lg text-gray-900 capitalize dark:text-slate-100\">\n local state schema *\n </h3>\n <Button onClick={handleAddLocalState}>Add local state</Button>\n </div>\n ) : (\n <StateEditor\n modelName={modelName}\n stateSchema={localStateSchema}\n initialValue={localStateInitialValue}\n setStateSchema={setStateSchema}\n setInitialState={setInitialState}\n scope=\"local\"\n />\n )}\n </TabsContent>\n </Tabs>\n );\n}\n"],"mappings":";;;;;;;;;AAMA,MAAa,SAAS,YAAsC,OAAO,QAAQ;CACzE,MAAM,EAAE,WAAW,GAAG,SAAS;AAC/B,QACE,oBAAC,UAAD;EACO;EACL,GAAI;EACJ,WAAW,QACT,qZACA,UACD;EACD,CAAA;EAEJ;;;AChBF,SAAgB,4BAA4B,EAC1C,SAGC;CACD,MAAM,EAAE,YAAY;AAEpB,SAAQ,QAAQ,MAAhB;EACE,KAAK,UACH,QACE,qBAAC,QAAD,EAAA,UAAA;GAAM;GACE,oBAAC,UAAD,EAAA,UAAS,QAAQ,OAAe,CAAA;;GACjC,EAAA,CAAA;EAGX,KAAK,mBACH,QACE,qBAAC,QAAD,EAAA,UAAA;GAAM;GACW,oBAAC,UAAD,EAAA,UAAS,QAAQ,OAAe,CAAA;;GAC1C,EAAA,CAAA;EAGX,KAAK,gBACH,QACE,qBAAC,QAAD,EAAA,UAAA;GAAM;GACE,oBAAC,UAAD,EAAA,UAAS,QAAQ,OAAe,CAAA;;GACjC,EAAA,CAAA;EAGX,KAAK,WACH,QACE,qBAAC,QAAD,EAAA,UAAA;GAAM;GACE,oBAAC,UAAD,EAAA,UAAS,QAAQ,OAAe,CAAA;;GACjC,EAAA,CAAA;EAGX,KAAK,OACH,QACE,qBAAC,QAAD,EAAA,UAAA;GAAM;GACE,oBAAC,UAAD,EAAA,UAAS,QAAQ,OAAe,CAAA;GACrC,QAAQ,eACP,qBAAA,YAAA,EAAA,UAAA;IACG;IAAI;IACK;IACV,oBAAC,UAAD,EAAA,UAAS,QAAQ,aAAa,QAAQ,MAAM,GAAG,EAAU,CAAA;;IACxD,EAAA,CAAA,GAEH,oBAAA,YAAA,EAAA,UAAE,0BAAyB,CAAA;GAExB,EAAA,CAAA;EAGX,KAAK,iBACH,QACE,qBAAC,QAAD,EAAA,UAAA;GAAM;GACE,oBAAC,UAAD,EAAA,UAAS,QAAQ,UAAkB,CAAA;;GAEpC,EAAA,CAAA;EAGX,QACE,QAAO,oBAAC,QAAD,EAAA,UAAM,kBAAqB,CAAA;;;;;AC3DxC,MAAM,OAAOA;AAEb,MAAM,WAAWC,QAAM,YAGpB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,MAAD;CACO;CACL,WAAW,QACT,6FACA,UACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,SAAS,cAAA,KAAiC;AAE1C,MAAM,cAAcD,QAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACE,SAAD;CACO;CACL,WAAW,QACT,sRACA,UACD;CACD,GAAI;CACJ,CAAA,CACF;AACF,YAAY,cAAA,QAAoC;AAEhD,MAAM,cAAcF,QAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACG,SAAD;CAA4B;CAAgB;CAAW,GAAI;CAAS,CAAA,CACpE;AACF,YAAY,cAAA,QAAoC;;;AChBhD,MAAM,gBAAgB,WAAW,OAAO,gCAAoC;AAC5E,MAAM,aAAa,WAAW,OAAO,6BAAiC;AAsBtE,SAAS,YAAY,EACnB,WACA,aACA,cACA,gBACA,iBACA,SACmB;CACnB,MAAM,EAAE,cAAc,iBAAiB,OAAO,sBAC5C,kBAAkB;CACpB,MAAM,CAAC,iBAAiB,sBAAsB,SAAS,MAAM;CAC7D,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,KAAK;CAE1D,MAAM,eAAe,aAClB,QAAgB,2BAA2B,KAAK,WAAW,MAAM,EAClE,CAAC,WAAW,MAAM,CACnB;CAED,MAAM,eAAe,cAAc;EACjC,MAAM,SAAS,2BAA2B,aAAa,WAAW,MAAM;AACxE,MAAI,kBACF,QAAO,CAAC,GAAG,QAAQ,kBAAkB;AAEvC,SAAO;IACN;EAAC;EAAa;EAAW;EAAO;EAAkB,CAAC;CAEtD,MAAM,0BAA0B,kBAAkB;AAChD,sBAAoB,SAAS,CAAC,KAAK;IAClC,EAAE,CAAC;CAEN,MAAM,qBAAqB,aACxB,WAAmB,eAAe,QAAQ,MAAM,EACjD,CAAC,gBAAgB,MAAM,CACxB;CAED,MAAM,2BAA2B,aAC9B,WAAmB,gBAAgB,QAAQ,MAAM,EAClD,CAAC,iBAAiB,MAAM,CACzB;CAGD,MAAM,eAAe,OAAO,MAAM;CAElC,MAAM,EAAE,oBAAoB,eAAe,cAAc;EACvD,MAAM,gBAAgB,gBAAgB;EACtC,MAAM,2BAA2B,aAAa,gBAAgB;AAC9D,MAAI,CAAC,yBACH,QAAO;GAAE,oBAAoB,EAAE;GAAE,YAAY;GAAM;EACrD,MAAM,gBAAgB,4BAA4B,WAAW,MAAM;AACnE,MAAI,CAAC,cAAe,QAAO;GAAE,oBAAoB,EAAE;GAAE,YAAY;GAAM;EACvE,MAAM,0BAA0B,yBAAyB,YAAY,MAClE,QACC,IAAI,SAAS,KAAK,0BAClB,IAAI,KAAK,UAAU,cACtB;AACD,MACE,CAAC,2BACD,wBAAwB,SAAS,KAAK,uBAEtC,QAAO;GAAE,oBAAoB,EAAE;GAAE,YAAY;GAAM;EAErD,MAAM,SAAS,oBACb,0BACA,yBACA,cACD;AAED,MAAI,OAAO,UAAU,gBAAgB;GACnC,MAAM,qBAAqB,8BAA8B;IACvD;IACA;IACA;IACD,CAAC;AACF,OAAI,iBAAiB,mBACnB,QAAO;IAAE,oBAAoB,EAAE;IAAE,YAAY;IAAoB;;AAGrE,SAAO;GAAE,oBAAoB;GAAQ,YAAY;GAAM;IACtD;EAAC;EAAiB;EAAc;EAAgB;EAAO;EAAU,CAAC;AAGrE,iBAAgB;AACd,MAAI,cAAc,CAAC,aAAa,SAAS;AACvC,gBAAa,UAAU;AACvB,mBAAgB,YAAY,MAAM;aACzB,CAAC,WAEV,cAAa,UAAU;IAExB;EAAC;EAAY;EAAiB;EAAM,CAAC;AAExC,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,qBAAC,OAAD,EAAA,UAAA;GACE,qBAAC,MAAD;IAAI,WAAU;cAAd,CACG,OAAM,kBACJ;;GACL,qBAAC,QAAD;IACE,SAAS;IACT,WAAU;cAFZ;KAIG,kBAAkB,SAAS;KAAO;KACnC,oBAAC,OAAD;MACE,WAAW,QACT,qCACA,kBAAkB,eAAe,WAClC;MACD,OAAM;MACN,OAAM;MACN,QAAO;MACP,SAAQ;MACR,MAAK;gBAEL,oBAAC,QAAD;OACE,GAAE;OACF,MAAK;OACL,CAAA;MACE,CAAA;KACC;;GACT,qBAAC,UAAD,EAAA,UAAA;IACG,mBAAmB,oBAAC,eAAD;KAAe,KAAK;KAAa,UAAA;KAAW,CAAA;IAChE,oBAAC,eAAD;KACE,KAAK;KACL,uBAAuB;KACT;KACd,CAAA;IACD,aAAa,SAAS,KACrB,oBAAC,KAAD;KAAG,WAAU;eACV,aAAa,GAAG;KACf,CAAA;IAEG,EAAA,CAAA;GACP,EAAA,CAAA,EACN,qBAAC,OAAD,EAAA,UAAA,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,MAAD;IAAI,WAAU;cAAd,CACG,OAAM,yBACJ;OACL,qBAAC,SAAD;IAAO,WAAU;cAAjB;KACE,oBAAC,SAAD;MACE,MAAK;MACL,WAAU;MACV,OAAO,eAAe,UAAU;MAChC,WAAW,MAAM;AACf,yBACE,EAAE,cAAc,UAAU,SAAS,OAAO,MAC3C;;MAEH,CAAA;;KACe;KACjB,oBAAC,OAAD;MACE,WAAU;MACV,OAAM;MACN,OAAM;MACN,QAAO;MACP,SAAQ;MACR,MAAK;gBAEL,oBAAC,QAAD;OACE,GAAE;OACF,MAAK;OACL,CAAA;MACE,CAAA;KACA;MACJ;MACN,qBAAC,UAAD,EAAA,UAAA,CACE,oBAAC,YAAD;GACE,KAAK;GACL,uBAAuB;GACvB,CAAA,EACD,mBAAmB,KAAK,OAAO,UAC9B,oBAAC,KAAD;GAEE,WAAU;aAET,iBAAiB,uBAChB,oBAAC,6BAAD,EAAoC,OAAS,CAAA,GAE7C,MAAM;GAEN,EARG,MAQH,CACJ,CACO,EAAA,CAAA,CACP,EAAA,CAAA,CACF;;;AAIV,SAAwB,aAAa,EACnC,WACA,mBACA,kBACA,yBACA,wBACA,gBACA,iBACA,cACA,iBACQ;CACR,MAAM,sBAAsB,kBAAkB;AAE5C,iBADmB,qBAAqB,WAAW,QAAQ,EAChC,QAAQ;AACnC,kBAAgB,IAAI,QAAQ;IAC3B;EAAC;EAAW;EAAgB;EAAgB,CAAC;AAEhD,QACE,qBAAC,MAAD;EACE,WAAU;EACV,gBAAe;EACf,OAAO;EACP,gBAAgB,UAAU,cAAc,MAAe;YAJzD;GAME,oBAAC,OAAD;IAAK,WAAU;cACb,qBAAC,UAAD;KAAU,WAAU;eAApB,CACE,oBAAC,aAAD;MAAa,OAAM;gBAAS;MAAoB,CAAA,EAChD,oBAAC,aAAD;MAAa,OAAM;gBAAQ;MAAmB,CAAA,CACrC;;IACP,CAAA;GAEN,oBAAC,aAAD;IAAa,OAAM;IAAS,UAAU;cACpC,oBAAC,aAAD;KACa;KACX,aAAa;KACb,cAAc;KACE;KACC;KACjB,OAAM;KACN,CAAA;IACU,CAAA;GAEd,oBAAC,aAAD;IAAa,OAAM;IAAQ,UAAU;cAClC,CAAC,mBACA,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,MAAD;MAAI,WAAU;gBAA4D;MAErE,CAAA,EACL,oBAAC,QAAD;MAAQ,SAAS;gBAAqB;MAAwB,CAAA,CAC1D;SAEN,oBAAC,aAAD;KACa;KACX,aAAa;KACb,cAAc;KACE;KACC;KACjB,OAAM;KACN,CAAA;IAEQ,CAAA;GACT"}
1
+ {"version":3,"file":"state-schemas-S69fnpVk.js","names":["TabsPrimitive.Root","React","TabsPrimitive.List","TabsPrimitive.Trigger","TabsPrimitive.Content"],"sources":["../../editors/document-model-editor/components/button.tsx","../../editors/document-model-editor/components/state-error.tsx","../../editors/document-model-editor/components/tabs.tsx","../../editors/document-model-editor/components/state-schemas.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from \"react\";\nimport { forwardRef } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\ntype Props = ComponentPropsWithRef<\"button\">;\n\nexport const Button = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { className, ...rest } = props;\n return (\n <button\n ref={ref}\n {...rest}\n className={twMerge(\n \"h-10 rounded-md border border-gray-200 bg-gray-50 px-4 py-2 text-sm font-medium whitespace-nowrap text-gray-900 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-700 dark:hover:text-slate-50\",\n className,\n )}\n />\n );\n});\n","import type { StateValidationError } from \"../utils/helpers.js\";\n\nexport function StateValidationErrorMessage({\n error,\n}: {\n error: StateValidationError;\n}) {\n const { payload } = error;\n\n switch (payload.kind) {\n case \"MISSING\":\n return (\n <span>\n Field <strong>{payload.field}</strong> is missing.\n </span>\n );\n\n case \"MISSING_OPTIONAL\":\n return (\n <span>\n Optional field <strong>{payload.field}</strong> is not defined.\n </span>\n );\n\n case \"UNKNOWN_FIELD\":\n return (\n <span>\n Field <strong>{payload.field}</strong> is not a known field.\n </span>\n );\n\n case \"NON_NULL\":\n return (\n <span>\n Field <strong>{payload.field}</strong> cannot be null.\n </span>\n );\n\n case \"TYPE\":\n return (\n <span>\n Field <strong>{payload.field}</strong>\n {payload.expectedType ? (\n <>\n {\" \"}\n must be a{\" \"}\n <strong>{payload.expectedType.replace(/!/g, \"\")}</strong>.\n </>\n ) : (\n <> has an invalid value.</>\n )}\n </span>\n );\n\n case \"RECURSIVE_TYPE\":\n return (\n <span>\n Field <strong>{payload.typeName}</strong> has a recursive type. It\n must be optional.\n </span>\n );\n\n default:\n return <span>Invalid value.</span>;\n }\n}\n","import * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={twMerge(\n \"flex items-center justify-center rounded-xl bg-gray-50 p-1 shadow-inner dark:bg-slate-800\",\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={twMerge(\n \"flex w-full items-center justify-center rounded-lg p-1 text-sm whitespace-nowrap text-gray-500 transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-gray-50 data-[state=active]:text-gray-800 data-[state=active]:shadow-tab dark:text-slate-400\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content ref={ref} className={className} {...props} />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n","import { twMerge } from \"tailwind-merge\";\nimport { Checkbox } from \"@powerhousedao/design-system/ui\";\nimport { Kind } from \"graphql\";\nimport {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { typeDefsDoc } from \"../constants/documents.js\";\nimport { safeParseSdl, useSchemaContext } from \"../context/schema-context.js\";\nimport type { Scope } from \"../types/documents.js\";\nimport {\n makeInitialSchemaDoc,\n makeMinimalObjectForStateType,\n makeStateSchemaNameForScope,\n StateValidationError,\n validateStateObject,\n} from \"../utils/helpers.js\";\nimport { ensureValidStateSchemaName } from \"../utils/linting.js\";\nimport { Button } from \"./button.js\";\nimport { StateValidationErrorMessage } from \"./state-error.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"./tabs.js\";\nconst GraphqlEditor = lazy(() => import(\"./code-editors/graphql-editor.js\"));\nconst JSONEditor = lazy(() => import(\"./code-editors/json-editor.js\"));\ntype Props = {\n modelName: string;\n globalStateSchema: string;\n localStateSchema: string;\n globalStateInitialValue: string;\n localStateInitialValue: string;\n setStateSchema: (doc: string, scope: Scope) => void;\n setInitialState: (doc: string, scope: Scope) => void;\n currentScope: Scope;\n onScopeChange: (scope: Scope) => void;\n};\n\ntype StateEditorProps = {\n modelName: string;\n stateSchema: string;\n initialValue: string;\n setStateSchema: (doc: string, scope: Scope) => void;\n setInitialState: (doc: string, scope: Scope) => void;\n scope: Scope;\n};\n\nfunction StateEditor({\n modelName,\n stateSchema,\n initialValue,\n setStateSchema,\n setInitialState,\n scope,\n}: StateEditorProps) {\n const { sharedSchema: sharedSchemaSdl, error: sharedSchemaError } =\n useSchemaContext();\n const [showStandardLib, setShowStandardLib] = useState(false);\n const [syncWithSchema, setSyncWithSchema] = useState(true);\n\n const customLinter = useCallback(\n (doc: string) => ensureValidStateSchemaName(doc, modelName, scope),\n [modelName, scope],\n );\n\n const schemaErrors = useMemo(() => {\n const errors = ensureValidStateSchemaName(stateSchema, modelName, scope);\n if (sharedSchemaError) {\n return [...errors, sharedSchemaError];\n }\n return errors;\n }, [stateSchema, modelName, scope, sharedSchemaError]);\n\n const handleToggleStandardLib = useCallback(() => {\n setShowStandardLib((prev) => !prev);\n }, []);\n\n const handleSchemaUpdate = useCallback(\n (newDoc: string) => setStateSchema(newDoc, scope),\n [setStateSchema, scope],\n );\n\n const handleInitialStateUpdate = useCallback(\n (newDoc: string) => setInitialState(newDoc, scope),\n [setInitialState, scope],\n );\n\n // Track if we've already synced to prevent double-calls in StrictMode\n const hasSyncedRef = useRef(false);\n\n const { initialValueErrors, fixedState } = useMemo(() => {\n const existingValue = initialValue || \"{}\";\n const sharedSchemaDocumentNode = safeParseSdl(sharedSchemaSdl);\n if (!sharedSchemaDocumentNode)\n return { initialValueErrors: [], fixedState: null };\n const stateTypeName = makeStateSchemaNameForScope(modelName, scope);\n if (!stateTypeName) return { initialValueErrors: [], fixedState: null };\n const stateTypeDefinitionNode = sharedSchemaDocumentNode.definitions.find(\n (def) =>\n def.kind === Kind.OBJECT_TYPE_DEFINITION &&\n def.name.value === stateTypeName,\n );\n if (\n !stateTypeDefinitionNode ||\n stateTypeDefinitionNode.kind !== Kind.OBJECT_TYPE_DEFINITION\n )\n return { initialValueErrors: [], fixedState: null };\n\n const errors = validateStateObject(\n sharedSchemaDocumentNode,\n stateTypeDefinitionNode,\n existingValue,\n );\n\n if (errors.length && syncWithSchema) {\n const computedFixedState = makeMinimalObjectForStateType({\n sharedSchemaDocumentNode,\n stateTypeDefinitionNode,\n existingValue,\n });\n if (initialValue !== computedFixedState) {\n return { initialValueErrors: [], fixedState: computedFixedState };\n }\n }\n return { initialValueErrors: errors, fixedState: null };\n }, [sharedSchemaSdl, initialValue, syncWithSchema, scope, modelName]);\n\n // Handle the side effect of syncing initial state separately\n useEffect(() => {\n if (fixedState && !hasSyncedRef.current) {\n hasSyncedRef.current = true;\n setInitialState(fixedState, scope);\n } else if (!fixedState) {\n // Reset the ref when there's no fix needed\n hasSyncedRef.current = false;\n }\n }, [fixedState, setInitialState, scope]);\n\n return (\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <h3 className=\"mb-2 text-lg text-gray-900 capitalize dark:text-slate-100\">\n {scope} state schema *\n </h3>\n <Button\n onClick={handleToggleStandardLib}\n className=\"mb-2 flex w-fit items-center gap-2\"\n >\n {showStandardLib ? \"Hide\" : \"Show\"} standard library\n <svg\n className={twMerge(\n \"inline-block transition-transform\",\n showStandardLib ? \"rotate-180\" : \"rotate-0\",\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n >\n <path\n d=\"M11.9883 6.01172C11.4363 6.01172 10.9883 6.45972 10.9883 7.01172V13.0117H6.98828L11.9883 18.0117L16.9883 13.0117H12.9883V7.01172C12.9883 6.45972 12.5403 6.01172 11.9883 6.01172Z\"\n fill=\"currentColor\"\n />\n </svg>\n </Button>\n <Suspense>\n {showStandardLib && <GraphqlEditor doc={typeDefsDoc} readonly />}\n <GraphqlEditor\n doc={stateSchema}\n updateDocumentInModel={handleSchemaUpdate}\n customLinter={customLinter}\n />\n {schemaErrors.length > 0 && (\n <p className=\"mt-2 text-sm text-red-600 dark:text-red-100\">\n {schemaErrors[0].message}\n </p>\n )}\n </Suspense>\n </div>\n <div>\n <div className=\"flex flex-col items-end\">\n <h3 className=\"mb-2 text-right text-lg text-gray-900 capitalize dark:text-slate-100\">\n {scope} state initial value *\n </h3>\n <label className=\"mb-2 flex w-fit items-center gap-2 rounded-md border border-gray-200 bg-gray-50 p-2 text-sm font-medium whitespace-nowrap text-gray-900 transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:hover:bg-slate-500 dark:hover:text-slate-50\">\n <input\n type=\"checkbox\"\n className=\"\"\n value={syncWithSchema.toString()}\n onChange={(e) => {\n setSyncWithSchema(\n e.currentTarget.value === \"true\" ? true : false,\n );\n }}\n />\n Sync with schema{\" \"}\n <svg\n className=\"inline-block\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M8.00521 1.99219C6.63588 1.99219 5.32788 2.45152 4.27588 3.28419C3.98721 3.51219 3.94321 3.93285 4.17188 4.22151C4.40054 4.51018 4.82055 4.55418 5.10921 4.32552C5.92721 3.67819 6.93921 3.32552 8.00521 3.32552C10.5825 3.32552 12.6719 5.41485 12.6719 7.99218H11.3385L13.3385 10.6588L15.3385 7.99218H14.0052C14.0052 4.67818 11.3192 1.99219 8.00521 1.99219ZM2.67188 5.32552L0.671875 7.99218H2.00521C2.00521 11.3062 4.69121 13.9922 8.00521 13.9922C9.37521 13.9922 10.6825 13.5335 11.7345 12.7002C12.0232 12.4722 12.0672 12.0515 11.8385 11.7628C11.6099 11.4742 11.1899 11.4302 10.9012 11.6588C10.0825 12.3068 9.07188 12.6588 8.00521 12.6588C5.42788 12.6588 3.33854 10.5695 3.33854 7.99218H4.67188L2.67188 5.32552Z\"\n fill=\"currentColor\"\n />\n </svg>\n </label>\n </div>\n <Suspense>\n <JSONEditor\n doc={initialValue}\n updateDocumentInModel={handleInitialStateUpdate}\n />\n {initialValueErrors.map((error, index) => (\n <p\n key={index}\n className=\"mt-2 text-sm text-red-600 dark:text-red-100\"\n >\n {error instanceof StateValidationError ? (\n <StateValidationErrorMessage error={error} />\n ) : (\n error.message\n )}\n </p>\n ))}\n </Suspense>\n </div>\n </div>\n );\n}\n\nexport default function StateSchemas({\n modelName,\n globalStateSchema,\n localStateSchema,\n globalStateInitialValue,\n localStateInitialValue,\n setStateSchema,\n setInitialState,\n currentScope,\n onScopeChange,\n}: Props) {\n const handleAddLocalState = useCallback(() => {\n const initialDoc = makeInitialSchemaDoc(modelName, \"local\");\n setStateSchema(initialDoc, \"local\");\n setInitialState(\"\", \"local\");\n }, [modelName, setStateSchema, setInitialState]);\n\n return (\n <Tabs\n className=\"pb-8\"\n activationMode=\"manual\"\n value={currentScope}\n onValueChange={(value) => onScopeChange(value as Scope)}\n >\n <div className=\"my-6\">\n <TabsList className=\"mx-auto flex max-w-sm\">\n <TabsTrigger value=\"global\">Global</TabsTrigger>\n <TabsTrigger value=\"local\">Local</TabsTrigger>\n </TabsList>\n </div>\n\n <TabsContent value=\"global\" tabIndex={-1}>\n <StateEditor\n modelName={modelName}\n stateSchema={globalStateSchema}\n initialValue={globalStateInitialValue}\n setStateSchema={setStateSchema}\n setInitialState={setInitialState}\n scope=\"global\"\n />\n </TabsContent>\n\n <TabsContent value=\"local\" tabIndex={-1}>\n {!localStateSchema ? (\n <div className=\"\">\n <h3 className=\"mb-2 text-lg text-gray-900 capitalize dark:text-slate-100\">\n local state schema *\n </h3>\n <Button onClick={handleAddLocalState}>Add local state</Button>\n </div>\n ) : (\n <StateEditor\n modelName={modelName}\n stateSchema={localStateSchema}\n initialValue={localStateInitialValue}\n setStateSchema={setStateSchema}\n setInitialState={setInitialState}\n scope=\"local\"\n />\n )}\n </TabsContent>\n </Tabs>\n );\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { A as __toCommonJS, E as __commonJSMin, j as __toESM, k as __require } from "./dist-fA4EItr0.mjs";
2
- import { G as undo, k as redo } from "./document-drive-sM33juXr.mjs";
3
- import { i as tslib_es6_exports, r as init_tslib_es6 } from "./dist-Cn3iExnV.mjs";
2
+ import { G as undo, k as redo } from "./document-drive-BK2-EDni.mjs";
3
+ import { i as tslib_es6_exports, r as init_tslib_es6 } from "./dist-C7ZmTHz4.mjs";
4
4
  import { C as twMerge, S as twJoin, _ as useLayoutEffect2, a as Item, b as useComposedRefs, c as Presence, d as useDirection, f as createCollection, g as useControllableState, h as createSlot, l as useId$1, m as dispatchDiscreteCustomEvent, o as Root$1, p as Primitive, s as createRovingFocusGroupScope, u as useCallbackRef, v as createContextScope, x as composeEventHandlers, y as composeRefs } from "./dist-BeZaEP6S.mjs";
5
- import { A as e$5, C as useSelectedDriveSafe, M as t$9, N as useDocumentById, O as useUserPermissions, S as useSelectedDriveId, _ as useNodeParentFolderById, a as setSelectedDrive, c as showDeleteNodeModal, d as useDownloadDocument, f as useDragNode, g as useNodeById, h as useNodeActions, j as t$10, k as e$4, l as showRevisionHistory, m as useGetSwitchboardLink, n as getSyncStatusSync, o as setSelectedNode, p as useDropNode, t as addFolder, w as useSelectedNodePath, x as useSelectedDocumentSafe } from "./dist-Bm05eoTg.mjs";
5
+ import { A as e$5, C as useSelectedDriveSafe, M as t$9, N as useDocumentById, O as useUserPermissions, S as useSelectedDriveId, _ as useNodeParentFolderById, a as setSelectedDrive, c as showDeleteNodeModal, d as useDownloadDocument, f as useDragNode, g as useNodeById, h as useNodeActions, j as t$10, k as e$4, l as showRevisionHistory, m as useGetSwitchboardLink, n as getSyncStatusSync, o as setSelectedNode, p as useDropNode, t as addFolder, w as useSelectedNodePath, x as useSelectedDocumentSafe } from "./dist-QOGgRb-y.mjs";
6
6
  import * as React$10 from "react";
7
7
  import React, { Fragment, Suspense, createContext, createElement, forwardRef, useContext, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
8
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -14283,4 +14283,4 @@ const ConnectSearchBar = (props) => {
14283
14283
  //#endregion
14284
14284
  export { FolderItem as a, FormProvider as c, set as d, useForm as f, Icon as g, useWindowSize as h, FileItem as i, appendErrors as l, PowerhouseButton as m, ConnectSearchBar as n, useVirtualizer as o, useFormContext as p, DocumentToolbar as r, Controller as s, Breadcrumbs as t, get as u };
14285
14285
 
14286
- //# sourceMappingURL=connect-BLC4PXD9.mjs.map
14286
+ //# sourceMappingURL=connect-5a3Nx0Jd.mjs.map