@trii/components 3.1.3 → 3.1.4

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.
Files changed (40) hide show
  1. package/async-state/package.json +9 -9
  2. package/dist/cjs/async-state.js.map +1 -1
  3. package/dist/cjs/index.js +100 -100
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/theme.js +1 -1
  6. package/dist/cjs/theme.js.map +1 -1
  7. package/dist/esm/async-state.js.map +1 -1
  8. package/dist/esm/index.js +101 -101
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/theme.js +1 -1
  11. package/dist/esm/theme.js.map +1 -1
  12. package/dist/types/asyncState/__tests__/asyncState.test.d.ts +1 -0
  13. package/dist/types/asyncState/__tests__/useAsyncData.test.d.ts +1 -0
  14. package/dist/types/components/AsyncContent/__tests__/AsyncContent.test.d.ts +1 -0
  15. package/dist/types/components/AsyncContent/__tests__/AsyncContentI18n.test.d.ts +1 -0
  16. package/dist/types/components/ContactInfoPopup/ContactInfoPopup.stories.d.ts +9 -0
  17. package/dist/types/components/ContactSidebar/ContactSidebar.stories.d.ts +58 -0
  18. package/dist/types/components/EditContactModal/EditContactModal.stories.d.ts +9 -0
  19. package/dist/types/components/EventsDialog/components/LinkContactsSelect/styles.d.ts +6 -0
  20. package/dist/types/components/EventsDialog/components/LocationTextField/MapLocationPicker.d.ts +8 -0
  21. package/dist/types/components/EventsDialog/components/LocationTextField/SendLocation/components/GoogleMap/index.d.ts +1 -0
  22. package/dist/types/components/EventsDialog/components/LocationTextField/SendLocation/components/index.d.ts +1 -0
  23. package/dist/types/components/EventsDialog/components/LocationTextField/SendLocation/index.d.ts +3 -0
  24. package/dist/types/components/EventsDialog/hooks/index.d.ts +9 -0
  25. package/dist/types/components/EventsDialog/hooks/useSelect.d.ts +14 -0
  26. package/dist/types/components/EventsDialog/utils/eventValidation.d.ts +37 -0
  27. package/dist/types/components/EventsDialog/utils/googleMapsUtils.d.ts +5 -0
  28. package/dist/types/components/EventsDialog/utils/keyboardNavigation.d.ts +24 -0
  29. package/dist/types/components/PanelErrorBoundary/__tests__/PanelErrorBoundary.test.d.ts +1 -0
  30. package/dist/types/theme/MuiComponentsConfig.test.d.ts +1 -0
  31. package/dist/types/theme/darkThemeComponents.d.ts +3 -0
  32. package/dist/types/theme/themeProvider.test.d.ts +1 -0
  33. package/package.json +194 -174
  34. package/readme +71 -71
  35. package/theme/package.json +9 -9
  36. package/dist/types/components/EditContactModal/context/LanguageContext.d.ts +0 -9
  37. package/dist/types/components/EventsDialog/theme/MuiComponentsConfig.d.ts +0 -3
  38. package/dist/types/components/EventsDialog/theme/index.d.ts +0 -4
  39. package/dist/types/components/EventsDialog/theme/themeProvider.d.ts +0 -74
  40. package/dist/types/components/EventsDialog/theme/themeSlice.d.ts +0 -52
package/dist/cjs/theme.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("@mui/material"),l=require("@reduxjs/toolkit"),G=require("axios");function I(e){return e&&e.__esModule?e:{default:e}}var E=I(G);const O=(e,f={})=>{const{transparentModal:r=!1,autocompleteZIndex:t=11}=f,d=e.palette.background;return a.createTheme({...e,components:{MuiSelect:{defaultProps:{MenuProps:{PaperProps:{sx:{backgroundColor:d.panel,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))"}}}}},MuiAutocomplete:{styleOverrides:{popper:{zIndex:t,"& div":{backgroundColor:d.panel}}}},MuiPaper:{styleOverrides:{root:{backgroundColor:d.panel,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))"}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:d.panel,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))"}}},MuiList:{styleOverrides:{root:{padding:0}}},MuiModal:{styleOverrides:{root:r?{background:"transparent","& .MuiBackdrop-root":{background:"transparent",border:"none"}}:{}}},MuiTypography:{styleOverrides:{root:{color:e.palette.text.primary}}},MuiChip:{styleOverrides:{root:{color:e.palette.text.primary,border:"1px solid rgba(0, 0, 0, 0.1)",borderRadius:"4px",height:"20px",fontSize:"0.7125rem"}}},MuiListSubheader:{styleOverrides:{root:{backgroundColor:d.accordionHeader}}},MuiButton:{styleOverrides:{outlined:{color:e.palette.mode==="light"?e.palette.primary.dark:e.palette.info.dark,borderColor:e.palette.mode==="light"?e.palette.primary.dark:e.palette.info.dark,"&:hover":{borderColor:e.palette.mode==="light"?e.palette.primary.main:e.palette.info.main,color:e.palette.mode==="light"?e.palette.primary.main:e.palette.info.main}}}}}})},n=a.createTheme({name:"lightBlueIndigo",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#ebf6fd",mainGradient:"linear-gradient(270deg, #215c97, #1976d2)",navMenu:"#1976d2",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#1976d2",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0",contrastText:"#fff"},secondary:{main:"#1976d2",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#ebf6fd",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#1976d2"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#1976d2"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),o=a.createTheme({name:"lightBlue",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#e3f2fd",mainGradient:"linear-gradient(270deg, #005cb2, #1e88e5)",navMenu:"#4fc354",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#1e88e5",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#1e88e5",light:"#6ab7ff",dark:"#005cb2",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#1e88e5",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#e3f2fd",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#005cb2"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#005cb2"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),g=a.createTheme({name:"lightRed",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#ffebee",mainGradient:"linear-gradient(270deg, #b61827, #ef5350)",navMenu:"#f44336",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ef5350",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ef5350",light:"#ff867c",dark:"#b61827",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ef5350",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#ffebee",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#b61827"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#b61827"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),c=a.createTheme({name:"lightGreen",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#e8f5e9",mainGradient:"linear-gradient(270deg, #087f23, #4caf50)",navMenu:"#4fc354",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#4caf50",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#4caf50",light:"#80e27e",dark:"#087f23",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#4caf50",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#e8f5e9",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#087f23"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#087f23"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),b=a.createTheme({name:"lightPink",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fce4ec",mainGradient:"linear-gradient(270deg, #b0003a, #e6175d)",navMenu:"#e6175d",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#e6175d",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#e6175d",light:"#ff6090",dark:"#b0003a",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fce4ec",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#b0003a"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#b0003a"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),s=a.createTheme({name:"lightPurple",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#f3e5f5",mainGradient:"linear-gradient(270deg, #6a0080, #9c27b0)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#9c27b0",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#9c27b0",light:"#d05ce3",dark:"#6a0080",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#f3e5f5",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#9c27b0"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#9c27b0"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),m=a.createTheme({name:"lightTeal",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#e0f2f1",mainGradient:"linear-gradient(270deg, #00675b, #009688)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#009688",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#009688",light:"#52c7b8",dark:"#00675b",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#009688",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#e0f2f1",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#00675b"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#00675b"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),h=a.createTheme({name:"lightLime",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#f9fbe7",mainGradient:"linear-gradient(270deg, #99aa00, #cddc39)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#cddc39",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#cddc39",light:"#ffff6e",dark:"#99aa00",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#cddc39",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#f9fbe7",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#737c16"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#737c16"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),p=a.createTheme({name:"lightYellow",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fffde7",mainGradient:"linear-gradient(270deg, #c8b900, #ffeb3b)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ffeb3b",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ffeb3b",light:"#ffff72",dark:"#c8b900",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ffeb3b",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fffde7",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#847700"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#847700"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),u=a.createTheme({name:"lightAmber",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fff8e1",mainGradient:"linear-gradient(270deg, #c68400, #ffb300)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ffb300",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ffb300",light:"#ffe54c",dark:"#c68400",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ffb300",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fff8e1",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#9c6e00"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#9c6e00"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),k=a.createTheme({name:"lightOrange",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fff3e0",mainGradient:"linear-gradient(270deg, #c66900, #ff9800)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ff9800",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ff9800",light:"#ffc947",dark:"#c66900",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ff9800",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fff3e0",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#ab6600"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#ab6600"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),x=a.createTheme({name:"lightBrown",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#efebe9",mainGradient:"linear-gradient(270deg, #4b2c20, #795548)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#795548",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#795548",light:"#a98274",dark:"#4b2c20",contrastText:"#fff"},secondary:{main:"#795548",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#efebe9",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#795548"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#795548"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),B=a.createTheme({name:"lightGray",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fafafa",mainGradient:"linear-gradient(270deg, #707070, #9e9e9e)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#9e9e9e",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#9e9e9e",light:"#cfcfcf",dark:"#707070",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#9e9e9e",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fafafa",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#707070"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#707070"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),y=a.createTheme({name:"darkBlue",palette:{mode:"dark",primary:{main:"#1f5c8e",light:"#2196f3",dark:"#0d47a1",contrastText:"#fff"},secondary:{light:"#FFEA41",main:"#90caf9",dark:"#DBBE01",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#f44336",light:"#e57373",dark:"#d32f2f"},warning:{main:"#ffa726",light:"#ffb74d",dark:"#f57c00"},info:{main:"#29b6f6",light:"#4fc3f7",dark:"#0288d1"},success:{main:"#66bb6a",light:"#81c784",dark:"#388e3c"},background:{default:"#222B45",mainGradient:"linear-gradient(270deg, #222B45, #222B45)",mainCenter:"#28324e",navMenu:"#222B45",panel:"#2d364e",dropdownMenu:"#484f65",tooltip:"#484f65",accordionHeader:"#2a3249e3",panelHeader:"#2a3249e3",panelCenter:"#484f65",panelGradient:"#384057",selectedItem:"#eeeeee30",paper:"#2d364e"},containerBox:{default:"#2d354e",main:"#2d354e"},action:{active:"rgba(255, 255, 255, 0.2)",hover:"rgba(255, 255, 255, 0.08)",selected:"rgba(255, 255, 255, 0.16)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"#EEEEEF",secondary:"#AEB0B4",disabled:"rgba(255, 255, 255, 0.5)",colorMain:"#EEEEEF"},divider:"rgba(255, 255, 255, 0.12)",dropdownBox:"#2d354e",color:{icons:"#fff"},cellHeader:"#505050",Skeleton:{bg:"#f5f5f5"},messageBox:"#1f5c8e",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),F=a.createTheme({name:"darkBlack",palette:{mode:"dark",background:{default:"#201f1e",mainGradient:"linear-gradient(270deg, #201f1e, #201f1e)",mainCenter:"#252423",navMenu:"#201f1e",panel:"#3B3A39",dropdownMenu:"#585858",tooltip:"#616161eb",accordionHeader:"#25242369",panelHeader:"#3b3a39ba",panelCenter:"#585858",panelGradient:"#454443",selectedItem:"#eeeeee30",paper:"#3B3A39"},primary:{main:"#1976d2",light:"#2196f3",dark:"#42a5f5",contrastText:"#fff"},secondary:{light:"#FFEA41",main:"#90caf9",dark:"#DBBE01",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#f44336",light:"#e57373",dark:"#d32f2f"},warning:{main:"#ffa726",light:"#ffb74d",dark:"#f57c00"},info:{main:"#29b6f6",light:"#4fc3f7",dark:"#0288d1"},success:{main:"#66bb6a",light:"#81c784",dark:"#388e3c"},containerBox:{main:"#ffffffb3",default:"#3B3A39"},action:{active:"rgba(255, 255, 255, 0.2)",hover:"rgba(255, 255, 255, 0.08)",selected:"rgba(255, 255, 255, 0.16)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"#EEEEEF",secondary:"#AEB0B4",disabled:"rgba(255, 255, 255, 0.5)",colorMain:"#EEEEEF"},divider:"rgba(255, 255, 255, 0.12)",dropdownBox:"#3B3A39",color:{icons:"#fff"},cellHeader:"#505050",Skeleton:{bg:"#f5f5f5"},messageBox:"#1f5c8e",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),T="trii-theme",A=e=>`https://agent-api.trii.app/api/v1/settings/${e}/user/setTheme`,P=()=>{try{const e=localStorage.getItem(T);if(e&&S(e))return i(e)}catch{}return n},v=e=>{try{localStorage.setItem(T,e)}catch{}},R={themeSelected:P(),darkMode:!1,toggleStatus:"idle"},w=l.createAsyncThunk("Theme/updateTheme",async(e,{getState:f})=>{const{uid:r="",spaceId:t=""}=f().User.user??{},d=JSON.stringify({theme:e,uid:r});return(await E.default.put(A(t),d,{headers:{"Content-Type":"application/json"}})).data}),M=l.createSlice({name:"Theme",initialState:R,reducers:{toggleTheme:(e,f)=>{v(f.payload);const r=i(f.payload);Object.assign(e,{themeSelected:r,toggleStatus:"toggled"})},toggleModeTheme:e=>{e.darkMode=!e.darkMode}},extraReducers:e=>{e.addCase(w.fulfilled,(f,r)=>{v(r.payload.theme);const t=i(r.payload.theme);Object.assign(f,{themeSelected:t})})}}),i=e=>{switch(e){case"lightBlueIndigo":return n;case"darkBlack":return F;case"darkBlue":return y;case"lightAmber":return u;case"lightBlue":return o;case"lightBrown":return x;case"lightGray":return B;case"lightGreen":return c;case"lightLime":return h;case"lightOrange":return k;case"lightPink":return b;case"lightPurple":return s;case"lightRed":return g;case"lightTeal":return m;case"lightYellow":return p;default:return n}},S=e=>["lightBlueIndigo","darkBlack","darkBlue","lightAmber","lightBlue","lightBrown","lightGray","lightGreen","lightLime","lightOrange","lightPink","lightPurple","lightRed","lightTeal","lightYellow"].includes(e),{toggleTheme:D,toggleModeTheme:L}=M.actions,Y=e=>e.Theme.toggleStatus,H=e=>e.Theme.themeSelected,C=e=>e.Theme.darkMode,_=H,j=C;var q=M.reducer;exports.MuiComponentsConfig=O,exports.darkBlack=F,exports.darkBlue=y,exports.isValidThemeName=S,exports.lightAmber=u,exports.lightBlue=o,exports.lightBlueIndigo=n,exports.lightBrown=x,exports.lightGray=B,exports.lightGreen=c,exports.lightLime=h,exports.lightOrange=k,exports.lightPink=b,exports.lightPurple=s,exports.lightRed=g,exports.lightTeal=m,exports.lightYellow=p,exports.selectDarkTheme=C,exports.selectTheme=H,exports.selectThemeToggleStatus=Y,exports.selectedDarkTheme=j,exports.selectedTheme=_,exports.themeReducer=q,exports.toggleModeTheme=L,exports.toggleTheme=D,exports.updateTheme=w;
1
+ "use strict";var r=require("@mui/material"),d=require("@mui/material/styles"),l=require("@reduxjs/toolkit"),A=require("axios");function D(a){return a&&a.__esModule?a:{default:a}}var P=D(A);const E=a=>{if(a.palette.mode!=="dark")return a;const{palette:e}=a,o=d.alpha(e.text.secondary,.5),f=d.alpha(e.text.secondary,.72);return d.createTheme(a,{components:{MuiSelect:{defaultProps:{MenuProps:{PaperProps:{sx:{backgroundColor:e.background.dropdownMenu,backgroundImage:"none"}}}}},MuiTypography:{styleOverrides:{root:{color:e.text.primary}}},MuiPaper:{styleOverrides:{root:{backgroundColor:e.background.paper,backgroundImage:"none"},outlined:{borderColor:e.divider}}},MuiCard:{styleOverrides:{root:{backgroundColor:e.background.paper,backgroundImage:"none",borderColor:e.divider}}},MuiDialog:{styleOverrides:{paper:{backgroundColor:e.background.dropdownMenu,backgroundImage:"none",border:`1px solid ${e.divider}`}}},MuiDrawer:{styleOverrides:{paper:{backgroundColor:e.background.dropdownMenu,backgroundImage:"none",borderColor:e.divider}}},MuiPopover:{styleOverrides:{paper:{backgroundColor:e.background.dropdownMenu,backgroundImage:"none",border:`1px solid ${e.divider}`}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:e.background.dropdownMenu,backgroundImage:"none",border:`1px solid ${e.divider}`}}},MuiOutlinedInput:{styleOverrides:{root:{backgroundColor:d.alpha(e.background.default,.34),"& .MuiOutlinedInput-notchedOutline":{borderColor:o},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:f},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:e.primary.light,borderWidth:2},"&.Mui-disabled .MuiOutlinedInput-notchedOutline":{borderColor:d.alpha(e.text.disabled,.36)}},input:{"&::placeholder":{color:e.text.disabled,opacity:1}}}},MuiInputLabel:{styleOverrides:{root:{color:e.text.secondary,"&.Mui-focused":{color:e.primary.light},"&.Mui-disabled":{color:e.text.disabled}}}},MuiButton:{styleOverrides:{root:{"&.Mui-disabled":{color:e.text.disabled,borderColor:d.alpha(e.text.disabled,.38)}},containedPrimary:{backgroundColor:e.primary.main,color:e.primary.contrastText,"&:hover":{backgroundColor:e.primary.dark}},outlined:{color:e.primary.light,borderColor:d.alpha(e.primary.light,.72),"&:hover":{color:e.primary.light,borderColor:e.primary.light,backgroundColor:d.alpha(e.primary.light,.1)}},textPrimary:{color:e.primary.light,"&:hover":{backgroundColor:d.alpha(e.primary.light,.1)}}}},MuiIconButton:{styleOverrides:{root:{color:e.text.secondary,"&:hover":{color:e.text.primary,backgroundColor:e.action.hover},"&.MuiIconButton-colorPrimary":{color:e.primary.light},"&.MuiIconButton-colorError":{color:e.error.light},"&.Mui-disabled":{color:e.text.disabled}}}},MuiChip:{styleOverrides:{root:{color:e.text.primary,backgroundColor:d.alpha(e.text.primary,.07),borderColor:o,"& .MuiChip-icon":{color:"inherit"},"&.MuiChip-colorSuccess":{color:e.success.light,backgroundColor:e.success.dark,borderColor:d.alpha(e.success.light,.46)},"&.MuiChip-colorWarning":{color:e.warning.light,backgroundColor:e.warning.dark,borderColor:d.alpha(e.warning.light,.46)},"&.MuiChip-colorError":{color:e.error.light,backgroundColor:e.error.dark,borderColor:d.alpha(e.error.light,.46)},"&.MuiChip-colorInfo":{color:e.info.light,backgroundColor:e.info.dark,borderColor:d.alpha(e.info.light,.46)}}}},MuiAlert:{styleOverrides:{root:{border:"1px solid currentColor"},standardSuccess:{color:e.success.light,backgroundColor:e.success.dark},standardWarning:{color:e.warning.light,backgroundColor:e.warning.dark},standardError:{color:e.error.light,backgroundColor:e.error.dark},standardInfo:{color:e.info.light,backgroundColor:e.info.dark}}},MuiTableHead:{styleOverrides:{root:{backgroundColor:e.cellHeader}}},MuiTableCell:{styleOverrides:{root:{borderColor:e.divider},head:{color:e.text.primary,fontWeight:700}}},MuiTableRow:{styleOverrides:{root:{"&:hover":{backgroundColor:e.action.hover},"&.Mui-selected":{backgroundColor:e.action.selected,"&:hover":{backgroundColor:e.action.selected}}}}},MuiTabs:{styleOverrides:{indicator:{backgroundColor:e.primary.light}}},MuiTab:{styleOverrides:{root:{color:e.text.secondary,"&.Mui-selected":{color:e.primary.light}}}},MuiSwitch:{styleOverrides:{switchBase:{color:e.text.disabled,"&.Mui-checked":{color:e.primary.light,"& + .MuiSwitch-track":{backgroundColor:e.primary.light,opacity:.5}}},track:{backgroundColor:e.text.disabled,opacity:.34}}},MuiTooltip:{styleOverrides:{tooltip:{color:e.text.primary,backgroundColor:e.background.tooltip,border:`1px solid ${o}`},arrow:{color:e.background.tooltip}}},MuiDivider:{styleOverrides:{root:{borderColor:e.divider}}},MuiLink:{styleOverrides:{root:{color:e.primary.light}}}}})},L=(a,e={})=>{const{transparentModal:o=!1,autocompleteZIndex:f=11}=e,t=a.palette.background,G=r.createTheme({...a,components:{MuiSelect:{defaultProps:{MenuProps:{PaperProps:{sx:{backgroundColor:t.panel,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))"}}}}},MuiAutocomplete:{styleOverrides:{popper:{zIndex:f,"& div":{backgroundColor:t.panel}}}},MuiPaper:{styleOverrides:{root:{backgroundColor:t.panel,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))"}}},MuiMenu:{styleOverrides:{paper:{backgroundColor:t.panel,backgroundImage:"linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))"}}},MuiList:{styleOverrides:{root:{padding:0}}},MuiModal:{styleOverrides:{root:o?{background:"transparent","& .MuiBackdrop-root":{background:"transparent",border:"none"}}:{}}},MuiTypography:{styleOverrides:{root:{color:a.palette.text.primary}}},MuiChip:{styleOverrides:{root:{color:a.palette.text.primary,border:"1px solid rgba(0, 0, 0, 0.1)",borderRadius:"4px",height:"20px",fontSize:"0.7125rem"}}},MuiListSubheader:{styleOverrides:{root:{backgroundColor:t.accordionHeader}}},MuiButton:{styleOverrides:{outlined:{color:a.palette.mode==="light"?a.palette.primary.dark:a.palette.primary.light,borderColor:a.palette.mode==="light"?a.palette.primary.dark:a.palette.primary.light,"&:hover":{borderColor:a.palette.mode==="light"?a.palette.primary.main:a.palette.primary.light,color:a.palette.mode==="light"?a.palette.primary.main:a.palette.primary.light}}}}}});return E(G)},i=r.createTheme({name:"lightBlueIndigo",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#ebf6fd",mainGradient:"linear-gradient(270deg, #215c97, #1976d2)",navMenu:"#1976d2",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#1976d2",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#1976d2",light:"#42a5f5",dark:"#1565c0",contrastText:"#fff"},secondary:{main:"#1976d2",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#ebf6fd",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#1976d2"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#1976d2"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),c=r.createTheme({name:"lightBlue",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#e3f2fd",mainGradient:"linear-gradient(270deg, #005cb2, #1e88e5)",navMenu:"#4fc354",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#1e88e5",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#1e88e5",light:"#6ab7ff",dark:"#005cb2",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#1e88e5",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#e3f2fd",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#005cb2"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#005cb2"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),g=r.createTheme({name:"lightRed",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#ffebee",mainGradient:"linear-gradient(270deg, #b61827, #ef5350)",navMenu:"#f44336",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ef5350",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ef5350",light:"#ff867c",dark:"#b61827",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ef5350",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#ffebee",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#b61827"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#b61827"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),b=r.createTheme({name:"lightGreen",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#e8f5e9",mainGradient:"linear-gradient(270deg, #087f23, #4caf50)",navMenu:"#4fc354",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#4caf50",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#4caf50",light:"#80e27e",dark:"#087f23",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#4caf50",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#e8f5e9",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#087f23"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#087f23"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),s=r.createTheme({name:"lightPink",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fce4ec",mainGradient:"linear-gradient(270deg, #b0003a, #e6175d)",navMenu:"#e6175d",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#e6175d",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#e6175d",light:"#ff6090",dark:"#b0003a",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fce4ec",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#b0003a"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#b0003a"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),m=r.createTheme({name:"lightPurple",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#f3e5f5",mainGradient:"linear-gradient(270deg, #6a0080, #9c27b0)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#9c27b0",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#9c27b0",light:"#d05ce3",dark:"#6a0080",contrastText:"#fff"},secondary:{main:"#9c27b0",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#f3e5f5",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#9c27b0"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#9c27b0"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),p=r.createTheme({name:"lightTeal",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#e0f2f1",mainGradient:"linear-gradient(270deg, #00675b, #009688)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#009688",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#009688",light:"#52c7b8",dark:"#00675b",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#009688",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#e0f2f1",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#00675b"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#00675b"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),h=r.createTheme({name:"lightLime",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#f9fbe7",mainGradient:"linear-gradient(270deg, #99aa00, #cddc39)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#cddc39",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#cddc39",light:"#ffff6e",dark:"#99aa00",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#cddc39",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#f9fbe7",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#737c16"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#737c16"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),u=r.createTheme({name:"lightYellow",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fffde7",mainGradient:"linear-gradient(270deg, #c8b900, #ffeb3b)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ffeb3b",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ffeb3b",light:"#ffff72",dark:"#c8b900",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ffeb3b",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fffde7",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#847700"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#847700"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),k=r.createTheme({name:"lightAmber",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fff8e1",mainGradient:"linear-gradient(270deg, #c68400, #ffb300)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ffb300",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ffb300",light:"#ffe54c",dark:"#c68400",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ffb300",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fff8e1",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#9c6e00"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#9c6e00"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),y=r.createTheme({name:"lightOrange",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fff3e0",mainGradient:"linear-gradient(270deg, #c66900, #ff9800)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#ff9800",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#ff9800",light:"#ffc947",dark:"#c66900",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#ff9800",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fff3e0",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#ab6600"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#ab6600"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),x=r.createTheme({name:"lightBrown",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#efebe9",mainGradient:"linear-gradient(270deg, #4b2c20, #795548)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#795548",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#795548",light:"#a98274",dark:"#4b2c20",contrastText:"#fff"},secondary:{main:"#795548",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#efebe9",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#795548"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#795548"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),F=r.createTheme({name:"lightGray",palette:{mode:"light",background:{default:"#ffffff",mainCenter:"#fafafa",mainGradient:"linear-gradient(270deg, #707070, #9e9e9e)",navMenu:"#f8bbd0",dropdownMenu:"#f5f5f5",panel:"#ffffff",tooltip:"#9e9e9e",accordionHeader:"#F3F4F6",panelHeader:"#F3F4F6",panelCenter:"#ffffff",panelGradient:"#ffffff",selectedItem:"#75757530",paper:"#ffffff"},primary:{main:"#9e9e9e",light:"#cfcfcf",dark:"#707070",contrastText:"rgba(0, 0, 0, 0.87)"},secondary:{main:"#9e9e9e",light:"#ba68c8",dark:"#7b1fa2",contrastText:"rgba(0, 0, 0, 0.87)"},error:{main:"#d32f2f",light:"#ef5350",dark:"#c62828"},warning:{main:"#ed6c02",light:"#ff9800",dark:"#e65100"},info:{main:"#0288d1",light:"#03a9f4",dark:"#01579b"},success:{main:"#2e7d32",light:"#4caf50",dark:"#1b5e20"},containerBox:{default:"#ffffff",main:"#f5f5f5"},action:{active:"rgba(0, 0, 0, 0.10)",hover:"rgba(0, 0, 0, 0.05)",selected:"#fafafa",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(255, 255, 255, 0.12)"},text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.58)",colorMain:"#707070"},divider:"rgba(0, 0, 0, 0.12)",dropdownBox:"#ffffff",color:{icons:"#707070"},cellHeader:"#d3d3d3",Skeleton:{bg:"#f5f5f5"},messageBox:"#d3e6fd",boxShadow:"rgba(0, 0, 0, 0.1)",disabled:"rgba(0, 0, 0, 0.26)"}}),M={secondary:{main:"#AFC8FF",light:"#D4E2FF",dark:"#5877B6",contrastText:"#10192A"},error:{main:"#F06B7A",light:"#FF9AA8",dark:"#4A1D24",contrastText:"#2B0D12"},warning:{main:"#E5A93B",light:"#FFD27A",dark:"#493515",contrastText:"#2A1B05"},info:{main:"#4FAFE8",light:"#7CCBFF",dark:"#123955",contrastText:"#082033"},success:{main:"#43C17A",light:"#75E0A7",dark:"#143D2B",contrastText:"#092116"},action:{active:"rgba(244, 247, 251, 0.78)",hover:"rgba(244, 247, 251, 0.08)",selected:"rgba(102, 178, 255, 0.16)",disabled:"rgba(194, 204, 218, 0.48)",disabledBackground:"rgba(194, 204, 218, 0.12)"}},v=r.createTheme({name:"darkBlue",palette:{mode:"dark",contrastThreshold:4.5,primary:{main:"#246FB5",light:"#66B2FF",dark:"#195A96",contrastText:"#FFFFFF"},...M,background:{default:"#151B2B",mainGradient:"linear-gradient(270deg, #151B2B, #151B2B)",mainCenter:"#192238",navMenu:"#111827",panel:"#222D44",dropdownMenu:"#2A3650",tooltip:"#34415D",accordionHeader:"#1F2A40",panelHeader:"#1F2A40",panelCenter:"#2A3650",panelGradient:"#384057",selectedItem:"#eeeeee30",paper:"#222D44"},containerBox:{default:"#222D44",main:"#2A3650"},text:{primary:"#F4F7FB",secondary:"#C2CCDA",disabled:"#8793A6",colorMain:"#F4F7FB"},divider:"rgba(194, 204, 218, 0.22)",dropdownBox:"#2A3650",color:{icons:"#C2CCDA"},cellHeader:"#192238",Skeleton:{bg:"#34415D"},messageBox:"#1C3858",boxShadow:"rgba(2, 8, 23, 0.42)",disabled:"rgba(194, 204, 218, 0.48)"}}),C=r.createTheme({name:"darkBlack",palette:{mode:"dark",contrastThreshold:4.5,primary:{main:"#246FB5",light:"#64A8FF",dark:"#195A96",contrastText:"#FFFFFF"},...M,background:{default:"#181716",mainGradient:"linear-gradient(270deg, #181716, #181716)",mainCenter:"#1F1E1D",navMenu:"#151413",panel:"#292827",dropdownMenu:"#33312F",tooltip:"#3D3A37",accordionHeader:"#242321",panelHeader:"#242321",panelCenter:"#33312F",panelGradient:"#454443",selectedItem:"#eeeeee30",paper:"#292827"},containerBox:{default:"#292827",main:"#33312F"},text:{primary:"#F5F3F1",secondary:"#C6C3C0",disabled:"#918D89",colorMain:"#F5F3F1"},divider:"rgba(198, 195, 192, 0.22)",dropdownBox:"#33312F",color:{icons:"#C6C3C0"},cellHeader:"#1F1E1D",Skeleton:{bg:"#3D3A37"},messageBox:"#20384F",boxShadow:"rgba(0, 0, 0, 0.52)",disabled:"rgba(198, 195, 192, 0.48)"}}),B="trii-theme",R=a=>`https://agent-api.trii.app/api/v1/settings/${a}/user/setTheme`,Y=()=>{try{const a=localStorage.getItem(B);if(a&&H(a))return n(a)}catch{}return i},T=a=>{try{localStorage.setItem(B,a)}catch{}},_={themeSelected:Y(),darkMode:!1,toggleStatus:"idle"},w=l.createAsyncThunk("Theme/updateTheme",async(a,{getState:e})=>{const{uid:o="",spaceId:f=""}=e().User.user??{},t=JSON.stringify({theme:a,uid:o});return(await P.default.put(R(f),t,{headers:{"Content-Type":"application/json"}})).data}),S=l.createSlice({name:"Theme",initialState:_,reducers:{toggleTheme:(a,e)=>{T(e.payload);const o=n(e.payload);Object.assign(a,{themeSelected:o,toggleStatus:"toggled"})},toggleModeTheme:a=>{a.darkMode=!a.darkMode}},extraReducers:a=>{a.addCase(w.fulfilled,(e,o)=>{T(o.payload.theme);const f=n(o.payload.theme);Object.assign(e,{themeSelected:f})})}}),n=a=>{switch(a){case"lightBlueIndigo":return i;case"darkBlack":return C;case"darkBlue":return v;case"lightAmber":return k;case"lightBlue":return c;case"lightBrown":return x;case"lightGray":return F;case"lightGreen":return b;case"lightLime":return h;case"lightOrange":return y;case"lightPink":return s;case"lightPurple":return m;case"lightRed":return g;case"lightTeal":return p;case"lightYellow":return u;default:return i}},H=a=>["lightBlueIndigo","darkBlack","darkBlue","lightAmber","lightBlue","lightBrown","lightGray","lightGreen","lightLime","lightOrange","lightPink","lightPurple","lightRed","lightTeal","lightYellow"].includes(a),{toggleTheme:$,toggleModeTheme:q}=S.actions,W=a=>a.Theme.toggleStatus,O=a=>a.Theme.themeSelected,I=a=>a.Theme.darkMode,j=O,N=I;var z=S.reducer;exports.MuiComponentsConfig=L,exports.darkBlack=C,exports.darkBlue=v,exports.isValidThemeName=H,exports.lightAmber=k,exports.lightBlue=c,exports.lightBlueIndigo=i,exports.lightBrown=x,exports.lightGray=F,exports.lightGreen=b,exports.lightLime=h,exports.lightOrange=y,exports.lightPink=s,exports.lightPurple=m,exports.lightRed=g,exports.lightTeal=p,exports.lightYellow=u,exports.selectDarkTheme=I,exports.selectTheme=O,exports.selectThemeToggleStatus=W,exports.selectedDarkTheme=N,exports.selectedTheme=j,exports.themeReducer=z,exports.toggleModeTheme=q,exports.toggleTheme=$,exports.updateTheme=w;
2
2
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sources":["../../src/theme/MuiComponentsConfig.ts","../../src/theme/themeProvider.ts","../../src/theme/themeSlice.ts"],"sourcesContent":["import { createTheme, Theme } from '@mui/material';\n\n/**\n * Ajustes que difieren entre apps. Los valores por defecto son los que ya\n * usaba el paquete, asi que omitir las opciones no cambia nada.\n */\nexport interface MuiComponentsConfigOptions {\n /**\n * Fondo del modal y su backdrop en transparente. Lo usan header y home;\n * contacts lo tenia desactivado a proposito.\n */\n transparentModal?: boolean;\n /** z-index del popper del Autocomplete. Header necesita 1; el resto, 11. */\n autocompleteZIndex?: number;\n}\n\nconst MuiComponentsConfig = (\n themeRedux: Theme,\n options: MuiComponentsConfigOptions = {}\n): Theme => {\n const { transparentModal = false, autocompleteZIndex = 11 } = options;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bg = themeRedux.palette.background as any;\n\n return createTheme({\n ...themeRedux,\n components: {\n MuiSelect: {\n defaultProps: {\n MenuProps: {\n PaperProps: {\n sx: {\n backgroundColor: bg.panel,\n backgroundImage:\n 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\n },\n },\n },\n },\n },\n MuiAutocomplete: {\n styleOverrides: {\n popper: {\n zIndex: autocompleteZIndex,\n '& div': {\n backgroundColor: bg.panel,\n },\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundColor: bg.panel,\n backgroundImage:\n 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n backgroundColor: bg.panel,\n backgroundImage:\n 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\n },\n },\n },\n MuiList: {\n styleOverrides: {\n root: {\n padding: 0,\n },\n },\n },\n MuiModal: {\n styleOverrides: {\n root: transparentModal\n ? {\n background: 'transparent',\n '& .MuiBackdrop-root': {\n background: 'transparent',\n border: 'none',\n },\n }\n : {},\n },\n },\n MuiTypography: {\n styleOverrides: {\n root: {\n color: themeRedux.palette.text.primary,\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n color: themeRedux.palette.text.primary,\n border: '1px solid rgba(0, 0, 0, 0.1)',\n borderRadius: '4px',\n height: '20px',\n fontSize: '0.7125rem',\n },\n },\n },\n MuiListSubheader: {\n styleOverrides: {\n root: {\n backgroundColor: bg.accordionHeader,\n },\n },\n },\n MuiButton: {\n styleOverrides: {\n outlined: {\n color:\n themeRedux.palette.mode === 'light'\n ? themeRedux.palette.primary.dark\n : themeRedux.palette.info.dark,\n borderColor:\n themeRedux.palette.mode === 'light'\n ? themeRedux.palette.primary.dark\n : themeRedux.palette.info.dark,\n '&:hover': {\n borderColor:\n themeRedux.palette.mode === 'light'\n ? themeRedux.palette.primary.main\n : themeRedux.palette.info.main,\n color:\n themeRedux.palette.mode === 'light'\n ? themeRedux.palette.primary.main\n : themeRedux.palette.info.main,\n },\n },\n },\n },\n },\n });\n};\n\nexport default MuiComponentsConfig;\n","import { createTheme, Theme } from '@mui/material'\n\n// ─── Extensión de tipos de MUI ──────────────────────────────────────────────\ndeclare module '@mui/material/styles' {\n interface TypeBackground {\n mainCenter: string;\n mainGradient: string;\n navMenu: string;\n dropdownMenu: string;\n panel: string;\n tooltip: string;\n accordionHeader: string;\n panelHeader: string;\n panelCenter: string;\n panelGradient: string;\n selectedItem: string;\n }\n\n interface TypeText {\n colorMain: string;\n }\n\n interface Palette {\n containerBox: {\n default: string;\n main: string;\n };\n dropdownBox: string;\n color: {\n icons: string;\n };\n cellHeader: string;\n Skeleton: {\n bg: string;\n };\n messageBox: string;\n boxShadow: string;\n disabled: string;\n }\n\n interface PaletteOptions {\n containerBox?: {\n default?: string;\n main?: string;\n };\n dropdownBox?: string;\n color?: {\n icons?: string;\n };\n cellHeader?: string;\n Skeleton?: {\n bg?: string;\n };\n messageBox?: string;\n boxShadow?: string;\n disabled?: string;\n }\n\n interface Theme {\n name?: string;\n }\n\n interface ThemeOptions {\n name?: string;\n }\n}\n// ────────────────────────────────────────────────────────────────────────────\n\n// Temas claros\nexport const lightBlueIndigo: Theme = createTheme({\n\tname: 'lightBlueIndigo',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#ebf6fd',\n\t\t\tmainGradient: 'linear-gradient(270deg, #215c97, #1976d2)',\n\t\t\tnavMenu: '#1976d2',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#1976d2',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#1976d2',\n\t\t\tlight: '#42a5f5',\n\t\t\tdark: '#1565c0',\n\t\t\tcontrastText: '#fff'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#1976d2',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#ebf6fd',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#1976d2'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#1976d2'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightBlue: Theme = createTheme({\n\tname: 'lightBlue',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#e3f2fd',\n\t\t\tmainGradient: 'linear-gradient(270deg, #005cb2, #1e88e5)',\n\t\t\tnavMenu: '#4fc354',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#1e88e5',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#1e88e5',\n\t\t\tlight: '#6ab7ff',\n\t\t\tdark: '#005cb2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#1e88e5',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#e3f2fd',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#005cb2'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#005cb2'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightRed: Theme = createTheme({\n\tname: 'lightRed',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#ffebee',\n\t\t\tmainGradient: 'linear-gradient(270deg, #b61827, #ef5350)',\n\t\t\tnavMenu: '#f44336',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#ef5350',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#ef5350',\n\t\t\tlight: '#ff867c',\n\t\t\tdark: '#b61827',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#ef5350',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#ffebee',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#b61827'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#b61827'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightGreen: Theme = createTheme({\n\tname: 'lightGreen',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#e8f5e9',\n\t\t\tmainGradient: 'linear-gradient(270deg, #087f23, #4caf50)',\n\t\t\tnavMenu: '#4fc354',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#4caf50',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#4caf50',\n\t\t\tlight: '#80e27e',\n\t\t\tdark: '#087f23',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#4caf50',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#e8f5e9',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#087f23'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#087f23'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightPink: Theme = createTheme({\n\tname: 'lightPink',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#fce4ec',\n\t\t\tmainGradient: 'linear-gradient(270deg, #b0003a, #e6175d)',\n\t\t\tnavMenu: '#e6175d',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#e6175d',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#e6175d',\n\t\t\tlight: '#ff6090',\n\t\t\tdark: '#b0003a',\n\t\t\tcontrastText: '#fff'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#9c27b0',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#fce4ec',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#b0003a'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#b0003a'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightPurple: Theme = createTheme({\n\tname: 'lightPurple',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#f3e5f5',\n\t\t\tmainGradient: 'linear-gradient(270deg, #6a0080, #9c27b0)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#9c27b0',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#9c27b0',\n\t\t\tlight: '#d05ce3',\n\t\t\tdark: '#6a0080',\n\t\t\tcontrastText: '#fff'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#9c27b0',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#f3e5f5',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#9c27b0'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#9c27b0'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightTeal: Theme = createTheme({\n\tname: 'lightTeal',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#e0f2f1',\n\t\t\tmainGradient: 'linear-gradient(270deg, #00675b, #009688)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#009688',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#009688',\n\t\t\tlight: '#52c7b8',\n\t\t\tdark: '#00675b',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#009688',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#e0f2f1',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#00675b'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#00675b'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightLime: Theme = createTheme({\n\tname: 'lightLime',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#f9fbe7',\n\t\t\tmainGradient: 'linear-gradient(270deg, #99aa00, #cddc39)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#cddc39',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#cddc39',\n\t\t\tlight: '#ffff6e',\n\t\t\tdark: '#99aa00',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#cddc39',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#f9fbe7',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#737c16'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#737c16'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightYellow: Theme = createTheme({\n\tname: 'lightYellow',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#fffde7',\n\t\t\tmainGradient: 'linear-gradient(270deg, #c8b900, #ffeb3b)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#ffeb3b',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#ffeb3b',\n\t\t\tlight: '#ffff72',\n\t\t\tdark: '#c8b900',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#ffeb3b',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#fffde7',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#847700'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#847700'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightAmber: Theme = createTheme({\n\tname: 'lightAmber',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#fff8e1',\n\t\t\tmainGradient: 'linear-gradient(270deg, #c68400, #ffb300)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#ffb300',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#ffb300',\n\t\t\tlight: '#ffe54c',\n\t\t\tdark: '#c68400',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#ffb300',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#fff8e1',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#9c6e00'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#9c6e00'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightOrange: Theme = createTheme({\n\tname: 'lightOrange',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#fff3e0',\n\t\t\tmainGradient: 'linear-gradient(270deg, #c66900, #ff9800)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#ff9800',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#ff9800',\n\t\t\tlight: '#ffc947',\n\t\t\tdark: '#c66900',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#ff9800',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#fff3e0',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#ab6600'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#ab6600'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightBrown: Theme = createTheme({\n\tname: 'lightBrown',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#efebe9',\n\t\t\tmainGradient: 'linear-gradient(270deg, #4b2c20, #795548)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#795548',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#795548',\n\t\t\tlight: '#a98274',\n\t\t\tdark: '#4b2c20',\n\t\t\tcontrastText: '#fff'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#795548',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#efebe9',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#795548'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#795548'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const lightGray: Theme = createTheme({\n\tname: 'lightGray',\n\tpalette: {\n\t\tmode: 'light',\n\t\tbackground: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmainCenter: '#fafafa',\n\t\t\tmainGradient: 'linear-gradient(270deg, #707070, #9e9e9e)',\n\t\t\tnavMenu: '#f8bbd0',\n\t\t\tdropdownMenu: '#f5f5f5',\n\t\t\tpanel: '#ffffff',\n\t\t\ttooltip: '#9e9e9e',\n\t\t\taccordionHeader: '#F3F4F6',\n\t\t\tpanelHeader: '#F3F4F6',\n\t\t\tpanelCenter: '#ffffff',\n\t\t\tpanelGradient: '#ffffff',\n\t\t\tselectedItem: '#75757530',\n\t\t\tpaper: '#ffffff'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#9e9e9e',\n\t\t\tlight: '#cfcfcf',\n\t\t\tdark: '#707070',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\tsecondary: {\n\t\t\tmain: '#9e9e9e',\n\t\t\tlight: '#ba68c8',\n\t\t\tdark: '#7b1fa2',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#d32f2f',\n\t\t\tlight: '#ef5350',\n\t\t\tdark: '#c62828'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ed6c02',\n\t\t\tlight: '#ff9800',\n\t\t\tdark: '#e65100'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#0288d1',\n\t\t\tlight: '#03a9f4',\n\t\t\tdark: '#01579b'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#2e7d32',\n\t\t\tlight: '#4caf50',\n\t\t\tdark: '#1b5e20'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#ffffff',\n\t\t\tmain: '#f5f5f5'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\n\t\t\tselected: '#fafafa',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\n\t\t\tcolorMain: '#707070'\n\t\t},\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\n\t\tdropdownBox: '#ffffff',\n\t\tcolor: {\n\t\t\ticons: '#707070'\n\t\t},\n\t\tcellHeader: '#d3d3d3',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#d3e6fd',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\n// Temas oscuros\nexport const darkBlue: Theme = createTheme({\n\tname: 'darkBlue',\n\tpalette: {\n\t\tmode: 'dark',\n\t\tprimary: {\n\t\t\tmain: '#1f5c8e',\n\t\t\tlight: '#2196f3',\n\t\t\tdark: '#0d47a1',\n\t\t\tcontrastText: '#fff'\n\t\t},\n\t\tsecondary: {\n\t\t\tlight: '#FFEA41',\n\t\t\tmain: '#90caf9',\n\t\t\tdark: '#DBBE01',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#f44336',\n\t\t\tlight: '#e57373',\n\t\t\tdark: '#d32f2f'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ffa726',\n\t\t\tlight: '#ffb74d',\n\t\t\tdark: '#f57c00'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#29b6f6',\n\t\t\tlight: '#4fc3f7',\n\t\t\tdark: '#0288d1'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#66bb6a',\n\t\t\tlight: '#81c784',\n\t\t\tdark: '#388e3c'\n\t\t},\n\t\tbackground: {\n\t\t\tdefault: '#222B45',\n\t\t\tmainGradient: 'linear-gradient(270deg, #222B45, #222B45)',\n\t\t\tmainCenter: '#28324e',\n\t\t\tnavMenu: '#222B45',\n\t\t\tpanel: '#2d364e',\n\t\t\tdropdownMenu: '#484f65',\n\t\t\ttooltip: '#484f65',\n\t\t\taccordionHeader: '#2a3249e3',\n\t\t\tpanelHeader: '#2a3249e3',\n\t\t\tpanelCenter: '#484f65',\n\t\t\tpanelGradient: '#384057',\n\t\t\tselectedItem: '#eeeeee30',\n\t\t\tpaper: '#2d364e'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tdefault: '#2d354e',\n\t\t\tmain: '#2d354e'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(255, 255, 255, 0.2)',\n\t\t\thover: 'rgba(255, 255, 255, 0.08)',\n\t\t\tselected: 'rgba(255, 255, 255, 0.16)',\n\t\t\tdisabled: 'rgba(255, 255, 255, 0.3)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: '#EEEEEF',\n\t\t\tsecondary: '#AEB0B4',\n\t\t\tdisabled: 'rgba(255, 255, 255, 0.5)',\n\t\t\tcolorMain: '#EEEEEF'\n\t\t},\n\t\tdivider: 'rgba(255, 255, 255, 0.12)',\n\t\tdropdownBox: '#2d354e',\n\t\tcolor: {\n\t\t\ticons: '#fff'\n\t\t},\n\t\tcellHeader: '#505050',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#1f5c8e',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\nexport const darkBlack: Theme = createTheme({\n\tname: 'darkBlack',\n\tpalette: {\n\t\tmode: 'dark',\n\t\tbackground: {\n\t\t\tdefault: '#201f1e',\n\t\t\tmainGradient: 'linear-gradient(270deg, #201f1e, #201f1e)',\n\t\t\tmainCenter: '#252423',\n\t\t\tnavMenu: '#201f1e',\n\t\t\tpanel: '#3B3A39',\n\t\t\tdropdownMenu: '#585858',\n\t\t\ttooltip: '#616161eb',\n\t\t\taccordionHeader: '#25242369',\n\t\t\tpanelHeader: '#3b3a39ba',\n\t\t\tpanelCenter: '#585858',\n\t\t\tpanelGradient: '#454443',\n\t\t\tselectedItem: '#eeeeee30',\n\t\t\tpaper: '#3B3A39'\n\t\t},\n\t\tprimary: {\n\t\t\tmain: '#1976d2',\n\t\t\tlight: '#2196f3',\n\t\t\tdark: '#42a5f5',\n\t\t\tcontrastText: '#fff'\n\t\t},\n\t\tsecondary: {\n\t\t\tlight: '#FFEA41',\n\t\t\tmain: '#90caf9',\n\t\t\tdark: '#DBBE01',\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\n\t\t},\n\t\terror: {\n\t\t\tmain: '#f44336',\n\t\t\tlight: '#e57373',\n\t\t\tdark: '#d32f2f'\n\t\t},\n\t\twarning: {\n\t\t\tmain: '#ffa726',\n\t\t\tlight: '#ffb74d',\n\t\t\tdark: '#f57c00'\n\t\t},\n\t\tinfo: {\n\t\t\tmain: '#29b6f6',\n\t\t\tlight: '#4fc3f7',\n\t\t\tdark: '#0288d1'\n\t\t},\n\t\tsuccess: {\n\t\t\tmain: '#66bb6a',\n\t\t\tlight: '#81c784',\n\t\t\tdark: '#388e3c'\n\t\t},\n\t\tcontainerBox: {\n\t\t\tmain: '#ffffffb3',\n\t\t\tdefault: '#3B3A39'\n\t\t},\n\t\taction: {\n\t\t\tactive: 'rgba(255, 255, 255, 0.2)',\n\t\t\thover: 'rgba(255, 255, 255, 0.08)',\n\t\t\tselected: 'rgba(255, 255, 255, 0.16)',\n\t\t\tdisabled: 'rgba(255, 255, 255, 0.3)',\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\n\t\t},\n\t\ttext: {\n\t\t\tprimary: '#EEEEEF',\n\t\t\tsecondary: '#AEB0B4',\n\t\t\tdisabled: 'rgba(255, 255, 255, 0.5)',\n\t\t\tcolorMain: '#EEEEEF'\n\t\t},\n\t\tdivider: 'rgba(255, 255, 255, 0.12)',\n\t\tdropdownBox: '#3B3A39',\n\t\tcolor: {\n\t\t\ticons: '#fff'\n\t\t},\n\t\tcellHeader: '#505050',\n\t\tSkeleton: {\n\t\t\tbg: '#f5f5f5'\n\t\t},\n\t\tmessageBox: '#1f5c8e',\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\n\t}\n})\n\n","import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit';\nimport axios from 'axios';\nimport { Theme } from '@mui/material';\nimport {\n lightBlueIndigo,\n darkBlack,\n darkBlue,\n lightAmber,\n lightBlue,\n lightBrown,\n lightGray,\n lightGreen,\n lightLime,\n lightOrange,\n lightPink,\n lightPurple,\n lightRed,\n lightTeal,\n lightYellow,\n} from './themeProvider';\n\n\n/**\n * Forma mínima del store que necesita este slice: la app que lo use tiene que\n * tener `Theme` y `User.user.uid`.\n */\nexport interface ThemeRootState {\n User: {\n user: {\n uid: string;\n /** Requerido por `updateTheme`: la URL lo lleva en la ruta. */\n spaceId?: string;\n };\n };\n Theme: ThemeState;\n}\n\n/**\n * `trii-root-front` lee esta clave para pintar el fondo antes de montar los\n * micro-fronts. Si se deja de escribir, se ve un flash del tema equivocado.\n */\nconst THEME_STORAGE_KEY = 'trii-theme';\n\nconst themeUrl = (spaceId: string) =>\n `https://agent-api.trii.app/api/v1/settings/${spaceId}/user/setTheme`;\n\n/** Nombres de tema disponibles. */\nexport type ThemeName =\n | 'lightBlueIndigo'\n | 'darkBlack'\n | 'darkBlue'\n | 'lightAmber'\n | 'lightBlue'\n | 'lightBrown'\n | 'lightGray'\n | 'lightGreen'\n | 'lightLime'\n | 'lightOrange'\n | 'lightPink'\n | 'lightPurple'\n | 'lightRed'\n | 'lightTeal'\n | 'lightYellow';\n\n/** Estado del slice. */\nexport interface ThemeState {\n themeSelected: Theme;\n darkMode: boolean;\n toggleStatus: 'idle' | 'toggled';\n}\n\n/** Lee el tema persistido; si no hay o falla, usa el de por defecto. */\nconst getSavedTheme = (): Theme => {\n try {\n const saved = localStorage.getItem(THEME_STORAGE_KEY);\n if (saved && isValidThemeName(saved)) return getTheme(saved);\n } catch {\n // localStorage puede no estar disponible (SSR, modo privado)\n }\n return lightBlueIndigo;\n};\n\n/** Persiste el tema para que `trii-root-front` lo lea en el arranque. */\nconst saveTheme = (theme: ThemeName): void => {\n try {\n localStorage.setItem(THEME_STORAGE_KEY, theme);\n } catch {\n // sin localStorage el tema igual se aplica, solo no persiste\n }\n};\n\nconst initialState: ThemeState = {\n themeSelected: getSavedTheme(),\n darkMode: false,\n toggleStatus: 'idle',\n};\n\n/** Guarda el tema elegido en el backend. */\nexport const updateTheme = createAsyncThunk<\n { theme: ThemeName },\n ThemeName,\n { state: ThemeRootState }\n>('Theme/updateTheme', async (theme, { getState }) => {\n const { uid = '', spaceId = '' } = getState().User.user ?? {};\n const themeJson = JSON.stringify({ theme, uid });\n\n const response = await axios.put<{ theme: ThemeName }>(\n themeUrl(spaceId),\n themeJson,\n { headers: { 'Content-Type': 'application/json' } }\n );\n return response.data;\n});\n\n/** Slice del tema. */\nconst themeSlice = createSlice({\n name: 'Theme',\n initialState,\n reducers: {\n /** Cambia el tema por nombre. */\n toggleTheme: (state, action: PayloadAction<ThemeName>): void => {\n saveTheme(action.payload);\n const theme = getTheme(action.payload);\n Object.assign(state, { themeSelected: theme, toggleStatus: 'toggled' });\n },\n /** Alterna el modo oscuro. */\n toggleModeTheme: (state): void => {\n state.darkMode = !state.darkMode;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(updateTheme.fulfilled, (state, action): void => {\n saveTheme(action.payload.theme);\n const theme = getTheme(action.payload.theme);\n Object.assign(state, { themeSelected: theme });\n });\n },\n});\n\n/** Devuelve el objeto Theme de MUI a partir del nombre. */\nconst getTheme = (theme: ThemeName): Theme => {\n switch (theme) {\n case 'lightBlueIndigo':\n return lightBlueIndigo;\n case 'darkBlack':\n return darkBlack;\n case 'darkBlue':\n return darkBlue;\n case 'lightAmber':\n return lightAmber;\n case 'lightBlue':\n return lightBlue;\n case 'lightBrown':\n return lightBrown;\n case 'lightGray':\n return lightGray;\n case 'lightGreen':\n return lightGreen;\n case 'lightLime':\n return lightLime;\n case 'lightOrange':\n return lightOrange;\n case 'lightPink':\n return lightPink;\n case 'lightPurple':\n return lightPurple;\n case 'lightRed':\n return lightRed;\n case 'lightTeal':\n return lightTeal;\n case 'lightYellow':\n return lightYellow;\n default:\n return lightBlueIndigo;\n }\n};\n\n/** Valida que el string sea un `ThemeName`. */\nexport const isValidThemeName = (theme: string): theme is ThemeName => {\n const validThemes: ThemeName[] = [\n 'lightBlueIndigo',\n 'darkBlack',\n 'darkBlue',\n 'lightAmber',\n 'lightBlue',\n 'lightBrown',\n 'lightGray',\n 'lightGreen',\n 'lightLime',\n 'lightOrange',\n 'lightPink',\n 'lightPurple',\n 'lightRed',\n 'lightTeal',\n 'lightYellow',\n ];\n return validThemes.includes(theme as ThemeName);\n};\n\nexport const { toggleTheme, toggleModeTheme } = themeSlice.actions;\n\n// Selectores\nexport const selectThemeToggleStatus = (state: ThemeRootState) =>\n state.Theme.toggleStatus;\nexport const selectTheme = (state: ThemeRootState) => state.Theme.themeSelected;\nexport const selectDarkTheme = (state: ThemeRootState) => state.Theme.darkMode;\n\n/**\n * @deprecated Usar `selectTheme`. El prefijo correcto para un selector es\n * `select` (ver Guía de Arquitectura Frontend, sección 4 - Nomenclatura).\n * Se mantiene hasta que los 6 micro-fronts terminen de migrar.\n */\nexport const selectedTheme = selectTheme;\n/**\n * @deprecated Usar `selectDarkTheme`. Mismo motivo que `selectedTheme`.\n */\nexport const selectedDarkTheme = selectDarkTheme;\n\nexport default themeSlice.reducer;\n"],"names":["MuiComponentsConfig","themeRedux","options","transparentModal","autocompleteZIndex","bg","createTheme","lightBlueIndigo","lightBlue","lightRed","lightGreen","lightPink","lightPurple","lightTeal","lightLime","lightYellow","lightAmber","lightOrange","lightBrown","lightGray","darkBlue","darkBlack","THEME_STORAGE_KEY","themeUrl","spaceId","getSavedTheme","saved","isValidThemeName","getTheme","saveTheme","theme","initialState","updateTheme","createAsyncThunk","getState","uid","themeJson","axios","themeSlice","createSlice","state","action","builder","toggleTheme","toggleModeTheme","selectThemeToggleStatus","selectTheme","selectDarkTheme","selectedTheme","selectedDarkTheme"],"mappings":"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c,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYG,EAAkBH,EAAAA,YAAY,CAC1C,KAAM,WACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYI,EAAoBJ,EAAY,YAAA,CAC5C,KAAM,aACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYK,EAAmBL,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYM,EAAqBN,EAAY,YAAA,CAC7C,KAAM,cACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYO,EAAmBP,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYQ,EAAmBR,EAAY,YAAA,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYS,EAAqBT,EAAAA,YAAY,CAC7C,KAAM,cACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYU,EAAoBV,EAAAA,YAAY,CAC5C,KAAM,aACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYW,EAAqBX,EAAAA,YAAY,CAC7C,KAAM,cACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYY,EAAoBZ,EAAAA,YAAY,CAC5C,KAAM,aACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYa,EAAmBb,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAGYc,EAAkBd,EAAAA,YAAY,CAC1C,KAAM,WACN,QAAS,CACR,KAAM,OACN,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,MAAO,UACP,KAAM,UACN,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,WAAY,CACX,QAAS,UACT,aAAc,4CACd,WAAY,UACZ,QAAS,UACT,MAAO,UACP,aAAc,UACd,QAAS,UACT,gBAAiB,YACjB,Y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"}
1
+ {"version":3,"file":"theme.js","sources":["../../src/theme/darkThemeComponents.ts","../../src/theme/MuiComponentsConfig.ts","../../src/theme/themeProvider.ts","../../src/theme/themeSlice.ts"],"sourcesContent":["import { alpha, createTheme, Theme } from '@mui/material/styles';\n\n/** Aplica los ajustes de contraste compartidos exclusivamente en modo oscuro. */\nexport const applyDarkThemeComponents = (sharedTheme: Theme): Theme => {\n if (sharedTheme.palette.mode !== 'dark') return sharedTheme;\n\n const { palette } = sharedTheme;\n const strongOutline = alpha(palette.text.secondary, 0.5);\n const hoverOutline = alpha(palette.text.secondary, 0.72);\n\n return createTheme(sharedTheme, {\n components: {\n MuiSelect: {\n defaultProps: {\n MenuProps: {\n PaperProps: {\n sx: {\n backgroundColor: palette.background.dropdownMenu,\n backgroundImage: 'none',\n },\n },\n },\n },\n },\n MuiTypography: {\n styleOverrides: {\n // El microfrontend no controla el color del body de root. Mantener\n // un foreground explícito evita heredar texto oscuro del shell.\n root: { color: palette.text.primary },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundColor: palette.background.paper,\n backgroundImage: 'none',\n },\n outlined: {\n borderColor: palette.divider,\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n backgroundColor: palette.background.paper,\n backgroundImage: 'none',\n borderColor: palette.divider,\n },\n },\n },\n MuiDialog: {\n styleOverrides: {\n paper: {\n backgroundColor: palette.background.dropdownMenu,\n backgroundImage: 'none',\n border: `1px solid ${palette.divider}`,\n },\n },\n },\n MuiDrawer: {\n styleOverrides: {\n paper: {\n backgroundColor: palette.background.dropdownMenu,\n backgroundImage: 'none',\n borderColor: palette.divider,\n },\n },\n },\n MuiPopover: {\n styleOverrides: {\n paper: {\n backgroundColor: palette.background.dropdownMenu,\n backgroundImage: 'none',\n border: `1px solid ${palette.divider}`,\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n backgroundColor: palette.background.dropdownMenu,\n backgroundImage: 'none',\n border: `1px solid ${palette.divider}`,\n },\n },\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n backgroundColor: alpha(palette.background.default, 0.34),\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: strongOutline,\n },\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: hoverOutline,\n },\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n borderColor: palette.primary.light,\n borderWidth: 2,\n },\n '&.Mui-disabled .MuiOutlinedInput-notchedOutline': {\n borderColor: alpha(palette.text.disabled, 0.36),\n },\n },\n input: {\n '&::placeholder': {\n color: palette.text.disabled,\n opacity: 1,\n },\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: palette.text.secondary,\n '&.Mui-focused': { color: palette.primary.light },\n '&.Mui-disabled': { color: palette.text.disabled },\n },\n },\n },\n MuiButton: {\n styleOverrides: {\n root: {\n '&.Mui-disabled': {\n color: palette.text.disabled,\n borderColor: alpha(palette.text.disabled, 0.38),\n },\n },\n containedPrimary: {\n backgroundColor: palette.primary.main,\n color: palette.primary.contrastText,\n '&:hover': { backgroundColor: palette.primary.dark },\n },\n outlined: {\n color: palette.primary.light,\n borderColor: alpha(palette.primary.light, 0.72),\n '&:hover': {\n color: palette.primary.light,\n borderColor: palette.primary.light,\n backgroundColor: alpha(palette.primary.light, 0.1),\n },\n },\n textPrimary: {\n color: palette.primary.light,\n '&:hover': {\n backgroundColor: alpha(palette.primary.light, 0.1),\n },\n },\n },\n },\n MuiIconButton: {\n styleOverrides: {\n root: {\n color: palette.text.secondary,\n '&:hover': {\n color: palette.text.primary,\n backgroundColor: palette.action.hover,\n },\n '&.MuiIconButton-colorPrimary': { color: palette.primary.light },\n '&.MuiIconButton-colorError': { color: palette.error.light },\n '&.Mui-disabled': { color: palette.text.disabled },\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n color: palette.text.primary,\n backgroundColor: alpha(palette.text.primary, 0.07),\n borderColor: strongOutline,\n '& .MuiChip-icon': { color: 'inherit' },\n '&.MuiChip-colorSuccess': {\n color: palette.success.light,\n backgroundColor: palette.success.dark,\n borderColor: alpha(palette.success.light, 0.46),\n },\n '&.MuiChip-colorWarning': {\n color: palette.warning.light,\n backgroundColor: palette.warning.dark,\n borderColor: alpha(palette.warning.light, 0.46),\n },\n '&.MuiChip-colorError': {\n color: palette.error.light,\n backgroundColor: palette.error.dark,\n borderColor: alpha(palette.error.light, 0.46),\n },\n '&.MuiChip-colorInfo': {\n color: palette.info.light,\n backgroundColor: palette.info.dark,\n borderColor: alpha(palette.info.light, 0.46),\n },\n },\n },\n },\n MuiAlert: {\n styleOverrides: {\n root: { border: '1px solid currentColor' },\n standardSuccess: {\n color: palette.success.light,\n backgroundColor: palette.success.dark,\n },\n standardWarning: {\n color: palette.warning.light,\n backgroundColor: palette.warning.dark,\n },\n standardError: {\n color: palette.error.light,\n backgroundColor: palette.error.dark,\n },\n standardInfo: {\n color: palette.info.light,\n backgroundColor: palette.info.dark,\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: { backgroundColor: palette.cellHeader },\n },\n },\n MuiTableCell: {\n styleOverrides: {\n root: { borderColor: palette.divider },\n head: { color: palette.text.primary, fontWeight: 700 },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:hover': { backgroundColor: palette.action.hover },\n '&.Mui-selected': {\n backgroundColor: palette.action.selected,\n '&:hover': { backgroundColor: palette.action.selected },\n },\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n indicator: { backgroundColor: palette.primary.light },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n color: palette.text.secondary,\n '&.Mui-selected': { color: palette.primary.light },\n },\n },\n },\n MuiSwitch: {\n styleOverrides: {\n switchBase: {\n color: palette.text.disabled,\n '&.Mui-checked': {\n color: palette.primary.light,\n '& + .MuiSwitch-track': {\n backgroundColor: palette.primary.light,\n opacity: 0.5,\n },\n },\n },\n track: {\n backgroundColor: palette.text.disabled,\n opacity: 0.34,\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n color: palette.text.primary,\n backgroundColor: palette.background.tooltip,\n border: `1px solid ${strongOutline}`,\n },\n arrow: { color: palette.background.tooltip },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: { borderColor: palette.divider },\n },\n },\n MuiLink: {\n styleOverrides: {\n root: { color: palette.primary.light },\n },\n },\n },\n });\n};\n","import { createTheme, Theme } from '@mui/material';\nimport { applyDarkThemeComponents } from './darkThemeComponents';\r\n\r\n/**\r\n * Ajustes que difieren entre apps. Los valores por defecto son los que ya\r\n * usaba el paquete, asi que omitir las opciones no cambia nada.\r\n */\r\nexport interface MuiComponentsConfigOptions {\r\n /**\r\n * Fondo del modal y su backdrop en transparente. Lo usan header y home;\r\n * contacts lo tenia desactivado a proposito.\r\n */\r\n transparentModal?: boolean;\r\n /** z-index del popper del Autocomplete. Header necesita 1; el resto, 11. */\r\n autocompleteZIndex?: number;\r\n}\r\n\r\nconst MuiComponentsConfig = (\r\n themeRedux: Theme,\r\n options: MuiComponentsConfigOptions = {}\r\n): Theme => {\r\n const { transparentModal = false, autocompleteZIndex = 11 } = options;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const bg = themeRedux.palette.background as any;\r\n\r\n const sharedTheme = createTheme({\r\n ...themeRedux,\r\n components: {\r\n MuiSelect: {\r\n defaultProps: {\r\n MenuProps: {\r\n PaperProps: {\r\n sx: {\r\n backgroundColor: bg.panel,\r\n backgroundImage:\r\n 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n popper: {\r\n zIndex: autocompleteZIndex,\r\n '& div': {\r\n backgroundColor: bg.panel,\r\n },\r\n },\r\n },\r\n },\r\n MuiPaper: {\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: bg.panel,\r\n backgroundImage:\r\n 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\r\n },\r\n },\r\n },\r\n MuiMenu: {\r\n styleOverrides: {\r\n paper: {\r\n backgroundColor: bg.panel,\r\n backgroundImage:\r\n 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))',\r\n },\r\n },\r\n },\r\n MuiList: {\r\n styleOverrides: {\r\n root: {\r\n padding: 0,\r\n },\r\n },\r\n },\r\n MuiModal: {\r\n styleOverrides: {\r\n root: transparentModal\r\n ? {\r\n background: 'transparent',\r\n '& .MuiBackdrop-root': {\r\n background: 'transparent',\r\n border: 'none',\r\n },\r\n }\r\n : {},\r\n },\r\n },\r\n MuiTypography: {\r\n styleOverrides: {\r\n root: {\r\n color: themeRedux.palette.text.primary,\r\n },\r\n },\r\n },\r\n MuiChip: {\r\n styleOverrides: {\r\n root: {\r\n color: themeRedux.palette.text.primary,\r\n border: '1px solid rgba(0, 0, 0, 0.1)',\r\n borderRadius: '4px',\r\n height: '20px',\r\n fontSize: '0.7125rem',\r\n },\r\n },\r\n },\r\n MuiListSubheader: {\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: bg.accordionHeader,\r\n },\r\n },\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n outlined: {\r\n color:\r\n themeRedux.palette.mode === 'light'\r\n ? themeRedux.palette.primary.dark\r\n : themeRedux.palette.primary.light,\r\n borderColor:\r\n themeRedux.palette.mode === 'light'\r\n ? themeRedux.palette.primary.dark\r\n : themeRedux.palette.primary.light,\r\n '&:hover': {\r\n borderColor:\r\n themeRedux.palette.mode === 'light'\r\n ? themeRedux.palette.primary.main\r\n : themeRedux.palette.primary.light,\r\n color:\r\n themeRedux.palette.mode === 'light'\r\n ? themeRedux.palette.primary.main\r\n : themeRedux.palette.primary.light,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n\r\n return applyDarkThemeComponents(sharedTheme);\r\n};\r\n\r\nexport default MuiComponentsConfig;\r\n","import { createTheme, Theme } from '@mui/material'\r\n\r\n// ─── Extensión de tipos de MUI ──────────────────────────────────────────────\r\ndeclare module '@mui/material/styles' {\r\n interface TypeBackground {\r\n mainCenter: string;\r\n mainGradient: string;\r\n navMenu: string;\r\n dropdownMenu: string;\r\n panel: string;\r\n tooltip: string;\r\n accordionHeader: string;\r\n panelHeader: string;\r\n panelCenter: string;\r\n panelGradient: string;\r\n selectedItem: string;\r\n }\r\n\r\n interface TypeText {\r\n colorMain: string;\r\n }\r\n\r\n interface Palette {\r\n containerBox: {\r\n default: string;\r\n main: string;\r\n };\r\n dropdownBox: string;\r\n color: {\r\n icons: string;\r\n };\r\n cellHeader: string;\r\n Skeleton: {\r\n bg: string;\r\n };\r\n messageBox: string;\r\n boxShadow: string;\r\n disabled: string;\r\n }\r\n\r\n interface PaletteOptions {\r\n containerBox?: {\r\n default?: string;\r\n main?: string;\r\n };\r\n dropdownBox?: string;\r\n color?: {\r\n icons?: string;\r\n };\r\n cellHeader?: string;\r\n Skeleton?: {\r\n bg?: string;\r\n };\r\n messageBox?: string;\r\n boxShadow?: string;\r\n disabled?: string;\r\n }\r\n\r\n interface Theme {\r\n name?: string;\r\n }\r\n\r\n interface ThemeOptions {\r\n name?: string;\r\n }\r\n}\r\n// ────────────────────────────────────────────────────────────────────────────\r\n\r\n// Temas claros\r\nexport const lightBlueIndigo: Theme = createTheme({\r\n\tname: 'lightBlueIndigo',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#ebf6fd',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #215c97, #1976d2)',\r\n\t\t\tnavMenu: '#1976d2',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#1976d2',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#1976d2',\r\n\t\t\tlight: '#42a5f5',\r\n\t\t\tdark: '#1565c0',\r\n\t\t\tcontrastText: '#fff'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#1976d2',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#ebf6fd',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#1976d2'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#1976d2'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightBlue: Theme = createTheme({\r\n\tname: 'lightBlue',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#e3f2fd',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #005cb2, #1e88e5)',\r\n\t\t\tnavMenu: '#4fc354',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#1e88e5',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#1e88e5',\r\n\t\t\tlight: '#6ab7ff',\r\n\t\t\tdark: '#005cb2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#1e88e5',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#e3f2fd',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#005cb2'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#005cb2'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightRed: Theme = createTheme({\r\n\tname: 'lightRed',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#ffebee',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #b61827, #ef5350)',\r\n\t\t\tnavMenu: '#f44336',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#ef5350',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#ef5350',\r\n\t\t\tlight: '#ff867c',\r\n\t\t\tdark: '#b61827',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#ef5350',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#ffebee',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#b61827'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#b61827'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightGreen: Theme = createTheme({\r\n\tname: 'lightGreen',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#e8f5e9',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #087f23, #4caf50)',\r\n\t\t\tnavMenu: '#4fc354',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#4caf50',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#4caf50',\r\n\t\t\tlight: '#80e27e',\r\n\t\t\tdark: '#087f23',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#4caf50',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#e8f5e9',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#087f23'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#087f23'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightPink: Theme = createTheme({\r\n\tname: 'lightPink',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#fce4ec',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #b0003a, #e6175d)',\r\n\t\t\tnavMenu: '#e6175d',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#e6175d',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#e6175d',\r\n\t\t\tlight: '#ff6090',\r\n\t\t\tdark: '#b0003a',\r\n\t\t\tcontrastText: '#fff'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#9c27b0',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#fce4ec',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#b0003a'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#b0003a'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightPurple: Theme = createTheme({\r\n\tname: 'lightPurple',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#f3e5f5',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #6a0080, #9c27b0)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#9c27b0',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#9c27b0',\r\n\t\t\tlight: '#d05ce3',\r\n\t\t\tdark: '#6a0080',\r\n\t\t\tcontrastText: '#fff'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#9c27b0',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#f3e5f5',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#9c27b0'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#9c27b0'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightTeal: Theme = createTheme({\r\n\tname: 'lightTeal',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#e0f2f1',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #00675b, #009688)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#009688',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#009688',\r\n\t\t\tlight: '#52c7b8',\r\n\t\t\tdark: '#00675b',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#009688',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#e0f2f1',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#00675b'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#00675b'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightLime: Theme = createTheme({\r\n\tname: 'lightLime',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#f9fbe7',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #99aa00, #cddc39)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#cddc39',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#cddc39',\r\n\t\t\tlight: '#ffff6e',\r\n\t\t\tdark: '#99aa00',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#cddc39',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#f9fbe7',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#737c16'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#737c16'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightYellow: Theme = createTheme({\r\n\tname: 'lightYellow',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#fffde7',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #c8b900, #ffeb3b)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#ffeb3b',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#ffeb3b',\r\n\t\t\tlight: '#ffff72',\r\n\t\t\tdark: '#c8b900',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#ffeb3b',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#fffde7',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#847700'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#847700'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightAmber: Theme = createTheme({\r\n\tname: 'lightAmber',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#fff8e1',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #c68400, #ffb300)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#ffb300',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#ffb300',\r\n\t\t\tlight: '#ffe54c',\r\n\t\t\tdark: '#c68400',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#ffb300',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#fff8e1',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#9c6e00'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#9c6e00'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightOrange: Theme = createTheme({\r\n\tname: 'lightOrange',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#fff3e0',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #c66900, #ff9800)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#ff9800',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#ff9800',\r\n\t\t\tlight: '#ffc947',\r\n\t\t\tdark: '#c66900',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#ff9800',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#fff3e0',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#ab6600'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#ab6600'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightBrown: Theme = createTheme({\r\n\tname: 'lightBrown',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#efebe9',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #4b2c20, #795548)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#795548',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#795548',\r\n\t\t\tlight: '#a98274',\r\n\t\t\tdark: '#4b2c20',\r\n\t\t\tcontrastText: '#fff'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#795548',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#efebe9',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#795548'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#795548'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\nexport const lightGray: Theme = createTheme({\r\n\tname: 'lightGray',\r\n\tpalette: {\r\n\t\tmode: 'light',\r\n\t\tbackground: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmainCenter: '#fafafa',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #707070, #9e9e9e)',\r\n\t\t\tnavMenu: '#f8bbd0',\r\n\t\t\tdropdownMenu: '#f5f5f5',\r\n\t\t\tpanel: '#ffffff',\r\n\t\t\ttooltip: '#9e9e9e',\r\n\t\t\taccordionHeader: '#F3F4F6',\r\n\t\t\tpanelHeader: '#F3F4F6',\r\n\t\t\tpanelCenter: '#ffffff',\r\n\t\t\tpanelGradient: '#ffffff',\r\n\t\t\tselectedItem: '#75757530',\r\n\t\t\tpaper: '#ffffff'\r\n\t\t},\r\n\t\tprimary: {\r\n\t\t\tmain: '#9e9e9e',\r\n\t\t\tlight: '#cfcfcf',\r\n\t\t\tdark: '#707070',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: '#9e9e9e',\r\n\t\t\tlight: '#ba68c8',\r\n\t\t\tdark: '#7b1fa2',\r\n\t\t\tcontrastText: 'rgba(0, 0, 0, 0.87)'\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: '#d32f2f',\r\n\t\t\tlight: '#ef5350',\r\n\t\t\tdark: '#c62828'\r\n\t\t},\r\n\t\twarning: {\r\n\t\t\tmain: '#ed6c02',\r\n\t\t\tlight: '#ff9800',\r\n\t\t\tdark: '#e65100'\r\n\t\t},\r\n\t\tinfo: {\r\n\t\t\tmain: '#0288d1',\r\n\t\t\tlight: '#03a9f4',\r\n\t\t\tdark: '#01579b'\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: '#2e7d32',\r\n\t\t\tlight: '#4caf50',\r\n\t\t\tdark: '#1b5e20'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#ffffff',\r\n\t\t\tmain: '#f5f5f5'\r\n\t\t},\r\n\t\taction: {\r\n\t\t\tactive: 'rgba(0, 0, 0, 0.10)',\r\n\t\t\thover: 'rgba(0, 0, 0, 0.05)',\r\n\t\t\tselected: '#fafafa',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.26)',\r\n\t\t\tdisabledBackground: 'rgba(255, 255, 255, 0.12)'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: 'rgba(0, 0, 0, 0.87)',\r\n\t\t\tsecondary: 'rgba(0, 0, 0, 0.6)',\r\n\t\t\tdisabled: 'rgba(0, 0, 0, 0.58)',\r\n\t\t\tcolorMain: '#707070'\r\n\t\t},\r\n\t\tdivider: 'rgba(0, 0, 0, 0.12)',\r\n\t\tdropdownBox: '#ffffff',\r\n\t\tcolor: {\r\n\t\t\ticons: '#707070'\r\n\t\t},\r\n\t\tcellHeader: '#d3d3d3',\r\n\t\tSkeleton: {\r\n\t\t\tbg: '#f5f5f5'\r\n\t\t},\r\n\t\tmessageBox: '#d3e6fd',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.1)',\r\n\t\tdisabled: 'rgba(0, 0, 0, 0.26)'\r\n\t}\r\n})\r\n\r\n// Temas oscuros. La escala separa fondo, contenido,\r\n// superficies y overlays, y reserva primary.light para enlaces, iconos y foco.\r\nconst darkSemanticColors = {\r\n\tsecondary: {\r\n\t\tmain: '#AFC8FF',\r\n\t\tlight: '#D4E2FF',\r\n\t\tdark: '#5877B6',\r\n\t\tcontrastText: '#10192A'\r\n\t},\r\n\terror: {\r\n\t\tmain: '#F06B7A',\r\n\t\tlight: '#FF9AA8',\r\n\t\tdark: '#4A1D24',\r\n\t\tcontrastText: '#2B0D12'\r\n\t},\r\n\twarning: {\r\n\t\tmain: '#E5A93B',\r\n\t\tlight: '#FFD27A',\r\n\t\tdark: '#493515',\r\n\t\tcontrastText: '#2A1B05'\r\n\t},\r\n\tinfo: {\r\n\t\tmain: '#4FAFE8',\r\n\t\tlight: '#7CCBFF',\r\n\t\tdark: '#123955',\r\n\t\tcontrastText: '#082033'\r\n\t},\r\n\tsuccess: {\r\n\t\tmain: '#43C17A',\r\n\t\tlight: '#75E0A7',\r\n\t\tdark: '#143D2B',\r\n\t\tcontrastText: '#092116'\r\n\t},\r\n\taction: {\r\n\t\tactive: 'rgba(244, 247, 251, 0.78)',\r\n\t\thover: 'rgba(244, 247, 251, 0.08)',\r\n\t\tselected: 'rgba(102, 178, 255, 0.16)',\r\n\t\tdisabled: 'rgba(194, 204, 218, 0.48)',\r\n\t\tdisabledBackground: 'rgba(194, 204, 218, 0.12)'\r\n\t}\r\n}\r\n\r\nexport const darkBlue: Theme = createTheme({\r\n\tname: 'darkBlue',\r\n\tpalette: {\r\n\t\tmode: 'dark',\r\n\t\tcontrastThreshold: 4.5,\r\n\t\tprimary: {\r\n\t\t\tmain: '#246FB5',\r\n\t\t\tlight: '#66B2FF',\r\n\t\t\tdark: '#195A96',\r\n\t\t\tcontrastText: '#FFFFFF'\r\n\t\t},\r\n\t\t...darkSemanticColors,\r\n\t\tbackground: {\r\n\t\t\tdefault: '#151B2B',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #151B2B, #151B2B)',\r\n\t\t\tmainCenter: '#192238',\r\n\t\t\tnavMenu: '#111827',\r\n\t\t\tpanel: '#222D44',\r\n\t\t\tdropdownMenu: '#2A3650',\r\n\t\t\ttooltip: '#34415D',\r\n\t\t\taccordionHeader: '#1F2A40',\r\n\t\t\tpanelHeader: '#1F2A40',\r\n\t\t\tpanelCenter: '#2A3650',\r\n\t\t\tpanelGradient: '#384057',\r\n\t\t\tselectedItem: '#eeeeee30',\r\n\t\t\tpaper: '#222D44'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#222D44',\r\n\t\t\tmain: '#2A3650'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: '#F4F7FB',\r\n\t\t\tsecondary: '#C2CCDA',\r\n\t\t\tdisabled: '#8793A6',\r\n\t\t\tcolorMain: '#F4F7FB'\r\n\t\t},\r\n\t\tdivider: 'rgba(194, 204, 218, 0.22)',\r\n\t\tdropdownBox: '#2A3650',\r\n\t\tcolor: { icons: '#C2CCDA' },\r\n\t\tcellHeader: '#192238',\r\n\t\tSkeleton: { bg: '#34415D' },\r\n\t\tmessageBox: '#1C3858',\r\n\t\tboxShadow: 'rgba(2, 8, 23, 0.42)',\r\n\t\tdisabled: 'rgba(194, 204, 218, 0.48)'\r\n\t}\r\n})\r\n\r\nexport const darkBlack: Theme = createTheme({\r\n\tname: 'darkBlack',\r\n\tpalette: {\r\n\t\tmode: 'dark',\r\n\t\tcontrastThreshold: 4.5,\r\n\t\tprimary: {\r\n\t\t\tmain: '#246FB5',\r\n\t\t\tlight: '#64A8FF',\r\n\t\t\tdark: '#195A96',\r\n\t\t\tcontrastText: '#FFFFFF'\r\n\t\t},\r\n\t\t...darkSemanticColors,\r\n\t\tbackground: {\r\n\t\t\tdefault: '#181716',\r\n\t\t\tmainGradient: 'linear-gradient(270deg, #181716, #181716)',\r\n\t\t\tmainCenter: '#1F1E1D',\r\n\t\t\tnavMenu: '#151413',\r\n\t\t\tpanel: '#292827',\r\n\t\t\tdropdownMenu: '#33312F',\r\n\t\t\ttooltip: '#3D3A37',\r\n\t\t\taccordionHeader: '#242321',\r\n\t\t\tpanelHeader: '#242321',\r\n\t\t\tpanelCenter: '#33312F',\r\n\t\t\tpanelGradient: '#454443',\r\n\t\t\tselectedItem: '#eeeeee30',\r\n\t\t\tpaper: '#292827'\r\n\t\t},\r\n\t\tcontainerBox: {\r\n\t\t\tdefault: '#292827',\r\n\t\t\tmain: '#33312F'\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\tprimary: '#F5F3F1',\r\n\t\t\tsecondary: '#C6C3C0',\r\n\t\t\tdisabled: '#918D89',\r\n\t\t\tcolorMain: '#F5F3F1'\r\n\t\t},\r\n\t\tdivider: 'rgba(198, 195, 192, 0.22)',\r\n\t\tdropdownBox: '#33312F',\r\n\t\tcolor: { icons: '#C6C3C0' },\r\n\t\tcellHeader: '#1F1E1D',\r\n\t\tSkeleton: { bg: '#3D3A37' },\r\n\t\tmessageBox: '#20384F',\r\n\t\tboxShadow: 'rgba(0, 0, 0, 0.52)',\r\n\t\tdisabled: 'rgba(198, 195, 192, 0.48)'\r\n\t}\r\n})\r\n","import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit';\r\nimport axios from 'axios';\r\nimport { Theme } from '@mui/material';\r\nimport {\r\n lightBlueIndigo,\r\n darkBlack,\r\n darkBlue,\r\n lightAmber,\r\n lightBlue,\r\n lightBrown,\r\n lightGray,\r\n lightGreen,\r\n lightLime,\r\n lightOrange,\r\n lightPink,\r\n lightPurple,\r\n lightRed,\r\n lightTeal,\r\n lightYellow,\r\n} from './themeProvider';\r\n\r\n\r\n/**\r\n * Forma mínima del store que necesita este slice: la app que lo use tiene que\r\n * tener `Theme` y `User.user.uid`.\r\n */\r\nexport interface ThemeRootState {\r\n User: {\r\n user: {\r\n uid: string;\r\n /** Requerido por `updateTheme`: la URL lo lleva en la ruta. */\r\n spaceId?: string;\r\n };\r\n };\r\n Theme: ThemeState;\r\n}\r\n\r\n/**\r\n * `trii-root-front` lee esta clave para pintar el fondo antes de montar los\r\n * micro-fronts. Si se deja de escribir, se ve un flash del tema equivocado.\r\n */\r\nconst THEME_STORAGE_KEY = 'trii-theme';\r\n\r\nconst themeUrl = (spaceId: string) =>\r\n `https://agent-api.trii.app/api/v1/settings/${spaceId}/user/setTheme`;\r\n\r\n/** Nombres de tema disponibles. */\r\nexport type ThemeName =\r\n | 'lightBlueIndigo'\r\n | 'darkBlack'\r\n | 'darkBlue'\r\n | 'lightAmber'\r\n | 'lightBlue'\r\n | 'lightBrown'\r\n | 'lightGray'\r\n | 'lightGreen'\r\n | 'lightLime'\r\n | 'lightOrange'\r\n | 'lightPink'\r\n | 'lightPurple'\r\n | 'lightRed'\r\n | 'lightTeal'\r\n | 'lightYellow';\r\n\r\n/** Estado del slice. */\r\nexport interface ThemeState {\r\n themeSelected: Theme;\r\n darkMode: boolean;\r\n toggleStatus: 'idle' | 'toggled';\r\n}\r\n\r\n/** Lee el tema persistido; si no hay o falla, usa el de por defecto. */\r\nconst getSavedTheme = (): Theme => {\r\n try {\r\n const saved = localStorage.getItem(THEME_STORAGE_KEY);\r\n if (saved && isValidThemeName(saved)) return getTheme(saved);\r\n } catch {\r\n // localStorage puede no estar disponible (SSR, modo privado)\r\n }\r\n return lightBlueIndigo;\r\n};\r\n\r\n/** Persiste el tema para que `trii-root-front` lo lea en el arranque. */\r\nconst saveTheme = (theme: ThemeName): void => {\r\n try {\r\n localStorage.setItem(THEME_STORAGE_KEY, theme);\r\n } catch {\r\n // sin localStorage el tema igual se aplica, solo no persiste\r\n }\r\n};\r\n\r\nconst initialState: ThemeState = {\r\n themeSelected: getSavedTheme(),\r\n darkMode: false,\r\n toggleStatus: 'idle',\r\n};\r\n\r\n/** Guarda el tema elegido en el backend. */\r\nexport const updateTheme = createAsyncThunk<\r\n { theme: ThemeName },\r\n ThemeName,\r\n { state: ThemeRootState }\r\n>('Theme/updateTheme', async (theme, { getState }) => {\r\n const { uid = '', spaceId = '' } = getState().User.user ?? {};\r\n const themeJson = JSON.stringify({ theme, uid });\r\n\r\n const response = await axios.put<{ theme: ThemeName }>(\r\n themeUrl(spaceId),\r\n themeJson,\r\n { headers: { 'Content-Type': 'application/json' } }\r\n );\r\n return response.data;\r\n});\r\n\r\n/** Slice del tema. */\r\nconst themeSlice = createSlice({\r\n name: 'Theme',\r\n initialState,\r\n reducers: {\r\n /** Cambia el tema por nombre. */\r\n toggleTheme: (state, action: PayloadAction<ThemeName>): void => {\r\n saveTheme(action.payload);\r\n const theme = getTheme(action.payload);\r\n Object.assign(state, { themeSelected: theme, toggleStatus: 'toggled' });\r\n },\r\n /** Alterna el modo oscuro. */\r\n toggleModeTheme: (state): void => {\r\n state.darkMode = !state.darkMode;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(updateTheme.fulfilled, (state, action): void => {\r\n saveTheme(action.payload.theme);\r\n const theme = getTheme(action.payload.theme);\r\n Object.assign(state, { themeSelected: theme });\r\n });\r\n },\r\n});\r\n\r\n/** Devuelve el objeto Theme de MUI a partir del nombre. */\r\nconst getTheme = (theme: ThemeName): Theme => {\r\n switch (theme) {\r\n case 'lightBlueIndigo':\r\n return lightBlueIndigo;\r\n case 'darkBlack':\r\n return darkBlack;\r\n case 'darkBlue':\r\n return darkBlue;\r\n case 'lightAmber':\r\n return lightAmber;\r\n case 'lightBlue':\r\n return lightBlue;\r\n case 'lightBrown':\r\n return lightBrown;\r\n case 'lightGray':\r\n return lightGray;\r\n case 'lightGreen':\r\n return lightGreen;\r\n case 'lightLime':\r\n return lightLime;\r\n case 'lightOrange':\r\n return lightOrange;\r\n case 'lightPink':\r\n return lightPink;\r\n case 'lightPurple':\r\n return lightPurple;\r\n case 'lightRed':\r\n return lightRed;\r\n case 'lightTeal':\r\n return lightTeal;\r\n case 'lightYellow':\r\n return lightYellow;\r\n default:\r\n return lightBlueIndigo;\r\n }\r\n};\r\n\r\n/** Valida que el string sea un `ThemeName`. */\r\nexport const isValidThemeName = (theme: string): theme is ThemeName => {\r\n const validThemes: ThemeName[] = [\r\n 'lightBlueIndigo',\r\n 'darkBlack',\r\n 'darkBlue',\r\n 'lightAmber',\r\n 'lightBlue',\r\n 'lightBrown',\r\n 'lightGray',\r\n 'lightGreen',\r\n 'lightLime',\r\n 'lightOrange',\r\n 'lightPink',\r\n 'lightPurple',\r\n 'lightRed',\r\n 'lightTeal',\r\n 'lightYellow',\r\n ];\r\n return validThemes.includes(theme as ThemeName);\r\n};\r\n\r\nexport const { toggleTheme, toggleModeTheme } = themeSlice.actions;\r\n\r\n// Selectores\r\nexport const selectThemeToggleStatus = (state: ThemeRootState) =>\r\n state.Theme.toggleStatus;\r\nexport const selectTheme = (state: ThemeRootState) => state.Theme.themeSelected;\r\nexport const selectDarkTheme = (state: ThemeRootState) => state.Theme.darkMode;\r\n\r\n/**\r\n * @deprecated Usar `selectTheme`. El prefijo correcto para un selector es\r\n * `select` (ver Guía de Arquitectura Frontend, sección 4 - Nomenclatura).\r\n * Se mantiene hasta que los 6 micro-fronts terminen de migrar.\r\n */\r\nexport const selectedTheme = selectTheme;\r\n/**\r\n * @deprecated Usar `selectDarkTheme`. Mismo motivo que `selectedTheme`.\r\n */\r\nexport const selectedDarkTheme = selectDarkTheme;\r\n\r\nexport default themeSlice.reducer;\r\n"],"names":["applyDarkThemeComponents","sharedTheme","palette","strongOutline","alpha","hoverOutline","createTheme","MuiComponentsConfig","themeRedux","options","transparentModal","autocompleteZIndex","bg","lightBlueIndigo","lightBlue","lightRed","lightGreen","lightPink","lightPurple","lightTeal","lightLime","lightYellow","lightAmber","lightOrange","lightBrown","lightGray","darkSemanticColors","darkBlue","darkBlack","THEME_STORAGE_KEY","themeUrl","spaceId","getSavedTheme","saved","isValidThemeName","getTheme","saveTheme","theme","initialState","updateTheme","createAsyncThunk","getState","uid","themeJson","axios","themeSlice","createSlice","state","action","builder","toggleTheme","toggleModeTheme","selectThemeToggleStatus","selectTheme","selectDarkTheme","selectedTheme","selectedDarkTheme"],"mappings":"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UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYU,EAAoBV,EAAAA,YAAY,CAC5C,KAAM,aACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYW,EAAmBX,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYY,EAAqBZ,EAAAA,YAAY,CAC7C,KAAM,cACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYa,EAAmBb,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYc,EAAmBd,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYe,EAAqBf,EAAAA,YAAY,CAC7C,KAAM,cACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYgB,EAAoBhB,EAAAA,YAAY,CAC5C,KAAM,aACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYiB,EAAqBjB,EAAAA,YAAY,CAC7C,KAAM,cACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYkB,EAAoBlB,EAAAA,YAAY,CAC5C,KAAM,aACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,MACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UAAW,qBACX,SAAU,sBACV,UAAW,SACZ,EACA,QAAS,sBACT,YAAa,UACb,MAAO,CACN,MAAO,SACR,EACA,WAAY,UACZ,SAAU,CACT,GAAI,SACL,EACA,WAAY,UACZ,UAAW,qBACX,SAAU,qBACX,CACD,CAAC,EAEYmB,EAAmBnB,EAAAA,YAAY,CAC3C,KAAM,YACN,QAAS,CACR,KAAM,QACN,WAAY,CACX,QAAS,UACT,WAAY,UACZ,aAAc,4CACd,QAAS,UACT,aAAc,UACd,MAAO,UACP,QAAS,UACT,gBAAiB,UACjB,YAAa,UACb,YAAa,UACb,cAAe,UACf,aAAc,YACd,MAAO,SACR,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,UAAW,CACV,KAAM,UACN,MAAO,UACP,KAAM,UACN,aAAc,qBACf,EACA,MAAO,CACN,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,KAAM,CACL,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,QAAS,CACR,KAAM,UACN,MAAO,UACP,KAAM,SACP,EACA,aAAc,CACb,QAAS,UACT,KAAM,SACP,EACA,OAAQ,CACP,OAAQ,sBACR,MAAO,sBACP,SAAU,UACV,SAAU,sBACV,mBAAoB,2BACrB,EACA,KAAM,CACL,QAAS,sBACT,UA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"}
@@ -1 +1 @@
1
- {"version":3,"file":"async-state.js","sources":["../../src/asyncState/asyncState.ts","../../src/asyncState/getErrorMessage.ts","../../src/asyncState/useAsyncData.ts"],"sourcesContent":["/**\n * Modelo canónico de estado asíncrono (loading / error / caché remota).\n *\n * Unifica cómo los paneles representan el ciclo de vida de un dato remoto:\n *\n * - `idle`/`loading` sin datos → carga inicial (bloqueante: skeleton/spinner).\n * - `loading` con datos → revalidación NO bloqueante (`isRevalidating`).\n * - `rejected` con datos → error manteniendo datos previos + retry.\n * - `rejected` sin datos → error bloqueante con retry.\n * - `succeeded` sin datos → estado realmente vacío (`isEmpty`).\n *\n * Los literales de `AsyncStatus` coinciden con el `RequestStatus` que usan los\n * slices de los frontends Trii, para que sean compatibles sin conversión.\n *\n * Módulo puro: sin React, sin MUI, sin Redux, sin dominio. Se publica también\n * por el subpath `@trii/components/async-state` para que un slice pueda\n * consumirlo sin arrastrar la UI del paquete.\n *\n * Guía de uso: docs/ASYNC_STATE.md\n */\n\nexport type AsyncStatus = 'idle' | 'loading' | 'succeeded' | 'rejected';\n\n/**\n * Estado \"crudo\" persistible: es lo que guarda un slice de Redux o el estado\n * interno de `useAsyncData`. Los flags derivados se calculan con\n * `deriveAsyncState` (nunca se almacenan, para evitar inconsistencias).\n */\nexport interface AsyncData<T> {\n status: AsyncStatus;\n /** Últimos datos válidos. Se preservan durante refetches y errores. */\n data: T | undefined;\n /** Mensaje del último error (null si la última operación fue exitosa). */\n error: string | null;\n /** Timestamp (Date.now()) del último fetch exitoso. Base para staleness. */\n updatedAt: number | null;\n}\n\n/** Estado derivado listo para consumir desde la UI. */\nexport interface AsyncState<T> extends AsyncData<T> {\n /** true si hay datos utilizables para mostrar (no undefined ni \"vacíos\"). */\n hasData: boolean;\n /** Carga inicial: está cargando y NO hay datos que mostrar → bloqueante. */\n isInitialLoading: boolean;\n /** Revalidación: está cargando y SÍ hay datos → no bloquear la UI. */\n isRevalidating: boolean;\n /** Vacío real: la última carga fue exitosa y no hay datos que mostrar. */\n isEmpty: boolean;\n}\n\n/** Decide si un dato cuenta como \"vacío\" (p.ej. lista sin elementos). */\nexport type IsEmptyFn<T> = (data: T) => boolean;\n\n/**\n * Vacío por defecto: `null`/`undefined` y arrays sin elementos.\n * Cada feature puede aportar su propia regla (p.ej. \"objeto sin campos\").\n */\nexport const defaultIsEmpty = <T>(data: T): boolean => {\n if (data === null || data === undefined) return true;\n if (Array.isArray(data)) return data.length === 0;\n return false;\n};\n\n/** Estado inicial: nunca se hizo un fetch. */\nexport const asyncIdle = <T>(): AsyncData<T> => ({\n status: 'idle',\n data: undefined,\n error: null,\n updatedAt: null,\n});\n\n/**\n * Transición a \"request en curso\".\n * Por defecto preserva los datos previos (refetch no bloqueante).\n * Pasar `clearData: true` solo cuando los datos viejos dejarían de ser\n * válidos para la nueva request (p.ej. cambio de contacto seleccionado).\n */\nexport const asyncRequestStarted = <T>(\n prev: AsyncData<T>,\n options?: { clearData?: boolean }\n): AsyncData<T> => ({\n status: 'loading',\n data: options?.clearData ? undefined : prev.data,\n error: null,\n updatedAt: prev.updatedAt,\n});\n\n/** Transición a éxito: guarda datos, limpia error y sella `updatedAt`. */\nexport const asyncRequestSucceeded = <T>(data: T): AsyncData<T> => ({\n status: 'succeeded',\n data,\n error: null,\n updatedAt: Date.now(),\n});\n\n/**\n * Transición a error: guarda el mensaje y PRESERVA los datos previos\n * para que la UI pueda seguir mostrándolos (error con datos).\n */\nexport const asyncRequestFailed = <T>(\n error: string,\n prev: AsyncData<T>\n): AsyncData<T> => ({\n status: 'rejected',\n data: prev.data,\n error,\n updatedAt: prev.updatedAt,\n});\n\n/**\n * Deriva los flags de UI a partir del estado crudo. Es la ÚNICA fuente de\n * verdad para interpretar un estado asíncrono: la usan `useAsyncData`,\n * los selectores de Redux y `<AsyncContent>`.\n *\n * Uso con un slice existente (sin reescribirlo):\n *\n * ```ts\n * const selectChannelsAsyncState = createSelector(\n * selectChannelsState,\n * (state) =>\n * deriveAsyncState({\n * status: state.status.fetch,\n * data: state.channels,\n * error: state.error,\n * })\n * );\n * ```\n */\nexport const deriveAsyncState = <T>(input: {\n status: AsyncStatus;\n data: T | undefined;\n error?: string | null;\n updatedAt?: number | null;\n isEmpty?: IsEmptyFn<T>;\n}): AsyncState<T> => {\n const { status, data, error = null, updatedAt = null } = input;\n const isEmptyFn: IsEmptyFn<T> = input.isEmpty ?? defaultIsEmpty;\n\n const hasData = data !== undefined && !isEmptyFn(data);\n const isLoading = status === 'loading';\n\n return {\n status,\n data,\n error,\n updatedAt,\n hasData,\n isInitialLoading: isLoading && !hasData,\n isRevalidating: isLoading && hasData,\n isEmpty: status === 'succeeded' && !hasData,\n };\n};\n\n/** true si el dato tiene más de `staleTime` ms (o nunca se cargó). */\nexport const isStale = (\n updatedAt: number | null,\n staleTime: number,\n now: number = Date.now()\n): boolean => updatedAt === null || now - updatedAt > staleTime;\n","/**\n * Extrae un mensaje legible de cualquier error (axios, Error, string...).\n *\n * Orden de preferencia:\n * 1. `error.response.data.message` / `error.response.data.error` (API Trii).\n * 2. `error.message` (Error estándar, p.ej. \"Network Error\" de axios).\n * 3. El string recibido tal cual.\n * 4. `fallback`.\n *\n * No traduce: la traducción de mensajes genéricos ocurre en la UI\n * (`<ErrorState>`); esto preserva el detalle técnico o del backend.\n *\n * Tipa axios por duck-typing a propósito: el módulo no importa axios, así que\n * sirve igual con fetch o con cualquier cliente HTTP.\n */\nexport const getErrorMessage = (\n error: unknown,\n fallback = 'Unknown error'\n): string => {\n if (typeof error === 'string' && error.length > 0) return error;\n\n if (error !== null && typeof error === 'object') {\n const candidate = error as {\n response?: { data?: { message?: unknown; error?: unknown } };\n message?: unknown;\n };\n\n const apiMessage =\n candidate.response?.data?.message ?? candidate.response?.data?.error;\n if (typeof apiMessage === 'string' && apiMessage.length > 0) {\n return apiMessage;\n }\n\n if (typeof candidate.message === 'string' && candidate.message.length > 0) {\n return candidate.message;\n }\n }\n\n return fallback;\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { UseAsyncDataResult } from './types';\nimport {\n AsyncData,\n IsEmptyFn,\n asyncIdle,\n asyncRequestFailed,\n asyncRequestStarted,\n asyncRequestSucceeded,\n deriveAsyncState,\n} from './asyncState';\nimport { getErrorMessage } from './getErrorMessage';\n\nconst sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\n/**\n * Ciclo de vida completo de un dato remoto LOCAL a un panel (sin Redux).\n *\n * Comportamiento:\n * - Fetch al montar (configurable con `fetchOnMount`) y cuando cambian `deps`.\n * - Carga inicial sin datos → `isInitialLoading` (bloqueante).\n * - Refetch con datos → `isRevalidating`: los datos siguen visibles.\n * - Error con datos previos → `status: 'rejected'` + datos preservados.\n * - Error sin datos → `error` para mostrar un estado de error con `retry`.\n * - `refetch()`/`retry()` re-ejecutan el fetcher; nunca bloquean si hay datos.\n * - Cancelación automática (AbortSignal) y guarda de carrera: si se dispara\n * una request nueva, las respuestas viejas se descartan.\n * - `autoRetry` opcional con backoff lineal antes de mostrar el error.\n *\n * Usar Redux en su lugar cuando el dato se comparte entre varios paneles o\n * se actualiza por socket (ver docs/ASYNC_STATE.md §¿Redux o hook?).\n *\n * @example\n * const state = useAsyncData(\n * (signal) => reportsService.getReports(url, { signal }),\n * { deps: [url] }\n * );\n * return (\n * <AsyncContent state={state} onRetry={state.retry}>\n * {(reports) => <ReportList reports={reports} />}\n * </AsyncContent>\n * );\n */\nexport function useAsyncData<T>(\n fetcher: (signal: AbortSignal) => Promise<T>,\n options: {\n /** Regla de \"vacío\" del dato (default: null/undefined o array vacío). */\n isEmpty?: IsEmptyFn<T>;\n /** Disparar el fetch al montar y al cambiar `deps` (default: true). */\n fetchOnMount?: boolean;\n /**\n * Preservar datos previos durante refetches (default: true).\n * Poner en false solo si los datos viejos serían inválidos/engañosos.\n */\n keepPreviousData?: boolean;\n /**\n * Reintentos automáticos antes de marcar error (default: sin reintentos;\n * el usuario decide con el botón de retry).\n */\n autoRetry?: { attempts: number; delayMs?: number };\n /** Dependencias que re-disparan el fetch (p.ej. un id o filtro). */\n deps?: ReadonlyArray<unknown>;\n } = {}\n): UseAsyncDataResult<T> {\n const {\n isEmpty,\n fetchOnMount = true,\n keepPreviousData = true,\n autoRetry,\n deps = [],\n } = options;\n\n const [state, setState] = useState<AsyncData<T>>(() => asyncIdle<T>());\n\n // Refs: la última versión del fetcher y el control de carrera/cancelación.\n // Guardar el fetcher en ref evita re-ejecutar el efecto cuando el caller\n // pasa una arrow function inline (caso común).\n const fetcherRef = useRef(fetcher);\n fetcherRef.current = fetcher;\n const requestIdRef = useRef(0);\n const abortRef = useRef<AbortController | null>(null);\n\n const autoRetryAttempts = autoRetry?.attempts ?? 0;\n const autoRetryDelayMs = autoRetry?.delayMs ?? 500;\n\n const execute = useCallback(async (): Promise<void> => {\n const requestId = ++requestIdRef.current;\n abortRef.current?.abort();\n const controller = new AbortController();\n abortRef.current = controller;\n\n setState((prev) =>\n asyncRequestStarted(prev, { clearData: !keepPreviousData })\n );\n\n const maxAttempts = Math.max(0, autoRetryAttempts);\n\n for (let attempt = 0; ; attempt += 1) {\n try {\n const data = await fetcherRef.current(controller.signal);\n // Respuesta vieja (hubo otra request después): se descarta.\n if (requestId !== requestIdRef.current || controller.signal.aborted) {\n return;\n }\n setState(asyncRequestSucceeded(data));\n return;\n } catch (error) {\n // Cancelada por desmontaje o por una request nueva: no es un error.\n if (requestId !== requestIdRef.current || controller.signal.aborted) {\n return;\n }\n if (attempt < maxAttempts) {\n // Backoff lineal: 1x, 2x, 3x... el delay base.\n await sleep(autoRetryDelayMs * (attempt + 1));\n if (requestId !== requestIdRef.current || controller.signal.aborted) {\n return;\n }\n continue;\n }\n setState((prev) => asyncRequestFailed(getErrorMessage(error), prev));\n return;\n }\n }\n }, [keepPreviousData, autoRetryAttempts, autoRetryDelayMs]);\n\n useEffect(() => {\n if (fetchOnMount) {\n // Fire-and-forget: el estado se actualiza vía setState dentro de execute.\n execute();\n }\n return () => {\n // Desmontaje o cambio de deps: cancela e invalida la request en curso.\n requestIdRef.current += 1;\n abortRef.current?.abort();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fetchOnMount, execute, ...deps]);\n\n const reset = useCallback((): void => {\n requestIdRef.current += 1;\n abortRef.current?.abort();\n setState(asyncIdle<T>());\n }, []);\n\n const derived = deriveAsyncState({ ...state, isEmpty });\n\n return { ...derived, refetch: execute, retry: execute, reset };\n}\n"],"names":["defaultIsEmpty","data","asyncIdle","asyncRequestStarted","prev","options","asyncRequestSucceeded","asyncRequestFailed","error","deriveAsyncState","input","status","updatedAt","isEmptyFn","hasData","isLoading","isStale","staleTime","now","getErrorMessage","fallback","candidate","apiMessage","sleep","ms","resolve","useAsyncData","fetcher","isEmpty","fetchOnMount","keepPreviousData","autoRetry","deps","state","setState","useState","fetcherRef","useRef","requestIdRef","abortRef","autoRetryAttempts","autoRetryDelayMs","execute","useCallback","requestId","controller","maxAttempts","attempt","useEffect","reset"],"mappings":"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"}
1
+ {"version":3,"file":"async-state.js","sources":["../../src/asyncState/asyncState.ts","../../src/asyncState/getErrorMessage.ts","../../src/asyncState/useAsyncData.ts"],"sourcesContent":["/**\r\n * Modelo canónico de estado asíncrono (loading / error / caché remota).\r\n *\r\n * Unifica cómo los paneles representan el ciclo de vida de un dato remoto:\r\n *\r\n * - `idle`/`loading` sin datos → carga inicial (bloqueante: skeleton/spinner).\r\n * - `loading` con datos → revalidación NO bloqueante (`isRevalidating`).\r\n * - `rejected` con datos → error manteniendo datos previos + retry.\r\n * - `rejected` sin datos → error bloqueante con retry.\r\n * - `succeeded` sin datos → estado realmente vacío (`isEmpty`).\r\n *\r\n * Los literales de `AsyncStatus` coinciden con el `RequestStatus` que usan los\r\n * slices de los frontends Trii, para que sean compatibles sin conversión.\r\n *\r\n * Módulo puro: sin React, sin MUI, sin Redux, sin dominio. Se publica también\r\n * por el subpath `@trii/components/async-state` para que un slice pueda\r\n * consumirlo sin arrastrar la UI del paquete.\r\n *\r\n * Guía de uso: docs/ASYNC_STATE.md\r\n */\r\n\r\nexport type AsyncStatus = 'idle' | 'loading' | 'succeeded' | 'rejected';\r\n\r\n/**\r\n * Estado \"crudo\" persistible: es lo que guarda un slice de Redux o el estado\r\n * interno de `useAsyncData`. Los flags derivados se calculan con\r\n * `deriveAsyncState` (nunca se almacenan, para evitar inconsistencias).\r\n */\r\nexport interface AsyncData<T> {\r\n status: AsyncStatus;\r\n /** Últimos datos válidos. Se preservan durante refetches y errores. */\r\n data: T | undefined;\r\n /** Mensaje del último error (null si la última operación fue exitosa). */\r\n error: string | null;\r\n /** Timestamp (Date.now()) del último fetch exitoso. Base para staleness. */\r\n updatedAt: number | null;\r\n}\r\n\r\n/** Estado derivado listo para consumir desde la UI. */\r\nexport interface AsyncState<T> extends AsyncData<T> {\r\n /** true si hay datos utilizables para mostrar (no undefined ni \"vacíos\"). */\r\n hasData: boolean;\r\n /** Carga inicial: está cargando y NO hay datos que mostrar → bloqueante. */\r\n isInitialLoading: boolean;\r\n /** Revalidación: está cargando y SÍ hay datos → no bloquear la UI. */\r\n isRevalidating: boolean;\r\n /** Vacío real: la última carga fue exitosa y no hay datos que mostrar. */\r\n isEmpty: boolean;\r\n}\r\n\r\n/** Decide si un dato cuenta como \"vacío\" (p.ej. lista sin elementos). */\r\nexport type IsEmptyFn<T> = (data: T) => boolean;\r\n\r\n/**\r\n * Vacío por defecto: `null`/`undefined` y arrays sin elementos.\r\n * Cada feature puede aportar su propia regla (p.ej. \"objeto sin campos\").\r\n */\r\nexport const defaultIsEmpty = <T>(data: T): boolean => {\r\n if (data === null || data === undefined) return true;\r\n if (Array.isArray(data)) return data.length === 0;\r\n return false;\r\n};\r\n\r\n/** Estado inicial: nunca se hizo un fetch. */\r\nexport const asyncIdle = <T>(): AsyncData<T> => ({\r\n status: 'idle',\r\n data: undefined,\r\n error: null,\r\n updatedAt: null,\r\n});\r\n\r\n/**\r\n * Transición a \"request en curso\".\r\n * Por defecto preserva los datos previos (refetch no bloqueante).\r\n * Pasar `clearData: true` solo cuando los datos viejos dejarían de ser\r\n * válidos para la nueva request (p.ej. cambio de contacto seleccionado).\r\n */\r\nexport const asyncRequestStarted = <T>(\r\n prev: AsyncData<T>,\r\n options?: { clearData?: boolean }\r\n): AsyncData<T> => ({\r\n status: 'loading',\r\n data: options?.clearData ? undefined : prev.data,\r\n error: null,\r\n updatedAt: prev.updatedAt,\r\n});\r\n\r\n/** Transición a éxito: guarda datos, limpia error y sella `updatedAt`. */\r\nexport const asyncRequestSucceeded = <T>(data: T): AsyncData<T> => ({\r\n status: 'succeeded',\r\n data,\r\n error: null,\r\n updatedAt: Date.now(),\r\n});\r\n\r\n/**\r\n * Transición a error: guarda el mensaje y PRESERVA los datos previos\r\n * para que la UI pueda seguir mostrándolos (error con datos).\r\n */\r\nexport const asyncRequestFailed = <T>(\r\n error: string,\r\n prev: AsyncData<T>\r\n): AsyncData<T> => ({\r\n status: 'rejected',\r\n data: prev.data,\r\n error,\r\n updatedAt: prev.updatedAt,\r\n});\r\n\r\n/**\r\n * Deriva los flags de UI a partir del estado crudo. Es la ÚNICA fuente de\r\n * verdad para interpretar un estado asíncrono: la usan `useAsyncData`,\r\n * los selectores de Redux y `<AsyncContent>`.\r\n *\r\n * Uso con un slice existente (sin reescribirlo):\r\n *\r\n * ```ts\r\n * const selectChannelsAsyncState = createSelector(\r\n * selectChannelsState,\r\n * (state) =>\r\n * deriveAsyncState({\r\n * status: state.status.fetch,\r\n * data: state.channels,\r\n * error: state.error,\r\n * })\r\n * );\r\n * ```\r\n */\r\nexport const deriveAsyncState = <T>(input: {\r\n status: AsyncStatus;\r\n data: T | undefined;\r\n error?: string | null;\r\n updatedAt?: number | null;\r\n isEmpty?: IsEmptyFn<T>;\r\n}): AsyncState<T> => {\r\n const { status, data, error = null, updatedAt = null } = input;\r\n const isEmptyFn: IsEmptyFn<T> = input.isEmpty ?? defaultIsEmpty;\r\n\r\n const hasData = data !== undefined && !isEmptyFn(data);\r\n const isLoading = status === 'loading';\r\n\r\n return {\r\n status,\r\n data,\r\n error,\r\n updatedAt,\r\n hasData,\r\n isInitialLoading: isLoading && !hasData,\r\n isRevalidating: isLoading && hasData,\r\n isEmpty: status === 'succeeded' && !hasData,\r\n };\r\n};\r\n\r\n/** true si el dato tiene más de `staleTime` ms (o nunca se cargó). */\r\nexport const isStale = (\r\n updatedAt: number | null,\r\n staleTime: number,\r\n now: number = Date.now()\r\n): boolean => updatedAt === null || now - updatedAt > staleTime;\r\n","/**\r\n * Extrae un mensaje legible de cualquier error (axios, Error, string...).\r\n *\r\n * Orden de preferencia:\r\n * 1. `error.response.data.message` / `error.response.data.error` (API Trii).\r\n * 2. `error.message` (Error estándar, p.ej. \"Network Error\" de axios).\r\n * 3. El string recibido tal cual.\r\n * 4. `fallback`.\r\n *\r\n * No traduce: la traducción de mensajes genéricos ocurre en la UI\r\n * (`<ErrorState>`); esto preserva el detalle técnico o del backend.\r\n *\r\n * Tipa axios por duck-typing a propósito: el módulo no importa axios, así que\r\n * sirve igual con fetch o con cualquier cliente HTTP.\r\n */\r\nexport const getErrorMessage = (\r\n error: unknown,\r\n fallback = 'Unknown error'\r\n): string => {\r\n if (typeof error === 'string' && error.length > 0) return error;\r\n\r\n if (error !== null && typeof error === 'object') {\r\n const candidate = error as {\r\n response?: { data?: { message?: unknown; error?: unknown } };\r\n message?: unknown;\r\n };\r\n\r\n const apiMessage =\r\n candidate.response?.data?.message ?? candidate.response?.data?.error;\r\n if (typeof apiMessage === 'string' && apiMessage.length > 0) {\r\n return apiMessage;\r\n }\r\n\r\n if (typeof candidate.message === 'string' && candidate.message.length > 0) {\r\n return candidate.message;\r\n }\r\n }\r\n\r\n return fallback;\r\n};\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { UseAsyncDataResult } from './types';\r\nimport {\r\n AsyncData,\r\n IsEmptyFn,\r\n asyncIdle,\r\n asyncRequestFailed,\r\n asyncRequestStarted,\r\n asyncRequestSucceeded,\r\n deriveAsyncState,\r\n} from './asyncState';\r\nimport { getErrorMessage } from './getErrorMessage';\r\n\r\nconst sleep = (ms: number): Promise<void> =>\r\n new Promise((resolve) => setTimeout(resolve, ms));\r\n\r\n/**\r\n * Ciclo de vida completo de un dato remoto LOCAL a un panel (sin Redux).\r\n *\r\n * Comportamiento:\r\n * - Fetch al montar (configurable con `fetchOnMount`) y cuando cambian `deps`.\r\n * - Carga inicial sin datos → `isInitialLoading` (bloqueante).\r\n * - Refetch con datos → `isRevalidating`: los datos siguen visibles.\r\n * - Error con datos previos → `status: 'rejected'` + datos preservados.\r\n * - Error sin datos → `error` para mostrar un estado de error con `retry`.\r\n * - `refetch()`/`retry()` re-ejecutan el fetcher; nunca bloquean si hay datos.\r\n * - Cancelación automática (AbortSignal) y guarda de carrera: si se dispara\r\n * una request nueva, las respuestas viejas se descartan.\r\n * - `autoRetry` opcional con backoff lineal antes de mostrar el error.\r\n *\r\n * Usar Redux en su lugar cuando el dato se comparte entre varios paneles o\r\n * se actualiza por socket (ver docs/ASYNC_STATE.md §¿Redux o hook?).\r\n *\r\n * @example\r\n * const state = useAsyncData(\r\n * (signal) => reportsService.getReports(url, { signal }),\r\n * { deps: [url] }\r\n * );\r\n * return (\r\n * <AsyncContent state={state} onRetry={state.retry}>\r\n * {(reports) => <ReportList reports={reports} />}\r\n * </AsyncContent>\r\n * );\r\n */\r\nexport function useAsyncData<T>(\r\n fetcher: (signal: AbortSignal) => Promise<T>,\r\n options: {\r\n /** Regla de \"vacío\" del dato (default: null/undefined o array vacío). */\r\n isEmpty?: IsEmptyFn<T>;\r\n /** Disparar el fetch al montar y al cambiar `deps` (default: true). */\r\n fetchOnMount?: boolean;\r\n /**\r\n * Preservar datos previos durante refetches (default: true).\r\n * Poner en false solo si los datos viejos serían inválidos/engañosos.\r\n */\r\n keepPreviousData?: boolean;\r\n /**\r\n * Reintentos automáticos antes de marcar error (default: sin reintentos;\r\n * el usuario decide con el botón de retry).\r\n */\r\n autoRetry?: { attempts: number; delayMs?: number };\r\n /** Dependencias que re-disparan el fetch (p.ej. un id o filtro). */\r\n deps?: ReadonlyArray<unknown>;\r\n } = {}\r\n): UseAsyncDataResult<T> {\r\n const {\r\n isEmpty,\r\n fetchOnMount = true,\r\n keepPreviousData = true,\r\n autoRetry,\r\n deps = [],\r\n } = options;\r\n\r\n const [state, setState] = useState<AsyncData<T>>(() => asyncIdle<T>());\r\n\r\n // Refs: la última versión del fetcher y el control de carrera/cancelación.\r\n // Guardar el fetcher en ref evita re-ejecutar el efecto cuando el caller\r\n // pasa una arrow function inline (caso común).\r\n const fetcherRef = useRef(fetcher);\r\n fetcherRef.current = fetcher;\r\n const requestIdRef = useRef(0);\r\n const abortRef = useRef<AbortController | null>(null);\r\n\r\n const autoRetryAttempts = autoRetry?.attempts ?? 0;\r\n const autoRetryDelayMs = autoRetry?.delayMs ?? 500;\r\n\r\n const execute = useCallback(async (): Promise<void> => {\r\n const requestId = ++requestIdRef.current;\r\n abortRef.current?.abort();\r\n const controller = new AbortController();\r\n abortRef.current = controller;\r\n\r\n setState((prev) =>\r\n asyncRequestStarted(prev, { clearData: !keepPreviousData })\r\n );\r\n\r\n const maxAttempts = Math.max(0, autoRetryAttempts);\r\n\r\n for (let attempt = 0; ; attempt += 1) {\r\n try {\r\n const data = await fetcherRef.current(controller.signal);\r\n // Respuesta vieja (hubo otra request después): se descarta.\r\n if (requestId !== requestIdRef.current || controller.signal.aborted) {\r\n return;\r\n }\r\n setState(asyncRequestSucceeded(data));\r\n return;\r\n } catch (error) {\r\n // Cancelada por desmontaje o por una request nueva: no es un error.\r\n if (requestId !== requestIdRef.current || controller.signal.aborted) {\r\n return;\r\n }\r\n if (attempt < maxAttempts) {\r\n // Backoff lineal: 1x, 2x, 3x... el delay base.\r\n await sleep(autoRetryDelayMs * (attempt + 1));\r\n if (requestId !== requestIdRef.current || controller.signal.aborted) {\r\n return;\r\n }\r\n continue;\r\n }\r\n setState((prev) => asyncRequestFailed(getErrorMessage(error), prev));\r\n return;\r\n }\r\n }\r\n }, [keepPreviousData, autoRetryAttempts, autoRetryDelayMs]);\r\n\r\n useEffect(() => {\r\n if (fetchOnMount) {\r\n // Fire-and-forget: el estado se actualiza vía setState dentro de execute.\r\n execute();\r\n }\r\n return () => {\r\n // Desmontaje o cambio de deps: cancela e invalida la request en curso.\r\n requestIdRef.current += 1;\r\n abortRef.current?.abort();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [fetchOnMount, execute, ...deps]);\r\n\r\n const reset = useCallback((): void => {\r\n requestIdRef.current += 1;\r\n abortRef.current?.abort();\r\n setState(asyncIdle<T>());\r\n }, []);\r\n\r\n const derived = deriveAsyncState({ ...state, isEmpty });\r\n\r\n return { ...derived, refetch: execute, retry: execute, reset };\r\n}\r\n"],"names":["defaultIsEmpty","data","asyncIdle","asyncRequestStarted","prev","options","asyncRequestSucceeded","asyncRequestFailed","error","deriveAsyncState","input","status","updatedAt","isEmptyFn","hasData","isLoading","isStale","staleTime","now","getErrorMessage","fallback","candidate","apiMessage","sleep","ms","resolve","useAsyncData","fetcher","isEmpty","fetchOnMount","keepPreviousData","autoRetry","deps","state","setState","useState","fetcherRef","useRef","requestIdRef","abortRef","autoRetryAttempts","autoRetryDelayMs","execute","useCallback","requestId","controller","maxAttempts","attempt","useEffect","reset"],"mappings":"6EAyDO,MAAMA,EAAqBC,GAC5BA,GAAS,KAAmC,GAC5C,MAAM,QAAQA,CAAI,EAAUA,EAAK,SAAW,EACzC,GAIIC,EAAY,KAAwB,CAC/C,OAAQ,OACR,KAAM,OACN,MAAO,KACP,UAAW,IACb,GAQaC,EAAsB,CACjCC,EACAC,KACkB,CAClB,OAAQ,UACR,KAAMA,GAAS,UAAY,OAAYD,EAAK,KAC5C,MAAO,KACP,UAAWA,EAAK,SAClB,GAGaE,EAA4BL,IAA2B,CAClE,OAAQ,YACR,KAAAA,EACA,MAAO,KACP,UAAW,KAAK,IAClB,CAAA,GAMaM,EAAqB,CAChCC,EACAJ,KACkB,CAClB,OAAQ,WACR,KAAMA,EAAK,KACX,MAAAI,EACA,UAAWJ,EAAK,SAClB,GAqBaK,EAAuBC,GAMf,CACnB,KAAM,CAAE,OAAAC,EAAQ,KAAAV,EAAM,MAAAO,EAAQ,KAAM,UAAAI,EAAY,IAAK,EAAIF,EACnDG,EAA0BH,EAAM,SAAWV,EAE3Cc,EAAUb,IAAS,QAAa,CAACY,EAAUZ,CAAI,EAC/Cc,EAAYJ,IAAW,UAE7B,MAAO,CACL,OAAAA,EACA,KAAAV,EACA,MAAAO,EACA,UAAAI,EACA,QAAAE,EACA,iBAAkBC,GAAa,CAACD,EAChC,eAAgBC,GAAaD,EAC7B,QAASH,IAAW,aAAe,CAACG,CACtC,CACF,EAGaE,EAAU,CACrBJ,EACAK,EACAC,EAAc,KAAK,IAAI,IACXN,IAAc,MAAQM,EAAMN,EAAYK,EC/IzCE,EAAkB,CAC7BX,EACAY,EAAW,kBACA,CACX,GAAI,OAAOZ,GAAU,UAAYA,EAAM,OAAS,EAAG,OAAOA,EAE1D,GAAIA,IAAU,MAAQ,OAAOA,GAAU,SAAU,CAC/C,MAAMa,EAAYb,EAKZc,EACJD,EAAU,UAAU,MAAM,SAAWA,EAAU,UAAU,MAAM,MACjE,GAAI,OAAOC,GAAe,UAAYA,EAAW,OAAS,EACxD,OAAOA,EAGT,GAAI,OAAOD,EAAU,SAAY,UAAYA,EAAU,QAAQ,OAAS,EACtE,OAAOA,EAAU,OAErB,CAEA,OAAOD,CACT,EC1BMG,EAASC,GACb,IAAI,QAASC,GAAY,WAAWA,EAASD,CAAE,CAAC,EA8BlC,SAAAE,EACdC,EACAtB,EAiBI,CAAC,EACkB,CACvB,KAAM,CACJ,QAAAuB,EACA,aAAAC,EAAe,GACf,iBAAAC,EAAmB,GACnB,UAAAC,EACA,KAAAC,EAAO,CACT,CAAA,EAAI3B,EAEE,CAAC4B,EAAOC,CAAQ,EAAIC,EAAuB,IAAMjC,EAAAA,CAAc,EAK/DkC,EAAaC,EAAOV,CAAO,EACjCS,EAAW,QAAUT,EACrB,MAAMW,EAAeD,EAAO,CAAC,EACvBE,EAAWF,EAA+B,IAAI,EAE9CG,EAAoBT,GAAW,UAAY,EAC3CU,EAAmBV,GAAW,SAAW,IAEzCW,EAAUC,EAAY,SAA2B,CACrD,MAAMC,EAAY,EAAEN,EAAa,QACjCC,EAAS,SAAS,MAClB,EAAA,MAAMM,EAAa,IAAI,gBACvBN,EAAS,QAAUM,EAEnBX,EAAU9B,GACRD,EAAoBC,EAAM,CAAE,UAAW,CAAC0B,CAAiB,CAAC,CAC5D,EAEA,MAAMgB,EAAc,KAAK,IAAI,EAAGN,CAAiB,EAEjD,QAASO,EAAU,GAAKA,GAAW,EACjC,GAAI,CACF,MAAM9C,EAAO,MAAMmC,EAAW,QAAQS,EAAW,MAAM,EAEvD,GAAID,IAAcN,EAAa,SAAWO,EAAW,OAAO,QAC1D,OAEFX,EAAS5B,EAAsBL,CAAI,CAAC,EACpC,MACF,OAASO,EAAO,CAEd,GAAIoC,IAAcN,EAAa,SAAWO,EAAW,OAAO,QAC1D,OAEF,GAAIE,EAAUD,EAAa,CAGzB,GADA,MAAMvB,EAAMkB,GAAoBM,EAAU,EAAE,EACxCH,IAAcN,EAAa,SAAWO,EAAW,OAAO,QAC1D,OAEF,QACF,CACAX,EAAU9B,GAASG,EAAmBY,EAAgBX,CAAK,EAAGJ,CAAI,CAAC,EACnE,MACF,CAEJ,EAAG,CAAC0B,EAAkBU,EAAmBC,CAAgB,CAAC,EAE1DO,EAAU,KACJnB,GAEFa,EAAAA,EAEK,IAAM,CAEXJ,EAAa,SAAW,EACxBC,EAAS,SAAS,MACpB,CAAA,GAEC,CAACV,EAAca,EAAS,GAAGV,CAAI,CAAC,EAEnC,MAAMiB,EAAQN,EAAY,IAAY,CACpCL,EAAa,SAAW,EACxBC,EAAS,SAAS,MAAM,EACxBL,EAAShC,EAAc,CAAA,CACzB,EAAG,CAAA,CAAE,EAIL,MAAO,CAAE,GAFOO,EAAiB,CAAE,GAAGwB,EAAO,QAAAL,CAAQ,CAAC,EAEjC,QAASc,EAAS,MAAOA,EAAS,MAAAO,CAAM,CAC/D"}