@gram-ai/elements 1.20.1 → 1.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/bin/cli.js +14 -12
  2. package/dist/components/Chat/stories/ConnectionConfiguration.stories.d.ts +2 -2
  3. package/dist/components/Chat/stories/{ColorScheme.stories.d.ts → ErrorBoundary.stories.d.ts} +4 -4
  4. package/dist/components/Chat/stories/ToolApproval.stories.d.ts +2 -0
  5. package/dist/components/assistant-ui/error-boundary.d.ts +28 -0
  6. package/dist/components/ui/dialog.d.ts +1 -1
  7. package/dist/components/ui/tooltip.d.ts +3 -1
  8. package/dist/constants/tailwind.d.ts +1 -0
  9. package/dist/contexts/portal-container-context.d.ts +2 -0
  10. package/dist/contexts/portal-container.d.ts +7 -0
  11. package/dist/elements.cjs +1 -160
  12. package/dist/elements.cjs.map +1 -1
  13. package/dist/elements.css +1 -1
  14. package/dist/elements.js +11 -47174
  15. package/dist/elements.js.map +1 -1
  16. package/dist/hooks/usePortalContainer.d.ts +8 -0
  17. package/dist/hooks/useSession.d.ts +1 -2
  18. package/dist/index-B48xzOEm.cjs +169 -0
  19. package/dist/index-B48xzOEm.cjs.map +1 -0
  20. package/dist/{index-DaF9fGY-.js → index-BwdTXSZG.js} +4 -3
  21. package/dist/{index-DaF9fGY-.js.map → index-BwdTXSZG.js.map} +1 -1
  22. package/dist/index-C-iaUGd_.js +54687 -0
  23. package/dist/index-C-iaUGd_.js.map +1 -0
  24. package/dist/{index-B52U8PL6.cjs → index-D8g4LkEy.cjs} +3 -3
  25. package/dist/{index-B52U8PL6.cjs.map → index-D8g4LkEy.cjs.map} +1 -1
  26. package/dist/index.d.ts +3 -1
  27. package/dist/lib/auth.d.ts +2 -2
  28. package/dist/lib/errorTracking.config.d.ts +16 -0
  29. package/dist/lib/errorTracking.d.ts +24 -0
  30. package/dist/lib/tools.d.ts +3 -2
  31. package/dist/plugins.cjs +1 -1
  32. package/dist/plugins.js +1 -1
  33. package/dist/profiler-WPgSewiM.js +278 -0
  34. package/dist/profiler-WPgSewiM.js.map +1 -0
  35. package/dist/profiler-j7uDglf5.cjs +2 -0
  36. package/dist/profiler-j7uDglf5.cjs.map +1 -0
  37. package/dist/startRecording-Cahc4WH4.cjs +3 -0
  38. package/dist/startRecording-Cahc4WH4.cjs.map +1 -0
  39. package/dist/startRecording-DpwlHYPJ.js +1212 -0
  40. package/dist/startRecording-DpwlHYPJ.js.map +1 -0
  41. package/dist/types/index.d.ts +45 -15
  42. package/package.json +16 -2
  43. package/src/components/Chat/index.tsx +39 -3
  44. package/src/components/Chat/stories/Composer.stories.tsx +0 -7
  45. package/src/components/Chat/stories/ConnectionConfiguration.stories.tsx +7 -14
  46. package/src/components/Chat/stories/CustomComponents.stories.tsx +0 -7
  47. package/src/components/Chat/stories/Density.stories.tsx +0 -7
  48. package/src/components/Chat/stories/ErrorBoundary.stories.tsx +202 -0
  49. package/src/components/Chat/stories/FrontendTools.stories.tsx +0 -7
  50. package/src/components/Chat/stories/Model.stories.tsx +0 -7
  51. package/src/components/Chat/stories/Plugins.stories.tsx +0 -7
  52. package/src/components/Chat/stories/Radius.stories.tsx +0 -7
  53. package/src/components/Chat/stories/ToolApproval.stories.tsx +51 -7
  54. package/src/components/Chat/stories/Tools.stories.tsx +0 -7
  55. package/src/components/Chat/stories/Variants.stories.tsx +5 -2
  56. package/src/components/Chat/stories/Welcome.stories.tsx +0 -8
  57. package/src/components/assistant-ui/assistant-modal.tsx +4 -1
  58. package/src/components/assistant-ui/assistant-sidecar.tsx +5 -5
  59. package/src/components/assistant-ui/attachment.tsx +1 -4
  60. package/src/components/assistant-ui/error-boundary.tsx +119 -0
  61. package/src/components/assistant-ui/thread-list.tsx +3 -1
  62. package/src/components/assistant-ui/thread.tsx +7 -8
  63. package/src/components/ui/dialog.tsx +10 -1
  64. package/src/components/ui/popover.tsx +10 -12
  65. package/src/components/ui/tooltip.tsx +7 -2
  66. package/src/constants/tailwind.ts +2 -0
  67. package/src/contexts/ElementsProvider.tsx +29 -2
  68. package/src/contexts/portal-container-context.ts +4 -0
  69. package/src/contexts/portal-container.tsx +20 -0
  70. package/src/global.css +129 -16
  71. package/src/hooks/useAuth.ts +6 -16
  72. package/src/hooks/usePortalContainer.ts +16 -0
  73. package/src/hooks/useSession.ts +1 -3
  74. package/src/index.ts +5 -0
  75. package/src/lib/api.test.ts +5 -5
  76. package/src/lib/auth.ts +4 -4
  77. package/src/lib/errorTracking.config.ts +16 -0
  78. package/src/lib/errorTracking.ts +104 -0
  79. package/src/lib/tools.ts +37 -8
  80. package/src/types/index.ts +48 -16
  81. package/src/vite-env.d.ts +3 -0
  82. package/src/components/Chat/stories/ColorScheme.stories.tsx +0 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startRecording-DpwlHYPJ.js","sources":["../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMove.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMouseInteraction.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackScroll.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackViewportResize.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMediaInteraction.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackStyleSheet.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackFocus.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackFrustration.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackViewEnd.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationStats.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationScope.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackInput.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/trackers/trackMutation.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/startFullSnapshots.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/recordIds.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/nodeIds.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/record/record.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/segmentCollection/startSegmentTelemetry.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/domain/startRecordBridge.js","../../node_modules/.pnpm/@datadog+browser-rum@6.24.1/node_modules/@datadog/browser-rum/esm/boot/startRecording.js"],"sourcesContent":null,"names":["RecordType","NodeType","IncrementalSource","MouseInteractionType","MediaInteractionType","isTouchEvent","event","getEventTarget","isNodeShadowHost","TOLERANCE","isVisualViewportFactoredIn","visualViewport","convertMouseEventToLayoutCoordinates","clientX","clientY","normalized","getVisualViewport","assembleIncrementalSnapshot","source","data","timeStampNow","MOUSE_MOVE_OBSERVER_THRESHOLD","trackMove","configuration","scope","moveCb","updatePosition","cancelThrottle","throttle","target","id","coordinates","tryToComputeCoordinates","position","removeListener","addEventListeners","x","y","visualViewportX","visualViewportY","eventTypeToMouseInteraction","trackMouseInteraction","mouseInteractionCb","recordIds","handler","getNodePrivacyLevel","NodePrivacyLevel","type","interaction","record","SCROLL_OBSERVER_THRESHOLD","trackScroll","scrollCb","elementsScrollPositions","scrollPositions","getScrollY","getScrollX","addEventListener","VISUAL_VIEWPORT_OBSERVER_THRESHOLD","trackViewportResize","viewportResizeCb","viewportResizeSubscription","initViewportObservable","trackVisualViewportResize","visualViewportResizeCb","noop","updateDimension","trackMediaInteraction","mediaInteractionCb","trackStyleSheet","styleSheetCb","checkStyleSheetAndCallback","styleSheet","callback","instrumentationStoppers","instrumentMethod","rule","index","instrumentGroupingCSSRuleClass","cls","path","getPathToNestedCSSRule","stopper","currentRule","trackFocus","focusCb","trackFrustration","lifeCycle","frustrationCb","frustrationSubscription","_a","_b","RumEventType","ActionType","e","trackViewEnd","viewEndCb","viewEndSubscription","getElementInputValue","element","nodePrivacyLevel","tagName","value","shouldMaskNode","CENSORED_STRING_MARK","URL_IN_CSS_REF","ABSOLUTE_URL","DATA_URI","switchToAbsoluteUrl","cssText","cssHref","matchingSubstring","singleQuote","urlWrappedInSingleQuotes","doubleQuote","urlWrappedInDoubleQuotes","urlNotWrappedInQuotes","url","quote","makeUrlAbsolute","baseUrl","buildUrl","TAG_NAME_REGEX","getValidTagName","processedTagName","censoredImageForSize","width","height","serializeStyleSheets","cssStyleSheets","cssStyleSheet","rules","cssRule","MAX_ATTRIBUTE_VALUE_CHAR_LENGTH","serializeAttribute","attributeName","attributeValue","shouldMaskAttribute","image","CENSORED_IMG_MARK","sanitizeIfLongDataUrl","createSerializationStats","updateSerializationStats","stats","metric","aggregateSerializationStats","aggregateStats","serializeAttributes","options","safeAttrs","doc","i","formValue","optionElement","stylesheet","s","getCssRulesString","inputElement","mediaElement","scrollTop","scrollLeft","serializationContext","styleSheetCssText","isSafari","getCssRuleStringForSafari","getCssRuleString","isCSSStyleRule","escapeColon","isCSSImportRule","serializeNodeWithId","node","parentNodePrivacyLevel","serializedNode","serializeNode","serializedNodeWithId","serializeChildNodes","result","forEachChildNodes","childNode","serializedChildNode","serializeDocumentNode","serializeDocumentFragmentNode","serializeDocumentTypeNode","serializeElementNode","serializeTextNode","serializeCDataNode","document","isShadowRoot","isNodeShadowRoot","documentType","isSVG","isSVGElement","reducePrivacyLevel","getNodeSelfPrivacyLevel","PRIVACY_ATTR_NAME","PRIVACY_ATTR_VALUE_HIDDEN","attributes","childNodes","hasChildNodes","el","textNode","textContent","getTextContent","serializeDocument","serializationStart","elapsed","createSerializationScope","nodeIds","trackInput","inputCb","defaultPrivacyLevel","lastInputStateMap","stopEventListeners","onElementChange","stopPropertySetterInstrumentation","instrumentSetter","inputState","cbWithDedup","name","lastInputState","MUTATION_PROCESS_MAX_DELAY","MUTATION_PROCESS_MIN_DELAY","createMutationBatch","processMutationBatch","cancelScheduledFlush","pendingMutations","flush","throttledFlush","mutations","requestIdleCallback","trackMutation","mutationCallback","shadowRootsController","MutationObserver","getMutationObserverConstructor","mutationBatch","processMutations","observer","monitor","nodePrivacyLevelCache","mutation","removedNode","traverseRemovedShadowDom","filteredMutations","serializationStats","adds","removes","hasBeenSerialized","processChildListMutations","texts","processCharacterDataMutations","processAttributesMutations","addedAndMovedNodes","removedNodes","sortedAddedAndMovedNodes","sortAddedAndMovedNodes","serializedNodeIds","addedNodeMutations","parentNode","getParentNode","getNextSibling","removedNodeMutations","parent","parentId","nextSibling","textMutations","handledNodes","attributeMutations","handledElements","handledAttributes","emittedMutations","privacyLevel","transformedValue","inputValue","emittedMutation","nodes","a","b","shadowDomRemovedCallback","createElementsScrollPositions","scrollPositionsByElement","initShadowRootsController","controllerByShadowRoot","shadowRoot","mutationTracker","inputTracker","scrollTracker","entry","stop","startFullSnapshots","flushMutations","emit","takeFullSnapshot","timestamp","status","getViewportDimension","unsubscribe","view","initRecordIds","nextId","createNodeIds","nextNodeId","get","nodeId","current","emitAndComputeStats","sendToExtension","replayStats.addRecord","stopFullSnapshots","trackers","viewEndRecord","tracker","buildReplayPayload","metadata","rawSegmentBytesCount","formData","metadataAndSegmentSizes","serializedMetadataAndSegmentSizes","createSegment","context","creationReason","encoder","encodedBytesCount","viewId","indexInView","replayStats.getSegmentsCount","replayStats.addSegment","addRecord","prefix","additionalEncodedBytesCount","encoderResult","replayStats.addWroteData","SEGMENT_DURATION_LIMIT","ONE_SECOND","SEGMENT_BYTES_LIMIT","startSegmentCollection","sessionManager","viewHistory","httpRequest","doStartSegmentCollection","computeSegmentContext","getSegmentContext","state","unsubscribeViewCreated","flushSegment","unsubscribePageMayExit","pageMayExitEvent","flushReason","payload","isPageExitReason","clearTimeout","setTimeout","applicationId","session","viewContext","startSegmentTelemetry","telemetry","requestObservable","requestEvent","metrics","createSegmentMetrics","addTelemetryMetrics","bandwidthStats","startRecordBridge","bridge","getEventBridge","startRecording","cleanupTasks","reportError","error","addTelemetryDebug","replayRequest","createHttpRequest","canUseEventBridge","segmentCollection","segmentTelemetry","stopRecording","task"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
@@ -257,6 +257,28 @@ export interface ElementsConfig {
257
257
  * }
258
258
  */
259
259
  api?: ApiConfig;
260
+ /**
261
+ * Error tracking configuration.
262
+ * By default, errors are reported to help improve the Elements library.
263
+ *
264
+ * @example
265
+ * const config: ElementsConfig = {
266
+ * errorTracking: {
267
+ * enabled: false, // Opt out of error reporting
268
+ * },
269
+ * }
270
+ */
271
+ errorTracking?: ErrorTrackingConfigOption;
272
+ }
273
+ /**
274
+ * Configuration for error tracking.
275
+ */
276
+ export interface ErrorTrackingConfigOption {
277
+ /**
278
+ * Set to false to disable error reporting.
279
+ * @default true
280
+ */
281
+ enabled?: boolean;
260
282
  }
261
283
  /**
262
284
  * Base API configuration with the server URL.
@@ -291,37 +313,32 @@ export type SessionAuthConfig = {
291
313
  sessionFn: GetSessionFn;
292
314
  };
293
315
  /**
294
- * The API key auth config is used to authenticate the Elements library using an API key only.
295
- *
296
- * NOTE: This is not recommended for production use, and a warning
297
- * will be displayed in the chat interface if you use this config.
298
- * Define a session endpoint instead to avoid this warning.
316
+ * The static session auth config is used to authenticate the Elements library using a static session token only.
299
317
  *
300
318
  * @example
301
319
  * const config: ElementsConfig = {
302
320
  * api: {
303
- * UNSAFE_apiKey: 'your-api-key',
321
+ * sessionToken: 'your-session-token',
304
322
  * },
305
323
  * }
306
324
  */
307
- export type ApiKeyAuthConfig = {
325
+ export type StaticSessionAuthConfig = {
308
326
  /**
309
- * The API key to use if you haven't yet configured a session endpoint.
310
- * Do not use this in production.
327
+ * A static session token to use if you haven't yet configured a session endpoint.
311
328
  *
312
329
  * @example
313
330
  * const config: ElementsConfig = {
314
331
  * api: {
315
- * UNSAFE_apiKey: 'your-api-key',
332
+ * sessionToken: 'your-session-token',
316
333
  * },
317
334
  * }
318
335
  */
319
- UNSAFE_apiKey: string;
336
+ sessionToken: string;
320
337
  };
321
338
  /**
322
339
  * API configuration - can be just the URL, or URL with session auth, or URL with API key auth.
323
340
  */
324
- export type ApiConfig = BaseApiConfig | (BaseApiConfig & SessionAuthConfig) | (BaseApiConfig & ApiKeyAuthConfig);
341
+ export type ApiConfig = BaseApiConfig | (BaseApiConfig & SessionAuthConfig) | (BaseApiConfig & StaticSessionAuthConfig);
325
342
  /**
326
343
  * The LLM model to use for the Elements library.
327
344
  *
@@ -440,6 +457,9 @@ export interface ComponentOverrides {
440
457
  endIndex: number;
441
458
  }>>;
442
459
  }
460
+ export type ToolsRequiringApproval = string[] | (({ toolName }: {
461
+ toolName: string;
462
+ }) => boolean);
443
463
  /**
444
464
  * ToolsConfig is used to configure tool support in the Elements library.
445
465
  * At the moment, you can override the default React components used by
@@ -528,17 +548,27 @@ export interface ToolsConfig {
528
548
  frontendTools?: Record<string, AssistantTool>;
529
549
  /**
530
550
  * List of tool names that require confirmation from the end user before
531
- * being executed. The user can choose to approve once or approve for the
551
+ * being executed. A function can also be provided to dynamically determine if a tool requires approval.
552
+ * The user can choose to approve once or approve for the
532
553
  * entire session via the UI.
533
554
  *
534
- * @example
555
+ * @example Using an array of tool names
535
556
  * ```ts
536
557
  * tools: {
537
558
  * toolsRequiringApproval: ['delete_file', 'send_email'],
538
559
  * }
539
560
  * ```
561
+ *
562
+ * @example Using a function to dynamically determine if a tool requires approval
563
+ * ```ts
564
+ * tools: {
565
+ * toolsRequiringApproval: (toolName) => {
566
+ * return toolName.startsWith('protected_')
567
+ * },
568
+ * }
569
+ * ```
540
570
  */
541
- toolsRequiringApproval?: string[];
571
+ toolsRequiringApproval?: ToolsRequiringApproval;
542
572
  }
543
573
  export interface WelcomeConfig {
544
574
  /**
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gram-ai/elements",
3
3
  "description": "Gram Elements is a library of UI primitives for building chat-like experiences for MCP Servers.",
4
4
  "type": "module",
5
- "version": "1.20.1",
5
+ "version": "1.21.1",
6
6
  "main": "dist/index.js",
7
7
  "exports": {
8
8
  ".": {
@@ -85,6 +85,8 @@
85
85
  "@assistant-ui/react": "^0.11.0",
86
86
  "@assistant-ui/react-ai-sdk": "^1.1.16",
87
87
  "@assistant-ui/react-markdown": "^0.11.0",
88
+ "@chromatic-com/storybook": "^5.0.0",
89
+ "@datadog/browser-rum": "^6.24.1",
88
90
  "@openrouter/ai-sdk-provider": "^1.4.1",
89
91
  "@radix-ui/react-avatar": "^1.1.10",
90
92
  "@radix-ui/react-collapsible": "^1.1.12",
@@ -92,6 +94,7 @@
92
94
  "@radix-ui/react-popover": "^1.1.15",
93
95
  "@radix-ui/react-slot": "^1.2.3",
94
96
  "@radix-ui/react-tooltip": "^1.2.8",
97
+ "@storybook/addon-themes": "^10.1.11",
95
98
  "@tanstack/react-query": "5.90.10",
96
99
  "ai": "5.0.90",
97
100
  "assistant-stream": "^0.2.46",
@@ -100,6 +103,7 @@
100
103
  "lucide-react": "^0.544.0",
101
104
  "tailwind-merge": "^3.3.1",
102
105
  "tw-shimmer": "^0.4.0",
106
+ "vite-plugin-externalize-deps": "^0.10.0",
103
107
  "zod": "^4.1.13"
104
108
  },
105
109
  "devDependencies": {
@@ -112,6 +116,7 @@
112
116
  "@types/lodash.merge": "^4.6.9",
113
117
  "@types/node": "^24.10.1",
114
118
  "@vitejs/plugin-react": "^5.0.3",
119
+ "chromatic": "^13.3.5",
115
120
  "eslint": "^9.39.1",
116
121
  "eslint-config-prettier": "^10.1.8",
117
122
  "eslint-plugin-prettier": "^5.5.4",
@@ -120,6 +125,8 @@
120
125
  "eslint-plugin-unused-imports": "^4.3.0",
121
126
  "lodash.merge": "^4.6.2",
122
127
  "motion": "^12.23.14",
128
+ "msw": "^2.12.3",
129
+ "msw-storybook-addon": "^2.0.6",
123
130
  "prettier": "^3.7.4",
124
131
  "prettier-plugin-tailwindcss": "^0.7.2",
125
132
  "react": "^19.2.0",
@@ -133,9 +140,15 @@
133
140
  "typescript-eslint": "^8.48.1",
134
141
  "vite": "^7.1.6",
135
142
  "vite-plugin-dts": "^4.5.4",
143
+ "vite-plugin-turbosnap": "^1.0.3",
136
144
  "vitest": "^4.0.13",
137
145
  "zustand": "^5.0.8"
138
146
  },
147
+ "msw": {
148
+ "workerDirectory": [
149
+ ".storybook/public"
150
+ ]
151
+ },
139
152
  "scripts": {
140
153
  "build": "vite build",
141
154
  "test": "vitest run",
@@ -143,7 +156,8 @@
143
156
  "lint": "eslint src",
144
157
  "analyze": "pnpm dlx vite-bundle-visualizer",
145
158
  "storybook": "storybook dev -p 6006",
146
- "build-storybook": "storybook build",
159
+ "build-storybook": "storybook build --stats-json",
160
+ "chromatic": "chromatic --exit-zero-on-changes",
147
161
  "type-check": "tsc --noEmit",
148
162
  "docs": "typedoc",
149
163
  "docs:watch": "typedoc --watch",
@@ -1,25 +1,61 @@
1
1
  'use client'
2
2
 
3
+ import { useRef } from 'react'
3
4
  import { useElements } from '@/hooks/useElements'
4
5
  import { AssistantModal } from '../assistant-ui/assistant-modal'
5
6
  import { AssistantSidecar } from '../assistant-ui/assistant-sidecar'
7
+ import { ErrorBoundary } from '../assistant-ui/error-boundary'
6
8
  import { Thread } from '../assistant-ui/thread'
9
+ import { ROOT_SELECTOR } from '@/constants/tailwind'
10
+ import { PortalContainerProvider } from '@/contexts/portal-container'
7
11
 
8
12
  interface ChatProps {
9
13
  className?: string
10
14
  }
11
15
 
16
+ function RootWrapper({ children }: { children: React.ReactNode }) {
17
+ const containerRef = useRef<HTMLDivElement>(null)
18
+ return (
19
+ <div
20
+ ref={containerRef}
21
+ className={ROOT_SELECTOR}
22
+ style={{ height: 'inherit', width: 'inherit' }}
23
+ >
24
+ <PortalContainerProvider containerRef={containerRef}>
25
+ {children}
26
+ </PortalContainerProvider>
27
+ </div>
28
+ )
29
+ }
30
+
12
31
  export const Chat = ({ className }: ChatProps) => {
13
32
  const { config } = useElements()
14
33
 
15
34
  switch (config.variant) {
16
35
  case 'standalone':
17
- return <Thread className={className} />
36
+ // Standalone variant wraps Thread with ErrorBoundary at this level
37
+ return (
38
+ <ErrorBoundary>
39
+ <RootWrapper>
40
+ <Thread />
41
+ </RootWrapper>
42
+ </ErrorBoundary>
43
+ )
18
44
  case 'sidecar':
19
- return <AssistantSidecar className={className} />
45
+ // Sidecar has its own internal ErrorBoundary around Thread
46
+ return (
47
+ <RootWrapper>
48
+ <AssistantSidecar />
49
+ </RootWrapper>
50
+ )
20
51
 
21
52
  // If no variant is provided then fallback to the modal
53
+ // Modal has its own internal ErrorBoundary around Thread
22
54
  default:
23
- return <AssistantModal className={className} />
55
+ return (
56
+ <RootWrapper>
57
+ <AssistantModal className={className} />
58
+ </RootWrapper>
59
+ )
24
60
  }
25
61
  }
@@ -8,13 +8,6 @@ const meta: Meta<typeof Chat> = {
8
8
  parameters: {
9
9
  layout: 'fullscreen',
10
10
  },
11
- decorators: [
12
- (Story) => (
13
- <div className="m-auto flex h-screen w-full max-w-3xl flex-col">
14
- <Story />
15
- </div>
16
- ),
17
- ],
18
11
  } satisfies Meta<typeof Chat>
19
12
 
20
13
  export default meta
@@ -1,7 +1,7 @@
1
- import { Chat } from '..'
2
- import type { Meta, StoryFn } from '@storybook/react-vite'
3
- import { google } from '@ai-sdk/google'
4
1
  import { GetSessionFn } from '@/types'
2
+ import { google } from '@ai-sdk/google'
3
+ import type { Meta, StoryFn } from '@storybook/react-vite'
4
+ import { Chat } from '..'
5
5
 
6
6
  const meta: Meta<typeof Chat> = {
7
7
  title: 'Chat/Connection Configuration',
@@ -9,13 +9,6 @@ const meta: Meta<typeof Chat> = {
9
9
  parameters: {
10
10
  layout: 'fullscreen',
11
11
  },
12
- decorators: [
13
- (Story) => (
14
- <div className="m-auto flex h-screen w-full max-w-3xl flex-col">
15
- <Story />
16
- </div>
17
- ),
18
- ],
19
12
  } satisfies Meta<typeof Chat>
20
13
 
21
14
  export default meta
@@ -68,12 +61,12 @@ WithExplicitSessionAuth.parameters = {
68
61
 
69
62
  // NOTE: api key auth is currently non functional due to concerns with security
70
63
  // Update this story when api key auth is secure
71
- export const WithExplicitAPIKeyAuth: Story = () => <Chat />
72
- WithExplicitAPIKeyAuth.storyName = 'With Explicit API Key Auth'
73
- WithExplicitAPIKeyAuth.parameters = {
64
+ export const WithStaticSessionAuth: Story = () => <Chat />
65
+ WithStaticSessionAuth.storyName = 'With Static Session Auth'
66
+ WithStaticSessionAuth.parameters = {
74
67
  elements: {
75
68
  config: {
76
- api: { UNSAFE_apiKey: 'test' },
69
+ api: { sessionToken: 'test' },
77
70
  },
78
71
  },
79
72
  }
@@ -8,13 +8,6 @@ const meta: Meta<typeof Chat> = {
8
8
  parameters: {
9
9
  layout: 'fullscreen',
10
10
  },
11
- decorators: [
12
- (Story) => (
13
- <div className="m-auto flex h-screen w-full max-w-3xl flex-col">
14
- <Story />
15
- </div>
16
- ),
17
- ],
18
11
  } satisfies Meta<typeof Chat>
19
12
 
20
13
  export default meta
@@ -8,13 +8,6 @@ const meta: Meta<typeof Chat> = {
8
8
  parameters: {
9
9
  layout: 'fullscreen',
10
10
  },
11
- decorators: [
12
- (Story) => (
13
- <div className="m-auto flex h-screen w-full max-w-3xl flex-col">
14
- <Story />
15
- </div>
16
- ),
17
- ],
18
11
  } satisfies Meta<typeof Chat>
19
12
 
20
13
  export default meta
@@ -0,0 +1,202 @@
1
+ import type { Meta, StoryFn } from '@storybook/react-vite'
2
+ import {
3
+ createContext,
4
+ useContext,
5
+ useEffect,
6
+ useState,
7
+ type ComponentType,
8
+ type FC,
9
+ } from 'react'
10
+ import { Chat } from '..'
11
+ import { Button } from '../../ui/button'
12
+
13
+ const meta: Meta<typeof Chat> = {
14
+ title: 'Chat/ErrorBoundary',
15
+ component: Chat,
16
+ parameters: {
17
+ layout: 'fullscreen',
18
+ },
19
+ } satisfies Meta<typeof Chat>
20
+
21
+ export default meta
22
+
23
+ type Story = StoryFn<typeof Chat>
24
+
25
+ // Context to trigger errors from outside the component tree
26
+ const ErrorTriggerContext = createContext<{
27
+ shouldThrow: boolean
28
+ resetError: () => void
29
+ }>({
30
+ shouldThrow: false,
31
+ resetError: () => {},
32
+ })
33
+
34
+ // Component that throws when context says so - used to override ThreadWelcome
35
+ const ThrowingThreadWelcome: FC = () => {
36
+ const { shouldThrow, resetError } = useContext(ErrorTriggerContext)
37
+
38
+ // Reset the error state when this component unmounts (happens when "Try again" is clicked)
39
+ useEffect(() => {
40
+ return () => {
41
+ resetError()
42
+ }
43
+ }, [resetError])
44
+
45
+ if (shouldThrow) {
46
+ throw new Error('Simulated error: Failed to load chat interface')
47
+ }
48
+
49
+ // Render a simple welcome that matches the default styling
50
+ return (
51
+ <div className="my-auto flex w-full grow flex-col items-center justify-center gap-4 p-6">
52
+ <h2 className="text-foreground text-2xl font-semibold">Hello there!</h2>
53
+ <p className="text-muted-foreground">How can I help you today?</p>
54
+ <p className="text-muted-foreground/60 mt-4 text-sm">
55
+ Click &quot;Trigger Error&quot; above to see the error boundary
56
+ </p>
57
+ </div>
58
+ )
59
+ }
60
+
61
+ // Wrapper to provide the error trigger context
62
+ const ErrorTriggerProvider: FC<{
63
+ children: React.ReactNode
64
+ shouldThrow: boolean
65
+ onReset: () => void
66
+ }> = ({ children, shouldThrow, onReset }) => {
67
+ return (
68
+ <ErrorTriggerContext.Provider value={{ shouldThrow, resetError: onReset }}>
69
+ {children}
70
+ </ErrorTriggerContext.Provider>
71
+ )
72
+ }
73
+
74
+ // Control bar component for triggering errors
75
+ const ErrorControls: FC<{
76
+ onTriggerError: () => void
77
+ hasError: boolean
78
+ }> = ({ onTriggerError, hasError }) => (
79
+ <div className="bg-muted/50 border-border flex items-center gap-3 border-b px-4 py-2">
80
+ <span className="text-muted-foreground text-sm font-medium">
81
+ Error Boundary Demo:
82
+ </span>
83
+ <Button
84
+ size="sm"
85
+ variant="destructive"
86
+ onClick={onTriggerError}
87
+ disabled={hasError}
88
+ >
89
+ Trigger Error
90
+ </Button>
91
+ </div>
92
+ )
93
+
94
+ // Modal variant story
95
+ export const Modal: Story = () => {
96
+ const [shouldThrow, setShouldThrow] = useState(false)
97
+
98
+ return (
99
+ <ErrorTriggerProvider
100
+ shouldThrow={shouldThrow}
101
+ onReset={() => setShouldThrow(false)}
102
+ >
103
+ <div className="flex h-full w-full flex-col">
104
+ <ErrorControls
105
+ onTriggerError={() => setShouldThrow(true)}
106
+ hasError={shouldThrow}
107
+ />
108
+ <div className="flex h-full w-full flex-col gap-4 p-10">
109
+ <h1 className="text-2xl font-bold">Modal Variant</h1>
110
+ <p>
111
+ Click the button in the bottom right corner to open the chat, then
112
+ trigger an error.
113
+ </p>
114
+ <Chat />
115
+ </div>
116
+ </div>
117
+ </ErrorTriggerProvider>
118
+ )
119
+ }
120
+ Modal.parameters = {
121
+ elements: {
122
+ config: {
123
+ variant: 'widget',
124
+ modal: { defaultOpen: true },
125
+ components: {
126
+ ThreadWelcome: ThrowingThreadWelcome as ComponentType,
127
+ },
128
+ },
129
+ },
130
+ }
131
+
132
+ // Standalone variant story
133
+ export const Standalone: Story = () => {
134
+ const [shouldThrow, setShouldThrow] = useState(false)
135
+
136
+ return (
137
+ <ErrorTriggerProvider
138
+ shouldThrow={shouldThrow}
139
+ onReset={() => setShouldThrow(false)}
140
+ >
141
+ <div className="flex h-screen w-full flex-col">
142
+ <ErrorControls
143
+ onTriggerError={() => setShouldThrow(true)}
144
+ hasError={shouldThrow}
145
+ />
146
+ <div className="m-auto flex w-full max-w-3xl flex-1 flex-col">
147
+ <Chat />
148
+ </div>
149
+ </div>
150
+ </ErrorTriggerProvider>
151
+ )
152
+ }
153
+ Standalone.parameters = {
154
+ elements: {
155
+ config: {
156
+ variant: 'standalone',
157
+ components: {
158
+ ThreadWelcome: ThrowingThreadWelcome as ComponentType,
159
+ },
160
+ },
161
+ },
162
+ }
163
+
164
+ // Sidecar variant story
165
+ export const Sidecar: Story = () => {
166
+ const [shouldThrow, setShouldThrow] = useState(false)
167
+
168
+ return (
169
+ <ErrorTriggerProvider
170
+ shouldThrow={shouldThrow}
171
+ onReset={() => setShouldThrow(false)}
172
+ >
173
+ <div className="flex h-full w-full flex-col">
174
+ <ErrorControls
175
+ onTriggerError={() => setShouldThrow(true)}
176
+ hasError={shouldThrow}
177
+ />
178
+ <div className="mr-[400px] p-10">
179
+ <h1 className="text-2xl font-bold">Sidecar Variant</h1>
180
+ <p>
181
+ The sidebar is always visible on the right. Trigger an error to see
182
+ the error boundary.
183
+ </p>
184
+ <Chat />
185
+ </div>
186
+ </div>
187
+ </ErrorTriggerProvider>
188
+ )
189
+ }
190
+ Sidecar.parameters = {
191
+ elements: {
192
+ config: {
193
+ variant: 'sidecar',
194
+ sidecar: {
195
+ title: 'Error Boundary Demo',
196
+ },
197
+ components: {
198
+ ThreadWelcome: ThrowingThreadWelcome as ComponentType,
199
+ },
200
+ },
201
+ },
202
+ }