@bikdotai/bik-component-library 0.0.868-beta.6 → 0.0.868-beta.9
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 +3 -0
- 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/button/themes.js +2 -2
- package/dist/cjs/components/button/themes.js.map +1 -1
- package/dist/cjs/components/chip-selector/ChipSelector.js +2 -0
- package/dist/cjs/components/chip-selector/ChipSelector.js.map +1 -0
- package/dist/cjs/components/chip-selector/ChipSelector.styled.js +36 -0
- package/dist/cjs/components/chip-selector/ChipSelector.styled.js.map +1 -0
- package/dist/cjs/components/chip-selector/ChipSelectorGroup.js +2 -0
- package/dist/cjs/components/chip-selector/ChipSelectorGroup.js.map +1 -0
- package/dist/cjs/components/combo-box/ComboBox.js +2 -0
- package/dist/cjs/components/combo-box/ComboBox.js.map +1 -0
- package/dist/cjs/components/combo-box/ComboBox.styled.js +33 -0
- package/dist/cjs/components/combo-box/ComboBox.styled.js.map +1 -0
- package/dist/cjs/components/datePicker/DatePickerWrapper.js +1 -1
- package/dist/cjs/components/datePicker/DatePickerWrapper.js.map +1 -1
- package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js +2 -0
- package/dist/cjs/components/schedule-builder/RefreshSegmentToggle.js.map +1 -0
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.js +2 -0
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.js.map +1 -0
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js +138 -0
- package/dist/cjs/components/schedule-builder/ScheduleBuilder.styled.js.map +1 -0
- package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js +2 -0
- package/dist/cjs/components/schedule-builder/ScheduleEndPicker.js.map +1 -0
- package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js +2 -0
- package/dist/cjs/components/schedule-builder/ScheduleFrequencyPicker.js.map +1 -0
- package/dist/cjs/components/schedule-builder/ScheduleHelper.js +2 -0
- package/dist/cjs/components/schedule-builder/ScheduleHelper.js.map +1 -0
- package/dist/cjs/components/schedule-builder/SendModeSelector.js +2 -0
- package/dist/cjs/components/schedule-builder/SendModeSelector.js.map +1 -0
- package/dist/cjs/components/schedule-builder/StartDateTimePicker.js +2 -0
- package/dist/cjs/components/schedule-builder/StartDateTimePicker.js.map +1 -0
- package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js +2 -0
- package/dist/cjs/components/schedule-builder/UpcomingRunsPreview.js.map +1 -0
- package/dist/cjs/components/schedule-builder/model.js +2 -0
- package/dist/cjs/components/schedule-builder/model.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/agent-builder/constants/tools.d.ts +0 -1
- 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/button/themes.js +2 -1
- package/dist/esm/components/button/themes.js.map +1 -1
- package/dist/esm/components/chip-selector/ChipSelector.d.ts +9 -0
- package/dist/esm/components/chip-selector/ChipSelector.js +27 -0
- package/dist/esm/components/chip-selector/ChipSelector.js.map +1 -0
- package/dist/esm/components/chip-selector/ChipSelector.styled.d.ts +10 -0
- package/dist/esm/components/chip-selector/ChipSelector.styled.js +48 -0
- package/dist/esm/components/chip-selector/ChipSelector.styled.js.map +1 -0
- package/dist/esm/components/chip-selector/ChipSelectorGroup.d.ts +10 -0
- package/dist/esm/components/chip-selector/ChipSelectorGroup.js +48 -0
- package/dist/esm/components/chip-selector/ChipSelectorGroup.js.map +1 -0
- package/dist/esm/components/chip-selector/index.d.ts +4 -0
- package/dist/esm/components/chip-selector/model.d.ts +106 -0
- package/dist/esm/components/combo-box/ComboBox.d.ts +15 -0
- package/dist/esm/components/combo-box/ComboBox.js +118 -0
- package/dist/esm/components/combo-box/ComboBox.js.map +1 -0
- package/dist/esm/components/combo-box/ComboBox.styled.d.ts +12 -0
- package/dist/esm/components/combo-box/ComboBox.styled.js +40 -0
- package/dist/esm/components/combo-box/ComboBox.styled.js.map +1 -0
- package/dist/esm/components/combo-box/index.d.ts +3 -0
- package/dist/esm/components/combo-box/model.d.ts +55 -0
- package/dist/esm/components/datePicker/DatePickerWrapper.d.ts +7 -0
- package/dist/esm/components/datePicker/DatePickerWrapper.js +66 -64
- package/dist/esm/components/datePicker/DatePickerWrapper.js.map +1 -1
- package/dist/esm/components/datePicker/index.d.ts +1 -0
- package/dist/esm/components/schedule-builder/RefreshSegmentToggle.d.ts +22 -0
- package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js +31 -0
- package/dist/esm/components/schedule-builder/RefreshSegmentToggle.js.map +1 -0
- package/dist/esm/components/schedule-builder/ScheduleBuilder.d.ts +88 -0
- package/dist/esm/components/schedule-builder/ScheduleBuilder.js +105 -0
- package/dist/esm/components/schedule-builder/ScheduleBuilder.js.map +1 -0
- package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.d.ts +81 -0
- package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js +168 -0
- package/dist/esm/components/schedule-builder/ScheduleBuilder.styled.js.map +1 -0
- package/dist/esm/components/schedule-builder/ScheduleEndPicker.d.ts +17 -0
- package/dist/esm/components/schedule-builder/ScheduleEndPicker.js +105 -0
- package/dist/esm/components/schedule-builder/ScheduleEndPicker.js.map +1 -0
- package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.d.ts +21 -0
- package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js +136 -0
- package/dist/esm/components/schedule-builder/ScheduleFrequencyPicker.js.map +1 -0
- package/dist/esm/components/schedule-builder/ScheduleHelper.d.ts +110 -0
- package/dist/esm/components/schedule-builder/ScheduleHelper.js +196 -0
- package/dist/esm/components/schedule-builder/ScheduleHelper.js.map +1 -0
- package/dist/esm/components/schedule-builder/SendModeSelector.d.ts +29 -0
- package/dist/esm/components/schedule-builder/SendModeSelector.js +41 -0
- package/dist/esm/components/schedule-builder/SendModeSelector.js.map +1 -0
- package/dist/esm/components/schedule-builder/StartDateTimePicker.d.ts +51 -0
- package/dist/esm/components/schedule-builder/StartDateTimePicker.js +120 -0
- package/dist/esm/components/schedule-builder/StartDateTimePicker.js.map +1 -0
- package/dist/esm/components/schedule-builder/UpcomingRunsPreview.d.ts +19 -0
- package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js +44 -0
- package/dist/esm/components/schedule-builder/UpcomingRunsPreview.js.map +1 -0
- package/dist/esm/components/schedule-builder/index.d.ts +18 -0
- package/dist/esm/components/schedule-builder/model.d.ts +69 -0
- package/dist/esm/components/schedule-builder/model.js +8 -0
- package/dist/esm/components/schedule-builder/model.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +828 -844
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/components/bik-copilot/BIKCopilot.js +0 -2
- package/dist/cjs/components/bik-copilot/BIKCopilot.js.map +0 -1
- package/dist/cjs/components/bik-copilot/ControlledCopilot.js +0 -2
- package/dist/cjs/components/bik-copilot/ControlledCopilot.js.map +0 -1
- package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js +0 -27
- package/dist/cjs/components/bik-copilot/ControlledCopilot.styled.js.map +0 -1
- package/dist/cjs/components/bik-copilot/CopilotBall.js +0 -2
- package/dist/cjs/components/bik-copilot/CopilotBall.js.map +0 -1
- package/dist/cjs/components/bik-copilot/CopilotBall.styled.js +0 -42
- package/dist/cjs/components/bik-copilot/CopilotBall.styled.js.map +0 -1
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.js +0 -2
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.js.map +0 -1
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.styled.js +0 -108
- package/dist/cjs/components/bik-copilot/CopilotFeedbackModal.styled.js.map +0 -1
- package/dist/cjs/components/bik-copilot/CopilotPanel.js +0 -2
- package/dist/cjs/components/bik-copilot/CopilotPanel.js.map +0 -1
- package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js +0 -534
- package/dist/cjs/components/bik-copilot/CopilotPanel.styled.js.map +0 -1
- package/dist/cjs/components/bik-copilot/copilotPlacement.js +0 -2
- package/dist/cjs/components/bik-copilot/copilotPlacement.js.map +0 -1
- package/dist/cjs/components/bik-copilot/copilotRegenerate.js +0 -2
- package/dist/cjs/components/bik-copilot/copilotRegenerate.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotDb.js +0 -2
- package/dist/cjs/components/bik-copilot/services/copilotDb.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js +0 -2
- package/dist/cjs/components/bik-copilot/services/copilotFeedbackClient.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js +0 -2
- package/dist/cjs/components/bik-copilot/services/copilotIcebreakersClient.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js +0 -2
- package/dist/cjs/components/bik-copilot/services/copilotMessagesClient.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotPageSession.js +0 -2
- package/dist/cjs/components/bik-copilot/services/copilotPageSession.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotSseParser.js +0 -7
- package/dist/cjs/components/bik-copilot/services/copilotSseParser.js.map +0 -1
- package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js +0 -2
- package/dist/cjs/components/bik-copilot/services/copilotStreamClient.js.map +0 -1
- package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js +0 -2
- package/dist/cjs/components/bik-copilot/useCopilotIcebreakers.js.map +0 -1
- package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js +0 -2
- package/dist/cjs/components/bik-copilot/useCopilotStreamChat.js.map +0 -1
- package/dist/cjs/components/bik-copilot/useDraggableFloater.js +0 -2
- package/dist/cjs/components/bik-copilot/useDraggableFloater.js.map +0 -1
- package/dist/cjs/components/bik-copilot/utils/markdown.js +0 -4
- package/dist/cjs/components/bik-copilot/utils/markdown.js.map +0 -1
- package/dist/cjs/components/bik-copilot/utils/toolCtas.js +0 -2
- package/dist/cjs/components/bik-copilot/utils/toolCtas.js.map +0 -1
- package/dist/esm/components/bik-copilot/BIKCopilot.d.ts +0 -31
- package/dist/esm/components/bik-copilot/BIKCopilot.js +0 -118
- package/dist/esm/components/bik-copilot/BIKCopilot.js.map +0 -1
- package/dist/esm/components/bik-copilot/ControlledCopilot.d.ts +0 -14
- package/dist/esm/components/bik-copilot/ControlledCopilot.js +0 -174
- package/dist/esm/components/bik-copilot/ControlledCopilot.js.map +0 -1
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.d.ts +0 -7
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js +0 -31
- package/dist/esm/components/bik-copilot/ControlledCopilot.styled.js.map +0 -1
- package/dist/esm/components/bik-copilot/CopilotBall.d.ts +0 -13
- package/dist/esm/components/bik-copilot/CopilotBall.js +0 -50
- package/dist/esm/components/bik-copilot/CopilotBall.js.map +0 -1
- package/dist/esm/components/bik-copilot/CopilotBall.styled.d.ts +0 -9
- package/dist/esm/components/bik-copilot/CopilotBall.styled.js +0 -46
- package/dist/esm/components/bik-copilot/CopilotBall.styled.js.map +0 -1
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.d.ts +0 -29
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js +0 -73
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.js.map +0 -1
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.d.ts +0 -12
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js +0 -122
- package/dist/esm/components/bik-copilot/CopilotFeedbackModal.styled.js.map +0 -1
- package/dist/esm/components/bik-copilot/CopilotPanel.d.ts +0 -9
- package/dist/esm/components/bik-copilot/CopilotPanel.js +0 -536
- package/dist/esm/components/bik-copilot/CopilotPanel.js.map +0 -1
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.d.ts +0 -67
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.js +0 -573
- package/dist/esm/components/bik-copilot/CopilotPanel.styled.js.map +0 -1
- package/dist/esm/components/bik-copilot/copilotPlacement.d.ts +0 -24
- package/dist/esm/components/bik-copilot/copilotPlacement.js +0 -38
- package/dist/esm/components/bik-copilot/copilotPlacement.js.map +0 -1
- package/dist/esm/components/bik-copilot/copilotRegenerate.d.ts +0 -22
- package/dist/esm/components/bik-copilot/copilotRegenerate.js +0 -6
- package/dist/esm/components/bik-copilot/copilotRegenerate.js.map +0 -1
- package/dist/esm/components/bik-copilot/index.d.ts +0 -19
- package/dist/esm/components/bik-copilot/model.d.ts +0 -804
- package/dist/esm/components/bik-copilot/services/copilotDb.d.ts +0 -90
- package/dist/esm/components/bik-copilot/services/copilotDb.js +0 -96
- package/dist/esm/components/bik-copilot/services/copilotDb.js.map +0 -1
- package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.d.ts +0 -15
- package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js +0 -55
- package/dist/esm/components/bik-copilot/services/copilotFeedbackClient.js.map +0 -1
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.d.ts +0 -11
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js +0 -54
- package/dist/esm/components/bik-copilot/services/copilotIcebreakersClient.js.map +0 -1
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.d.ts +0 -23
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js +0 -78
- package/dist/esm/components/bik-copilot/services/copilotMessagesClient.js.map +0 -1
- package/dist/esm/components/bik-copilot/services/copilotPageSession.d.ts +0 -37
- package/dist/esm/components/bik-copilot/services/copilotPageSession.js +0 -35
- package/dist/esm/components/bik-copilot/services/copilotPageSession.js.map +0 -1
- package/dist/esm/components/bik-copilot/services/copilotSseParser.d.ts +0 -22
- package/dist/esm/components/bik-copilot/services/copilotSseParser.js +0 -52
- package/dist/esm/components/bik-copilot/services/copilotSseParser.js.map +0 -1
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.d.ts +0 -35
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.js +0 -110
- package/dist/esm/components/bik-copilot/services/copilotStreamClient.js.map +0 -1
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.d.ts +0 -17
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js +0 -60
- package/dist/esm/components/bik-copilot/useCopilotIcebreakers.js.map +0 -1
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.d.ts +0 -20
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.js +0 -377
- package/dist/esm/components/bik-copilot/useCopilotStreamChat.js.map +0 -1
- package/dist/esm/components/bik-copilot/useDraggableFloater.d.ts +0 -9
- package/dist/esm/components/bik-copilot/useDraggableFloater.js +0 -118
- package/dist/esm/components/bik-copilot/useDraggableFloater.js.map +0 -1
- package/dist/esm/components/bik-copilot/utils/markdown.d.ts +0 -1
- package/dist/esm/components/bik-copilot/utils/markdown.js +0 -48
- package/dist/esm/components/bik-copilot/utils/markdown.js.map +0 -1
- package/dist/esm/components/bik-copilot/utils/toolCtas.d.ts +0 -6
- package/dist/esm/components/bik-copilot/utils/toolCtas.js +0 -27
- package/dist/esm/components/bik-copilot/utils/toolCtas.js.map +0 -1
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { jsxs as ue, Fragment as ge, jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import { useState as he, useRef as Ce, useCallback as C, useEffect as v } from "react";
|
|
3
|
-
import { COLORS as ve } from "../../constants/Theme.js";
|
|
4
|
-
import { PanelPositioner as we } from "./ControlledCopilot.styled.js";
|
|
5
|
-
import { CopilotBall as Le, COPILOT_BALL_ATTRIBUTE as Pe } from "./CopilotBall.js";
|
|
6
|
-
import { CopilotPanel as Ee } from "./CopilotPanel.js";
|
|
7
|
-
import { getCopilotPanelPlacement as ke } from "./copilotPlacement.js";
|
|
8
|
-
import { useDraggableFloater as $e } from "./useDraggableFloater.js";
|
|
9
|
-
const xe = ({
|
|
10
|
-
// Conversation
|
|
11
|
-
messages: w,
|
|
12
|
-
onSendMessage: L,
|
|
13
|
-
isThinking: P = !1,
|
|
14
|
-
thinkingLabel: E,
|
|
15
|
-
isStreaming: k = !1,
|
|
16
|
-
onStop: $,
|
|
17
|
-
interruptedLabel: b,
|
|
18
|
-
followUpsLabel: I,
|
|
19
|
-
hasMoreHistory: O = !1,
|
|
20
|
-
isLoadingHistory: T = !1,
|
|
21
|
-
onLoadOlderMessages: y,
|
|
22
|
-
historyLoadingLabel: B,
|
|
23
|
-
errorMessage: D,
|
|
24
|
-
// Ball
|
|
25
|
-
ballSize: r = 56,
|
|
26
|
-
corner: R = "bottom-right",
|
|
27
|
-
offset: x = 24,
|
|
28
|
-
initialPosition: j,
|
|
29
|
-
draggable: f = !0,
|
|
30
|
-
snapToEdge: A = !0,
|
|
31
|
-
onPositionChange: F,
|
|
32
|
-
ballIcon: U,
|
|
33
|
-
ballOpenIcon: _,
|
|
34
|
-
ballColor: z = ve.background.brand,
|
|
35
|
-
zIndex: c = 1200,
|
|
36
|
-
ballAriaLabel: H,
|
|
37
|
-
// Panel
|
|
38
|
-
panelWidth: K = 400,
|
|
39
|
-
panelHeight: S = 700,
|
|
40
|
-
panelGap: q = 12,
|
|
41
|
-
title: G = "Copilot",
|
|
42
|
-
badge: J,
|
|
43
|
-
subtitle: M,
|
|
44
|
-
avatar: N,
|
|
45
|
-
placeholder: Q,
|
|
46
|
-
disclaimer: V,
|
|
47
|
-
emptyStateTitle: W,
|
|
48
|
-
emptyStateSubtitle: X,
|
|
49
|
-
suggestions: Y,
|
|
50
|
-
onSuggestionClick: Z,
|
|
51
|
-
showRefresh: ee = !0,
|
|
52
|
-
onRefresh: oe,
|
|
53
|
-
onRegenerate: te,
|
|
54
|
-
onFeedback: ne,
|
|
55
|
-
inputDisabled: re = !1,
|
|
56
|
-
// Open state
|
|
57
|
-
open: d,
|
|
58
|
-
defaultOpen: ie = !1,
|
|
59
|
-
onOpenChange: p,
|
|
60
|
-
closeOnClickOutside: m = !1,
|
|
61
|
-
className: le,
|
|
62
|
-
style: se
|
|
63
|
-
}) => {
|
|
64
|
-
const [ae, fe] = he(ie), u = Ce(null), i = d !== void 0, e = i ? d : ae, t = C(
|
|
65
|
-
(o) => {
|
|
66
|
-
i || fe(o), p?.(o);
|
|
67
|
-
},
|
|
68
|
-
[i, p]
|
|
69
|
-
), { position: g, isDragging: ce, viewport: de, dragHandlers: pe, shouldIgnoreClick: h } = $e({
|
|
70
|
-
size: r,
|
|
71
|
-
corner: R,
|
|
72
|
-
offset: x,
|
|
73
|
-
enabled: f,
|
|
74
|
-
snapToEdge: A,
|
|
75
|
-
initialPosition: j,
|
|
76
|
-
onPositionChange: F
|
|
77
|
-
}), me = C(() => {
|
|
78
|
-
h() || t(!e);
|
|
79
|
-
}, [e, t, h]);
|
|
80
|
-
v(() => {
|
|
81
|
-
if (!e)
|
|
82
|
-
return;
|
|
83
|
-
const o = (l) => {
|
|
84
|
-
l.key === "Escape" && t(!1);
|
|
85
|
-
};
|
|
86
|
-
return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
|
|
87
|
-
}, [e, t]), v(() => {
|
|
88
|
-
if (!e || !m)
|
|
89
|
-
return;
|
|
90
|
-
const o = (l) => {
|
|
91
|
-
const s = l.target;
|
|
92
|
-
s && (u.current?.contains(s) || s.closest(`[${Pe}]`) || t(!1));
|
|
93
|
-
};
|
|
94
|
-
return document.addEventListener("pointerdown", o), () => document.removeEventListener("pointerdown", o);
|
|
95
|
-
}, [m, e, t]);
|
|
96
|
-
const n = ke({
|
|
97
|
-
ballPosition: g,
|
|
98
|
-
ballSize: r,
|
|
99
|
-
panelWidth: K,
|
|
100
|
-
panelHeight: S,
|
|
101
|
-
gap: q,
|
|
102
|
-
viewport: de
|
|
103
|
-
});
|
|
104
|
-
return /* @__PURE__ */ ue(ge, { children: [
|
|
105
|
-
e && /* @__PURE__ */ a(
|
|
106
|
-
we,
|
|
107
|
-
{
|
|
108
|
-
ref: u,
|
|
109
|
-
$left: n.left,
|
|
110
|
-
$top: n.top,
|
|
111
|
-
$width: n.width,
|
|
112
|
-
$height: n.height,
|
|
113
|
-
$zIndex: c,
|
|
114
|
-
children: /* @__PURE__ */ a(
|
|
115
|
-
Ee,
|
|
116
|
-
{
|
|
117
|
-
messages: w,
|
|
118
|
-
onSend: L,
|
|
119
|
-
onClose: () => t(!1),
|
|
120
|
-
title: G,
|
|
121
|
-
badge: J,
|
|
122
|
-
subtitle: M,
|
|
123
|
-
avatar: N,
|
|
124
|
-
placeholder: Q,
|
|
125
|
-
disclaimer: V,
|
|
126
|
-
emptyStateTitle: W,
|
|
127
|
-
emptyStateSubtitle: X,
|
|
128
|
-
suggestions: Y,
|
|
129
|
-
onSuggestionClick: Z,
|
|
130
|
-
showRefresh: ee,
|
|
131
|
-
onRefresh: oe,
|
|
132
|
-
onRegenerate: te,
|
|
133
|
-
onFeedback: ne,
|
|
134
|
-
isThinking: P,
|
|
135
|
-
thinkingLabel: E,
|
|
136
|
-
isStreaming: k,
|
|
137
|
-
onStop: $,
|
|
138
|
-
interruptedLabel: b,
|
|
139
|
-
followUpsLabel: I,
|
|
140
|
-
hasMoreHistory: O,
|
|
141
|
-
isLoadingHistory: T,
|
|
142
|
-
onLoadOlderMessages: y,
|
|
143
|
-
historyLoadingLabel: B,
|
|
144
|
-
inputDisabled: re,
|
|
145
|
-
errorMessage: D,
|
|
146
|
-
className: le,
|
|
147
|
-
style: se
|
|
148
|
-
}
|
|
149
|
-
)
|
|
150
|
-
}
|
|
151
|
-
),
|
|
152
|
-
/* @__PURE__ */ a(
|
|
153
|
-
Le,
|
|
154
|
-
{
|
|
155
|
-
isOpen: e,
|
|
156
|
-
onToggle: me,
|
|
157
|
-
position: g,
|
|
158
|
-
size: r,
|
|
159
|
-
isDragging: ce,
|
|
160
|
-
draggable: f,
|
|
161
|
-
color: z,
|
|
162
|
-
zIndex: c + 1,
|
|
163
|
-
icon: U,
|
|
164
|
-
openIcon: _,
|
|
165
|
-
ariaLabel: H,
|
|
166
|
-
...pe
|
|
167
|
-
}
|
|
168
|
-
)
|
|
169
|
-
] });
|
|
170
|
-
};
|
|
171
|
-
export {
|
|
172
|
-
xe as ControlledCopilot
|
|
173
|
-
};
|
|
174
|
-
//# sourceMappingURL=ControlledCopilot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledCopilot.js","sources":["../../../../src/components/bik-copilot/ControlledCopilot.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { COLORS } from '@src/constants/Theme';\nimport { PanelPositioner } from './ControlledCopilot.styled';\nimport { COPILOT_BALL_ATTRIBUTE, CopilotBall } from './CopilotBall';\nimport { CopilotPanel } from './CopilotPanel';\nimport { getCopilotPanelPlacement } from './copilotPlacement';\nimport { ControlledCopilotProps } from './model';\nimport { useDraggableFloater } from './useDraggableFloater';\n\n/**\n * The presentational half of the copilot: a draggable floating ball that opens a\n * chat panel beside it.\n *\n * Fully controlled — it renders the `messages` it is handed and reports every\n * user action through callbacks, so it carries no backend knowledge. **Use\n * `BIKCopilot` instead** unless you are wiring a backend other than\n * `/bik-ai/copilot-bikchatbot`; `BIKCopilot` is this component plus the streaming\n * transport, IndexedDB history and route-aware ice breakers.\n */\nexport const ControlledCopilot: React.FC<ControlledCopilotProps> = ({\n\t// Conversation\n\tmessages,\n\tonSendMessage,\n\tisThinking = false,\n\tthinkingLabel,\n\tisStreaming = false,\n\tonStop,\n\tinterruptedLabel,\n\tfollowUpsLabel,\n\thasMoreHistory = false,\n\tisLoadingHistory = false,\n\tonLoadOlderMessages,\n\thistoryLoadingLabel,\n\terrorMessage,\n\t// Ball\n\tballSize = 56,\n\tcorner = 'bottom-right',\n\toffset = 24,\n\tinitialPosition,\n\tdraggable = true,\n\tsnapToEdge = true,\n\tonPositionChange,\n\tballIcon,\n\tballOpenIcon,\n\tballColor = COLORS.background.brand,\n\tzIndex = 1200,\n\tballAriaLabel,\n\t// Panel\n\tpanelWidth = 400,\n\tpanelHeight = 700,\n\tpanelGap = 12,\n\ttitle = 'Copilot',\n\tbadge,\n\tsubtitle,\n\tavatar,\n\tplaceholder,\n\tdisclaimer,\n\temptyStateTitle,\n\temptyStateSubtitle,\n\tsuggestions,\n\tonSuggestionClick,\n\tshowRefresh = true,\n\tonRefresh,\n\tonRegenerate,\n\tonFeedback,\n\tinputDisabled = false,\n\t// Open state\n\topen,\n\tdefaultOpen = false,\n\tonOpenChange,\n\tcloseOnClickOutside = false,\n\tclassName,\n\tstyle,\n}) => {\n\tconst [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n\tconst panelRef = useRef<HTMLDivElement>(null);\n\n\tconst isControlled = open !== undefined;\n\tconst isOpen = isControlled ? open : uncontrolledOpen;\n\n\tconst setOpen = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetUncontrolledOpen(next);\n\t\t\t}\n\t\t\tonOpenChange?.(next);\n\t\t},\n\t\t[isControlled, onOpenChange],\n\t);\n\n\tconst { position, isDragging, viewport, dragHandlers, shouldIgnoreClick } =\n\t\tuseDraggableFloater({\n\t\t\tsize: ballSize,\n\t\t\tcorner,\n\t\t\toffset,\n\t\t\tenabled: draggable,\n\t\t\tsnapToEdge,\n\t\t\tinitialPosition,\n\t\t\tonPositionChange,\n\t\t});\n\n\tconst handleBallClick = useCallback(() => {\n\t\t// The click that ends a drag gesture must not toggle the panel.\n\t\tif (shouldIgnoreClick()) {\n\t\t\treturn;\n\t\t}\n\t\tsetOpen(!isOpen);\n\t}, [isOpen, setOpen, shouldIgnoreClick]);\n\n\t// Escape closes the panel.\n\tuseEffect(() => {\n\t\tif (!isOpen) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('keydown', handleKeyDown);\n\t\treturn () => document.removeEventListener('keydown', handleKeyDown);\n\t}, [isOpen, setOpen]);\n\n\tuseEffect(() => {\n\t\tif (!isOpen || !closeOnClickOutside) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst handlePointerDown = (event: PointerEvent) => {\n\t\t\tconst target = event.target as HTMLElement | null;\n\t\t\tif (!target) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (panelRef.current?.contains(target)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (target.closest(`[${COPILOT_BALL_ATTRIBUTE}]`)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetOpen(false);\n\t\t};\n\t\tdocument.addEventListener('pointerdown', handlePointerDown);\n\t\treturn () => document.removeEventListener('pointerdown', handlePointerDown);\n\t}, [closeOnClickOutside, isOpen, setOpen]);\n\n\tconst placement = getCopilotPanelPlacement({\n\t\tballPosition: position,\n\t\tballSize,\n\t\tpanelWidth,\n\t\tpanelHeight,\n\t\tgap: panelGap,\n\t\tviewport,\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{isOpen && (\n\t\t\t\t<PanelPositioner\n\t\t\t\t\tref={panelRef}\n\t\t\t\t\t$left={placement.left}\n\t\t\t\t\t$top={placement.top}\n\t\t\t\t\t$width={placement.width}\n\t\t\t\t\t$height={placement.height}\n\t\t\t\t\t$zIndex={zIndex}\n\t\t\t\t>\n\t\t\t\t\t<CopilotPanel\n\t\t\t\t\t\tmessages={messages}\n\t\t\t\t\t\tonSend={onSendMessage}\n\t\t\t\t\t\tonClose={() => setOpen(false)}\n\t\t\t\t\t\ttitle={title}\n\t\t\t\t\t\tbadge={badge}\n\t\t\t\t\t\tsubtitle={subtitle}\n\t\t\t\t\t\tavatar={avatar}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\tdisclaimer={disclaimer}\n\t\t\t\t\t\temptyStateTitle={emptyStateTitle}\n\t\t\t\t\t\temptyStateSubtitle={emptyStateSubtitle}\n\t\t\t\t\t\tsuggestions={suggestions}\n\t\t\t\t\t\tonSuggestionClick={onSuggestionClick}\n\t\t\t\t\t\tshowRefresh={showRefresh}\n\t\t\t\t\t\tonRefresh={onRefresh}\n\t\t\t\t\t\tonRegenerate={onRegenerate}\n\t\t\t\t\t\tonFeedback={onFeedback}\n\t\t\t\t\t\tisThinking={isThinking}\n\t\t\t\t\t\tthinkingLabel={thinkingLabel}\n\t\t\t\t\t\tisStreaming={isStreaming}\n\t\t\t\t\t\tonStop={onStop}\n\t\t\t\t\t\tinterruptedLabel={interruptedLabel}\n\t\t\t\t\t\tfollowUpsLabel={followUpsLabel}\n\t\t\t\t\t\thasMoreHistory={hasMoreHistory}\n\t\t\t\t\t\tisLoadingHistory={isLoadingHistory}\n\t\t\t\t\t\tonLoadOlderMessages={onLoadOlderMessages}\n\t\t\t\t\t\thistoryLoadingLabel={historyLoadingLabel}\n\t\t\t\t\t\tinputDisabled={inputDisabled}\n\t\t\t\t\t\terrorMessage={errorMessage}\n\t\t\t\t\t\tclassName={className}\n\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t/>\n\t\t\t\t</PanelPositioner>\n\t\t\t)}\n\n\t\t\t<CopilotBall\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tonToggle={handleBallClick}\n\t\t\t\tposition={position}\n\t\t\t\tsize={ballSize}\n\t\t\t\tisDragging={isDragging}\n\t\t\t\tdraggable={draggable}\n\t\t\t\tcolor={ballColor}\n\t\t\t\tzIndex={zIndex + 1}\n\t\t\t\ticon={ballIcon}\n\t\t\t\topenIcon={ballOpenIcon}\n\t\t\t\tariaLabel={ballAriaLabel}\n\t\t\t\t{...dragHandlers}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default ControlledCopilot;\n"],"names":["ControlledCopilot","messages","onSendMessage","isThinking","thinkingLabel","isStreaming","onStop","interruptedLabel","followUpsLabel","hasMoreHistory","isLoadingHistory","onLoadOlderMessages","historyLoadingLabel","errorMessage","ballSize","corner","offset","initialPosition","draggable","snapToEdge","onPositionChange","ballIcon","ballOpenIcon","ballColor","COLORS","zIndex","ballAriaLabel","panelWidth","panelHeight","panelGap","title","badge","subtitle","avatar","placeholder","disclaimer","emptyStateTitle","emptyStateSubtitle","suggestions","onSuggestionClick","showRefresh","onRefresh","onRegenerate","onFeedback","inputDisabled","open","defaultOpen","onOpenChange","closeOnClickOutside","className","style","uncontrolledOpen","setUncontrolledOpen","useState","panelRef","useRef","isControlled","isOpen","setOpen","useCallback","next","position","isDragging","viewport","dragHandlers","shouldIgnoreClick","useDraggableFloater","handleBallClick","useEffect","handleKeyDown","event","handlePointerDown","target","COPILOT_BALL_ATTRIBUTE","placement","getCopilotPanelPlacement","jsxs","Fragment","jsx","PanelPositioner","CopilotPanel","CopilotBall"],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import e from "styled-components";
|
|
2
|
-
const o = e.div`
|
|
3
|
-
position: fixed;
|
|
4
|
-
left: ${(t) => t.$left}px;
|
|
5
|
-
top: ${(t) => t.$top}px;
|
|
6
|
-
width: ${(t) => t.$width}px;
|
|
7
|
-
height: ${(t) => t.$height}px;
|
|
8
|
-
z-index: ${(t) => t.$zIndex};
|
|
9
|
-
display: flex;
|
|
10
|
-
animation: bikCopilotPanelIn 0.16s ease-out;
|
|
11
|
-
|
|
12
|
-
> * {
|
|
13
|
-
flex: 1;
|
|
14
|
-
min-width: 0;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@keyframes bikCopilotPanelIn {
|
|
18
|
-
from {
|
|
19
|
-
opacity: 0;
|
|
20
|
-
transform: translateY(6px) scale(0.98);
|
|
21
|
-
}
|
|
22
|
-
to {
|
|
23
|
-
opacity: 1;
|
|
24
|
-
transform: translateY(0) scale(1);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
28
|
-
export {
|
|
29
|
-
o as PanelPositioner
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=ControlledCopilot.styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledCopilot.styled.js","sources":["../../../../src/components/bik-copilot/ControlledCopilot.styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const PanelPositioner = styled.div<{\n\t$left: number;\n\t$top: number;\n\t$width: number;\n\t$height: number;\n\t$zIndex: number;\n}>`\n\tposition: fixed;\n\tleft: ${(props) => props.$left}px;\n\ttop: ${(props) => props.$top}px;\n\twidth: ${(props) => props.$width}px;\n\theight: ${(props) => props.$height}px;\n\tz-index: ${(props) => props.$zIndex};\n\tdisplay: flex;\n\tanimation: bikCopilotPanelIn 0.16s ease-out;\n\n\t> * {\n\t\tflex: 1;\n\t\tmin-width: 0;\n\t}\n\n\t@keyframes bikCopilotPanelIn {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(6px) scale(0.98);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0) scale(1);\n\t\t}\n\t}\n`;\n"],"names":["PanelPositioner","styled","props"],"mappings":";AAEO,MAAMA,IAAkBC,EAAO;AAAA;AAAA,SAQ7B,CAACC,MAAUA,EAAM,KAAK;AAAA,QACvB,CAACA,MAAUA,EAAM,IAAI;AAAA,UACnB,CAACA,MAAUA,EAAM,MAAM;AAAA,WACtB,CAACA,MAAUA,EAAM,OAAO;AAAA,YACvB,CAACA,MAAUA,EAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { CopilotBallProps } from './model';
|
|
3
|
-
/**
|
|
4
|
-
* Marks the ball in the DOM so an outside-click handler can tell the ball apart
|
|
5
|
-
* from the rest of the page and not fight the ball's own toggle.
|
|
6
|
-
*/
|
|
7
|
-
export declare const COPILOT_BALL_ATTRIBUTE = "data-bik-copilot-ball";
|
|
8
|
-
/**
|
|
9
|
-
* The floating ball that opens the copilot panel. Purely presentational — the
|
|
10
|
-
* drag gesture lives in `useDraggableFloater` and is passed in as handlers.
|
|
11
|
-
*/
|
|
12
|
-
export declare const CopilotBall: React.FC<CopilotBallProps>;
|
|
13
|
-
export default CopilotBall;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import b from "../../assets/icons/bik_ai_stars_icon.svg.js";
|
|
3
|
-
import s from "../../assets/icons/chevronDown.svg.js";
|
|
4
|
-
import { BallButton as x } from "./CopilotBall.styled.js";
|
|
5
|
-
const C = "data-bik-copilot-ball", w = ({
|
|
6
|
-
isOpen: t,
|
|
7
|
-
onToggle: n,
|
|
8
|
-
position: i,
|
|
9
|
-
size: a,
|
|
10
|
-
isDragging: e,
|
|
11
|
-
draggable: c,
|
|
12
|
-
color: d,
|
|
13
|
-
zIndex: g,
|
|
14
|
-
icon: h,
|
|
15
|
-
openIcon: m,
|
|
16
|
-
ariaLabel: p,
|
|
17
|
-
onPointerDown: $,
|
|
18
|
-
onPointerMove: f,
|
|
19
|
-
onPointerUp: u,
|
|
20
|
-
onPointerCancel: B
|
|
21
|
-
}) => {
|
|
22
|
-
const o = Math.round(a * 0.42), l = t ? /* @__PURE__ */ r(s, { width: o, height: o }) : /* @__PURE__ */ r(b, { width: o, height: o }), I = t ? m ?? l : h ?? l;
|
|
23
|
-
return /* @__PURE__ */ r(
|
|
24
|
-
x,
|
|
25
|
-
{
|
|
26
|
-
type: "button",
|
|
27
|
-
[C]: "true",
|
|
28
|
-
$size: a,
|
|
29
|
-
$left: i.x,
|
|
30
|
-
$top: i.y,
|
|
31
|
-
$color: d,
|
|
32
|
-
$zIndex: g,
|
|
33
|
-
$isDragging: e,
|
|
34
|
-
$draggable: c,
|
|
35
|
-
"aria-label": p || "Copilot",
|
|
36
|
-
"aria-expanded": t,
|
|
37
|
-
onClick: n,
|
|
38
|
-
onPointerDown: $,
|
|
39
|
-
onPointerMove: f,
|
|
40
|
-
onPointerUp: u,
|
|
41
|
-
onPointerCancel: B,
|
|
42
|
-
children: I
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
};
|
|
46
|
-
export {
|
|
47
|
-
C as COPILOT_BALL_ATTRIBUTE,
|
|
48
|
-
w as CopilotBall
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=CopilotBall.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CopilotBall.js","sources":["../../../../src/components/bik-copilot/CopilotBall.tsx"],"sourcesContent":["import AiStarsIcon from '@src/assets/icons/bik_ai_stars_icon.svg';\nimport ChevronDownIcon from '@src/assets/icons/chevronDown.svg';\nimport React from 'react';\nimport { BallButton } from './CopilotBall.styled';\nimport { CopilotBallProps } from './model';\n\n/**\n * Marks the ball in the DOM so an outside-click handler can tell the ball apart\n * from the rest of the page and not fight the ball's own toggle.\n */\nexport const COPILOT_BALL_ATTRIBUTE = 'data-bik-copilot-ball';\n\n/**\n * The floating ball that opens the copilot panel. Purely presentational — the\n * drag gesture lives in `useDraggableFloater` and is passed in as handlers.\n */\nexport const CopilotBall: React.FC<CopilotBallProps> = ({\n\tisOpen,\n\tonToggle,\n\tposition,\n\tsize,\n\tisDragging,\n\tdraggable,\n\tcolor,\n\tzIndex,\n\ticon,\n\topenIcon,\n\tariaLabel,\n\tonPointerDown,\n\tonPointerMove,\n\tonPointerUp,\n\tonPointerCancel,\n}) => {\n\tconst iconSize = Math.round(size * 0.42);\n\tconst defaultIcon = isOpen ? (\n\t\t<ChevronDownIcon width={iconSize} height={iconSize} />\n\t) : (\n\t\t<AiStarsIcon width={iconSize} height={iconSize} />\n\t);\n\tconst activeIcon = isOpen ? openIcon ?? defaultIcon : icon ?? defaultIcon;\n\n\treturn (\n\t\t<BallButton\n\t\t\ttype=\"button\"\n\t\t\t{...{ [COPILOT_BALL_ATTRIBUTE]: 'true' }}\n\t\t\t$size={size}\n\t\t\t$left={position.x}\n\t\t\t$top={position.y}\n\t\t\t$color={color}\n\t\t\t$zIndex={zIndex}\n\t\t\t$isDragging={isDragging}\n\t\t\t$draggable={draggable}\n\t\t\t/* A disclosure button keeps a stable name and reports its state through\n\t\t\t aria-expanded, so this must not become \"Open/Close copilot\" — that\n\t\t\t would also collide with the panel's own close button. */\n\t\t\taria-label={ariaLabel || 'Copilot'}\n\t\t\taria-expanded={isOpen}\n\t\t\tonClick={onToggle}\n\t\t\tonPointerDown={onPointerDown}\n\t\t\tonPointerMove={onPointerMove}\n\t\t\tonPointerUp={onPointerUp}\n\t\t\tonPointerCancel={onPointerCancel}\n\t\t>\n\t\t\t{activeIcon}\n\t\t</BallButton>\n\t);\n};\n\nexport default CopilotBall;\n"],"names":["COPILOT_BALL_ATTRIBUTE","CopilotBall","isOpen","onToggle","position","size","isDragging","draggable","color","zIndex","icon","openIcon","ariaLabel","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","iconSize","defaultIcon","jsx","ChevronDownIcon","AiStarsIcon","activeIcon","BallButton"],"mappings":";;;;AAUO,MAAMA,IAAyB,yBAMzBC,IAA0C,CAAC;AAAA,EACvD,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,iBAAAC;AACD,MAAM;AACL,QAAMC,IAAW,KAAK,MAAMZ,IAAO,IAAI,GACjCa,IAAchB,IACnB,gBAAAiB,EAACC,GAAA,EAAgB,OAAOH,GAAU,QAAQA,EAAA,CAAU,IAEpD,gBAAAE,EAACE,GAAA,EAAY,OAAOJ,GAAU,QAAQA,GAAU,GAE3CK,IAAapB,IAASS,KAAYO,IAAcR,KAAQQ;AAE9D,SACC,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACA,MAAK;AAAA,MACC,CAACvB,CAAsB,GAAG;AAAA,MAChC,OAAOK;AAAA,MACP,OAAOD,EAAS;AAAA,MAChB,MAAMA,EAAS;AAAA,MACf,QAAQI;AAAA,MACR,SAASC;AAAA,MACT,aAAaH;AAAA,MACb,YAAYC;AAAA,MAIZ,cAAYK,KAAa;AAAA,MACzB,iBAAeV;AAAA,MACf,SAASC;AAAA,MACT,eAAAU;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,iBAAAC;AAAA,MAEC,UAAAM;AAAA,IAAA;AAAA,EAAA;AAGJ;"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import s from "styled-components";
|
|
2
|
-
const t = s.button`
|
|
3
|
-
position: fixed;
|
|
4
|
-
left: ${(e) => e.$left}px;
|
|
5
|
-
top: ${(e) => e.$top}px;
|
|
6
|
-
width: ${(e) => e.$size}px;
|
|
7
|
-
height: ${(e) => e.$size}px;
|
|
8
|
-
z-index: ${(e) => e.$zIndex};
|
|
9
|
-
|
|
10
|
-
display: flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
justify-content: center;
|
|
13
|
-
padding: 0;
|
|
14
|
-
border: none;
|
|
15
|
-
border-radius: 50%;
|
|
16
|
-
background: ${(e) => e.$color};
|
|
17
|
-
color: #ffffff;
|
|
18
|
-
box-shadow: ${(e) => e.$isDragging ? "0 12px 32px rgba(40, 3, 78, 0.36)" : "0 6px 20px rgba(40, 3, 78, 0.24)"};
|
|
19
|
-
|
|
20
|
-
cursor: ${(e) => e.$isDragging ? "grabbing" : e.$draggable ? "grab" : "pointer"};
|
|
21
|
-
touch-action: none;
|
|
22
|
-
user-select: none;
|
|
23
|
-
-webkit-user-select: none;
|
|
24
|
-
|
|
25
|
-
/* Position changes animate on release but must track the pointer 1:1 while
|
|
26
|
-
the user is dragging. */
|
|
27
|
-
transition: ${(e) => e.$isDragging ? "box-shadow 0.15s ease, transform 0.15s ease" : "left 0.22s ease, top 0.22s ease, box-shadow 0.15s ease, transform 0.15s ease"};
|
|
28
|
-
transform: ${(e) => e.$isDragging ? "scale(1.06)" : "scale(1)"};
|
|
29
|
-
|
|
30
|
-
&:hover {
|
|
31
|
-
transform: scale(1.06);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
&:focus-visible {
|
|
35
|
-
outline: 2px solid #ffffff;
|
|
36
|
-
outline-offset: 2px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
svg {
|
|
40
|
-
pointer-events: none;
|
|
41
|
-
}
|
|
42
|
-
`;
|
|
43
|
-
export {
|
|
44
|
-
t as BallButton
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=CopilotBall.styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CopilotBall.styled.js","sources":["../../../../src/components/bik-copilot/CopilotBall.styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const BallButton = styled.button<{\n\t$size: number;\n\t$left: number;\n\t$top: number;\n\t$color: string;\n\t$zIndex: number;\n\t$isDragging: boolean;\n\t$draggable: boolean;\n}>`\n\tposition: fixed;\n\tleft: ${(props) => props.$left}px;\n\ttop: ${(props) => props.$top}px;\n\twidth: ${(props) => props.$size}px;\n\theight: ${(props) => props.$size}px;\n\tz-index: ${(props) => props.$zIndex};\n\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 50%;\n\tbackground: ${(props) => props.$color};\n\tcolor: #ffffff;\n\tbox-shadow: ${(props) =>\n\t\tprops.$isDragging\n\t\t\t? '0 12px 32px rgba(40, 3, 78, 0.36)'\n\t\t\t: '0 6px 20px rgba(40, 3, 78, 0.24)'};\n\n\tcursor: ${(props) =>\n\t\tprops.$isDragging ? 'grabbing' : props.$draggable ? 'grab' : 'pointer'};\n\ttouch-action: none;\n\tuser-select: none;\n\t-webkit-user-select: none;\n\n\t/* Position changes animate on release but must track the pointer 1:1 while\n\t the user is dragging. */\n\ttransition: ${(props) =>\n\t\tprops.$isDragging\n\t\t\t? 'box-shadow 0.15s ease, transform 0.15s ease'\n\t\t\t: 'left 0.22s ease, top 0.22s ease, box-shadow 0.15s ease, transform 0.15s ease'};\n\ttransform: ${(props) => (props.$isDragging ? 'scale(1.06)' : 'scale(1)')};\n\n\t&:hover {\n\t\ttransform: scale(1.06);\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid #ffffff;\n\t\toutline-offset: 2px;\n\t}\n\n\tsvg {\n\t\tpointer-events: none;\n\t}\n`;\n"],"names":["BallButton","styled","props"],"mappings":";AAEO,MAAMA,IAAaC,EAAO;AAAA;AAAA,SAUxB,CAACC,MAAUA,EAAM,KAAK;AAAA,QACvB,CAACA,MAAUA,EAAM,IAAI;AAAA,UACnB,CAACA,MAAUA,EAAM,KAAK;AAAA,WACrB,CAACA,MAAUA,EAAM,KAAK;AAAA,YACrB,CAACA,MAAUA,EAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAQrB,CAACA,MAAUA,EAAM,MAAM;AAAA;AAAA,eAEvB,CAACA,MACdA,EAAM,cACH,sCACA,kCAAkC;AAAA;AAAA,WAE5B,CAACA,MACVA,EAAM,cAAc,aAAaA,EAAM,aAAa,SAAS,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOzD,CAACA,MACdA,EAAM,cACH,gDACA,8EAA8E;AAAA,cACrE,CAACA,MAAWA,EAAM,cAAc,gBAAgB,UAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { CopilotFeedbackDetail, CopilotFeedbackReasonOption } from './model';
|
|
3
|
-
/** The chips the modal offers, in the order they are shown. */
|
|
4
|
-
export declare const COPILOT_FEEDBACK_REASONS: CopilotFeedbackReasonOption[];
|
|
5
|
-
export interface CopilotFeedbackModalProps {
|
|
6
|
-
title?: string;
|
|
7
|
-
subtitle?: string;
|
|
8
|
-
reasons?: CopilotFeedbackReasonOption[];
|
|
9
|
-
notePlaceholder?: string;
|
|
10
|
-
submitLabel?: string;
|
|
11
|
-
/**
|
|
12
|
-
* The detail the reader chose to share. Called once, on submit.
|
|
13
|
-
*/
|
|
14
|
-
onSubmit: (detail: CopilotFeedbackDetail) => void;
|
|
15
|
-
/**
|
|
16
|
-
* Dismissed without sharing. The rating itself is the host's business — see
|
|
17
|
-
* `CopilotPanel`, which records the thumbs-down either way.
|
|
18
|
-
*/
|
|
19
|
-
onDismiss: () => void;
|
|
20
|
-
className?: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Asks what was wrong with a reply that was just rated down.
|
|
24
|
-
*
|
|
25
|
-
* Chips plus an optional note, and nothing is required: a reader who only wants
|
|
26
|
-
* to press the thumb can dismiss this and the rating still stands. Every string
|
|
27
|
-
* is overridable so a host can reword or localise it.
|
|
28
|
-
*/
|
|
29
|
-
export declare const CopilotFeedbackModal: React.FC<CopilotFeedbackModalProps>;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { jsxs as n, jsx as l } from "react/jsx-runtime";
|
|
2
|
-
import { useState as r } from "react";
|
|
3
|
-
import { ModalCard as M, ModalHeader as N, ModalHeading as S, ModalTitle as k, ModalSubtitle as v, ModalClose as E, ReasonList as O, ReasonChip as _, NoteInput as R, SubmitButton as f } from "./CopilotFeedbackModal.styled.js";
|
|
4
|
-
const L = [
|
|
5
|
-
{ value: "TOO_SLOW", label: "Too slow" },
|
|
6
|
-
{ value: "DIDNT_REMEMBER", label: "Didn't remember something" },
|
|
7
|
-
{ value: "WRONG_RESULT", label: "Wrong result" },
|
|
8
|
-
{ value: "COULDNT_FIND_DATA", label: "Couldn't find data" },
|
|
9
|
-
{ value: "DIDNT_UNDERSTAND_CONTEXT", label: "Didn't understand context" }
|
|
10
|
-
], A = () => /* @__PURE__ */ l("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ l(
|
|
11
|
-
"path",
|
|
12
|
-
{
|
|
13
|
-
d: "M9 3L3 9M3 3l6 6",
|
|
14
|
-
stroke: "currentColor",
|
|
15
|
-
strokeWidth: "1.3",
|
|
16
|
-
strokeLinecap: "round"
|
|
17
|
-
}
|
|
18
|
-
) }), W = ({
|
|
19
|
-
title: a = "What went wrong?",
|
|
20
|
-
subtitle: d,
|
|
21
|
-
reasons: c = L,
|
|
22
|
-
notePlaceholder: s = "Add a quick note...",
|
|
23
|
-
submitLabel: u = "Share feedback",
|
|
24
|
-
onSubmit: h,
|
|
25
|
-
onDismiss: b,
|
|
26
|
-
className: C
|
|
27
|
-
}) => {
|
|
28
|
-
const [t, m] = r([]), [i, p] = r(""), D = (e) => {
|
|
29
|
-
m(
|
|
30
|
-
(o) => o.includes(e) ? o.filter((g) => g !== e) : [...o, e]
|
|
31
|
-
);
|
|
32
|
-
}, T = () => {
|
|
33
|
-
const e = i.trim();
|
|
34
|
-
h({
|
|
35
|
-
reasons: t,
|
|
36
|
-
...e ? { comment: e } : {}
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
return /* @__PURE__ */ n(M, { className: C, role: "dialog", "aria-label": a, children: [
|
|
40
|
-
/* @__PURE__ */ n(N, { children: [
|
|
41
|
-
/* @__PURE__ */ n(S, { children: [
|
|
42
|
-
/* @__PURE__ */ l(k, { children: a }),
|
|
43
|
-
d ? /* @__PURE__ */ l(v, { children: d }) : null
|
|
44
|
-
] }),
|
|
45
|
-
/* @__PURE__ */ l(E, { type: "button", onClick: b, "aria-label": "Close", children: /* @__PURE__ */ l(A, {}) })
|
|
46
|
-
] }),
|
|
47
|
-
/* @__PURE__ */ l(O, { children: c.map((e) => /* @__PURE__ */ l(
|
|
48
|
-
_,
|
|
49
|
-
{
|
|
50
|
-
type: "button",
|
|
51
|
-
$selected: t.includes(e.value),
|
|
52
|
-
"aria-pressed": t.includes(e.value),
|
|
53
|
-
onClick: () => D(e.value),
|
|
54
|
-
children: e.label
|
|
55
|
-
},
|
|
56
|
-
e.value
|
|
57
|
-
)) }),
|
|
58
|
-
/* @__PURE__ */ l(
|
|
59
|
-
R,
|
|
60
|
-
{
|
|
61
|
-
value: i,
|
|
62
|
-
placeholder: s,
|
|
63
|
-
onChange: (e) => p(e.target.value)
|
|
64
|
-
}
|
|
65
|
-
),
|
|
66
|
-
/* @__PURE__ */ l(f, { type: "button", onClick: T, children: u })
|
|
67
|
-
] });
|
|
68
|
-
};
|
|
69
|
-
export {
|
|
70
|
-
L as COPILOT_FEEDBACK_REASONS,
|
|
71
|
-
W as CopilotFeedbackModal
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=CopilotFeedbackModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CopilotFeedbackModal.js","sources":["../../../../src/components/bik-copilot/CopilotFeedbackModal.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n\tModalCard,\n\tModalClose,\n\tModalHeader,\n\tModalHeading,\n\tModalSubtitle,\n\tModalTitle,\n\tNoteInput,\n\tReasonChip,\n\tReasonList,\n\tSubmitButton,\n} from './CopilotFeedbackModal.styled';\nimport { CopilotFeedbackDetail, CopilotFeedbackReasonOption } from './model';\n\n/** The chips the modal offers, in the order they are shown. */\nexport const COPILOT_FEEDBACK_REASONS: CopilotFeedbackReasonOption[] = [\n\t{ value: 'TOO_SLOW', label: 'Too slow' },\n\t{ value: 'DIDNT_REMEMBER', label: \"Didn't remember something\" },\n\t{ value: 'WRONG_RESULT', label: 'Wrong result' },\n\t{ value: 'COULDNT_FIND_DATA', label: \"Couldn't find data\" },\n\t{ value: 'DIDNT_UNDERSTAND_CONTEXT', label: \"Didn't understand context\" },\n];\n\nconst CloseIcon = () => (\n\t<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n\t\t<path\n\t\t\td=\"M9 3L3 9M3 3l6 6\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"1.3\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t/>\n\t</svg>\n);\n\nexport interface CopilotFeedbackModalProps {\n\ttitle?: string;\n\tsubtitle?: string;\n\treasons?: CopilotFeedbackReasonOption[];\n\tnotePlaceholder?: string;\n\tsubmitLabel?: string;\n\t/**\n\t * The detail the reader chose to share. Called once, on submit.\n\t */\n\tonSubmit: (detail: CopilotFeedbackDetail) => void;\n\t/**\n\t * Dismissed without sharing. The rating itself is the host's business — see\n\t * `CopilotPanel`, which records the thumbs-down either way.\n\t */\n\tonDismiss: () => void;\n\tclassName?: string;\n}\n\n/**\n * Asks what was wrong with a reply that was just rated down.\n *\n * Chips plus an optional note, and nothing is required: a reader who only wants\n * to press the thumb can dismiss this and the rating still stands. Every string\n * is overridable so a host can reword or localise it.\n */\nexport const CopilotFeedbackModal: React.FC<CopilotFeedbackModalProps> = ({\n\ttitle = 'What went wrong?',\n\tsubtitle,\n\treasons = COPILOT_FEEDBACK_REASONS,\n\tnotePlaceholder = 'Add a quick note...',\n\tsubmitLabel = 'Share feedback',\n\tonSubmit,\n\tonDismiss,\n\tclassName,\n}) => {\n\tconst [selected, setSelected] = useState<string[]>([]);\n\tconst [note, setNote] = useState('');\n\n\tconst toggle = (value: string) => {\n\t\tsetSelected((previous) =>\n\t\t\tprevious.includes(value)\n\t\t\t\t? previous.filter((item) => item !== value)\n\t\t\t\t: [...previous, value],\n\t\t);\n\t};\n\n\tconst submit = () => {\n\t\tconst comment = note.trim();\n\t\tonSubmit({\n\t\t\treasons: selected,\n\t\t\t...(comment ? { comment } : {}),\n\t\t});\n\t};\n\n\treturn (\n\t\t<ModalCard className={className} role=\"dialog\" aria-label={title}>\n\t\t\t<ModalHeader>\n\t\t\t\t<ModalHeading>\n\t\t\t\t\t<ModalTitle>{title}</ModalTitle>\n\t\t\t\t\t{subtitle ? <ModalSubtitle>{subtitle}</ModalSubtitle> : null}\n\t\t\t\t</ModalHeading>\n\t\t\t\t<ModalClose type=\"button\" onClick={onDismiss} aria-label=\"Close\">\n\t\t\t\t\t<CloseIcon />\n\t\t\t\t</ModalClose>\n\t\t\t</ModalHeader>\n\n\t\t\t<ReasonList>\n\t\t\t\t{reasons.map((reason) => (\n\t\t\t\t\t<ReasonChip\n\t\t\t\t\t\tkey={reason.value}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t$selected={selected.includes(reason.value)}\n\t\t\t\t\t\taria-pressed={selected.includes(reason.value)}\n\t\t\t\t\t\tonClick={() => toggle(reason.value)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{reason.label}\n\t\t\t\t\t</ReasonChip>\n\t\t\t\t))}\n\t\t\t</ReasonList>\n\n\t\t\t<NoteInput\n\t\t\t\tvalue={note}\n\t\t\t\tplaceholder={notePlaceholder}\n\t\t\t\tonChange={(event) => setNote(event.target.value)}\n\t\t\t/>\n\n\t\t\t<SubmitButton type=\"button\" onClick={submit}>\n\t\t\t\t{submitLabel}\n\t\t\t</SubmitButton>\n\t\t</ModalCard>\n\t);\n};\n"],"names":["COPILOT_FEEDBACK_REASONS","CloseIcon","jsx","CopilotFeedbackModal","title","subtitle","reasons","notePlaceholder","submitLabel","onSubmit","onDismiss","className","selected","setSelected","useState","note","setNote","toggle","value","previous","item","submit","comment","ModalCard","jsxs","ModalHeader","ModalHeading","ModalTitle","ModalSubtitle","ModalClose","ReasonList","reason","ReasonChip","NoteInput","event","SubmitButton"],"mappings":";;;AAgBO,MAAMA,IAA0D;AAAA,EACtE,EAAE,OAAO,YAAY,OAAO,WAAA;AAAA,EAC5B,EAAE,OAAO,kBAAkB,OAAO,4BAAA;AAAA,EAClC,EAAE,OAAO,gBAAgB,OAAO,eAAA;AAAA,EAChC,EAAE,OAAO,qBAAqB,OAAO,qBAAA;AAAA,EACrC,EAAE,OAAO,4BAA4B,OAAO,4BAAA;AAC7C,GAEMC,IAAY,MACjB,gBAAAC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACpD,UAAA,gBAAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,GAAE;AAAA,IACF,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,EAAA;AACf,GACD,GA4BYC,IAA4D,CAAC;AAAA,EACzE,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,SAAAC,IAAUN;AAAA,EACV,iBAAAO,IAAkB;AAAA,EAClB,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACD,MAAM;AACL,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAmB,CAAA,CAAE,GAC/C,CAACC,GAAMC,CAAO,IAAIF,EAAS,EAAE,GAE7BG,IAAS,CAACC,MAAkB;AACjC,IAAAL;AAAA,MAAY,CAACM,MACZA,EAAS,SAASD,CAAK,IACpBC,EAAS,OAAO,CAACC,MAASA,MAASF,CAAK,IACxC,CAAC,GAAGC,GAAUD,CAAK;AAAA,IAAA;AAAA,EAExB,GAEMG,IAAS,MAAM;AACpB,UAAMC,IAAUP,EAAK,KAAA;AACrB,IAAAN,EAAS;AAAA,MACR,SAASG;AAAA,MACT,GAAIU,IAAU,EAAE,SAAAA,MAAY,CAAA;AAAA,IAAC,CAC7B;AAAA,EACF;AAEA,2BACEC,GAAA,EAAU,WAAAZ,GAAsB,MAAK,UAAS,cAAYP,GAC1D,UAAA;AAAA,IAAA,gBAAAoB,EAACC,GAAA,EACA,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EACA,UAAA;AAAA,QAAA,gBAAAxB,EAACyB,KAAY,UAAAvB,EAAA,CAAM;AAAA,QAClBC,IAAW,gBAAAH,EAAC0B,GAAA,EAAe,UAAAvB,EAAA,CAAS,IAAmB;AAAA,MAAA,GACzD;AAAA,MACA,gBAAAH,EAAC2B,GAAA,EAAW,MAAK,UAAS,SAASnB,GAAW,cAAW,SACxD,UAAA,gBAAAR,EAACD,GAAA,CAAA,CAAU,EAAA,CACZ;AAAA,IAAA,GACD;AAAA,IAEA,gBAAAC,EAAC4B,GAAA,EACC,UAAAxB,EAAQ,IAAI,CAACyB,MACb,gBAAA7B;AAAA,MAAC8B;AAAA,MAAA;AAAA,QAEA,MAAK;AAAA,QACL,WAAWpB,EAAS,SAASmB,EAAO,KAAK;AAAA,QACzC,gBAAcnB,EAAS,SAASmB,EAAO,KAAK;AAAA,QAC5C,SAAS,MAAMd,EAAOc,EAAO,KAAK;AAAA,QAEjC,UAAAA,EAAO;AAAA,MAAA;AAAA,MANHA,EAAO;AAAA,IAAA,CAQb,GACF;AAAA,IAEA,gBAAA7B;AAAA,MAAC+B;AAAA,MAAA;AAAA,QACA,OAAOlB;AAAA,QACP,aAAaR;AAAA,QACb,UAAU,CAAC2B,MAAUlB,EAAQkB,EAAM,OAAO,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,sBAG/CC,GAAA,EAAa,MAAK,UAAS,SAASd,GACnC,UAAAb,EAAA,CACF;AAAA,EAAA,GACD;AAEF;"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare const ModalCard: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
2
|
-
export declare const ModalHeader: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
3
|
-
export declare const ModalHeading: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
4
|
-
export declare const ModalTitle: import('styled-components').StyledComponent<"span", any, {}, never>;
|
|
5
|
-
export declare const ModalSubtitle: import('styled-components').StyledComponent<"span", any, {}, never>;
|
|
6
|
-
export declare const ModalClose: import('styled-components').StyledComponent<"button", any, {}, never>;
|
|
7
|
-
export declare const ReasonList: import('styled-components').StyledComponent<"div", any, {}, never>;
|
|
8
|
-
export declare const ReasonChip: import('styled-components').StyledComponent<"button", any, {
|
|
9
|
-
$selected: boolean;
|
|
10
|
-
}, never>;
|
|
11
|
-
export declare const NoteInput: import('styled-components').StyledComponent<"textarea", any, {}, never>;
|
|
12
|
-
export declare const SubmitButton: import('styled-components').StyledComponent<"button", any, {}, never>;
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import r from "styled-components";
|
|
2
|
-
import { COLORS as o } from "../../constants/Theme.js";
|
|
3
|
-
const a = r.div`
|
|
4
|
-
display: flex;
|
|
5
|
-
flex-direction: column;
|
|
6
|
-
gap: 10px;
|
|
7
|
-
width: 220px;
|
|
8
|
-
padding: 14px;
|
|
9
|
-
background: ${o.surface.standard};
|
|
10
|
-
border: 1px solid ${o.stroke.primary};
|
|
11
|
-
border-radius: 12px;
|
|
12
|
-
box-shadow: 0 12px 32px rgba(40, 3, 78, 0.16);
|
|
13
|
-
`, i = r.div`
|
|
14
|
-
display: flex;
|
|
15
|
-
align-items: flex-start;
|
|
16
|
-
justify-content: space-between;
|
|
17
|
-
gap: 8px;
|
|
18
|
-
`, d = r.div`
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
gap: 2px;
|
|
22
|
-
`, s = r.span`
|
|
23
|
-
font-family: Inter;
|
|
24
|
-
font-size: 13px;
|
|
25
|
-
font-weight: 600;
|
|
26
|
-
line-height: 18px;
|
|
27
|
-
color: ${o.content.primary};
|
|
28
|
-
`, p = r.span`
|
|
29
|
-
font-family: Inter;
|
|
30
|
-
font-size: 11px;
|
|
31
|
-
line-height: 16px;
|
|
32
|
-
color: ${o.content.placeholder};
|
|
33
|
-
`, c = r.button`
|
|
34
|
-
display: inline-flex;
|
|
35
|
-
align-items: center;
|
|
36
|
-
justify-content: center;
|
|
37
|
-
width: 20px;
|
|
38
|
-
height: 20px;
|
|
39
|
-
flex-shrink: 0;
|
|
40
|
-
padding: 0;
|
|
41
|
-
border: none;
|
|
42
|
-
border-radius: 4px;
|
|
43
|
-
background: transparent;
|
|
44
|
-
color: ${o.content.placeholder};
|
|
45
|
-
cursor: pointer;
|
|
46
|
-
transition: background 0.15s ease, color 0.15s ease;
|
|
47
|
-
|
|
48
|
-
&:hover {
|
|
49
|
-
background: ${o.surface.hovered};
|
|
50
|
-
color: ${o.content.primary};
|
|
51
|
-
}
|
|
52
|
-
`, l = r.div`
|
|
53
|
-
display: flex;
|
|
54
|
-
flex-wrap: wrap;
|
|
55
|
-
gap: 6px;
|
|
56
|
-
`, x = r.button`
|
|
57
|
-
padding: 4px 8px;
|
|
58
|
-
border-radius: 6px;
|
|
59
|
-
border: 1px solid
|
|
60
|
-
${({ $selected: e }) => e ? o.stroke.brand : o.stroke.primary};
|
|
61
|
-
background: ${({ $selected: e }) => e ? o.background.brandVeryLight : o.surface.standard};
|
|
62
|
-
color: ${({ $selected: e }) => e ? o.content.brand : o.content.secondary};
|
|
63
|
-
font-family: Inter;
|
|
64
|
-
font-size: 11px;
|
|
65
|
-
line-height: 16px;
|
|
66
|
-
text-align: left;
|
|
67
|
-
cursor: pointer;
|
|
68
|
-
transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
|
|
69
|
-
|
|
70
|
-
&:hover {
|
|
71
|
-
background: ${({ $selected: e }) => e ? o.background.brandVeryLight : o.surface.hovered};
|
|
72
|
-
}
|
|
73
|
-
`, b = r.textarea`
|
|
74
|
-
min-height: 64px;
|
|
75
|
-
padding: 8px;
|
|
76
|
-
border: 1px solid ${o.stroke.primary};
|
|
77
|
-
border-radius: 8px;
|
|
78
|
-
background: ${o.surface.standard};
|
|
79
|
-
color: ${o.content.primary};
|
|
80
|
-
font-family: Inter;
|
|
81
|
-
font-size: 11px;
|
|
82
|
-
line-height: 16px;
|
|
83
|
-
resize: none;
|
|
84
|
-
outline: none;
|
|
85
|
-
|
|
86
|
-
&::placeholder {
|
|
87
|
-
color: ${o.content.placeholder};
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&:focus {
|
|
91
|
-
border-color: ${o.stroke.brand};
|
|
92
|
-
}
|
|
93
|
-
`, u = r.button`
|
|
94
|
-
padding: 8px;
|
|
95
|
-
border: none;
|
|
96
|
-
border-radius: 8px;
|
|
97
|
-
background: ${o.background.brand};
|
|
98
|
-
color: ${o.content.primaryInverse};
|
|
99
|
-
font-family: Inter;
|
|
100
|
-
font-size: 12px;
|
|
101
|
-
font-weight: 600;
|
|
102
|
-
line-height: 16px;
|
|
103
|
-
cursor: pointer;
|
|
104
|
-
transition: background 0.15s ease;
|
|
105
|
-
|
|
106
|
-
&:hover {
|
|
107
|
-
background: ${o.background.brandHovered};
|
|
108
|
-
}
|
|
109
|
-
`;
|
|
110
|
-
export {
|
|
111
|
-
a as ModalCard,
|
|
112
|
-
c as ModalClose,
|
|
113
|
-
i as ModalHeader,
|
|
114
|
-
d as ModalHeading,
|
|
115
|
-
p as ModalSubtitle,
|
|
116
|
-
s as ModalTitle,
|
|
117
|
-
b as NoteInput,
|
|
118
|
-
x as ReasonChip,
|
|
119
|
-
l as ReasonList,
|
|
120
|
-
u as SubmitButton
|
|
121
|
-
};
|
|
122
|
-
//# sourceMappingURL=CopilotFeedbackModal.styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CopilotFeedbackModal.styled.js","sources":["../../../../src/components/bik-copilot/CopilotFeedbackModal.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const ModalCard = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n\twidth: 220px;\n\tpadding: 14px;\n\tbackground: ${COLORS.surface.standard};\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 12px;\n\tbox-shadow: 0 12px 32px rgba(40, 3, 78, 0.16);\n`;\n\nexport const ModalHeader = styled.div`\n\tdisplay: flex;\n\talign-items: flex-start;\n\tjustify-content: space-between;\n\tgap: 8px;\n`;\n\nexport const ModalHeading = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n`;\n\nexport const ModalTitle = styled.span`\n\tfont-family: Inter;\n\tfont-size: 13px;\n\tfont-weight: 600;\n\tline-height: 18px;\n\tcolor: ${COLORS.content.primary};\n`;\n\nexport const ModalSubtitle = styled.span`\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tcolor: ${COLORS.content.placeholder};\n`;\n\nexport const ModalClose = styled.button`\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 20px;\n\theight: 20px;\n\tflex-shrink: 0;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: 4px;\n\tbackground: transparent;\n\tcolor: ${COLORS.content.placeholder};\n\tcursor: pointer;\n\ttransition: background 0.15s ease, color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${COLORS.surface.hovered};\n\t\tcolor: ${COLORS.content.primary};\n\t}\n`;\n\nexport const ReasonList = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n`;\n\n/* A toggle, not a radio: more than one thing can be wrong with one reply. */\nexport const ReasonChip = styled.button<{ $selected: boolean }>`\n\tpadding: 4px 8px;\n\tborder-radius: 6px;\n\tborder: 1px solid\n\t\t${({ $selected }) =>\n\t\t\t$selected ? COLORS.stroke.brand : COLORS.stroke.primary};\n\tbackground: ${({ $selected }) =>\n\t\t$selected ? COLORS.background.brandVeryLight : COLORS.surface.standard};\n\tcolor: ${({ $selected }) =>\n\t\t$selected ? COLORS.content.brand : COLORS.content.secondary};\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\ttext-align: left;\n\tcursor: pointer;\n\ttransition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${({ $selected }) =>\n\t\t\t$selected ? COLORS.background.brandVeryLight : COLORS.surface.hovered};\n\t}\n`;\n\nexport const NoteInput = styled.textarea`\n\tmin-height: 64px;\n\tpadding: 8px;\n\tborder: 1px solid ${COLORS.stroke.primary};\n\tborder-radius: 8px;\n\tbackground: ${COLORS.surface.standard};\n\tcolor: ${COLORS.content.primary};\n\tfont-family: Inter;\n\tfont-size: 11px;\n\tline-height: 16px;\n\tresize: none;\n\toutline: none;\n\n\t&::placeholder {\n\t\tcolor: ${COLORS.content.placeholder};\n\t}\n\n\t&:focus {\n\t\tborder-color: ${COLORS.stroke.brand};\n\t}\n`;\n\nexport const SubmitButton = styled.button`\n\tpadding: 8px;\n\tborder: none;\n\tborder-radius: 8px;\n\tbackground: ${COLORS.background.brand};\n\tcolor: ${COLORS.content.primaryInverse};\n\tfont-family: Inter;\n\tfont-size: 12px;\n\tfont-weight: 600;\n\tline-height: 16px;\n\tcursor: pointer;\n\ttransition: background 0.15s ease;\n\n\t&:hover {\n\t\tbackground: ${COLORS.background.brandHovered};\n\t}\n`;\n"],"names":["ModalCard","styled","COLORS","ModalHeader","ModalHeading","ModalTitle","ModalSubtitle","ModalClose","ReasonList","ReasonChip","$selected","NoteInput","SubmitButton"],"mappings":";;AAGO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMjBC,EAAO,QAAQ,QAAQ;AAAA,qBACjBA,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA,GAK7BC,IAAcF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOrBG,IAAeH,EAAO;AAAA;AAAA;AAAA;AAAA,GAMtBI,IAAaJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,UAKvBC,EAAO,QAAQ,OAAO;AAAA,GAGnBI,IAAgBL,EAAO;AAAA;AAAA;AAAA;AAAA,UAI1BC,EAAO,QAAQ,WAAW;AAAA,GAGvBK,IAAaN,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWvBC,EAAO,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKpBA,EAAO,QAAQ,OAAO;AAAA,WAC3BA,EAAO,QAAQ,OAAO;AAAA;AAAA,GAIpBM,IAAaP,EAAO;AAAA;AAAA;AAAA;AAAA,GAOpBQ,IAAaR,EAAO;AAAA;AAAA;AAAA;AAAA,IAI7B,CAAC,EAAE,WAAAS,EAAA,MACJA,IAAYR,EAAO,OAAO,QAAQA,EAAO,OAAO,OAAO;AAAA,eAC3C,CAAC,EAAE,WAAAQ,EAAA,MAChBA,IAAYR,EAAO,WAAW,iBAAiBA,EAAO,QAAQ,QAAQ;AAAA,UAC9D,CAAC,EAAE,WAAAQ,EAAA,MACXA,IAAYR,EAAO,QAAQ,QAAQA,EAAO,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAS7C,CAAC,EAAE,WAAAQ,EAAA,MAChBA,IAAYR,EAAO,WAAW,iBAAiBA,EAAO,QAAQ,OAAO;AAAA;AAAA,GAI3DS,IAAYV,EAAO;AAAA;AAAA;AAAA,qBAGXC,EAAO,OAAO,OAAO;AAAA;AAAA,eAE3BA,EAAO,QAAQ,QAAQ;AAAA,UAC5BA,EAAO,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQrBA,EAAO,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA,kBAInBA,EAAO,OAAO,KAAK;AAAA;AAAA,GAIxBU,IAAeX,EAAO;AAAA;AAAA;AAAA;AAAA,eAIpBC,EAAO,WAAW,KAAK;AAAA,UAC5BA,EAAO,QAAQ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBASvBA,EAAO,WAAW,YAAY;AAAA;AAAA;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { CopilotPanelProps } from './model';
|
|
3
|
-
/**
|
|
4
|
-
* Chat panel used by the copilot. Fully presentational: it renders the
|
|
5
|
-
* transcript it is given and reports user intent through callbacks, so it works
|
|
6
|
-
* against any backend.
|
|
7
|
-
*/
|
|
8
|
-
export declare const CopilotPanel: React.FC<CopilotPanelProps>;
|
|
9
|
-
export default CopilotPanel;
|