@copilotkit/react-ui 0.3.0 → 0.4.0

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 (228) hide show
  1. package/.turbo/turbo-build.log +192 -13
  2. package/CHANGELOG.md +11 -0
  3. package/LICENSE +21 -0
  4. package/dist/chunk-46XC7ODX.mjs +72 -0
  5. package/dist/chunk-46XC7ODX.mjs.map +1 -0
  6. package/dist/chunk-4HK6C362.mjs +106 -0
  7. package/dist/chunk-4HK6C362.mjs.map +1 -0
  8. package/dist/chunk-6LAC5RA2.mjs +28 -0
  9. package/dist/chunk-6LAC5RA2.mjs.map +1 -0
  10. package/dist/chunk-6LRNF2VU.mjs +12 -0
  11. package/dist/chunk-6LRNF2VU.mjs.map +1 -0
  12. package/dist/chunk-7NSRDJ5C.mjs +3 -0
  13. package/dist/chunk-7NSRDJ5C.mjs.map +1 -0
  14. package/dist/chunk-BB6IP63P.mjs +29 -0
  15. package/dist/chunk-BB6IP63P.mjs.map +1 -0
  16. package/dist/chunk-BIPCPNHG.mjs +18 -0
  17. package/dist/chunk-BIPCPNHG.mjs.map +1 -0
  18. package/dist/chunk-BS6RR2DJ.mjs +25 -0
  19. package/dist/chunk-BS6RR2DJ.mjs.map +1 -0
  20. package/dist/chunk-DOMJCSI6.mjs +26 -0
  21. package/dist/chunk-DOMJCSI6.mjs.map +1 -0
  22. package/dist/chunk-E2YBQYWM.mjs +69 -0
  23. package/dist/chunk-E2YBQYWM.mjs.map +1 -0
  24. package/dist/chunk-E5BOIXYO.mjs +45 -0
  25. package/dist/chunk-E5BOIXYO.mjs.map +1 -0
  26. package/dist/chunk-H4VKQGVU.mjs +3 -0
  27. package/dist/chunk-H4VKQGVU.mjs.map +1 -0
  28. package/dist/chunk-I2AB5FK4.mjs +123 -0
  29. package/dist/chunk-I2AB5FK4.mjs.map +1 -0
  30. package/dist/chunk-IU3WTXLQ.mjs +3 -0
  31. package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
  32. package/dist/chunk-KR7MH7XO.mjs +481 -0
  33. package/dist/chunk-KR7MH7XO.mjs.map +1 -0
  34. package/dist/chunk-KXJV37FS.mjs +33 -0
  35. package/dist/chunk-KXJV37FS.mjs.map +1 -0
  36. package/dist/chunk-MC6KTH4X.mjs +12 -0
  37. package/dist/chunk-MC6KTH4X.mjs.map +1 -0
  38. package/dist/chunk-MRXNTQOX.mjs +55 -0
  39. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  40. package/dist/chunk-N7KB3Z57.mjs +23 -0
  41. package/dist/chunk-N7KB3Z57.mjs.map +1 -0
  42. package/dist/chunk-QEXWZWJL.mjs +75 -0
  43. package/dist/chunk-QEXWZWJL.mjs.map +1 -0
  44. package/dist/chunk-RSONJDLO.mjs +28 -0
  45. package/dist/chunk-RSONJDLO.mjs.map +1 -0
  46. package/dist/chunk-SF56HSZW.mjs +48 -0
  47. package/dist/chunk-SF56HSZW.mjs.map +1 -0
  48. package/dist/chunk-TVTG3V4F.mjs +40 -0
  49. package/dist/chunk-TVTG3V4F.mjs.map +1 -0
  50. package/dist/chunk-U6NJWGTV.mjs +3 -0
  51. package/dist/chunk-U6NJWGTV.mjs.map +1 -0
  52. package/dist/chunk-V6QYUEJR.mjs +47 -0
  53. package/dist/chunk-V6QYUEJR.mjs.map +1 -0
  54. package/dist/chunk-VQNV2DHJ.mjs +142 -0
  55. package/dist/chunk-VQNV2DHJ.mjs.map +1 -0
  56. package/dist/chunk-VSNDSL6W.mjs +74 -0
  57. package/dist/chunk-VSNDSL6W.mjs.map +1 -0
  58. package/dist/chunk-XZFO2YEG.mjs +53 -0
  59. package/dist/chunk-XZFO2YEG.mjs.map +1 -0
  60. package/dist/components/chat-components/chat-list.d.ts +8 -0
  61. package/dist/components/chat-components/chat-list.mjs +13 -0
  62. package/dist/components/chat-components/chat-list.mjs.map +1 -0
  63. package/dist/components/chat-components/chat-message-actions.d.ts +8 -0
  64. package/dist/components/chat-components/chat-message-actions.mjs +8 -0
  65. package/dist/components/chat-components/chat-message-actions.mjs.map +1 -0
  66. package/dist/components/chat-components/chat-message.d.ts +8 -0
  67. package/dist/components/chat-components/chat-message.mjs +11 -0
  68. package/dist/components/chat-components/chat-message.mjs.map +1 -0
  69. package/dist/components/chat-components/chat-panel.d.ts +8 -0
  70. package/dist/components/chat-components/chat-panel.mjs +10 -0
  71. package/dist/components/chat-components/chat-panel.mjs.map +1 -0
  72. package/dist/components/chat-components/chat-scroll-anchor.d.ts +6 -0
  73. package/dist/components/chat-components/chat-scroll-anchor.mjs +5 -0
  74. package/dist/components/chat-components/chat-scroll-anchor.mjs.map +1 -0
  75. package/dist/components/chat-components/clear-history.d.ts +9 -0
  76. package/dist/components/chat-components/clear-history.mjs +81 -0
  77. package/dist/components/chat-components/clear-history.mjs.map +1 -0
  78. package/dist/components/chat-components/copilot-chat.d.ts +12 -0
  79. package/dist/components/chat-components/copilot-chat.mjs +22 -0
  80. package/dist/components/chat-components/copilot-chat.mjs.map +1 -0
  81. package/dist/components/chat-components/default-empty-screen.d.ts +8 -0
  82. package/dist/components/chat-components/default-empty-screen.mjs +8 -0
  83. package/dist/components/chat-components/default-empty-screen.mjs.map +1 -0
  84. package/dist/components/chat-components/external-link.d.ts +6 -0
  85. package/dist/components/chat-components/external-link.mjs +4 -0
  86. package/dist/components/chat-components/external-link.mjs.map +1 -0
  87. package/dist/components/chat-components/markdown.d.ts +6 -0
  88. package/dist/components/chat-components/markdown.mjs +4 -0
  89. package/dist/components/chat-components/markdown.mjs.map +1 -0
  90. package/dist/components/chat-components/prompt-form.d.ts +9 -0
  91. package/dist/components/chat-components/prompt-form.mjs +9 -0
  92. package/dist/components/chat-components/prompt-form.mjs.map +1 -0
  93. package/dist/components/chat-components/theme-toggle.d.ts +3 -0
  94. package/dist/components/chat-components/theme-toggle.mjs +36 -0
  95. package/dist/components/chat-components/theme-toggle.mjs.map +1 -0
  96. package/dist/components/chat-components/toaster.d.ts +1 -0
  97. package/dist/components/chat-components/toaster.mjs +4 -0
  98. package/dist/components/chat-components/toaster.mjs.map +1 -0
  99. package/dist/components/chat-components/ui/alert-dialog.d.ts +20 -0
  100. package/dist/components/chat-components/ui/alert-dialog.mjs +6 -0
  101. package/dist/components/chat-components/ui/alert-dialog.mjs.map +1 -0
  102. package/dist/components/chat-components/ui/badge.d.ts +12 -0
  103. package/dist/components/chat-components/ui/badge.mjs +31 -0
  104. package/dist/components/chat-components/ui/badge.mjs.map +1 -0
  105. package/dist/components/chat-components/ui/button.d.ts +14 -0
  106. package/dist/components/chat-components/ui/button.mjs +5 -0
  107. package/dist/components/chat-components/ui/button.mjs.map +1 -0
  108. package/dist/components/chat-components/ui/codeblock.d.ts +14 -0
  109. package/dist/components/chat-components/ui/codeblock.mjs +8 -0
  110. package/dist/components/chat-components/ui/codeblock.mjs.map +1 -0
  111. package/dist/components/chat-components/ui/dialog.d.ts +18 -0
  112. package/dist/components/chat-components/ui/dialog.mjs +119 -0
  113. package/dist/components/chat-components/ui/dialog.mjs.map +1 -0
  114. package/dist/components/chat-components/ui/dropdown-menu.d.ts +24 -0
  115. package/dist/components/chat-components/ui/dropdown-menu.mjs +84 -0
  116. package/dist/components/chat-components/ui/dropdown-menu.mjs.map +1 -0
  117. package/dist/components/chat-components/ui/icons.d.ts +33 -0
  118. package/dist/components/chat-components/ui/icons.mjs +5 -0
  119. package/dist/components/chat-components/ui/icons.mjs.map +1 -0
  120. package/dist/components/chat-components/ui/input.d.ts +7 -0
  121. package/dist/components/chat-components/ui/input.mjs +23 -0
  122. package/dist/components/chat-components/ui/input.mjs.map +1 -0
  123. package/dist/components/chat-components/ui/label.d.ts +8 -0
  124. package/dist/components/chat-components/ui/label.mjs +22 -0
  125. package/dist/components/chat-components/ui/label.mjs.map +1 -0
  126. package/dist/components/chat-components/ui/select.d.ts +13 -0
  127. package/dist/components/chat-components/ui/select.mjs +99 -0
  128. package/dist/components/chat-components/ui/select.mjs.map +1 -0
  129. package/dist/components/chat-components/ui/separator.d.ts +6 -0
  130. package/dist/components/chat-components/ui/separator.mjs +5 -0
  131. package/dist/components/chat-components/ui/separator.mjs.map +1 -0
  132. package/dist/components/chat-components/ui/sheet.d.ts +19 -0
  133. package/dist/components/chat-components/ui/sheet.mjs +109 -0
  134. package/dist/components/chat-components/ui/sheet.mjs.map +1 -0
  135. package/dist/components/chat-components/ui/switch.d.ts +6 -0
  136. package/dist/components/chat-components/ui/switch.mjs +27 -0
  137. package/dist/components/chat-components/ui/switch.mjs.map +1 -0
  138. package/dist/components/chat-components/ui/textarea.d.ts +7 -0
  139. package/dist/components/chat-components/ui/textarea.mjs +22 -0
  140. package/dist/components/chat-components/ui/textarea.mjs.map +1 -0
  141. package/dist/components/chat-components/ui/tooltip.d.ts +9 -0
  142. package/dist/components/chat-components/ui/tooltip.mjs +5 -0
  143. package/dist/components/chat-components/ui/tooltip.mjs.map +1 -0
  144. package/dist/components/index.d.ts +9 -0
  145. package/dist/components/index.mjs +26 -0
  146. package/dist/components/index.mjs.map +1 -0
  147. package/dist/components/sidebar/copilot-sidebar-ui-provider.d.ts +8 -0
  148. package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs +25 -0
  149. package/dist/components/sidebar/copilot-sidebar-ui-provider.mjs.map +1 -0
  150. package/dist/components/sidebar/copilot-sidebar.d.ts +6 -0
  151. package/dist/components/sidebar/copilot-sidebar.mjs +23 -0
  152. package/dist/components/sidebar/copilot-sidebar.mjs.map +1 -0
  153. package/dist/components/sidebar/sidebar-context.d.ts +9 -0
  154. package/dist/components/sidebar/sidebar-context.mjs +4 -0
  155. package/dist/components/sidebar/sidebar-context.mjs.map +1 -0
  156. package/dist/context/index.d.ts +1 -0
  157. package/dist/context/index.mjs +3 -0
  158. package/dist/context/index.mjs.map +1 -0
  159. package/dist/hooks/index.d.ts +1 -0
  160. package/dist/hooks/index.mjs +3 -0
  161. package/dist/hooks/index.mjs.map +1 -0
  162. package/dist/hooks/use-at-bottom.d.ts +3 -0
  163. package/dist/hooks/use-at-bottom.mjs +4 -0
  164. package/dist/hooks/use-at-bottom.mjs.map +1 -0
  165. package/dist/hooks/use-copy-to-clipboard.d.ts +9 -0
  166. package/dist/hooks/use-copy-to-clipboard.mjs +4 -0
  167. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -0
  168. package/dist/hooks/use-enter-submit.d.ts +8 -0
  169. package/dist/hooks/use-enter-submit.mjs +4 -0
  170. package/dist/hooks/use-enter-submit.mjs.map +1 -0
  171. package/dist/index.css +1249 -1
  172. package/dist/index.css.map +1 -0
  173. package/dist/index.d.ts +9 -36
  174. package/dist/index.mjs +29 -26
  175. package/dist/index.mjs.map +1 -0
  176. package/dist/lib/utils.d.ts +8 -0
  177. package/dist/lib/utils.mjs +4 -0
  178. package/dist/lib/utils.mjs.map +1 -0
  179. package/dist/types/index.d.ts +1 -0
  180. package/dist/types/index.mjs +3 -0
  181. package/dist/types/index.mjs.map +1 -0
  182. package/dist/types/types.d.ts +16 -0
  183. package/dist/types/types.mjs +3 -0
  184. package/dist/types/types.mjs.map +1 -0
  185. package/package.json +8 -8
  186. package/src/components/chat-components/chat-list.tsx +8 -8
  187. package/src/components/chat-components/chat-message-actions.tsx +14 -14
  188. package/src/components/chat-components/chat-message.tsx +26 -26
  189. package/src/components/chat-components/chat-panel.tsx +18 -18
  190. package/src/components/chat-components/chat-scroll-anchor.tsx +12 -12
  191. package/src/components/chat-components/clear-history.tsx +22 -22
  192. package/src/components/chat-components/copilot-chat.tsx +45 -50
  193. package/src/components/chat-components/default-empty-screen.tsx +24 -22
  194. package/src/components/chat-components/external-link.tsx +4 -4
  195. package/src/components/chat-components/markdown.tsx +3 -3
  196. package/src/components/chat-components/prompt-form.tsx +27 -27
  197. package/src/components/chat-components/theme-toggle.tsx +11 -11
  198. package/src/components/chat-components/toaster.tsx +2 -2
  199. package/src/components/chat-components/ui/alert-dialog.tsx +35 -35
  200. package/src/components/chat-components/ui/badge.tsx +14 -14
  201. package/src/components/chat-components/ui/button.tsx +26 -26
  202. package/src/components/chat-components/ui/codeblock.tsx +70 -70
  203. package/src/components/chat-components/ui/dialog.tsx +29 -29
  204. package/src/components/chat-components/ui/dropdown-menu.tsx +35 -35
  205. package/src/components/chat-components/ui/icons.tsx +96 -96
  206. package/src/components/chat-components/ui/input.tsx +7 -7
  207. package/src/components/chat-components/ui/label.tsx +10 -10
  208. package/src/components/chat-components/ui/select.tsx +30 -30
  209. package/src/components/chat-components/ui/separator.tsx +10 -10
  210. package/src/components/chat-components/ui/sheet.tsx +31 -31
  211. package/src/components/chat-components/ui/switch.tsx +9 -9
  212. package/src/components/chat-components/ui/textarea.tsx +7 -7
  213. package/src/components/chat-components/ui/tooltip.tsx +11 -11
  214. package/src/components/index.ts +6 -6
  215. package/src/components/sidebar/copilot-sidebar-ui-provider.tsx +34 -31
  216. package/src/components/sidebar/copilot-sidebar.tsx +9 -9
  217. package/src/components/sidebar/sidebar-context.tsx +5 -5
  218. package/src/context/index.ts +1 -1
  219. package/src/hooks/index.ts +1 -1
  220. package/src/hooks/use-at-bottom.tsx +10 -10
  221. package/src/hooks/use-copy-to-clipboard.tsx +14 -14
  222. package/src/hooks/use-enter-submit.tsx +9 -9
  223. package/src/index.tsx +4 -4
  224. package/src/lib/utils.ts +20 -20
  225. package/src/types/index.ts +1 -1
  226. package/src/types/types.ts +10 -10
  227. package/tsup.config.ts +3 -4
  228. package/dist/index.js +0 -53
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles.css"],"sourcesContent":["/*\n! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n.inset-x-0 {\n left: 0px;\n right: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.top-4 {\n top: 1rem;\n}\n.right-0 {\n right: 0px;\n}\n.right-4 {\n right: 1rem;\n}\n.left-2 {\n left: 0.5rem;\n}\n.z-50 {\n z-index: 50;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mb-8 {\n margin-bottom: 2rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.box-border {\n box-sizing: border-box;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.h-8 {\n height: 2rem;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-px {\n height: 1px;\n}\n.h-full {\n height: 100%;\n}\n.h-auto {\n height: auto;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-\\[1px\\] {\n height: 1px;\n}\n.h-\\[24px\\] {\n height: 24px;\n}\n.h-5 {\n height: 1.25rem;\n}\n.max-h-60 {\n max-height: 15rem;\n}\n.min-h-\\[60px\\] {\n min-height: 60px;\n}\n.min-h-\\[80px\\] {\n min-height: 80px;\n}\n.w-8 {\n width: 2rem;\n}\n.w-full {\n width: 100%;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-\\[1px\\] {\n width: 1px;\n}\n.w-\\[44px\\] {\n width: 44px;\n}\n.w-5 {\n width: 1.25rem;\n}\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.grow {\n flex-grow: 1;\n}\n.translate-y-1 {\n --tw-translate-y: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes pulse {\n\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.break-words {\n overflow-wrap: break-word;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.rounded-b-lg {\n border-bottom-right-radius: 0.5rem;\n border-bottom-left-radius: 0.5rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-transparent {\n border-color: transparent;\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-slate-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n.bg-slate-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(241 245 249 / var(--tw-bg-opacity));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.bg-zinc-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(39 39 42 / var(--tw-bg-opacity));\n}\n.bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.p-8 {\n padding: 2rem;\n}\n.p-0 {\n padding: 0px;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.py-\\[1\\.3rem\\] {\n padding-top: 1.3rem;\n padding-bottom: 1.3rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pr-6 {\n padding-right: 1.5rem;\n}\n.pr-4 {\n padding-right: 1rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.text-center {\n text-align: center;\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-semibold {\n font-weight: 600;\n}\n.font-medium {\n font-weight: 500;\n}\n.lowercase {\n text-transform: lowercase;\n}\n.leading-normal {\n line-height: 1.5;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.leading-6 {\n line-height: 1.5rem;\n}\n.leading-none {\n line-height: 1;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.text-zinc-100 {\n --tw-text-opacity: 1;\n color: rgb(244 244 245 / var(--tw-text-opacity));\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-slate-600 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity));\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-100 {\n transition-duration: 100ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.file\\:border-0::file-selector-button {\n border-width: 0px;\n}\n.file\\:bg-transparent::file-selector-button {\n background-color: transparent;\n}\n.file\\:text-sm::file-selector-button {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.file\\:font-medium::file-selector-button {\n font-weight: 500;\n}\n.last\\:mb-0:last-child {\n margin-bottom: 0px;\n}\n.focus-within\\:outline-none:focus-within {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.hover\\:bg-zinc-800:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(39 39 42 / var(--tw-bg-opacity));\n}\n.hover\\:text-gray-500:hover {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-indigo-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));\n}\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:ring-slate-700:focus-visible {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity));\n}\n.focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:ring-offset-0:focus-visible {\n --tw-ring-offset-width: 0px;\n}\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[state\\=checked\\]\\:translate-x-5[data-state=checked] {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n@media (min-width: 640px) {\n\n .sm\\:left-4 {\n left: 1rem;\n }\n\n .sm\\:right-4 {\n right: 1rem;\n }\n\n .sm\\:mt-0 {\n margin-top: 0px;\n }\n\n .sm\\:max-w-2xl {\n max-width: 42rem;\n }\n\n .sm\\:max-w-lg {\n max-width: 32rem;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:items-center {\n align-items: center;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:rounded-xl {\n border-radius: 0.75rem;\n }\n\n .sm\\:rounded-md {\n border-radius: 0.375rem;\n }\n\n .sm\\:rounded-lg {\n border-radius: 0.5rem;\n }\n\n .sm\\:px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n\n .sm\\:px-12 {\n padding-left: 3rem;\n padding-right: 3rem;\n }\n\n .sm\\:text-left {\n text-align: left;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n@media (min-width: 768px) {\n\n .md\\:absolute {\n position: absolute;\n }\n\n .md\\:-right-10 {\n right: -2.5rem;\n }\n\n .md\\:-top-2 {\n top: -0.5rem;\n }\n\n .md\\:my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n\n .md\\:opacity-0 {\n opacity: 0;\n }\n}\n"],"mappings":";AAOA;AAAA;AAAA;AAGE;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAEE;AAAA;AAWF;AACE;AACA;AACA;AACA;AACG;AACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAQF;AACE;AACA;AAAA;AASF;AACE;AACA;AACA;AAAA;AAOF;AACE;AACQ;AAAA;AAOV;AAAA;AAAA;AAAA;AAAA;AAAA;AAME;AACA;AAAA;AAOF;AACE;AACA;AAAA;AAOF;AAAA;AAEE;AAAA;AAQF;AAAA;AAAA;AAAA;AAIE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAOF;AACE;AAAA;AAOF;AAAA;AAEE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AASF;AACE;AACA;AACA;AAAA;AASF;AAAA;AAAA;AAAA;AAAA;AAKE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAOF;AAAA;AAEE;AAAA;AAQF;AAAA;AAAA;AAAA;AAIE;AACA;AACA;AAAA;AAOF;AACE;AAAA;AAOF;AACE;AAAA;AAOF;AACE;AAAA;AAOF;AAAA;AAEE;AAAA;AAQF;AACE;AACA;AAAA;AAOF;AACE;AAAA;AAQF;AACE;AACA;AAAA;AAOF;AACE;AAAA;AAOF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAAA;AAGE;AACA;AACA;AAAA;AAOF;AACE;AAAA;AAQF;AAAA;AACE;AACA;AAAA;AAGF;AAAA;AAEE;AACA;AAAA;AAOF;AAAA;AAEE;AAAA;AAMF;AACE;AAAA;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQE;AACA;AAAA;AAOF;AAAA;AAEE;AACA;AAAA;AAIF;AACE;AAAA;AAGF;AAAA;AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AAAA;AAGI;AAAA;AAAA;AAGJ;AACE;AAAA;AAEF;AAAA;AAGI;AAAA;AAAA;AAGJ;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACG;AACK;AAAA;AAEV;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACQ;AAAA;AAEV;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAEF;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAAA;AAGJ;AAEE;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAAA;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,36 +1,9 @@
1
- import * as React from 'react';
2
- import React__default, { ReactNode } from 'react';
3
- import { UseCopilotChatOptions } from '@copilotkit/react-core';
4
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
5
-
6
- interface EmptyScreenProps {
7
- setInput: React__default.Dispatch<React__default.SetStateAction<string>>;
8
- }
9
-
10
- interface ChatComponentInjectionsProps {
11
- EmptyScreen?: React__default.FC<EmptyScreenProps>;
12
- }
13
- interface CopilotChatProps extends UseCopilotChatOptions, ChatComponentInjectionsProps {
14
- }
15
- declare function CopilotChat({ id, initialMessages, makeSystemMessage, EmptyScreen }: CopilotChatProps): JSX.Element;
16
-
17
- declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
18
- declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
19
-
20
- interface CopilotSidebarUIProviderProps {
21
- children: ReactNode;
22
- }
23
- declare function CopilotSidebarUIProvider({ children }: CopilotSidebarUIProviderProps): JSX.Element;
24
-
25
- interface SidebarProps {
26
- setSidebarOpen: (open: boolean) => void;
27
- }
28
- declare function CopilotSidebar(props: SidebarProps): JSX.Element;
29
-
30
- interface CopilotSidebarContextType {
31
- isSidebarOpen: boolean;
32
- toggleSidebar: () => void;
33
- }
34
- declare const CopilotSidebarContext: React.Context<CopilotSidebarContextType>;
35
-
36
- export { CopilotChat, CopilotSidebar, CopilotSidebarContext, CopilotSidebarContextType, CopilotSidebarUIProvider, Tooltip, TooltipProvider };
1
+ export { CopilotChat } from './components/chat-components/copilot-chat.js';
2
+ export { Tooltip, TooltipProvider } from './components/chat-components/ui/tooltip.js';
3
+ export { CopilotSidebarUIProvider } from './components/sidebar/copilot-sidebar-ui-provider.js';
4
+ export { CopilotSidebar } from './components/sidebar/copilot-sidebar.js';
5
+ export { CopilotSidebarContext, CopilotSidebarContextType } from './components/sidebar/sidebar-context.js';
6
+ import 'react';
7
+ import './components/chat-components/default-empty-screen.js';
8
+ import '@copilotkit/react-core';
9
+ import '@radix-ui/react-tooltip';
package/dist/index.mjs CHANGED
@@ -1,26 +1,29 @@
1
- import * as V from 'react';
2
- import { memo, createContext, useState, useCallback, useRef } from 'react';
3
- import * as O from '@radix-ui/react-separator';
4
- import { clsx } from 'clsx';
5
- import { customAlphabet } from 'nanoid';
6
- import { twMerge } from 'tailwind-merge';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import Ye from 'remark-gfm';
9
- import $e from 'remark-math';
10
- import { Prism } from 'react-syntax-highlighter';
11
- import { coldarkDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';
12
- import { Slot } from '@radix-ui/react-slot';
13
- import { cva } from 'class-variance-authority';
14
- import Ge from 'react-markdown';
15
- import Qe from 'react-textarea-autosize';
16
- import * as w from '@radix-ui/react-tooltip';
17
- import eo from 'next/link';
18
- import { useInView } from 'react-intersection-observer';
19
- import { useCopilotChat } from '@copilotkit/react-core';
20
- import { XMarkIcon } from '@heroicons/react/24/outline';
21
-
22
- var Se=Object.defineProperty,Me=Object.defineProperties;var Le=Object.getOwnPropertyDescriptors;var I=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable;var Q=(e,o,r)=>o in e?Se(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))ee.call(o,r)&&Q(e,r,o[r]);if(I)for(var r of I(o))oe.call(o,r)&&Q(e,r,o[r]);return e},f=(e,o)=>Me(e,Le(o));var p=(e,o)=>{var r={};for(var t in e)ee.call(e,t)&&o.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&I)for(var t of I(e))o.indexOf(t)<0&&oe.call(e,t)&&(r[t]=e[t]);return r};var S=(e,o,r)=>new Promise((t,a)=>{var i=d=>{try{l(r.next(d));}catch(h){a(h);}},m=d=>{try{l(r.throw(d));}catch(h){a(h);}},l=d=>d.done?t(d.value):Promise.resolve(d.value).then(i,m);l((r=r.apply(e,o)).next());});function s(...e){return twMerge(clsx(e))}customAlphabet("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",7);var U=V.forwardRef((i,a)=>{var m=i,{className:e,orientation:o="horizontal",decorative:r=!0}=m,t=p(m,["className","orientation","decorative"]);return jsx(O.Root,n({ref:a,decorative:r,orientation:o,className:s("shrink-0 bg-border",o==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e)},t))});U.displayName=O.Root.displayName;function T({timeout:e=2e3}){let[o,r]=V.useState(!1);return {isCopied:o,copyToClipboard:a=>{var i;typeof window=="undefined"||!((i=navigator.clipboard)!=null&&i.writeText)||!a||navigator.clipboard.writeText(a).then(()=>{r(!0),setTimeout(()=>{r(!1);},e);});}}}function ae(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsxs("svg",f(n({fill:"currentColor",viewBox:"0 0 24 24",role:"img",xmlns:"http://www.w3.org/2000/svg",className:s("h-4 w-4",e)},o),{children:[jsx("title",{children:"OpenAI icon"}),jsx("path",{d:"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"})]}))}function ne(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"m221.66 133.66-72 72a8 8 0 0 1-11.32-11.32L196.69 136H40a8 8 0 0 1 0-16h156.69l-58.35-58.34a8 8 0 0 1 11.32-11.32l72 72a8 8 0 0 1 0 11.32Z"})}))}function se(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8ZM72 96a56 56 0 1 1 56 56 56.06 56.06 0 0 1-56-56Z"})}))}function ie(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M224 128a8 8 0 0 1-8 8h-80v80a8 8 0 0 1-16 0v-80H40a8 8 0 0 1 0-16h80V40a8 8 0 0 1 16 0v80h80a8 8 0 0 1 8 8Z"})}))}function le(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M200 32v144a8 8 0 0 1-8 8H67.31l34.35 34.34a8 8 0 0 1-11.32 11.32l-48-48a8 8 0 0 1 0-11.32l48-48a8 8 0 0 1 11.32 11.32L67.31 168H184V32a8 8 0 0 1 16 0Z"})}))}function pe(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M197.67 186.37a8 8 0 0 1 0 11.29C196.58 198.73 170.82 224 128 224c-37.39 0-64.53-22.4-80-39.85V208a8 8 0 0 1-16 0v-48a8 8 0 0 1 8-8h48a8 8 0 0 1 0 16H55.44C67.76 183.35 93 208 128 208c36 0 58.14-21.46 58.36-21.68a8 8 0 0 1 11.31.05ZM216 40a8 8 0 0 0-8 8v23.85C192.53 54.4 165.39 32 128 32c-42.82 0-68.58 25.27-69.66 26.34a8 8 0 0 0 11.3 11.34C69.86 69.46 92 48 128 48c35 0 60.24 24.65 72.56 40H168a8 8 0 0 0 0 16h48a8 8 0 0 0 8-8V48a8 8 0 0 0-8-8Z"})}))}function ce(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm0 192a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88Zm24-120h-48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8Zm-8 48h-32v-32h32Z"})}))}function B(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8Zm-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z"})}))}function Z(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"m229.66 77.66-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z"})}))}function me(r){var t=r,{className:e}=t,o=p(t,["className"]);return jsx("svg",f(n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",fill:"currentColor",className:s("h-4 w-4",e)},o),{children:jsx("path",{d:"M224 152v56a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-56a8 8 0 0 1 16 0v56h160v-56a8 8 0 0 1 16 0Zm-101.66 5.66a8 8 0 0 0 11.32 0l40-40a8 8 0 0 0-11.32-11.32L136 132.69V40a8 8 0 0 0-16 0v92.69l-26.34-26.35a8 8 0 0 0-11.32 11.32Z"})}))}var D=cva("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",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-md hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"shadow-none hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 shadow-none hover:underline"},size:{default:"h-8 px-4 py-2",sm:"h-8 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-8 w-8 p-0"}},defaultVariants:{variant:"default",size:"default"}}),u=V.forwardRef((m,i)=>{var l=m,{className:e,variant:o,size:r,asChild:t=!1}=l,a=p(l,["className","variant","size","asChild"]);return jsx(t?Slot:"button",n({className:s(D({variant:o,size:r,className:e})),ref:i},a))});u.displayName="Button";var Fe={javascript:".js",python:".py",java:".java",c:".c",cpp:".cpp","c++":".cpp","c#":".cs",ruby:".rb",php:".php",swift:".swift","objective-c":".m",kotlin:".kt",typescript:".ts",go:".go",perl:".pl",rust:".rs",scala:".scala",haskell:".hs",lua:".lua",shell:".sh",sql:".sql",html:".html",css:".css"},Ke=(e,o=!1)=>{let r="ABCDEFGHJKLMNPQRSTUVWXY3456789",t="";for(let a=0;a<e;a++)t+=r.charAt(Math.floor(Math.random()*r.length));return o?t.toLowerCase():t},F=memo(({language:e,value:o})=>{let{isCopied:r,copyToClipboard:t}=T({timeout:2e3});return jsxs("div",{className:"codeblock relative w-full bg-zinc-950 font-sans",children:[jsxs("div",{className:"flex w-full items-center justify-between bg-zinc-800 px-6 py-2 pr-4 text-zinc-100",children:[jsx("span",{className:"text-xs lowercase",children:e}),jsxs("div",{className:"flex items-center space-x-1",children:[jsxs(u,{variant:"ghost",className:"hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",onClick:()=>{if(typeof window=="undefined")return;let m=Fe[e]||".file",l=`file-${Ke(3,!0)}${m}`,d=window.prompt("Enter file name",l);if(!d)return;let h=new Blob([o],{type:"text/plain"}),C=URL.createObjectURL(h),N=document.createElement("a");N.download=d,N.href=C,N.style.display="none",document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(C);},size:"icon",children:[jsx(me,{}),jsx("span",{className:"sr-only",children:"Download"})]}),jsxs(u,{variant:"ghost",size:"icon",className:"text-xs hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",onClick:()=>{r||t(o);},children:[r?jsx(Z,{}):jsx(B,{}),jsx("span",{className:"sr-only",children:"Copy code"})]})]})]}),jsx(Prism,{language:e,style:coldarkDark,PreTag:"div",showLineNumbers:!0,customStyle:{margin:0,width:"100%",background:"transparent",padding:"1.5rem 1rem"},codeTagProps:{style:{fontSize:"0.9rem",fontFamily:"var(--font-mono)"}},children:o})]})});F.displayName="CodeBlock";var fe=memo(Ge,(e,o)=>e.children===o.children&&e.className===o.className);function ue(t){var a=t,{message:e,className:o}=a,r=p(a,["message","className"]);let{isCopied:i,copyToClipboard:m}=T({timeout:2e3}),l=()=>{i||m(e.content);};return jsx("div",f(n({className:s("flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0",o)},r),{children:jsxs(u,{variant:"ghost",size:"icon",onClick:l,children:[i?jsx(Z,{}):jsx(B,{}),jsx("span",{className:"sr-only",children:"Copy message"})]})}))}function he(r){var t=r,{message:e}=t,o=p(t,["message"]);return jsxs("div",f(n({className:s("group relative mb-4 flex items-start")},o),{children:[jsx("div",{className:s("flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow",e.role==="user"?"bg-background":"bg-primary text-primary-foreground"),children:e.role==="user"?jsx(se,{}):jsx(ae,{})}),jsxs("div",{className:"ml-4 flex-1 space-y-2 overflow-hidden px-1",children:[jsx(fe,{className:"prose break-words dark:prose-invert prose-p:leading-relaxed prose-pre:p-0 text-sm",remarkPlugins:[Ye,$e],components:{p({children:a}){return jsx("p",{className:"mb-2 last:mb-0",children:a})},code(d){var h=d,{children:a,className:i,inline:m}=h,l=p(h,["children","className","inline"]);if(a.length){if(a[0]=="\u258D")return jsx("span",{className:"mt-1 animate-pulse cursor-default",children:"\u258D"});a[0]=a[0].replace("`\u258D`","\u258D");}let C=/language-(\w+)/.exec(i||"");return m?jsx("code",f(n({className:i},l),{children:a})):jsx(F,n({language:C&&C[1]||"",value:String(a).replace(/\n$/,"")},l),Math.random())}},children:e.content}),jsx(ue,{message:e})]})]}))}function ve({messages:e}){let o=e.filter(r=>r.role!=="system");return o.length?jsx("div",{className:"relative mx-auto max-w-2xl px-0",children:o.map((r,t)=>jsxs("div",{children:[jsx(he,{message:r}),t<o.length-1&&jsx(U,{className:"my-4 md:my-4"})]},t))}):null}function we(){let e=useRef(null);return {formRef:e,onKeyDown:r=>{var t;r.key==="Enter"&&!r.shiftKey&&!r.nativeEvent.isComposing&&((t=e.current)==null||t.requestSubmit(),r.preventDefault());}}}var Xe=w.Provider,A=w.Root,j=w.Trigger,E=V.forwardRef((a,t)=>{var i=a,{className:e,sideOffset:o=4}=i,r=p(i,["className","sideOffset"]);return jsx(w.Content,n({ref:t,sideOffset:o,className:s("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",e)},r))});E.displayName=w.Content.displayName;function xe({onSubmit:e,input:o,setInput:r,isLoading:t}){let{formRef:a,onKeyDown:i}=we(),m=V.useRef(null);return V.useEffect(()=>{m.current&&m.current.focus();},[]),jsx("form",{onSubmit:l=>S(this,null,function*(){l.preventDefault(),o!=null&&o.trim()&&(r(""),yield e(o));}),ref:a,children:jsxs("div",{className:"relative flex max-h-60 w-full grow flex-col overflow-hidden bg-background px-8 sm:rounded-md border sm:px-12",children:[jsxs(A,{children:[jsx(j,{asChild:!0,children:jsxs(eo,{href:"/",className:s(D({size:"sm",variant:"outline"}),"absolute left-0 top-4 h-8 w-8 rounded-full bg-background p-0 sm:left-4"),children:[jsx(ie,{}),jsx("span",{className:"sr-only",children:"New Chat"})]})}),jsx(E,{children:"New Chat"})]}),jsx(Qe,{ref:m,tabIndex:0,onKeyDown:i,rows:1,value:o,onChange:l=>r(l.target.value),placeholder:"Send a message.",spellCheck:!1,className:"min-h-[60px] w-full resize-none bg-transparent px-4 py-[1.3rem] focus-within:outline-none sm:text-sm"}),jsx("div",{className:"absolute right-0 top-4 sm:right-4",children:jsxs(A,{children:[jsx(j,{asChild:!0,children:jsxs(u,{type:"submit",size:"icon",disabled:t||o==="",className:" bg-slate-300",children:[jsx(le,{}),jsx("span",{className:"sr-only",children:"Send message"})]})}),jsx(E,{children:"Send message"})]})})]})})}function be({id:e,isLoading:o,stop:r,append:t,reload:a,input:i,setInput:m,messages:l}){return jsx("div",{className:"inset-x-0 bottom-0 bg-gradient-to-b from-muted/10 from-10% to-muted/30 to-50% mt-4 mb-8",style:{width:"100%",overflow:"hidden",boxSizing:"border-box"},children:jsxs("div",{className:"mx-auto sm:max-w-2xl sm:px-4",children:[jsx("div",{className:"flex h-10 items-center justify-center mb-4",children:o?jsxs(u,{variant:"outline",onClick:()=>r(),className:"bg-background",children:[jsx(ce,{className:"mr-2"}),"Stop generating"]}):(l==null?void 0:l.length)>0&&jsxs(u,{variant:"outline",onClick:()=>a(),className:"bg-background",children:[jsx(pe,{className:"mr-2"}),"Regenerate response"]})}),jsx("div",{className:"space-y-4 border-2 bg-background px-4 py-2 shadow-lg sm:rounded-xl md:py-4",children:jsx(xe,{onSubmit:d=>S(this,null,function*(){yield t({id:e,content:d,role:"user"});}),input:i,setInput:m,isLoading:o})})]})})}function Y({href:e,children:o}){return jsxs("a",{href:e,target:"_blank",className:"inline-flex flex-1 justify-center gap-1 leading-4 hover:underline",children:[jsx("span",{children:o}),jsx("svg",{"aria-hidden":"true",height:"7",viewBox:"0 0 6 6",width:"7",className:"opacity-70",children:jsx("path",{d:"M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z",fill:"currentColor"})})]})}var to=[{heading:"Explain technical concepts",message:'What is a "serverless function"?'},{heading:"Summarize an article",message:`Summarize the following article for a 2nd grader:
23
- `},{heading:"Draft an email",message:`Draft an email to my boss about the following:
24
- `}],ye=e=>jsx("div",{className:"mx-auto max-w-2xl px-4",children:jsxs("div",{className:"rounded-lg border bg-background p-8",children:[jsx("h1",{className:"mb-2 text-lg font-semibold",children:"Welcome to Copilot! \u{1F44B}"}),jsxs("p",{className:"mb-2 leading-normal text-muted-foreground",children:["This is a Copilot built with"," ",jsx(Y,{href:"https://recursively.ai",children:"recursively.ai's"})," ",jsx(Y,{href:"https://github.com/RecursivelyAI/CopilotKit",children:"CopilotKit"})," ","."]}),jsx("p",{className:"leading-normal text-muted-foreground",children:"You can start a conversation here or try the following examples:"}),jsx("div",{className:"mt-4 flex flex-col items-start space-y-2",children:to.map((o,r)=>jsxs(u,{variant:"link",className:"h-auto p-0 text-base",onClick:()=>e.setInput(o.message),children:[jsx(ne,{className:"mr-2 text-muted-foreground"}),o.heading]},r))})]})});function Ne(e=0){let[o,r]=V.useState(!1);return V.useEffect(()=>{let t=()=>{r(window.innerHeight+window.scrollY>=document.body.offsetHeight-e);};return window.addEventListener("scroll",t,{passive:!0}),t(),()=>{window.removeEventListener("scroll",t);}},[e]),o}function Pe({trackVisibility:e}){let o=Ne(),{ref:r,entry:t,inView:a}=useInView({trackVisibility:e,delay:100,rootMargin:"0px 0px -150px 0px"});return V.useEffect(()=>{o&&e&&!a&&(t==null||t.target.scrollIntoView({block:"start"}));},[a,t,o,e]),jsx("div",{ref:r,className:"h-px w-full"})}function q({id:e,initialMessages:o,makeSystemMessage:r,EmptyScreen:t=ye}){let{visibleMessages:a,append:i,reload:m,stop:l,isLoading:d,input:h,setInput:C}=useCopilotChat({id:e,initialMessages:o,makeSystemMessage:r});return jsxs("div",{className:"w-full h-full flex flex-col overflow-hidden box-border items-start",children:[jsx("div",{className:"pt-5 px-5 overflow-y-auto overflow-x-hidden w-full flex-grow",children:a.length?jsxs("div",{className:"pl-0 pr-6",children:[jsx(ve,{messages:a}),jsx(Pe,{trackVisibility:d})]}):jsx(t,{setInput:C})}),jsx("div",{className:"flex-shrink-0 w-full",children:jsx(be,{id:e,isLoading:d,stop:l,append:i,reload:m,messages:a,input:h,setInput:C})})]})}function X(e){return jsxs("div",{className:"shadow-lg bg-white flex flex-col",style:{width:"100%",height:"100%"},children:[jsx(io,n({},e)),jsx(q,{})]})}function io(e){return jsxs("div",{className:"py-6 bg-white flex items-center justify-between px-4",children:[jsx("h1",{className:"text-base font-semibold leading-6 text-gray-900",children:"Copilot Chat"}),jsx("div",{className:"ml-3 flex h-7 items-center",children:jsxs("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",onClick:()=>e.setSidebarOpen(!1),children:[jsx("span",{className:"sr-only",children:"Close panel"}),jsx(XMarkIcon,{className:"h-6 w-6","aria-hidden":"true"})]})})]})}var _=createContext({isSidebarOpen:!1,toggleSidebar:()=>{}});function mo({children:e}){let[o,r]=useState(!0),t=useCallback(()=>{r(a=>!a);},[]);return jsx(_.Provider,{value:{isSidebarOpen:o,toggleSidebar:t},children:jsx(Fragment,{children:jsxs("div",{style:{height:"100vh",width:"100vw",position:"relative"},children:[jsx("div",{style:{overflowY:"auto",overflowX:"hidden",height:"100%",width:o?"calc(100% - 450px)":"100%",position:"absolute",transition:"width 0.5s ease-in-out"},children:jsx("main",{children:e})}),jsx("div",{style:{overflowY:"auto",height:"100%",width:"450px",position:"absolute",right:o?"0":"-450px",transition:"right 0.5s ease-in-out"},children:jsx(X,{setSidebarOpen:r})}),!o&&jsx("button",{onClick:t,style:{position:"absolute",top:"5%",right:"20px",transform:"translateY(-50%)",transition:"opacity 0.5s ease-in-out"},className:"bg-slate-100 ring-2 ring-slate-600 font-semibold text-black p-2 rounded-lg shadow-lg",children:"Open Copilot"})]})})})}
25
-
26
- export { q as CopilotChat, X as CopilotSidebar, _ as CopilotSidebarContext, mo as CopilotSidebarUIProvider, A as Tooltip, Xe as TooltipProvider };
1
+ import './chunk-7NSRDJ5C.mjs';
2
+ import './chunk-H4VKQGVU.mjs';
3
+ import './chunk-U6NJWGTV.mjs';
4
+ export { CopilotSidebarUIProvider } from './chunk-46XC7ODX.mjs';
5
+ export { CopilotSidebar } from './chunk-SF56HSZW.mjs';
6
+ export { CopilotSidebarContext } from './chunk-MC6KTH4X.mjs';
7
+ export { CopilotChat } from './chunk-XZFO2YEG.mjs';
8
+ import './chunk-VSNDSL6W.mjs';
9
+ import './chunk-KXJV37FS.mjs';
10
+ import './chunk-BB6IP63P.mjs';
11
+ import './chunk-DOMJCSI6.mjs';
12
+ import './chunk-QEXWZWJL.mjs';
13
+ import './chunk-VQNV2DHJ.mjs';
14
+ import './chunk-6LRNF2VU.mjs';
15
+ import './chunk-E5BOIXYO.mjs';
16
+ import './chunk-E2YBQYWM.mjs';
17
+ import './chunk-4HK6C362.mjs';
18
+ export { Tooltip, TooltipProvider } from './chunk-BS6RR2DJ.mjs';
19
+ import './chunk-RSONJDLO.mjs';
20
+ import './chunk-V6QYUEJR.mjs';
21
+ import './chunk-KR7MH7XO.mjs';
22
+ import './chunk-N7KB3Z57.mjs';
23
+ import './chunk-6LAC5RA2.mjs';
24
+ import './chunk-BIPCPNHG.mjs';
25
+ import './chunk-IU3WTXLQ.mjs';
26
+ import './chunk-TVTG3V4F.mjs';
27
+ import './chunk-MRXNTQOX.mjs';
28
+ //# sourceMappingURL=out.js.map
29
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+ declare const nanoid: (size?: number | undefined) => string;
5
+ declare function fetcher<JSON = any>(input: RequestInfo, init?: RequestInit): Promise<JSON>;
6
+ declare function formatDate(input: string | number | Date): string;
7
+
8
+ export { cn, fetcher, formatDate, nanoid };
@@ -0,0 +1,4 @@
1
+ export { cn, fetcher, formatDate, nanoid } from '../chunk-TVTG3V4F.mjs';
2
+ import '../chunk-MRXNTQOX.mjs';
3
+ //# sourceMappingURL=out.js.map
4
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,3 @@
1
+ import '../chunk-7NSRDJ5C.mjs';
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { Message } from 'ai';
2
+
3
+ interface Chat extends Record<string, any> {
4
+ id: string;
5
+ title: string;
6
+ createdAt: Date;
7
+ userId: string;
8
+ path: string;
9
+ messages: Message[];
10
+ sharePath?: string;
11
+ }
12
+ type ServerActionResult<Result> = Promise<Result | {
13
+ error: string;
14
+ }>;
15
+
16
+ export { Chat, ServerActionResult };
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.3.0",
7
+ "version": "0.4.0",
8
8
  "sideEffects": [
9
9
  "**/*.css"
10
10
  ],
@@ -26,9 +26,9 @@
26
26
  "react": "^18.2.0",
27
27
  "tsup": "^6.1.3",
28
28
  "typescript": "^4.9.4",
29
- "tsconfig": "0.1.0",
30
- "eslint-config-custom": "0.1.0",
31
- "tailwind-config": "0.1.0"
29
+ "tailwind-config": "0.1.0",
30
+ "tsconfig": "0.2.0",
31
+ "eslint-config-custom": "0.1.0"
32
32
  },
33
33
  "dependencies": {
34
34
  "@heroicons/react": "^2.0.18",
@@ -41,7 +41,7 @@
41
41
  "@radix-ui/react-slot": "^1.0.2",
42
42
  "@radix-ui/react-switch": "^1.0.3",
43
43
  "@radix-ui/react-tooltip": "^1.0.6",
44
- "ai": "^2.1.19",
44
+ "ai": "^2.1.22",
45
45
  "class-variance-authority": "^0.6.1",
46
46
  "clsx": "^1.2.1",
47
47
  "nanoid": "^4.0.2",
@@ -56,11 +56,11 @@
56
56
  "remark-math": "^5.1.1",
57
57
  "tailwind": "^4.0.0",
58
58
  "tailwind-merge": "^1.13.2",
59
- "@copilotkit/react-core": "0.3.0"
59
+ "@copilotkit/react-core": "0.4.0"
60
60
  },
61
61
  "scripts": {
62
- "build": "tsup src/index.tsx --format esm,cjs --dts --external react",
63
- "dev": "tsup src/index.tsx --format esm,cjs --dts --external react --watch",
62
+ "build": "tsup --treeshake",
63
+ "dev": "tsup --watch --no-splitting",
64
64
  "check-types": "tsc --noEmit",
65
65
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf .next"
66
66
  }
@@ -1,20 +1,20 @@
1
- import { type Message } from 'ai'
1
+ import { type Message } from "ai";
2
2
 
3
- import { Separator } from './ui/separator'
4
- import { ChatMessage } from './chat-message'
3
+ import { Separator } from "./ui/separator";
4
+ import { ChatMessage } from "./chat-message";
5
5
 
6
6
  export interface ChatList {
7
- messages: Message[]
7
+ messages: Message[];
8
8
  }
9
9
 
10
10
  export function ChatList({ messages }: ChatList) {
11
11
  // we don't want to display system messages
12
12
  const displayedMessages = messages.filter(
13
- message => message.role !== 'system'
14
- )
13
+ (message) => message.role !== "system"
14
+ );
15
15
 
16
16
  if (!displayedMessages.length) {
17
- return null
17
+ return null;
18
18
  }
19
19
 
20
20
  return (
@@ -28,5 +28,5 @@ export function ChatList({ messages }: ChatList) {
28
28
  </div>
29
29
  ))}
30
30
  </div>
31
- )
31
+ );
32
32
  }
@@ -1,14 +1,14 @@
1
- 'use client'
1
+ "use client";
2
2
 
3
- import { type Message } from 'ai'
3
+ import { type Message } from "ai";
4
4
 
5
- import { Button } from './ui/button'
6
- import { IconCheck, IconCopy } from './ui/icons'
7
- import { useCopyToClipboard } from '../../hooks/use-copy-to-clipboard'
8
- import { cn } from '../../lib/utils'
5
+ import { Button } from "./ui/button";
6
+ import { IconCheck, IconCopy } from "./ui/icons";
7
+ import { useCopyToClipboard } from "../../hooks/use-copy-to-clipboard";
8
+ import { cn } from "../../lib/utils";
9
9
 
10
- interface ChatMessageActionsProps extends React.ComponentProps<'div'> {
11
- message: Message
10
+ interface ChatMessageActionsProps extends React.ComponentProps<"div"> {
11
+ message: Message;
12
12
  }
13
13
 
14
14
  export function ChatMessageActions({
@@ -16,17 +16,17 @@ export function ChatMessageActions({
16
16
  className,
17
17
  ...props
18
18
  }: ChatMessageActionsProps) {
19
- const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 })
19
+ const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 });
20
20
 
21
21
  const onCopy = () => {
22
- if (isCopied) return
23
- copyToClipboard(message.content)
24
- }
22
+ if (isCopied) return;
23
+ copyToClipboard(message.content);
24
+ };
25
25
 
26
26
  return (
27
27
  <div
28
28
  className={cn(
29
- 'flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0',
29
+ "flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0",
30
30
  className
31
31
  )}
32
32
  {...props}
@@ -36,5 +36,5 @@ export function ChatMessageActions({
36
36
  <span className="sr-only">Copy message</span>
37
37
  </Button>
38
38
  </div>
39
- )
39
+ );
40
40
  }
@@ -1,29 +1,29 @@
1
- import { Message } from 'ai'
2
- import remarkGfm from 'remark-gfm'
3
- import remarkMath from 'remark-math'
1
+ import { Message } from "ai";
2
+ import remarkGfm from "remark-gfm";
3
+ import remarkMath from "remark-math";
4
4
 
5
- import { cn } from '../../lib/utils'
6
- import { CodeBlock } from './ui/codeblock'
7
- import { MemoizedReactMarkdown } from './markdown'
8
- import { IconOpenAI, IconUser } from './ui/icons'
9
- import { ChatMessageActions } from './chat-message-actions'
5
+ import { cn } from "../../lib/utils";
6
+ import { CodeBlock } from "./ui/codeblock";
7
+ import { MemoizedReactMarkdown } from "./markdown";
8
+ import { IconOpenAI, IconUser } from "./ui/icons";
9
+ import { ChatMessageActions } from "./chat-message-actions";
10
10
 
11
11
  export interface ChatMessageProps {
12
- message: Message
12
+ message: Message;
13
13
  }
14
14
 
15
15
  export function ChatMessage({ message, ...props }: ChatMessageProps) {
16
16
  return (
17
- <div className={cn('group relative mb-4 flex items-start')} {...props}>
17
+ <div className={cn("group relative mb-4 flex items-start")} {...props}>
18
18
  <div
19
19
  className={cn(
20
- 'flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow',
21
- message.role === 'user'
22
- ? 'bg-background'
23
- : 'bg-primary text-primary-foreground'
20
+ "flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow",
21
+ message.role === "user"
22
+ ? "bg-background"
23
+ : "bg-primary text-primary-foreground"
24
24
  )}
25
25
  >
26
- {message.role === 'user' ? <IconUser /> : <IconOpenAI />}
26
+ {message.role === "user" ? <IconUser /> : <IconOpenAI />}
27
27
  </div>
28
28
  <div className="ml-4 flex-1 space-y-2 overflow-hidden px-1">
29
29
  <MemoizedReactMarkdown
@@ -31,38 +31,38 @@ export function ChatMessage({ message, ...props }: ChatMessageProps) {
31
31
  remarkPlugins={[remarkGfm, remarkMath]}
32
32
  components={{
33
33
  p({ children }) {
34
- return <p className="mb-2 last:mb-0">{children}</p>
34
+ return <p className="mb-2 last:mb-0">{children}</p>;
35
35
  },
36
36
  code({ children, className, inline, ...props }) {
37
37
  if (children.length) {
38
- if (children[0] == '') {
38
+ if (children[0] == "") {
39
39
  return (
40
40
  <span className="mt-1 animate-pulse cursor-default">▍</span>
41
- )
41
+ );
42
42
  }
43
43
 
44
- children[0] = (children[0] as string).replace('`▍`', '')
44
+ children[0] = (children[0] as string).replace("`▍`", "");
45
45
  }
46
46
 
47
- const match = /language-(\w+)/.exec(className || '')
47
+ const match = /language-(\w+)/.exec(className || "");
48
48
 
49
49
  if (inline) {
50
50
  return (
51
51
  <code className={className} {...props}>
52
52
  {children}
53
53
  </code>
54
- )
54
+ );
55
55
  }
56
56
 
57
57
  return (
58
58
  <CodeBlock
59
59
  key={Math.random()}
60
- language={(match && match[1]) || ''}
61
- value={String(children).replace(/\n$/, '')}
60
+ language={(match && match[1]) || ""}
61
+ value={String(children).replace(/\n$/, "")}
62
62
  {...props}
63
63
  />
64
- )
65
- }
64
+ );
65
+ },
66
66
  }}
67
67
  >
68
68
  {message.content}
@@ -70,5 +70,5 @@ export function ChatMessage({ message, ...props }: ChatMessageProps) {
70
70
  <ChatMessageActions message={message} />
71
71
  </div>
72
72
  </div>
73
- )
73
+ );
74
74
  }
@@ -1,21 +1,21 @@
1
- import { type UseChatHelpers } from 'ai/react'
1
+ import { type UseChatHelpers } from "ai/react";
2
2
 
3
- import { Button } from './ui/button'
4
- import { PromptForm } from './prompt-form'
5
- import { IconRefresh, IconStop } from './ui/icons'
3
+ import { Button } from "./ui/button";
4
+ import { PromptForm } from "./prompt-form";
5
+ import { IconRefresh, IconStop } from "./ui/icons";
6
6
 
7
7
  export interface ChatPanelProps
8
8
  extends Pick<
9
9
  UseChatHelpers,
10
- | 'append'
11
- | 'isLoading'
12
- | 'reload'
13
- | 'messages'
14
- | 'stop'
15
- | 'input'
16
- | 'setInput'
10
+ | "append"
11
+ | "isLoading"
12
+ | "reload"
13
+ | "messages"
14
+ | "stop"
15
+ | "input"
16
+ | "setInput"
17
17
  > {
18
- id?: string
18
+ id?: string;
19
19
  }
20
20
 
21
21
  export function ChatPanel({
@@ -26,12 +26,12 @@ export function ChatPanel({
26
26
  reload,
27
27
  input,
28
28
  setInput,
29
- messages
29
+ messages,
30
30
  }: ChatPanelProps) {
31
31
  return (
32
32
  <div
33
33
  className="inset-x-0 bottom-0 bg-gradient-to-b from-muted/10 from-10% to-muted/30 to-50% mt-4 mb-8"
34
- style={{ width: '100%', overflow: 'hidden', boxSizing: 'border-box' }}
34
+ style={{ width: "100%", overflow: "hidden", boxSizing: "border-box" }}
35
35
  >
36
36
  <div className="mx-auto sm:max-w-2xl sm:px-4">
37
37
  <div className="flex h-10 items-center justify-center mb-4">
@@ -59,12 +59,12 @@ export function ChatPanel({
59
59
  </div>
60
60
  <div className="space-y-4 border-2 bg-background px-4 py-2 shadow-lg sm:rounded-xl md:py-4">
61
61
  <PromptForm
62
- onSubmit={async value => {
62
+ onSubmit={async (value) => {
63
63
  await append({
64
64
  id,
65
65
  content: value,
66
- role: 'user'
67
- })
66
+ role: "user",
67
+ });
68
68
  }}
69
69
  input={input}
70
70
  setInput={setInput}
@@ -73,5 +73,5 @@ export function ChatPanel({
73
73
  </div>
74
74
  </div>
75
75
  </div>
76
- )
76
+ );
77
77
  }