@burtson-labs/bandit-engine 2.0.122 → 2.0.123
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/dist/{chat-OWN4ESDC.mjs → chat-CGZD7ZQF.mjs} +4 -4
- package/dist/{chunk-W2Q2AF45.mjs → chunk-4RRQQPFZ.mjs} +2 -2
- package/dist/{chunk-42TFNHCE.mjs → chunk-4T6HJTYD.mjs} +107 -185
- package/dist/chunk-4T6HJTYD.mjs.map +1 -0
- package/dist/{chunk-LR55TJK5.mjs → chunk-JJTUEC2E.mjs} +86 -246
- package/dist/chunk-JJTUEC2E.mjs.map +1 -0
- package/dist/{chunk-AYFWADUJ.mjs → chunk-RLMGTTK7.mjs} +5 -5
- package/dist/{chunk-CY6WSCRS.mjs → chunk-WSNV6EX5.mjs} +2 -2
- package/dist/index.js +260 -485
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/management/management.js +244 -469
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +4 -4
- package/dist/modals/chat-modal/chat-modal.js +84 -240
- package/dist/modals/chat-modal/chat-modal.js.map +1 -1
- package/dist/modals/chat-modal/chat-modal.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-42TFNHCE.mjs.map +0 -1
- package/dist/chunk-LR55TJK5.mjs.map +0 -1
- /package/dist/{chat-OWN4ESDC.mjs.map → chat-CGZD7ZQF.mjs.map} +0 -0
- /package/dist/{chunk-W2Q2AF45.mjs.map → chunk-4RRQQPFZ.mjs.map} +0 -0
- /package/dist/{chunk-AYFWADUJ.mjs.map → chunk-RLMGTTK7.mjs.map} +0 -0
- /package/dist/{chunk-CY6WSCRS.mjs.map → chunk-WSNV6EX5.mjs.map} +0 -0
|
@@ -15734,7 +15734,7 @@ var init_FeedbackModal = __esm({
|
|
|
15734
15734
|
sx: {
|
|
15735
15735
|
display: "grid",
|
|
15736
15736
|
gridTemplateRows: "auto auto auto auto",
|
|
15737
|
-
rowGap: "
|
|
15737
|
+
rowGap: "16px",
|
|
15738
15738
|
columnGap: "0px",
|
|
15739
15739
|
width: "100%"
|
|
15740
15740
|
},
|
|
@@ -15750,35 +15750,6 @@ var init_FeedbackModal = __esm({
|
|
|
15750
15750
|
mb: 0
|
|
15751
15751
|
},
|
|
15752
15752
|
children: [
|
|
15753
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
15754
|
-
import_material13.Box,
|
|
15755
|
-
{
|
|
15756
|
-
sx: {
|
|
15757
|
-
gridColumn: "1 / -1",
|
|
15758
|
-
display: "flex",
|
|
15759
|
-
alignItems: "center",
|
|
15760
|
-
gap: "8px",
|
|
15761
|
-
mb: 0,
|
|
15762
|
-
mt: 2,
|
|
15763
|
-
alignSelf: "end"
|
|
15764
|
-
},
|
|
15765
|
-
children: [
|
|
15766
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react3.MessageSquare, { size: 20, color: theme.palette.text.primary }),
|
|
15767
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
15768
|
-
import_material13.Typography,
|
|
15769
|
-
{
|
|
15770
|
-
variant: "h6",
|
|
15771
|
-
sx: {
|
|
15772
|
-
fontWeight: 600,
|
|
15773
|
-
color: theme.palette.text.primary,
|
|
15774
|
-
mb: 0
|
|
15775
|
-
},
|
|
15776
|
-
children: "Feedback Details"
|
|
15777
|
-
}
|
|
15778
|
-
)
|
|
15779
|
-
]
|
|
15780
|
-
}
|
|
15781
|
-
),
|
|
15782
15753
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
15783
15754
|
import_material13.TextField,
|
|
15784
15755
|
{
|
|
@@ -15920,7 +15891,7 @@ var init_FeedbackModal = __esm({
|
|
|
15920
15891
|
{
|
|
15921
15892
|
fullWidth: true,
|
|
15922
15893
|
multiline: true,
|
|
15923
|
-
rows:
|
|
15894
|
+
rows: 3,
|
|
15924
15895
|
label: "Description",
|
|
15925
15896
|
value: formData.description,
|
|
15926
15897
|
onChange: handleInputChange("description"),
|
|
@@ -15971,118 +15942,37 @@ var init_FeedbackModal = __esm({
|
|
|
15971
15942
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
15972
15943
|
import_material13.Box,
|
|
15973
15944
|
{
|
|
15974
|
-
className: "impact-
|
|
15975
|
-
sx: {
|
|
15976
|
-
flex: 1,
|
|
15977
|
-
minWidth: 300,
|
|
15978
|
-
display: "flex",
|
|
15979
|
-
flexDirection: "column",
|
|
15980
|
-
height: "100%",
|
|
15981
|
-
p: 0
|
|
15982
|
-
},
|
|
15945
|
+
className: "impact-section",
|
|
15946
|
+
sx: { flex: 1, minWidth: 260, display: "flex", flexDirection: "column" },
|
|
15983
15947
|
children: [
|
|
15984
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.
|
|
15985
|
-
|
|
15986
|
-
|
|
15948
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Typography, { variant: "body2", sx: { fontWeight: 600, mb: 0.5 }, children: [
|
|
15949
|
+
"How annoying is this?",
|
|
15950
|
+
" ",
|
|
15951
|
+
["\u{1F60A}", "\u{1F610}", "\u{1F644}", "\u{1F620}", "\u{1F92C}"][(formData.annoyanceLevel ?? 3) - 1],
|
|
15952
|
+
" ",
|
|
15953
|
+
"(",
|
|
15954
|
+
formData.annoyanceLevel ?? 3,
|
|
15955
|
+
"/5)"
|
|
15987
15956
|
] }),
|
|
15988
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
15989
|
-
import_material13.
|
|
15957
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Box, { sx: { px: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
15958
|
+
import_material13.Slider,
|
|
15990
15959
|
{
|
|
15991
|
-
|
|
15960
|
+
size: "small",
|
|
15961
|
+
value: formData.annoyanceLevel,
|
|
15962
|
+
onChange: (_, value) => setFormData((prev) => ({ ...prev, annoyanceLevel: value })),
|
|
15963
|
+
min: 1,
|
|
15964
|
+
max: 5,
|
|
15965
|
+
step: 1,
|
|
15966
|
+
marks: true,
|
|
15992
15967
|
sx: {
|
|
15993
|
-
|
|
15994
|
-
|
|
15995
|
-
|
|
15996
|
-
|
|
15997
|
-
|
|
15998
|
-
|
|
15999
|
-
display: "flex",
|
|
16000
|
-
flexDirection: "column",
|
|
16001
|
-
flex: 1,
|
|
16002
|
-
justifyContent: "center",
|
|
16003
|
-
height: "100%",
|
|
16004
|
-
"&:hover": {
|
|
16005
|
-
transform: "translateY(-2px)",
|
|
16006
|
-
boxShadow: theme.palette.mode === "dark" ? "0 8px 24px rgba(0,0,0,0.4)" : "0 8px 24px rgba(0,0,0,0.12)"
|
|
15968
|
+
"& .MuiSlider-track": {
|
|
15969
|
+
background: `linear-gradient(90deg, ${theme.palette.success.main}, ${theme.palette.warning.main}, ${theme.palette.error.main})`,
|
|
15970
|
+
border: "none"
|
|
15971
|
+
},
|
|
15972
|
+
"& .MuiSlider-thumb": {
|
|
15973
|
+
background: `linear-gradient(135deg, ${theme.palette.warning.main}, ${theme.palette.warning.dark})`
|
|
16007
15974
|
}
|
|
16008
|
-
}
|
|
16009
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Stack, { spacing: 3, children: [
|
|
16010
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Typography, { variant: "subtitle1", sx: { fontWeight: 600, display: "flex", alignItems: "center", gap: 2 }, children: [
|
|
16011
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16012
|
-
import_material13.Box,
|
|
16013
|
-
{
|
|
16014
|
-
sx: {
|
|
16015
|
-
width: 28,
|
|
16016
|
-
height: 28,
|
|
16017
|
-
borderRadius: "50%",
|
|
16018
|
-
bgcolor: theme.palette.warning.main + "20",
|
|
16019
|
-
display: "flex",
|
|
16020
|
-
alignItems: "center",
|
|
16021
|
-
justifyContent: "center",
|
|
16022
|
-
fontSize: "14px"
|
|
16023
|
-
},
|
|
16024
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react3.Brain, { size: 22, color: theme.palette.warning.main })
|
|
16025
|
-
}
|
|
16026
|
-
),
|
|
16027
|
-
"How annoying is this issue? (",
|
|
16028
|
-
formData.annoyanceLevel,
|
|
16029
|
-
"/5)"
|
|
16030
|
-
] }),
|
|
16031
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Box, { sx: { px: 2, py: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16032
|
-
import_material13.Slider,
|
|
16033
|
-
{
|
|
16034
|
-
value: formData.annoyanceLevel,
|
|
16035
|
-
onChange: (_, value) => setFormData((prev) => ({ ...prev, annoyanceLevel: value })),
|
|
16036
|
-
min: 1,
|
|
16037
|
-
max: 5,
|
|
16038
|
-
step: 1,
|
|
16039
|
-
marks: [
|
|
16040
|
-
{ value: 1, label: "\u{1F60A} Not at all" },
|
|
16041
|
-
{ value: 2, label: "\u{1F610} Slightly" },
|
|
16042
|
-
{ value: 3, label: "\u{1F644} Moderately" },
|
|
16043
|
-
{ value: 4, label: "\u{1F620} Very" },
|
|
16044
|
-
{ value: 5, label: "\u{1F92C} Extremely" }
|
|
16045
|
-
],
|
|
16046
|
-
sx: {
|
|
16047
|
-
height: 8,
|
|
16048
|
-
"& .MuiSlider-mark": {
|
|
16049
|
-
backgroundColor: theme.palette.divider,
|
|
16050
|
-
width: 3,
|
|
16051
|
-
height: 3
|
|
16052
|
-
},
|
|
16053
|
-
"& .MuiSlider-markLabel": {
|
|
16054
|
-
fontSize: "0.8rem",
|
|
16055
|
-
color: theme.palette.text.secondary,
|
|
16056
|
-
transform: "translateX(-50%)",
|
|
16057
|
-
whiteSpace: "nowrap",
|
|
16058
|
-
top: 32,
|
|
16059
|
-
fontWeight: 500
|
|
16060
|
-
},
|
|
16061
|
-
"& .MuiSlider-thumb": {
|
|
16062
|
-
width: 24,
|
|
16063
|
-
height: 24,
|
|
16064
|
-
background: `linear-gradient(135deg, ${theme.palette.warning.main}, ${theme.palette.warning.dark})`,
|
|
16065
|
-
boxShadow: `0 4px 12px ${theme.palette.warning.main}40`,
|
|
16066
|
-
"&:hover, &.Mui-focusVisible": {
|
|
16067
|
-
boxShadow: `0 0 0 12px ${theme.palette.warning.main}20, 0 4px 12px ${theme.palette.warning.main}40`
|
|
16068
|
-
}
|
|
16069
|
-
},
|
|
16070
|
-
"& .MuiSlider-track": {
|
|
16071
|
-
background: `linear-gradient(90deg, ${theme.palette.success.main}, ${theme.palette.warning.main}, ${theme.palette.error.main})`,
|
|
16072
|
-
height: 6,
|
|
16073
|
-
border: "none"
|
|
16074
|
-
},
|
|
16075
|
-
"& .MuiSlider-rail": {
|
|
16076
|
-
height: 6,
|
|
16077
|
-
backgroundColor: theme.palette.divider,
|
|
16078
|
-
opacity: 0.3
|
|
16079
|
-
},
|
|
16080
|
-
mb: 5
|
|
16081
|
-
// Space for labels
|
|
16082
|
-
}
|
|
16083
|
-
}
|
|
16084
|
-
) })
|
|
16085
|
-
] })
|
|
15975
|
+
}
|
|
16086
15976
|
}
|
|
16087
15977
|
) })
|
|
16088
15978
|
]
|
|
@@ -16101,109 +15991,63 @@ var init_FeedbackModal = __esm({
|
|
|
16101
15991
|
p: 0
|
|
16102
15992
|
},
|
|
16103
15993
|
children: [
|
|
16104
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.
|
|
16105
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16106
|
-
|
|
16107
|
-
|
|
16108
|
-
|
|
16109
|
-
|
|
16110
|
-
|
|
16111
|
-
|
|
16112
|
-
|
|
16113
|
-
|
|
16114
|
-
|
|
16115
|
-
|
|
16116
|
-
|
|
16117
|
-
|
|
16118
|
-
|
|
16119
|
-
|
|
16120
|
-
|
|
16121
|
-
|
|
16122
|
-
|
|
16123
|
-
|
|
16124
|
-
|
|
16125
|
-
|
|
16126
|
-
|
|
16127
|
-
|
|
16128
|
-
|
|
16129
|
-
|
|
16130
|
-
|
|
16131
|
-
|
|
16132
|
-
}
|
|
16133
|
-
|
|
16134
|
-
|
|
16135
|
-
|
|
16136
|
-
|
|
16137
|
-
|
|
16138
|
-
|
|
16139
|
-
|
|
16140
|
-
|
|
16141
|
-
|
|
16142
|
-
|
|
16143
|
-
|
|
16144
|
-
|
|
16145
|
-
|
|
16146
|
-
|
|
16147
|
-
|
|
16148
|
-
|
|
16149
|
-
|
|
16150
|
-
|
|
16151
|
-
|
|
16152
|
-
|
|
16153
|
-
|
|
16154
|
-
|
|
16155
|
-
{
|
|
16156
|
-
sx: {
|
|
16157
|
-
width: 56,
|
|
16158
|
-
height: 56,
|
|
16159
|
-
bgcolor: theme.palette.primary.main + "15",
|
|
16160
|
-
color: theme.palette.primary.main,
|
|
16161
|
-
boxShadow: `0 4px 16px ${theme.palette.primary.main}20`,
|
|
16162
|
-
transition: "all 0.3s ease"
|
|
16163
|
-
},
|
|
16164
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react3.Paperclip, { size: 28 })
|
|
16165
|
-
}
|
|
16166
|
-
),
|
|
16167
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Box, { sx: { textAlign: "center" }, children: [
|
|
16168
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "h6", sx: { fontWeight: 600, mb: 1, fontSize: "1.1rem" }, children: "Attach One Image" }),
|
|
16169
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 1, fontSize: "0.95rem" }, children: "Click here to upload a single image" }),
|
|
16170
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "caption", color: "text.secondary", sx: {
|
|
16171
|
-
opacity: 0.8,
|
|
16172
|
-
fontSize: "0.85rem",
|
|
16173
|
-
background: theme.palette.mode === "dark" ? "rgba(255,255,255,0.05)" : "rgba(0,0,0,0.05)",
|
|
16174
|
-
px: 2,
|
|
16175
|
-
py: 0.5,
|
|
16176
|
-
borderRadius: 1
|
|
16177
|
-
}, children: "Support: Images only (JPG, PNG, GIF) - Max 10MB" })
|
|
16178
|
-
] })
|
|
16179
|
-
]
|
|
16180
|
-
}
|
|
16181
|
-
),
|
|
16182
|
-
(formData.images && formData.images.length > 0 || formData.attachments && formData.attachments.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16183
|
-
import_material13.Alert,
|
|
16184
|
-
{
|
|
16185
|
-
severity: "info",
|
|
16186
|
-
sx: {
|
|
16187
|
-
mt: "auto",
|
|
16188
|
-
textAlign: "left",
|
|
16189
|
-
fontSize: "0.75rem",
|
|
16190
|
-
py: 0.5,
|
|
16191
|
-
background: theme.palette.mode === "dark" ? "linear-gradient(135deg, rgba(33,150,243,0.1) 0%, rgba(25,118,210,0.1) 100%)" : "linear-gradient(135deg, rgba(33,150,243,0.05) 0%, rgba(25,118,210,0.05) 100%)",
|
|
16192
|
-
border: `1px solid ${theme.palette.info.main}30`,
|
|
16193
|
-
"& .MuiAlert-icon": {
|
|
16194
|
-
color: theme.palette.info.main,
|
|
16195
|
-
fontSize: "0.875rem"
|
|
16196
|
-
},
|
|
16197
|
-
"& .MuiAlert-message": {
|
|
16198
|
-
fontSize: "0.75rem"
|
|
16199
|
-
}
|
|
16200
|
-
},
|
|
16201
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "caption", sx: { fontWeight: 600, display: "block" }, children: formData.images && formData.images.length > 0 ? "\u{1F4CE} Image will be copied to clipboard - paste in email!" : "\u{1F4CE} Files ready for email attachment" })
|
|
15994
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { style: { display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Box, { onClick: () => fileInputRef.current?.click(), children: [
|
|
15995
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
15996
|
+
"input",
|
|
15997
|
+
{
|
|
15998
|
+
ref: fileInputRef,
|
|
15999
|
+
type: "file",
|
|
16000
|
+
accept: "image/*",
|
|
16001
|
+
style: { display: "none" },
|
|
16002
|
+
onChange: handleFileUpload
|
|
16003
|
+
}
|
|
16004
|
+
),
|
|
16005
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
16006
|
+
import_material13.Box,
|
|
16007
|
+
{
|
|
16008
|
+
sx: {
|
|
16009
|
+
display: "flex",
|
|
16010
|
+
alignItems: "center",
|
|
16011
|
+
gap: 1,
|
|
16012
|
+
px: 1.5,
|
|
16013
|
+
py: 1,
|
|
16014
|
+
border: "1px dashed",
|
|
16015
|
+
borderColor: (theme2) => theme2.palette.divider,
|
|
16016
|
+
borderRadius: 2,
|
|
16017
|
+
cursor: "pointer",
|
|
16018
|
+
color: theme.palette.text.secondary,
|
|
16019
|
+
"&:hover": { borderColor: theme.palette.primary.main, color: theme.palette.primary.main }
|
|
16020
|
+
},
|
|
16021
|
+
children: [
|
|
16022
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react3.Paperclip, { size: 18 }),
|
|
16023
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "body2", sx: { fontWeight: 500 }, children: "Attach an image" }),
|
|
16024
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "caption", color: "text.secondary", sx: { ml: "auto" }, children: "JPG/PNG/GIF \xB7 10MB" })
|
|
16025
|
+
]
|
|
16026
|
+
}
|
|
16027
|
+
),
|
|
16028
|
+
(formData.images && formData.images.length > 0 || formData.attachments && formData.attachments.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
16029
|
+
import_material13.Alert,
|
|
16030
|
+
{
|
|
16031
|
+
severity: "info",
|
|
16032
|
+
sx: {
|
|
16033
|
+
mt: "auto",
|
|
16034
|
+
textAlign: "left",
|
|
16035
|
+
fontSize: "0.75rem",
|
|
16036
|
+
py: 0.5,
|
|
16037
|
+
background: theme.palette.mode === "dark" ? "linear-gradient(135deg, rgba(33,150,243,0.1) 0%, rgba(25,118,210,0.1) 100%)" : "linear-gradient(135deg, rgba(33,150,243,0.05) 0%, rgba(25,118,210,0.05) 100%)",
|
|
16038
|
+
border: `1px solid ${theme.palette.info.main}30`,
|
|
16039
|
+
"& .MuiAlert-icon": {
|
|
16040
|
+
color: theme.palette.info.main,
|
|
16041
|
+
fontSize: "0.875rem"
|
|
16042
|
+
},
|
|
16043
|
+
"& .MuiAlert-message": {
|
|
16044
|
+
fontSize: "0.75rem"
|
|
16202
16045
|
}
|
|
16203
|
-
|
|
16204
|
-
|
|
16205
|
-
|
|
16206
|
-
|
|
16046
|
+
},
|
|
16047
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_material13.Typography, { variant: "caption", sx: { fontWeight: 600, display: "block" }, children: formData.images && formData.images.length > 0 ? "\u{1F4CE} Image will be copied to clipboard - paste in email!" : "\u{1F4CE} Files ready for email attachment" })
|
|
16048
|
+
}
|
|
16049
|
+
)
|
|
16050
|
+
] }) }),
|
|
16207
16051
|
formData.images && formData.images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Box, { sx: { mt: 2 }, children: [
|
|
16208
16052
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_material13.Box, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 1.5 }, children: [
|
|
16209
16053
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react3.Camera, { size: 16 }),
|
|
@@ -21369,7 +21213,7 @@ var init_voiceModeStore = __esm({
|
|
|
21369
21213
|
});
|
|
21370
21214
|
|
|
21371
21215
|
// src/chat/chat-input.tsx
|
|
21372
|
-
var import_react46, import_material39, import_styles24, import_shallow, import_jsx_runtime39, ChatInput, chat_input_default;
|
|
21216
|
+
var import_react46, import_material39, import_lucide_react8, import_styles24, import_shallow, import_jsx_runtime39, ChatInput, chat_input_default;
|
|
21373
21217
|
var init_chat_input = __esm({
|
|
21374
21218
|
"src/chat/chat-input.tsx"() {
|
|
21375
21219
|
"use strict";
|
|
@@ -21378,6 +21222,7 @@ var init_chat_input = __esm({
|
|
|
21378
21222
|
init_conversationStore();
|
|
21379
21223
|
init_engine_picker();
|
|
21380
21224
|
init_util();
|
|
21225
|
+
import_lucide_react8 = require("lucide-react");
|
|
21381
21226
|
init_preferencesStore();
|
|
21382
21227
|
init_packageSettingsStore();
|
|
21383
21228
|
init_transcriber();
|
|
@@ -21743,7 +21588,7 @@ ${sanitize(
|
|
|
21743
21588
|
"&:hover": { bgcolor: hoverBadgeBackground }
|
|
21744
21589
|
},
|
|
21745
21590
|
"aria-label": "Change voice",
|
|
21746
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
21591
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react8.Volume2, { size: 18 })
|
|
21747
21592
|
}
|
|
21748
21593
|
) }, key ?? "voice");
|
|
21749
21594
|
};
|
|
@@ -25313,13 +25158,13 @@ var init_useNetworkStatus = __esm({
|
|
|
25313
25158
|
});
|
|
25314
25159
|
|
|
25315
25160
|
// src/chat/project-management-modal.tsx
|
|
25316
|
-
var import_react53, import_material42,
|
|
25161
|
+
var import_react53, import_material42, import_lucide_react9, import_styles26, import_jsx_runtime42, DEFAULT_COLORS2, ProjectManagementModal, project_management_modal_default;
|
|
25317
25162
|
var init_project_management_modal = __esm({
|
|
25318
25163
|
"src/chat/project-management-modal.tsx"() {
|
|
25319
25164
|
"use strict";
|
|
25320
25165
|
import_react53 = require("react");
|
|
25321
25166
|
import_material42 = require("@mui/material");
|
|
25322
|
-
|
|
25167
|
+
import_lucide_react9 = require("lucide-react");
|
|
25323
25168
|
import_styles26 = require("@mui/material/styles");
|
|
25324
25169
|
init_projectStore();
|
|
25325
25170
|
init_conversationStore();
|
|
@@ -25548,7 +25393,7 @@ var init_project_management_modal = __esm({
|
|
|
25548
25393
|
flex: 1
|
|
25549
25394
|
},
|
|
25550
25395
|
children: [
|
|
25551
|
-
showCreateForm && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.IconButton, { onClick: resetForm, size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25396
|
+
showCreateForm && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.IconButton, { onClick: resetForm, size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.ArrowLeft, { size: 16 }) }),
|
|
25552
25397
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25553
25398
|
import_material42.Typography,
|
|
25554
25399
|
{
|
|
@@ -25566,7 +25411,7 @@ var init_project_management_modal = __esm({
|
|
|
25566
25411
|
]
|
|
25567
25412
|
}
|
|
25568
25413
|
),
|
|
25569
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.IconButton, { onClick: handleClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25414
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.IconButton, { onClick: handleClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.X, {}) })
|
|
25570
25415
|
]
|
|
25571
25416
|
}
|
|
25572
25417
|
),
|
|
@@ -25653,7 +25498,7 @@ var init_project_management_modal = __esm({
|
|
|
25653
25498
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25654
25499
|
import_material42.Button,
|
|
25655
25500
|
{
|
|
25656
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25501
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.Plus, {}),
|
|
25657
25502
|
onClick: () => setShowCreateForm(true),
|
|
25658
25503
|
variant: "contained",
|
|
25659
25504
|
sx: {
|
|
@@ -25678,7 +25523,7 @@ var init_project_management_modal = __esm({
|
|
|
25678
25523
|
backgroundColor: subtleSurface
|
|
25679
25524
|
},
|
|
25680
25525
|
children: [
|
|
25681
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25526
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.Folder, { size: 48, style: { marginBottom: 8, opacity: 0.5 } }),
|
|
25682
25527
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.Typography, { variant: "body1", sx: { fontWeight: 600 }, children: "No projects yet" }),
|
|
25683
25528
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.Typography, { variant: "body2", children: "Create your first project to organize conversations." })
|
|
25684
25529
|
]
|
|
@@ -25713,7 +25558,7 @@ var init_project_management_modal = __esm({
|
|
|
25713
25558
|
height: 36,
|
|
25714
25559
|
fontSize: "1rem"
|
|
25715
25560
|
},
|
|
25716
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25561
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.Folder, { size: 16 })
|
|
25717
25562
|
}
|
|
25718
25563
|
),
|
|
25719
25564
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_material42.Box, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
@@ -25764,7 +25609,7 @@ var init_project_management_modal = __esm({
|
|
|
25764
25609
|
mt: 0.25,
|
|
25765
25610
|
zIndex: 1
|
|
25766
25611
|
},
|
|
25767
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25612
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.MoreVertical, { size: 16 })
|
|
25768
25613
|
}
|
|
25769
25614
|
)
|
|
25770
25615
|
]
|
|
@@ -25840,7 +25685,7 @@ var init_project_management_modal = __esm({
|
|
|
25840
25685
|
startEdit(selectedProject);
|
|
25841
25686
|
},
|
|
25842
25687
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_material42.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
25843
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25688
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.Pencil, { size: 16 }),
|
|
25844
25689
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.Typography, { variant: "body2", color: "inherit", children: "Edit" })
|
|
25845
25690
|
] })
|
|
25846
25691
|
}
|
|
@@ -25854,7 +25699,7 @@ var init_project_management_modal = __esm({
|
|
|
25854
25699
|
},
|
|
25855
25700
|
sx: { color: theme.palette.error.main },
|
|
25856
25701
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(import_material42.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
25857
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25702
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react9.Trash2, { size: 16 }),
|
|
25858
25703
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_material42.Typography, { variant: "body2", color: "inherit", children: "Delete" })
|
|
25859
25704
|
] })
|
|
25860
25705
|
}
|
|
@@ -25906,13 +25751,13 @@ var init_project_management_modal = __esm({
|
|
|
25906
25751
|
});
|
|
25907
25752
|
|
|
25908
25753
|
// src/chat/move-conversation-modal.tsx
|
|
25909
|
-
var import_react54, import_material43,
|
|
25754
|
+
var import_react54, import_material43, import_lucide_react10, import_styles27, import_jsx_runtime43, MoveConversationModal, move_conversation_modal_default;
|
|
25910
25755
|
var init_move_conversation_modal = __esm({
|
|
25911
25756
|
"src/chat/move-conversation-modal.tsx"() {
|
|
25912
25757
|
"use strict";
|
|
25913
25758
|
import_react54 = require("react");
|
|
25914
25759
|
import_material43 = require("@mui/material");
|
|
25915
|
-
|
|
25760
|
+
import_lucide_react10 = require("lucide-react");
|
|
25916
25761
|
import_styles27 = require("@mui/material/styles");
|
|
25917
25762
|
init_projectStore();
|
|
25918
25763
|
init_conversationStore();
|
|
@@ -25997,7 +25842,7 @@ var init_move_conversation_modal = __esm({
|
|
|
25997
25842
|
width: 32,
|
|
25998
25843
|
height: 32
|
|
25999
25844
|
},
|
|
26000
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
25845
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react10.Inbox, {})
|
|
26001
25846
|
}
|
|
26002
25847
|
) }),
|
|
26003
25848
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
@@ -26033,7 +25878,7 @@ var init_move_conversation_modal = __esm({
|
|
|
26033
25878
|
width: 32,
|
|
26034
25879
|
height: 32
|
|
26035
25880
|
},
|
|
26036
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
25881
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react10.Folder, {})
|
|
26037
25882
|
}
|
|
26038
25883
|
) }),
|
|
26039
25884
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
@@ -26077,13 +25922,13 @@ var init_move_conversation_modal = __esm({
|
|
|
26077
25922
|
});
|
|
26078
25923
|
|
|
26079
25924
|
// src/chat/simple-conversation-item.tsx
|
|
26080
|
-
var import_react55, import_material44,
|
|
25925
|
+
var import_react55, import_material44, import_lucide_react11, import_styles28, import_jsx_runtime44, SimpleConversationItem, simple_conversation_item_default;
|
|
26081
25926
|
var init_simple_conversation_item = __esm({
|
|
26082
25927
|
"src/chat/simple-conversation-item.tsx"() {
|
|
26083
25928
|
"use strict";
|
|
26084
25929
|
import_react55 = require("react");
|
|
26085
25930
|
import_material44 = require("@mui/material");
|
|
26086
|
-
|
|
25931
|
+
import_lucide_react11 = require("lucide-react");
|
|
26087
25932
|
import_styles28 = require("@mui/material/styles");
|
|
26088
25933
|
import_jsx_runtime44 = require("react/jsx-runtime");
|
|
26089
25934
|
SimpleConversationItem = ({
|
|
@@ -26311,7 +26156,7 @@ var init_simple_conversation_item = __esm({
|
|
|
26311
26156
|
},
|
|
26312
26157
|
children: [
|
|
26313
26158
|
!isMobile && !isEditing && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
26314
|
-
|
|
26159
|
+
import_lucide_react11.GripVertical,
|
|
26315
26160
|
{
|
|
26316
26161
|
size: 16,
|
|
26317
26162
|
color: theme.palette.text.disabled,
|
|
@@ -26405,7 +26250,7 @@ var init_simple_conversation_item = __esm({
|
|
|
26405
26250
|
}
|
|
26406
26251
|
}
|
|
26407
26252
|
},
|
|
26408
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
26253
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react11.MoreVertical, { size: 16 })
|
|
26409
26254
|
}
|
|
26410
26255
|
),
|
|
26411
26256
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
@@ -26436,15 +26281,15 @@ var init_simple_conversation_item = __esm({
|
|
|
26436
26281
|
},
|
|
26437
26282
|
children: [
|
|
26438
26283
|
onRename && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_material44.MenuItem, { onClick: handleEdit, children: [
|
|
26439
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
26284
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react11.Pencil, { size: 16 }) }),
|
|
26440
26285
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemText, { children: "Rename" })
|
|
26441
26286
|
] }),
|
|
26442
26287
|
onMove && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_material44.MenuItem, { onClick: handleMove, children: [
|
|
26443
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
26288
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react11.MailOpen, { size: 16 }) }),
|
|
26444
26289
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemText, { children: "Move to Project" })
|
|
26445
26290
|
] }),
|
|
26446
26291
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_material44.MenuItem, { onClick: handleDelete, children: [
|
|
26447
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
26292
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react11.Trash2, { size: 16 }) }),
|
|
26448
26293
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_material44.ListItemText, { children: "Delete" })
|
|
26449
26294
|
] })
|
|
26450
26295
|
]
|
|
@@ -26517,13 +26362,13 @@ var init_simple_conversation_item = __esm({
|
|
|
26517
26362
|
});
|
|
26518
26363
|
|
|
26519
26364
|
// src/chat/project-header.tsx
|
|
26520
|
-
var import_react56, import_material45,
|
|
26365
|
+
var import_react56, import_material45, import_lucide_react12, import_styles29, import_jsx_runtime45, ProjectHeader, project_header_default;
|
|
26521
26366
|
var init_project_header = __esm({
|
|
26522
26367
|
"src/chat/project-header.tsx"() {
|
|
26523
26368
|
"use strict";
|
|
26524
26369
|
import_react56 = require("react");
|
|
26525
26370
|
import_material45 = require("@mui/material");
|
|
26526
|
-
|
|
26371
|
+
import_lucide_react12 = require("lucide-react");
|
|
26527
26372
|
import_styles29 = require("@mui/material/styles");
|
|
26528
26373
|
init_conversationStore();
|
|
26529
26374
|
init_projectStore();
|
|
@@ -26550,7 +26395,7 @@ var init_project_header = __esm({
|
|
|
26550
26395
|
const [renameDraft, setRenameDraft] = (0, import_react56.useState)(projectName);
|
|
26551
26396
|
const renameActionRef = (0, import_react56.useRef)("none");
|
|
26552
26397
|
const isUngrouped = projectId === null;
|
|
26553
|
-
const Icon = isCollapsed ?
|
|
26398
|
+
const Icon = isCollapsed ? import_lucide_react12.Folder : import_lucide_react12.FolderOpen;
|
|
26554
26399
|
const handleAddConversation = (e) => {
|
|
26555
26400
|
e.stopPropagation();
|
|
26556
26401
|
createNewConversation(projectId || void 0);
|
|
@@ -26631,7 +26476,7 @@ var init_project_header = __esm({
|
|
|
26631
26476
|
mr: 1.5
|
|
26632
26477
|
},
|
|
26633
26478
|
children: isUngrouped ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
26634
|
-
|
|
26479
|
+
import_lucide_react12.Inbox,
|
|
26635
26480
|
{
|
|
26636
26481
|
size: 16,
|
|
26637
26482
|
color: theme.palette.text.disabled,
|
|
@@ -26747,7 +26592,7 @@ var init_project_header = __esm({
|
|
|
26747
26592
|
onRenameCancelDelete ? onRenameCancelDelete() : cancelRename();
|
|
26748
26593
|
},
|
|
26749
26594
|
sx: { color: (0, import_material45.alpha)(theme.palette.error.main, 0.9) },
|
|
26750
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
26595
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react12.X, { size: 16 })
|
|
26751
26596
|
}
|
|
26752
26597
|
) }),
|
|
26753
26598
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Tooltip, { title: "Save", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
@@ -26760,7 +26605,7 @@ var init_project_header = __esm({
|
|
|
26760
26605
|
commitRename();
|
|
26761
26606
|
},
|
|
26762
26607
|
sx: { color: theme.palette.success.main },
|
|
26763
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
26608
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react12.Check, { size: 16 })
|
|
26764
26609
|
}
|
|
26765
26610
|
) })
|
|
26766
26611
|
] }),
|
|
@@ -26781,7 +26626,7 @@ var init_project_header = __esm({
|
|
|
26781
26626
|
},
|
|
26782
26627
|
transition: "all 0.2s ease"
|
|
26783
26628
|
},
|
|
26784
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
26629
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react12.Plus, { size: 16 })
|
|
26785
26630
|
}
|
|
26786
26631
|
) }),
|
|
26787
26632
|
!isUngrouped && !isRenaming && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
@@ -26792,7 +26637,7 @@ var init_project_header = __esm({
|
|
|
26792
26637
|
color: theme.palette.text.secondary,
|
|
26793
26638
|
transition: "transform 0.2s ease"
|
|
26794
26639
|
},
|
|
26795
|
-
children: isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
26640
|
+
children: isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react12.ChevronDown, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react12.ChevronUp, { size: 16 })
|
|
26796
26641
|
}
|
|
26797
26642
|
)
|
|
26798
26643
|
]
|
|
@@ -26822,13 +26667,13 @@ var init_tooltips = __esm({
|
|
|
26822
26667
|
});
|
|
26823
26668
|
|
|
26824
26669
|
// src/chat/conversation-drawer.tsx
|
|
26825
|
-
var import_react57, import_material46,
|
|
26670
|
+
var import_react57, import_material46, import_lucide_react13, import_styles30, import_jsx_runtime46, BANDIT_AVATAR, coerceOptionalString, deriveInitials, ConversationDrawer, conversation_drawer_default;
|
|
26826
26671
|
var init_conversation_drawer = __esm({
|
|
26827
26672
|
"src/chat/conversation-drawer.tsx"() {
|
|
26828
26673
|
"use strict";
|
|
26829
26674
|
import_react57 = require("react");
|
|
26830
26675
|
import_material46 = require("@mui/material");
|
|
26831
|
-
|
|
26676
|
+
import_lucide_react13 = require("lucide-react");
|
|
26832
26677
|
import_styles30 = require("@mui/material/styles");
|
|
26833
26678
|
init_conversationStore();
|
|
26834
26679
|
init_projectStore();
|
|
@@ -26843,6 +26688,9 @@ var init_conversation_drawer = __esm({
|
|
|
26843
26688
|
init_project_header();
|
|
26844
26689
|
init_debugLogger();
|
|
26845
26690
|
init_tooltips();
|
|
26691
|
+
init_conversationSyncStore();
|
|
26692
|
+
init_preferencesStore();
|
|
26693
|
+
init_useFeatures();
|
|
26846
26694
|
import_jsx_runtime46 = require("react/jsx-runtime");
|
|
26847
26695
|
BANDIT_AVATAR = "https://cdn.burtson.ai/images/bandit-head.png";
|
|
26848
26696
|
coerceOptionalString = (value) => {
|
|
@@ -27069,6 +26917,30 @@ var init_conversation_drawer = __esm({
|
|
|
27069
26917
|
onClose();
|
|
27070
26918
|
}
|
|
27071
26919
|
};
|
|
26920
|
+
const { preferences } = usePreferencesStore();
|
|
26921
|
+
const { showLimitedAdminPanel } = useFeatureVisibility();
|
|
26922
|
+
const syncEnabled = useConversationSyncStore((s) => s.syncEnabled);
|
|
26923
|
+
const syncStatus = useConversationSyncStore((s) => s.status);
|
|
26924
|
+
const runSync = useConversationSyncStore((s) => s.runSync);
|
|
26925
|
+
const goToHome = () => {
|
|
26926
|
+
const resolvedHomeUrl = preferences.homeUrl?.trim() || usePackageSettingsStore.getState().settings?.homeUrl?.trim() || "";
|
|
26927
|
+
if (resolvedHomeUrl) {
|
|
26928
|
+
window.location.href = resolvedHomeUrl;
|
|
26929
|
+
return;
|
|
26930
|
+
}
|
|
26931
|
+
const navigatorWithStandalone = window.navigator;
|
|
26932
|
+
const isStandalone = window.matchMedia?.("(display-mode: standalone)").matches || navigatorWithStandalone.standalone === true;
|
|
26933
|
+
if (isStandalone) {
|
|
26934
|
+
try {
|
|
26935
|
+
sessionStorage.setItem("banditPwaStayOnHome", "true");
|
|
26936
|
+
} catch {
|
|
26937
|
+
}
|
|
26938
|
+
window.location.href = "/?mode=home";
|
|
26939
|
+
return;
|
|
26940
|
+
}
|
|
26941
|
+
window.location.href = "/";
|
|
26942
|
+
};
|
|
26943
|
+
const managementPath = typeof window !== "undefined" && window.location.pathname.startsWith("/playground") ? "/playground/management" : "/management";
|
|
27072
26944
|
const handleSearchClear = () => {
|
|
27073
26945
|
setSearchQuery("");
|
|
27074
26946
|
};
|
|
@@ -27152,6 +27024,31 @@ var init_conversation_drawer = __esm({
|
|
|
27152
27024
|
gap: 1
|
|
27153
27025
|
},
|
|
27154
27026
|
children: [
|
|
27027
|
+
syncEnabled && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Tooltip, { title: syncStatus === "error" ? "Sync needs attention \u2014 tap to retry" : "Sync conversations", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27028
|
+
import_material46.IconButton,
|
|
27029
|
+
{
|
|
27030
|
+
onClick: () => {
|
|
27031
|
+
if (syncStatus !== "syncing") void runSync({ force: true });
|
|
27032
|
+
},
|
|
27033
|
+
size: "small",
|
|
27034
|
+
"aria-label": "Sync conversations",
|
|
27035
|
+
sx: {
|
|
27036
|
+
color: syncStatus === "error" ? theme.palette.error.main : theme.palette.text.secondary,
|
|
27037
|
+
...syncStatus === "syncing" && {
|
|
27038
|
+
animation: "bandit-sync-spin 1s linear infinite",
|
|
27039
|
+
"@keyframes bandit-sync-spin": {
|
|
27040
|
+
"0%": { transform: "rotate(0deg)" },
|
|
27041
|
+
"100%": { transform: "rotate(360deg)" }
|
|
27042
|
+
}
|
|
27043
|
+
},
|
|
27044
|
+
"&:hover": {
|
|
27045
|
+
color: theme.palette.primary.main,
|
|
27046
|
+
bgcolor: (0, import_material46.alpha)(theme.palette.primary.main, 0.1)
|
|
27047
|
+
}
|
|
27048
|
+
},
|
|
27049
|
+
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.CircleAlert, {}) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.RefreshCw, {})
|
|
27050
|
+
}
|
|
27051
|
+
) }),
|
|
27155
27052
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Tooltip, { title: "Memories", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27156
27053
|
import_material46.IconButton,
|
|
27157
27054
|
{
|
|
@@ -27165,7 +27062,7 @@ var init_conversation_drawer = __esm({
|
|
|
27165
27062
|
bgcolor: (0, import_material46.alpha)(theme.palette.primary.main, 0.1)
|
|
27166
27063
|
}
|
|
27167
27064
|
},
|
|
27168
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27065
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Brain, {})
|
|
27169
27066
|
}
|
|
27170
27067
|
) }),
|
|
27171
27068
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Tooltip, { title: tooltip("manageProjects"), arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -27181,7 +27078,7 @@ var init_conversation_drawer = __esm({
|
|
|
27181
27078
|
bgcolor: (0, import_material46.alpha)(theme.palette.primary.main, 0.1)
|
|
27182
27079
|
}
|
|
27183
27080
|
},
|
|
27184
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27081
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Folder, {})
|
|
27185
27082
|
}
|
|
27186
27083
|
) }),
|
|
27187
27084
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Tooltip, { title: tooltip("conversationOptions"), arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -27197,7 +27094,7 @@ var init_conversation_drawer = __esm({
|
|
|
27197
27094
|
bgcolor: (0, import_material46.alpha)(theme.palette.text.primary, 0.1)
|
|
27198
27095
|
}
|
|
27199
27096
|
},
|
|
27200
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27097
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.MoreVertical, {})
|
|
27201
27098
|
}
|
|
27202
27099
|
) }),
|
|
27203
27100
|
isMobile && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Tooltip, { title: tooltip("closeConversationsPanel"), children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -27217,7 +27114,7 @@ var init_conversation_drawer = __esm({
|
|
|
27217
27114
|
bgcolor: (0, import_material46.alpha)(theme.palette.error.main, 0.1)
|
|
27218
27115
|
}
|
|
27219
27116
|
},
|
|
27220
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27117
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.X, {})
|
|
27221
27118
|
}
|
|
27222
27119
|
) })
|
|
27223
27120
|
]
|
|
@@ -27233,7 +27130,7 @@ var init_conversation_drawer = __esm({
|
|
|
27233
27130
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
27234
27131
|
variant: "outlined",
|
|
27235
27132
|
InputProps: {
|
|
27236
|
-
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27133
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Search, { size: 16, color: theme.palette.text.secondary }) }),
|
|
27237
27134
|
endAdornment: searchQuery && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.InputAdornment, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Tooltip, { title: tooltip("clearSearch"), children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27238
27135
|
import_material46.IconButton,
|
|
27239
27136
|
{
|
|
@@ -27242,7 +27139,7 @@ var init_conversation_drawer = __esm({
|
|
|
27242
27139
|
edge: "end",
|
|
27243
27140
|
"aria-label": tooltip("clearSearch"),
|
|
27244
27141
|
sx: { color: theme.palette.text.secondary },
|
|
27245
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27142
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.X, { size: 16 })
|
|
27246
27143
|
}
|
|
27247
27144
|
) }) })
|
|
27248
27145
|
},
|
|
@@ -27308,7 +27205,7 @@ var init_conversation_drawer = __esm({
|
|
|
27308
27205
|
justifyContent: "center",
|
|
27309
27206
|
flexShrink: 0
|
|
27310
27207
|
},
|
|
27311
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27208
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Folder, { size: 16, color: theme.palette.success.main })
|
|
27312
27209
|
}
|
|
27313
27210
|
),
|
|
27314
27211
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -27325,7 +27222,7 @@ var init_conversation_drawer = __esm({
|
|
|
27325
27222
|
size: "small",
|
|
27326
27223
|
"aria-label": tooltip("addProject"),
|
|
27327
27224
|
sx: { color: theme.palette.success.main },
|
|
27328
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27225
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Plus, { size: 16 })
|
|
27329
27226
|
}
|
|
27330
27227
|
) })
|
|
27331
27228
|
]
|
|
@@ -27347,7 +27244,7 @@ var init_conversation_drawer = __esm({
|
|
|
27347
27244
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.Divider, { sx: { flex: 1, opacity: 0.6 } }),
|
|
27348
27245
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_material46.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
27349
27246
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27350
|
-
|
|
27247
|
+
import_lucide_react13.Inbox,
|
|
27351
27248
|
{
|
|
27352
27249
|
size: 14,
|
|
27353
27250
|
color: theme.palette.text.disabled,
|
|
@@ -27571,6 +27468,44 @@ var init_conversation_drawer = __esm({
|
|
|
27571
27468
|
]
|
|
27572
27469
|
}
|
|
27573
27470
|
),
|
|
27471
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27472
|
+
import_material46.IconButton,
|
|
27473
|
+
{
|
|
27474
|
+
"aria-label": "Go to home page",
|
|
27475
|
+
title: "Home",
|
|
27476
|
+
onClick: (event) => {
|
|
27477
|
+
event.stopPropagation();
|
|
27478
|
+
goToHome();
|
|
27479
|
+
},
|
|
27480
|
+
sx: {
|
|
27481
|
+
flexShrink: 0,
|
|
27482
|
+
width: 30,
|
|
27483
|
+
height: 30,
|
|
27484
|
+
border: `1px solid ${(0, import_material46.alpha)(theme.palette.divider, 0.8)}`,
|
|
27485
|
+
color: theme.palette.text.secondary
|
|
27486
|
+
},
|
|
27487
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.House, { size: 16 })
|
|
27488
|
+
}
|
|
27489
|
+
),
|
|
27490
|
+
user2 && showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27491
|
+
import_material46.IconButton,
|
|
27492
|
+
{
|
|
27493
|
+
"aria-label": "Management & settings",
|
|
27494
|
+
title: "Management & settings",
|
|
27495
|
+
onClick: (event) => {
|
|
27496
|
+
event.stopPropagation();
|
|
27497
|
+
window.location.href = managementPath;
|
|
27498
|
+
},
|
|
27499
|
+
sx: {
|
|
27500
|
+
flexShrink: 0,
|
|
27501
|
+
width: 30,
|
|
27502
|
+
height: 30,
|
|
27503
|
+
border: `1px solid ${(0, import_material46.alpha)(theme.palette.divider, 0.8)}`,
|
|
27504
|
+
color: theme.palette.text.secondary
|
|
27505
|
+
},
|
|
27506
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.SlidersHorizontal, { size: 16 })
|
|
27507
|
+
}
|
|
27508
|
+
),
|
|
27574
27509
|
user2 && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [
|
|
27575
27510
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27576
27511
|
import_material46.Box,
|
|
@@ -27586,7 +27521,7 @@ var init_conversation_drawer = __esm({
|
|
|
27586
27521
|
border: `1px solid ${(0, import_material46.alpha)(theme.palette.divider, 0.8)}`,
|
|
27587
27522
|
color: theme.palette.text.secondary
|
|
27588
27523
|
},
|
|
27589
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27524
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Settings, { size: 16 })
|
|
27590
27525
|
}
|
|
27591
27526
|
),
|
|
27592
27527
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
@@ -27607,7 +27542,7 @@ var init_conversation_drawer = __esm({
|
|
|
27607
27542
|
color: theme.palette.error.main,
|
|
27608
27543
|
"&:hover": { bgcolor: (0, import_material46.alpha)(theme.palette.error.main, 0.1) }
|
|
27609
27544
|
},
|
|
27610
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27545
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.LogOut, { size: 16 })
|
|
27611
27546
|
}
|
|
27612
27547
|
)
|
|
27613
27548
|
] })
|
|
@@ -27657,7 +27592,7 @@ var init_conversation_drawer = __esm({
|
|
|
27657
27592
|
},
|
|
27658
27593
|
sx: { color: theme.palette.error.main },
|
|
27659
27594
|
children: [
|
|
27660
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
27595
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Trash2, { size: 16, color: theme.palette.error.main }) }),
|
|
27661
27596
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_material46.ListItemText, { children: "Clear All Conversations" })
|
|
27662
27597
|
]
|
|
27663
27598
|
}
|
|
@@ -27696,13 +27631,13 @@ var init_conversation_drawer = __esm({
|
|
|
27696
27631
|
});
|
|
27697
27632
|
|
|
27698
27633
|
// src/chat/enhanced-mobile-conversations-modal.tsx
|
|
27699
|
-
var import_react58, import_material47,
|
|
27634
|
+
var import_react58, import_material47, import_lucide_react14, import_styles31, import_jsx_runtime47, BANDIT_AVATAR2, coerceOptionalString2, deriveInitials2, EnhancedMobileConversationsModal, enhanced_mobile_conversations_modal_default;
|
|
27700
27635
|
var init_enhanced_mobile_conversations_modal = __esm({
|
|
27701
27636
|
"src/chat/enhanced-mobile-conversations-modal.tsx"() {
|
|
27702
27637
|
"use strict";
|
|
27703
27638
|
import_react58 = require("react");
|
|
27704
27639
|
import_material47 = require("@mui/material");
|
|
27705
|
-
|
|
27640
|
+
import_lucide_react14 = require("lucide-react");
|
|
27706
27641
|
import_styles31 = require("@mui/material/styles");
|
|
27707
27642
|
init_conversationStore();
|
|
27708
27643
|
init_projectStore();
|
|
@@ -28145,7 +28080,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28145
28080
|
}
|
|
28146
28081
|
}
|
|
28147
28082
|
},
|
|
28148
|
-
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28083
|
+
children: syncStatus === "error" ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.CircleAlert, {}) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.RefreshCw, {})
|
|
28149
28084
|
}
|
|
28150
28085
|
),
|
|
28151
28086
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28154,7 +28089,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28154
28089
|
onClick: () => setMemoryModalOpen(true),
|
|
28155
28090
|
"aria-label": "Memory",
|
|
28156
28091
|
sx: { color: theme.palette.text.secondary },
|
|
28157
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28092
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Brain, {})
|
|
28158
28093
|
}
|
|
28159
28094
|
),
|
|
28160
28095
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28162,7 +28097,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28162
28097
|
{
|
|
28163
28098
|
onClick: () => setProjectManagementOpen(true),
|
|
28164
28099
|
sx: { color: theme.palette.text.secondary },
|
|
28165
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28100
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Folder, {})
|
|
28166
28101
|
}
|
|
28167
28102
|
),
|
|
28168
28103
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28170,7 +28105,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28170
28105
|
{
|
|
28171
28106
|
onClick: handleMenuOpen,
|
|
28172
28107
|
sx: { color: theme.palette.text.secondary },
|
|
28173
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28108
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.MoreVertical, {})
|
|
28174
28109
|
}
|
|
28175
28110
|
),
|
|
28176
28111
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28178,7 +28113,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28178
28113
|
{
|
|
28179
28114
|
onClick: onClose,
|
|
28180
28115
|
sx: { color: theme.palette.text.secondary },
|
|
28181
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28116
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.X, {})
|
|
28182
28117
|
}
|
|
28183
28118
|
)
|
|
28184
28119
|
] })
|
|
@@ -28194,7 +28129,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28194
28129
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
28195
28130
|
variant: "outlined",
|
|
28196
28131
|
InputProps: {
|
|
28197
|
-
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28132
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.InputAdornment, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Search, { size: 16, color: theme.palette.text.secondary }) }),
|
|
28198
28133
|
endAdornment: searchQuery && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.InputAdornment, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28199
28134
|
import_material47.IconButton,
|
|
28200
28135
|
{
|
|
@@ -28202,7 +28137,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28202
28137
|
size: "small",
|
|
28203
28138
|
edge: "end",
|
|
28204
28139
|
sx: { color: theme.palette.text.secondary },
|
|
28205
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28140
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.X, { size: 16 })
|
|
28206
28141
|
}
|
|
28207
28142
|
) })
|
|
28208
28143
|
}
|
|
@@ -28358,7 +28293,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28358
28293
|
justifyContent: "center",
|
|
28359
28294
|
flexShrink: 0
|
|
28360
28295
|
},
|
|
28361
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28296
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Folder, { size: 16, color: theme.palette.success.main })
|
|
28362
28297
|
}
|
|
28363
28298
|
),
|
|
28364
28299
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28369,7 +28304,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28369
28304
|
children: "New Project"
|
|
28370
28305
|
}
|
|
28371
28306
|
),
|
|
28372
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.IconButton, { size: "small", sx: { color: theme.palette.success.main }, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28307
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.IconButton, { size: "small", sx: { color: theme.palette.success.main }, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Plus, { size: 16 }) })
|
|
28373
28308
|
]
|
|
28374
28309
|
}
|
|
28375
28310
|
),
|
|
@@ -28389,7 +28324,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28389
28324
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.Divider, { sx: { flex: 1, opacity: 0.6 } }),
|
|
28390
28325
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_material47.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
28391
28326
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28392
|
-
|
|
28327
|
+
import_lucide_react14.Inbox,
|
|
28393
28328
|
{
|
|
28394
28329
|
size: 14,
|
|
28395
28330
|
color: theme.palette.text.disabled,
|
|
@@ -28584,7 +28519,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28584
28519
|
createNewConversation();
|
|
28585
28520
|
onClose();
|
|
28586
28521
|
},
|
|
28587
|
-
startIcon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28522
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Plus, { size: 18 }),
|
|
28588
28523
|
sx: {
|
|
28589
28524
|
pointerEvents: "auto",
|
|
28590
28525
|
textTransform: "none",
|
|
@@ -28675,7 +28610,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28675
28610
|
border: `1px solid ${(0, import_styles31.alpha)(theme.palette.divider, 0.8)}`,
|
|
28676
28611
|
color: theme.palette.text.secondary
|
|
28677
28612
|
},
|
|
28678
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28613
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.House, { size: 16 })
|
|
28679
28614
|
}
|
|
28680
28615
|
),
|
|
28681
28616
|
user2 && showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28694,7 +28629,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28694
28629
|
border: `1px solid ${(0, import_styles31.alpha)(theme.palette.divider, 0.8)}`,
|
|
28695
28630
|
color: theme.palette.text.secondary
|
|
28696
28631
|
},
|
|
28697
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28632
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.SlidersHorizontal, { size: 16 })
|
|
28698
28633
|
}
|
|
28699
28634
|
),
|
|
28700
28635
|
user2 && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, { children: [
|
|
@@ -28712,7 +28647,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28712
28647
|
border: `1px solid ${(0, import_styles31.alpha)(theme.palette.divider, 0.8)}`,
|
|
28713
28648
|
color: theme.palette.text.secondary
|
|
28714
28649
|
},
|
|
28715
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28650
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Settings, { size: 16 })
|
|
28716
28651
|
}
|
|
28717
28652
|
),
|
|
28718
28653
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28733,7 +28668,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28733
28668
|
color: theme.palette.error.main,
|
|
28734
28669
|
"&:hover": { bgcolor: (0, import_styles31.alpha)(theme.palette.error.main, 0.1) }
|
|
28735
28670
|
},
|
|
28736
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28671
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.LogOut, { size: 16 })
|
|
28737
28672
|
}
|
|
28738
28673
|
)
|
|
28739
28674
|
] })
|
|
@@ -28786,7 +28721,7 @@ var init_enhanced_mobile_conversations_modal = __esm({
|
|
|
28786
28721
|
disabled: visibleConversationCount === 0,
|
|
28787
28722
|
sx: { color: theme.palette.error.main },
|
|
28788
28723
|
children: [
|
|
28789
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28724
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.Trash2, { size: 16, color: theme.palette.error.main }) }),
|
|
28790
28725
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_material47.ListItemText, { children: "Clear All Conversations" })
|
|
28791
28726
|
]
|
|
28792
28727
|
}
|
|
@@ -28916,24 +28851,8 @@ var init_chat_app_bar = __esm({
|
|
|
28916
28851
|
const { settings: packageSettings } = usePackageSettingsStore();
|
|
28917
28852
|
const isPlaygroundRoute = typeof window !== "undefined" && window.location.pathname.includes("/playground");
|
|
28918
28853
|
const isPlaygroundMode3 = Boolean(packageSettings?.playgroundMode) || (packageSettings?.gatewayApiUrl ?? "").toLowerCase().startsWith("playground://") || typeof window !== "undefined" && window.location.pathname.startsWith("/playground");
|
|
28919
|
-
const
|
|
28920
|
-
const {
|
|
28921
|
-
syncEnabled,
|
|
28922
|
-
syncStatus,
|
|
28923
|
-
lastSyncAt,
|
|
28924
|
-
pendingCount,
|
|
28925
|
-
warningConversations,
|
|
28926
|
-
oversizedConversations,
|
|
28927
|
-
triggerSync,
|
|
28928
|
-
setSyncEnabled
|
|
28929
|
-
} = useConversationSyncStore((state) => ({
|
|
28854
|
+
const { syncEnabled, setSyncEnabled } = useConversationSyncStore((state) => ({
|
|
28930
28855
|
syncEnabled: state.syncEnabled,
|
|
28931
|
-
syncStatus: state.status,
|
|
28932
|
-
lastSyncAt: state.lastSyncAt,
|
|
28933
|
-
pendingCount: state.pendingConversationUpserts.size + state.pendingConversationDeletes.size + state.pendingProjectUpserts.size + state.pendingProjectDeletes.size,
|
|
28934
|
-
warningConversations: state.warningConversations,
|
|
28935
|
-
oversizedConversations: state.oversizedConversations,
|
|
28936
|
-
triggerSync: state.runSync,
|
|
28937
28856
|
setSyncEnabled: state.setSyncEnabled
|
|
28938
28857
|
}), import_shallow2.shallow);
|
|
28939
28858
|
(0, import_react59.useEffect)(() => {
|
|
@@ -28945,57 +28864,6 @@ var init_chat_app_bar = __esm({
|
|
|
28945
28864
|
});
|
|
28946
28865
|
}
|
|
28947
28866
|
}, [isPlaygroundMode3, syncEnabled, setSyncEnabled]);
|
|
28948
|
-
const syncSpinSx = {
|
|
28949
|
-
animation: "spin 1s linear infinite",
|
|
28950
|
-
"@keyframes spin": {
|
|
28951
|
-
"0%": { transform: "rotate(0deg)" },
|
|
28952
|
-
"100%": { transform: "rotate(360deg)" }
|
|
28953
|
-
}
|
|
28954
|
-
};
|
|
28955
|
-
const syncIndicatorIcon = (() => {
|
|
28956
|
-
if (isPlaygroundMode3 || !syncEnabled) {
|
|
28957
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CloudOffIcon, { fontSize: "small", color: "disabled" });
|
|
28958
|
-
}
|
|
28959
|
-
switch (syncStatus) {
|
|
28960
|
-
case "syncing":
|
|
28961
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SyncIcon, { fontSize: "small", sx: syncSpinSx, color: "primary" });
|
|
28962
|
-
case "error":
|
|
28963
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ErrorOutlineIcon, { fontSize: "small", color: "error" });
|
|
28964
|
-
case "idle":
|
|
28965
|
-
default:
|
|
28966
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CloudDoneIcon, { fontSize: "small", color: "success" });
|
|
28967
|
-
}
|
|
28968
|
-
})();
|
|
28969
|
-
const syncTooltip = (() => {
|
|
28970
|
-
if (isPlaygroundMode3) {
|
|
28971
|
-
return "Cloud sync is unavailable in playground mode.";
|
|
28972
|
-
}
|
|
28973
|
-
if (!syncEnabled) {
|
|
28974
|
-
return "Cloud sync is disabled. Enable it from Management > Preferences.";
|
|
28975
|
-
}
|
|
28976
|
-
let base;
|
|
28977
|
-
if (oversizedConversations.length > 0) {
|
|
28978
|
-
base = "Some conversations are too large for Bandit Cloud. Start a new conversation to keep syncing.";
|
|
28979
|
-
} else if (syncStatus === "syncing") {
|
|
28980
|
-
base = "Syncing changes to Bandit Cloud\u2026";
|
|
28981
|
-
} else if (warningConversations.length > 0) {
|
|
28982
|
-
base = "Conversations are nearing the Bandit Cloud limit. Consider starting a new one soon.";
|
|
28983
|
-
} else if (syncStatus === "error") {
|
|
28984
|
-
base = "Sync needs attention. Visit Management > Preferences for details.";
|
|
28985
|
-
} else {
|
|
28986
|
-
base = "Conversations are in sync with Bandit Cloud.";
|
|
28987
|
-
}
|
|
28988
|
-
const pending = pendingCount > 0 ? ` ${pendingCount} change${pendingCount === 1 ? "" : "s"} queued.` : "";
|
|
28989
|
-
const last = lastSyncAt ? ` Last sync ${new Date(lastSyncAt).toLocaleTimeString()}.` : "";
|
|
28990
|
-
return `${base}${pending}${last}`;
|
|
28991
|
-
})();
|
|
28992
|
-
const syncButtonDisabled = isPlaygroundMode3 || !syncEnabled;
|
|
28993
|
-
const handleSyncBadgeClick = () => {
|
|
28994
|
-
if (isPlaygroundMode3 || !syncEnabled || syncStatus === "syncing") {
|
|
28995
|
-
return;
|
|
28996
|
-
}
|
|
28997
|
-
void triggerSync({ force: true });
|
|
28998
|
-
};
|
|
28999
28867
|
const { hasTTS, hasSTT, isAdmin, getCurrentTier, hasLimitedAdminDashboard, isSubscribed } = useFeatures();
|
|
29000
28868
|
const { showVoiceControls, showLimitedAdminPanel } = useFeatureVisibility();
|
|
29001
28869
|
const frontierEligible = (() => {
|
|
@@ -29046,37 +28914,6 @@ var init_chat_app_bar = __esm({
|
|
|
29046
28914
|
useEngineStore.getState().fetchEngines();
|
|
29047
28915
|
}, []);
|
|
29048
28916
|
const pendingModelAvatar = useModelStore.getState().availableModels.find((m) => m.name === pendingModel)?.avatarBase64 || modelAvatars3[pendingModel || ""] || banditHead4;
|
|
29049
|
-
const resolvedHomeUrl = preferences.homeUrl?.trim() || packageSettings?.homeUrl?.trim() || "";
|
|
29050
|
-
const homeTooltip = (() => {
|
|
29051
|
-
if (!resolvedHomeUrl) return "Home";
|
|
29052
|
-
try {
|
|
29053
|
-
return `Home (${new URL(resolvedHomeUrl).hostname})`;
|
|
29054
|
-
} catch {
|
|
29055
|
-
return "Home";
|
|
29056
|
-
}
|
|
29057
|
-
})();
|
|
29058
|
-
function goToHome() {
|
|
29059
|
-
if (resolvedHomeUrl) {
|
|
29060
|
-
window.location.href = resolvedHomeUrl;
|
|
29061
|
-
return;
|
|
29062
|
-
}
|
|
29063
|
-
if (typeof window !== "undefined") {
|
|
29064
|
-
const navigatorWithStandalone = window.navigator;
|
|
29065
|
-
const isStandalone = window.matchMedia?.("(display-mode: standalone)").matches || navigatorWithStandalone.standalone === true;
|
|
29066
|
-
if (isStandalone) {
|
|
29067
|
-
try {
|
|
29068
|
-
sessionStorage.setItem("banditPwaStayOnHome", "true");
|
|
29069
|
-
} catch (error) {
|
|
29070
|
-
debugLogger.warn("[chat-app-bar] Unable to persist home preference", {
|
|
29071
|
-
error: error instanceof Error ? error.message : String(error)
|
|
29072
|
-
});
|
|
29073
|
-
}
|
|
29074
|
-
safeNavigate("/?mode=home");
|
|
29075
|
-
return;
|
|
29076
|
-
}
|
|
29077
|
-
}
|
|
29078
|
-
safeNavigate("/");
|
|
29079
|
-
}
|
|
29080
28917
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
|
|
29081
28918
|
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
29082
28919
|
import_material49.Box,
|
|
@@ -29203,72 +29040,6 @@ var init_chat_app_bar = __esm({
|
|
|
29203
29040
|
}
|
|
29204
29041
|
},
|
|
29205
29042
|
children: [
|
|
29206
|
-
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material49.Tooltip, { title: homeTooltip, arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
29207
|
-
import_material49.IconButton,
|
|
29208
|
-
{
|
|
29209
|
-
onClick: goToHome,
|
|
29210
|
-
sx: pillButtonStyles,
|
|
29211
|
-
"aria-label": "Go to home page",
|
|
29212
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(HomeIcon, {})
|
|
29213
|
-
}
|
|
29214
|
-
) }),
|
|
29215
|
-
showLimitedAdminPanel() && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material49.Tooltip, { title: "Management & Settings", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
29216
|
-
import_material49.IconButton,
|
|
29217
|
-
{
|
|
29218
|
-
onClick: () => safeNavigate(managementPath),
|
|
29219
|
-
sx: {
|
|
29220
|
-
...pillButtonStyles,
|
|
29221
|
-
...typeof window !== "undefined" && window.location.pathname === managementPath && {
|
|
29222
|
-
bgcolor: theme.palette.primary.main + "20",
|
|
29223
|
-
color: theme.palette.primary.main
|
|
29224
|
-
}
|
|
29225
|
-
},
|
|
29226
|
-
"aria-label": "Open management settings",
|
|
29227
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SettingsIcon, {})
|
|
29228
|
-
}
|
|
29229
|
-
) }),
|
|
29230
|
-
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material49.Tooltip, { title: syncTooltip, arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
29231
|
-
import_material49.IconButton,
|
|
29232
|
-
{
|
|
29233
|
-
onClick: handleSyncBadgeClick,
|
|
29234
|
-
disabled: syncButtonDisabled,
|
|
29235
|
-
sx: {
|
|
29236
|
-
...pillButtonStyles,
|
|
29237
|
-
color: syncButtonDisabled ? theme.palette.action.disabled : theme.palette.primary.main,
|
|
29238
|
-
bgcolor: syncButtonDisabled ? "transparent" : syncStatus === "error" ? theme.palette.error.main + "20" : theme.palette.primary.main + "12",
|
|
29239
|
-
"&:hover": syncButtonDisabled ? {} : {
|
|
29240
|
-
bgcolor: syncStatus === "error" ? theme.palette.error.main + "30" : theme.palette.primary.main + "20"
|
|
29241
|
-
}
|
|
29242
|
-
},
|
|
29243
|
-
"aria-label": "Conversation sync status",
|
|
29244
|
-
children: [
|
|
29245
|
-
syncIndicatorIcon,
|
|
29246
|
-
pendingCount > 0 && !syncButtonDisabled && syncStatus !== "syncing" && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
29247
|
-
import_material49.Box,
|
|
29248
|
-
{
|
|
29249
|
-
sx: {
|
|
29250
|
-
position: "absolute",
|
|
29251
|
-
top: -2,
|
|
29252
|
-
right: -2,
|
|
29253
|
-
minWidth: 16,
|
|
29254
|
-
height: 16,
|
|
29255
|
-
px: 0.3,
|
|
29256
|
-
bgcolor: theme.palette.warning.main,
|
|
29257
|
-
color: theme.palette.getContrastText(theme.palette.warning.main),
|
|
29258
|
-
borderRadius: "999px",
|
|
29259
|
-
display: "flex",
|
|
29260
|
-
alignItems: "center",
|
|
29261
|
-
justifyContent: "center",
|
|
29262
|
-
fontSize: "0.6rem",
|
|
29263
|
-
fontWeight: 600,
|
|
29264
|
-
border: `2px solid ${background}`
|
|
29265
|
-
},
|
|
29266
|
-
children: pendingCount > 9 ? "9+" : pendingCount
|
|
29267
|
-
}
|
|
29268
|
-
)
|
|
29269
|
-
]
|
|
29270
|
-
}
|
|
29271
|
-
) }),
|
|
29272
29043
|
!isMobile && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material49.Tooltip, { title: `${drawerOpen ? "Close" : "Open"} Conversations`, arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
29273
29044
|
import_material49.IconButton,
|
|
29274
29045
|
{
|
|
@@ -29283,7 +29054,7 @@ var init_chat_app_bar = __esm({
|
|
|
29283
29054
|
"aria-label": `${drawerOpen ? "Close" : "Open"} conversations drawer`,
|
|
29284
29055
|
"aria-pressed": drawerOpen,
|
|
29285
29056
|
children: [
|
|
29286
|
-
|
|
29057
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PanelLeftIcon, {}),
|
|
29287
29058
|
conversations.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
29288
29059
|
import_material49.Box,
|
|
29289
29060
|
{
|
|
@@ -31562,6 +31333,10 @@ var init_chat2 = __esm({
|
|
|
31562
31333
|
// enhanced-mobile-conversations-modal.tsx.
|
|
31563
31334
|
transform: isMobile && mobileConversationsOpen ? "translateX(min(calc(100vw - 56px), 360px))" : "none",
|
|
31564
31335
|
borderRadius: isMobile && mobileConversationsOpen ? "24px" : drawerOpen && !isMobile ? "24px 0 0 24px" : 0,
|
|
31336
|
+
// A hairline border makes the rounded card read even when the page
|
|
31337
|
+
// behind is the same near-black as the shell — shadow alone is
|
|
31338
|
+
// invisible dark-on-dark.
|
|
31339
|
+
border: isMobile && mobileConversationsOpen || drawerOpen && !isMobile ? `1px solid ${theme.palette.mode === "dark" ? "rgba(255,255,255,0.14)" : "rgba(0,0,0,0.12)"}` : "none",
|
|
31565
31340
|
boxShadow: isMobile && mobileConversationsOpen || drawerOpen && !isMobile ? `0 12px 40px ${theme.palette.mode === "dark" ? "rgba(0,0,0,0.55)" : "rgba(0,0,0,0.25)"}` : "none",
|
|
31566
31341
|
transition: "left 0.3s ease-in-out, width 0.3s ease-in-out, transform 0.3s ease-in-out, border-radius 0.3s ease-in-out"
|
|
31567
31342
|
}),
|