@copilotkit/react-ui 1.1.3-feat-runtime-remote-actions.1 → 1.2.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 (211) hide show
  1. package/CHANGELOG.md +7 -14
  2. package/dist/components/chat/Button.d.mts +7 -0
  3. package/dist/components/chat/Button.js.map +1 -1
  4. package/dist/components/chat/Button.mjs +30 -6
  5. package/dist/components/chat/Button.mjs.map +1 -1
  6. package/dist/components/chat/Chat.d.mts +87 -0
  7. package/dist/components/chat/Chat.d.ts +2 -2
  8. package/dist/components/chat/Chat.js +8 -107
  9. package/dist/components/chat/Chat.js.map +1 -1
  10. package/dist/components/chat/Chat.mjs +1754 -20
  11. package/dist/components/chat/Chat.mjs.map +1 -1
  12. package/dist/components/chat/ChatContext.d.mts +105 -0
  13. package/dist/components/chat/ChatContext.d.ts +1 -1
  14. package/dist/components/chat/ChatContext.mjs +228 -7
  15. package/dist/components/chat/ChatContext.mjs.map +1 -1
  16. package/dist/components/chat/CodeBlock.d.mts +14 -0
  17. package/dist/components/chat/CodeBlock.js +1 -2
  18. package/dist/components/chat/CodeBlock.js.map +1 -1
  19. package/dist/components/chat/CodeBlock.mjs +482 -8
  20. package/dist/components/chat/CodeBlock.mjs.map +1 -1
  21. package/dist/components/chat/Header.d.mts +7 -0
  22. package/dist/components/chat/Header.mjs +23 -6
  23. package/dist/components/chat/Header.mjs.map +1 -1
  24. package/dist/components/chat/Icons.d.mts +18 -0
  25. package/dist/components/chat/Icons.mjs +271 -16
  26. package/dist/components/chat/Icons.mjs.map +1 -1
  27. package/dist/components/chat/Input.d.mts +7 -0
  28. package/dist/components/chat/Input.js +2 -4
  29. package/dist/components/chat/Input.js.map +1 -1
  30. package/dist/components/chat/Input.mjs +255 -8
  31. package/dist/components/chat/Input.mjs.map +1 -1
  32. package/dist/components/chat/Markdown.d.mts +8 -0
  33. package/dist/components/chat/Markdown.js +1 -2
  34. package/dist/components/chat/Markdown.js.map +1 -1
  35. package/dist/components/chat/Markdown.mjs +546 -7
  36. package/dist/components/chat/Markdown.mjs.map +1 -1
  37. package/dist/components/chat/Messages.d.mts +7 -0
  38. package/dist/components/chat/Messages.js +3 -48
  39. package/dist/components/chat/Messages.js.map +1 -1
  40. package/dist/components/chat/Messages.mjs +678 -8
  41. package/dist/components/chat/Messages.mjs.map +1 -1
  42. package/dist/components/chat/Modal.d.mts +51 -0
  43. package/dist/components/chat/Modal.d.ts +1 -1
  44. package/dist/components/chat/Modal.js +8 -107
  45. package/dist/components/chat/Modal.js.map +1 -1
  46. package/dist/components/chat/Modal.mjs +1956 -22
  47. package/dist/components/chat/Modal.mjs.map +1 -1
  48. package/dist/components/chat/Popup.d.mts +13 -0
  49. package/dist/components/chat/Popup.js +8 -107
  50. package/dist/components/chat/Popup.js.map +1 -1
  51. package/dist/components/chat/Popup.mjs +1965 -23
  52. package/dist/components/chat/Popup.mjs.map +1 -1
  53. package/dist/components/chat/Response.d.mts +7 -0
  54. package/dist/components/chat/Response.mjs +23 -6
  55. package/dist/components/chat/Response.mjs.map +1 -1
  56. package/dist/components/chat/Sidebar.d.mts +13 -0
  57. package/dist/components/chat/Sidebar.js +8 -107
  58. package/dist/components/chat/Sidebar.js.map +1 -1
  59. package/dist/components/chat/Sidebar.mjs +1977 -23
  60. package/dist/components/chat/Sidebar.mjs.map +1 -1
  61. package/dist/components/chat/Suggestion.d.mts +14 -0
  62. package/dist/components/chat/Suggestion.js.map +1 -1
  63. package/dist/components/chat/Suggestion.mjs +152 -5
  64. package/dist/components/chat/Suggestion.mjs.map +1 -1
  65. package/dist/components/chat/Textarea.d.mts +13 -0
  66. package/dist/components/chat/Textarea.js.map +1 -1
  67. package/dist/components/chat/Textarea.mjs +48 -4
  68. package/dist/components/chat/Textarea.mjs.map +1 -1
  69. package/dist/components/chat/Window.d.mts +7 -0
  70. package/dist/components/chat/Window.js.map +1 -1
  71. package/dist/components/chat/Window.mjs +125 -6
  72. package/dist/components/chat/Window.mjs.map +1 -1
  73. package/dist/components/chat/index.d.mts +11 -0
  74. package/dist/components/chat/index.js +8 -107
  75. package/dist/components/chat/index.js.map +1 -1
  76. package/dist/components/chat/index.mjs +1983 -31
  77. package/dist/components/chat/index.mjs.map +1 -1
  78. package/dist/components/chat/props.d.mts +35 -0
  79. package/dist/components/chat/props.d.ts +1 -1
  80. package/dist/components/chat/props.mjs +0 -1
  81. package/dist/components/dev-console/console.d.mts +10 -0
  82. package/dist/components/dev-console/console.js +0 -52
  83. package/dist/components/dev-console/console.js.map +1 -1
  84. package/dist/components/dev-console/console.mjs +426 -8
  85. package/dist/components/dev-console/console.mjs.map +1 -1
  86. package/dist/components/dev-console/icons.d.mts +9 -0
  87. package/dist/components/dev-console/icons.mjs +83 -8
  88. package/dist/components/dev-console/icons.mjs.map +1 -1
  89. package/dist/components/dev-console/index.d.mts +5 -0
  90. package/dist/components/dev-console/index.js +0 -52
  91. package/dist/components/dev-console/index.js.map +1 -1
  92. package/dist/components/dev-console/index.mjs +424 -10
  93. package/dist/components/dev-console/index.mjs.map +1 -1
  94. package/dist/components/dev-console/types.d.mts +9 -0
  95. package/dist/components/dev-console/types.d.ts +1 -1
  96. package/dist/components/dev-console/utils.d.mts +9 -0
  97. package/dist/components/dev-console/utils.d.ts +1 -2
  98. package/dist/components/dev-console/utils.js +0 -53
  99. package/dist/components/dev-console/utils.js.map +1 -1
  100. package/dist/components/dev-console/utils.mjs +103 -9
  101. package/dist/components/dev-console/utils.mjs.map +1 -1
  102. package/dist/components/index.d.mts +11 -0
  103. package/dist/components/index.js +8 -107
  104. package/dist/components/index.js.map +1 -1
  105. package/dist/components/index.mjs +1983 -32
  106. package/dist/components/index.mjs.map +1 -1
  107. package/dist/context/index.d.mts +2 -0
  108. package/dist/context/index.d.ts +1 -1
  109. package/dist/context/index.mjs +0 -1
  110. package/dist/hooks/index.d.mts +1 -0
  111. package/dist/hooks/index.mjs +24 -5
  112. package/dist/hooks/index.mjs.map +1 -1
  113. package/dist/hooks/use-copilot-chat-suggestions.d.mts +83 -0
  114. package/dist/hooks/use-copilot-chat-suggestions.mjs +24 -4
  115. package/dist/hooks/use-copilot-chat-suggestions.mjs.map +1 -1
  116. package/dist/hooks/use-copy-to-clipboard.d.mts +9 -0
  117. package/dist/hooks/use-copy-to-clipboard.d.ts +1 -1
  118. package/dist/hooks/use-copy-to-clipboard.mjs +21 -4
  119. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -1
  120. package/dist/hooks/use-push-to-talk.d.mts +19 -0
  121. package/dist/hooks/use-push-to-talk.d.ts +1 -1
  122. package/dist/hooks/use-push-to-talk.js.map +1 -1
  123. package/dist/hooks/use-push-to-talk.mjs +148 -6
  124. package/dist/hooks/use-push-to-talk.mjs.map +1 -1
  125. package/dist/index.css +1 -747
  126. package/dist/index.d.mts +13 -0
  127. package/dist/index.js +15 -107
  128. package/dist/index.js.map +1 -1
  129. package/dist/index.mjs +2015 -38
  130. package/dist/index.mjs.map +1 -1
  131. package/dist/lib/utils.d.mts +4 -0
  132. package/dist/lib/utils.mjs +20 -3
  133. package/dist/lib/utils.mjs.map +1 -1
  134. package/dist/lib/utils.test.d.mts +2 -0
  135. package/dist/lib/utils.test.d.ts +1 -1
  136. package/dist/types/css.d.mts +16 -0
  137. package/dist/types/css.d.ts +1 -1
  138. package/dist/types/index.d.mts +2 -0
  139. package/dist/types/index.mjs +0 -1
  140. package/dist/types/suggestions.d.mts +8 -0
  141. package/dist/types/suggestions.d.ts +1 -1
  142. package/package.json +19 -11
  143. package/src/components/chat/Chat.tsx +2 -5
  144. package/src/components/chat/Messages.tsx +2 -83
  145. package/src/components/chat/Popup.tsx +1 -4
  146. package/src/components/chat/Sidebar.tsx +1 -3
  147. package/src/components/chat/Suggestion.tsx +0 -2
  148. package/src/components/dev-console/console.tsx +0 -6
  149. package/src/components/dev-console/utils.ts +0 -56
  150. package/tsup.config.ts +59 -15
  151. package/dist/chunk-36OL6SEM.mjs +0 -31
  152. package/dist/chunk-36OL6SEM.mjs.map +0 -1
  153. package/dist/chunk-54JAUBUJ.mjs +0 -26
  154. package/dist/chunk-54JAUBUJ.mjs.map +0 -1
  155. package/dist/chunk-5HHVL5WK.mjs +0 -29
  156. package/dist/chunk-5HHVL5WK.mjs.map +0 -1
  157. package/dist/chunk-AFD5I7MW.mjs +0 -21
  158. package/dist/chunk-AFD5I7MW.mjs.map +0 -1
  159. package/dist/chunk-BJPGMY3I.mjs +0 -70
  160. package/dist/chunk-BJPGMY3I.mjs.map +0 -1
  161. package/dist/chunk-C534T3DM.mjs +0 -92
  162. package/dist/chunk-C534T3DM.mjs.map +0 -1
  163. package/dist/chunk-EFZPSZWO.mjs +0 -1
  164. package/dist/chunk-EFZPSZWO.mjs.map +0 -1
  165. package/dist/chunk-FLV3J3VX.mjs +0 -18
  166. package/dist/chunk-FLV3J3VX.mjs.map +0 -1
  167. package/dist/chunk-FO7Z5LAL.mjs +0 -118
  168. package/dist/chunk-FO7Z5LAL.mjs.map +0 -1
  169. package/dist/chunk-FOZVHL73.mjs +0 -171
  170. package/dist/chunk-FOZVHL73.mjs.map +0 -1
  171. package/dist/chunk-FZC7X5PK.mjs +0 -262
  172. package/dist/chunk-FZC7X5PK.mjs.map +0 -1
  173. package/dist/chunk-H7TM5JE6.mjs +0 -146
  174. package/dist/chunk-H7TM5JE6.mjs.map +0 -1
  175. package/dist/chunk-HR36Y2FQ.mjs +0 -167
  176. package/dist/chunk-HR36Y2FQ.mjs.map +0 -1
  177. package/dist/chunk-I4QG2ZZU.mjs +0 -220
  178. package/dist/chunk-I4QG2ZZU.mjs.map +0 -1
  179. package/dist/chunk-IU3WTXLQ.mjs +0 -1
  180. package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
  181. package/dist/chunk-JD7BAH7U.mjs +0 -1
  182. package/dist/chunk-JD7BAH7U.mjs.map +0 -1
  183. package/dist/chunk-MRFF7GSQ.mjs +0 -1
  184. package/dist/chunk-MRFF7GSQ.mjs.map +0 -1
  185. package/dist/chunk-MRXNTQOX.mjs +0 -59
  186. package/dist/chunk-MRXNTQOX.mjs.map +0 -1
  187. package/dist/chunk-OTPAZXVR.mjs +0 -92
  188. package/dist/chunk-OTPAZXVR.mjs.map +0 -1
  189. package/dist/chunk-T26KLXLH.mjs +0 -1
  190. package/dist/chunk-T26KLXLH.mjs.map +0 -1
  191. package/dist/chunk-U6J5DGOE.mjs +0 -83
  192. package/dist/chunk-U6J5DGOE.mjs.map +0 -1
  193. package/dist/chunk-UPTB2MVO.mjs +0 -395
  194. package/dist/chunk-UPTB2MVO.mjs.map +0 -1
  195. package/dist/chunk-V7W6IM2V.mjs +0 -1
  196. package/dist/chunk-V7W6IM2V.mjs.map +0 -1
  197. package/dist/chunk-VOBX4JOA.mjs +0 -138
  198. package/dist/chunk-VOBX4JOA.mjs.map +0 -1
  199. package/dist/chunk-WB3YULQ4.mjs +0 -1
  200. package/dist/chunk-WB3YULQ4.mjs.map +0 -1
  201. package/dist/chunk-WCPLXRZX.mjs +0 -106
  202. package/dist/chunk-WCPLXRZX.mjs.map +0 -1
  203. package/dist/chunk-XSUSSWDS.mjs +0 -18
  204. package/dist/chunk-XSUSSWDS.mjs.map +0 -1
  205. package/dist/chunk-YOH25I6N.mjs +0 -25
  206. package/dist/chunk-YOH25I6N.mjs.map +0 -1
  207. package/dist/chunk-YQ3D5IQV.mjs +0 -75
  208. package/dist/chunk-YQ3D5IQV.mjs.map +0 -1
  209. package/dist/chunk-YQFVRDNC.mjs +0 -53
  210. package/dist/chunk-YQFVRDNC.mjs.map +0 -1
  211. package/dist/index.css.map +0 -1
@@ -1,92 +0,0 @@
1
- import {
2
- Window
3
- } from "./chunk-FO7Z5LAL.mjs";
4
- import {
5
- Header
6
- } from "./chunk-FLV3J3VX.mjs";
7
- import {
8
- Button
9
- } from "./chunk-YOH25I6N.mjs";
10
- import {
11
- CopilotChat
12
- } from "./chunk-HR36Y2FQ.mjs";
13
- import {
14
- Input
15
- } from "./chunk-U6J5DGOE.mjs";
16
- import {
17
- Messages
18
- } from "./chunk-FOZVHL73.mjs";
19
- import {
20
- ResponseButton
21
- } from "./chunk-XSUSSWDS.mjs";
22
- import {
23
- ChatContextProvider
24
- } from "./chunk-BJPGMY3I.mjs";
25
-
26
- // src/components/chat/Modal.tsx
27
- import React from "react";
28
- import { jsx, jsxs } from "react/jsx-runtime";
29
- var CopilotModal = ({
30
- instructions,
31
- defaultOpen = false,
32
- clickOutsideToClose = true,
33
- hitEscapeToClose = true,
34
- onSetOpen,
35
- onSubmitMessage,
36
- shortcut = "/",
37
- icons,
38
- labels,
39
- makeSystemMessage,
40
- showResponseButton = true,
41
- onInProgress,
42
- Window: Window2 = Window,
43
- Button: Button2 = Button,
44
- Header: Header2 = Header,
45
- Messages: Messages2 = Messages,
46
- Input: Input2 = Input,
47
- ResponseButton: ResponseButton2 = ResponseButton,
48
- className,
49
- children
50
- }) => {
51
- const [openState, setOpenState] = React.useState(defaultOpen);
52
- const setOpen = (open) => {
53
- console.log("setOpen!!", open);
54
- onSetOpen == null ? void 0 : onSetOpen(open);
55
- setOpenState(open);
56
- };
57
- return /* @__PURE__ */ jsxs(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
58
- children,
59
- /* @__PURE__ */ jsxs("div", { className, children: [
60
- /* @__PURE__ */ jsx(Button2, {}),
61
- /* @__PURE__ */ jsxs(
62
- Window2,
63
- {
64
- clickOutsideToClose,
65
- shortcut,
66
- hitEscapeToClose,
67
- children: [
68
- /* @__PURE__ */ jsx(Header2, {}),
69
- /* @__PURE__ */ jsx(
70
- CopilotChat,
71
- {
72
- instructions,
73
- onSubmitMessage,
74
- makeSystemMessage,
75
- showResponseButton,
76
- onInProgress,
77
- Messages: Messages2,
78
- Input: Input2,
79
- ResponseButton: ResponseButton2
80
- }
81
- )
82
- ]
83
- }
84
- )
85
- ] })
86
- ] });
87
- };
88
-
89
- export {
90
- CopilotModal
91
- };
92
- //# sourceMappingURL=chunk-C534T3DM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/Modal.tsx"],"sourcesContent":["import React from \"react\";\nimport { ChatContextProvider } from \"./ChatContext\";\nimport { ButtonProps, HeaderProps, WindowProps } from \"./props\";\nimport { Window as DefaultWindow } from \"./Window\";\nimport { Button as DefaultButton } from \"./Button\";\nimport { Header as DefaultHeader } from \"./Header\";\nimport { Messages as DefaultMessages } from \"./Messages\";\nimport { Input as DefaultInput } from \"./Input\";\nimport { ResponseButton as DefaultResponseButton } from \"./Response\";\nimport { CopilotChat, CopilotChatProps } from \"./Chat\";\n\nexport interface CopilotModalProps extends CopilotChatProps {\n /**\n * Whether the chat window should be open by default.\n * @default false\n */\n defaultOpen?: boolean;\n\n /**\n * If the chat window should close when the user clicks outside of it.\n * @default true\n */\n clickOutsideToClose?: boolean;\n\n /**\n * If the chat window should close when the user hits the Escape key.\n * @default true\n */\n hitEscapeToClose?: boolean;\n\n /**\n * The shortcut key to open the chat window.\n * Uses Command-[shortcut] on a Mac and Ctrl-[shortcut] on Windows.\n * @default '/'\n */\n shortcut?: string;\n\n /**\n * A callback that gets called when the chat window opens or closes.\n */\n onSetOpen?: (open: boolean) => void;\n\n /**\n * A custom Window component to use instead of the default.\n */\n Window?: React.ComponentType<WindowProps>;\n\n /**\n * A custom Button component to use instead of the default.\n */\n Button?: React.ComponentType<ButtonProps>;\n\n /**\n * A custom Header component to use instead of the default.\n */\n Header?: React.ComponentType<HeaderProps>;\n}\n\nexport const CopilotModal = ({\n instructions,\n defaultOpen = false,\n clickOutsideToClose = true,\n hitEscapeToClose = true,\n onSetOpen,\n onSubmitMessage,\n shortcut = \"/\",\n icons,\n labels,\n makeSystemMessage,\n showResponseButton = true,\n onInProgress,\n Window = DefaultWindow,\n Button = DefaultButton,\n Header = DefaultHeader,\n Messages = DefaultMessages,\n Input = DefaultInput,\n ResponseButton = DefaultResponseButton,\n className,\n children,\n}: CopilotModalProps) => {\n const [openState, setOpenState] = React.useState(defaultOpen);\n\n const setOpen = (open: boolean) => {\n console.log(\"setOpen!!\", open);\n onSetOpen?.(open);\n setOpenState(open);\n };\n\n return (\n <ChatContextProvider icons={icons} labels={labels} open={openState} setOpen={setOpen}>\n {children}\n <div className={className}>\n <Button></Button>\n <Window\n clickOutsideToClose={clickOutsideToClose}\n shortcut={shortcut}\n hitEscapeToClose={hitEscapeToClose}\n >\n <Header />\n <CopilotChat\n instructions={instructions}\n onSubmitMessage={onSubmitMessage}\n makeSystemMessage={makeSystemMessage}\n showResponseButton={showResponseButton}\n onInProgress={onInProgress}\n Messages={Messages}\n Input={Input}\n ResponseButton={ResponseButton}\n />\n </Window>\n </div>\n </ChatContextProvider>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AA4FV,cACA,YADA;AAlCD,IAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA,QAAAA,UAAS;AAAA,EACT,QAAAC,UAAS;AAAA,EACT,QAAAC,UAAS;AAAA,EACT,UAAAC,YAAW;AAAA,EACX,OAAAC,SAAQ;AAAA,EACR,gBAAAC,kBAAiB;AAAA,EACjB;AAAA,EACA;AACF,MAAyB;AACvB,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,WAAW;AAE5D,QAAM,UAAU,CAAC,SAAkB;AACjC,YAAQ,IAAI,aAAa,IAAI;AAC7B,2CAAY;AACZ,iBAAa,IAAI;AAAA,EACnB;AAEA,SACE,qBAAC,uBAAoB,OAAc,QAAgB,MAAM,WAAW,SACjE;AAAA;AAAA,IACD,qBAAC,SAAI,WACH;AAAA,0BAACJ,SAAA,EAAO;AAAA,MACR;AAAA,QAACD;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UAEA;AAAA,gCAACE,SAAA,EAAO;AAAA,YACR;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,UAAUC;AAAA,gBACV,OAAOC;AAAA,gBACP,gBAAgBC;AAAA;AAAA,YAClB;AAAA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":["Window","Button","Header","Messages","Input","ResponseButton"]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-EFZPSZWO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,18 +0,0 @@
1
- import {
2
- useChatContext
3
- } from "./chunk-BJPGMY3I.mjs";
4
-
5
- // src/components/chat/Header.tsx
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- var Header = ({}) => {
8
- const { setOpen, icons, labels } = useChatContext();
9
- return /* @__PURE__ */ jsxs("div", { className: "copilotKitHeader", children: [
10
- /* @__PURE__ */ jsx("div", { children: labels.title }),
11
- /* @__PURE__ */ jsx("button", { onClick: () => setOpen(false), "aria-label": "Close", children: icons.headerCloseIcon })
12
- ] });
13
- };
14
-
15
- export {
16
- Header
17
- };
18
- //# sourceMappingURL=chunk-FLV3J3VX.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/Header.tsx"],"sourcesContent":["import { HeaderProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\n\nexport const Header = ({}: HeaderProps) => {\n const { setOpen, icons, labels } = useChatContext();\n\n return (\n <div className=\"copilotKitHeader\">\n <div>{labels.title}</div>\n <button onClick={() => setOpen(false)} aria-label=\"Close\">\n {icons.headerCloseIcon}\n </button>\n </div>\n );\n};\n"],"mappings":";;;;;AAOI,SACE,KADF;AAJG,IAAM,SAAS,CAAC,CAAC,MAAmB;AACzC,QAAM,EAAE,SAAS,OAAO,OAAO,IAAI,eAAe;AAElD,SACE,qBAAC,SAAI,WAAU,oBACb;AAAA,wBAAC,SAAK,iBAAO,OAAM;AAAA,IACnB,oBAAC,YAAO,SAAS,MAAM,QAAQ,KAAK,GAAG,cAAW,SAC/C,gBAAM,iBACT;AAAA,KACF;AAEJ;","names":[]}
@@ -1,118 +0,0 @@
1
- import {
2
- useChatContext
3
- } from "./chunk-BJPGMY3I.mjs";
4
-
5
- // src/components/chat/Window.tsx
6
- import React, { useCallback, useEffect } from "react";
7
- import { jsx } from "react/jsx-runtime";
8
- var Window = ({
9
- children,
10
- clickOutsideToClose,
11
- shortcut,
12
- hitEscapeToClose
13
- }) => {
14
- const windowRef = React.useRef(null);
15
- const { open, setOpen } = useChatContext();
16
- const handleClickOutside = useCallback(
17
- (event) => {
18
- var _a;
19
- if (!clickOutsideToClose) {
20
- return;
21
- }
22
- const parentElement = (_a = windowRef.current) == null ? void 0 : _a.parentElement;
23
- let className = "";
24
- if (event.target instanceof HTMLElement) {
25
- className = event.target.className;
26
- }
27
- if (open && parentElement && !parentElement.contains(event.target) && // prevent closing the window when clicking on the debug menu
28
- !className.includes("copilotKitDebugMenu")) {
29
- setOpen(false);
30
- }
31
- },
32
- [clickOutsideToClose, open, setOpen]
33
- );
34
- const handleKeyDown = useCallback(
35
- (event) => {
36
- var _a;
37
- const target = event.target;
38
- const isInput = target.tagName === "INPUT" || target.tagName === "SELECT" || target.tagName === "TEXTAREA" || target.isContentEditable;
39
- const isDescendantOfWrapper = (_a = windowRef.current) == null ? void 0 : _a.contains(target);
40
- if (open && event.key === "Escape" && (!isInput || isDescendantOfWrapper) && hitEscapeToClose) {
41
- setOpen(false);
42
- } else if (event.key === shortcut && (isMacOS() && event.metaKey || !isMacOS() && event.ctrlKey) && (!isInput || isDescendantOfWrapper)) {
43
- setOpen(!open);
44
- }
45
- },
46
- [hitEscapeToClose, shortcut, open, setOpen]
47
- );
48
- const adjustForMobile = useCallback(() => {
49
- const copilotKitWindow = windowRef.current;
50
- const vv = window.visualViewport;
51
- if (!copilotKitWindow || !vv) {
52
- return;
53
- }
54
- if (window.innerWidth < 640 && open) {
55
- copilotKitWindow.style.height = `${vv.height}px`;
56
- copilotKitWindow.style.left = `${vv.offsetLeft}px`;
57
- copilotKitWindow.style.top = `${vv.offsetTop}px`;
58
- document.body.style.position = "fixed";
59
- document.body.style.width = "100%";
60
- document.body.style.height = `${window.innerHeight}px`;
61
- document.body.style.overflow = "hidden";
62
- document.body.style.touchAction = "none";
63
- document.body.addEventListener("touchmove", preventScroll, {
64
- passive: false
65
- });
66
- } else {
67
- copilotKitWindow.style.height = "";
68
- copilotKitWindow.style.left = "";
69
- copilotKitWindow.style.top = "";
70
- document.body.style.position = "";
71
- document.body.style.height = "";
72
- document.body.style.width = "";
73
- document.body.style.overflow = "";
74
- document.body.style.top = "";
75
- document.body.style.touchAction = "";
76
- document.body.removeEventListener("touchmove", preventScroll);
77
- }
78
- }, [open]);
79
- useEffect(() => {
80
- document.addEventListener("mousedown", handleClickOutside);
81
- document.addEventListener("keydown", handleKeyDown);
82
- if (window.visualViewport) {
83
- window.visualViewport.addEventListener("resize", adjustForMobile);
84
- adjustForMobile();
85
- }
86
- return () => {
87
- document.removeEventListener("mousedown", handleClickOutside);
88
- document.removeEventListener("keydown", handleKeyDown);
89
- if (window.visualViewport) {
90
- window.visualViewport.removeEventListener("resize", adjustForMobile);
91
- }
92
- };
93
- }, [adjustForMobile, handleClickOutside, handleKeyDown]);
94
- return /* @__PURE__ */ jsx("div", { className: `copilotKitWindow${open ? " open" : ""}`, ref: windowRef, children });
95
- };
96
- var preventScroll = (event) => {
97
- let targetElement = event.target;
98
- const hasParentWithClass = (element, className) => {
99
- while (element && element !== document.body) {
100
- if (element.classList.contains(className)) {
101
- return true;
102
- }
103
- element = element.parentElement;
104
- }
105
- return false;
106
- };
107
- if (!hasParentWithClass(targetElement, "copilotKitMessages")) {
108
- event.preventDefault();
109
- }
110
- };
111
- function isMacOS() {
112
- return /Mac|iMac|Macintosh/i.test(navigator.userAgent);
113
- }
114
-
115
- export {
116
- Window
117
- };
118
- //# sourceMappingURL=chunk-FO7Z5LAL.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/Window.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from \"react\";\nimport { WindowProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\n\nexport const Window = ({\n children,\n clickOutsideToClose,\n shortcut,\n hitEscapeToClose,\n}: WindowProps) => {\n const windowRef = React.useRef<HTMLDivElement>(null);\n\n const { open, setOpen } = useChatContext();\n\n const handleClickOutside = useCallback(\n (event: MouseEvent) => {\n if (!clickOutsideToClose) {\n return;\n }\n\n const parentElement = windowRef.current?.parentElement;\n\n let className = \"\";\n if (event.target instanceof HTMLElement) {\n className = event.target.className;\n }\n\n if (\n open &&\n parentElement &&\n !parentElement.contains(event.target as any) &&\n // prevent closing the window when clicking on the debug menu\n !className.includes(\"copilotKitDebugMenu\")\n ) {\n setOpen(false);\n }\n },\n [clickOutsideToClose, open, setOpen],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n const isInput =\n target.tagName === \"INPUT\" ||\n target.tagName === \"SELECT\" ||\n target.tagName === \"TEXTAREA\" ||\n target.isContentEditable;\n\n const isDescendantOfWrapper = windowRef.current?.contains(target);\n\n if (\n open &&\n event.key === \"Escape\" &&\n (!isInput || isDescendantOfWrapper) &&\n hitEscapeToClose\n ) {\n setOpen(false);\n } else if (\n event.key === shortcut &&\n ((isMacOS() && event.metaKey) || (!isMacOS() && event.ctrlKey)) &&\n (!isInput || isDescendantOfWrapper)\n ) {\n setOpen(!open);\n }\n },\n [hitEscapeToClose, shortcut, open, setOpen],\n );\n\n const adjustForMobile = useCallback(() => {\n const copilotKitWindow = windowRef.current;\n const vv = window.visualViewport;\n if (!copilotKitWindow || !vv) {\n return;\n }\n\n if (window.innerWidth < 640 && open) {\n copilotKitWindow.style.height = `${vv.height}px`;\n copilotKitWindow.style.left = `${vv.offsetLeft}px`;\n copilotKitWindow.style.top = `${vv.offsetTop}px`;\n\n document.body.style.position = \"fixed\";\n document.body.style.width = \"100%\";\n document.body.style.height = `${window.innerHeight}px`;\n document.body.style.overflow = \"hidden\";\n document.body.style.touchAction = \"none\";\n\n // Prevent scrolling on iOS\n document.body.addEventListener(\"touchmove\", preventScroll, {\n passive: false,\n });\n } else {\n copilotKitWindow.style.height = \"\";\n copilotKitWindow.style.left = \"\";\n copilotKitWindow.style.top = \"\";\n document.body.style.position = \"\";\n document.body.style.height = \"\";\n document.body.style.width = \"\";\n document.body.style.overflow = \"\";\n document.body.style.top = \"\";\n document.body.style.touchAction = \"\";\n\n document.body.removeEventListener(\"touchmove\", preventScroll);\n }\n }, [open]);\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClickOutside);\n document.addEventListener(\"keydown\", handleKeyDown);\n if (window.visualViewport) {\n window.visualViewport.addEventListener(\"resize\", adjustForMobile);\n adjustForMobile();\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (window.visualViewport) {\n window.visualViewport.removeEventListener(\"resize\", adjustForMobile);\n }\n };\n }, [adjustForMobile, handleClickOutside, handleKeyDown]);\n\n return (\n <div className={`copilotKitWindow${open ? \" open\" : \"\"}`} ref={windowRef}>\n {children}\n </div>\n );\n};\n\nconst preventScroll = (event: TouchEvent): void => {\n let targetElement = event.target as Element;\n\n // Function to check if the target has the parent with a given class\n const hasParentWithClass = (element: Element, className: string): boolean => {\n while (element && element !== document.body) {\n if (element.classList.contains(className)) {\n return true;\n }\n element = element.parentElement!;\n }\n return false;\n };\n\n // Check if the target of the touch event is inside an element with the 'copilotKitMessages' class\n if (!hasParentWithClass(targetElement, \"copilotKitMessages\")) {\n event.preventDefault();\n }\n};\n\nfunction isMacOS() {\n return /Mac|iMac|Macintosh/i.test(navigator.userAgent);\n}\n"],"mappings":"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","names":[]}
@@ -1,171 +0,0 @@
1
- import {
2
- Markdown
3
- } from "./chunk-YQ3D5IQV.mjs";
4
- import {
5
- useChatContext
6
- } from "./chunk-BJPGMY3I.mjs";
7
-
8
- // src/components/chat/Messages.tsx
9
- import React, { useEffect, useMemo } from "react";
10
- import { useCopilotContext } from "@copilotkit/react-core";
11
- import {
12
- MessageStatusCode,
13
- ActionExecutionMessage,
14
- ResultMessage,
15
- TextMessage,
16
- Role,
17
- AgentStateMessage
18
- } from "@copilotkit/runtime-client-gql";
19
- import { jsx, jsxs } from "react/jsx-runtime";
20
- var Messages = ({ messages, inProgress, children }) => {
21
- const { chatComponentsCache } = useCopilotContext();
22
- const context = useChatContext();
23
- const initialMessages = useMemo(
24
- () => makeInitialMessages(context.labels.initial),
25
- [context.labels.initial]
26
- );
27
- messages = [...initialMessages, ...messages];
28
- const functionResults = {};
29
- for (let i = 0; i < messages.length; i++) {
30
- if (messages[i] instanceof ActionExecutionMessage) {
31
- const id = messages[i].id;
32
- const resultMessage = messages.find(
33
- (message) => message instanceof ResultMessage && message.actionExecutionId === id
34
- );
35
- if (resultMessage) {
36
- functionResults[id] = ResultMessage.decodeResult(resultMessage.result || "");
37
- }
38
- }
39
- }
40
- const messagesEndRef = React.useRef(null);
41
- const scrollToBottom = () => {
42
- if (messagesEndRef.current) {
43
- messagesEndRef.current.scrollIntoView({
44
- behavior: "auto"
45
- });
46
- }
47
- };
48
- useEffect(() => {
49
- scrollToBottom();
50
- }, [messages]);
51
- return /* @__PURE__ */ jsxs("div", { className: "copilotKitMessages", children: [
52
- messages.map((message, index) => {
53
- const isCurrentMessage = index === messages.length - 1;
54
- if (message instanceof TextMessage && message.role === "user") {
55
- return /* @__PURE__ */ jsx("div", { className: "copilotKitMessage copilotKitUserMessage", children: message.content }, index);
56
- } else if (message instanceof TextMessage && message.role == "assistant") {
57
- return /* @__PURE__ */ jsx("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: isCurrentMessage && inProgress && !message.content ? context.icons.spinnerIcon : /* @__PURE__ */ jsx(Markdown, { content: message.content }) }, index);
58
- } else if (message instanceof ActionExecutionMessage) {
59
- if (chatComponentsCache.current !== null && chatComponentsCache.current.actions[message.name]) {
60
- const render = chatComponentsCache.current.actions[message.name];
61
- if (typeof render === "string") {
62
- if (isCurrentMessage && inProgress) {
63
- return /* @__PURE__ */ jsxs("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
64
- context.icons.spinnerIcon,
65
- " ",
66
- /* @__PURE__ */ jsx("span", { className: "inProgressLabel", children: render })
67
- ] }, index);
68
- } else {
69
- return null;
70
- }
71
- } else {
72
- const args = message.arguments;
73
- let status = "inProgress";
74
- if (functionResults[message.id] !== void 0) {
75
- status = "complete";
76
- } else if (message.status.code !== MessageStatusCode.Pending) {
77
- status = "executing";
78
- }
79
- const toRender = render({
80
- status,
81
- args,
82
- result: functionResults[message.id]
83
- });
84
- if (!toRender && status === "complete") {
85
- return null;
86
- }
87
- if (typeof toRender === "string") {
88
- return /* @__PURE__ */ jsxs("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
89
- isCurrentMessage && inProgress && context.icons.spinnerIcon,
90
- " ",
91
- toRender
92
- ] }, index);
93
- } else {
94
- return /* @__PURE__ */ jsx("div", { className: "copilotKitCustomAssistantMessage", children: toRender }, index);
95
- }
96
- }
97
- } else if (!inProgress || !isCurrentMessage) {
98
- return null;
99
- } else {
100
- return /* @__PURE__ */ jsx("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
101
- }
102
- } else if (message instanceof AgentStateMessage) {
103
- let render;
104
- if (chatComponentsCache.current !== null) {
105
- render = chatComponentsCache.current.coagentActions[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];
106
- }
107
- if (render) {
108
- if (typeof render === "string") {
109
- if (isCurrentMessage && inProgress) {
110
- return /* @__PURE__ */ jsxs("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
111
- context.icons.spinnerIcon,
112
- " ",
113
- /* @__PURE__ */ jsx("span", { className: "inProgressLabel", children: render })
114
- ] }, index);
115
- } else {
116
- return null;
117
- }
118
- } else {
119
- const state = message.state;
120
- let status = message.active ? "inProgress" : "complete";
121
- const toRender = render({
122
- status,
123
- state,
124
- nodeName: message.nodeName
125
- });
126
- if (!toRender && status === "complete") {
127
- return null;
128
- }
129
- if (typeof toRender === "string") {
130
- return /* @__PURE__ */ jsxs("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
131
- isCurrentMessage && inProgress && context.icons.spinnerIcon,
132
- " ",
133
- toRender
134
- ] }, index);
135
- } else {
136
- return /* @__PURE__ */ jsx("div", { className: "copilotKitCustomAssistantMessage", children: toRender }, index);
137
- }
138
- }
139
- } else if (!inProgress || !isCurrentMessage) {
140
- return null;
141
- } else {
142
- return /* @__PURE__ */ jsx("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
143
- }
144
- } else if (message instanceof ResultMessage && inProgress && isCurrentMessage) {
145
- return /* @__PURE__ */ jsx("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
146
- }
147
- }),
148
- /* @__PURE__ */ jsx("footer", { ref: messagesEndRef, children })
149
- ] });
150
- };
151
- function makeInitialMessages(initial) {
152
- let initialArray = [];
153
- if (initial) {
154
- if (Array.isArray(initial)) {
155
- initialArray.push(...initial);
156
- } else {
157
- initialArray.push(initial);
158
- }
159
- }
160
- return initialArray.map(
161
- (message) => new TextMessage({
162
- role: Role.Assistant,
163
- content: message
164
- })
165
- );
166
- }
167
-
168
- export {
169
- Messages
170
- };
171
- //# sourceMappingURL=chunk-FOZVHL73.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/chat/Messages.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { MessagesProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\nimport { Markdown } from \"./Markdown\";\nimport { RenderFunctionStatus, useCopilotContext } from \"@copilotkit/react-core\";\nimport {\n MessageStatusCode,\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n Role,\n AgentStateMessage,\n} from \"@copilotkit/runtime-client-gql\";\nimport { CoagentInChatRenderFunction } from \"@copilotkit/react-core/dist/context/copilot-context\";\n\nexport const Messages = ({ messages, inProgress, children }: MessagesProps) => {\n const { chatComponentsCache } = useCopilotContext();\n\n const context = useChatContext();\n const initialMessages = useMemo(\n () => makeInitialMessages(context.labels.initial),\n [context.labels.initial],\n );\n messages = [...initialMessages, ...messages];\n\n const functionResults: Record<string, string> = {};\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i] instanceof ActionExecutionMessage) {\n const id = messages[i].id;\n const resultMessage: ResultMessage | undefined = messages.find(\n (message) => message instanceof ResultMessage && message.actionExecutionId === id,\n ) as ResultMessage | undefined;\n\n if (resultMessage) {\n functionResults[id] = ResultMessage.decodeResult(resultMessage.result || \"\");\n }\n }\n }\n\n const messagesEndRef = React.useRef<HTMLDivElement>(null);\n\n const scrollToBottom = () => {\n if (messagesEndRef.current) {\n messagesEndRef.current.scrollIntoView({\n behavior: \"auto\",\n });\n }\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [messages]);\n\n return (\n <div className=\"copilotKitMessages\">\n {messages.map((message, index) => {\n const isCurrentMessage = index === messages.length - 1;\n\n if (message instanceof TextMessage && message.role === \"user\") {\n return (\n <div key={index} className=\"copilotKitMessage copilotKitUserMessage\">\n {message.content}\n </div>\n );\n } else if (message instanceof TextMessage && message.role == \"assistant\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && !message.content ? (\n context.icons.spinnerIcon\n ) : (\n <Markdown content={message.content} />\n )}\n </div>\n );\n } else if (message instanceof ActionExecutionMessage) {\n if (\n chatComponentsCache.current !== null &&\n chatComponentsCache.current.actions[message.name]\n ) {\n const render = chatComponentsCache.current.actions[message.name];\n // render a static string\n if (typeof render === \"string\") {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n );\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null;\n }\n }\n // render is a function\n else {\n const args = message.arguments;\n\n let status: RenderFunctionStatus = \"inProgress\";\n\n if (functionResults[message.id] !== undefined) {\n status = \"complete\";\n } else if (message.status.code !== MessageStatusCode.Pending) {\n status = \"executing\";\n }\n\n const toRender = render({\n status: status as any,\n args,\n result: functionResults[message.id],\n });\n\n // No result and complete: stay silent\n if (!toRender && status === \"complete\") {\n return null;\n }\n\n if (typeof toRender === \"string\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n );\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n );\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null;\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n } else if (message instanceof AgentStateMessage) {\n let render: string | CoagentInChatRenderFunction | undefined;\n\n if (chatComponentsCache.current !== null) {\n render =\n chatComponentsCache.current.coagentActions[\n `${message.agentName}-${message.nodeName}`\n ] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];\n }\n\n if (render) {\n // render a static string\n if (typeof render === \"string\") {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n );\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null;\n }\n }\n // render is a function\n else {\n const state = message.state;\n\n let status = message.active ? \"inProgress\" : \"complete\";\n\n const toRender = render({\n status: status as any,\n state,\n nodeName: message.nodeName,\n });\n\n // No result and complete: stay silent\n if (!toRender && status === \"complete\") {\n return null;\n }\n\n if (typeof toRender === \"string\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n );\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n );\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null;\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n } else if (message instanceof ResultMessage && inProgress && isCurrentMessage) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n })}\n <footer ref={messagesEndRef}>{children}</footer>\n </div>\n );\n};\n\nfunction makeInitialMessages(initial?: string | string[]): Message[] {\n let initialArray: string[] = [];\n if (initial) {\n if (Array.isArray(initial)) {\n initialArray.push(...initial);\n } else {\n initialArray.push(initial);\n }\n }\n\n return initialArray.map(\n (message) =>\n new TextMessage({\n role: Role.Assistant,\n content: message,\n }),\n );\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,SAAS,WAAW,eAAe;AAI1C,SAA+B,yBAAyB;AACxD;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAiDK,cAyBM,YAzBN;AA9CL,IAAM,WAAW,CAAC,EAAE,UAAU,YAAY,SAAS,MAAqB;AAC7E,QAAM,EAAE,oBAAoB,IAAI,kBAAkB;AAElD,QAAM,UAAU,eAAe;AAC/B,QAAM,kBAAkB;AAAA,IACtB,MAAM,oBAAoB,QAAQ,OAAO,OAAO;AAAA,IAChD,CAAC,QAAQ,OAAO,OAAO;AAAA,EACzB;AACA,aAAW,CAAC,GAAG,iBAAiB,GAAG,QAAQ;AAE3C,QAAM,kBAA0C,CAAC;AAEjD,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,QAAI,SAAS,CAAC,aAAa,wBAAwB;AACjD,YAAM,KAAK,SAAS,CAAC,EAAE;AACvB,YAAM,gBAA2C,SAAS;AAAA,QACxD,CAAC,YAAY,mBAAmB,iBAAiB,QAAQ,sBAAsB;AAAA,MACjF;AAEA,UAAI,eAAe;AACjB,wBAAgB,EAAE,IAAI,cAAc,aAAa,cAAc,UAAU,EAAE;AAAA,MAC7E;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB,MAAM,OAAuB,IAAI;AAExD,QAAM,iBAAiB,MAAM;AAC3B,QAAI,eAAe,SAAS;AAC1B,qBAAe,QAAQ,eAAe;AAAA,QACpC,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AAEA,YAAU,MAAM;AACd,mBAAe;AAAA,EACjB,GAAG,CAAC,QAAQ,CAAC;AAEb,SACE,qBAAC,SAAI,WAAU,sBACZ;AAAA,aAAS,IAAI,CAAC,SAAS,UAAU;AAChC,YAAM,mBAAmB,UAAU,SAAS,SAAS;AAErD,UAAI,mBAAmB,eAAe,QAAQ,SAAS,QAAQ;AAC7D,eACE,oBAAC,SAAgB,WAAU,2CACxB,kBAAQ,WADD,KAEV;AAAA,MAEJ,WAAW,mBAAmB,eAAe,QAAQ,QAAQ,aAAa;AACxE,eACE,oBAAC,SAAgB,WAAW,gDACzB,8BAAoB,cAAc,CAAC,QAAQ,UAC1C,QAAQ,MAAM,cAEd,oBAAC,YAAS,SAAS,QAAQ,SAAS,KAJ9B,KAMV;AAAA,MAEJ,WAAW,mBAAmB,wBAAwB;AACpD,YACE,oBAAoB,YAAY,QAChC,oBAAoB,QAAQ,QAAQ,QAAQ,IAAI,GAChD;AACA,gBAAM,SAAS,oBAAoB,QAAQ,QAAQ,QAAQ,IAAI;AAE/D,cAAI,OAAO,WAAW,UAAU;AAE9B,gBAAI,oBAAoB,YAAY;AAClC,qBACE,qBAAC,SAAgB,WAAW,gDACzB;AAAA,wBAAQ,MAAM;AAAA,gBAAY;AAAA,gBAAC,oBAAC,UAAK,WAAU,mBAAmB,kBAAO;AAAA,mBAD9D,KAEV;AAAA,YAEJ,OAEK;AACH,qBAAO;AAAA,YACT;AAAA,UACF,OAEK;AACH,kBAAM,OAAO,QAAQ;AAErB,gBAAI,SAA+B;AAEnC,gBAAI,gBAAgB,QAAQ,EAAE,MAAM,QAAW;AAC7C,uBAAS;AAAA,YACX,WAAW,QAAQ,OAAO,SAAS,kBAAkB,SAAS;AAC5D,uBAAS;AAAA,YACX;AAEA,kBAAM,WAAW,OAAO;AAAA,cACtB;AAAA,cACA;AAAA,cACA,QAAQ,gBAAgB,QAAQ,EAAE;AAAA,YACpC,CAAC;AAGD,gBAAI,CAAC,YAAY,WAAW,YAAY;AACtC,qBAAO;AAAA,YACT;AAEA,gBAAI,OAAO,aAAa,UAAU;AAChC,qBACE,qBAAC,SAAgB,WAAW,gDACzB;AAAA,oCAAoB,cAAc,QAAQ,MAAM;AAAA,gBAAY;AAAA,gBAAE;AAAA,mBADvD,KAEV;AAAA,YAEJ,OAAO;AACL,qBACE,oBAAC,SAAgB,WAAU,oCACxB,sBADO,KAEV;AAAA,YAEJ;AAAA,UACF;AAAA,QACF,WAES,CAAC,cAAc,CAAC,kBAAkB;AAEzC,iBAAO;AAAA,QACT,OAAO;AAEL,iBACE,oBAAC,SAAgB,WAAW,gDACzB,kBAAQ,MAAM,eADP,KAEV;AAAA,QAEJ;AAAA,MACF,WAAW,mBAAmB,mBAAmB;AAC/C,YAAI;AAEJ,YAAI,oBAAoB,YAAY,MAAM;AACxC,mBACE,oBAAoB,QAAQ,eAC1B,GAAG,QAAQ,aAAa,QAAQ,UAClC,KAAK,oBAAoB,QAAQ,eAAe,GAAG,QAAQ,kBAAkB;AAAA,QACjF;AAEA,YAAI,QAAQ;AAEV,cAAI,OAAO,WAAW,UAAU;AAE9B,gBAAI,oBAAoB,YAAY;AAClC,qBACE,qBAAC,SAAgB,WAAW,gDACzB;AAAA,wBAAQ,MAAM;AAAA,gBAAY;AAAA,gBAAC,oBAAC,UAAK,WAAU,mBAAmB,kBAAO;AAAA,mBAD9D,KAEV;AAAA,YAEJ,OAEK;AACH,qBAAO;AAAA,YACT;AAAA,UACF,OAEK;AACH,kBAAM,QAAQ,QAAQ;AAEtB,gBAAI,SAAS,QAAQ,SAAS,eAAe;AAE7C,kBAAM,WAAW,OAAO;AAAA,cACtB;AAAA,cACA;AAAA,cACA,UAAU,QAAQ;AAAA,YACpB,CAAC;AAGD,gBAAI,CAAC,YAAY,WAAW,YAAY;AACtC,qBAAO;AAAA,YACT;AAEA,gBAAI,OAAO,aAAa,UAAU;AAChC,qBACE,qBAAC,SAAgB,WAAW,gDACzB;AAAA,oCAAoB,cAAc,QAAQ,MAAM;AAAA,gBAAY;AAAA,gBAAE;AAAA,mBADvD,KAEV;AAAA,YAEJ,OAAO;AACL,qBACE,oBAAC,SAAgB,WAAU,oCACxB,sBADO,KAEV;AAAA,YAEJ;AAAA,UACF;AAAA,QACF,WAES,CAAC,cAAc,CAAC,kBAAkB;AAEzC,iBAAO;AAAA,QACT,OAAO;AAEL,iBACE,oBAAC,SAAgB,WAAW,gDACzB,kBAAQ,MAAM,eADP,KAEV;AAAA,QAEJ;AAAA,MACF,WAAW,mBAAmB,iBAAiB,cAAc,kBAAkB;AAC7E,eACE,oBAAC,SAAgB,WAAW,gDACzB,kBAAQ,MAAM,eADP,KAEV;AAAA,MAEJ;AAAA,IACF,CAAC;AAAA,IACD,oBAAC,YAAO,KAAK,gBAAiB,UAAS;AAAA,KACzC;AAEJ;AAEA,SAAS,oBAAoB,SAAwC;AACnE,MAAI,eAAyB,CAAC;AAC9B,MAAI,SAAS;AACX,QAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,mBAAa,KAAK,GAAG,OAAO;AAAA,IAC9B,OAAO;AACL,mBAAa,KAAK,OAAO;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO,aAAa;AAAA,IAClB,CAAC,YACC,IAAI,YAAY;AAAA,MACd,MAAM,KAAK;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACL;AACF;","names":[]}