@anvia/studio 1.3.13 → 1.3.15
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.
- package/dist/ui/assets/{ArrowClockwise.es-DwsUsBcf.js → ArrowClockwise.es-DZEjRq0J.js} +2 -2
- package/dist/ui/assets/ArrowClockwise.es-DZEjRq0J.js.map +1 -0
- package/dist/ui/assets/{Check.es-DSgPB1Pv.js → Check.es-TFx4xBI5.js} +2 -2
- package/dist/ui/assets/Check.es-TFx4xBI5.js.map +1 -0
- package/dist/ui/assets/Combination-CFi_6UzA.js +42 -0
- package/dist/ui/assets/Combination-CFi_6UzA.js.map +1 -0
- package/dist/ui/assets/{Copy.es-C6Vd2mhd.js → Copy.es-BUkmbhxT.js} +2 -2
- package/dist/ui/assets/Copy.es-BUkmbhxT.js.map +1 -0
- package/dist/ui/assets/{MagnifyingGlass.es-DP3xtOg0.js → MagnifyingGlass.es-DVzl9EQ2.js} +2 -2
- package/dist/ui/assets/MagnifyingGlass.es-DVzl9EQ2.js.map +1 -0
- package/dist/ui/assets/{Wrench.es-BEBc8KqB.js → Wrench.es-Uf2XraWM.js} +2 -2
- package/dist/ui/assets/Wrench.es-Uf2XraWM.js.map +1 -0
- package/dist/ui/assets/{agents-page-BeBY9su3.js → agents-page-BLy19QA8.js} +2 -2
- package/dist/ui/assets/agents-page-BLy19QA8.js.map +1 -0
- package/dist/ui/assets/{badge-MfEDrFTO.js → badge-D6eyQQ0T.js} +2 -2
- package/dist/ui/assets/badge-D6eyQQ0T.js.map +1 -0
- package/dist/ui/assets/button-4bdMllZ8.js +2 -0
- package/dist/ui/assets/button-4bdMllZ8.js.map +1 -0
- package/dist/ui/assets/dialog-D1odZMnQ.js +2 -0
- package/dist/ui/assets/dialog-D1odZMnQ.js.map +1 -0
- package/dist/ui/assets/dist-C6Ez28oH.js +2 -0
- package/dist/ui/assets/dist-C6Ez28oH.js.map +1 -0
- package/dist/ui/assets/dist-gzPjmjmv.js +2 -0
- package/dist/ui/assets/dist-gzPjmjmv.js.map +1 -0
- package/dist/ui/assets/dist-uvOGC5z0.js +2 -0
- package/dist/ui/assets/dist-uvOGC5z0.js.map +1 -0
- package/dist/ui/assets/{graphs-page-2rKZQJAl.js → graphs-page-CDMb6H6o.js} +2 -2
- package/dist/ui/assets/graphs-page-CDMb6H6o.js.map +1 -0
- package/dist/ui/assets/{icon-BivhXy0Y.js → icon-B3s_bapw.js} +2 -2
- package/dist/ui/assets/icon-B3s_bapw.js.map +1 -0
- package/dist/ui/assets/index-BpwQ_xqH.js +67 -0
- package/dist/ui/assets/index-BpwQ_xqH.js.map +1 -0
- package/dist/ui/assets/index-DVwgJz2a.css +2 -0
- package/dist/ui/assets/{input-C35vs5wD.js → input-DjRTBLA6.js} +2 -2
- package/dist/ui/assets/input-DjRTBLA6.js.map +1 -0
- package/dist/ui/assets/knowledge-model-B6kRb7zc.js.map +1 -1
- package/dist/ui/assets/knowledge-page-BpSbnDxl.js +2 -0
- package/dist/ui/assets/knowledge-page-BpSbnDxl.js.map +1 -0
- package/dist/ui/assets/mcps-page-CAdyljvT.js +2 -0
- package/dist/ui/assets/mcps-page-CAdyljvT.js.map +1 -0
- package/dist/ui/assets/memory-page-MhRppZ8j.js +4 -0
- package/dist/ui/assets/memory-page-MhRppZ8j.js.map +1 -0
- package/dist/ui/assets/{pipelines-page-BeE6_VuK.js → pipelines-page-ClFgb3LL.js} +2 -2
- package/dist/ui/assets/pipelines-page-ClFgb3LL.js.map +1 -0
- package/dist/ui/assets/renderers-C1LvbME4.js +94 -0
- package/dist/ui/assets/renderers-C1LvbME4.js.map +1 -0
- package/dist/ui/assets/{request-CpxtfF0E.js → request-C9FAR59q.js} +2 -2
- package/dist/ui/assets/request-C9FAR59q.js.map +1 -0
- package/dist/ui/assets/rfb-CtGtw_KV.js +6 -0
- package/dist/ui/assets/rfb-CtGtw_KV.js.map +1 -0
- package/dist/ui/assets/{sandboxes-page-GPkBA_26.js → sandboxes-page-B1j_lSIA.js} +2 -2
- package/dist/ui/assets/sandboxes-page-B1j_lSIA.js.map +1 -0
- package/dist/ui/assets/select-DwjXlQvi.js +2 -0
- package/dist/ui/assets/select-DwjXlQvi.js.map +1 -0
- package/dist/ui/assets/{sessions-page-CDvKPoVi.js → sessions-page-Bym9fk3t.js} +2 -2
- package/dist/ui/assets/sessions-page-Bym9fk3t.js.map +1 -0
- package/dist/ui/assets/status-page-WZ4bloEs.js +2 -0
- package/dist/ui/assets/status-page-WZ4bloEs.js.map +1 -0
- package/dist/ui/assets/{studio-DeO7ueA2.js → studio-ZpV3GAsn.js} +2 -2
- package/dist/ui/assets/studio-ZpV3GAsn.js.map +1 -0
- package/dist/ui/assets/style-B23wzg_0.js +8 -0
- package/dist/ui/assets/style-B23wzg_0.js.map +1 -0
- package/dist/ui/assets/{team-playground-C-nJy3BC.js → team-playground-BWPiCcRS.js} +2 -2
- package/dist/ui/assets/{team-playground-C-nJy3BC.js.map → team-playground-BWPiCcRS.js.map} +1 -1
- package/dist/ui/assets/{textarea-BqjRR-2a.js → textarea-D_t9rW9X.js} +2 -2
- package/dist/ui/assets/textarea-D_t9rW9X.js.map +1 -0
- package/dist/ui/assets/{tool-runner-D3CdDSUU.js → tool-runner-BVvlqFJh.js} +2 -2
- package/dist/ui/assets/tool-runner-BVvlqFJh.js.map +1 -0
- package/dist/ui/assets/tools-page-BTQvpS16.js +2 -0
- package/dist/ui/assets/tools-page-BTQvpS16.js.map +1 -0
- package/dist/ui/assets/trace-browser-DiYLVmUu.js +4 -0
- package/dist/ui/assets/trace-browser-DiYLVmUu.js.map +1 -0
- package/dist/ui/assets/{transcript-item-D9M-VsnP.js → transcript-item-Wai6fv5d.js} +2 -2
- package/dist/ui/assets/transcript-item-Wai6fv5d.js.map +1 -0
- package/dist/ui/assets/{with-selector-CfGDDu3e.js → with-selector-DI0K_VfM.js} +2 -2
- package/dist/ui/assets/with-selector-DI0K_VfM.js.map +1 -0
- package/dist/ui/index.html +17 -17
- package/package.json +22 -22
- package/dist/ui/assets/ArrowClockwise.es-DwsUsBcf.js.map +0 -1
- package/dist/ui/assets/Check.es-DSgPB1Pv.js.map +0 -1
- package/dist/ui/assets/Combination-BkVfYDnw.js +0 -42
- package/dist/ui/assets/Combination-BkVfYDnw.js.map +0 -1
- package/dist/ui/assets/Copy.es-C6Vd2mhd.js.map +0 -1
- package/dist/ui/assets/MagnifyingGlass.es-DP3xtOg0.js.map +0 -1
- package/dist/ui/assets/Wrench.es-BEBc8KqB.js.map +0 -1
- package/dist/ui/assets/agents-page-BeBY9su3.js.map +0 -1
- package/dist/ui/assets/badge-MfEDrFTO.js.map +0 -1
- package/dist/ui/assets/button-jjWFI6nO.js +0 -2
- package/dist/ui/assets/button-jjWFI6nO.js.map +0 -1
- package/dist/ui/assets/dialog-7KiF6M8r.js +0 -2
- package/dist/ui/assets/dialog-7KiF6M8r.js.map +0 -1
- package/dist/ui/assets/dist-Che9Yn41.js +0 -2
- package/dist/ui/assets/dist-Che9Yn41.js.map +0 -1
- package/dist/ui/assets/dist-Du1CgPgL.js +0 -2
- package/dist/ui/assets/dist-Du1CgPgL.js.map +0 -1
- package/dist/ui/assets/dist-xrWIzsxw.js +0 -2
- package/dist/ui/assets/dist-xrWIzsxw.js.map +0 -1
- package/dist/ui/assets/graphs-page-2rKZQJAl.js.map +0 -1
- package/dist/ui/assets/icon-BivhXy0Y.js.map +0 -1
- package/dist/ui/assets/index-BDFcpxF9.css +0 -2
- package/dist/ui/assets/index-DQo99AOj.js +0 -67
- package/dist/ui/assets/index-DQo99AOj.js.map +0 -1
- package/dist/ui/assets/input-C35vs5wD.js.map +0 -1
- package/dist/ui/assets/knowledge-page-CguNnujL.js +0 -2
- package/dist/ui/assets/knowledge-page-CguNnujL.js.map +0 -1
- package/dist/ui/assets/mcps-page-BZVfflk-.js +0 -2
- package/dist/ui/assets/mcps-page-BZVfflk-.js.map +0 -1
- package/dist/ui/assets/memory-page-DyK3UTyb.js +0 -4
- package/dist/ui/assets/memory-page-DyK3UTyb.js.map +0 -1
- package/dist/ui/assets/pipelines-page-BeE6_VuK.js.map +0 -1
- package/dist/ui/assets/renderers-BakHuLSK.js +0 -96
- package/dist/ui/assets/renderers-BakHuLSK.js.map +0 -1
- package/dist/ui/assets/request-CpxtfF0E.js.map +0 -1
- package/dist/ui/assets/rfb-NV_fh9Db.js +0 -6
- package/dist/ui/assets/rfb-NV_fh9Db.js.map +0 -1
- package/dist/ui/assets/sandboxes-page-GPkBA_26.js.map +0 -1
- package/dist/ui/assets/select-Bt5d0Z3n.js +0 -2
- package/dist/ui/assets/select-Bt5d0Z3n.js.map +0 -1
- package/dist/ui/assets/sessions-page-CDvKPoVi.js.map +0 -1
- package/dist/ui/assets/status-page-DvH1oCw1.js +0 -2
- package/dist/ui/assets/status-page-DvH1oCw1.js.map +0 -1
- package/dist/ui/assets/studio-DeO7ueA2.js.map +0 -1
- package/dist/ui/assets/style-C_1A5pxg.js +0 -8
- package/dist/ui/assets/style-C_1A5pxg.js.map +0 -1
- package/dist/ui/assets/textarea-BqjRR-2a.js.map +0 -1
- package/dist/ui/assets/tool-runner-D3CdDSUU.js.map +0 -1
- package/dist/ui/assets/tools-page-C0lqOcri.js +0 -2
- package/dist/ui/assets/tools-page-C0lqOcri.js.map +0 -1
- package/dist/ui/assets/trace-browser-B4cu-jFZ.js +0 -4
- package/dist/ui/assets/trace-browser-B4cu-jFZ.js.map +0 -1
- package/dist/ui/assets/transcript-item-D9M-VsnP.js.map +0 -1
- package/dist/ui/assets/with-selector-CfGDDu3e.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-uvOGC5z0.js","names":["__defProp","__name","__defProp","__name","__defProp","__name","__defProp","__name","React","__commonJSMin","require_react","require_jsx_runtime","__toESM","createSlot","require_react_dom_production","React","formatProdErrorMessage","url","code","i","noop","Internals","REACT_PORTAL_TYPE","REACT_RECOVERABLE_TYPE","REACT_OPTIMISTIC_KEY","createPortal$1","key","ReactSharedInternals","getCrossOriginStringAs","as","input","reason","container","children","previousTransition","previousUpdatePriority","fn","href","options","crossOrigin","integrity","fetchPriority","form","a","action","initialState","permalink","require_react_dom","checkDCE","err","__defProp$4","__name$4","target","canUseDOM","composeEventHandlers","originalEventHandler","event","checkForDefaultPrevented","ourEventHandler","getOwnerWindow","element","getOwnerDocument","getActiveElement","node","activeElement","isFrame","activeDescendant","id","import_react","import_jsx_runtime","__defProp$3","__name$3","createContext2","Context","defaultContext","rootComponentName","Provider","context","props","value","useContext2","consumerName","createContextScope","defaultContexts","createContext3","BaseContext","index","scope","scopeName","createScope","scopeContexts","contexts","composeContextScopes","createContextScopeDeps","scopes","baseScope","scopeHooks","createScope2","nextScopes","currentScope","useScope","overrideScopes","nextScopes2","import_react_dom","useLayoutEffect2","__defProp$2","__name$2","Primitive","Slot","Node","primitiveProps","Comp","asChild","forwardedRef","primitive","dispatchDiscreteCustomEvent","__defProp$1","__name$1","useReactInsertionEffect","\" useInsertionEffect \".trim().toString()","useCallbackRef","callbackRef","callback","args","__defProp","__name","useStateMachine","machine","state","Presence","presence","usePresence","present","child","ref","useStableComposedRefs","getElementRef","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","mountAnimationNameRef","send","getAnimationName","styles","wasPresent","prevAnimationName","currentAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","setRef","refs","refsRef","currentRefs","hasCleanup","cleanups","cleanup","getter","mayWarn"],"sources":["../../../../../node_modules/.pnpm/react-dom@19.3.0_react@19.3.0/node_modules/react-dom/cjs/react-dom.production.js","../../../../../node_modules/.pnpm/react-dom@19.3.0_react@19.3.0/node_modules/react-dom/index.js","../../../../../node_modules/.pnpm/@radix-ui+primitive@1.2.0/node_modules/@radix-ui/primitive/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-context@1.3.0_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.4_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-primitive@2.2.0_@types+react-dom@19.3.0_@types+react@19.3.0__@types+rea_c31f5d2e8dd1090b081609bcec07c67f/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.5_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../../../node_modules/.pnpm/@radix-ui+react-presence@1.1.11_@types+react-dom@19.3.0_@types+react@19.3.0__@types+rea_fea964e47d1f796c036ae060b7c5470f/node_modules/@radix-ui/react-presence/dist/index.mjs"],"sourcesContent":["/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\n REACT_OPTIMISTIC_KEY = Symbol.for(\"react.optimistic_key\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key:\n null == key\n ? null\n : key === REACT_OPTIMISTIC_KEY\n ? REACT_OPTIMISTIC_KEY\n : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.browser = function (reason) {\n return { $$typeof: REACT_RECOVERABLE_TYPE, _reason: reason };\n};\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.3.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return /* @__PURE__ */ __name(function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n }, \"handleEvent\");\n}\n__name(composeEventHandlers, \"composeEventHandlers\");\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\n__name(getOwnerWindow, \"getOwnerWindow\");\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\n__name(getOwnerDocument, \"getOwnerDocument\");\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\n__name(getActiveElement, \"getActiveElement\");\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n__name(isFrame, \"isFrame\");\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n Context.displayName = rootComponentName + \"Context\";\n const Provider = /* @__PURE__ */ __name((props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, options = {}) {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n}\n__name(createContext2, \"createContext\");\n// @__NO_SIDE_EFFECTS__\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + \"Context\";\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = /* @__PURE__ */ __name((props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope, options = {}) {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n }\n __name(createContext3, \"createContext\");\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return /* @__PURE__ */ __name(function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n }, \"useScope\");\n }, \"createScope\");\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\n__name(createContextScope, \"createContextScope\");\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return /* @__PURE__ */ __name(function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n }, \"useComposedScopes\");\n }, \"createScope\");\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n__name(composeContextScopes, \"composeContextScopes\");\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n__name(dispatchDiscreteCustomEvent, \"dispatchDiscreteCustomEvent\");\nexport {\n Primitive,\n Primitive as Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-callback-ref.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n callbackRef.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n }\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);\n}\n__name(useCallbackRef, \"useCallbackRef\");\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n__name(useStateMachine, \"useStateMachine\");\n\n// src/presence.tsx\nvar Presence = /* @__PURE__ */ __name((props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useStableComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n}, \"Presence\");\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const mountAnimationNameRef = React2.useRef(void 0);\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n if (state === \"mounted\") {\n prevAnimationNameRef.current = mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);\n mountAnimationNameRef.current = void 0;\n } else {\n prevAnimationNameRef.current = \"none\";\n }\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n mountAnimationNameRef.current = currentAnimationName;\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = /* @__PURE__ */ __name((event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n }, \"handleAnimationEnd\");\n const handleAnimationStart = /* @__PURE__ */ __name((event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n }, \"handleAnimationStart\");\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) {\n const styles = getComputedStyle(node2);\n stylesRef.current = styles;\n mountAnimationNameRef.current = getAnimationName(styles);\n } else {\n stylesRef.current = null;\n }\n setNode(node2);\n }, [])\n };\n}\n__name(usePresence, \"usePresence\");\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\n__name(setRef, \"setRef\");\nfunction useStableComposedRefs(...refs) {\n const refsRef = React2.useRef(refs);\n refsRef.current = refs;\n return React2.useCallback((node) => {\n const currentRefs = refsRef.current;\n let hasCleanup = false;\n const cleanups = currentRefs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(currentRefs[i], null);\n }\n }\n };\n }\n }, []);\n}\n__name(useStableComposedRefs, \"useStableComposedRefs\");\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\n__name(getAnimationName, \"getAnimationName\");\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n__name(getElementRef, \"getElementRef\");\nexport {\n Presence,\n Presence as Root\n};\n//# sourceMappingURL=index.mjs.map\n"],"ignoreList":[0,1,2,3,4,5,6,7],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,r as t,s as n}from"./dist-xrWIzsxw.js";import{c as r,t as i}from"./button-jjWFI6nO.js";import{t as a}from"./request-CpxtfF0E.js";import{t as o}from"./ArrowClockwise.es-DwsUsBcf.js";import{t as s}from"./MagnifyingGlass.es-DP3xtOg0.js";import{n as c}from"./icon-BivhXy0Y.js";import{a as l,i as u,n as d,r as f,t as p}from"./select-Bt5d0Z3n.js";import{a as m,o as h,s as g,t as _}from"./studio-DeO7ueA2.js";import{a as v,i as y,n as b,o as x,r as S,s as C,t as w}from"./style-C_1A5pxg.js";import{a as T,t as E}from"./renderers-BakHuLSK.js";import{t as D}from"./input-C35vs5wD.js";var O=n(e(),1),k=new Map([[`bold`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z`}))],[`duotone`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z`,opacity:`0.2`}),O.createElement(`path`,{d:`M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z`}))],[`fill`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z`}))],[`light`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z`}))],[`regular`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z`}))],[`thin`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z`}))]]),A=O.forwardRef((e,t)=>O.createElement(c,{ref:t,...e,weights:k}));A.displayName=`PlusIcon`;var j=A,M={nodes:[],relationships:[],truncated:{nodes:!1,relationships:!1}};function N(e){let{explore:t,searchText:n}=e,[r,i]=(0,O.useState)(e.initialResult??M),[a,o]=(0,O.useState)(),[s,c]=(0,O.useState)(e.initialQuery??``),[l,u]=(0,O.useState)(e.initialResult===void 0?`idle`:`ready`),[d,f]=(0,O.useState)(),p=(0,O.useRef)(void 0),m=(0,O.useRef)(0),h=(0,O.useRef)({mode:`overview`}),g=(0,O.useRef)({});(0,O.useEffect)(()=>()=>p.current?.abort(),[]);let _=(0,O.useCallback)(async e=>{p.current?.abort();let n=new AbortController;p.current=n;let r=++m.current,a=e.abortSignal,s=()=>{n.abort(),r===m.current&&(p.current=void 0,u(`ready`))};if(a?.aborted===!0){s(),f(void 0);return}a?.addEventListener(`abort`,s,{once:!0});let c={...e,abortSignal:n.signal};e.mode===`overview`&&(h.current=L(e)),u(`loading`),f(void 0);try{let a=await t(c);return n.signal.aborted||r!==m.current?void 0:(i(t=>e.mode===`expand`?P(t,a):a),e.mode===`overview`&&(g.current=R(e),o(e=>a.nodes.some(t=>t.id===e)?e:void 0)),u(`ready`),a)}catch(e){if(n.signal.aborted||r!==m.current)return;throw f(e),u(`error`),e}finally{a?.removeEventListener(`abort`,s),p.current===n&&(p.current=void 0)}},[t]),v=(0,O.useCallback)((e,t={})=>{if(e.length===0)throw TypeError(`Graph explorer node id must be non-empty.`);return _({...g.current,...t,mode:`expand`,nodeIds:[e]})},[_]),y=(0,O.useCallback)(()=>_(h.current),[_]),b=(0,O.useCallback)(()=>{m.current+=1,p.current?.abort(),p.current=void 0,f(void 0),u(`ready`)},[]),x=(0,O.useCallback)(()=>{m.current+=1,p.current?.abort(),p.current=void 0,h.current={mode:`overview`},g.current={},i(M),o(void 0),c(``),f(void 0),u(`idle`)},[]),S=(0,O.useMemo)(()=>new Map(r.nodes.map(e=>[e.id,e])),[r.nodes]),C=a===void 0?void 0:S.get(a),w=(0,O.useMemo)(()=>new Set(r.nodes.filter(e=>F(e,s,n)).map(e=>e.id)),[s,r.nodes,n]);return(0,O.useMemo)(()=>({nodes:r.nodes,nodeById:S,relationships:r.relationships,truncated:r.truncated,selectedNodeId:a,selectedNode:C,query:s,matchedNodeIds:w,status:l,error:d,explore:_,expandNode:v,refresh:y,selectNode:o,setQuery:c,stop:b,reset:x}),[d,v,_,w,S,s,y,x,r,C,a,l,b])}function P(e,t){let n=new Map(e.nodes.map(e=>[e.id,e])),r=new Map(e.relationships.map(e=>[e.id,e]));for(let e of t.nodes)n.set(e.id,e);for(let e of t.relationships)r.set(e.id,e);return{nodes:[...n.values()],relationships:[...r.values()],truncated:{nodes:e.truncated.nodes||t.truncated.nodes,relationships:e.truncated.relationships||t.truncated.relationships}}}function F(e,t,n){let r=t.trim().toLocaleLowerCase();return r.length===0?!0:n===void 0?I(e).some(e=>String(e??``).toLocaleLowerCase().includes(r)):n(e).toLocaleLowerCase().includes(r)}function I(e){let t=Object.entries(e.properties).flatMap(([e,t])=>[e,Array.isArray(t)?t.join(` `):String(t)]);return[e.type,e.key,...Object.values(e.identity),...t]}function L(e){let{abortSignal:t,...n}=e;return n}function R(e){return{nodeTypes:e.nodeTypes,relationships:e.relationships,includeProvenance:e.includeProvenance,maxNodes:e.maxNodes,maxRelationships:e.maxRelationships}}(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0);var z=(0,O.createContext)(void 0),B=(0,O.createContext)(void 0);function V({controller:e,children:t}){return(0,O.createElement)(z.Provider,{value:e},t)}function H({value:e,children:t}){return(0,O.createElement)(B.Provider,{value:e},t)}function U(){let e=(0,O.useContext)(z);if(e===void 0)throw Error(`Graph explorer primitives must be used inside GraphExplorerProvider.`);return e}function W(){let e=(0,O.useContext)(B);if(e===void 0)throw Error(`Graph explorer node primitives must be used inside GraphExplorerNodePrimitive.Root or GraphExplorerPrimitive.Nodes.`);return e}function G(){return(0,O.useContext)(B)}(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0);var K=t();function q(e){for(let t of[`name`,`title`,`label`]){let n=e.properties[t];if(typeof n==`string`&&n.trim().length>0)return n}return e.key===void 0?`${e.type} ${e.id}`:e.key}(0,O.forwardRef)(function(e,t){let n=U(),r=n.truncated.nodes||n.truncated.relationships;return T(`div`,{...e,"aria-busy":n.status===`loading`,"data-role":`graph-explorer`,"data-state":n.status,"data-truncated":r?`true`:`false`},t)}),(0,O.forwardRef)(function({onChange:e,...t},n){let r=U(),i=(0,O.useCallback)(t=>{e?.(t),t.defaultPrevented||r.setQuery(t.currentTarget.value)},[r,e]);return T(`input`,{...t,"aria-label":t[`aria-label`]??`Search graph`,"data-state":r.query.length===0?`empty`:`populated`,onChange:i,type:t.type??`search`,value:r.query},n)}),(0,O.forwardRef)(function(e,t){return T(`div`,{...e,"data-role":`graph-explorer-viewport`},t)}),(0,O.forwardRef)(function({children:e,keepMounted:t=!1,...n},r){let i=U(),a=i.nodes.length===0;return a&&!t?null:T(`div`,{...n,children:i.nodes.map(t=>{let n={node:t,selected:t.id===i.selectedNodeId,matched:i.matchedNodeIds.has(t.id)};return(0,K.jsx)(H,{value:n,children:typeof e==`function`?e(t,n):e??(0,K.jsx)(J,{children:(0,K.jsx)(Y,{})})},t.id)}),"data-state":a?`empty`:`populated`,role:n.role??`list`},r)}),(0,O.forwardRef)(function(e,t){let n=U();return n.nodes.length>0||n.status===`loading`?null:T(`div`,{...e,children:e.children??`No graph nodes.`},t)}),(0,O.forwardRef)(function({children:e,...t},n){let r=U(),i=typeof e==`function`?e(r):e??ee(r);return T(`div`,{...t,children:i,"data-state":r.status,role:t.role??`status`},n)}),(0,O.forwardRef)(function({onClick:e,...t},n){let r=U(),i=t.disabled??r.status===`loading`,a=Z(e,i,r.refresh);return T(`button`,{...t,children:t.children??`Refresh graph`,disabled:i,onClick:a,type:t.type??`button`},n)});var J=(0,O.forwardRef)(function({nodeId:e,...t},n){let r=U(),i=G(),a=e===void 0?i?.node:r.nodeById.get(e);if(a===void 0)throw Error(e===void 0?`GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes.`:`Graph explorer node ${e} is not loaded.`);let o={node:a,selected:a.id===r.selectedNodeId,matched:r.matchedNodeIds.has(a.id)};return(0,K.jsx)(H,{value:o,children:T(`div`,{...t,"data-match":o.matched?`matched`:`unmatched`,"data-node-id":o.node.id,"data-node-type":o.node.type,"data-state":o.selected?`selected`:`unselected`,role:t.role??(i===void 0?void 0:`listitem`)},n)})}),Y=(0,O.forwardRef)(function({onClick:e,...t},n){let r=U(),i=W(),a=(0,O.useCallback)(n=>{e?.(n),!n.defaultPrevented&&!t.disabled&&r.selectNode(i.node.id)},[r,e,t.disabled,i.node.id]);return T(`button`,{...t,children:t.children??q(i.node),onClick:a,type:t.type??`button`,"aria-pressed":i.selected},n)}),X=(0,O.forwardRef)(function({onClick:e,options:t,...n},r){let i=U(),a=W(),o=n.disabled??i.status===`loading`,s=Z(e,o,(0,O.useCallback)(()=>i.expandNode(a.node.id,t),[i,t,a.node.id]));return T(`button`,{...n,children:n.children??`Expand`,disabled:o,onClick:s,type:n.type??`button`},r)});function Z(e,t,n){return(0,O.useCallback)(r=>{e?.(r),!(r.defaultPrevented||t)&&n().catch(()=>void 0)},[n,t,e])}function ee(e){return e.status===`loading`?`Loading graph.`:e.status===`error`?`Graph exploration failed.`:`${e.nodes.length} nodes, ${e.relationships.length} relationships.`}var te={Root:J,Trigger:Y,Expand:X},ne={graphEntity:ie};function re(e,t){let n=e.nodes.filter(e=>t.has(e.id)),r=new Set(n.map(e=>e.id));return{nodes:ae(n),edges:e.relationships.filter(e=>r.has(e.from)&&r.has(e.to)).map(e=>oe(e))}}function ie(e){return(0,K.jsx)(te.Root,{nodeId:e.id,asChild:!0,children:(0,K.jsxs)(`article`,{className:[`relative w-[180px] rounded-xl border bg-card px-3 py-2.5 text-left shadow-sm transition`,e.selected?`border-foreground shadow-md`:`border-border/80`].join(` `),children:[(0,K.jsx)(y,{type:`target`,position:C.Top,className:`!size-1.5 !border-0 !bg-muted-foreground/50`}),(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,K.jsx)(`span`,{className:[`size-2.5 shrink-0 rounded-full`,e.data.color].join(` `)}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:e.data.label}),(0,K.jsx)(`div`,{className:`mt-0.5 truncate text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e.data.type})]})]}),(0,K.jsx)(y,{type:`source`,position:C.Bottom,className:`!size-1.5 !border-0 !bg-muted-foreground/50`})]})})}function ae(e){return e.map((e,t)=>{let n=t*2.399963,r=180*Math.sqrt(t);return{id:e.id,type:`graphEntity`,position:{x:Math.cos(n)*r,y:Math.sin(n)*r},data:{label:q(e),type:e.type,color:se(e.type)}}})}function oe(e){return{id:e.id,source:e.from,target:e.to,label:e.type,type:`smoothstep`,markerEnd:{type:x.ArrowClosed,width:14,height:14},labelStyle:{fontSize:10,fontWeight:600},style:{strokeWidth:1.5}}}function se(e){let t=[`bg-emerald-500`,`bg-sky-500`,`bg-violet-500`,`bg-amber-500`,`bg-rose-500`,`bg-cyan-500`,`bg-fuchsia-500`],n=0;for(let t of e)n=n*31+t.charCodeAt(0)>>>0;return t[n%t.length]??`bg-muted-foreground`}function ce(e){let{onError:t,onStatus:n}=e,[i,o]=(0,O.useState)(e.graphs[0]?.id??``),[c,l]=(0,O.useState)([]),[u,d]=(0,O.useState)([]),f=e.graphs.find(e=>e.id===i)??e.graphs[0],p=N({explore:(0,O.useCallback)(async e=>{if(f===void 0)throw Error(`Graph explorer unavailable`);let{abortSignal:i,...o}=e;n(`Loading graph`);try{let e=await a(`/graphs/${encodeURIComponent(f.id)}/explore`,`Graph explorer`,i,`no-store`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(o)});return i?.aborted!==!0&&n(`Connected`),e}catch(e){throw i?.aborted!==!0&&(t(r(e)),n(`Graph error`)),e}},[f,t,n])}),y=(0,O.useMemo)(()=>({nodes:p.nodes,relationships:p.relationships,truncated:p.truncated}),[p.nodes,p.relationships,p.truncated]),x=(0,O.useMemo)(()=>re(y,p.matchedNodeIds),[p.matchedNodeIds,y]),C=p.status===`loading`,T=p.selectedNode,E=p.explore,k=p.reset,A=p.selectNode;if((0,O.useEffect)(()=>{if(f===void 0)return;let e=f.nodeTypes.map(e=>e.name),t=f.relationshipTypes.map(e=>e.name);o(f.id),l(e),d(t),k(),E({mode:`overview`,nodeTypes:e,relationships:t}).then(e=>{e!==void 0&&A(e.nodes[0]?.id)}).catch(()=>void 0)},[E,f,k,A]),!e.enabled||e.graphs.length===0)return(0,K.jsx)(m,{"aria-label":`Graphs`,children:(0,K.jsx)(_,{title:e.enabled?`No graphs`:`Graph explorer unavailable`,text:e.enabled?`Register a graph in Studio to inspect its nodes and relationships.`:`This Studio runtime does not expose a graph explorer.`})});function j(){E({mode:`overview`,nodeTypes:c,relationships:u}).then(e=>{e!==void 0&&A(e.nodes[0]?.id)}).catch(()=>void 0)}function M(){T!==void 0&&p.expandNode(T.id,{nodeTypes:c,relationships:u,direction:`both`,maxDepth:1}).catch(()=>void 0)}return(0,K.jsx)(V,{controller:p,children:(0,K.jsx)(m,{"aria-label":`Graphs`,children:(0,K.jsx)(`div`,{className:`grid min-h-0 min-w-0 pb-6 pr-6`,children:(0,K.jsxs)(g,{className:`grid grid-cols-[minmax(0,2fr)_340px] max-lg:grid-cols-1`,children:[(0,K.jsxs)(`div`,{className:`relative min-h-0 min-w-0 overflow-hidden border-r border-border/80 bg-card/25 max-lg:min-h-96 max-lg:border-b max-lg:border-r-0`,children:[(0,K.jsxs)(`div`,{className:`absolute left-4 top-4 z-10 flex max-w-[calc(100%-2rem)] items-center gap-2 rounded-xl border border-border/80 bg-background/90 p-2 shadow-sm backdrop-blur`,children:[(0,K.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,K.jsx)(s,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),(0,K.jsx)(D,{"aria-label":`Search loaded nodes`,className:`w-64 pl-8`,placeholder:`Search loaded nodes`,value:p.query,onChange:e=>p.setQuery(e.currentTarget.value)})]}),(0,K.jsxs)(h,{children:[x.nodes.length,` nodes`]}),(0,K.jsxs)(h,{children:[x.edges.length,` relations`]})]}),C&&y.nodes.length===0?(0,K.jsx)(`div`,{className:`grid h-full min-h-96 place-items-center text-sm text-muted-foreground`,children:`Loading graph…`}):null,!C&&y.nodes.length===0?(0,K.jsx)(_,{className:`h-full border-0`,title:`No nodes found`,text:`Try another graph or broaden the selected node and relationship types.`}):null,y.nodes.length>0?(0,K.jsxs)(v,{nodes:x.nodes,edges:x.edges,className:`graph-explorer-flow`,colorMode:e.theme,nodeTypes:ne,fitView:!0,fitViewOptions:{padding:.2,maxZoom:1},minZoom:.2,maxZoom:1.7,proOptions:{hideAttribution:!0},defaultEdgeOptions:{focusable:!0},style:{"--xy-edge-stroke":`var(--muted-foreground)`,"--xy-edge-stroke-width":`1.4`,"--xy-edge-stroke-selected":`var(--foreground)`},onNodeClick:(e,t)=>p.selectNode(t.id),children:[(0,K.jsx)(w,{variant:b.Dots,gap:16,size:1.5,color:`var(--muted-foreground)`,className:`opacity-30`}),(0,K.jsx)(S,{showInteractive:!1})]},`${f?.id}:${y.nodes.length}:${y.relationships.length}`):null]}),(0,K.jsx)(le,{graph:f,graphs:e.graphs,loading:C,result:y,selectedGraphId:i,selectedNode:T,selectedNodeTypes:c,selectedRelationships:u,onExpand:M,onReload:j,onSelectGraph:o,onToggleNodeType:e=>l(t=>$(t,e)),onToggleRelationship:e=>d(t=>$(t,e))})]})})})})}function le(e){let t=e.result.truncated.nodes||e.result.truncated.relationships;return(0,K.jsxs)(`aside`,{className:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] overflow-hidden bg-background/70`,children:[(0,K.jsxs)(`header`,{className:`grid gap-3 border-b border-border/80 bg-card/35 p-4`,children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`h1`,{className:`truncate text-base font-semibold`,children:e.graph?.name??`Graph explorer`}),(0,K.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-muted-foreground`,children:e.graph?.description??`Explore a bounded view of nodes and relationships.`})]}),t?(0,K.jsx)(h,{title:`The configured result limit was reached`,children:`Limited`}):null]}),(0,K.jsxs)(p,{value:e.selectedGraphId,onValueChange:e.onSelectGraph,children:[(0,K.jsx)(u,{className:`h-8 w-full text-xs`,children:(0,K.jsx)(l,{placeholder:`Select graph`})}),(0,K.jsx)(d,{children:e.graphs.map(e=>(0,K.jsx)(f,{value:e.id,children:e.name??e.id},e.id))})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(i,{className:`flex-1`,variant:`secondary`,disabled:e.loading||e.selectedNodeTypes.length===0,onClick:e.onReload,children:[(0,K.jsx)(o,{}),` Refresh`]}),(0,K.jsxs)(i,{className:`flex-1`,disabled:e.loading||e.selectedNode===void 0,onClick:e.onExpand,children:[(0,K.jsx)(j,{}),` Expand`]})]})]}),(0,K.jsxs)(`div`,{className:`min-h-0 overflow-y-auto p-4`,children:[(0,K.jsx)(Q,{label:`Node types`,items:e.graph?.nodeTypes.map(e=>e.name)??[],selected:e.selectedNodeTypes,onToggle:e.onToggleNodeType}),(0,K.jsx)(Q,{label:`Relationships`,items:e.graph?.relationshipTypes.map(e=>e.name)??[],selected:e.selectedRelationships,onToggle:e.onToggleRelationship}),(0,K.jsx)(`div`,{className:`mt-5 border-t border-border/80 pt-4`,children:e.selectedNode===void 0?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Select a node to inspect its properties.`}):(0,K.jsx)(ue,{node:e.selectedNode})})]})]})}function Q(e){return(0,K.jsxs)(`section`,{className:`mb-4`,children:[(0,K.jsx)(`h2`,{className:`mb-2 text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:e.label}),(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.items.map(t=>{let n=e.selected.includes(t);return(0,K.jsx)(`button`,{type:`button`,"aria-pressed":n,className:[`rounded-full border px-2 py-1 text-xs transition-colors`,n?`border-foreground/30 bg-foreground text-background`:`border-border bg-card text-muted-foreground hover:text-foreground`].join(` `),onClick:()=>e.onToggle(t),children:t},t)})})]})}function ue(e){let t=JSON.stringify({identity:e.node.identity,properties:e.node.properties},null,2);return(0,K.jsxs)(`section`,{children:[(0,K.jsx)(h,{children:e.node.type}),(0,K.jsx)(`h2`,{className:`mt-2 break-words text-base font-semibold`,children:q(e.node)}),(0,K.jsxs)(`p`,{className:`mt-1 break-all text-xs text-muted-foreground`,children:[`ID `,e.node.id]}),(0,K.jsx)(`pre`,{className:`mt-4 overflow-x-auto rounded-xl border border-border/80 bg-card p-3 text-xs leading-5`,children:(0,K.jsx)(`code`,{children:(0,K.jsx)(E,{text:t})})})]})}function $(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}export{ce as GraphsPage};
|
|
2
|
-
//# sourceMappingURL=graphs-page-
|
|
1
|
+
import{i as e,r as t,s as n}from"./dist-gzPjmjmv.js";import{l as r,t as i}from"./button-4bdMllZ8.js";import{t as a}from"./request-C9FAR59q.js";import{t as o}from"./ArrowClockwise.es-DZEjRq0J.js";import{t as s}from"./MagnifyingGlass.es-DVzl9EQ2.js";import{n as c}from"./icon-B3s_bapw.js";import{a as l,i as u,n as d,r as f,t as p}from"./select-DwjXlQvi.js";import{a as m,o as h,s as g,t as _}from"./studio-ZpV3GAsn.js";import{a as v,i as y,n as b,o as x,r as S,s as C,t as w}from"./style-B23wzg_0.js";import{a as T,t as E}from"./renderers-C1LvbME4.js";import{t as D}from"./input-DjRTBLA6.js";var O=n(e(),1),k=new Map([[`bold`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z`}))],[`duotone`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z`,opacity:`0.2`}),O.createElement(`path`,{d:`M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z`}))],[`fill`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z`}))],[`light`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z`}))],[`regular`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z`}))],[`thin`,O.createElement(O.Fragment,null,O.createElement(`path`,{d:`M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z`}))]]),A=O.forwardRef((e,t)=>O.createElement(c,{ref:t,...e,weights:k}));A.displayName=`PlusIcon`;var j=A,M={nodes:[],relationships:[],truncated:{nodes:!1,relationships:!1}};function N(e){let{explore:t,searchText:n}=e,[r,i]=(0,O.useState)(e.initialResult??M),[a,o]=(0,O.useState)(),[s,c]=(0,O.useState)(e.initialQuery??``),[l,u]=(0,O.useState)(e.initialResult===void 0?`idle`:`ready`),[d,f]=(0,O.useState)(),p=(0,O.useRef)(void 0),m=(0,O.useRef)(0),h=(0,O.useRef)({mode:`overview`}),g=(0,O.useRef)({});(0,O.useEffect)(()=>()=>p.current?.abort(),[]);let _=(0,O.useCallback)(async e=>{p.current?.abort();let n=new AbortController;p.current=n;let r=++m.current,a=e.abortSignal,s=()=>{n.abort(),r===m.current&&(p.current=void 0,u(`ready`))};if(a?.aborted===!0){s(),f(void 0);return}a?.addEventListener(`abort`,s,{once:!0});let c={...e,abortSignal:n.signal};e.mode===`overview`&&(h.current=L(e)),u(`loading`),f(void 0);try{let a=await t(c);return n.signal.aborted||r!==m.current?void 0:(i(t=>e.mode===`expand`?P(t,a):a),e.mode===`overview`&&(g.current=R(e),o(e=>a.nodes.some(t=>t.id===e)?e:void 0)),u(`ready`),a)}catch(e){if(n.signal.aborted||r!==m.current)return;throw f(e),u(`error`),e}finally{a?.removeEventListener(`abort`,s),p.current===n&&(p.current=void 0)}},[t]),v=(0,O.useCallback)((e,t={})=>{if(e.length===0)throw TypeError(`Graph explorer node id must be non-empty.`);return _({...g.current,...t,mode:`expand`,nodeIds:[e]})},[_]),y=(0,O.useCallback)(()=>_(h.current),[_]),b=(0,O.useCallback)(()=>{m.current+=1,p.current?.abort(),p.current=void 0,f(void 0),u(`ready`)},[]),x=(0,O.useCallback)(()=>{m.current+=1,p.current?.abort(),p.current=void 0,h.current={mode:`overview`},g.current={},i(M),o(void 0),c(``),f(void 0),u(`idle`)},[]),S=(0,O.useMemo)(()=>new Map(r.nodes.map(e=>[e.id,e])),[r.nodes]),C=a===void 0?void 0:S.get(a),w=(0,O.useMemo)(()=>new Set(r.nodes.filter(e=>F(e,s,n)).map(e=>e.id)),[s,r.nodes,n]);return(0,O.useMemo)(()=>({nodes:r.nodes,nodeById:S,relationships:r.relationships,truncated:r.truncated,selectedNodeId:a,selectedNode:C,query:s,matchedNodeIds:w,status:l,error:d,explore:_,expandNode:v,refresh:y,selectNode:o,setQuery:c,stop:b,reset:x}),[d,v,_,w,S,s,y,x,r,C,a,l,b])}function P(e,t){let n=new Map(e.nodes.map(e=>[e.id,e])),r=new Map(e.relationships.map(e=>[e.id,e]));for(let e of t.nodes)n.set(e.id,e);for(let e of t.relationships)r.set(e.id,e);return{nodes:[...n.values()],relationships:[...r.values()],truncated:{nodes:e.truncated.nodes||t.truncated.nodes,relationships:e.truncated.relationships||t.truncated.relationships}}}function F(e,t,n){let r=t.trim().toLocaleLowerCase();return r.length===0?!0:n===void 0?I(e).some(e=>String(e??``).toLocaleLowerCase().includes(r)):n(e).toLocaleLowerCase().includes(r)}function I(e){let t=Object.entries(e.properties).flatMap(([e,t])=>[e,Array.isArray(t)?t.join(` `):String(t)]);return[e.type,e.key,...Object.values(e.identity),...t]}function L(e){let{abortSignal:t,...n}=e;return n}function R(e){return{nodeTypes:e.nodeTypes,relationships:e.relationships,includeProvenance:e.includeProvenance,maxNodes:e.maxNodes,maxRelationships:e.maxRelationships}}(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0);var z=(0,O.createContext)(void 0),B=(0,O.createContext)(void 0);function V({controller:e,children:t}){return(0,O.createElement)(z.Provider,{value:e},t)}function H({value:e,children:t}){return(0,O.createElement)(B.Provider,{value:e},t)}function U(){let e=(0,O.useContext)(z);if(e===void 0)throw Error(`Graph explorer primitives must be used inside GraphExplorerProvider.`);return e}function W(){let e=(0,O.useContext)(B);if(e===void 0)throw Error(`Graph explorer node primitives must be used inside GraphExplorerNodePrimitive.Root or GraphExplorerPrimitive.Nodes.`);return e}function G(){return(0,O.useContext)(B)}(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0),(0,O.createContext)(void 0);var K=t();function q(e){for(let t of[`name`,`title`,`label`]){let n=e.properties[t];if(typeof n==`string`&&n.trim().length>0)return n}return e.key===void 0?`${e.type} ${e.id}`:e.key}(0,O.forwardRef)(function(e,t){let n=U(),r=n.truncated.nodes||n.truncated.relationships;return T(`div`,{...e,"aria-busy":n.status===`loading`,"data-role":`graph-explorer`,"data-state":n.status,"data-truncated":r?`true`:`false`},t)}),(0,O.forwardRef)(function({onChange:e,...t},n){let r=U(),i=(0,O.useCallback)(t=>{e?.(t),t.defaultPrevented||r.setQuery(t.currentTarget.value)},[r,e]);return T(`input`,{...t,"aria-label":t[`aria-label`]??`Search graph`,"data-state":r.query.length===0?`empty`:`populated`,onChange:i,type:t.type??`search`,value:r.query},n)}),(0,O.forwardRef)(function(e,t){return T(`div`,{...e,"data-role":`graph-explorer-viewport`},t)}),(0,O.forwardRef)(function({children:e,keepMounted:t=!1,...n},r){let i=U(),a=i.nodes.length===0;return a&&!t?null:T(`div`,{...n,children:i.nodes.map(t=>{let n={node:t,selected:t.id===i.selectedNodeId,matched:i.matchedNodeIds.has(t.id)};return(0,K.jsx)(H,{value:n,children:typeof e==`function`?e(t,n):e??(0,K.jsx)(J,{children:(0,K.jsx)(Y,{})})},t.id)}),"data-state":a?`empty`:`populated`,role:n.role??`list`},r)}),(0,O.forwardRef)(function(e,t){let n=U();return n.nodes.length>0||n.status===`loading`?null:T(`div`,{...e,children:e.children??`No graph nodes.`},t)}),(0,O.forwardRef)(function({children:e,...t},n){let r=U(),i=typeof e==`function`?e(r):e??ee(r);return T(`div`,{...t,children:i,"data-state":r.status,role:t.role??`status`},n)}),(0,O.forwardRef)(function({onClick:e,...t},n){let r=U(),i=t.disabled??r.status===`loading`,a=Z(e,i,r.refresh);return T(`button`,{...t,children:t.children??`Refresh graph`,disabled:i,onClick:a,type:t.type??`button`},n)});var J=(0,O.forwardRef)(function({nodeId:e,...t},n){let r=U(),i=G(),a=e===void 0?i?.node:r.nodeById.get(e);if(a===void 0)throw Error(e===void 0?`GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes.`:`Graph explorer node ${e} is not loaded.`);let o={node:a,selected:a.id===r.selectedNodeId,matched:r.matchedNodeIds.has(a.id)};return(0,K.jsx)(H,{value:o,children:T(`div`,{...t,"data-match":o.matched?`matched`:`unmatched`,"data-node-id":o.node.id,"data-node-type":o.node.type,"data-state":o.selected?`selected`:`unselected`,role:t.role??(i===void 0?void 0:`listitem`)},n)})}),Y=(0,O.forwardRef)(function({onClick:e,...t},n){let r=U(),i=W(),a=(0,O.useCallback)(n=>{e?.(n),!n.defaultPrevented&&!t.disabled&&r.selectNode(i.node.id)},[r,e,t.disabled,i.node.id]);return T(`button`,{...t,children:t.children??q(i.node),onClick:a,type:t.type??`button`,"aria-pressed":i.selected},n)}),X=(0,O.forwardRef)(function({onClick:e,options:t,...n},r){let i=U(),a=W(),o=n.disabled??i.status===`loading`,s=Z(e,o,(0,O.useCallback)(()=>i.expandNode(a.node.id,t),[i,t,a.node.id]));return T(`button`,{...n,children:n.children??`Expand`,disabled:o,onClick:s,type:n.type??`button`},r)});function Z(e,t,n){return(0,O.useCallback)(r=>{e?.(r),!(r.defaultPrevented||t)&&n().catch(()=>void 0)},[n,t,e])}function ee(e){return e.status===`loading`?`Loading graph.`:e.status===`error`?`Graph exploration failed.`:`${e.nodes.length} nodes, ${e.relationships.length} relationships.`}var te={Root:J,Trigger:Y,Expand:X},ne={graphEntity:ie};function re(e,t){let n=e.nodes.filter(e=>t.has(e.id)),r=new Set(n.map(e=>e.id));return{nodes:ae(n),edges:e.relationships.filter(e=>r.has(e.from)&&r.has(e.to)).map(e=>oe(e))}}function ie(e){return(0,K.jsx)(te.Root,{nodeId:e.id,asChild:!0,children:(0,K.jsxs)(`article`,{className:[`relative w-[180px] rounded-xl border bg-card px-3 py-2.5 text-left shadow-sm transition`,e.selected?`border-foreground shadow-md`:`border-border/80`].join(` `),children:[(0,K.jsx)(y,{type:`target`,position:C.Top,className:`!size-1.5 !border-0 !bg-muted-foreground/50`}),(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,K.jsx)(`span`,{className:[`size-2.5 shrink-0 rounded-full`,e.data.color].join(` `)}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:e.data.label}),(0,K.jsx)(`div`,{className:`mt-0.5 truncate text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e.data.type})]})]}),(0,K.jsx)(y,{type:`source`,position:C.Bottom,className:`!size-1.5 !border-0 !bg-muted-foreground/50`})]})})}function ae(e){return e.map((e,t)=>{let n=t*2.399963,r=180*Math.sqrt(t);return{id:e.id,type:`graphEntity`,position:{x:Math.cos(n)*r,y:Math.sin(n)*r},data:{label:q(e),type:e.type,color:se(e.type)}}})}function oe(e){return{id:e.id,source:e.from,target:e.to,label:e.type,type:`smoothstep`,markerEnd:{type:x.ArrowClosed,width:14,height:14},labelStyle:{fontSize:10,fontWeight:600},style:{strokeWidth:1.5}}}function se(e){let t=[`bg-emerald-500`,`bg-sky-500`,`bg-violet-500`,`bg-amber-500`,`bg-rose-500`,`bg-cyan-500`,`bg-fuchsia-500`],n=0;for(let t of e)n=n*31+t.charCodeAt(0)>>>0;return t[n%t.length]??`bg-muted-foreground`}function ce(e){let{onError:t,onStatus:n}=e,[i,o]=(0,O.useState)(e.graphs[0]?.id??``),[c,l]=(0,O.useState)([]),[u,d]=(0,O.useState)([]),f=e.graphs.find(e=>e.id===i)??e.graphs[0],p=N({explore:(0,O.useCallback)(async e=>{if(f===void 0)throw Error(`Graph explorer unavailable`);let{abortSignal:i,...o}=e;n(`Loading graph`);try{let e=await a(`/graphs/${encodeURIComponent(f.id)}/explore`,`Graph explorer`,i,`no-store`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(o)});return i?.aborted!==!0&&n(`Connected`),e}catch(e){throw i?.aborted!==!0&&(t(r(e)),n(`Graph error`)),e}},[f,t,n])}),y=(0,O.useMemo)(()=>({nodes:p.nodes,relationships:p.relationships,truncated:p.truncated}),[p.nodes,p.relationships,p.truncated]),x=(0,O.useMemo)(()=>re(y,p.matchedNodeIds),[p.matchedNodeIds,y]),C=p.status===`loading`,T=p.selectedNode,E=p.explore,k=p.reset,A=p.selectNode;if((0,O.useEffect)(()=>{if(f===void 0)return;let e=f.nodeTypes.map(e=>e.name),t=f.relationshipTypes.map(e=>e.name);o(f.id),l(e),d(t),k(),E({mode:`overview`,nodeTypes:e,relationships:t}).then(e=>{e!==void 0&&A(e.nodes[0]?.id)}).catch(()=>void 0)},[E,f,k,A]),!e.enabled||e.graphs.length===0)return(0,K.jsx)(m,{"aria-label":`Graphs`,children:(0,K.jsx)(_,{title:e.enabled?`No graphs`:`Graph explorer unavailable`,text:e.enabled?`Register a graph in Studio to inspect its nodes and relationships.`:`This Studio runtime does not expose a graph explorer.`})});function j(){E({mode:`overview`,nodeTypes:c,relationships:u}).then(e=>{e!==void 0&&A(e.nodes[0]?.id)}).catch(()=>void 0)}function M(){T!==void 0&&p.expandNode(T.id,{nodeTypes:c,relationships:u,direction:`both`,maxDepth:1}).catch(()=>void 0)}return(0,K.jsx)(V,{controller:p,children:(0,K.jsx)(m,{"aria-label":`Graphs`,children:(0,K.jsx)(`div`,{className:`grid min-h-0 min-w-0 pb-6 pr-6`,children:(0,K.jsxs)(g,{className:`grid grid-cols-[minmax(0,2fr)_340px] max-lg:grid-cols-1`,children:[(0,K.jsxs)(`div`,{className:`relative min-h-0 min-w-0 overflow-hidden border-r border-border/80 bg-card/25 max-lg:min-h-96 max-lg:border-b max-lg:border-r-0`,children:[(0,K.jsxs)(`div`,{className:`absolute left-4 top-4 z-10 flex max-w-[calc(100%-2rem)] items-center gap-2 rounded-xl border border-border/80 bg-background/90 p-2 shadow-sm backdrop-blur`,children:[(0,K.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,K.jsx)(s,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),(0,K.jsx)(D,{"aria-label":`Search loaded nodes`,className:`w-64 pl-8`,placeholder:`Search loaded nodes`,value:p.query,onChange:e=>p.setQuery(e.currentTarget.value)})]}),(0,K.jsxs)(h,{children:[x.nodes.length,` nodes`]}),(0,K.jsxs)(h,{children:[x.edges.length,` relations`]})]}),C&&y.nodes.length===0?(0,K.jsx)(`div`,{className:`grid h-full min-h-96 place-items-center text-sm text-muted-foreground`,children:`Loading graph…`}):null,!C&&y.nodes.length===0?(0,K.jsx)(_,{className:`h-full border-0`,title:`No nodes found`,text:`Try another graph or broaden the selected node and relationship types.`}):null,y.nodes.length>0?(0,K.jsxs)(v,{nodes:x.nodes,edges:x.edges,className:`graph-explorer-flow`,colorMode:e.theme,nodeTypes:ne,fitView:!0,fitViewOptions:{padding:.2,maxZoom:1},minZoom:.2,maxZoom:1.7,proOptions:{hideAttribution:!0},defaultEdgeOptions:{focusable:!0},style:{"--xy-edge-stroke":`var(--muted-foreground)`,"--xy-edge-stroke-width":`1.4`,"--xy-edge-stroke-selected":`var(--foreground)`},onNodeClick:(e,t)=>p.selectNode(t.id),children:[(0,K.jsx)(w,{variant:b.Dots,gap:16,size:1.5,color:`var(--muted-foreground)`,className:`opacity-30`}),(0,K.jsx)(S,{showInteractive:!1})]},`${f?.id}:${y.nodes.length}:${y.relationships.length}`):null]}),(0,K.jsx)(le,{graph:f,graphs:e.graphs,loading:C,result:y,selectedGraphId:i,selectedNode:T,selectedNodeTypes:c,selectedRelationships:u,onExpand:M,onReload:j,onSelectGraph:o,onToggleNodeType:e=>l(t=>$(t,e)),onToggleRelationship:e=>d(t=>$(t,e))})]})})})})}function le(e){let t=e.result.truncated.nodes||e.result.truncated.relationships;return(0,K.jsxs)(`aside`,{className:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)] overflow-hidden bg-background/70`,children:[(0,K.jsxs)(`header`,{className:`grid gap-3 border-b border-border/80 bg-card/35 p-4`,children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`h1`,{className:`truncate text-base font-semibold`,children:e.graph?.name??`Graph explorer`}),(0,K.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-muted-foreground`,children:e.graph?.description??`Explore a bounded view of nodes and relationships.`})]}),t?(0,K.jsx)(h,{title:`The configured result limit was reached`,children:`Limited`}):null]}),(0,K.jsxs)(p,{value:e.selectedGraphId,onValueChange:e.onSelectGraph,children:[(0,K.jsx)(u,{className:`h-8 w-full text-xs`,children:(0,K.jsx)(l,{placeholder:`Select graph`})}),(0,K.jsx)(d,{children:e.graphs.map(e=>(0,K.jsx)(f,{value:e.id,children:e.name??e.id},e.id))})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(i,{className:`flex-1`,variant:`secondary`,disabled:e.loading||e.selectedNodeTypes.length===0,onClick:e.onReload,children:[(0,K.jsx)(o,{}),` Refresh`]}),(0,K.jsxs)(i,{className:`flex-1`,disabled:e.loading||e.selectedNode===void 0,onClick:e.onExpand,children:[(0,K.jsx)(j,{}),` Expand`]})]})]}),(0,K.jsxs)(`div`,{className:`min-h-0 overflow-y-auto p-4`,children:[(0,K.jsx)(Q,{label:`Node types`,items:e.graph?.nodeTypes.map(e=>e.name)??[],selected:e.selectedNodeTypes,onToggle:e.onToggleNodeType}),(0,K.jsx)(Q,{label:`Relationships`,items:e.graph?.relationshipTypes.map(e=>e.name)??[],selected:e.selectedRelationships,onToggle:e.onToggleRelationship}),(0,K.jsx)(`div`,{className:`mt-5 border-t border-border/80 pt-4`,children:e.selectedNode===void 0?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Select a node to inspect its properties.`}):(0,K.jsx)(ue,{node:e.selectedNode})})]})]})}function Q(e){return(0,K.jsxs)(`section`,{className:`mb-4`,children:[(0,K.jsx)(`h2`,{className:`mb-2 text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:e.label}),(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.items.map(t=>{let n=e.selected.includes(t);return(0,K.jsx)(`button`,{type:`button`,"aria-pressed":n,className:[`rounded-full border px-2 py-1 text-xs transition-colors`,n?`border-foreground/30 bg-foreground text-background`:`border-border bg-card text-muted-foreground hover:text-foreground`].join(` `),onClick:()=>e.onToggle(t),children:t},t)})})]})}function ue(e){let t=JSON.stringify({identity:e.node.identity,properties:e.node.properties},null,2);return(0,K.jsxs)(`section`,{children:[(0,K.jsx)(h,{children:e.node.type}),(0,K.jsx)(`h2`,{className:`mt-2 break-words text-base font-semibold`,children:q(e.node)}),(0,K.jsxs)(`p`,{className:`mt-1 break-all text-xs text-muted-foreground`,children:[`ID `,e.node.id]}),(0,K.jsx)(`pre`,{className:`mt-4 overflow-x-auto rounded-xl border border-border/80 bg-card p-3 text-xs leading-5`,children:(0,K.jsx)(`code`,{children:(0,K.jsx)(E,{text:t})})})]})}function $(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}export{ce as GraphsPage};
|
|
2
|
+
//# sourceMappingURL=graphs-page-CDMb6H6o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphs-page-CDMb6H6o.js","names":["t","useState","useRef","useCallback","useMemo","createContext","createContext2","createContext3","createContext4","createElement4","useContext4","createContext5","createContext6","createContext7","createContext8","createContext9","createContext10","createContext11","createContext12","forwardRef","useCallback","useState","useCallback","useMemo","MagnifyingGlass","ReactFlow","ArrowClockwise","Plus","require_react","require_jsx_runtime","__toESM","errorMessage","Button","requestJson","m","f","p","SelectValue","SelectTrigger","SelectContent","SelectItem","Select","StudioPageShell","StudioStatusBadge","StudioSurface","StudioEmptyState","index","Handle","BackgroundVariant","MarkerType","Controls","Position","Background","renderPrimitive","JsonSyntax","Input","import_react","a","e","s","r","n","emptyResult","useGraphExplorer","load","options","result","setResult","selectedNodeId","setSelectedNodeId","query","setQuery","status","setStatus","error","setError","abortRef","requestIdRef","overviewRef","expansionDefaultsRef","explore","controller","requestId","externalSignal","request","abortFromExternal","nextRequest","withoutAbortSignal","next","mergeGraphExploreResults","current","expansionDefaults","node","caught","expandNode","nodeId","expandOptions","refresh","stop","reset","nodeById","selectedNode","matchedNodeIds","graphExplorerNodeMatches","searchText","nodes","relationships","relationship","normalizedQuery","defaultGraphExplorerNodeSearchValues","value","properties","key","_abortSignal","GraphExplorerContext","GraphExplorerNodeContext","GraphExplorerProvider","children","InternalGraphExplorerNodeProvider","useGraphExplorerContext","useGraphExplorerNode","useOptionalGraphExplorerNode","import_jsx_runtime","graphExplorerNodeLabel","explorer","truncated","props","ref","handleChange","onChange","event","empty","keepMounted","state","GraphExplorerNodeRoot","GraphExplorerNodeTrigger","content","statusText","disabled","handleClick","useAsyncAction","onClick","inherited","GraphExplorerNodeExpand","action","GraphExplorerNodePrimitive","explorerNodeTypes","GraphEntityNode","toExplorerFlow","visibleNodes","visibleIds","positionNodes","relationshipEdge","angle","radius","nodeTypeColor","colors","hash","character","type","GraphsPage","selectedGraphId","setSelectedGraphId","selectedNodeTypes","setSelectedNodeTypes","selectedRelationships","setSelectedRelationships","graph","item","body","onStatus","abortSignal","loadError","onError","flow","loading","resetExplorer","selectNode","nodeTypes","reloadOverview","expandSelected","GraphInspector","toggled","types","FilterGroup","NodeInspector","active","json","values"],"sources":["../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/defs/Plus.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/csr/Plus.es.js","../../../../react/dist/graph-explorer/index.js","../../../../react-ui/dist/chunk-E73S3SOF.js","../../../../react-ui/dist/graph-explorer/index.js","../../../src/ui/app/modules/graphs/graph-flow.tsx","../../../src/ui/app/modules/graphs/graphs-page.tsx"],"sourcesContent":["import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M228,128a12,12,0,0,1-12,12H140v76a12,12,0,0,1-24,0V140H40a12,12,0,0,1,0-24h76V40a12,12,0,0,1,24,0v76h76A12,12,0,0,1,228,128Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\n \"path\",\n {\n d: \"M216,56V200a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V56A16,16,0,0,1,56,40H200A16,16,0,0,1,216,56Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ e.createElement(\"path\", { d: \"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM184,136H136v48a8,8,0,0,1-16,0V136H72a8,8,0,0,1,0-16h48V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M222,128a6,6,0,0,1-6,6H134v82a6,6,0,0,1-12,0V134H40a6,6,0,0,1,0-12h82V40a6,6,0,0,1,12,0v82h82A6,6,0,0,1,222,128Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M220,128a4,4,0,0,1-4,4H132v84a4,4,0,0,1-8,0V132H40a4,4,0,0,1,0-8h84V40a4,4,0,0,1,8,0v84h84A4,4,0,0,1,220,128Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/Plus.es.js\";\nconst e = o.forwardRef((r, s) => /* @__PURE__ */ o.createElement(t, { ref: s, ...r, weights: a }));\ne.displayName = \"PlusIcon\";\nconst n = e;\nexport {\n n as Plus,\n e as PlusIcon\n};\n","// src/graph-explorer/use-graph-explorer.ts\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nvar emptyResult = {\n nodes: [],\n relationships: [],\n truncated: { nodes: false, relationships: false }\n};\nfunction useGraphExplorer(options) {\n const { explore: load, searchText } = options;\n const [result, setResult] = useState(options.initialResult ?? emptyResult);\n const [selectedNodeId, setSelectedNodeId] = useState();\n const [query, setQuery] = useState(options.initialQuery ?? \"\");\n const [status, setStatus] = useState(\n options.initialResult === void 0 ? \"idle\" : \"ready\"\n );\n const [error, setError] = useState();\n const abortRef = useRef(void 0);\n const requestIdRef = useRef(0);\n const overviewRef = useRef({ mode: \"overview\" });\n const expansionDefaultsRef = useRef({});\n useEffect(() => () => abortRef.current?.abort(), []);\n const explore = useCallback(\n async (request) => {\n abortRef.current?.abort();\n const controller = new AbortController();\n abortRef.current = controller;\n const requestId = ++requestIdRef.current;\n const externalSignal = request.abortSignal;\n const abortFromExternal = () => {\n controller.abort();\n if (requestId === requestIdRef.current) {\n abortRef.current = void 0;\n setStatus(\"ready\");\n }\n };\n if (externalSignal?.aborted === true) {\n abortFromExternal();\n setError(void 0);\n return void 0;\n }\n externalSignal?.addEventListener(\"abort\", abortFromExternal, { once: true });\n const nextRequest = {\n ...request,\n abortSignal: controller.signal\n };\n if (request.mode === \"overview\") overviewRef.current = withoutAbortSignal(request);\n setStatus(\"loading\");\n setError(void 0);\n try {\n const next = await load(nextRequest);\n if (controller.signal.aborted || requestId !== requestIdRef.current) return void 0;\n setResult(\n (current) => request.mode === \"expand\" ? mergeGraphExploreResults(current, next) : next\n );\n if (request.mode === \"overview\") {\n expansionDefaultsRef.current = expansionDefaults(request);\n setSelectedNodeId(\n (current) => next.nodes.some((node) => node.id === current) ? current : void 0\n );\n }\n setStatus(\"ready\");\n return next;\n } catch (caught) {\n if (controller.signal.aborted || requestId !== requestIdRef.current) return void 0;\n setError(caught);\n setStatus(\"error\");\n throw caught;\n } finally {\n externalSignal?.removeEventListener(\"abort\", abortFromExternal);\n if (abortRef.current === controller) abortRef.current = void 0;\n }\n },\n [load]\n );\n const expandNode = useCallback(\n (nodeId, expandOptions = {}) => {\n if (nodeId.length === 0) throw new TypeError(\"Graph explorer node id must be non-empty.\");\n return explore({\n ...expansionDefaultsRef.current,\n ...expandOptions,\n mode: \"expand\",\n nodeIds: [nodeId]\n });\n },\n [explore]\n );\n const refresh = useCallback(() => explore(overviewRef.current), [explore]);\n const stop = useCallback(() => {\n requestIdRef.current += 1;\n abortRef.current?.abort();\n abortRef.current = void 0;\n setError(void 0);\n setStatus(\"ready\");\n }, []);\n const reset = useCallback(() => {\n requestIdRef.current += 1;\n abortRef.current?.abort();\n abortRef.current = void 0;\n overviewRef.current = { mode: \"overview\" };\n expansionDefaultsRef.current = {};\n setResult(emptyResult);\n setSelectedNodeId(void 0);\n setQuery(\"\");\n setError(void 0);\n setStatus(\"idle\");\n }, []);\n const nodeById = useMemo(\n () => new Map(result.nodes.map((node) => [node.id, node])),\n [result.nodes]\n );\n const selectedNode = selectedNodeId === void 0 ? void 0 : nodeById.get(selectedNodeId);\n const matchedNodeIds = useMemo(\n () => new Set(\n result.nodes.filter((node) => graphExplorerNodeMatches(node, query, searchText)).map((node) => node.id)\n ),\n [query, result.nodes, searchText]\n );\n return useMemo(\n () => ({\n nodes: result.nodes,\n nodeById,\n relationships: result.relationships,\n truncated: result.truncated,\n selectedNodeId,\n selectedNode,\n query,\n matchedNodeIds,\n status,\n error,\n explore,\n expandNode,\n refresh,\n selectNode: setSelectedNodeId,\n setQuery,\n stop,\n reset\n }),\n [\n error,\n expandNode,\n explore,\n matchedNodeIds,\n nodeById,\n query,\n refresh,\n reset,\n result,\n selectedNode,\n selectedNodeId,\n status,\n stop\n ]\n );\n}\nfunction mergeGraphExploreResults(current, next) {\n const nodes = new Map(current.nodes.map((node) => [node.id, node]));\n const relationships = new Map(\n current.relationships.map((relationship) => [relationship.id, relationship])\n );\n for (const node of next.nodes) nodes.set(node.id, node);\n for (const relationship of next.relationships) relationships.set(relationship.id, relationship);\n return {\n nodes: [...nodes.values()],\n relationships: [...relationships.values()],\n truncated: {\n nodes: current.truncated.nodes || next.truncated.nodes,\n relationships: current.truncated.relationships || next.truncated.relationships\n }\n };\n}\nfunction graphExplorerNodeMatches(node, query, searchText) {\n const normalizedQuery = query.trim().toLocaleLowerCase();\n if (normalizedQuery.length === 0) return true;\n if (searchText !== void 0) {\n return searchText(node).toLocaleLowerCase().includes(normalizedQuery);\n }\n return defaultGraphExplorerNodeSearchValues(node).some(\n (value) => String(value ?? \"\").toLocaleLowerCase().includes(normalizedQuery)\n );\n}\nfunction defaultGraphExplorerNodeSearchValues(node) {\n const properties = Object.entries(node.properties).flatMap(([key, value]) => [\n key,\n Array.isArray(value) ? value.join(\" \") : String(value)\n ]);\n return [node.type, node.key, ...Object.values(node.identity), ...properties];\n}\nfunction withoutAbortSignal(options) {\n const { abortSignal: _abortSignal, ...request } = options;\n return request;\n}\nfunction expansionDefaults(options) {\n return {\n nodeTypes: options.nodeTypes,\n relationships: options.relationships,\n includeProvenance: options.includeProvenance,\n maxNodes: options.maxNodes,\n maxRelationships: options.maxRelationships\n };\n}\nexport {\n graphExplorerNodeMatches,\n mergeGraphExploreResults,\n useGraphExplorer\n};\n//# sourceMappingURL=index.js.map","// src/contexts/attachment.tsx\nimport { createContext, createElement, useContext } from \"react\";\nvar AttachmentContext = createContext(void 0);\nfunction InternalAttachmentProvider({\n value,\n children\n}) {\n return createElement(AttachmentContext.Provider, { value }, children);\n}\nfunction useAttachment() {\n const value = useContext(AttachmentContext);\n if (value === void 0) {\n throw new Error(\"Attachment primitives must be used inside AttachmentPrimitive.Root.\");\n }\n return value;\n}\nfunction useOptionalAttachment() {\n return useContext(AttachmentContext);\n}\n\n// src/contexts/chat.tsx\nimport { createContext as createContext2, createElement as createElement2, useContext as useContext2 } from \"react\";\nvar ChatContext = createContext2(void 0);\nfunction ChatProvider({ controller, children }) {\n return createElement2(\n ChatContext.Provider,\n { value: controller },\n children\n );\n}\nfunction useChatContext() {\n const value = useContext2(ChatContext);\n if (value === void 0) {\n throw new Error(\"Anvia chat primitives must be used inside ChatProvider.\");\n }\n return value;\n}\nfunction useHumanInput() {\n const interactions = useChatContext().interactions;\n const approvals = interactions.all.filter(\n (item) => item.request.type === \"tool-approval\"\n );\n const questions = interactions.all.filter(\n (item) => item.request.type === \"tool-question\"\n );\n return {\n approvals: {\n all: approvals,\n pending: approvals.filter((item) => item.status === \"pending\")\n },\n questions: {\n all: questions,\n pending: questions.filter((item) => item.status === \"pending\")\n }\n };\n}\n\n// src/contexts/completion.tsx\nimport { createContext as createContext3, createElement as createElement3, useContext as useContext3 } from \"react\";\nvar CompletionContext = createContext3(void 0);\nfunction CompletionProvider({ controller, children }) {\n return createElement3(\n CompletionContext.Provider,\n { value: controller },\n children\n );\n}\nfunction useCompletionContext() {\n const value = useContext3(CompletionContext);\n if (value === void 0) {\n throw new Error(\"Anvia completion primitives must be used inside CompletionProvider.\");\n }\n return value;\n}\n\n// src/contexts/graph-explorer.tsx\nimport { createContext as createContext4, createElement as createElement4, useContext as useContext4 } from \"react\";\nvar GraphExplorerContext = createContext4(void 0);\nvar GraphExplorerNodeContext = createContext4(\n void 0\n);\nfunction GraphExplorerProvider({\n controller,\n children\n}) {\n return createElement4(\n GraphExplorerContext.Provider,\n { value: controller },\n children\n );\n}\nfunction InternalGraphExplorerNodeProvider({\n value,\n children\n}) {\n return createElement4(GraphExplorerNodeContext.Provider, { value }, children);\n}\nfunction useGraphExplorerContext() {\n const value = useContext4(GraphExplorerContext);\n if (value === void 0) {\n throw new Error(\"Graph explorer primitives must be used inside GraphExplorerProvider.\");\n }\n return value;\n}\nfunction useGraphExplorerNode() {\n const value = useContext4(GraphExplorerNodeContext);\n if (value === void 0) {\n throw new Error(\n \"Graph explorer node primitives must be used inside GraphExplorerNodePrimitive.Root or GraphExplorerPrimitive.Nodes.\"\n );\n }\n return value;\n}\nfunction useOptionalGraphExplorerNode() {\n return useContext4(GraphExplorerNodeContext);\n}\n\n// src/contexts/completion-input.tsx\nimport { createContext as createContext5, createElement as createElement5, useContext as useContext5 } from \"react\";\nvar CompletionInputContext = createContext5(void 0);\nfunction InternalCompletionInputProvider({\n value,\n children\n}) {\n return createElement5(CompletionInputContext.Provider, { value }, children);\n}\nfunction useCompletionInput() {\n const value = useContext5(CompletionInputContext);\n if (value === void 0) {\n throw new Error(\"Completion input primitives must be used inside CompletionPrimitive.Form.\");\n }\n return value;\n}\n\n// src/contexts/composer.tsx\nimport { createContext as createContext6, createElement as createElement6, useContext as useContext6 } from \"react\";\nvar ComposerContext = createContext6(void 0);\nfunction InternalComposerProvider({\n value,\n children\n}) {\n return createElement6(ComposerContext.Provider, { value }, children);\n}\nfunction useComposer() {\n const value = useContext6(ComposerContext);\n if (value === void 0) {\n throw new Error(\"Composer primitives must be used inside ComposerPrimitive.Root.\");\n }\n return value;\n}\n\n// src/contexts/human-input.tsx\nimport {\n createContext as createContext7,\n createElement as createElement7,\n useContext as useContext7,\n useMemo,\n useState\n} from \"react\";\nvar ApprovalContext = createContext7(void 0);\nvar QuestionContext = createContext7(void 0);\nvar QuestionPromptContext = createContext7(void 0);\nfunction InternalApprovalProvider({\n approval,\n children\n}) {\n const [reason, setReason] = useState(\"\");\n const value = useMemo(\n () => ({ approval, reason, setReason }),\n [approval, reason]\n );\n return createElement7(ApprovalContext.Provider, { value }, children);\n}\nfunction InternalQuestionProvider({\n value,\n children\n}) {\n return createElement7(QuestionContext.Provider, { value }, children);\n}\nfunction InternalQuestionPromptProvider({\n prompt,\n children\n}) {\n return createElement7(QuestionPromptContext.Provider, { value: { prompt } }, children);\n}\nfunction useApproval() {\n const value = useContext7(ApprovalContext);\n if (value === void 0) {\n throw new Error(\"Approval primitives must be used inside HumanInputPrimitive.Approval.\");\n }\n return value;\n}\nfunction useQuestion() {\n const value = useContext7(QuestionContext);\n if (value === void 0) {\n throw new Error(\"Question primitives must be used inside HumanInputPrimitive.Question.\");\n }\n return value;\n}\nfunction useQuestionPrompt() {\n const value = useContext7(QuestionPromptContext);\n if (value === void 0) {\n throw new Error(\n \"Question choice primitives must be used inside HumanInputPrimitive.QuestionPrompt.\"\n );\n }\n return value;\n}\n\n// src/contexts/image.tsx\nimport { createContext as createContext8, createElement as createElement8, useContext as useContext8 } from \"react\";\nvar ImageContext = createContext8(void 0);\nfunction InternalImageProvider({\n value,\n children\n}) {\n return createElement8(ImageContext.Provider, { value }, children);\n}\nfunction useImage() {\n const value = useContext8(ImageContext);\n if (value === void 0) {\n throw new Error(\"Image primitives must be used inside ImagePrimitive.Root.\");\n }\n return value;\n}\n\n// src/contexts/message.tsx\nimport { createContext as createContext9, createElement as createElement9, useContext as useContext9 } from \"react\";\nvar MessageContext = createContext9(void 0);\nvar MessagePartContext = createContext9(void 0);\nfunction InternalMessageProvider({\n message,\n children\n}) {\n return createElement9(MessageContext.Provider, { value: { message } }, children);\n}\nfunction InternalMessagePartProvider({\n part,\n isLive = false,\n streamControlled = false,\n children\n}) {\n return createElement9(\n MessagePartContext.Provider,\n { value: { isLive, part, streamControlled } },\n children\n );\n}\nfunction useMessage() {\n const value = useContext9(MessageContext);\n if (value === void 0) {\n throw new Error(\n \"Message primitives must be used inside MessagePrimitive.Root or ThreadPrimitive.Messages.\"\n );\n }\n return value;\n}\nfunction useMessagePart() {\n const value = useContext9(MessagePartContext);\n if (value === void 0) {\n throw new Error(\n \"Message part primitives must be used inside MessagePrimitive.Parts or MessagePrimitive.Part.\"\n );\n }\n return value;\n}\nfunction useOptionalMessagePart() {\n return useContext9(MessagePartContext);\n}\n\n// src/contexts/selection-toolbar.tsx\nimport { createContext as createContext10, createElement as createElement10, useContext as useContext10 } from \"react\";\nvar SelectionToolbarContext = createContext10(void 0);\nfunction InternalSelectionToolbarProvider({\n value,\n children\n}) {\n return createElement10(SelectionToolbarContext.Provider, { value }, children);\n}\nfunction useSelectionToolbar() {\n const value = useContext10(SelectionToolbarContext);\n if (value === void 0) {\n throw new Error(\n \"SelectionToolbar primitives must be used inside SelectionToolbarPrimitive.Root.\"\n );\n }\n return value;\n}\n\n// src/contexts/thread.tsx\nimport {\n createContext as createContext11,\n createElement as createElement11,\n useContext as useContext11\n} from \"react\";\nvar ThreadContext = createContext11(void 0);\nfunction InternalThreadProvider({\n value,\n children\n}) {\n return createElement11(ThreadContext.Provider, { value }, children);\n}\nfunction useThread() {\n const value = useContext11(ThreadContext);\n if (value === void 0) {\n throw new Error(\"Thread primitives must be used inside ThreadPrimitive.Root.\");\n }\n return value;\n}\n\n// src/contexts/thread-list.tsx\nimport {\n createContext as createContext12,\n createElement as createElement12,\n useContext as useContext12\n} from \"react\";\nvar ThreadListContext = createContext12(void 0);\nvar ThreadListItemContext = createContext12(void 0);\nvar ThreadListRootContext = createContext12(\n void 0\n);\nfunction ThreadListProvider({\n controller,\n children\n}) {\n return createElement12(ThreadListContext.Provider, { value: controller }, children);\n}\nfunction InternalThreadListItemProvider({\n value,\n children\n}) {\n return createElement12(ThreadListItemContext.Provider, { value }, children);\n}\nfunction InternalThreadListRootProvider({\n value,\n children\n}) {\n return createElement12(ThreadListRootContext.Provider, { value }, children);\n}\nfunction useThreadList() {\n const value = useContext12(ThreadListContext);\n if (value === void 0) {\n throw new Error(\"ThreadList primitives must be used inside ThreadListProvider.\");\n }\n return value;\n}\nfunction useThreadListItem() {\n const value = useContext12(ThreadListItemContext);\n if (value === void 0) {\n throw new Error(\"ThreadListItem primitives must be used inside ThreadListPrimitive.Items.\");\n }\n return value;\n}\nfunction useInternalThreadListRoot() {\n const value = useContext12(ThreadListRootContext);\n if (value === void 0) {\n throw new Error(\"Thread-list primitives must be used inside ThreadListPrimitive.Root.\");\n }\n return value;\n}\n\nexport {\n InternalAttachmentProvider,\n useAttachment,\n useOptionalAttachment,\n ChatProvider,\n useChatContext,\n useHumanInput,\n CompletionProvider,\n useCompletionContext,\n GraphExplorerProvider,\n InternalGraphExplorerNodeProvider,\n useGraphExplorerContext,\n useGraphExplorerNode,\n useOptionalGraphExplorerNode,\n InternalCompletionInputProvider,\n useCompletionInput,\n InternalComposerProvider,\n useComposer,\n InternalApprovalProvider,\n InternalQuestionProvider,\n InternalQuestionPromptProvider,\n useApproval,\n useQuestion,\n useQuestionPrompt,\n InternalImageProvider,\n useImage,\n InternalMessageProvider,\n InternalMessagePartProvider,\n useMessage,\n useMessagePart,\n useOptionalMessagePart,\n InternalSelectionToolbarProvider,\n useSelectionToolbar,\n InternalThreadProvider,\n useThread,\n ThreadListProvider,\n InternalThreadListItemProvider,\n InternalThreadListRootProvider,\n useThreadList,\n useThreadListItem,\n useInternalThreadListRoot\n};\n//# sourceMappingURL=chunk-E73S3SOF.js.map","import {\n renderPrimitive\n} from \"../chunk-T3ZFZ3NP.js\";\nimport {\n GraphExplorerProvider,\n InternalGraphExplorerNodeProvider,\n useGraphExplorerContext,\n useGraphExplorerNode,\n useOptionalGraphExplorerNode\n} from \"../chunk-E73S3SOF.js\";\n\n// src/graph-explorer/parts.tsx\nimport { forwardRef, useCallback } from \"react\";\n\n// src/graph-explorer/helpers.ts\nfunction graphExplorerNodeLabel(node) {\n for (const key of [\"name\", \"title\", \"label\"]) {\n const value = node.properties[key];\n if (typeof value === \"string\" && value.trim().length > 0) return value;\n }\n if (node.key !== void 0) return node.key;\n return `${node.type} ${node.id}`;\n}\n\n// src/graph-explorer/parts.tsx\nimport { jsx } from \"react/jsx-runtime\";\nvar GraphExplorerRoot = forwardRef(\n function GraphExplorerRoot2(props, ref) {\n const explorer = useGraphExplorerContext();\n const truncated = explorer.truncated.nodes || explorer.truncated.relationships;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n \"aria-busy\": explorer.status === \"loading\",\n \"data-role\": \"graph-explorer\",\n \"data-state\": explorer.status,\n \"data-truncated\": truncated ? \"true\" : \"false\"\n },\n ref\n );\n }\n);\nvar GraphExplorerSearch = forwardRef(\n function GraphExplorerSearch2({ onChange, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const handleChange = useCallback(\n (event) => {\n onChange?.(event);\n if (!event.defaultPrevented) explorer.setQuery(event.currentTarget.value);\n },\n [explorer, onChange]\n );\n return renderPrimitive(\n \"input\",\n {\n ...props,\n \"aria-label\": props[\"aria-label\"] ?? \"Search graph\",\n \"data-state\": explorer.query.length === 0 ? \"empty\" : \"populated\",\n onChange: handleChange,\n type: props.type ?? \"search\",\n value: explorer.query\n },\n ref\n );\n }\n);\nvar GraphExplorerViewport = forwardRef(\n function GraphExplorerViewport2(props, ref) {\n return renderPrimitive(\n \"div\",\n { ...props, \"data-role\": \"graph-explorer-viewport\" },\n ref\n );\n }\n);\nvar GraphExplorerNodes = forwardRef(\n function GraphExplorerNodes2({ children, keepMounted = false, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const empty = explorer.nodes.length === 0;\n if (empty && !keepMounted) return null;\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: explorer.nodes.map((node) => {\n const state = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id)\n };\n return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, { value: state, children: typeof children === \"function\" ? children(node, state) : children ?? /* @__PURE__ */ jsx(GraphExplorerNodeRoot, { children: /* @__PURE__ */ jsx(GraphExplorerNodeTrigger, {}) }) }, node.id);\n }),\n \"data-state\": empty ? \"empty\" : \"populated\",\n role: props.role ?? \"list\"\n },\n ref\n );\n }\n);\nvar GraphExplorerEmpty = forwardRef(\n function GraphExplorerEmpty2(props, ref) {\n const explorer = useGraphExplorerContext();\n if (explorer.nodes.length > 0 || explorer.status === \"loading\") return null;\n return renderPrimitive(\n \"div\",\n { ...props, children: props.children ?? \"No graph nodes.\" },\n ref\n );\n }\n);\nvar GraphExplorerStatus = forwardRef(\n function GraphExplorerStatus2({ children, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const content = typeof children === \"function\" ? children(explorer) : children ?? statusText(explorer);\n return renderPrimitive(\n \"div\",\n {\n ...props,\n children: content,\n \"data-state\": explorer.status,\n role: props.role ?? \"status\"\n },\n ref\n );\n }\n);\nvar GraphExplorerRefresh = forwardRef(\n function GraphExplorerRefresh2({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const handleClick = useAsyncAction(onClick, disabled, explorer.refresh);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Refresh graph\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\"\n },\n ref\n );\n }\n);\nvar GraphExplorerNodeRoot = forwardRef(\n function GraphExplorerNodeRoot2({ nodeId, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const inherited = useOptionalGraphExplorerNode();\n const node = nodeId === void 0 ? inherited?.node : explorer.nodeById.get(nodeId);\n if (node === void 0) {\n throw new Error(\n nodeId === void 0 ? \"GraphExplorerNodePrimitive.Root requires a nodeId outside GraphExplorerPrimitive.Nodes.\" : `Graph explorer node ${nodeId} is not loaded.`\n );\n }\n const state = {\n node,\n selected: node.id === explorer.selectedNodeId,\n matched: explorer.matchedNodeIds.has(node.id)\n };\n return /* @__PURE__ */ jsx(InternalGraphExplorerNodeProvider, { value: state, children: renderPrimitive(\n \"div\",\n {\n ...props,\n \"data-match\": state.matched ? \"matched\" : \"unmatched\",\n \"data-node-id\": state.node.id,\n \"data-node-type\": state.node.type,\n \"data-state\": state.selected ? \"selected\" : \"unselected\",\n role: props.role ?? (inherited === void 0 ? void 0 : \"listitem\")\n },\n ref\n ) });\n }\n);\nvar GraphExplorerNodeTrigger = forwardRef(\n function GraphExplorerNodeTrigger2({ onClick, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const handleClick = useCallback(\n (event) => {\n onClick?.(event);\n if (!event.defaultPrevented && !props.disabled) explorer.selectNode(state.node.id);\n },\n [explorer, onClick, props.disabled, state.node.id]\n );\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? graphExplorerNodeLabel(state.node),\n onClick: handleClick,\n type: props.type ?? \"button\",\n \"aria-pressed\": state.selected\n },\n ref\n );\n }\n);\nvar GraphExplorerNodeExpand = forwardRef(\n function GraphExplorerNodeExpand2({ onClick, options, ...props }, ref) {\n const explorer = useGraphExplorerContext();\n const state = useGraphExplorerNode();\n const disabled = props.disabled ?? explorer.status === \"loading\";\n const expand = useCallback(\n () => explorer.expandNode(state.node.id, options),\n [explorer, options, state.node.id]\n );\n const handleClick = useAsyncAction(onClick, disabled, expand);\n return renderPrimitive(\n \"button\",\n {\n ...props,\n children: props.children ?? \"Expand\",\n disabled,\n onClick: handleClick,\n type: props.type ?? \"button\"\n },\n ref\n );\n }\n);\nfunction useAsyncAction(onClick, disabled, action) {\n return useCallback(\n (event) => {\n onClick?.(event);\n if (event.defaultPrevented || disabled) return;\n void action().catch(() => void 0);\n },\n [action, disabled, onClick]\n );\n}\nfunction statusText(explorer) {\n if (explorer.status === \"loading\") return \"Loading graph.\";\n if (explorer.status === \"error\") return \"Graph exploration failed.\";\n return `${explorer.nodes.length} nodes, ${explorer.relationships.length} relationships.`;\n}\n\n// src/graph-explorer/index.ts\nvar GraphExplorerPrimitive = {\n Root: GraphExplorerRoot,\n Viewport: GraphExplorerViewport,\n Search: GraphExplorerSearch,\n Nodes: GraphExplorerNodes,\n Empty: GraphExplorerEmpty,\n Status: GraphExplorerStatus,\n Refresh: GraphExplorerRefresh\n};\nvar GraphExplorerNodePrimitive = {\n Root: GraphExplorerNodeRoot,\n Trigger: GraphExplorerNodeTrigger,\n Expand: GraphExplorerNodeExpand\n};\nexport {\n GraphExplorerNodePrimitive,\n GraphExplorerPrimitive,\n GraphExplorerProvider,\n graphExplorerNodeLabel,\n useGraphExplorerContext,\n useGraphExplorerNode\n};\n//# sourceMappingURL=index.js.map","import { Handle, MarkerType, type Node, type NodeProps, Position } from \"@xyflow/react\";\nimport type { GraphExploreNode, GraphExploreRelationship, GraphExploreResult } from \"@anvia/graph\";\nimport { graphExplorerNodeLabel, GraphExplorerNodePrimitive } from \"@anvia/react-ui/graph-explorer\";\n\nexport type ExplorerNodeData = {\n label: string;\n type: string;\n color: string;\n};\n\nexport type ExplorerFlowNode = Node<ExplorerNodeData, \"graphEntity\">;\n\nexport const explorerNodeTypes = {\n graphEntity: GraphEntityNode,\n};\n\nexport function toExplorerFlow(result: GraphExploreResult, matchedNodeIds: ReadonlySet<string>) {\n const visibleNodes = result.nodes.filter((node) => matchedNodeIds.has(node.id));\n const visibleIds = new Set(visibleNodes.map((node) => node.id));\n const nodes = positionNodes(visibleNodes);\n const edges = result.relationships\n .filter((relationship) => visibleIds.has(relationship.from) && visibleIds.has(relationship.to))\n .map((relationship) => relationshipEdge(relationship));\n return { nodes, edges };\n}\n\nfunction GraphEntityNode(props: NodeProps<ExplorerFlowNode>) {\n return (\n <GraphExplorerNodePrimitive.Root nodeId={props.id} asChild>\n <article\n className={[\n \"relative w-[180px] rounded-xl border bg-card px-3 py-2.5 text-left shadow-sm transition\",\n props.selected ? \"border-foreground shadow-md\" : \"border-border/80\",\n ].join(\" \")}\n >\n <Handle\n type=\"target\"\n position={Position.Top}\n className=\"!size-1.5 !border-0 !bg-muted-foreground/50\"\n />\n <div className=\"flex min-w-0 items-center gap-2.5\">\n <span className={[\"size-2.5 shrink-0 rounded-full\", props.data.color].join(\" \")} />\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold text-foreground\">{props.data.label}</div>\n <div className=\"mt-0.5 truncate text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground\">\n {props.data.type}\n </div>\n </div>\n </div>\n <Handle\n type=\"source\"\n position={Position.Bottom}\n className=\"!size-1.5 !border-0 !bg-muted-foreground/50\"\n />\n </article>\n </GraphExplorerNodePrimitive.Root>\n );\n}\n\nfunction positionNodes(nodes: readonly GraphExploreNode[]): ExplorerFlowNode[] {\n return nodes.map((node, index) => {\n const angle = index * 2.399963;\n const radius = 180 * Math.sqrt(index);\n return {\n id: node.id,\n type: \"graphEntity\",\n position: {\n x: Math.cos(angle) * radius,\n y: Math.sin(angle) * radius,\n },\n data: {\n label: graphExplorerNodeLabel(node),\n type: node.type,\n color: nodeTypeColor(node.type),\n },\n };\n });\n}\n\nfunction relationshipEdge(relationship: GraphExploreRelationship) {\n return {\n id: relationship.id,\n source: relationship.from,\n target: relationship.to,\n label: relationship.type,\n type: \"smoothstep\",\n markerEnd: { type: MarkerType.ArrowClosed, width: 14, height: 14 },\n labelStyle: { fontSize: 10, fontWeight: 600 },\n style: { strokeWidth: 1.5 },\n };\n}\n\nfunction nodeTypeColor(type: string): string {\n const colors = [\n \"bg-emerald-500\",\n \"bg-sky-500\",\n \"bg-violet-500\",\n \"bg-amber-500\",\n \"bg-rose-500\",\n \"bg-cyan-500\",\n \"bg-fuchsia-500\",\n ];\n let hash = 0;\n for (const character of type) hash = (hash * 31 + character.charCodeAt(0)) >>> 0;\n return colors[hash % colors.length] ?? \"bg-muted-foreground\";\n}\n","import { Background, BackgroundVariant, Controls, ReactFlow } from \"@xyflow/react\";\nimport \"@xyflow/react/dist/style.css\";\nimport { ArrowClockwise, MagnifyingGlass, Plus } from \"@phosphor-icons/react\";\nimport type {\n GraphExploreNode,\n GraphExploreOptions,\n GraphExploreResult,\n GraphSchemaLike,\n} from \"@anvia/graph\";\nimport { useGraphExplorer } from \"@anvia/react/graph-explorer\";\nimport { graphExplorerNodeLabel, GraphExplorerProvider } from \"@anvia/react-ui/graph-explorer\";\nimport { type CSSProperties, useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { StudioConfig } from \"../../../../types\";\nimport { Button } from \"../../components/ui/button\";\nimport { Input } from \"../../components/ui/input\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../components/ui/select\";\nimport {\n StudioEmptyState,\n StudioPageShell,\n StudioStatusBadge,\n StudioSurface,\n} from \"../../components/ui/studio\";\nimport { errorMessage } from \"../shared/format\";\nimport { JsonSyntax } from \"../shared/renderers\";\nimport { requestJson } from \"../shared/request\";\nimport { explorerNodeTypes, toExplorerFlow } from \"./graph-flow\";\n\nexport function GraphsPage(props: {\n graphs: StudioConfig[\"graphs\"];\n enabled: boolean;\n theme: \"light\" | \"dark\";\n onError: (message: string) => void;\n onStatus: (message: string) => void;\n}) {\n const { onError, onStatus } = props;\n const [selectedGraphId, setSelectedGraphId] = useState(props.graphs[0]?.id ?? \"\");\n const [selectedNodeTypes, setSelectedNodeTypes] = useState<string[]>([]);\n const [selectedRelationships, setSelectedRelationships] = useState<string[]>([]);\n const graph = props.graphs.find((item) => item.id === selectedGraphId) ?? props.graphs[0];\n const loadGraph = useCallback(\n async (request: GraphExploreOptions<GraphSchemaLike>) => {\n if (graph === undefined) throw new Error(\"Graph explorer unavailable\");\n const { abortSignal, ...body } = request;\n onStatus(\"Loading graph\");\n try {\n const next = await requestJson<GraphExploreResult>(\n `/graphs/${encodeURIComponent(graph.id)}/explore`,\n \"Graph explorer\",\n abortSignal,\n \"no-store\",\n {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n },\n );\n if (abortSignal?.aborted !== true) onStatus(\"Connected\");\n return next;\n } catch (loadError) {\n if (abortSignal?.aborted !== true) {\n onError(errorMessage(loadError));\n onStatus(\"Graph error\");\n }\n throw loadError;\n }\n },\n [graph, onError, onStatus],\n );\n const explorer = useGraphExplorer({ explore: loadGraph });\n const result = useMemo<GraphExploreResult>(\n () => ({\n nodes: explorer.nodes,\n relationships: explorer.relationships,\n truncated: explorer.truncated,\n }),\n [explorer.nodes, explorer.relationships, explorer.truncated],\n );\n const flow = useMemo(\n () => toExplorerFlow(result, explorer.matchedNodeIds),\n [explorer.matchedNodeIds, result],\n );\n const loading = explorer.status === \"loading\";\n const selectedNode = explorer.selectedNode;\n const explore = explorer.explore;\n const resetExplorer = explorer.reset;\n const selectNode = explorer.selectNode;\n\n useEffect(() => {\n if (graph === undefined) return;\n const nodeTypes = graph.nodeTypes.map((item) => item.name);\n const relationships = graph.relationshipTypes.map((item) => item.name);\n setSelectedGraphId(graph.id);\n setSelectedNodeTypes(nodeTypes);\n setSelectedRelationships(relationships);\n resetExplorer();\n void explore({ mode: \"overview\", nodeTypes, relationships })\n .then((next) => {\n if (next !== undefined) selectNode(next.nodes[0]?.id);\n })\n .catch(() => undefined);\n }, [explore, graph, resetExplorer, selectNode]);\n\n if (!props.enabled || props.graphs.length === 0) {\n return (\n <StudioPageShell aria-label=\"Graphs\">\n <StudioEmptyState\n title={props.enabled ? \"No graphs\" : \"Graph explorer unavailable\"}\n text={\n props.enabled\n ? \"Register a graph in Studio to inspect its nodes and relationships.\"\n : \"This Studio runtime does not expose a graph explorer.\"\n }\n />\n </StudioPageShell>\n );\n }\n\n function reloadOverview() {\n void explore({\n mode: \"overview\",\n nodeTypes: selectedNodeTypes,\n relationships: selectedRelationships,\n })\n .then((next) => {\n if (next !== undefined) selectNode(next.nodes[0]?.id);\n })\n .catch(() => undefined);\n }\n\n function expandSelected() {\n if (selectedNode === undefined) return;\n void explorer\n .expandNode(selectedNode.id, {\n nodeTypes: selectedNodeTypes,\n relationships: selectedRelationships,\n direction: \"both\",\n maxDepth: 1,\n })\n .catch(() => undefined);\n }\n\n return (\n <GraphExplorerProvider controller={explorer}>\n <StudioPageShell aria-label=\"Graphs\">\n <div className=\"grid min-h-0 min-w-0 pb-6 pr-6\">\n <StudioSurface className=\"grid grid-cols-[minmax(0,2fr)_340px] max-lg:grid-cols-1\">\n <div className=\"relative min-h-0 min-w-0 overflow-hidden border-r border-border/80 bg-card/25 max-lg:min-h-96 max-lg:border-b max-lg:border-r-0\">\n <div className=\"absolute left-4 top-4 z-10 flex max-w-[calc(100%-2rem)] items-center gap-2 rounded-xl border border-border/80 bg-background/90 p-2 shadow-sm backdrop-blur\">\n <div className=\"relative min-w-0 flex-1\">\n <MagnifyingGlass className=\"pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n aria-label=\"Search loaded nodes\"\n className=\"w-64 pl-8\"\n placeholder=\"Search loaded nodes\"\n value={explorer.query}\n onChange={(event) => explorer.setQuery(event.currentTarget.value)}\n />\n </div>\n <StudioStatusBadge>{flow.nodes.length} nodes</StudioStatusBadge>\n <StudioStatusBadge>{flow.edges.length} relations</StudioStatusBadge>\n </div>\n {loading && result.nodes.length === 0 ? (\n <div className=\"grid h-full min-h-96 place-items-center text-sm text-muted-foreground\">\n Loading graph…\n </div>\n ) : null}\n {!loading && result.nodes.length === 0 ? (\n <StudioEmptyState\n className=\"h-full border-0\"\n title=\"No nodes found\"\n text=\"Try another graph or broaden the selected node and relationship types.\"\n />\n ) : null}\n {result.nodes.length > 0 ? (\n <ReactFlow\n key={`${graph?.id}:${result.nodes.length}:${result.relationships.length}`}\n nodes={flow.nodes}\n edges={flow.edges}\n className=\"graph-explorer-flow\"\n colorMode={props.theme}\n nodeTypes={explorerNodeTypes}\n fitView\n fitViewOptions={{ padding: 0.2, maxZoom: 1 }}\n minZoom={0.2}\n maxZoom={1.7}\n proOptions={{ hideAttribution: true }}\n defaultEdgeOptions={{ focusable: true }}\n style={\n {\n \"--xy-edge-stroke\": \"var(--muted-foreground)\",\n \"--xy-edge-stroke-width\": \"1.4\",\n \"--xy-edge-stroke-selected\": \"var(--foreground)\",\n } as CSSProperties\n }\n onNodeClick={(_, node) => explorer.selectNode(node.id)}\n >\n <Background\n variant={BackgroundVariant.Dots}\n gap={16}\n size={1.5}\n color=\"var(--muted-foreground)\"\n className=\"opacity-30\"\n />\n <Controls showInteractive={false} />\n </ReactFlow>\n ) : null}\n </div>\n <GraphInspector\n graph={graph}\n graphs={props.graphs}\n loading={loading}\n result={result}\n selectedGraphId={selectedGraphId}\n selectedNode={selectedNode}\n selectedNodeTypes={selectedNodeTypes}\n selectedRelationships={selectedRelationships}\n onExpand={expandSelected}\n onReload={reloadOverview}\n onSelectGraph={setSelectedGraphId}\n onToggleNodeType={(type) => setSelectedNodeTypes((types) => toggled(types, type))}\n onToggleRelationship={(type) =>\n setSelectedRelationships((types) => toggled(types, type))\n }\n />\n </StudioSurface>\n </div>\n </StudioPageShell>\n </GraphExplorerProvider>\n );\n}\n\nfunction GraphInspector(props: {\n graph: StudioConfig[\"graphs\"][number] | undefined;\n graphs: StudioConfig[\"graphs\"];\n loading: boolean;\n result: GraphExploreResult;\n selectedGraphId: string;\n selectedNode: GraphExploreNode | undefined;\n selectedNodeTypes: string[];\n selectedRelationships: string[];\n onExpand: () => void;\n onReload: () => void;\n onSelectGraph: (id: string) => void;\n onToggleNodeType: (type: string) => void;\n onToggleRelationship: (type: string) => void;\n}) {\n const truncated = props.result.truncated.nodes || props.result.truncated.relationships;\n return (\n <aside className=\"grid min-h-0 grid-rows-[auto_minmax(0,1fr)] overflow-hidden bg-background/70\">\n <header className=\"grid gap-3 border-b border-border/80 bg-card/35 p-4\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <h1 className=\"truncate text-base font-semibold\">\n {props.graph?.name ?? \"Graph explorer\"}\n </h1>\n <p className=\"mt-1 line-clamp-2 text-xs leading-5 text-muted-foreground\">\n {props.graph?.description ?? \"Explore a bounded view of nodes and relationships.\"}\n </p>\n </div>\n {truncated ? (\n <StudioStatusBadge title=\"The configured result limit was reached\">\n Limited\n </StudioStatusBadge>\n ) : null}\n </div>\n <Select value={props.selectedGraphId} onValueChange={props.onSelectGraph}>\n <SelectTrigger className=\"h-8 w-full text-xs\">\n <SelectValue placeholder=\"Select graph\" />\n </SelectTrigger>\n <SelectContent>\n {props.graphs.map((graph) => (\n <SelectItem key={graph.id} value={graph.id}>\n {graph.name ?? graph.id}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <div className=\"flex gap-2\">\n <Button\n className=\"flex-1\"\n variant=\"secondary\"\n disabled={props.loading || props.selectedNodeTypes.length === 0}\n onClick={props.onReload}\n >\n <ArrowClockwise /> Refresh\n </Button>\n <Button\n className=\"flex-1\"\n disabled={props.loading || props.selectedNode === undefined}\n onClick={props.onExpand}\n >\n <Plus /> Expand\n </Button>\n </div>\n </header>\n <div className=\"min-h-0 overflow-y-auto p-4\">\n <FilterGroup\n label=\"Node types\"\n items={props.graph?.nodeTypes.map((item) => item.name) ?? []}\n selected={props.selectedNodeTypes}\n onToggle={props.onToggleNodeType}\n />\n <FilterGroup\n label=\"Relationships\"\n items={props.graph?.relationshipTypes.map((item) => item.name) ?? []}\n selected={props.selectedRelationships}\n onToggle={props.onToggleRelationship}\n />\n <div className=\"mt-5 border-t border-border/80 pt-4\">\n {props.selectedNode === undefined ? (\n <p className=\"text-sm text-muted-foreground\">\n Select a node to inspect its properties.\n </p>\n ) : (\n <NodeInspector node={props.selectedNode} />\n )}\n </div>\n </div>\n </aside>\n );\n}\n\nfunction FilterGroup(props: {\n label: string;\n items: string[];\n selected: string[];\n onToggle: (value: string) => void;\n}) {\n return (\n <section className=\"mb-4\">\n <h2 className=\"mb-2 text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n {props.label}\n </h2>\n <div className=\"flex flex-wrap gap-1.5\">\n {props.items.map((item) => {\n const active = props.selected.includes(item);\n return (\n <button\n key={item}\n type=\"button\"\n aria-pressed={active}\n className={[\n \"rounded-full border px-2 py-1 text-xs transition-colors\",\n active\n ? \"border-foreground/30 bg-foreground text-background\"\n : \"border-border bg-card text-muted-foreground hover:text-foreground\",\n ].join(\" \")}\n onClick={() => props.onToggle(item)}\n >\n {item}\n </button>\n );\n })}\n </div>\n </section>\n );\n}\n\nfunction NodeInspector(props: { node: GraphExploreNode }) {\n const json = JSON.stringify(\n { identity: props.node.identity, properties: props.node.properties },\n null,\n 2,\n );\n return (\n <section>\n <StudioStatusBadge>{props.node.type}</StudioStatusBadge>\n <h2 className=\"mt-2 break-words text-base font-semibold\">\n {graphExplorerNodeLabel(props.node)}\n </h2>\n <p className=\"mt-1 break-all text-xs text-muted-foreground\">ID {props.node.id}</p>\n <pre className=\"mt-4 overflow-x-auto rounded-xl border border-border/80 bg-card p-3 text-xs leading-5\">\n <code>\n <JsonSyntax text={json} />\n </code>\n </pre>\n </section>\n );\n}\n\nfunction toggled(values: string[], value: string): string[] {\n if (values.includes(value)) return values.filter((item) => item !== value);\n return [...values, value];\n}\n"],"ignoreList":[0,1],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,r as t,s as n}from"./dist-
|
|
2
|
-
//# sourceMappingURL=icon-
|
|
1
|
+
import{i as e,r as t,s as n}from"./dist-gzPjmjmv.js";var r=n(e(),1),i=(0,r.createContext)({color:`currentColor`,size:`1em`,weight:`regular`,mirrored:!1}),a=r.forwardRef((e,t)=>{let{alt:n,color:a,size:o,weight:s,mirrored:c,children:l,weights:u,...d}=e,{color:f=`currentColor`,size:p,weight:m=`regular`,mirrored:h=!1,...g}=r.useContext(i);return r.createElement(`svg`,{ref:t,xmlns:`http://www.w3.org/2000/svg`,width:o??p,height:o??p,fill:a??f,viewBox:`0 0 256 256`,transform:c||h?`scale(-1, 1)`:void 0,...g,...d},!!n&&r.createElement(`title`,null,n),l,u.get(s??m))});a.displayName=`IconBase`;var o=t();function s({icon:e,weight:t=`regular`,...n}){return(0,o.jsx)(e,{weight:t,...n})}export{a as n,s as t};
|
|
2
|
+
//# sourceMappingURL=icon-B3s_bapw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-B3s_bapw.js","names":["r","o","h","require_react","require_jsx_runtime","__toESM","import_react","o","p","r","t","o$1","i","m","x","s","d","l","f","g","w","a","import_jsx_runtime","StudioIcon","IconComponent","props"],"sources":["../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/lib/context.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/lib/IconBase.es.js","../../../src/ui/app/components/ui/icon.tsx"],"sourcesContent":["import { createContext as r } from \"react\";\nconst o = r({\n color: \"currentColor\",\n size: \"1em\",\n weight: \"regular\",\n mirrored: !1\n});\nexport {\n o as IconContext\n};\n","import * as e from \"react\";\nimport { IconContext as h } from \"./context.es.js\";\nconst p = e.forwardRef(\n (s, a) => {\n const {\n alt: n,\n color: r,\n size: t,\n weight: o,\n mirrored: c,\n children: i,\n weights: m,\n ...x\n } = s, {\n color: d = \"currentColor\",\n size: l,\n weight: f = \"regular\",\n mirrored: g = !1,\n ...w\n } = e.useContext(h);\n return /* @__PURE__ */ e.createElement(\n \"svg\",\n {\n ref: a,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: t != null ? t : l,\n height: t != null ? t : l,\n fill: r != null ? r : d,\n viewBox: \"0 0 256 256\",\n transform: c || g ? \"scale(-1, 1)\" : void 0,\n ...w,\n ...x\n },\n !!n && /* @__PURE__ */ e.createElement(\"title\", null, n),\n i,\n m.get(o != null ? o : f)\n );\n }\n);\np.displayName = \"IconBase\";\nexport {\n p as default\n};\n","import type { Icon, IconProps } from \"@phosphor-icons/react\";\n\nexport type StudioIconProps = IconProps & {\n icon: Icon;\n};\n\nexport function StudioIcon({ icon: IconComponent, weight = \"regular\", ...props }: StudioIconProps) {\n return <IconComponent weight={weight} {...props} />;\n}\n"],"ignoreList":[0,1],"mappings":"oEACMO,GAAA,EAAIP,EAAAA,cAAAA,CAAE,CACV,MAAO,eACP,KAAM,MACN,OAAQ,UACR,SAAU,CAAC,CACb,CAAC,ECJKQ,EAAAF,EAAM,YACT,EAAG,IAAM,CACR,GAAM,CACJ,IAAK,EACL,MAAOG,EACP,KAAMC,EACN,OAAQT,EACR,SAAU,EACV,SAAUW,EACV,QAASC,EACT,GAAGC,GACDC,EAAG,CACL,MAAOC,EAAI,eACX,KAAMC,EACN,OAAQC,EAAI,UACZ,SAAUC,EAAI,CAAC,EACf,GAAGC,GAAAd,EACC,WAAWJ,CAAC,EAClB,OAAuBI,EAAE,cACvB,MACA,CACE,IAAKe,EACL,MAAO,6BACP,MAAOX,GAAgBO,EACvB,OAAQP,GAAgBO,EACxB,KAAMR,GAAgBO,EACtB,QAAS,cACT,UAAW,GAAKG,EAAI,eAAiB,IAAK,GAC1C,GAAGC,EACH,GAAGN,CACL,EACA,CAAC,CAAC,GAAqBR,EAAE,cAAc,QAAS,KAAM,CAAC,EACvDM,EACAC,EAAE,IAAIZ,GAAgBiB,CAAC,CACzB,CACF,CACF,EACA,EAAE,YAAc,qBCjChB,SAAgBK,EAAW,CAAE,KAAMC,EAAe,SAAS,UAAW,GAAGC,GAA0B,CACjG,OAAO,EAAAH,EAAA,IAAA,CAACE,EAAD,CAAuB,SAAQ,GAAIC,CAAQ,CAAA,CACpD"}
|