@burtson-labs/bandit-engine 2.0.111 → 2.0.113

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/index.js CHANGED
@@ -34979,7 +34979,6 @@ var PersonalitiesTab = ({
34979
34979
  const theme = (0, import_styles31.useTheme)();
34980
34980
  const isMobile = (0, import_useMediaQuery.default)(theme.breakpoints.down("sm"));
34981
34981
  const [personalityTabIndex, setPersonalityTabIndex] = (0, import_react48.useState)(0);
34982
- const sectionGap = isMobile ? 2 : 3;
34983
34982
  const tabWrapperStyles = isMobile ? { flexDirection: "column", gap: 0.35, fontSize: "0.78rem" } : { flexDirection: "row", gap: 0.75, fontSize: "0.95rem" };
34984
34983
  const [restoreDialogOpen, setRestoreDialogOpen] = (0, import_react48.useState)(false);
34985
34984
  const [deleteDialogOpen, setDeleteDialogOpen] = (0, import_react48.useState)(false);
@@ -35628,49 +35627,19 @@ var PersonalitiesTab = ({
35628
35627
  ] })
35629
35628
  ] });
35630
35629
  const renderCreateEditTab = () => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { p: { xs: 1.5, sm: 2 } }, children: [
35631
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: { xs: 2.5, md: 4 } }, children: [
35630
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: { xs: 1.25, md: 1.5 } }, children: [
35632
35631
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35633
35632
  import_material40.Typography,
35634
35633
  {
35635
- variant: "h5",
35636
- sx: {
35637
- fontWeight: 600,
35638
- mb: 1,
35639
- color: "primary.main",
35640
- fontSize: { xs: "1.55rem", sm: "1.7rem" }
35641
- },
35634
+ variant: "overline",
35635
+ sx: { fontWeight: 700, color: "primary.main", letterSpacing: 0.5, display: "block" },
35642
35636
  children: localSelectedModel.selectedModel ? "Edit Personality" : "Create New Personality"
35643
35637
  }
35644
35638
  ),
35645
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35646
- import_material40.Typography,
35647
- {
35648
- variant: "body1",
35649
- sx: { color: "text.secondary", mb: { xs: 2, md: 3 }, fontSize: { xs: "0.95rem", sm: "1rem" }, lineHeight: 1.5 },
35650
- children: localSelectedModel.selectedModel ? `Customize and modify the "${localSelectedModel.selectedModel}" personality to better suit your needs.` : "Design a custom AI personality that matches your brand, use case, and communication style."
35651
- }
35652
- ),
35653
- !localSelectedModel.selectedModel && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
35654
- import_material40.Alert,
35655
- {
35656
- severity: "info",
35657
- sx: {
35658
- mb: { xs: 2.5, md: 3 },
35659
- borderRadius: 2,
35660
- border: "1px solid rgba(25, 118, 210, 0.2)",
35661
- background: "linear-gradient(135deg, rgba(25, 118, 210, 0.05) 0%, rgba(66, 165, 245, 0.05) 100%)",
35662
- px: { xs: 1.5, sm: 2 },
35663
- py: { xs: 1.25, sm: 1.5 }
35664
- },
35665
- children: [
35666
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { fontWeight: 600, color: "primary.main", fontSize: { xs: "0.85rem", sm: "0.9rem" } }, children: "Creating a new personality" }),
35667
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { color: "text.secondary", fontSize: { xs: "0.85rem", sm: "0.9rem" }, lineHeight: 1.5 }, children: "Fill out the form below to create your custom AI assistant. Start with a template from the Templates tab, or build from scratch!" })
35668
- ]
35669
- }
35670
- )
35639
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", color: "text.secondary", children: localSelectedModel.selectedModel ? `Customize the "${localSelectedModel.selectedModel}" personality.` : "Design a custom AI personality matching your brand and use case." })
35671
35640
  ] }),
35672
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: sectionGap }, children: [
35673
- localSelectedModel.selectedModel && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", alignItems: "center", mt: 2, mb: 3 }, children: [
35641
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: 1.5 }, children: [
35642
+ localSelectedModel.selectedModel && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", alignItems: "center", mb: 1.5 }, children: [
35674
35643
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35675
35644
  import_material40.Avatar,
35676
35645
  {
@@ -35681,10 +35650,10 @@ var PersonalitiesTab = ({
35681
35650
  }
35682
35651
  ),
35683
35652
  alt: localSelectedModel.selectedModel,
35684
- sx: { width: 48, height: 48, mr: 2, filter: "brightness(1.5)" }
35653
+ sx: { width: 36, height: 36, mr: 1.5, filter: "brightness(1.5)" }
35685
35654
  }
35686
35655
  ),
35687
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { fontWeight: 600, color: "text.primary" }, children: localSelectedModel.selectedModel })
35656
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { fontWeight: 600, color: "text.primary" }, children: localSelectedModel.selectedModel })
35688
35657
  ] }),
35689
35658
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
35690
35659
  import_material40.TextField,
@@ -35720,7 +35689,7 @@ var PersonalitiesTab = ({
35720
35689
  },
35721
35690
  fullWidth: true,
35722
35691
  select: true,
35723
- sx: { mb: sectionGap },
35692
+ sx: { mb: 1.5 },
35724
35693
  children: [
35725
35694
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.MenuItem, { value: "", children: "Create New Personality" }),
35726
35695
  availableModels.map((model, index) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.MenuItem, { value: model.name, children: model.name }, index))
@@ -35728,34 +35697,34 @@ var PersonalitiesTab = ({
35728
35697
  }
35729
35698
  )
35730
35699
  ] }),
35731
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35732
- import_material40.TextField,
35733
- {
35734
- label: "Personality Name",
35735
- variant: "outlined",
35736
- value: localSelectedModel.name,
35737
- onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, name: e.target.value }),
35738
- fullWidth: true,
35739
- placeholder: "e.g., My Custom Assistant",
35740
- sx: { mb: sectionGap }
35741
- }
35742
- ),
35743
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35744
- import_material40.TextField,
35745
- {
35746
- label: "Tagline",
35747
- variant: "outlined",
35748
- value: localSelectedModel.tagline,
35749
- onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, tagline: e.target.value }),
35750
- fullWidth: true,
35751
- placeholder: "e.g., Your helpful companion for daily tasks",
35752
- sx: { mb: sectionGap }
35753
- }
35754
- ),
35755
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: sectionGap }, children: [
35756
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Mood & Personality" }),
35757
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Click any mood to automatically add personality instructions to your system prompt:" }),
35758
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: moodSuggestions.map((mood) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35700
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", flexDirection: { xs: "column", sm: "row" }, gap: 1.5, mb: 1.5 }, children: [
35701
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35702
+ import_material40.TextField,
35703
+ {
35704
+ label: "Personality Name",
35705
+ variant: "outlined",
35706
+ value: localSelectedModel.name,
35707
+ onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, name: e.target.value }),
35708
+ fullWidth: true,
35709
+ placeholder: "e.g., My Custom Assistant"
35710
+ }
35711
+ ),
35712
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35713
+ import_material40.TextField,
35714
+ {
35715
+ label: "Tagline",
35716
+ variant: "outlined",
35717
+ value: localSelectedModel.tagline,
35718
+ onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, tagline: e.target.value }),
35719
+ fullWidth: true,
35720
+ placeholder: "e.g., Your helpful companion for daily tasks"
35721
+ }
35722
+ )
35723
+ ] }),
35724
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: 1.5 }, children: [
35725
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Mood & Personality" }),
35726
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Click a mood to add personality instructions to your prompt." }),
35727
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: moodSuggestions.map((mood) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35759
35728
  import_material40.Chip,
35760
35729
  {
35761
35730
  label: mood.label,
@@ -35780,10 +35749,10 @@ var PersonalitiesTab = ({
35780
35749
  mood.label
35781
35750
  )) })
35782
35751
  ] }),
35783
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: sectionGap }, children: [
35784
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Formatting Tips" }),
35785
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Click any tip to add professional formatting to your system prompt:" }),
35786
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
35752
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: 1.5 }, children: [
35753
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Formatting Tips" }),
35754
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Click a tip to add formatting guidance to your prompt." }),
35755
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: [
35787
35756
  { label: "Be Specific", text: "Always be specific and detailed in your responses.", color: "#2196F3" },
35788
35757
  { label: "Stay In Character", text: "Maintain your personality consistently throughout the conversation.", color: "#4CAF50" },
35789
35758
  { label: "Ask Questions", text: "Ask clarifying questions when you need more information to help effectively.", color: "#FF9800" },
@@ -35834,10 +35803,10 @@ var PersonalitiesTab = ({
35834
35803
  tip.label
35835
35804
  )) })
35836
35805
  ] }),
35837
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: sectionGap }, children: [
35838
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Formatting Tools" }),
35839
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Add visual formatting to make your AI responses more engaging:" }),
35840
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
35806
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: 1.5 }, children: [
35807
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Formatting Tools" }),
35808
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Add visual formatting to make responses more engaging." }),
35809
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: [
35841
35810
  {
35842
35811
  label: "Highlight Text",
35843
35812
  text: "Use <mark>highlighted text</mark> to emphasize important points.",
@@ -35934,23 +35903,22 @@ var PersonalitiesTab = ({
35934
35903
  onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, systemPrompt: e.target.value }),
35935
35904
  fullWidth: true,
35936
35905
  multiline: true,
35937
- rows: 10,
35906
+ rows: 8,
35938
35907
  placeholder: "Describe how your assistant should behave...",
35939
35908
  InputLabelProps: { shrink: true },
35940
35909
  InputProps: {
35941
35910
  style: {
35942
- minHeight: isMobile ? "auto" : "180px",
35943
- maxHeight: "360px"
35911
+ maxHeight: "320px"
35944
35912
  }
35945
35913
  },
35946
- sx: { mb: 3 }
35914
+ sx: { mb: 1.5 }
35947
35915
  }
35948
35916
  ),
35949
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: 4 }, children: [
35950
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Select an Avatar" }),
35951
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Choose from our curated collection of avatars to give your AI personality a face:" }),
35952
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { mb: 1, color: "primary.main", fontWeight: 600, display: "block" }, children: "Robotic Collection" }),
35953
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", gap: 2, mb: 3, flexWrap: "wrap" }, children: [
35917
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mb: 1.5 }, children: [
35918
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Select an Avatar" }),
35919
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Choose an avatar to give your personality a face." }),
35920
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { mb: 0.75, color: "primary.main", fontWeight: 600, display: "block" }, children: "Robotic Collection" }),
35921
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", gap: 1.5, mb: 1.5, flexWrap: "wrap" }, children: [
35954
35922
  { label: "Fembot", src: "https://cdn.burtson.ai/avatars/fembot.png" },
35955
35923
  { label: "Dudebot", src: "https://cdn.burtson.ai/avatars/dudebot.png" },
35956
35924
  { label: "Coolbot", src: "https://cdn.burtson.ai/avatars/coolbot.png" }
@@ -35964,8 +35932,8 @@ var PersonalitiesTab = ({
35964
35932
  setCustomAvatarBase64(null);
35965
35933
  },
35966
35934
  sx: {
35967
- width: 72,
35968
- height: 72,
35935
+ width: 56,
35936
+ height: 56,
35969
35937
  border: presetAvatar === src ? "3px solid #1976d2" : "2px solid transparent",
35970
35938
  cursor: "pointer",
35971
35939
  transition: "all 0.2s",
@@ -35979,8 +35947,8 @@ var PersonalitiesTab = ({
35979
35947
  },
35980
35948
  label
35981
35949
  )) }),
35982
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { mb: 1, color: "secondary.main", fontWeight: 600, display: "block" }, children: "\u{1F465} Professional Characters" }),
35983
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", gap: 2, mb: 3, flexWrap: "wrap" }, children: [
35950
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { mb: 0.75, color: "secondary.main", fontWeight: 600, display: "block" }, children: "Professional Characters" }),
35951
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", gap: 1.5, mb: 1.5, flexWrap: "wrap" }, children: [
35984
35952
  { label: "Business Professional", src: "https://cdn.burtson.ai/avatars/businessman.png", role: "Business & Strategy" },
35985
35953
  { label: "Data Scientist", src: "https://cdn.burtson.ai/avatars/datascience.png", role: "Analytics & Insights" },
35986
35954
  { label: "Support Specialist", src: "https://cdn.burtson.ai/avatars/support.png", role: "Customer Support" },
@@ -35989,7 +35957,7 @@ var PersonalitiesTab = ({
35989
35957
  { label: "Researcher", src: "https://cdn.burtson.ai/avatars/researcher.png", role: "Research & Analysis" },
35990
35958
  { label: "Startup Mentor", src: "https://cdn.burtson.ai/avatars/startupmentor.png", role: "Entrepreneurship" },
35991
35959
  { label: "Travel Expert", src: "https://cdn.burtson.ai/avatars/travel.png", role: "Travel & Adventure" }
35992
- ].map(({ label, src, role }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", flexDirection: "column", alignItems: "center", gap: 0.5 }, children: [
35960
+ ].map(({ label, src, role }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", flexDirection: "column", alignItems: "center", gap: 0.25 }, children: [
35993
35961
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
35994
35962
  import_material40.Avatar,
35995
35963
  {
@@ -36000,8 +35968,8 @@ var PersonalitiesTab = ({
36000
35968
  setCustomAvatarBase64(null);
36001
35969
  },
36002
35970
  sx: {
36003
- width: 72,
36004
- height: 72,
35971
+ width: 56,
35972
+ height: 56,
36005
35973
  border: presetAvatar === src ? "3px solid #1976d2" : "2px solid transparent",
36006
35974
  cursor: "pointer",
36007
35975
  transition: "all 0.2s",
@@ -36026,51 +35994,50 @@ var PersonalitiesTab = ({
36026
35994
  overflow: "hidden"
36027
35995
  }, children: role })
36028
35996
  ] }, label)) }),
36029
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { mb: 1, color: "warning.main", fontWeight: 600, display: "block" }, children: "Custom Upload" }),
36030
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
36031
- import_material40.Button,
36032
- {
36033
- variant: "outlined",
36034
- component: "label",
36035
- sx: {
36036
- mb: 2,
36037
- px: { xs: 2.2, sm: 3 },
36038
- py: { xs: 1.2, sm: 1.5 },
36039
- borderRadius: 2,
36040
- textTransform: "none",
36041
- fontWeight: 600,
36042
- borderStyle: "dashed",
36043
- borderWidth: 2,
36044
- "&:hover": {
35997
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { mb: 0.75, color: "warning.main", fontWeight: 600, display: "block" }, children: "Custom Upload" }),
35998
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", flexDirection: { xs: "column", sm: "row" }, alignItems: { sm: "center" }, gap: 1.5 }, children: [
35999
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
36000
+ import_material40.Button,
36001
+ {
36002
+ variant: "outlined",
36003
+ component: "label",
36004
+ sx: {
36005
+ borderRadius: 2,
36006
+ textTransform: "none",
36007
+ fontWeight: 600,
36045
36008
  borderStyle: "dashed",
36046
- borderWidth: 2
36009
+ borderWidth: 2,
36010
+ "&:hover": {
36011
+ borderStyle: "dashed",
36012
+ borderWidth: 2
36013
+ },
36014
+ width: { xs: "100%", sm: "auto" }
36047
36015
  },
36048
- width: { xs: "100%", sm: "auto" }
36049
- },
36050
- children: [
36051
- "Upload & Crop Custom Avatar",
36052
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36053
- "input",
36054
- {
36055
- type: "file",
36056
- accept: "image/png, image/jpeg, image/jpg",
36057
- hidden: true,
36058
- onChange: handleImageUpload
36059
- }
36060
- )
36061
- ]
36062
- }
36063
- ),
36064
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2, fontSize: "0.8rem" }, children: "\u2022 Supports JPG/PNG up to 10MB \u2022 Built-in cropper for perfect sizing \u2022 Final output: 512\xD7512px" }),
36065
- (customAvatarBase64 || presetAvatar) && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mt: 2, display: "flex", alignItems: "center", gap: 2 }, children: [
36016
+ children: [
36017
+ "Upload & Crop Custom Avatar",
36018
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36019
+ "input",
36020
+ {
36021
+ type: "file",
36022
+ accept: "image/png, image/jpeg, image/jpg",
36023
+ hidden: true,
36024
+ onChange: handleImageUpload
36025
+ }
36026
+ )
36027
+ ]
36028
+ }
36029
+ ),
36030
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", color: "text.secondary", children: "JPG/PNG up to 10MB \xB7 output 512\xD7512px" })
36031
+ ] }),
36032
+ (customAvatarBase64 || presetAvatar) && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { mt: 1.5, display: "flex", alignItems: "center", gap: 1.5 }, children: [
36066
36033
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36067
36034
  import_material40.Avatar,
36068
36035
  {
36069
36036
  src: customAvatarBase64 || presetAvatar,
36070
36037
  alt: "Avatar Preview",
36071
36038
  sx: {
36072
- width: 96,
36073
- height: 96,
36039
+ width: 56,
36040
+ height: 56,
36074
36041
  border: "3px solid",
36075
36042
  borderColor: "primary.main",
36076
36043
  boxShadow: 3
@@ -36101,14 +36068,14 @@ var PersonalitiesTab = ({
36101
36068
  zIndex: { xs: 5, sm: "auto" },
36102
36069
  display: "flex",
36103
36070
  flexDirection: { xs: "column", sm: "row" },
36104
- gap: { xs: 1.5, sm: 2 },
36071
+ gap: { xs: 1.5, sm: 1.5 },
36105
36072
  justifyContent: "flex-start",
36106
36073
  // Changed from flex-end to flex-start
36107
36074
  mr: { xs: 0, sm: 10 },
36108
36075
  // Add right margin to avoid FAB
36109
- mb: { xs: 8, sm: 2 },
36076
+ mb: { xs: 8, sm: 1.5 },
36110
36077
  // Add bottom margin on mobile for FAB clearance
36111
- mt: { xs: 1.5, sm: 0 },
36078
+ mt: { xs: 1.5, sm: 0.5 },
36112
36079
  p: { xs: 1.1, sm: 0 },
36113
36080
  borderRadius: { xs: 2, sm: 0 },
36114
36081
  border: { xs: "1px solid", sm: "none" },
@@ -36151,16 +36118,16 @@ var PersonalitiesTab = ({
36151
36118
  flexDirection: { xs: "column", md: "row" },
36152
36119
  alignItems: { xs: "flex-start", md: "center" },
36153
36120
  justifyContent: "space-between",
36154
- mb: { xs: 2, md: 3 },
36121
+ mb: { xs: 1.25, md: 1.5 },
36155
36122
  flexWrap: "wrap",
36156
- gap: { xs: 1.5, md: 2 }
36123
+ gap: { xs: 1, md: 1.5 }
36157
36124
  },
36158
36125
  children: [
36159
36126
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
36160
36127
  import_material40.Typography,
36161
36128
  {
36162
- variant: "h5",
36163
- sx: { fontWeight: 600, color: "primary.main", fontSize: { xs: "1.45rem", md: "1.65rem" } },
36129
+ variant: "subtitle2",
36130
+ sx: { fontWeight: 700, color: "primary.main" },
36164
36131
  children: [
36165
36132
  "Manage Personalities (",
36166
36133
  availableModels.length,
@@ -36168,14 +36135,13 @@ var PersonalitiesTab = ({
36168
36135
  ]
36169
36136
  }
36170
36137
  ),
36171
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", gap: { xs: 1, md: 2 }, flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
36138
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1, flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
36172
36139
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36173
36140
  import_material40.Button,
36174
36141
  {
36175
36142
  variant: "contained",
36176
36143
  color: "primary",
36177
- size: isMobile ? "medium" : "large",
36178
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(AutoAwesomeIcon, { fontSize: isMobile ? "small" : "medium" }),
36144
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(AutoAwesomeIcon, { fontSize: "small" }),
36179
36145
  onClick: () => {
36180
36146
  setLocalSelectedModel({
36181
36147
  name: "",
@@ -36188,15 +36154,9 @@ var PersonalitiesTab = ({
36188
36154
  setPersonalityTabIndex(1);
36189
36155
  },
36190
36156
  sx: {
36191
- px: { xs: 2.2, md: 3 },
36192
- py: { xs: 0.95, md: 1 },
36193
36157
  fontWeight: 600,
36194
36158
  borderRadius: 2,
36195
36159
  textTransform: "none",
36196
- boxShadow: 3,
36197
- "&:hover": {
36198
- boxShadow: 6
36199
- },
36200
36160
  width: { xs: "100%", sm: "auto" }
36201
36161
  },
36202
36162
  children: "Create Personality"
@@ -36216,10 +36176,10 @@ var PersonalitiesTab = ({
36216
36176
  ]
36217
36177
  }
36218
36178
  ),
36219
- availableModels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Card, { sx: { textAlign: "center", py: 8, border: "2px dashed", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.CardContent, { children: [
36220
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { fontWeight: 600, color: "text.primary" }, gutterBottom: true, children: "No Personalities Yet" }),
36221
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", color: "text.secondary", paragraph: true, children: "Get started by creating your first custom AI personality or choosing from our templates." }),
36222
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 2, justifyContent: "center", flexWrap: "wrap", mt: 3 }, children: [
36179
+ availableModels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Card, { sx: { textAlign: "center", py: 3, border: "1px dashed", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.CardContent, { children: [
36180
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "subtitle2", sx: { fontWeight: 700, color: "text.primary" }, gutterBottom: true, children: "No Personalities Yet" }),
36181
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", color: "text.secondary", children: "Create your first custom AI personality or choose from a template." }),
36182
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1.5, justifyContent: "center", flexWrap: "wrap", mt: 1.5 }, children: [
36223
36183
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36224
36184
  import_material40.Button,
36225
36185
  {
@@ -36236,7 +36196,7 @@ var PersonalitiesTab = ({
36236
36196
  setPresetAvatar(null);
36237
36197
  setPersonalityTabIndex(1);
36238
36198
  },
36239
- sx: { px: { xs: 2.4, md: 3 }, py: { xs: 0.95, md: 1 }, width: { xs: "100%", sm: "auto" } },
36199
+ sx: { width: { xs: "100%", sm: "auto" } },
36240
36200
  children: "Create From Scratch"
36241
36201
  }
36242
36202
  ),
@@ -36246,74 +36206,70 @@ var PersonalitiesTab = ({
36246
36206
  variant: "outlined",
36247
36207
  color: "primary",
36248
36208
  onClick: () => setPersonalityTabIndex(0),
36249
- sx: { px: { xs: 2.4, md: 3 }, py: { xs: 0.95, md: 1 }, width: { xs: "100%", sm: "auto" } },
36209
+ sx: { width: { xs: "100%", sm: "auto" } },
36250
36210
  children: "Browse Templates"
36251
36211
  }
36252
36212
  )
36253
36213
  ] })
36254
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexDirection: "column", gap: { xs: 2, md: 3 } }, children: availableModels.map((model) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Card, { sx: { border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.CardContent, { sx: { p: { xs: 2.5, sm: 3 } }, children: [
36255
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", alignItems: "center", mb: { xs: 1.5, md: 2 } }, children: [
36256
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36257
- import_material40.Avatar,
36258
- {
36259
- src: resolveAvatar(model),
36260
- alt: model.name,
36261
- sx: { width: { xs: 44, sm: 48 }, height: { xs: 44, sm: 48 }, mr: { xs: 1.5, sm: 2 } }
36262
- }
36263
- ),
36264
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { flex: 1 }, children: [
36265
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body1", sx: { fontWeight: 600, color: "text.primary" }, children: model.name }),
36266
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { color: "text.secondary", fontStyle: "italic" }, children: model.tagline })
36267
- ] })
36268
- ] }),
36269
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36270
- import_material40.Typography,
36271
- {
36272
- variant: "body2",
36273
- sx: {
36274
- color: "text.secondary",
36275
- mb: 3,
36276
- display: "-webkit-box",
36277
- WebkitLineClamp: 3,
36278
- WebkitBoxOrient: "vertical",
36279
- overflow: "hidden"
36280
- },
36281
- children: model.systemPrompt
36282
- }
36283
- ),
36284
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 2 }, children: [
36285
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36286
- import_material40.Button,
36287
- {
36288
- variant: "outlined",
36289
- color: "primary",
36290
- onClick: () => {
36291
- setLocalSelectedModel({
36292
- name: model.name,
36293
- tagline: model.tagline,
36294
- systemPrompt: model.systemPrompt,
36295
- selectedModel: model.name
36296
- });
36297
- setCustomAvatarBase64(model.avatarBase64 || null);
36298
- setPresetAvatar(null);
36299
- setPersonalityTabIndex(1);
36300
- },
36301
- sx: { flex: 1 },
36302
- children: "Edit"
36303
- }
36304
- ),
36305
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36306
- import_material40.Button,
36307
- {
36308
- variant: "outlined",
36309
- color: "error",
36310
- onClick: () => handleDeletePersonality(model.name),
36311
- sx: { flex: 1 },
36312
- children: "Delete"
36313
- }
36314
- )
36315
- ] })
36316
- ] }) }, model.name)) }),
36214
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: availableModels.map((model) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Card, { sx: { border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
36215
+ import_material40.CardContent,
36216
+ {
36217
+ sx: {
36218
+ p: 1,
36219
+ "&:last-child": { pb: 1 },
36220
+ display: "flex",
36221
+ alignItems: "center",
36222
+ gap: 1.5,
36223
+ flexWrap: { xs: "wrap", sm: "nowrap" }
36224
+ },
36225
+ children: [
36226
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36227
+ import_material40.Avatar,
36228
+ {
36229
+ src: resolveAvatar(model),
36230
+ alt: model.name,
36231
+ sx: { width: 40, height: 40, flexShrink: 0 }
36232
+ }
36233
+ ),
36234
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { flex: 1, minWidth: 0 }, children: [
36235
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "body2", sx: { fontWeight: 600, color: "text.primary", lineHeight: 1.2 }, noWrap: true, children: model.name }),
36236
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.Typography, { variant: "caption", sx: { color: "text.secondary", display: "block" }, noWrap: true, children: model.tagline })
36237
+ ] }),
36238
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1, flexShrink: 0, width: { xs: "100%", sm: "auto" } }, children: [
36239
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36240
+ import_material40.Button,
36241
+ {
36242
+ variant: "outlined",
36243
+ color: "primary",
36244
+ onClick: () => {
36245
+ setLocalSelectedModel({
36246
+ name: model.name,
36247
+ tagline: model.tagline,
36248
+ systemPrompt: model.systemPrompt,
36249
+ selectedModel: model.name
36250
+ });
36251
+ setCustomAvatarBase64(model.avatarBase64 || null);
36252
+ setPresetAvatar(null);
36253
+ setPersonalityTabIndex(1);
36254
+ },
36255
+ sx: { flex: { xs: 1, sm: "initial" } },
36256
+ children: "Edit"
36257
+ }
36258
+ ),
36259
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
36260
+ import_material40.Button,
36261
+ {
36262
+ variant: "outlined",
36263
+ color: "error",
36264
+ onClick: () => handleDeletePersonality(model.name),
36265
+ sx: { flex: { xs: 1, sm: "initial" } },
36266
+ children: "Delete"
36267
+ }
36268
+ )
36269
+ ] })
36270
+ ]
36271
+ }
36272
+ ) }, model.name)) }),
36317
36273
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_material40.Dialog, { open: restoreDialogOpen, onClose: () => setRestoreDialogOpen(false), children: [
36318
36274
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.DialogTitle, { children: "Restore Default Personalities?" }),
36319
36275
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.DialogContent, { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_material40.DialogContentText, { children: "This will delete all custom personalities and reset to the original configuration." }) }),
@@ -38129,7 +38085,7 @@ var BrandingTab = ({
38129
38085
  }
38130
38086
  };
38131
38087
  return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { height: "100%", display: "flex", flexDirection: "column", p: { xs: 1.5, sm: 2 } }, children: [
38132
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { mb: { xs: 2, md: 3 }, flex: "0 0 auto", display: "flex", flexDirection: "column", gap: 1 }, children: [
38088
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { mb: { xs: 1.5, md: 2 }, flex: "0 0 auto" }, children: [
38133
38089
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38134
38090
  import_material43.Typography,
38135
38091
  {
@@ -38138,30 +38094,22 @@ var BrandingTab = ({
38138
38094
  children: "Branding & Themes"
38139
38095
  }
38140
38096
  ),
38141
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38142
- import_material43.Typography,
38143
- {
38144
- variant: "body1",
38145
- sx: { color: "text.secondary", fontSize: { xs: "0.95rem", sm: "1rem" }, lineHeight: 1.5 },
38146
- children: "Customize your brand identity and visual appearance."
38147
- }
38148
- ),
38149
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Alert, { severity: "info", sx: { borderRadius: 2, px: { xs: 1.5, sm: 2 }, py: { xs: 1.25, sm: 1.5 } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Typography, { variant: "body2", sx: { fontSize: { xs: "0.82rem", sm: "0.88rem" }, lineHeight: 1.6 }, children: [
38150
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("strong", { children: "Logo requirements:" }),
38151
- " JPG or PNG up to 10MB. Uploads open a built-in cropper to help you finalize the perfect size. Leave any fields blank to fall back to Bandit defaults."
38152
- ] }) })
38097
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 1.5 }, children: "Customize your brand identity and visual appearance." }),
38098
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", lineHeight: 1.5 }, children: "Logo: JPG or PNG up to 10MB; uploads open a built-in cropper, and blank fields fall back to Bandit defaults." })
38153
38099
  ] }),
38154
38100
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
38155
38101
  import_material43.Paper,
38156
38102
  {
38157
38103
  sx: {
38158
- p: { xs: 1.5, sm: 2 },
38104
+ p: { xs: 1.5, sm: 1.75 },
38105
+ border: "1px solid",
38106
+ borderColor: "divider",
38159
38107
  borderRadius: 2,
38160
38108
  flex: 1,
38161
38109
  display: "flex",
38162
38110
  flexDirection: { xs: "column", md: "row" },
38163
- gap: { xs: 1.5, md: 2.5 },
38164
- mb: { xs: 2, md: 3 }
38111
+ gap: { xs: 1.5, md: 1.5 },
38112
+ mb: { xs: 1.25, md: 1.5 }
38165
38113
  },
38166
38114
  children: [
38167
38115
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
@@ -38171,15 +38119,12 @@ var BrandingTab = ({
38171
38119
  width: { xs: "100%", md: "26%" },
38172
38120
  display: "flex",
38173
38121
  flexDirection: "column",
38174
- height: { xs: "auto", md: 320 },
38175
- gap: { xs: 2, md: 0 }
38122
+ height: { xs: "auto", md: 260 },
38123
+ gap: { xs: 1.5, md: 0 }
38176
38124
  },
38177
38125
  children: [
38178
38126
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { flex: "1 1 auto", display: "flex", flexDirection: "column" }, children: [
38179
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, display: "flex", alignItems: "center", gap: 1, fontSize: "1rem", color: "text.primary" }, children: [
38180
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(UploadIcon, { color: "primary", fontSize: "small" }),
38181
- "Logo Upload"
38182
- ] }),
38127
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "overline", sx: { mb: 0.5, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary" }, children: "Logo Upload" }),
38183
38128
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
38184
38129
  import_material43.Box,
38185
38130
  {
@@ -38198,7 +38143,7 @@ var BrandingTab = ({
38198
38143
  transition: "all 0.3s ease",
38199
38144
  position: "relative",
38200
38145
  flex: "1 1 auto",
38201
- minHeight: 160,
38146
+ minHeight: 120,
38202
38147
  display: "flex",
38203
38148
  flexDirection: "column",
38204
38149
  alignItems: "center",
@@ -38237,7 +38182,7 @@ var BrandingTab = ({
38237
38182
  {
38238
38183
  className: "upload-icon",
38239
38184
  sx: {
38240
- fontSize: 56,
38185
+ fontSize: 32,
38241
38186
  color: "text.secondary",
38242
38187
  transition: "color 0.3s ease"
38243
38188
  }
@@ -38285,7 +38230,7 @@ var BrandingTab = ({
38285
38230
  )
38286
38231
  ] })
38287
38232
  ] }),
38288
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { mt: 2, flex: "0 0 auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38233
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { mt: 1.5, flex: "0 0 auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38289
38234
  import_material43.TextField,
38290
38235
  {
38291
38236
  label: "Custom Branding Text",
@@ -38305,15 +38250,12 @@ var BrandingTab = ({
38305
38250
  }
38306
38251
  ),
38307
38252
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { flex: 1, width: "100%" }, children: [
38308
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, display: "flex", alignItems: "center", gap: 1, fontSize: "1rem", color: "text.primary" }, children: [
38309
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PreviewIcon, { color: "primary", fontSize: "small" }),
38310
- "Live Preview"
38311
- ] }),
38253
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "overline", sx: { mb: 0.5, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary", display: "block" }, children: "Live Preview" }),
38312
38254
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
38313
38255
  import_material43.Box,
38314
38256
  {
38315
38257
  sx: {
38316
- height: { xs: 260, md: 320 },
38258
+ height: { xs: 220, md: 260 },
38317
38259
  display: "flex",
38318
38260
  flexDirection: "column",
38319
38261
  position: "relative",
@@ -38321,7 +38263,7 @@ var BrandingTab = ({
38321
38263
  borderRadius: 2,
38322
38264
  overflow: "hidden",
38323
38265
  px: 2,
38324
- py: 3
38266
+ py: 2
38325
38267
  },
38326
38268
  children: [
38327
38269
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: {
@@ -38397,14 +38339,14 @@ var BrandingTab = ({
38397
38339
  ]
38398
38340
  }
38399
38341
  ),
38400
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Paper, { sx: { p: 2, borderRadius: 2, flex: "0 0 auto", mb: 2 }, children: [
38401
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, fontSize: "1rem", color: "text.primary" }, children: "Theme Selection" }),
38342
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Paper, { sx: { p: { xs: 1.5, sm: 1.75 }, border: "1px solid", borderColor: "divider", borderRadius: 2, flex: "0 0 auto", mb: { xs: 1.25, md: 1.5 } }, children: [
38343
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "overline", sx: { mb: 1, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary", display: "block" }, children: "Theme Selection" }),
38402
38344
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38403
38345
  import_material43.Box,
38404
38346
  {
38405
38347
  sx: {
38406
38348
  display: "grid",
38407
- gap: 1.5,
38349
+ gap: 1,
38408
38350
  gridTemplateColumns: {
38409
38351
  xs: "repeat(4, 1fr)",
38410
38352
  sm: "repeat(6, 1fr)",
@@ -38428,12 +38370,10 @@ var BrandingTab = ({
38428
38370
  position: "relative",
38429
38371
  overflow: "visible",
38430
38372
  "&:hover": {
38431
- transform: "scale(1.05)",
38432
- boxShadow: 2,
38433
38373
  borderColor: "primary.main"
38434
38374
  }
38435
38375
  },
38436
- elevation: isSelected ? 2 : 0,
38376
+ elevation: 0,
38437
38377
  children: [
38438
38378
  isSelected && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38439
38379
  import_material43.Chip,
@@ -38451,12 +38391,12 @@ var BrandingTab = ({
38451
38391
  }
38452
38392
  }
38453
38393
  ),
38454
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.CardContent, { sx: { p: 1 }, children: [
38394
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.CardContent, { sx: { p: 0.75, "&:last-child": { pb: 0.75 } }, children: [
38455
38395
  /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
38456
38396
  import_material43.Box,
38457
38397
  {
38458
38398
  sx: {
38459
- height: 40,
38399
+ height: 32,
38460
38400
  backgroundColor: themeOption.palette?.background?.default,
38461
38401
  borderRadius: 1,
38462
38402
  position: "relative",
@@ -38535,10 +38475,10 @@ var BrandingTab = ({
38535
38475
  }
38536
38476
  )
38537
38477
  ] }),
38538
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Paper, { sx: { p: 2, borderRadius: 2, flex: "0 0 auto" }, children: [
38539
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, fontSize: "1rem", color: "text.primary" }, children: "Actions" }),
38540
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1.5 }, children: [
38541
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38478
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Paper, { sx: { p: { xs: 1.5, sm: 1.75 }, border: "1px solid", borderColor: "divider", borderRadius: 2, flex: "0 0 auto" }, children: [
38479
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Typography, { variant: "overline", sx: { mb: 1, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary", display: "block" }, children: "Actions" }),
38480
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: [
38481
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38542
38482
  import_material43.Button,
38543
38483
  {
38544
38484
  variant: "outlined",
@@ -38551,7 +38491,7 @@ var BrandingTab = ({
38551
38491
  children: saveStatus === "saving" ? "Saving..." : saveStatus === "saved" ? "\u2713 Saved" : saveStatus === "error" ? "\u2717 Error" : "Save"
38552
38492
  }
38553
38493
  ) }),
38554
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38494
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38555
38495
  import_material43.Button,
38556
38496
  {
38557
38497
  variant: "outlined",
@@ -38562,7 +38502,7 @@ var BrandingTab = ({
38562
38502
  children: "Export"
38563
38503
  }
38564
38504
  ) }),
38565
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: [
38505
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: [
38566
38506
  /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38567
38507
  import_material43.Button,
38568
38508
  {
@@ -38585,7 +38525,7 @@ var BrandingTab = ({
38585
38525
  }
38586
38526
  )
38587
38527
  ] }),
38588
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38528
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_material43.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
38589
38529
  import_material43.Button,
38590
38530
  {
38591
38531
  variant: "outlined",
@@ -39593,18 +39533,18 @@ var KnowledgeTab = ({
39593
39533
  const clearSelection = () => {
39594
39534
  setSelectedDocuments([]);
39595
39535
  };
39596
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { p: { xs: 1.5, sm: 3, md: 4 } }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { pt: { xs: 1, md: 2 }, pb: { xs: 3, md: 4 } }, children: [
39597
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { mb: { xs: 2.5, md: 4 } }, children: [
39536
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { p: { xs: 1.5, sm: 2, md: 2.5 } }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { children: [
39537
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { mb: { xs: 1.5, md: 2 } }, children: [
39598
39538
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
39599
39539
  import_material45.Box,
39600
39540
  {
39601
39541
  sx: {
39602
39542
  display: "flex",
39603
39543
  flexDirection: { xs: "column", md: "row" },
39604
- gap: { xs: 1.5, md: 2 },
39544
+ gap: { xs: 1, md: 1.5 },
39605
39545
  justifyContent: "space-between",
39606
39546
  alignItems: { xs: "flex-start", md: "center" },
39607
- mb: { xs: 1.5, md: 2 }
39547
+ mb: 1.5
39608
39548
  },
39609
39549
  children: [
39610
39550
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { textAlign: { xs: "left", md: "initial" } }, children: [
@@ -39613,7 +39553,7 @@ var KnowledgeTab = ({
39613
39553
  {
39614
39554
  variant: "h5",
39615
39555
  color: "text.primary",
39616
- sx: { mb: 1, fontWeight: 600, fontSize: { xs: "1.55rem", md: "1.8rem" } },
39556
+ sx: { mb: 0.5, fontWeight: 600, fontSize: "1.3rem" },
39617
39557
  children: [
39618
39558
  "Document Knowledge Base",
39619
39559
  shouldUseVector && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
@@ -39628,29 +39568,20 @@ var KnowledgeTab = ({
39628
39568
  ]
39629
39569
  }
39630
39570
  ),
39631
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
39632
- import_material45.Typography,
39633
- {
39634
- variant: "body1",
39635
- color: "text.secondary",
39636
- sx: { fontSize: { xs: "0.95rem", sm: "1rem" }, lineHeight: 1.5 },
39637
- children: [
39638
- "Add documents to your private knowledge base. Files are securely stored ",
39639
- shouldUseVector ? "in your private workspace" : "locally in your browser",
39640
- "."
39641
- ]
39642
- }
39643
- )
39571
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 0 }, children: [
39572
+ "Add documents to your private knowledge base, stored ",
39573
+ shouldUseVector ? "in your private workspace" : "locally in your browser",
39574
+ "."
39575
+ ] })
39644
39576
  ] }),
39645
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: { xs: 1, sm: 1.5 }, alignItems: "center", flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
39577
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 1, alignItems: "center", flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
39646
39578
  shouldUseVector && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39647
39579
  import_material45.Button,
39648
39580
  {
39649
39581
  variant: "outlined",
39650
- size: isMobile ? "small" : "medium",
39651
39582
  onClick: loadVectorDocuments,
39652
39583
  disabled: loadingVectorDocs,
39653
- sx: { mr: { xs: 0, md: 1 }, width: { xs: "100%", md: "auto" } },
39584
+ sx: { width: { xs: "100%", md: "auto" } },
39654
39585
  children: loadingVectorDocs ? "Loading..." : "Refresh"
39655
39586
  }
39656
39587
  ),
@@ -39659,10 +39590,9 @@ var KnowledgeTab = ({
39659
39590
  {
39660
39591
  variant: "outlined",
39661
39592
  color: "error",
39662
- size: isMobile ? "small" : "medium",
39663
39593
  startIcon: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DeleteIcon, {}),
39664
39594
  onClick: () => setClearDocsDialogOpen(true),
39665
- sx: { ml: { xs: 0, md: 2 }, width: { xs: "100%", md: "auto" } },
39595
+ sx: { width: { xs: "100%", md: "auto" } },
39666
39596
  children: "Clear All"
39667
39597
  }
39668
39598
  )
@@ -39670,17 +39600,17 @@ var KnowledgeTab = ({
39670
39600
  ]
39671
39601
  }
39672
39602
  ),
39673
- documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: { xs: 1.5, md: 2 }, flexWrap: "wrap", mb: { xs: 2, md: 3 } }, children: [
39674
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { minWidth: 120 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: [
39675
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "h6", color: "primary", children: statistics.totalDocuments }),
39603
+ documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 1, flexWrap: "wrap", mb: 0 }, children: [
39604
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { minWidth: 96, border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: [
39605
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "subtitle2", color: "primary", sx: { lineHeight: 1.2 }, children: statistics.totalDocuments }),
39676
39606
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: "Documents" })
39677
39607
  ] }) }),
39678
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { minWidth: 120 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: [
39679
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "h6", color: "primary", children: statistics.totalSize }),
39608
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { minWidth: 96, border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: [
39609
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "subtitle2", color: "primary", sx: { lineHeight: 1.2 }, children: statistics.totalSize }),
39680
39610
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: "Total Size" })
39681
39611
  ] }) }),
39682
- Object.entries(statistics.categoryCounts).map(([category, count]) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { minWidth: 100 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: [
39683
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "h6", color: "primary", children: count }),
39612
+ Object.entries(statistics.categoryCounts).map(([category, count]) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { minWidth: 80, border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: [
39613
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "subtitle2", color: "primary", sx: { lineHeight: 1.2 }, children: count }),
39684
39614
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: category })
39685
39615
  ] }) }, category))
39686
39616
  ] })
@@ -39689,8 +39619,10 @@ var KnowledgeTab = ({
39689
39619
  import_material45.Card,
39690
39620
  {
39691
39621
  sx: {
39692
- mb: 3,
39693
- border: dragActive ? `2px dashed ${currentTheme.palette?.primary?.main}` : `1px dashed ${currentTheme.palette?.divider}`,
39622
+ mb: { xs: 1.25, md: 1.5 },
39623
+ borderRadius: 2,
39624
+ boxShadow: "none",
39625
+ border: dragActive ? `1px dashed ${currentTheme.palette?.primary?.main}` : `1px dashed ${currentTheme.palette?.divider}`,
39694
39626
  bgcolor: dragActive ? `${currentTheme.palette?.primary?.main}08` : "transparent",
39695
39627
  transition: "all 0.2s ease-in-out",
39696
39628
  cursor: "pointer",
@@ -39703,75 +39635,43 @@ var KnowledgeTab = ({
39703
39635
  onDragOver: handleDragOver,
39704
39636
  onDragLeave: handleDragLeave,
39705
39637
  onClick: () => document.getElementById("file-upload")?.click(),
39706
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { textAlign: "center", py: { xs: 3, md: 4 }, px: { xs: 2, md: 3 } }, children: [
39707
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39708
- UploadFileIcon,
39709
- {
39710
- sx: {
39711
- fontSize: 48,
39712
- color: dragActive ? "primary.main" : "text.secondary",
39713
- mb: 2
39638
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { textAlign: "center", py: 1.75, px: { xs: 1.5, sm: 1.75 }, "&:last-child": { pb: 1.75 } }, children: [
39639
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1 }, children: [
39640
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39641
+ UploadFileIcon,
39642
+ {
39643
+ sx: { fontSize: 18, color: dragActive ? "primary.main" : "text.secondary" }
39714
39644
  }
39715
- }
39716
- ),
39717
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "h6", color: dragActive ? "primary" : "text.primary", gutterBottom: true, children: dragActive ? "Drop files here" : "Upload Documents" }),
39718
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "body2", color: "text.secondary", paragraph: true, children: "Drag and drop files here or click to browse" }),
39645
+ ),
39646
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "subtitle2", color: dragActive ? "primary" : "text.primary", children: dragActive ? "Drop files here" : "Upload Documents" })
39647
+ ] }),
39648
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mt: 0.25 }, children: "Drag and drop or click to browse \u2014 PDF, DOC, TXT, MD, code files, and more" }),
39719
39649
  shouldUseVector && hasTeam && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
39720
39650
  import_material45.Box,
39721
39651
  {
39722
- sx: {
39723
- mb: 2,
39724
- p: 2,
39725
- bgcolor: "background.paper",
39726
- borderRadius: 1,
39727
- border: "1px solid",
39728
- borderColor: "divider"
39729
- },
39652
+ sx: { display: "inline-flex", alignItems: "center", gap: 0.5, mt: 1 },
39730
39653
  onClick: (e) => e.stopPropagation(),
39731
39654
  children: [
39732
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1 }, children: [
39733
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39734
- import_material45.Switch,
39735
- {
39736
- checked: shareWithTeam,
39737
- onChange: (e) => setShareWithTeam(e.target.checked),
39738
- color: "primary",
39739
- size: "small"
39740
- }
39741
- ),
39742
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: shareWithTeam ? /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
39743
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(GroupIcon, { sx: { fontSize: "1rem", color: "success.main" } }),
39744
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "body2", color: "success.main", fontWeight: 500, children: "Share with team" })
39745
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
39746
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(PersonIcon, { sx: { fontSize: "1rem", color: "text.secondary" } }),
39747
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "body2", color: "text.secondary", fontWeight: 500, children: "Personal only" })
39748
- ] }) })
39749
- ] }),
39750
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", textAlign: "center", mt: 0.5 }, children: shareWithTeam ? "Team members can search and access these documents" : "Documents will be private to your account only" })
39751
- ]
39752
- }
39753
- ),
39754
- shouldUseVector && !hasTeam && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
39755
- import_material45.Box,
39756
- {
39757
- sx: {
39758
- mb: 2,
39759
- p: 1.5,
39760
- bgcolor: "info.main10",
39761
- borderRadius: 1,
39762
- border: "1px solid",
39763
- borderColor: "info.main30"
39764
- },
39765
- children: [
39766
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1 }, children: [
39767
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(PersonIcon, { sx: { fontSize: "1rem", color: "info.main" } }),
39768
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "body2", color: "info.main", fontWeight: 500, children: "Personal Documents Only" })
39769
- ] }),
39770
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", textAlign: "center", mt: 0.5 }, children: "Documents will be stored privately in your personal account" })
39655
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39656
+ import_material45.Switch,
39657
+ {
39658
+ checked: shareWithTeam,
39659
+ onChange: (e) => setShareWithTeam(e.target.checked),
39660
+ color: "primary",
39661
+ size: "small"
39662
+ }
39663
+ ),
39664
+ shareWithTeam ? /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
39665
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(GroupIcon, { sx: { fontSize: "1rem", color: "success.main" } }),
39666
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: "Shared with team \u2014 members can search these documents" })
39667
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
39668
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(PersonIcon, { sx: { fontSize: "1rem", color: "text.secondary" } }),
39669
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: "Personal only \u2014 private to your account" })
39670
+ ] })
39771
39671
  ]
39772
39672
  }
39773
39673
  ),
39774
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: "Supported: PDF, DOC, TXT, MD, Code files, and more" }),
39674
+ shouldUseVector && !hasTeam && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mt: 0.5 }, children: "Documents will be stored privately in your personal account" }),
39775
39675
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39776
39676
  "input",
39777
39677
  {
@@ -39786,7 +39686,7 @@ var KnowledgeTab = ({
39786
39686
  ] })
39787
39687
  }
39788
39688
  ),
39789
- uploadStatuses.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { mb: 3 }, children: uploadStatuses.map((status, index) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { mb: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
39689
+ uploadStatuses.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { mb: { xs: 1.25, md: 1.5 } }, children: uploadStatuses.map((status, index) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { mb: 1, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
39790
39690
  status.status === "success" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CheckCircleIcon, { color: "success" }) : status.status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ErrorIcon, { color: "error" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { width: 20, height: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39791
39691
  import_material45.LinearProgress,
39792
39692
  {
@@ -39804,8 +39704,8 @@ var KnowledgeTab = ({
39804
39704
  "%"
39805
39705
  ] })
39806
39706
  ] }) }) }, index)) }),
39807
- documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { mb: 3 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 2 }, children: [
39808
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 2, alignItems: "center", flexWrap: "wrap" }, children: [
39707
+ documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { mb: { xs: 1.25, md: 1.5 }, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { sx: { py: 1.5, px: { xs: 1.5, sm: 1.75 }, "&:last-child": { pb: 1.5 } }, children: [
39708
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 1.5, alignItems: "center", flexWrap: "wrap" }, children: [
39809
39709
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39810
39710
  import_material45.TextField,
39811
39711
  {
@@ -39933,7 +39833,7 @@ var KnowledgeTab = ({
39933
39833
  )
39934
39834
  ] })
39935
39835
  ] }),
39936
- selectedDocuments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { mt: 2, pt: 2, borderTop: 1, borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
39836
+ selectedDocuments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { mt: 1.5, pt: 1.5, borderTop: 1, borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5, flexWrap: "wrap" }, children: [
39937
39837
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Typography, { variant: "body2", color: "text.secondary", children: [
39938
39838
  selectedDocuments.length,
39939
39839
  " selected"
@@ -39969,12 +39869,12 @@ var KnowledgeTab = ({
39969
39869
  )
39970
39870
  ] }) })
39971
39871
  ] }) }),
39972
- filteredAndSortedDocuments.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { textAlign: "center", py: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { children: [
39973
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(FolderIcon, { sx: { fontSize: 64, color: "text.secondary", mb: 2 } }),
39974
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "h6", color: "text.secondary", gutterBottom: true, children: "No Documents Yet" }),
39975
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "body2", color: "text.secondary", children: shouldUseVector ? "Upload and embed your first document to get started with advanced search" : "Upload your first document to get started" })
39872
+ filteredAndSortedDocuments.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { textAlign: "center", py: 4, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { children: [
39873
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(FolderIcon, { sx: { fontSize: 20, color: "text.secondary", mb: 1 } }),
39874
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "subtitle2", color: "text.secondary", gutterBottom: true, children: "No Documents Yet" }),
39875
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", children: shouldUseVector ? "Upload and embed your first document to get started with advanced search" : "Upload your first document to get started" })
39976
39876
  ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { children: [
39977
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: [
39877
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mb: 1 }, children: [
39978
39878
  "Showing ",
39979
39879
  filteredAndSortedDocuments.length,
39980
39880
  " of ",
@@ -39994,7 +39894,7 @@ var KnowledgeTab = ({
39994
39894
  md: "repeat(4, 1fr)",
39995
39895
  lg: "repeat(6, 1fr)"
39996
39896
  },
39997
- gap: 2
39897
+ gap: 1.5
39998
39898
  },
39999
39899
  children: filteredAndSortedDocuments.map((doc) => {
40000
39900
  const isSelected = selectedDocuments.includes(doc.id);
@@ -40019,7 +39919,7 @@ var KnowledgeTab = ({
40019
39919
  }
40020
39920
  ) : (
40021
39921
  /* List View */
40022
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Stack, { spacing: 1, children: filteredAndSortedDocuments.map((doc) => {
39922
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Stack, { spacing: 0.75, children: filteredAndSortedDocuments.map((doc) => {
40023
39923
  const fileInfo = getFileTypeInfo3(doc.name);
40024
39924
  const IconComponent = fileInfo.icon;
40025
39925
  const isSelected = selectedDocuments.includes(doc.id);
@@ -40029,14 +39929,16 @@ var KnowledgeTab = ({
40029
39929
  {
40030
39930
  sx: {
40031
39931
  cursor: "pointer",
40032
- transition: "all 0.3s ease-in-out",
40033
- border: isSelected ? `2px solid ${currentTheme.palette?.primary?.main}` : `1px solid ${currentTheme.palette?.divider}`,
39932
+ boxShadow: "none",
39933
+ borderRadius: 2,
39934
+ transition: "all 0.2s ease-in-out",
39935
+ border: isSelected ? `1px solid ${currentTheme.palette?.primary?.main}` : `1px solid ${currentTheme.palette?.divider}`,
40034
39936
  "&:hover": {
40035
- boxShadow: 4
39937
+ borderColor: currentTheme.palette?.primary?.main
40036
39938
  },
40037
39939
  bgcolor: isSelected ? `${currentTheme.palette?.primary?.main}08` : "background.paper",
40038
39940
  opacity: isDeleting ? 0.3 : 1,
40039
- transform: isDeleting ? "scale(0.95)" : "scale(1)"
39941
+ transform: isDeleting ? "scale(0.98)" : "scale(1)"
40040
39942
  },
40041
39943
  onClick: (e) => {
40042
39944
  if (e.ctrlKey || e.metaKey) {
@@ -40045,153 +39947,114 @@ var KnowledgeTab = ({
40045
39947
  handleDocumentClick(doc);
40046
39948
  }
40047
39949
  },
40048
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.CardContent, { sx: { py: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
40049
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(IconComponent, { sx: { fontSize: 32, color: fileInfo.color } }),
40050
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { flex: 1, minWidth: 0 }, children: [
39950
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.CardContent, { sx: { p: 1, "&:last-child": { pb: 1 } }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5 }, children: [
39951
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(IconComponent, { sx: { fontSize: 20, color: fileInfo.color, flexShrink: 0 } }),
39952
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39953
+ import_material45.Typography,
39954
+ {
39955
+ variant: "body2",
39956
+ sx: {
39957
+ fontWeight: 600,
39958
+ whiteSpace: "nowrap",
39959
+ overflow: "hidden",
39960
+ textOverflow: "ellipsis",
39961
+ color: "text.primary"
39962
+ },
39963
+ children: doc.name
39964
+ }
39965
+ ) }),
39966
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 0.5, alignItems: "center", flexShrink: 0 }, children: [
40051
39967
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40052
- import_material45.Typography,
39968
+ import_material45.Chip,
40053
39969
  {
40054
- variant: "subtitle1",
40055
- sx: {
40056
- fontWeight: 600,
40057
- whiteSpace: "nowrap",
40058
- overflow: "hidden",
40059
- textOverflow: "ellipsis",
40060
- color: "text.primary"
40061
- },
40062
- children: doc.name
40063
- }
40064
- ),
40065
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
40066
- import_material45.Typography,
40067
- {
40068
- variant: "body2",
40069
- color: "text.secondary",
39970
+ label: fileInfo.category,
39971
+ size: "small",
40070
39972
  sx: {
40071
- display: "-webkit-box",
40072
- WebkitLineClamp: 2,
40073
- WebkitBoxOrient: "vertical",
40074
- overflow: "hidden",
40075
- textOverflow: "ellipsis",
40076
- mt: 0.5
40077
- },
40078
- children: [
40079
- doc.content.substring(0, 200),
40080
- "..."
40081
- ]
39973
+ bgcolor: fileInfo.color + "20",
39974
+ color: fileInfo.color,
39975
+ fontWeight: 600
39976
+ }
40082
39977
  }
40083
39978
  ),
40084
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 1, mt: 1 }, children: [
40085
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
39979
+ (() => {
39980
+ const sourceInfo = getContentSourceInfo2(doc, shouldUseVector);
39981
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40086
39982
  import_material45.Chip,
40087
39983
  {
40088
- label: fileInfo.category,
39984
+ icon: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(sourceInfo.icon, { sx: { fontSize: "0.8rem" } }),
39985
+ label: sourceInfo.label,
40089
39986
  size: "small",
40090
39987
  sx: {
40091
- bgcolor: fileInfo.color + "20",
40092
- color: fileInfo.color,
40093
- fontWeight: 600
40094
- }
40095
- }
40096
- ),
40097
- (() => {
40098
- const sourceInfo = getContentSourceInfo2(doc, shouldUseVector);
40099
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40100
- import_material45.Chip,
40101
- {
40102
- icon: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(sourceInfo.icon, { sx: { fontSize: "0.8rem" } }),
40103
- label: sourceInfo.label,
40104
- size: "small",
40105
- sx: {
40106
- bgcolor: sourceInfo.bgColor,
40107
- color: sourceInfo.color,
40108
- fontWeight: 500,
40109
- fontSize: "0.75rem",
40110
- "& .MuiChip-icon": {
40111
- color: sourceInfo.color
40112
- }
39988
+ bgcolor: sourceInfo.bgColor,
39989
+ color: sourceInfo.color,
39990
+ fontWeight: 500,
39991
+ fontSize: "0.75rem",
39992
+ "& .MuiChip-icon": {
39993
+ color: sourceInfo.color
40113
39994
  }
40114
39995
  }
40115
- );
40116
- })(),
40117
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40118
- import_material45.Chip,
40119
- {
40120
- label: formatFileSize2(doc.content.length * 2),
40121
- size: "small",
40122
- variant: "outlined"
40123
39996
  }
40124
- )
40125
- ] })
39997
+ );
39998
+ })(),
39999
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40000
+ import_material45.Chip,
40001
+ {
40002
+ label: formatFileSize2(doc.content.length * 2),
40003
+ size: "small",
40004
+ variant: "outlined",
40005
+ sx: { display: { xs: "none", sm: "flex" } }
40006
+ }
40007
+ )
40126
40008
  ] }),
40127
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
40009
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.Box, { sx: { display: "flex", gap: 0.5, alignItems: "center", flexShrink: 0 }, children: [
40128
40010
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40129
40011
  import_material45.IconButton,
40130
40012
  {
40013
+ size: "small",
40131
40014
  onClick: (e) => {
40132
40015
  e.stopPropagation();
40133
40016
  toggleDocumentSelection(doc.id);
40134
40017
  },
40135
40018
  sx: {
40136
- width: 32,
40137
- height: 32,
40019
+ width: 28,
40020
+ height: 28,
40138
40021
  bgcolor: isSelected ? "primary.main" : "transparent",
40139
40022
  color: isSelected ? "primary.contrastText" : "text.secondary",
40140
- border: isSelected ? "none" : "2px solid",
40141
- borderColor: "text.secondary",
40023
+ border: isSelected ? "none" : "1px solid",
40024
+ borderColor: "divider",
40142
40025
  borderRadius: "50%",
40143
40026
  "&:hover": {
40144
40027
  bgcolor: isSelected ? "primary.dark" : "action.hover",
40145
40028
  borderColor: isSelected ? "primary.dark" : "primary.main"
40146
40029
  }
40147
40030
  },
40148
- children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CheckIcon, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: {
40149
- width: 12,
40150
- height: 12,
40031
+ children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(CheckIcon, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Box, { sx: {
40032
+ width: 10,
40033
+ height: 10,
40151
40034
  borderRadius: "50%",
40152
40035
  bgcolor: "transparent"
40153
40036
  } })
40154
40037
  }
40155
40038
  ),
40156
40039
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40157
- import_material45.Button,
40040
+ import_material45.IconButton,
40158
40041
  {
40159
- variant: "outlined",
40160
40042
  size: "small",
40161
40043
  onClick: (e) => {
40162
40044
  e.stopPropagation();
40163
40045
  handleDownloadDocument(e, doc);
40164
40046
  },
40165
- sx: {
40166
- textTransform: "none",
40167
- height: { xs: 32, sm: 36, md: 40 },
40168
- // Responsive height matching grid view
40169
- minWidth: { xs: 90, sm: 100, md: 110 },
40170
- // Consistent width
40171
- borderWidth: 2,
40172
- fontSize: { xs: "0.75rem", sm: "0.8rem", md: "0.875rem" },
40173
- // Responsive font
40174
- fontWeight: 600,
40175
- px: { xs: 1, sm: 1.5 },
40176
- // Responsive padding
40177
- "&:hover": {
40178
- borderWidth: 2,
40179
- bgcolor: "primary.main",
40180
- color: "primary.contrastText",
40181
- transform: "translateY(-1px)",
40182
- boxShadow: 2
40183
- }
40184
- },
40185
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DownloadIcon, { sx: { fontSize: { xs: "1rem", sm: "1.1rem" } } }),
40186
- children: "Download"
40047
+ sx: { color: "text.secondary", "&:hover": { color: "primary.main" } },
40048
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DownloadIcon, { sx: { fontSize: 18 } })
40187
40049
  }
40188
40050
  ),
40189
40051
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40190
40052
  import_material45.IconButton,
40191
40053
  {
40054
+ size: "small",
40192
40055
  onClick: (e) => handleRemoveDocument(e, doc.id),
40193
40056
  color: "error",
40194
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DeleteIcon, {})
40057
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DeleteIcon, { sx: { fontSize: 18 } })
40195
40058
  }
40196
40059
  )
40197
40060
  ] })
@@ -40201,10 +40064,10 @@ var KnowledgeTab = ({
40201
40064
  );
40202
40065
  }) })
40203
40066
  ),
40204
- filteredAndSortedDocuments.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { textAlign: "center", py: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { children: [
40205
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SearchIcon, { sx: { fontSize: 48, color: "text.secondary", mb: 2 } }),
40206
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "h6", color: "text.secondary", gutterBottom: true, children: "No documents found" }),
40207
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "body2", color: "text.secondary", children: "Try adjusting your search or filter criteria" }),
40067
+ filteredAndSortedDocuments.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Card, { sx: { textAlign: "center", py: 4, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material45.CardContent, { children: [
40068
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SearchIcon, { sx: { fontSize: 20, color: "text.secondary", mb: 1 } }),
40069
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "subtitle2", color: "text.secondary", gutterBottom: true, children: "No documents found" }),
40070
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_material45.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block" }, children: "Try adjusting your search or filter criteria" }),
40208
40071
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
40209
40072
  import_material45.Button,
40210
40073
  {
@@ -40213,7 +40076,7 @@ var KnowledgeTab = ({
40213
40076
  setSearchQuery("");
40214
40077
  setSelectedCategory("all");
40215
40078
  },
40216
- sx: { mt: 2 },
40079
+ sx: { mt: 1 },
40217
40080
  children: "Clear Filters"
40218
40081
  }
40219
40082
  )
@@ -42447,18 +42310,17 @@ var StorageTab = ({ currentTheme }) => {
42447
42310
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body1", color: "text.secondary", sx: { ml: 2 }, children: "Analyzing storage usage..." })
42448
42311
  ] });
42449
42312
  }
42450
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { px: { xs: 2, sm: 4, md: 6 }, pt: 3, pb: 5 }, children: [
42451
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { sx: { mb: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: {
42313
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { px: { xs: 2, sm: 3, md: 4 }, pt: 2, pb: 3 }, children: [
42314
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { sx: { mb: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: {
42452
42315
  display: "flex",
42453
42316
  flexDirection: { xs: "column", sm: "row" },
42454
42317
  justifyContent: "space-between",
42455
42318
  alignItems: { xs: "stretch", sm: "flex-start" },
42456
- gap: { xs: 2, sm: 0 },
42457
- mb: 2
42319
+ gap: { xs: 1.5, sm: 0 }
42458
42320
  }, children: [
42459
42321
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { flex: 1 }, children: [
42460
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "h5", color: "text.primary", sx: { mb: 1, fontWeight: 600 }, children: "Storage Management" }),
42461
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body1", color: "text.secondary", children: "Monitor and manage your local browser storage usage" })
42322
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "h5", color: "text.primary", sx: { mb: 0.5, fontWeight: 600 }, children: "Storage Management" }),
42323
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 1.5 }, children: "Monitor and manage your local browser storage usage." })
42462
42324
  ] }),
42463
42325
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: {
42464
42326
  display: "flex",
@@ -42476,15 +42338,14 @@ var StorageTab = ({ currentTheme }) => {
42476
42338
  disabled: loading,
42477
42339
  sx: {
42478
42340
  minWidth: { xs: "auto", sm: "fit-content" },
42479
- flex: { xs: "1", sm: "0 0 auto" },
42480
- minHeight: 36
42341
+ flex: { xs: "1", sm: "0 0 auto" }
42481
42342
  },
42482
42343
  children: [
42483
42344
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: { xs: "none", sm: "flex" }, alignItems: "center", gap: 1 }, children: [
42484
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RefreshIcon, { fontSize: "medium" }),
42345
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RefreshIcon, { fontSize: "small" }),
42485
42346
  "Refresh"
42486
42347
  ] }),
42487
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { sx: { display: { xs: "flex", sm: "none" }, alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RefreshIcon, { fontSize: "medium" }) })
42348
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { sx: { display: { xs: "flex", sm: "none" }, alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RefreshIcon, { fontSize: "small" }) })
42488
42349
  ]
42489
42350
  }
42490
42351
  ),
@@ -42530,18 +42391,23 @@ var StorageTab = ({ currentTheme }) => {
42530
42391
  ] })
42531
42392
  ] })
42532
42393
  ] }) }),
42533
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { mb: 4 }, children: [
42534
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Card, { sx: { mb: 3 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.CardContent, { sx: {
42535
- display: "flex",
42536
- flexDirection: "column",
42537
- minHeight: 180
42538
- }, children: [
42539
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "h6", gutterBottom: true, sx: { fontWeight: 600, color: "text.primary" }, children: [
42540
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StorageIcon, { sx: { mr: 1, verticalAlign: "middle" } }),
42541
- "Storage Quota"
42542
- ] }),
42543
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { mb: 2, flex: 1 }, children: [
42544
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
42394
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
42395
+ import_material48.Box,
42396
+ {
42397
+ sx: {
42398
+ p: { xs: 1.5, sm: 1.75 },
42399
+ mb: { xs: 1.25, md: 1.5 },
42400
+ border: "1px solid",
42401
+ borderColor: "divider",
42402
+ borderRadius: 2,
42403
+ bgcolor: "background.paper"
42404
+ },
42405
+ children: [
42406
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "overline", sx: { color: "text.secondary", display: "flex", alignItems: "center", gap: 0.75 }, children: [
42407
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StorageIcon, { fontSize: "small" }),
42408
+ "Storage Quota"
42409
+ ] }),
42410
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mt: 0.5, mb: 1.5 }, children: [
42545
42411
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42546
42412
  import_material48.Chip,
42547
42413
  {
@@ -42585,11 +42451,11 @@ var StorageTab = ({ currentTheme }) => {
42585
42451
  variant: "determinate",
42586
42452
  value: usagePercentage,
42587
42453
  sx: {
42588
- height: 8,
42589
- borderRadius: 4,
42454
+ height: 6,
42455
+ borderRadius: 3,
42590
42456
  bgcolor: "action.hover",
42591
42457
  "& .MuiLinearProgress-bar": {
42592
- borderRadius: 4,
42458
+ borderRadius: 3,
42593
42459
  bgcolor: usagePercentage > 80 ? "error.main" : usagePercentage > 60 ? "warning.main" : "success.main"
42594
42460
  }
42595
42461
  }
@@ -42598,47 +42464,40 @@ var StorageTab = ({ currentTheme }) => {
42598
42464
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "caption", color: "text.secondary", sx: { mt: 0.5, display: "block" }, children: [
42599
42465
  usagePercentage.toFixed(1),
42600
42466
  "% used"
42601
- ] })
42602
- ] }),
42603
- usagePercentage > 80 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Alert, { severity: "warning", sx: { mt: "auto" }, children: "Storage usage is high. Consider clearing unused data." })
42604
- ] }) }),
42605
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.CardContent, { sx: {
42606
- display: "flex",
42607
- flexDirection: "column",
42608
- minHeight: 140
42609
- }, children: [
42610
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "h6", gutterBottom: true, sx: { fontWeight: 600, color: "text.primary" }, children: "Usage Summary" }),
42611
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
42612
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42613
- import_material48.Chip,
42614
- {
42615
- label: `${storageCategories.length} Categories`,
42616
- color: "primary",
42617
- size: "small"
42618
- }
42619
- ),
42620
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42621
- import_material48.Chip,
42622
- {
42623
- label: `${storageCategories.reduce((sum, cat) => sum + cat.itemCount, 0)} Items`,
42624
- color: "secondary",
42625
- size: "small"
42626
- }
42627
- ),
42628
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42629
- import_material48.Chip,
42630
- {
42631
- label: `${formatBytes(totalUsed)} Used`,
42632
- color: "info",
42633
- size: "small"
42634
- }
42635
- )
42636
- ] }),
42637
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body2", color: "text.secondary", sx: { mt: "auto" }, children: usageSummaryMessage })
42638
- ] }) })
42639
- ] }),
42640
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "h6", gutterBottom: true, sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Storage Categories" }),
42641
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { children: storageCategories.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Alert, { severity: "info", sx: { mt: 2 }, children: [
42467
+ ] }),
42468
+ usagePercentage > 80 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Alert, { severity: "warning", sx: { mt: 1, py: 0 }, children: "Storage usage is high. Consider clearing unused data." }),
42469
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", flexWrap: "wrap", alignItems: "center", gap: 1, mt: 1.5 }, children: [
42470
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42471
+ import_material48.Chip,
42472
+ {
42473
+ label: `${storageCategories.length} Categories`,
42474
+ color: "primary",
42475
+ size: "small"
42476
+ }
42477
+ ),
42478
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42479
+ import_material48.Chip,
42480
+ {
42481
+ label: `${storageCategories.reduce((sum, cat) => sum + cat.itemCount, 0)} Items`,
42482
+ color: "secondary",
42483
+ size: "small"
42484
+ }
42485
+ ),
42486
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42487
+ import_material48.Chip,
42488
+ {
42489
+ label: `${formatBytes(totalUsed)} Used`,
42490
+ color: "info",
42491
+ size: "small"
42492
+ }
42493
+ )
42494
+ ] }),
42495
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mt: 1 }, children: usageSummaryMessage })
42496
+ ]
42497
+ }
42498
+ ),
42499
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "overline", sx: { display: "block", mb: 1, color: "text.secondary" }, children: "Storage Categories" }),
42500
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { children: storageCategories.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Alert, { severity: "info", sx: { mt: 1 }, children: [
42642
42501
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body2", children: "No storage data found. This could mean:" }),
42643
42502
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "body2", component: "ul", sx: { mt: 1, pl: 2 }, children: [
42644
42503
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("li", { children: "All databases are empty" }),
@@ -42646,7 +42505,7 @@ var StorageTab = ({ currentTheme }) => {
42646
42505
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("li", { children: "There was an error accessing the databases" })
42647
42506
  ] }),
42648
42507
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body2", sx: { mt: 1 }, children: 'Try clicking "Refresh" or check the browser console for more details.' })
42649
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Stack, { spacing: 2, children: storageCategories.map((category) => {
42508
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Stack, { spacing: 1, children: storageCategories.map((category) => {
42650
42509
  const IconComponent = category.icon;
42651
42510
  const categoryPercentage = storageQuota.quota > 0 ? category.size / storageQuota.quota * 100 : 0;
42652
42511
  const categoryRelativePercentage = totalUsed > 0 ? category.size / totalUsed * 100 : 0;
@@ -42657,29 +42516,41 @@ var StorageTab = ({ currentTheme }) => {
42657
42516
  categoryPercentage: categoryPercentage.toFixed(2),
42658
42517
  categoryRelativePercentage: categoryRelativePercentage.toFixed(2)
42659
42518
  });
42660
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Accordion, { sx: { bgcolor: "background.paper" }, children: [
42661
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42662
- import_material48.AccordionSummary,
42663
- {
42664
- expandIcon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ExpandMoreIcon, {}),
42665
- "aria-controls": `${category.name}-content`,
42666
- id: `${category.name}-header`,
42667
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", width: "100%", pr: 2 }, children: [
42668
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(IconComponent, { sx: { color: category.color, mr: 2 } }),
42669
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { flex: 1 }, children: [
42670
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42671
- import_material48.Typography,
42672
- {
42673
- variant: "body1",
42674
- style: {
42675
- fontWeight: 600,
42676
- color: theme.palette.mode === "dark" ? "#ffffff" : theme.palette.text.primary
42677
- },
42678
- children: category.name
42679
- }
42680
- ),
42681
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 2, mt: 0.5 }, children: [
42682
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body2", color: "text.secondary", children: formatBytes(category.size) }),
42519
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
42520
+ import_material48.Accordion,
42521
+ {
42522
+ disableGutters: true,
42523
+ elevation: 0,
42524
+ sx: {
42525
+ bgcolor: "background.paper",
42526
+ border: "1px solid",
42527
+ borderColor: "divider",
42528
+ borderRadius: 2,
42529
+ "&:before": { display: "none" }
42530
+ },
42531
+ children: [
42532
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42533
+ import_material48.AccordionSummary,
42534
+ {
42535
+ expandIcon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ExpandMoreIcon, {}),
42536
+ "aria-controls": `${category.name}-content`,
42537
+ id: `${category.name}-header`,
42538
+ sx: { px: 1.5, minHeight: 0, "& .MuiAccordionSummary-content": { my: 1 } },
42539
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", width: "100%", gap: 1.5, pr: 1.5 }, children: [
42540
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(IconComponent, { fontSize: "small", sx: { color: category.color } }),
42541
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42542
+ import_material48.Typography,
42543
+ {
42544
+ variant: "body2",
42545
+ style: {
42546
+ fontWeight: 600,
42547
+ color: theme.palette.mode === "dark" ? "#ffffff" : theme.palette.text.primary
42548
+ },
42549
+ sx: { minWidth: 0, flexShrink: 0 },
42550
+ children: category.name
42551
+ }
42552
+ ),
42553
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", color: "text.secondary", sx: { flexShrink: 0 }, children: formatBytes(category.size) }),
42683
42554
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42684
42555
  import_material48.Chip,
42685
42556
  {
@@ -42688,7 +42559,7 @@ var StorageTab = ({ currentTheme }) => {
42688
42559
  variant: "outlined"
42689
42560
  }
42690
42561
  ),
42691
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { sx: { flex: 1, mx: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42562
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Box, { sx: { flex: 1, minWidth: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42692
42563
  import_material48.LinearProgress,
42693
42564
  {
42694
42565
  variant: "determinate",
@@ -42704,104 +42575,127 @@ var StorageTab = ({ currentTheme }) => {
42704
42575
  }
42705
42576
  }
42706
42577
  ) }),
42707
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "caption", color: "text.secondary", children: [
42578
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "caption", color: "text.secondary", sx: { flexShrink: 0 }, children: [
42708
42579
  categoryRelativePercentage.toFixed(1),
42709
42580
  "%"
42710
42581
  ] })
42711
42582
  ] })
42712
- ] })
42713
- ] })
42714
- }
42715
- ),
42716
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.AccordionDetails, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { pl: 5 }, children: [
42717
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "body2", color: "text.secondary", paragraph: true, children: category.description }),
42718
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "subtitle2", gutterBottom: true, children: "Storage Locations:" }),
42719
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.List, { dense: true, children: category.stores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { sx: { py: 0.5 }, children: [
42720
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StorageIcon, { fontSize: "small" }) }),
42721
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42722
- import_material48.ListItemText,
42723
- {
42724
- primary: store,
42725
- primaryTypographyProps: { variant: "body2", fontFamily: "monospace" }
42726
- }
42727
- )
42728
- ] }, store)) }),
42729
- category.canClear ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { mt: 2, pt: 2, borderTop: 1, borderColor: "divider" }, children: [
42730
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
42731
- import_material48.Button,
42732
- {
42733
- variant: "outlined",
42734
- color: "error",
42735
- size: "small",
42736
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DeleteIcon, {}),
42737
- onClick: () => setClearCategoryDialog(category),
42738
- disabled: clearing,
42739
- children: [
42740
- "Clear ",
42741
- category.name
42742
- ]
42743
42583
  }
42744
42584
  ),
42745
- category.clearWarning && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Alert, { severity: "warning", sx: { mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", children: category.clearWarning }) })
42746
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Alert, { severity: "info", sx: { mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", children: category.itemCount === 0 ? "This category is empty." : "This category cannot be cleared automatically." }) })
42747
- ] }) })
42748
- ] }, category.name);
42585
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.AccordionDetails, { sx: { px: 1.5, pt: 0, pb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { pl: 3.5 }, children: [
42586
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mb: 1 }, children: category.description }),
42587
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "overline", sx: { color: "text.secondary" }, children: "Storage Locations" }),
42588
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.List, { dense: true, disablePadding: true, children: category.stores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { sx: { py: 0.25 }, children: [
42589
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { sx: { minWidth: 28 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(StorageIcon, { fontSize: "small" }) }),
42590
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42591
+ import_material48.ListItemText,
42592
+ {
42593
+ primary: store,
42594
+ primaryTypographyProps: { variant: "caption", fontFamily: "monospace" }
42595
+ }
42596
+ )
42597
+ ] }, store)) }),
42598
+ category.canClear ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Box, { sx: { mt: 1, pt: 1, borderTop: 1, borderColor: "divider" }, children: [
42599
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
42600
+ import_material48.Button,
42601
+ {
42602
+ variant: "outlined",
42603
+ color: "error",
42604
+ size: "small",
42605
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DeleteIcon, {}),
42606
+ onClick: () => setClearCategoryDialog(category),
42607
+ disabled: clearing,
42608
+ children: [
42609
+ "Clear ",
42610
+ category.name
42611
+ ]
42612
+ }
42613
+ ),
42614
+ category.clearWarning && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", color: "warning.main", sx: { display: "block", mt: 1 }, children: category.clearWarning })
42615
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mt: 1 }, children: category.itemCount === 0 ? "This category is empty." : "This category cannot be cleared automatically." })
42616
+ ] }) })
42617
+ ]
42618
+ },
42619
+ category.name
42620
+ );
42749
42621
  }) }) }),
42750
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.Card, { sx: { mt: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.CardContent, { children: [
42751
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "h6", gutterBottom: true, sx: { fontWeight: 600, color: "text.primary" }, children: [
42752
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(InfoIcon, { sx: { mr: 1, verticalAlign: "middle" } }),
42753
- "Storage Tips & Clear Options"
42754
- ] }),
42755
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.List, { children: [
42756
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { children: [
42757
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42758
- CheckCircleIcon,
42759
- {
42760
- sx: {
42761
- color: syncFeaturesActive ? theme.palette.warning.main : theme.palette.success.main
42762
- }
42763
- }
42764
- ) }),
42765
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42766
- import_material48.ListItemText,
42767
- {
42768
- primary: storageStatusPrimary,
42769
- secondary: syncFeaturesActive ? "Some features (conversation sync or advanced vector storage) can sync items to your configured gateway storage." : "With conversation sync and advanced vector storage turned off, everything stays in this browser."
42770
- }
42771
- )
42772
- ] }),
42773
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { children: [
42774
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CleaningServicesIcon, { color: "info" }) }),
42775
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42776
- import_material48.ListItemText,
42777
- {
42778
- primary: "Clear All Data (Safe)",
42779
- secondary: "Deletes all items but keeps database structure intact. App continues working normally."
42780
- }
42781
- )
42782
- ] }),
42783
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { children: [
42784
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DeleteIcon, { color: "error" }) }),
42785
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42786
- import_material48.ListItemText,
42787
- {
42788
- primary: "Nuclear Clear (Complete Reset)",
42789
- secondary: "Completely destroys all databases and forces app reload. Use only for complete reset."
42790
- }
42791
- )
42792
- ] }),
42793
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { children: [
42794
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(WarningIcon, { color: "warning" }) }),
42795
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42796
- import_material48.ListItemText,
42797
- {
42798
- primary: "Backup important data",
42799
- secondary: "Export custom models and important documents before clearing storage"
42800
- }
42801
- )
42802
- ] })
42803
- ] })
42804
- ] }) }),
42622
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
42623
+ import_material48.Box,
42624
+ {
42625
+ sx: {
42626
+ mt: 1.5,
42627
+ p: { xs: 1.5, sm: 1.75 },
42628
+ border: "1px solid",
42629
+ borderColor: "divider",
42630
+ borderRadius: 2,
42631
+ bgcolor: "background.paper"
42632
+ },
42633
+ children: [
42634
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.Typography, { variant: "overline", sx: { color: "text.secondary", display: "flex", alignItems: "center", gap: 0.75 }, children: [
42635
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(InfoIcon, { fontSize: "small" }),
42636
+ "Storage Tips & Clear Options"
42637
+ ] }),
42638
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.List, { dense: true, disablePadding: true, sx: { mt: 0.5 }, children: [
42639
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { sx: { py: 0.5 }, children: [
42640
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42641
+ CheckCircleIcon,
42642
+ {
42643
+ fontSize: "small",
42644
+ sx: {
42645
+ color: syncFeaturesActive ? theme.palette.warning.main : theme.palette.success.main
42646
+ }
42647
+ }
42648
+ ) }),
42649
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42650
+ import_material48.ListItemText,
42651
+ {
42652
+ primary: storageStatusPrimary,
42653
+ primaryTypographyProps: { variant: "body2" },
42654
+ secondaryTypographyProps: { variant: "caption" },
42655
+ secondary: syncFeaturesActive ? "Some features (conversation sync or advanced vector storage) can sync items to your configured gateway storage." : "With conversation sync and advanced vector storage turned off, everything stays in this browser."
42656
+ }
42657
+ )
42658
+ ] }),
42659
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { sx: { py: 0.5 }, children: [
42660
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CleaningServicesIcon, { fontSize: "small", color: "info" }) }),
42661
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42662
+ import_material48.ListItemText,
42663
+ {
42664
+ primary: "Clear All Data (Safe)",
42665
+ primaryTypographyProps: { variant: "body2" },
42666
+ secondaryTypographyProps: { variant: "caption" },
42667
+ secondary: "Deletes all items but keeps database structure intact. App continues working normally."
42668
+ }
42669
+ )
42670
+ ] }),
42671
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { sx: { py: 0.5 }, children: [
42672
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DeleteIcon, { fontSize: "small", color: "error" }) }),
42673
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42674
+ import_material48.ListItemText,
42675
+ {
42676
+ primary: "Nuclear Clear (Complete Reset)",
42677
+ primaryTypographyProps: { variant: "body2" },
42678
+ secondaryTypographyProps: { variant: "caption" },
42679
+ secondary: "Completely destroys all databases and forces app reload. Use only for complete reset."
42680
+ }
42681
+ )
42682
+ ] }),
42683
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_material48.ListItem, { sx: { py: 0.5 }, children: [
42684
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_material48.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(WarningIcon, { fontSize: "small", color: "warning" }) }),
42685
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
42686
+ import_material48.ListItemText,
42687
+ {
42688
+ primary: "Backup important data",
42689
+ primaryTypographyProps: { variant: "body2" },
42690
+ secondaryTypographyProps: { variant: "caption" },
42691
+ secondary: "Export custom models and important documents before clearing storage"
42692
+ }
42693
+ )
42694
+ ] })
42695
+ ] })
42696
+ ]
42697
+ }
42698
+ ),
42805
42699
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
42806
42700
  import_material48.Dialog,
42807
42701
  {
@@ -43009,7 +42903,6 @@ var ProviderTab = () => {
43009
42903
  gatewayUrl: packageSettings?.gatewayApiUrl || "",
43010
42904
  provider: "bandit"
43011
42905
  });
43012
- const [isProviderConfigOpen, setIsProviderConfigOpen] = (0, import_react59.useState)(false);
43013
42906
  const [snackbarMessage, setSnackbarMessage] = (0, import_react59.useState)("");
43014
42907
  const [showSnackbar, setShowSnackbar] = (0, import_react59.useState)(false);
43015
42908
  const [snackbarSeverity, setSnackbarSeverity] = (0, import_react59.useState)("success");
@@ -43230,7 +43123,7 @@ var ProviderTab = () => {
43230
43123
  ] }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_material49.Chip, { label: "No Provider Configured", color: "warning" })
43231
43124
  ] }),
43232
43125
  /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_material49.Paper, { sx: { p: { xs: 1.5, sm: 1.75 }, mb: { xs: 1.5, md: 1.75 }, bgcolor: "background.paper", border: "1px solid", borderColor: "divider", borderRadius: 2 }, children: [
43233
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
43126
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
43234
43127
  import_material49.Box,
43235
43128
  {
43236
43129
  sx: {
@@ -43241,24 +43134,10 @@ var ProviderTab = () => {
43241
43134
  gap: { xs: 1, sm: 2 },
43242
43135
  mb: 2
43243
43136
  },
43244
- children: [
43245
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_material49.Typography, { variant: "h6", sx: { fontWeight: 600, color: "text.primary" }, children: "Provider Configuration" }),
43246
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
43247
- import_material49.Button,
43248
- {
43249
- variant: "outlined",
43250
- onClick: () => setIsProviderConfigOpen(!isProviderConfigOpen),
43251
- size: isMobile ? "small" : "medium",
43252
- children: [
43253
- isProviderConfigOpen ? "Hide" : "Configure",
43254
- " Provider"
43255
- ]
43256
- }
43257
- )
43258
- ]
43137
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_material49.Typography, { variant: "overline", sx: { fontWeight: 700, color: "text.secondary", letterSpacing: 0.6 }, children: "Provider Configuration" })
43259
43138
  }
43260
43139
  ),
43261
- isProviderConfigOpen && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_material49.Box, { sx: { mt: 3 }, children: [
43140
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_material49.Box, { sx: { mt: 2 }, children: [
43262
43141
  /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
43263
43142
  import_material49.TextField,
43264
43143
  {