@copilotkit/react-ui 0.9.0-alpha.6 → 0.9.0-alpha.7

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 (143) hide show
  1. package/.turbo/turbo-build.log +139 -157
  2. package/CHANGELOG.md +10 -0
  3. package/dist/chunk-2NO6SF5H.mjs +53 -0
  4. package/dist/chunk-2NO6SF5H.mjs.map +1 -0
  5. package/dist/chunk-6LAC5RA2.mjs +28 -0
  6. package/dist/chunk-6LAC5RA2.mjs.map +1 -0
  7. package/dist/chunk-6LRNF2VU.mjs +12 -0
  8. package/dist/chunk-6LRNF2VU.mjs.map +1 -0
  9. package/dist/chunk-6UJWRTL6.mjs +45 -0
  10. package/dist/chunk-6UJWRTL6.mjs.map +1 -0
  11. package/dist/chunk-7KPMJBGH.mjs +48 -0
  12. package/dist/chunk-7KPMJBGH.mjs.map +1 -0
  13. package/dist/chunk-7NSRDJ5C.mjs +3 -0
  14. package/dist/chunk-7NSRDJ5C.mjs.map +1 -0
  15. package/dist/chunk-APH6ZQHG.mjs +69 -0
  16. package/dist/chunk-APH6ZQHG.mjs.map +1 -0
  17. package/dist/chunk-BIPCPNHG.mjs +18 -0
  18. package/dist/chunk-BIPCPNHG.mjs.map +1 -0
  19. package/dist/chunk-BS6RR2DJ.mjs +25 -0
  20. package/dist/chunk-BS6RR2DJ.mjs.map +1 -0
  21. package/dist/chunk-DOMJCSI6.mjs +26 -0
  22. package/dist/chunk-DOMJCSI6.mjs.map +1 -0
  23. package/dist/chunk-H4VKQGVU.mjs +3 -0
  24. package/dist/chunk-H4VKQGVU.mjs.map +1 -0
  25. package/dist/chunk-HKSY5T7Y.mjs +140 -0
  26. package/dist/chunk-HKSY5T7Y.mjs.map +1 -0
  27. package/dist/chunk-I2AB5FK4.mjs +123 -0
  28. package/dist/chunk-I2AB5FK4.mjs.map +1 -0
  29. package/dist/chunk-IU3WTXLQ.mjs +3 -0
  30. package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
  31. package/dist/chunk-KR7MH7XO.mjs +481 -0
  32. package/dist/chunk-KR7MH7XO.mjs.map +1 -0
  33. package/dist/chunk-KXJV37FS.mjs +33 -0
  34. package/dist/chunk-KXJV37FS.mjs.map +1 -0
  35. package/dist/chunk-LMCFSE4V.mjs +29 -0
  36. package/dist/chunk-LMCFSE4V.mjs.map +1 -0
  37. package/dist/chunk-MC6KTH4X.mjs +12 -0
  38. package/dist/chunk-MC6KTH4X.mjs.map +1 -0
  39. package/dist/chunk-MRXNTQOX.mjs +55 -0
  40. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  41. package/dist/chunk-N7KB3Z57.mjs +23 -0
  42. package/dist/chunk-N7KB3Z57.mjs.map +1 -0
  43. package/dist/chunk-RSONJDLO.mjs +28 -0
  44. package/dist/chunk-RSONJDLO.mjs.map +1 -0
  45. package/dist/chunk-TUPGAO7T.mjs +72 -0
  46. package/dist/chunk-TUPGAO7T.mjs.map +1 -0
  47. package/dist/chunk-TVTG3V4F.mjs +40 -0
  48. package/dist/chunk-TVTG3V4F.mjs.map +1 -0
  49. package/dist/chunk-U6NJWGTV.mjs +3 -0
  50. package/dist/chunk-U6NJWGTV.mjs.map +1 -0
  51. package/dist/chunk-UKKJ6H2K.mjs +90 -0
  52. package/dist/chunk-UKKJ6H2K.mjs.map +1 -0
  53. package/dist/chunk-V6QYUEJR.mjs +47 -0
  54. package/dist/chunk-V6QYUEJR.mjs.map +1 -0
  55. package/dist/chunk-VSNDSL6W.mjs +74 -0
  56. package/dist/chunk-VSNDSL6W.mjs.map +1 -0
  57. package/dist/chunk-ZB6JHNDT.mjs +75 -0
  58. package/dist/chunk-ZB6JHNDT.mjs.map +1 -0
  59. package/dist/components/chat-components/chat-list.mjs +12 -488
  60. package/dist/components/chat-components/chat-list.mjs.map +1 -1
  61. package/dist/components/chat-components/chat-message-actions.mjs +7 -184
  62. package/dist/components/chat-components/chat-message-actions.mjs.map +1 -1
  63. package/dist/components/chat-components/chat-message.mjs +10 -440
  64. package/dist/components/chat-components/chat-message.mjs.map +1 -1
  65. package/dist/components/chat-components/chat-panel.mjs +9 -334
  66. package/dist/components/chat-components/chat-panel.mjs.map +1 -1
  67. package/dist/components/chat-components/chat-scroll-anchor.mjs +4 -48
  68. package/dist/components/chat-components/chat-scroll-anchor.mjs.map +1 -1
  69. package/dist/components/chat-components/clear-history.mjs +26 -268
  70. package/dist/components/chat-components/clear-history.mjs.map +1 -1
  71. package/dist/components/chat-components/copilot-chat.mjs +21 -931
  72. package/dist/components/chat-components/copilot-chat.mjs.map +1 -1
  73. package/dist/components/chat-components/default-empty-screen.mjs +7 -206
  74. package/dist/components/chat-components/default-empty-screen.mjs.map +1 -1
  75. package/dist/components/chat-components/external-link.mjs +3 -31
  76. package/dist/components/chat-components/external-link.mjs.map +1 -1
  77. package/dist/components/chat-components/markdown.mjs +3 -10
  78. package/dist/components/chat-components/markdown.mjs.map +1 -1
  79. package/dist/components/chat-components/prompt-form.mjs +8 -246
  80. package/dist/components/chat-components/prompt-form.mjs.map +1 -1
  81. package/dist/components/chat-components/theme-toggle.mjs +15 -133
  82. package/dist/components/chat-components/theme-toggle.mjs.map +1 -1
  83. package/dist/components/chat-components/toaster.mjs +3 -6
  84. package/dist/components/chat-components/toaster.mjs.map +1 -1
  85. package/dist/components/chat-components/ui/alert-dialog.mjs +5 -216
  86. package/dist/components/chat-components/ui/alert-dialog.mjs.map +1 -1
  87. package/dist/components/chat-components/ui/badge.mjs +7 -49
  88. package/dist/components/chat-components/ui/badge.mjs.map +1 -1
  89. package/dist/components/chat-components/ui/button.mjs +4 -88
  90. package/dist/components/chat-components/ui/button.mjs.map +1 -1
  91. package/dist/components/chat-components/ui/codeblock.mjs +7 -298
  92. package/dist/components/chat-components/ui/codeblock.mjs.map +1 -1
  93. package/dist/components/chat-components/ui/dialog.mjs +26 -94
  94. package/dist/components/chat-components/ui/dialog.mjs.map +1 -1
  95. package/dist/components/chat-components/ui/dropdown-menu.mjs +8 -61
  96. package/dist/components/chat-components/ui/dropdown-menu.mjs.map +1 -1
  97. package/dist/components/chat-components/ui/icons.mjs +4 -551
  98. package/dist/components/chat-components/ui/icons.mjs.map +1 -1
  99. package/dist/components/chat-components/ui/input.mjs +7 -48
  100. package/dist/components/chat-components/ui/input.mjs.map +1 -1
  101. package/dist/components/chat-components/ui/label.mjs +9 -51
  102. package/dist/components/chat-components/ui/label.mjs.map +1 -1
  103. package/dist/components/chat-components/ui/select.mjs +27 -113
  104. package/dist/components/chat-components/ui/select.mjs.map +1 -1
  105. package/dist/components/chat-components/ui/separator.mjs +4 -67
  106. package/dist/components/chat-components/ui/separator.mjs.map +1 -1
  107. package/dist/components/chat-components/ui/sheet.mjs +24 -93
  108. package/dist/components/chat-components/ui/sheet.mjs.map +1 -1
  109. package/dist/components/chat-components/ui/switch.mjs +8 -53
  110. package/dist/components/chat-components/ui/switch.mjs.map +1 -1
  111. package/dist/components/chat-components/ui/textarea.mjs +7 -48
  112. package/dist/components/chat-components/ui/textarea.mjs.map +1 -1
  113. package/dist/components/chat-components/ui/tooltip.mjs +4 -69
  114. package/dist/components/chat-components/ui/tooltip.mjs.map +1 -1
  115. package/dist/components/index.mjs +25 -1057
  116. package/dist/components/index.mjs.map +1 -1
  117. package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs +24 -1052
  118. package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs.map +1 -1
  119. package/dist/components/sidebar/copilot-sidebar.mjs +22 -974
  120. package/dist/components/sidebar/copilot-sidebar.mjs.map +1 -1
  121. package/dist/components/sidebar/sidebar-context.mjs +3 -10
  122. package/dist/components/sidebar/sidebar-context.mjs.map +1 -1
  123. package/dist/context/index.mjs +2 -0
  124. package/dist/context/index.mjs.map +1 -1
  125. package/dist/hooks/index.mjs +2 -0
  126. package/dist/hooks/index.mjs.map +1 -1
  127. package/dist/hooks/use-at-bottom.mjs +3 -21
  128. package/dist/hooks/use-at-bottom.mjs.map +1 -1
  129. package/dist/hooks/use-copy-to-clipboard.mjs +3 -27
  130. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -1
  131. package/dist/hooks/use-enter-submit.mjs +3 -16
  132. package/dist/hooks/use-enter-submit.mjs.map +1 -1
  133. package/dist/index.mjs +28 -1057
  134. package/dist/index.mjs.map +1 -1
  135. package/dist/lib/utils.mjs +3 -62
  136. package/dist/lib/utils.mjs.map +1 -1
  137. package/dist/lib/utils.test.mjs +1 -0
  138. package/dist/lib/utils.test.mjs.map +1 -1
  139. package/dist/types/index.mjs +2 -0
  140. package/dist/types/index.mjs.map +1 -1
  141. package/dist/types/types.mjs +2 -0
  142. package/dist/types/types.mjs.map +1 -1
  143. package/package.json +2 -2
@@ -0,0 +1,69 @@
1
+ import { PromptForm } from './chunk-UKKJ6H2K.mjs';
2
+ import { Button } from './chunk-V6QYUEJR.mjs';
3
+ import { IconStop, IconRefresh } from './chunk-KR7MH7XO.mjs';
4
+ import { __async } from './chunk-MRXNTQOX.mjs';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function ChatPanel({
8
+ id,
9
+ isLoading,
10
+ stop,
11
+ append,
12
+ reload,
13
+ input,
14
+ setInput,
15
+ messages
16
+ }) {
17
+ return /* @__PURE__ */ jsx("div", {
18
+ className: "inset-x-0 bottom-0 bg-gradient-to-b from-muted/10 from-10% to-muted/30 to-50% mt-4 mb-8",
19
+ style: { width: "100%", overflow: "hidden", boxSizing: "border-box" },
20
+ children: /* @__PURE__ */ jsxs("div", {
21
+ className: "mx-auto sm:max-w-2xl sm:px-4",
22
+ children: [
23
+ /* @__PURE__ */ jsx("div", {
24
+ className: "flex h-10 items-center justify-center mb-4",
25
+ children: isLoading ? /* @__PURE__ */ jsxs(Button, {
26
+ variant: "outline",
27
+ onClick: () => stop(),
28
+ className: "bg-background",
29
+ children: [
30
+ /* @__PURE__ */ jsx(IconStop, {
31
+ className: "mr-2"
32
+ }),
33
+ "Stop generating"
34
+ ]
35
+ }) : (messages == null ? void 0 : messages.length) > 0 && /* @__PURE__ */ jsxs(Button, {
36
+ variant: "outline",
37
+ onClick: () => reload(),
38
+ className: "bg-background",
39
+ children: [
40
+ /* @__PURE__ */ jsx(IconRefresh, {
41
+ className: "mr-2"
42
+ }),
43
+ "Regenerate response"
44
+ ]
45
+ })
46
+ }),
47
+ /* @__PURE__ */ jsx("div", {
48
+ className: "space-y-4 border-2 bg-background px-4 py-2 shadow-lg sm:rounded-xl md:py-4",
49
+ children: /* @__PURE__ */ jsx(PromptForm, {
50
+ onSubmit: (value) => __async(this, null, function* () {
51
+ yield append({
52
+ id,
53
+ content: value,
54
+ role: "user"
55
+ });
56
+ }),
57
+ input,
58
+ setInput,
59
+ isLoading
60
+ })
61
+ })
62
+ ]
63
+ })
64
+ });
65
+ }
66
+
67
+ export { ChatPanel };
68
+ //# sourceMappingURL=out.js.map
69
+ //# sourceMappingURL=chunk-APH6ZQHG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat-components/chat-panel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAsCY,SAKE,KALF;AAlBL,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmB;AACjB,SACE,oBAAC;AAAA,IACC,WAAU;AAAA,IACV,OAAO,EAAE,OAAO,QAAQ,UAAU,UAAU,WAAW,aAAa;AAAA,IAEpE,+BAAC;AAAA,MAAI,WAAU;AAAA,MACb;AAAA,4BAAC;AAAA,UAAI,WAAU;AAAA,UACZ,sBACC,qBAAC;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM,KAAK;AAAA,YACpB,WAAU;AAAA,YAEV;AAAA,kCAAC;AAAA,gBAAS,WAAU;AAAA,eAAO;AAAA,cAAE;AAAA;AAAA,WAE/B,KAEA,qCAAU,UAAS,KACjB,qBAAC;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM,OAAO;AAAA,YACtB,WAAU;AAAA,YAEV;AAAA,kCAAC;AAAA,gBAAY,WAAU;AAAA,eAAO;AAAA,cAAE;AAAA;AAAA,WAElC;AAAA,SAGN;AAAA,QACA,oBAAC;AAAA,UAAI,WAAU;AAAA,UACb,8BAAC;AAAA,YACC,UAAU,CAAO,UAAU;AACzB,oBAAM,OAAO;AAAA,gBACX;AAAA,gBACA,SAAS;AAAA,gBACT,MAAM;AAAA,cACR,CAAC;AAAA,YACH;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,WACF;AAAA,SACF;AAAA;AAAA,KACF;AAAA,GACF;AAEJ","sourcesContent":["import { type UseChatHelpers } from \"ai/react\";\n\nimport { Button } from \"./ui/button\";\nimport { PromptForm } from \"./prompt-form\";\nimport { IconRefresh, IconStop } from \"./ui/icons\";\n\nexport interface ChatPanelProps\n extends Pick<\n UseChatHelpers,\n | \"append\"\n | \"isLoading\"\n | \"reload\"\n | \"messages\"\n | \"stop\"\n | \"input\"\n | \"setInput\"\n > {\n id?: string;\n}\n\nexport function ChatPanel({\n id,\n isLoading,\n stop,\n append,\n reload,\n input,\n setInput,\n messages,\n}: ChatPanelProps) {\n return (\n <div\n className=\"inset-x-0 bottom-0 bg-gradient-to-b from-muted/10 from-10% to-muted/30 to-50% mt-4 mb-8\"\n style={{ width: \"100%\", overflow: \"hidden\", boxSizing: \"border-box\" }}\n >\n <div className=\"mx-auto sm:max-w-2xl sm:px-4\">\n <div className=\"flex h-10 items-center justify-center mb-4\">\n {isLoading ? (\n <Button\n variant=\"outline\"\n onClick={() => stop()}\n className=\"bg-background\"\n >\n <IconStop className=\"mr-2\" />\n Stop generating\n </Button>\n ) : (\n messages?.length > 0 && (\n <Button\n variant=\"outline\"\n onClick={() => reload()}\n className=\"bg-background\"\n >\n <IconRefresh className=\"mr-2\" />\n Regenerate response\n </Button>\n )\n )}\n </div>\n <div className=\"space-y-4 border-2 bg-background px-4 py-2 shadow-lg sm:rounded-xl md:py-4\">\n <PromptForm\n onSubmit={async (value) => {\n await append({\n id,\n content: value,\n role: \"user\",\n });\n }}\n input={input}\n setInput={setInput}\n isLoading={isLoading}\n />\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import { useRef } from 'react';
2
+
3
+ // src/hooks/use-enter-submit.tsx
4
+ function useEnterSubmit() {
5
+ const formRef = useRef(null);
6
+ const handleKeyDown = (event) => {
7
+ var _a;
8
+ if (event.key === "Enter" && !event.shiftKey && !event.nativeEvent.isComposing) {
9
+ (_a = formRef.current) == null ? void 0 : _a.requestSubmit();
10
+ event.preventDefault();
11
+ }
12
+ };
13
+ return { formRef, onKeyDown: handleKeyDown };
14
+ }
15
+
16
+ export { useEnterSubmit };
17
+ //# sourceMappingURL=out.js.map
18
+ //# sourceMappingURL=chunk-BIPCPNHG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-enter-submit.tsx"],"names":[],"mappings":";AAAA,SAAS,cAA8B;AAEhC,SAAS,iBAGd;AACA,QAAM,UAAU,OAAwB,IAAI;AAE5C,QAAM,gBAAgB,CACpB,UACS;AAVb;AAWI,QACE,MAAM,QAAQ,WACd,CAAC,MAAM,YACP,CAAC,MAAM,YAAY,aACnB;AACA,oBAAQ,YAAR,mBAAiB;AACjB,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AAEA,SAAO,EAAE,SAAS,WAAW,cAAc;AAC7C","sourcesContent":["import { useRef, type RefObject } from \"react\";\n\nexport function useEnterSubmit(): {\n formRef: RefObject<HTMLFormElement>;\n onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;\n} {\n const formRef = useRef<HTMLFormElement>(null);\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLTextAreaElement>\n ): void => {\n if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n !event.nativeEvent.isComposing\n ) {\n formRef.current?.requestSubmit();\n event.preventDefault();\n }\n };\n\n return { formRef, onKeyDown: handleKeyDown };\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { cn } from './chunk-TVTG3V4F.mjs';
2
+ import { __objRest, __spreadValues } from './chunk-MRXNTQOX.mjs';
3
+ import * as React from 'react';
4
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var TooltipProvider = TooltipPrimitive.Provider;
8
+ var Tooltip = TooltipPrimitive.Root;
9
+ var TooltipTrigger = TooltipPrimitive.Trigger;
10
+ var TooltipContent = React.forwardRef((_a, ref) => {
11
+ var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
12
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Content, __spreadValues({
13
+ ref,
14
+ sideOffset,
15
+ className: cn(
16
+ "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
17
+ className
18
+ )
19
+ }, props));
20
+ });
21
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
22
+
23
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
24
+ //# sourceMappingURL=out.js.map
25
+ //# sourceMappingURL=chunk-BS6RR2DJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat-components/ui/tooltip.tsx"],"names":[],"mappings":";;;;;;;;;AAEA,YAAY,WAAW;AACvB,YAAY,sBAAsB;AAchC;AAjBF;AAOA,IAAM,kBAAmC;AAEzC,IAAM,UAA2B;AAEjC,IAAM,iBAAkC;AAExC,IAAM,iBAAuB,iBAG3B,CAAC,IAAyC,QAAK;AAA9C,eAAE,aAAW,aAAa,EAhB7B,IAgBG,IAAgC,kBAAhC,IAAgC,CAA9B,aAAW;AACd,6BAAkB,0BAAjB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,KACI,MACN;AAAA,CACD;AACD,eAAe,cAA+B,yBAAQ","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"]}
@@ -0,0 +1,26 @@
1
+ import { cn } from './chunk-TVTG3V4F.mjs';
2
+ import { __objRest, __spreadValues } from './chunk-MRXNTQOX.mjs';
3
+ import * as React from 'react';
4
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var Separator = React.forwardRef(
8
+ (_a, ref) => {
9
+ var _b = _a, { className, orientation = "horizontal", decorative = true } = _b, props = __objRest(_b, ["className", "orientation", "decorative"]);
10
+ return /* @__PURE__ */ jsx(SeparatorPrimitive.Root, __spreadValues({
11
+ ref,
12
+ decorative,
13
+ orientation,
14
+ className: cn(
15
+ "shrink-0 bg-border",
16
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
17
+ className
18
+ )
19
+ }, props));
20
+ }
21
+ );
22
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
23
+
24
+ export { Separator };
25
+ //# sourceMappingURL=out.js.map
26
+ //# sourceMappingURL=chunk-DOMJCSI6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat-components/ui/separator.tsx"],"names":[],"mappings":";;;;;;;;;AAEA,YAAY,WAAW;AACvB,YAAY,wBAAwB;AAYhC;AAfJ;AAOA,IAAM,YAAkB;AAAA,EAItB,CACE,IACA,QACA;AAFA,iBAAE,aAAW,cAAc,cAAc,aAAa,KAZ1D,IAYI,IAA+D,kBAA/D,IAA+D,CAA7D,aAAW,eAA4B;AAGzC,+BAAoB,yBAAnB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,mBAAmB;AAAA,QAClD;AAAA,MACF;AAAA,OACI,MACN;AAAA;AAEJ;AACA,UAAU,cAAiC,wBAAK","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=chunk-H4VKQGVU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,140 @@
1
+ import { Button } from './chunk-V6QYUEJR.mjs';
2
+ import { IconDownload, IconCheck, IconCopy } from './chunk-KR7MH7XO.mjs';
3
+ import { useCopyToClipboard } from './chunk-6LAC5RA2.mjs';
4
+ import { memo } from 'react';
5
+ import { Prism } from 'react-syntax-highlighter';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var programmingLanguages = {
9
+ javascript: ".js",
10
+ python: ".py",
11
+ java: ".java",
12
+ c: ".c",
13
+ cpp: ".cpp",
14
+ "c++": ".cpp",
15
+ "c#": ".cs",
16
+ ruby: ".rb",
17
+ php: ".php",
18
+ swift: ".swift",
19
+ "objective-c": ".m",
20
+ kotlin: ".kt",
21
+ typescript: ".ts",
22
+ go: ".go",
23
+ perl: ".pl",
24
+ rust: ".rs",
25
+ scala: ".scala",
26
+ haskell: ".hs",
27
+ lua: ".lua",
28
+ shell: ".sh",
29
+ sql: ".sql",
30
+ html: ".html",
31
+ css: ".css"
32
+ };
33
+ var generateRandomString = (length, lowercase = false) => {
34
+ const chars = "ABCDEFGHJKLMNPQRSTUVWXY3456789";
35
+ let result = "";
36
+ for (let i = 0; i < length; i++) {
37
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
38
+ }
39
+ return lowercase ? result.toLowerCase() : result;
40
+ };
41
+ var CodeBlock = memo(({ language, value }) => {
42
+ const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2e3 });
43
+ const downloadAsFile = () => {
44
+ if (typeof window === "undefined") {
45
+ return;
46
+ }
47
+ const fileExtension = programmingLanguages[language] || ".file";
48
+ const suggestedFileName = `file-${generateRandomString(
49
+ 3,
50
+ true
51
+ )}${fileExtension}`;
52
+ const fileName = window.prompt("Enter file name", suggestedFileName);
53
+ if (!fileName) {
54
+ return;
55
+ }
56
+ const blob = new Blob([value], { type: "text/plain" });
57
+ const url = URL.createObjectURL(blob);
58
+ const link = document.createElement("a");
59
+ link.download = fileName;
60
+ link.href = url;
61
+ link.style.display = "none";
62
+ document.body.appendChild(link);
63
+ link.click();
64
+ document.body.removeChild(link);
65
+ URL.revokeObjectURL(url);
66
+ };
67
+ const onCopy = () => {
68
+ if (isCopied)
69
+ return;
70
+ copyToClipboard(value);
71
+ };
72
+ return /* @__PURE__ */ jsxs("div", {
73
+ className: "codeblock relative w-full bg-zinc-950 font-sans",
74
+ children: [
75
+ /* @__PURE__ */ jsxs("div", {
76
+ className: "flex w-full items-center justify-between bg-zinc-800 px-6 py-2 pr-4 text-zinc-100",
77
+ children: [
78
+ /* @__PURE__ */ jsx("span", {
79
+ className: "text-xs lowercase",
80
+ children: language
81
+ }),
82
+ /* @__PURE__ */ jsxs("div", {
83
+ className: "flex items-center space-x-1",
84
+ children: [
85
+ /* @__PURE__ */ jsxs(Button, {
86
+ variant: "ghost",
87
+ className: "hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",
88
+ onClick: downloadAsFile,
89
+ size: "icon",
90
+ children: [
91
+ /* @__PURE__ */ jsx(IconDownload, {}),
92
+ /* @__PURE__ */ jsx("span", {
93
+ className: "sr-only",
94
+ children: "Download"
95
+ })
96
+ ]
97
+ }),
98
+ /* @__PURE__ */ jsxs(Button, {
99
+ variant: "ghost",
100
+ size: "icon",
101
+ className: "text-xs hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",
102
+ onClick: onCopy,
103
+ children: [
104
+ isCopied ? /* @__PURE__ */ jsx(IconCheck, {}) : /* @__PURE__ */ jsx(IconCopy, {}),
105
+ /* @__PURE__ */ jsx("span", {
106
+ className: "sr-only",
107
+ children: "Copy code"
108
+ })
109
+ ]
110
+ })
111
+ ]
112
+ })
113
+ ]
114
+ }),
115
+ /* @__PURE__ */ jsx(Prism, {
116
+ language,
117
+ PreTag: "div",
118
+ showLineNumbers: true,
119
+ customStyle: {
120
+ margin: 0,
121
+ width: "100%",
122
+ background: "transparent",
123
+ padding: "1.5rem 1rem"
124
+ },
125
+ codeTagProps: {
126
+ style: {
127
+ fontSize: "0.9rem",
128
+ fontFamily: "var(--font-mono)"
129
+ }
130
+ },
131
+ children: value
132
+ })
133
+ ]
134
+ });
135
+ });
136
+ CodeBlock.displayName = "CodeBlock";
137
+
138
+ export { CodeBlock, generateRandomString, programmingLanguages };
139
+ //# sourceMappingURL=out.js.map
140
+ //# sourceMappingURL=chunk-HKSY5T7Y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat-components/ui/codeblock.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport { FC, memo } from \"react\";\nimport { Prism as SyntaxHighlighter } from \"react-syntax-highlighter\";\n\nimport { useCopyToClipboard } from \"../../../hooks/use-copy-to-clipboard\";\nimport { IconCheck, IconCopy, IconDownload } from \"./icons\";\nimport { Button } from \"./button\";\n\ninterface Props {\n language: string;\n value: string;\n}\n\ninterface languageMap {\n [key: string]: string | undefined;\n}\n\nexport const programmingLanguages: languageMap = {\n javascript: \".js\",\n python: \".py\",\n java: \".java\",\n c: \".c\",\n cpp: \".cpp\",\n \"c++\": \".cpp\",\n \"c#\": \".cs\",\n ruby: \".rb\",\n php: \".php\",\n swift: \".swift\",\n \"objective-c\": \".m\",\n kotlin: \".kt\",\n typescript: \".ts\",\n go: \".go\",\n perl: \".pl\",\n rust: \".rs\",\n scala: \".scala\",\n haskell: \".hs\",\n lua: \".lua\",\n shell: \".sh\",\n sql: \".sql\",\n html: \".html\",\n css: \".css\",\n // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component\n};\n\nexport const generateRandomString = (length: number, lowercase = false) => {\n const chars = \"ABCDEFGHJKLMNPQRSTUVWXY3456789\"; // excluding similar looking characters like Z, 2, I, 1, O, 0\n let result = \"\";\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return lowercase ? result.toLowerCase() : result;\n};\n\nconst CodeBlock: FC<Props> = memo(({ language, value }) => {\n const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 });\n\n const downloadAsFile = () => {\n if (typeof window === \"undefined\") {\n return;\n }\n const fileExtension = programmingLanguages[language] || \".file\";\n const suggestedFileName = `file-${generateRandomString(\n 3,\n true\n )}${fileExtension}`;\n const fileName = window.prompt(\"Enter file name\" || \"\", suggestedFileName);\n\n if (!fileName) {\n // User pressed cancel on prompt.\n return;\n }\n\n const blob = new Blob([value], { type: \"text/plain\" });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.download = fileName;\n link.href = url;\n link.style.display = \"none\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n };\n\n const onCopy = () => {\n if (isCopied) return;\n copyToClipboard(value);\n };\n\n return (\n <div className=\"codeblock relative w-full bg-zinc-950 font-sans\">\n <div className=\"flex w-full items-center justify-between bg-zinc-800 px-6 py-2 pr-4 text-zinc-100\">\n <span className=\"text-xs lowercase\">{language}</span>\n <div className=\"flex items-center space-x-1\">\n <Button\n variant=\"ghost\"\n className=\"hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0\"\n onClick={downloadAsFile}\n size=\"icon\"\n >\n <IconDownload />\n <span className=\"sr-only\">Download</span>\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"text-xs hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0\"\n onClick={onCopy}\n >\n {isCopied ? <IconCheck /> : <IconCopy />}\n <span className=\"sr-only\">Copy code</span>\n </Button>\n </div>\n </div>\n <SyntaxHighlighter\n language={language}\n PreTag=\"div\"\n showLineNumbers\n customStyle={{\n margin: 0,\n width: \"100%\",\n background: \"transparent\",\n padding: \"1.5rem 1rem\",\n }}\n codeTagProps={{\n style: {\n fontSize: \"0.9rem\",\n fontFamily: \"var(--font-mono)\",\n },\n }}\n >\n {value}\n </SyntaxHighlighter>\n </div>\n );\n});\nCodeBlock.displayName = \"CodeBlock\";\n\nexport { CodeBlock };\n"]}
@@ -0,0 +1,123 @@
1
+ import { buttonVariants } from './chunk-V6QYUEJR.mjs';
2
+ import { cn } from './chunk-TVTG3V4F.mjs';
3
+ import { __objRest, __spreadProps, __spreadValues } from './chunk-MRXNTQOX.mjs';
4
+ import * as React from 'react';
5
+ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ var AlertDialog = AlertDialogPrimitive.Root;
9
+ var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
10
+ var AlertDialogPortal = (_a) => {
11
+ var _b = _a, {
12
+ className,
13
+ children
14
+ } = _b, props = __objRest(_b, [
15
+ "className",
16
+ "children"
17
+ ]);
18
+ return /* @__PURE__ */ jsx(AlertDialogPrimitive.Portal, __spreadProps(__spreadValues({
19
+ className: cn(className)
20
+ }, props), {
21
+ children: /* @__PURE__ */ jsx("div", {
22
+ className: "fixed inset-0 z-50 flex items-end justify-center sm:items-center",
23
+ children
24
+ })
25
+ }));
26
+ };
27
+ AlertDialogPortal.displayName = AlertDialogPrimitive.Portal.displayName;
28
+ var AlertDialogOverlay = React.forwardRef((_a, ref) => {
29
+ var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
30
+ return /* @__PURE__ */ jsx(AlertDialogPrimitive.Overlay, __spreadProps(__spreadValues({
31
+ className: cn(
32
+ "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-opacity animate-in fade-in",
33
+ className
34
+ )
35
+ }, props), {
36
+ ref
37
+ }));
38
+ });
39
+ AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
40
+ var AlertDialogContent = React.forwardRef((_a, ref) => {
41
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
42
+ return /* @__PURE__ */ jsxs(AlertDialogPortal, {
43
+ children: [
44
+ /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
45
+ /* @__PURE__ */ jsx(AlertDialogPrimitive.Content, __spreadValues({
46
+ ref,
47
+ className: cn(
48
+ "fixed z-50 grid w-full max-w-lg scale-100 gap-4 border bg-background p-6 opacity-100 shadow-lg animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full",
49
+ className
50
+ )
51
+ }, props))
52
+ ]
53
+ });
54
+ });
55
+ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
56
+ var AlertDialogHeader = (_a) => {
57
+ var _b = _a, {
58
+ className
59
+ } = _b, props = __objRest(_b, [
60
+ "className"
61
+ ]);
62
+ return /* @__PURE__ */ jsx("div", __spreadValues({
63
+ className: cn(
64
+ "flex flex-col space-y-2 text-center sm:text-left",
65
+ className
66
+ )
67
+ }, props));
68
+ };
69
+ AlertDialogHeader.displayName = "AlertDialogHeader";
70
+ var AlertDialogFooter = (_a) => {
71
+ var _b = _a, {
72
+ className
73
+ } = _b, props = __objRest(_b, [
74
+ "className"
75
+ ]);
76
+ return /* @__PURE__ */ jsx("div", __spreadValues({
77
+ className: cn(
78
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
79
+ className
80
+ )
81
+ }, props));
82
+ };
83
+ AlertDialogFooter.displayName = "AlertDialogFooter";
84
+ var AlertDialogTitle = React.forwardRef((_a, ref) => {
85
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
86
+ return /* @__PURE__ */ jsx(AlertDialogPrimitive.Title, __spreadValues({
87
+ ref,
88
+ className: cn("text-lg font-semibold", className)
89
+ }, props));
90
+ });
91
+ AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
92
+ var AlertDialogDescription = React.forwardRef((_a, ref) => {
93
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
94
+ return /* @__PURE__ */ jsx(AlertDialogPrimitive.Description, __spreadValues({
95
+ ref,
96
+ className: cn("text-sm text-muted-foreground", className)
97
+ }, props));
98
+ });
99
+ AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
100
+ var AlertDialogAction = React.forwardRef((_a, ref) => {
101
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
102
+ return /* @__PURE__ */ jsx(AlertDialogPrimitive.Action, __spreadValues({
103
+ ref,
104
+ className: cn(buttonVariants(), className)
105
+ }, props));
106
+ });
107
+ AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
108
+ var AlertDialogCancel = React.forwardRef((_a, ref) => {
109
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
110
+ return /* @__PURE__ */ jsx(AlertDialogPrimitive.Cancel, __spreadValues({
111
+ ref,
112
+ className: cn(
113
+ buttonVariants({ variant: "outline" }),
114
+ "mt-2 sm:mt-0",
115
+ className
116
+ )
117
+ }, props));
118
+ });
119
+ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
120
+
121
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger };
122
+ //# sourceMappingURL=out.js.map
123
+ //# sourceMappingURL=chunk-I2AB5FK4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat-components/ui/alert-dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { buttonVariants } from \"./button\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = ({\n className,\n children,\n ...props\n}: AlertDialogPrimitive.AlertDialogPortalProps) => (\n <AlertDialogPrimitive.Portal className={cn(className)} {...props}>\n <div className=\"fixed inset-0 z-50 flex items-end justify-center sm:items-center\">\n {children}\n </div>\n </AlertDialogPrimitive.Portal>\n);\nAlertDialogPortal.displayName = AlertDialogPrimitive.Portal.displayName;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, children, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-opacity animate-in fade-in\",\n className\n )}\n {...props}\n ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed z-50 grid w-full max-w-lg scale-100 gap-4 border bg-background p-6 opacity-100 shadow-lg animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=chunk-IU3WTXLQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}