@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.
- package/README.md +0 -3
- package/dist/cjs/components/agent-builder/constants/tools.js +1 -1
- package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/cjs/components/bik-copilot/BIKCopilot.js +2 -0
- package/dist/cjs/components/bik-copilot/BIKCopilot.js.map +1 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.js +2 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.js.map +1 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js +27 -0
- package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.js +2 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.styled.js +42 -0
- package/dist/cjs/components/bik-copilot/CopilotBall.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.js +2 -0
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.styled.js +108 -0
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.js +2 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.js.map +1 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js +575 -0
- package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
- package/dist/cjs/components/bik-copilot/copilotPlacement.js +2 -0
- package/dist/cjs/components/bik-copilot/copilotPlacement.js.map +1 -0
- package/dist/cjs/components/bik-copilot/copilotRegenerate.js +2 -0
- package/dist/cjs/components/bik-copilot/copilotRegenerate.js.map +1 -0
- package/dist/cjs/components/bik-copilot/copilotSelectionPrompt.js +2 -0
- package/dist/cjs/components/bik-copilot/copilotSelectionPrompt.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotDb.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotDb.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotPageSession.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotPageSession.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotSseParser.js +7 -0
- package/dist/cjs/components/bik-copilot/services/copilotSseParser.js.map +1 -0
- package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js +2 -0
- package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
- package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js +2 -0
- package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
- package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js +2 -0
- package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
- package/dist/cjs/components/bik-copilot/useDraggableFloater.js +2 -0
- package/dist/cjs/components/bik-copilot/useDraggableFloater.js.map +1 -0
- package/dist/cjs/components/bik-copilot/utils/markdown.js +4 -0
- package/dist/cjs/components/bik-copilot/utils/markdown.js.map +1 -0
- package/dist/cjs/components/bik-copilot/utils/toolCtas.js +2 -0
- package/dist/cjs/components/bik-copilot/utils/toolCtas.js.map +1 -0
- package/dist/cjs/components/button/themes.js +2 -2
- package/dist/cjs/components/button/themes.js.map +1 -1
- package/dist/cjs/components/datePicker/DatePickerWrapper.js +1 -1
- package/dist/cjs/components/datePicker/DatePickerWrapper.js.map +1 -1
- package/dist/cjs/components/text-selection-ask/SelectionAskPill.js +2 -0
- package/dist/cjs/components/text-selection-ask/SelectionAskPill.js.map +1 -0
- package/dist/cjs/components/text-selection-ask/SelectionAskPill.styled.js +32 -0
- package/dist/cjs/components/text-selection-ask/SelectionAskPill.styled.js.map +1 -0
- package/dist/cjs/components/text-selection-ask/TextSelectionAsk.js +2 -0
- package/dist/cjs/components/text-selection-ask/TextSelectionAsk.js.map +1 -0
- package/dist/cjs/components/text-selection-ask/model.js +2 -0
- package/dist/cjs/components/text-selection-ask/model.js.map +1 -0
- package/dist/cjs/components/text-selection-ask/selectionText.js +2 -0
- package/dist/cjs/components/text-selection-ask/selectionText.js.map +1 -0
- package/dist/cjs/components/text-selection-ask/useTextSelectionAsk.js +2 -0
- package/dist/cjs/components/text-selection-ask/useTextSelectionAsk.js.map +1 -0
- package/dist/cjs/icons/Informational/Common UI/SquaresFour.js +2 -0
- package/dist/cjs/icons/Informational/Common UI/SquaresFour.js.map +1 -0
- package/dist/cjs/icons/index.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/agent-builder/constants/tools.d.ts +1 -0
- package/dist/esm/components/agent-builder/constants/tools.js +18 -18
- package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
- package/dist/esm/components/bik-copilot/BIKCopilot.d.ts +31 -0
- package/dist/esm/components/bik-copilot/BIKCopilot.js +118 -0
- package/dist/esm/components/bik-copilot/BIKCopilot.js.map +1 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.d.ts +14 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.js +178 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.js.map +1 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.d.ts +7 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js +31 -0
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotBall.d.ts +13 -0
- package/dist/esm/components/bik-copilot/CopilotBall.js +50 -0
- package/dist/esm/components/bik-copilot/CopilotBall.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotBall.styled.d.ts +9 -0
- package/dist/esm/components/bik-copilot/CopilotBall.styled.js +46 -0
- package/dist/esm/components/bik-copilot/CopilotBall.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.d.ts +29 -0
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js +73 -0
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.d.ts +12 -0
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js +122 -0
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.d.ts +9 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.js +560 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.js.map +1 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.d.ts +75 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.js +617 -0
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.js.map +1 -0
- package/dist/esm/components/bik-copilot/copilotPlacement.d.ts +24 -0
- package/dist/esm/components/bik-copilot/copilotPlacement.js +38 -0
- package/dist/esm/components/bik-copilot/copilotPlacement.js.map +1 -0
- package/dist/esm/components/bik-copilot/copilotRegenerate.d.ts +22 -0
- package/dist/esm/components/bik-copilot/copilotRegenerate.js +6 -0
- package/dist/esm/components/bik-copilot/copilotRegenerate.js.map +1 -0
- package/dist/esm/components/bik-copilot/copilotSelectionPrompt.d.ts +13 -0
- package/dist/esm/components/bik-copilot/copilotSelectionPrompt.js +8 -0
- package/dist/esm/components/bik-copilot/copilotSelectionPrompt.js.map +1 -0
- package/dist/esm/components/bik-copilot/index.d.ts +19 -0
- package/dist/esm/components/bik-copilot/model.d.ts +823 -0
- package/dist/esm/components/bik-copilot/services/copilotDb.d.ts +90 -0
- package/dist/esm/components/bik-copilot/services/copilotDb.js +96 -0
- package/dist/esm/components/bik-copilot/services/copilotDb.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.d.ts +15 -0
- package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js +55 -0
- package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.d.ts +11 -0
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js +54 -0
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.d.ts +23 -0
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js +78 -0
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotPageSession.d.ts +37 -0
- package/dist/esm/components/bik-copilot/services/copilotPageSession.js +35 -0
- package/dist/esm/components/bik-copilot/services/copilotPageSession.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotSseParser.d.ts +22 -0
- package/dist/esm/components/bik-copilot/services/copilotSseParser.js +52 -0
- package/dist/esm/components/bik-copilot/services/copilotSseParser.js.map +1 -0
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.d.ts +35 -0
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.js +110 -0
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.js.map +1 -0
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.d.ts +17 -0
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js +60 -0
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js.map +1 -0
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.d.ts +20 -0
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.js +377 -0
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.js.map +1 -0
- package/dist/esm/components/bik-copilot/useDraggableFloater.d.ts +9 -0
- package/dist/esm/components/bik-copilot/useDraggableFloater.js +118 -0
- package/dist/esm/components/bik-copilot/useDraggableFloater.js.map +1 -0
- package/dist/esm/components/bik-copilot/utils/markdown.d.ts +1 -0
- package/dist/esm/components/bik-copilot/utils/markdown.js +48 -0
- package/dist/esm/components/bik-copilot/utils/markdown.js.map +1 -0
- package/dist/esm/components/bik-copilot/utils/toolCtas.d.ts +6 -0
- package/dist/esm/components/bik-copilot/utils/toolCtas.js +27 -0
- package/dist/esm/components/bik-copilot/utils/toolCtas.js.map +1 -0
- package/dist/esm/components/button/themes.js +1 -2
- package/dist/esm/components/button/themes.js.map +1 -1
- package/dist/esm/components/datePicker/DatePickerWrapper.d.ts +0 -7
- package/dist/esm/components/datePicker/DatePickerWrapper.js +64 -66
- package/dist/esm/components/datePicker/DatePickerWrapper.js.map +1 -1
- package/dist/esm/components/datePicker/index.d.ts +0 -1
- package/dist/esm/components/text-selection-ask/SelectionAskPill.d.ts +22 -0
- package/dist/esm/components/text-selection-ask/SelectionAskPill.js +44 -0
- package/dist/esm/components/text-selection-ask/SelectionAskPill.js.map +1 -0
- package/dist/esm/components/text-selection-ask/SelectionAskPill.styled.d.ts +5 -0
- package/dist/esm/components/text-selection-ask/SelectionAskPill.styled.js +37 -0
- package/dist/esm/components/text-selection-ask/SelectionAskPill.styled.js.map +1 -0
- package/dist/esm/components/text-selection-ask/TextSelectionAsk.d.ts +36 -0
- package/dist/esm/components/text-selection-ask/TextSelectionAsk.js +69 -0
- package/dist/esm/components/text-selection-ask/TextSelectionAsk.js.map +1 -0
- package/dist/esm/components/text-selection-ask/index.d.ts +7 -0
- package/dist/esm/components/text-selection-ask/model.d.ts +112 -0
- package/dist/esm/components/text-selection-ask/model.js +7 -0
- package/dist/esm/components/text-selection-ask/model.js.map +1 -0
- package/dist/esm/components/text-selection-ask/selectionText.d.ts +18 -0
- package/dist/esm/components/text-selection-ask/selectionText.js +7 -0
- package/dist/esm/components/text-selection-ask/selectionText.js.map +1 -0
- package/dist/esm/components/text-selection-ask/useTextSelectionAsk.d.ts +15 -0
- package/dist/esm/components/text-selection-ask/useTextSelectionAsk.js +53 -0
- package/dist/esm/components/text-selection-ask/useTextSelectionAsk.js.map +1 -0
- package/dist/esm/icons/Informational/Common UI/SquaresFour.d.ts +7 -0
- package/dist/esm/icons/Informational/Common UI/SquaresFour.js +33 -0
- package/dist/esm/icons/Informational/Common UI/SquaresFour.js.map +1 -0
- package/dist/esm/icons/Informational/Common UI/index.d.ts +1 -0
- package/dist/esm/icons/index.d.ts +1 -1
- package/dist/esm/icons/index.js +158 -156
- package/dist/esm/icons/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -3
- package/dist/esm/index.js +884 -853
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/components/chip-selector/ChipSelector.js +0 -2
- package/dist/cjs/components/chip-selector/ChipSelector.js.map +0 -1
- package/dist/cjs/components/chip-selector/ChipSelector.styled.js +0 -36
- package/dist/cjs/components/chip-selector/ChipSelector.styled.js.map +0 -1
- package/dist/cjs/components/chip-selector/ChipSelectorGroup.js +0 -2
- package/dist/cjs/components/chip-selector/ChipSelectorGroup.js.map +0 -1
- package/dist/cjs/components/combo-box/ComboBox.js +0 -2
- package/dist/cjs/components/combo-box/ComboBox.js.map +0 -1
- package/dist/cjs/components/combo-box/ComboBox.styled.js +0 -33
- package/dist/cjs/components/combo-box/ComboBox.styled.js.map +0 -1
- package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js +0 -2
- package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js.map +0 -1
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.js +0 -2
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.js.map +0 -1
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js +0 -138
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js.map +0 -1
- package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js +0 -2
- package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js.map +0 -1
- package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js +0 -2
- package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js.map +0 -1
- package/dist/cjs/components/schedule-builder/ScheduleHelper.js +0 -2
- package/dist/cjs/components/schedule-builder/ScheduleHelper.js.map +0 -1
- package/dist/cjs/components/schedule-builder/SendModeSelector.js +0 -2
- package/dist/cjs/components/schedule-builder/SendModeSelector.js.map +0 -1
- package/dist/cjs/components/schedule-builder/StartDateTimePicker.js +0 -2
- package/dist/cjs/components/schedule-builder/StartDateTimePicker.js.map +0 -1
- package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js +0 -2
- package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js.map +0 -1
- package/dist/cjs/components/schedule-builder/model.js +0 -2
- package/dist/cjs/components/schedule-builder/model.js.map +0 -1
- package/dist/esm/components/chip-selector/ChipSelector.d.ts +0 -9
- package/dist/esm/components/chip-selector/ChipSelector.js +0 -27
- package/dist/esm/components/chip-selector/ChipSelector.js.map +0 -1
- package/dist/esm/components/chip-selector/ChipSelector.styled.d.ts +0 -10
- package/dist/esm/components/chip-selector/ChipSelector.styled.js +0 -48
- package/dist/esm/components/chip-selector/ChipSelector.styled.js.map +0 -1
- package/dist/esm/components/chip-selector/ChipSelectorGroup.d.ts +0 -10
- package/dist/esm/components/chip-selector/ChipSelectorGroup.js +0 -48
- package/dist/esm/components/chip-selector/ChipSelectorGroup.js.map +0 -1
- package/dist/esm/components/chip-selector/index.d.ts +0 -4
- package/dist/esm/components/chip-selector/model.d.ts +0 -106
- package/dist/esm/components/combo-box/ComboBox.d.ts +0 -15
- package/dist/esm/components/combo-box/ComboBox.js +0 -118
- package/dist/esm/components/combo-box/ComboBox.js.map +0 -1
- package/dist/esm/components/combo-box/ComboBox.styled.d.ts +0 -12
- package/dist/esm/components/combo-box/ComboBox.styled.js +0 -40
- package/dist/esm/components/combo-box/ComboBox.styled.js.map +0 -1
- package/dist/esm/components/combo-box/index.d.ts +0 -3
- package/dist/esm/components/combo-box/model.d.ts +0 -55
- package/dist/esm/components/schedule-builder/RefreshSegmentToggle.d.ts +0 -22
- package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js +0 -31
- package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js.map +0 -1
- package/dist/esm/components/schedule-builder/ScheduleBuilder.d.ts +0 -88
- package/dist/esm/components/schedule-builder/ScheduleBuilder.js +0 -105
- package/dist/esm/components/schedule-builder/ScheduleBuilder.js.map +0 -1
- package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.d.ts +0 -81
- package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js +0 -168
- package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js.map +0 -1
- package/dist/esm/components/schedule-builder/ScheduleEndPicker.d.ts +0 -17
- package/dist/esm/components/schedule-builder/ScheduleEndPicker.js +0 -105
- package/dist/esm/components/schedule-builder/ScheduleEndPicker.js.map +0 -1
- package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.d.ts +0 -21
- package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js +0 -136
- package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js.map +0 -1
- package/dist/esm/components/schedule-builder/ScheduleHelper.d.ts +0 -110
- package/dist/esm/components/schedule-builder/ScheduleHelper.js +0 -196
- package/dist/esm/components/schedule-builder/ScheduleHelper.js.map +0 -1
- package/dist/esm/components/schedule-builder/SendModeSelector.d.ts +0 -29
- package/dist/esm/components/schedule-builder/SendModeSelector.js +0 -41
- package/dist/esm/components/schedule-builder/SendModeSelector.js.map +0 -1
- package/dist/esm/components/schedule-builder/StartDateTimePicker.d.ts +0 -51
- package/dist/esm/components/schedule-builder/StartDateTimePicker.js +0 -120
- package/dist/esm/components/schedule-builder/StartDateTimePicker.js.map +0 -1
- package/dist/esm/components/schedule-builder/UpcomingRunsPreview.d.ts +0 -19
- package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js +0 -44
- package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js.map +0 -1
- package/dist/esm/components/schedule-builder/index.d.ts +0 -18
- package/dist/esm/components/schedule-builder/model.d.ts +0 -69
- package/dist/esm/components/schedule-builder/model.js +0 -8
- package/dist/esm/components/schedule-builder/model.js.map +0 -1
|
@@ -0,0 +1,575 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("styled-components"),e=require("../../constants/Theme.js"),a=n=>n&&typeof n=="object"&&"default"in n?n:{default:n},t=a(r),i="#F9F9F9",o=12,d=8,s=t.default.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
min-height: 0;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
background: ${e.COLORS.surface.standard};
|
|
7
|
+
border: 1px solid ${e.COLORS.stroke.primary};
|
|
8
|
+
border-radius: 16px;
|
|
9
|
+
box-shadow: 0 16px 48px rgba(40, 3, 78, 0.18);
|
|
10
|
+
`,l=t.default.div`
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: 10px;
|
|
14
|
+
padding: 16px;
|
|
15
|
+
border-bottom: 1px solid ${e.COLORS.stroke.primary};
|
|
16
|
+
flex-shrink: 0;
|
|
17
|
+
`,p=t.default.div`
|
|
18
|
+
width: 36px;
|
|
19
|
+
height: 36px;
|
|
20
|
+
flex-shrink: 0;
|
|
21
|
+
border-radius: 8px;
|
|
22
|
+
background: ${e.COLORS.background.base};
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
color: ${e.COLORS.content.brand};
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
`,c=t.default.div`
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
gap: 2px;
|
|
32
|
+
min-width: 0;
|
|
33
|
+
flex: 1;
|
|
34
|
+
`,x=t.default.div`
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 6px;
|
|
38
|
+
`,g=t.default.span`
|
|
39
|
+
padding: 1px 6px;
|
|
40
|
+
border-radius: 4px;
|
|
41
|
+
background: ${e.COLORS.background.brandLight};
|
|
42
|
+
color: ${e.COLORS.content.brand};
|
|
43
|
+
font-size: 10px;
|
|
44
|
+
font-weight: 600;
|
|
45
|
+
line-height: 16px;
|
|
46
|
+
white-space: nowrap;
|
|
47
|
+
`,u=t.default.div`
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
gap: 2px;
|
|
51
|
+
flex-shrink: 0;
|
|
52
|
+
`,f=t.default.button`
|
|
53
|
+
width: 28px;
|
|
54
|
+
height: 28px;
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
padding: 0;
|
|
59
|
+
border: none;
|
|
60
|
+
border-radius: 6px;
|
|
61
|
+
background: transparent;
|
|
62
|
+
color: ${e.COLORS.content.secondary};
|
|
63
|
+
cursor: pointer;
|
|
64
|
+
transition: background 0.15s ease, color 0.15s ease;
|
|
65
|
+
|
|
66
|
+
&:hover {
|
|
67
|
+
background: ${e.COLORS.surface.hovered};
|
|
68
|
+
color: ${e.COLORS.content.primary};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&:focus-visible {
|
|
72
|
+
outline: 2px solid ${e.COLORS.stroke.brand};
|
|
73
|
+
outline-offset: 1px;
|
|
74
|
+
}
|
|
75
|
+
`,b=t.default.div`
|
|
76
|
+
position: relative;
|
|
77
|
+
flex: 1;
|
|
78
|
+
min-height: 0;
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
`,O=t.default.div`
|
|
82
|
+
flex: 1;
|
|
83
|
+
min-height: 0;
|
|
84
|
+
overflow-y: auto;
|
|
85
|
+
padding: 16px;
|
|
86
|
+
display: flex;
|
|
87
|
+
flex-direction: column;
|
|
88
|
+
gap: ${o}px;
|
|
89
|
+
|
|
90
|
+
&::-webkit-scrollbar {
|
|
91
|
+
width: 6px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&::-webkit-scrollbar-thumb {
|
|
95
|
+
background: ${e.COLORS.background.inactive};
|
|
96
|
+
border-radius: 3px;
|
|
97
|
+
}
|
|
98
|
+
`,h=t.default.div`
|
|
99
|
+
position: absolute;
|
|
100
|
+
left: 0;
|
|
101
|
+
right: 0;
|
|
102
|
+
bottom: 0;
|
|
103
|
+
height: 40px;
|
|
104
|
+
pointer-events: none;
|
|
105
|
+
opacity: ${n=>n.$visible?1:0};
|
|
106
|
+
transition: opacity 0.2s ease;
|
|
107
|
+
background: linear-gradient(
|
|
108
|
+
to bottom,
|
|
109
|
+
${e.COLORS.surface.standard}00 0%,
|
|
110
|
+
${e.COLORS.surface.standard}99 60%,
|
|
111
|
+
${e.COLORS.surface.standard} 100%
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
&::after {
|
|
115
|
+
content: '';
|
|
116
|
+
position: absolute;
|
|
117
|
+
inset: 0;
|
|
118
|
+
backdrop-filter: blur(1px);
|
|
119
|
+
-webkit-backdrop-filter: blur(1px);
|
|
120
|
+
mask-image: linear-gradient(to bottom, transparent 0%, #000 75%);
|
|
121
|
+
-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 75%);
|
|
122
|
+
}
|
|
123
|
+
`,m=t.default.button`
|
|
124
|
+
position: absolute;
|
|
125
|
+
left: 50%;
|
|
126
|
+
bottom: 12px;
|
|
127
|
+
transform: translateX(-50%)
|
|
128
|
+
translateY(${n=>n.$visible?"0":"6px"});
|
|
129
|
+
width: 32px;
|
|
130
|
+
height: 32px;
|
|
131
|
+
display: flex;
|
|
132
|
+
align-items: center;
|
|
133
|
+
justify-content: center;
|
|
134
|
+
padding: 0;
|
|
135
|
+
border: none;
|
|
136
|
+
border-radius: 999px;
|
|
137
|
+
background: ${e.COLORS.background.inverse};
|
|
138
|
+
color: ${e.COLORS.content.primaryInverse};
|
|
139
|
+
box-shadow: 0 2px 8px rgba(40, 3, 78, 0.16);
|
|
140
|
+
cursor: pointer;
|
|
141
|
+
opacity: ${n=>n.$visible?1:0};
|
|
142
|
+
/* Hidden to the pointer and to focus order while it is faded out. */
|
|
143
|
+
visibility: ${n=>n.$visible?"visible":"hidden"};
|
|
144
|
+
transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease,
|
|
145
|
+
background 0.15s ease, color 0.15s ease;
|
|
146
|
+
|
|
147
|
+
&:hover {
|
|
148
|
+
background: ${e.COLORS.background.brandHovered};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&:focus-visible {
|
|
152
|
+
outline: 2px solid ${e.COLORS.stroke.brand};
|
|
153
|
+
outline-offset: 1px;
|
|
154
|
+
}
|
|
155
|
+
`,k=t.default.div`
|
|
156
|
+
flex: 1;
|
|
157
|
+
display: flex;
|
|
158
|
+
flex-direction: column;
|
|
159
|
+
align-items: center;
|
|
160
|
+
justify-content: center;
|
|
161
|
+
gap: 8px;
|
|
162
|
+
text-align: center;
|
|
163
|
+
padding: 8px 4px;
|
|
164
|
+
`,y=t.default.div`
|
|
165
|
+
color: ${e.COLORS.content.brand};
|
|
166
|
+
display: flex;
|
|
167
|
+
align-items: center;
|
|
168
|
+
justify-content: center;
|
|
169
|
+
margin-bottom: 4px;
|
|
170
|
+
`,L=t.default.div`
|
|
171
|
+
display: flex;
|
|
172
|
+
flex-direction: column;
|
|
173
|
+
align-items: center;
|
|
174
|
+
gap: 8px;
|
|
175
|
+
margin-top: 12px;
|
|
176
|
+
width: 100%;
|
|
177
|
+
`,S=t.default.button`
|
|
178
|
+
display: inline-flex;
|
|
179
|
+
align-items: center;
|
|
180
|
+
gap: 6px;
|
|
181
|
+
max-width: 100%;
|
|
182
|
+
padding: 8px 14px;
|
|
183
|
+
border: 1px solid ${e.COLORS.stroke.primary};
|
|
184
|
+
border-radius: 999px;
|
|
185
|
+
background: ${e.COLORS.surface.standard};
|
|
186
|
+
color: ${e.COLORS.content.primary};
|
|
187
|
+
font-family: Inter;
|
|
188
|
+
font-size: 13px;
|
|
189
|
+
line-height: 18px;
|
|
190
|
+
text-align: left;
|
|
191
|
+
cursor: pointer;
|
|
192
|
+
transition: border-color 0.15s ease, background 0.15s ease;
|
|
193
|
+
|
|
194
|
+
svg {
|
|
195
|
+
flex-shrink: 0;
|
|
196
|
+
color: ${e.COLORS.content.brand};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
&:hover:not(:disabled) {
|
|
200
|
+
border-color: ${e.COLORS.stroke.brand};
|
|
201
|
+
background: ${e.COLORS.background.brandVeryLight};
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
&:disabled {
|
|
205
|
+
cursor: not-allowed;
|
|
206
|
+
opacity: 0.5;
|
|
207
|
+
}
|
|
208
|
+
`,C=t.default.div`
|
|
209
|
+
font-family: Inter;
|
|
210
|
+
font-size: 14px;
|
|
211
|
+
line-height: 20px;
|
|
212
|
+
word-break: break-word;
|
|
213
|
+
overflow-wrap: break-word;
|
|
214
|
+
|
|
215
|
+
${n=>n.$role==="user"?`
|
|
216
|
+
align-self: flex-end;
|
|
217
|
+
margin-left: 32px;
|
|
218
|
+
padding: 10px 14px;
|
|
219
|
+
border-radius: 12px;
|
|
220
|
+
background: ${i};
|
|
221
|
+
color: ${e.COLORS.content.primary};
|
|
222
|
+
`:n.$role==="system"?`
|
|
223
|
+
align-self: center;
|
|
224
|
+
max-width: 90%;
|
|
225
|
+
padding: 6px 10px;
|
|
226
|
+
border-radius: 8px;
|
|
227
|
+
background: ${e.COLORS.surface.grey};
|
|
228
|
+
color: ${e.COLORS.content.secondary};
|
|
229
|
+
font-size: 12px;
|
|
230
|
+
text-align: center;
|
|
231
|
+
`:`
|
|
232
|
+
align-self: stretch;
|
|
233
|
+
padding: 0;
|
|
234
|
+
background: transparent;
|
|
235
|
+
color: ${e.COLORS.content.primary};
|
|
236
|
+
`}
|
|
237
|
+
|
|
238
|
+
/* Markdown emitted by renderCopilotMarkdown */
|
|
239
|
+
h1,
|
|
240
|
+
h2,
|
|
241
|
+
h3,
|
|
242
|
+
h4 {
|
|
243
|
+
font-size: 14px;
|
|
244
|
+
font-weight: 600;
|
|
245
|
+
margin: 4px 0;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
pre {
|
|
249
|
+
background: ${e.COLORS.background.base};
|
|
250
|
+
border-radius: 6px;
|
|
251
|
+
padding: 8px;
|
|
252
|
+
margin: 6px 0;
|
|
253
|
+
overflow-x: auto;
|
|
254
|
+
font-size: 12px;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
a {
|
|
258
|
+
color: ${e.COLORS.content.brand};
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
ul,
|
|
262
|
+
ol {
|
|
263
|
+
margin: 4px 0;
|
|
264
|
+
padding-left: 20px;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
li {
|
|
268
|
+
margin: 2px 0;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
code {
|
|
272
|
+
background: ${e.COLORS.background.base};
|
|
273
|
+
border-radius: 4px;
|
|
274
|
+
padding: 1px 4px;
|
|
275
|
+
font-size: 12px;
|
|
276
|
+
}
|
|
277
|
+
`,$=t.default.div`
|
|
278
|
+
align-self: flex-start;
|
|
279
|
+
display: inline-flex;
|
|
280
|
+
align-items: center;
|
|
281
|
+
gap: 8px;
|
|
282
|
+
padding: 12px 14px;
|
|
283
|
+
border-radius: 12px;
|
|
284
|
+
border-bottom-left-radius: 4px;
|
|
285
|
+
background: ${e.COLORS.surface.grey};
|
|
286
|
+
border: 1px solid ${e.COLORS.stroke.primary};
|
|
287
|
+
`,v=t.default.div`
|
|
288
|
+
align-self: center;
|
|
289
|
+
display: inline-flex;
|
|
290
|
+
align-items: center;
|
|
291
|
+
gap: 8px;
|
|
292
|
+
padding: 4px 0;
|
|
293
|
+
font-family: Inter;
|
|
294
|
+
font-size: 11px;
|
|
295
|
+
line-height: 16px;
|
|
296
|
+
color: ${e.COLORS.content.placeholder};
|
|
297
|
+
`,R=t.default.div`
|
|
298
|
+
display: flex;
|
|
299
|
+
flex-direction: column;
|
|
300
|
+
align-items: stretch;
|
|
301
|
+
gap: 8px;
|
|
302
|
+
margin-top: 4px;
|
|
303
|
+
`,w=t.default.div`
|
|
304
|
+
font-family: Inter;
|
|
305
|
+
font-size: 11px;
|
|
306
|
+
line-height: 16px;
|
|
307
|
+
color: ${e.COLORS.content.placeholder};
|
|
308
|
+
`,I=t.default.div`
|
|
309
|
+
display: flex;
|
|
310
|
+
flex-wrap: wrap;
|
|
311
|
+
gap: 8px;
|
|
312
|
+
margin-top: 8px;
|
|
313
|
+
`,A=t.default.a`
|
|
314
|
+
display: inline-flex;
|
|
315
|
+
align-items: center;
|
|
316
|
+
gap: 6px;
|
|
317
|
+
padding: 8px 14px;
|
|
318
|
+
border: 1px solid ${e.COLORS.stroke.brand};
|
|
319
|
+
border-radius: 10px;
|
|
320
|
+
background: ${e.COLORS.background.brandVeryLight};
|
|
321
|
+
color: ${e.COLORS.content.brand};
|
|
322
|
+
font-family: Inter;
|
|
323
|
+
font-size: 13px;
|
|
324
|
+
font-weight: 500;
|
|
325
|
+
line-height: 18px;
|
|
326
|
+
text-decoration: none;
|
|
327
|
+
cursor: pointer;
|
|
328
|
+
transition: background 0.15s ease, border-color 0.15s ease;
|
|
329
|
+
|
|
330
|
+
&:hover {
|
|
331
|
+
background: ${e.COLORS.background.brandLight};
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
&:focus-visible {
|
|
335
|
+
outline: 2px solid ${e.COLORS.stroke.brand};
|
|
336
|
+
outline-offset: 2px;
|
|
337
|
+
}
|
|
338
|
+
`,z=t.default.button`
|
|
339
|
+
display: flex;
|
|
340
|
+
align-items: center;
|
|
341
|
+
gap: 8px;
|
|
342
|
+
width: 100%;
|
|
343
|
+
padding: 10px 14px;
|
|
344
|
+
border: 1px solid ${e.COLORS.stroke.primary};
|
|
345
|
+
border-radius: 10px;
|
|
346
|
+
background: ${e.COLORS.surface.standard};
|
|
347
|
+
color: ${e.COLORS.content.primary};
|
|
348
|
+
font-family: Inter;
|
|
349
|
+
font-size: 13px;
|
|
350
|
+
line-height: 18px;
|
|
351
|
+
text-align: left;
|
|
352
|
+
cursor: pointer;
|
|
353
|
+
transition: border-color 0.15s ease, background 0.15s ease;
|
|
354
|
+
|
|
355
|
+
svg {
|
|
356
|
+
flex-shrink: 0;
|
|
357
|
+
color: ${e.COLORS.content.secondary};
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
&:hover:not(:disabled) {
|
|
361
|
+
border-color: ${e.COLORS.stroke.brand};
|
|
362
|
+
background: ${e.COLORS.background.brandVeryLight};
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
&:disabled {
|
|
366
|
+
cursor: not-allowed;
|
|
367
|
+
opacity: 0.5;
|
|
368
|
+
}
|
|
369
|
+
`,T=t.default.div`
|
|
370
|
+
align-self: flex-start;
|
|
371
|
+
display: inline-flex;
|
|
372
|
+
align-items: center;
|
|
373
|
+
gap: 6px;
|
|
374
|
+
font-family: Inter;
|
|
375
|
+
font-size: 12px;
|
|
376
|
+
line-height: 18px;
|
|
377
|
+
color: ${e.COLORS.content.secondary};
|
|
378
|
+
|
|
379
|
+
svg {
|
|
380
|
+
flex-shrink: 0;
|
|
381
|
+
color: ${e.COLORS.content.inactive};
|
|
382
|
+
}
|
|
383
|
+
`,M=t.default.div`
|
|
384
|
+
align-self: flex-end;
|
|
385
|
+
margin-top: -6px;
|
|
386
|
+
font-family: Inter;
|
|
387
|
+
font-size: 11px;
|
|
388
|
+
line-height: 16px;
|
|
389
|
+
color: ${e.COLORS.content.placeholder};
|
|
390
|
+
`,H=t.default.div`
|
|
391
|
+
align-self: flex-start;
|
|
392
|
+
display: flex;
|
|
393
|
+
align-items: center;
|
|
394
|
+
gap: 2px;
|
|
395
|
+
/* Pulls back out of the scroller's row gap to land on 8px. */
|
|
396
|
+
margin-top: ${d-o}px;
|
|
397
|
+
`,B=t.default.button`
|
|
398
|
+
display: inline-flex;
|
|
399
|
+
align-items: center;
|
|
400
|
+
justify-content: center;
|
|
401
|
+
gap: 4px;
|
|
402
|
+
width: 28px;
|
|
403
|
+
height: 28px;
|
|
404
|
+
padding: 0;
|
|
405
|
+
border: none;
|
|
406
|
+
border-radius: 4px;
|
|
407
|
+
background: transparent;
|
|
408
|
+
color: ${e.COLORS.content.placeholder};
|
|
409
|
+
font-family: Inter;
|
|
410
|
+
font-size: 11px;
|
|
411
|
+
line-height: 16px;
|
|
412
|
+
cursor: pointer;
|
|
413
|
+
transition: background 0.15s ease, color 0.15s ease;
|
|
414
|
+
|
|
415
|
+
svg {
|
|
416
|
+
flex-shrink: 0;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
&:hover:not(:disabled) {
|
|
420
|
+
background: ${e.COLORS.surface.hovered};
|
|
421
|
+
color: ${e.COLORS.content.secondary};
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
&:focus-visible {
|
|
425
|
+
outline: 2px solid ${e.COLORS.stroke.brand};
|
|
426
|
+
outline-offset: 1px;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
&:disabled {
|
|
430
|
+
cursor: not-allowed;
|
|
431
|
+
opacity: 0.5;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/* Confirmation reads as success, not as another affordance. */
|
|
435
|
+
&[data-copied='true'],
|
|
436
|
+
&[data-copied='true']:hover {
|
|
437
|
+
color: ${e.COLORS.content.positive};
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/* A cast vote holds the brand colour, so it stays legible as chosen once the
|
|
441
|
+
pointer moves away. */
|
|
442
|
+
&[data-selected='true'],
|
|
443
|
+
&[data-selected='true']:hover {
|
|
444
|
+
color: ${e.COLORS.content.brand};
|
|
445
|
+
}
|
|
446
|
+
`,E=t.default.span`
|
|
447
|
+
font-family: Inter;
|
|
448
|
+
font-size: 13px;
|
|
449
|
+
line-height: 20px;
|
|
450
|
+
color: ${e.COLORS.content.secondary};
|
|
451
|
+
`,F=t.default.div`
|
|
452
|
+
margin: 0 16px;
|
|
453
|
+
padding: 8px 10px;
|
|
454
|
+
border-radius: 8px;
|
|
455
|
+
background: ${e.COLORS.background.negative.light};
|
|
456
|
+
color: ${e.COLORS.content.negative};
|
|
457
|
+
font-family: Inter;
|
|
458
|
+
font-size: 12px;
|
|
459
|
+
line-height: 18px;
|
|
460
|
+
flex-shrink: 0;
|
|
461
|
+
`,j=t.default.div`
|
|
462
|
+
padding: 16px 16px 4px;
|
|
463
|
+
flex-shrink: 0;
|
|
464
|
+
`,P=t.default.div`
|
|
465
|
+
box-sizing: border-box;
|
|
466
|
+
display: flex;
|
|
467
|
+
align-items: center;
|
|
468
|
+
gap: 6px;
|
|
469
|
+
margin-bottom: 8px;
|
|
470
|
+
padding: 6px 8px;
|
|
471
|
+
border: 1px solid ${e.COLORS.stroke.primary};
|
|
472
|
+
border-radius: 8px;
|
|
473
|
+
background: ${e.COLORS.background.brandVeryLight};
|
|
474
|
+
|
|
475
|
+
svg {
|
|
476
|
+
flex-shrink: 0;
|
|
477
|
+
}
|
|
478
|
+
`,_=t.default.span`
|
|
479
|
+
flex: 1;
|
|
480
|
+
min-width: 0;
|
|
481
|
+
overflow: hidden;
|
|
482
|
+
white-space: nowrap;
|
|
483
|
+
text-overflow: ellipsis;
|
|
484
|
+
font-family: Inter;
|
|
485
|
+
font-size: 12px;
|
|
486
|
+
line-height: 16px;
|
|
487
|
+
color: ${e.COLORS.content.primary};
|
|
488
|
+
`,U=t.default.button`
|
|
489
|
+
display: flex;
|
|
490
|
+
align-items: center;
|
|
491
|
+
justify-content: center;
|
|
492
|
+
flex-shrink: 0;
|
|
493
|
+
width: 16px;
|
|
494
|
+
height: 16px;
|
|
495
|
+
padding: 0;
|
|
496
|
+
border: none;
|
|
497
|
+
border-radius: 4px;
|
|
498
|
+
background: transparent;
|
|
499
|
+
color: ${e.COLORS.content.secondary};
|
|
500
|
+
cursor: pointer;
|
|
501
|
+
|
|
502
|
+
&:hover {
|
|
503
|
+
background: ${e.COLORS.background.brandLight};
|
|
504
|
+
}
|
|
505
|
+
`,V=t.default.div`
|
|
506
|
+
box-sizing: border-box;
|
|
507
|
+
min-height: 48px;
|
|
508
|
+
display: flex;
|
|
509
|
+
align-items: flex-end;
|
|
510
|
+
gap: 8px;
|
|
511
|
+
padding: 12px;
|
|
512
|
+
box-shadow: inset 0 0 0 1px
|
|
513
|
+
${n=>n.$focused?e.COLORS.stroke.brand:e.COLORS.stroke.primary};
|
|
514
|
+
border-radius: 12px;
|
|
515
|
+
background: ${e.COLORS.surface.standard};
|
|
516
|
+
transition: box-shadow 0.15s ease;
|
|
517
|
+
|
|
518
|
+
&:hover {
|
|
519
|
+
box-shadow: inset 0 0 0 1px
|
|
520
|
+
${n=>n.$focused?e.COLORS.stroke.brand:e.COLORS.content.inactive};
|
|
521
|
+
}
|
|
522
|
+
`,G=t.default.textarea`
|
|
523
|
+
flex: 1;
|
|
524
|
+
border: none;
|
|
525
|
+
outline: none;
|
|
526
|
+
resize: none;
|
|
527
|
+
background: transparent;
|
|
528
|
+
font-family: Inter;
|
|
529
|
+
font-size: 13px;
|
|
530
|
+
line-height: 24px;
|
|
531
|
+
color: ${e.COLORS.content.primary};
|
|
532
|
+
max-height: 96px;
|
|
533
|
+
min-height: 24px;
|
|
534
|
+
padding: 0;
|
|
535
|
+
|
|
536
|
+
&::placeholder {
|
|
537
|
+
color: ${e.COLORS.content.placeholder};
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
&:disabled {
|
|
541
|
+
cursor: not-allowed;
|
|
542
|
+
}
|
|
543
|
+
`,D=t.default.button`
|
|
544
|
+
width: 24px;
|
|
545
|
+
height: 24px;
|
|
546
|
+
flex-shrink: 0;
|
|
547
|
+
display: flex;
|
|
548
|
+
align-items: center;
|
|
549
|
+
justify-content: center;
|
|
550
|
+
padding: 0;
|
|
551
|
+
border: none;
|
|
552
|
+
border-radius: 6px;
|
|
553
|
+
background: ${n=>n.$active?e.COLORS.background.brand:e.COLORS.background.inactive};
|
|
554
|
+
color: ${e.COLORS.content.primaryInverse};
|
|
555
|
+
cursor: ${n=>n.$active?"pointer":"not-allowed"};
|
|
556
|
+
transition: background 0.15s ease;
|
|
557
|
+
|
|
558
|
+
&:hover:not(:disabled) {
|
|
559
|
+
background: ${e.COLORS.background.brandHovered};
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
&:focus-visible {
|
|
563
|
+
outline: 2px solid ${e.COLORS.stroke.brand};
|
|
564
|
+
outline-offset: 1px;
|
|
565
|
+
}
|
|
566
|
+
`,N=t.default.div`
|
|
567
|
+
padding: 4px 16px 16px;
|
|
568
|
+
text-align: center;
|
|
569
|
+
font-family: Inter;
|
|
570
|
+
font-size: 11px;
|
|
571
|
+
line-height: 16px;
|
|
572
|
+
color: ${e.COLORS.content.placeholder};
|
|
573
|
+
flex-shrink: 0;
|
|
574
|
+
`;exports.AttachmentChip=P;exports.AttachmentRemove=U;exports.AttachmentText=_;exports.Disclaimer=N;exports.EmptyState=k;exports.EmptyStateIcon=y;exports.ErrorBanner=F;exports.FollowUpChip=z;exports.FollowUpList=R;exports.FollowUpsLabel=w;exports.HeaderActions=u;exports.HeaderAvatar=p;exports.HeaderBadge=g;exports.HeaderText=c;exports.HeaderTitleRow=x;exports.HistoryLoader=v;exports.IconAction=f;exports.InputArea=j;exports.InputWrapper=V;exports.InterruptedNote=T;exports.JumpToLatestButton=m;exports.MessageAction=B;exports.MessageActions=H;exports.MessageBubble=C;exports.MessageInput=G;exports.MessageTimestamp=M;exports.MessagesArea=O;exports.MessagesViewport=b;exports.PanelContainer=s;exports.PanelHeader=l;exports.ScrollFade=h;exports.SendButton=D;exports.SuggestionChip=S;exports.SuggestionList=L;exports.ThinkingBubble=$;exports.ThinkingLabel=E;exports.ToolCtaLink=A;exports.ToolCtaList=I;
|
|
575
|
+
//# 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,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=8,g=(t,n,c)=>Math.min(Math.max(t,n),Math.max(n,c)),y=({ballPosition:t,ballSize:n,panelWidth:c,panelHeight:r,gap:f,viewport:e})=>{if(!e.width||!e.height)return{left:h,top:h,width:c,height:r};const s=Math.min(c,e.width-h*2),d=Math.min(r,e.height-h*2),m=t.x+n/2,a=t.y+n/2,o=m>e.width/2,M=a>e.height/2,u=o?t.x+n-s:t.x,x=M?t.y-f-d:t.y+n+f;return{left:g(u,h,e.width-s-h),top:g(x,h,e.height-d-h),width:s,height:d}};exports.getCopilotPanelPlacement=y;
|
|
2
|
+
//# sourceMappingURL=copilotPlacement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilotPlacement.js","sources":["../../../../src/components/bik-copilot/copilotPlacement.ts"],"sourcesContent":["import { CopilotBallPosition, CopilotViewport } from './model';\n\n/** Smallest gap kept between the panel and the viewport edges. */\nconst VIEWPORT_MARGIN_PX = 8;\n\nexport interface CopilotPanelPlacementOptions {\n\tballPosition: CopilotBallPosition;\n\tballSize: number;\n\tpanelWidth: number;\n\tpanelHeight: number;\n\tgap: number;\n\tviewport: CopilotViewport;\n}\n\nexport interface CopilotPanelPlacement {\n\tleft: number;\n\ttop: number;\n\twidth: number;\n\theight: number;\n}\n\nconst clamp = (value: number, min: number, max: number) =>\n\tMath.min(Math.max(value, min), Math.max(min, max));\n\n/**\n * Places the panel next to the ball, on whichever side has room.\n *\n * The panel opens towards the middle of the screen: a ball parked bottom-right\n * gets a panel above and to its left, a ball parked top-left gets one below and\n * to its right. The result is always clamped inside the viewport, and the panel\n * shrinks on viewports too small to hold it at full size.\n */\nexport const getCopilotPanelPlacement = ({\n\tballPosition,\n\tballSize,\n\tpanelWidth,\n\tpanelHeight,\n\tgap,\n\tviewport,\n}: CopilotPanelPlacementOptions): CopilotPanelPlacement => {\n\tif (!viewport.width || !viewport.height) {\n\t\treturn {\n\t\t\tleft: VIEWPORT_MARGIN_PX,\n\t\t\ttop: VIEWPORT_MARGIN_PX,\n\t\t\twidth: panelWidth,\n\t\t\theight: panelHeight,\n\t\t};\n\t}\n\n\tconst width = Math.min(panelWidth, viewport.width - VIEWPORT_MARGIN_PX * 2);\n\tconst height = Math.min(\n\t\tpanelHeight,\n\t\tviewport.height - VIEWPORT_MARGIN_PX * 2,\n\t);\n\n\tconst ballCenterX = ballPosition.x + ballSize / 2;\n\tconst ballCenterY = ballPosition.y + ballSize / 2;\n\tconst opensLeftwards = ballCenterX > viewport.width / 2;\n\tconst opensUpwards = ballCenterY > viewport.height / 2;\n\n\t// Align the panel's near edge with the ball's, then push it towards the\n\t// screen centre.\n\tconst preferredLeft = opensLeftwards\n\t\t? ballPosition.x + ballSize - width\n\t\t: ballPosition.x;\n\tconst preferredTop = opensUpwards\n\t\t? ballPosition.y - gap - height\n\t\t: ballPosition.y + ballSize + gap;\n\n\treturn {\n\t\tleft: clamp(\n\t\t\tpreferredLeft,\n\t\t\tVIEWPORT_MARGIN_PX,\n\t\t\tviewport.width - width - VIEWPORT_MARGIN_PX,\n\t\t),\n\t\ttop: clamp(\n\t\t\tpreferredTop,\n\t\t\tVIEWPORT_MARGIN_PX,\n\t\t\tviewport.height - height - VIEWPORT_MARGIN_PX,\n\t\t),\n\t\twidth,\n\t\theight,\n\t};\n};\n"],"names":["VIEWPORT_MARGIN_PX","clamp","value","min","max","getCopilotPanelPlacement","ballPosition","ballSize","panelWidth","panelHeight","gap","viewport","width","height","ballCenterX","ballCenterY","opensLeftwards","opensUpwards","preferredLeft","preferredTop"],"mappings":"gFAGA,MAAMA,EAAqB,EAkBrBC,EAAQ,CAACC,EAAeC,EAAaC,IAC1C,KAAK,IAAI,KAAK,IAAIF,EAAOC,CAAG,EAAG,KAAK,IAAIA,EAAKC,CAAG,CAAC,EAUrCC,EAA2B,CAAC,CACxC,aAAAC,EACA,SAAAC,EACA,WAAAC,EACA,YAAAC,EACA,IAAAC,EACA,SAAAC,CACD,IAA2D,CAC1D,GAAI,CAACA,EAAS,OAAS,CAACA,EAAS,OAChC,MAAO,CACN,KAAMX,EACN,IAAKA,EACL,MAAOQ,EACP,OAAQC,CAAA,EAIV,MAAMG,EAAQ,KAAK,IAAIJ,EAAYG,EAAS,MAAQX,EAAqB,CAAC,EACpEa,EAAS,KAAK,IACnBJ,EACAE,EAAS,OAASX,EAAqB,CAAA,EAGlCc,EAAcR,EAAa,EAAIC,EAAW,EAC1CQ,EAAcT,EAAa,EAAIC,EAAW,EAC1CS,EAAiBF,EAAcH,EAAS,MAAQ,EAChDM,EAAeF,EAAcJ,EAAS,OAAS,EAI/CO,EAAgBF,EACnBV,EAAa,EAAIC,EAAWK,EAC5BN,EAAa,EACVa,EAAeF,EAClBX,EAAa,EAAII,EAAMG,EACvBP,EAAa,EAAIC,EAAWG,EAE/B,MAAO,CACN,KAAMT,EACLiB,EACAlB,EACAW,EAAS,MAAQC,EAAQZ,CAAA,EAE1B,IAAKC,EACJkB,EACAnB,EACAW,EAAS,OAASE,EAASb,CAAA,EAE5B,MAAAY,EACA,OAAAC,CAAA,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="Please answer my previous question again — give a fresh, reworded response, not the same text as before.",o=t=>t.trim()===e;exports.COPILOT_REGENERATE_PROMPT=e;exports.isCopilotRegeneratePrompt=o;
|
|
2
|
+
//# sourceMappingURL=copilotRegenerate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilotRegenerate.js","sources":["../../../../src/components/bik-copilot/copilotRegenerate.ts"],"sourcesContent":["/**\n * The prompt a regenerate sends in place of the reader's own words.\n *\n * Regenerating is an ordinary `/bik-ai/copilot-bikchatbot` turn — the endpoint\n * needs a prompt on every call — so it carries this sentinel instead. It is sent\n * with `previous_response_id`, so the model already has the question and the last\n * answer in context; the wording asks it to answer again *differently* rather\n * than replay the same text. It is stored like any other turn, both by the\n * backend and in IndexedDB, and the transcript hides it when rendering rather\n * than trying to keep it out of storage — one filter covers the live turn, a\n * restored session and a page fetched from history.\n */\nexport const COPILOT_REGENERATE_PROMPT =\n\t'Please answer my previous question again — give a fresh, reworded response, ' +\n\t'not the same text as before.';\n\n/**\n * Whether a message is a regenerate request rather than something a reader\n * typed, and so must not be rendered.\n *\n * Matched on content alone, without checking the role: history rows are mapped\n * onto a role by pattern-matching the backend's `owner`, so a regenerate row\n * that lands on the wrong side must still stay hidden.\n */\nexport const isCopilotRegeneratePrompt = (content: string): boolean =>\n\tcontent.trim() === COPILOT_REGENERATE_PROMPT;\n"],"names":["COPILOT_REGENERATE_PROMPT","isCopilotRegeneratePrompt","content"],"mappings":"gFAYO,MAAMA,EACZ,2GAWYC,EAA6BC,GACzCA,EAAQ,SAAWF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=(e,i)=>{const t=`"${e.trim()}"`,o=i.trim();return o?`About ${t} on this page: ${o}`:`Tell me about ${t} on this page.`};exports.buildCopilotSelectionPrompt=l;
|
|
2
|
+
//# sourceMappingURL=copilotSelectionPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilotSelectionPrompt.js","sources":["../../../../src/components/bik-copilot/copilotSelectionPrompt.ts"],"sourcesContent":["/**\n * The prompt a turn carries when the merchant started it from something they\n * selected on the page.\n *\n * `/bik-ai/copilot-chatbot` takes `user_query` and nothing else that could hold\n * context, so the quoted text has to be part of the question itself. The page is\n * referred to without naming it because the request already carries `route` —\n * the quote is the part the merchant could not have described in words.\n *\n * The selection arrives already whitespace-collapsed and length-capped from\n * `TextSelectionAsk`, so this only quotes it.\n */\nexport const buildCopilotSelectionPrompt = (\n\tselection: string,\n\tquestion: string,\n): string => {\n\tconst quoted = `\"${selection.trim()}\"`;\n\tconst trimmedQuestion = question.trim();\n\treturn trimmedQuestion\n\t\t? `About ${quoted} on this page: ${trimmedQuestion}`\n\t\t: `Tell me about ${quoted} on this page.`;\n};\n"],"names":["buildCopilotSelectionPrompt","selection","question","quoted","trimmedQuestion"],"mappings":"gFAYO,MAAMA,EAA8B,CAC1CC,EACAC,IACY,CACZ,MAAMC,EAAS,IAAIF,EAAU,KAAA,CAAM,IAC7BG,EAAkBF,EAAS,KAAA,EACjC,OAAOE,EACJ,SAASD,CAAM,kBAAkBC,CAAe,GAChD,iBAAiBD,CAAM,gBAC3B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval"),_=require("./copilotMessagesClient.js"),a=i.createStore("bik-copilot","sessions"),p=1440*60*1e3,f=_.COPILOT_HISTORY_PAGE_SIZE,d=(t,e)=>`${e}:${t}`,r=async(t,e)=>{try{return await t()}catch{return e}},m=()=>typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`copilot-${Date.now()}-${Math.floor(Math.random()*1e6)}`,w=(t,e,n={})=>{const o=Date.now();return{sessionId:e,route:t,createdAt:o,updatedAt:o,expiresAt:o+p,messages:[],...n}},S=(t,e=Date.now())=>(t.expiresAt??t.updatedAt+p)<=e,I=(t,e)=>r(async()=>{const n=d(t,e),o=await i.get(n,a);return o?S(o)?(await i.del(n,a),null):o:null},null),A=t=>r(()=>i.set(d(t.route??"",t.sessionId),t,a),void 0),g=(t,e)=>r(()=>i.del(d(t,e),a),void 0),y=()=>r(async()=>(await i.keys(a)).filter(e=>typeof e=="string"),[]),O=t=>r(async()=>{const e=Date.now(),n=await y();await Promise.all(n.map(async o=>{const l=await i.get(o,a);if(!l)return;(t===void 0?S(l,e):l.updatedAt+t<=e)&&await i.del(o,a)}))},void 0),D=({route:t,storeId:e})=>r(async()=>{const n=`:${t}`,o=await y();return(await Promise.all(o.filter(s=>s.endsWith(n)).map(s=>i.get(s,a)))).filter(s=>!!s).filter(s=>!e||!s.storeId||s.storeId===e).filter(s=>!S(s)).sort((s,c)=>c.updatedAt-s.updatedAt)[0]?.sessionId??null},null),K=async({route:t,sessionId:e,messages:n,previousResponseId:o,storeId:l,agent:u})=>{const s=await I(t,e),c=Date.now(),E={...s??w(t,e),sessionId:e,route:t,updatedAt:c,expiresAt:c+p,messages:n.slice(-f).map(T=>{const C={...T};return delete C.isStreaming,C}),previousResponseId:o,storeId:l,agent:u};await A(E)};exports.COPILOT_SESSION_TTL_MS=p;exports.MAX_PERSISTED_MESSAGES=f;exports.copilotSessionKey=d;exports.createCopilotSession=w;exports.createCopilotSessionId=m;exports.deleteCopilotSession=g;exports.findLatestCopilotSessionId=D;exports.isCopilotSessionExpired=S;exports.listCopilotSessionKeys=y;exports.loadCopilotSession=I;exports.persistCopilotTurn=K;exports.pruneCopilotSessions=O;exports.saveCopilotSession=A;
|
|
2
|
+
//# sourceMappingURL=copilotDb.js.map
|