@bikdotai/bik-component-library 0.0.868-beta.9 → 0.0.868

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 (218) hide show
  1. package/README.md +0 -3
  2. package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
  3. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  4. package/dist/cjs/components/bik-copilot/BIKCopilot.js +2 -0
  5. package/dist/cjs/components/bik-copilot/BIKCopilot.js.map +1 -0
  6. package/dist/cjs/components/bik-copilot/ControlledCopilot.js +2 -0
  7. package/dist/cjs/components/bik-copilot/ControlledCopilot.js.map +1 -0
  8. package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js +27 -0
  9. package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
  10. package/dist/cjs/components/bik-copilot/CopilotBall.js +2 -0
  11. package/dist/cjs/components/bik-copilot/CopilotBall.js.map +1 -0
  12. package/dist/cjs/components/bik-copilot/CopilotBall.styled.js +42 -0
  13. package/dist/cjs/components/bik-copilot/CopilotBall.styled.js.map +1 -0
  14. package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.js +2 -0
  15. package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.js.map +1 -0
  16. package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.styled.js +108 -0
  17. package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.styled.js.map +1 -0
  18. package/dist/cjs/components/bik-copilot/CopilotPanel.js +2 -0
  19. package/dist/cjs/components/bik-copilot/CopilotPanel.js.map +1 -0
  20. package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js +534 -0
  21. package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
  22. package/dist/cjs/components/bik-copilot/copilotPlacement.js +2 -0
  23. package/dist/cjs/components/bik-copilot/copilotPlacement.js.map +1 -0
  24. package/dist/cjs/components/bik-copilot/copilotRegenerate.js +2 -0
  25. package/dist/cjs/components/bik-copilot/copilotRegenerate.js.map +1 -0
  26. package/dist/cjs/components/bik-copilot/services/copilotDb.js +2 -0
  27. package/dist/cjs/components/bik-copilot/services/copilotDb.js.map +1 -0
  28. package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js +2 -0
  29. package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js.map +1 -0
  30. package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js +2 -0
  31. package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
  32. package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js +2 -0
  33. package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
  34. package/dist/cjs/components/bik-copilot/services/copilotPageSession.js +2 -0
  35. package/dist/cjs/components/bik-copilot/services/copilotPageSession.js.map +1 -0
  36. package/dist/cjs/components/bik-copilot/services/copilotSseParser.js +7 -0
  37. package/dist/cjs/components/bik-copilot/services/copilotSseParser.js.map +1 -0
  38. package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js +2 -0
  39. package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
  40. package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js +2 -0
  41. package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
  42. package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js +2 -0
  43. package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
  44. package/dist/cjs/components/bik-copilot/useDraggableFloater.js +2 -0
  45. package/dist/cjs/components/bik-copilot/useDraggableFloater.js.map +1 -0
  46. package/dist/cjs/components/bik-copilot/utils/markdown.js +4 -0
  47. package/dist/cjs/components/bik-copilot/utils/markdown.js.map +1 -0
  48. package/dist/cjs/components/bik-copilot/utils/toolCtas.js +2 -0
  49. package/dist/cjs/components/bik-copilot/utils/toolCtas.js.map +1 -0
  50. package/dist/cjs/components/button/themes.js +2 -2
  51. package/dist/cjs/components/button/themes.js.map +1 -1
  52. package/dist/cjs/components/datePicker/DatePickerWrapper.js +1 -1
  53. package/dist/cjs/components/datePicker/DatePickerWrapper.js.map +1 -1
  54. package/dist/cjs/index.js +1 -1
  55. package/dist/esm/components/agent-builder/constants/tools.d.ts +1 -0
  56. package/dist/esm/components/agent-builder/constants/tools.js +18 -18
  57. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  58. package/dist/esm/components/bik-copilot/BIKCopilot.d.ts +31 -0
  59. package/dist/esm/components/bik-copilot/BIKCopilot.js +118 -0
  60. package/dist/esm/components/bik-copilot/BIKCopilot.js.map +1 -0
  61. package/dist/esm/components/bik-copilot/ControlledCopilot.d.ts +14 -0
  62. package/dist/esm/components/bik-copilot/ControlledCopilot.js +174 -0
  63. package/dist/esm/components/bik-copilot/ControlledCopilot.js.map +1 -0
  64. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.d.ts +7 -0
  65. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js +31 -0
  66. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
  67. package/dist/esm/components/bik-copilot/CopilotBall.d.ts +13 -0
  68. package/dist/esm/components/bik-copilot/CopilotBall.js +50 -0
  69. package/dist/esm/components/bik-copilot/CopilotBall.js.map +1 -0
  70. package/dist/esm/components/bik-copilot/CopilotBall.styled.d.ts +9 -0
  71. package/dist/esm/components/bik-copilot/CopilotBall.styled.js +46 -0
  72. package/dist/esm/components/bik-copilot/CopilotBall.styled.js.map +1 -0
  73. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.d.ts +29 -0
  74. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js +73 -0
  75. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js.map +1 -0
  76. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.d.ts +12 -0
  77. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js +122 -0
  78. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js.map +1 -0
  79. package/dist/esm/components/bik-copilot/CopilotPanel.d.ts +9 -0
  80. package/dist/esm/components/bik-copilot/CopilotPanel.js +536 -0
  81. package/dist/esm/components/bik-copilot/CopilotPanel.js.map +1 -0
  82. package/dist/esm/components/bik-copilot/CopilotPanel.styled.d.ts +67 -0
  83. package/dist/esm/components/bik-copilot/CopilotPanel.styled.js +573 -0
  84. package/dist/esm/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
  85. package/dist/esm/components/bik-copilot/copilotPlacement.d.ts +24 -0
  86. package/dist/esm/components/bik-copilot/copilotPlacement.js +38 -0
  87. package/dist/esm/components/bik-copilot/copilotPlacement.js.map +1 -0
  88. package/dist/esm/components/bik-copilot/copilotRegenerate.d.ts +22 -0
  89. package/dist/esm/components/bik-copilot/copilotRegenerate.js +6 -0
  90. package/dist/esm/components/bik-copilot/copilotRegenerate.js.map +1 -0
  91. package/dist/esm/components/bik-copilot/index.d.ts +19 -0
  92. package/dist/esm/components/bik-copilot/model.d.ts +804 -0
  93. package/dist/esm/components/bik-copilot/services/copilotDb.d.ts +90 -0
  94. package/dist/esm/components/bik-copilot/services/copilotDb.js +96 -0
  95. package/dist/esm/components/bik-copilot/services/copilotDb.js.map +1 -0
  96. package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.d.ts +15 -0
  97. package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js +55 -0
  98. package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js.map +1 -0
  99. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.d.ts +11 -0
  100. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js +54 -0
  101. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
  102. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.d.ts +23 -0
  103. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js +78 -0
  104. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
  105. package/dist/esm/components/bik-copilot/services/copilotPageSession.d.ts +37 -0
  106. package/dist/esm/components/bik-copilot/services/copilotPageSession.js +35 -0
  107. package/dist/esm/components/bik-copilot/services/copilotPageSession.js.map +1 -0
  108. package/dist/esm/components/bik-copilot/services/copilotSseParser.d.ts +22 -0
  109. package/dist/esm/components/bik-copilot/services/copilotSseParser.js +52 -0
  110. package/dist/esm/components/bik-copilot/services/copilotSseParser.js.map +1 -0
  111. package/dist/esm/components/bik-copilot/services/copilotStreamClient.d.ts +35 -0
  112. package/dist/esm/components/bik-copilot/services/copilotStreamClient.js +110 -0
  113. package/dist/esm/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
  114. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.d.ts +17 -0
  115. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js +60 -0
  116. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
  117. package/dist/esm/components/bik-copilot/useCopilotStreamChat.d.ts +20 -0
  118. package/dist/esm/components/bik-copilot/useCopilotStreamChat.js +377 -0
  119. package/dist/esm/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
  120. package/dist/esm/components/bik-copilot/useDraggableFloater.d.ts +9 -0
  121. package/dist/esm/components/bik-copilot/useDraggableFloater.js +118 -0
  122. package/dist/esm/components/bik-copilot/useDraggableFloater.js.map +1 -0
  123. package/dist/esm/components/bik-copilot/utils/markdown.d.ts +1 -0
  124. package/dist/esm/components/bik-copilot/utils/markdown.js +48 -0
  125. package/dist/esm/components/bik-copilot/utils/markdown.js.map +1 -0
  126. package/dist/esm/components/bik-copilot/utils/toolCtas.d.ts +6 -0
  127. package/dist/esm/components/bik-copilot/utils/toolCtas.js +27 -0
  128. package/dist/esm/components/bik-copilot/utils/toolCtas.js.map +1 -0
  129. package/dist/esm/components/button/themes.js +1 -2
  130. package/dist/esm/components/button/themes.js.map +1 -1
  131. package/dist/esm/components/datePicker/DatePickerWrapper.d.ts +0 -7
  132. package/dist/esm/components/datePicker/DatePickerWrapper.js +64 -66
  133. package/dist/esm/components/datePicker/DatePickerWrapper.js.map +1 -1
  134. package/dist/esm/components/datePicker/index.d.ts +0 -1
  135. package/dist/esm/index.d.ts +1 -3
  136. package/dist/esm/index.js +844 -828
  137. package/dist/esm/index.js.map +1 -1
  138. package/package.json +1 -1
  139. package/dist/cjs/components/chip-selector/ChipSelector.js +0 -2
  140. package/dist/cjs/components/chip-selector/ChipSelector.js.map +0 -1
  141. package/dist/cjs/components/chip-selector/ChipSelector.styled.js +0 -36
  142. package/dist/cjs/components/chip-selector/ChipSelector.styled.js.map +0 -1
  143. package/dist/cjs/components/chip-selector/ChipSelectorGroup.js +0 -2
  144. package/dist/cjs/components/chip-selector/ChipSelectorGroup.js.map +0 -1
  145. package/dist/cjs/components/combo-box/ComboBox.js +0 -2
  146. package/dist/cjs/components/combo-box/ComboBox.js.map +0 -1
  147. package/dist/cjs/components/combo-box/ComboBox.styled.js +0 -33
  148. package/dist/cjs/components/combo-box/ComboBox.styled.js.map +0 -1
  149. package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js +0 -2
  150. package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js.map +0 -1
  151. package/dist/cjs/components/schedule-builder/ScheduleBuilder.js +0 -2
  152. package/dist/cjs/components/schedule-builder/ScheduleBuilder.js.map +0 -1
  153. package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js +0 -138
  154. package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js.map +0 -1
  155. package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js +0 -2
  156. package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js.map +0 -1
  157. package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js +0 -2
  158. package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js.map +0 -1
  159. package/dist/cjs/components/schedule-builder/ScheduleHelper.js +0 -2
  160. package/dist/cjs/components/schedule-builder/ScheduleHelper.js.map +0 -1
  161. package/dist/cjs/components/schedule-builder/SendModeSelector.js +0 -2
  162. package/dist/cjs/components/schedule-builder/SendModeSelector.js.map +0 -1
  163. package/dist/cjs/components/schedule-builder/StartDateTimePicker.js +0 -2
  164. package/dist/cjs/components/schedule-builder/StartDateTimePicker.js.map +0 -1
  165. package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js +0 -2
  166. package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js.map +0 -1
  167. package/dist/cjs/components/schedule-builder/model.js +0 -2
  168. package/dist/cjs/components/schedule-builder/model.js.map +0 -1
  169. package/dist/esm/components/chip-selector/ChipSelector.d.ts +0 -9
  170. package/dist/esm/components/chip-selector/ChipSelector.js +0 -27
  171. package/dist/esm/components/chip-selector/ChipSelector.js.map +0 -1
  172. package/dist/esm/components/chip-selector/ChipSelector.styled.d.ts +0 -10
  173. package/dist/esm/components/chip-selector/ChipSelector.styled.js +0 -48
  174. package/dist/esm/components/chip-selector/ChipSelector.styled.js.map +0 -1
  175. package/dist/esm/components/chip-selector/ChipSelectorGroup.d.ts +0 -10
  176. package/dist/esm/components/chip-selector/ChipSelectorGroup.js +0 -48
  177. package/dist/esm/components/chip-selector/ChipSelectorGroup.js.map +0 -1
  178. package/dist/esm/components/chip-selector/index.d.ts +0 -4
  179. package/dist/esm/components/chip-selector/model.d.ts +0 -106
  180. package/dist/esm/components/combo-box/ComboBox.d.ts +0 -15
  181. package/dist/esm/components/combo-box/ComboBox.js +0 -118
  182. package/dist/esm/components/combo-box/ComboBox.js.map +0 -1
  183. package/dist/esm/components/combo-box/ComboBox.styled.d.ts +0 -12
  184. package/dist/esm/components/combo-box/ComboBox.styled.js +0 -40
  185. package/dist/esm/components/combo-box/ComboBox.styled.js.map +0 -1
  186. package/dist/esm/components/combo-box/index.d.ts +0 -3
  187. package/dist/esm/components/combo-box/model.d.ts +0 -55
  188. package/dist/esm/components/schedule-builder/RefreshSegmentToggle.d.ts +0 -22
  189. package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js +0 -31
  190. package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js.map +0 -1
  191. package/dist/esm/components/schedule-builder/ScheduleBuilder.d.ts +0 -88
  192. package/dist/esm/components/schedule-builder/ScheduleBuilder.js +0 -105
  193. package/dist/esm/components/schedule-builder/ScheduleBuilder.js.map +0 -1
  194. package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.d.ts +0 -81
  195. package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js +0 -168
  196. package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js.map +0 -1
  197. package/dist/esm/components/schedule-builder/ScheduleEndPicker.d.ts +0 -17
  198. package/dist/esm/components/schedule-builder/ScheduleEndPicker.js +0 -105
  199. package/dist/esm/components/schedule-builder/ScheduleEndPicker.js.map +0 -1
  200. package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.d.ts +0 -21
  201. package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js +0 -136
  202. package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js.map +0 -1
  203. package/dist/esm/components/schedule-builder/ScheduleHelper.d.ts +0 -110
  204. package/dist/esm/components/schedule-builder/ScheduleHelper.js +0 -196
  205. package/dist/esm/components/schedule-builder/ScheduleHelper.js.map +0 -1
  206. package/dist/esm/components/schedule-builder/SendModeSelector.d.ts +0 -29
  207. package/dist/esm/components/schedule-builder/SendModeSelector.js +0 -41
  208. package/dist/esm/components/schedule-builder/SendModeSelector.js.map +0 -1
  209. package/dist/esm/components/schedule-builder/StartDateTimePicker.d.ts +0 -51
  210. package/dist/esm/components/schedule-builder/StartDateTimePicker.js +0 -120
  211. package/dist/esm/components/schedule-builder/StartDateTimePicker.js.map +0 -1
  212. package/dist/esm/components/schedule-builder/UpcomingRunsPreview.d.ts +0 -19
  213. package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js +0 -44
  214. package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js.map +0 -1
  215. package/dist/esm/components/schedule-builder/index.d.ts +0 -18
  216. package/dist/esm/components/schedule-builder/model.d.ts +0 -69
  217. package/dist/esm/components/schedule-builder/model.js +0 -8
  218. package/dist/esm/components/schedule-builder/model.js.map +0 -1
@@ -0,0 +1,122 @@
1
+ import r from "styled-components";
2
+ import { COLORS as o } from "../../constants/Theme.js";
3
+ const a = r.div`
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: 10px;
7
+ width: 220px;
8
+ padding: 14px;
9
+ background: ${o.surface.standard};
10
+ border: 1px solid ${o.stroke.primary};
11
+ border-radius: 12px;
12
+ box-shadow: 0 12px 32px rgba(40, 3, 78, 0.16);
13
+ `, i = r.div`
14
+ display: flex;
15
+ align-items: flex-start;
16
+ justify-content: space-between;
17
+ gap: 8px;
18
+ `, d = r.div`
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 2px;
22
+ `, s = r.span`
23
+ font-family: Inter;
24
+ font-size: 13px;
25
+ font-weight: 600;
26
+ line-height: 18px;
27
+ color: ${o.content.primary};
28
+ `, p = r.span`
29
+ font-family: Inter;
30
+ font-size: 11px;
31
+ line-height: 16px;
32
+ color: ${o.content.placeholder};
33
+ `, c = r.button`
34
+ display: inline-flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ width: 20px;
38
+ height: 20px;
39
+ flex-shrink: 0;
40
+ padding: 0;
41
+ border: none;
42
+ border-radius: 4px;
43
+ background: transparent;
44
+ color: ${o.content.placeholder};
45
+ cursor: pointer;
46
+ transition: background 0.15s ease, color 0.15s ease;
47
+
48
+ &:hover {
49
+ background: ${o.surface.hovered};
50
+ color: ${o.content.primary};
51
+ }
52
+ `, l = r.div`
53
+ display: flex;
54
+ flex-wrap: wrap;
55
+ gap: 6px;
56
+ `, x = r.button`
57
+ padding: 4px 8px;
58
+ border-radius: 6px;
59
+ border: 1px solid
60
+ ${({ $selected: e }) => e ? o.stroke.brand : o.stroke.primary};
61
+ background: ${({ $selected: e }) => e ? o.background.brandVeryLight : o.surface.standard};
62
+ color: ${({ $selected: e }) => e ? o.content.brand : o.content.secondary};
63
+ font-family: Inter;
64
+ font-size: 11px;
65
+ line-height: 16px;
66
+ text-align: left;
67
+ cursor: pointer;
68
+ transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
69
+
70
+ &:hover {
71
+ background: ${({ $selected: e }) => e ? o.background.brandVeryLight : o.surface.hovered};
72
+ }
73
+ `, b = r.textarea`
74
+ min-height: 64px;
75
+ padding: 8px;
76
+ border: 1px solid ${o.stroke.primary};
77
+ border-radius: 8px;
78
+ background: ${o.surface.standard};
79
+ color: ${o.content.primary};
80
+ font-family: Inter;
81
+ font-size: 11px;
82
+ line-height: 16px;
83
+ resize: none;
84
+ outline: none;
85
+
86
+ &::placeholder {
87
+ color: ${o.content.placeholder};
88
+ }
89
+
90
+ &:focus {
91
+ border-color: ${o.stroke.brand};
92
+ }
93
+ `, u = r.button`
94
+ padding: 8px;
95
+ border: none;
96
+ border-radius: 8px;
97
+ background: ${o.background.brand};
98
+ color: ${o.content.primaryInverse};
99
+ font-family: Inter;
100
+ font-size: 12px;
101
+ font-weight: 600;
102
+ line-height: 16px;
103
+ cursor: pointer;
104
+ transition: background 0.15s ease;
105
+
106
+ &:hover {
107
+ background: ${o.background.brandHovered};
108
+ }
109
+ `;
110
+ export {
111
+ a as ModalCard,
112
+ c as ModalClose,
113
+ i as ModalHeader,
114
+ d as ModalHeading,
115
+ p as ModalSubtitle,
116
+ s as ModalTitle,
117
+ b as NoteInput,
118
+ x as ReasonChip,
119
+ l as ReasonList,
120
+ u as SubmitButton
121
+ };
122
+ //# sourceMappingURL=CopilotFeedbackModal.styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopilotFeedbackModal.styled.js","sources":["../../../../src/components/bik-copilot/CopilotFeedbackModal.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const ModalCard = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n\twidth: 220px;\n\tpadding: 14px;\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 12px;\n\tbox-shadow: 0 12px 32px rgba(40, 3, 78, 0.16);\n`;\n\nexport const ModalHeader = styled.div`\n\tdisplay: flex;\n\talign-items: flex-start;\n\tjustify-content: space-between;\n\tgap: 8px;\n`;\n\nexport const ModalHeading = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n`;\n\nexport const ModalTitle = styled.span`\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tline-height: 18px;\n\tcolor: ${COLORS.content.primary};\n`;\n\nexport const ModalSubtitle = styled.span`\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.placeholder};\n`;\n\nexport const ModalClose = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: ${COLORS.content.placeholder};\n\tcursor: pointer;\n\ttransition: background 0.15s ease, color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.hovered};\n\t\tcolor: ${COLORS.content.primary};\n\t}\n`;\n\nexport const ReasonList = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n`;\n\n/* A toggle, not a radio: more than one thing can be wrong with one reply. */\nexport const ReasonChip = styled.button<{ $selected: boolean }>`\n\tpadding: 4px 8px;\n\tborder-radius: 6px;\n\tborder: 1px solid\n\t\t${({ $selected }) =>\n\t\t\t$selected ? COLORS.stroke.brand : COLORS.stroke.primary};\n\tbackground: ${({ $selected }) =>\n\t\t$selected ? COLORS.background.brandVeryLight : COLORS.surface.standard};\n\tcolor: ${({ $selected }) =>\n\t\t$selected ? COLORS.content.brand : COLORS.content.secondary};\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\ttext-align: left;\n\tcursor: pointer;\n\ttransition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${({ $selected }) =>\n\t\t\t$selected ? COLORS.background.brandVeryLight : COLORS.surface.hovered};\n\t}\n`;\n\nexport const NoteInput = styled.textarea`\n\tmin-height: 64px;\n\tpadding: 8px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbackground: ${COLORS.surface.standard};\n\tcolor: ${COLORS.content.primary};\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tresize: none;\n\toutline: none;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n\n\t&:focus {\n\t\tborder-color: ${COLORS.stroke.brand};\n\t}\n`;\n\nexport const SubmitButton = styled.button`\n\tpadding: 8px;\n\tborder: none;\n\tborder-radius: 8px;\n\tbackground: ${COLORS.background.brand};\n\tcolor: ${COLORS.content.primaryInverse};\n\tfont-family: Inter;\n\tfont-size: 12px;\n\tfont-weight: 600;\n\tline-height: 16px;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${COLORS.background.brandHovered};\n\t}\n`;\n"],"names":["ModalCard","styled","COLORS","ModalHeader","ModalHeading","ModalTitle","ModalSubtitle","ModalClose","ReasonList","ReasonChip","$selected","NoteInput","SubmitButton"],"mappings":";;AAGO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMjBC,EAAO,QAAQ,QAAQ;AAAA,qBACjBA,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA,GAK7BC,IAAcF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOrBG,IAAeH,EAAO;AAAA;AAAA;AAAA;AAAA,GAMtBI,IAAaJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKvBC,EAAO,QAAQ,OAAO;AAAA,GAGnBI,IAAgBL,EAAO;AAAA;AAAA;AAAA;AAAA,UAI1BC,EAAO,QAAQ,WAAW;AAAA,GAGvBK,IAAaN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWvBC,EAAO,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKpBA,EAAO,QAAQ,OAAO;AAAA,WAC3BA,EAAO,QAAQ,OAAO;AAAA;AAAA,GAIpBM,IAAaP,EAAO;AAAA;AAAA;AAAA;AAAA,GAOpBQ,IAAaR,EAAO;AAAA;AAAA;AAAA;AAAA,IAI7B,CAAC,EAAE,WAAAS,EAAA,MACJA,IAAYR,EAAO,OAAO,QAAQA,EAAO,OAAO,OAAO;AAAA,eAC3C,CAAC,EAAE,WAAAQ,EAAA,MAChBA,IAAYR,EAAO,WAAW,iBAAiBA,EAAO,QAAQ,QAAQ;AAAA,UAC9D,CAAC,EAAE,WAAAQ,EAAA,MACXA,IAAYR,EAAO,QAAQ,QAAQA,EAAO,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAS7C,CAAC,EAAE,WAAAQ,EAAA,MAChBA,IAAYR,EAAO,WAAW,iBAAiBA,EAAO,QAAQ,OAAO;AAAA;AAAA,GAI3DS,IAAYV,EAAO;AAAA;AAAA;AAAA,qBAGXC,EAAO,OAAO,OAAO;AAAA;AAAA,eAE3BA,EAAO,QAAQ,QAAQ;AAAA,UAC5BA,EAAO,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQrBA,EAAO,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,kBAInBA,EAAO,OAAO,KAAK;AAAA;AAAA,GAIxBU,IAAeX,EAAO;AAAA;AAAA;AAAA;AAAA,eAIpBC,EAAO,WAAW,KAAK;AAAA,UAC5BA,EAAO,QAAQ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBASvBA,EAAO,WAAW,YAAY;AAAA;AAAA;"}
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ import { CopilotPanelProps } from './model';
3
+ /**
4
+ * Chat panel used by the copilot. Fully presentational: it renders the
5
+ * transcript it is given and reports user intent through callbacks, so it works
6
+ * against any backend.
7
+ */
8
+ export declare const CopilotPanel: React.FC<CopilotPanelProps>;
9
+ export default CopilotPanel;
@@ -0,0 +1,536 @@
1
+ import { jsxs as o, jsx as t, Fragment as je } from "react/jsx-runtime";
2
+ import Ne from "../../assets/icons/arrow_down.svg.js";
3
+ import g from "../../assets/icons/bik_ai_stars_icon.svg.js";
4
+ import $e from "../../assets/icons/cross.svg.js";
5
+ import Oe from "../../assets/icons/refresh.svg.js";
6
+ import Ue, { useState as h, useRef as u, useEffect as j } from "react";
7
+ import { COLORS as k } from "../../constants/Theme.js";
8
+ import { TitleSmall as Ve, BodyCaption as le, BodySecondary as De } from "../TypographyStyle.js";
9
+ import { CopilotFeedbackModal as Ke } from "./CopilotFeedbackModal.js";
10
+ import { PanelContainer as Xe, PanelHeader as Ge, HeaderAvatar as ze, HeaderText as Je, HeaderTitleRow as Ze, HeaderBadge as qe, HeaderActions as Qe, IconAction as ce, MessagesViewport as Ye, MessagesArea as et, EmptyState as tt, EmptyStateIcon as rt, SuggestionList as ot, SuggestionChip as nt, HistoryLoader as it, MessageBubble as lt, ToolCtaList as ct, ToolCtaLink as dt, MessageTimestamp as at, InterruptedNote as st, MessageActions as ht, MessageAction as T, FollowUpList as ut, FollowUpsLabel as pt, FollowUpChip as ft, ThinkingBubble as kt, ThinkingLabel as wt, ScrollFade as Ct, JumpToLatestButton as mt, ErrorBanner as yt, InputArea as bt, InputWrapper as vt, MessageInput as gt, SendButton as Tt, Disclaimer as St } from "./CopilotPanel.styled.js";
11
+ import { isCopilotRegeneratePrompt as Mt } from "./copilotRegenerate.js";
12
+ import { renderCopilotMarkdown as It } from "./utils/markdown.js";
13
+ import { toolResultCtas as xt } from "./utils/toolCtas.js";
14
+ import { DotPulse as de } from "../dot-pulse/DotPulse.js";
15
+ const At = 96, Lt = 24, Bt = 1800, Ht = async (n) => {
16
+ try {
17
+ if (navigator.clipboard?.writeText)
18
+ return await navigator.clipboard.writeText(n), !0;
19
+ } catch {
20
+ }
21
+ try {
22
+ const i = document.createElement("textarea");
23
+ i.value = n, i.setAttribute("readonly", ""), i.style.position = "fixed", i.style.top = "-1000px", i.style.opacity = "0", document.body.appendChild(i), i.select();
24
+ const S = document.execCommand("copy");
25
+ return document.body.removeChild(i), S;
26
+ } catch {
27
+ return !1;
28
+ }
29
+ }, Rt = 48, Ft = (n) => {
30
+ if (!n || !Number.isFinite(n))
31
+ return "";
32
+ const i = new Date(n);
33
+ return Number.isNaN(i.getTime()) ? "" : i.toLocaleTimeString("en-US", {
34
+ hour: "numeric",
35
+ minute: "2-digit"
36
+ });
37
+ }, Et = () => /* @__PURE__ */ o(
38
+ "svg",
39
+ {
40
+ viewBox: "0 0 24 24",
41
+ width: "16",
42
+ height: "16",
43
+ fill: "none",
44
+ stroke: "currentColor",
45
+ strokeWidth: "2",
46
+ strokeLinecap: "round",
47
+ strokeLinejoin: "round",
48
+ "aria-hidden": "true",
49
+ children: [
50
+ /* @__PURE__ */ t("path", { d: "M12 19V5" }),
51
+ /* @__PURE__ */ t("path", { d: "M6 11l6-6 6 6" })
52
+ ]
53
+ }
54
+ ), _t = () => /* @__PURE__ */ o(
55
+ "svg",
56
+ {
57
+ viewBox: "0 0 24 24",
58
+ width: "14",
59
+ height: "14",
60
+ fill: "none",
61
+ stroke: "currentColor",
62
+ strokeWidth: "2",
63
+ strokeLinecap: "round",
64
+ strokeLinejoin: "round",
65
+ "aria-hidden": "true",
66
+ children: [
67
+ /* @__PURE__ */ t("path", { d: "M5 12h14" }),
68
+ /* @__PURE__ */ t("path", { d: "M13 6l6 6-6 6" })
69
+ ]
70
+ }
71
+ ), ae = ({ size: n = 16 }) => /* @__PURE__ */ t(
72
+ "svg",
73
+ {
74
+ viewBox: "0 0 24 24",
75
+ width: n,
76
+ height: n,
77
+ fill: "currentColor",
78
+ "aria-hidden": "true",
79
+ children: /* @__PURE__ */ t("rect", { x: "7", y: "7", width: "10", height: "10", rx: "2" })
80
+ }
81
+ ), Pt = () => /* @__PURE__ */ o(
82
+ "svg",
83
+ {
84
+ viewBox: "0 0 24 24",
85
+ width: "14",
86
+ height: "14",
87
+ fill: "none",
88
+ stroke: "currentColor",
89
+ strokeWidth: "1.8",
90
+ strokeLinecap: "round",
91
+ strokeLinejoin: "round",
92
+ "aria-hidden": "true",
93
+ children: [
94
+ /* @__PURE__ */ t("rect", { x: "9", y: "9", width: "11", height: "11", rx: "2" }),
95
+ /* @__PURE__ */ t("path", { d: "M15 5.5A1.5 1.5 0 0 0 13.5 4H5.5A1.5 1.5 0 0 0 4 5.5v8A1.5 1.5 0 0 0 5.5 15" })
96
+ ]
97
+ }
98
+ ), Wt = () => /* @__PURE__ */ t(
99
+ "svg",
100
+ {
101
+ viewBox: "0 0 24 24",
102
+ width: "14",
103
+ height: "14",
104
+ fill: "none",
105
+ stroke: "currentColor",
106
+ strokeWidth: "2.2",
107
+ strokeLinecap: "round",
108
+ strokeLinejoin: "round",
109
+ "aria-hidden": "true",
110
+ children: /* @__PURE__ */ t("path", { d: "M5 13l4 4L19 7" })
111
+ }
112
+ ), jt = () => /* @__PURE__ */ o(
113
+ "svg",
114
+ {
115
+ viewBox: "0 0 24 24",
116
+ width: "14",
117
+ height: "14",
118
+ fill: "none",
119
+ stroke: "currentColor",
120
+ strokeWidth: "1.8",
121
+ strokeLinecap: "round",
122
+ strokeLinejoin: "round",
123
+ "aria-hidden": "true",
124
+ children: [
125
+ /* @__PURE__ */ t("path", { d: "M20 12a8 8 0 1 1-2.34-5.66" }),
126
+ /* @__PURE__ */ t("path", { d: "M20 4v4h-4" })
127
+ ]
128
+ }
129
+ ), Nt = ({ filled: n = !1 }) => /* @__PURE__ */ o(
130
+ "svg",
131
+ {
132
+ viewBox: "0 0 24 24",
133
+ width: "14",
134
+ height: "14",
135
+ fill: n ? "currentColor" : "none",
136
+ stroke: "currentColor",
137
+ strokeWidth: "1.8",
138
+ strokeLinecap: "round",
139
+ strokeLinejoin: "round",
140
+ "aria-hidden": "true",
141
+ children: [
142
+ /* @__PURE__ */ t("path", { d: "M7 10v11H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h3Z" }),
143
+ /* @__PURE__ */ t("path", { d: "M7 10l4.5-7a2 2 0 0 1 3.7 1.3L14.5 9H19a2 2 0 0 1 2 2.3l-1.1 7A2 2 0 0 1 18 20H7" })
144
+ ]
145
+ }
146
+ ), $t = ({ filled: n = !1 }) => /* @__PURE__ */ o(
147
+ "svg",
148
+ {
149
+ viewBox: "0 0 24 24",
150
+ width: "14",
151
+ height: "14",
152
+ fill: n ? "currentColor" : "none",
153
+ stroke: "currentColor",
154
+ strokeWidth: "1.8",
155
+ strokeLinecap: "round",
156
+ strokeLinejoin: "round",
157
+ "aria-hidden": "true",
158
+ children: [
159
+ /* @__PURE__ */ t("path", { d: "M7 14V3H4a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h3Z" }),
160
+ /* @__PURE__ */ t("path", { d: "M7 14l4.5 7a2 2 0 0 0 3.7-1.3L14.5 15H19a2 2 0 0 0 2-2.3l-1.1-7A2 2 0 0 0 18 4H7" })
161
+ ]
162
+ }
163
+ ), tr = ({
164
+ messages: n,
165
+ onSend: i,
166
+ onClose: S,
167
+ title: w = "Copilot",
168
+ badge: N,
169
+ subtitle: $,
170
+ avatar: se,
171
+ placeholder: he = "Write your message...",
172
+ disclaimer: O = "AI can make mistakes, Verify the responses.",
173
+ emptyStateTitle: ue,
174
+ emptyStateSubtitle: U = "Here are some things you can try",
175
+ suggestions: M,
176
+ onSuggestionClick: pe,
177
+ showRefresh: fe = !0,
178
+ onRefresh: V,
179
+ onRegenerate: D,
180
+ onFeedback: I,
181
+ dislikeTitle: ke,
182
+ dislikeSubtitle: we,
183
+ dislikeReasons: Ce,
184
+ dislikeNotePlaceholder: me,
185
+ dislikeSubmitLabel: ye,
186
+ isThinking: C = !1,
187
+ thinkingLabel: K = "Thinking",
188
+ isStreaming: be = !1,
189
+ onStop: X,
190
+ interruptedLabel: G = "This message was interrupted",
191
+ followUpsLabel: z = "Follow ups",
192
+ onToolCtaClick: ve,
193
+ hasMoreHistory: ge = !1,
194
+ isLoadingHistory: m = !1,
195
+ onLoadOlderMessages: J,
196
+ historyLoadingLabel: Te = "Loading earlier messages",
197
+ inputDisabled: d = !1,
198
+ errorMessage: Z,
199
+ width: Se,
200
+ height: Me,
201
+ className: Ie,
202
+ style: xe
203
+ }) => {
204
+ const [x, q] = h(""), [Ae, Q] = h(!1), [A, L] = h(!0), [y, Y] = h(null), [s, Le] = h({}), [b, B] = h(null), ee = u(null), p = u(null), H = u(null), R = u(null), F = u(0), E = u(null), v = n.filter(
205
+ (e) => (e.content.length > 0 || e.wasInterrupted) && !Mt(e.content)
206
+ ), te = v.length === 0 && !C, a = C || be, re = !d && !a && x.trim().length > 0, f = a && !!X, _ = v[v.length - 1], P = !a && _?.role === "assistant" ? _.followUps : void 0, W = !te && !A;
207
+ j(() => {
208
+ A && H.current?.scrollIntoView({ behavior: "smooth" });
209
+ }, [n, C, A]), j(() => {
210
+ const e = R.current, r = E.current;
211
+ !e || r === null || m || (E.current = null, e.scrollTop = e.scrollHeight - r, F.current = e.scrollTop);
212
+ }, [n, m]);
213
+ const Be = () => {
214
+ const e = R.current;
215
+ if (!e)
216
+ return;
217
+ const r = e.scrollHeight - e.scrollTop - e.clientHeight;
218
+ e.scrollTop <= Rt && ge && !m && J && (E.current = e.scrollHeight - e.scrollTop, J());
219
+ const c = e.scrollTop < F.current - 1;
220
+ if (F.current = e.scrollTop, r <= Lt) {
221
+ L(!0);
222
+ return;
223
+ }
224
+ c && L(!1);
225
+ }, He = () => {
226
+ L(!0), H.current?.scrollIntoView({ behavior: "smooth" });
227
+ };
228
+ j(
229
+ () => () => {
230
+ p.current && window.clearTimeout(p.current);
231
+ },
232
+ []
233
+ );
234
+ const Re = async (e) => {
235
+ await Ht(e.content) && (p.current && window.clearTimeout(p.current), Y(e.id), p.current = window.setTimeout(
236
+ () => Y(null),
237
+ Bt
238
+ ));
239
+ }, oe = (e, r) => {
240
+ const c = s[e] === r;
241
+ if (Le((l) => ({
242
+ ...l,
243
+ [e]: l[e] === r ? void 0 : r
244
+ })), c) {
245
+ r === "dislike" && B(
246
+ (l) => l === e ? null : l
247
+ );
248
+ return;
249
+ }
250
+ if (r === "like") {
251
+ I?.(e, "like");
252
+ return;
253
+ }
254
+ b && b !== e && I?.(b, "dislike"), B(e);
255
+ }, ne = (e, r) => {
256
+ B((c) => c === e ? null : c), I?.(e, "dislike", r);
257
+ }, Fe = () => {
258
+ d || a || D?.();
259
+ }, ie = () => {
260
+ const e = x.trim();
261
+ if (!e || d || a)
262
+ return;
263
+ i(e), q("");
264
+ const r = ee.current;
265
+ r && (r.style.height = "auto");
266
+ }, Ee = (e) => {
267
+ q(e.target.value);
268
+ const r = e.target;
269
+ r.style.height = "auto", r.style.height = `${Math.min(
270
+ r.scrollHeight,
271
+ At
272
+ )}px`;
273
+ }, _e = (e) => {
274
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), ie());
275
+ }, Pe = (e) => {
276
+ d || a || (pe?.(e), i(e.text));
277
+ }, We = (e) => {
278
+ d || a || i(e);
279
+ };
280
+ return /* @__PURE__ */ o(
281
+ Xe,
282
+ {
283
+ className: Ie,
284
+ style: { width: Se, height: Me, ...xe },
285
+ role: "dialog",
286
+ "aria-label": w,
287
+ children: [
288
+ /* @__PURE__ */ o(Ge, { children: [
289
+ /* @__PURE__ */ t(ze, { children: se ?? /* @__PURE__ */ t(g, { width: 18, height: 18 }) }),
290
+ /* @__PURE__ */ o(Je, { children: [
291
+ /* @__PURE__ */ o(Ze, { children: [
292
+ /* @__PURE__ */ t(Ve, { children: w }),
293
+ N && /* @__PURE__ */ t(qe, { children: N })
294
+ ] }),
295
+ $ && /* @__PURE__ */ t(le, { color: k.content.secondary, children: $ })
296
+ ] }),
297
+ /* @__PURE__ */ o(Qe, { children: [
298
+ fe && V && /* @__PURE__ */ t(
299
+ ce,
300
+ {
301
+ type: "button",
302
+ onClick: V,
303
+ "aria-label": "Start a new conversation",
304
+ children: /* @__PURE__ */ t(Oe, { width: 16, height: 16 })
305
+ }
306
+ ),
307
+ /* @__PURE__ */ t(
308
+ ce,
309
+ {
310
+ type: "button",
311
+ onClick: S,
312
+ "aria-label": "Close copilot",
313
+ children: /* @__PURE__ */ t($e, { width: 18, height: 18 })
314
+ }
315
+ )
316
+ ] })
317
+ ] }),
318
+ /* @__PURE__ */ o(Ye, { children: [
319
+ /* @__PURE__ */ t(
320
+ et,
321
+ {
322
+ ref: R,
323
+ onScroll: Be,
324
+ role: "region",
325
+ "aria-label": "Conversation",
326
+ children: te ? /* @__PURE__ */ o(tt, { children: [
327
+ /* @__PURE__ */ t(rt, { children: /* @__PURE__ */ t(g, { width: 28, height: 28 }) }),
328
+ /* @__PURE__ */ t(De, { style: { fontWeight: 600 }, children: ue || w }),
329
+ U && /* @__PURE__ */ t(le, { color: k.content.secondary, children: U }),
330
+ M && M.length > 0 && /* @__PURE__ */ t(ot, { children: M.map((e) => /* @__PURE__ */ o(
331
+ nt,
332
+ {
333
+ type: "button",
334
+ disabled: d || a,
335
+ onClick: () => Pe(e),
336
+ children: [
337
+ /* @__PURE__ */ t(g, { width: 14, height: 14 }),
338
+ e.text
339
+ ]
340
+ },
341
+ e.id
342
+ )) })
343
+ ] }) : /* @__PURE__ */ o(je, { children: [
344
+ m && /* @__PURE__ */ o(it, { role: "status", "aria-live": "polite", children: [
345
+ /* @__PURE__ */ t(de, { color: k.content.placeholder, size: 4 }),
346
+ Te
347
+ ] }),
348
+ v.map((e) => {
349
+ const r = e.role === "user" ? Ft(e.timestamp) : "";
350
+ return /* @__PURE__ */ o(Ue.Fragment, { children: [
351
+ e.content.length > 0 && /* @__PURE__ */ t(lt, { $role: e.role, children: e.role === "assistant" ? /* @__PURE__ */ t(
352
+ "div",
353
+ {
354
+ dangerouslySetInnerHTML: {
355
+ __html: It(e.content)
356
+ }
357
+ }
358
+ ) : /* @__PURE__ */ t("div", { style: { whiteSpace: "pre-wrap" }, children: e.content }) }),
359
+ e.role === "assistant" && !e.isStreaming && (() => {
360
+ const c = xt(e.toolResults);
361
+ return c.length === 0 ? null : /* @__PURE__ */ t(ct, { children: c.map((l) => /* @__PURE__ */ t(
362
+ dt,
363
+ {
364
+ href: l.url,
365
+ target: "_blank",
366
+ rel: "noopener noreferrer",
367
+ onClick: () => ve?.({
368
+ tool: l.tool,
369
+ url: l.url
370
+ }),
371
+ children: l.label
372
+ },
373
+ `${l.tool}-${l.url}`
374
+ )) });
375
+ })(),
376
+ r && /* @__PURE__ */ t(at, { children: r }),
377
+ e.wasInterrupted && G && /* @__PURE__ */ o(st, { children: [
378
+ /* @__PURE__ */ t(ae, { size: 12 }),
379
+ G
380
+ ] }),
381
+ e.role === "assistant" && e.content.length > 0 && !e.isStreaming && /* @__PURE__ */ o(ht, { children: [
382
+ /* @__PURE__ */ t(
383
+ T,
384
+ {
385
+ type: "button",
386
+ onClick: () => {
387
+ Re(e);
388
+ },
389
+ "data-copied": y === e.id,
390
+ title: y === e.id ? "Copied" : "Copy",
391
+ "aria-label": y === e.id ? "Response copied to clipboard" : "Copy response",
392
+ children: y === e.id ? /* @__PURE__ */ t(Wt, {}) : /* @__PURE__ */ t(Pt, {})
393
+ }
394
+ ),
395
+ D && e.id === _?.id && /* @__PURE__ */ t(
396
+ T,
397
+ {
398
+ type: "button",
399
+ onClick: Fe,
400
+ disabled: d || a,
401
+ title: "Regenerate",
402
+ "aria-label": "Regenerate response",
403
+ children: /* @__PURE__ */ t(jt, {})
404
+ }
405
+ ),
406
+ /* @__PURE__ */ t(
407
+ T,
408
+ {
409
+ type: "button",
410
+ onClick: () => oe(e.id, "like"),
411
+ "data-selected": s[e.id] === "like",
412
+ "aria-pressed": s[e.id] === "like",
413
+ title: "Good response",
414
+ "aria-label": "Good response",
415
+ children: /* @__PURE__ */ t(
416
+ Nt,
417
+ {
418
+ filled: s[e.id] === "like"
419
+ }
420
+ )
421
+ }
422
+ ),
423
+ /* @__PURE__ */ t(
424
+ T,
425
+ {
426
+ type: "button",
427
+ onClick: () => oe(e.id, "dislike"),
428
+ "data-selected": s[e.id] === "dislike",
429
+ "aria-pressed": s[e.id] === "dislike",
430
+ title: "Bad response",
431
+ "aria-label": "Bad response",
432
+ children: /* @__PURE__ */ t(
433
+ $t,
434
+ {
435
+ filled: s[e.id] === "dislike"
436
+ }
437
+ )
438
+ }
439
+ )
440
+ ] }),
441
+ b === e.id && /* @__PURE__ */ t(
442
+ Ke,
443
+ {
444
+ title: ke,
445
+ subtitle: we ?? `Help us improve ${w}`,
446
+ reasons: Ce,
447
+ notePlaceholder: me,
448
+ submitLabel: ye,
449
+ onSubmit: (c) => ne(e.id, c),
450
+ onDismiss: () => ne(e.id)
451
+ }
452
+ )
453
+ ] }, e.id);
454
+ }),
455
+ P && P.length > 0 && /* @__PURE__ */ o(ut, { children: [
456
+ z && /* @__PURE__ */ t(pt, { children: z }),
457
+ P.map((e) => /* @__PURE__ */ o(
458
+ ft,
459
+ {
460
+ type: "button",
461
+ disabled: d,
462
+ onClick: () => We(e),
463
+ children: [
464
+ /* @__PURE__ */ t(_t, {}),
465
+ e
466
+ ]
467
+ },
468
+ e
469
+ ))
470
+ ] }),
471
+ C && /* @__PURE__ */ o(kt, { role: "status", "aria-live": "polite", children: [
472
+ /* @__PURE__ */ t(
473
+ g,
474
+ {
475
+ width: 14,
476
+ height: 14,
477
+ color: k.content.brand
478
+ }
479
+ ),
480
+ K && /* @__PURE__ */ t(wt, { children: K }),
481
+ /* @__PURE__ */ t(de, { color: k.background.brand, size: 5 })
482
+ ] }),
483
+ /* @__PURE__ */ t("div", { ref: H })
484
+ ] })
485
+ }
486
+ ),
487
+ /* @__PURE__ */ t(Ct, { $visible: W, "aria-hidden": "true" }),
488
+ /* @__PURE__ */ t(
489
+ mt,
490
+ {
491
+ type: "button",
492
+ $visible: W,
493
+ onClick: He,
494
+ tabIndex: W ? 0 : -1,
495
+ "aria-label": "Scroll to the latest message",
496
+ children: /* @__PURE__ */ t(Ne, { width: 16, height: 16 })
497
+ }
498
+ )
499
+ ] }),
500
+ Z && /* @__PURE__ */ t(yt, { role: "alert", children: Z }),
501
+ /* @__PURE__ */ t(bt, { children: /* @__PURE__ */ o(vt, { $focused: Ae, children: [
502
+ /* @__PURE__ */ t(
503
+ gt,
504
+ {
505
+ ref: ee,
506
+ rows: 1,
507
+ value: x,
508
+ placeholder: he,
509
+ disabled: d,
510
+ onChange: Ee,
511
+ onKeyDown: _e,
512
+ onFocus: () => Q(!0),
513
+ onBlur: () => Q(!1)
514
+ }
515
+ ),
516
+ /* @__PURE__ */ t(
517
+ Tt,
518
+ {
519
+ type: "button",
520
+ $active: f || re,
521
+ disabled: !f && !re,
522
+ onClick: f ? X : ie,
523
+ "aria-label": f ? "Stop generating" : "Send message",
524
+ children: f ? /* @__PURE__ */ t(ae, {}) : /* @__PURE__ */ t(Et, {})
525
+ }
526
+ )
527
+ ] }) }),
528
+ O && /* @__PURE__ */ t(St, { children: O })
529
+ ]
530
+ }
531
+ );
532
+ };
533
+ export {
534
+ tr as CopilotPanel
535
+ };
536
+ //# sourceMappingURL=CopilotPanel.js.map