oboda-fiesta 1.3.13 → 1.3.20

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 (84) hide show
  1. package/dist/components/_chatbox/approval-card.js +2 -2
  2. package/dist/components/_chatbox/chat-message.d.ts.map +1 -1
  3. package/dist/components/_chatbox/chat-message.js +3 -3
  4. package/dist/components/_chatbox/chat-message.js.map +1 -1
  5. package/dist/components/_chatbox/chatbox-input.js +2 -2
  6. package/dist/components/_ogpt/action-button.d.ts +13 -0
  7. package/dist/components/_ogpt/action-button.d.ts.map +1 -0
  8. package/dist/components/_ogpt/action-button.js +54 -0
  9. package/dist/components/_ogpt/action-button.js.map +1 -0
  10. package/dist/components/_ogpt/button.d.ts +5 -0
  11. package/dist/components/_ogpt/button.d.ts.map +1 -0
  12. package/dist/components/_ogpt/button.js +49 -0
  13. package/dist/components/_ogpt/button.js.map +1 -0
  14. package/dist/components/_ogpt/cards.d.ts +11 -0
  15. package/dist/components/_ogpt/cards.d.ts.map +1 -0
  16. package/dist/components/_ogpt/cards.js +48 -0
  17. package/dist/components/_ogpt/cards.js.map +1 -0
  18. package/dist/components/_ogpt/context.d.ts +33 -0
  19. package/dist/components/_ogpt/context.d.ts.map +1 -0
  20. package/dist/components/_ogpt/context.js +79 -0
  21. package/dist/components/_ogpt/context.js.map +1 -0
  22. package/dist/components/_ogpt/header.d.ts +14 -0
  23. package/dist/components/_ogpt/header.d.ts.map +1 -0
  24. package/dist/components/_ogpt/header.js +88 -0
  25. package/dist/components/_ogpt/header.js.map +1 -0
  26. package/dist/components/_ogpt/index.d.ts +51 -0
  27. package/dist/components/_ogpt/index.d.ts.map +1 -0
  28. package/dist/components/_ogpt/index.js +100 -0
  29. package/dist/components/_ogpt/index.js.map +1 -0
  30. package/dist/components/_ogpt/input.d.ts +38 -0
  31. package/dist/components/_ogpt/input.d.ts.map +1 -0
  32. package/dist/components/_ogpt/input.js +153 -0
  33. package/dist/components/_ogpt/input.js.map +1 -0
  34. package/dist/components/_ogpt/messages.d.ts +39 -0
  35. package/dist/components/_ogpt/messages.d.ts.map +1 -0
  36. package/dist/components/_ogpt/messages.js +167 -0
  37. package/dist/components/_ogpt/messages.js.map +1 -0
  38. package/dist/components/_ogpt/part-element.d.ts +24 -0
  39. package/dist/components/_ogpt/part-element.d.ts.map +1 -0
  40. package/dist/components/_ogpt/part-element.js +60 -0
  41. package/dist/components/_ogpt/part-element.js.map +1 -0
  42. package/dist/components/_ogpt/root.d.ts +4 -0
  43. package/dist/components/_ogpt/root.d.ts.map +1 -0
  44. package/dist/components/_ogpt/root.js +308 -0
  45. package/dist/components/_ogpt/root.js.map +1 -0
  46. package/dist/components/_ogpt/sidebar.d.ts +7 -0
  47. package/dist/components/_ogpt/sidebar.d.ts.map +1 -0
  48. package/dist/components/_ogpt/sidebar.js +24 -0
  49. package/dist/components/_ogpt/sidebar.js.map +1 -0
  50. package/dist/components/_ogpt/state.d.ts +54 -0
  51. package/dist/components/_ogpt/state.d.ts.map +1 -0
  52. package/dist/components/_ogpt/state.js +112 -0
  53. package/dist/components/_ogpt/state.js.map +1 -0
  54. package/dist/components/_ogpt/tabs.d.ts +26 -0
  55. package/dist/components/_ogpt/tabs.d.ts.map +1 -0
  56. package/dist/components/_ogpt/tabs.js +94 -0
  57. package/dist/components/_ogpt/tabs.js.map +1 -0
  58. package/dist/components/_ogpt/thread-list.d.ts +15 -0
  59. package/dist/components/_ogpt/thread-list.d.ts.map +1 -0
  60. package/dist/components/_ogpt/thread-list.js +34 -0
  61. package/dist/components/_ogpt/thread-list.js.map +1 -0
  62. package/dist/components/_ogpt/threads.d.ts +9 -0
  63. package/dist/components/_ogpt/threads.d.ts.map +1 -0
  64. package/dist/components/_ogpt/threads.js +131 -0
  65. package/dist/components/_ogpt/threads.js.map +1 -0
  66. package/dist/components/_ogpt/types.d.ts +315 -0
  67. package/dist/components/_ogpt/types.d.ts.map +1 -0
  68. package/dist/components/_ogpt/types.js +3 -0
  69. package/dist/components/_ogpt/types.js.map +1 -0
  70. package/dist/components/_ogpt/utils.d.ts +3 -0
  71. package/dist/components/_ogpt/utils.d.ts.map +1 -0
  72. package/dist/components/_ogpt/utils.js +27 -0
  73. package/dist/components/_ogpt/utils.js.map +1 -0
  74. package/dist/components/ogpt.d.ts +2 -0
  75. package/dist/components/ogpt.d.ts.map +1 -0
  76. package/dist/components/ogpt.js +18 -0
  77. package/dist/components/ogpt.js.map +1 -0
  78. package/dist/components/oinsight-alert.js +11 -11
  79. package/dist/index.d.ts +1 -0
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +1 -0
  82. package/dist/index.js.map +1 -1
  83. package/package.json +15 -3
  84. package/styles.css +72 -46
@@ -10,7 +10,7 @@ const HIDDEN_PARAMS = ['requestContext', 'confirmed'];
10
10
  function ApprovalCard({ approval, onApprove, onDecline }) {
11
11
  const [expanded, setExpanded] = (0, react_1.useState)(false);
12
12
  const visibleParams = Object.entries(approval.parameters).filter(([key]) => !HIDDEN_PARAMS.includes(key));
13
- return ((0, jsx_runtime_1.jsxs)("div", { className: 'overflow-hidden rounded-xl border border-blue-200 bg-white', children: [(0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: () => setExpanded((prev) => !prev), className: 'flex w-full items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-gray-50', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ShieldCheck, { className: 'h-4 w-4 shrink-0 text-blue-500' }), (0, jsx_runtime_1.jsx)("span", { className: 'flex-1 text-sm font-medium text-gray-900', children: approval.description }), (0, jsx_runtime_1.jsx)("span", { className: 'flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-gray-200 bg-white transition-transform ' +
14
- (expanded ? 'rotate-180' : ''), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: 'h-3.5 w-3.5 text-gray-500' }) })] }), expanded && visibleParams.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: 'border-t border-gray-100 px-4 pb-2.5 pt-1.5', children: visibleParams.map(([key, value]) => ((0, jsx_runtime_1.jsxs)("div", { className: 'flex items-center justify-between py-0.5 text-sm', children: [(0, jsx_runtime_1.jsx)("span", { className: 'text-gray-500', children: (0, camel_to_title_case_1.camelToTitleCase)(key) }), (0, jsx_runtime_1.jsx)("span", { className: 'max-w-[60%] truncate font-medium text-gray-900', children: typeof value === 'string' ? value : JSON.stringify(value) })] }, key))) })), (0, jsx_runtime_1.jsxs)("div", { className: 'flex gap-2 border-t border-gray-100 px-4 py-2.5', children: [(0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: () => onApprove(approval.toolCallId), className: 'flex items-center gap-1.5 rounded-lg bg-blue-600 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-blue-700', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: 'h-3.5 w-3.5' }), "Approve"] }), (0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: () => onDecline(approval.toolCallId), className: 'flex items-center gap-1.5 rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-50', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: 'h-3.5 w-3.5' }), "Decline"] })] })] }));
13
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'overflow-hidden rounded-xl border border-info-200 bg-white', children: [(0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: () => setExpanded((prev) => !prev), className: 'flex w-full items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-gray-50', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ShieldCheck, { className: 'h-4 w-4 shrink-0 text-info-500' }), (0, jsx_runtime_1.jsx)("span", { className: 'flex-1 text-sm font-medium text-gray-900', children: approval.description }), (0, jsx_runtime_1.jsx)("span", { className: 'flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-gray-200 bg-white transition-transform ' +
14
+ (expanded ? 'rotate-180' : ''), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: 'h-3.5 w-3.5 text-gray-500' }) })] }), expanded && visibleParams.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: 'border-t border-gray-100 px-4 pb-2.5 pt-1.5', children: visibleParams.map(([key, value]) => ((0, jsx_runtime_1.jsxs)("div", { className: 'flex items-center justify-between py-0.5 text-sm', children: [(0, jsx_runtime_1.jsx)("span", { className: 'text-gray-500', children: (0, camel_to_title_case_1.camelToTitleCase)(key) }), (0, jsx_runtime_1.jsx)("span", { className: 'max-w-[60%] truncate font-medium text-gray-900', children: typeof value === 'string' ? value : JSON.stringify(value) })] }, key))) })), (0, jsx_runtime_1.jsxs)("div", { className: 'flex gap-2 border-t border-gray-100 px-4 py-2.5', children: [(0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: () => onApprove(approval.toolCallId), className: 'flex items-center gap-1.5 rounded-lg bg-info-600 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-info-700', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: 'h-3.5 w-3.5' }), "Approve"] }), (0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: () => onDecline(approval.toolCallId), className: 'flex items-center gap-1.5 rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-50', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: 'h-3.5 w-3.5' }), "Decline"] })] })] }));
15
15
  }
16
16
  //# sourceMappingURL=approval-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.d.ts","sourceRoot":"","sources":["../../../components/_chatbox/chat-message.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACtC,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,WAAW,EACX,cAAc,EACf,EAAE,yBAAyB,2CA2E3B"}
1
+ {"version":3,"file":"chat-message.d.ts","sourceRoot":"","sources":["../../../components/_chatbox/chat-message.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACtC,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,WAAW,EACX,cAAc,EACf,EAAE,yBAAyB,2CA4E3B"}
@@ -28,8 +28,8 @@ function ChatMessage({ id, sender, text, icon, iconUrl, isStreaming = false, def
28
28
  if (isStreamingPlaceholder) {
29
29
  return ((0, jsx_runtime_1.jsx)(streaming_loader_1.StreamingLoader, { streamingPhase: streamingPhase, currentToolCalls: currentToolCalls, showFinalizing: showFinalizing, className: "mb-0 flex-1 min-w-0" }));
30
30
  }
31
- return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('mb-2 overflow-hidden', isUser ? 'text-right' : 'text-left'), children: (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('inline-block max-w-[95%] rounded-xl px-4 py-2 break-words text-left overflow-hidden', isUser
32
- ? 'bg-[#EAF2FA] text-[#103459] rounded-br-none'
33
- : 'bg-white text-foreground', '[&_.markdown-body_ul]:list-disc [&_.markdown-body_ul]:pl-8', '[&_.markdown-body_ol]:list-decimal [&_.markdown-body_ol]:pl-8', '[&_.markdown-body_li]:list-item', '[&_.katex]:font-serif [&_.katex]:text-[1.05em] [&_.katex]:leading-[1.4] [&_.katex]:whitespace-normal [&_.katex]:break-words', '[&_.katex_.base]:whitespace-normal [&_.katex_.base]:w-auto', '[&_.katex-display]:block [&_.katex-display]:min-w-0 [&_.katex-display]:max-w-full [&_.katex-display]:text-left [&_.katex-display]:my-4 [&_.katex-display]:overflow-x-auto [&_.katex-display]:overflow-y-hidden', '[&_.katex-display::-webkit-scrollbar]:h-1', '[&_.katex-display::-webkit-scrollbar-track]:bg-black/5 [&_.katex-display::-webkit-scrollbar-track]:rounded-sm', '[&_.katex-display::-webkit-scrollbar-thumb]:bg-black/20 [&_.katex-display::-webkit-scrollbar-thumb]:rounded-sm', '[&_.katex-display]:scrollbar-thin [&_.katex-display]:scrollbar-thumb-black/20 [&_.katex-display]:scrollbar-track-black/5', '[&_.katex-display_>_.katex]:inline-block [&_.katex-display_>_.katex]:whitespace-normal'), children: !isUser ? ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-1", children: [assistantIcon, (0, jsx_runtime_1.jsx)("div", { className: "markdown-body", children: processedText ? ((0, jsx_runtime_1.jsx)(react_markdown_1.default, { remarkPlugins: [remark_gfm_1.default, remark_math_1.default], rehypePlugins: [rehype_katex_1.default], children: processedText })) : null })] })) : ((0, jsx_runtime_1.jsx)("div", { className: "markdown-body bg-[#EEF4FF]", children: (0, jsx_runtime_1.jsx)(react_markdown_1.default, { remarkPlugins: [remark_gfm_1.default, remark_math_1.default], rehypePlugins: [rehype_katex_1.default], children: processedText }) })) }) }));
31
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)('mb-2 overflow-hidden', isUser ? 'text-right' : 'text-left'), children: (0, jsx_runtime_1.jsx)("div", { "data-slot": "chat-message-bubble", className: (0, utils_1.cn)('inline-block max-w-[95%] rounded-xl px-4 py-2 wrap-anywhere text-left overflow-hidden', isUser
32
+ ? 'bg-chat-user text-chat-user-foreground rounded-br-none'
33
+ : 'bg-card text-card-foreground', '[&_.markdown-body_ul]:list-disc [&_.markdown-body_ul]:pl-8', '[&_.markdown-body_ol]:list-decimal [&_.markdown-body_ol]:pl-8', '[&_.markdown-body_li]:list-item', '[&_.katex]:font-serif [&_.katex]:text-[1.05em] [&_.katex]:leading-[1.4] [&_.katex]:whitespace-normal [&_.katex]:break-words', '[&_.katex_.base]:whitespace-normal [&_.katex_.base]:w-auto', '[&_.katex-display]:block [&_.katex-display]:min-w-0 [&_.katex-display]:max-w-full [&_.katex-display]:text-left [&_.katex-display]:my-4 [&_.katex-display]:overflow-x-auto [&_.katex-display]:overflow-y-hidden', '[&_.katex-display::-webkit-scrollbar]:h-1', '[&_.katex-display::-webkit-scrollbar-track]:bg-black/5 [&_.katex-display::-webkit-scrollbar-track]:rounded-sm', '[&_.katex-display::-webkit-scrollbar-thumb]:bg-black/20 [&_.katex-display::-webkit-scrollbar-thumb]:rounded-sm', '[&_.katex-display]:scrollbar-thin [&_.katex-display]:scrollbar-thumb-black/20 [&_.katex-display]:scrollbar-track-black/5', '[&_.katex-display_>_.katex]:inline-block [&_.katex-display_>_.katex]:whitespace-normal'), children: !isUser ? ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-1", children: [assistantIcon, (0, jsx_runtime_1.jsx)("div", { className: "markdown-body", children: processedText ? ((0, jsx_runtime_1.jsx)(react_markdown_1.default, { remarkPlugins: [remark_gfm_1.default, remark_math_1.default], rehypePlugins: [rehype_katex_1.default], children: processedText })) : null })] })) : ((0, jsx_runtime_1.jsx)("div", { className: "markdown-body", children: (0, jsx_runtime_1.jsx)(react_markdown_1.default, { remarkPlugins: [remark_gfm_1.default, remark_math_1.default], rehypePlugins: [rehype_katex_1.default], children: processedText }) })) }) }));
34
34
  }
35
35
  //# sourceMappingURL=chat-message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.js","sourceRoot":"","sources":["../../../components/_chatbox/chat-message.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;AAkBZ,kCAoFC;;AAnGD,2CAAoC;AACpC,oEAA0C;AAC1C,4DAAkC;AAClC,8DAAoC;AACpC,gEAAsC;AACtC,qEAAiE;AACjE,uCAAsC;AACtC,0DAAqD;AAQrD,SAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,WAAW,GAAG,KAAK,EACnB,WAAW,EACX,cAAc,EACY;IAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAChC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAA,oBAAU,GAAE,CAAA;IAE7F,MAAM,aAAa,GAAG,IAAI;SACvB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,mBAAmB;SAC1C,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,mBAAmB;SAC1C,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,kBAAkB;SACxC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA,CAAC,kBAAkB;IAE3C,MAAM,aAAa,GAAG,IAAA,yCAAmB,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;IAErF,MAAM,sBAAsB,GAAG,OAAO,CACpC,WAAW,IAAI,CAAC,aAAa,IAAI,kBAAkB,IAAI,IAAI,IAAI,EAAE,KAAK,kBAAkB,CACzF,CAAA;IAED,qFAAqF;IACrF,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,uBAAC,kCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,qBAAqB,GAC/B,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,gCACE,SAAS,EAAE,IAAA,UAAE,EACX,sBAAsB,EACtB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CACpC,YAED,gCACE,SAAS,EAAE,IAAA,UAAE,EACX,qFAAqF,EACrF,MAAM;gBACJ,CAAC,CAAC,6CAA6C;gBAC/C,CAAC,CAAC,0BAA0B,EAC9B,4DAA4D,EAC5D,+DAA+D,EAC/D,iCAAiC,EACjC,6HAA6H,EAC7H,4DAA4D,EAC5D,gNAAgN,EAChN,2CAA2C,EAC3C,+GAA+G,EAC/G,gHAAgH,EAChH,0HAA0H,EAC1H,wFAAwF,CACzF,YAEA,CAAC,MAAM,CAAC,CAAC,CAAC,CACT,iCAAK,SAAS,EAAC,qBAAqB,aACjC,aAAa,EACd,gCAAK,SAAS,EAAC,eAAe,YAC3B,aAAa,CAAC,CAAC,CAAC,CACf,uBAAC,wBAAa,IAAC,aAAa,EAAE,CAAC,oBAAS,EAAE,qBAAU,CAAC,EAAE,aAAa,EAAE,CAAC,sBAAW,CAAC,YAChF,aAAa,GACA,CACjB,CAAC,CAAC,CAAC,IAAI,GACJ,IACF,CACP,CAAC,CAAC,CAAC,CACF,gCAAK,SAAS,EAAC,4BAA4B,YACzC,uBAAC,wBAAa,IAAC,aAAa,EAAE,CAAC,oBAAS,EAAE,qBAAU,CAAC,EAAE,aAAa,EAAE,CAAC,sBAAW,CAAC,YAChF,aAAa,GACA,GACZ,CACP,GACG,GACF,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"chat-message.js","sourceRoot":"","sources":["../../../components/_chatbox/chat-message.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;AAkBZ,kCAqFC;;AApGD,2CAAoC;AACpC,oEAA0C;AAC1C,4DAAkC;AAClC,8DAAoC;AACpC,gEAAsC;AACtC,qEAAiE;AACjE,uCAAsC;AACtC,0DAAqD;AAQrD,SAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,WAAW,GAAG,KAAK,EACnB,WAAW,EACX,cAAc,EACY;IAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAChC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAA,oBAAU,GAAE,CAAA;IAE7F,MAAM,aAAa,GAAG,IAAI;SACvB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,mBAAmB;SAC1C,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,mBAAmB;SAC1C,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,kBAAkB;SACxC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA,CAAC,kBAAkB;IAE3C,MAAM,aAAa,GAAG,IAAA,yCAAmB,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;IAErF,MAAM,sBAAsB,GAAG,OAAO,CACpC,WAAW,IAAI,CAAC,aAAa,IAAI,kBAAkB,IAAI,IAAI,IAAI,EAAE,KAAK,kBAAkB,CACzF,CAAA;IAED,qFAAqF;IACrF,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,uBAAC,kCAAe,IACd,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,qBAAqB,GAC/B,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,gCACE,SAAS,EAAE,IAAA,UAAE,EACX,sBAAsB,EACtB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CACpC,YAED,6CACY,qBAAqB,EAC/B,SAAS,EAAE,IAAA,UAAE,EACX,uFAAuF,EACvF,MAAM;gBACJ,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,8BAA8B,EAClC,4DAA4D,EAC5D,+DAA+D,EAC/D,iCAAiC,EACjC,6HAA6H,EAC7H,4DAA4D,EAC5D,gNAAgN,EAChN,2CAA2C,EAC3C,+GAA+G,EAC/G,gHAAgH,EAChH,0HAA0H,EAC1H,wFAAwF,CACzF,YAEA,CAAC,MAAM,CAAC,CAAC,CAAC,CACT,iCAAK,SAAS,EAAC,qBAAqB,aACjC,aAAa,EACd,gCAAK,SAAS,EAAC,eAAe,YAC3B,aAAa,CAAC,CAAC,CAAC,CACf,uBAAC,wBAAa,IAAC,aAAa,EAAE,CAAC,oBAAS,EAAE,qBAAU,CAAC,EAAE,aAAa,EAAE,CAAC,sBAAW,CAAC,YAChF,aAAa,GACA,CACjB,CAAC,CAAC,CAAC,IAAI,GACJ,IACF,CACP,CAAC,CAAC,CAAC,CACF,gCAAK,SAAS,EAAC,eAAe,YAC5B,uBAAC,wBAAa,IAAC,aAAa,EAAE,CAAC,oBAAS,EAAE,qBAAU,CAAC,EAAE,aAAa,EAAE,CAAC,sBAAW,CAAC,YAChF,aAAa,GACA,GACZ,CACP,GACG,GACF,CACP,CAAA;AACH,CAAC"}
@@ -98,9 +98,9 @@ function ChatBoxInput({ onSendMessage, onCancelStreaming, className, requireAppr
98
98
  }
99
99
  };
100
100
  return ((0, jsx_runtime_1.jsx)("div", { className: 'ogpt-input-wrapper shrink-0 px-3 pb-2 pt-0.5', children: (0, jsx_runtime_1.jsx)("div", { className: 'relative rounded-xl border border-gray-100 bg-gray-50 shadow-sm transition-all focus-within:border-gray-200/60 focus-within:bg-white/50 focus-within:shadow-[0_0_0_2px_rgba(147,197,253,0.2)] hover:border-white/80 hover:bg-white/50', children: (0, jsx_runtime_1.jsx)("form", { onSubmit: handleSubmit, className: (0, utils_1.cn)('w-full flex-shrink-0 bg-transparent p-0', className), children: (0, jsx_runtime_1.jsx)("div", { className: 'flex w-full items-center', children: (0, jsx_runtime_1.jsxs)("div", { className: 'flex min-w-0 flex-1 flex-col items-end gap-2 rounded-xl bg-transparent p-[12px_16px_0] transition-all', children: [(0, jsx_runtime_1.jsx)("textarea", { ref: textareaRef, placeholder: 'Ask anything...', value: localInput, onChange: (e) => setLocalInput(e.target.value), onKeyDown: handleKeyDown, disabled: isStreaming, rows: 1, className: (0, utils_1.cn)('w-full resize-none overflow-y-auto border-none outline-none', 'min-h-[36px] max-h-[200px] py-0 text-[14px] leading-6', 'bg-transparent font-[inherit] text-[#374151]', 'disabled:cursor-not-allowed disabled:opacity-50') }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex w-full flex-row items-center justify-between gap-2', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex items-center gap-2 pb-3', children: [(0, jsx_runtime_1.jsxs)(dropdown_menu_1.DropdownMenu, { modal: false, children: [(0, jsx_runtime_1.jsx)(dropdown_menu_1.DropdownMenuTrigger, { asChild: true, children: (0, jsx_runtime_1.jsx)(button_1.Button, { variant: 'tertiary', className: 'flex h-8 w-8 items-center justify-center rounded-lg bg-white p-0 text-gray-400 shadow-sm hover:bg-gray-100 hover:text-gray-500', title: 'Settings', "aria-label": 'Settings', children: (0, jsx_runtime_1.jsx)(lucide_react_1.Settings2, { className: 'h-4 w-4' }) }) }), (0, jsx_runtime_1.jsx)(dropdown_menu_1.DropdownMenuPortal, { children: (0, jsx_runtime_1.jsxs)(dropdown_menu_1.DropdownMenuContent, { align: 'start', sideOffset: 4, children: [(0, jsx_runtime_1.jsxs)(dropdown_menu_1.DropdownMenuItem, { onClick: onToggleRequireApproval, onSelect: (e) => e.preventDefault(), className: 'flex items-center justify-between gap-4', children: [(0, jsx_runtime_1.jsx)("span", { children: "Approve tools before running" }), (0, jsx_runtime_1.jsx)("span", { className: 'inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors ' +
101
- (requireApproval ? 'bg-blue-600' : 'bg-gray-200'), children: (0, jsx_runtime_1.jsx)("span", { className: 'inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform ' +
101
+ (requireApproval ? 'bg-info-600' : 'bg-gray-200'), children: (0, jsx_runtime_1.jsx)("span", { className: 'inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform ' +
102
102
  (requireApproval ? 'translate-x-4.5' : 'translate-x-0.5') }) })] }), (0, jsx_runtime_1.jsxs)(dropdown_menu_1.DropdownMenuItem, { onClick: onToggleRequireClarification, onSelect: (e) => e.preventDefault(), className: 'flex items-center justify-between gap-4', children: [(0, jsx_runtime_1.jsx)("span", { children: "Show clarification options" }), (0, jsx_runtime_1.jsx)("span", { className: 'inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors ' +
103
- (requireClarification ? 'bg-blue-600' : 'bg-gray-200'), children: (0, jsx_runtime_1.jsx)("span", { className: 'inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform ' +
103
+ (requireClarification ? 'bg-info-600' : 'bg-gray-200'), children: (0, jsx_runtime_1.jsx)("span", { className: 'inline-block h-4 w-4 rounded-full bg-white shadow-sm transition-transform ' +
104
104
  (requireClarification ? 'translate-x-4.5' : 'translate-x-0.5') }) })] })] }) })] }), (0, jsx_runtime_1.jsxs)("button", { type: 'button', onClick: onToggleWebSearch, "aria-pressed": webSearchEnabled, className: 'inline-flex h-8 items-center gap-1.5 rounded-full border px-3 text-xs font-medium transition-all ' +
105
105
  (webSearchEnabled
106
106
  ? 'border-emerald-200 bg-emerald-50 text-emerald-700 shadow-sm hover:bg-emerald-100'
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { OGPTAsChildProps } from './part-element';
3
+ /** Props shared by every clickable `OGPT.*` part. */
4
+ export interface OGPTActionProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, OGPTAsChildProps {
5
+ }
6
+ /** Button that runs a part action after the caller's own `onClick`, unless the caller calls `preventDefault()`. */
7
+ export declare const ActionButton: React.ForwardRefExoticComponent<OGPTActionProps & {
8
+ action: () => void;
9
+ baseClassName: string;
10
+ slot: string;
11
+ } & React.RefAttributes<HTMLButtonElement>>;
12
+ export declare const ICON_ACTION_CLASS = "flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground";
13
+ //# sourceMappingURL=action-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-button.d.ts","sourceRoot":"","sources":["../../../components/_ogpt/action-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,qDAAqD;AACrD,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,gBAAgB;CAAG;AAE3G,mHAAmH;AACnH,eAAO,MAAM,YAAY;YAEK,MAAM,IAAI;mBAAiB,MAAM;UAAQ,MAAM;2CAqB3E,CAAA;AAEF,eAAO,MAAM,iBAAiB,qIACsG,CAAA"}
@@ -0,0 +1,54 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.ICON_ACTION_CLASS = exports.ActionButton = void 0;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ const React = __importStar(require("react"));
40
+ const react_slot_1 = require("@radix-ui/react-slot");
41
+ const utils_1 = require("../../lib/utils");
42
+ /** Button that runs a part action after the caller's own `onClick`, unless the caller calls `preventDefault()`. */
43
+ exports.ActionButton = React.forwardRef(function ActionButton({ asChild = false, action, baseClassName, slot, className, onClick, ...props }, ref) {
44
+ const Comp = asChild ? react_slot_1.Slot : 'button';
45
+ const handleClick = (event) => {
46
+ onClick?.(event);
47
+ if (!event.defaultPrevented) {
48
+ action();
49
+ }
50
+ };
51
+ return ((0, jsx_runtime_1.jsx)(Comp, { ref: ref, type: asChild ? undefined : 'button', "data-slot": slot, className: asChild ? className : (0, utils_1.cn)(baseClassName, className), onClick: handleClick, ...props }));
52
+ });
53
+ exports.ICON_ACTION_CLASS = 'flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground';
54
+ //# sourceMappingURL=action-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-button.js","sourceRoot":"","sources":["../../../components/_ogpt/action-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEZ,6CAA8B;AAC9B,qDAA2C;AAC3C,2CAAoC;AAMpC,mHAAmH;AACtG,QAAA,YAAY,GAAG,KAAK,CAAC,UAAU,CAG1C,SAAS,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACzG,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAEtC,MAAM,WAAW,GAAG,CAAC,KAA0C,EAAE,EAAE;QACjE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;QAChB,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAA;QACV,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,uBAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,eACzB,IAAI,EACf,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,UAAE,EAAC,aAAa,EAAE,SAAS,CAAC,EAC7D,OAAO,EAAE,WAAW,KAChB,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAC5B,kIAAkI,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { type OGPTActionProps } from './action-button';
3
+ /** Opens and closes the oGPT panel. Place it anywhere inside `OGPT.Root`. */
4
+ export declare const OGPTButton: React.ForwardRefExoticComponent<OGPTActionProps & React.RefAttributes<HTMLButtonElement>>;
5
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../components/_ogpt/button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAIpE,6EAA6E;AAC7E,eAAO,MAAM,UAAU,2FA8CrB,CAAA"}
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.OGPTButton = void 0;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ const React = __importStar(require("react"));
40
+ const lucide_react_1 = require("lucide-react");
41
+ const context_1 = require("./context");
42
+ const action_button_1 = require("./action-button");
43
+ const RING_GRADIENT = 'bg-[conic-gradient(var(--info-200),var(--info-300),var(--info-200))]';
44
+ /** Opens and closes the oGPT panel. Place it anywhere inside `OGPT.Root`. */
45
+ exports.OGPTButton = React.forwardRef(function OGPTButton({ asChild, children, ...props }, ref) {
46
+ const { open, toggleOpen } = (0, context_1.usePanel)('OGPT.Button');
47
+ return ((0, jsx_runtime_1.jsx)(action_button_1.ActionButton, { ref: ref, asChild: asChild, action: toggleOpen, slot: 'ogpt-button', "data-state": open ? 'open' : 'closed', baseClassName: 'group relative flex items-center justify-center rounded-full p-2 transition-all duration-300', "aria-label": open ? 'Close oGPT' : 'Open oGPT', "aria-expanded": open, ...props, children: asChild ? (children) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { "data-slot": 'ogpt-button-ring', className: `absolute inset-0 animate-spin rounded-full ${RING_GRADIENT} opacity-0 transition-opacity duration-300 [animation-duration:2s] group-hover:opacity-100` }), (0, jsx_runtime_1.jsx)("span", { "data-slot": 'ogpt-button-fill', className: 'bg-background group-hover:bg-info-50/30 absolute inset-0.5 rounded-full transition-colors duration-300' }), (0, jsx_runtime_1.jsx)("span", { "data-slot": 'ogpt-button-glow', className: `absolute -inset-1 rounded-full ${RING_GRADIENT} opacity-0 blur-md transition-opacity duration-300 [animation-duration:2s] group-hover:animate-spin group-hover:opacity-25` }), (0, jsx_runtime_1.jsx)("span", { "data-slot": 'ogpt-button-icon', className: 'relative z-10 flex transition-transform duration-300 group-hover:scale-110', children: children ?? (0, jsx_runtime_1.jsx)(lucide_react_1.Sparkles, { className: 'text-info-600 h-[22px] w-[22px]' }) })] })) }));
48
+ });
49
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../components/_ogpt/button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEZ,6CAA8B;AAC9B,+CAAuC;AACvC,uCAAoC;AACpC,mDAAoE;AAEpE,MAAM,aAAa,GAAG,sEAAsE,CAAA;AAE5F,6EAA6E;AAChE,QAAA,UAAU,GAAG,KAAK,CAAC,UAAU,CAAqC,SAAS,UAAU,CAChG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAC/B,GAAG;IAEH,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAQ,EAAC,aAAa,CAAC,CAAA;IAEpD,OAAO,CACL,uBAAC,4BAAY,IACX,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,gBACP,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EACpC,aAAa,EAAE,8FAA8F,gBACjG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,mBAC9B,IAAI,KACf,KAAK,YAER,OAAO,CAAC,CAAC,CAAC,CACT,QAAQ,CACT,CAAC,CAAC,CAAC,CACF,6DACE,8CACa,kBAAkB,EAC7B,SAAS,EAAE,8CAA8C,aAAa,4FAA4F,GAClK,EACF,8CACa,kBAAkB,EAC7B,SAAS,EACP,wGAAwG,GAE1G,EACF,8CACa,kBAAkB,EAC7B,SAAS,EAAE,kCAAkC,aAAa,4HAA4H,GACtL,EACF,8CACa,kBAAkB,EAC7B,SAAS,EAAE,4EAA4E,YAEtF,QAAQ,IAAI,uBAAC,uBAAQ,IAAC,SAAS,EAAE,iCAAiC,GAAI,GAClE,IACN,CACJ,GACY,CAChB,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { type OGPTAsChildProps } from './part-element';
3
+ /** Approve or decline a pending tool call. Renders after the answer when the stream asks for approval. */
4
+ export declare function OGPTApprovalCard({ asChild, children, ...props }: React.HTMLAttributes<HTMLDivElement> & OGPTAsChildProps): import("react/jsx-runtime").JSX.Element | null;
5
+ /** Clarification options after the answer, with a loader while the backend checks for them. */
6
+ export declare function OGPTClarificationCard({ asChild, className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & OGPTAsChildProps): import("react/jsx-runtime").JSX.Element | null;
7
+ /** Tool summary cards for the current turn. Renders after the answer. */
8
+ export declare function OGPTToolResults({ labels, asChild, className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & OGPTAsChildProps & {
9
+ labels?: Record<string, string>;
10
+ }): import("react/jsx-runtime").JSX.Element | null;
11
+ //# sourceMappingURL=cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../../components/_ogpt/cards.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjF,0GAA0G;AAC1G,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,gBAAgB,kDAYzD;AAED,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,gBAAgB,kDAwCzD;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,kDAoB/F"}
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.OGPTApprovalCard = OGPTApprovalCard;
5
+ exports.OGPTClarificationCard = OGPTClarificationCard;
6
+ exports.OGPTToolResults = OGPTToolResults;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const lucide_react_1 = require("lucide-react");
9
+ const utils_1 = require("../../lib/utils");
10
+ const approval_card_1 = require("../_chatbox/approval-card");
11
+ const clarification_card_1 = require("../_chatbox/clarification-card");
12
+ const tool_result_card_1 = require("../_chatbox/tool-result-card");
13
+ const context_1 = require("./context");
14
+ const part_element_1 = require("./part-element");
15
+ /** Approve or decline a pending tool call. Renders after the answer when the stream asks for approval. */
16
+ function OGPTApprovalCard({ asChild, children, ...props }) {
17
+ const { pendingApproval, isStreamActive, approve, decline } = (0, context_1.useTurn)('OGPT.ApprovalCard');
18
+ const { host } = (0, part_element_1.splitAsChild)(asChild, children, 'OGPT.ApprovalCard');
19
+ if (!pendingApproval || isStreamActive) {
20
+ return null;
21
+ }
22
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'div', host: host, "data-slot": 'ogpt-approval-card', ...props, children: (0, jsx_runtime_1.jsx)(approval_card_1.ApprovalCard, { approval: pendingApproval, onApprove: approve, onDecline: decline }) }));
23
+ }
24
+ /** Clarification options after the answer, with a loader while the backend checks for them. */
25
+ function OGPTClarificationCard({ asChild, className, children, ...props }) {
26
+ const { pendingClarification, detectingClarification, isStreamActive, answerClarification } = (0, context_1.useTurn)('OGPT.ClarificationCard');
27
+ const { host } = (0, part_element_1.splitAsChild)(asChild, children, 'OGPT.ClarificationCard');
28
+ if (isStreamActive) {
29
+ return null;
30
+ }
31
+ if (pendingClarification) {
32
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'div', host: host, "data-slot": 'ogpt-clarification-card', "data-state": 'ready', className: className, ...props, children: (0, jsx_runtime_1.jsx)(clarification_card_1.ClarificationCard, { clarification: pendingClarification, onSelect: answerClarification }) }));
33
+ }
34
+ if (detectingClarification) {
35
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'div', host: host, "data-slot": 'ogpt-clarification-card', "data-state": 'detecting', className: host ? className : (0, utils_1.cn)('border-border bg-background overflow-hidden rounded-xl border', className), ...props, children: (0, jsx_runtime_1.jsxs)("div", { className: 'flex items-center gap-2 px-4 py-3', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Loader2, { className: 'text-muted-foreground h-4 w-4 shrink-0 animate-spin' }), (0, jsx_runtime_1.jsx)("span", { className: 'text-muted-foreground text-sm', children: "Checking for options..." })] }) }));
36
+ }
37
+ return null;
38
+ }
39
+ /** Tool summary cards for the current turn. Renders after the answer. */
40
+ function OGPTToolResults({ labels, asChild, className, children, ...props }) {
41
+ const { toolDataResults, isStreamActive } = (0, context_1.useTurn)('OGPT.ToolResults');
42
+ const { host } = (0, part_element_1.splitAsChild)(asChild, children, 'OGPT.ToolResults');
43
+ if (isStreamActive || toolDataResults.length === 0) {
44
+ return null;
45
+ }
46
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'div', host: host, "data-slot": 'ogpt-tool-results', className: host ? className : (0, utils_1.cn)('flex flex-col gap-1.5', className), ...props, children: toolDataResults.map((result) => ((0, jsx_runtime_1.jsx)(tool_result_card_1.ToolResultCard, { result: result, description: labels?.[result.toolName] }, result.toolName))) }));
47
+ }
48
+ //# sourceMappingURL=cards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../../components/_ogpt/cards.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type Context } from 'react';
2
+ import type { ChatMessageProps } from '../_chatbox/types';
3
+ import type { OGPTContextValue, OGPTFeature, OGPTFeaturesValue, OGPTPanelValue, OGPTThreadsValue, OGPTTurnValue } from './types';
4
+ export declare const OGPTPanelContext: Context<OGPTPanelValue | null>;
5
+ export declare const OGPTFeaturesContext: Context<OGPTFeaturesValue | null>;
6
+ export declare const OGPTTurnContext: Context<OGPTTurnValue | null>;
7
+ export declare const OGPTThreadsContext: Context<OGPTThreadsValue | null>;
8
+ export declare const OGPTMessageContext: Context<ChatMessageProps | null>;
9
+ /** Read a required context, or throw an error that names the part and its parent. */
10
+ export declare function useRequiredContext<T>(context: Context<T | null>, part: string, parent: string): T;
11
+ /** Panel state of the nearest `OGPT.Root` for the named part. */
12
+ export declare function usePanel(part: string): OGPTPanelValue;
13
+ /** Feature state of the nearest `OGPT.Root` for the named part. */
14
+ export declare function useFeatures(part: string): OGPTFeaturesValue;
15
+ /** Turn state of the nearest `OGPT.Root` for the named part. */
16
+ export declare function useTurn(part: string): OGPTTurnValue;
17
+ /** Thread lists of the nearest `OGPT.Root` for the named part. */
18
+ export declare function useThreads(part: string): OGPTThreadsValue;
19
+ /** Open state, active tab, and avatar. Does not re-render while a response streams. */
20
+ export declare function useOGPTPanel(): OGPTPanelValue;
21
+ /** Feature flags and the toggle registry. Does not re-render while a response streams. */
22
+ export declare function useOGPTFeatures(): OGPTFeaturesValue;
23
+ /** Conversation state and actions: send, cancel, pending cards, and sources. */
24
+ export declare function useOGPTTurn(): OGPTTurnValue;
25
+ /** Saved and pinned thread lists with their load state and actions. */
26
+ export declare function useOGPTThreads(): OGPTThreadsValue;
27
+ /** All panel, feature, and turn state of the nearest `OGPT.Root`. Re-renders on every streamed token. */
28
+ export declare function useOGPT(): OGPTContextValue;
29
+ /** The message rendered by the nearest `OGPT.Messages` row. */
30
+ export declare function useOGPTMessage(): ChatMessageProps;
31
+ /** Register a feature with `OGPT.Root` while the calling part is mounted. */
32
+ export declare function useRegisterFeature(feature: OGPTFeature, part: string): void;
33
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../components/_ogpt/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACd,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,gBAAgB,gCAA6C,CAAA;AAC1E,eAAO,MAAM,mBAAmB,mCAAgD,CAAA;AAChF,eAAO,MAAM,eAAe,+BAA4C,CAAA;AACxE,eAAO,MAAM,kBAAkB,kCAA+C,CAAA;AAE9E,eAAO,MAAM,kBAAkB,kCAA+C,CAAA;AAE9E,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAMjG;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAErD;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAE3D;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAEnD;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEzD;AAED,uFAAuF;AACvF,wBAAgB,YAAY,IAAI,cAAc,CAE7C;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,IAAI,iBAAiB,CAEnD;AAED,gFAAgF;AAChF,wBAAgB,WAAW,IAAI,aAAa,CAE3C;AAED,uEAAuE;AACvE,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED,yGAAyG;AACzG,wBAAgB,OAAO,IAAI,gBAAgB,CAK1C;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,QAGpE"}
@@ -0,0 +1,79 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.OGPTMessageContext = exports.OGPTThreadsContext = exports.OGPTTurnContext = exports.OGPTFeaturesContext = exports.OGPTPanelContext = void 0;
5
+ exports.useRequiredContext = useRequiredContext;
6
+ exports.usePanel = usePanel;
7
+ exports.useFeatures = useFeatures;
8
+ exports.useTurn = useTurn;
9
+ exports.useThreads = useThreads;
10
+ exports.useOGPTPanel = useOGPTPanel;
11
+ exports.useOGPTFeatures = useOGPTFeatures;
12
+ exports.useOGPTTurn = useOGPTTurn;
13
+ exports.useOGPTThreads = useOGPTThreads;
14
+ exports.useOGPT = useOGPT;
15
+ exports.useOGPTMessage = useOGPTMessage;
16
+ exports.useRegisterFeature = useRegisterFeature;
17
+ const react_1 = require("react");
18
+ exports.OGPTPanelContext = (0, react_1.createContext)(null);
19
+ exports.OGPTFeaturesContext = (0, react_1.createContext)(null);
20
+ exports.OGPTTurnContext = (0, react_1.createContext)(null);
21
+ exports.OGPTThreadsContext = (0, react_1.createContext)(null);
22
+ exports.OGPTMessageContext = (0, react_1.createContext)(null);
23
+ /** Read a required context, or throw an error that names the part and its parent. */
24
+ function useRequiredContext(context, part, parent) {
25
+ const value = (0, react_1.useContext)(context);
26
+ if (value === null) {
27
+ throw new Error(`${part} must be used within ${parent}`);
28
+ }
29
+ return value;
30
+ }
31
+ /** Panel state of the nearest `OGPT.Root` for the named part. */
32
+ function usePanel(part) {
33
+ return useRequiredContext(exports.OGPTPanelContext, part, 'OGPT.Root');
34
+ }
35
+ /** Feature state of the nearest `OGPT.Root` for the named part. */
36
+ function useFeatures(part) {
37
+ return useRequiredContext(exports.OGPTFeaturesContext, part, 'OGPT.Root');
38
+ }
39
+ /** Turn state of the nearest `OGPT.Root` for the named part. */
40
+ function useTurn(part) {
41
+ return useRequiredContext(exports.OGPTTurnContext, part, 'OGPT.Root');
42
+ }
43
+ /** Thread lists of the nearest `OGPT.Root` for the named part. */
44
+ function useThreads(part) {
45
+ return useRequiredContext(exports.OGPTThreadsContext, part, 'OGPT.Root');
46
+ }
47
+ /** Open state, active tab, and avatar. Does not re-render while a response streams. */
48
+ function useOGPTPanel() {
49
+ return usePanel('useOGPTPanel');
50
+ }
51
+ /** Feature flags and the toggle registry. Does not re-render while a response streams. */
52
+ function useOGPTFeatures() {
53
+ return useFeatures('useOGPTFeatures');
54
+ }
55
+ /** Conversation state and actions: send, cancel, pending cards, and sources. */
56
+ function useOGPTTurn() {
57
+ return useTurn('useOGPTTurn');
58
+ }
59
+ /** Saved and pinned thread lists with their load state and actions. */
60
+ function useOGPTThreads() {
61
+ return useThreads('useOGPTThreads');
62
+ }
63
+ /** All panel, feature, and turn state of the nearest `OGPT.Root`. Re-renders on every streamed token. */
64
+ function useOGPT() {
65
+ const panel = usePanel('useOGPT');
66
+ const features = useFeatures('useOGPT');
67
+ const turn = useTurn('useOGPT');
68
+ return (0, react_1.useMemo)(() => ({ ...panel, ...features, ...turn }), [panel, features, turn]);
69
+ }
70
+ /** The message rendered by the nearest `OGPT.Messages` row. */
71
+ function useOGPTMessage() {
72
+ return useRequiredContext(exports.OGPTMessageContext, 'useOGPTMessage', 'OGPT.Messages');
73
+ }
74
+ /** Register a feature with `OGPT.Root` while the calling part is mounted. */
75
+ function useRegisterFeature(feature, part) {
76
+ const { registerFeature } = useFeatures(part);
77
+ (0, react_1.useEffect)(() => registerFeature(feature), [feature, registerFeature]);
78
+ }
79
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../components/_ogpt/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { type OGPTActionProps } from './action-button';
3
+ import { type OGPTAsChildProps } from './part-element';
4
+ /** Top bar of the panel. Renders `Title`, `NewChatButton`, and `CloseButton` when it has no children. */
5
+ export declare function OGPTHeader({ asChild, className, children, ...props }: React.HTMLAttributes<HTMLDivElement> & OGPTAsChildProps): import("react/jsx-runtime").JSX.Element;
6
+ /** Panel title. Shows its children on the chat tab and the tab name on other tabs. */
7
+ export declare function OGPTTitle({ asChild, className, children, ...props }: React.HTMLAttributes<HTMLHeadingElement> & OGPTAsChildProps): import("react/jsx-runtime").JSX.Element;
8
+ /** Small label next to the title, such as "Alpha". */
9
+ export declare function OGPTBadge({ asChild, className, children, ...props }: React.HTMLAttributes<HTMLSpanElement> & OGPTAsChildProps): import("react/jsx-runtime").JSX.Element;
10
+ /** Clears the chat and starts a new thread. Shows on the chat tab only. */
11
+ export declare const OGPTNewChatButton: React.ForwardRefExoticComponent<OGPTActionProps & React.RefAttributes<HTMLButtonElement>>;
12
+ /** Closes the panel. */
13
+ export declare const OGPTCloseButton: React.ForwardRefExoticComponent<OGPTActionProps & React.RefAttributes<HTMLButtonElement>>;
14
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../components/_ogpt/header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvF,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAQjF,yGAAyG;AACzG,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,gBAAgB,2CAyBzD;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,QAAqB,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,2CAe7D;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,gBAAgB,2CAmB1D;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,2FAwB5B,CAAA;AAEF,wBAAwB;AACxB,eAAO,MAAM,eAAe,2FAmB1B,CAAA"}
@@ -0,0 +1,88 @@
1
+ 'use client';
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.OGPTCloseButton = exports.OGPTNewChatButton = void 0;
38
+ exports.OGPTHeader = OGPTHeader;
39
+ exports.OGPTTitle = OGPTTitle;
40
+ exports.OGPTBadge = OGPTBadge;
41
+ const jsx_runtime_1 = require("react/jsx-runtime");
42
+ const React = __importStar(require("react"));
43
+ const lucide_react_1 = require("lucide-react");
44
+ const utils_1 = require("../../lib/utils");
45
+ const context_1 = require("./context");
46
+ const action_button_1 = require("./action-button");
47
+ const part_element_1 = require("./part-element");
48
+ const TAB_TITLES = {
49
+ history: 'History',
50
+ pinned: 'Pinned'
51
+ };
52
+ /** Top bar of the panel. Renders `Title`, `NewChatButton`, and `CloseButton` when it has no children. */
53
+ function OGPTHeader({ asChild, className, children, ...props }) {
54
+ (0, context_1.usePanel)('OGPT.Header');
55
+ const { host, content } = (0, part_element_1.splitAsChild)(asChild, children, 'OGPT.Header');
56
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'div', host: host, "data-slot": 'ogpt-header', className: host
57
+ ? className
58
+ : (0, utils_1.cn)('border-border bg-background flex shrink-0 items-center gap-1 border-b px-4 py-2.5', className), ...props, children: content ?? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(OGPTTitle, {}), (0, jsx_runtime_1.jsx)(exports.OGPTNewChatButton, {}), (0, jsx_runtime_1.jsx)(exports.OGPTCloseButton, {})] })) }));
59
+ }
60
+ /** Panel title. Shows its children on the chat tab and the tab name on other tabs. */
61
+ function OGPTTitle({ asChild, className, children = 'Ask oGPT', ...props }) {
62
+ const { activeTab } = (0, context_1.usePanel)('OGPT.Title');
63
+ const { host, content } = (0, part_element_1.splitAsChild)(asChild, children, 'OGPT.Title');
64
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'h2', host: host, "data-slot": 'ogpt-title', className: host ? className : (0, utils_1.cn)('mr-auto flex items-center gap-2 text-base font-semibold', className), ...props, children: activeTab === 'chat' ? content : TAB_TITLES[activeTab] }));
65
+ }
66
+ /** Small label next to the title, such as "Alpha". */
67
+ function OGPTBadge({ asChild, className, children, ...props }) {
68
+ (0, context_1.usePanel)('OGPT.Badge');
69
+ const { host, content } = (0, part_element_1.splitAsChild)(asChild, children, 'OGPT.Badge');
70
+ return ((0, jsx_runtime_1.jsx)(part_element_1.PartElement, { as: 'span', host: host, "data-slot": 'ogpt-badge', className: host
71
+ ? className
72
+ : (0, utils_1.cn)('bg-info-100 text-info-600 rounded-md px-1.5 py-0.5 text-[10px] font-semibold tracking-wide', className), ...props, children: content }));
73
+ }
74
+ /** Clears the chat and starts a new thread. Shows on the chat tab only. */
75
+ exports.OGPTNewChatButton = React.forwardRef(function OGPTNewChatButton({ children, ...props }, ref) {
76
+ const { activeTab } = (0, context_1.usePanel)('OGPT.NewChatButton');
77
+ const { newChat } = (0, context_1.useTurn)('OGPT.NewChatButton');
78
+ if (activeTab !== 'chat') {
79
+ return null;
80
+ }
81
+ return ((0, jsx_runtime_1.jsx)(action_button_1.ActionButton, { ref: ref, action: newChat, slot: 'ogpt-new-chat-button', baseClassName: action_button_1.ICON_ACTION_CLASS, title: 'New chat', "aria-label": 'New chat', ...props, children: children ?? (0, jsx_runtime_1.jsx)(lucide_react_1.SquarePen, { className: 'h-4 w-4' }) }));
82
+ });
83
+ /** Closes the panel. */
84
+ exports.OGPTCloseButton = React.forwardRef(function OGPTCloseButton({ children, ...props }, ref) {
85
+ const { setOpen } = (0, context_1.usePanel)('OGPT.CloseButton');
86
+ return ((0, jsx_runtime_1.jsx)(action_button_1.ActionButton, { ref: ref, action: () => setOpen(false), slot: 'ogpt-close-button', baseClassName: action_button_1.ICON_ACTION_CLASS, title: 'Close', "aria-label": 'Close chat', ...props, children: children ?? (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: 'h-4 w-4' }) }));
87
+ });
88
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../components/_ogpt/header.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { OGPTRoot } from './root';
2
+ import { OGPTButton } from './button';
3
+ import { OGPTSidebar, OGPTMain } from './sidebar';
4
+ import { OGPTHeader, OGPTTitle, OGPTBadge, OGPTNewChatButton, OGPTCloseButton } from './header';
5
+ import { OGPTTabBar, OGPTChatTab, OGPTHistoryTab, OGPTPinnedTab, OGPTChatView, OGPTHistoryView, OGPTPinnedView } from './tabs';
6
+ import { OGPTMessages, OGPTPerMessage, OGPTSources, OGPTEmptyState, OGPTGreeting, OGPTSuggestions } from './messages';
7
+ import { OGPTApprovalCard, OGPTClarificationCard, OGPTToolResults } from './cards';
8
+ import { OGPTInput, OGPTSendButton, OGPTSettings, OGPTApprovalToggle, OGPTClarificationToggle, OGPTWebSearchToggle } from './input';
9
+ export * from './types';
10
+ export { useOGPT, useOGPTMessage, useOGPTPanel, useOGPTFeatures, useOGPTTurn, useOGPTThreads } from './context';
11
+ export type { OGPTActionProps } from './action-button';
12
+ export type { OGPTAsChildProps } from './part-element';
13
+ export type { OGPTTabProps } from './tabs';
14
+ export type { OGPTGreetingProps } from './messages';
15
+ export type { OGPTInputProps, OGPTSendButtonProps, OGPTSettingsProps, OGPTToggleProps } from './input';
16
+ export { OGPTRoot, OGPTButton, OGPTSidebar, OGPTMain, OGPTHeader, OGPTTitle, OGPTBadge, OGPTNewChatButton, OGPTCloseButton, OGPTTabBar, OGPTChatTab, OGPTHistoryTab, OGPTPinnedTab, OGPTChatView, OGPTHistoryView, OGPTPinnedView, OGPTMessages, OGPTPerMessage, OGPTSources, OGPTEmptyState, OGPTGreeting, OGPTSuggestions, OGPTApprovalCard, OGPTClarificationCard, OGPTToolResults, OGPTInput, OGPTSendButton, OGPTSettings, OGPTApprovalToggle, OGPTClarificationToggle, OGPTWebSearchToggle };
17
+ /** oGPT compound parts. Compose them inside `OGPT.Root`. */
18
+ export declare const OGPT: {
19
+ Root: typeof OGPTRoot;
20
+ Button: import("react").ForwardRefExoticComponent<import("./action-button").OGPTActionProps & import("react").RefAttributes<HTMLButtonElement>>;
21
+ Sidebar: typeof OGPTSidebar;
22
+ Main: typeof OGPTMain;
23
+ Header: typeof OGPTHeader;
24
+ Title: typeof OGPTTitle;
25
+ Badge: typeof OGPTBadge;
26
+ NewChatButton: import("react").ForwardRefExoticComponent<import("./action-button").OGPTActionProps & import("react").RefAttributes<HTMLButtonElement>>;
27
+ CloseButton: import("react").ForwardRefExoticComponent<import("./action-button").OGPTActionProps & import("react").RefAttributes<HTMLButtonElement>>;
28
+ TabBar: typeof OGPTTabBar;
29
+ ChatTab: typeof OGPTChatTab;
30
+ HistoryTab: typeof OGPTHistoryTab;
31
+ PinnedTab: typeof OGPTPinnedTab;
32
+ ChatView: typeof OGPTChatView;
33
+ HistoryView: typeof OGPTHistoryView;
34
+ PinnedView: typeof OGPTPinnedView;
35
+ Messages: typeof OGPTMessages;
36
+ PerMessage: typeof OGPTPerMessage;
37
+ Sources: typeof OGPTSources;
38
+ EmptyState: typeof OGPTEmptyState;
39
+ Greeting: typeof OGPTGreeting;
40
+ Suggestions: typeof OGPTSuggestions;
41
+ ApprovalCard: typeof OGPTApprovalCard;
42
+ ClarificationCard: typeof OGPTClarificationCard;
43
+ ToolResults: typeof OGPTToolResults;
44
+ Input: typeof OGPTInput;
45
+ SendButton: typeof OGPTSendButton;
46
+ Settings: typeof OGPTSettings;
47
+ ApprovalToggle: typeof OGPTApprovalToggle;
48
+ ClarificationToggle: typeof OGPTClarificationToggle;
49
+ WebSearchToggle: typeof OGPTWebSearchToggle;
50
+ };
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/_ogpt/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/F,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACf,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACrH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAClF,OAAO,EACL,SAAS,EACT,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAEhB,cAAc,SAAS,CAAA;AACvB,OAAO,EACL,OAAO,EACP,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACf,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACtG,OAAO,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACpB,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgChB,CAAA"}