@railtownai/railtracks-visualizer 0.0.38 → 0.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/index.js +758 -292
  2. package/dist/esm/index.js +951 -484
  3. package/dist/types/agenthub/components/KeyboardShortcutsModal.d.ts +6 -0
  4. package/dist/types/agenthub/components/SendFeedbackButton.d.ts +2 -0
  5. package/dist/types/agenthub/components/ThemeToggleButton.d.ts +2 -0
  6. package/dist/types/agenthub/context/EvaluationsMockProvider.d.ts +40 -0
  7. package/dist/types/agenthub/context/SessionsMockProvider.d.ts +12 -0
  8. package/dist/types/agenthub/hooks/useEvaluations.d.ts +7 -0
  9. package/dist/types/agenthub/hooks/useSequenceShortcut.d.ts +13 -0
  10. package/dist/types/agenthub/hooks/useSessions.d.ts +26 -0
  11. package/dist/types/agenthub/hooks/useShareAgentSession.d.ts +4 -0
  12. package/dist/types/agenthub/pages/evaluation-details.d.ts +9 -0
  13. package/dist/types/agenthub/pages/evaluations-compare-drawer.d.ts +13 -0
  14. package/dist/types/agenthub/pages/evaluations-compare.d.ts +2 -0
  15. package/dist/types/agenthub/pages/evaluations.d.ts +2 -0
  16. package/dist/types/agenthub/pages/evaluations.types.d.ts +35 -0
  17. package/dist/types/agenthub/pages/index.d.ts +5 -0
  18. package/dist/types/agenthub/pages/session-details.d.ts +9 -0
  19. package/dist/types/agenthub/pages/sessions.d.ts +2 -0
  20. package/dist/types/agenthub/pages/visualizer.d.ts +2 -0
  21. package/dist/types/components/Edge.d.ts +2 -1
  22. package/dist/types/components/nodes/AgentNode.d.ts +1 -0
  23. package/dist/types/components/ui/drawer.d.ts +4 -0
  24. package/dist/types/components/ui/header.d.ts +1 -21
  25. package/dist/types/components/ui/select.d.ts +3 -1
  26. package/dist/types/hooks/index.d.ts +0 -1
  27. package/dist/types/hooks/useApi.d.ts +1 -0
  28. package/dist/types/index.d.ts +0 -1
  29. package/package.json +25 -20
  30. package/dist/types/components/ThemeToggle.d.ts +0 -2
  31. package/dist/types/components/ui/checkbox.d.ts +0 -4
  32. package/dist/types/hooks/useRailtracksStream.d.ts +0 -18
package/dist/cjs/index.js CHANGED
@@ -3203,7 +3203,8 @@ const initialConnection = {
3203
3203
  to: null,
3204
3204
  toHandle: null,
3205
3205
  toPosition: null,
3206
- toNode: null
3206
+ toNode: null,
3207
+ pointer: null
3207
3208
  };
3208
3209
  /**
3209
3210
  * If you set the `connectionLineType` prop on your [`<ReactFlow />`](/api-reference/react-flow#connection-connectionLineType)
@@ -5570,7 +5571,8 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
5570
5571
  to: position,
5571
5572
  toHandle: null,
5572
5573
  toPosition: oppositePosition[fromHandle.position],
5573
- toNode: null
5574
+ toNode: null,
5575
+ pointer: position
5574
5576
  };
5575
5577
  function startConnection() {
5576
5578
  connectionStarted = true;
@@ -5634,14 +5636,9 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
5634
5636
  }, transform) : position,
5635
5637
  toHandle: result.toHandle,
5636
5638
  toPosition: isValid && result.toHandle ? result.toHandle.position : oppositePosition[fromHandle.position],
5637
- toNode: result.toHandle ? nodeLookup.get(result.toHandle.nodeId) : null
5639
+ toNode: result.toHandle ? nodeLookup.get(result.toHandle.nodeId) : null,
5640
+ pointer: position
5638
5641
  };
5639
- /*
5640
- * we don't want to trigger an update when the connection
5641
- * is snapped to the same handle as before
5642
- */ if (isValid && closestHandle && previousConnection.toHandle && newConnection.toHandle && previousConnection.toHandle.type === newConnection.toHandle.type && previousConnection.toHandle.nodeId === newConnection.toHandle.nodeId && previousConnection.toHandle.id === newConnection.toHandle.id && previousConnection.to.x === newConnection.to.x && previousConnection.to.y === newConnection.to.y) {
5643
- return;
5644
- }
5645
5642
  updateConnection(newConnection);
5646
5643
  previousConnection = newConnection;
5647
5644
  }
@@ -10860,7 +10857,7 @@ function ConnectionLineWrapper({ containerStyle, style, type, component }) {
10860
10857
  });
10861
10858
  }
10862
10859
  const ConnectionLine = ({ style, type = ConnectionLineType.Bezier, CustomComponent, isValid })=>{
10863
- const { inProgress, from, fromNode, fromHandle, fromPosition, to, toNode, toHandle, toPosition } = useConnection();
10860
+ const { inProgress, from, fromNode, fromHandle, fromPosition, to, toNode, toHandle, toPosition, pointer } = useConnection();
10864
10861
  if (!inProgress) {
10865
10862
  return;
10866
10863
  }
@@ -10878,7 +10875,8 @@ const ConnectionLine = ({ style, type = ConnectionLineType.Bezier, CustomCompone
10878
10875
  toPosition: toPosition,
10879
10876
  connectionStatus: getConnectionStatus(isValid),
10880
10877
  toNode: toNode,
10881
- toHandle: toHandle
10878
+ toHandle: toHandle,
10879
+ pointer: pointer
10882
10880
  });
10883
10881
  }
10884
10882
  let path = '';
@@ -11570,7 +11568,7 @@ const wrapperStyle = {
11570
11568
  position: 'relative',
11571
11569
  zIndex: 0
11572
11570
  };
11573
- function ReactFlow({ nodes, edges, defaultNodes, defaultEdges, className, nodeTypes, edgeTypes, onNodeClick, onEdgeClick, onInit, onMove, onMoveStart, onMoveEnd, onConnect, onConnectStart, onConnectEnd, onClickConnectStart, onClickConnectEnd, onNodeMouseEnter, onNodeMouseMove, onNodeMouseLeave, onNodeContextMenu, onNodeDoubleClick, onNodeDragStart, onNodeDrag, onNodeDragStop, onNodesDelete, onEdgesDelete, onDelete, onSelectionChange, onSelectionDragStart, onSelectionDrag, onSelectionDragStop, onSelectionContextMenu, onSelectionStart, onSelectionEnd, onBeforeDelete, connectionMode, connectionLineType = ConnectionLineType.Bezier, connectionLineStyle, connectionLineComponent, connectionLineContainerStyle, deleteKeyCode = 'Backspace', selectionKeyCode = 'Shift', selectionOnDrag = false, selectionMode = SelectionMode.Full, panActivationKeyCode = 'Space', multiSelectionKeyCode = isMacOs() ? 'Meta' : 'Control', zoomActivationKeyCode = isMacOs() ? 'Meta' : 'Control', snapToGrid, snapGrid, onlyRenderVisibleElements = false, selectNodesOnDrag, nodesDraggable, autoPanOnNodeFocus, nodesConnectable, nodesFocusable, nodeOrigin = defaultNodeOrigin, edgesFocusable, edgesReconnectable, elementsSelectable = true, defaultViewport: defaultViewport$1 = defaultViewport, minZoom = 0.5, maxZoom = 2, translateExtent = infiniteExtent, preventScrolling = true, nodeExtent, defaultMarkerColor = '#b1b1b7', zoomOnScroll = true, zoomOnPinch = true, panOnScroll = false, panOnScrollSpeed = 0.5, panOnScrollMode = PanOnScrollMode.Free, zoomOnDoubleClick = true, panOnDrag = true, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneScroll, onPaneContextMenu, paneClickDistance = 0, nodeClickDistance = 0, children, onReconnect, onReconnectStart, onReconnectEnd, onEdgeContextMenu, onEdgeDoubleClick, onEdgeMouseEnter, onEdgeMouseMove, onEdgeMouseLeave, reconnectRadius = 10, onNodesChange, onEdgesChange, noDragClassName = 'nodrag', noWheelClassName = 'nowheel', noPanClassName = 'nopan', fitView, fitViewOptions, connectOnClick, attributionPosition, proOptions, defaultEdgeOptions, elevateNodesOnSelect, elevateEdgesOnSelect, disableKeyboardA11y = false, autoPanOnConnect, autoPanOnNodeDrag, autoPanSpeed, connectionRadius, isValidConnection, onError, style, id, nodeDragThreshold, connectionDragThreshold, viewport, onViewportChange, width, height, colorMode = 'light', debug, onScroll, ariaLabelConfig, ...rest }, ref) {
11571
+ function ReactFlow({ nodes, edges, defaultNodes, defaultEdges, className, nodeTypes, edgeTypes, onNodeClick, onEdgeClick, onInit, onMove, onMoveStart, onMoveEnd, onConnect, onConnectStart, onConnectEnd, onClickConnectStart, onClickConnectEnd, onNodeMouseEnter, onNodeMouseMove, onNodeMouseLeave, onNodeContextMenu, onNodeDoubleClick, onNodeDragStart, onNodeDrag, onNodeDragStop, onNodesDelete, onEdgesDelete, onDelete, onSelectionChange, onSelectionDragStart, onSelectionDrag, onSelectionDragStop, onSelectionContextMenu, onSelectionStart, onSelectionEnd, onBeforeDelete, connectionMode, connectionLineType = ConnectionLineType.Bezier, connectionLineStyle, connectionLineComponent, connectionLineContainerStyle, deleteKeyCode = 'Backspace', selectionKeyCode = 'Shift', selectionOnDrag = false, selectionMode = SelectionMode.Full, panActivationKeyCode = 'Space', multiSelectionKeyCode = isMacOs() ? 'Meta' : 'Control', zoomActivationKeyCode = isMacOs() ? 'Meta' : 'Control', snapToGrid, snapGrid, onlyRenderVisibleElements = false, selectNodesOnDrag, nodesDraggable, autoPanOnNodeFocus, nodesConnectable, nodesFocusable, nodeOrigin = defaultNodeOrigin, edgesFocusable, edgesReconnectable, elementsSelectable = true, defaultViewport: defaultViewport$1 = defaultViewport, minZoom = 0.5, maxZoom = 2, translateExtent = infiniteExtent, preventScrolling = true, nodeExtent, defaultMarkerColor = '#b1b1b7', zoomOnScroll = true, zoomOnPinch = true, panOnScroll = false, panOnScrollSpeed = 0.5, panOnScrollMode = PanOnScrollMode.Free, zoomOnDoubleClick = true, panOnDrag = true, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneScroll, onPaneContextMenu, paneClickDistance = 1, nodeClickDistance = 0, children, onReconnect, onReconnectStart, onReconnectEnd, onEdgeContextMenu, onEdgeDoubleClick, onEdgeMouseEnter, onEdgeMouseMove, onEdgeMouseLeave, reconnectRadius = 10, onNodesChange, onEdgesChange, noDragClassName = 'nodrag', noWheelClassName = 'nowheel', noPanClassName = 'nopan', fitView, fitViewOptions, connectOnClick, attributionPosition, proOptions, defaultEdgeOptions, elevateNodesOnSelect, elevateEdgesOnSelect, disableKeyboardA11y = false, autoPanOnConnect, autoPanOnNodeDrag, autoPanSpeed, connectionRadius, isValidConnection, onError, style, id, nodeDragThreshold, connectionDragThreshold, viewport, onViewportChange, width, height, colorMode = 'light', debug, onScroll, ariaLabelConfig, ...rest }, ref) {
11574
11572
  const rfId = id || '1';
11575
11573
  const colorModeClassName = useColorModeClass(colorMode);
11576
11574
  // Undo scroll events, preventing viewport from shifting when nodes outside of it are focused
@@ -12699,7 +12697,7 @@ var css_248z = "/* this gets exported as style.css and can be used for the defau
12699
12697
  styleInject(css_248z);
12700
12698
 
12701
12699
  /**
12702
- * @license lucide-react v0.553.0 - ISC
12700
+ * @license lucide-react v0.554.0 - ISC
12703
12701
  *
12704
12702
  * This source code is licensed under the ISC license.
12705
12703
  * See the LICENSE file in the root directory of this source tree.
@@ -12721,7 +12719,7 @@ const hasA11yProp = (props)=>{
12721
12719
  };
12722
12720
 
12723
12721
  /**
12724
- * @license lucide-react v0.553.0 - ISC
12722
+ * @license lucide-react v0.554.0 - ISC
12725
12723
  *
12726
12724
  * This source code is licensed under the ISC license.
12727
12725
  * See the LICENSE file in the root directory of this source tree.
@@ -13962,6 +13960,372 @@ function _extends() {
13962
13960
  }, _extends.apply(null, arguments);
13963
13961
  }
13964
13962
 
13963
+ var reactIs = {exports: {}};
13964
+
13965
+ var reactIs_production_min = {};
13966
+
13967
+ var hasRequiredReactIs_production_min;
13968
+ function requireReactIs_production_min() {
13969
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
13970
+ hasRequiredReactIs_production_min = 1;
13971
+ var b = "function" === typeof Symbol && Symbol.for, c = b ? Symbol.for("react.element") : 60103, d = b ? Symbol.for("react.portal") : 60106, e = b ? Symbol.for("react.fragment") : 60107, f = b ? Symbol.for("react.strict_mode") : 60108, g = b ? Symbol.for("react.profiler") : 60114, h = b ? Symbol.for("react.provider") : 60109, k = b ? Symbol.for("react.context") : 60110, l = b ? Symbol.for("react.async_mode") : 60111, m = b ? Symbol.for("react.concurrent_mode") : 60111, n = b ? Symbol.for("react.forward_ref") : 60112, p = b ? Symbol.for("react.suspense") : 60113, q = b ? Symbol.for("react.suspense_list") : 60120, r = b ? Symbol.for("react.memo") : 60115, t = b ? Symbol.for("react.lazy") : 60116, v = b ? Symbol.for("react.block") : 60121, w = b ? Symbol.for("react.fundamental") : 60117, x = b ? Symbol.for("react.responder") : 60118, y = b ? Symbol.for("react.scope") : 60119;
13972
+ function z(a) {
13973
+ if ("object" === typeof a && null !== a) {
13974
+ var u = a.$$typeof;
13975
+ switch(u){
13976
+ case c:
13977
+ switch(a = a.type, a){
13978
+ case l:
13979
+ case m:
13980
+ case e:
13981
+ case g:
13982
+ case f:
13983
+ case p:
13984
+ return a;
13985
+ default:
13986
+ switch(a = a && a.$$typeof, a){
13987
+ case k:
13988
+ case n:
13989
+ case t:
13990
+ case r:
13991
+ case h:
13992
+ return a;
13993
+ default:
13994
+ return u;
13995
+ }
13996
+ }
13997
+ case d:
13998
+ return u;
13999
+ }
14000
+ }
14001
+ }
14002
+ function A(a) {
14003
+ return z(a) === m;
14004
+ }
14005
+ reactIs_production_min.AsyncMode = l;
14006
+ reactIs_production_min.ConcurrentMode = m;
14007
+ reactIs_production_min.ContextConsumer = k;
14008
+ reactIs_production_min.ContextProvider = h;
14009
+ reactIs_production_min.Element = c;
14010
+ reactIs_production_min.ForwardRef = n;
14011
+ reactIs_production_min.Fragment = e;
14012
+ reactIs_production_min.Lazy = t;
14013
+ reactIs_production_min.Memo = r;
14014
+ reactIs_production_min.Portal = d;
14015
+ reactIs_production_min.Profiler = g;
14016
+ reactIs_production_min.StrictMode = f;
14017
+ reactIs_production_min.Suspense = p;
14018
+ reactIs_production_min.isAsyncMode = function(a) {
14019
+ return A(a) || z(a) === l;
14020
+ };
14021
+ reactIs_production_min.isConcurrentMode = A;
14022
+ reactIs_production_min.isContextConsumer = function(a) {
14023
+ return z(a) === k;
14024
+ };
14025
+ reactIs_production_min.isContextProvider = function(a) {
14026
+ return z(a) === h;
14027
+ };
14028
+ reactIs_production_min.isElement = function(a) {
14029
+ return "object" === typeof a && null !== a && a.$$typeof === c;
14030
+ };
14031
+ reactIs_production_min.isForwardRef = function(a) {
14032
+ return z(a) === n;
14033
+ };
14034
+ reactIs_production_min.isFragment = function(a) {
14035
+ return z(a) === e;
14036
+ };
14037
+ reactIs_production_min.isLazy = function(a) {
14038
+ return z(a) === t;
14039
+ };
14040
+ reactIs_production_min.isMemo = function(a) {
14041
+ return z(a) === r;
14042
+ };
14043
+ reactIs_production_min.isPortal = function(a) {
14044
+ return z(a) === d;
14045
+ };
14046
+ reactIs_production_min.isProfiler = function(a) {
14047
+ return z(a) === g;
14048
+ };
14049
+ reactIs_production_min.isStrictMode = function(a) {
14050
+ return z(a) === f;
14051
+ };
14052
+ reactIs_production_min.isSuspense = function(a) {
14053
+ return z(a) === p;
14054
+ };
14055
+ reactIs_production_min.isValidElementType = function(a) {
14056
+ return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
14057
+ };
14058
+ reactIs_production_min.typeOf = z;
14059
+ return reactIs_production_min;
14060
+ }
14061
+
14062
+ var reactIs_development = {};
14063
+
14064
+ var hasRequiredReactIs_development;
14065
+ function requireReactIs_development() {
14066
+ if (hasRequiredReactIs_development) return reactIs_development;
14067
+ hasRequiredReactIs_development = 1;
14068
+ if (process.env.NODE_ENV !== "production") {
14069
+ (function() {
14070
+ // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
14071
+ // nor polyfill, then a plain number is used for performance.
14072
+ var hasSymbol = typeof Symbol === 'function' && Symbol.for;
14073
+ var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
14074
+ var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
14075
+ var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
14076
+ var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
14077
+ var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
14078
+ var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
14079
+ var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
14080
+ // (unstable) APIs that have been removed. Can we remove the symbols?
14081
+ var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
14082
+ var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
14083
+ var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
14084
+ var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
14085
+ var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
14086
+ var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
14087
+ var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
14088
+ var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
14089
+ var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
14090
+ var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
14091
+ var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
14092
+ function isValidElementType(type) {
14093
+ return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
14094
+ type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
14095
+ }
14096
+ function typeOf(object) {
14097
+ if (typeof object === 'object' && object !== null) {
14098
+ var $$typeof = object.$$typeof;
14099
+ switch($$typeof){
14100
+ case REACT_ELEMENT_TYPE:
14101
+ var type = object.type;
14102
+ switch(type){
14103
+ case REACT_ASYNC_MODE_TYPE:
14104
+ case REACT_CONCURRENT_MODE_TYPE:
14105
+ case REACT_FRAGMENT_TYPE:
14106
+ case REACT_PROFILER_TYPE:
14107
+ case REACT_STRICT_MODE_TYPE:
14108
+ case REACT_SUSPENSE_TYPE:
14109
+ return type;
14110
+ default:
14111
+ var $$typeofType = type && type.$$typeof;
14112
+ switch($$typeofType){
14113
+ case REACT_CONTEXT_TYPE:
14114
+ case REACT_FORWARD_REF_TYPE:
14115
+ case REACT_LAZY_TYPE:
14116
+ case REACT_MEMO_TYPE:
14117
+ case REACT_PROVIDER_TYPE:
14118
+ return $$typeofType;
14119
+ default:
14120
+ return $$typeof;
14121
+ }
14122
+ }
14123
+ case REACT_PORTAL_TYPE:
14124
+ return $$typeof;
14125
+ }
14126
+ }
14127
+ return undefined;
14128
+ } // AsyncMode is deprecated along with isAsyncMode
14129
+ var AsyncMode = REACT_ASYNC_MODE_TYPE;
14130
+ var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
14131
+ var ContextConsumer = REACT_CONTEXT_TYPE;
14132
+ var ContextProvider = REACT_PROVIDER_TYPE;
14133
+ var Element = REACT_ELEMENT_TYPE;
14134
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
14135
+ var Fragment = REACT_FRAGMENT_TYPE;
14136
+ var Lazy = REACT_LAZY_TYPE;
14137
+ var Memo = REACT_MEMO_TYPE;
14138
+ var Portal = REACT_PORTAL_TYPE;
14139
+ var Profiler = REACT_PROFILER_TYPE;
14140
+ var StrictMode = REACT_STRICT_MODE_TYPE;
14141
+ var Suspense = REACT_SUSPENSE_TYPE;
14142
+ var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
14143
+ function isAsyncMode(object) {
14144
+ {
14145
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
14146
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
14147
+ console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
14148
+ }
14149
+ }
14150
+ return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
14151
+ }
14152
+ function isConcurrentMode(object) {
14153
+ return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
14154
+ }
14155
+ function isContextConsumer(object) {
14156
+ return typeOf(object) === REACT_CONTEXT_TYPE;
14157
+ }
14158
+ function isContextProvider(object) {
14159
+ return typeOf(object) === REACT_PROVIDER_TYPE;
14160
+ }
14161
+ function isElement(object) {
14162
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
14163
+ }
14164
+ function isForwardRef(object) {
14165
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
14166
+ }
14167
+ function isFragment(object) {
14168
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
14169
+ }
14170
+ function isLazy(object) {
14171
+ return typeOf(object) === REACT_LAZY_TYPE;
14172
+ }
14173
+ function isMemo(object) {
14174
+ return typeOf(object) === REACT_MEMO_TYPE;
14175
+ }
14176
+ function isPortal(object) {
14177
+ return typeOf(object) === REACT_PORTAL_TYPE;
14178
+ }
14179
+ function isProfiler(object) {
14180
+ return typeOf(object) === REACT_PROFILER_TYPE;
14181
+ }
14182
+ function isStrictMode(object) {
14183
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
14184
+ }
14185
+ function isSuspense(object) {
14186
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
14187
+ }
14188
+ reactIs_development.AsyncMode = AsyncMode;
14189
+ reactIs_development.ConcurrentMode = ConcurrentMode;
14190
+ reactIs_development.ContextConsumer = ContextConsumer;
14191
+ reactIs_development.ContextProvider = ContextProvider;
14192
+ reactIs_development.Element = Element;
14193
+ reactIs_development.ForwardRef = ForwardRef;
14194
+ reactIs_development.Fragment = Fragment;
14195
+ reactIs_development.Lazy = Lazy;
14196
+ reactIs_development.Memo = Memo;
14197
+ reactIs_development.Portal = Portal;
14198
+ reactIs_development.Profiler = Profiler;
14199
+ reactIs_development.StrictMode = StrictMode;
14200
+ reactIs_development.Suspense = Suspense;
14201
+ reactIs_development.isAsyncMode = isAsyncMode;
14202
+ reactIs_development.isConcurrentMode = isConcurrentMode;
14203
+ reactIs_development.isContextConsumer = isContextConsumer;
14204
+ reactIs_development.isContextProvider = isContextProvider;
14205
+ reactIs_development.isElement = isElement;
14206
+ reactIs_development.isForwardRef = isForwardRef;
14207
+ reactIs_development.isFragment = isFragment;
14208
+ reactIs_development.isLazy = isLazy;
14209
+ reactIs_development.isMemo = isMemo;
14210
+ reactIs_development.isPortal = isPortal;
14211
+ reactIs_development.isProfiler = isProfiler;
14212
+ reactIs_development.isStrictMode = isStrictMode;
14213
+ reactIs_development.isSuspense = isSuspense;
14214
+ reactIs_development.isValidElementType = isValidElementType;
14215
+ reactIs_development.typeOf = typeOf;
14216
+ })();
14217
+ }
14218
+ return reactIs_development;
14219
+ }
14220
+
14221
+ var hasRequiredReactIs;
14222
+ function requireReactIs() {
14223
+ if (hasRequiredReactIs) return reactIs.exports;
14224
+ hasRequiredReactIs = 1;
14225
+ if (process.env.NODE_ENV === 'production') {
14226
+ reactIs.exports = requireReactIs_production_min();
14227
+ } else {
14228
+ reactIs.exports = requireReactIs_development();
14229
+ }
14230
+ return reactIs.exports;
14231
+ }
14232
+
14233
+ var hoistNonReactStatics_cjs;
14234
+ var hasRequiredHoistNonReactStatics_cjs;
14235
+ function requireHoistNonReactStatics_cjs() {
14236
+ if (hasRequiredHoistNonReactStatics_cjs) return hoistNonReactStatics_cjs;
14237
+ hasRequiredHoistNonReactStatics_cjs = 1;
14238
+ var reactIs = requireReactIs();
14239
+ /**
14240
+ * Copyright 2015, Yahoo! Inc.
14241
+ * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
14242
+ */ var REACT_STATICS = {
14243
+ childContextTypes: true,
14244
+ contextType: true,
14245
+ contextTypes: true,
14246
+ defaultProps: true,
14247
+ displayName: true,
14248
+ getDefaultProps: true,
14249
+ getDerivedStateFromError: true,
14250
+ getDerivedStateFromProps: true,
14251
+ mixins: true,
14252
+ propTypes: true,
14253
+ type: true
14254
+ };
14255
+ var KNOWN_STATICS = {
14256
+ name: true,
14257
+ length: true,
14258
+ prototype: true,
14259
+ caller: true,
14260
+ callee: true,
14261
+ arguments: true,
14262
+ arity: true
14263
+ };
14264
+ var FORWARD_REF_STATICS = {
14265
+ '$$typeof': true,
14266
+ render: true,
14267
+ defaultProps: true,
14268
+ displayName: true,
14269
+ propTypes: true
14270
+ };
14271
+ var MEMO_STATICS = {
14272
+ '$$typeof': true,
14273
+ compare: true,
14274
+ defaultProps: true,
14275
+ displayName: true,
14276
+ propTypes: true,
14277
+ type: true
14278
+ };
14279
+ var TYPE_STATICS = {};
14280
+ TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
14281
+ TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
14282
+ function getStatics(component) {
14283
+ // React v16.11 and below
14284
+ if (reactIs.isMemo(component)) {
14285
+ return MEMO_STATICS;
14286
+ } // React v16.12 and above
14287
+ return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
14288
+ }
14289
+ var defineProperty = Object.defineProperty;
14290
+ var getOwnPropertyNames = Object.getOwnPropertyNames;
14291
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
14292
+ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
14293
+ var getPrototypeOf = Object.getPrototypeOf;
14294
+ var objectPrototype = Object.prototype;
14295
+ function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
14296
+ if (typeof sourceComponent !== 'string') {
14297
+ // don't hoist over string (html) components
14298
+ if (objectPrototype) {
14299
+ var inheritedComponent = getPrototypeOf(sourceComponent);
14300
+ if (inheritedComponent && inheritedComponent !== objectPrototype) {
14301
+ hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
14302
+ }
14303
+ }
14304
+ var keys = getOwnPropertyNames(sourceComponent);
14305
+ if (getOwnPropertySymbols) {
14306
+ keys = keys.concat(getOwnPropertySymbols(sourceComponent));
14307
+ }
14308
+ var targetStatics = getStatics(targetComponent);
14309
+ var sourceStatics = getStatics(sourceComponent);
14310
+ for(var i = 0; i < keys.length; ++i){
14311
+ var key = keys[i];
14312
+ if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
14313
+ var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
14314
+ try {
14315
+ // Avoid failures from read-only properties
14316
+ defineProperty(targetComponent, key, descriptor);
14317
+ } catch (e) {}
14318
+ }
14319
+ }
14320
+ }
14321
+ return targetComponent;
14322
+ }
14323
+ hoistNonReactStatics_cjs = hoistNonReactStatics;
14324
+ return hoistNonReactStatics_cjs;
14325
+ }
14326
+
14327
+ requireHoistNonReactStatics_cjs();
14328
+
13965
14329
  var isBrowser = true;
13966
14330
  function getRegisteredStyles(registered, registeredStyles, classNames) {
13967
14331
  var rawClassName = '';
@@ -14264,6 +14628,7 @@ var syncFallback = function syncFallback(create) {
14264
14628
  };
14265
14629
  var useInsertionEffect$1 = React__namespace['useInsertion' + 'Effect'] ? React__namespace['useInsertion' + 'Effect'] : false;
14266
14630
  var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect$1 || syncFallback;
14631
+ var useInsertionEffectWithLayoutFallback = useInsertionEffect$1 || React__namespace.useLayoutEffect;
14267
14632
 
14268
14633
  var EmotionCacheContext = /* #__PURE__ */ React__namespace.createContext(// because this module is primarily intended for the browser and node
14269
14634
  // but it's also required in react native and similar environments sometimes
@@ -14303,6 +14668,153 @@ var ThemeProvider$1 = function ThemeProvider(props) {
14303
14668
  value: theme
14304
14669
  }, props.children);
14305
14670
  };
14671
+ var hasOwn = {}.hasOwnProperty;
14672
+ var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
14673
+ var createEmotionProps = function createEmotionProps(type, props) {
14674
+ var newProps = {};
14675
+ for(var _key in props){
14676
+ if (hasOwn.call(props, _key)) {
14677
+ newProps[_key] = props[_key];
14678
+ }
14679
+ }
14680
+ newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:
14681
+ return newProps;
14682
+ };
14683
+ var Insertion$1 = function Insertion(_ref) {
14684
+ var cache = _ref.cache, serialized = _ref.serialized, isStringTag = _ref.isStringTag;
14685
+ registerStyles(cache, serialized, isStringTag);
14686
+ useInsertionEffectAlwaysWithSyncFallback(function() {
14687
+ return insertStyles(cache, serialized, isStringTag);
14688
+ });
14689
+ return null;
14690
+ };
14691
+ var Emotion = /* #__PURE__ */ withEmotionCache(function(props, cache, ref) {
14692
+ var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works
14693
+ // not passing the registered cache to serializeStyles because it would
14694
+ // make certain babel optimisations not possible
14695
+ if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
14696
+ cssProp = cache.registered[cssProp];
14697
+ }
14698
+ var WrappedComponent = props[typePropName];
14699
+ var registeredStyles = [
14700
+ cssProp
14701
+ ];
14702
+ var className = '';
14703
+ if (typeof props.className === 'string') {
14704
+ className = getRegisteredStyles(cache.registered, registeredStyles, props.className);
14705
+ } else if (props.className != null) {
14706
+ className = props.className + " ";
14707
+ }
14708
+ var serialized = serializeStyles(registeredStyles, undefined, React__namespace.useContext(ThemeContext$1));
14709
+ className += cache.key + "-" + serialized.name;
14710
+ var newProps = {};
14711
+ for(var _key2 in props){
14712
+ if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && true) {
14713
+ newProps[_key2] = props[_key2];
14714
+ }
14715
+ }
14716
+ newProps.className = className;
14717
+ if (ref) {
14718
+ newProps.ref = ref;
14719
+ }
14720
+ return /*#__PURE__*/ React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/ React__namespace.createElement(Insertion$1, {
14721
+ cache: cache,
14722
+ serialized: serialized,
14723
+ isStringTag: typeof WrappedComponent === 'string'
14724
+ }), /*#__PURE__*/ React__namespace.createElement(WrappedComponent, newProps));
14725
+ });
14726
+ var Emotion$1 = Emotion;
14727
+
14728
+ var jsx = function jsx(type, props) {
14729
+ // eslint-disable-next-line prefer-rest-params
14730
+ var args = arguments;
14731
+ if (props == null || !hasOwn.call(props, 'css')) {
14732
+ return React__namespace.createElement.apply(undefined, args);
14733
+ }
14734
+ var argsLength = args.length;
14735
+ var createElementArgArray = new Array(argsLength);
14736
+ createElementArgArray[0] = Emotion$1;
14737
+ createElementArgArray[1] = createEmotionProps(type, props);
14738
+ for(var i = 2; i < argsLength; i++){
14739
+ createElementArgArray[i] = args[i];
14740
+ }
14741
+ return React__namespace.createElement.apply(null, createElementArgArray);
14742
+ };
14743
+ (function(_jsx) {
14744
+ var JSX;
14745
+ (function(_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));
14746
+ })(jsx || (jsx = {}));
14747
+ // initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
14748
+ // initial client-side render from SSR, use place of hydrating tag
14749
+ var Global = /* #__PURE__ */ withEmotionCache(function(props, cache) {
14750
+ var styles = props.styles;
14751
+ var serialized = serializeStyles([
14752
+ styles
14753
+ ], undefined, React__namespace.useContext(ThemeContext$1));
14754
+ // but it is based on a constant that will never change at runtime
14755
+ // it's effectively like having two implementations and switching them out
14756
+ // so it's not actually breaking anything
14757
+ var sheetRef = React__namespace.useRef();
14758
+ useInsertionEffectWithLayoutFallback(function() {
14759
+ var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675
14760
+ var sheet = new cache.sheet.constructor({
14761
+ key: key,
14762
+ nonce: cache.sheet.nonce,
14763
+ container: cache.sheet.container,
14764
+ speedy: cache.sheet.isSpeedy
14765
+ });
14766
+ var rehydrating = false;
14767
+ var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]");
14768
+ if (cache.sheet.tags.length) {
14769
+ sheet.before = cache.sheet.tags[0];
14770
+ }
14771
+ if (node !== null) {
14772
+ rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s
14773
+ node.setAttribute('data-emotion', key);
14774
+ sheet.hydrate([
14775
+ node
14776
+ ]);
14777
+ }
14778
+ sheetRef.current = [
14779
+ sheet,
14780
+ rehydrating
14781
+ ];
14782
+ return function() {
14783
+ sheet.flush();
14784
+ };
14785
+ }, [
14786
+ cache
14787
+ ]);
14788
+ useInsertionEffectWithLayoutFallback(function() {
14789
+ var sheetRefCurrent = sheetRef.current;
14790
+ var sheet = sheetRefCurrent[0], rehydrating = sheetRefCurrent[1];
14791
+ if (rehydrating) {
14792
+ sheetRefCurrent[1] = false;
14793
+ return;
14794
+ }
14795
+ if (serialized.next !== undefined) {
14796
+ // insert keyframes
14797
+ insertStyles(cache, serialized.next, true);
14798
+ }
14799
+ if (sheet.tags.length) {
14800
+ // if this doesn't exist then it will be null so the style element will be appended
14801
+ var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;
14802
+ sheet.before = element;
14803
+ sheet.flush();
14804
+ }
14805
+ cache.insert("", serialized, sheet, false);
14806
+ }, [
14807
+ cache,
14808
+ serialized.name
14809
+ ]);
14810
+ return null;
14811
+ });
14812
+ function css() {
14813
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
14814
+ args[_key] = arguments[_key];
14815
+ }
14816
+ return serializeStyles(args);
14817
+ }
14306
14818
 
14307
14819
  const lightTheme = {
14308
14820
  colors: {
@@ -14410,9 +14922,15 @@ const ThemeProvider = ({ children, theme: propTheme })=>{
14410
14922
  return propTheme;
14411
14923
  }
14412
14924
  // Only check localStorage if no theme prop is provided
14413
- const savedTheme = localStorage.getItem("theme");
14414
- if (savedTheme === "dark") {
14415
- return darkTheme;
14925
+ // Handle cases where localStorage might not be available (e.g., test environments)
14926
+ try {
14927
+ const savedTheme = localStorage.getItem("theme");
14928
+ if (savedTheme === "dark") {
14929
+ return darkTheme;
14930
+ }
14931
+ } catch (e) {
14932
+ // localStorage not available, fall back to light theme
14933
+ // This can happen in test environments or when localStorage is disabled
14416
14934
  }
14417
14935
  return lightTheme;
14418
14936
  });
@@ -14431,11 +14949,15 @@ const ThemeProvider = ({ children, theme: propTheme })=>{
14431
14949
  return;
14432
14950
  }
14433
14951
  const handleStorageChange = ()=>{
14434
- const savedTheme = localStorage.getItem("theme");
14435
- if (savedTheme === "dark") {
14436
- setCurrentTheme(darkTheme);
14437
- } else {
14438
- setCurrentTheme(lightTheme);
14952
+ try {
14953
+ const savedTheme = localStorage.getItem("theme");
14954
+ if (savedTheme === "dark") {
14955
+ setCurrentTheme(darkTheme);
14956
+ } else {
14957
+ setCurrentTheme(lightTheme);
14958
+ }
14959
+ } catch (e) {
14960
+ // localStorage not available, ignore storage changes
14439
14961
  }
14440
14962
  };
14441
14963
  // Listen for storage events (when localStorage changes in other tabs)
@@ -14488,24 +15010,16 @@ const Edge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPo
14488
15010
  const [isHovered, setIsHovered] = React.useState(false);
14489
15011
  const { theme } = useTheme();
14490
15012
  const themeColors = theme.colors;
14491
- // Function to determine stroke color based on edge state and theme
15013
+ // Function to determine stroke color based on edge status and theme
14492
15014
  const getStrokeColor = ()=>{
14493
- const state = data?.details?.state;
14494
15015
  const status = data?.details?.status;
14495
- const output = data?.details?.output;
15016
+ data?.details?.output;
14496
15017
  // Check for error indicators
14497
- const hasError = state === "Error" || status === "Error" || typeof output === "string" && output.includes("ERROR:");
15018
+ const hasError = status === "Failed";
14498
15019
  if (hasError) {
14499
15020
  return themeColors.destructive;
14500
15021
  }
14501
- switch(state){
14502
- case "Open":
14503
- return themeColors.mutedForeground;
14504
- case "Completed":
14505
- return themeColors.mutedForeground;
14506
- default:
14507
- return themeColors.mutedForeground;
14508
- }
15022
+ return themeColors.mutedForeground;
14509
15023
  };
14510
15024
  const [edgePath] = React.useMemo(()=>{
14511
15025
  return getSmoothStepPath({
@@ -17049,15 +17563,24 @@ const NodeIcon$3 = styled.div`
17049
17563
  `;
17050
17564
 
17051
17565
  // Helper function to get node icon
17052
- const getNodeIcon = (modelProvider)=>{
17566
+ const getNodeIcon = (modelProvider, size = 16)=>{
17053
17567
  if (modelProvider === "OpenAI") {
17054
- return /*#__PURE__*/ React.createElement(OpenAIIcon, null);
17568
+ return /*#__PURE__*/ React.createElement(OpenAIIcon, {
17569
+ width: size,
17570
+ height: size
17571
+ });
17055
17572
  }
17056
17573
  if (modelProvider === "Anthropic") {
17057
- return /*#__PURE__*/ React.createElement(AnthropicIcon, null);
17574
+ return /*#__PURE__*/ React.createElement(AnthropicIcon, {
17575
+ width: size,
17576
+ height: size
17577
+ });
17058
17578
  }
17059
17579
  if (modelProvider === "Google" || modelProvider === "Vertex_AI") {
17060
- return /*#__PURE__*/ React.createElement(GoogleIcon, null);
17580
+ return /*#__PURE__*/ React.createElement(GoogleIcon, {
17581
+ width: size,
17582
+ height: size
17583
+ });
17061
17584
  }
17062
17585
  return "🤖";
17063
17586
  };
@@ -17880,7 +18403,7 @@ function useControllableState$1({ prop, defaultProp, onChange = ()=>{}, caller }
17880
18403
  }
17881
18404
  const setValue = React__namespace.useCallback((nextValue)=>{
17882
18405
  if (isControlled) {
17883
- const value2 = isFunction$1(nextValue) ? nextValue(prop) : nextValue;
18406
+ const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
17884
18407
  if (value2 !== prop) {
17885
18408
  onChangeRef.current?.(value2);
17886
18409
  }
@@ -17922,7 +18445,7 @@ function useUncontrolledState$1({ defaultProp, onChange }) {
17922
18445
  onChangeRef
17923
18446
  ];
17924
18447
  }
17925
- function isFunction$1(value) {
18448
+ function isFunction(value) {
17926
18449
  return typeof value === "function";
17927
18450
  }
17928
18451
 
@@ -19735,23 +20258,23 @@ var Dialog = (props)=>{
19735
20258
  });
19736
20259
  };
19737
20260
  Dialog.displayName = DIALOG_NAME;
19738
- var TRIGGER_NAME$2 = "DialogTrigger";
20261
+ var TRIGGER_NAME$1 = "DialogTrigger";
19739
20262
  var DialogTrigger = React__namespace.forwardRef((props, forwardedRef)=>{
19740
20263
  const { __scopeDialog, ...triggerProps } = props;
19741
- const context = useDialogContext(TRIGGER_NAME$2, __scopeDialog);
20264
+ const context = useDialogContext(TRIGGER_NAME$1, __scopeDialog);
19742
20265
  const composedTriggerRef = useComposedRefs$1(forwardedRef, context.triggerRef);
19743
20266
  return /* @__PURE__ */ jsxRuntime.jsx(Primitive.button, {
19744
20267
  type: "button",
19745
20268
  "aria-haspopup": "dialog",
19746
20269
  "aria-expanded": context.open,
19747
20270
  "aria-controls": context.contentId,
19748
- "data-state": getState$1(context.open),
20271
+ "data-state": getState(context.open),
19749
20272
  ...triggerProps,
19750
20273
  ref: composedTriggerRef,
19751
20274
  onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
19752
20275
  });
19753
20276
  });
19754
- DialogTrigger.displayName = TRIGGER_NAME$2;
20277
+ DialogTrigger.displayName = TRIGGER_NAME$1;
19755
20278
  var PORTAL_NAME$1 = "DialogPortal";
19756
20279
  var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME$1, {
19757
20280
  forceMount: void 0
@@ -19800,7 +20323,7 @@ var DialogOverlayImpl = React__namespace.forwardRef((props, forwardedRef)=>{
19800
20323
  context.contentRef
19801
20324
  ],
19802
20325
  children: /* @__PURE__ */ jsxRuntime.jsx(Primitive.div, {
19803
- "data-state": getState$1(context.open),
20326
+ "data-state": getState(context.open),
19804
20327
  ...overlayProps,
19805
20328
  ref: forwardedRef,
19806
20329
  style: {
@@ -19907,7 +20430,7 @@ var DialogContentImpl = React__namespace.forwardRef((props, forwardedRef)=>{
19907
20430
  id: context.contentId,
19908
20431
  "aria-describedby": context.descriptionId,
19909
20432
  "aria-labelledby": context.titleId,
19910
- "data-state": getState$1(context.open),
20433
+ "data-state": getState(context.open),
19911
20434
  ...contentProps,
19912
20435
  ref: composedRefs,
19913
20436
  onDismiss: ()=>context.onOpenChange(false)
@@ -19961,7 +20484,7 @@ var DialogClose = React__namespace.forwardRef((props, forwardedRef)=>{
19961
20484
  });
19962
20485
  });
19963
20486
  DialogClose.displayName = CLOSE_NAME;
19964
- function getState$1(open) {
20487
+ function getState(open) {
19965
20488
  return open ? "open" : "closed";
19966
20489
  }
19967
20490
  var TITLE_WARNING_NAME = "DialogTitleWarning";
@@ -20707,8 +21230,6 @@ const AgenticFlowVisualizer = ({ flowData: propFlowData, width = "100dvw", heigh
20707
21230
  minWidth: "800px",
20708
21231
  minHeight: "600px",
20709
21232
  boxSizing: "border-box",
20710
- border: `1px solid ${themeColors.border}`,
20711
- borderRadius: "8px",
20712
21233
  overflow: "hidden",
20713
21234
  position: "relative",
20714
21235
  background: themeColors.background
@@ -20860,6 +21381,7 @@ const AgenticFlowVisualizer = ({ flowData: propFlowData, width = "100dvw", heigh
20860
21381
  }, /*#__PURE__*/ React.createElement(Background, {
20861
21382
  variant: BackgroundVariant.Dots,
20862
21383
  color: themeColors.mutedBorder,
21384
+ bgColor: themeColors.background,
20863
21385
  size: 3
20864
21386
  })), /*#__PURE__*/ React.createElement("style", null, `
20865
21387
  .react-flow__edge-label {
@@ -23535,11 +24057,11 @@ var Select$1 = (props)=>{
23535
24057
  });
23536
24058
  };
23537
24059
  Select$1.displayName = SELECT_NAME;
23538
- var TRIGGER_NAME$1 = "SelectTrigger";
24060
+ var TRIGGER_NAME = "SelectTrigger";
23539
24061
  var SelectTrigger$1 = React__namespace.forwardRef((props, forwardedRef)=>{
23540
24062
  const { __scopeSelect, disabled = false, ...triggerProps } = props;
23541
24063
  const popperScope = usePopperScope(__scopeSelect);
23542
- const context = useSelectContext(TRIGGER_NAME$1, __scopeSelect);
24064
+ const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
23543
24065
  const isDisabled = context.disabled || disabled;
23544
24066
  const composedRefs = useComposedRefs$1(forwardedRef, context.onTriggerChange);
23545
24067
  const getItems = useCollection(__scopeSelect);
@@ -23611,7 +24133,7 @@ var SelectTrigger$1 = React__namespace.forwardRef((props, forwardedRef)=>{
23611
24133
  })
23612
24134
  });
23613
24135
  });
23614
- SelectTrigger$1.displayName = TRIGGER_NAME$1;
24136
+ SelectTrigger$1.displayName = TRIGGER_NAME;
23615
24137
  var VALUE_NAME = "SelectValue";
23616
24138
  var SelectValue$1 = React__namespace.forwardRef((props, forwardedRef)=>{
23617
24139
  const { __scopeSelect, className, style, children, placeholder = "", ...valueProps } = props;
@@ -24472,7 +24994,7 @@ var SelectArrow = React__namespace.forwardRef((props, forwardedRef)=>{
24472
24994
  }) : null;
24473
24995
  });
24474
24996
  SelectArrow.displayName = ARROW_NAME;
24475
- var BUBBLE_INPUT_NAME$1 = "SelectBubbleInput";
24997
+ var BUBBLE_INPUT_NAME = "SelectBubbleInput";
24476
24998
  var SelectBubbleInput = React__namespace.forwardRef(({ __scopeSelect, value, ...props }, forwardedRef)=>{
24477
24999
  const ref = React__namespace.useRef(null);
24478
25000
  const composedRefs = useComposedRefs$1(forwardedRef, ref);
@@ -24504,7 +25026,7 @@ var SelectBubbleInput = React__namespace.forwardRef(({ __scopeSelect, value, ...
24504
25026
  defaultValue: value
24505
25027
  });
24506
25028
  });
24507
- SelectBubbleInput.displayName = BUBBLE_INPUT_NAME$1;
25029
+ SelectBubbleInput.displayName = BUBBLE_INPUT_NAME;
24508
25030
  function shouldShowPlaceholder(value) {
24509
25031
  return value === "" || value === void 0;
24510
25032
  }
@@ -24565,7 +25087,9 @@ var ScrollDownButton = SelectScrollDownButton$1;
24565
25087
  var Separator = SelectSeparator$1;
24566
25088
 
24567
25089
  const Select = Root2;
24568
- const SelectValue = Value;
25090
+ const SelectValue = styled(Value)`
25091
+ font-family: inherit;
25092
+ `;
24569
25093
  const SelectTrigger = styled(Trigger)`
24570
25094
  display: flex;
24571
25095
  height: 2.5rem;
@@ -24595,6 +25119,7 @@ const SelectTrigger = styled(Trigger)`
24595
25119
  }
24596
25120
 
24597
25121
  &[data-placeholder] {
25122
+ font-family: inherit;
24598
25123
  color: ${(props)=>props.$theme.colors.mutedForeground};
24599
25124
  }
24600
25125
  `;
@@ -24961,240 +25486,6 @@ const FileSelector = ({ files, currentFile, onFileSelect, onRefresh, loading = f
24961
25486
  }, loading ? /*#__PURE__*/ React.createElement(LoadingIcon, null) : /*#__PURE__*/ React.createElement(RefreshIcon, null)));
24962
25487
  };
24963
25488
 
24964
- var CHECKBOX_NAME = "Checkbox";
24965
- var [createCheckboxContext] = createContextScope(CHECKBOX_NAME);
24966
- var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
24967
- function CheckboxProvider(props) {
24968
- const { __scopeCheckbox, checked: checkedProp, children, defaultChecked, disabled, form, name, onCheckedChange, required, value = "on", // @ts-expect-error
24969
- internal_do_not_use_render } = props;
24970
- const [checked, setChecked] = useControllableState$1({
24971
- prop: checkedProp,
24972
- defaultProp: defaultChecked ?? false,
24973
- onChange: onCheckedChange,
24974
- caller: CHECKBOX_NAME
24975
- });
24976
- const [control, setControl] = React__namespace.useState(null);
24977
- const [bubbleInput, setBubbleInput] = React__namespace.useState(null);
24978
- const hasConsumerStoppedPropagationRef = React__namespace.useRef(false);
24979
- const isFormControl = control ? !!form || !!control.closest("form") : // We set this to true by default so that events bubble to forms without JS (SSR)
24980
- true;
24981
- const context = {
24982
- checked,
24983
- disabled,
24984
- setChecked,
24985
- control,
24986
- setControl,
24987
- name,
24988
- form,
24989
- value,
24990
- hasConsumerStoppedPropagationRef,
24991
- required,
24992
- defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
24993
- isFormControl,
24994
- bubbleInput,
24995
- setBubbleInput
24996
- };
24997
- return /* @__PURE__ */ jsxRuntime.jsx(CheckboxProviderImpl, {
24998
- scope: __scopeCheckbox,
24999
- ...context,
25000
- children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
25001
- });
25002
- }
25003
- var TRIGGER_NAME = "CheckboxTrigger";
25004
- var CheckboxTrigger = React__namespace.forwardRef(({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef)=>{
25005
- const { control, value, disabled, checked, required, setControl, setChecked, hasConsumerStoppedPropagationRef, isFormControl, bubbleInput } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);
25006
- const composedRefs = useComposedRefs$1(forwardedRef, setControl);
25007
- const initialCheckedStateRef = React__namespace.useRef(checked);
25008
- React__namespace.useEffect(()=>{
25009
- const form = control?.form;
25010
- if (form) {
25011
- const reset = ()=>setChecked(initialCheckedStateRef.current);
25012
- form.addEventListener("reset", reset);
25013
- return ()=>form.removeEventListener("reset", reset);
25014
- }
25015
- }, [
25016
- control,
25017
- setChecked
25018
- ]);
25019
- return /* @__PURE__ */ jsxRuntime.jsx(Primitive.button, {
25020
- type: "button",
25021
- role: "checkbox",
25022
- "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
25023
- "aria-required": required,
25024
- "data-state": getState(checked),
25025
- "data-disabled": disabled ? "" : void 0,
25026
- disabled,
25027
- value,
25028
- ...checkboxProps,
25029
- ref: composedRefs,
25030
- onKeyDown: composeEventHandlers(onKeyDown, (event)=>{
25031
- if (event.key === "Enter") event.preventDefault();
25032
- }),
25033
- onClick: composeEventHandlers(onClick, (event)=>{
25034
- setChecked((prevChecked)=>isIndeterminate(prevChecked) ? true : !prevChecked);
25035
- if (bubbleInput && isFormControl) {
25036
- hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
25037
- if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
25038
- }
25039
- })
25040
- });
25041
- });
25042
- CheckboxTrigger.displayName = TRIGGER_NAME;
25043
- var Checkbox$1 = React__namespace.forwardRef((props, forwardedRef)=>{
25044
- const { __scopeCheckbox, name, checked, defaultChecked, required, disabled, value, onCheckedChange, form, ...checkboxProps } = props;
25045
- return /* @__PURE__ */ jsxRuntime.jsx(CheckboxProvider, {
25046
- __scopeCheckbox,
25047
- checked,
25048
- defaultChecked,
25049
- disabled,
25050
- required,
25051
- onCheckedChange,
25052
- name,
25053
- form,
25054
- value,
25055
- internal_do_not_use_render: ({ isFormControl })=>/* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
25056
- children: [
25057
- /* @__PURE__ */ jsxRuntime.jsx(CheckboxTrigger, {
25058
- ...checkboxProps,
25059
- ref: forwardedRef,
25060
- __scopeCheckbox
25061
- }),
25062
- isFormControl && /* @__PURE__ */ jsxRuntime.jsx(CheckboxBubbleInput, {
25063
- __scopeCheckbox
25064
- })
25065
- ]
25066
- })
25067
- });
25068
- });
25069
- Checkbox$1.displayName = CHECKBOX_NAME;
25070
- var INDICATOR_NAME = "CheckboxIndicator";
25071
- var CheckboxIndicator$1 = React__namespace.forwardRef((props, forwardedRef)=>{
25072
- const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
25073
- const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);
25074
- return /* @__PURE__ */ jsxRuntime.jsx(Presence, {
25075
- present: forceMount || isIndeterminate(context.checked) || context.checked === true,
25076
- children: /* @__PURE__ */ jsxRuntime.jsx(Primitive.span, {
25077
- "data-state": getState(context.checked),
25078
- "data-disabled": context.disabled ? "" : void 0,
25079
- ...indicatorProps,
25080
- ref: forwardedRef,
25081
- style: {
25082
- pointerEvents: "none",
25083
- ...props.style
25084
- }
25085
- })
25086
- });
25087
- });
25088
- CheckboxIndicator$1.displayName = INDICATOR_NAME;
25089
- var BUBBLE_INPUT_NAME = "CheckboxBubbleInput";
25090
- var CheckboxBubbleInput = React__namespace.forwardRef(({ __scopeCheckbox, ...props }, forwardedRef)=>{
25091
- const { control, hasConsumerStoppedPropagationRef, checked, defaultChecked, required, disabled, name, value, form, bubbleInput, setBubbleInput } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);
25092
- const composedRefs = useComposedRefs$1(forwardedRef, setBubbleInput);
25093
- const prevChecked = usePrevious(checked);
25094
- const controlSize = useSize(control);
25095
- React__namespace.useEffect(()=>{
25096
- const input = bubbleInput;
25097
- if (!input) return;
25098
- const inputProto = window.HTMLInputElement.prototype;
25099
- const descriptor = Object.getOwnPropertyDescriptor(inputProto, "checked");
25100
- const setChecked = descriptor.set;
25101
- const bubbles = !hasConsumerStoppedPropagationRef.current;
25102
- if (prevChecked !== checked && setChecked) {
25103
- const event = new Event("click", {
25104
- bubbles
25105
- });
25106
- input.indeterminate = isIndeterminate(checked);
25107
- setChecked.call(input, isIndeterminate(checked) ? false : checked);
25108
- input.dispatchEvent(event);
25109
- }
25110
- }, [
25111
- bubbleInput,
25112
- prevChecked,
25113
- checked,
25114
- hasConsumerStoppedPropagationRef
25115
- ]);
25116
- const defaultCheckedRef = React__namespace.useRef(isIndeterminate(checked) ? false : checked);
25117
- return /* @__PURE__ */ jsxRuntime.jsx(Primitive.input, {
25118
- type: "checkbox",
25119
- "aria-hidden": true,
25120
- defaultChecked: defaultChecked ?? defaultCheckedRef.current,
25121
- required,
25122
- disabled,
25123
- name,
25124
- value,
25125
- form,
25126
- ...props,
25127
- tabIndex: -1,
25128
- ref: composedRefs,
25129
- style: {
25130
- ...props.style,
25131
- ...controlSize,
25132
- position: "absolute",
25133
- pointerEvents: "none",
25134
- opacity: 0,
25135
- margin: 0,
25136
- // We transform because the input is absolutely positioned but we have
25137
- // rendered it **after** the button. This pulls it back to sit on top
25138
- // of the button.
25139
- transform: "translateX(-100%)"
25140
- }
25141
- });
25142
- });
25143
- CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
25144
- function isFunction(value) {
25145
- return typeof value === "function";
25146
- }
25147
- function isIndeterminate(checked) {
25148
- return checked === "indeterminate";
25149
- }
25150
- function getState(checked) {
25151
- return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
25152
- }
25153
-
25154
- const CheckboxRoot = styled(Checkbox$1)`
25155
- display: flex;
25156
- align-items: center;
25157
- justify-content: center;
25158
- height: 1rem;
25159
- width: 1rem;
25160
- flex-shrink: 0;
25161
- border-radius: 0.125rem;
25162
- border: 1px solid #6366f1;
25163
- background-color: transparent;
25164
- outline: none;
25165
- transition: all 0.2s ease-in-out;
25166
-
25167
- &:focus-visible {
25168
- outline: none;
25169
- box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
25170
- }
25171
-
25172
- &:disabled {
25173
- cursor: not-allowed;
25174
- opacity: 0.5;
25175
- }
25176
-
25177
- &[data-state="checked"] {
25178
- background-color: #6366f1;
25179
- color: white;
25180
- }
25181
- `;
25182
- const CheckboxIndicator = styled(CheckboxIndicator$1)`
25183
- display: flex;
25184
- align-items: center;
25185
- justify-content: center;
25186
- color: currentColor;
25187
- `;
25188
- const CheckIcon = styled(Check)`
25189
- height: 1rem;
25190
- width: 1rem;
25191
- `;
25192
- const Checkbox = /*#__PURE__*/ React__namespace.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ React__namespace.createElement(CheckboxRoot, {
25193
- ref: ref,
25194
- ...props
25195
- }, /*#__PURE__*/ React__namespace.createElement(CheckboxIndicator, null, /*#__PURE__*/ React__namespace.createElement(CheckIcon, null))));
25196
- Checkbox.displayName = Checkbox$1.displayName;
25197
-
25198
25489
  function __insertCSS(code) {
25199
25490
  if (typeof document == 'undefined') return;
25200
25491
  let head = document.head || document.getElementsByTagName('head')[0];
@@ -26817,7 +27108,7 @@ const DrawerOverlay = /*#__PURE__*/ React__namespace.forwardRef(({ className, ..
26817
27108
  bottom: 0,
26818
27109
  left: 0,
26819
27110
  zIndex: 50,
26820
- backgroundColor: "rgba(0, 0, 0, 0.8)"
27111
+ backgroundColor: "rgba(0, 0, 0, 0.3)"
26821
27112
  },
26822
27113
  className: className,
26823
27114
  ...props
@@ -26876,7 +27167,183 @@ const DrawerDescription = /*#__PURE__*/ React__namespace.forwardRef(({ className
26876
27167
  DrawerDescription.displayName = Drawer$1.Description.displayName;
26877
27168
 
26878
27169
  const GlobalStyles = ()=>{
26879
- return null;
27170
+ const systemFontStack = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"';
27171
+ return /*#__PURE__*/ React.createElement(Global, {
27172
+ styles: css`
27173
+ * {
27174
+ box-sizing: border-box;
27175
+ border-color: #e5e7eb;
27176
+ font-family: ${systemFontStack};
27177
+ }
27178
+
27179
+ html,
27180
+ body {
27181
+ margin: 0;
27182
+ padding: 0;
27183
+ background-color: #ffffff;
27184
+ color: #1f2937;
27185
+ font-family: ${systemFontStack};
27186
+ line-height: 1.5;
27187
+ -webkit-font-smoothing: antialiased;
27188
+ -moz-osx-font-smoothing: grayscale;
27189
+ transition:
27190
+ background-color 0.2s ease-in-out,
27191
+ color 0.2s ease-in-out;
27192
+ }
27193
+
27194
+ /* Dark theme styles */
27195
+ html.dark,
27196
+ html.dark body {
27197
+ background-color: #0f172a;
27198
+ color: #f1f5f9;
27199
+ }
27200
+
27201
+ /* XYFlow overrides */
27202
+ .react-flow__edge {
27203
+ cursor: default !important;
27204
+ }
27205
+
27206
+ .react-flow__edge-path {
27207
+ cursor: default !important;
27208
+ }
27209
+
27210
+ .react-flow__edge-label {
27211
+ font-size: 10px;
27212
+ background: white;
27213
+ padding: 2px 4px;
27214
+ border-radius: 4px;
27215
+ border: 1px solid #e5e7eb;
27216
+ max-width: 150px;
27217
+ overflow: hidden;
27218
+ text-overflow: ellipsis;
27219
+ white-space: nowrap;
27220
+ }
27221
+
27222
+ /* Dark theme XYFlow overrides */
27223
+ html.dark .react-flow__edge-label {
27224
+ background: #1e293b;
27225
+ border: 1px solid #475569;
27226
+ color: #f1f5f9;
27227
+ }
27228
+
27229
+ /* Radix UI Select styles */
27230
+ [data-radix-select-trigger],
27231
+ .shadcn-select {
27232
+ display: flex;
27233
+ height: 2.5rem;
27234
+ width: 100%;
27235
+ align-items: center;
27236
+ justify-content: space-between;
27237
+ border-radius: 0.375rem;
27238
+ border: 1px solid #e5e7eb;
27239
+ background-color: #ffffff;
27240
+ padding: 0.5rem 0.75rem;
27241
+ font-size: 0.875rem;
27242
+ line-height: 1.25rem;
27243
+ outline: none;
27244
+ transition: all 0.2s ease-in-out;
27245
+ }
27246
+
27247
+ /* Dark theme select styles */
27248
+ html.dark [data-radix-select-trigger],
27249
+ html.dark .shadcn-select {
27250
+ border: 1px solid #475569;
27251
+ background-color: #1e293b;
27252
+ color: #f1f5f9;
27253
+ }
27254
+
27255
+ [data-radix-select-trigger]:focus,
27256
+ .shadcn-select:focus {
27257
+ outline: none;
27258
+ box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
27259
+ }
27260
+
27261
+ [data-radix-select-trigger]:disabled,
27262
+ .shadcn-select:disabled {
27263
+ cursor: not-allowed;
27264
+ opacity: 0.5;
27265
+ }
27266
+
27267
+ /* File selector refresh button styles */
27268
+ .file-selector-refresh-btn {
27269
+ padding: 0.5rem;
27270
+ border-radius: 0.375rem;
27271
+ border: 1px solid #e5e7eb;
27272
+ background-color: #ffffff;
27273
+ transition: all 0.2s ease-in-out;
27274
+ }
27275
+
27276
+ .file-selector-refresh-btn:hover {
27277
+ background-color: #f3f4f6;
27278
+ color: #374151;
27279
+ }
27280
+
27281
+ .file-selector-refresh-btn:disabled {
27282
+ opacity: 0.5;
27283
+ cursor: not-allowed;
27284
+ }
27285
+
27286
+ /* Dark theme file selector refresh button */
27287
+ html.dark .file-selector-refresh-btn {
27288
+ border: 1px solid #475569;
27289
+ background-color: #1e293b;
27290
+ color: #f1f5f9;
27291
+ }
27292
+
27293
+ html.dark .file-selector-refresh-btn:hover {
27294
+ background-color: #334155;
27295
+ color: #f1f5f9;
27296
+ }
27297
+
27298
+ /* CSS Variables for backward compatibility */
27299
+ :root {
27300
+ --background: #ffffff;
27301
+ --foreground: #1f2937;
27302
+ --card: #ffffff;
27303
+ --card-foreground: #1f2937;
27304
+ --popover: #ffffff;
27305
+ --popover-foreground: #1f2937;
27306
+ --primary: #6366f1;
27307
+ --primary-foreground: #ffffff;
27308
+ --secondary: #f3f4f6;
27309
+ --secondary-foreground: #1f2937;
27310
+ --muted: #f3f4f6;
27311
+ --muted-foreground: #6b7280;
27312
+ --accent: #f3f4f6;
27313
+ --accent-foreground: #1f2937;
27314
+ --destructive: #ef4444;
27315
+ --destructive-foreground: #ffffff;
27316
+ --border: #e5e7eb;
27317
+ --input: #e5e7eb;
27318
+ --ring: #6366f1;
27319
+ --radius: 0.5rem;
27320
+ }
27321
+
27322
+ /* Dark theme CSS variables */
27323
+ html.dark {
27324
+ --background: #0f172a;
27325
+ --foreground: #f1f5f9;
27326
+ --card: #1e293b;
27327
+ --card-foreground: #f1f5f9;
27328
+ --popover: #1e293b;
27329
+ --popover-foreground: #f1f5f9;
27330
+ --primary: #6366f1;
27331
+ --primary-foreground: #ffffff;
27332
+ --secondary: #334155;
27333
+ --secondary-foreground: #f1f5f9;
27334
+ --muted: #334155;
27335
+ --muted-foreground: #94a3b8;
27336
+ --accent: #334155;
27337
+ --accent-foreground: #f1f5f9;
27338
+ --destructive: #ef4444;
27339
+ --destructive-foreground: #ffffff;
27340
+ --border: #475569;
27341
+ --input: #475569;
27342
+ --ring: #6366f1;
27343
+ --radius: 0.5rem;
27344
+ }
27345
+ `
27346
+ });
26880
27347
  };
26881
27348
 
26882
27349
  /**
@@ -27018,7 +27485,6 @@ const GlobalStyles = ()=>{
27018
27485
  exports.AgenticFlowVisualizer = AgenticFlowVisualizer;
27019
27486
  exports.AnthropicIcon = AnthropicIcon;
27020
27487
  exports.Badge = Badge;
27021
- exports.Checkbox = Checkbox;
27022
27488
  exports.Drawer = Drawer;
27023
27489
  exports.Edge = Edge;
27024
27490
  exports.FileSelector = FileSelector;