@copilotkit/react-ui 0.14.0-alpha.3 → 0.14.0-alpha.5

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 (157) hide show
  1. package/.turbo/turbo-build.log +119 -119
  2. package/CHANGELOG.md +37 -8
  3. package/dist/components/chat-components/chat-list.d.ts +1 -1
  4. package/dist/components/chat-components/chat-list.mjs +440 -12
  5. package/dist/components/chat-components/chat-list.mjs.map +1 -1
  6. package/dist/components/chat-components/chat-message-actions.d.ts +1 -1
  7. package/dist/components/chat-components/chat-message-actions.mjs +168 -7
  8. package/dist/components/chat-components/chat-message-actions.mjs.map +1 -1
  9. package/dist/components/chat-components/chat-message.d.ts +1 -1
  10. package/dist/components/chat-components/chat-message.mjs +403 -10
  11. package/dist/components/chat-components/chat-message.mjs.map +1 -1
  12. package/dist/components/chat-components/chat-panel.d.ts +1 -1
  13. package/dist/components/chat-components/chat-panel.mjs +301 -9
  14. package/dist/components/chat-components/chat-panel.mjs.map +1 -1
  15. package/dist/components/chat-components/chat-scroll-anchor.mjs +44 -4
  16. package/dist/components/chat-components/chat-scroll-anchor.mjs.map +1 -1
  17. package/dist/components/chat-components/clear-history.d.ts +1 -1
  18. package/dist/components/chat-components/clear-history.mjs +249 -25
  19. package/dist/components/chat-components/clear-history.mjs.map +1 -1
  20. package/dist/components/chat-components/copilot-chat.mjs +809 -21
  21. package/dist/components/chat-components/copilot-chat.mjs.map +1 -1
  22. package/dist/components/chat-components/default-empty-screen.mjs +175 -7
  23. package/dist/components/chat-components/default-empty-screen.mjs.map +1 -1
  24. package/dist/components/chat-components/external-link.mjs +25 -3
  25. package/dist/components/chat-components/external-link.mjs.map +1 -1
  26. package/dist/components/chat-components/markdown.mjs +10 -3
  27. package/dist/components/chat-components/markdown.mjs.map +1 -1
  28. package/dist/components/chat-components/prompt-form.d.ts +1 -1
  29. package/dist/components/chat-components/prompt-form.mjs +227 -8
  30. package/dist/components/chat-components/prompt-form.mjs.map +1 -1
  31. package/dist/components/chat-components/theme-toggle.mjs +130 -14
  32. package/dist/components/chat-components/theme-toggle.mjs.map +1 -1
  33. package/dist/components/chat-components/toaster.mjs +7 -3
  34. package/dist/components/chat-components/toaster.mjs.map +1 -1
  35. package/dist/components/chat-components/ui/alert-dialog.mjs +199 -5
  36. package/dist/components/chat-components/ui/alert-dialog.mjs.map +1 -1
  37. package/dist/components/chat-components/ui/badge.mjs +49 -7
  38. package/dist/components/chat-components/ui/badge.mjs.map +1 -1
  39. package/dist/components/chat-components/ui/button.mjs +85 -4
  40. package/dist/components/chat-components/ui/button.mjs.map +1 -1
  41. package/dist/components/chat-components/ui/codeblock.mjs +283 -7
  42. package/dist/components/chat-components/ui/codeblock.mjs.map +1 -1
  43. package/dist/components/chat-components/ui/dialog.mjs +93 -25
  44. package/dist/components/chat-components/ui/dialog.mjs.map +1 -1
  45. package/dist/components/chat-components/ui/dropdown-menu.mjs +61 -8
  46. package/dist/components/chat-components/ui/dropdown-menu.mjs.map +1 -1
  47. package/dist/components/chat-components/ui/icons.mjs +554 -4
  48. package/dist/components/chat-components/ui/icons.mjs.map +1 -1
  49. package/dist/components/chat-components/ui/input.mjs +48 -7
  50. package/dist/components/chat-components/ui/input.mjs.map +1 -1
  51. package/dist/components/chat-components/ui/label.mjs +51 -9
  52. package/dist/components/chat-components/ui/label.mjs.map +1 -1
  53. package/dist/components/chat-components/ui/select.mjs +106 -23
  54. package/dist/components/chat-components/ui/select.mjs.map +1 -1
  55. package/dist/components/chat-components/ui/separator.mjs +68 -4
  56. package/dist/components/chat-components/ui/separator.mjs.map +1 -1
  57. package/dist/components/chat-components/ui/sheet.mjs +92 -23
  58. package/dist/components/chat-components/ui/sheet.mjs.map +1 -1
  59. package/dist/components/chat-components/ui/switch.mjs +53 -8
  60. package/dist/components/chat-components/ui/switch.mjs.map +1 -1
  61. package/dist/components/chat-components/ui/textarea.mjs +48 -7
  62. package/dist/components/chat-components/ui/textarea.mjs.map +1 -1
  63. package/dist/components/chat-components/ui/tooltip.mjs +72 -4
  64. package/dist/components/chat-components/ui/tooltip.mjs.map +1 -1
  65. package/dist/components/index.mjs +925 -25
  66. package/dist/components/index.mjs.map +1 -1
  67. package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs +920 -24
  68. package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs.map +1 -1
  69. package/dist/components/sidebar/copilot-sidebar.mjs +842 -22
  70. package/dist/components/sidebar/copilot-sidebar.mjs.map +1 -1
  71. package/dist/components/sidebar/sidebar-context.mjs +10 -3
  72. package/dist/components/sidebar/sidebar-context.mjs.map +1 -1
  73. package/dist/context/index.mjs +0 -2
  74. package/dist/context/index.mjs.map +1 -1
  75. package/dist/hooks/index.mjs +0 -2
  76. package/dist/hooks/index.mjs.map +1 -1
  77. package/dist/hooks/use-at-bottom.mjs +19 -3
  78. package/dist/hooks/use-at-bottom.mjs.map +1 -1
  79. package/dist/hooks/use-copy-to-clipboard.mjs +26 -3
  80. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -1
  81. package/dist/hooks/use-enter-submit.mjs +16 -3
  82. package/dist/hooks/use-enter-submit.mjs.map +1 -1
  83. package/dist/index.mjs +925 -28
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/lib/utils.mjs +62 -3
  86. package/dist/lib/utils.mjs.map +1 -1
  87. package/dist/lib/utils.test.mjs +0 -1
  88. package/dist/lib/utils.test.mjs.map +1 -1
  89. package/dist/types/index.mjs +0 -2
  90. package/dist/types/index.mjs.map +1 -1
  91. package/dist/types/types.d.ts +1 -1
  92. package/dist/types/types.mjs +0 -2
  93. package/dist/types/types.mjs.map +1 -1
  94. package/package.json +2 -3
  95. package/src/components/chat-components/chat-list.tsx +1 -1
  96. package/src/components/chat-components/chat-message-actions.tsx +1 -1
  97. package/src/components/chat-components/chat-message.tsx +1 -1
  98. package/src/components/chat-components/chat-panel.tsx +3 -2
  99. package/src/components/chat-components/default-empty-screen.tsx +0 -1
  100. package/src/components/chat-components/prompt-form.tsx +1 -1
  101. package/src/types/types.ts +1 -1
  102. package/dist/chunk-2KAF7NKC.mjs +0 -484
  103. package/dist/chunk-2KAF7NKC.mjs.map +0 -1
  104. package/dist/chunk-3OM3QBDC.mjs +0 -39
  105. package/dist/chunk-3OM3QBDC.mjs.map +0 -1
  106. package/dist/chunk-5KEDV5VC.mjs +0 -27
  107. package/dist/chunk-5KEDV5VC.mjs.map +0 -1
  108. package/dist/chunk-6LAZQHEB.mjs +0 -129
  109. package/dist/chunk-6LAZQHEB.mjs.map +0 -1
  110. package/dist/chunk-7NSRDJ5C.mjs +0 -3
  111. package/dist/chunk-7NSRDJ5C.mjs.map +0 -1
  112. package/dist/chunk-7TUGXTHJ.mjs +0 -42
  113. package/dist/chunk-7TUGXTHJ.mjs.map +0 -1
  114. package/dist/chunk-EJR2J4DR.mjs +0 -18
  115. package/dist/chunk-EJR2J4DR.mjs.map +0 -1
  116. package/dist/chunk-GC4LE273.mjs +0 -52
  117. package/dist/chunk-GC4LE273.mjs.map +0 -1
  118. package/dist/chunk-GCOPYGHH.mjs +0 -27
  119. package/dist/chunk-GCOPYGHH.mjs.map +0 -1
  120. package/dist/chunk-H4VKQGVU.mjs +0 -3
  121. package/dist/chunk-H4VKQGVU.mjs.map +0 -1
  122. package/dist/chunk-IAFCGDM6.mjs +0 -72
  123. package/dist/chunk-IAFCGDM6.mjs.map +0 -1
  124. package/dist/chunk-IJLMKBSZ.mjs +0 -25
  125. package/dist/chunk-IJLMKBSZ.mjs.map +0 -1
  126. package/dist/chunk-ITE4RI6K.mjs +0 -66
  127. package/dist/chunk-ITE4RI6K.mjs.map +0 -1
  128. package/dist/chunk-IU3WTXLQ.mjs +0 -3
  129. package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
  130. package/dist/chunk-L3OH4SEP.mjs +0 -52
  131. package/dist/chunk-L3OH4SEP.mjs.map +0 -1
  132. package/dist/chunk-M3CZWJI3.mjs +0 -44
  133. package/dist/chunk-M3CZWJI3.mjs.map +0 -1
  134. package/dist/chunk-MC6KTH4X.mjs +0 -12
  135. package/dist/chunk-MC6KTH4X.mjs.map +0 -1
  136. package/dist/chunk-MRXNTQOX.mjs +0 -55
  137. package/dist/chunk-MRXNTQOX.mjs.map +0 -1
  138. package/dist/chunk-OHWEJUCS.mjs +0 -18
  139. package/dist/chunk-OHWEJUCS.mjs.map +0 -1
  140. package/dist/chunk-POVINPXX.mjs +0 -26
  141. package/dist/chunk-POVINPXX.mjs.map +0 -1
  142. package/dist/chunk-Q6YO7LDK.mjs +0 -40
  143. package/dist/chunk-Q6YO7LDK.mjs.map +0 -1
  144. package/dist/chunk-SRBUGQTM.mjs +0 -109
  145. package/dist/chunk-SRBUGQTM.mjs.map +0 -1
  146. package/dist/chunk-TEYIQHMK.mjs +0 -12
  147. package/dist/chunk-TEYIQHMK.mjs.map +0 -1
  148. package/dist/chunk-U6NJWGTV.mjs +0 -3
  149. package/dist/chunk-U6NJWGTV.mjs.map +0 -1
  150. package/dist/chunk-UB4Q6LFN.mjs +0 -72
  151. package/dist/chunk-UB4Q6LFN.mjs.map +0 -1
  152. package/dist/chunk-VGX2W5ZB.mjs +0 -28
  153. package/dist/chunk-VGX2W5ZB.mjs.map +0 -1
  154. package/dist/chunk-Y2LXYPNP.mjs +0 -34
  155. package/dist/chunk-Y2LXYPNP.mjs.map +0 -1
  156. package/dist/chunk-ZYC5YVDO.mjs +0 -21
  157. package/dist/chunk-ZYC5YVDO.mjs.map +0 -1
@@ -1,44 +0,0 @@
1
- import { cn } from './chunk-Q6YO7LDK.mjs';
2
- import { __objRest, __spreadValues } from './chunk-MRXNTQOX.mjs';
3
- import * as React from 'react';
4
- import { Slot } from '@radix-ui/react-slot';
5
- import { cva } from 'class-variance-authority';
6
- import { jsx } from 'react/jsx-runtime';
7
-
8
- var buttonVariants = cva(
9
- "inline-flex items-center justify-center rounded-md text-sm font-medium shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
10
- {
11
- variants: {
12
- variant: {
13
- default: "bg-primary text-primary-foreground shadow-md hover:bg-primary/90",
14
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
15
- outline: "border border-input hover:bg-accent hover:text-accent-foreground",
16
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
17
- ghost: "shadow-none hover:bg-accent hover:text-accent-foreground",
18
- link: "text-primary underline-offset-4 shadow-none hover:underline"
19
- },
20
- size: {
21
- default: "h-8 px-4 py-2",
22
- sm: "h-8 rounded-md px-3",
23
- lg: "h-11 rounded-md px-8",
24
- icon: "h-8 w-8 p-0"
25
- }
26
- },
27
- defaultVariants: {
28
- variant: "default",
29
- size: "default"
30
- }
31
- }
32
- );
33
- var Button = React.forwardRef(
34
- (_a, ref) => {
35
- var _b = _a, { className, variant, size, asChild = false } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild"]);
36
- const Comp = asChild ? Slot : "button";
37
- return /* @__PURE__ */ jsx(Comp, __spreadValues({ className: cn(buttonVariants({ variant, size, className })), ref }, props));
38
- }
39
- );
40
- Button.displayName = "Button";
41
-
42
- export { Button, buttonVariants };
43
- //# sourceMappingURL=out.js.map
44
- //# sourceMappingURL=chunk-M3CZWJI3.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat-components/ui/button.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;AAwCjC;AApCN,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,IAAM,SAAe;AAAA,EACnB,CAAC,IAAyD,QAAQ;AAAjE,iBAAE,aAAW,SAAS,MAAM,UAAU,MAvCzC,IAuCG,IAAgD,kBAAhD,IAAgD,CAA9C,aAAW,WAAS,QAAM;AAC3B,UAAM,OAAO,UAAU,OAAO;AAC9B,WACE,oBAAC,uBAAK,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC,GAAG,OAAc,MAAO;AAAA,EAE5F;AACF;AACA,OAAO,cAAc","sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow-md hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"shadow-none hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 shadow-none hover:underline\",\n },\n size: {\n default: \"h-8 px-4 py-2\",\n sm: \"h-8 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-8 w-8 p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"]}
@@ -1,12 +0,0 @@
1
- import { createContext } from 'react';
2
-
3
- // src/components/sidebar/sidebar-context.tsx
4
- var CopilotSidebarContext = createContext({
5
- isSidebarOpen: false,
6
- toggleSidebar: () => {
7
- }
8
- });
9
-
10
- export { CopilotSidebarContext };
11
- //# sourceMappingURL=out.js.map
12
- //# sourceMappingURL=chunk-MC6KTH4X.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/sidebar/sidebar-context.tsx"],"names":[],"mappings":";AAAA,SAAS,qBAAgC;AAOlC,IAAM,wBAAwB,cAAyC;AAAA,EAC5E,eAAe;AAAA,EACf,eAAe,MAAM;AAAA,EAAC;AACxB,CAAC","sourcesContent":["import { createContext, ReactNode } from \"react\";\n\nexport interface CopilotSidebarContextType {\n isSidebarOpen: boolean;\n toggleSidebar: () => void;\n}\n\nexport const CopilotSidebarContext = createContext<CopilotSidebarContextType>({\n isSidebarOpen: false,\n toggleSidebar: () => {},\n});\n"]}
@@ -1,55 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- var __async = (__this, __arguments, generator) => {
33
- return new Promise((resolve, reject) => {
34
- var fulfilled = (value) => {
35
- try {
36
- step(generator.next(value));
37
- } catch (e) {
38
- reject(e);
39
- }
40
- };
41
- var rejected = (value) => {
42
- try {
43
- step(generator.throw(value));
44
- } catch (e) {
45
- reject(e);
46
- }
47
- };
48
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
49
- step((generator = generator.apply(__this, __arguments)).next());
50
- });
51
- };
52
-
53
- export { __async, __objRest, __spreadProps, __spreadValues };
54
- //# sourceMappingURL=out.js.map
55
- //# sourceMappingURL=chunk-MRXNTQOX.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,18 +0,0 @@
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-OHWEJUCS.mjs.map
@@ -1 +0,0 @@
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,CAAC,UAA0D;AARnF;AASI,QAAI,MAAM,QAAQ,WAAW,CAAC,MAAM,YAAY,CAAC,MAAM,YAAY,aAAa;AAC9E,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 = (event: React.KeyboardEvent<HTMLTextAreaElement>): void => {\n if (event.key === \"Enter\" && !event.shiftKey && !event.nativeEvent.isComposing) {\n formRef.current?.requestSubmit();\n event.preventDefault();\n }\n };\n\n return { formRef, onKeyDown: handleKeyDown };\n}\n"]}
@@ -1,26 +0,0 @@
1
- import * as React from 'react';
2
-
3
- // src/hooks/use-copy-to-clipboard.tsx
4
- function useCopyToClipboard({ timeout = 2e3 }) {
5
- const [isCopied, setIsCopied] = React.useState(false);
6
- const copyToClipboard = (value) => {
7
- var _a;
8
- if (typeof window === "undefined" || !((_a = navigator.clipboard) == null ? void 0 : _a.writeText)) {
9
- return;
10
- }
11
- if (!value) {
12
- return;
13
- }
14
- navigator.clipboard.writeText(value).then(() => {
15
- setIsCopied(true);
16
- setTimeout(() => {
17
- setIsCopied(false);
18
- }, timeout);
19
- });
20
- };
21
- return { isCopied, copyToClipboard };
22
- }
23
-
24
- export { useCopyToClipboard };
25
- //# sourceMappingURL=out.js.map
26
- //# sourceMappingURL=chunk-POVINPXX.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/use-copy-to-clipboard.tsx"],"names":[],"mappings":";AAEA,YAAY,WAAW;AAMhB,SAAS,mBAAmB,EAAE,UAAU,IAAK,GAA4B;AAC9E,QAAM,CAAC,UAAU,WAAW,IAAU,eAAkB,KAAK;AAE7D,QAAM,kBAAkB,CAAC,UAAkB;AAX7C;AAYI,QAAI,OAAO,WAAW,eAAe,GAAC,eAAU,cAAV,mBAAqB,YAAW;AACpE;AAAA,IACF;AAEA,QAAI,CAAC,OAAO;AACV;AAAA,IACF;AAEA,cAAU,UAAU,UAAU,KAAK,EAAE,KAAK,MAAM;AAC9C,kBAAY,IAAI;AAEhB,iBAAW,MAAM;AACf,oBAAY,KAAK;AAAA,MACnB,GAAG,OAAO;AAAA,IACZ,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,UAAU,gBAAgB;AACrC","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nexport interface useCopyToClipboardProps {\n timeout?: number;\n}\n\nexport function useCopyToClipboard({ timeout = 2000 }: useCopyToClipboardProps) {\n const [isCopied, setIsCopied] = React.useState<Boolean>(false);\n\n const copyToClipboard = (value: string) => {\n if (typeof window === \"undefined\" || !navigator.clipboard?.writeText) {\n return;\n }\n\n if (!value) {\n return;\n }\n\n navigator.clipboard.writeText(value).then(() => {\n setIsCopied(true);\n\n setTimeout(() => {\n setIsCopied(false);\n }, timeout);\n });\n };\n\n return { isCopied, copyToClipboard };\n}\n"]}
@@ -1,40 +0,0 @@
1
- import { __async } from './chunk-MRXNTQOX.mjs';
2
- import { clsx } from 'clsx';
3
- import { customAlphabet } from 'nanoid';
4
- import { twMerge } from 'tailwind-merge';
5
-
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
- var nanoid = customAlphabet(
10
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
11
- 7
12
- );
13
- function fetcher(input, init) {
14
- return __async(this, null, function* () {
15
- const res = yield fetch(input, init);
16
- if (!res.ok) {
17
- const json = yield res.json();
18
- if (json.error) {
19
- const error = new Error(json.error);
20
- error.status = res.status;
21
- throw error;
22
- } else {
23
- throw new Error("An unexpected error occurred");
24
- }
25
- }
26
- return res.json();
27
- });
28
- }
29
- function formatDate(input) {
30
- const date = new Date(input);
31
- return date.toLocaleDateString("en-US", {
32
- month: "long",
33
- day: "numeric",
34
- year: "numeric"
35
- });
36
- }
37
-
38
- export { cn, fetcher, formatDate, nanoid };
39
- //# sourceMappingURL=out.js.map
40
- //# sourceMappingURL=chunk-Q6YO7LDK.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,YAA6B;AACtC,SAAS,sBAAsB;AAC/B,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;AAEO,IAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;AAEA,SAAsB,QAAoB,OAAoB,MAAmC;AAAA;AAC/F,UAAM,MAAM,MAAM,MAAM,OAAO,IAAI;AAEnC,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,UAAI,KAAK,OAAO;AACd,cAAM,QAAQ,IAAI,MAAM,KAAK,KAAK;AAGlC,cAAM,SAAS,IAAI;AACnB,cAAM;AAAA,MACR,OAAO;AACL,cAAM,IAAI,MAAM,8BAA8B;AAAA,MAChD;AAAA,IACF;AAEA,WAAO,IAAI,KAAK;AAAA,EAClB;AAAA;AAEO,SAAS,WAAW,OAAuC;AAChE,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,SAAO,KAAK,mBAAmB,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR,CAAC;AACH","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { customAlphabet } from \"nanoid\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const nanoid = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n); // 7-character random string\n\nexport async function fetcher<JSON = any>(input: RequestInfo, init?: RequestInit): Promise<JSON> {\n const res = await fetch(input, init);\n\n if (!res.ok) {\n const json = await res.json();\n if (json.error) {\n const error = new Error(json.error) as Error & {\n status: number;\n };\n error.status = res.status;\n throw error;\n } else {\n throw new Error(\"An unexpected error occurred\");\n }\n }\n\n return res.json();\n}\n\nexport function formatDate(input: string | number | Date): string {\n const date = new Date(input);\n return date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n });\n}\n"]}
@@ -1,109 +0,0 @@
1
- import { buttonVariants } from './chunk-M3CZWJI3.mjs';
2
- import { cn } from './chunk-Q6YO7LDK.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({ className: cn(className) }, props), { children: /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-50 flex items-end justify-center sm:items-center", children }) }));
19
- };
20
- AlertDialogPortal.displayName = AlertDialogPrimitive.Portal.displayName;
21
- var AlertDialogOverlay = React.forwardRef((_a, ref) => {
22
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
23
- return /* @__PURE__ */ jsx(
24
- AlertDialogPrimitive.Overlay,
25
- __spreadProps(__spreadValues({
26
- className: cn(
27
- "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-opacity animate-in fade-in",
28
- className
29
- )
30
- }, props), {
31
- ref
32
- })
33
- );
34
- });
35
- AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
36
- var AlertDialogContent = React.forwardRef((_a, ref) => {
37
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
38
- return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
39
- /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
40
- /* @__PURE__ */ jsx(
41
- AlertDialogPrimitive.Content,
42
- __spreadValues({
43
- ref,
44
- className: cn(
45
- "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",
46
- className
47
- )
48
- }, props)
49
- )
50
- ] });
51
- });
52
- AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
53
- var AlertDialogHeader = (_a) => {
54
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
55
- return /* @__PURE__ */ jsx("div", __spreadValues({ className: cn("flex flex-col space-y-2 text-center sm:text-left", className) }, props));
56
- };
57
- AlertDialogHeader.displayName = "AlertDialogHeader";
58
- var AlertDialogFooter = (_a) => {
59
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
60
- return /* @__PURE__ */ jsx(
61
- "div",
62
- __spreadValues({
63
- className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className)
64
- }, props)
65
- );
66
- };
67
- AlertDialogFooter.displayName = "AlertDialogFooter";
68
- var AlertDialogTitle = React.forwardRef((_a, ref) => {
69
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
70
- return /* @__PURE__ */ jsx(
71
- AlertDialogPrimitive.Title,
72
- __spreadValues({
73
- ref,
74
- className: cn("text-lg font-semibold", className)
75
- }, props)
76
- );
77
- });
78
- AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
79
- var AlertDialogDescription = React.forwardRef((_a, ref) => {
80
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
81
- return /* @__PURE__ */ jsx(
82
- AlertDialogPrimitive.Description,
83
- __spreadValues({
84
- ref,
85
- className: cn("text-sm text-muted-foreground", className)
86
- }, props)
87
- );
88
- });
89
- AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
90
- var AlertDialogAction = React.forwardRef((_a, ref) => {
91
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
92
- return /* @__PURE__ */ jsx(AlertDialogPrimitive.Action, __spreadValues({ ref, className: cn(buttonVariants(), className) }, props));
93
- });
94
- AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
95
- var AlertDialogCancel = React.forwardRef((_a, ref) => {
96
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
97
- return /* @__PURE__ */ jsx(
98
- AlertDialogPrimitive.Cancel,
99
- __spreadValues({
100
- ref,
101
- className: cn(buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", className)
102
- }, props)
103
- );
104
- });
105
- AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
106
-
107
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger };
108
- //# sourceMappingURL=out.js.map
109
- //# sourceMappingURL=chunk-SRBUGQTM.mjs.map
@@ -1 +0,0 @@
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 = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)}\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 = 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 ref={ref} className={cn(buttonVariants(), className)} {...props} />\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(buttonVariants({ variant: \"outline\" }), \"mt-2 sm:mt-0\", className)}\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"]}
@@ -1,12 +0,0 @@
1
- import { memo } from 'react';
2
- import ReactMarkdown from 'react-markdown';
3
-
4
- // src/components/chat-components/markdown.tsx
5
- var MemoizedReactMarkdown = memo(
6
- ReactMarkdown,
7
- (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.className === nextProps.className
8
- );
9
-
10
- export { MemoizedReactMarkdown };
11
- //# sourceMappingURL=out.js.map
12
- //# sourceMappingURL=chunk-TEYIQHMK.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat-components/markdown.tsx"],"names":[],"mappings":";AAAA,SAAa,YAAY;AACzB,OAAO,mBAAgC;AAEhC,IAAM,wBAAqC;AAAA,EAChD;AAAA,EACA,CAAC,WAAW,cACV,UAAU,aAAa,UAAU,YAAY,UAAU,cAAc,UAAU;AACnF","sourcesContent":["import { FC, memo } from \"react\";\nimport ReactMarkdown, { Options } from \"react-markdown\";\n\nexport const MemoizedReactMarkdown: FC<Options> = memo(\n ReactMarkdown,\n (prevProps, nextProps) =>\n prevProps.children === nextProps.children && prevProps.className === nextProps.className,\n);\n"]}
@@ -1,3 +0,0 @@
1
-
2
- //# sourceMappingURL=out.js.map
3
- //# sourceMappingURL=chunk-U6NJWGTV.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,72 +0,0 @@
1
- import { CopilotSidebar } from './chunk-3OM3QBDC.mjs';
2
- import { CopilotSidebarContext } from './chunk-MC6KTH4X.mjs';
3
- import { TooltipProvider } from './chunk-VGX2W5ZB.mjs';
4
- import { useState, useCallback } from 'react';
5
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
6
-
7
- function CopilotSidebarUIProvider({ children }) {
8
- const [sidebarOpen, setSidebarOpen] = useState(true);
9
- const toggleSidebar = useCallback(() => {
10
- setSidebarOpen((prev) => !prev);
11
- }, []);
12
- return /* @__PURE__ */ jsx(CopilotSidebarContext.Provider, { value: { isSidebarOpen: sidebarOpen, toggleSidebar }, children: /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
13
- "div",
14
- {
15
- style: {
16
- height: "100vh",
17
- width: "100vw",
18
- position: "relative"
19
- },
20
- children: [
21
- /* @__PURE__ */ jsx(
22
- "div",
23
- {
24
- style: {
25
- overflowY: "auto",
26
- overflowX: "hidden",
27
- height: "100%",
28
- width: sidebarOpen ? "calc(100% - 450px)" : "100%",
29
- position: "absolute",
30
- transition: "width 0.5s ease-in-out"
31
- // New
32
- },
33
- children: /* @__PURE__ */ jsx("main", { children })
34
- }
35
- ),
36
- /* @__PURE__ */ jsx(
37
- "div",
38
- {
39
- style: {
40
- overflowY: "auto",
41
- height: "100%",
42
- width: "450px",
43
- position: "absolute",
44
- right: sidebarOpen ? "0" : "-450px",
45
- transition: "right 0.5s ease-in-out"
46
- },
47
- children: /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(CopilotSidebar, { setSidebarOpen }) })
48
- }
49
- ),
50
- !sidebarOpen && /* @__PURE__ */ jsx(
51
- "button",
52
- {
53
- onClick: toggleSidebar,
54
- style: {
55
- position: "absolute",
56
- top: "5%",
57
- right: "20px",
58
- transform: "translateY(-50%)",
59
- transition: "opacity 0.5s ease-in-out"
60
- },
61
- className: "bg-slate-100 ring-2 ring-slate-600 font-semibold text-black p-2 rounded-lg shadow-lg",
62
- children: "Open Copilot"
63
- }
64
- )
65
- ]
66
- }
67
- ) }) });
68
- }
69
-
70
- export { CopilotSidebarUIProvider };
71
- //# sourceMappingURL=out.js.map
72
- //# sourceMappingURL=chunk-UB4Q6LFN.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/sidebar/copilot-sidebar-ui-provider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAA2B,mBAAmB;AAC9C,SAAS,gBAAgB;AAkBnB,mBAkBM,KAjBJ,YADF;AATC,SAAS,yBAAyB,EAAE,SAAS,GAAkC;AACpF,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,IAAI;AAEnD,QAAM,gBAAgB,YAAY,MAAM;AACtC,mBAAe,CAAC,SAAS,CAAC,IAAI;AAAA,EAChC,GAAG,CAAC,CAAC;AAEL,SACE,oBAAC,sBAAsB,UAAtB,EAA+B,OAAO,EAAE,eAAe,aAAa,cAAc,GACjF,0CACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,UAAU;AAAA,MACZ;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,cACL,WAAW;AAAA,cACX,WAAW;AAAA,cACX,QAAQ;AAAA,cACR,OAAO,cAAc,uBAAuB;AAAA,cAC5C,UAAU;AAAA,cACV,YAAY;AAAA;AAAA,YACd;AAAA,YAEA,8BAAC,UAAM,UAAS;AAAA;AAAA,QAClB;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,cACL,WAAW;AAAA,cACX,QAAQ;AAAA,cACR,OAAO;AAAA,cACP,UAAU;AAAA,cACV,OAAO,cAAc,MAAM;AAAA,cAC3B,YAAY;AAAA,YACd;AAAA,YAEA,8BAAC,mBACC,8BAAC,kBAAe,gBAAgC,GAClD;AAAA;AAAA,QACF;AAAA,QACC,CAAC,eACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAS;AAAA,YACT,OAAO;AAAA,cACL,UAAU;AAAA,cACV,KAAK;AAAA,cACL,OAAO;AAAA,cACP,WAAW;AAAA,cACX,YAAY;AAAA,YACd;AAAA,YACA,WAAU;AAAA,YACX;AAAA;AAAA,QAED;AAAA;AAAA;AAAA,EAEJ,GACF,GACF;AAEJ","sourcesContent":["import React, { ReactNode, useCallback } from \"react\";\nimport { useState } from \"react\";\nimport { CopilotSidebar } from \"./copilot-sidebar\";\nimport { CopilotSidebarContext } from \"./sidebar-context\";\nimport { TooltipProvider } from \"../chat-components/ui/tooltip\";\n\nexport interface CopilotSidebarUIProviderProps {\n children: ReactNode;\n}\n\nexport function CopilotSidebarUIProvider({ children }: CopilotSidebarUIProviderProps) {\n const [sidebarOpen, setSidebarOpen] = useState(true);\n\n const toggleSidebar = useCallback(() => {\n setSidebarOpen((prev) => !prev);\n }, []);\n\n return (\n <CopilotSidebarContext.Provider value={{ isSidebarOpen: sidebarOpen, toggleSidebar }}>\n <>\n <div\n style={{\n height: \"100vh\",\n width: \"100vw\",\n position: \"relative\",\n }}\n >\n <div\n style={{\n overflowY: \"auto\",\n overflowX: \"hidden\",\n height: \"100%\",\n width: sidebarOpen ? \"calc(100% - 450px)\" : \"100%\",\n position: \"absolute\",\n transition: \"width 0.5s ease-in-out\", // New\n }}\n >\n <main>{children}</main>\n </div>\n <div\n style={{\n overflowY: \"auto\",\n height: \"100%\",\n width: \"450px\",\n position: \"absolute\",\n right: sidebarOpen ? \"0\" : \"-450px\",\n transition: \"right 0.5s ease-in-out\",\n }}\n >\n <TooltipProvider>\n <CopilotSidebar setSidebarOpen={setSidebarOpen} />\n </TooltipProvider>\n </div>\n {!sidebarOpen && (\n <button\n onClick={toggleSidebar}\n style={{\n position: \"absolute\",\n top: \"5%\",\n right: \"20px\",\n transform: \"translateY(-50%)\",\n transition: \"opacity 0.5s ease-in-out\",\n }}\n className=\"bg-slate-100 ring-2 ring-slate-600 font-semibold text-black p-2 rounded-lg shadow-lg\"\n >\n Open Copilot\n </button>\n )}\n </div>\n </>\n </CopilotSidebarContext.Provider>\n );\n}\n"]}
@@ -1,28 +0,0 @@
1
- import { cn } from './chunk-Q6YO7LDK.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(
13
- TooltipPrimitive.Content,
14
- __spreadValues({
15
- ref,
16
- sideOffset,
17
- className: cn(
18
- "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",
19
- className
20
- )
21
- }, props)
22
- );
23
- });
24
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
25
-
26
- export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
27
- //# sourceMappingURL=out.js.map
28
- //# sourceMappingURL=chunk-VGX2W5ZB.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat-components/ui/tooltip.tsx"],"names":[],"mappings":";;;;;;;;;AAEA,YAAY,WAAW;AACvB,YAAY,sBAAsB;AAchC;AAVF,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;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;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"]}
@@ -1,34 +0,0 @@
1
- import { Button } from './chunk-M3CZWJI3.mjs';
2
- import { IconCheck, IconCopy } from './chunk-2KAF7NKC.mjs';
3
- import { cn } from './chunk-Q6YO7LDK.mjs';
4
- import { useCopyToClipboard } from './chunk-POVINPXX.mjs';
5
- import { __objRest, __spreadProps, __spreadValues } from './chunk-MRXNTQOX.mjs';
6
- import { jsx, jsxs } from 'react/jsx-runtime';
7
-
8
- function ChatMessageActions(_a) {
9
- var _b = _a, { message, className } = _b, props = __objRest(_b, ["message", "className"]);
10
- const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2e3 });
11
- const onCopy = () => {
12
- if (isCopied)
13
- return;
14
- copyToClipboard(message.content);
15
- };
16
- return /* @__PURE__ */ jsx(
17
- "div",
18
- __spreadProps(__spreadValues({
19
- className: cn(
20
- "flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0",
21
- className
22
- )
23
- }, props), {
24
- children: /* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "icon", onClick: onCopy, children: [
25
- isCopied ? /* @__PURE__ */ jsx(IconCheck, {}) : /* @__PURE__ */ jsx(IconCopy, {}),
26
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Copy message" })
27
- ] })
28
- })
29
- );
30
- }
31
-
32
- export { ChatMessageActions };
33
- //# sourceMappingURL=out.js.map
34
- //# sourceMappingURL=chunk-Y2LXYPNP.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat-components/chat-message-actions.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA6BM,SACc,KADd;AAhBC,SAAS,mBAAmB,IAA2D;AAA3D,eAAE,WAAS,UAb9C,IAamC,IAAyB,kBAAzB,IAAyB,CAAvB,WAAS;AAC5C,QAAM,EAAE,UAAU,gBAAgB,IAAI,mBAAmB,EAAE,SAAS,IAAK,CAAC;AAE1E,QAAM,SAAS,MAAM;AACnB,QAAI;AAAU;AACd,oBAAgB,QAAQ,OAAO;AAAA,EACjC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI,QALL;AAAA,MAOC,+BAAC,UAAO,SAAQ,SAAQ,MAAK,QAAO,SAAS,QAC1C;AAAA,mBAAW,oBAAC,aAAU,IAAK,oBAAC,YAAS;AAAA,QACtC,oBAAC,UAAK,WAAU,WAAU,0BAAY;AAAA,SACxC;AAAA;AAAA,EACF;AAEJ","sourcesContent":["\"use client\";\n\nimport { type Message } from \"ai\";\n\nimport { Button } from \"./ui/button\";\nimport { IconCheck, IconCopy } from \"./ui/icons\";\nimport { useCopyToClipboard } from \"../../hooks/use-copy-to-clipboard\";\nimport { cn } from \"../../lib/utils\";\n\ninterface ChatMessageActionsProps extends React.ComponentProps<\"div\"> {\n message: Message;\n}\n\nexport function ChatMessageActions({ message, className, ...props }: ChatMessageActionsProps) {\n const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 });\n\n const onCopy = () => {\n if (isCopied) return;\n copyToClipboard(message.content);\n };\n\n return (\n <div\n className={cn(\n \"flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0\",\n className,\n )}\n {...props}\n >\n <Button variant=\"ghost\" size=\"icon\" onClick={onCopy}>\n {isCopied ? <IconCheck /> : <IconCopy />}\n <span className=\"sr-only\">Copy message</span>\n </Button>\n </div>\n );\n}\n"]}
@@ -1,21 +0,0 @@
1
- import * as React from 'react';
2
-
3
- // src/hooks/use-at-bottom.tsx
4
- function useAtBottom(offset = 0) {
5
- const [isAtBottom, setIsAtBottom] = React.useState(false);
6
- React.useEffect(() => {
7
- const handleScroll = () => {
8
- setIsAtBottom(window.innerHeight + window.scrollY >= document.body.offsetHeight - offset);
9
- };
10
- window.addEventListener("scroll", handleScroll, { passive: true });
11
- handleScroll();
12
- return () => {
13
- window.removeEventListener("scroll", handleScroll);
14
- };
15
- }, [offset]);
16
- return isAtBottom;
17
- }
18
-
19
- export { useAtBottom };
20
- //# sourceMappingURL=out.js.map
21
- //# sourceMappingURL=chunk-ZYC5YVDO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/use-at-bottom.tsx"],"names":[],"mappings":";AAAA,YAAY,WAAW;AAEhB,SAAS,YAAY,SAAS,GAAG;AACtC,QAAM,CAAC,YAAY,aAAa,IAAU,eAAS,KAAK;AAExD,EAAM,gBAAU,MAAM;AACpB,UAAM,eAAe,MAAM;AACzB,oBAAc,OAAO,cAAc,OAAO,WAAW,SAAS,KAAK,eAAe,MAAM;AAAA,IAC1F;AAEA,WAAO,iBAAiB,UAAU,cAAc,EAAE,SAAS,KAAK,CAAC;AACjE,iBAAa;AAEb,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,YAAY;AAAA,IACnD;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,SAAO;AACT","sourcesContent":["import * as React from \"react\";\n\nexport function useAtBottom(offset = 0) {\n const [isAtBottom, setIsAtBottom] = React.useState(false);\n\n React.useEffect(() => {\n const handleScroll = () => {\n setIsAtBottom(window.innerHeight + window.scrollY >= document.body.offsetHeight - offset);\n };\n\n window.addEventListener(\"scroll\", handleScroll, { passive: true });\n handleScroll();\n\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n };\n }, [offset]);\n\n return isAtBottom;\n}\n"]}