@burtson-labs/bandit-engine 2.0.111 → 2.0.112

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.
@@ -34072,7 +34072,6 @@ var PersonalitiesTab = ({
34072
34072
  const theme = (0, import_styles18.useTheme)();
34073
34073
  const isMobile = (0, import_useMediaQuery.default)(theme.breakpoints.down("sm"));
34074
34074
  const [personalityTabIndex, setPersonalityTabIndex] = (0, import_react25.useState)(0);
34075
- const sectionGap = isMobile ? 2 : 3;
34076
34075
  const tabWrapperStyles = isMobile ? { flexDirection: "column", gap: 0.35, fontSize: "0.78rem" } : { flexDirection: "row", gap: 0.75, fontSize: "0.95rem" };
34077
34076
  const [restoreDialogOpen, setRestoreDialogOpen] = (0, import_react25.useState)(false);
34078
34077
  const [deleteDialogOpen, setDeleteDialogOpen] = (0, import_react25.useState)(false);
@@ -34721,49 +34720,19 @@ var PersonalitiesTab = ({
34721
34720
  ] })
34722
34721
  ] });
34723
34722
  const renderCreateEditTab = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { p: { xs: 1.5, sm: 2 } }, children: [
34724
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: { xs: 2.5, md: 4 } }, children: [
34723
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: { xs: 1.25, md: 1.5 } }, children: [
34725
34724
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34726
34725
  import_material19.Typography,
34727
34726
  {
34728
- variant: "h5",
34729
- sx: {
34730
- fontWeight: 600,
34731
- mb: 1,
34732
- color: "primary.main",
34733
- fontSize: { xs: "1.55rem", sm: "1.7rem" }
34734
- },
34727
+ variant: "overline",
34728
+ sx: { fontWeight: 700, color: "primary.main", letterSpacing: 0.5, display: "block" },
34735
34729
  children: localSelectedModel.selectedModel ? "Edit Personality" : "Create New Personality"
34736
34730
  }
34737
34731
  ),
34738
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34739
- import_material19.Typography,
34740
- {
34741
- variant: "body1",
34742
- sx: { color: "text.secondary", mb: { xs: 2, md: 3 }, fontSize: { xs: "0.95rem", sm: "1rem" }, lineHeight: 1.5 },
34743
- 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."
34744
- }
34745
- ),
34746
- !localSelectedModel.selectedModel && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
34747
- import_material19.Alert,
34748
- {
34749
- severity: "info",
34750
- sx: {
34751
- mb: { xs: 2.5, md: 3 },
34752
- borderRadius: 2,
34753
- border: "1px solid rgba(25, 118, 210, 0.2)",
34754
- background: "linear-gradient(135deg, rgba(25, 118, 210, 0.05) 0%, rgba(66, 165, 245, 0.05) 100%)",
34755
- px: { xs: 1.5, sm: 2 },
34756
- py: { xs: 1.25, sm: 1.5 }
34757
- },
34758
- children: [
34759
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { fontWeight: 600, color: "primary.main", fontSize: { xs: "0.85rem", sm: "0.9rem" } }, children: "Creating a new personality" }),
34760
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.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!" })
34761
- ]
34762
- }
34763
- )
34732
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.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." })
34764
34733
  ] }),
34765
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: sectionGap }, children: [
34766
- localSelectedModel.selectedModel && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", alignItems: "center", mt: 2, mb: 3 }, children: [
34734
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: 1.5 }, children: [
34735
+ localSelectedModel.selectedModel && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", alignItems: "center", mb: 1.5 }, children: [
34767
34736
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34768
34737
  import_material19.Avatar,
34769
34738
  {
@@ -34774,10 +34743,10 @@ var PersonalitiesTab = ({
34774
34743
  }
34775
34744
  ),
34776
34745
  alt: localSelectedModel.selectedModel,
34777
- sx: { width: 48, height: 48, mr: 2, filter: "brightness(1.5)" }
34746
+ sx: { width: 36, height: 36, mr: 1.5, filter: "brightness(1.5)" }
34778
34747
  }
34779
34748
  ),
34780
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { fontWeight: 600, color: "text.primary" }, children: localSelectedModel.selectedModel })
34749
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { fontWeight: 600, color: "text.primary" }, children: localSelectedModel.selectedModel })
34781
34750
  ] }),
34782
34751
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
34783
34752
  import_material19.TextField,
@@ -34813,7 +34782,7 @@ var PersonalitiesTab = ({
34813
34782
  },
34814
34783
  fullWidth: true,
34815
34784
  select: true,
34816
- sx: { mb: sectionGap },
34785
+ sx: { mb: 1.5 },
34817
34786
  children: [
34818
34787
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.MenuItem, { value: "", children: "Create New Personality" }),
34819
34788
  availableModels.map((model, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.MenuItem, { value: model.name, children: model.name }, index))
@@ -34821,34 +34790,34 @@ var PersonalitiesTab = ({
34821
34790
  }
34822
34791
  )
34823
34792
  ] }),
34824
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34825
- import_material19.TextField,
34826
- {
34827
- label: "Personality Name",
34828
- variant: "outlined",
34829
- value: localSelectedModel.name,
34830
- onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, name: e.target.value }),
34831
- fullWidth: true,
34832
- placeholder: "e.g., My Custom Assistant",
34833
- sx: { mb: sectionGap }
34834
- }
34835
- ),
34836
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34837
- import_material19.TextField,
34838
- {
34839
- label: "Tagline",
34840
- variant: "outlined",
34841
- value: localSelectedModel.tagline,
34842
- onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, tagline: e.target.value }),
34843
- fullWidth: true,
34844
- placeholder: "e.g., Your helpful companion for daily tasks",
34845
- sx: { mb: sectionGap }
34846
- }
34847
- ),
34848
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: sectionGap }, children: [
34849
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Mood & Personality" }),
34850
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Click any mood to automatically add personality instructions to your system prompt:" }),
34851
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: moodSuggestions.map((mood) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34793
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", flexDirection: { xs: "column", sm: "row" }, gap: 1.5, mb: 1.5 }, children: [
34794
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34795
+ import_material19.TextField,
34796
+ {
34797
+ label: "Personality Name",
34798
+ variant: "outlined",
34799
+ value: localSelectedModel.name,
34800
+ onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, name: e.target.value }),
34801
+ fullWidth: true,
34802
+ placeholder: "e.g., My Custom Assistant"
34803
+ }
34804
+ ),
34805
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34806
+ import_material19.TextField,
34807
+ {
34808
+ label: "Tagline",
34809
+ variant: "outlined",
34810
+ value: localSelectedModel.tagline,
34811
+ onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, tagline: e.target.value }),
34812
+ fullWidth: true,
34813
+ placeholder: "e.g., Your helpful companion for daily tasks"
34814
+ }
34815
+ )
34816
+ ] }),
34817
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: 1.5 }, children: [
34818
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Mood & Personality" }),
34819
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Click a mood to add personality instructions to your prompt." }),
34820
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: moodSuggestions.map((mood) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
34852
34821
  import_material19.Chip,
34853
34822
  {
34854
34823
  label: mood.label,
@@ -34873,10 +34842,10 @@ var PersonalitiesTab = ({
34873
34842
  mood.label
34874
34843
  )) })
34875
34844
  ] }),
34876
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: sectionGap }, children: [
34877
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Formatting Tips" }),
34878
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Click any tip to add professional formatting to your system prompt:" }),
34879
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
34845
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: 1.5 }, children: [
34846
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Formatting Tips" }),
34847
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Click a tip to add formatting guidance to your prompt." }),
34848
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: [
34880
34849
  { label: "Be Specific", text: "Always be specific and detailed in your responses.", color: "#2196F3" },
34881
34850
  { label: "Stay In Character", text: "Maintain your personality consistently throughout the conversation.", color: "#4CAF50" },
34882
34851
  { label: "Ask Questions", text: "Ask clarifying questions when you need more information to help effectively.", color: "#FF9800" },
@@ -34927,10 +34896,10 @@ var PersonalitiesTab = ({
34927
34896
  tip.label
34928
34897
  )) })
34929
34898
  ] }),
34930
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: sectionGap }, children: [
34931
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Formatting Tools" }),
34932
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Add visual formatting to make your AI responses more engaging:" }),
34933
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
34899
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: 1.5 }, children: [
34900
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Formatting Tools" }),
34901
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Add visual formatting to make responses more engaging." }),
34902
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: [
34934
34903
  {
34935
34904
  label: "Highlight Text",
34936
34905
  text: "Use <mark>highlighted text</mark> to emphasize important points.",
@@ -35027,23 +34996,22 @@ var PersonalitiesTab = ({
35027
34996
  onChange: (e) => setLocalSelectedModel({ ...localSelectedModel, systemPrompt: e.target.value }),
35028
34997
  fullWidth: true,
35029
34998
  multiline: true,
35030
- rows: 10,
34999
+ rows: 8,
35031
35000
  placeholder: "Describe how your assistant should behave...",
35032
35001
  InputLabelProps: { shrink: true },
35033
35002
  InputProps: {
35034
35003
  style: {
35035
- minHeight: isMobile ? "auto" : "180px",
35036
- maxHeight: "360px"
35004
+ maxHeight: "320px"
35037
35005
  }
35038
35006
  },
35039
- sx: { mb: 3 }
35007
+ sx: { mb: 1.5 }
35040
35008
  }
35041
35009
  ),
35042
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: 4 }, children: [
35043
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Select an Avatar" }),
35044
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 2, color: "text.secondary" }, children: "Choose from our curated collection of avatars to give your AI personality a face:" }),
35045
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { mb: 1, color: "primary.main", fontWeight: 600, display: "block" }, children: "Robotic Collection" }),
35046
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", gap: 2, mb: 3, flexWrap: "wrap" }, children: [
35010
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mb: 1.5 }, children: [
35011
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "subtitle2", sx: { mb: 0.5, fontWeight: 700, color: "text.primary" }, children: "Select an Avatar" }),
35012
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { mb: 1, color: "text.secondary" }, children: "Choose an avatar to give your personality a face." }),
35013
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { mb: 0.75, color: "primary.main", fontWeight: 600, display: "block" }, children: "Robotic Collection" }),
35014
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", gap: 1.5, mb: 1.5, flexWrap: "wrap" }, children: [
35047
35015
  { label: "Fembot", src: "https://cdn.burtson.ai/avatars/fembot.png" },
35048
35016
  { label: "Dudebot", src: "https://cdn.burtson.ai/avatars/dudebot.png" },
35049
35017
  { label: "Coolbot", src: "https://cdn.burtson.ai/avatars/coolbot.png" }
@@ -35057,8 +35025,8 @@ var PersonalitiesTab = ({
35057
35025
  setCustomAvatarBase64(null);
35058
35026
  },
35059
35027
  sx: {
35060
- width: 72,
35061
- height: 72,
35028
+ width: 56,
35029
+ height: 56,
35062
35030
  border: presetAvatar === src ? "3px solid #1976d2" : "2px solid transparent",
35063
35031
  cursor: "pointer",
35064
35032
  transition: "all 0.2s",
@@ -35072,8 +35040,8 @@ var PersonalitiesTab = ({
35072
35040
  },
35073
35041
  label
35074
35042
  )) }),
35075
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { mb: 1, color: "secondary.main", fontWeight: 600, display: "block" }, children: "\u{1F465} Professional Characters" }),
35076
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", gap: 2, mb: 3, flexWrap: "wrap" }, children: [
35043
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { mb: 0.75, color: "secondary.main", fontWeight: 600, display: "block" }, children: "Professional Characters" }),
35044
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", gap: 1.5, mb: 1.5, flexWrap: "wrap" }, children: [
35077
35045
  { label: "Business Professional", src: "https://cdn.burtson.ai/avatars/businessman.png", role: "Business & Strategy" },
35078
35046
  { label: "Data Scientist", src: "https://cdn.burtson.ai/avatars/datascience.png", role: "Analytics & Insights" },
35079
35047
  { label: "Support Specialist", src: "https://cdn.burtson.ai/avatars/support.png", role: "Customer Support" },
@@ -35082,7 +35050,7 @@ var PersonalitiesTab = ({
35082
35050
  { label: "Researcher", src: "https://cdn.burtson.ai/avatars/researcher.png", role: "Research & Analysis" },
35083
35051
  { label: "Startup Mentor", src: "https://cdn.burtson.ai/avatars/startupmentor.png", role: "Entrepreneurship" },
35084
35052
  { label: "Travel Expert", src: "https://cdn.burtson.ai/avatars/travel.png", role: "Travel & Adventure" }
35085
- ].map(({ label, src, role }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", flexDirection: "column", alignItems: "center", gap: 0.5 }, children: [
35053
+ ].map(({ label, src, role }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", flexDirection: "column", alignItems: "center", gap: 0.25 }, children: [
35086
35054
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35087
35055
  import_material19.Avatar,
35088
35056
  {
@@ -35093,8 +35061,8 @@ var PersonalitiesTab = ({
35093
35061
  setCustomAvatarBase64(null);
35094
35062
  },
35095
35063
  sx: {
35096
- width: 72,
35097
- height: 72,
35064
+ width: 56,
35065
+ height: 56,
35098
35066
  border: presetAvatar === src ? "3px solid #1976d2" : "2px solid transparent",
35099
35067
  cursor: "pointer",
35100
35068
  transition: "all 0.2s",
@@ -35119,51 +35087,50 @@ var PersonalitiesTab = ({
35119
35087
  overflow: "hidden"
35120
35088
  }, children: role })
35121
35089
  ] }, label)) }),
35122
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { mb: 1, color: "warning.main", fontWeight: 600, display: "block" }, children: "Custom Upload" }),
35123
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
35124
- import_material19.Button,
35125
- {
35126
- variant: "outlined",
35127
- component: "label",
35128
- sx: {
35129
- mb: 2,
35130
- px: { xs: 2.2, sm: 3 },
35131
- py: { xs: 1.2, sm: 1.5 },
35132
- borderRadius: 2,
35133
- textTransform: "none",
35134
- fontWeight: 600,
35135
- borderStyle: "dashed",
35136
- borderWidth: 2,
35137
- "&:hover": {
35090
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { mb: 0.75, color: "warning.main", fontWeight: 600, display: "block" }, children: "Custom Upload" }),
35091
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", flexDirection: { xs: "column", sm: "row" }, alignItems: { sm: "center" }, gap: 1.5 }, children: [
35092
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
35093
+ import_material19.Button,
35094
+ {
35095
+ variant: "outlined",
35096
+ component: "label",
35097
+ sx: {
35098
+ borderRadius: 2,
35099
+ textTransform: "none",
35100
+ fontWeight: 600,
35138
35101
  borderStyle: "dashed",
35139
- borderWidth: 2
35102
+ borderWidth: 2,
35103
+ "&:hover": {
35104
+ borderStyle: "dashed",
35105
+ borderWidth: 2
35106
+ },
35107
+ width: { xs: "100%", sm: "auto" }
35140
35108
  },
35141
- width: { xs: "100%", sm: "auto" }
35142
- },
35143
- children: [
35144
- "Upload & Crop Custom Avatar",
35145
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35146
- "input",
35147
- {
35148
- type: "file",
35149
- accept: "image/png, image/jpeg, image/jpg",
35150
- hidden: true,
35151
- onChange: handleImageUpload
35152
- }
35153
- )
35154
- ]
35155
- }
35156
- ),
35157
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.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" }),
35158
- (customAvatarBase64 || presetAvatar) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mt: 2, display: "flex", alignItems: "center", gap: 2 }, children: [
35109
+ children: [
35110
+ "Upload & Crop Custom Avatar",
35111
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35112
+ "input",
35113
+ {
35114
+ type: "file",
35115
+ accept: "image/png, image/jpeg, image/jpg",
35116
+ hidden: true,
35117
+ onChange: handleImageUpload
35118
+ }
35119
+ )
35120
+ ]
35121
+ }
35122
+ ),
35123
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", color: "text.secondary", children: "JPG/PNG up to 10MB \xB7 output 512\xD7512px" })
35124
+ ] }),
35125
+ (customAvatarBase64 || presetAvatar) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { mt: 1.5, display: "flex", alignItems: "center", gap: 1.5 }, children: [
35159
35126
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35160
35127
  import_material19.Avatar,
35161
35128
  {
35162
35129
  src: customAvatarBase64 || presetAvatar,
35163
35130
  alt: "Avatar Preview",
35164
35131
  sx: {
35165
- width: 96,
35166
- height: 96,
35132
+ width: 56,
35133
+ height: 56,
35167
35134
  border: "3px solid",
35168
35135
  borderColor: "primary.main",
35169
35136
  boxShadow: 3
@@ -35194,14 +35161,14 @@ var PersonalitiesTab = ({
35194
35161
  zIndex: { xs: 5, sm: "auto" },
35195
35162
  display: "flex",
35196
35163
  flexDirection: { xs: "column", sm: "row" },
35197
- gap: { xs: 1.5, sm: 2 },
35164
+ gap: { xs: 1.5, sm: 1.5 },
35198
35165
  justifyContent: "flex-start",
35199
35166
  // Changed from flex-end to flex-start
35200
35167
  mr: { xs: 0, sm: 10 },
35201
35168
  // Add right margin to avoid FAB
35202
- mb: { xs: 8, sm: 2 },
35169
+ mb: { xs: 8, sm: 1.5 },
35203
35170
  // Add bottom margin on mobile for FAB clearance
35204
- mt: { xs: 1.5, sm: 0 },
35171
+ mt: { xs: 1.5, sm: 0.5 },
35205
35172
  p: { xs: 1.1, sm: 0 },
35206
35173
  borderRadius: { xs: 2, sm: 0 },
35207
35174
  border: { xs: "1px solid", sm: "none" },
@@ -35244,16 +35211,16 @@ var PersonalitiesTab = ({
35244
35211
  flexDirection: { xs: "column", md: "row" },
35245
35212
  alignItems: { xs: "flex-start", md: "center" },
35246
35213
  justifyContent: "space-between",
35247
- mb: { xs: 2, md: 3 },
35214
+ mb: { xs: 1.25, md: 1.5 },
35248
35215
  flexWrap: "wrap",
35249
- gap: { xs: 1.5, md: 2 }
35216
+ gap: { xs: 1, md: 1.5 }
35250
35217
  },
35251
35218
  children: [
35252
35219
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
35253
35220
  import_material19.Typography,
35254
35221
  {
35255
- variant: "h5",
35256
- sx: { fontWeight: 600, color: "primary.main", fontSize: { xs: "1.45rem", md: "1.65rem" } },
35222
+ variant: "subtitle2",
35223
+ sx: { fontWeight: 700, color: "primary.main" },
35257
35224
  children: [
35258
35225
  "Manage Personalities (",
35259
35226
  availableModels.length,
@@ -35261,14 +35228,13 @@ var PersonalitiesTab = ({
35261
35228
  ]
35262
35229
  }
35263
35230
  ),
35264
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", gap: { xs: 1, md: 2 }, flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
35231
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", gap: 1, flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
35265
35232
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35266
35233
  import_material19.Button,
35267
35234
  {
35268
35235
  variant: "contained",
35269
35236
  color: "primary",
35270
- size: isMobile ? "medium" : "large",
35271
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AutoAwesomeIcon, { fontSize: isMobile ? "small" : "medium" }),
35237
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AutoAwesomeIcon, { fontSize: "small" }),
35272
35238
  onClick: () => {
35273
35239
  setLocalSelectedModel({
35274
35240
  name: "",
@@ -35281,15 +35247,9 @@ var PersonalitiesTab = ({
35281
35247
  setPersonalityTabIndex(1);
35282
35248
  },
35283
35249
  sx: {
35284
- px: { xs: 2.2, md: 3 },
35285
- py: { xs: 0.95, md: 1 },
35286
35250
  fontWeight: 600,
35287
35251
  borderRadius: 2,
35288
35252
  textTransform: "none",
35289
- boxShadow: 3,
35290
- "&:hover": {
35291
- boxShadow: 6
35292
- },
35293
35253
  width: { xs: "100%", sm: "auto" }
35294
35254
  },
35295
35255
  children: "Create Personality"
@@ -35309,10 +35269,10 @@ var PersonalitiesTab = ({
35309
35269
  ]
35310
35270
  }
35311
35271
  ),
35312
- availableModels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Card, { sx: { textAlign: "center", py: 8, border: "2px dashed", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.CardContent, { children: [
35313
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { fontWeight: 600, color: "text.primary" }, gutterBottom: true, children: "No Personalities Yet" }),
35314
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", color: "text.secondary", paragraph: true, children: "Get started by creating your first custom AI personality or choosing from our templates." }),
35315
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", gap: 2, justifyContent: "center", flexWrap: "wrap", mt: 3 }, children: [
35272
+ availableModels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Card, { sx: { textAlign: "center", py: 3, border: "1px dashed", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.CardContent, { children: [
35273
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "subtitle2", sx: { fontWeight: 700, color: "text.primary" }, gutterBottom: true, children: "No Personalities Yet" }),
35274
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", color: "text.secondary", children: "Create your first custom AI personality or choose from a template." }),
35275
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", gap: 1.5, justifyContent: "center", flexWrap: "wrap", mt: 1.5 }, children: [
35316
35276
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35317
35277
  import_material19.Button,
35318
35278
  {
@@ -35329,7 +35289,7 @@ var PersonalitiesTab = ({
35329
35289
  setPresetAvatar(null);
35330
35290
  setPersonalityTabIndex(1);
35331
35291
  },
35332
- sx: { px: { xs: 2.4, md: 3 }, py: { xs: 0.95, md: 1 }, width: { xs: "100%", sm: "auto" } },
35292
+ sx: { width: { xs: "100%", sm: "auto" } },
35333
35293
  children: "Create From Scratch"
35334
35294
  }
35335
35295
  ),
@@ -35339,74 +35299,70 @@ var PersonalitiesTab = ({
35339
35299
  variant: "outlined",
35340
35300
  color: "primary",
35341
35301
  onClick: () => setPersonalityTabIndex(0),
35342
- sx: { px: { xs: 2.4, md: 3 }, py: { xs: 0.95, md: 1 }, width: { xs: "100%", sm: "auto" } },
35302
+ sx: { width: { xs: "100%", sm: "auto" } },
35343
35303
  children: "Browse Templates"
35344
35304
  }
35345
35305
  )
35346
35306
  ] })
35347
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexDirection: "column", gap: { xs: 2, md: 3 } }, children: availableModels.map((model) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Card, { sx: { border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.CardContent, { sx: { p: { xs: 2.5, sm: 3 } }, children: [
35348
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", alignItems: "center", mb: { xs: 1.5, md: 2 } }, children: [
35349
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35350
- import_material19.Avatar,
35351
- {
35352
- src: resolveAvatar(model),
35353
- alt: model.name,
35354
- sx: { width: { xs: 44, sm: 48 }, height: { xs: 44, sm: 48 }, mr: { xs: 1.5, sm: 2 } }
35355
- }
35356
- ),
35357
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { flex: 1 }, children: [
35358
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body1", sx: { fontWeight: 600, color: "text.primary" }, children: model.name }),
35359
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { color: "text.secondary", fontStyle: "italic" }, children: model.tagline })
35360
- ] })
35361
- ] }),
35362
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35363
- import_material19.Typography,
35364
- {
35365
- variant: "body2",
35366
- sx: {
35367
- color: "text.secondary",
35368
- mb: 3,
35369
- display: "-webkit-box",
35370
- WebkitLineClamp: 3,
35371
- WebkitBoxOrient: "vertical",
35372
- overflow: "hidden"
35373
- },
35374
- children: model.systemPrompt
35375
- }
35376
- ),
35377
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", gap: 2 }, children: [
35378
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35379
- import_material19.Button,
35380
- {
35381
- variant: "outlined",
35382
- color: "primary",
35383
- onClick: () => {
35384
- setLocalSelectedModel({
35385
- name: model.name,
35386
- tagline: model.tagline,
35387
- systemPrompt: model.systemPrompt,
35388
- selectedModel: model.name
35389
- });
35390
- setCustomAvatarBase64(model.avatarBase64 || null);
35391
- setPresetAvatar(null);
35392
- setPersonalityTabIndex(1);
35393
- },
35394
- sx: { flex: 1 },
35395
- children: "Edit"
35396
- }
35397
- ),
35398
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35399
- import_material19.Button,
35400
- {
35401
- variant: "outlined",
35402
- color: "error",
35403
- onClick: () => handleDeletePersonality(model.name),
35404
- sx: { flex: 1 },
35405
- children: "Delete"
35406
- }
35407
- )
35408
- ] })
35409
- ] }) }, model.name)) }),
35307
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: availableModels.map((model) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Card, { sx: { border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
35308
+ import_material19.CardContent,
35309
+ {
35310
+ sx: {
35311
+ p: 1,
35312
+ "&:last-child": { pb: 1 },
35313
+ display: "flex",
35314
+ alignItems: "center",
35315
+ gap: 1.5,
35316
+ flexWrap: { xs: "wrap", sm: "nowrap" }
35317
+ },
35318
+ children: [
35319
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35320
+ import_material19.Avatar,
35321
+ {
35322
+ src: resolveAvatar(model),
35323
+ alt: model.name,
35324
+ sx: { width: 40, height: 40, flexShrink: 0 }
35325
+ }
35326
+ ),
35327
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { flex: 1, minWidth: 0 }, children: [
35328
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "body2", sx: { fontWeight: 600, color: "text.primary", lineHeight: 1.2 }, noWrap: true, children: model.name }),
35329
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.Typography, { variant: "caption", sx: { color: "text.secondary", display: "block" }, noWrap: true, children: model.tagline })
35330
+ ] }),
35331
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Box, { sx: { display: "flex", gap: 1, flexShrink: 0, width: { xs: "100%", sm: "auto" } }, children: [
35332
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35333
+ import_material19.Button,
35334
+ {
35335
+ variant: "outlined",
35336
+ color: "primary",
35337
+ onClick: () => {
35338
+ setLocalSelectedModel({
35339
+ name: model.name,
35340
+ tagline: model.tagline,
35341
+ systemPrompt: model.systemPrompt,
35342
+ selectedModel: model.name
35343
+ });
35344
+ setCustomAvatarBase64(model.avatarBase64 || null);
35345
+ setPresetAvatar(null);
35346
+ setPersonalityTabIndex(1);
35347
+ },
35348
+ sx: { flex: { xs: 1, sm: "initial" } },
35349
+ children: "Edit"
35350
+ }
35351
+ ),
35352
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
35353
+ import_material19.Button,
35354
+ {
35355
+ variant: "outlined",
35356
+ color: "error",
35357
+ onClick: () => handleDeletePersonality(model.name),
35358
+ sx: { flex: { xs: 1, sm: "initial" } },
35359
+ children: "Delete"
35360
+ }
35361
+ )
35362
+ ] })
35363
+ ]
35364
+ }
35365
+ ) }, model.name)) }),
35410
35366
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_material19.Dialog, { open: restoreDialogOpen, onClose: () => setRestoreDialogOpen(false), children: [
35411
35367
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.DialogTitle, { children: "Restore Default Personalities?" }),
35412
35368
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.DialogContent, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material19.DialogContentText, { children: "This will delete all custom personalities and reset to the original configuration." }) }),
@@ -37192,7 +37148,7 @@ var BrandingTab = ({
37192
37148
  }
37193
37149
  };
37194
37150
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { height: "100%", display: "flex", flexDirection: "column", p: { xs: 1.5, sm: 2 } }, children: [
37195
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { mb: { xs: 2, md: 3 }, flex: "0 0 auto", display: "flex", flexDirection: "column", gap: 1 }, children: [
37151
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { mb: { xs: 1.5, md: 2 }, flex: "0 0 auto" }, children: [
37196
37152
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37197
37153
  import_material22.Typography,
37198
37154
  {
@@ -37201,30 +37157,22 @@ var BrandingTab = ({
37201
37157
  children: "Branding & Themes"
37202
37158
  }
37203
37159
  ),
37204
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37205
- import_material22.Typography,
37206
- {
37207
- variant: "body1",
37208
- sx: { color: "text.secondary", fontSize: { xs: "0.95rem", sm: "1rem" }, lineHeight: 1.5 },
37209
- children: "Customize your brand identity and visual appearance."
37210
- }
37211
- ),
37212
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Alert, { severity: "info", sx: { borderRadius: 2, px: { xs: 1.5, sm: 2 }, py: { xs: 1.25, sm: 1.5 } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Typography, { variant: "body2", sx: { fontSize: { xs: "0.82rem", sm: "0.88rem" }, lineHeight: 1.6 }, children: [
37213
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("strong", { children: "Logo requirements:" }),
37214
- " 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."
37215
- ] }) })
37160
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 1.5 }, children: "Customize your brand identity and visual appearance." }),
37161
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.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." })
37216
37162
  ] }),
37217
37163
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
37218
37164
  import_material22.Paper,
37219
37165
  {
37220
37166
  sx: {
37221
- p: { xs: 1.5, sm: 2 },
37167
+ p: { xs: 1.5, sm: 1.75 },
37168
+ border: "1px solid",
37169
+ borderColor: "divider",
37222
37170
  borderRadius: 2,
37223
37171
  flex: 1,
37224
37172
  display: "flex",
37225
37173
  flexDirection: { xs: "column", md: "row" },
37226
- gap: { xs: 1.5, md: 2.5 },
37227
- mb: { xs: 2, md: 3 }
37174
+ gap: { xs: 1.5, md: 1.5 },
37175
+ mb: { xs: 1.25, md: 1.5 }
37228
37176
  },
37229
37177
  children: [
37230
37178
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
@@ -37234,15 +37182,12 @@ var BrandingTab = ({
37234
37182
  width: { xs: "100%", md: "26%" },
37235
37183
  display: "flex",
37236
37184
  flexDirection: "column",
37237
- height: { xs: "auto", md: 320 },
37238
- gap: { xs: 2, md: 0 }
37185
+ height: { xs: "auto", md: 260 },
37186
+ gap: { xs: 1.5, md: 0 }
37239
37187
  },
37240
37188
  children: [
37241
37189
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { flex: "1 1 auto", display: "flex", flexDirection: "column" }, children: [
37242
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, display: "flex", alignItems: "center", gap: 1, fontSize: "1rem", color: "text.primary" }, children: [
37243
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(UploadIcon, { color: "primary", fontSize: "small" }),
37244
- "Logo Upload"
37245
- ] }),
37190
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "overline", sx: { mb: 0.5, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary" }, children: "Logo Upload" }),
37246
37191
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
37247
37192
  import_material22.Box,
37248
37193
  {
@@ -37261,7 +37206,7 @@ var BrandingTab = ({
37261
37206
  transition: "all 0.3s ease",
37262
37207
  position: "relative",
37263
37208
  flex: "1 1 auto",
37264
- minHeight: 160,
37209
+ minHeight: 120,
37265
37210
  display: "flex",
37266
37211
  flexDirection: "column",
37267
37212
  alignItems: "center",
@@ -37300,7 +37245,7 @@ var BrandingTab = ({
37300
37245
  {
37301
37246
  className: "upload-icon",
37302
37247
  sx: {
37303
- fontSize: 56,
37248
+ fontSize: 32,
37304
37249
  color: "text.secondary",
37305
37250
  transition: "color 0.3s ease"
37306
37251
  }
@@ -37348,7 +37293,7 @@ var BrandingTab = ({
37348
37293
  )
37349
37294
  ] })
37350
37295
  ] }),
37351
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { mt: 2, flex: "0 0 auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37296
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { mt: 1.5, flex: "0 0 auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37352
37297
  import_material22.TextField,
37353
37298
  {
37354
37299
  label: "Custom Branding Text",
@@ -37368,15 +37313,12 @@ var BrandingTab = ({
37368
37313
  }
37369
37314
  ),
37370
37315
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { flex: 1, width: "100%" }, children: [
37371
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, display: "flex", alignItems: "center", gap: 1, fontSize: "1rem", color: "text.primary" }, children: [
37372
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PreviewIcon, { color: "primary", fontSize: "small" }),
37373
- "Live Preview"
37374
- ] }),
37316
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "overline", sx: { mb: 0.5, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary", display: "block" }, children: "Live Preview" }),
37375
37317
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
37376
37318
  import_material22.Box,
37377
37319
  {
37378
37320
  sx: {
37379
- height: { xs: 260, md: 320 },
37321
+ height: { xs: 220, md: 260 },
37380
37322
  display: "flex",
37381
37323
  flexDirection: "column",
37382
37324
  position: "relative",
@@ -37384,7 +37326,7 @@ var BrandingTab = ({
37384
37326
  borderRadius: 2,
37385
37327
  overflow: "hidden",
37386
37328
  px: 2,
37387
- py: 3
37329
+ py: 2
37388
37330
  },
37389
37331
  children: [
37390
37332
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: {
@@ -37460,14 +37402,14 @@ var BrandingTab = ({
37460
37402
  ]
37461
37403
  }
37462
37404
  ),
37463
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Paper, { sx: { p: 2, borderRadius: 2, flex: "0 0 auto", mb: 2 }, children: [
37464
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, fontSize: "1rem", color: "text.primary" }, children: "Theme Selection" }),
37405
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.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: [
37406
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "overline", sx: { mb: 1, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary", display: "block" }, children: "Theme Selection" }),
37465
37407
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37466
37408
  import_material22.Box,
37467
37409
  {
37468
37410
  sx: {
37469
37411
  display: "grid",
37470
- gap: 1.5,
37412
+ gap: 1,
37471
37413
  gridTemplateColumns: {
37472
37414
  xs: "repeat(4, 1fr)",
37473
37415
  sm: "repeat(6, 1fr)",
@@ -37491,12 +37433,10 @@ var BrandingTab = ({
37491
37433
  position: "relative",
37492
37434
  overflow: "visible",
37493
37435
  "&:hover": {
37494
- transform: "scale(1.05)",
37495
- boxShadow: 2,
37496
37436
  borderColor: "primary.main"
37497
37437
  }
37498
37438
  },
37499
- elevation: isSelected ? 2 : 0,
37439
+ elevation: 0,
37500
37440
  children: [
37501
37441
  isSelected && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37502
37442
  import_material22.Chip,
@@ -37514,12 +37454,12 @@ var BrandingTab = ({
37514
37454
  }
37515
37455
  }
37516
37456
  ),
37517
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.CardContent, { sx: { p: 1 }, children: [
37457
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.CardContent, { sx: { p: 0.75, "&:last-child": { pb: 0.75 } }, children: [
37518
37458
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
37519
37459
  import_material22.Box,
37520
37460
  {
37521
37461
  sx: {
37522
- height: 40,
37462
+ height: 32,
37523
37463
  backgroundColor: themeOption.palette?.background?.default,
37524
37464
  borderRadius: 1,
37525
37465
  position: "relative",
@@ -37598,10 +37538,10 @@ var BrandingTab = ({
37598
37538
  }
37599
37539
  )
37600
37540
  ] }),
37601
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Paper, { sx: { p: 2, borderRadius: 2, flex: "0 0 auto" }, children: [
37602
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "h6", sx: { mb: 1.5, fontWeight: 600, fontSize: "1rem", color: "text.primary" }, children: "Actions" }),
37603
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1.5 }, children: [
37604
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37541
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Paper, { sx: { p: { xs: 1.5, sm: 1.75 }, border: "1px solid", borderColor: "divider", borderRadius: 2, flex: "0 0 auto" }, children: [
37542
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Typography, { variant: "overline", sx: { mb: 1, fontWeight: 700, fontSize: "0.7rem", letterSpacing: 0.6, color: "text.secondary", display: "block" }, children: "Actions" }),
37543
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: [
37544
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37605
37545
  import_material22.Button,
37606
37546
  {
37607
37547
  variant: "outlined",
@@ -37614,7 +37554,7 @@ var BrandingTab = ({
37614
37554
  children: saveStatus === "saving" ? "Saving..." : saveStatus === "saved" ? "\u2713 Saved" : saveStatus === "error" ? "\u2717 Error" : "Save"
37615
37555
  }
37616
37556
  ) }),
37617
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37557
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37618
37558
  import_material22.Button,
37619
37559
  {
37620
37560
  variant: "outlined",
@@ -37625,7 +37565,7 @@ var BrandingTab = ({
37625
37565
  children: "Export"
37626
37566
  }
37627
37567
  ) }),
37628
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: [
37568
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: [
37629
37569
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37630
37570
  import_material22.Button,
37631
37571
  {
@@ -37648,7 +37588,7 @@ var BrandingTab = ({
37648
37588
  }
37649
37589
  )
37650
37590
  ] }),
37651
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 6px)", sm: "calc(25% - 9px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37591
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_material22.Box, { sx: { flexBasis: { xs: "calc(50% - 4px)", sm: "calc(25% - 6px)" } }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
37652
37592
  import_material22.Button,
37653
37593
  {
37654
37594
  variant: "outlined",
@@ -38656,18 +38596,18 @@ var KnowledgeTab = ({
38656
38596
  const clearSelection = () => {
38657
38597
  setSelectedDocuments([]);
38658
38598
  };
38659
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { p: { xs: 1.5, sm: 3, md: 4 } }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { pt: { xs: 1, md: 2 }, pb: { xs: 3, md: 4 } }, children: [
38660
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { mb: { xs: 2.5, md: 4 } }, children: [
38599
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { p: { xs: 1.5, sm: 2, md: 2.5 } }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { children: [
38600
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { mb: { xs: 1.5, md: 2 } }, children: [
38661
38601
  /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
38662
38602
  import_material24.Box,
38663
38603
  {
38664
38604
  sx: {
38665
38605
  display: "flex",
38666
38606
  flexDirection: { xs: "column", md: "row" },
38667
- gap: { xs: 1.5, md: 2 },
38607
+ gap: { xs: 1, md: 1.5 },
38668
38608
  justifyContent: "space-between",
38669
38609
  alignItems: { xs: "flex-start", md: "center" },
38670
- mb: { xs: 1.5, md: 2 }
38610
+ mb: 1.5
38671
38611
  },
38672
38612
  children: [
38673
38613
  /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { textAlign: { xs: "left", md: "initial" } }, children: [
@@ -38676,7 +38616,7 @@ var KnowledgeTab = ({
38676
38616
  {
38677
38617
  variant: "h5",
38678
38618
  color: "text.primary",
38679
- sx: { mb: 1, fontWeight: 600, fontSize: { xs: "1.55rem", md: "1.8rem" } },
38619
+ sx: { mb: 0.5, fontWeight: 600, fontSize: "1.3rem" },
38680
38620
  children: [
38681
38621
  "Document Knowledge Base",
38682
38622
  shouldUseVector && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
@@ -38691,29 +38631,20 @@ var KnowledgeTab = ({
38691
38631
  ]
38692
38632
  }
38693
38633
  ),
38694
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
38695
- import_material24.Typography,
38696
- {
38697
- variant: "body1",
38698
- color: "text.secondary",
38699
- sx: { fontSize: { xs: "0.95rem", sm: "1rem" }, lineHeight: 1.5 },
38700
- children: [
38701
- "Add documents to your private knowledge base. Files are securely stored ",
38702
- shouldUseVector ? "in your private workspace" : "locally in your browser",
38703
- "."
38704
- ]
38705
- }
38706
- )
38634
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 0 }, children: [
38635
+ "Add documents to your private knowledge base, stored ",
38636
+ shouldUseVector ? "in your private workspace" : "locally in your browser",
38637
+ "."
38638
+ ] })
38707
38639
  ] }),
38708
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: { xs: 1, sm: 1.5 }, alignItems: "center", flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
38640
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 1, alignItems: "center", flexWrap: "wrap", width: { xs: "100%", md: "auto" } }, children: [
38709
38641
  shouldUseVector && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38710
38642
  import_material24.Button,
38711
38643
  {
38712
38644
  variant: "outlined",
38713
- size: isMobile ? "small" : "medium",
38714
38645
  onClick: loadVectorDocuments,
38715
38646
  disabled: loadingVectorDocs,
38716
- sx: { mr: { xs: 0, md: 1 }, width: { xs: "100%", md: "auto" } },
38647
+ sx: { width: { xs: "100%", md: "auto" } },
38717
38648
  children: loadingVectorDocs ? "Loading..." : "Refresh"
38718
38649
  }
38719
38650
  ),
@@ -38722,10 +38653,9 @@ var KnowledgeTab = ({
38722
38653
  {
38723
38654
  variant: "outlined",
38724
38655
  color: "error",
38725
- size: isMobile ? "small" : "medium",
38726
38656
  startIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DeleteIcon, {}),
38727
38657
  onClick: () => setClearDocsDialogOpen(true),
38728
- sx: { ml: { xs: 0, md: 2 }, width: { xs: "100%", md: "auto" } },
38658
+ sx: { width: { xs: "100%", md: "auto" } },
38729
38659
  children: "Clear All"
38730
38660
  }
38731
38661
  )
@@ -38733,17 +38663,17 @@ var KnowledgeTab = ({
38733
38663
  ]
38734
38664
  }
38735
38665
  ),
38736
- documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: { xs: 1.5, md: 2 }, flexWrap: "wrap", mb: { xs: 2, md: 3 } }, children: [
38737
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { minWidth: 120 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: [
38738
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "h6", color: "primary", children: statistics.totalDocuments }),
38666
+ documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 1, flexWrap: "wrap", mb: 0 }, children: [
38667
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { minWidth: 96, border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: [
38668
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "subtitle2", color: "primary", sx: { lineHeight: 1.2 }, children: statistics.totalDocuments }),
38739
38669
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", children: "Documents" })
38740
38670
  ] }) }),
38741
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { minWidth: 120 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: [
38742
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "h6", color: "primary", children: statistics.totalSize }),
38671
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { minWidth: 96, border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: [
38672
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "subtitle2", color: "primary", sx: { lineHeight: 1.2 }, children: statistics.totalSize }),
38743
38673
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", children: "Total Size" })
38744
38674
  ] }) }),
38745
- Object.entries(statistics.categoryCounts).map(([category, count]) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { minWidth: 100 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: [
38746
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "h6", color: "primary", children: count }),
38675
+ Object.entries(statistics.categoryCounts).map(([category, count]) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { minWidth: 80, border: "1px solid", borderColor: "divider", borderRadius: 2, boxShadow: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: [
38676
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "subtitle2", color: "primary", sx: { lineHeight: 1.2 }, children: count }),
38747
38677
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", children: category })
38748
38678
  ] }) }, category))
38749
38679
  ] })
@@ -38752,8 +38682,10 @@ var KnowledgeTab = ({
38752
38682
  import_material24.Card,
38753
38683
  {
38754
38684
  sx: {
38755
- mb: 3,
38756
- border: dragActive ? `2px dashed ${currentTheme.palette?.primary?.main}` : `1px dashed ${currentTheme.palette?.divider}`,
38685
+ mb: { xs: 1.25, md: 1.5 },
38686
+ borderRadius: 2,
38687
+ boxShadow: "none",
38688
+ border: dragActive ? `1px dashed ${currentTheme.palette?.primary?.main}` : `1px dashed ${currentTheme.palette?.divider}`,
38757
38689
  bgcolor: dragActive ? `${currentTheme.palette?.primary?.main}08` : "transparent",
38758
38690
  transition: "all 0.2s ease-in-out",
38759
38691
  cursor: "pointer",
@@ -38766,75 +38698,43 @@ var KnowledgeTab = ({
38766
38698
  onDragOver: handleDragOver,
38767
38699
  onDragLeave: handleDragLeave,
38768
38700
  onClick: () => document.getElementById("file-upload")?.click(),
38769
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { textAlign: "center", py: { xs: 3, md: 4 }, px: { xs: 2, md: 3 } }, children: [
38770
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38771
- UploadFileIcon,
38772
- {
38773
- sx: {
38774
- fontSize: 48,
38775
- color: dragActive ? "primary.main" : "text.secondary",
38776
- mb: 2
38701
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { textAlign: "center", py: 1.75, px: { xs: 1.5, sm: 1.75 }, "&:last-child": { pb: 1.75 } }, children: [
38702
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1 }, children: [
38703
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38704
+ UploadFileIcon,
38705
+ {
38706
+ sx: { fontSize: 18, color: dragActive ? "primary.main" : "text.secondary" }
38777
38707
  }
38778
- }
38779
- ),
38780
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "h6", color: dragActive ? "primary" : "text.primary", gutterBottom: true, children: dragActive ? "Drop files here" : "Upload Documents" }),
38781
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "body2", color: "text.secondary", paragraph: true, children: "Drag and drop files here or click to browse" }),
38708
+ ),
38709
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "subtitle2", color: dragActive ? "primary" : "text.primary", children: dragActive ? "Drop files here" : "Upload Documents" })
38710
+ ] }),
38711
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.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" }),
38782
38712
  shouldUseVector && hasTeam && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
38783
38713
  import_material24.Box,
38784
38714
  {
38785
- sx: {
38786
- mb: 2,
38787
- p: 2,
38788
- bgcolor: "background.paper",
38789
- borderRadius: 1,
38790
- border: "1px solid",
38791
- borderColor: "divider"
38792
- },
38715
+ sx: { display: "inline-flex", alignItems: "center", gap: 0.5, mt: 1 },
38793
38716
  onClick: (e) => e.stopPropagation(),
38794
38717
  children: [
38795
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1 }, children: [
38796
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38797
- import_material24.Switch,
38798
- {
38799
- checked: shareWithTeam,
38800
- onChange: (e) => setShareWithTeam(e.target.checked),
38801
- color: "primary",
38802
- size: "small"
38803
- }
38804
- ),
38805
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: shareWithTeam ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
38806
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(GroupIcon, { sx: { fontSize: "1rem", color: "success.main" } }),
38807
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "body2", color: "success.main", fontWeight: 500, children: "Share with team" })
38808
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
38809
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PersonIcon, { sx: { fontSize: "1rem", color: "text.secondary" } }),
38810
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "body2", color: "text.secondary", fontWeight: 500, children: "Personal only" })
38811
- ] }) })
38812
- ] }),
38813
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.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" })
38814
- ]
38815
- }
38816
- ),
38817
- shouldUseVector && !hasTeam && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
38818
- import_material24.Box,
38819
- {
38820
- sx: {
38821
- mb: 2,
38822
- p: 1.5,
38823
- bgcolor: "info.main10",
38824
- borderRadius: 1,
38825
- border: "1px solid",
38826
- borderColor: "info.main30"
38827
- },
38828
- children: [
38829
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1 }, children: [
38830
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PersonIcon, { sx: { fontSize: "1rem", color: "info.main" } }),
38831
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "body2", color: "info.main", fontWeight: 500, children: "Personal Documents Only" })
38832
- ] }),
38833
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", textAlign: "center", mt: 0.5 }, children: "Documents will be stored privately in your personal account" })
38718
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38719
+ import_material24.Switch,
38720
+ {
38721
+ checked: shareWithTeam,
38722
+ onChange: (e) => setShareWithTeam(e.target.checked),
38723
+ color: "primary",
38724
+ size: "small"
38725
+ }
38726
+ ),
38727
+ shareWithTeam ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
38728
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(GroupIcon, { sx: { fontSize: "1rem", color: "success.main" } }),
38729
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", children: "Shared with team \u2014 members can search these documents" })
38730
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
38731
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PersonIcon, { sx: { fontSize: "1rem", color: "text.secondary" } }),
38732
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", children: "Personal only \u2014 private to your account" })
38733
+ ] })
38834
38734
  ]
38835
38735
  }
38836
38736
  ),
38837
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", children: "Supported: PDF, DOC, TXT, MD, Code files, and more" }),
38737
+ shouldUseVector && !hasTeam && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mt: 0.5 }, children: "Documents will be stored privately in your personal account" }),
38838
38738
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38839
38739
  "input",
38840
38740
  {
@@ -38849,7 +38749,7 @@ var KnowledgeTab = ({
38849
38749
  ] })
38850
38750
  }
38851
38751
  ),
38852
- uploadStatuses.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { mb: 3 }, children: uploadStatuses.map((status, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { mb: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.CardContent, { sx: { py: 1.5, px: 2, "&:last-child": { pb: 1.5 } }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
38752
+ uploadStatuses.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { mb: { xs: 1.25, md: 1.5 } }, children: uploadStatuses.map((status, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { mb: 1, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.CardContent, { sx: { py: 1, px: 1.5, "&:last-child": { pb: 1 } }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
38853
38753
  status.status === "success" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CheckCircleIcon, { color: "success" }) : status.status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ErrorIcon, { color: "error" }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { width: 20, height: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38854
38754
  import_material24.LinearProgress,
38855
38755
  {
@@ -38867,8 +38767,8 @@ var KnowledgeTab = ({
38867
38767
  "%"
38868
38768
  ] })
38869
38769
  ] }) }) }, index)) }),
38870
- documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { mb: 3 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 2 }, children: [
38871
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 2, alignItems: "center", flexWrap: "wrap" }, children: [
38770
+ documents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { mb: { xs: 1.25, md: 1.5 }, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { sx: { py: 1.5, px: { xs: 1.5, sm: 1.75 }, "&:last-child": { pb: 1.5 } }, children: [
38771
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 1.5, alignItems: "center", flexWrap: "wrap" }, children: [
38872
38772
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
38873
38773
  import_material24.TextField,
38874
38774
  {
@@ -38996,7 +38896,7 @@ var KnowledgeTab = ({
38996
38896
  )
38997
38897
  ] })
38998
38898
  ] }),
38999
- selectedDocuments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { mt: 2, pt: 2, borderTop: 1, borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
38899
+ selectedDocuments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { mt: 1.5, pt: 1.5, borderTop: 1, borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5, flexWrap: "wrap" }, children: [
39000
38900
  /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Typography, { variant: "body2", color: "text.secondary", children: [
39001
38901
  selectedDocuments.length,
39002
38902
  " selected"
@@ -39032,12 +38932,12 @@ var KnowledgeTab = ({
39032
38932
  )
39033
38933
  ] }) })
39034
38934
  ] }) }),
39035
- filteredAndSortedDocuments.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { textAlign: "center", py: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { children: [
39036
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FolderIcon, { sx: { fontSize: 64, color: "text.secondary", mb: 2 } }),
39037
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "h6", color: "text.secondary", gutterBottom: true, children: "No Documents Yet" }),
39038
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.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" })
38935
+ filteredAndSortedDocuments.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { textAlign: "center", py: 4, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { children: [
38936
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FolderIcon, { sx: { fontSize: 20, color: "text.secondary", mb: 1 } }),
38937
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "subtitle2", color: "text.secondary", gutterBottom: true, children: "No Documents Yet" }),
38938
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.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" })
39039
38939
  ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { children: [
39040
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: [
38940
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mb: 1 }, children: [
39041
38941
  "Showing ",
39042
38942
  filteredAndSortedDocuments.length,
39043
38943
  " of ",
@@ -39057,7 +38957,7 @@ var KnowledgeTab = ({
39057
38957
  md: "repeat(4, 1fr)",
39058
38958
  lg: "repeat(6, 1fr)"
39059
38959
  },
39060
- gap: 2
38960
+ gap: 1.5
39061
38961
  },
39062
38962
  children: filteredAndSortedDocuments.map((doc) => {
39063
38963
  const isSelected = selectedDocuments.includes(doc.id);
@@ -39082,7 +38982,7 @@ var KnowledgeTab = ({
39082
38982
  }
39083
38983
  ) : (
39084
38984
  /* List View */
39085
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Stack, { spacing: 1, children: filteredAndSortedDocuments.map((doc) => {
38985
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Stack, { spacing: 0.75, children: filteredAndSortedDocuments.map((doc) => {
39086
38986
  const fileInfo = getFileTypeInfo3(doc.name);
39087
38987
  const IconComponent = fileInfo.icon;
39088
38988
  const isSelected = selectedDocuments.includes(doc.id);
@@ -39092,14 +38992,16 @@ var KnowledgeTab = ({
39092
38992
  {
39093
38993
  sx: {
39094
38994
  cursor: "pointer",
39095
- transition: "all 0.3s ease-in-out",
39096
- border: isSelected ? `2px solid ${currentTheme.palette?.primary?.main}` : `1px solid ${currentTheme.palette?.divider}`,
38995
+ boxShadow: "none",
38996
+ borderRadius: 2,
38997
+ transition: "all 0.2s ease-in-out",
38998
+ border: isSelected ? `1px solid ${currentTheme.palette?.primary?.main}` : `1px solid ${currentTheme.palette?.divider}`,
39097
38999
  "&:hover": {
39098
- boxShadow: 4
39000
+ borderColor: currentTheme.palette?.primary?.main
39099
39001
  },
39100
39002
  bgcolor: isSelected ? `${currentTheme.palette?.primary?.main}08` : "background.paper",
39101
39003
  opacity: isDeleting ? 0.3 : 1,
39102
- transform: isDeleting ? "scale(0.95)" : "scale(1)"
39004
+ transform: isDeleting ? "scale(0.98)" : "scale(1)"
39103
39005
  },
39104
39006
  onClick: (e) => {
39105
39007
  if (e.ctrlKey || e.metaKey) {
@@ -39108,153 +39010,114 @@ var KnowledgeTab = ({
39108
39010
  handleDocumentClick(doc);
39109
39011
  }
39110
39012
  },
39111
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.CardContent, { sx: { py: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
39112
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(IconComponent, { sx: { fontSize: 32, color: fileInfo.color } }),
39113
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { flex: 1, minWidth: 0 }, children: [
39013
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.CardContent, { sx: { p: 1, "&:last-child": { pb: 1 } }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5 }, children: [
39014
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(IconComponent, { sx: { fontSize: 20, color: fileInfo.color, flexShrink: 0 } }),
39015
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39016
+ import_material24.Typography,
39017
+ {
39018
+ variant: "body2",
39019
+ sx: {
39020
+ fontWeight: 600,
39021
+ whiteSpace: "nowrap",
39022
+ overflow: "hidden",
39023
+ textOverflow: "ellipsis",
39024
+ color: "text.primary"
39025
+ },
39026
+ children: doc.name
39027
+ }
39028
+ ) }),
39029
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 0.5, alignItems: "center", flexShrink: 0 }, children: [
39114
39030
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39115
- import_material24.Typography,
39031
+ import_material24.Chip,
39116
39032
  {
39117
- variant: "subtitle1",
39118
- sx: {
39119
- fontWeight: 600,
39120
- whiteSpace: "nowrap",
39121
- overflow: "hidden",
39122
- textOverflow: "ellipsis",
39123
- color: "text.primary"
39124
- },
39125
- children: doc.name
39126
- }
39127
- ),
39128
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
39129
- import_material24.Typography,
39130
- {
39131
- variant: "body2",
39132
- color: "text.secondary",
39033
+ label: fileInfo.category,
39034
+ size: "small",
39133
39035
  sx: {
39134
- display: "-webkit-box",
39135
- WebkitLineClamp: 2,
39136
- WebkitBoxOrient: "vertical",
39137
- overflow: "hidden",
39138
- textOverflow: "ellipsis",
39139
- mt: 0.5
39140
- },
39141
- children: [
39142
- doc.content.substring(0, 200),
39143
- "..."
39144
- ]
39036
+ bgcolor: fileInfo.color + "20",
39037
+ color: fileInfo.color,
39038
+ fontWeight: 600
39039
+ }
39145
39040
  }
39146
39041
  ),
39147
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 1, mt: 1 }, children: [
39148
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39042
+ (() => {
39043
+ const sourceInfo = getContentSourceInfo2(doc, shouldUseVector);
39044
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39149
39045
  import_material24.Chip,
39150
39046
  {
39151
- label: fileInfo.category,
39047
+ icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(sourceInfo.icon, { sx: { fontSize: "0.8rem" } }),
39048
+ label: sourceInfo.label,
39152
39049
  size: "small",
39153
39050
  sx: {
39154
- bgcolor: fileInfo.color + "20",
39155
- color: fileInfo.color,
39156
- fontWeight: 600
39157
- }
39158
- }
39159
- ),
39160
- (() => {
39161
- const sourceInfo = getContentSourceInfo2(doc, shouldUseVector);
39162
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39163
- import_material24.Chip,
39164
- {
39165
- icon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(sourceInfo.icon, { sx: { fontSize: "0.8rem" } }),
39166
- label: sourceInfo.label,
39167
- size: "small",
39168
- sx: {
39169
- bgcolor: sourceInfo.bgColor,
39170
- color: sourceInfo.color,
39171
- fontWeight: 500,
39172
- fontSize: "0.75rem",
39173
- "& .MuiChip-icon": {
39174
- color: sourceInfo.color
39175
- }
39051
+ bgcolor: sourceInfo.bgColor,
39052
+ color: sourceInfo.color,
39053
+ fontWeight: 500,
39054
+ fontSize: "0.75rem",
39055
+ "& .MuiChip-icon": {
39056
+ color: sourceInfo.color
39176
39057
  }
39177
39058
  }
39178
- );
39179
- })(),
39180
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39181
- import_material24.Chip,
39182
- {
39183
- label: formatFileSize2(doc.content.length * 2),
39184
- size: "small",
39185
- variant: "outlined"
39186
39059
  }
39187
- )
39188
- ] })
39060
+ );
39061
+ })(),
39062
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39063
+ import_material24.Chip,
39064
+ {
39065
+ label: formatFileSize2(doc.content.length * 2),
39066
+ size: "small",
39067
+ variant: "outlined",
39068
+ sx: { display: { xs: "none", sm: "flex" } }
39069
+ }
39070
+ )
39189
39071
  ] }),
39190
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
39072
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.Box, { sx: { display: "flex", gap: 0.5, alignItems: "center", flexShrink: 0 }, children: [
39191
39073
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39192
39074
  import_material24.IconButton,
39193
39075
  {
39076
+ size: "small",
39194
39077
  onClick: (e) => {
39195
39078
  e.stopPropagation();
39196
39079
  toggleDocumentSelection(doc.id);
39197
39080
  },
39198
39081
  sx: {
39199
- width: 32,
39200
- height: 32,
39082
+ width: 28,
39083
+ height: 28,
39201
39084
  bgcolor: isSelected ? "primary.main" : "transparent",
39202
39085
  color: isSelected ? "primary.contrastText" : "text.secondary",
39203
- border: isSelected ? "none" : "2px solid",
39204
- borderColor: "text.secondary",
39086
+ border: isSelected ? "none" : "1px solid",
39087
+ borderColor: "divider",
39205
39088
  borderRadius: "50%",
39206
39089
  "&:hover": {
39207
39090
  bgcolor: isSelected ? "primary.dark" : "action.hover",
39208
39091
  borderColor: isSelected ? "primary.dark" : "primary.main"
39209
39092
  }
39210
39093
  },
39211
- children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CheckIcon, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: {
39212
- width: 12,
39213
- height: 12,
39094
+ children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CheckIcon, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Box, { sx: {
39095
+ width: 10,
39096
+ height: 10,
39214
39097
  borderRadius: "50%",
39215
39098
  bgcolor: "transparent"
39216
39099
  } })
39217
39100
  }
39218
39101
  ),
39219
39102
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39220
- import_material24.Button,
39103
+ import_material24.IconButton,
39221
39104
  {
39222
- variant: "outlined",
39223
39105
  size: "small",
39224
39106
  onClick: (e) => {
39225
39107
  e.stopPropagation();
39226
39108
  handleDownloadDocument(e, doc);
39227
39109
  },
39228
- sx: {
39229
- textTransform: "none",
39230
- height: { xs: 32, sm: 36, md: 40 },
39231
- // Responsive height matching grid view
39232
- minWidth: { xs: 90, sm: 100, md: 110 },
39233
- // Consistent width
39234
- borderWidth: 2,
39235
- fontSize: { xs: "0.75rem", sm: "0.8rem", md: "0.875rem" },
39236
- // Responsive font
39237
- fontWeight: 600,
39238
- px: { xs: 1, sm: 1.5 },
39239
- // Responsive padding
39240
- "&:hover": {
39241
- borderWidth: 2,
39242
- bgcolor: "primary.main",
39243
- color: "primary.contrastText",
39244
- transform: "translateY(-1px)",
39245
- boxShadow: 2
39246
- }
39247
- },
39248
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DownloadIcon, { sx: { fontSize: { xs: "1rem", sm: "1.1rem" } } }),
39249
- children: "Download"
39110
+ sx: { color: "text.secondary", "&:hover": { color: "primary.main" } },
39111
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DownloadIcon, { sx: { fontSize: 18 } })
39250
39112
  }
39251
39113
  ),
39252
39114
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39253
39115
  import_material24.IconButton,
39254
39116
  {
39117
+ size: "small",
39255
39118
  onClick: (e) => handleRemoveDocument(e, doc.id),
39256
39119
  color: "error",
39257
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DeleteIcon, {})
39120
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DeleteIcon, { sx: { fontSize: 18 } })
39258
39121
  }
39259
39122
  )
39260
39123
  ] })
@@ -39264,10 +39127,10 @@ var KnowledgeTab = ({
39264
39127
  );
39265
39128
  }) })
39266
39129
  ),
39267
- filteredAndSortedDocuments.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { textAlign: "center", py: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { children: [
39268
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SearchIcon, { sx: { fontSize: 48, color: "text.secondary", mb: 2 } }),
39269
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "h6", color: "text.secondary", gutterBottom: true, children: "No documents found" }),
39270
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "body2", color: "text.secondary", children: "Try adjusting your search or filter criteria" }),
39130
+ filteredAndSortedDocuments.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Card, { sx: { textAlign: "center", py: 4, borderRadius: 2, boxShadow: "none", border: "1px solid", borderColor: "divider" }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material24.CardContent, { children: [
39131
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SearchIcon, { sx: { fontSize: 20, color: "text.secondary", mb: 1 } }),
39132
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "subtitle2", color: "text.secondary", gutterBottom: true, children: "No documents found" }),
39133
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material24.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block" }, children: "Try adjusting your search or filter criteria" }),
39271
39134
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
39272
39135
  import_material24.Button,
39273
39136
  {
@@ -39276,7 +39139,7 @@ var KnowledgeTab = ({
39276
39139
  setSearchQuery("");
39277
39140
  setSelectedCategory("all");
39278
39141
  },
39279
- sx: { mt: 2 },
39142
+ sx: { mt: 1 },
39280
39143
  children: "Clear Filters"
39281
39144
  }
39282
39145
  )
@@ -41510,18 +41373,17 @@ var StorageTab = ({ currentTheme }) => {
41510
41373
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body1", color: "text.secondary", sx: { ml: 2 }, children: "Analyzing storage usage..." })
41511
41374
  ] });
41512
41375
  }
41513
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { px: { xs: 2, sm: 4, md: 6 }, pt: 3, pb: 5 }, children: [
41514
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { sx: { mb: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: {
41376
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { px: { xs: 2, sm: 3, md: 4 }, pt: 2, pb: 3 }, children: [
41377
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { sx: { mb: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: {
41515
41378
  display: "flex",
41516
41379
  flexDirection: { xs: "column", sm: "row" },
41517
41380
  justifyContent: "space-between",
41518
41381
  alignItems: { xs: "stretch", sm: "flex-start" },
41519
- gap: { xs: 2, sm: 0 },
41520
- mb: 2
41382
+ gap: { xs: 1.5, sm: 0 }
41521
41383
  }, children: [
41522
41384
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { flex: 1 }, children: [
41523
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "h5", color: "text.primary", sx: { mb: 1, fontWeight: 600 }, children: "Storage Management" }),
41524
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body1", color: "text.secondary", children: "Monitor and manage your local browser storage usage" })
41385
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "h5", color: "text.primary", sx: { mb: 0.5, fontWeight: 600 }, children: "Storage Management" }),
41386
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 1.5 }, children: "Monitor and manage your local browser storage usage." })
41525
41387
  ] }),
41526
41388
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: {
41527
41389
  display: "flex",
@@ -41539,15 +41401,14 @@ var StorageTab = ({ currentTheme }) => {
41539
41401
  disabled: loading,
41540
41402
  sx: {
41541
41403
  minWidth: { xs: "auto", sm: "fit-content" },
41542
- flex: { xs: "1", sm: "0 0 auto" },
41543
- minHeight: 36
41404
+ flex: { xs: "1", sm: "0 0 auto" }
41544
41405
  },
41545
41406
  children: [
41546
41407
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: { xs: "none", sm: "flex" }, alignItems: "center", gap: 1 }, children: [
41547
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RefreshIcon, { fontSize: "medium" }),
41408
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RefreshIcon, { fontSize: "small" }),
41548
41409
  "Refresh"
41549
41410
  ] }),
41550
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { sx: { display: { xs: "flex", sm: "none" }, alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RefreshIcon, { fontSize: "medium" }) })
41411
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { sx: { display: { xs: "flex", sm: "none" }, alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RefreshIcon, { fontSize: "small" }) })
41551
41412
  ]
41552
41413
  }
41553
41414
  ),
@@ -41593,18 +41454,23 @@ var StorageTab = ({ currentTheme }) => {
41593
41454
  ] })
41594
41455
  ] })
41595
41456
  ] }) }),
41596
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { mb: 4 }, children: [
41597
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Card, { sx: { mb: 3 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.CardContent, { sx: {
41598
- display: "flex",
41599
- flexDirection: "column",
41600
- minHeight: 180
41601
- }, children: [
41602
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "h6", gutterBottom: true, sx: { fontWeight: 600, color: "text.primary" }, children: [
41603
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StorageIcon, { sx: { mr: 1, verticalAlign: "middle" } }),
41604
- "Storage Quota"
41605
- ] }),
41606
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { mb: 2, flex: 1 }, children: [
41607
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
41457
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
41458
+ import_material28.Box,
41459
+ {
41460
+ sx: {
41461
+ p: { xs: 1.5, sm: 1.75 },
41462
+ mb: { xs: 1.25, md: 1.5 },
41463
+ border: "1px solid",
41464
+ borderColor: "divider",
41465
+ borderRadius: 2,
41466
+ bgcolor: "background.paper"
41467
+ },
41468
+ children: [
41469
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "overline", sx: { color: "text.secondary", display: "flex", alignItems: "center", gap: 0.75 }, children: [
41470
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StorageIcon, { fontSize: "small" }),
41471
+ "Storage Quota"
41472
+ ] }),
41473
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mt: 0.5, mb: 1.5 }, children: [
41608
41474
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41609
41475
  import_material28.Chip,
41610
41476
  {
@@ -41648,11 +41514,11 @@ var StorageTab = ({ currentTheme }) => {
41648
41514
  variant: "determinate",
41649
41515
  value: usagePercentage,
41650
41516
  sx: {
41651
- height: 8,
41652
- borderRadius: 4,
41517
+ height: 6,
41518
+ borderRadius: 3,
41653
41519
  bgcolor: "action.hover",
41654
41520
  "& .MuiLinearProgress-bar": {
41655
- borderRadius: 4,
41521
+ borderRadius: 3,
41656
41522
  bgcolor: usagePercentage > 80 ? "error.main" : usagePercentage > 60 ? "warning.main" : "success.main"
41657
41523
  }
41658
41524
  }
@@ -41661,47 +41527,40 @@ var StorageTab = ({ currentTheme }) => {
41661
41527
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "caption", color: "text.secondary", sx: { mt: 0.5, display: "block" }, children: [
41662
41528
  usagePercentage.toFixed(1),
41663
41529
  "% used"
41664
- ] })
41665
- ] }),
41666
- usagePercentage > 80 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Alert, { severity: "warning", sx: { mt: "auto" }, children: "Storage usage is high. Consider clearing unused data." })
41667
- ] }) }),
41668
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Card, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.CardContent, { sx: {
41669
- display: "flex",
41670
- flexDirection: "column",
41671
- minHeight: 140
41672
- }, children: [
41673
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "h6", gutterBottom: true, sx: { fontWeight: 600, color: "text.primary" }, children: "Usage Summary" }),
41674
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: [
41675
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41676
- import_material28.Chip,
41677
- {
41678
- label: `${storageCategories.length} Categories`,
41679
- color: "primary",
41680
- size: "small"
41681
- }
41682
- ),
41683
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41684
- import_material28.Chip,
41685
- {
41686
- label: `${storageCategories.reduce((sum, cat) => sum + cat.itemCount, 0)} Items`,
41687
- color: "secondary",
41688
- size: "small"
41689
- }
41690
- ),
41691
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41692
- import_material28.Chip,
41693
- {
41694
- label: `${formatBytes(totalUsed)} Used`,
41695
- color: "info",
41696
- size: "small"
41697
- }
41698
- )
41699
- ] }),
41700
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body2", color: "text.secondary", sx: { mt: "auto" }, children: usageSummaryMessage })
41701
- ] }) })
41702
- ] }),
41703
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "h6", gutterBottom: true, sx: { mb: 2, fontWeight: 600, color: "text.primary" }, children: "Storage Categories" }),
41704
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { children: storageCategories.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Alert, { severity: "info", sx: { mt: 2 }, children: [
41530
+ ] }),
41531
+ usagePercentage > 80 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Alert, { severity: "warning", sx: { mt: 1, py: 0 }, children: "Storage usage is high. Consider clearing unused data." }),
41532
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", flexWrap: "wrap", alignItems: "center", gap: 1, mt: 1.5 }, children: [
41533
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41534
+ import_material28.Chip,
41535
+ {
41536
+ label: `${storageCategories.length} Categories`,
41537
+ color: "primary",
41538
+ size: "small"
41539
+ }
41540
+ ),
41541
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41542
+ import_material28.Chip,
41543
+ {
41544
+ label: `${storageCategories.reduce((sum, cat) => sum + cat.itemCount, 0)} Items`,
41545
+ color: "secondary",
41546
+ size: "small"
41547
+ }
41548
+ ),
41549
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41550
+ import_material28.Chip,
41551
+ {
41552
+ label: `${formatBytes(totalUsed)} Used`,
41553
+ color: "info",
41554
+ size: "small"
41555
+ }
41556
+ )
41557
+ ] }),
41558
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mt: 1 }, children: usageSummaryMessage })
41559
+ ]
41560
+ }
41561
+ ),
41562
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "overline", sx: { display: "block", mb: 1, color: "text.secondary" }, children: "Storage Categories" }),
41563
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { children: storageCategories.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Alert, { severity: "info", sx: { mt: 1 }, children: [
41705
41564
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body2", children: "No storage data found. This could mean:" }),
41706
41565
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "body2", component: "ul", sx: { mt: 1, pl: 2 }, children: [
41707
41566
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("li", { children: "All databases are empty" }),
@@ -41709,7 +41568,7 @@ var StorageTab = ({ currentTheme }) => {
41709
41568
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("li", { children: "There was an error accessing the databases" })
41710
41569
  ] }),
41711
41570
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body2", sx: { mt: 1 }, children: 'Try clicking "Refresh" or check the browser console for more details.' })
41712
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Stack, { spacing: 2, children: storageCategories.map((category) => {
41571
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Stack, { spacing: 1, children: storageCategories.map((category) => {
41713
41572
  const IconComponent = category.icon;
41714
41573
  const categoryPercentage = storageQuota.quota > 0 ? category.size / storageQuota.quota * 100 : 0;
41715
41574
  const categoryRelativePercentage = totalUsed > 0 ? category.size / totalUsed * 100 : 0;
@@ -41720,29 +41579,41 @@ var StorageTab = ({ currentTheme }) => {
41720
41579
  categoryPercentage: categoryPercentage.toFixed(2),
41721
41580
  categoryRelativePercentage: categoryRelativePercentage.toFixed(2)
41722
41581
  });
41723
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Accordion, { sx: { bgcolor: "background.paper" }, children: [
41724
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41725
- import_material28.AccordionSummary,
41726
- {
41727
- expandIcon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ExpandMoreIcon, {}),
41728
- "aria-controls": `${category.name}-content`,
41729
- id: `${category.name}-header`,
41730
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", alignItems: "center", width: "100%", pr: 2 }, children: [
41731
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconComponent, { sx: { color: category.color, mr: 2 } }),
41732
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { flex: 1 }, children: [
41733
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41734
- import_material28.Typography,
41735
- {
41736
- variant: "body1",
41737
- style: {
41738
- fontWeight: 600,
41739
- color: theme.palette.mode === "dark" ? "#ffffff" : theme.palette.text.primary
41740
- },
41741
- children: category.name
41742
- }
41743
- ),
41744
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", alignItems: "center", gap: 2, mt: 0.5 }, children: [
41745
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body2", color: "text.secondary", children: formatBytes(category.size) }),
41582
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
41583
+ import_material28.Accordion,
41584
+ {
41585
+ disableGutters: true,
41586
+ elevation: 0,
41587
+ sx: {
41588
+ bgcolor: "background.paper",
41589
+ border: "1px solid",
41590
+ borderColor: "divider",
41591
+ borderRadius: 2,
41592
+ "&:before": { display: "none" }
41593
+ },
41594
+ children: [
41595
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41596
+ import_material28.AccordionSummary,
41597
+ {
41598
+ expandIcon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ExpandMoreIcon, {}),
41599
+ "aria-controls": `${category.name}-content`,
41600
+ id: `${category.name}-header`,
41601
+ sx: { px: 1.5, minHeight: 0, "& .MuiAccordionSummary-content": { my: 1 } },
41602
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { display: "flex", alignItems: "center", width: "100%", gap: 1.5, pr: 1.5 }, children: [
41603
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconComponent, { fontSize: "small", sx: { color: category.color } }),
41604
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41605
+ import_material28.Typography,
41606
+ {
41607
+ variant: "body2",
41608
+ style: {
41609
+ fontWeight: 600,
41610
+ color: theme.palette.mode === "dark" ? "#ffffff" : theme.palette.text.primary
41611
+ },
41612
+ sx: { minWidth: 0, flexShrink: 0 },
41613
+ children: category.name
41614
+ }
41615
+ ),
41616
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "caption", color: "text.secondary", sx: { flexShrink: 0 }, children: formatBytes(category.size) }),
41746
41617
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41747
41618
  import_material28.Chip,
41748
41619
  {
@@ -41751,7 +41622,7 @@ var StorageTab = ({ currentTheme }) => {
41751
41622
  variant: "outlined"
41752
41623
  }
41753
41624
  ),
41754
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { sx: { flex: 1, mx: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41625
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Box, { sx: { flex: 1, minWidth: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41755
41626
  import_material28.LinearProgress,
41756
41627
  {
41757
41628
  variant: "determinate",
@@ -41767,104 +41638,127 @@ var StorageTab = ({ currentTheme }) => {
41767
41638
  }
41768
41639
  }
41769
41640
  ) }),
41770
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "caption", color: "text.secondary", children: [
41641
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "caption", color: "text.secondary", sx: { flexShrink: 0 }, children: [
41771
41642
  categoryRelativePercentage.toFixed(1),
41772
41643
  "%"
41773
41644
  ] })
41774
41645
  ] })
41775
- ] })
41776
- ] })
41777
- }
41778
- ),
41779
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.AccordionDetails, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { pl: 5 }, children: [
41780
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "body2", color: "text.secondary", paragraph: true, children: category.description }),
41781
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "subtitle2", gutterBottom: true, children: "Storage Locations:" }),
41782
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.List, { dense: true, children: category.stores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { sx: { py: 0.5 }, children: [
41783
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StorageIcon, { fontSize: "small" }) }),
41784
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41785
- import_material28.ListItemText,
41786
- {
41787
- primary: store,
41788
- primaryTypographyProps: { variant: "body2", fontFamily: "monospace" }
41789
- }
41790
- )
41791
- ] }, store)) }),
41792
- category.canClear ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { mt: 2, pt: 2, borderTop: 1, borderColor: "divider" }, children: [
41793
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
41794
- import_material28.Button,
41795
- {
41796
- variant: "outlined",
41797
- color: "error",
41798
- size: "small",
41799
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DeleteIcon, {}),
41800
- onClick: () => setClearCategoryDialog(category),
41801
- disabled: clearing,
41802
- children: [
41803
- "Clear ",
41804
- category.name
41805
- ]
41806
41646
  }
41807
41647
  ),
41808
- category.clearWarning && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Alert, { severity: "warning", sx: { mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "caption", children: category.clearWarning }) })
41809
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Alert, { severity: "info", sx: { mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "caption", children: category.itemCount === 0 ? "This category is empty." : "This category cannot be cleared automatically." }) })
41810
- ] }) })
41811
- ] }, category.name);
41648
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.AccordionDetails, { sx: { px: 1.5, pt: 0, pb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { pl: 3.5 }, children: [
41649
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "caption", color: "text.secondary", sx: { display: "block", mb: 1 }, children: category.description }),
41650
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "overline", sx: { color: "text.secondary" }, children: "Storage Locations" }),
41651
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.List, { dense: true, disablePadding: true, children: category.stores.map((store) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { sx: { py: 0.25 }, children: [
41652
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { sx: { minWidth: 28 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(StorageIcon, { fontSize: "small" }) }),
41653
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41654
+ import_material28.ListItemText,
41655
+ {
41656
+ primary: store,
41657
+ primaryTypographyProps: { variant: "caption", fontFamily: "monospace" }
41658
+ }
41659
+ )
41660
+ ] }, store)) }),
41661
+ category.canClear ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Box, { sx: { mt: 1, pt: 1, borderTop: 1, borderColor: "divider" }, children: [
41662
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
41663
+ import_material28.Button,
41664
+ {
41665
+ variant: "outlined",
41666
+ color: "error",
41667
+ size: "small",
41668
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DeleteIcon, {}),
41669
+ onClick: () => setClearCategoryDialog(category),
41670
+ disabled: clearing,
41671
+ children: [
41672
+ "Clear ",
41673
+ category.name
41674
+ ]
41675
+ }
41676
+ ),
41677
+ category.clearWarning && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Typography, { variant: "caption", color: "warning.main", sx: { display: "block", mt: 1 }, children: category.clearWarning })
41678
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.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." })
41679
+ ] }) })
41680
+ ]
41681
+ },
41682
+ category.name
41683
+ );
41812
41684
  }) }) }),
41813
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.Card, { sx: { mt: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.CardContent, { children: [
41814
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "h6", gutterBottom: true, sx: { fontWeight: 600, color: "text.primary" }, children: [
41815
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(InfoIcon, { sx: { mr: 1, verticalAlign: "middle" } }),
41816
- "Storage Tips & Clear Options"
41817
- ] }),
41818
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.List, { children: [
41819
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { children: [
41820
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41821
- CheckCircleIcon,
41822
- {
41823
- sx: {
41824
- color: syncFeaturesActive ? theme.palette.warning.main : theme.palette.success.main
41825
- }
41826
- }
41827
- ) }),
41828
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41829
- import_material28.ListItemText,
41830
- {
41831
- primary: storageStatusPrimary,
41832
- 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."
41833
- }
41834
- )
41835
- ] }),
41836
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { children: [
41837
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CleaningServicesIcon, { color: "info" }) }),
41838
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41839
- import_material28.ListItemText,
41840
- {
41841
- primary: "Clear All Data (Safe)",
41842
- secondary: "Deletes all items but keeps database structure intact. App continues working normally."
41843
- }
41844
- )
41845
- ] }),
41846
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { children: [
41847
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DeleteIcon, { color: "error" }) }),
41848
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41849
- import_material28.ListItemText,
41850
- {
41851
- primary: "Nuclear Clear (Complete Reset)",
41852
- secondary: "Completely destroys all databases and forces app reload. Use only for complete reset."
41853
- }
41854
- )
41855
- ] }),
41856
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { children: [
41857
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(WarningIcon, { color: "warning" }) }),
41858
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41859
- import_material28.ListItemText,
41860
- {
41861
- primary: "Backup important data",
41862
- secondary: "Export custom models and important documents before clearing storage"
41863
- }
41864
- )
41865
- ] })
41866
- ] })
41867
- ] }) }),
41685
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
41686
+ import_material28.Box,
41687
+ {
41688
+ sx: {
41689
+ mt: 1.5,
41690
+ p: { xs: 1.5, sm: 1.75 },
41691
+ border: "1px solid",
41692
+ borderColor: "divider",
41693
+ borderRadius: 2,
41694
+ bgcolor: "background.paper"
41695
+ },
41696
+ children: [
41697
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.Typography, { variant: "overline", sx: { color: "text.secondary", display: "flex", alignItems: "center", gap: 0.75 }, children: [
41698
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(InfoIcon, { fontSize: "small" }),
41699
+ "Storage Tips & Clear Options"
41700
+ ] }),
41701
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.List, { dense: true, disablePadding: true, sx: { mt: 0.5 }, children: [
41702
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { sx: { py: 0.5 }, children: [
41703
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41704
+ CheckCircleIcon,
41705
+ {
41706
+ fontSize: "small",
41707
+ sx: {
41708
+ color: syncFeaturesActive ? theme.palette.warning.main : theme.palette.success.main
41709
+ }
41710
+ }
41711
+ ) }),
41712
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41713
+ import_material28.ListItemText,
41714
+ {
41715
+ primary: storageStatusPrimary,
41716
+ primaryTypographyProps: { variant: "body2" },
41717
+ secondaryTypographyProps: { variant: "caption" },
41718
+ 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."
41719
+ }
41720
+ )
41721
+ ] }),
41722
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { sx: { py: 0.5 }, children: [
41723
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CleaningServicesIcon, { fontSize: "small", color: "info" }) }),
41724
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41725
+ import_material28.ListItemText,
41726
+ {
41727
+ primary: "Clear All Data (Safe)",
41728
+ primaryTypographyProps: { variant: "body2" },
41729
+ secondaryTypographyProps: { variant: "caption" },
41730
+ secondary: "Deletes all items but keeps database structure intact. App continues working normally."
41731
+ }
41732
+ )
41733
+ ] }),
41734
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { sx: { py: 0.5 }, children: [
41735
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DeleteIcon, { fontSize: "small", color: "error" }) }),
41736
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41737
+ import_material28.ListItemText,
41738
+ {
41739
+ primary: "Nuclear Clear (Complete Reset)",
41740
+ primaryTypographyProps: { variant: "body2" },
41741
+ secondaryTypographyProps: { variant: "caption" },
41742
+ secondary: "Completely destroys all databases and forces app reload. Use only for complete reset."
41743
+ }
41744
+ )
41745
+ ] }),
41746
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_material28.ListItem, { sx: { py: 0.5 }, children: [
41747
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_material28.ListItemIcon, { sx: { minWidth: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(WarningIcon, { fontSize: "small", color: "warning" }) }),
41748
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
41749
+ import_material28.ListItemText,
41750
+ {
41751
+ primary: "Backup important data",
41752
+ primaryTypographyProps: { variant: "body2" },
41753
+ secondaryTypographyProps: { variant: "caption" },
41754
+ secondary: "Export custom models and important documents before clearing storage"
41755
+ }
41756
+ )
41757
+ ] })
41758
+ ] })
41759
+ ]
41760
+ }
41761
+ ),
41868
41762
  /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
41869
41763
  import_material28.Dialog,
41870
41764
  {