@bikdotai/bik-component-library 0.0.868-beta.9 → 0.0.869-beta.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 (264) 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 +575 -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/copilotSelectionPrompt.js +2 -0
  27. package/dist/cjs/components/bik-copilot/copilotSelectionPrompt.js.map +1 -0
  28. package/dist/cjs/components/bik-copilot/services/copilotDb.js +2 -0
  29. package/dist/cjs/components/bik-copilot/services/copilotDb.js.map +1 -0
  30. package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js +2 -0
  31. package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js.map +1 -0
  32. package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js +2 -0
  33. package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
  34. package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js +2 -0
  35. package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
  36. package/dist/cjs/components/bik-copilot/services/copilotPageSession.js +2 -0
  37. package/dist/cjs/components/bik-copilot/services/copilotPageSession.js.map +1 -0
  38. package/dist/cjs/components/bik-copilot/services/copilotSseParser.js +7 -0
  39. package/dist/cjs/components/bik-copilot/services/copilotSseParser.js.map +1 -0
  40. package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js +2 -0
  41. package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
  42. package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js +2 -0
  43. package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
  44. package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js +2 -0
  45. package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
  46. package/dist/cjs/components/bik-copilot/useDraggableFloater.js +2 -0
  47. package/dist/cjs/components/bik-copilot/useDraggableFloater.js.map +1 -0
  48. package/dist/cjs/components/bik-copilot/utils/markdown.js +4 -0
  49. package/dist/cjs/components/bik-copilot/utils/markdown.js.map +1 -0
  50. package/dist/cjs/components/bik-copilot/utils/toolCtas.js +2 -0
  51. package/dist/cjs/components/bik-copilot/utils/toolCtas.js.map +1 -0
  52. package/dist/cjs/components/button/themes.js +2 -2
  53. package/dist/cjs/components/button/themes.js.map +1 -1
  54. package/dist/cjs/components/datePicker/DatePickerWrapper.js +1 -1
  55. package/dist/cjs/components/datePicker/DatePickerWrapper.js.map +1 -1
  56. package/dist/cjs/components/text-selection-ask/SelectionAskPill.js +2 -0
  57. package/dist/cjs/components/text-selection-ask/SelectionAskPill.js.map +1 -0
  58. package/dist/cjs/components/text-selection-ask/SelectionAskPill.styled.js +32 -0
  59. package/dist/cjs/components/text-selection-ask/SelectionAskPill.styled.js.map +1 -0
  60. package/dist/cjs/components/text-selection-ask/TextSelectionAsk.js +2 -0
  61. package/dist/cjs/components/text-selection-ask/TextSelectionAsk.js.map +1 -0
  62. package/dist/cjs/components/text-selection-ask/model.js +2 -0
  63. package/dist/cjs/components/text-selection-ask/model.js.map +1 -0
  64. package/dist/cjs/components/text-selection-ask/selectionText.js +2 -0
  65. package/dist/cjs/components/text-selection-ask/selectionText.js.map +1 -0
  66. package/dist/cjs/components/text-selection-ask/useTextSelectionAsk.js +2 -0
  67. package/dist/cjs/components/text-selection-ask/useTextSelectionAsk.js.map +1 -0
  68. package/dist/cjs/icons/Informational/Common UI/SquaresFour.js +2 -0
  69. package/dist/cjs/icons/Informational/Common UI/SquaresFour.js.map +1 -0
  70. package/dist/cjs/icons/index.js +1 -1
  71. package/dist/cjs/index.js +1 -1
  72. package/dist/esm/components/agent-builder/constants/tools.d.ts +1 -0
  73. package/dist/esm/components/agent-builder/constants/tools.js +18 -18
  74. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  75. package/dist/esm/components/bik-copilot/BIKCopilot.d.ts +31 -0
  76. package/dist/esm/components/bik-copilot/BIKCopilot.js +118 -0
  77. package/dist/esm/components/bik-copilot/BIKCopilot.js.map +1 -0
  78. package/dist/esm/components/bik-copilot/ControlledCopilot.d.ts +14 -0
  79. package/dist/esm/components/bik-copilot/ControlledCopilot.js +178 -0
  80. package/dist/esm/components/bik-copilot/ControlledCopilot.js.map +1 -0
  81. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.d.ts +7 -0
  82. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js +31 -0
  83. package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
  84. package/dist/esm/components/bik-copilot/CopilotBall.d.ts +13 -0
  85. package/dist/esm/components/bik-copilot/CopilotBall.js +50 -0
  86. package/dist/esm/components/bik-copilot/CopilotBall.js.map +1 -0
  87. package/dist/esm/components/bik-copilot/CopilotBall.styled.d.ts +9 -0
  88. package/dist/esm/components/bik-copilot/CopilotBall.styled.js +46 -0
  89. package/dist/esm/components/bik-copilot/CopilotBall.styled.js.map +1 -0
  90. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.d.ts +29 -0
  91. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js +73 -0
  92. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js.map +1 -0
  93. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.d.ts +12 -0
  94. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js +122 -0
  95. package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js.map +1 -0
  96. package/dist/esm/components/bik-copilot/CopilotPanel.d.ts +9 -0
  97. package/dist/esm/components/bik-copilot/CopilotPanel.js +560 -0
  98. package/dist/esm/components/bik-copilot/CopilotPanel.js.map +1 -0
  99. package/dist/esm/components/bik-copilot/CopilotPanel.styled.d.ts +75 -0
  100. package/dist/esm/components/bik-copilot/CopilotPanel.styled.js +617 -0
  101. package/dist/esm/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
  102. package/dist/esm/components/bik-copilot/copilotPlacement.d.ts +24 -0
  103. package/dist/esm/components/bik-copilot/copilotPlacement.js +38 -0
  104. package/dist/esm/components/bik-copilot/copilotPlacement.js.map +1 -0
  105. package/dist/esm/components/bik-copilot/copilotRegenerate.d.ts +22 -0
  106. package/dist/esm/components/bik-copilot/copilotRegenerate.js +6 -0
  107. package/dist/esm/components/bik-copilot/copilotRegenerate.js.map +1 -0
  108. package/dist/esm/components/bik-copilot/copilotSelectionPrompt.d.ts +13 -0
  109. package/dist/esm/components/bik-copilot/copilotSelectionPrompt.js +8 -0
  110. package/dist/esm/components/bik-copilot/copilotSelectionPrompt.js.map +1 -0
  111. package/dist/esm/components/bik-copilot/index.d.ts +19 -0
  112. package/dist/esm/components/bik-copilot/model.d.ts +823 -0
  113. package/dist/esm/components/bik-copilot/services/copilotDb.d.ts +90 -0
  114. package/dist/esm/components/bik-copilot/services/copilotDb.js +96 -0
  115. package/dist/esm/components/bik-copilot/services/copilotDb.js.map +1 -0
  116. package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.d.ts +15 -0
  117. package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js +55 -0
  118. package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js.map +1 -0
  119. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.d.ts +11 -0
  120. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js +54 -0
  121. package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
  122. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.d.ts +23 -0
  123. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js +78 -0
  124. package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
  125. package/dist/esm/components/bik-copilot/services/copilotPageSession.d.ts +37 -0
  126. package/dist/esm/components/bik-copilot/services/copilotPageSession.js +35 -0
  127. package/dist/esm/components/bik-copilot/services/copilotPageSession.js.map +1 -0
  128. package/dist/esm/components/bik-copilot/services/copilotSseParser.d.ts +22 -0
  129. package/dist/esm/components/bik-copilot/services/copilotSseParser.js +52 -0
  130. package/dist/esm/components/bik-copilot/services/copilotSseParser.js.map +1 -0
  131. package/dist/esm/components/bik-copilot/services/copilotStreamClient.d.ts +35 -0
  132. package/dist/esm/components/bik-copilot/services/copilotStreamClient.js +110 -0
  133. package/dist/esm/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
  134. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.d.ts +17 -0
  135. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js +60 -0
  136. package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
  137. package/dist/esm/components/bik-copilot/useCopilotStreamChat.d.ts +20 -0
  138. package/dist/esm/components/bik-copilot/useCopilotStreamChat.js +377 -0
  139. package/dist/esm/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
  140. package/dist/esm/components/bik-copilot/useDraggableFloater.d.ts +9 -0
  141. package/dist/esm/components/bik-copilot/useDraggableFloater.js +118 -0
  142. package/dist/esm/components/bik-copilot/useDraggableFloater.js.map +1 -0
  143. package/dist/esm/components/bik-copilot/utils/markdown.d.ts +1 -0
  144. package/dist/esm/components/bik-copilot/utils/markdown.js +48 -0
  145. package/dist/esm/components/bik-copilot/utils/markdown.js.map +1 -0
  146. package/dist/esm/components/bik-copilot/utils/toolCtas.d.ts +6 -0
  147. package/dist/esm/components/bik-copilot/utils/toolCtas.js +27 -0
  148. package/dist/esm/components/bik-copilot/utils/toolCtas.js.map +1 -0
  149. package/dist/esm/components/button/themes.js +1 -2
  150. package/dist/esm/components/button/themes.js.map +1 -1
  151. package/dist/esm/components/datePicker/DatePickerWrapper.d.ts +0 -7
  152. package/dist/esm/components/datePicker/DatePickerWrapper.js +64 -66
  153. package/dist/esm/components/datePicker/DatePickerWrapper.js.map +1 -1
  154. package/dist/esm/components/datePicker/index.d.ts +0 -1
  155. package/dist/esm/components/text-selection-ask/SelectionAskPill.d.ts +22 -0
  156. package/dist/esm/components/text-selection-ask/SelectionAskPill.js +44 -0
  157. package/dist/esm/components/text-selection-ask/SelectionAskPill.js.map +1 -0
  158. package/dist/esm/components/text-selection-ask/SelectionAskPill.styled.d.ts +5 -0
  159. package/dist/esm/components/text-selection-ask/SelectionAskPill.styled.js +37 -0
  160. package/dist/esm/components/text-selection-ask/SelectionAskPill.styled.js.map +1 -0
  161. package/dist/esm/components/text-selection-ask/TextSelectionAsk.d.ts +36 -0
  162. package/dist/esm/components/text-selection-ask/TextSelectionAsk.js +69 -0
  163. package/dist/esm/components/text-selection-ask/TextSelectionAsk.js.map +1 -0
  164. package/dist/esm/components/text-selection-ask/index.d.ts +7 -0
  165. package/dist/esm/components/text-selection-ask/model.d.ts +112 -0
  166. package/dist/esm/components/text-selection-ask/model.js +7 -0
  167. package/dist/esm/components/text-selection-ask/model.js.map +1 -0
  168. package/dist/esm/components/text-selection-ask/selectionText.d.ts +18 -0
  169. package/dist/esm/components/text-selection-ask/selectionText.js +7 -0
  170. package/dist/esm/components/text-selection-ask/selectionText.js.map +1 -0
  171. package/dist/esm/components/text-selection-ask/useTextSelectionAsk.d.ts +15 -0
  172. package/dist/esm/components/text-selection-ask/useTextSelectionAsk.js +53 -0
  173. package/dist/esm/components/text-selection-ask/useTextSelectionAsk.js.map +1 -0
  174. package/dist/esm/icons/Informational/Common UI/SquaresFour.d.ts +7 -0
  175. package/dist/esm/icons/Informational/Common UI/SquaresFour.js +33 -0
  176. package/dist/esm/icons/Informational/Common UI/SquaresFour.js.map +1 -0
  177. package/dist/esm/icons/Informational/Common UI/index.d.ts +1 -0
  178. package/dist/esm/icons/index.d.ts +1 -1
  179. package/dist/esm/icons/index.js +158 -156
  180. package/dist/esm/icons/index.js.map +1 -1
  181. package/dist/esm/index.d.ts +2 -3
  182. package/dist/esm/index.js +884 -853
  183. package/dist/esm/index.js.map +1 -1
  184. package/package.json +1 -1
  185. package/dist/cjs/components/chip-selector/ChipSelector.js +0 -2
  186. package/dist/cjs/components/chip-selector/ChipSelector.js.map +0 -1
  187. package/dist/cjs/components/chip-selector/ChipSelector.styled.js +0 -36
  188. package/dist/cjs/components/chip-selector/ChipSelector.styled.js.map +0 -1
  189. package/dist/cjs/components/chip-selector/ChipSelectorGroup.js +0 -2
  190. package/dist/cjs/components/chip-selector/ChipSelectorGroup.js.map +0 -1
  191. package/dist/cjs/components/combo-box/ComboBox.js +0 -2
  192. package/dist/cjs/components/combo-box/ComboBox.js.map +0 -1
  193. package/dist/cjs/components/combo-box/ComboBox.styled.js +0 -33
  194. package/dist/cjs/components/combo-box/ComboBox.styled.js.map +0 -1
  195. package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js +0 -2
  196. package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js.map +0 -1
  197. package/dist/cjs/components/schedule-builder/ScheduleBuilder.js +0 -2
  198. package/dist/cjs/components/schedule-builder/ScheduleBuilder.js.map +0 -1
  199. package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js +0 -138
  200. package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js.map +0 -1
  201. package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js +0 -2
  202. package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js.map +0 -1
  203. package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js +0 -2
  204. package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js.map +0 -1
  205. package/dist/cjs/components/schedule-builder/ScheduleHelper.js +0 -2
  206. package/dist/cjs/components/schedule-builder/ScheduleHelper.js.map +0 -1
  207. package/dist/cjs/components/schedule-builder/SendModeSelector.js +0 -2
  208. package/dist/cjs/components/schedule-builder/SendModeSelector.js.map +0 -1
  209. package/dist/cjs/components/schedule-builder/StartDateTimePicker.js +0 -2
  210. package/dist/cjs/components/schedule-builder/StartDateTimePicker.js.map +0 -1
  211. package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js +0 -2
  212. package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js.map +0 -1
  213. package/dist/cjs/components/schedule-builder/model.js +0 -2
  214. package/dist/cjs/components/schedule-builder/model.js.map +0 -1
  215. package/dist/esm/components/chip-selector/ChipSelector.d.ts +0 -9
  216. package/dist/esm/components/chip-selector/ChipSelector.js +0 -27
  217. package/dist/esm/components/chip-selector/ChipSelector.js.map +0 -1
  218. package/dist/esm/components/chip-selector/ChipSelector.styled.d.ts +0 -10
  219. package/dist/esm/components/chip-selector/ChipSelector.styled.js +0 -48
  220. package/dist/esm/components/chip-selector/ChipSelector.styled.js.map +0 -1
  221. package/dist/esm/components/chip-selector/ChipSelectorGroup.d.ts +0 -10
  222. package/dist/esm/components/chip-selector/ChipSelectorGroup.js +0 -48
  223. package/dist/esm/components/chip-selector/ChipSelectorGroup.js.map +0 -1
  224. package/dist/esm/components/chip-selector/index.d.ts +0 -4
  225. package/dist/esm/components/chip-selector/model.d.ts +0 -106
  226. package/dist/esm/components/combo-box/ComboBox.d.ts +0 -15
  227. package/dist/esm/components/combo-box/ComboBox.js +0 -118
  228. package/dist/esm/components/combo-box/ComboBox.js.map +0 -1
  229. package/dist/esm/components/combo-box/ComboBox.styled.d.ts +0 -12
  230. package/dist/esm/components/combo-box/ComboBox.styled.js +0 -40
  231. package/dist/esm/components/combo-box/ComboBox.styled.js.map +0 -1
  232. package/dist/esm/components/combo-box/index.d.ts +0 -3
  233. package/dist/esm/components/combo-box/model.d.ts +0 -55
  234. package/dist/esm/components/schedule-builder/RefreshSegmentToggle.d.ts +0 -22
  235. package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js +0 -31
  236. package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js.map +0 -1
  237. package/dist/esm/components/schedule-builder/ScheduleBuilder.d.ts +0 -88
  238. package/dist/esm/components/schedule-builder/ScheduleBuilder.js +0 -105
  239. package/dist/esm/components/schedule-builder/ScheduleBuilder.js.map +0 -1
  240. package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.d.ts +0 -81
  241. package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js +0 -168
  242. package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js.map +0 -1
  243. package/dist/esm/components/schedule-builder/ScheduleEndPicker.d.ts +0 -17
  244. package/dist/esm/components/schedule-builder/ScheduleEndPicker.js +0 -105
  245. package/dist/esm/components/schedule-builder/ScheduleEndPicker.js.map +0 -1
  246. package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.d.ts +0 -21
  247. package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js +0 -136
  248. package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js.map +0 -1
  249. package/dist/esm/components/schedule-builder/ScheduleHelper.d.ts +0 -110
  250. package/dist/esm/components/schedule-builder/ScheduleHelper.js +0 -196
  251. package/dist/esm/components/schedule-builder/ScheduleHelper.js.map +0 -1
  252. package/dist/esm/components/schedule-builder/SendModeSelector.d.ts +0 -29
  253. package/dist/esm/components/schedule-builder/SendModeSelector.js +0 -41
  254. package/dist/esm/components/schedule-builder/SendModeSelector.js.map +0 -1
  255. package/dist/esm/components/schedule-builder/StartDateTimePicker.d.ts +0 -51
  256. package/dist/esm/components/schedule-builder/StartDateTimePicker.js +0 -120
  257. package/dist/esm/components/schedule-builder/StartDateTimePicker.js.map +0 -1
  258. package/dist/esm/components/schedule-builder/UpcomingRunsPreview.d.ts +0 -19
  259. package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js +0 -44
  260. package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js.map +0 -1
  261. package/dist/esm/components/schedule-builder/index.d.ts +0 -18
  262. package/dist/esm/components/schedule-builder/model.d.ts +0 -69
  263. package/dist/esm/components/schedule-builder/model.js +0 -8
  264. package/dist/esm/components/schedule-builder/model.js.map +0 -1
@@ -0,0 +1,617 @@
1
+ import n from "styled-components";
2
+ import { COLORS as e } from "../../constants/Theme.js";
3
+ const r = "#F9F9F9", t = 12, i = 8, d = n.div`
4
+ display: flex;
5
+ flex-direction: column;
6
+ min-height: 0;
7
+ overflow: hidden;
8
+ background: ${e.surface.standard};
9
+ border: 1px solid ${e.stroke.primary};
10
+ border-radius: 16px;
11
+ box-shadow: 0 16px 48px rgba(40, 3, 78, 0.18);
12
+ `, l = n.div`
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 10px;
16
+ padding: 16px;
17
+ border-bottom: 1px solid ${e.stroke.primary};
18
+ flex-shrink: 0;
19
+ `, p = n.div`
20
+ width: 36px;
21
+ height: 36px;
22
+ flex-shrink: 0;
23
+ border-radius: 8px;
24
+ background: ${e.background.base};
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ color: ${e.content.brand};
29
+ overflow: hidden;
30
+ `, c = n.div`
31
+ display: flex;
32
+ flex-direction: column;
33
+ gap: 2px;
34
+ min-width: 0;
35
+ flex: 1;
36
+ `, x = n.div`
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 6px;
40
+ `, g = n.span`
41
+ padding: 1px 6px;
42
+ border-radius: 4px;
43
+ background: ${e.background.brandLight};
44
+ color: ${e.content.brand};
45
+ font-size: 10px;
46
+ font-weight: 600;
47
+ line-height: 16px;
48
+ white-space: nowrap;
49
+ `, b = n.div`
50
+ display: flex;
51
+ align-items: center;
52
+ gap: 2px;
53
+ flex-shrink: 0;
54
+ `, f = n.button`
55
+ width: 28px;
56
+ height: 28px;
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ padding: 0;
61
+ border: none;
62
+ border-radius: 6px;
63
+ background: transparent;
64
+ color: ${e.content.secondary};
65
+ cursor: pointer;
66
+ transition: background 0.15s ease, color 0.15s ease;
67
+
68
+ &:hover {
69
+ background: ${e.surface.hovered};
70
+ color: ${e.content.primary};
71
+ }
72
+
73
+ &:focus-visible {
74
+ outline: 2px solid ${e.stroke.brand};
75
+ outline-offset: 1px;
76
+ }
77
+ `, u = n.div`
78
+ position: relative;
79
+ flex: 1;
80
+ min-height: 0;
81
+ display: flex;
82
+ flex-direction: column;
83
+ `, h = n.div`
84
+ flex: 1;
85
+ min-height: 0;
86
+ overflow-y: auto;
87
+ padding: 16px;
88
+ display: flex;
89
+ flex-direction: column;
90
+ gap: ${t}px;
91
+
92
+ &::-webkit-scrollbar {
93
+ width: 6px;
94
+ }
95
+
96
+ &::-webkit-scrollbar-thumb {
97
+ background: ${e.background.inactive};
98
+ border-radius: 3px;
99
+ }
100
+ `, m = n.div`
101
+ position: absolute;
102
+ left: 0;
103
+ right: 0;
104
+ bottom: 0;
105
+ height: 40px;
106
+ pointer-events: none;
107
+ opacity: ${(o) => o.$visible ? 1 : 0};
108
+ transition: opacity 0.2s ease;
109
+ background: linear-gradient(
110
+ to bottom,
111
+ ${e.surface.standard}00 0%,
112
+ ${e.surface.standard}99 60%,
113
+ ${e.surface.standard} 100%
114
+ );
115
+
116
+ &::after {
117
+ content: '';
118
+ position: absolute;
119
+ inset: 0;
120
+ backdrop-filter: blur(1px);
121
+ -webkit-backdrop-filter: blur(1px);
122
+ mask-image: linear-gradient(to bottom, transparent 0%, #000 75%);
123
+ -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 75%);
124
+ }
125
+ `, k = n.button`
126
+ position: absolute;
127
+ left: 50%;
128
+ bottom: 12px;
129
+ transform: translateX(-50%)
130
+ translateY(${(o) => o.$visible ? "0" : "6px"});
131
+ width: 32px;
132
+ height: 32px;
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ padding: 0;
137
+ border: none;
138
+ border-radius: 999px;
139
+ background: ${e.background.inverse};
140
+ color: ${e.content.primaryInverse};
141
+ box-shadow: 0 2px 8px rgba(40, 3, 78, 0.16);
142
+ cursor: pointer;
143
+ opacity: ${(o) => o.$visible ? 1 : 0};
144
+ /* Hidden to the pointer and to focus order while it is faded out. */
145
+ visibility: ${(o) => o.$visible ? "visible" : "hidden"};
146
+ transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease,
147
+ background 0.15s ease, color 0.15s ease;
148
+
149
+ &:hover {
150
+ background: ${e.background.brandHovered};
151
+ }
152
+
153
+ &:focus-visible {
154
+ outline: 2px solid ${e.stroke.brand};
155
+ outline-offset: 1px;
156
+ }
157
+ `, y = n.div`
158
+ flex: 1;
159
+ display: flex;
160
+ flex-direction: column;
161
+ align-items: center;
162
+ justify-content: center;
163
+ gap: 8px;
164
+ text-align: center;
165
+ padding: 8px 4px;
166
+ `, $ = n.div`
167
+ color: ${e.content.brand};
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ margin-bottom: 4px;
172
+ `, v = n.div`
173
+ display: flex;
174
+ flex-direction: column;
175
+ align-items: center;
176
+ gap: 8px;
177
+ margin-top: 12px;
178
+ width: 100%;
179
+ `, w = n.button`
180
+ display: inline-flex;
181
+ align-items: center;
182
+ gap: 6px;
183
+ max-width: 100%;
184
+ padding: 8px 14px;
185
+ border: 1px solid ${e.stroke.primary};
186
+ border-radius: 999px;
187
+ background: ${e.surface.standard};
188
+ color: ${e.content.primary};
189
+ font-family: Inter;
190
+ font-size: 13px;
191
+ line-height: 18px;
192
+ text-align: left;
193
+ cursor: pointer;
194
+ transition: border-color 0.15s ease, background 0.15s ease;
195
+
196
+ svg {
197
+ flex-shrink: 0;
198
+ color: ${e.content.brand};
199
+ }
200
+
201
+ &:hover:not(:disabled) {
202
+ border-color: ${e.stroke.brand};
203
+ background: ${e.background.brandVeryLight};
204
+ }
205
+
206
+ &:disabled {
207
+ cursor: not-allowed;
208
+ opacity: 0.5;
209
+ }
210
+ `, I = n.div`
211
+ font-family: Inter;
212
+ font-size: 14px;
213
+ line-height: 20px;
214
+ word-break: break-word;
215
+ overflow-wrap: break-word;
216
+
217
+ ${(o) => o.$role === "user" ? `
218
+ align-self: flex-end;
219
+ margin-left: 32px;
220
+ padding: 10px 14px;
221
+ border-radius: 12px;
222
+ background: ${r};
223
+ color: ${e.content.primary};
224
+ ` : o.$role === "system" ? `
225
+ align-self: center;
226
+ max-width: 90%;
227
+ padding: 6px 10px;
228
+ border-radius: 8px;
229
+ background: ${e.surface.grey};
230
+ color: ${e.content.secondary};
231
+ font-size: 12px;
232
+ text-align: center;
233
+ ` : `
234
+ align-self: stretch;
235
+ padding: 0;
236
+ background: transparent;
237
+ color: ${e.content.primary};
238
+ `}
239
+
240
+ /* Markdown emitted by renderCopilotMarkdown */
241
+ h1,
242
+ h2,
243
+ h3,
244
+ h4 {
245
+ font-size: 14px;
246
+ font-weight: 600;
247
+ margin: 4px 0;
248
+ }
249
+
250
+ pre {
251
+ background: ${e.background.base};
252
+ border-radius: 6px;
253
+ padding: 8px;
254
+ margin: 6px 0;
255
+ overflow-x: auto;
256
+ font-size: 12px;
257
+ }
258
+
259
+ a {
260
+ color: ${e.content.brand};
261
+ }
262
+
263
+ ul,
264
+ ol {
265
+ margin: 4px 0;
266
+ padding-left: 20px;
267
+ }
268
+
269
+ li {
270
+ margin: 2px 0;
271
+ }
272
+
273
+ code {
274
+ background: ${e.background.base};
275
+ border-radius: 4px;
276
+ padding: 1px 4px;
277
+ font-size: 12px;
278
+ }
279
+ `, z = n.div`
280
+ align-self: flex-start;
281
+ display: inline-flex;
282
+ align-items: center;
283
+ gap: 8px;
284
+ padding: 12px 14px;
285
+ border-radius: 12px;
286
+ border-bottom-left-radius: 4px;
287
+ background: ${e.surface.grey};
288
+ border: 1px solid ${e.stroke.primary};
289
+ `, A = n.div`
290
+ align-self: center;
291
+ display: inline-flex;
292
+ align-items: center;
293
+ gap: 8px;
294
+ padding: 4px 0;
295
+ font-family: Inter;
296
+ font-size: 11px;
297
+ line-height: 16px;
298
+ color: ${e.content.placeholder};
299
+ `, L = n.div`
300
+ display: flex;
301
+ flex-direction: column;
302
+ align-items: stretch;
303
+ gap: 8px;
304
+ margin-top: 4px;
305
+ `, S = n.div`
306
+ font-family: Inter;
307
+ font-size: 11px;
308
+ line-height: 16px;
309
+ color: ${e.content.placeholder};
310
+ `, C = n.div`
311
+ display: flex;
312
+ flex-wrap: wrap;
313
+ gap: 8px;
314
+ margin-top: 8px;
315
+ `, M = n.a`
316
+ display: inline-flex;
317
+ align-items: center;
318
+ gap: 6px;
319
+ padding: 8px 14px;
320
+ border: 1px solid ${e.stroke.brand};
321
+ border-radius: 10px;
322
+ background: ${e.background.brandVeryLight};
323
+ color: ${e.content.brand};
324
+ font-family: Inter;
325
+ font-size: 13px;
326
+ font-weight: 500;
327
+ line-height: 18px;
328
+ text-decoration: none;
329
+ cursor: pointer;
330
+ transition: background 0.15s ease, border-color 0.15s ease;
331
+
332
+ &:hover {
333
+ background: ${e.background.brandLight};
334
+ }
335
+
336
+ &:focus-visible {
337
+ outline: 2px solid ${e.stroke.brand};
338
+ outline-offset: 2px;
339
+ }
340
+ `, B = n.button`
341
+ display: flex;
342
+ align-items: center;
343
+ gap: 8px;
344
+ width: 100%;
345
+ padding: 10px 14px;
346
+ border: 1px solid ${e.stroke.primary};
347
+ border-radius: 10px;
348
+ background: ${e.surface.standard};
349
+ color: ${e.content.primary};
350
+ font-family: Inter;
351
+ font-size: 13px;
352
+ line-height: 18px;
353
+ text-align: left;
354
+ cursor: pointer;
355
+ transition: border-color 0.15s ease, background 0.15s ease;
356
+
357
+ svg {
358
+ flex-shrink: 0;
359
+ color: ${e.content.secondary};
360
+ }
361
+
362
+ &:hover:not(:disabled) {
363
+ border-color: ${e.stroke.brand};
364
+ background: ${e.background.brandVeryLight};
365
+ }
366
+
367
+ &:disabled {
368
+ cursor: not-allowed;
369
+ opacity: 0.5;
370
+ }
371
+ `, H = n.div`
372
+ align-self: flex-start;
373
+ display: inline-flex;
374
+ align-items: center;
375
+ gap: 6px;
376
+ font-family: Inter;
377
+ font-size: 12px;
378
+ line-height: 18px;
379
+ color: ${e.content.secondary};
380
+
381
+ svg {
382
+ flex-shrink: 0;
383
+ color: ${e.content.inactive};
384
+ }
385
+ `, T = n.div`
386
+ align-self: flex-end;
387
+ margin-top: -6px;
388
+ font-family: Inter;
389
+ font-size: 11px;
390
+ line-height: 16px;
391
+ color: ${e.content.placeholder};
392
+ `, E = n.div`
393
+ align-self: flex-start;
394
+ display: flex;
395
+ align-items: center;
396
+ gap: 2px;
397
+ /* Pulls back out of the scroller's row gap to land on 8px. */
398
+ margin-top: ${i - t}px;
399
+ `, j = n.button`
400
+ display: inline-flex;
401
+ align-items: center;
402
+ justify-content: center;
403
+ gap: 4px;
404
+ width: 28px;
405
+ height: 28px;
406
+ padding: 0;
407
+ border: none;
408
+ border-radius: 4px;
409
+ background: transparent;
410
+ color: ${e.content.placeholder};
411
+ font-family: Inter;
412
+ font-size: 11px;
413
+ line-height: 16px;
414
+ cursor: pointer;
415
+ transition: background 0.15s ease, color 0.15s ease;
416
+
417
+ svg {
418
+ flex-shrink: 0;
419
+ }
420
+
421
+ &:hover:not(:disabled) {
422
+ background: ${e.surface.hovered};
423
+ color: ${e.content.secondary};
424
+ }
425
+
426
+ &:focus-visible {
427
+ outline: 2px solid ${e.stroke.brand};
428
+ outline-offset: 1px;
429
+ }
430
+
431
+ &:disabled {
432
+ cursor: not-allowed;
433
+ opacity: 0.5;
434
+ }
435
+
436
+ /* Confirmation reads as success, not as another affordance. */
437
+ &[data-copied='true'],
438
+ &[data-copied='true']:hover {
439
+ color: ${e.content.positive};
440
+ }
441
+
442
+ /* A cast vote holds the brand colour, so it stays legible as chosen once the
443
+ pointer moves away. */
444
+ &[data-selected='true'],
445
+ &[data-selected='true']:hover {
446
+ color: ${e.content.brand};
447
+ }
448
+ `, F = n.span`
449
+ font-family: Inter;
450
+ font-size: 13px;
451
+ line-height: 20px;
452
+ color: ${e.content.secondary};
453
+ `, P = n.div`
454
+ margin: 0 16px;
455
+ padding: 8px 10px;
456
+ border-radius: 8px;
457
+ background: ${e.background.negative.light};
458
+ color: ${e.content.negative};
459
+ font-family: Inter;
460
+ font-size: 12px;
461
+ line-height: 18px;
462
+ flex-shrink: 0;
463
+ `, _ = n.div`
464
+ padding: 16px 16px 4px;
465
+ flex-shrink: 0;
466
+ `, U = n.div`
467
+ box-sizing: border-box;
468
+ display: flex;
469
+ align-items: center;
470
+ gap: 6px;
471
+ margin-bottom: 8px;
472
+ padding: 6px 8px;
473
+ border: 1px solid ${e.stroke.primary};
474
+ border-radius: 8px;
475
+ background: ${e.background.brandVeryLight};
476
+
477
+ svg {
478
+ flex-shrink: 0;
479
+ }
480
+ `, G = n.span`
481
+ flex: 1;
482
+ min-width: 0;
483
+ overflow: hidden;
484
+ white-space: nowrap;
485
+ text-overflow: ellipsis;
486
+ font-family: Inter;
487
+ font-size: 12px;
488
+ line-height: 16px;
489
+ color: ${e.content.primary};
490
+ `, R = n.button`
491
+ display: flex;
492
+ align-items: center;
493
+ justify-content: center;
494
+ flex-shrink: 0;
495
+ width: 16px;
496
+ height: 16px;
497
+ padding: 0;
498
+ border: none;
499
+ border-radius: 4px;
500
+ background: transparent;
501
+ color: ${e.content.secondary};
502
+ cursor: pointer;
503
+
504
+ &:hover {
505
+ background: ${e.background.brandLight};
506
+ }
507
+ `, V = n.div`
508
+ box-sizing: border-box;
509
+ min-height: 48px;
510
+ display: flex;
511
+ align-items: flex-end;
512
+ gap: 8px;
513
+ padding: 12px;
514
+ box-shadow: inset 0 0 0 1px
515
+ ${(o) => o.$focused ? e.stroke.brand : e.stroke.primary};
516
+ border-radius: 12px;
517
+ background: ${e.surface.standard};
518
+ transition: box-shadow 0.15s ease;
519
+
520
+ &:hover {
521
+ box-shadow: inset 0 0 0 1px
522
+ ${(o) => o.$focused ? e.stroke.brand : e.content.inactive};
523
+ }
524
+ `, O = n.textarea`
525
+ flex: 1;
526
+ border: none;
527
+ outline: none;
528
+ resize: none;
529
+ background: transparent;
530
+ font-family: Inter;
531
+ font-size: 13px;
532
+ line-height: 24px;
533
+ color: ${e.content.primary};
534
+ max-height: 96px;
535
+ min-height: 24px;
536
+ padding: 0;
537
+
538
+ &::placeholder {
539
+ color: ${e.content.placeholder};
540
+ }
541
+
542
+ &:disabled {
543
+ cursor: not-allowed;
544
+ }
545
+ `, N = n.button`
546
+ width: 24px;
547
+ height: 24px;
548
+ flex-shrink: 0;
549
+ display: flex;
550
+ align-items: center;
551
+ justify-content: center;
552
+ padding: 0;
553
+ border: none;
554
+ border-radius: 6px;
555
+ background: ${(o) => o.$active ? e.background.brand : e.background.inactive};
556
+ color: ${e.content.primaryInverse};
557
+ cursor: ${(o) => o.$active ? "pointer" : "not-allowed"};
558
+ transition: background 0.15s ease;
559
+
560
+ &:hover:not(:disabled) {
561
+ background: ${e.background.brandHovered};
562
+ }
563
+
564
+ &:focus-visible {
565
+ outline: 2px solid ${e.stroke.brand};
566
+ outline-offset: 1px;
567
+ }
568
+ `, X = n.div`
569
+ padding: 4px 16px 16px;
570
+ text-align: center;
571
+ font-family: Inter;
572
+ font-size: 11px;
573
+ line-height: 16px;
574
+ color: ${e.content.placeholder};
575
+ flex-shrink: 0;
576
+ `;
577
+ export {
578
+ U as AttachmentChip,
579
+ R as AttachmentRemove,
580
+ G as AttachmentText,
581
+ X as Disclaimer,
582
+ y as EmptyState,
583
+ $ as EmptyStateIcon,
584
+ P as ErrorBanner,
585
+ B as FollowUpChip,
586
+ L as FollowUpList,
587
+ S as FollowUpsLabel,
588
+ b as HeaderActions,
589
+ p as HeaderAvatar,
590
+ g as HeaderBadge,
591
+ c as HeaderText,
592
+ x as HeaderTitleRow,
593
+ A as HistoryLoader,
594
+ f as IconAction,
595
+ _ as InputArea,
596
+ V as InputWrapper,
597
+ H as InterruptedNote,
598
+ k as JumpToLatestButton,
599
+ j as MessageAction,
600
+ E as MessageActions,
601
+ I as MessageBubble,
602
+ O as MessageInput,
603
+ T as MessageTimestamp,
604
+ h as MessagesArea,
605
+ u as MessagesViewport,
606
+ d as PanelContainer,
607
+ l as PanelHeader,
608
+ m as ScrollFade,
609
+ N as SendButton,
610
+ w as SuggestionChip,
611
+ v as SuggestionList,
612
+ z as ThinkingBubble,
613
+ F as ThinkingLabel,
614
+ M as ToolCtaLink,
615
+ C as ToolCtaList
616
+ };
617
+ //# sourceMappingURL=CopilotPanel.styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopilotPanel.styled.js","sources":["../../../../src/components/bik-copilot/CopilotPanel.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nconst USER_BUBBLE_BACKGROUND = '#F9F9F9';\n\nconst MESSAGE_GAP_PX = 12;\n\nconst MESSAGE_ACTIONS_GAP_PX = 8;\n\nexport const PanelContainer = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmin-height: 0;\n\toverflow: hidden;\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 16px;\n\tbox-shadow: 0 16px 48px rgba(40, 3, 78, 0.18);\n`;\n\nexport const PanelHeader = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tpadding: 16px;\n\tborder-bottom: 1px solid ${COLORS.stroke.primary};\n\tflex-shrink: 0;\n`;\n\nexport const HeaderAvatar = styled.div`\n\twidth: 36px;\n\theight: 36px;\n\tflex-shrink: 0;\n\tborder-radius: 8px;\n\tbackground: ${COLORS.background.base};\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: ${COLORS.content.brand};\n\toverflow: hidden;\n`;\n\nexport const HeaderText = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n\tmin-width: 0;\n\tflex: 1;\n`;\n\nexport const HeaderTitleRow = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n`;\n\nexport const HeaderBadge = styled.span`\n\tpadding: 1px 6px;\n\tborder-radius: 4px;\n\tbackground: ${COLORS.background.brandLight};\n\tcolor: ${COLORS.content.brand};\n\tfont-size: 10px;\n\tfont-weight: 600;\n\tline-height: 16px;\n\twhite-space: nowrap;\n`;\n\nexport const HeaderActions = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n\tflex-shrink: 0;\n`;\n\nexport const IconAction = styled.button`\n\twidth: 28px;\n\theight: 28px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 6px;\n\tbackground: transparent;\n\tcolor: ${COLORS.content.secondary};\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\t&:focus-visible {\n\t\toutline: 2px solid ${COLORS.stroke.brand};\n\t\toutline-offset: 1px;\n\t}\n`;\n\n/**\n * Wraps the scroller so the bottom fade and the jump-to-latest button can be\n * absolutely positioned over it.\n */\nexport const MessagesViewport = styled.div`\n\tposition: relative;\n\tflex: 1;\n\tmin-height: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n`;\n\nexport const MessagesArea = styled.div`\n\tflex: 1;\n\tmin-height: 0;\n\toverflow-y: auto;\n\tpadding: 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: ${MESSAGE_GAP_PX}px;\n\n\t&::-webkit-scrollbar {\n\t\twidth: 6px;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: ${COLORS.background.inactive};\n\t\tborder-radius: 3px;\n\t}\n`;\n\n/**\n * Softens the cut-off edge of a long answer the reader has scrolled up from, so\n * the clipped line reads as continuing rather than as the end of the message.\n *\n * Two layers, because one element cannot ramp a gradient and a blur\n * independently: the element itself whitens the text out, and `::after` lays a\n * masked blur over it that strengthens towards the bottom. Browsers without\n * `backdrop-filter` still get the fade.\n */\nexport const ScrollFade = styled.div<{ $visible: boolean }>`\n\tposition: absolute;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\theight: 40px;\n\tpointer-events: none;\n\topacity: ${(props) => (props.$visible ? 1 : 0)};\n\ttransition: opacity 0.2s ease;\n\tbackground: linear-gradient(\n\t\tto bottom,\n\t\t${COLORS.surface.standard}00 0%,\n\t\t${COLORS.surface.standard}99 60%,\n\t\t${COLORS.surface.standard} 100%\n\t);\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tbackdrop-filter: blur(1px);\n\t\t-webkit-backdrop-filter: blur(1px);\n\t\tmask-image: linear-gradient(to bottom, transparent 0%, #000 75%);\n\t\t-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 75%);\n\t}\n`;\n\nexport const JumpToLatestButton = styled.button<{ $visible: boolean }>`\n\tposition: absolute;\n\tleft: 50%;\n\tbottom: 12px;\n\ttransform: translateX(-50%)\n\t\ttranslateY(${(props) => (props.$visible ? '0' : '6px')});\n\twidth: 32px;\n\theight: 32px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 999px;\n\tbackground: ${COLORS.background.inverse};\n\tcolor: ${COLORS.content.primaryInverse};\n\tbox-shadow: 0 2px 8px rgba(40, 3, 78, 0.16);\n\tcursor: pointer;\n\topacity: ${(props) => (props.$visible ? 1 : 0)};\n\t/* Hidden to the pointer and to focus order while it is faded out. */\n\tvisibility: ${(props) => (props.$visible ? 'visible' : 'hidden')};\n\ttransition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease,\n\t\tbackground 0.15s ease, color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${COLORS.background.brandHovered};\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${COLORS.stroke.brand};\n\t\toutline-offset: 1px;\n\t}\n`;\n\nexport const EmptyState = styled.div`\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 8px;\n\ttext-align: center;\n\tpadding: 8px 4px;\n`;\n\nexport const EmptyStateIcon = styled.div`\n\tcolor: ${COLORS.content.brand};\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-bottom: 4px;\n`;\n\nexport const SuggestionList = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 8px;\n\tmargin-top: 12px;\n\twidth: 100%;\n`;\n\nexport const SuggestionChip = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tmax-width: 100%;\n\tpadding: 8px 14px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 999px;\n\tbackground: ${COLORS.surface.standard};\n\tcolor: ${COLORS.content.primary};\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tline-height: 18px;\n\ttext-align: left;\n\tcursor: pointer;\n\ttransition: border-color 0.15s ease, background 0.15s ease;\n\n\tsvg {\n\t\tflex-shrink: 0;\n\t\tcolor: ${COLORS.content.brand};\n\t}\n\n\t&:hover:not(:disabled) {\n\t\tborder-color: ${COLORS.stroke.brand};\n\t\tbackground: ${COLORS.background.brandVeryLight};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n`;\n\nexport const MessageBubble = styled.div<{\n\t$role: 'user' | 'assistant' | 'system';\n}>`\n\tfont-family: Inter;\n\tfont-size: 14px;\n\tline-height: 20px;\n\tword-break: break-word;\n\toverflow-wrap: break-word;\n\n\t${(props) => {\n\t\tif (props.$role === 'user') {\n\t\t\treturn `\n\t\t\t\talign-self: flex-end;\n\t\t\t\tmargin-left: 32px;\n\t\t\t\tpadding: 10px 14px;\n\t\t\t\tborder-radius: 12px;\n\t\t\t\tbackground: ${USER_BUBBLE_BACKGROUND};\n\t\t\t\tcolor: ${COLORS.content.primary};\n\t\t\t`;\n\t\t}\n\t\tif (props.$role === 'system') {\n\t\t\treturn `\n\t\t\t\talign-self: center;\n\t\t\t\tmax-width: 90%;\n\t\t\t\tpadding: 6px 10px;\n\t\t\t\tborder-radius: 8px;\n\t\t\t\tbackground: ${COLORS.surface.grey};\n\t\t\t\tcolor: ${COLORS.content.secondary};\n\t\t\t\tfont-size: 12px;\n\t\t\t\ttext-align: center;\n\t\t\t`;\n\t\t}\n\t\treturn `\n\t\t\talign-self: stretch;\n\t\t\tpadding: 0;\n\t\t\tbackground: transparent;\n\t\t\tcolor: ${COLORS.content.primary};\n\t\t`;\n\t}}\n\n\t/* Markdown emitted by renderCopilotMarkdown */\n\th1,\n\th2,\n\th3,\n\th4 {\n\t\tfont-size: 14px;\n\t\tfont-weight: 600;\n\t\tmargin: 4px 0;\n\t}\n\n\tpre {\n\t\tbackground: ${COLORS.background.base};\n\t\tborder-radius: 6px;\n\t\tpadding: 8px;\n\t\tmargin: 6px 0;\n\t\toverflow-x: auto;\n\t\tfont-size: 12px;\n\t}\n\n\ta {\n\t\tcolor: ${COLORS.content.brand};\n\t}\n\n\tul,\n\tol {\n\t\tmargin: 4px 0;\n\t\tpadding-left: 20px;\n\t}\n\n\tli {\n\t\tmargin: 2px 0;\n\t}\n\n\tcode {\n\t\tbackground: ${COLORS.background.base};\n\t\tborder-radius: 4px;\n\t\tpadding: 1px 4px;\n\t\tfont-size: 12px;\n\t}\n`;\n\nexport const ThinkingBubble = styled.div`\n\talign-self: flex-start;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 12px 14px;\n\tborder-radius: 12px;\n\tborder-bottom-left-radius: 4px;\n\tbackground: ${COLORS.surface.grey};\n\tborder: 1px solid ${COLORS.stroke.primary};\n`;\n\n/** Sits above the oldest message while the page before it is fetched. */\nexport const HistoryLoader = styled.div`\n\talign-self: center;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 8px;\n\tpadding: 4px 0;\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.placeholder};\n`;\n\nexport const FollowUpList = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: stretch;\n\tgap: 8px;\n\tmargin-top: 4px;\n`;\n\nexport const FollowUpsLabel = styled.div`\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.placeholder};\n`;\n\nexport const ToolCtaList = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tmargin-top: 8px;\n`;\n\n// An anchor rather than a button: a real link so the browser handles the new\n// tab, middle-click and copy-link-address the way merchants expect.\nexport const ToolCtaLink = styled.a`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tpadding: 8px 14px;\n\tborder: 1px solid ${COLORS.stroke.brand};\n\tborder-radius: 10px;\n\tbackground: ${COLORS.background.brandVeryLight};\n\tcolor: ${COLORS.content.brand};\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tline-height: 18px;\n\ttext-decoration: none;\n\tcursor: pointer;\n\ttransition: background 0.15s ease, border-color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${COLORS.background.brandLight};\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${COLORS.stroke.brand};\n\t\toutline-offset: 2px;\n\t}\n`;\n\nexport const FollowUpChip = styled.button`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\twidth: 100%;\n\tpadding: 10px 14px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 10px;\n\tbackground: ${COLORS.surface.standard};\n\tcolor: ${COLORS.content.primary};\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tline-height: 18px;\n\ttext-align: left;\n\tcursor: pointer;\n\ttransition: border-color 0.15s ease, background 0.15s ease;\n\n\tsvg {\n\t\tflex-shrink: 0;\n\t\tcolor: ${COLORS.content.secondary};\n\t}\n\n\t&:hover:not(:disabled) {\n\t\tborder-color: ${COLORS.stroke.brand};\n\t\tbackground: ${COLORS.background.brandVeryLight};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n`;\n\n/**\n * Bubble-less on purpose: a stopped reply is a note about the transcript, not a\n * message in it.\n */\nexport const InterruptedNote = styled.div`\n\talign-self: flex-start;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-family: Inter;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: ${COLORS.content.secondary};\n\n\tsvg {\n\t\tflex-shrink: 0;\n\t\tcolor: ${COLORS.content.inactive};\n\t}\n`;\n\nexport const MessageTimestamp = styled.div`\n\talign-self: flex-end;\n\tmargin-top: -6px;\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.placeholder};\n`;\n\n/**\n * Actions under a finished assistant reply. Kept low-contrast so a row of icons\n * under every message does not compete with the answer itself.\n */\nexport const MessageActions = styled.div`\n\talign-self: flex-start;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 2px;\n\t/* Pulls back out of the scroller's row gap to land on 8px. */\n\tmargin-top: ${MESSAGE_ACTIONS_GAP_PX - MESSAGE_GAP_PX}px;\n`;\n\nexport const MessageAction = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 4px;\n\twidth: 28px;\n\theight: 28px;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: ${COLORS.content.placeholder};\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcursor: pointer;\n\ttransition: background 0.15s ease, color 0.15s ease;\n\n\tsvg {\n\t\tflex-shrink: 0;\n\t}\n\n\t&:hover:not(:disabled) {\n\t\tbackground: ${COLORS.surface.hovered};\n\t\tcolor: ${COLORS.content.secondary};\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${COLORS.stroke.brand};\n\t\toutline-offset: 1px;\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n\n\t/* Confirmation reads as success, not as another affordance. */\n\t&[data-copied='true'],\n\t&[data-copied='true']:hover {\n\t\tcolor: ${COLORS.content.positive};\n\t}\n\n\t/* A cast vote holds the brand colour, so it stays legible as chosen once the\n\t pointer moves away. */\n\t&[data-selected='true'],\n\t&[data-selected='true']:hover {\n\t\tcolor: ${COLORS.content.brand};\n\t}\n`;\n\nexport const ThinkingLabel = styled.span`\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tline-height: 20px;\n\tcolor: ${COLORS.content.secondary};\n`;\n\nexport const ErrorBanner = styled.div`\n\tmargin: 0 16px;\n\tpadding: 8px 10px;\n\tborder-radius: 8px;\n\tbackground: ${COLORS.background.negative.light};\n\tcolor: ${COLORS.content.negative};\n\tfont-family: Inter;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tflex-shrink: 0;\n`;\n\nexport const InputArea = styled.div`\n\tpadding: 16px 16px 4px;\n\tflex-shrink: 0;\n`;\n\n/**\n * The quoted selection above the input. Deliberately outside `InputWrapper` so\n * it does not grow the field's focus ring, and truncated rather than wrapped —\n * a long quote must not push the input off the panel.\n */\nexport const AttachmentChip = styled.div`\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tmargin-bottom: 8px;\n\tpadding: 6px 8px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbackground: ${COLORS.background.brandVeryLight};\n\n\tsvg {\n\t\tflex-shrink: 0;\n\t}\n`;\n\nexport const AttachmentText = styled.span`\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\tfont-family: Inter;\n\tfont-size: 12px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.primary};\n`;\n\nexport const AttachmentRemove = styled.button`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\twidth: 16px;\n\theight: 16px;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: ${COLORS.content.secondary};\n\tcursor: pointer;\n\n\t&:hover {\n\t\tbackground: ${COLORS.background.brandLight};\n\t}\n`;\n\nexport const InputWrapper = styled.div<{ $focused: boolean }>`\n\tbox-sizing: border-box;\n\tmin-height: 48px;\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: 8px;\n\tpadding: 12px;\n\tbox-shadow: inset 0 0 0 1px\n\t\t${(props) => (props.$focused ? COLORS.stroke.brand : COLORS.stroke.primary)};\n\tborder-radius: 12px;\n\tbackground: ${COLORS.surface.standard};\n\ttransition: box-shadow 0.15s ease;\n\n\t&:hover {\n\t\tbox-shadow: inset 0 0 0 1px\n\t\t\t${(props) =>\n\t\t\t\tprops.$focused ? COLORS.stroke.brand : COLORS.content.inactive};\n\t}\n`;\n\nexport const MessageInput = styled.textarea`\n\tflex: 1;\n\tborder: none;\n\toutline: none;\n\tresize: none;\n\tbackground: transparent;\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tline-height: 24px;\n\tcolor: ${COLORS.content.primary};\n\tmax-height: 96px;\n\tmin-height: 24px;\n\tpadding: 0;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t}\n`;\n\nexport const SendButton = styled.button<{ $active: boolean }>`\n\twidth: 24px;\n\theight: 24px;\n\tflex-shrink: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 6px;\n\tbackground: ${(props) =>\n\t\tprops.$active ? COLORS.background.brand : COLORS.background.inactive};\n\tcolor: ${COLORS.content.primaryInverse};\n\tcursor: ${(props) => (props.$active ? 'pointer' : 'not-allowed')};\n\ttransition: background 0.15s ease;\n\n\t&:hover:not(:disabled) {\n\t\tbackground: ${COLORS.background.brandHovered};\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid ${COLORS.stroke.brand};\n\t\toutline-offset: 1px;\n\t}\n`;\n\nexport const Disclaimer = styled.div`\n\tpadding: 4px 16px 16px;\n\ttext-align: center;\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.placeholder};\n\tflex-shrink: 0;\n`;\n"],"names":["USER_BUBBLE_BACKGROUND","MESSAGE_GAP_PX","MESSAGE_ACTIONS_GAP_PX","PanelContainer","styled","COLORS","PanelHeader","HeaderAvatar","HeaderText","HeaderTitleRow","HeaderBadge","HeaderActions","IconAction","MessagesViewport","MessagesArea","ScrollFade","props","JumpToLatestButton","EmptyState","EmptyStateIcon","SuggestionList","SuggestionChip","MessageBubble","ThinkingBubble","HistoryLoader","FollowUpList","FollowUpsLabel","ToolCtaList","ToolCtaLink","FollowUpChip","InterruptedNote","MessageTimestamp","MessageActions","MessageAction","ThinkingLabel","ErrorBanner","InputArea","AttachmentChip","AttachmentText","AttachmentRemove","InputWrapper","MessageInput","SendButton","Disclaimer"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { CopilotBallPosition, CopilotViewport } from './model';
2
+ export interface CopilotPanelPlacementOptions {
3
+ ballPosition: CopilotBallPosition;
4
+ ballSize: number;
5
+ panelWidth: number;
6
+ panelHeight: number;
7
+ gap: number;
8
+ viewport: CopilotViewport;
9
+ }
10
+ export interface CopilotPanelPlacement {
11
+ left: number;
12
+ top: number;
13
+ width: number;
14
+ height: number;
15
+ }
16
+ /**
17
+ * Places the panel next to the ball, on whichever side has room.
18
+ *
19
+ * The panel opens towards the middle of the screen: a ball parked bottom-right
20
+ * gets a panel above and to its left, a ball parked top-left gets one below and
21
+ * to its right. The result is always clamped inside the viewport, and the panel
22
+ * shrinks on viewports too small to hold it at full size.
23
+ */
24
+ export declare const getCopilotPanelPlacement: ({ ballPosition, ballSize, panelWidth, panelHeight, gap, viewport, }: CopilotPanelPlacementOptions) => CopilotPanelPlacement;