@atipicus/mrs-ui 1.0.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +63 -3
- package/README.md +15 -3
- package/dist/Table-BWJUQgDY.js.map +1 -1
- package/dist/Table-BrEk_oGh.mjs.map +1 -1
- package/dist/components/atoms/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/atoms/Avatar/Avatar.types.d.ts +1 -1
- package/dist/components/atoms/Avatar/Avatar.types.d.ts.map +1 -1
- package/dist/components/atoms/Select/Select.d.ts.map +1 -1
- package/dist/components/molecules/Sidenav/Sidenav.d.ts.map +1 -1
- package/dist/components/molecules/index.d.ts +0 -1
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/index-9xINu3Y6.mjs +11 -0
- package/dist/index-9xINu3Y6.mjs.map +1 -0
- package/dist/{index-C4a5SkEO.js → index-B3fSNHE_.js} +1 -2
- package/dist/index-B3fSNHE_.js.map +1 -0
- package/dist/{index-DgpKiomn.js → index-B6HAPXbT.js} +1 -2
- package/dist/index-B6HAPXbT.js.map +1 -0
- package/dist/{index-DQLiGYRv.js → index-CrukcVHf.js} +1 -2
- package/dist/index-CrukcVHf.js.map +1 -0
- package/dist/index-CzgRXVhq.mjs +5 -0
- package/dist/index-CzgRXVhq.mjs.map +1 -0
- package/dist/{index-Bp_39Kmf.js → index-D19iZMBT.js} +1 -2
- package/dist/index-D19iZMBT.js.map +1 -0
- package/dist/{index-xewrdUFS.js → index-D2dZ1ELl.js} +1 -2
- package/dist/index-D2dZ1ELl.js.map +1 -0
- package/dist/index-DpuDQuvl.mjs +5 -0
- package/dist/index-DpuDQuvl.mjs.map +1 -0
- package/dist/index-DzuUedva.mjs +5 -0
- package/dist/index-DzuUedva.mjs.map +1 -0
- package/dist/{index-C4N6hqG7.mjs → index-MEnqUL_H.mjs} +8 -5
- package/dist/index-MEnqUL_H.mjs.map +1 -0
- package/dist/{index-DrHcCXwi.js → index-ZqM4dIOj.js} +1 -2
- package/dist/index-ZqM4dIOj.js.map +1 -0
- package/dist/index-mOLOagan.mjs +5 -0
- package/dist/index-mOLOagan.mjs.map +1 -0
- package/dist/index.js +394 -151
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +396 -153
- package/dist/index.mjs.map +1 -1
- package/dist/lazy.d.ts +1 -41
- package/dist/lazy.d.ts.map +1 -1
- package/dist/lazy.js +16 -46
- package/dist/lazy.js.map +1 -1
- package/dist/lazy.mjs +17 -47
- package/dist/lazy.mjs.map +1 -1
- package/dist/theme/styleCompositions.d.ts +281 -0
- package/dist/theme/styleCompositions.d.ts.map +1 -0
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/tokens-import.d.ts +164 -0
- package/dist/theme/tokens-import.d.ts.map +1 -1
- package/dist/theme/tokens.d.ts +292 -0
- package/dist/theme/tokens.d.ts.map +1 -1
- package/dist/theme/types.d.ts +146 -0
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme-editor/ThemeEditorApp.d.ts +14 -0
- package/dist/theme-editor/ThemeEditorApp.d.ts.map +1 -0
- package/dist/theme-editor/components/ColorEditor.d.ts +10 -0
- package/dist/theme-editor/components/ColorEditor.d.ts.map +1 -0
- package/dist/theme-editor/components/ComponentPreview.d.ts +8 -0
- package/dist/theme-editor/components/ComponentPreview.d.ts.map +1 -0
- package/dist/theme-editor/components/SaveDialog.d.ts +13 -0
- package/dist/theme-editor/components/SaveDialog.d.ts.map +1 -0
- package/dist/theme-editor/components/SpacingEditor.d.ts +11 -0
- package/dist/theme-editor/components/SpacingEditor.d.ts.map +1 -0
- package/dist/theme-editor/components/SyncDialog.d.ts +12 -0
- package/dist/theme-editor/components/SyncDialog.d.ts.map +1 -0
- package/dist/theme-editor/components/TypographyEditor.d.ts +10 -0
- package/dist/theme-editor/components/TypographyEditor.d.ts.map +1 -0
- package/dist/theme-editor/components/UndoButton.d.ts +9 -0
- package/dist/theme-editor/components/UndoButton.d.ts.map +1 -0
- package/dist/theme-editor/hooks/useFileSystem.d.ts +18 -0
- package/dist/theme-editor/hooks/useFileSystem.d.ts.map +1 -0
- package/dist/theme-editor/hooks/useGitIntegration.d.ts +41 -0
- package/dist/theme-editor/hooks/useGitIntegration.d.ts.map +1 -0
- package/dist/theme-editor/hooks/useThemeParser.d.ts +65 -0
- package/dist/theme-editor/hooks/useThemeParser.d.ts.map +1 -0
- package/dist/theme-editor/hooks/useThemeSave.d.ts +21 -0
- package/dist/theme-editor/hooks/useThemeSave.d.ts.map +1 -0
- package/dist/theme-editor/hooks/useThemeSync.d.ts +20 -0
- package/dist/theme-editor/hooks/useThemeSync.d.ts.map +1 -0
- package/dist/theme-editor/index.d.ts +18 -0
- package/dist/theme-editor/index.d.ts.map +1 -0
- package/package.json +35 -31
- package/README.npm.md +0 -132
- package/dist/Timeline-BPdic0I4.mjs +0 -59
- package/dist/Timeline-BPdic0I4.mjs.map +0 -1
- package/dist/Timeline-BzDR_6ve.js +0 -58
- package/dist/Timeline-BzDR_6ve.js.map +0 -1
- package/dist/components/molecules/Timeline/Timeline.d.ts +0 -50
- package/dist/components/molecules/Timeline/Timeline.d.ts.map +0 -1
- package/dist/components/molecules/Timeline/Timeline.types.d.ts +0 -75
- package/dist/components/molecules/Timeline/Timeline.types.d.ts.map +0 -1
- package/dist/components/molecules/Timeline/index.d.ts +0 -6
- package/dist/components/molecules/Timeline/index.d.ts.map +0 -1
- package/dist/index--v2dNPpd.js +0 -11
- package/dist/index--v2dNPpd.js.map +0 -1
- package/dist/index-B4_KKxHQ.mjs +0 -6
- package/dist/index-B4_KKxHQ.mjs.map +0 -1
- package/dist/index-Bp_39Kmf.js.map +0 -1
- package/dist/index-C4N6hqG7.mjs.map +0 -1
- package/dist/index-C4a5SkEO.js.map +0 -1
- package/dist/index-CBDmTLHS.mjs +0 -11
- package/dist/index-CBDmTLHS.mjs.map +0 -1
- package/dist/index-CLLVDdFI.mjs +0 -12
- package/dist/index-CLLVDdFI.mjs.map +0 -1
- package/dist/index-CxB9Lb7L.mjs +0 -6
- package/dist/index-CxB9Lb7L.mjs.map +0 -1
- package/dist/index-DGbzI3ul.mjs +0 -6
- package/dist/index-DGbzI3ul.mjs.map +0 -1
- package/dist/index-DQLiGYRv.js.map +0 -1
- package/dist/index-DgpKiomn.js.map +0 -1
- package/dist/index-DrHcCXwi.js.map +0 -1
- package/dist/index-xewrdUFS.js.map +0 -1
- package/dist/index-zqX2ktfd.mjs +0 -6
- package/dist/index-zqX2ktfd.mjs.map +0 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/tokens/generated/ts/tokens.js","../src/theme/tokens-import.ts","../src/theme/theme.ts","../src/theme/tokens.ts","../src/components/atoms/Box/Box.tsx","../src/components/atoms/Stack/Stack.tsx","../src/components/atoms/Avatar/Avatar.tsx","../src/components/atoms/Badge/Badge.tsx","../src/components/atoms/Typography/Typography.tsx","../src/components/atoms/AccountStack/AccountStack.tsx","../src/types/theme-helpers.ts","../src/components/atoms/Button/Button.tsx","../src/components/atoms/Checkbox/Checkbox.tsx","../src/components/atoms/Chip/Chip.tsx","../src/components/atoms/CircularProgress/CircularProgress.tsx","../src/components/atoms/Container/Container.tsx","../src/components/atoms/Divider/Divider.tsx","../src/components/atoms/FormControlLabel/FormControlLabel.tsx","../src/components/atoms/FormGroup/FormGroup.tsx","../src/components/atoms/Grid/Grid.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/atoms/IconButton/IconButton.tsx","../src/components/atoms/LinearProgress/LinearProgress.tsx","../src/components/atoms/Link/Link.tsx","../src/components/atoms/MaterialSymbol/MaterialSymbol.tsx","../src/components/atoms/MenuItem/MenuItem.tsx","../src/components/atoms/Paper/Paper.tsx","../src/components/atoms/Radio/Radio.tsx","../src/components/atoms/RadioGroup/RadioGroup.tsx","../src/components/atoms/Select/Select.tsx","../src/components/atoms/Skeleton/Skeleton.tsx","../src/components/atoms/Slider/Slider.tsx","../src/components/atoms/Switch/Switch.tsx","../src/components/atoms/TextField/TextField.tsx","../src/components/atoms/Toolbar/Toolbar.tsx","../src/components/atoms/Tooltip/Tooltip.tsx","../src/components/molecules/Accordion/Accordion.tsx","../src/components/molecules/Accordion/AccordionSummary.tsx","../src/components/molecules/Accordion/AccordionDetails.tsx","../src/components/molecules/Accordion/AccordionActions.tsx","../src/components/molecules/Alert/Alert.tsx","../src/components/molecules/AppBar/AppBar.tsx","../src/components/molecules/Autocomplete/Autocomplete.tsx","../src/components/molecules/BottomNavigation/BottomNavigation.tsx","../src/components/molecules/BottomNavigation/BottomNavigationAction.tsx","../src/components/molecules/ButtonGroup/ButtonGroup.tsx","../src/components/molecules/Card/Card.tsx","../src/components/molecules/Card/CardActionArea.tsx","../src/components/molecules/Card/CardActions.tsx","../src/components/molecules/Card/CardContent.tsx","../src/components/molecules/Card/CardHeader.tsx","../src/components/molecules/Card/CardMedia.tsx","../src/components/molecules/ExpandableNavItem/ExpandableNavItem.tsx","../src/components/molecules/DrawerNavigation/DrawerNavigation.tsx","../src/components/molecules/List/List.tsx","../src/components/molecules/ListItem/ListItem.tsx","../src/components/molecules/Menu/Menu.tsx","../src/components/molecules/Pagination/Pagination.tsx","../src/components/molecules/Rating/Rating.tsx","../src/components/molecules/Sidenav/Sidenav.tsx","../src/components/molecules/Sidenav/Sidenav.types.ts","../src/components/molecules/Snackbar/Snackbar.tsx","../src/components/molecules/SpeedDial/SpeedDial.tsx","../src/components/molecules/SpeedDial/SpeedDialAction.tsx","../src/components/molecules/SpeedDial/SpeedDialIcon.tsx","../src/components/molecules/Stepper/Stepper.tsx","../src/components/molecules/Tabs/Tabs.tsx","../src/components/providers/LocalizationProvider.tsx","../src/hooks/animations/useRipple.ts","../src/hooks/animations/usePulse.ts","../src/hooks/animations/useShake.ts","../src/hooks/animations/useBounce.ts","../src/hooks/animations/useHoverScale.ts","../src/components/effects/RippleButton/RippleButton.tsx","../src/components/effects/AnimatedBadge/AnimatedBadge.tsx","../src/components/effects/LoadingDots/LoadingDots.tsx"],"sourcesContent":["/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport const ComponentAlertLightBorderRadius = \"8px\";\nexport const ComponentAlertLightErrorFilledBackground = \"#ab1a1a\";\nexport const ComponentAlertLightErrorFilledForeground = \"#ffffff\";\nexport const ComponentAlertLightErrorOutlinedBackground = \"#fdeded\";\nexport const ComponentAlertLightErrorOutlinedForeground = \"#5f2120\";\nexport const ComponentAlertLightErrorOutlinedBorder = \"#ab1a1a\";\nexport const ComponentAlertLightErrorStandardBackground = \"#fdeded\";\nexport const ComponentAlertLightErrorStandardForeground = \"#5f2120\";\nexport const ComponentAlertLightWarningFilledBackground = \"#dfa00a\";\nexport const ComponentAlertLightWarningFilledForeground = \"#000000de\";\nexport const ComponentAlertLightWarningOutlinedBackground = \"#fff4e5\";\nexport const ComponentAlertLightWarningOutlinedForeground = \"#3e2410\";\nexport const ComponentAlertLightWarningOutlinedBorder = \"#dfa00a\";\nexport const ComponentAlertLightWarningStandardBackground = \"#fff4e5\";\nexport const ComponentAlertLightWarningStandardForeground = \"#3e2410\";\nexport const ComponentAlertLightInfoFilledBackground = \"#125c87\";\nexport const ComponentAlertLightInfoFilledForeground = \"#ffffff\";\nexport const ComponentAlertLightInfoOutlinedBackground = \"#e5f6fd\";\nexport const ComponentAlertLightInfoOutlinedForeground = \"#014361\";\nexport const ComponentAlertLightInfoOutlinedBorder = \"#125c87\";\nexport const ComponentAlertLightInfoStandardBackground = \"#e5f6fd\";\nexport const ComponentAlertLightInfoStandardForeground = \"#014361\";\nexport const ComponentAlertLightSuccessFilledBackground = \"#2e7d32\";\nexport const ComponentAlertLightSuccessFilledForeground = \"#ffffff\";\nexport const ComponentAlertLightSuccessOutlinedBackground = \"#edf7ed\";\nexport const ComponentAlertLightSuccessOutlinedForeground = \"#1e4620\";\nexport const ComponentAlertLightSuccessOutlinedBorder = \"#2e7d32\";\nexport const ComponentAlertLightSuccessStandardBackground = \"#edf7ed\";\nexport const ComponentAlertLightSuccessStandardForeground = \"#1e4620\";\nexport const ComponentAlertDarkBorderRadius = \"8px\";\nexport const ComponentAlertDarkErrorFilledBackground = \"#f48282\";\nexport const ComponentAlertDarkErrorFilledForeground = \"#000000\";\nexport const ComponentAlertDarkErrorOutlinedBackground = \"#f482821f\";\nexport const ComponentAlertDarkErrorOutlinedForeground = \"#f48282\";\nexport const ComponentAlertDarkErrorOutlinedBorder = \"#f48282\";\nexport const ComponentAlertDarkErrorStandardBackground = \"#f482821f\";\nexport const ComponentAlertDarkErrorStandardForeground = \"#f48282\";\nexport const ComponentAlertDarkWarningFilledBackground = \"#ffb74d\";\nexport const ComponentAlertDarkWarningFilledForeground = \"#000000\";\nexport const ComponentAlertDarkWarningOutlinedBackground = \"#ffb74d1f\";\nexport const ComponentAlertDarkWarningOutlinedForeground = \"#ffb74d\";\nexport const ComponentAlertDarkWarningOutlinedBorder = \"#ffb74d\";\nexport const ComponentAlertDarkWarningStandardBackground = \"#ffb74d1f\";\nexport const ComponentAlertDarkWarningStandardForeground = \"#ffb74d\";\nexport const ComponentAlertDarkInfoFilledBackground = \"#64b5f6\";\nexport const ComponentAlertDarkInfoFilledForeground = \"#000000\";\nexport const ComponentAlertDarkInfoOutlinedBackground = \"#64b5f61f\";\nexport const ComponentAlertDarkInfoOutlinedForeground = \"#64b5f6\";\nexport const ComponentAlertDarkInfoOutlinedBorder = \"#64b5f6\";\nexport const ComponentAlertDarkInfoStandardBackground = \"#64b5f61f\";\nexport const ComponentAlertDarkInfoStandardForeground = \"#64b5f6\";\nexport const ComponentAlertDarkSuccessFilledBackground = \"#81c784\";\nexport const ComponentAlertDarkSuccessFilledForeground = \"#000000\";\nexport const ComponentAlertDarkSuccessOutlinedBackground = \"#81c7841f\";\nexport const ComponentAlertDarkSuccessOutlinedForeground = \"#81c784\";\nexport const ComponentAlertDarkSuccessOutlinedBorder = \"#81c784\";\nexport const ComponentAlertDarkSuccessStandardBackground = \"#81c7841f\";\nexport const ComponentAlertDarkSuccessStandardForeground = \"#81c784\";\nexport const ComponentButtonTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Button default transition - color, background, border\nexport const ComponentButtonTransitionElevation =\n \"box-shadow 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Button elevation transition on hover\nexport const ComponentButtonBorderRadius = \"8px\";\nexport const ComponentButtonFontWeight = \"600\";\nexport const ComponentButtonSmallFontSize = \"0.8125rem\";\nexport const ComponentButtonSmallHeight = \"30px\";\nexport const ComponentButtonMediumFontSize = \"0.875rem\";\nexport const ComponentButtonMediumHeight = \"36px\";\nexport const ComponentButtonLargeFontSize = \"1rem\";\nexport const ComponentButtonLargeHeight = \"42px\";\nexport const ComponentDialogTransitionEnter =\n \"opacity 300ms cubic-bezier(0, 0, 0.2, 1), transform 300ms cubic-bezier(0, 0, 0.2, 1)\"; // Dialog enter transition - fade + scale\nexport const ComponentDialogTransitionExit =\n \"opacity 200ms cubic-bezier(0.4, 0, 1, 1), transform 200ms cubic-bezier(0.4, 0, 1, 1)\"; // Dialog exit transition\nexport const ComponentDialogLightBorderRadius = \"12px\";\nexport const ComponentDialogDarkBorderRadius = \"12px\";\nexport const ComponentDrawerTransitionEnter =\n \"transform 300ms cubic-bezier(0, 0, 0.2, 1)\"; // Drawer slide in transition\nexport const ComponentDrawerTransitionExit =\n \"transform 300ms cubic-bezier(0.4, 0, 1, 1)\"; // Drawer slide out transition\nexport const ComponentDrawerLightBackground = \"#ffffff\";\nexport const ComponentDrawerLightBorderRadius = \"0px\";\nexport const ComponentDrawerDarkBackground = \"#1e1e1e\";\nexport const ComponentDrawerDarkBorderRadius = \"0px\";\nexport const ComponentSnackbarTransitionEnter =\n \"transform 300ms cubic-bezier(0.2, 0, 0, 1), opacity 200ms cubic-bezier(0.4, 0, 1, 1)\"; // Snackbar enter transition - slide up + fade\nexport const ComponentSnackbarTransitionExit =\n \"opacity 200ms cubic-bezier(0, 0, 0.2, 1)\"; // Snackbar exit transition - fade out\nexport const ComponentSnackbarLightBackground = \"#424242\";\nexport const ComponentSnackbarLightForeground = \"#ffffff\";\nexport const ComponentSnackbarLightBorderRadius = \"4px\";\nexport const ComponentSnackbarDarkBackground = \"#eeeeee\";\nexport const ComponentSnackbarDarkForeground = \"#000000\";\nexport const ComponentSnackbarDarkBorderRadius = \"4px\";\nexport const ComponentTooltipTransitionEnter =\n \"opacity 100ms cubic-bezier(0.4, 0, 1, 1)\"; // Tooltip fade in\nexport const ComponentTooltipTransitionExit =\n \"opacity 100ms cubic-bezier(0, 0, 0.2, 1)\"; // Tooltip fade out\nexport const ComponentTooltipLightBackground = \"#000000de\";\nexport const ComponentTooltipLightForeground = \"#ffffff\";\nexport const ComponentTooltipLightBorderRadius = \"4px\";\nexport const ComponentTooltipDarkBackground = \"#616161\";\nexport const ComponentTooltipDarkForeground = \"#ffffff\";\nexport const ComponentTooltipDarkBorderRadius = \"4px\";\nexport const ComponentMenuTransitionEnter =\n \"opacity 200ms cubic-bezier(0.4, 0, 1, 1), transform 200ms cubic-bezier(0, 0, 0.2, 1)\"; // Menu enter transition - fade + scale\nexport const ComponentMenuTransitionExit =\n \"opacity 100ms cubic-bezier(0, 0, 0.2, 1)\"; // Menu exit transition - fade\nexport const ComponentMenuLightBackground = \"#ffffff\";\nexport const ComponentMenuLightBorderRadius = \"8px\";\nexport const ComponentMenuDarkBackground = \"#1e1e1e\";\nexport const ComponentMenuDarkBorderRadius = \"8px\";\nexport const ComponentCollapseTransitionEnter =\n \"height 300ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Collapse expand transition\nexport const ComponentCollapseTransitionExit =\n \"height 200ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Collapse contract transition\nexport const ComponentFabTransitionDefault =\n \"all 200ms cubic-bezier(0.4, 0, 0.2, 1)\"; // FAB default transition\nexport const ComponentFabTransitionElevation =\n \"box-shadow 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // FAB elevation on hover\nexport const ComponentFabBorderRadius = \"9999px\";\nexport const ComponentChipTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Chip hover/focus transition\nexport const ComponentChipDefaultCloseFill = \"#000000\";\nexport const ComponentChipDefaultEnabledBorder = \"#bdbdbd\";\nexport const ComponentChipBorderRadius = \"9999px\";\nexport const ComponentSwitchTransitionThumb =\n \"transform 100ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Switch thumb movement\nexport const ComponentSwitchTransitionTrack =\n \"background-color 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Switch track color change\nexport const ComponentCheckboxTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Checkbox state transition\nexport const ComponentRadioTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Radio button state transition\nexport const ComponentAccordionTransitionExpand =\n \"all 300ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Accordion panel expand\nexport const ComponentAccordionTransitionCollapse =\n \"all 200ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Accordion panel collapse\nexport const ComponentAccordionLightBackground = \"#ffffff\";\nexport const ComponentAccordionLightBorder = \"#0000001f\";\nexport const ComponentAccordionLightBorderRadius = \"8px\";\nexport const ComponentAccordionDarkBackground = \"#1e1e1e\";\nexport const ComponentAccordionDarkBorder = \"#ffffff1f\";\nexport const ComponentAccordionDarkBorderRadius = \"8px\";\nexport const ComponentSkeletonAnimationPulseDuration = \"1500ms\"; // Skeleton pulse animation duration\nexport const ComponentSkeletonAnimationPulseEasing =\n \"cubic-bezier(0.4, 0, 0.2, 1)\"; // Skeleton pulse easing\nexport const ComponentSkeletonAnimationWaveDuration = \"1600ms\"; // Skeleton wave animation duration\nexport const ComponentSkeletonAnimationWaveEasing = \"cubic-bezier(0, 0, 1, 1)\"; // Skeleton wave easing\nexport const ComponentSkeletonLightBackground = \"#0000001f\";\nexport const ComponentSkeletonLightBorderRadius = \"4px\";\nexport const ComponentSkeletonDarkBackground = \"#ffffff1f\";\nexport const ComponentSkeletonDarkBorderRadius = \"4px\";\nexport const ComponentProgressAnimationIndeterminateDuration = \"2000ms\"; // Progress indeterminate animation duration\nexport const ComponentProgressAnimationIndeterminateEasing =\n \"cubic-bezier(0, 0, 1, 1)\"; // Progress animation easing\nexport const ComponentProgressAnimationCircularDuration = \"1400ms\"; // Circular progress rotation duration\nexport const ComponentProgressAnimationCircularEasing =\n \"cubic-bezier(0, 0, 1, 1)\"; // Circular progress easing\nexport const ComponentProgressLightBackground = \"#00999929\";\nexport const ComponentProgressLightForeground = \"#00686f\";\nexport const ComponentProgressDarkBackground = \"#0099993d\";\nexport const ComponentProgressDarkForeground = \"#66b2b2\";\nexport const ComponentProgressThickness = \"4px\";\nexport const ComponentIconButtonBorderRadius = \"9999px\";\nexport const ComponentIconButtonSmallSize = \"34px\";\nexport const ComponentIconButtonSmallIconSize = \"20px\";\nexport const ComponentIconButtonMediumSize = \"40px\";\nexport const ComponentIconButtonMediumIconSize = \"24px\";\nexport const ComponentIconButtonLargeSize = \"48px\";\nexport const ComponentIconButtonLargeIconSize = \"28px\";\nexport const ComponentListLightBackground = \"#ffffff\";\nexport const ComponentListLightItemDefaultBackground = \"#00000000\";\nexport const ComponentListLightItemDefaultForeground = \"#000000de\";\nexport const ComponentListLightItemHoverBackground = \"#00000014\";\nexport const ComponentListLightItemSelectedBackground = \"#0000001f\";\nexport const ComponentListLightDivider = \"#0000001f\";\nexport const ComponentListLightBorderRadius = \"8px\";\nexport const ComponentListDarkBackground = \"#1e1e1e\";\nexport const ComponentListDarkItemDefaultBackground = \"#00000000\";\nexport const ComponentListDarkItemDefaultForeground = \"#ffffff\";\nexport const ComponentListDarkItemHoverBackground = \"#ffffff14\";\nexport const ComponentListDarkItemSelectedBackground = \"#ffffff29\";\nexport const ComponentListDarkDivider = \"#ffffff1f\";\nexport const ComponentListDarkBorderRadius = \"8px\";\nexport const ComponentAvatarBorderRadius = \"9999px\";\nexport const ComponentAvatarSmall = \"24px\";\nexport const ComponentAvatarMedium = \"40px\";\nexport const ComponentAvatarLarge = \"56px\";\nexport const ComponentBadgeBorderRadius = \"9999px\";\nexport const ComponentBadgeLightBackground = \"#ab1a1a\";\nexport const ComponentBadgeLightForeground = \"#ffffff\";\nexport const ComponentBadgeDarkBackground = \"#f48282\";\nexport const ComponentBadgeDarkForeground = \"#000000\";\nexport const ComponentInputLightStandardEnabledBorder = \"#0000006b\";\nexport const ComponentInputLightFilledEnabledFill = \"#0000000a\";\nexport const ComponentInputLightOutlinedEnabledBorder = \"#0000003b\";\nexport const ComponentInputLightBorderRadius = \"4px\";\nexport const ComponentInputDarkBorderRadius = \"8px\";\nexport const ComponentInputDarkStandardEnabledBorder = \"#ffffff6b\";\nexport const ComponentInputDarkFilledEnabledFill = \"#ffffff14\";\nexport const ComponentInputDarkOutlinedEnabledBorder = \"#ffffff3b\";\nexport const ComponentInputDarkValueFontSize = \"1rem\";\nexport const ComponentRatingActiveFill = \"#ffb400\";\nexport const ComponentRatingEnabledBorder = \"#0000003b\";\nexport const ComponentStepperLightConnector = \"#bdbdbd\";\nexport const ComponentStepperLightStepDefaultBackground = \"#e0e0e0\";\nexport const ComponentStepperLightStepDefaultForeground = \"#000000de\";\nexport const ComponentStepperLightStepActiveBackground = \"#00686f\";\nexport const ComponentStepperLightStepActiveForeground = \"#ffffff\";\nexport const ComponentStepperLightStepCompletedBackground = \"#00686f\";\nexport const ComponentStepperLightStepCompletedForeground = \"#ffffff\";\nexport const ComponentStepperDarkConnector = \"#616161\";\nexport const ComponentStepperDarkStepDefaultBackground = \"#616161\";\nexport const ComponentStepperDarkStepDefaultForeground = \"#ffffff\";\nexport const ComponentStepperDarkStepActiveBackground = \"#66b2b2\";\nexport const ComponentStepperDarkStepActiveForeground = \"#000000\";\nexport const ComponentStepperDarkStepCompletedBackground = \"#66b2b2\";\nexport const ComponentStepperDarkStepCompletedForeground = \"#000000\";\nexport const ComponentTabsLightIndicator = \"#00686f\";\nexport const ComponentTabsLightTabDefaultForeground = \"#00000099\";\nexport const ComponentTabsLightTabActiveForeground = \"#00686f\";\nexport const ComponentTabsLightTabHoverBackground = \"#00000014\";\nexport const ComponentTabsLightBorderRadius = \"0px\";\nexport const ComponentTabsDarkIndicator = \"#66b2b2\";\nexport const ComponentTabsDarkTabDefaultForeground = \"#ffffffb3\";\nexport const ComponentTabsDarkTabActiveForeground = \"#66b2b2\";\nexport const ComponentTabsDarkTabHoverBackground = \"#ffffff14\";\nexport const ComponentTabsDarkBorderRadius = \"0px\";\nexport const ComponentTimelineLightConnector = \"#bdbdbd\";\nexport const ComponentTimelineLightDotDefault = \"#bdbdbd\";\nexport const ComponentTimelineLightDotPrimary = \"#00686f\";\nexport const ComponentTimelineLightDotSecondary = \"#99cc00\";\nexport const ComponentTimelineDarkConnector = \"#616161\";\nexport const ComponentTimelineDarkDotDefault = \"#616161\";\nexport const ComponentTimelineDarkDotPrimary = \"#66b2b2\";\nexport const ComponentTimelineDarkDotSecondary = \"#b3e600\";\nexport const ComponentPaginationLightItemDefaultBackground = \"#00000000\";\nexport const ComponentPaginationLightItemDefaultForeground = \"#000000de\";\nexport const ComponentPaginationLightItemHoverBackground = \"#00000014\";\nexport const ComponentPaginationLightItemSelectedBackground = \"#00686f\";\nexport const ComponentPaginationLightItemSelectedForeground = \"#ffffff\";\nexport const ComponentPaginationLightBorderRadius = \"9999px\";\nexport const ComponentPaginationDarkItemDefaultBackground = \"#00000000\";\nexport const ComponentPaginationDarkItemDefaultForeground = \"#ffffff\";\nexport const ComponentPaginationDarkItemHoverBackground = \"#ffffff14\";\nexport const ComponentPaginationDarkItemSelectedBackground = \"#66b2b2\";\nexport const ComponentPaginationDarkItemSelectedForeground = \"#000000\";\nexport const ComponentPaginationDarkBorderRadius = \"9999px\";\nexport const ComponentSidenavWidthCollapsed = \"64px\";\nexport const ComponentSidenavWidthExpanded = \"240px\";\nexport const ComponentSidenavLightBackground = \"#ffffff\";\nexport const ComponentSidenavLightBorder = \"#0000001f\";\nexport const ComponentSidenavLightItemDefaultBackground = \"#00000000\";\nexport const ComponentSidenavLightItemDefaultForeground = \"#000000de\";\nexport const ComponentSidenavLightItemHoverBackground = \"#00000014\";\nexport const ComponentSidenavLightItemHoverForeground = \"#000000de\";\nexport const ComponentSidenavLightItemSelectedBackground = \"#0099991f\";\nexport const ComponentSidenavLightItemSelectedForeground = \"#00686f\";\nexport const ComponentSidenavLightBorderRadius = \"8px\";\nexport const ComponentSidenavDarkBackground = \"#1e1e1e\";\nexport const ComponentSidenavDarkBorder = \"#ffffff1f\";\nexport const ComponentSidenavDarkItemDefaultBackground = \"#00000000\";\nexport const ComponentSidenavDarkItemDefaultForeground = \"#ffffff\";\nexport const ComponentSidenavDarkItemHoverBackground = \"#ffffff14\";\nexport const ComponentSidenavDarkItemHoverForeground = \"#ffffff\";\nexport const ComponentSidenavDarkItemSelectedBackground = \"#0099993d\";\nexport const ComponentSidenavDarkItemSelectedForeground = \"#66b2b2\";\nexport const ComponentSidenavDarkBorderRadius = \"8px\";\nexport const ComponentAppbarHeight = \"64px\";\nexport const ComponentAppbarLightBackground = \"#00686f\";\nexport const ComponentAppbarLightForeground = \"#ffffff\";\nexport const ComponentAppbarDarkBackground = \"#1e1e1e\";\nexport const ComponentAppbarDarkForeground = \"#ffffff\";\nexport const ComponentBottomNavigationHeight = \"56px\";\nexport const ComponentBottomNavigationLightBackground = \"#ffffff\";\nexport const ComponentBottomNavigationLightItemDefaultForeground = \"#00000099\";\nexport const ComponentBottomNavigationLightItemSelectedForeground = \"#00686f\";\nexport const ComponentBottomNavigationDarkBackground = \"#1e1e1e\";\nexport const ComponentBottomNavigationDarkItemDefaultForeground = \"#ffffffb3\";\nexport const ComponentBottomNavigationDarkItemSelectedForeground = \"#66b2b2\";\nexport const ComponentPaperLightElevation0 = \"#ffffff\";\nexport const ComponentPaperLightElevation1 = \"#ffffff\";\nexport const ComponentPaperLightElevation2 = \"#ffffff\";\nexport const ComponentPaperDarkElevation0 = \"#121212\"; // No elevation - matches background\nexport const ComponentPaperDarkElevation1 = \"#1e1e1e\"; // 1dp elevation\nexport const ComponentPaperDarkElevation2 = \"#232323\"; // 2dp elevation\nexport const ComponentPaperDarkElevation4 = \"#272727\"; // 4dp elevation\nexport const ComponentPaperDarkElevation6 = \"#2c2c2c\"; // 6dp elevation\nexport const ComponentPaperDarkElevation8 = \"#2e2e2e\"; // 8dp elevation\nexport const ComponentPaperDarkElevation12 = \"#333333\"; // 12dp elevation\nexport const ComponentPaperDarkElevation16 = \"#353535\"; // 16dp elevation\nexport const ComponentPaperDarkElevation24 = \"#383838\"; // 24dp elevation\nexport const ComponentTableLightBorder = \"#e0e0e0\";\nexport const ComponentTableLightHeaderBackground = \"#fafafa\";\nexport const ComponentTableDarkBorder = \"#ffffff1f\";\nexport const ComponentTableDarkHeaderBackground = \"#1e1e1e\";\nexport const ComponentCardLightBorderRadius = \"12px\";\nexport const ComponentCardDarkBorderRadius = \"12px\";\nexport const PrimitivesColorsBrandVerones = \"#00686f\"; // MRS Primary Brand Color - Teal\nexport const PrimitivesColorsBrandLima = \"#99cc00\"; // MRS Secondary Brand Color - Lime Green\nexport const PrimitivesColorsNeutralWhite = \"#ffffff\";\nexport const PrimitivesColorsNeutralBlack = \"#000000\";\nexport const PrimitivesColorsNeutralGray50 = \"#fafafa\";\nexport const PrimitivesColorsNeutralGray100 = \"#f5f5f5\";\nexport const PrimitivesColorsNeutralGray200 = \"#eeeeee\";\nexport const PrimitivesColorsNeutralGray300 = \"#e0e0e0\";\nexport const PrimitivesColorsNeutralGray400 = \"#bdbdbd\";\nexport const PrimitivesColorsNeutralGray500 = \"#9e9e9e\";\nexport const PrimitivesColorsNeutralGray600 = \"#757575\";\nexport const PrimitivesColorsNeutralGray700 = \"#616161\";\nexport const PrimitivesColorsNeutralGray800 = \"#424242\";\nexport const PrimitivesColorsNeutralGray900 = \"#212121\";\nexport const PrimitivesColorsStatusError50 = \"#fdeded\";\nexport const PrimitivesColorsStatusError100 = \"#f8b8b8\";\nexport const PrimitivesColorsStatusError500 = \"#ab1a1a\";\nexport const PrimitivesColorsStatusError600 = \"#8b1515\";\nexport const PrimitivesColorsStatusError700 = \"#5f2120\";\nexport const PrimitivesColorsStatusWarning50 = \"#fff4e5\";\nexport const PrimitivesColorsStatusWarning500 = \"#dfa00a\";\nexport const PrimitivesColorsStatusWarning600 = \"#b88308\";\nexport const PrimitivesColorsStatusWarning700 = \"#3e2410\";\nexport const PrimitivesColorsStatusInfo50 = \"#e5f6fd\";\nexport const PrimitivesColorsStatusInfo100 = \"#d1daf0\";\nexport const PrimitivesColorsStatusInfo500 = \"#125c87\";\nexport const PrimitivesColorsStatusInfo600 = \"#143996\";\nexport const PrimitivesColorsStatusInfo700 = \"#014361\";\nexport const PrimitivesColorsStatusInfo800 = \"#0c225a\";\nexport const PrimitivesColorsStatusSuccess50 = \"#edf7ed\";\nexport const PrimitivesColorsStatusSuccess100 = \"#b3d1c7\";\nexport const PrimitivesColorsStatusSuccess500 = \"#2e7d32\";\nexport const PrimitivesColorsStatusSuccess600 = \"#036642\";\nexport const PrimitivesColorsStatusSuccess700 = \"#1e4620\";\nexport const PrimitivesColorsStatusSuccess800 = \"#023321\";\nexport const PrimitivesColorsAlphaBlack4 = \"#0000000a\";\nexport const PrimitivesColorsAlphaBlack8 = \"#00000014\";\nexport const PrimitivesColorsAlphaBlack12 = \"#0000001f\";\nexport const PrimitivesColorsAlphaBlack23 = \"#0000003b\";\nexport const PrimitivesColorsAlphaBlack26 = \"#00000042\";\nexport const PrimitivesColorsAlphaBlack38 = \"#00000061\";\nexport const PrimitivesColorsAlphaBlack42 = \"#0000006b\";\nexport const PrimitivesColorsAlphaBlack56 = \"#0000008f\";\nexport const PrimitivesColorsAlphaBlack60 = \"#00000099\";\nexport const PrimitivesColorsAlphaBlack87 = \"#000000de\";\nexport const PrimitivesColorsAlphaWhite8 = \"#ffffff14\";\nexport const PrimitivesColorsAlphaWhite12 = \"#ffffff1f\";\nexport const PrimitivesColorsAlphaWhite16 = \"#ffffff29\";\nexport const PrimitivesColorsAlphaWhite23 = \"#ffffff3b\";\nexport const PrimitivesColorsAlphaWhite26 = \"#ffffff42\";\nexport const PrimitivesColorsAlphaWhite30 = \"#ffffff4d\";\nexport const PrimitivesColorsAlphaWhite42 = \"#ffffff6b\";\nexport const PrimitivesColorsAlphaWhite50 = \"#ffffff80\";\nexport const PrimitivesColorsAlphaWhite70 = \"#ffffffb3\";\nexport const PrimitivesColorsAlphaWhite100 = \"#ffffff\";\nexport const PrimitivesColorsAlphaPrimary8 = \"#00999914\";\nexport const PrimitivesColorsAlphaPrimary12 = \"#0099991f\";\nexport const PrimitivesColorsAlphaPrimary16 = \"#00999929\";\nexport const PrimitivesColorsAlphaPrimary25 = \"#00999940\";\nexport const PrimitivesColorsAlphaPrimary24Dark = \"#0099993d\";\nexport const PrimitivesColorsAlphaPrimary32Dark = \"#00999952\";\nexport const PrimitivesColorsAlphaPrimary40Dark = \"#00999966\";\nexport const PrimitivesColorsSpecialRating = \"#ffb400\";\nexport const PrimitivesMotionDurationInstant = \"0ms\"; // Instant transition - no delay\nexport const PrimitivesMotionDurationFast = \"100ms\"; // Fast transitions - micro-interactions, toggles, checkboxes\nexport const PrimitivesMotionDurationBase = \"200ms\"; // Base transition duration - most UI elements\nexport const PrimitivesMotionDurationModerate = \"300ms\"; // Moderate transitions - drawers, dialogs, larger elements\nexport const PrimitivesMotionDurationSlow = \"400ms\"; // Slow transitions - page transitions, large content shifts\nexport const PrimitivesMotionDurationSlower = \"500ms\"; // Very slow transitions - complex animations\nexport const PrimitivesMotionEasingLinear = \"cubic-bezier(0, 0, 1, 1)\"; // Linear easing - constant speed, use sparingly\nexport const PrimitivesMotionEasingStandard = \"cubic-bezier(0.4, 0, 0.2, 1)\"; // Standard easing - most common, smooth acceleration and deceleration\nexport const PrimitivesMotionEasingEmphasized = \"cubic-bezier(0.2, 0, 0, 1)\"; // Emphasized easing - Material Design emphasized motion\nexport const PrimitivesMotionEasingDecelerate = \"cubic-bezier(0, 0, 0.2, 1)\"; // Decelerate easing - elements entering the screen\nexport const PrimitivesMotionEasingAccelerate = \"cubic-bezier(0.4, 0, 1, 1)\"; // Accelerate easing - elements leaving the screen\nexport const PrimitivesMotionEasingSharp = \"cubic-bezier(0.4, 0, 0.6, 1)\"; // Sharp easing - quick, focused transitions\nexport const PrimitivesMotionEasingEaseIn = \"cubic-bezier(0.4, 0, 1, 1)\"; // Ease in - gradual acceleration\nexport const PrimitivesMotionEasingEaseOut = \"cubic-bezier(0, 0, 0.2, 1)\"; // Ease out - gradual deceleration\nexport const PrimitivesMotionEasingEaseInOut = \"cubic-bezier(0.4, 0, 0.2, 1)\"; // Ease in-out - smooth start and end\nexport const PrimitivesRadiusNone = \"0px\";\nexport const PrimitivesRadiusSm = \"4px\";\nexport const PrimitivesRadiusMd = \"8px\"; // Default border radius\nexport const PrimitivesRadiusLg = \"12px\";\nexport const PrimitivesRadiusXl = \"24px\";\nexport const PrimitivesRadiusFull = \"9999px\"; // Pill shape / circular\nexport const PrimitivesSpacing0 = \"0px\";\nexport const PrimitivesSpacing1 = \"8px\";\nexport const PrimitivesSpacing2 = \"16px\";\nexport const PrimitivesSpacing3 = \"24px\";\nexport const PrimitivesSpacing4 = \"32px\";\nexport const PrimitivesSpacing5 = \"40px\";\nexport const PrimitivesSpacing6 = \"48px\";\nexport const PrimitivesSpacing7 = \"56px\";\nexport const PrimitivesSpacing8 = \"64px\";\nexport const PrimitivesSpacing9 = \"72px\";\nexport const PrimitivesSpacing10 = \"80px\";\nexport const PrimitivesSpacing11 = \"88px\";\nexport const PrimitivesSpacing12 = \"96px\";\nexport const PrimitivesSpacing05 = \"4px\";\nexport const PrimitivesSpacing15 = \"12px\";\nexport const PrimitivesTypographyFontFamilyBrand = \"Nunito\"; // Primary brand font\nexport const PrimitivesTypographyFontFamilyFallback =\n \"Helvetica, Arial, sans-serif\";\nexport const PrimitivesTypographyFontFamilyStack =\n \"Nunito, Helvetica, Arial, sans-serif\";\nexport const PrimitivesTypographyFontSizeXs = \"0.75rem\";\nexport const PrimitivesTypographyFontSizeSm = \"0.875rem\";\nexport const PrimitivesTypographyFontSizeMd = \"1rem\";\nexport const PrimitivesTypographyFontSizeLg = \"1.25rem\";\nexport const PrimitivesTypographyFontSizeXl = \"1.5rem\";\nexport const PrimitivesTypographyFontSize2xl = \"2.125rem\";\nexport const PrimitivesTypographyFontSize3xl = \"3rem\";\nexport const PrimitivesTypographyFontSize4xl = \"3.75rem\";\nexport const PrimitivesTypographyFontWeightLight = \"300\";\nexport const PrimitivesTypographyFontWeightRegular = \"400\";\nexport const PrimitivesTypographyFontWeightMedium = \"500\";\nexport const PrimitivesTypographyFontWeightSemibold = \"600\";\nexport const PrimitivesTypographyFontWeightBold = \"700\";\nexport const PrimitivesTypographyLineHeightTight = \"1.2\";\nexport const PrimitivesTypographyLineHeightSnug = \"1.43\";\nexport const PrimitivesTypographyLineHeightNormal = \"1.5\";\nexport const PrimitivesTypographyLineHeightRelaxed = \"1.66\";\nexport const PrimitivesTypographyLineHeightLoose = \"1.75\";\nexport const SemanticColorLightPrimaryMain = \"#00686f\";\nexport const SemanticColorLightPrimaryDark = \"#004e53\";\nexport const SemanticColorLightPrimaryLight = \"#009999\";\nexport const SemanticColorLightPrimaryContrastText = \"#ffffff\";\nexport const SemanticColorLightSecondaryMain = \"#99cc00\";\nexport const SemanticColorLightSecondaryDark = \"#7aa300\";\nexport const SemanticColorLightSecondaryLight = \"#b3d633\";\nexport const SemanticColorLightSecondaryContrastText = \"#000000de\";\nexport const SemanticColorLightErrorMain = \"#ab1a1a\";\nexport const SemanticColorLightErrorDark = \"#8b1515\";\nexport const SemanticColorLightErrorLight = \"#d32f2f\";\nexport const SemanticColorLightErrorContrastText = \"#ffffff\";\nexport const SemanticColorLightWarningMain = \"#dfa00a\";\nexport const SemanticColorLightWarningDark = \"#b88308\";\nexport const SemanticColorLightWarningLight = \"#f5b642\";\nexport const SemanticColorLightWarningContrastText = \"#000000de\";\nexport const SemanticColorLightInfoMain = \"#143996\";\nexport const SemanticColorLightInfoDark = \"#0c225a\";\nexport const SemanticColorLightInfoLight = \"#d1daf0\";\nexport const SemanticColorLightInfoContrastText = \"#ffffff\";\nexport const SemanticColorLightSuccessMain = \"#036642\";\nexport const SemanticColorLightSuccessDark = \"#023321\";\nexport const SemanticColorLightSuccessLight = \"#b3d1c7\";\nexport const SemanticColorLightSuccessContrastText = \"#ffffff\";\nexport const SemanticColorLightBackgroundDefault = \"#ffffff\";\nexport const SemanticColorLightBackgroundPaper = \"#ffffff\";\nexport const SemanticColorLightTextPrimary = \"#000000de\";\nexport const SemanticColorLightTextSecondary = \"#00000099\";\nexport const SemanticColorLightTextDisabled = \"#00000061\";\nexport const SemanticColorLightActionActive = \"#0000008f\";\nexport const SemanticColorLightActionHover = \"#00000014\";\nexport const SemanticColorLightActionSelected = \"#0000001f\";\nexport const SemanticColorLightActionDisabled = \"#00000042\";\nexport const SemanticColorLightActionDisabledBackground = \"#0000001f\";\nexport const SemanticColorLightDivider = \"#0000001f\";\nexport const SemanticColorDarkPrimaryMain = \"#66b2b2\"; // Lighter primary for dark mode\nexport const SemanticColorDarkPrimaryDark = \"#00686f\";\nexport const SemanticColorDarkPrimaryLight = \"#99cccc\";\nexport const SemanticColorDarkPrimaryContrastText = \"#000000\";\nexport const SemanticColorDarkSecondaryMain = \"#b3e600\"; // Lighter secondary for dark mode\nexport const SemanticColorDarkSecondaryDark = \"#99cc00\";\nexport const SemanticColorDarkSecondaryLight = \"#ccff33\";\nexport const SemanticColorDarkSecondaryContrastText = \"#000000\";\nexport const SemanticColorDarkErrorMain = \"#f48282\"; // Lighter error for dark mode\nexport const SemanticColorDarkErrorDark = \"#ab1a1a\";\nexport const SemanticColorDarkErrorLight = \"#f8b8b8\";\nexport const SemanticColorDarkErrorContrastText = \"#000000\";\nexport const SemanticColorDarkWarningMain = \"#ffb74d\"; // Lighter warning for dark mode\nexport const SemanticColorDarkWarningDark = \"#dfa00a\";\nexport const SemanticColorDarkWarningLight = \"#fff4e5\";\nexport const SemanticColorDarkWarningContrastText = \"#000000\";\nexport const SemanticColorDarkInfoMain = \"#64b5f6\"; // Lighter info for dark mode\nexport const SemanticColorDarkInfoDark = \"#125c87\";\nexport const SemanticColorDarkInfoLight = \"#e5f6fd\";\nexport const SemanticColorDarkInfoContrastText = \"#000000\";\nexport const SemanticColorDarkSuccessMain = \"#81c784\"; // Lighter success for dark mode\nexport const SemanticColorDarkSuccessDark = \"#2e7d32\";\nexport const SemanticColorDarkSuccessLight = \"#edf7ed\";\nexport const SemanticColorDarkSuccessContrastText = \"#000000\";\nexport const SemanticColorDarkBackgroundDefault = \"#121212\"; // Material Design dark background\nexport const SemanticColorDarkBackgroundPaper = \"#1e1e1e\"; // Elevated surface in dark mode\nexport const SemanticColorDarkTextPrimary = \"#ffffff\";\nexport const SemanticColorDarkTextSecondary = \"#ffffffb3\";\nexport const SemanticColorDarkTextDisabled = \"#ffffff80\";\nexport const SemanticColorDarkActionActive = \"#ffffff\";\nexport const SemanticColorDarkActionHover = \"#ffffff14\";\nexport const SemanticColorDarkActionSelected = \"#ffffff29\";\nexport const SemanticColorDarkActionDisabled = \"#ffffff4d\";\nexport const SemanticColorDarkActionDisabledBackground = \"#ffffff1f\";\nexport const SemanticColorDarkDivider = \"#ffffff1f\";\nexport const SemanticTransitionFadeIn =\n \"opacity 200ms cubic-bezier(0.4, 0, 1, 1)\"; // Fade in transition\nexport const SemanticTransitionFadeOut =\n \"opacity 200ms cubic-bezier(0, 0, 0.2, 1)\"; // Fade out transition\nexport const SemanticTransitionSlideIn =\n \"transform 300ms cubic-bezier(0, 0, 0.2, 1)\"; // Slide in transition - elements entering\nexport const SemanticTransitionSlideOut =\n \"transform 300ms cubic-bezier(0.4, 0, 1, 1)\"; // Slide out transition - elements leaving\nexport const SemanticTransitionExpandIn =\n \"all 300ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Expand transition - collapsible content opening\nexport const SemanticTransitionExpandOut =\n \"all 200ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Collapse transition - collapsible content closing\nexport const SemanticTransitionElevation =\n \"box-shadow 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Elevation change transition\n","/**\n * Design Tokens Import - Generated by Style Dictionary\n *\n * This file re-exports design tokens organized by mode (light/dark)\n * for easier consumption in theme.ts\n *\n * @since 0.12.0 - Complete migration to generated tokens (no more theme.json dependency)\n */\n\nimport * as tokens from '../tokens/generated/ts/tokens';\n\n// ============================================================================\n// TYPOGRAPHY TOKENS\n// ============================================================================\nexport const typographyTokens = {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontSize: 16, // base font size in pixels (from 1rem)\n fontWeightLight: Number(tokens.PrimitivesTypographyFontWeightLight),\n fontWeightRegular: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontWeightMedium: Number(tokens.PrimitivesTypographyFontWeightMedium),\n fontWeightSemiBold: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontWeightBold: Number(tokens.PrimitivesTypographyFontWeightBold),\n // Typography variants (MUI compatible)\n h1: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSize4xl, // 3.75rem (60px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '-0.01562em',\n },\n h2: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSize3xl, // 3rem (48px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '-0.00833em',\n },\n h3: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSize2xl, // 2.125rem (34px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0em',\n },\n h4: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeXl, // 1.5rem (24px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0.00735em',\n },\n h5: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeLg, // 1.25rem (20px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0em',\n },\n h6: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeMd, // 1rem (16px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0.0075em',\n },\n body1: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeMd, // 1rem (16px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightNormal), // 1.5\n letterSpacing: '0.00938em',\n },\n body2: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeSm, // 0.875rem (14px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightSnug), // 1.43\n letterSpacing: '0.01071em',\n },\n subtitle1: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightMedium),\n fontSize: tokens.PrimitivesTypographyFontSizeMd, // 1rem (16px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightLoose), // 1.75\n letterSpacing: '0.00938em',\n },\n subtitle2: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightMedium),\n fontSize: tokens.PrimitivesTypographyFontSizeSm, // 0.875rem (14px)\n lineHeight: 1.57,\n letterSpacing: '0.00714em',\n },\n button: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeSm, // 0.875rem (14px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightLoose), // 1.75\n letterSpacing: '0.02857em',\n textTransform: 'none' as const,\n },\n caption: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeXs, // 0.75rem (12px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightRelaxed), // 1.66\n letterSpacing: '0.03333em',\n },\n overline: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeXs, // 0.75rem (12px)\n lineHeight: 2.66,\n letterSpacing: '0.08333em',\n textTransform: 'uppercase' as const,\n },\n};\n\n// ============================================================================\n// SHAPE TOKENS (Border Radius)\n// ============================================================================\nexport const shapeTokens = {\n borderRadius: 8, // default MUI border radius (maps to md)\n sm: 4,\n md: 8,\n lg: 12,\n xl: 24,\n rounded: 9999, // pill shape\n};\n\n// ============================================================================\n// SPACING TOKENS\n// ============================================================================\n// Note: MUI uses a spacing function that multiplies by 8\n// We provide the raw array for compatibility\nexport const spacingArray = [0, 4, 8, 12, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96];\n\n// ============================================================================\n// LIGHT MODE TOKENS\n// ============================================================================\nexport const lightTokens = {\n colors: {\n primary: {\n main: tokens.SemanticColorLightPrimaryMain,\n dark: tokens.SemanticColorLightPrimaryDark,\n light: tokens.SemanticColorLightPrimaryLight,\n contrastText: tokens.SemanticColorLightPrimaryContrastText,\n },\n secondary: {\n main: tokens.SemanticColorLightSecondaryMain,\n dark: tokens.SemanticColorLightSecondaryDark,\n light: tokens.SemanticColorLightSecondaryLight,\n contrastText: tokens.SemanticColorLightSecondaryContrastText,\n },\n error: {\n main: tokens.SemanticColorLightErrorMain,\n dark: tokens.SemanticColorLightErrorDark,\n light: tokens.SemanticColorLightErrorLight,\n contrastText: tokens.SemanticColorLightErrorContrastText,\n },\n warning: {\n main: tokens.SemanticColorLightWarningMain,\n dark: tokens.SemanticColorLightWarningDark,\n light: tokens.SemanticColorLightWarningLight,\n contrastText: tokens.SemanticColorLightWarningContrastText,\n },\n info: {\n main: tokens.SemanticColorLightInfoMain,\n dark: tokens.SemanticColorLightInfoDark,\n light: tokens.SemanticColorLightInfoLight,\n contrastText: tokens.SemanticColorLightInfoContrastText,\n },\n success: {\n main: tokens.SemanticColorLightSuccessMain,\n dark: tokens.SemanticColorLightSuccessDark,\n light: tokens.SemanticColorLightSuccessLight,\n contrastText: tokens.SemanticColorLightSuccessContrastText,\n },\n background: {\n default: tokens.SemanticColorLightBackgroundDefault,\n paper: tokens.SemanticColorLightBackgroundPaper,\n },\n text: {\n primary: tokens.SemanticColorLightTextPrimary,\n secondary: tokens.SemanticColorLightTextSecondary,\n disabled: tokens.SemanticColorLightTextDisabled,\n },\n action: {\n active: tokens.SemanticColorLightActionActive,\n hover: tokens.SemanticColorLightActionHover,\n selected: tokens.SemanticColorLightActionSelected,\n disabled: tokens.SemanticColorLightActionDisabled,\n disabledBackground: tokens.SemanticColorLightActionDisabledBackground,\n },\n divider: tokens.SemanticColorLightDivider,\n },\n components: {\n alert: {\n borderRadius: tokens.ComponentAlertLightBorderRadius,\n error: {\n filled: {\n background: tokens.ComponentAlertLightErrorFilledBackground,\n foreground: tokens.ComponentAlertLightErrorFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightErrorOutlinedBackground,\n foreground: tokens.ComponentAlertLightErrorOutlinedForeground,\n border: tokens.ComponentAlertLightErrorOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightErrorStandardBackground,\n foreground: tokens.ComponentAlertLightErrorStandardForeground,\n },\n },\n warning: {\n filled: {\n background: tokens.ComponentAlertLightWarningFilledBackground,\n foreground: tokens.ComponentAlertLightWarningFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightWarningOutlinedBackground,\n foreground: tokens.ComponentAlertLightWarningOutlinedForeground,\n border: tokens.ComponentAlertLightWarningOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightWarningStandardBackground,\n foreground: tokens.ComponentAlertLightWarningStandardForeground,\n },\n },\n info: {\n filled: {\n background: tokens.ComponentAlertLightInfoFilledBackground,\n foreground: tokens.ComponentAlertLightInfoFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightInfoOutlinedBackground,\n foreground: tokens.ComponentAlertLightInfoOutlinedForeground,\n border: tokens.ComponentAlertLightInfoOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightInfoStandardBackground,\n foreground: tokens.ComponentAlertLightInfoStandardForeground,\n },\n },\n success: {\n filled: {\n background: tokens.ComponentAlertLightSuccessFilledBackground,\n foreground: tokens.ComponentAlertLightSuccessFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightSuccessOutlinedBackground,\n foreground: tokens.ComponentAlertLightSuccessOutlinedForeground,\n border: tokens.ComponentAlertLightSuccessOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightSuccessStandardBackground,\n foreground: tokens.ComponentAlertLightSuccessStandardForeground,\n },\n },\n },\n input: {\n borderRadius: tokens.ComponentInputLightBorderRadius,\n standard: {\n enabledBorder: tokens.ComponentInputLightStandardEnabledBorder,\n },\n filled: {\n enabledFill: tokens.ComponentInputLightFilledEnabledFill,\n },\n outlined: {\n enabledBorder: tokens.ComponentInputLightOutlinedEnabledBorder,\n },\n },\n paper: {\n elevation0: tokens.ComponentPaperLightElevation0,\n elevation1: tokens.ComponentPaperLightElevation1,\n elevation2: tokens.ComponentPaperLightElevation2,\n },\n chip: {\n defaultCloseFill: tokens.ComponentChipDefaultCloseFill,\n defaultEnabledBorder: tokens.ComponentChipDefaultEnabledBorder,\n },\n button: {\n borderRadius: tokens.ComponentButtonBorderRadius,\n },\n card: {\n borderRadius: tokens.ComponentCardLightBorderRadius,\n },\n dialog: {\n borderRadius: tokens.ComponentDialogLightBorderRadius,\n },\n table: {\n border: tokens.ComponentTableLightBorder,\n header: {\n background: tokens.ComponentTableLightHeaderBackground,\n },\n },\n rating: {\n activeFill: tokens.ComponentRatingActiveFill,\n enabledBorder: tokens.ComponentRatingEnabledBorder,\n },\n },\n};\n\n// ============================================================================\n// DARK MODE TOKENS\n// ============================================================================\nexport const darkTokens = {\n colors: {\n primary: {\n main: tokens.SemanticColorDarkPrimaryMain,\n dark: tokens.SemanticColorDarkPrimaryDark,\n light: tokens.SemanticColorDarkPrimaryLight,\n contrastText: tokens.SemanticColorDarkPrimaryContrastText,\n },\n secondary: {\n main: tokens.SemanticColorDarkSecondaryMain,\n dark: tokens.SemanticColorDarkSecondaryDark,\n light: tokens.SemanticColorDarkSecondaryLight,\n contrastText: tokens.SemanticColorDarkSecondaryContrastText,\n },\n error: {\n main: tokens.SemanticColorDarkErrorMain,\n dark: tokens.SemanticColorDarkErrorDark,\n light: tokens.SemanticColorDarkErrorLight,\n contrastText: tokens.SemanticColorDarkErrorContrastText,\n },\n warning: {\n main: tokens.SemanticColorDarkWarningMain,\n dark: tokens.SemanticColorDarkWarningDark,\n light: tokens.SemanticColorDarkWarningLight,\n contrastText: tokens.SemanticColorDarkWarningContrastText,\n },\n info: {\n main: tokens.SemanticColorDarkInfoMain,\n dark: tokens.SemanticColorDarkInfoDark,\n light: tokens.SemanticColorDarkInfoLight,\n contrastText: tokens.SemanticColorDarkInfoContrastText,\n },\n success: {\n main: tokens.SemanticColorDarkSuccessMain,\n dark: tokens.SemanticColorDarkSuccessDark,\n light: tokens.SemanticColorDarkSuccessLight,\n contrastText: tokens.SemanticColorDarkSuccessContrastText,\n },\n background: {\n default: tokens.SemanticColorDarkBackgroundDefault,\n paper: tokens.SemanticColorDarkBackgroundPaper,\n },\n text: {\n primary: tokens.SemanticColorDarkTextPrimary,\n secondary: tokens.SemanticColorDarkTextSecondary,\n disabled: tokens.SemanticColorDarkTextDisabled,\n },\n action: {\n active: tokens.SemanticColorDarkActionActive,\n hover: tokens.SemanticColorDarkActionHover,\n selected: tokens.SemanticColorDarkActionSelected,\n disabled: tokens.SemanticColorDarkActionDisabled,\n disabledBackground: tokens.SemanticColorDarkActionDisabledBackground,\n },\n divider: tokens.SemanticColorDarkDivider,\n },\n components: {\n alert: {\n borderRadius: tokens.ComponentAlertDarkBorderRadius,\n error: {\n filled: {\n background: tokens.ComponentAlertDarkErrorFilledBackground,\n foreground: tokens.ComponentAlertDarkErrorFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkErrorOutlinedBackground,\n foreground: tokens.ComponentAlertDarkErrorOutlinedForeground,\n border: tokens.ComponentAlertDarkErrorOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkErrorStandardBackground,\n foreground: tokens.ComponentAlertDarkErrorStandardForeground,\n },\n },\n warning: {\n filled: {\n background: tokens.ComponentAlertDarkWarningFilledBackground,\n foreground: tokens.ComponentAlertDarkWarningFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkWarningOutlinedBackground,\n foreground: tokens.ComponentAlertDarkWarningOutlinedForeground,\n border: tokens.ComponentAlertDarkWarningOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkWarningStandardBackground,\n foreground: tokens.ComponentAlertDarkWarningStandardForeground,\n },\n },\n info: {\n filled: {\n background: tokens.ComponentAlertDarkInfoFilledBackground,\n foreground: tokens.ComponentAlertDarkInfoFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkInfoOutlinedBackground,\n foreground: tokens.ComponentAlertDarkInfoOutlinedForeground,\n border: tokens.ComponentAlertDarkInfoOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkInfoStandardBackground,\n foreground: tokens.ComponentAlertDarkInfoStandardForeground,\n },\n },\n success: {\n filled: {\n background: tokens.ComponentAlertDarkSuccessFilledBackground,\n foreground: tokens.ComponentAlertDarkSuccessFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkSuccessOutlinedBackground,\n foreground: tokens.ComponentAlertDarkSuccessOutlinedForeground,\n border: tokens.ComponentAlertDarkSuccessOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkSuccessStandardBackground,\n foreground: tokens.ComponentAlertDarkSuccessStandardForeground,\n },\n },\n },\n input: {\n borderRadius: tokens.ComponentInputDarkBorderRadius,\n standard: {\n enabledBorder: tokens.ComponentInputDarkStandardEnabledBorder,\n },\n filled: {\n enabledFill: tokens.ComponentInputDarkFilledEnabledFill,\n },\n outlined: {\n enabledBorder: tokens.ComponentInputDarkOutlinedEnabledBorder,\n },\n },\n paper: {\n elevation0: tokens.ComponentPaperDarkElevation0,\n elevation1: tokens.ComponentPaperDarkElevation1,\n elevation2: tokens.ComponentPaperDarkElevation2,\n elevation4: tokens.ComponentPaperDarkElevation4,\n elevation6: tokens.ComponentPaperDarkElevation6,\n elevation8: tokens.ComponentPaperDarkElevation8,\n elevation12: tokens.ComponentPaperDarkElevation12,\n elevation16: tokens.ComponentPaperDarkElevation16,\n elevation24: tokens.ComponentPaperDarkElevation24,\n },\n chip: {\n defaultCloseFill: tokens.PrimitivesColorsNeutralWhite,\n defaultEnabledBorder: tokens.PrimitivesColorsNeutralGray600,\n },\n button: {\n borderRadius: tokens.ComponentButtonBorderRadius,\n },\n card: {\n borderRadius: tokens.ComponentCardDarkBorderRadius,\n },\n dialog: {\n borderRadius: tokens.ComponentDialogDarkBorderRadius,\n },\n table: {\n border: tokens.ComponentTableDarkBorder,\n header: {\n background: tokens.ComponentTableDarkHeaderBackground,\n },\n },\n rating: {\n activeFill: tokens.ComponentRatingActiveFill,\n enabledBorder: tokens.PrimitivesColorsAlphaWhite30,\n },\n },\n};\n","/**\n * MRS Design System Theme Configuration\n * Material-UI v6.5.0 theme with centralized component overrides\n *\n * This theme uses:\n * 1. Design tokens generated by Style Dictionary (single source of truth)\n * 2. Component overrides for consistent styling across all components\n *\n * @version 0.12.0 - Migrated to 100% generated tokens (no theme.json dependency)\n * @see https://mui.com/material-ui/customization/theme-components/\n */\n\n/// <reference path=\"../types/theme.d.ts\" />\n\nimport type { Theme, ThemeOptions } from '@mui/material/styles';\nimport { createTheme } from '@mui/material/styles';\n\nimport { lightTokens, darkTokens, typographyTokens, shapeTokens } from './tokens-import';\n\n/**\n * Spacing function for MUI\n * Multiplies the base unit (8px) by the given factor\n */\nconst spacing = (factor: number): number => {\n const baseUnit = 8;\n return baseUnit * factor;\n};\n\n/**\n * Shared component overrides\n * These apply consistent styling across all components using theme tokens\n *\n * Benefits:\n * - Single place to manage component styles\n * - No need for sx prop overrides in individual components\n * - Consistent with MUI best practices\n * - 100% generated tokens (v0.12.0+)\n */\nconst getComponentOverrides = (mode: 'light' | 'dark'): ThemeOptions['components'] => {\n const modeTokens = mode === 'light' ? lightTokens : darkTokens;\n const shape = shapeTokens;\n const typography = typographyTokens;\n\n return {\n // =========================================================================\n // GLOBAL BASELINE\n // =========================================================================\n MuiCssBaseline: {\n styleOverrides: {\n body: {\n fontFamily: typography.fontFamily,\n },\n // Apply Nunito font globally\n '*': {\n fontFamily: 'inherit',\n },\n },\n },\n\n // =========================================================================\n // BUTTONS\n // =========================================================================\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: shape.md,\n textTransform: 'none' as const,\n fontWeight: typography.fontWeightSemiBold,\n fontFamily: typography.fontFamily,\n },\n sizeSmall: {\n fontSize: '0.8125rem',\n padding: '4px 10px',\n },\n sizeMedium: {\n fontSize: '0.875rem',\n padding: '6px 16px',\n },\n sizeLarge: {\n fontSize: '1rem',\n padding: '8px 22px',\n },\n },\n },\n\n MuiIconButton: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiToggleButton: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n textTransform: 'none' as const,\n },\n },\n },\n\n MuiButtonGroup: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: shape.md,\n },\n },\n },\n\n MuiFab: {\n styleOverrides: {\n root: {\n borderRadius: shape.rounded,\n textTransform: 'none' as const,\n },\n },\n },\n\n // =========================================================================\n // INPUTS\n // =========================================================================\n MuiTextField: {\n defaultProps: {\n variant: 'outlined',\n },\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n borderRadius: shape.sm,\n },\n notchedOutline: {\n borderColor: modeTokens.components.input.outlined.enabledBorder,\n },\n },\n },\n\n MuiFilledInput: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n backgroundColor: modeTokens.components.input.filled.enabledFill,\n borderRadius: `${shape.sm}px ${shape.sm}px 0 0`,\n },\n },\n },\n\n MuiInput: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n underline: {\n '&:before': {\n borderBottomColor: modeTokens.components.input.standard.enabledBorder,\n },\n },\n },\n },\n\n MuiInputLabel: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiSelect: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiAutocomplete: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // SELECTION CONTROLS\n // =========================================================================\n MuiCheckbox: {\n styleOverrides: {\n root: {\n '&.Mui-checked': {\n color: modeTokens.colors.primary.main,\n },\n },\n },\n },\n\n MuiRadio: {\n styleOverrides: {\n root: {\n '&.Mui-checked': {\n color: modeTokens.colors.primary.main,\n },\n },\n },\n },\n\n MuiSwitch: {\n styleOverrides: {\n root: {\n '& .MuiSwitch-switchBase.Mui-checked': {\n color: modeTokens.colors.primary.main,\n },\n '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': {\n backgroundColor: modeTokens.colors.primary.main,\n },\n },\n },\n },\n\n // =========================================================================\n // CHIPS\n // =========================================================================\n MuiChip: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n borderRadius: shape.rounded,\n },\n outlined: {\n borderColor: modeTokens.components.chip.defaultEnabledBorder,\n },\n deleteIcon: {\n color: modeTokens.components.chip.defaultCloseFill,\n },\n },\n },\n\n // =========================================================================\n // ALERTS & FEEDBACK\n // =========================================================================\n MuiAlert: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n borderRadius: `${shape.md}px`,\n },\n // Filled variants\n filledError: {\n backgroundColor: modeTokens.components.alert.error.filled.background,\n color: modeTokens.components.alert.error.filled.foreground,\n },\n filledWarning: {\n backgroundColor: modeTokens.components.alert.warning.filled.background,\n color: modeTokens.components.alert.warning.filled.foreground,\n },\n filledInfo: {\n backgroundColor: modeTokens.components.alert.info.filled.background,\n color: modeTokens.components.alert.info.filled.foreground,\n },\n filledSuccess: {\n backgroundColor: modeTokens.components.alert.success.filled.background,\n color: modeTokens.components.alert.success.filled.foreground,\n },\n // Outlined variants\n outlinedError: {\n backgroundColor: modeTokens.components.alert.error.outlined.background,\n color: modeTokens.components.alert.error.outlined.foreground,\n borderColor: modeTokens.components.alert.error.outlined.border,\n },\n outlinedWarning: {\n backgroundColor: modeTokens.components.alert.warning.outlined.background,\n color: modeTokens.components.alert.warning.outlined.foreground,\n borderColor: modeTokens.components.alert.warning.outlined.border,\n },\n outlinedInfo: {\n backgroundColor: modeTokens.components.alert.info.outlined.background,\n color: modeTokens.components.alert.info.outlined.foreground,\n borderColor: modeTokens.components.alert.info.outlined.border,\n },\n outlinedSuccess: {\n backgroundColor: modeTokens.components.alert.success.outlined.background,\n color: modeTokens.components.alert.success.outlined.foreground,\n borderColor: modeTokens.components.alert.success.outlined.border,\n },\n // Standard variants\n standardError: {\n backgroundColor: modeTokens.components.alert.error.standard.background,\n color: modeTokens.components.alert.error.standard.foreground,\n },\n standardWarning: {\n backgroundColor: modeTokens.components.alert.warning.standard.background,\n color: modeTokens.components.alert.warning.standard.foreground,\n },\n standardInfo: {\n backgroundColor: modeTokens.components.alert.info.standard.background,\n color: modeTokens.components.alert.info.standard.foreground,\n },\n standardSuccess: {\n backgroundColor: modeTokens.components.alert.success.standard.background,\n color: modeTokens.components.alert.success.standard.foreground,\n },\n },\n },\n\n MuiSnackbar: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // SURFACES\n // =========================================================================\n MuiPaper: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n rounded: {\n borderRadius: shape.md,\n },\n elevation0: {\n backgroundColor: modeTokens.components.paper.elevation0,\n },\n elevation1: {\n backgroundColor: modeTokens.components.paper.elevation1,\n },\n elevation2: {\n backgroundColor: modeTokens.components.paper.elevation2,\n },\n },\n },\n\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: shape.lg,\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: shape.lg,\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiDrawer: {\n styleOverrides: {\n paper: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiAppBar: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // TABLES\n // =========================================================================\n MuiTable: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiTableCell: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n borderBottomColor: modeTokens.components.table.border,\n },\n head: {\n fontWeight: typography.fontWeightMedium,\n },\n },\n },\n\n // =========================================================================\n // LISTS & MENUS\n // =========================================================================\n MuiList: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiListItem: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiListItemButton: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n borderRadius: shape.sm,\n '&.Mui-selected': {\n backgroundColor: modeTokens.colors.action.selected,\n },\n '&.Mui-selected:hover': {\n backgroundColor: modeTokens.colors.action.hover,\n },\n },\n },\n },\n\n MuiListItemText: {\n styleOverrides: {\n primary: {\n fontFamily: typography.fontFamily,\n },\n secondary: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiMenu: {\n styleOverrides: {\n paper: {\n borderRadius: shape.md,\n },\n },\n },\n\n MuiMenuItem: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // NAVIGATION\n // =========================================================================\n MuiTabs: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiTab: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n textTransform: 'none' as const,\n },\n },\n },\n\n MuiBreadcrumbs: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiPagination: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiStepper: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // TYPOGRAPHY\n // =========================================================================\n MuiTypography: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiLink: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // DATA DISPLAY\n // =========================================================================\n MuiAvatar: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiBadge: {\n styleOverrides: {\n badge: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiTooltip: {\n styleOverrides: {\n tooltip: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: modeTokens.colors.divider,\n },\n },\n },\n\n // =========================================================================\n // FORMS\n // =========================================================================\n MuiFormControlLabel: {\n styleOverrides: {\n label: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiFormHelperText: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n MuiFormLabel: {\n styleOverrides: {\n root: {\n fontFamily: typography.fontFamily,\n },\n },\n },\n\n // =========================================================================\n // PROGRESS\n // =========================================================================\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: shape.sm,\n },\n },\n },\n };\n};\n\n/**\n * Light theme configuration\n * Uses 100% generated tokens from Style Dictionary\n */\nexport const lightTheme: Theme = createTheme({\n palette: {\n mode: 'light',\n primary: lightTokens.colors.primary,\n secondary: lightTokens.colors.secondary,\n error: lightTokens.colors.error,\n warning: lightTokens.colors.warning,\n info: lightTokens.colors.info,\n success: lightTokens.colors.success,\n background: lightTokens.colors.background,\n text: lightTokens.colors.text,\n action: lightTokens.colors.action,\n divider: lightTokens.colors.divider,\n _components: lightTokens.components,\n },\n typography: {\n ...typographyTokens,\n },\n shape: {\n ...shapeTokens,\n },\n spacing,\n components: getComponentOverrides('light'),\n});\n\n/**\n * Dark theme configuration\n * Uses 100% generated tokens from Style Dictionary\n */\nexport const darkTheme: Theme = createTheme({\n palette: {\n mode: 'dark',\n primary: darkTokens.colors.primary,\n secondary: darkTokens.colors.secondary,\n error: darkTokens.colors.error,\n warning: darkTokens.colors.warning,\n info: darkTokens.colors.info,\n success: darkTokens.colors.success,\n background: darkTokens.colors.background,\n text: darkTokens.colors.text,\n action: darkTokens.colors.action,\n divider: darkTokens.colors.divider,\n _components: darkTokens.components,\n },\n typography: {\n ...typographyTokens,\n },\n shape: {\n ...shapeTokens,\n },\n spacing,\n components: getComponentOverrides('dark'),\n});\n\n/**\n * Default theme export (light mode)\n */\nexport const theme = lightTheme;\n\n/**\n * Export both themes for theme switching\n */\nexport default {\n light: lightTheme,\n dark: darkTheme,\n};\n","/**\n * Design tokens exports\n * Re-exports from generated tokens (Style Dictionary)\n *\n * @version 0.12.0 - Migrated to 100% generated tokens\n * @deprecated Direct theme.json dependency removed - use generated tokens\n */\n\nimport {\n lightTokens,\n darkTokens,\n typographyTokens,\n shapeTokens,\n spacingArray,\n} from './tokens-import';\n\n/**\n * Color tokens (organized by light/dark mode)\n */\nexport const colors = {\n light: lightTokens.colors,\n dark: darkTokens.colors,\n};\n\n/**\n * Typography tokens\n * Includes font family, sizes, weights, and variant definitions\n */\nexport const typography = typographyTokens;\n\n/**\n * Shape tokens (border radius values)\n */\nexport const shape = shapeTokens;\n\n/**\n * Spacing scale (8px base grid system)\n * Array format: [0, 4, 8, 12, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96]\n */\nexport const spacing = spacingArray;\n\n/**\n * Component-specific tokens\n */\nexport const components = {\n light: lightTokens.components,\n dark: darkTokens.components,\n};\n\n/**\n * Full tokens object (for backwards compatibility)\n * @deprecated Use named exports (colors, typography, shape, etc.) instead\n */\nexport const tokens = {\n colorSchemes: {\n light: {\n palette: lightTokens.colors,\n _components: lightTokens.components,\n },\n dark: {\n palette: darkTokens.colors,\n _components: darkTokens.components,\n },\n },\n typography: typographyTokens,\n shape: shapeTokens,\n spacing: spacingArray,\n};\n\n/**\n * Type definitions for tokens\n */\nexport type ColorScheme = typeof lightTokens.colors;\nexport type ComponentTokens = typeof lightTokens.components;\nexport type TypographyScale = typeof typographyTokens;\nexport type ShapeTokens = typeof shapeTokens;\nexport type SpacingScale = typeof spacingArray;\n","/**\n * Box component\n * Wraps Material-UI Box with design system theme\n */\n\nimport React from 'react';\nimport MuiBox from '@mui/material/Box';\nimport type { BoxProps } from './Box.types';\n\n/**\n * Box component - the most fundamental layout component\n * A utility component that serves as a wrapper with access to theme and sx prop\n *\n * @example\n * ```tsx\n * <Box sx={{ padding: 2, backgroundColor: 'primary.main' }}>\n * Content\n * </Box>\n * ```\n */\nexport const Box = React.forwardRef<HTMLDivElement, BoxProps>(({ children, ...props }, ref) => {\n return (\n <MuiBox ref={ref} {...props}>\n {children}\n </MuiBox>\n );\n});\n\nBox.displayName = 'Box';\n\nexport default Box;\n","/**\n * Stack component\n * Wraps Material-UI Stack with design system theme\n */\n\nimport React from 'react';\nimport MuiStack from '@mui/material/Stack';\nimport type { StackProps } from './Stack.types';\n\n/**\n * Stack component - manages layout of immediate children along vertical or horizontal axis\n * Provides spacing between children with optional dividers\n *\n * @example\n * ```tsx\n * <Stack spacing={2} direction=\"row\">\n * <Item>Item 1</Item>\n * <Item>Item 2</Item>\n * </Stack>\n * ```\n */\nexport const Stack = React.forwardRef<HTMLDivElement, StackProps>(\n ({ children, direction = 'column', spacing = 0, ...props }, ref) => {\n return (\n <MuiStack ref={ref} direction={direction} spacing={spacing} {...props}>\n {children}\n </MuiStack>\n );\n }\n);\n\nStack.displayName = 'Stack';\n\nexport default Stack;\n","/**\n * Avatar Component\n *\n * Avatar component for the MRS Design System.\n * Wraps Material-UI Avatar with custom theme tokens and sizing.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6587:47403\n * @see {@link https://mui.com/material-ui/react-avatar/}\n */\n\nimport React from 'react';\nimport MuiAvatar from '@mui/material/Avatar';\nimport { useTheme } from '@mui/material/styles';\nimport type { AvatarProps } from './Avatar.types';\nimport * as tokens from '../../../tokens/generated/ts/tokens';\n\n/**\n * Avatar component\n *\n * Avatars are found throughout material design with uses in everything from tables to dialog menus.\n *\n * @param props - Avatar component props\n * @returns Avatar component\n */\nexport const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ children, size = 40, variant = 'circular', sx, ...props }, ref) => {\n const theme = useTheme();\n\n // Map size to predefined token sizes\n const getSizeToken = (): string => {\n if (size === 24) return tokens.ComponentAvatarSmall;\n if (size === 40) return tokens.ComponentAvatarMedium;\n // Default for sizes not in predefined tokens\n return `${size}px`;\n };\n\n // Calculate font size based on avatar size\n const getFontSize = (): string => {\n if (size === 18) return tokens.PrimitivesTypographyFontSizeXs;\n if (size === 24 || size === 32) return tokens.PrimitivesTypographyFontSizeSm;\n return tokens.PrimitivesTypographyFontSizeLg;\n };\n\n const avatarSize = getSizeToken();\n\n return (\n <MuiAvatar\n ref={ref}\n variant={variant}\n {...props}\n sx={{\n width: avatarSize,\n height: avatarSize,\n fontSize: getFontSize(),\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightRegular,\n borderRadius:\n variant === 'circular' ? tokens.ComponentAvatarBorderRadius : tokens.PrimitivesRadiusSm,\n ...sx,\n }}\n >\n {children}\n </MuiAvatar>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n","/**\n * Badge Component\n *\n * Badge component for the MRS Design System.\n * Wraps Material-UI Badge with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6587:47500\n * @see {@link https://mui.com/material-ui/react-badge/}\n */\n\nimport React from 'react';\nimport MuiBadge from '@mui/material/Badge';\nimport { useTheme } from '@mui/material/styles';\nimport type { BadgeProps } from './Badge.types';\n\n/**\n * Badge component\n *\n * Generates a small badge to the top-right of its child(ren).\n * Typically used to display notification counts or status indicators.\n *\n * @param props - Badge component props\n * @returns Badge component\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ children, color = 'default', variant = 'standard', sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiBadge\n ref={ref}\n color={color}\n variant={variant}\n {...props}\n sx={{\n // Badge styling\n '& .MuiBadge-badge': {\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n },\n ...sx,\n }}\n >\n {children}\n </MuiBadge>\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","/**\n * Typography Component\n *\n * Text display component for the MRS Design System.\n * Wraps Material-UI Typography with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=11609:174872\n * @see {@link https://mui.com/material-ui/react-typography/}\n */\n\nimport React from 'react';\nimport MuiTypography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport type { TypographyProps } from './Typography.types';\n\n/**\n * Typography component\n *\n * Displays text content with predefined typography styles from the theme.\n * Supports all standard MUI typography variants (h1-h6, body1-body2, subtitle1-subtitle2, caption, overline).\n *\n * @param props - Typography component props\n * @returns Typography component\n */\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>(\n ({ children, variant = 'body1', gutterBottom = false, sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiTypography\n ref={ref}\n variant={variant}\n gutterBottom={gutterBottom}\n {...props}\n sx={{\n // Use theme typography tokens\n fontFamily: theme.typography.fontFamily,\n // Allow custom sx to override defaults\n ...sx,\n }}\n >\n {children}\n </MuiTypography>\n );\n }\n);\n\nTypography.displayName = 'Typography';\n","/**\n * AccountStack Component\n * Displays user account information with avatar, badge, and user details\n * Designed for use in AppBar/Toolbar components\n */\n\nimport React from 'react';\nimport { Box } from '../Box';\nimport { Stack } from '../Stack';\nimport { Avatar } from '../Avatar';\nimport { Badge } from '../Badge';\nimport { Typography } from '../Typography';\nimport type { AccountStackProps } from './AccountStack.types';\n\nexport const AccountStack = React.forwardRef<HTMLDivElement, AccountStackProps>(\n (\n {\n user = true,\n userAccountInfo = true,\n notifications = true,\n userName = 'John Doe',\n userEmail = 'john.doe@example.com',\n avatarSrc,\n avatarAlt = 'User avatar',\n notificationCount,\n avatarPosition = 'left',\n sx,\n ...props\n },\n ref\n ) => {\n const avatarElement = user && (\n <Badge\n overlap=\"circular\"\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n variant={notifications && !notificationCount ? 'dot' : 'standard'}\n invisible={!notifications}\n color=\"error\"\n badgeContent={notificationCount}\n >\n <Avatar src={avatarSrc} alt={avatarAlt} sx={{ width: 40, height: 40 }} />\n </Badge>\n );\n\n const userInfoElement = userAccountInfo && (\n <Stack direction=\"column\" spacing={0} sx={{ alignItems: 'flex-start' }}>\n <Typography variant=\"subtitle2\" sx={{ lineHeight: 1.2, fontWeight: 600 }}>\n {userName}\n </Typography>\n <Typography\n variant=\"subtitle2\"\n sx={{\n lineHeight: 1.2,\n fontWeight: 400,\n color: 'text.secondary',\n fontSize: '0.75rem',\n }}\n >\n {userEmail}\n </Typography>\n </Stack>\n );\n\n return (\n <Box\n ref={ref}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: 40, // spacing(5)\n gap: 2, // spacing(2) = 16px\n ...sx,\n }}\n {...props}\n >\n {avatarPosition === 'left' ? (\n <>\n {avatarElement}\n {userInfoElement}\n </>\n ) : (\n <>\n {userInfoElement}\n {avatarElement}\n </>\n )}\n </Box>\n );\n }\n);\n\nAccountStack.displayName = 'AccountStack';\n\nexport type { AccountStackProps };\nexport default AccountStack;\n","/**\n * Theme Helper Types\n * \n * Helper types and functions for working with the extended MUI theme.\n * Provides type-safe access to custom theme properties.\n */\n\nimport type { Theme } from '@mui/material/styles';\n\n/**\n * Extended Shape interface with custom border radius values\n */\nexport interface ExtendedShape {\n borderRadius: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n rounded: number;\n}\n\n/**\n * Get typed shape object from theme\n * \n * @param theme - MUI theme object\n * @returns Shape object with custom border radius values\n * \n * @example\n * ```tsx\n * const theme = useTheme();\n * const shape = getThemeShape(theme);\n * console.log(shape.rounded); // 9999\n * ```\n */\nexport const getThemeShape = (theme: Theme): ExtendedShape => {\n return theme.shape as unknown as ExtendedShape;\n};\n\n/**\n * Extended Palette Color interface with state tokens\n */\nexport interface ExtendedPaletteColor {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n _states?: {\n hover?: string;\n selected?: string;\n focus?: string;\n focusVisible?: string;\n };\n}\n\n/**\n * Get typed palette color with states\n * \n * @param color - Palette color object\n * @returns Color object with state tokens\n * \n * @example\n * ```tsx\n * const theme = useTheme();\n * const primaryColor = getExtendedColor(theme.palette.primary);\n * console.log(primaryColor._states?.hover); // hover color\n * ```\n */\nexport const getExtendedColor = (color: any): ExtendedPaletteColor => {\n return color as ExtendedPaletteColor;\n};\n","/**\n * Button Component\n *\n * Primary action component for the MRS Design System.\n * Wraps Material-UI Button with custom theme tokens.\n *\n * @figma https://figma.com/design/ESNP5KunFotGObfcuXZ9Op/MRS---Material-UI-v.7.2.0\n * @see {@link https://mui.com/material-ui/react-button/}\n */\n\nimport React from 'react';\nimport MuiButton from '@mui/material/Button';\nimport { useTheme } from '@mui/material/styles';\nimport type { ButtonProps } from './Button.types';\nimport { getThemeShape } from '../../../types/theme-helpers';\n\n/**\n * Button component\n *\n * @param props - Button component props\n * @returns Button component\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, sx, ...props }, ref) => {\n const theme = useTheme();\n const shape = getThemeShape(theme);\n\n return (\n <MuiButton\n ref={ref}\n {...props}\n sx={{\n // Use theme tokens for consistent styling\n textTransform: 'none', // Override MUI default uppercase\n borderRadius: shape.rounded, // Use rounded shape token (9999 for pill shape)\n fontWeight: theme.typography.fontWeightSemiBold,\n // Allow custom sx to override defaults\n ...sx,\n }}\n >\n {children}\n </MuiButton>\n );\n }\n);\n\nButton.displayName = 'Button';\n","/**\n * Checkbox Component\n *\n * Checkbox component for the MRS Design System.\n * Wraps Material-UI Checkbox with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6543-43052&m=dev\n * @see {@link https://mui.com/material-ui/react-checkbox/}\n */\n\nimport React from 'react';\nimport MuiCheckbox from '@mui/material/Checkbox';\nimport type { CheckboxProps } from './Checkbox.types';\n\n/**\n * Checkbox component\n *\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @param props - Checkbox component props\n * @returns Checkbox component\n */\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n checked,\n indeterminate = false,\n size = 'medium',\n color = 'primary',\n disabled = false,\n disableRipple = false,\n id,\n inputProps,\n inputRef,\n onChange,\n required = false,\n value,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiCheckbox\n ref={ref}\n checked={checked}\n indeterminate={indeterminate}\n size={size}\n color={color}\n disabled={disabled}\n disableRipple={disableRipple}\n id={id}\n inputProps={inputProps}\n inputRef={inputRef}\n onChange={onChange}\n required={required}\n value={value}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n","/**\n * Chip Component\n *\n * Chip component for the MRS Design System.\n * Wraps Material-UI Chip with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6588:47683\n * @see {@link https://mui.com/material-ui/react-chip/}\n */\n\nimport React from 'react';\nimport MuiChip from '@mui/material/Chip';\nimport type { ChipProps } from './Chip.types';\n\n/**\n * Chip component\n *\n * Chips are compact elements that represent an input, attribute, or action.\n *\n * @param props - Chip component props\n * @returns Chip component\n */\nexport const Chip = React.forwardRef<HTMLDivElement, ChipProps>(\n (\n {\n label,\n size = 'medium',\n color = 'default',\n variant = 'filled',\n disabled = false,\n clickable = false,\n avatar,\n icon,\n onDelete,\n deleteIcon,\n onClick,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiChip\n ref={ref}\n label={label}\n size={size}\n color={color}\n variant={variant}\n disabled={disabled}\n clickable={clickable || !!onClick}\n avatar={avatar}\n icon={icon}\n onDelete={onDelete}\n deleteIcon={deleteIcon}\n onClick={onClick}\n sx={sx}\n {...props}\n />\n );\n }\n);\n\nChip.displayName = 'Chip';\n","/**\n * CircularProgress Component\n *\n * CircularProgress component for the MRS Design System.\n * Wraps Material-UI CircularProgress with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6586:47016\n * @see {@link https://mui.com/material-ui/react-progress/#circular}\n */\n\nimport React from 'react';\nimport MuiCircularProgress from '@mui/material/CircularProgress';\nimport { Box, Typography } from '@mui/material';\nimport type { CircularProgressProps } from './CircularProgress.types';\n\n/**\n * CircularProgress component\n *\n * Progress indicators commonly known as spinners, express an unspecified wait time\n * or display the length of a process.\n *\n * @param props - CircularProgress component props\n * @returns CircularProgress component\n */\nexport const CircularProgress = React.forwardRef<HTMLSpanElement, CircularProgressProps>(\n (\n {\n size = 32,\n color = 'primary',\n showLabel = false,\n value = 0,\n variant = 'indeterminate',\n ...props\n },\n ref\n ) => {\n if (showLabel && variant === 'determinate') {\n return (\n <Box\n ref={ref}\n sx={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <MuiCircularProgress\n variant={variant}\n color={color}\n size={size}\n value={value}\n {...props}\n />\n <Box\n sx={{\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Typography\n variant=\"caption\"\n component=\"div\"\n sx={{\n fontSize: size === 16 ? '0.625rem' : '0.75rem',\n lineHeight: 1,\n }}\n >\n {`${Math.round(value)}%`}\n </Typography>\n </Box>\n </Box>\n );\n }\n\n return (\n <MuiCircularProgress\n ref={ref}\n variant={variant}\n color={color}\n size={size}\n value={value}\n {...props}\n />\n );\n }\n);\n\nCircularProgress.displayName = 'CircularProgress';\n","/**\n * Container component\n * Wraps Material-UI Container with design system theme\n */\n\nimport React from 'react';\nimport MuiContainer from '@mui/material/Container';\nimport type { ContainerProps } from './Container.types';\n\n/**\n * Container component - centers content horizontally with max-width constraints\n * The most basic layout element that provides responsive horizontal padding\n *\n * @example\n * ```tsx\n * <Container maxWidth=\"lg\">\n * <Typography>Content</Typography>\n * </Container>\n * ```\n */\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ children, maxWidth = 'lg', ...props }, ref) => {\n return (\n <MuiContainer ref={ref} maxWidth={maxWidth} {...props}>\n {children}\n </MuiContainer>\n );\n }\n);\n\nContainer.displayName = 'Container';\n\nexport default Container;\n","/**\n * Divider Component\n *\n * Separator component for the MRS Design System.\n * Wraps Material-UI Divider with custom theme tokens.\n *\n * @figma Horizontal: https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6645:53005\n * @figma Vertical: https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6645:53007\n * @see {@link https://mui.com/material-ui/react-divider/}\n */\n\nimport React from 'react';\nimport MuiDivider from '@mui/material/Divider';\nimport { useTheme } from '@mui/material/styles';\nimport type { DividerProps } from './Divider.types';\n\n/**\n * Divider component\n *\n * A thin line that groups content in lists and layouts.\n * Supports both horizontal and vertical orientations.\n *\n * @param props - Divider component props\n * @returns Divider component\n */\nexport const Divider = React.forwardRef<HTMLHRElement, DividerProps>(\n ({ orientation = 'horizontal', sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiDivider\n ref={ref}\n orientation={orientation}\n {...props}\n sx={{\n // Use theme divider color token\n borderColor: theme.palette.divider,\n ...sx,\n }}\n />\n );\n }\n);\n\nDivider.displayName = 'Divider';\n","/**\n * FormControlLabel component\n * Wraps Material-UI FormControlLabel with design system theme\n */\n\nimport React from 'react';\nimport MuiFormControlLabel from '@mui/material/FormControlLabel';\nimport type { Theme } from '@mui/material/styles';\nimport type { FormControlLabelProps } from './FormControlLabel.types';\n\n/**\n * FormControlLabel component - label wrapper for form controls\n * Drop-in replacement for checkboxes, radio buttons, and switches\n *\n * @example\n * ```tsx\n * <FormControlLabel\n * control={<Checkbox />}\n * label=\"Remember me\"\n * />\n * ```\n */\nexport const FormControlLabel = React.forwardRef<HTMLLabelElement, FormControlLabelProps>(\n ({ control, label, sx, ...props }, ref) => {\n return (\n <MuiFormControlLabel\n ref={ref}\n control={control}\n label={label}\n sx={{\n '& .MuiFormControlLabel-label': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontSize: (theme: Theme) => theme.typography.body1.fontSize,\n lineHeight: (theme: Theme) => theme.typography.body1.lineHeight,\n },\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nFormControlLabel.displayName = 'FormControlLabel';\n\nexport default FormControlLabel;\n","/**\n * FormGroup component\n * Wraps Material-UI FormGroup with design system theme\n */\n\nimport React from 'react';\nimport MuiFormGroup from '@mui/material/FormGroup';\nimport type { FormGroupProps } from './FormGroup.types';\n\n/**\n * FormGroup component - groups form controls\n * Provides a helpful wrapper used to group selection control components\n *\n * @example\n * ```tsx\n * <FormGroup>\n * <FormControlLabel control={<Checkbox />} label=\"Option 1\" />\n * <FormControlLabel control={<Checkbox />} label=\"Option 2\" />\n * </FormGroup>\n * ```\n */\nexport const FormGroup = React.forwardRef<HTMLDivElement, FormGroupProps>(\n ({ children, ...props }, ref) => {\n return (\n <MuiFormGroup ref={ref} {...props}>\n {children}\n </MuiFormGroup>\n );\n }\n);\n\nFormGroup.displayName = 'FormGroup';\n\nexport default FormGroup;\n","/**\n * Grid component\n * Wraps Material-UI Grid2 with design system theme\n */\n\nimport React from 'react';\nimport MuiGrid from '@mui/material/Grid2';\nimport type { GridProps } from './Grid.types';\n\n/**\n * Grid component - responsive grid layout using CSS Grid\n * Uses the new Grid2 component from MUI for improved performance and flexibility\n *\n * @example\n * ```tsx\n * <Grid container spacing={2}>\n * <Grid size={{ xs: 12, md: 6 }}>\n * <Item>1</Item>\n * </Grid>\n * <Grid size={{ xs: 12, md: 6 }}>\n * <Item>2</Item>\n * </Grid>\n * </Grid>\n * ```\n */\nexport const Grid = React.forwardRef<HTMLDivElement, GridProps>(({ children, ...props }, ref) => {\n return (\n <MuiGrid ref={ref} {...props}>\n {children}\n </MuiGrid>\n );\n});\n\nGrid.displayName = 'Grid';\n\nexport default Grid;\n","/**\n * Icon Component\n *\n * Icon display component for the MRS Design System.\n * Supports both SVG icons from @mui/icons-material and Font icons.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6594:47648\n * @see {@link https://mui.com/material-ui/icons/}\n */\n\nimport React from 'react';\nimport MuiIcon from '@mui/material/Icon';\nimport type { IconProps, IconSvgProps, IconFontProps } from './Icon.types';\n\n/**\n * Type guard to check if props are for SVG icon\n */\nfunction isSvgIcon(props: IconProps): props is IconSvgProps {\n return !props.type || props.type === 'svg';\n}\n\n/**\n * Type guard to check if props are for Font icon\n */\nfunction isFontIcon(props: IconProps): props is IconFontProps {\n return props.type === 'font';\n}\n\n/**\n * Icon component\n *\n * Displays icons with predefined sizes from the theme.\n * Supports both SVG icons from @mui/icons-material and Font icons from Material Icons.\n *\n * @param props - Icon component props\n * @returns Icon component\n */\nexport const Icon = React.forwardRef<HTMLElement, IconProps>((props, ref) => {\n const { size = 'medium' } = props;\n\n // Map size to MUI fontSize\n const fontSize = size === 'inherit' ? 'inherit' : size;\n\n // Render SVG Icon\n if (isSvgIcon(props)) {\n const { icon: IconComponent, sx, ...svgProps } = props;\n\n return (\n <IconComponent\n ref={ref as React.Ref<SVGSVGElement>}\n fontSize={fontSize}\n {...svgProps}\n sx={{\n // Use theme color tokens\n color: 'inherit',\n ...sx,\n }}\n />\n );\n }\n\n // Render Font Icon\n if (isFontIcon(props)) {\n const { iconName, sx, ...fontProps } = props;\n\n return (\n <MuiIcon\n ref={ref}\n fontSize={fontSize}\n {...fontProps}\n sx={{\n // Use theme color tokens\n color: 'inherit',\n ...sx,\n }}\n >\n {iconName}\n </MuiIcon>\n );\n }\n\n return null;\n});\n\nIcon.displayName = 'Icon';\n","/**\n * IconButton Component\n *\n * Icon button component for the MRS Design System.\n * Wraps Material-UI IconButton with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6557:38545\n * @see {@link https://mui.com/material-ui/react-button/#icon-button}\n */\n\nimport React from 'react';\nimport MuiIconButton from '@mui/material/IconButton';\nimport { useTheme } from '@mui/material/styles';\nimport type { IconButtonProps } from './IconButton.types';\n\n/**\n * IconButton component\n *\n * Icon buttons are commonly found in app bars and toolbars.\n * Icons are also appropriate for toggle buttons that allow a single choice to be selected or deselected.\n *\n * @param props - IconButton component props\n * @returns IconButton component\n */\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ children, color = 'default', size = 'medium', sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiIconButton\n ref={ref}\n color={color}\n size={size}\n {...props}\n sx={{\n // Use theme tokens for consistency\n fontFamily: theme.typography.fontFamily,\n ...sx,\n }}\n >\n {children}\n </MuiIconButton>\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n","/**\n * LinearProgress Component\n *\n * LinearProgress component for the MRS Design System.\n * Wraps Material-UI LinearProgress with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6586:46855\n * @see {@link https://mui.com/material-ui/react-progress/#linear}\n */\n\nimport React from 'react';\nimport MuiLinearProgress from '@mui/material/LinearProgress';\nimport { Box, Typography } from '@mui/material';\nimport type { LinearProgressProps } from './LinearProgress.types';\n\n/**\n * LinearProgress component\n *\n * Progress indicators commonly known as spinners, express an unspecified wait time\n * or display the length of a process.\n *\n * @param props - LinearProgress component props\n * @returns LinearProgress component\n */\nexport const LinearProgress = React.forwardRef<HTMLSpanElement, LinearProgressProps>(\n (\n {\n color = 'primary',\n showLabel = false,\n value = 0,\n valueBuffer,\n variant = 'indeterminate',\n sx,\n ...props\n },\n ref\n ) => {\n if (showLabel && (variant === 'determinate' || variant === 'buffer')) {\n return (\n <Box\n ref={ref}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n minWidth: 200,\n ...sx,\n }}\n >\n <Box sx={{ flexGrow: 1 }}>\n <MuiLinearProgress\n variant={variant}\n color={color}\n value={value}\n valueBuffer={valueBuffer}\n {...props}\n />\n </Box>\n <Box sx={{ minWidth: 35 }}>\n <Typography variant=\"body2\" sx={{ color: 'text.primary' }}>\n {`${Math.round(value)}%`}\n </Typography>\n </Box>\n </Box>\n );\n }\n\n return (\n <MuiLinearProgress\n ref={ref}\n variant={variant}\n color={color}\n value={value}\n valueBuffer={valueBuffer}\n sx={{\n minWidth: 200,\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nLinearProgress.displayName = 'LinearProgress';\n","/**\n * Link component\n * Wraps Material-UI Link with design system theme\n */\n\nimport React from 'react';\nimport MuiLink from '@mui/material/Link';\nimport type { Theme } from '@mui/material/styles';\nimport type { LinkProps } from './Link.types';\n\n/**\n * Link component - accessible hyperlink\n * Wraps MUI Link with design system theme integration\n *\n * @example\n * ```tsx\n * <Link href=\"https://example.com\">Click here</Link>\n * <Link href=\"/about\" color=\"primary\" underline=\"hover\">About</Link>\n * ```\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ color = 'primary', underline = 'hover', variant = 'body1', children, sx, ...props }, ref) => {\n return (\n <MuiLink\n ref={ref}\n color={color}\n underline={underline}\n variant={variant}\n sx={{\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n cursor: 'pointer',\n '&:focus-visible': {\n outline: (theme: Theme) => `2px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n borderRadius: '2px',\n },\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiLink>\n );\n }\n);\n\nLink.displayName = 'Link';\n\nexport default Link;\n","import React from 'react';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport { Box } from '@mui/material';\nimport '../../../styles/material-symbols.css';\n\nexport interface MaterialSymbolProps {\n /**\n * Icon name from Material Symbols library\n * Use snake_case format (e.g., \"home\", \"check_circle\", \"arrow_forward\")\n * Browse icons: https://fonts.google.com/icons\n *\n * @example \"close\"\n * @example \"check\"\n * @example \"settings\"\n * @example \"account_circle\"\n */\n icon: string;\n\n /**\n * Icon size\n * - 'small': 20px\n * - 'medium': 24px (default)\n * - 'large': 36px\n * - number: Custom size in pixels\n *\n * @default \"medium\"\n */\n size?: 'small' | 'medium' | 'large' | 'inherit' | number;\n\n /**\n * Fill style - controls whether icon is outlined or filled\n * - 0: Outlined (default)\n * - 1: Filled\n *\n * @default 0\n */\n fill?: 0 | 1;\n\n /**\n * Weight - thickness of icon strokes\n * - 100: Thin\n * - 200: Extra Light\n * - 300: Light (MRS default)\n * - 400: Regular\n * - 500: Medium\n * - 600: Semi Bold\n * - 700: Bold\n *\n * @default 300\n */\n weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700;\n\n /**\n * Grade - visual weight adjustment without changing physical size\n * Range: -50 to 200\n * - Negative values: Lighter appearance\n * - Positive values: Heavier appearance\n *\n * @default 100\n */\n grade?: number;\n\n /**\n * Color - can be any valid CSS color or MUI theme path\n *\n * @example \"red\"\n * @example \"#00686f\"\n * @example \"primary.main\"\n */\n color?: string;\n\n /**\n * Additional CSS classes\n */\n className?: string;\n\n /**\n * MUI sx prop for custom styling\n */\n sx?: SxProps<Theme>;\n\n /**\n * ARIA label for accessibility\n * Recommended for icon-only buttons or when icon conveys meaning\n */\n ariaLabel?: string;\n\n /**\n * ARIA hidden - hides icon from screen readers\n * Use when icon is purely decorative\n *\n * @default false\n */\n ariaHidden?: boolean;\n\n /**\n * Click handler - makes icon clickable\n */\n onClick?: (event: React.MouseEvent<HTMLSpanElement>) => void;\n}\n\n/**\n * MaterialSymbol Component\n *\n * Renders icons from Google's Material Symbols library using variable font technology.\n * Provides customizable weight, fill, grade, and size properties.\n *\n * **MRS Design System Defaults:**\n * - Variant: Rounded\n * - Weight: 300 (Light)\n * - Fill: 0 (Outlined)\n * - Grade: 100 (Lighter visual weight)\n *\n * @example\n * Basic usage\n * ```tsx\n * <MaterialSymbol icon=\"home\" />\n * ```\n *\n * @example\n * With size and fill\n * ```tsx\n * <MaterialSymbol icon=\"favorite\" size=\"large\" fill={1} />\n * ```\n *\n * @example\n * With custom color and weight\n * ```tsx\n * <MaterialSymbol\n * icon=\"settings\"\n * color=\"primary.main\"\n * weight={500}\n * />\n * ```\n *\n * @example\n * Clickable icon\n * ```tsx\n * <MaterialSymbol\n * icon=\"close\"\n * onClick={() => console.log('clicked')}\n * ariaLabel=\"Close\"\n * />\n * ```\n */\nexport const MaterialSymbol = React.forwardRef<HTMLSpanElement, MaterialSymbolProps>(\n (\n {\n icon,\n size = 'medium',\n fill = 0,\n weight = 300,\n grade = 100,\n color,\n className = '',\n sx,\n ariaLabel,\n ariaHidden = false,\n onClick,\n ...props\n },\n ref\n ) => {\n // Calculate font size and optical size based on size prop\n let fontSize: number | string;\n let opticalSize: number;\n\n if (size === 'inherit') {\n fontSize = 'inherit';\n opticalSize = 24; // Default optical size for inherit\n } else if (typeof size === 'number') {\n fontSize = size;\n opticalSize = size;\n } else {\n const sizeMap = {\n small: { fontSize: 20, opsz: 20 },\n medium: { fontSize: 24, opsz: 24 },\n large: { fontSize: 36, opsz: 40 },\n };\n fontSize = sizeMap[size].fontSize;\n opticalSize = sizeMap[size].opsz;\n }\n\n // Construct font-variation-settings string\n const fontVariationSettings = `'FILL' ${fill}, 'wght' ${weight}, 'GRAD' ${grade}, 'opsz' ${opticalSize}`;\n\n // Build class names\n const classNames = ['material-symbols-rounded', className].filter(Boolean).join(' ');\n\n // Determine if icon is clickable\n const isClickable = Boolean(onClick);\n\n return (\n <Box\n ref={ref}\n component=\"span\"\n className={classNames}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden}\n role={ariaLabel && !ariaHidden ? 'img' : undefined}\n onClick={onClick}\n style={{\n // Use inline style for fontVariationSettings to ensure it renders properly\n fontVariationSettings,\n }}\n sx={{\n fontSize: typeof fontSize === 'number' ? `${fontSize}px` : fontSize,\n color: color || 'inherit',\n userSelect: 'none',\n cursor: isClickable ? 'pointer' : 'inherit',\n ...(isClickable && {\n transition: 'opacity 0.2s ease-in-out',\n '&:hover': {\n opacity: 0.7,\n },\n '&:active': {\n opacity: 0.5,\n },\n }),\n ...sx,\n }}\n {...props}\n >\n {icon}\n </Box>\n );\n }\n);\n\nMaterialSymbol.displayName = 'MaterialSymbol';\n\nexport default MaterialSymbol;\n","/**\n * MenuItem Component\n *\n * Menu item component for the MRS Design System.\n * Wraps Material-UI MenuItem with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-menu/}\n */\n\nimport React from 'react';\nimport MuiMenuItem from '@mui/material/MenuItem';\nimport type { Theme } from '@mui/material/styles';\nimport type { MenuItemProps } from './MenuItem.types';\n\n/**\n * MenuItem component\n *\n * Menu items are used in menus, selects, and other components\n * to display selectable options.\n *\n * @param props - MenuItem component props\n * @returns MenuItem component\n *\n * @example\n * ```tsx\n * // In a Select\n * <Select>\n * <MenuItem value=\"option1\">Option 1</MenuItem>\n * <MenuItem value=\"option2\">Option 2</MenuItem>\n * </Select>\n *\n * // Disabled\n * <MenuItem value=\"disabled\" disabled>\n * Disabled Option\n * </MenuItem>\n *\n * // Selected\n * <MenuItem value=\"selected\" selected>\n * Selected Option\n * </MenuItem>\n * ```\n */\nexport const MenuItem = React.forwardRef<HTMLLIElement, MenuItemProps>(\n ({ children, sx, ...props }, ref) => {\n return (\n <MuiMenuItem\n ref={ref}\n sx={{\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontSize: (theme: Theme) => theme.typography.body1.fontSize,\n fontWeight: (theme: Theme) => theme.typography.fontWeightRegular,\n lineHeight: (theme: Theme) => theme.typography.body1.lineHeight,\n // Hover state\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n },\n // Selected state\n '&.Mui-selected': {\n backgroundColor: (theme: Theme) => theme.palette.action.selected,\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.selected,\n },\n },\n // Focus state\n '&.Mui-focusVisible': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n },\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiMenuItem>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n\nexport default MenuItem;\n","/**\n * Paper Component\n *\n * Paper component for the MRS Design System.\n * Wraps Material-UI Paper with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6584:46711\n * @see {@link https://mui.com/material-ui/react-paper/}\n */\n\nimport React from 'react';\nimport MuiPaper from '@mui/material/Paper';\nimport type { PaperProps } from './Paper.types';\n\n/**\n * Paper component\n *\n * The Paper component is a container that displays content with elevation and optional borders.\n * The elevation can be used to establish a hierarchy between other content.\n *\n * @param props - Paper component props\n * @returns Paper component\n */\nexport const Paper = React.forwardRef<HTMLDivElement, PaperProps>(\n ({ children, variant = 'elevation', elevation = 1, square = false, sx, ...props }, ref) => {\n return (\n <MuiPaper\n ref={ref}\n variant={variant}\n elevation={variant === 'elevation' ? elevation : 0}\n square={square}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiPaper>\n );\n }\n);\n\nPaper.displayName = 'Paper';\n","/**\n * Radio Component\n *\n * Radio component for the MRS Design System.\n * Wraps Material-UI Radio with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6558-39273&m=dev\n * @see {@link https://mui.com/material-ui/react-radio/}\n */\n\nimport React from 'react';\nimport MuiRadio from '@mui/material/Radio';\nimport type { RadioProps } from './Radio.types';\n\n/**\n * Radio component\n *\n * Radio buttons allow the user to select one option from a set.\n * Use radio buttons when the user needs to see all available options.\n * If available options can be collapsed, consider using a Select component because it uses less space.\n *\n * @param props - Radio component props\n * @returns Radio component\n */\nexport const Radio = React.forwardRef<HTMLButtonElement, RadioProps>(\n (\n {\n checked,\n size = 'medium',\n color = 'primary',\n disabled = false,\n disableRipple = false,\n required = false,\n onChange,\n value,\n id,\n inputProps,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiRadio\n ref={ref}\n checked={checked}\n size={size}\n color={color}\n disabled={disabled}\n disableRipple={disableRipple}\n required={required}\n onChange={onChange}\n value={value}\n id={id}\n inputProps={inputProps}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nRadio.displayName = 'Radio';\n","/**\n * RadioGroup component\n * Wraps Material-UI RadioGroup with design system theme\n */\n\nimport React from 'react';\nimport MuiRadioGroup from '@mui/material/RadioGroup';\nimport type { RadioGroupProps } from './RadioGroup.types';\n\n/**\n * RadioGroup component - groups Radio buttons together\n * Provides a wrapper around a set of Radio components\n *\n * @example\n * ```tsx\n * <RadioGroup value={value} onChange={handleChange}>\n * <FormControlLabel value=\"option1\" control={<Radio />} label=\"Option 1\" />\n * <FormControlLabel value=\"option2\" control={<Radio />} label=\"Option 2\" />\n * </RadioGroup>\n * ```\n */\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ children, ...props }, ref) => {\n return (\n <MuiRadioGroup ref={ref} {...props}>\n {children}\n </MuiRadioGroup>\n );\n }\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport default RadioGroup;\n","/**\n * Select Component\n *\n * Select component for the MRS Design System.\n * Wraps Material-UI Select with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-select/}\n */\n\nimport React from 'react';\nimport MuiSelect from '@mui/material/Select';\nimport type { Theme } from '@mui/material/styles';\nimport type { SelectProps } from './Select.types';\n\n/**\n * Select component\n *\n * Select components are used for collecting user provided information from a list of options.\n * Supports single and multiple selection, different variants, sizes, and states.\n *\n * @param props - Select component props\n * @returns Select component\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Select value={age} onChange={handleChange}>\n * <MenuItem value={10}>Ten</MenuItem>\n * <MenuItem value={20}>Twenty</MenuItem>\n * <MenuItem value={30}>Thirty</MenuItem>\n * </Select>\n *\n * // With label (use FormControl)\n * <FormControl>\n * <InputLabel>Age</InputLabel>\n * <Select value={age} onChange={handleChange}>\n * <MenuItem value={10}>Ten</MenuItem>\n * <MenuItem value={20}>Twenty</MenuItem>\n * </Select>\n * </FormControl>\n *\n * // Multiple selection\n * <Select multiple value={values} onChange={handleChange}>\n * <MenuItem value=\"option1\">Option 1</MenuItem>\n * <MenuItem value=\"option2\">Option 2</MenuItem>\n * </Select>\n * ```\n */\nexport const Select = React.forwardRef<any, SelectProps>(\n (\n { variant = 'outlined', color = 'primary', size = 'medium', fullWidth = false, sx, ...props },\n ref\n ) => {\n return (\n <MuiSelect\n ref={ref}\n variant={variant}\n color={color}\n size={size}\n fullWidth={fullWidth}\n sx={{\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n // Outlined variant specific styles\n ...(variant === 'outlined' && {\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: (theme: Theme) =>\n theme.palette._components?.input?.outlined?.enabledBorder || theme.palette.divider,\n },\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: (theme: Theme) => theme.palette.text.primary,\n },\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n borderWidth: 2,\n },\n }),\n // Filled variant specific styles\n ...(variant === 'filled' && {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n '&:hover': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.09)',\n },\n '&.Mui-focused': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n },\n }),\n // Standard variant specific styles\n ...(variant === 'standard' && {\n '&:before': {\n borderBottomColor: (theme: Theme) =>\n theme.palette._components?.input?.standard?.enabledBorder || theme.palette.divider,\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottomColor: (theme: Theme) => theme.palette.text.primary,\n },\n }),\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","/**\n * Skeleton Component\n *\n * Skeleton component for the MRS Design System.\n * Wraps Material-UI Skeleton with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6596:49017\n * @see {@link https://mui.com/material-ui/react-skeleton/}\n */\n\nimport React from 'react';\nimport MuiSkeleton from '@mui/material/Skeleton';\nimport type { SkeletonProps } from './Skeleton.types';\n\n/**\n * Skeleton component\n *\n * Display a placeholder preview of your content before the data gets loaded\n * to reduce load-time frustration.\n *\n * @param props - Skeleton component props\n * @returns Skeleton component\n */\nexport const Skeleton = React.forwardRef<HTMLSpanElement, SkeletonProps>(\n ({ variant = 'text', width, height, animation = 'pulse', ...props }, ref) => {\n // Set default dimensions based on variant\n let defaultWidth = width;\n let defaultHeight = height;\n\n if (variant === 'text' && !width) {\n defaultWidth = 120;\n }\n if (variant === 'text' && !height) {\n defaultHeight = 12;\n }\n if (variant === 'circular' && !width && !height) {\n defaultWidth = 40;\n defaultHeight = 40;\n }\n if (variant === 'rectangular' && !width && !height) {\n defaultWidth = 120;\n defaultHeight = 120;\n }\n\n return (\n <MuiSkeleton\n ref={ref}\n variant={variant}\n width={defaultWidth}\n height={defaultHeight}\n animation={animation}\n {...props}\n />\n );\n }\n);\n\nSkeleton.displayName = 'Skeleton';\n","/**\n * Slider Component\n *\n * Slider component for the MRS Design System.\n * Wraps Material-UI Slider with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6562-39045&m=dev\n * @see {@link https://mui.com/material-ui/react-slider/}\n */\n\nimport React from 'react';\nimport MuiSlider from '@mui/material/Slider';\nimport type { SliderProps } from './Slider.types';\n\n/**\n * Slider component\n *\n * Sliders allow users to make selections from a range of values.\n * Sliders reflect a range of values along a bar, from which users may select a single value.\n * They are ideal for adjusting settings such as volume, brightness, or applying image filters.\n *\n * @param props - Slider component props\n * @returns Slider component\n */\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n size = 'medium',\n color = 'primary',\n orientation = 'horizontal',\n disabled = false,\n marks = false,\n step = 1,\n min = 0,\n max = 100,\n valueLabelDisplay = 'off',\n track = 'normal',\n disableSwap = false,\n value,\n defaultValue,\n onChange,\n onChangeCommitted,\n valueLabelFormat,\n scale,\n getAriaValueText,\n name,\n id,\n component,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiSlider\n ref={ref}\n size={size}\n color={color}\n orientation={orientation}\n disabled={disabled}\n marks={marks}\n step={step}\n min={min}\n max={max}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n valueLabelDisplay={valueLabelDisplay}\n valueLabelFormat={valueLabelFormat}\n track={track}\n disableSwap={disableSwap}\n scale={scale}\n getAriaValueText={getAriaValueText}\n name={name}\n id={id}\n {...(component && { component })}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nSlider.displayName = 'Slider';\n","/**\n * Switch Component\n *\n * Switch component for the MRS Design System.\n * Wraps Material-UI Switch with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6564-39128&m=dev\n * @see {@link https://mui.com/material-ui/react-switch/}\n */\n\nimport React from 'react';\nimport MuiSwitch from '@mui/material/Switch';\nimport type { SwitchProps } from './Switch.types';\n\n/**\n * Switch component\n *\n * Switches toggle the state of a single setting on or off.\n *\n * @param props - Switch component props\n * @returns Switch component\n */\n// MUI Switch internally renders button element for accessibility\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n checked,\n color = 'primary',\n size = 'medium',\n disabled = false,\n disableRipple = false,\n id,\n inputProps,\n inputRef,\n onChange,\n required = false,\n value,\n sx,\n edge,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiSwitch\n ref={ref}\n checked={checked}\n color={color}\n size={size}\n disabled={disabled}\n disableRipple={disableRipple}\n id={id}\n inputProps={inputProps}\n inputRef={inputRef}\n onChange={onChange}\n required={required}\n value={value}\n sx={sx}\n edge={edge}\n {...restProps}\n />\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n","/**\n * TextField Component\n *\n * Text input component for the MRS Design System.\n * Wraps Material-UI TextField with custom theme tokens.\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=6570-48313&m=dev\n * @see {@link https://mui.com/material-ui/react-text-field/}\n */\n\nimport React from 'react';\nimport MuiTextField from '@mui/material/TextField';\nimport type { Theme } from '@mui/material/styles';\nimport type { TextFieldProps } from './TextField.types';\n\n/**\n * TextField component\n *\n * Text fields let users enter and edit text.\n * Supports multiple variants (outlined, filled, standard),\n * sizes (small, medium), and states (error, disabled, etc.).\n *\n * @param props - TextField component props\n * @returns TextField component\n *\n * @example\n * ```tsx\n * // Basic usage\n * <TextField label=\"Email\" placeholder=\"Enter your email\" />\n *\n * // With helper text and error\n * <TextField\n * label=\"Password\"\n * type=\"password\"\n * error\n * helperText=\"Password is required\"\n * />\n *\n * // Multiline\n * <TextField\n * label=\"Description\"\n * multiline\n * rows={4}\n * placeholder=\"Enter description\"\n * />\n * ```\n */\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\n (\n { variant = 'outlined', color = 'primary', size = 'medium', fullWidth = false, sx, ...props },\n ref\n ) => {\n return (\n <MuiTextField\n ref={ref}\n variant={variant}\n color={color}\n size={size}\n fullWidth={fullWidth}\n sx={{\n // Custom styling can be added here if needed\n // Font family is inherited from theme\n '& .MuiInputBase-root': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n },\n '& .MuiInputLabel-root': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontWeight: (theme: Theme) => theme.typography.fontWeightRegular,\n },\n '& .MuiFormHelperText-root': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontSize: (theme: Theme) => theme.typography.caption.fontSize,\n },\n // Outlined variant specific styles\n ...(variant === 'outlined' && {\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: (theme: Theme) =>\n theme.palette._components?.input?.outlined?.enabledBorder ||\n theme.palette.divider,\n },\n '&:hover fieldset': {\n borderColor: (theme: Theme) => theme.palette.text.primary,\n },\n '&.Mui-focused fieldset': {\n borderWidth: 2,\n },\n },\n }),\n // Filled variant specific styles\n ...(variant === 'filled' && {\n '& .MuiFilledInput-root': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n '&:hover': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.09)',\n },\n '&.Mui-focused': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n },\n },\n }),\n // Standard variant specific styles\n ...(variant === 'standard' && {\n '& .MuiInput-root': {\n '&:before': {\n borderBottomColor: (theme: Theme) =>\n theme.palette._components?.input?.standard?.enabledBorder ||\n theme.palette.divider,\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottomColor: (theme: Theme) => theme.palette.text.primary,\n },\n },\n }),\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nTextField.displayName = 'TextField';\n\nexport default TextField;\n","/**\n * Toolbar Component\n *\n * A container component that provides layout for AppBar content.\n * Wraps Material-UI Toolbar with MRS Design System theming.\n *\n * @example\n * ```tsx\n * import { AppBar, Toolbar, Typography, IconButton } from '@atipicus/mrs-ui';\n * import MenuIcon from '@mui/icons-material/Menu';\n *\n * function MyToolbar() {\n * return (\n * <AppBar>\n * <Toolbar>\n * <IconButton edge=\"start\" color=\"inherit\">\n * <MenuIcon />\n * </IconButton>\n * <Typography variant=\"h6\">\n * My App\n * </Typography>\n * </Toolbar>\n * </AppBar>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/api/toolbar/}\n */\n\nimport React from 'react';\nimport MuiToolbar from '@mui/material/Toolbar';\nimport type { ToolbarProps } from './Toolbar.types';\n\n/**\n * Toolbar component\n *\n * Container for AppBar content with flex layout and vertical centering.\n * Provides regular (56px) and dense (48px) height variants.\n *\n * @param props - Toolbar component props\n * @returns Toolbar component\n */\nexport const Toolbar = React.forwardRef<HTMLDivElement, ToolbarProps>(\n ({ children, variant = 'regular', disableGutters = false, sx, ...props }, ref) => {\n return (\n <MuiToolbar ref={ref} variant={variant} disableGutters={disableGutters} sx={sx} {...props}>\n {children}\n </MuiToolbar>\n );\n }\n);\n\nToolbar.displayName = 'Toolbar';\n\nexport default Toolbar;\n","/**\n * Tooltip Component\n *\n * Tooltip component for the MRS Design System.\n * Wraps Material-UI Tooltip with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6590:48770\n * @see {@link https://mui.com/material-ui/react-tooltip/}\n */\n\nimport React from 'react';\nimport MuiTooltip from '@mui/material/Tooltip';\nimport { styled } from '@mui/material/styles';\nimport type { TooltipProps } from './Tooltip.types';\n\nimport * as tokens from '../../../tokens/generated/ts/tokens';\n\n/**\n * Styled Tooltip with custom theme tokens\n */\nconst StyledTooltip = styled(\n React.forwardRef<HTMLDivElement, TooltipProps>(({ className, ...props }, ref) => (\n <MuiTooltip ref={ref} {...props} classes={{ popper: className }} />\n ))\n)(({ theme }) => {\n const mode = theme.palette.mode;\n const tooltipBackground =\n mode === 'light'\n ? tokens.ComponentTooltipLightBackground\n : tokens.ComponentTooltipDarkBackground;\n const tooltipForeground =\n mode === 'light'\n ? tokens.ComponentTooltipLightForeground\n : tokens.ComponentTooltipDarkForeground;\n const tooltipBorderRadius =\n mode === 'light'\n ? tokens.ComponentTooltipLightBorderRadius\n : tokens.ComponentTooltipDarkBorderRadius;\n\n return {\n '& .MuiTooltip-tooltip': {\n backgroundColor: tooltipBackground,\n color: tooltipForeground,\n fontSize: tokens.PrimitivesTypographyFontSizeXs,\n fontWeight: theme.typography.fontWeightMedium,\n lineHeight: '14px',\n padding: `${tokens.PrimitivesSpacing05} ${tokens.PrimitivesSpacing1}`,\n borderRadius: tooltipBorderRadius,\n fontFamily: theme.typography.fontFamily,\n },\n '& .MuiTooltip-arrow': {\n color: tooltipBackground,\n },\n };\n});\n\nStyledTooltip.displayName = 'StyledTooltip';\n\n/**\n * Tooltip component\n *\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n *\n * @param props - Tooltip component props\n * @returns Tooltip component\n */\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n ({ children, arrow = true, placement = 'bottom', ...props }, ref) => {\n return (\n <StyledTooltip ref={ref} arrow={arrow} placement={placement} {...props}>\n {children}\n </StyledTooltip>\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n","/**\n * Accordion Component\n *\n * Accordion component for the MRS Design System.\n * Wraps Material-UI Accordion with custom theme tokens.\n *\n * Accordions contain creation flows and allow lightweight editing of an element.\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=10025-115758&m=dev\n * @see {@link https://v6.mui.com/material-ui/react-accordion/}\n */\n\nimport React from 'react';\nimport MuiAccordion from '@mui/material/Accordion';\nimport type { AccordionProps } from './Accordion.types';\n\n/**\n * Accordion component\n *\n * Accordions are commonly used for FAQ sections, settings panels, or anywhere\n * you need to progressively disclose information.\n *\n * @param props - Accordion component props\n * @returns Accordion component\n */\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n children,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded,\n onChange,\n square = false,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiAccordion\n ref={ref}\n defaultExpanded={defaultExpanded}\n disabled={disabled}\n disableGutters={disableGutters}\n expanded={expanded}\n onChange={onChange}\n square={square}\n sx={{\n // Theme applies default styling\n // Custom overrides can be added here or via sx prop\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordion>\n );\n }\n);\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n","/**\n * AccordionSummary Component\n *\n * AccordionSummary component for the MRS Design System.\n * Wraps Material-UI AccordionSummary - provides the header/clickable area for Accordion.\n *\n * @see {@link https://v6.mui.com/material-ui/api/accordion-summary/}\n */\n\nimport React from 'react';\nimport MuiAccordionSummary from '@mui/material/AccordionSummary';\nimport type { AccordionSummaryProps } from './Accordion.types';\n\n/**\n * AccordionSummary component\n *\n * The summary acts as the header for the accordion and controls the expand/collapse behavior.\n * It typically contains a title and an expand icon.\n *\n * @param props - AccordionSummary component props\n * @returns AccordionSummary component\n */\nexport const AccordionSummary = React.forwardRef<HTMLDivElement, AccordionSummaryProps>(\n ({ children, expandIcon, focusVisibleClassName, sx, ...props }, ref) => {\n return (\n <MuiAccordionSummary\n ref={ref}\n expandIcon={expandIcon}\n focusVisibleClassName={focusVisibleClassName}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordionSummary>\n );\n }\n);\n\nAccordionSummary.displayName = 'AccordionSummary';\n\nexport default AccordionSummary;\n","/**\n * AccordionDetails Component\n *\n * AccordionDetails component for the MRS Design System.\n * Wraps Material-UI AccordionDetails - provides the content area that expands/collapses.\n *\n * @see {@link https://v6.mui.com/material-ui/api/accordion-details/}\n */\n\nimport React from 'react';\nimport MuiAccordionDetails from '@mui/material/AccordionDetails';\nimport type { AccordionDetailsProps } from './Accordion.types';\n\n/**\n * AccordionDetails component\n *\n * Contains the content that is revealed when the accordion is expanded.\n * This component is wrapped in a Collapse transition.\n *\n * @param props - AccordionDetails component props\n * @returns AccordionDetails component\n */\nexport const AccordionDetails = React.forwardRef<HTMLDivElement, AccordionDetailsProps>(\n ({ children, sx, ...props }, ref) => {\n return (\n <MuiAccordionDetails\n ref={ref}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordionDetails>\n );\n }\n);\n\nAccordionDetails.displayName = 'AccordionDetails';\n\nexport default AccordionDetails;\n","/**\n * AccordionActions Component\n *\n * AccordionActions component for the MRS Design System.\n * Wraps Material-UI AccordionActions - provides an action area for accordion buttons.\n *\n * @see {@link https://v6.mui.com/material-ui/api/accordion-actions/}\n */\n\nimport React from 'react';\nimport MuiAccordionActions from '@mui/material/AccordionActions';\nimport type { AccordionActionsProps } from './Accordion.types';\n\n/**\n * AccordionActions component\n *\n * Provides an area for action buttons within an accordion.\n * Typically placed at the bottom of AccordionDetails.\n *\n * @param props - AccordionActions component props\n * @returns AccordionActions component\n */\nexport const AccordionActions = React.forwardRef<HTMLDivElement, AccordionActionsProps>(\n ({ children, disableSpacing = false, sx, ...props }, ref) => {\n return (\n <MuiAccordionActions\n ref={ref}\n disableSpacing={disableSpacing}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordionActions>\n );\n }\n);\n\nAccordionActions.displayName = 'AccordionActions';\n\nexport default AccordionActions;\n","/**\n * Alert Component\n *\n * Implements the MRS Alert using design tokens from the theme.\n * Supports severity (error, warning, info, success) and variants (filled, outlined, standard),\n * optional title/description, optional leading icon, custom action, and close button.\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=6595-48211\n * @see https://mui.com/material-ui/react-alert/\n */\n\n/// <reference path=\"../../../types/theme.d.ts\" />\n\nimport React from 'react';\nimport MuiAlert from '@mui/material/Alert';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { AlertProps, AlertSeverity, AlertVariant } from './Alert.types';\n\ntype AlertColorTokens = {\n background: string;\n foreground: string;\n border?: string;\n};\n\n/**\n * Material Symbols icon names for each severity level\n * Icons use the same name for filled/outlined variants - fill prop controls appearance\n */\nconst severityIcons: Record<AlertSeverity, string> = {\n error: 'error',\n warning: 'error', // Material Symbols uses 'error' for warnings too\n info: 'info',\n success: 'check_circle',\n};\n\n/**\n * Returns token-based colors for a given severity and variant.\n */\nfunction useAlertColors(severity: AlertSeverity, variant: AlertVariant): AlertColorTokens {\n const theme = useTheme();\n const tokens = theme.palette._components.alert[severity][variant];\n return tokens;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n severity = 'error',\n variant = 'filled',\n title,\n description,\n icon = true,\n close = false,\n onClose,\n action,\n sx,\n children,\n ...props\n },\n ref\n ) => {\n const theme = useTheme();\n const tokenColors = useAlertColors(severity, variant);\n\n // Use 16px for consistent border radius\n // Note: theme.shape has custom tokens - sm(4), md(8), lg(12), xl(24), rounded(9999)\n // IMPORTANT: Must use string with 'px' suffix - numbers are multiplied by spacing (8*8=64px)\n const shapeWithTokens = theme.shape as {\n borderRadius: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n rounded: number;\n };\n const alertBorderRadius = '16px'; // explicit units prevent spacing multiplication\n\n // Debug: Log border radius in development\n // eslint-disable-next-line no-undef\n if (process.env.NODE_ENV === 'development') {\n console.log('[Alert] Using border radius:', alertBorderRadius, '(theme.shape.lg)');\n console.log('[Alert] Available shape tokens (raw values):', {\n sm: shapeWithTokens.sm,\n md: shapeWithTokens.md,\n lg: shapeWithTokens.lg,\n xl: shapeWithTokens.xl,\n rounded: shapeWithTokens.rounded,\n });\n console.log(\n '[Alert] Note: Values converted to px strings to prevent MUI spacing multiplication'\n );\n }\n\n // Determine icon name and fill based on severity and variant\n const iconName = severityIcons[severity];\n const iconFill = variant === 'filled' ? 1 : 0;\n\n const startIcon =\n icon === false\n ? false\n : React.isValidElement(icon)\n ? icon\n : iconName && (\n <MaterialSymbol\n icon={iconName}\n fill={iconFill}\n size=\"medium\"\n color={tokenColors.foreground}\n />\n );\n\n const closeButton = close && (\n <IconButton\n size=\"medium\"\n aria-label=\"close\"\n onClick={onClose}\n sx={{ color: tokenColors.foreground }}\n >\n <MaterialSymbol icon=\"close\" size=\"medium\" color={tokenColors.foreground} />\n </IconButton>\n );\n\n const actionContent = action ? (\n closeButton ? (\n <Stack direction=\"row\" spacing={1} alignItems=\"center\">\n {action}\n {closeButton}\n </Stack>\n ) : (\n action\n )\n ) : (\n closeButton || undefined\n );\n\n return (\n <MuiAlert\n ref={ref}\n severity={severity}\n variant=\"standard\"\n icon={startIcon}\n action={actionContent}\n sx={{\n borderRadius: alertBorderRadius,\n backgroundColor: tokenColors.background,\n color: tokenColors.foreground,\n alignItems: 'top',\n py: 1.2,\n px: 2,\n ...(variant === 'outlined' && {\n border: `1px solid ${tokenColors.border}`,\n }),\n '& .MuiAlert-icon': {\n color: tokenColors.foreground,\n padding: 0.25,\n marginRight: theme.spacing(1),\n mt: 0.25,\n },\n '& .MuiAlert-message': {\n padding: 1,\n width: '100%',\n },\n '& .MuiAlert-action': {\n padding: 0,\n marginLeft: theme.spacing(2),\n alignItems: 'top',\n },\n ...sx,\n }}\n {...props}\n >\n <Stack spacing={0.25}>\n {title && (\n <Typography\n variant=\"h5\"\n fontWeight={theme.typography.fontWeightMedium}\n lineHeight={1.2}\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography variant=\"body1\" lineHeight={1.5}>\n {description}\n </Typography>\n )}\n {children}\n </Stack>\n </MuiAlert>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\nexport default Alert;\n","/**\n * AppBar Component\n *\n * Top navigation bar component for the MRS Design System.\n * Wraps Material-UI AppBar with MRS theme tokens.\n *\n * @example\n * ```tsx\n * import { AppBar, Toolbar, IconButton, Typography, Button } from '@atipicus/mrs-ui';\n * import MenuIcon from '@mui/icons-material/Menu';\n *\n * function MyAppBar() {\n * return (\n * <AppBar position=\"fixed\" color=\"primary\">\n * <Toolbar>\n * <IconButton edge=\"start\" color=\"inherit\" aria-label=\"menu\">\n * <MenuIcon />\n * </IconButton>\n * <Typography variant=\"h6\" component=\"div\" sx={{ flexGrow: 1 }}>\n * MRS Design System\n * </Typography>\n * <Button color=\"inherit\">Login</Button>\n * </Toolbar>\n * </AppBar>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/api/app-bar/}\n * @see {@link https://mui.com/material-ui/react-app-bar/}\n */\n\nimport React from 'react';\nimport MuiAppBar from '@mui/material/AppBar';\nimport { useTheme } from '@mui/material/styles';\nimport type { AppBarProps } from './AppBar.types';\n\n/**\n * AppBar component\n *\n * Primary navigation component that appears at the top of the application.\n * Supports multiple colors from the MRS palette, positioning options, and elevation levels.\n *\n * Features:\n * - MRS design tokens (Nunito font, MRS color palette)\n * - Multiple positioning options (fixed, static, sticky, absolute, relative)\n * - Elevation control (shadow depth 0-24)\n * - Light and dark mode support\n * - Responsive design ready\n *\n * @param props - AppBar component props\n * @returns AppBar component\n */\nexport const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n children,\n color = 'default',\n position = 'fixed',\n elevation = 4,\n enableColorOnDark = false,\n sx,\n ...props\n },\n ref\n ) => {\n const theme = useTheme();\n\n return (\n <MuiAppBar\n ref={ref}\n color={color}\n position={position}\n elevation={elevation}\n enableColorOnDark={enableColorOnDark}\n sx={{\n // Ensure Nunito font is applied\n fontFamily: theme.typography.fontFamily,\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAppBar>\n );\n }\n);\n\nAppBar.displayName = 'AppBar';\n\nexport default AppBar;\n","/**\n * Autocomplete Component\n *\n * Autocomplete component for the MRS Design System.\n * Wraps Material-UI Autocomplete with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6570:49856\n * @see {@link https://mui.com/material-ui/react-autocomplete/}\n */\n\nimport React from 'react';\nimport MuiAutocomplete from '@mui/material/Autocomplete';\nimport TextField from '@mui/material/TextField';\nimport type { AutocompleteProps } from './Autocomplete.types';\nimport { Chip } from '../../atoms/Chip';\n\n/**\n * Autocomplete component\n *\n * The autocomplete is a normal text input enhanced by a panel of suggested options.\n * Supports both single and multiple selection modes.\n *\n * @param props - Autocomplete component props\n * @returns Autocomplete component\n */\nexport const Autocomplete = <\n T,\n Multiple extends boolean | undefined = undefined,\n DisableClearable extends boolean | undefined = undefined,\n FreeSolo extends boolean | undefined = undefined,\n>(\n props: AutocompleteProps<T, Multiple, DisableClearable, FreeSolo>\n): React.ReactElement => {\n const {\n options,\n label,\n placeholder = 'Select option',\n error = false,\n helperText,\n required = false,\n disabled = false,\n readOnly = false,\n size = 'medium',\n multiple = false as Multiple,\n disableClearable = false as DisableClearable,\n freeSolo = false as FreeSolo,\n fullWidth = false,\n sx,\n ...restProps\n } = props;\n\n return (\n <MuiAutocomplete\n {...(restProps as any)}\n options={options}\n multiple={multiple}\n disableClearable={disableClearable}\n freeSolo={freeSolo}\n disabled={disabled}\n readOnly={readOnly}\n fullWidth={fullWidth}\n size={size}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n required={required}\n variant=\"outlined\"\n />\n )}\n renderTags={(value: T[], getTagProps) =>\n value.map((option: T, index: number) => {\n const { key, ...tagProps } = getTagProps({ index });\n return <Chip key={key} label={String(option)} size=\"small\" {...tagProps} />;\n })\n }\n sx={{\n ...sx,\n }}\n />\n );\n};\n\nAutocomplete.displayName = 'Autocomplete';\n","/**\n * BottomNavigation Component\n *\n * BottomNavigation component for the MRS Design System.\n * Wraps Material-UI BottomNavigation with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-bottom-navigation/}\n */\n\nimport React from 'react';\nimport MuiBottomNavigation from '@mui/material/BottomNavigation';\nimport type { BottomNavigationProps } from './BottomNavigation.types';\n\n/**\n * BottomNavigation component\n *\n * Bottom navigation bars allow movement between primary destinations in an app.\n *\n * @param props - BottomNavigation component props\n * @returns BottomNavigation component\n */\nexport const BottomNavigation = React.forwardRef<HTMLDivElement, BottomNavigationProps>(\n (props, ref) => {\n return <MuiBottomNavigation ref={ref} {...props} />;\n }\n);\n\nBottomNavigation.displayName = 'BottomNavigation';\n","/**\n * BottomNavigationAction Component\n */\n\nimport React from 'react';\nimport MuiBottomNavigationAction from '@mui/material/BottomNavigationAction';\nimport type { BottomNavigationActionProps } from './BottomNavigation.types';\n\nexport const BottomNavigationAction = React.forwardRef<\n HTMLButtonElement,\n BottomNavigationActionProps\n>((props, ref) => {\n return <MuiBottomNavigationAction ref={ref} {...props} />;\n});\n\nBottomNavigationAction.displayName = 'BottomNavigationAction';\n","/**\n * ButtonGroup Component\n *\n * ButtonGroup component for the MRS Design System.\n * Wraps Material-UI ButtonGroup with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6543:39843\n * @see {@link https://mui.com/material-ui/react-button-group/}\n */\n\nimport React from 'react';\nimport MuiButtonGroup from '@mui/material/ButtonGroup';\nimport type { ButtonGroupProps } from './ButtonGroup.types';\n\n/**\n * ButtonGroup component\n *\n * The ButtonGroup component can be used to group related buttons.\n *\n * @param props - ButtonGroup component props\n * @returns ButtonGroup component\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n children,\n variant = 'contained',\n color = 'primary',\n orientation = 'horizontal',\n size = 'medium',\n disabled = false,\n disableElevation = true,\n disableRipple = false,\n fullWidth = false,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiButtonGroup\n ref={ref}\n variant={variant}\n color={color}\n orientation={orientation}\n size={size}\n disabled={disabled}\n disableElevation={disableElevation}\n disableRipple={disableRipple}\n fullWidth={fullWidth}\n sx={{\n ...sx,\n }}\n {...restProps}\n >\n {children}\n </MuiButtonGroup>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n","/**\n * Card Component\n *\n * Card component for the MRS Design System.\n * Wraps Material-UI Card which is built on Paper with elevation and rounded corners.\n *\n * According to Figma specs:\n * - Uses Paper component as base (with elevation=1 by default)\n * - Uses shape.borderRadius token (from theme)\n * - Supports responsive width (600px default, 444px on small screens)\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=11479-243797&m=dev\n * @see {@link https://v6.mui.com/material-ui/api/card/}\n */\n\nimport React from 'react';\nimport MuiCard from '@mui/material/Card';\nimport type { CardProps } from './Card.types';\n\n/**\n * Card component\n *\n * Cards contain content and actions about a single subject.\n * They should be easy to scan for relevant and actionable information.\n * Elements, like text and images, should be placed on them in a way that clearly indicates hierarchy.\n *\n * @param props - Card component props\n * @returns Card component\n */\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n (\n {\n children,\n variant = 'elevation',\n elevation = 1,\n square = false,\n raised = false,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiCard\n ref={ref}\n variant={variant}\n elevation={variant === 'elevation' ? (raised ? 8 : elevation) : 0}\n square={square}\n sx={{\n // Theme will apply borderRadius from shape.borderRadius token\n // No need to override unless square=true\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCard>\n );\n }\n);\n\nCard.displayName = 'Card';\n\nexport default Card;\n","/**\n * CardActionArea Component\n *\n * CardActionArea component for the MRS Design System.\n * Wraps Material-UI CardActionArea - provides an actionable area within a Card.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-action-area/}\n */\n\nimport React from 'react';\nimport MuiCardActionArea from '@mui/material/CardActionArea';\nimport type { CardActionAreaProps } from './Card.types';\n\n/**\n * CardActionArea component\n *\n * Provides an actionable area within a Card. It's typically used to wrap\n * the main content of a Card to make the entire Card clickable.\n *\n * @param props - CardActionArea component props\n * @returns CardActionArea component\n */\nexport const CardActionArea = React.forwardRef<HTMLButtonElement, CardActionAreaProps>(\n ({ children, disabled = false, sx, ...props }, ref) => {\n return (\n <MuiCardActionArea\n ref={ref}\n disabled={disabled}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCardActionArea>\n );\n }\n);\n\nCardActionArea.displayName = 'CardActionArea';\n\nexport default CardActionArea;\n","/**\n * CardActions Component\n *\n * CardActions component for the MRS Design System.\n * Wraps Material-UI CardActions - provides an action area for Card buttons/actions.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-actions/}\n */\n\nimport React from 'react';\nimport MuiCardActions from '@mui/material/CardActions';\nimport type { CardActionsProps } from './Card.types';\n\n/**\n * CardActions component\n *\n * Provides an area for action buttons or other interactive elements within a Card.\n * Typically placed at the bottom of a Card.\n *\n * @param props - CardActions component props\n * @returns CardActions component\n */\nexport const CardActions = React.forwardRef<HTMLDivElement, CardActionsProps>(\n ({ children, disableSpacing = false, sx, ...props }, ref) => {\n return (\n <MuiCardActions\n ref={ref}\n disableSpacing={disableSpacing}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCardActions>\n );\n }\n);\n\nCardActions.displayName = 'CardActions';\n\nexport default CardActions;\n","/**\n * CardContent Component\n *\n * CardContent component for the MRS Design System.\n * Wraps Material-UI CardContent - provides the main content area for a Card.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-content/}\n */\n\nimport React from 'react';\nimport MuiCardContent from '@mui/material/CardContent';\nimport type { CardContentProps } from './Card.types';\n\n/**\n * CardContent component\n *\n * Provides the main content area within a Card. Adds padding and spacing\n * according to Material Design specifications.\n *\n * @param props - CardContent component props\n * @returns CardContent component\n */\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ children, component = 'div', sx, ...props }, ref) => {\n return (\n <MuiCardContent\n ref={ref}\n component={component}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCardContent>\n );\n }\n);\n\nCardContent.displayName = 'CardContent';\n\nexport default CardContent;\n","/**\n * CardHeader Component\n *\n * CardHeader component for the MRS Design System.\n * Wraps Material-UI CardHeader - provides a header area for a Card with avatar, title, subheader, and action.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-header/}\n */\n\nimport React from 'react';\nimport MuiCardHeader from '@mui/material/CardHeader';\nimport type { CardHeaderProps } from './Card.types';\n\n/**\n * CardHeader component\n *\n * Provides a header area within a Card. Supports an optional avatar,\n * title, subheader, and action elements.\n *\n * @param props - CardHeader component props\n * @returns CardHeader component\n */\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n (\n {\n action,\n avatar,\n component = 'div',\n disableTypography = false,\n subheader,\n subheaderTypographyProps,\n title,\n titleTypographyProps,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiCardHeader\n ref={ref}\n action={action}\n avatar={avatar}\n component={component}\n disableTypography={disableTypography}\n subheader={subheader}\n subheaderTypographyProps={subheaderTypographyProps}\n title={title}\n titleTypographyProps={titleTypographyProps}\n sx={{\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nCardHeader.displayName = 'CardHeader';\n\nexport default CardHeader;\n","/**\n * CardMedia Component\n *\n * CardMedia component for the MRS Design System.\n * Wraps Material-UI CardMedia - displays media (images, video, etc.) within a Card.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-media/}\n */\n\nimport React from 'react';\nimport MuiCardMedia from '@mui/material/CardMedia';\nimport type { CardMediaProps } from './Card.types';\n\n/**\n * CardMedia component\n *\n * Displays media content within a Card. Can be used for images, videos,\n * or other media types. Supports both background images and direct media elements.\n *\n * @param props - CardMedia component props\n * @returns CardMedia component\n */\nexport const CardMedia = React.forwardRef<HTMLDivElement, CardMediaProps>(\n ({ component = 'div', image, src, sx, ...props }, ref) => {\n return (\n <MuiCardMedia\n ref={ref}\n component={component}\n image={image}\n src={src}\n sx={{\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nCardMedia.displayName = 'CardMedia';\n\nexport default CardMedia;\n","/**\n * ExpandableNavItem Component\n *\n * Collapsible navigation item component for the MRS Design System.\n * Supports nested child items with expand/collapse functionality.\n *\n * @example\n * ```tsx\n * import { ExpandableNavItem } from '@atipicus/mrs-ui';\n * import InboxIcon from '@mui/icons-material/Inbox';\n *\n * function MyNav() {\n * const [open, setOpen] = React.useState(false);\n *\n * return (\n * <List>\n * <ExpandableNavItem\n * label=\"Products\"\n * icon={<InboxIcon />}\n * isOpen={open}\n * onToggle={() => setOpen(!open)}\n * children={[\n * { label: 'All Products', onClick: () => console.log('All') },\n * { label: 'Categories', onClick: () => console.log('Categories') }\n * ]}\n * />\n * </List>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/api/list-item-button/}\n * @see {@link https://mui.com/material-ui/api/collapse/}\n */\n\nimport React from 'react';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Collapse from '@mui/material/Collapse';\nimport List from '@mui/material/List';\nimport { useTheme } from '@mui/material/styles';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { ExpandableNavItemProps, NavItem } from './ExpandableNavItem.types';\n\n/**\n * ExpandableNavItem component\n *\n * Collapsible navigation item with support for nested child items.\n * Features expand/collapse animation and selected state support.\n *\n * Features:\n * - Expandable/collapsible with smooth animation\n * - Supports nested child items\n * - Icon support for parent and child items\n * - Selected/active state highlighting\n * - MRS design tokens (Nunito font, MRS colors)\n * - Full accessibility support (ARIA attributes)\n *\n * @param props - ExpandableNavItem component props\n * @returns ExpandableNavItem component\n */\nexport const ExpandableNavItem = React.forwardRef<HTMLDivElement, ExpandableNavItemProps>(\n (\n {\n label,\n icon,\n isOpen = false,\n onToggle,\n children = [],\n selected = false,\n onClick,\n ListItemButtonProps,\n childListItemButtonProps,\n },\n ref\n ) => {\n const theme = useTheme();\n\n const handleParentClick = () => {\n if (onToggle) {\n onToggle();\n }\n if (onClick) {\n onClick();\n }\n };\n\n return (\n <div ref={ref}>\n {/* Parent Item */}\n <ListItemButton\n selected={selected}\n onClick={handleParentClick}\n sx={{\n fontFamily: theme.typography.fontFamily,\n ...ListItemButtonProps?.sx,\n }}\n {...ListItemButtonProps}\n >\n {icon && <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>}\n <ListItemText\n primary={label}\n primaryTypographyProps={{\n fontFamily: theme.typography.fontFamily,\n fontWeight: selected ? 600 : 400,\n }}\n />\n {children.length > 0 && (\n <MaterialSymbol icon={isOpen ? 'expand_less' : 'expand_more'} size=\"medium\" />\n )}\n </ListItemButton>\n\n {/* Collapsible Child Items */}\n {children.length > 0 && (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding>\n {children.map((child: NavItem, index: number) => (\n <ListItemButton\n key={index}\n selected={child.selected}\n onClick={child.onClick}\n sx={{\n pl: icon ? 9 : 4,\n fontFamily: theme.typography.fontFamily,\n ...childListItemButtonProps?.sx,\n }}\n {...childListItemButtonProps}\n >\n {child.icon && <ListItemIcon sx={{ minWidth: 40 }}>{child.icon}</ListItemIcon>}\n <ListItemText\n primary={child.label}\n primaryTypographyProps={{\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: child.selected ? 600 : 400,\n }}\n />\n </ListItemButton>\n ))}\n </List>\n </Collapse>\n )}\n </div>\n );\n }\n);\n\nExpandableNavItem.displayName = 'ExpandableNavItem';\n\nexport type { ExpandableNavItemProps, NavItem };\nexport default ExpandableNavItem;\n","/**\n * DrawerNavigation Component\n *\n * Navigation component for Drawer with support for expandable items.\n * Built for the MRS Design System with Figma design specifications.\n *\n * @example\n * ```tsx\n * import { Drawer, DrawerNavigation } from '@atipicus/mrs-ui';\n * import HomeIcon from '@mui/icons-material/Home';\n * import InboxIcon from '@mui/icons-material/Inbox';\n * import SettingsIcon from '@mui/icons-material/Settings';\n *\n * function MyDrawer() {\n * const [open, setOpen] = React.useState(false);\n *\n * return (\n * <Drawer open={open} onClose={() => setOpen(false)}>\n * <DrawerNavigation\n * items={[\n * { label: 'Dashboard', icon: <HomeIcon />, path: '/' },\n * {\n * label: 'Products',\n * icon: <InboxIcon />,\n * expandable: true,\n * children: [\n * { label: 'All Products', path: '/products' },\n * { label: 'Categories', path: '/categories' }\n * ]\n * },\n * { label: 'Settings', icon: <SettingsIcon />, path: '/settings' }\n * ]}\n * />\n * </Drawer>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/react-drawer/}\n */\n\nimport React, { useState } from 'react';\nimport Box from '@mui/material/Box';\nimport List from '@mui/material/List';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Divider from '@mui/material/Divider';\nimport { useTheme } from '@mui/material/styles';\nimport { ExpandableNavItem } from '../ExpandableNavItem';\nimport type {\n DrawerNavigationProps,\n DrawerNavItem,\n ExpandableNavItem as ExpandableNavItemType,\n SimpleNavItem,\n} from './DrawerNavigation.types';\n\n/**\n * Type guard to check if an item is expandable\n */\nfunction isExpandableItem(item: DrawerNavItem): item is ExpandableNavItemType {\n return item.expandable === true;\n}\n\n/**\n * DrawerNavigation component\n *\n * Full-featured navigation component for use within Drawer.\n * Supports simple and expandable navigation items with icons.\n *\n * Features:\n * - Simple and expandable navigation items\n * - Icon support for all items\n * - Selected/active state highlighting\n * - Optional dividers between items\n * - Configurable width and padding (defaults from Figma)\n * - MRS design tokens (Nunito font, MRS colors)\n * - Full accessibility support\n *\n * @param props - DrawerNavigation component props\n * @returns DrawerNavigation component\n */\nexport const DrawerNavigation = React.forwardRef<HTMLDivElement, DrawerNavigationProps>(\n ({ items, width = 256, paddingTop = 32, paddingBottom = 32, sx, listSx, onItemClick }, ref) => {\n const theme = useTheme();\n\n // Track open state for expandable items\n const [openItems, setOpenItems] = useState<Record<string, boolean>>(() => {\n const initial: Record<string, boolean> = {};\n items.forEach((item, index) => {\n if (isExpandableItem(item)) {\n const key = item.id || `item-${index}`;\n initial[key] = item.defaultOpen || false;\n }\n });\n return initial;\n });\n\n const handleToggle = (itemId: string) => {\n setOpenItems((prev) => ({\n ...prev,\n [itemId]: !prev[itemId],\n }));\n };\n\n const handleItemClick = (item: DrawerNavItem) => {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item);\n }\n };\n\n return (\n <Box\n ref={ref}\n sx={{\n width,\n paddingTop: `${paddingTop}px`,\n paddingBottom: `${paddingBottom}px`,\n fontFamily: theme.typography.fontFamily,\n ...sx,\n }}\n >\n <List\n sx={{\n '& .MuiListItemButton-root': {\n fontFamily: theme.typography.fontFamily,\n },\n ...listSx,\n }}\n >\n {items.map((item, index) => {\n const itemId = item.id || `item-${index}`;\n const isLast = index === items.length - 1;\n\n if (isExpandableItem(item)) {\n return (\n <React.Fragment key={itemId}>\n <ExpandableNavItem\n label={item.label}\n icon={item.icon}\n isOpen={openItems[itemId]}\n onToggle={() => handleToggle(itemId)}\n selected={item.selected}\n onClick={() => handleItemClick(item)}\n children={item.children}\n />\n {(item.divider || (!isLast && items[index + 1]?.divider)) && (\n <Divider sx={{ my: 1 }} />\n )}\n </React.Fragment>\n );\n }\n\n // Simple nav item\n const simpleItem = item as SimpleNavItem;\n return (\n <React.Fragment key={itemId}>\n <ListItemButton\n selected={simpleItem.selected}\n onClick={() => handleItemClick(simpleItem)}\n sx={{\n fontFamily: theme.typography.fontFamily,\n }}\n >\n {simpleItem.icon && (\n <ListItemIcon sx={{ minWidth: 40 }}>{simpleItem.icon}</ListItemIcon>\n )}\n <ListItemText\n primary={simpleItem.label}\n primaryTypographyProps={{\n fontFamily: theme.typography.fontFamily,\n fontWeight: simpleItem.selected ? 600 : 400,\n }}\n />\n </ListItemButton>\n {(simpleItem.divider || (!isLast && items[index + 1]?.divider)) && (\n <Divider sx={{ my: 1 }} />\n )}\n </React.Fragment>\n );\n })}\n </List>\n </Box>\n );\n }\n);\n\nDrawerNavigation.displayName = 'DrawerNavigation';\n\nexport type { DrawerNavigationProps, DrawerNavItem };\nexport default DrawerNavigation;\n","/**\n * List Component\n *\n * List component for the MRS Design System.\n * Wraps Material-UI List with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=11566-157133&m=dev\n * @see {@link https://mui.com/material-ui/react-list/}\n */\n\nimport React from 'react';\nimport MuiList from '@mui/material/List';\nimport type { ListProps } from './List.types';\n\n/**\n * List component\n *\n * Lists are continuous, vertical indexes of text or images.\n * They are composed of items containing primary and supplemental actions.\n *\n * @param props - List component props\n * @returns List component\n */\nexport const List = React.forwardRef<HTMLUListElement, ListProps>(\n (\n {\n children,\n dense = false,\n disablePadding = false,\n subheader,\n component = 'ul',\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiList\n ref={ref}\n dense={dense}\n disablePadding={disablePadding}\n subheader={subheader}\n component={component}\n sx={sx}\n {...restProps}\n >\n {children}\n </MuiList>\n );\n }\n);\n\nList.displayName = 'List';\n","/**\n * ListItem Component\n *\n * ListItem component for the MRS Design System.\n * Wraps Material-UI ListItem and ListItemButton with custom theme tokens.\n *\n * Based on Figma design specifications with all variants and states.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6591-48882&m=dev\n * @see {@link https://mui.com/material-ui/react-list/}\n */\n\nimport React from 'react';\nimport MuiListItem from '@mui/material/ListItem';\nimport MuiListItemButton from '@mui/material/ListItemButton';\nimport { alpha, useTheme } from '@mui/material/styles';\nimport type { ListItemProps } from './ListItem.types';\nimport { getThemeShape } from '../../../types/theme-helpers';\n\n/**\n * ListItem component\n *\n * ListItem is an interactive list item component by default.\n * When button prop is true (default), it wraps children with ListItemButton for interactivity.\n *\n * Key features:\n * - Interactive by default with hover, focus, and selected states\n * - Selected state uses SemiBold font and primary.dark color\n * - Dense mode for compact layouts\n * - Support for icons, secondary text, and actions\n *\n * @param props - ListItem component props\n * @returns ListItem component\n */\n// Use HTMLElement to remain compatible with polymorphic `component` prop.\nexport const ListItem = React.forwardRef<HTMLElement, ListItemProps>(\n (\n {\n children,\n button = true,\n dense = false,\n disableGutters = false,\n divider = false,\n disablePadding = false,\n secondaryAction,\n alignItems = 'center',\n selected = false,\n disabled = false,\n autoFocus = false,\n onClick,\n component,\n sx,\n ...restProps\n },\n ref\n ) => {\n const theme = useTheme();\n const shape = getThemeShape(theme);\n const hoverColor =\n theme.palette.primary._states?.hover ?? alpha(theme.palette.primary.main, 0.08);\n const focusColor =\n theme.palette.primary._states?.focus ?? alpha(theme.palette.primary.main, 0.12);\n const selectedColor =\n theme.palette.primary._states?.selected ?? alpha(theme.palette.primary.main, 0.12);\n\n // If button is true, use ListItemButton wrapper for interactivity\n if (button) {\n return (\n <MuiListItem\n ref={ref as React.Ref<HTMLLIElement>}\n dense={dense}\n disableGutters={disableGutters}\n divider={divider}\n disablePadding={disablePadding}\n secondaryAction={secondaryAction}\n {...(component && { component })}\n sx={sx}\n {...restProps}\n >\n <MuiListItemButton\n selected={selected}\n disabled={disabled}\n autoFocus={autoFocus}\n onClick={onClick}\n alignItems={alignItems}\n sx={{\n // Hover/press/focus styling aligned with tokens\n '&:hover': {\n backgroundColor: hoverColor,\n },\n '&:active': {\n backgroundColor: selectedColor,\n },\n '&.Mui-focusVisible': {\n outline: `3px solid ${focusColor}`,\n outlineOffset: 0,\n borderRadius: shape.sm, // Use type-safe helper (4px)\n },\n // Selected state: Apply SemiBold weight and primary.dark color to text\n '&.Mui-selected': {\n backgroundColor: selectedColor,\n '&:hover': {\n backgroundColor: hoverColor,\n },\n },\n ...(selected && {\n '& .MuiListItemText-primary': {\n fontFamily: theme.typography.subtitle1.fontFamily,\n fontWeight: theme.typography.subtitle1.fontWeight,\n color: theme.palette.primary.dark,\n },\n }),\n }}\n >\n {children}\n </MuiListItemButton>\n </MuiListItem>\n );\n }\n\n // Otherwise, use standard ListItem (static, non-interactive)\n return (\n <MuiListItem\n ref={ref as React.Ref<HTMLLIElement>}\n dense={dense}\n disableGutters={disableGutters}\n divider={divider}\n disablePadding={disablePadding}\n secondaryAction={secondaryAction}\n alignItems={alignItems}\n {...(component && { component })}\n sx={sx}\n {...restProps}\n >\n {children}\n </MuiListItem>\n );\n }\n);\n\nListItem.displayName = 'ListItem';\n","/**\n * Menu Component\n * @package @mrs/ui\n *\n * Displays a list of choices on temporary surfaces.\n * Menus appear when users interact with a button, action, or other control.\n *\n * @example\n * ```tsx\n * const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n *\n * <Button onClick={(e) => setAnchorEl(e.currentTarget)}>\n * Open Menu\n * </Button>\n * <Menu\n * open={Boolean(anchorEl)}\n * anchorEl={anchorEl}\n * onClose={() => setAnchorEl(null)}\n * >\n * <MenuItem onClick={() => setAnchorEl(null)}>Profile</MenuItem>\n * <MenuItem onClick={() => setAnchorEl(null)}>Settings</MenuItem>\n * </Menu>\n * ```\n */\n\nimport React from 'react';\nimport MuiMenu from '@mui/material/Menu';\nimport type { MenuProps } from './Menu.types';\n\nexport const Menu = React.forwardRef<HTMLDivElement, MenuProps>(\n (\n {\n open,\n anchorEl,\n onClose,\n children,\n anchorOrigin = { vertical: 'top', horizontal: 'left' },\n transformOrigin = { vertical: 'top', horizontal: 'left' },\n autoFocus = false,\n MenuListProps,\n variant = 'selectedMenu',\n ...props\n },\n ref\n ) => {\n return (\n <MuiMenu\n ref={ref}\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n autoFocus={autoFocus}\n MenuListProps={MenuListProps}\n variant={variant}\n {...props}\n >\n {children}\n </MuiMenu>\n );\n }\n);\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n","/**\n * Pagination Component\n * @package @mrs/ui\n *\n * Enables navigation through paged content.\n * Pagination divides content into discrete pages with navigation controls.\n *\n * @example\n * ```tsx\n * const [page, setPage] = useState(1);\n *\n * <Pagination\n * count={10}\n * page={page}\n * onChange={(e, value) => setPage(value)}\n * />\n * ```\n */\n\nimport React from 'react';\nimport MuiPagination from '@mui/material/Pagination';\nimport type { PaginationProps } from './Pagination.types';\n\nexport const Pagination = React.forwardRef<HTMLElement, PaginationProps>(\n (\n {\n count,\n page = 1,\n onChange,\n variant = 'text',\n shape = 'circular',\n size = 'medium',\n color = 'standard',\n disabled = false,\n hideNextButton = false,\n hidePrevButton = false,\n showFirstButton = false,\n showLastButton = false,\n boundaryCount = 1,\n siblingCount = 1,\n ...props\n },\n ref\n ) => {\n return (\n <MuiPagination\n ref={ref}\n count={count}\n page={page}\n onChange={onChange}\n variant={variant}\n shape={shape}\n size={size}\n color={color}\n disabled={disabled}\n hideNextButton={hideNextButton}\n hidePrevButton={hidePrevButton}\n showFirstButton={showFirstButton}\n showLastButton={showLastButton}\n boundaryCount={boundaryCount}\n siblingCount={siblingCount}\n {...props}\n />\n );\n }\n);\n\nPagination.displayName = 'Pagination';\n\nexport default Pagination;\n","/**\n * Rating Component\n *\n * Rating component for the MRS Design System.\n * Wraps Material-UI Rating with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-rating/}\n */\n\nimport React from 'react';\nimport MuiRating from '@mui/material/Rating';\nimport type { RatingProps } from './Rating.types';\n\n/**\n * Rating component\n *\n * Ratings provide insight regarding others' opinions and experiences,\n * and can allow the user to submit a rating of their own.\n *\n * @param props - Rating component props\n * @returns Rating component\n */\nexport const Rating = React.forwardRef<HTMLSpanElement, RatingProps>(\n (\n {\n size = 'medium',\n max = 5,\n precision = 1,\n readOnly = false,\n disabled = false,\n highlightSelectedOnly = false,\n emptyIcon,\n icon,\n defaultValue,\n value,\n onChange,\n onChangeActive,\n name,\n id,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiRating\n ref={ref}\n size={size}\n max={max}\n precision={precision}\n readOnly={readOnly}\n disabled={disabled}\n highlightSelectedOnly={highlightSelectedOnly}\n emptyIcon={emptyIcon}\n icon={icon}\n defaultValue={defaultValue}\n value={value}\n onChange={onChange}\n onChangeActive={onChangeActive}\n name={name}\n id={id}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nRating.displayName = 'Rating';\n","/**\n * Sidenav Component\n *\n * Side navigation component for the MRS Design System.\n * Supports two variants: 'default' (256px) with full labels and 'slim' (72px) with icons only.\n *\n * @figma https://figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=13099-16347\n *\n * @example\n * ```tsx\n * import { Sidenav } from '@atipicus/mrs-ui';\n *\n * function App() {\n * return (\n * <Sidenav\n * variant=\"default\"\n * items={[\n * { label: 'Inicio', icon: 'home', selected: true },\n * { label: 'Citas', icon: 'event' },\n * {\n * header: 'Mi salud',\n * items: [\n * { label: 'Órdenes', icon: 'order_approve' },\n * { label: 'Recetas', icon: 'medication' },\n * ]\n * }\n * ]}\n * actionButton={{\n * label: 'Agendar',\n * icon: 'add',\n * onClick: () => console.log('Add clicked')\n * }}\n * />\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/react-drawer/}\n */\n\nimport React from 'react';\nimport Box from '@mui/material/Box';\nimport List from '@mui/material/List';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Paper from '@mui/material/Paper';\nimport Divider from '@mui/material/Divider';\nimport Tooltip from '@mui/material/Tooltip';\nimport { useTheme } from '@mui/material/styles';\nimport { Button } from '../../atoms/Button';\nimport { IconButton } from '../../atoms/IconButton';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { SidenavProps, SidenavItem, SidenavNavigationItem } from './Sidenav.types';\nimport * as tokens from '../../../tokens/generated/ts/tokens';\n\n// MRS Logo SVG component\nconst MRSLogo = ({ variant = 'default' }: { variant?: 'default' | 'slim' }) => {\n if (variant === 'slim') {\n // Slim variant - only show the \"Mi\" icon part\n return (\n <Box\n component=\"svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n sx={{ display: 'block' }}\n >\n <path\n d=\"M4 10.5C4 9.6 4.7 8.9 5.6 8.9H6C6.7 8.9 7.2 9.3 7.5 9.8L11.4 16.1L15.3 9.8C15.6 9.2 16.1 8.9 16.7 8.9H17.1C18 8.9 18.7 9.6 18.7 10.5V22.1C18.7 23 18 23.7 17.1 23.7C16.2 23.7 15.5 23 15.5 22.1V14.8L12.7 19.2C12.4 19.7 11.9 20 11.4 20C10.8 20 10.4 19.7 10 19.2L7.2 14.9V22.2C7.2 23.1 6.5 23.7 5.6 23.7C4.7 23.7 4 23 4 22.2V10.5Z\"\n fill=\"#99CC00\"\n />\n <path\n d=\"M20.5 9.7C20.5 8.8 21.3 8.2 22.3 8.2C23.3 8.2 24.1 8.8 24.1 9.7V9.7C24.1 10.6 23.3 11.2 22.3 11.2C21.3 11.2 20.5 10.6 20.5 9.7V9.7ZM20.7 13.8C20.7 13 21.4 12.3 22.3 12.3C23.2 12.3 23.9 13 23.9 13.8V22.1C23.9 23 23.2 23.7 22.3 23.7C21.4 23.7 20.7 23 20.7 22.1V13.8Z\"\n fill=\"#99CC00\"\n />\n <circle cx=\"26\" cy=\"10\" r=\"3\" fill=\"#009999\" />\n </Box>\n );\n }\n\n // Default variant - full logo\n return (\n <Box\n component=\"svg\"\n width=\"140\"\n height=\"16\"\n viewBox=\"0 0 140 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n sx={{ display: 'block' }}\n >\n <path\n d=\"M99.3289 15.5655H107.522C108.077 15.5655 108.527 15.1155 108.527 14.5621C108.527 14.0072 108.076 13.558 107.522 13.558H100.445C100.383 13.558 100.331 13.5066 100.331 13.4449V1.70999C100.331 1.07776 99.816 0.563799 99.1822 0.563799C98.5476 0.563799 98.0337 1.07776 98.0337 1.70999V14.2728C98.0337 14.9868 98.6131 15.5655 99.3289 15.5655Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M116.242 15.8079C120.637 15.8079 122.913 12.8298 122.913 9.3659V1.70998C122.913 1.07626 122.399 0.56304 121.765 0.56304C121.13 0.56304 120.617 1.077 120.617 1.70998V9.18962C120.617 11.7706 119.224 13.6673 116.242 13.6673C113.303 13.6673 111.934 11.903 111.934 9.21119V1.70998C111.934 1.07626 111.42 0.56304 110.786 0.56304C110.151 0.56304 109.638 1.077 109.638 1.70998V9.3659C109.636 13.1161 111.889 15.8079 116.242 15.8079Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M126.704 15.6599H131.505C135.947 15.6599 139.26 12.9956 139.26 8.13342C139.26 3.22733 135.946 0.586098 131.505 0.56304H126.704C125.989 0.56304 125.408 1.14543 125.408 1.86394V14.3583C125.408 15.0775 125.989 15.6599 126.704 15.6599ZM127.821 2.5832H131.417C134.621 2.60477 136.897 4.53641 136.897 8.13268C136.897 11.6858 134.621 13.639 131.417 13.639H127.821C127.758 13.639 127.708 13.5877 127.708 13.5252V2.69774C127.708 2.63452 127.758 2.5832 127.821 2.5832Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M49.8801 0.56304H40.67C39.9543 0.56304 39.3748 1.14172 39.3748 1.85651V14.272C39.3748 14.9868 39.9543 15.5655 40.67 15.5655H49.8801C50.7411 15.5655 51.4367 14.8693 51.4367 14.0109V13.9001C51.4367 13.0403 50.7403 12.3441 49.8801 12.3441H43.0176C42.958 12.3441 42.9103 12.2965 42.9103 12.237V9.58383C42.9103 9.52433 42.958 9.47672 43.0176 9.47672H48.2676C49.1286 9.47672 49.8257 8.78053 49.8257 7.9207C49.8257 7.06235 49.1286 6.36467 48.2676 6.36467H43.0176C42.958 6.36467 42.9103 6.31707 42.9103 6.25756V3.89154C42.9103 3.83203 42.958 3.78443 43.0176 3.78443H49.8801C50.7411 3.78443 51.4367 3.08824 51.4367 2.22989V2.11832C51.4367 1.25924 50.7411 0.56304 49.8801 0.56304Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M59.9668 0.56304H54.5231C53.8073 0.56304 53.2279 1.14172 53.2279 1.85651V14.272C53.2279 14.9868 53.8073 15.5655 54.5231 15.5655H59.9668C64.4072 15.5655 67.7208 12.9183 67.7208 8.08582C67.7208 3.21022 64.4072 0.585354 59.9668 0.56304ZM59.8119 12.3441H57.0479C56.9876 12.3441 56.9392 12.295 56.9392 12.237V3.89154C56.9392 3.83129 56.9869 3.78443 57.0479 3.78443H59.8119C62.2421 3.78443 63.8993 5.30624 63.8993 8.08507C63.8985 10.823 62.2414 12.3441 59.8119 12.3441Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M96.0538 14.5844C96.0538 14.426 96.018 14.2765 95.957 14.1403H95.9585L90.7948 1.70551C90.5081 1.01378 89.7745 0.56304 89.0245 0.56304H88.9872C88.2387 0.56304 87.5051 1.01378 87.2168 1.70551L82.0539 14.1403C81.9921 14.2765 81.9571 14.426 81.9571 14.5844C81.9571 15.1794 82.4405 15.6607 83.0363 15.6607C83.507 15.6607 83.9144 15.3654 84.0604 14.9451C84.0775 14.9027 84.0887 14.8745 84.1036 14.8403L85.1404 12.3337C85.1612 12.2868 85.2066 12.2563 85.258 12.2563H92.7551C92.8065 12.2563 92.8512 12.2868 92.872 12.3337L93.9088 14.8403C93.9237 14.8745 93.9364 14.9102 93.9498 14.9451C94.0972 15.3639 94.5061 15.6607 94.9761 15.6607C95.5704 15.6607 96.0538 15.1794 96.0538 14.5844ZM92.1265 10.5128H85.8837C85.8286 10.5128 85.7936 10.4578 85.8137 10.408L88.8882 3.16113C88.9098 3.10832 88.9567 3.08229 89.0051 3.08005C89.0542 3.08229 89.1012 3.10832 89.1228 3.16113L92.1965 10.408C92.2181 10.4585 92.1816 10.5128 92.1265 10.5128Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M36.6464 12.5709H36.5548C35.1933 12.5709 33.8959 11.3035 32.5783 10.0926C32.5403 10.0569 32.5575 9.99814 32.6066 9.98624C34.8216 9.48939 36.4229 7.8084 36.4229 5.48924C36.4229 1.98074 33.5726 0.546697 30.6568 0.546697H24.8161C24.1004 0.546697 23.5209 1.12537 23.5209 1.84016V13.9328C23.5209 14.9556 24.3521 15.7856 25.3769 15.7856C26.4025 15.7856 27.233 14.9556 27.233 13.9321L27.2315 13.9254V10.2592C27.2315 10.1967 27.2829 10.1447 27.3462 10.1447H27.8027C27.8802 10.1462 28.0843 10.1744 28.3412 10.3812C30.259 11.929 32.6923 15.77 35.9582 15.77C36.3082 15.77 36.6404 15.7343 36.9562 15.68L36.9778 15.6763C37.6876 15.5246 38.2179 14.8946 38.2179 14.1411C38.2194 13.2731 37.5148 12.5709 36.6464 12.5709ZM30.5912 7.49006H27.3402C27.2806 7.49006 27.233 7.44097 27.233 7.38295V3.89156C27.233 3.83206 27.2806 3.78445 27.3402 3.78445H30.5912C31.806 3.78445 32.5791 4.48957 32.5791 5.638C32.5783 6.74031 31.806 7.49006 30.5912 7.49006Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M76.891 7.12038L73.9088 6.326C72.6062 5.99501 71.8755 5.57179 71.8755 4.55651C71.8755 3.43114 72.951 2.22247 75.3448 2.4828C76.4329 2.60032 77.603 2.90081 78.5839 3.34486C78.6271 3.36569 78.7291 3.40511 78.8445 3.44155C78.9682 3.47726 79.0866 3.50924 79.2184 3.50924C79.7845 3.50924 80.2425 3.0518 80.2425 2.48726C80.2425 2.26933 80.174 2.0685 80.0586 1.90264C79.9439 1.73454 79.7696 1.58206 79.5149 1.46528C78.4282 1.00413 76.8954 0.455204 75.4334 0.363717C71.3773 0.112313 69.5131 2.39429 69.5131 4.73204C69.5131 6.69642 70.7278 7.99806 72.916 8.54922L75.9428 9.32054C77.6216 9.7393 78.5719 10.3135 78.5719 11.3727C78.5719 12.7628 77.1799 13.6673 74.9932 13.6673C73.7725 13.6673 72.5965 13.3579 71.6387 12.9674L71.5858 12.9466C71.4838 12.9064 71.3951 12.8804 71.2953 12.864C71.2953 12.864 71.1568 12.8447 71.0853 12.8447C70.7896 12.8447 70.523 12.9637 70.3286 13.157C70.1342 13.3497 70.0143 13.6182 70.0143 13.9135C70.0143 14.2021 70.1312 14.4646 70.3182 14.6588L70.3167 14.6603C70.4358 14.7889 70.5888 14.8923 70.7695 14.9615C71.851 15.3892 73.3763 15.7841 74.9485 15.7841C78.5057 15.7841 80.9583 13.8094 80.9583 11.029C80.956 8.91368 79.5409 7.84856 76.891 7.12038Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M0 2.25742C0 1.35892 0.711276 0.648588 1.61098 0.648588H1.96699C2.65742 0.648588 3.13855 1.00412 3.432 1.48462L7.32428 7.81657L11.2374 1.46379C11.5726 0.920818 12.0329 0.648588 12.6816 0.648588H13.0376C13.9373 0.648588 14.6486 1.35892 14.6486 2.25742V13.8763C14.6486 14.7748 13.9373 15.4851 13.0376 15.4851C12.1587 15.4851 11.4474 14.754 11.4474 13.8763V6.58261L8.62171 10.9301C8.28655 11.4314 7.86872 11.7453 7.28257 11.7453C6.69642 11.7453 6.27785 11.4322 5.94344 10.9301L3.16015 6.64583V13.918C3.16015 14.7956 2.44887 15.4851 1.57002 15.4851C0.691167 15.4851 0.000744809 14.7956 0.000744809 13.918L0 2.25742Z\"\n fill=\"#99CC00\"\n />\n <path\n d=\"M16.5315 1.48388C16.5315 0.564543 17.3061 0 18.3101 0C19.3148 0 20.0887 0.564543 20.0887 1.48388V1.52553C20.0887 2.44487 19.3141 3.03024 18.3101 3.03024C17.3054 3.03024 16.5315 2.44487 16.5315 1.52553V1.48388ZM16.72 5.62163C16.72 4.74395 17.4313 4.03362 18.3101 4.03362C19.189 4.03362 19.9002 4.74395 19.9002 5.62163V13.8971C19.9002 14.7748 19.189 15.4851 18.3101 15.4851C17.4313 15.4851 16.72 14.7748 16.72 13.8971V5.62163Z\"\n fill=\"#99CC00\"\n />\n </Box>\n );\n};\n\n/**\n * Check if item is a group with header\n */\nfunction isGroup(item: SidenavNavigationItem): item is { header: string; items: SidenavItem[] } {\n return 'header' in item && 'items' in item;\n}\n\n/**\n * Sidenav component\n *\n * Side navigation panel with support for default (256px) and slim (72px) variants.\n * Designed following MRS Design System specifications from Figma.\n *\n * Features:\n * - Two variants: default (with labels) and slim (icons only)\n * - Logo section with MRS branding\n * - Action button (Button in default, IconButton in slim)\n * - Navigation items with icons\n * - Group headers for organizing items\n * - Selected/active state highlighting\n * - Tooltips in slim mode for accessibility\n * - MRS design tokens (Nunito font, MRS colors)\n *\n * @param props - Sidenav component props\n * @returns Sidenav component\n */\nexport const Sidenav = React.forwardRef<HTMLDivElement, SidenavProps>(\n (\n {\n variant = 'default',\n logo = true,\n logoElement,\n items = [],\n actionButton,\n showActionButton = true,\n onItemClick,\n width,\n height = '100vh',\n sx,\n listSx,\n },\n ref\n ) => {\n const theme = useTheme();\n const mode = theme.palette.mode;\n\n // Determine width based on variant using tokens\n const sidenavWidth =\n width ??\n (variant === 'slim'\n ? tokens.ComponentSidenavWidthCollapsed\n : tokens.ComponentSidenavWidthExpanded);\n\n const handleItemClick = (item: SidenavItem) => {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item);\n }\n };\n\n // Render a navigation item\n const renderNavItem = (item: SidenavItem, index: number) => {\n const itemContent = (\n <ListItemButton\n key={item.id || `item-${index}`}\n selected={item.selected}\n onClick={() => handleItemClick(item)}\n sx={{\n borderRadius:\n mode === 'light'\n ? tokens.ComponentSidenavLightBorderRadius\n : tokens.ComponentSidenavDarkBorderRadius,\n mx: 1,\n px: variant === 'slim' ? 1.5 : 2,\n justifyContent: variant === 'slim' ? 'center' : 'flex-start',\n minHeight: 48,\n '&.Mui-selected': {\n backgroundColor:\n mode === 'light'\n ? tokens.ComponentSidenavLightItemSelectedBackground\n : tokens.ComponentSidenavDarkItemSelectedBackground,\n color:\n mode === 'light'\n ? tokens.ComponentSidenavLightItemSelectedForeground\n : tokens.ComponentSidenavDarkItemSelectedForeground,\n '&:hover': {\n backgroundColor:\n mode === 'light'\n ? tokens.ComponentSidenavLightItemHoverBackground\n : tokens.ComponentSidenavDarkItemHoverBackground,\n },\n },\n }}\n >\n {item.icon && (\n <ListItemIcon\n sx={{\n minWidth: variant === 'slim' ? 'auto' : 40,\n justifyContent: 'center',\n color: item.selected ? theme.palette.primary.dark : theme.palette.text.secondary,\n }}\n >\n <MaterialSymbol\n icon={item.icon}\n size=\"medium\"\n sx={{\n color: 'inherit',\n }}\n />\n </ListItemIcon>\n )}\n {variant === 'default' && (\n <ListItemText\n primary={item.label}\n primaryTypographyProps={{\n fontWeight: item.selected ? 600 : 400,\n color: item.selected ? theme.palette.primary.dark : theme.palette.text.primary,\n }}\n />\n )}\n </ListItemButton>\n );\n\n // Wrap in tooltip for slim variant\n if (variant === 'slim') {\n return (\n <Tooltip key={item.id || `item-${index}`} title={item.label} placement=\"right\" arrow>\n {itemContent}\n </Tooltip>\n );\n }\n\n return itemContent;\n };\n\n // Render a group with header\n const renderGroup = (group: { header: string; items: SidenavItem[] }, groupIndex: number) => {\n if (variant === 'slim') {\n // In slim mode, show divider instead of header\n return (\n <React.Fragment key={`group-${groupIndex}`}>\n <Divider sx={{ my: 1, mx: 1 }} />\n {group.items.map((item, index) => renderNavItem(item, groupIndex * 100 + index))}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group-${groupIndex}`}>\n <ListSubheader\n component=\"div\"\n sx={{\n backgroundColor: 'transparent',\n color: theme.palette.text.secondary,\n fontWeight: 600,\n fontSize: '1rem',\n lineHeight: '48px',\n letterSpacing: '0.1px',\n px: 2,\n }}\n >\n {group.header}\n </ListSubheader>\n {group.items.map((item, index) => renderNavItem(item, groupIndex * 100 + index))}\n </React.Fragment>\n );\n };\n\n return (\n <Paper\n ref={ref}\n elevation={1}\n sx={{\n width: sidenavWidth,\n height,\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 0,\n overflow: 'hidden',\n ...sx,\n }}\n >\n {/* Logo Section */}\n {logo && (\n <Box\n sx={{\n height: 64,\n display: 'flex',\n alignItems: 'center',\n justifyContent: variant === 'slim' ? 'center' : 'flex-start',\n px: 2,\n }}\n >\n {logoElement ?? <MRSLogo variant={variant} />}\n </Box>\n )}\n\n {/* Spacing */}\n <Box sx={{ height: 8 }} />\n\n {/* Action Button Section */}\n {showActionButton && actionButton && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: variant === 'slim' ? 'center' : 'flex-start',\n px: 2,\n }}\n >\n {variant === 'slim' ? (\n <Tooltip title={actionButton.label || 'Add'} placement=\"right\" arrow>\n <IconButton\n color=\"primary\"\n size=\"large\"\n onClick={actionButton.onClick}\n sx={{\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n },\n }}\n >\n <MaterialSymbol icon={actionButton.icon || 'add'} size=\"medium\" />\n </IconButton>\n </Tooltip>\n ) : (\n <Button\n variant=\"contained\"\n color=\"primary\"\n fullWidth\n startIcon={\n actionButton.icon && <MaterialSymbol icon={actionButton.icon} size=\"small\" />\n }\n onClick={actionButton.onClick}\n >\n {actionButton.label || 'Agendar'}\n </Button>\n )}\n </Box>\n )}\n\n {/* Spacing */}\n <Box sx={{ height: 8 }} />\n\n {/* Navigation List */}\n <List\n sx={{\n flex: 1,\n overflow: 'auto',\n py: 1,\n ...listSx,\n }}\n >\n {items.map((item, index) => {\n if (isGroup(item)) {\n return renderGroup(item, index);\n }\n return renderNavItem(item as SidenavItem, index);\n })}\n </List>\n </Paper>\n );\n }\n);\n\nSidenav.displayName = 'Sidenav';\n\nexport type { SidenavProps, SidenavItem, SidenavNavigationItem };\nexport default Sidenav;\n","/**\n * Sidenav Component Types\n *\n * Type definitions for the Sidenav component in the MRS Design System.\n *\n * @figma https://figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=13099-16347\n */\n\nimport type { ReactNode } from 'react';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\n/**\n * Navigation item interface for sidenav items\n */\nexport interface SidenavItem {\n /** Unique identifier for the item */\n id?: string;\n /** Item label text */\n label: string;\n /** Icon name for MaterialSymbol */\n icon?: string;\n /** Whether this item is selected/active */\n selected?: boolean;\n /** Optional click handler */\n onClick?: () => void;\n /** Optional path for routing */\n path?: string;\n}\n\n/**\n * Navigation group interface for grouped items with subheaders\n */\nexport interface SidenavGroup {\n /** Unique identifier for the group */\n id?: string;\n /** Group header label */\n header: string;\n /** Items within this group */\n items: SidenavItem[];\n}\n\n/**\n * Combined navigation item type (can be simple item or group)\n */\nexport type SidenavNavigationItem = SidenavItem | SidenavGroup;\n\n/**\n * Type guard to check if navigation item is a group\n */\nexport function isSidenavGroup(item: SidenavNavigationItem): item is SidenavGroup {\n return 'header' in item && 'items' in item;\n}\n\n/**\n * Props for the Sidenav component\n */\nexport interface SidenavProps {\n /** Sidenav variant - 'default' (256px) or 'slim' (72px) */\n variant?: 'default' | 'slim';\n /** Whether to show the logo */\n logo?: boolean;\n /** Custom logo element (defaults to MRS logo) */\n logoElement?: ReactNode;\n /** Navigation items - can be simple items or groups with headers */\n items?: SidenavNavigationItem[];\n /** Action button configuration */\n actionButton?: {\n /** Button label (only shown in default variant) */\n label?: string;\n /** Icon name for the button */\n icon?: string;\n /** Click handler */\n onClick?: () => void;\n };\n /** Whether to show the action button */\n showActionButton?: boolean;\n /** Callback when a navigation item is clicked */\n onItemClick?: (item: SidenavItem) => void;\n /** Custom width (overrides variant width) */\n width?: number;\n /** Custom height */\n height?: number | string;\n /** Custom sx styles */\n sx?: SxProps<Theme>;\n /** Custom sx styles for the navigation list */\n listSx?: SxProps<Theme>;\n}\n","/**\n * Snackbar Component\n * @package @mrs/ui\n *\n * Temporary notification message shown at the bottom or top of the screen.\n * Provides brief feedback about an operation through a message at the bottom of the screen.\n *\n * @example\n * ```tsx\n * <Snackbar\n * open={open}\n * autoHideDuration={6000}\n * onClose={handleClose}\n * message=\"Item successfully saved\"\n * />\n * ```\n *\n * @example With severity\n * ```tsx\n * <Snackbar\n * open={open}\n * onClose={handleClose}\n * severity=\"success\"\n * >\n * Item successfully saved!\n * </Snackbar>\n * ```\n */\n\nimport React from 'react';\nimport MuiSnackbar from '@mui/material/Snackbar';\nimport Alert from '@mui/material/Alert';\nimport IconButton from '@mui/material/IconButton';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { SnackbarProps } from './Snackbar.types';\n\nexport const Snackbar = React.forwardRef<HTMLDivElement, SnackbarProps>(\n (\n {\n open = false,\n autoHideDuration = 6000,\n onClose,\n message,\n anchorOrigin = { vertical: 'bottom', horizontal: 'left' },\n action,\n severity,\n variant = 'filled',\n showCloseButton = true,\n icon,\n children,\n ...props\n },\n ref\n ) => {\n const handleClose = (event: React.SyntheticEvent | Event, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n onClose?.(event, reason);\n };\n\n // Render as Alert if severity is provided\n if (severity) {\n return (\n <MuiSnackbar\n ref={ref}\n open={open}\n autoHideDuration={autoHideDuration}\n onClose={handleClose}\n anchorOrigin={anchorOrigin}\n {...props}\n >\n <Alert\n severity={severity}\n variant={variant}\n icon={icon}\n onClose={showCloseButton ? (e) => handleClose(e) : undefined}\n sx={{ width: '100%' }}\n >\n {children || message}\n </Alert>\n </MuiSnackbar>\n );\n }\n\n // Default action (close button) if no action provided\n const defaultAction =\n action !== undefined ? (\n action\n ) : (\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={(e) => handleClose(e)}>\n <MaterialSymbol icon=\"close\" size=\"small\" />\n </IconButton>\n );\n\n // Render as simple Snackbar\n return (\n <MuiSnackbar\n ref={ref}\n open={open}\n autoHideDuration={autoHideDuration}\n onClose={handleClose}\n message={children || message}\n action={defaultAction}\n anchorOrigin={anchorOrigin}\n {...props}\n />\n );\n }\n);\n\nSnackbar.displayName = 'Snackbar';\n\nexport default Snackbar;\n","/**\n * SpeedDial Component\n *\n * SpeedDial component for the MRS Design System.\n * Wraps Material-UI SpeedDial with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-speed-dial/}\n */\n\nimport React from 'react';\nimport MuiSpeedDial from '@mui/material/SpeedDial';\nimport type { SpeedDialProps } from './SpeedDial.types';\n\n/**\n * SpeedDial component\n *\n * When pressed, a floating action button can display three to six related actions in the form of a Speed Dial.\n *\n * @param props - SpeedDial component props\n * @returns SpeedDial component\n */\nexport const SpeedDial = React.forwardRef<HTMLDivElement, SpeedDialProps>((props, ref) => {\n return <MuiSpeedDial ref={ref} {...props} />;\n});\n\nSpeedDial.displayName = 'SpeedDial';\n","/**\n * SpeedDialAction Component\n *\n * SpeedDialAction component for the MRS Design System.\n * Wraps Material-UI SpeedDialAction with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-speed-dial/}\n */\n\nimport React from 'react';\nimport MuiSpeedDialAction from '@mui/material/SpeedDialAction';\nimport type { SpeedDialActionProps } from './SpeedDial.types';\n\n/**\n * SpeedDialAction component\n *\n * Individual action button for SpeedDial.\n *\n * @param props - SpeedDialAction component props\n * @returns SpeedDialAction component\n */\nexport const SpeedDialAction = React.forwardRef<HTMLDivElement, SpeedDialActionProps>(\n (props, ref) => {\n return <MuiSpeedDialAction ref={ref} {...props} />;\n }\n);\n\nSpeedDialAction.displayName = 'SpeedDialAction';\n","/**\n * SpeedDialIcon Component\n *\n * SpeedDialIcon component for the MRS Design System.\n * Wraps Material-UI SpeedDialIcon with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-speed-dial/}\n */\n\nimport React from 'react';\nimport MuiSpeedDialIcon from '@mui/material/SpeedDialIcon';\nimport type { SpeedDialIconProps } from './SpeedDial.types';\n\n/**\n * SpeedDialIcon component\n *\n * Icon for the SpeedDial Floating Action Button that animates when opened/closed.\n *\n * @param props - SpeedDialIcon component props\n * @returns SpeedDialIcon component\n */\nexport const SpeedDialIcon = React.forwardRef<HTMLSpanElement, SpeedDialIconProps>((props, ref) => {\n return <MuiSpeedDialIcon ref={ref} {...props} />;\n});\n\nSpeedDialIcon.displayName = 'SpeedDialIcon';\n","/**\n * Stepper Component\n * @package @mrs/ui\n */\n\nimport React from 'react';\nimport MuiStepper from '@mui/material/Stepper';\nimport MuiStep from '@mui/material/Step';\nimport MuiStepLabel from '@mui/material/StepLabel';\nimport type { StepperProps, StepProps, StepLabelProps } from './Stepper.types';\n\nexport const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n children,\n activeStep = 0,\n orientation = 'horizontal',\n alternativeLabel = false,\n nonLinear = false,\n ...props\n },\n ref\n ) => {\n return (\n <MuiStepper\n ref={ref}\n activeStep={activeStep}\n orientation={orientation}\n alternativeLabel={alternativeLabel}\n nonLinear={nonLinear}\n {...props}\n >\n {children}\n </MuiStepper>\n );\n }\n);\n\nStepper.displayName = 'Stepper';\n\nexport const Step = React.forwardRef<HTMLDivElement, StepProps>(\n ({ children, active, completed, disabled, ...props }, ref) => {\n return (\n <MuiStep ref={ref} active={active} completed={completed} disabled={disabled} {...props}>\n {children}\n </MuiStep>\n );\n }\n);\n\nStep.displayName = 'Step';\n\nexport const StepLabel = React.forwardRef<HTMLLabelElement, StepLabelProps>(\n ({ children, error, optional, icon, ...props }, ref) => {\n return (\n <MuiStepLabel ref={ref} error={error} optional={optional} icon={icon} {...props}>\n {children}\n </MuiStepLabel>\n );\n }\n);\n\nStepLabel.displayName = 'StepLabel';\n\nexport default Stepper;\n","/**\n * Tabs Component\n * @package @mrs/ui\n *\n * Navigation component that organizes content into separate views.\n * Only one view is visible at a time, with tabs allowing users to switch between them.\n *\n * @example\n * ```tsx\n * const [value, setValue] = useState(0);\n *\n * <Tabs value={value} onChange={(e, newValue) => setValue(newValue)}>\n * <Tab label=\"Tab 1\" />\n * <Tab label=\"Tab 2\" />\n * <Tab label=\"Tab 3\" />\n * </Tabs>\n * ```\n */\n\nimport React from 'react';\nimport MuiTabs from '@mui/material/Tabs';\nimport MuiTab from '@mui/material/Tab';\nimport type { TabsProps, TabProps } from './Tabs.types';\n\n/**\n * Tabs component for navigation between different views\n */\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n value,\n onChange,\n children,\n variant = 'standard',\n indicatorColor = 'primary',\n textColor = 'primary',\n centered = false,\n scrollButtons = 'auto',\n allowScrollButtonsMobile = false,\n orientation = 'horizontal',\n TabIndicatorProps,\n ScrollButtonComponent,\n ...props\n },\n ref\n ) => {\n return (\n <MuiTabs\n ref={ref}\n value={value}\n onChange={onChange}\n variant={variant}\n indicatorColor={indicatorColor}\n textColor={textColor}\n centered={centered}\n scrollButtons={scrollButtons}\n allowScrollButtonsMobile={allowScrollButtonsMobile}\n orientation={orientation}\n TabIndicatorProps={TabIndicatorProps}\n ScrollButtonComponent={ScrollButtonComponent}\n {...props}\n >\n {children}\n </MuiTabs>\n );\n }\n);\n\nTabs.displayName = 'Tabs';\n\n/**\n * Tab component for individual tab item\n */\nexport const Tab = React.forwardRef<HTMLDivElement, TabProps>(\n (\n { label, value, icon, disabled = false, wrapped = false, iconPosition = 'top', ...props },\n ref\n ) => {\n return (\n <MuiTab\n ref={ref}\n label={label}\n value={value}\n icon={icon}\n disabled={disabled}\n wrapped={wrapped}\n iconPosition={iconPosition}\n {...props}\n />\n );\n }\n);\n\nTab.displayName = 'Tab';\n\nexport default Tabs;\n","/**\n * LocalizationProvider Component\n *\n * Provides localization context for MUI X Date Pickers\n * Uses dayjs as the date library adapter\n */\n\nimport React from 'react';\nimport { LocalizationProvider as MuiLocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\n\nexport interface LocalizationProviderProps {\n /**\n * The content to wrap with localization context\n */\n children: React.ReactNode;\n\n /**\n * The locale string to use for date formatting\n * @default 'en'\n */\n locale?: string;\n}\n\n/**\n * LocalizationProvider wraps MUI X LocalizationProvider with dayjs adapter\n * Use this to wrap your app or component tree that uses date pickers\n */\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({\n children,\n locale = 'en',\n}) => {\n return (\n <MuiLocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={locale}>\n {children}\n </MuiLocalizationProvider>\n );\n};\n\nLocalizationProvider.displayName = 'LocalizationProvider';\n\nexport default LocalizationProvider;\n","import type { MouseEvent } from 'react';\nimport { useState, useCallback } from 'react';\nimport { PrimitivesMotionDurationFast } from '../../tokens/generated/ts/tokens';\n\ninterface Ripple {\n x: number;\n y: number;\n size: number;\n id: number;\n}\n\n/**\n * useRipple Hook\n *\n * Creates Material Design ripple effect on click\n *\n * @example\n * ```tsx\n * const { ripples, createRipple, clearRipples } = useRipple();\n *\n * <button onClick={createRipple}>\n * {ripples.map(ripple => (\n * <span key={ripple.id} className=\"ripple\" style={{...}} />\n * ))}\n * Click me\n * </button>\n * ```\n */\nexport const useRipple = () => {\n const [ripples, setRipples] = useState<Ripple[]>([]);\n\n const createRipple = useCallback((event: MouseEvent<HTMLElement>) => {\n const button = event.currentTarget;\n const rect = button.getBoundingClientRect();\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n const newRipple: Ripple = {\n x,\n y,\n size,\n id: Date.now(),\n };\n\n setRipples((prev) => [...prev, newRipple]);\n\n // Remove ripple after animation\n const duration = parseInt(PrimitivesMotionDurationFast) * 6; // 600ms\n setTimeout(() => {\n setRipples((prev) => prev.filter((ripple) => ripple.id !== newRipple.id));\n }, duration);\n }, []);\n\n const clearRipples = useCallback(() => {\n setRipples([]);\n }, []);\n\n return { ripples, createRipple, clearRipples };\n};\n","import { useEffect, useRef } from 'react';\n\ninterface UsePulseOptions {\n duration?: number;\n scale?: number;\n enabled?: boolean;\n}\n\n/**\n * usePulse Hook\n *\n * Creates a pulsing animation effect\n *\n * @param options - Configuration options\n * @param options.duration - Animation duration in ms (default: 1000)\n * @param options.scale - Scale factor (default: 1.05)\n * @param options.enabled - Whether animation is enabled (default: true)\n *\n * @example\n * ```tsx\n * const pulseRef = usePulse({ duration: 1000, scale: 1.1 });\n *\n * <div ref={pulseRef}>Pulsing element</div>\n * ```\n */\nexport const usePulse = <T extends HTMLElement>(\n options: UsePulseOptions = {}\n): React.RefObject<T> => {\n const { duration = 1000, scale = 1.05, enabled = true } = options;\n const ref = useRef<T>(null);\n\n useEffect(() => {\n if (!enabled || !ref.current) return;\n\n const element = ref.current;\n const keyframes = [\n { transform: 'scale(1)' },\n { transform: `scale(${scale})` },\n { transform: 'scale(1)' },\n ];\n\n const animation = element.animate(keyframes, {\n duration,\n iterations: Infinity,\n easing: 'ease-in-out',\n });\n\n return () => {\n animation.cancel();\n };\n }, [duration, scale, enabled]);\n\n return ref;\n};\n","import { useCallback, useRef } from 'react';\nimport { PrimitivesMotionDurationBase } from '../../tokens/generated/ts/tokens';\n\ninterface UseShakeOptions {\n duration?: number;\n distance?: number;\n}\n\n/**\n * useShake Hook\n *\n * Triggers a shake animation (useful for errors, invalid inputs)\n *\n * @param options - Configuration options\n * @param options.duration - Animation duration in ms (default: 200ms from tokens)\n * @param options.distance - Shake distance in pixels (default: 10)\n *\n * @example\n * ```tsx\n * const { ref, shake } = useShake<HTMLInputElement>();\n *\n * <input\n * ref={ref}\n * onError={() => shake()}\n * />\n * ```\n */\nexport const useShake = <T extends HTMLElement>(options: UseShakeOptions = {}) => {\n const { duration = parseInt(PrimitivesMotionDurationBase), distance = 10 } = options;\n const ref = useRef<T>(null);\n\n const shake = useCallback(() => {\n if (!ref.current) return;\n\n const element = ref.current;\n const keyframes = [\n { transform: 'translateX(0)' },\n { transform: `translateX(-${distance}px)` },\n { transform: `translateX(${distance}px)` },\n { transform: `translateX(-${distance}px)` },\n { transform: `translateX(${distance}px)` },\n { transform: 'translateX(0)' },\n ];\n\n element.animate(keyframes, {\n duration,\n easing: 'ease-in-out',\n });\n }, [duration, distance]);\n\n return { ref, shake };\n};\n","import { useCallback, useRef } from 'react';\nimport { PrimitivesMotionDurationModerate } from '../../tokens/generated/ts/tokens';\n\ninterface UseBounceOptions {\n duration?: number;\n scale?: number;\n}\n\n/**\n * useBounce Hook\n *\n * Triggers a bounce animation effect\n *\n * @param options - Configuration options\n * @param options.duration - Animation duration in ms (default: 300ms from tokens)\n * @param options.scale - Bounce scale factor (default: 1.2)\n *\n * @example\n * ```tsx\n * const { ref, bounce } = useBounce<HTMLButtonElement>();\n *\n * <button ref={ref} onClick={bounce}>\n * Bounce on click\n * </button>\n * ```\n */\nexport const useBounce = <T extends HTMLElement>(options: UseBounceOptions = {}) => {\n const { duration = parseInt(PrimitivesMotionDurationModerate), scale = 1.2 } = options;\n const ref = useRef<T>(null);\n\n const bounce = useCallback(() => {\n if (!ref.current) return;\n\n const element = ref.current;\n const keyframes = [\n { transform: 'scale(1)' },\n { transform: `scale(${scale})` },\n { transform: 'scale(0.9)' },\n { transform: `scale(${scale * 0.95})` },\n { transform: 'scale(1)' },\n ];\n\n element.animate(keyframes, {\n duration,\n easing: 'ease-out',\n });\n }, [duration, scale]);\n\n return { ref, bounce };\n};\n","import { useState, useCallback } from 'react';\nimport {\n PrimitivesMotionDurationFast,\n PrimitivesMotionEasingStandard,\n} from '../../tokens/generated/ts/tokens';\n\ninterface UseHoverScaleOptions {\n scale?: number;\n duration?: string;\n easing?: string;\n}\n\n/**\n * useHoverScale Hook\n *\n * Provides hover scale animation state and handlers\n *\n * @param options - Configuration options\n * @param options.scale - Scale factor on hover (default: 1.05)\n * @param options.duration - Transition duration (default: from tokens)\n * @param options.easing - Easing function (default: from tokens)\n *\n * @example\n * ```tsx\n * const { isHovered, onMouseEnter, onMouseLeave, style } = useHoverScale({\n * scale: 1.1\n * });\n *\n * <div\n * onMouseEnter={onMouseEnter}\n * onMouseLeave={onMouseLeave}\n * style={style}\n * >\n * Hover me\n * </div>\n * ```\n */\nexport const useHoverScale = (options: UseHoverScaleOptions = {}) => {\n const {\n scale = 1.05,\n duration = PrimitivesMotionDurationFast,\n easing = PrimitivesMotionEasingStandard,\n } = options;\n\n const [isHovered, setIsHovered] = useState(false);\n\n const onMouseEnter = useCallback(() => setIsHovered(true), []);\n const onMouseLeave = useCallback(() => setIsHovered(false), []);\n\n const style = {\n transform: isHovered ? `scale(${scale})` : 'scale(1)',\n transition: `transform ${duration} ${easing}`,\n cursor: 'pointer',\n };\n\n return {\n isHovered,\n onMouseEnter,\n onMouseLeave,\n style,\n };\n};\n","import React, { forwardRef } from 'react';\nimport type { ButtonProps } from '@mui/material/Button';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport { useRipple } from '../../../hooks/animations';\nimport { PrimitivesMotionDurationFast } from '../../../tokens/generated/ts/tokens';\n\nconst RippleContainer = styled('span')({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden',\n pointerEvents: 'none',\n borderRadius: 'inherit',\n});\n\nconst RippleSpan = styled('span')<{ x: number; y: number; size: number }>(({ x, y, size }) => ({\n position: 'absolute',\n left: x,\n top: y,\n width: size,\n height: size,\n borderRadius: '50%',\n backgroundColor: 'currentColor',\n opacity: 0.3,\n animation: `ripple ${parseInt(PrimitivesMotionDurationFast) * 6}ms ease-out`,\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.6,\n },\n '100%': {\n transform: 'scale(4)',\n opacity: 0,\n },\n },\n}));\n\nexport interface RippleButtonProps extends ButtonProps {\n /**\n * If true, ripple effect is disabled\n * @default false\n */\n disableRipple?: boolean;\n}\n\n/**\n * RippleButton Component\n *\n * Enhanced Material-UI Button with custom ripple effect\n *\n * @example\n * ```tsx\n * <RippleButton variant=\"contained\" color=\"primary\">\n * Click me for ripple effect\n * </RippleButton>\n * ```\n */\nexport const RippleButton = forwardRef<HTMLButtonElement, RippleButtonProps>(\n ({ children, disableRipple = false, onClick, ...props }, ref) => {\n const { ripples, createRipple } = useRipple();\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!disableRipple) {\n createRipple(event);\n }\n onClick?.(event);\n };\n\n return (\n <Button ref={ref} onClick={handleClick} sx={{ position: 'relative' }} {...props}>\n {!disableRipple && (\n <RippleContainer>\n {ripples.map((ripple) => (\n <RippleSpan key={ripple.id} x={ripple.x} y={ripple.y} size={ripple.size} />\n ))}\n </RippleContainer>\n )}\n {children}\n </Button>\n );\n }\n);\n\nRippleButton.displayName = 'RippleButton';\n","import React, { useEffect, useState } from 'react';\nimport type { BadgeProps } from '@mui/material/Badge';\nimport Badge from '@mui/material/Badge';\nimport { styled, keyframes } from '@mui/material/styles';\nimport { PrimitivesMotionDurationBase } from '../../../tokens/generated/ts/tokens';\n\nconst bounce = keyframes`\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.3);\n }\n`;\n\nconst pulse = keyframes`\n 0% {\n box-shadow: 0 0 0 0 rgba(244, 67, 54, 0.7);\n }\n 70% {\n box-shadow: 0 0 0 10px rgba(244, 67, 54, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(244, 67, 54, 0);\n }\n`;\n\nconst AnimatedBadgeRoot = styled(Badge)<{\n animate?: boolean;\n animationvariant?: 'bounce' | 'pulse';\n}>(({ animate, animationvariant }) => {\n if (!animate) return {};\n\n if (animationvariant === 'bounce') {\n return {\n '& .MuiBadge-badge': {\n animation: `${bounce} ${parseInt(PrimitivesMotionDurationBase) * 3}ms ease-in-out`,\n },\n };\n }\n\n if (animationvariant === 'pulse') {\n return {\n '& .MuiBadge-badge': {\n animation: `${pulse} 2s infinite`,\n },\n };\n }\n\n return {};\n});\n\nexport interface AnimatedBadgeProps extends BadgeProps {\n /**\n * Animation variant\n * @default 'bounce'\n */\n animationVariant?: 'bounce' | 'pulse' | 'none';\n /**\n * If true, animation plays once when badge appears\n * @default true\n */\n animateOnChange?: boolean;\n}\n\n/**\n * AnimatedBadge Component\n *\n * Badge component with entrance animations\n *\n * @example\n * ```tsx\n * <AnimatedBadge badgeContent={4} color=\"error\" animationVariant=\"bounce\">\n * <MailIcon />\n * </AnimatedBadge>\n * ```\n */\nexport const AnimatedBadge: React.FC<AnimatedBadgeProps> = ({\n animationVariant = 'bounce',\n animateOnChange = true,\n badgeContent,\n children,\n ...props\n}) => {\n const [shouldAnimate, setShouldAnimate] = useState(false);\n const [prevBadgeContent, setPrevBadgeContent] = useState(badgeContent);\n\n useEffect(() => {\n if (!animateOnChange || badgeContent === prevBadgeContent) {\n return;\n }\n\n setShouldAnimate(true);\n setPrevBadgeContent(badgeContent);\n\n const timer = setTimeout(\n () => {\n setShouldAnimate(false);\n },\n parseInt(PrimitivesMotionDurationBase) * 3\n );\n\n return () => clearTimeout(timer);\n }, [badgeContent, prevBadgeContent, animateOnChange]);\n\n const isPulse = animationVariant === 'pulse';\n const animate = isPulse || shouldAnimate;\n\n return (\n <AnimatedBadgeRoot\n badgeContent={badgeContent}\n animate={animate}\n animationvariant={animationVariant === 'none' ? undefined : animationVariant}\n {...props}\n >\n {children}\n </AnimatedBadgeRoot>\n );\n};\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport { styled, keyframes } from '@mui/material/styles';\nimport { PrimitivesMotionDurationBase } from '../../../tokens/generated/ts/tokens';\n\nconst bounce = keyframes`\n 0%, 80%, 100% {\n transform: scale(0);\n opacity: 0.5;\n }\n 40% {\n transform: scale(1);\n opacity: 1;\n }\n`;\n\nconst Dot = styled('span')<{ delay: number }>(({ theme, delay }) => ({\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n display: 'inline-block',\n margin: '0 4px',\n animation: `${bounce} ${parseInt(PrimitivesMotionDurationBase) * 7}ms infinite ease-in-out`,\n animationDelay: `${delay}ms`,\n}));\n\nexport interface LoadingDotsProps {\n /**\n * Color of the dots\n * @default 'primary'\n */\n color?: 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n /**\n * Size of the dots\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n}\n\n/**\n * LoadingDots Component\n *\n * Three-dot loading animation\n *\n * @example\n * ```tsx\n * <LoadingDots color=\"primary\" size=\"medium\" />\n * ```\n */\nexport const LoadingDots: React.FC<LoadingDotsProps> = ({ color = 'primary', size = 'medium' }) => {\n const sizeMap = {\n small: 8,\n medium: 12,\n large: 16,\n };\n\n const dotSize = sizeMap[size];\n\n return (\n <Box\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 0.5,\n }}\n >\n <Dot\n delay={0}\n sx={{\n width: dotSize,\n height: dotSize,\n bgcolor: `${color}.main`,\n }}\n />\n <Dot\n delay={160}\n sx={{\n width: dotSize,\n height: dotSize,\n bgcolor: `${color}.main`,\n }}\n />\n <Dot\n delay={320}\n sx={{\n width: dotSize,\n height: dotSize,\n bgcolor: `${color}.main`,\n }}\n />\n </Box>\n );\n};\n"],"names":["tokens.PrimitivesTypographyFontFamilyStack","tokens.PrimitivesTypographyFontWeightLight","tokens.PrimitivesTypographyFontWeightRegular","tokens.PrimitivesTypographyFontWeightMedium","tokens.PrimitivesTypographyFontWeightSemibold","tokens.PrimitivesTypographyFontWeightBold","tokens.PrimitivesTypographyFontSize4xl","tokens.PrimitivesTypographyLineHeightTight","tokens.PrimitivesTypographyFontSize3xl","tokens.PrimitivesTypographyFontSize2xl","tokens.PrimitivesTypographyFontSizeXl","tokens.PrimitivesTypographyFontSizeLg","tokens.PrimitivesTypographyFontSizeMd","tokens.PrimitivesTypographyLineHeightNormal","tokens.PrimitivesTypographyFontSizeSm","tokens.PrimitivesTypographyLineHeightSnug","tokens.PrimitivesTypographyLineHeightLoose","tokens.PrimitivesTypographyFontSizeXs","tokens.PrimitivesTypographyLineHeightRelaxed","tokens.SemanticColorLightPrimaryMain","tokens.SemanticColorLightPrimaryDark","tokens.SemanticColorLightPrimaryLight","tokens.SemanticColorLightPrimaryContrastText","tokens.SemanticColorLightSecondaryMain","tokens.SemanticColorLightSecondaryDark","tokens.SemanticColorLightSecondaryLight","tokens.SemanticColorLightSecondaryContrastText","tokens.SemanticColorLightErrorMain","tokens.SemanticColorLightErrorDark","tokens.SemanticColorLightErrorLight","tokens.SemanticColorLightErrorContrastText","tokens.SemanticColorLightWarningMain","tokens.SemanticColorLightWarningDark","tokens.SemanticColorLightWarningLight","tokens.SemanticColorLightWarningContrastText","tokens.SemanticColorLightInfoMain","tokens.SemanticColorLightInfoDark","tokens.SemanticColorLightInfoLight","tokens.SemanticColorLightInfoContrastText","tokens.SemanticColorLightSuccessMain","tokens.SemanticColorLightSuccessDark","tokens.SemanticColorLightSuccessLight","tokens.SemanticColorLightSuccessContrastText","tokens.SemanticColorLightBackgroundDefault","tokens.SemanticColorLightBackgroundPaper","tokens.SemanticColorLightTextPrimary","tokens.SemanticColorLightTextSecondary","tokens.SemanticColorLightTextDisabled","tokens.SemanticColorLightActionActive","tokens.SemanticColorLightActionHover","tokens.SemanticColorLightActionSelected","tokens.SemanticColorLightActionDisabled","tokens.SemanticColorLightActionDisabledBackground","tokens.SemanticColorLightDivider","tokens.ComponentAlertLightBorderRadius","tokens.ComponentAlertLightErrorFilledBackground","tokens.ComponentAlertLightErrorFilledForeground","tokens.ComponentAlertLightErrorOutlinedBackground","tokens.ComponentAlertLightErrorOutlinedForeground","tokens.ComponentAlertLightErrorOutlinedBorder","tokens.ComponentAlertLightErrorStandardBackground","tokens.ComponentAlertLightErrorStandardForeground","tokens.ComponentAlertLightWarningFilledBackground","tokens.ComponentAlertLightWarningFilledForeground","tokens.ComponentAlertLightWarningOutlinedBackground","tokens.ComponentAlertLightWarningOutlinedForeground","tokens.ComponentAlertLightWarningOutlinedBorder","tokens.ComponentAlertLightWarningStandardBackground","tokens.ComponentAlertLightWarningStandardForeground","tokens.ComponentAlertLightInfoFilledBackground","tokens.ComponentAlertLightInfoFilledForeground","tokens.ComponentAlertLightInfoOutlinedBackground","tokens.ComponentAlertLightInfoOutlinedForeground","tokens.ComponentAlertLightInfoOutlinedBorder","tokens.ComponentAlertLightInfoStandardBackground","tokens.ComponentAlertLightInfoStandardForeground","tokens.ComponentAlertLightSuccessFilledBackground","tokens.ComponentAlertLightSuccessFilledForeground","tokens.ComponentAlertLightSuccessOutlinedBackground","tokens.ComponentAlertLightSuccessOutlinedForeground","tokens.ComponentAlertLightSuccessOutlinedBorder","tokens.ComponentAlertLightSuccessStandardBackground","tokens.ComponentAlertLightSuccessStandardForeground","tokens.ComponentInputLightBorderRadius","tokens.ComponentInputLightStandardEnabledBorder","tokens.ComponentInputLightFilledEnabledFill","tokens.ComponentInputLightOutlinedEnabledBorder","tokens.ComponentPaperLightElevation0","tokens.ComponentPaperLightElevation1","tokens.ComponentPaperLightElevation2","tokens.ComponentChipDefaultCloseFill","tokens.ComponentChipDefaultEnabledBorder","tokens.ComponentButtonBorderRadius","tokens.ComponentCardLightBorderRadius","tokens.ComponentDialogLightBorderRadius","tokens.ComponentTableLightBorder","tokens.ComponentTableLightHeaderBackground","tokens.ComponentRatingActiveFill","tokens.ComponentRatingEnabledBorder","tokens.SemanticColorDarkPrimaryMain","tokens.SemanticColorDarkPrimaryDark","tokens.SemanticColorDarkPrimaryLight","tokens.SemanticColorDarkPrimaryContrastText","tokens.SemanticColorDarkSecondaryMain","tokens.SemanticColorDarkSecondaryDark","tokens.SemanticColorDarkSecondaryLight","tokens.SemanticColorDarkSecondaryContrastText","tokens.SemanticColorDarkErrorMain","tokens.SemanticColorDarkErrorDark","tokens.SemanticColorDarkErrorLight","tokens.SemanticColorDarkErrorContrastText","tokens.SemanticColorDarkWarningMain","tokens.SemanticColorDarkWarningDark","tokens.SemanticColorDarkWarningLight","tokens.SemanticColorDarkWarningContrastText","tokens.SemanticColorDarkInfoMain","tokens.SemanticColorDarkInfoDark","tokens.SemanticColorDarkInfoLight","tokens.SemanticColorDarkInfoContrastText","tokens.SemanticColorDarkSuccessMain","tokens.SemanticColorDarkSuccessDark","tokens.SemanticColorDarkSuccessLight","tokens.SemanticColorDarkSuccessContrastText","tokens.SemanticColorDarkBackgroundDefault","tokens.SemanticColorDarkBackgroundPaper","tokens.SemanticColorDarkTextPrimary","tokens.SemanticColorDarkTextSecondary","tokens.SemanticColorDarkTextDisabled","tokens.SemanticColorDarkActionActive","tokens.SemanticColorDarkActionHover","tokens.SemanticColorDarkActionSelected","tokens.SemanticColorDarkActionDisabled","tokens.SemanticColorDarkActionDisabledBackground","tokens.SemanticColorDarkDivider","tokens.ComponentAlertDarkBorderRadius","tokens.ComponentAlertDarkErrorFilledBackground","tokens.ComponentAlertDarkErrorFilledForeground","tokens.ComponentAlertDarkErrorOutlinedBackground","tokens.ComponentAlertDarkErrorOutlinedForeground","tokens.ComponentAlertDarkErrorOutlinedBorder","tokens.ComponentAlertDarkErrorStandardBackground","tokens.ComponentAlertDarkErrorStandardForeground","tokens.ComponentAlertDarkWarningFilledBackground","tokens.ComponentAlertDarkWarningFilledForeground","tokens.ComponentAlertDarkWarningOutlinedBackground","tokens.ComponentAlertDarkWarningOutlinedForeground","tokens.ComponentAlertDarkWarningOutlinedBorder","tokens.ComponentAlertDarkWarningStandardBackground","tokens.ComponentAlertDarkWarningStandardForeground","tokens.ComponentAlertDarkInfoFilledBackground","tokens.ComponentAlertDarkInfoFilledForeground","tokens.ComponentAlertDarkInfoOutlinedBackground","tokens.ComponentAlertDarkInfoOutlinedForeground","tokens.ComponentAlertDarkInfoOutlinedBorder","tokens.ComponentAlertDarkInfoStandardBackground","tokens.ComponentAlertDarkInfoStandardForeground","tokens.ComponentAlertDarkSuccessFilledBackground","tokens.ComponentAlertDarkSuccessFilledForeground","tokens.ComponentAlertDarkSuccessOutlinedBackground","tokens.ComponentAlertDarkSuccessOutlinedForeground","tokens.ComponentAlertDarkSuccessOutlinedBorder","tokens.ComponentAlertDarkSuccessStandardBackground","tokens.ComponentAlertDarkSuccessStandardForeground","tokens.ComponentInputDarkBorderRadius","tokens.ComponentInputDarkStandardEnabledBorder","tokens.ComponentInputDarkFilledEnabledFill","tokens.ComponentInputDarkOutlinedEnabledBorder","tokens.ComponentPaperDarkElevation0","tokens.ComponentPaperDarkElevation1","tokens.ComponentPaperDarkElevation2","tokens.ComponentPaperDarkElevation4","tokens.ComponentPaperDarkElevation6","tokens.ComponentPaperDarkElevation8","tokens.ComponentPaperDarkElevation12","tokens.ComponentPaperDarkElevation16","tokens.ComponentPaperDarkElevation24","tokens.PrimitivesColorsNeutralWhite","tokens.PrimitivesColorsNeutralGray600","tokens.ComponentCardDarkBorderRadius","tokens.ComponentDialogDarkBorderRadius","tokens.ComponentTableDarkBorder","tokens.ComponentTableDarkHeaderBackground","tokens.PrimitivesColorsAlphaWhite30","spacing","shape","typography","MuiBox","MuiStack","theme","tokens.ComponentAvatarSmall","tokens.ComponentAvatarMedium","tokens.ComponentAvatarBorderRadius","tokens.PrimitivesRadiusSm","MuiTypography","Box","Typography","MuiDivider","MuiIconButton","MuiTooltip","tokens.ComponentTooltipLightBackground","tokens.ComponentTooltipDarkBackground","tokens.ComponentTooltipLightForeground","tokens.ComponentTooltipDarkForeground","tokens.ComponentTooltipLightBorderRadius","tokens.ComponentTooltipDarkBorderRadius","tokens.PrimitivesSpacing05","tokens.PrimitivesSpacing1","tokens","IconButton","Stack","TextField","List","Divider","MuiList","MuiListItemButton","tokens.ComponentSidenavWidthCollapsed","tokens.ComponentSidenavWidthExpanded","tokens.ComponentSidenavLightBorderRadius","tokens.ComponentSidenavDarkBorderRadius","tokens.ComponentSidenavLightItemSelectedBackground","tokens.ComponentSidenavDarkItemSelectedBackground","tokens.ComponentSidenavLightItemSelectedForeground","tokens.ComponentSidenavDarkItemSelectedForeground","tokens.ComponentSidenavLightItemHoverBackground","tokens.ComponentSidenavDarkItemHoverBackground","Tooltip","Paper","Alert","e","MuiLocalizationProvider","keyframes","bounce","Button","Badge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/tokens/generated/ts/tokens.js","../src/theme/tokens-import.ts","../src/theme/styleCompositions.ts","../src/theme/theme.ts","../src/theme/tokens.ts","../src/components/atoms/Box/Box.tsx","../src/components/atoms/Stack/Stack.tsx","../src/components/atoms/Avatar/Avatar.tsx","../src/components/atoms/Badge/Badge.tsx","../src/components/atoms/Typography/Typography.tsx","../src/components/atoms/AccountStack/AccountStack.tsx","../src/types/theme-helpers.ts","../src/components/atoms/Button/Button.tsx","../src/components/atoms/Checkbox/Checkbox.tsx","../src/components/atoms/Chip/Chip.tsx","../src/components/atoms/CircularProgress/CircularProgress.tsx","../src/components/atoms/Container/Container.tsx","../src/components/atoms/Divider/Divider.tsx","../src/components/atoms/FormControlLabel/FormControlLabel.tsx","../src/components/atoms/FormGroup/FormGroup.tsx","../src/components/atoms/Grid/Grid.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/atoms/IconButton/IconButton.tsx","../src/components/atoms/LinearProgress/LinearProgress.tsx","../src/components/atoms/Link/Link.tsx","../src/components/atoms/MaterialSymbol/MaterialSymbol.tsx","../src/components/atoms/MenuItem/MenuItem.tsx","../src/components/atoms/Paper/Paper.tsx","../src/components/atoms/Radio/Radio.tsx","../src/components/atoms/RadioGroup/RadioGroup.tsx","../src/components/atoms/Select/Select.tsx","../src/components/atoms/Skeleton/Skeleton.tsx","../src/components/atoms/Slider/Slider.tsx","../src/components/atoms/Switch/Switch.tsx","../src/components/atoms/TextField/TextField.tsx","../src/components/atoms/Toolbar/Toolbar.tsx","../src/components/atoms/Tooltip/Tooltip.tsx","../src/components/molecules/Accordion/Accordion.tsx","../src/components/molecules/Accordion/AccordionSummary.tsx","../src/components/molecules/Accordion/AccordionDetails.tsx","../src/components/molecules/Accordion/AccordionActions.tsx","../src/components/molecules/Alert/Alert.tsx","../src/components/molecules/AppBar/AppBar.tsx","../src/components/molecules/Autocomplete/Autocomplete.tsx","../src/components/molecules/BottomNavigation/BottomNavigation.tsx","../src/components/molecules/BottomNavigation/BottomNavigationAction.tsx","../src/components/molecules/ButtonGroup/ButtonGroup.tsx","../src/components/molecules/Card/Card.tsx","../src/components/molecules/Card/CardActionArea.tsx","../src/components/molecules/Card/CardActions.tsx","../src/components/molecules/Card/CardContent.tsx","../src/components/molecules/Card/CardHeader.tsx","../src/components/molecules/Card/CardMedia.tsx","../src/components/molecules/ExpandableNavItem/ExpandableNavItem.tsx","../src/components/molecules/DrawerNavigation/DrawerNavigation.tsx","../src/components/molecules/List/List.tsx","../src/components/molecules/ListItem/ListItem.tsx","../src/components/molecules/Menu/Menu.tsx","../src/components/molecules/Pagination/Pagination.tsx","../src/components/molecules/Rating/Rating.tsx","../src/components/molecules/Sidenav/Sidenav.tsx","../src/components/molecules/Sidenav/Sidenav.types.ts","../src/components/molecules/Snackbar/Snackbar.tsx","../src/components/molecules/SpeedDial/SpeedDial.tsx","../src/components/molecules/SpeedDial/SpeedDialAction.tsx","../src/components/molecules/SpeedDial/SpeedDialIcon.tsx","../src/components/molecules/Stepper/Stepper.tsx","../src/components/molecules/Tabs/Tabs.tsx","../src/components/providers/LocalizationProvider.tsx","../src/hooks/animations/useRipple.ts","../src/hooks/animations/usePulse.ts","../src/hooks/animations/useShake.ts","../src/hooks/animations/useBounce.ts","../src/hooks/animations/useHoverScale.ts","../src/components/effects/RippleButton/RippleButton.tsx","../src/components/effects/AnimatedBadge/AnimatedBadge.tsx","../src/components/effects/LoadingDots/LoadingDots.tsx"],"sourcesContent":["/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport const ComponentAlertLightBorderRadius = \"8px\";\nexport const ComponentAlertLightErrorFilledBackground = \"#ab1a1a\";\nexport const ComponentAlertLightErrorFilledForeground = \"#ffffff\";\nexport const ComponentAlertLightErrorOutlinedBackground = \"#fdeded\";\nexport const ComponentAlertLightErrorOutlinedForeground = \"#5f2120\";\nexport const ComponentAlertLightErrorOutlinedBorder = \"#ab1a1a\";\nexport const ComponentAlertLightErrorStandardBackground = \"#fdeded\";\nexport const ComponentAlertLightErrorStandardForeground = \"#5f2120\";\nexport const ComponentAlertLightWarningFilledBackground = \"#dfa00a\";\nexport const ComponentAlertLightWarningFilledForeground = \"#000000de\";\nexport const ComponentAlertLightWarningOutlinedBackground = \"#fff4e5\";\nexport const ComponentAlertLightWarningOutlinedForeground = \"#3e2410\";\nexport const ComponentAlertLightWarningOutlinedBorder = \"#dfa00a\";\nexport const ComponentAlertLightWarningStandardBackground = \"#fff4e5\";\nexport const ComponentAlertLightWarningStandardForeground = \"#3e2410\";\nexport const ComponentAlertLightInfoFilledBackground = \"#125c87\";\nexport const ComponentAlertLightInfoFilledForeground = \"#ffffff\";\nexport const ComponentAlertLightInfoOutlinedBackground = \"#e5f6fd\";\nexport const ComponentAlertLightInfoOutlinedForeground = \"#014361\";\nexport const ComponentAlertLightInfoOutlinedBorder = \"#125c87\";\nexport const ComponentAlertLightInfoStandardBackground = \"#e5f6fd\";\nexport const ComponentAlertLightInfoStandardForeground = \"#014361\";\nexport const ComponentAlertLightSuccessFilledBackground = \"#2e7d32\";\nexport const ComponentAlertLightSuccessFilledForeground = \"#ffffff\";\nexport const ComponentAlertLightSuccessOutlinedBackground = \"#edf7ed\";\nexport const ComponentAlertLightSuccessOutlinedForeground = \"#1e4620\";\nexport const ComponentAlertLightSuccessOutlinedBorder = \"#2e7d32\";\nexport const ComponentAlertLightSuccessStandardBackground = \"#edf7ed\";\nexport const ComponentAlertLightSuccessStandardForeground = \"#1e4620\";\nexport const ComponentAlertDarkBorderRadius = \"8px\";\nexport const ComponentAlertDarkErrorFilledBackground = \"#f48282\";\nexport const ComponentAlertDarkErrorFilledForeground = \"#000000\";\nexport const ComponentAlertDarkErrorOutlinedBackground = \"#f482821f\";\nexport const ComponentAlertDarkErrorOutlinedForeground = \"#f48282\";\nexport const ComponentAlertDarkErrorOutlinedBorder = \"#f48282\";\nexport const ComponentAlertDarkErrorStandardBackground = \"#f482821f\";\nexport const ComponentAlertDarkErrorStandardForeground = \"#f48282\";\nexport const ComponentAlertDarkWarningFilledBackground = \"#ffb74d\";\nexport const ComponentAlertDarkWarningFilledForeground = \"#000000\";\nexport const ComponentAlertDarkWarningOutlinedBackground = \"#ffb74d1f\";\nexport const ComponentAlertDarkWarningOutlinedForeground = \"#ffb74d\";\nexport const ComponentAlertDarkWarningOutlinedBorder = \"#ffb74d\";\nexport const ComponentAlertDarkWarningStandardBackground = \"#ffb74d1f\";\nexport const ComponentAlertDarkWarningStandardForeground = \"#ffb74d\";\nexport const ComponentAlertDarkInfoFilledBackground = \"#64b5f6\";\nexport const ComponentAlertDarkInfoFilledForeground = \"#000000\";\nexport const ComponentAlertDarkInfoOutlinedBackground = \"#64b5f61f\";\nexport const ComponentAlertDarkInfoOutlinedForeground = \"#64b5f6\";\nexport const ComponentAlertDarkInfoOutlinedBorder = \"#64b5f6\";\nexport const ComponentAlertDarkInfoStandardBackground = \"#64b5f61f\";\nexport const ComponentAlertDarkInfoStandardForeground = \"#64b5f6\";\nexport const ComponentAlertDarkSuccessFilledBackground = \"#81c784\";\nexport const ComponentAlertDarkSuccessFilledForeground = \"#000000\";\nexport const ComponentAlertDarkSuccessOutlinedBackground = \"#81c7841f\";\nexport const ComponentAlertDarkSuccessOutlinedForeground = \"#81c784\";\nexport const ComponentAlertDarkSuccessOutlinedBorder = \"#81c784\";\nexport const ComponentAlertDarkSuccessStandardBackground = \"#81c7841f\";\nexport const ComponentAlertDarkSuccessStandardForeground = \"#81c784\";\nexport const ComponentButtonTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Button default transition - color, background, border\nexport const ComponentButtonTransitionElevation =\n \"box-shadow 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Button elevation transition on hover\nexport const ComponentButtonBorderRadius = \"8px\";\nexport const ComponentButtonFontWeight = \"600\";\nexport const ComponentButtonSmallFontSize = \"0.8125rem\";\nexport const ComponentButtonSmallHeight = \"30px\";\nexport const ComponentButtonMediumFontSize = \"0.875rem\";\nexport const ComponentButtonMediumHeight = \"36px\";\nexport const ComponentButtonLargeFontSize = \"1rem\";\nexport const ComponentButtonLargeHeight = \"42px\";\nexport const ComponentDialogTransitionEnter =\n \"opacity 300ms cubic-bezier(0, 0, 0.2, 1), transform 300ms cubic-bezier(0, 0, 0.2, 1)\"; // Dialog enter transition - fade + scale\nexport const ComponentDialogTransitionExit =\n \"opacity 200ms cubic-bezier(0.4, 0, 1, 1), transform 200ms cubic-bezier(0.4, 0, 1, 1)\"; // Dialog exit transition\nexport const ComponentDialogLightBorderRadius = \"12px\";\nexport const ComponentDialogDarkBorderRadius = \"12px\";\nexport const ComponentDrawerTransitionEnter =\n \"transform 300ms cubic-bezier(0, 0, 0.2, 1)\"; // Drawer slide in transition\nexport const ComponentDrawerTransitionExit =\n \"transform 300ms cubic-bezier(0.4, 0, 1, 1)\"; // Drawer slide out transition\nexport const ComponentDrawerLightBackground = \"#ffffff\";\nexport const ComponentDrawerLightBorderRadius = \"0px\";\nexport const ComponentDrawerDarkBackground = \"#1e1e1e\";\nexport const ComponentDrawerDarkBorderRadius = \"0px\";\nexport const ComponentSnackbarTransitionEnter =\n \"transform 300ms cubic-bezier(0.2, 0, 0, 1), opacity 200ms cubic-bezier(0.4, 0, 1, 1)\"; // Snackbar enter transition - slide up + fade\nexport const ComponentSnackbarTransitionExit =\n \"opacity 200ms cubic-bezier(0, 0, 0.2, 1)\"; // Snackbar exit transition - fade out\nexport const ComponentSnackbarLightBackground = \"#424242\";\nexport const ComponentSnackbarLightForeground = \"#ffffff\";\nexport const ComponentSnackbarLightBorderRadius = \"4px\";\nexport const ComponentSnackbarDarkBackground = \"#eeeeee\";\nexport const ComponentSnackbarDarkForeground = \"#000000\";\nexport const ComponentSnackbarDarkBorderRadius = \"4px\";\nexport const ComponentTooltipTransitionEnter =\n \"opacity 100ms cubic-bezier(0.4, 0, 1, 1)\"; // Tooltip fade in\nexport const ComponentTooltipTransitionExit =\n \"opacity 100ms cubic-bezier(0, 0, 0.2, 1)\"; // Tooltip fade out\nexport const ComponentTooltipLightBackground = \"#000000de\";\nexport const ComponentTooltipLightForeground = \"#ffffff\";\nexport const ComponentTooltipLightBorderRadius = \"4px\";\nexport const ComponentTooltipDarkBackground = \"#616161\";\nexport const ComponentTooltipDarkForeground = \"#ffffff\";\nexport const ComponentTooltipDarkBorderRadius = \"4px\";\nexport const ComponentMenuTransitionEnter =\n \"opacity 200ms cubic-bezier(0.4, 0, 1, 1), transform 200ms cubic-bezier(0, 0, 0.2, 1)\"; // Menu enter transition - fade + scale\nexport const ComponentMenuTransitionExit =\n \"opacity 100ms cubic-bezier(0, 0, 0.2, 1)\"; // Menu exit transition - fade\nexport const ComponentMenuLightBackground = \"#ffffff\";\nexport const ComponentMenuLightBorderRadius = \"8px\";\nexport const ComponentMenuDarkBackground = \"#1e1e1e\";\nexport const ComponentMenuDarkBorderRadius = \"8px\";\nexport const ComponentCollapseTransitionEnter =\n \"height 300ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Collapse expand transition\nexport const ComponentCollapseTransitionExit =\n \"height 200ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Collapse contract transition\nexport const ComponentFabTransitionDefault =\n \"all 200ms cubic-bezier(0.4, 0, 0.2, 1)\"; // FAB default transition\nexport const ComponentFabTransitionElevation =\n \"box-shadow 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // FAB elevation on hover\nexport const ComponentFabBorderRadius = \"9999px\";\nexport const ComponentChipTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Chip hover/focus transition\nexport const ComponentChipDefaultCloseFill = \"#000000\";\nexport const ComponentChipDefaultEnabledBorder = \"#bdbdbd\";\nexport const ComponentChipBorderRadius = \"9999px\";\nexport const ComponentSwitchTransitionThumb =\n \"transform 100ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Switch thumb movement\nexport const ComponentSwitchTransitionTrack =\n \"background-color 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Switch track color change\nexport const ComponentCheckboxTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Checkbox state transition\nexport const ComponentRadioTransitionDefault =\n \"all 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Radio button state transition\nexport const ComponentAccordionTransitionExpand =\n \"all 300ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Accordion panel expand\nexport const ComponentAccordionTransitionCollapse =\n \"all 200ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Accordion panel collapse\nexport const ComponentAccordionLightBackground = \"#ffffff\";\nexport const ComponentAccordionLightBorder = \"#0000001f\";\nexport const ComponentAccordionLightBorderRadius = \"8px\";\nexport const ComponentAccordionDarkBackground = \"#1e1e1e\";\nexport const ComponentAccordionDarkBorder = \"#ffffff1f\";\nexport const ComponentAccordionDarkBorderRadius = \"8px\";\nexport const ComponentSkeletonAnimationPulseDuration = \"1500ms\"; // Skeleton pulse animation duration\nexport const ComponentSkeletonAnimationPulseEasing =\n \"cubic-bezier(0.4, 0, 0.2, 1)\"; // Skeleton pulse easing\nexport const ComponentSkeletonAnimationWaveDuration = \"1600ms\"; // Skeleton wave animation duration\nexport const ComponentSkeletonAnimationWaveEasing = \"cubic-bezier(0, 0, 1, 1)\"; // Skeleton wave easing\nexport const ComponentSkeletonLightBackground = \"#0000001f\";\nexport const ComponentSkeletonLightBorderRadius = \"4px\";\nexport const ComponentSkeletonDarkBackground = \"#ffffff1f\";\nexport const ComponentSkeletonDarkBorderRadius = \"4px\";\nexport const ComponentProgressAnimationIndeterminateDuration = \"2000ms\"; // Progress indeterminate animation duration\nexport const ComponentProgressAnimationIndeterminateEasing =\n \"cubic-bezier(0, 0, 1, 1)\"; // Progress animation easing\nexport const ComponentProgressAnimationCircularDuration = \"1400ms\"; // Circular progress rotation duration\nexport const ComponentProgressAnimationCircularEasing =\n \"cubic-bezier(0, 0, 1, 1)\"; // Circular progress easing\nexport const ComponentProgressLightBackground = \"#00999929\";\nexport const ComponentProgressLightForeground = \"#00686f\";\nexport const ComponentProgressDarkBackground = \"#0099993d\";\nexport const ComponentProgressDarkForeground = \"#66b2b2\";\nexport const ComponentProgressThickness = \"4px\";\nexport const ComponentIconButtonBorderRadius = \"9999px\";\nexport const ComponentIconButtonSmallSize = \"34px\";\nexport const ComponentIconButtonSmallIconSize = \"20px\";\nexport const ComponentIconButtonMediumSize = \"40px\";\nexport const ComponentIconButtonMediumIconSize = \"24px\";\nexport const ComponentIconButtonLargeSize = \"48px\";\nexport const ComponentIconButtonLargeIconSize = \"28px\";\nexport const ComponentListLightBackground = \"#ffffff\";\nexport const ComponentListLightItemDefaultBackground = \"#00000000\";\nexport const ComponentListLightItemDefaultForeground = \"#000000de\";\nexport const ComponentListLightItemHoverBackground = \"#00000014\";\nexport const ComponentListLightItemSelectedBackground = \"#0000001f\";\nexport const ComponentListLightDivider = \"#0000001f\";\nexport const ComponentListLightBorderRadius = \"8px\";\nexport const ComponentListDarkBackground = \"#1e1e1e\";\nexport const ComponentListDarkItemDefaultBackground = \"#00000000\";\nexport const ComponentListDarkItemDefaultForeground = \"#ffffff\";\nexport const ComponentListDarkItemHoverBackground = \"#ffffff14\";\nexport const ComponentListDarkItemSelectedBackground = \"#ffffff29\";\nexport const ComponentListDarkDivider = \"#ffffff1f\";\nexport const ComponentListDarkBorderRadius = \"8px\";\nexport const ComponentAvatarBorderRadius = \"9999px\";\nexport const ComponentAvatarSmall = \"24px\";\nexport const ComponentAvatarMedium = \"40px\";\nexport const ComponentAvatarLarge = \"56px\";\nexport const ComponentBadgeBorderRadius = \"9999px\";\nexport const ComponentBadgeLightBackground = \"#ab1a1a\";\nexport const ComponentBadgeLightForeground = \"#ffffff\";\nexport const ComponentBadgeDarkBackground = \"#f48282\";\nexport const ComponentBadgeDarkForeground = \"#000000\";\nexport const ComponentInputLightStandardEnabledBorder = \"#0000006b\";\nexport const ComponentInputLightFilledEnabledFill = \"#0000000a\";\nexport const ComponentInputLightOutlinedEnabledBorder = \"#0000003b\";\nexport const ComponentInputLightBorderRadius = \"4px\";\nexport const ComponentInputDarkBorderRadius = \"8px\";\nexport const ComponentInputDarkStandardEnabledBorder = \"#ffffff6b\";\nexport const ComponentInputDarkFilledEnabledFill = \"#ffffff14\";\nexport const ComponentInputDarkOutlinedEnabledBorder = \"#ffffff3b\";\nexport const ComponentInputDarkValueFontSize = \"1rem\";\nexport const ComponentRatingActiveFill = \"#ffb400\";\nexport const ComponentRatingEnabledBorder = \"#0000003b\";\nexport const ComponentStepperLightConnector = \"#bdbdbd\";\nexport const ComponentStepperLightStepDefaultBackground = \"#e0e0e0\";\nexport const ComponentStepperLightStepDefaultForeground = \"#000000de\";\nexport const ComponentStepperLightStepActiveBackground = \"#00686f\";\nexport const ComponentStepperLightStepActiveForeground = \"#ffffff\";\nexport const ComponentStepperLightStepCompletedBackground = \"#00686f\";\nexport const ComponentStepperLightStepCompletedForeground = \"#ffffff\";\nexport const ComponentStepperDarkConnector = \"#616161\";\nexport const ComponentStepperDarkStepDefaultBackground = \"#616161\";\nexport const ComponentStepperDarkStepDefaultForeground = \"#ffffff\";\nexport const ComponentStepperDarkStepActiveBackground = \"#66b2b2\";\nexport const ComponentStepperDarkStepActiveForeground = \"#000000\";\nexport const ComponentStepperDarkStepCompletedBackground = \"#66b2b2\";\nexport const ComponentStepperDarkStepCompletedForeground = \"#000000\";\nexport const ComponentTabsLightIndicator = \"#00686f\";\nexport const ComponentTabsLightTabDefaultForeground = \"#00000099\";\nexport const ComponentTabsLightTabActiveForeground = \"#00686f\";\nexport const ComponentTabsLightTabHoverBackground = \"#00000014\";\nexport const ComponentTabsLightBorderRadius = \"0px\";\nexport const ComponentTabsDarkIndicator = \"#66b2b2\";\nexport const ComponentTabsDarkTabDefaultForeground = \"#ffffffb3\";\nexport const ComponentTabsDarkTabActiveForeground = \"#66b2b2\";\nexport const ComponentTabsDarkTabHoverBackground = \"#ffffff14\";\nexport const ComponentTabsDarkBorderRadius = \"0px\";\nexport const ComponentTimelineLightConnector = \"#bdbdbd\";\nexport const ComponentTimelineLightDotDefault = \"#bdbdbd\";\nexport const ComponentTimelineLightDotPrimary = \"#00686f\";\nexport const ComponentTimelineLightDotSecondary = \"#99cc00\";\nexport const ComponentTimelineDarkConnector = \"#616161\";\nexport const ComponentTimelineDarkDotDefault = \"#616161\";\nexport const ComponentTimelineDarkDotPrimary = \"#66b2b2\";\nexport const ComponentTimelineDarkDotSecondary = \"#b3e600\";\nexport const ComponentPaginationLightItemDefaultBackground = \"#00000000\";\nexport const ComponentPaginationLightItemDefaultForeground = \"#000000de\";\nexport const ComponentPaginationLightItemHoverBackground = \"#00000014\";\nexport const ComponentPaginationLightItemSelectedBackground = \"#00686f\";\nexport const ComponentPaginationLightItemSelectedForeground = \"#ffffff\";\nexport const ComponentPaginationLightBorderRadius = \"9999px\";\nexport const ComponentPaginationDarkItemDefaultBackground = \"#00000000\";\nexport const ComponentPaginationDarkItemDefaultForeground = \"#ffffff\";\nexport const ComponentPaginationDarkItemHoverBackground = \"#ffffff14\";\nexport const ComponentPaginationDarkItemSelectedBackground = \"#66b2b2\";\nexport const ComponentPaginationDarkItemSelectedForeground = \"#000000\";\nexport const ComponentPaginationDarkBorderRadius = \"9999px\";\nexport const ComponentSidenavWidthCollapsed = \"64px\";\nexport const ComponentSidenavWidthExpanded = \"240px\";\nexport const ComponentSidenavLightBackground = \"#ffffff\";\nexport const ComponentSidenavLightBorder = \"#0000001f\";\nexport const ComponentSidenavLightItemDefaultBackground = \"#00000000\";\nexport const ComponentSidenavLightItemDefaultForeground = \"#000000de\";\nexport const ComponentSidenavLightItemHoverBackground = \"#00000014\";\nexport const ComponentSidenavLightItemHoverForeground = \"#000000de\";\nexport const ComponentSidenavLightItemSelectedBackground = \"#0099991f\";\nexport const ComponentSidenavLightItemSelectedForeground = \"#00686f\";\nexport const ComponentSidenavLightBorderRadius = \"8px\";\nexport const ComponentSidenavDarkBackground = \"#1e1e1e\";\nexport const ComponentSidenavDarkBorder = \"#ffffff1f\";\nexport const ComponentSidenavDarkItemDefaultBackground = \"#00000000\";\nexport const ComponentSidenavDarkItemDefaultForeground = \"#ffffff\";\nexport const ComponentSidenavDarkItemHoverBackground = \"#ffffff14\";\nexport const ComponentSidenavDarkItemHoverForeground = \"#ffffff\";\nexport const ComponentSidenavDarkItemSelectedBackground = \"#0099993d\";\nexport const ComponentSidenavDarkItemSelectedForeground = \"#66b2b2\";\nexport const ComponentSidenavDarkBorderRadius = \"8px\";\nexport const ComponentAppbarHeight = \"64px\";\nexport const ComponentAppbarLightBackground = \"#00686f\";\nexport const ComponentAppbarLightForeground = \"#ffffff\";\nexport const ComponentAppbarDarkBackground = \"#1e1e1e\";\nexport const ComponentAppbarDarkForeground = \"#ffffff\";\nexport const ComponentBottomNavigationHeight = \"56px\";\nexport const ComponentBottomNavigationLightBackground = \"#ffffff\";\nexport const ComponentBottomNavigationLightItemDefaultForeground = \"#00000099\";\nexport const ComponentBottomNavigationLightItemSelectedForeground = \"#00686f\";\nexport const ComponentBottomNavigationDarkBackground = \"#1e1e1e\";\nexport const ComponentBottomNavigationDarkItemDefaultForeground = \"#ffffffb3\";\nexport const ComponentBottomNavigationDarkItemSelectedForeground = \"#66b2b2\";\nexport const ComponentPaperLightElevation0 = \"#ffffff\";\nexport const ComponentPaperLightElevation1 = \"#ffffff\";\nexport const ComponentPaperLightElevation2 = \"#ffffff\";\nexport const ComponentPaperDarkElevation0 = \"#121212\"; // No elevation - matches background\nexport const ComponentPaperDarkElevation1 = \"#1e1e1e\"; // 1dp elevation\nexport const ComponentPaperDarkElevation2 = \"#232323\"; // 2dp elevation\nexport const ComponentPaperDarkElevation4 = \"#272727\"; // 4dp elevation\nexport const ComponentPaperDarkElevation6 = \"#2c2c2c\"; // 6dp elevation\nexport const ComponentPaperDarkElevation8 = \"#2e2e2e\"; // 8dp elevation\nexport const ComponentPaperDarkElevation12 = \"#333333\"; // 12dp elevation\nexport const ComponentPaperDarkElevation16 = \"#353535\"; // 16dp elevation\nexport const ComponentPaperDarkElevation24 = \"#383838\"; // 24dp elevation\nexport const ComponentTableLightBorder = \"#e0e0e0\";\nexport const ComponentTableLightHeaderBackground = \"#fafafa\";\nexport const ComponentTableDarkBorder = \"#ffffff1f\";\nexport const ComponentTableDarkHeaderBackground = \"#1e1e1e\";\nexport const ComponentCardLightBorderRadius = \"12px\";\nexport const ComponentCardDarkBorderRadius = \"12px\";\nexport const PrimitivesColorsBrandVerones = \"#00686f\"; // MRS Primary Brand Color - Teal\nexport const PrimitivesColorsBrandLima = \"#99cc00\"; // MRS Secondary Brand Color - Lime Green\nexport const PrimitivesColorsNeutralWhite = \"#ffffff\";\nexport const PrimitivesColorsNeutralBlack = \"#000000\";\nexport const PrimitivesColorsNeutralGray50 = \"#fafafa\";\nexport const PrimitivesColorsNeutralGray100 = \"#f5f5f5\";\nexport const PrimitivesColorsNeutralGray200 = \"#eeeeee\";\nexport const PrimitivesColorsNeutralGray300 = \"#e0e0e0\";\nexport const PrimitivesColorsNeutralGray400 = \"#bdbdbd\";\nexport const PrimitivesColorsNeutralGray500 = \"#9e9e9e\";\nexport const PrimitivesColorsNeutralGray600 = \"#757575\";\nexport const PrimitivesColorsNeutralGray700 = \"#616161\";\nexport const PrimitivesColorsNeutralGray800 = \"#424242\";\nexport const PrimitivesColorsNeutralGray900 = \"#212121\";\nexport const PrimitivesColorsStatusError50 = \"#fdeded\";\nexport const PrimitivesColorsStatusError100 = \"#f8b8b8\";\nexport const PrimitivesColorsStatusError500 = \"#ab1a1a\";\nexport const PrimitivesColorsStatusError600 = \"#8b1515\";\nexport const PrimitivesColorsStatusError700 = \"#5f2120\";\nexport const PrimitivesColorsStatusWarning50 = \"#fff4e5\";\nexport const PrimitivesColorsStatusWarning500 = \"#dfa00a\";\nexport const PrimitivesColorsStatusWarning600 = \"#b88308\";\nexport const PrimitivesColorsStatusWarning700 = \"#3e2410\";\nexport const PrimitivesColorsStatusInfo50 = \"#e5f6fd\";\nexport const PrimitivesColorsStatusInfo100 = \"#d1daf0\";\nexport const PrimitivesColorsStatusInfo500 = \"#125c87\";\nexport const PrimitivesColorsStatusInfo600 = \"#143996\";\nexport const PrimitivesColorsStatusInfo700 = \"#014361\";\nexport const PrimitivesColorsStatusInfo800 = \"#0c225a\";\nexport const PrimitivesColorsStatusSuccess50 = \"#edf7ed\";\nexport const PrimitivesColorsStatusSuccess100 = \"#b3d1c7\";\nexport const PrimitivesColorsStatusSuccess500 = \"#2e7d32\";\nexport const PrimitivesColorsStatusSuccess600 = \"#036642\";\nexport const PrimitivesColorsStatusSuccess700 = \"#1e4620\";\nexport const PrimitivesColorsStatusSuccess800 = \"#023321\";\nexport const PrimitivesColorsAlphaBlack4 = \"#0000000a\";\nexport const PrimitivesColorsAlphaBlack8 = \"#00000014\";\nexport const PrimitivesColorsAlphaBlack12 = \"#0000001f\";\nexport const PrimitivesColorsAlphaBlack23 = \"#0000003b\";\nexport const PrimitivesColorsAlphaBlack26 = \"#00000042\";\nexport const PrimitivesColorsAlphaBlack38 = \"#00000061\";\nexport const PrimitivesColorsAlphaBlack42 = \"#0000006b\";\nexport const PrimitivesColorsAlphaBlack56 = \"#0000008f\";\nexport const PrimitivesColorsAlphaBlack60 = \"#00000099\";\nexport const PrimitivesColorsAlphaBlack87 = \"#000000de\";\nexport const PrimitivesColorsAlphaWhite8 = \"#ffffff14\";\nexport const PrimitivesColorsAlphaWhite12 = \"#ffffff1f\";\nexport const PrimitivesColorsAlphaWhite16 = \"#ffffff29\";\nexport const PrimitivesColorsAlphaWhite23 = \"#ffffff3b\";\nexport const PrimitivesColorsAlphaWhite26 = \"#ffffff42\";\nexport const PrimitivesColorsAlphaWhite30 = \"#ffffff4d\";\nexport const PrimitivesColorsAlphaWhite42 = \"#ffffff6b\";\nexport const PrimitivesColorsAlphaWhite50 = \"#ffffff80\";\nexport const PrimitivesColorsAlphaWhite70 = \"#ffffffb3\";\nexport const PrimitivesColorsAlphaWhite100 = \"#ffffff\";\nexport const PrimitivesColorsAlphaPrimary8 = \"#00999914\";\nexport const PrimitivesColorsAlphaPrimary12 = \"#0099991f\";\nexport const PrimitivesColorsAlphaPrimary16 = \"#00999929\";\nexport const PrimitivesColorsAlphaPrimary25 = \"#00999940\";\nexport const PrimitivesColorsAlphaPrimary24Dark = \"#0099993d\";\nexport const PrimitivesColorsAlphaPrimary32Dark = \"#00999952\";\nexport const PrimitivesColorsAlphaPrimary40Dark = \"#00999966\";\nexport const PrimitivesColorsSpecialRating = \"#ffb400\";\nexport const PrimitivesMotionDurationInstant = \"0ms\"; // Instant transition - no delay\nexport const PrimitivesMotionDurationFast = \"100ms\"; // Fast transitions - micro-interactions, toggles, checkboxes\nexport const PrimitivesMotionDurationBase = \"200ms\"; // Base transition duration - most UI elements\nexport const PrimitivesMotionDurationModerate = \"300ms\"; // Moderate transitions - drawers, dialogs, larger elements\nexport const PrimitivesMotionDurationSlow = \"400ms\"; // Slow transitions - page transitions, large content shifts\nexport const PrimitivesMotionDurationSlower = \"500ms\"; // Very slow transitions - complex animations\nexport const PrimitivesMotionEasingLinear = \"cubic-bezier(0, 0, 1, 1)\"; // Linear easing - constant speed, use sparingly\nexport const PrimitivesMotionEasingStandard = \"cubic-bezier(0.4, 0, 0.2, 1)\"; // Standard easing - most common, smooth acceleration and deceleration\nexport const PrimitivesMotionEasingEmphasized = \"cubic-bezier(0.2, 0, 0, 1)\"; // Emphasized easing - Material Design emphasized motion\nexport const PrimitivesMotionEasingDecelerate = \"cubic-bezier(0, 0, 0.2, 1)\"; // Decelerate easing - elements entering the screen\nexport const PrimitivesMotionEasingAccelerate = \"cubic-bezier(0.4, 0, 1, 1)\"; // Accelerate easing - elements leaving the screen\nexport const PrimitivesMotionEasingSharp = \"cubic-bezier(0.4, 0, 0.6, 1)\"; // Sharp easing - quick, focused transitions\nexport const PrimitivesMotionEasingEaseIn = \"cubic-bezier(0.4, 0, 1, 1)\"; // Ease in - gradual acceleration\nexport const PrimitivesMotionEasingEaseOut = \"cubic-bezier(0, 0, 0.2, 1)\"; // Ease out - gradual deceleration\nexport const PrimitivesMotionEasingEaseInOut = \"cubic-bezier(0.4, 0, 0.2, 1)\"; // Ease in-out - smooth start and end\nexport const PrimitivesRadiusNone = \"0px\";\nexport const PrimitivesRadiusSm = \"4px\";\nexport const PrimitivesRadiusMd = \"8px\"; // Default border radius\nexport const PrimitivesRadiusLg = \"12px\";\nexport const PrimitivesRadiusXl = \"24px\";\nexport const PrimitivesRadiusFull = \"9999px\"; // Pill shape / circular\nexport const PrimitivesSpacing0 = \"0px\";\nexport const PrimitivesSpacing1 = \"8px\";\nexport const PrimitivesSpacing2 = \"16px\";\nexport const PrimitivesSpacing3 = \"24px\";\nexport const PrimitivesSpacing4 = \"32px\";\nexport const PrimitivesSpacing5 = \"40px\";\nexport const PrimitivesSpacing6 = \"48px\";\nexport const PrimitivesSpacing7 = \"56px\";\nexport const PrimitivesSpacing8 = \"64px\";\nexport const PrimitivesSpacing9 = \"72px\";\nexport const PrimitivesSpacing10 = \"80px\";\nexport const PrimitivesSpacing11 = \"88px\";\nexport const PrimitivesSpacing12 = \"96px\";\nexport const PrimitivesSpacing05 = \"4px\";\nexport const PrimitivesSpacing15 = \"12px\";\nexport const PrimitivesTypographyFontFamilyBrand = \"Nunito\"; // Primary brand font\nexport const PrimitivesTypographyFontFamilyFallback =\n \"Helvetica, Arial, sans-serif\";\nexport const PrimitivesTypographyFontFamilyStack =\n \"Nunito, Helvetica, Arial, sans-serif\";\nexport const PrimitivesTypographyFontSizeXs = \"0.75rem\";\nexport const PrimitivesTypographyFontSizeSm = \"0.875rem\";\nexport const PrimitivesTypographyFontSizeMd = \"1rem\";\nexport const PrimitivesTypographyFontSizeLg = \"1.25rem\";\nexport const PrimitivesTypographyFontSizeXl = \"1.5rem\";\nexport const PrimitivesTypographyFontSize2xl = \"2.125rem\";\nexport const PrimitivesTypographyFontSize3xl = \"3rem\";\nexport const PrimitivesTypographyFontSize4xl = \"3.75rem\";\nexport const PrimitivesTypographyFontWeightLight = \"300\";\nexport const PrimitivesTypographyFontWeightRegular = \"400\";\nexport const PrimitivesTypographyFontWeightMedium = \"500\";\nexport const PrimitivesTypographyFontWeightSemibold = \"600\";\nexport const PrimitivesTypographyFontWeightBold = \"700\";\nexport const PrimitivesTypographyLineHeightTight = \"1.2\";\nexport const PrimitivesTypographyLineHeightSnug = \"1.43\";\nexport const PrimitivesTypographyLineHeightNormal = \"1.5\";\nexport const PrimitivesTypographyLineHeightRelaxed = \"1.66\";\nexport const PrimitivesTypographyLineHeightLoose = \"1.75\";\nexport const SemanticColorLightPrimaryMain = \"#00686f\";\nexport const SemanticColorLightPrimaryDark = \"#004e53\";\nexport const SemanticColorLightPrimaryLight = \"#009999\";\nexport const SemanticColorLightPrimaryContrastText = \"#ffffff\";\nexport const SemanticColorLightSecondaryMain = \"#99cc00\";\nexport const SemanticColorLightSecondaryDark = \"#7aa300\";\nexport const SemanticColorLightSecondaryLight = \"#b3d633\";\nexport const SemanticColorLightSecondaryContrastText = \"#000000de\";\nexport const SemanticColorLightErrorMain = \"#ab1a1a\";\nexport const SemanticColorLightErrorDark = \"#8b1515\";\nexport const SemanticColorLightErrorLight = \"#d32f2f\";\nexport const SemanticColorLightErrorContrastText = \"#ffffff\";\nexport const SemanticColorLightWarningMain = \"#dfa00a\";\nexport const SemanticColorLightWarningDark = \"#b88308\";\nexport const SemanticColorLightWarningLight = \"#f5b642\";\nexport const SemanticColorLightWarningContrastText = \"#000000de\";\nexport const SemanticColorLightInfoMain = \"#143996\";\nexport const SemanticColorLightInfoDark = \"#0c225a\";\nexport const SemanticColorLightInfoLight = \"#d1daf0\";\nexport const SemanticColorLightInfoContrastText = \"#ffffff\";\nexport const SemanticColorLightSuccessMain = \"#036642\";\nexport const SemanticColorLightSuccessDark = \"#023321\";\nexport const SemanticColorLightSuccessLight = \"#b3d1c7\";\nexport const SemanticColorLightSuccessContrastText = \"#ffffff\";\nexport const SemanticColorLightBackgroundDefault = \"#ffffff\";\nexport const SemanticColorLightBackgroundPaper = \"#ffffff\";\nexport const SemanticColorLightTextPrimary = \"#000000de\";\nexport const SemanticColorLightTextSecondary = \"#00000099\";\nexport const SemanticColorLightTextDisabled = \"#00000061\";\nexport const SemanticColorLightActionActive = \"#0000008f\";\nexport const SemanticColorLightActionHover = \"#00000014\";\nexport const SemanticColorLightActionSelected = \"#0000001f\";\nexport const SemanticColorLightActionDisabled = \"#00000042\";\nexport const SemanticColorLightActionDisabledBackground = \"#0000001f\";\nexport const SemanticColorLightDivider = \"#0000001f\";\nexport const SemanticColorDarkPrimaryMain = \"#66b2b2\"; // Lighter primary for dark mode\nexport const SemanticColorDarkPrimaryDark = \"#00686f\";\nexport const SemanticColorDarkPrimaryLight = \"#99cccc\";\nexport const SemanticColorDarkPrimaryContrastText = \"#000000\";\nexport const SemanticColorDarkSecondaryMain = \"#b3e600\"; // Lighter secondary for dark mode\nexport const SemanticColorDarkSecondaryDark = \"#99cc00\";\nexport const SemanticColorDarkSecondaryLight = \"#ccff33\";\nexport const SemanticColorDarkSecondaryContrastText = \"#000000\";\nexport const SemanticColorDarkErrorMain = \"#f48282\"; // Lighter error for dark mode\nexport const SemanticColorDarkErrorDark = \"#ab1a1a\";\nexport const SemanticColorDarkErrorLight = \"#f8b8b8\";\nexport const SemanticColorDarkErrorContrastText = \"#000000\";\nexport const SemanticColorDarkWarningMain = \"#ffb74d\"; // Lighter warning for dark mode\nexport const SemanticColorDarkWarningDark = \"#dfa00a\";\nexport const SemanticColorDarkWarningLight = \"#fff4e5\";\nexport const SemanticColorDarkWarningContrastText = \"#000000\";\nexport const SemanticColorDarkInfoMain = \"#64b5f6\"; // Lighter info for dark mode\nexport const SemanticColorDarkInfoDark = \"#125c87\";\nexport const SemanticColorDarkInfoLight = \"#e5f6fd\";\nexport const SemanticColorDarkInfoContrastText = \"#000000\";\nexport const SemanticColorDarkSuccessMain = \"#81c784\"; // Lighter success for dark mode\nexport const SemanticColorDarkSuccessDark = \"#2e7d32\";\nexport const SemanticColorDarkSuccessLight = \"#edf7ed\";\nexport const SemanticColorDarkSuccessContrastText = \"#000000\";\nexport const SemanticColorDarkBackgroundDefault = \"#121212\"; // Material Design dark background\nexport const SemanticColorDarkBackgroundPaper = \"#1e1e1e\"; // Elevated surface in dark mode\nexport const SemanticColorDarkTextPrimary = \"#ffffff\";\nexport const SemanticColorDarkTextSecondary = \"#ffffffb3\";\nexport const SemanticColorDarkTextDisabled = \"#ffffff80\";\nexport const SemanticColorDarkActionActive = \"#ffffff\";\nexport const SemanticColorDarkActionHover = \"#ffffff14\";\nexport const SemanticColorDarkActionSelected = \"#ffffff29\";\nexport const SemanticColorDarkActionDisabled = \"#ffffff4d\";\nexport const SemanticColorDarkActionDisabledBackground = \"#ffffff1f\";\nexport const SemanticColorDarkDivider = \"#ffffff1f\";\nexport const SemanticTransitionFadeIn =\n \"opacity 200ms cubic-bezier(0.4, 0, 1, 1)\"; // Fade in transition\nexport const SemanticTransitionFadeOut =\n \"opacity 200ms cubic-bezier(0, 0, 0.2, 1)\"; // Fade out transition\nexport const SemanticTransitionSlideIn =\n \"transform 300ms cubic-bezier(0, 0, 0.2, 1)\"; // Slide in transition - elements entering\nexport const SemanticTransitionSlideOut =\n \"transform 300ms cubic-bezier(0.4, 0, 1, 1)\"; // Slide out transition - elements leaving\nexport const SemanticTransitionExpandIn =\n \"all 300ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Expand transition - collapsible content opening\nexport const SemanticTransitionExpandOut =\n \"all 200ms cubic-bezier(0.4, 0, 0.6, 1)\"; // Collapse transition - collapsible content closing\nexport const SemanticTransitionElevation =\n \"box-shadow 100ms cubic-bezier(0.4, 0, 0.2, 1)\"; // Elevation change transition\n","/**\n * Design Tokens Import - Generated by Style Dictionary\n *\n * This file re-exports design tokens organized by mode (light/dark)\n * for easier consumption in theme.ts\n *\n * @since 0.12.0 - Complete migration to generated tokens (no more theme.json dependency)\n */\n\nimport * as tokens from '../tokens/generated/ts/tokens';\n\n// ============================================================================\n// TYPOGRAPHY TOKENS\n// ============================================================================\nexport const typographyTokens = {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontSize: 16, // base font size in pixels (from 1rem)\n fontWeightLight: Number(tokens.PrimitivesTypographyFontWeightLight),\n fontWeightRegular: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontWeightMedium: Number(tokens.PrimitivesTypographyFontWeightMedium),\n fontWeightSemiBold: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontWeightBold: Number(tokens.PrimitivesTypographyFontWeightBold),\n // Typography variants (MUI compatible)\n h1: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSize4xl, // 3.75rem (60px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '-0.01562em',\n },\n h2: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSize3xl, // 3rem (48px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '-0.00833em',\n },\n h3: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSize2xl, // 2.125rem (34px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0em',\n },\n h4: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeXl, // 1.5rem (24px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0.00735em',\n },\n h5: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeLg, // 1.25rem (20px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0em',\n },\n h6: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeMd, // 1rem (16px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightTight), // 1.2\n letterSpacing: '0.0075em',\n },\n body1: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeMd, // 1rem (16px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightNormal), // 1.5\n letterSpacing: '0.00938em',\n },\n body2: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeSm, // 0.875rem (14px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightSnug), // 1.43\n letterSpacing: '0.01071em',\n },\n subtitle1: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightMedium),\n fontSize: tokens.PrimitivesTypographyFontSizeMd, // 1rem (16px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightLoose), // 1.75\n letterSpacing: '0.00938em',\n },\n subtitle2: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightMedium),\n fontSize: tokens.PrimitivesTypographyFontSizeSm, // 0.875rem (14px)\n lineHeight: 1.57,\n letterSpacing: '0.00714em',\n },\n button: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightSemibold),\n fontSize: tokens.PrimitivesTypographyFontSizeSm, // 0.875rem (14px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightLoose), // 1.75\n letterSpacing: '0.02857em',\n textTransform: 'none' as const,\n },\n caption: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeXs, // 0.75rem (12px)\n lineHeight: Number(tokens.PrimitivesTypographyLineHeightRelaxed), // 1.66\n letterSpacing: '0.03333em',\n },\n overline: {\n fontFamily: tokens.PrimitivesTypographyFontFamilyStack,\n fontWeight: Number(tokens.PrimitivesTypographyFontWeightRegular),\n fontSize: tokens.PrimitivesTypographyFontSizeXs, // 0.75rem (12px)\n lineHeight: 2.66,\n letterSpacing: '0.08333em',\n textTransform: 'uppercase' as const,\n },\n};\n\n// ============================================================================\n// SHAPE TOKENS (Border Radius)\n// ============================================================================\nexport const shapeTokens = {\n borderRadius: 8, // default MUI border radius (maps to md)\n sm: 4,\n md: 8,\n lg: 12,\n xl: 20,\n rounded: 9999, // pill shape\n};\n\n// ============================================================================\n// SPACING TOKENS\n// ============================================================================\n// Note: MUI uses a spacing function that multiplies by 8\n// We provide the raw array for compatibility\nexport const spacingArray = [0, 4, 8, 12, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96];\n\n// ============================================================================\n// LIGHT MODE TOKENS\n// ============================================================================\nexport const lightTokens = {\n colors: {\n primary: {\n main: tokens.SemanticColorLightPrimaryMain,\n dark: tokens.SemanticColorLightPrimaryDark,\n light: tokens.SemanticColorLightPrimaryLight,\n contrastText: tokens.SemanticColorLightPrimaryContrastText,\n },\n secondary: {\n main: tokens.SemanticColorLightSecondaryMain,\n dark: tokens.SemanticColorLightSecondaryDark,\n light: tokens.SemanticColorLightSecondaryLight,\n contrastText: tokens.SemanticColorLightSecondaryContrastText,\n },\n error: {\n main: tokens.SemanticColorLightErrorMain,\n dark: tokens.SemanticColorLightErrorDark,\n light: tokens.SemanticColorLightErrorLight,\n contrastText: tokens.SemanticColorLightErrorContrastText,\n },\n warning: {\n main: tokens.SemanticColorLightWarningMain,\n dark: tokens.SemanticColorLightWarningDark,\n light: tokens.SemanticColorLightWarningLight,\n contrastText: tokens.SemanticColorLightWarningContrastText,\n },\n info: {\n main: tokens.SemanticColorLightInfoMain,\n dark: tokens.SemanticColorLightInfoDark,\n light: tokens.SemanticColorLightInfoLight,\n contrastText: tokens.SemanticColorLightInfoContrastText,\n },\n success: {\n main: tokens.SemanticColorLightSuccessMain,\n dark: tokens.SemanticColorLightSuccessDark,\n light: tokens.SemanticColorLightSuccessLight,\n contrastText: tokens.SemanticColorLightSuccessContrastText,\n },\n background: {\n default: tokens.SemanticColorLightBackgroundDefault,\n paper: tokens.SemanticColorLightBackgroundPaper,\n },\n text: {\n primary: tokens.SemanticColorLightTextPrimary,\n secondary: tokens.SemanticColorLightTextSecondary,\n disabled: tokens.SemanticColorLightTextDisabled,\n },\n action: {\n active: tokens.SemanticColorLightActionActive,\n hover: tokens.SemanticColorLightActionHover,\n selected: tokens.SemanticColorLightActionSelected,\n disabled: tokens.SemanticColorLightActionDisabled,\n disabledBackground: tokens.SemanticColorLightActionDisabledBackground,\n },\n divider: tokens.SemanticColorLightDivider,\n primitives: {\n brand: {\n veronesMain: tokens.PrimitivesColorsBrandVerones,\n lima: tokens.PrimitivesColorsBrandLima,\n },\n neutral: {\n white: tokens.PrimitivesColorsNeutralWhite,\n black: tokens.PrimitivesColorsNeutralBlack,\n gray: {\n 50: tokens.PrimitivesColorsNeutralGray50,\n 100: tokens.PrimitivesColorsNeutralGray100,\n 200: tokens.PrimitivesColorsNeutralGray200,\n 300: tokens.PrimitivesColorsNeutralGray300,\n 400: tokens.PrimitivesColorsNeutralGray400,\n 500: tokens.PrimitivesColorsNeutralGray500,\n 600: tokens.PrimitivesColorsNeutralGray600,\n 700: tokens.PrimitivesColorsNeutralGray700,\n 800: tokens.PrimitivesColorsNeutralGray800,\n 900: tokens.PrimitivesColorsNeutralGray900,\n },\n },\n status: {\n error: {\n 50: tokens.PrimitivesColorsStatusError50,\n 100: tokens.PrimitivesColorsStatusError100,\n 500: tokens.PrimitivesColorsStatusError500,\n 600: tokens.PrimitivesColorsStatusError600,\n 700: tokens.PrimitivesColorsStatusError700,\n },\n warning: {\n 50: tokens.PrimitivesColorsStatusWarning50,\n 500: tokens.PrimitivesColorsStatusWarning500,\n 600: tokens.PrimitivesColorsStatusWarning600,\n 700: tokens.PrimitivesColorsStatusWarning700,\n },\n info: {\n 50: tokens.PrimitivesColorsStatusInfo50,\n 100: tokens.PrimitivesColorsStatusInfo100,\n 500: tokens.PrimitivesColorsStatusInfo500,\n 600: tokens.PrimitivesColorsStatusInfo600,\n 700: tokens.PrimitivesColorsStatusInfo700,\n 800: tokens.PrimitivesColorsStatusInfo800,\n },\n success: {\n 50: tokens.PrimitivesColorsStatusSuccess50,\n 100: tokens.PrimitivesColorsStatusSuccess100,\n 500: tokens.PrimitivesColorsStatusSuccess500,\n 600: tokens.PrimitivesColorsStatusSuccess600,\n 700: tokens.PrimitivesColorsStatusSuccess700,\n 800: tokens.PrimitivesColorsStatusSuccess800,\n },\n },\n alpha: {\n black: {\n 4: tokens.PrimitivesColorsAlphaBlack4,\n 8: tokens.PrimitivesColorsAlphaBlack8,\n 12: tokens.PrimitivesColorsAlphaBlack12,\n 23: tokens.PrimitivesColorsAlphaBlack23,\n 26: tokens.PrimitivesColorsAlphaBlack26,\n 38: tokens.PrimitivesColorsAlphaBlack38,\n 42: tokens.PrimitivesColorsAlphaBlack42,\n 56: tokens.PrimitivesColorsAlphaBlack56,\n 60: tokens.PrimitivesColorsAlphaBlack60,\n 87: tokens.PrimitivesColorsAlphaBlack87,\n },\n white: {\n 8: tokens.PrimitivesColorsAlphaWhite8,\n 12: tokens.PrimitivesColorsAlphaWhite12,\n 16: tokens.PrimitivesColorsAlphaWhite16,\n 23: tokens.PrimitivesColorsAlphaWhite23,\n 26: tokens.PrimitivesColorsAlphaWhite26,\n 30: tokens.PrimitivesColorsAlphaWhite30,\n 42: tokens.PrimitivesColorsAlphaWhite42,\n 50: tokens.PrimitivesColorsAlphaWhite50,\n 70: tokens.PrimitivesColorsAlphaWhite70,\n 100: tokens.PrimitivesColorsAlphaWhite100,\n },\n primary: {\n 8: tokens.PrimitivesColorsAlphaPrimary8,\n 12: tokens.PrimitivesColorsAlphaPrimary12,\n 16: tokens.PrimitivesColorsAlphaPrimary16,\n 25: tokens.PrimitivesColorsAlphaPrimary25,\n '24-dark': tokens.PrimitivesColorsAlphaPrimary24Dark,\n '32-dark': tokens.PrimitivesColorsAlphaPrimary32Dark,\n '40-dark': tokens.PrimitivesColorsAlphaPrimary40Dark,\n },\n },\n special: {\n rating: tokens.PrimitivesColorsSpecialRating,\n },\n },\n semantic: {\n primary: {\n main: tokens.SemanticColorLightPrimaryMain,\n dark: tokens.SemanticColorLightPrimaryDark,\n light: tokens.SemanticColorLightPrimaryLight,\n contrastText: tokens.SemanticColorLightPrimaryContrastText,\n },\n secondary: {\n main: tokens.SemanticColorLightSecondaryMain,\n dark: tokens.SemanticColorLightSecondaryDark,\n light: tokens.SemanticColorLightSecondaryLight,\n contrastText: tokens.SemanticColorLightSecondaryContrastText,\n },\n error: {\n main: tokens.SemanticColorLightErrorMain,\n dark: tokens.SemanticColorLightErrorDark,\n light: tokens.SemanticColorLightErrorLight,\n contrastText: tokens.SemanticColorLightErrorContrastText,\n },\n warning: {\n main: tokens.SemanticColorLightWarningMain,\n dark: tokens.SemanticColorLightWarningDark,\n light: tokens.SemanticColorLightWarningLight,\n contrastText: tokens.SemanticColorLightWarningContrastText,\n },\n info: {\n main: tokens.SemanticColorLightInfoMain,\n dark: tokens.SemanticColorLightInfoDark,\n light: tokens.SemanticColorLightInfoLight,\n contrastText: tokens.SemanticColorLightInfoContrastText,\n },\n success: {\n main: tokens.SemanticColorLightSuccessMain,\n dark: tokens.SemanticColorLightSuccessDark,\n light: tokens.SemanticColorLightSuccessLight,\n contrastText: tokens.SemanticColorLightSuccessContrastText,\n },\n background: {\n default: tokens.SemanticColorLightBackgroundDefault,\n paper: tokens.SemanticColorLightBackgroundPaper,\n },\n text: {\n primary: tokens.SemanticColorLightTextPrimary,\n secondary: tokens.SemanticColorLightTextSecondary,\n disabled: tokens.SemanticColorLightTextDisabled,\n },\n action: {\n active: tokens.SemanticColorLightActionActive,\n hover: tokens.SemanticColorLightActionHover,\n selected: tokens.SemanticColorLightActionSelected,\n disabled: tokens.SemanticColorLightActionDisabled,\n disabledBackground: tokens.SemanticColorLightActionDisabledBackground,\n },\n divider: tokens.SemanticColorLightDivider,\n },\n },\n components: {\n alert: {\n borderRadius: tokens.ComponentAlertLightBorderRadius,\n error: {\n filled: {\n background: tokens.ComponentAlertLightErrorFilledBackground,\n foreground: tokens.ComponentAlertLightErrorFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightErrorOutlinedBackground,\n foreground: tokens.ComponentAlertLightErrorOutlinedForeground,\n border: tokens.ComponentAlertLightErrorOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightErrorStandardBackground,\n foreground: tokens.ComponentAlertLightErrorStandardForeground,\n },\n },\n warning: {\n filled: {\n background: tokens.ComponentAlertLightWarningFilledBackground,\n foreground: tokens.ComponentAlertLightWarningFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightWarningOutlinedBackground,\n foreground: tokens.ComponentAlertLightWarningOutlinedForeground,\n border: tokens.ComponentAlertLightWarningOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightWarningStandardBackground,\n foreground: tokens.ComponentAlertLightWarningStandardForeground,\n },\n },\n info: {\n filled: {\n background: tokens.ComponentAlertLightInfoFilledBackground,\n foreground: tokens.ComponentAlertLightInfoFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightInfoOutlinedBackground,\n foreground: tokens.ComponentAlertLightInfoOutlinedForeground,\n border: tokens.ComponentAlertLightInfoOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightInfoStandardBackground,\n foreground: tokens.ComponentAlertLightInfoStandardForeground,\n },\n },\n success: {\n filled: {\n background: tokens.ComponentAlertLightSuccessFilledBackground,\n foreground: tokens.ComponentAlertLightSuccessFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertLightSuccessOutlinedBackground,\n foreground: tokens.ComponentAlertLightSuccessOutlinedForeground,\n border: tokens.ComponentAlertLightSuccessOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertLightSuccessStandardBackground,\n foreground: tokens.ComponentAlertLightSuccessStandardForeground,\n },\n },\n },\n input: {\n borderRadius: tokens.ComponentInputLightBorderRadius,\n standard: {\n enabledBorder: tokens.ComponentInputLightStandardEnabledBorder,\n },\n filled: {\n enabledFill: tokens.ComponentInputLightFilledEnabledFill,\n },\n outlined: {\n enabledBorder: tokens.ComponentInputLightOutlinedEnabledBorder,\n },\n },\n paper: {\n elevation0: tokens.ComponentPaperLightElevation0,\n elevation1: tokens.ComponentPaperLightElevation1,\n elevation2: tokens.ComponentPaperLightElevation2,\n },\n chip: {\n defaultCloseFill: tokens.ComponentChipDefaultCloseFill,\n defaultEnabledBorder: tokens.ComponentChipDefaultEnabledBorder,\n },\n button: {\n borderRadius: tokens.ComponentButtonBorderRadius,\n },\n card: {\n borderRadius: tokens.ComponentCardLightBorderRadius,\n },\n dialog: {\n borderRadius: tokens.ComponentDialogLightBorderRadius,\n },\n table: {\n border: tokens.ComponentTableLightBorder,\n header: {\n background: tokens.ComponentTableLightHeaderBackground,\n },\n },\n rating: {\n activeFill: tokens.ComponentRatingActiveFill,\n enabledBorder: tokens.ComponentRatingEnabledBorder,\n },\n },\n};\n\n// ============================================================================\n// DARK MODE TOKENS\n// ============================================================================\nexport const darkTokens = {\n colors: {\n primary: {\n main: tokens.SemanticColorDarkPrimaryMain,\n dark: tokens.SemanticColorDarkPrimaryDark,\n light: tokens.SemanticColorDarkPrimaryLight,\n contrastText: tokens.SemanticColorDarkPrimaryContrastText,\n },\n secondary: {\n main: tokens.SemanticColorDarkSecondaryMain,\n dark: tokens.SemanticColorDarkSecondaryDark,\n light: tokens.SemanticColorDarkSecondaryLight,\n contrastText: tokens.SemanticColorDarkSecondaryContrastText,\n },\n error: {\n main: tokens.SemanticColorDarkErrorMain,\n dark: tokens.SemanticColorDarkErrorDark,\n light: tokens.SemanticColorDarkErrorLight,\n contrastText: tokens.SemanticColorDarkErrorContrastText,\n },\n warning: {\n main: tokens.SemanticColorDarkWarningMain,\n dark: tokens.SemanticColorDarkWarningDark,\n light: tokens.SemanticColorDarkWarningLight,\n contrastText: tokens.SemanticColorDarkWarningContrastText,\n },\n info: {\n main: tokens.SemanticColorDarkInfoMain,\n dark: tokens.SemanticColorDarkInfoDark,\n light: tokens.SemanticColorDarkInfoLight,\n contrastText: tokens.SemanticColorDarkInfoContrastText,\n },\n success: {\n main: tokens.SemanticColorDarkSuccessMain,\n dark: tokens.SemanticColorDarkSuccessDark,\n light: tokens.SemanticColorDarkSuccessLight,\n contrastText: tokens.SemanticColorDarkSuccessContrastText,\n },\n background: {\n default: tokens.SemanticColorDarkBackgroundDefault,\n paper: tokens.SemanticColorDarkBackgroundPaper,\n },\n text: {\n primary: tokens.SemanticColorDarkTextPrimary,\n secondary: tokens.SemanticColorDarkTextSecondary,\n disabled: tokens.SemanticColorDarkTextDisabled,\n },\n action: {\n active: tokens.SemanticColorDarkActionActive,\n hover: tokens.SemanticColorDarkActionHover,\n selected: tokens.SemanticColorDarkActionSelected,\n disabled: tokens.SemanticColorDarkActionDisabled,\n disabledBackground: tokens.SemanticColorDarkActionDisabledBackground,\n },\n divider: tokens.SemanticColorDarkDivider,\n },\n components: {\n alert: {\n borderRadius: tokens.ComponentAlertDarkBorderRadius,\n error: {\n filled: {\n background: tokens.ComponentAlertDarkErrorFilledBackground,\n foreground: tokens.ComponentAlertDarkErrorFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkErrorOutlinedBackground,\n foreground: tokens.ComponentAlertDarkErrorOutlinedForeground,\n border: tokens.ComponentAlertDarkErrorOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkErrorStandardBackground,\n foreground: tokens.ComponentAlertDarkErrorStandardForeground,\n },\n },\n warning: {\n filled: {\n background: tokens.ComponentAlertDarkWarningFilledBackground,\n foreground: tokens.ComponentAlertDarkWarningFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkWarningOutlinedBackground,\n foreground: tokens.ComponentAlertDarkWarningOutlinedForeground,\n border: tokens.ComponentAlertDarkWarningOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkWarningStandardBackground,\n foreground: tokens.ComponentAlertDarkWarningStandardForeground,\n },\n },\n info: {\n filled: {\n background: tokens.ComponentAlertDarkInfoFilledBackground,\n foreground: tokens.ComponentAlertDarkInfoFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkInfoOutlinedBackground,\n foreground: tokens.ComponentAlertDarkInfoOutlinedForeground,\n border: tokens.ComponentAlertDarkInfoOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkInfoStandardBackground,\n foreground: tokens.ComponentAlertDarkInfoStandardForeground,\n },\n },\n success: {\n filled: {\n background: tokens.ComponentAlertDarkSuccessFilledBackground,\n foreground: tokens.ComponentAlertDarkSuccessFilledForeground,\n },\n outlined: {\n background: tokens.ComponentAlertDarkSuccessOutlinedBackground,\n foreground: tokens.ComponentAlertDarkSuccessOutlinedForeground,\n border: tokens.ComponentAlertDarkSuccessOutlinedBorder,\n },\n standard: {\n background: tokens.ComponentAlertDarkSuccessStandardBackground,\n foreground: tokens.ComponentAlertDarkSuccessStandardForeground,\n },\n },\n },\n input: {\n borderRadius: tokens.ComponentInputDarkBorderRadius,\n standard: {\n enabledBorder: tokens.ComponentInputDarkStandardEnabledBorder,\n },\n filled: {\n enabledFill: tokens.ComponentInputDarkFilledEnabledFill,\n },\n outlined: {\n enabledBorder: tokens.ComponentInputDarkOutlinedEnabledBorder,\n },\n },\n paper: {\n elevation0: tokens.ComponentPaperDarkElevation0,\n elevation1: tokens.ComponentPaperDarkElevation1,\n elevation2: tokens.ComponentPaperDarkElevation2,\n elevation4: tokens.ComponentPaperDarkElevation4,\n elevation6: tokens.ComponentPaperDarkElevation6,\n elevation8: tokens.ComponentPaperDarkElevation8,\n elevation12: tokens.ComponentPaperDarkElevation12,\n elevation16: tokens.ComponentPaperDarkElevation16,\n elevation24: tokens.ComponentPaperDarkElevation24,\n },\n chip: {\n defaultCloseFill: tokens.PrimitivesColorsNeutralWhite,\n defaultEnabledBorder: tokens.PrimitivesColorsNeutralGray600,\n },\n button: {\n borderRadius: tokens.ComponentButtonBorderRadius,\n },\n card: {\n borderRadius: tokens.ComponentCardDarkBorderRadius,\n },\n dialog: {\n borderRadius: tokens.ComponentDialogDarkBorderRadius,\n },\n table: {\n border: tokens.ComponentTableDarkBorder,\n header: {\n background: tokens.ComponentTableDarkHeaderBackground,\n },\n },\n rating: {\n activeFill: tokens.ComponentRatingActiveFill,\n enabledBorder: tokens.PrimitivesColorsAlphaWhite30,\n },\n },\n};\n\n// ============================================================================\n// SIDENAV COMPONENT TOKENS (Custom Component Tokens)\n// ============================================================================\nexport const sidenavTokens = {\n light: {\n borderRadius: 8, // Using md shape token\n itemBackground: 'transparent',\n itemSelectedBackground: '#E3F2FD', // Light blue\n itemHoverBackground: '#F5F5F5', // Light gray\n itemIconColor: '#666666',\n itemTextColor: '#212121',\n },\n dark: {\n borderRadius: 8, // Using md shape token\n itemBackground: 'transparent',\n itemSelectedBackground: '#1A237E', // Dark blue\n itemHoverBackground: '#303030', // Dark gray\n itemIconColor: '#BDBDBD',\n itemTextColor: '#FFFFFF',\n },\n};\n","/**\n * Style Compositions - Reusable style patterns\n *\n * This module provides composable style patterns that are used across\n * multiple components to reduce duplication and improve consistency.\n *\n * Each composition is a function that returns style objects compatible\n * with MUI's sx prop.\n *\n * @example\n * ```tsx\n * // In theme.ts\n * MuiButton: {\n * styleOverrides: {\n * root: {\n * ...styleCompositions.button.base(),\n * },\n * sizeSmall: {\n * ...styleCompositions.button.sizes.small,\n * },\n * },\n * }\n * ```\n */\n\nimport type { CSSObject, SxProps, Theme } from '@mui/material/styles';\nimport { typographyTokens, shapeTokens } from './tokens-import';\n\n/**\n * Style composition factory for creating reusable patterns\n */\nexport const styleCompositions = {\n /**\n * Button style compositions\n * Used by: MuiButton, MuiFab, MuiToggleButton\n */\n button: {\n /**\n * Base button styles\n */\n base: (): CSSObject => ({\n fontWeight: typographyTokens.fontWeightSemiBold,\n textTransform: 'none',\n borderRadius: shapeTokens.md,\n transition: 'all 0.2s ease',\n }),\n\n /**\n * Button size variants\n */\n sizes: {\n small: {\n fontSize: '0.8125rem',\n padding: '4px 10px',\n },\n medium: {\n fontSize: '0.875rem',\n padding: '6px 16px',\n },\n large: {\n fontSize: '1rem',\n padding: '8px 22px',\n },\n },\n\n /**\n * Button state styles\n */\n states: {\n disabled: (): SxProps<Theme> => ({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n },\n },\n\n /**\n * Input style compositions\n * Used by: MuiTextField, MuiOutlinedInput, MuiFilledInput, MuiInput\n */\n input: {\n /**\n * Base input styles\n */\n base: (): CSSObject => ({\n borderRadius: shapeTokens.md,\n transition: 'all 0.2s ease',\n }),\n\n /**\n * Input size variants\n */\n sizes: {\n small: {\n fontSize: '0.8125rem',\n padding: '6px 10px',\n },\n medium: {\n fontSize: '0.875rem',\n padding: '8px 12px',\n },\n large: {\n fontSize: '1rem',\n padding: '10px 14px',\n },\n },\n\n /**\n * Input state styles\n */\n states: {\n disabled: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.action.disabledBackground,\n cursor: 'not-allowed',\n }),\n error: (theme: Theme): SxProps<Theme> => ({\n borderColor: theme.palette.error.main,\n color: theme.palette.error.main,\n }),\n focused: (theme: Theme): SxProps<Theme> => ({\n borderColor: theme.palette.primary.main,\n outline: `2px solid ${theme.palette.primary.main}`,\n }),\n },\n },\n\n /**\n * Surface style compositions\n * Used by: MuiCard, MuiPaper, MuiDialog\n */\n surface: {\n /**\n * Base surface styles\n */\n base: (theme: Theme): SxProps<Theme> => ({\n borderRadius: shapeTokens.lg,\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n }),\n\n /**\n * Surface elevation variants\n */\n elevations: {\n none: { boxShadow: 'none' },\n low: { boxShadow: (theme: Theme) => theme.shadows?.[1] },\n medium: { boxShadow: (theme: Theme) => theme.shadows?.[4] },\n high: { boxShadow: (theme: Theme) => theme.shadows?.[8] },\n },\n },\n\n /**\n * List item style compositions\n * Used by: MuiListItem, MuiListItemButton\n */\n listItem: {\n /**\n * Base list item styles\n */\n base: (): CSSObject => ({\n borderRadius: shapeTokens.sm,\n transition: 'all 0.2s ease',\n }),\n\n /**\n * List item state styles\n */\n states: {\n selected: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.action.selected,\n fontWeight: typographyTokens.fontWeightSemiBold,\n }),\n hover: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.action.hover,\n }),\n disabled: (): SxProps<Theme> => ({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n },\n },\n\n /**\n * Chip style compositions\n * Used by: MuiChip\n */\n chip: {\n /**\n * Base chip styles\n */\n base: (): CSSObject => ({\n borderRadius: shapeTokens.rounded,\n fontWeight: typographyTokens.fontWeightMedium,\n transition: 'all 0.2s ease',\n }),\n\n /**\n * Chip size variants\n */\n sizes: {\n small: {\n fontSize: '0.75rem',\n padding: '4px 8px',\n },\n medium: {\n fontSize: '0.875rem',\n padding: '6px 12px',\n },\n },\n\n /**\n * Chip state styles\n */\n states: {\n disabled: (): SxProps<Theme> => ({\n opacity: 0.5,\n cursor: 'not-allowed',\n }),\n },\n },\n\n /**\n * Alert and feedback style compositions\n * Used by: MuiAlert, MuiSnackbar\n */\n feedback: {\n /**\n * Base feedback styles\n */\n base: (): SxProps<Theme> => ({\n borderRadius: shapeTokens.md,\n padding: '12px 16px',\n transition: 'all 0.2s ease',\n }),\n\n /**\n * Alert severity variants\n */\n variants: {\n success: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.success.light,\n color: theme.palette.success.dark,\n }),\n warning: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.warning.light,\n color: theme.palette.warning.dark,\n }),\n error: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.error.light,\n color: theme.palette.error.dark,\n }),\n info: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.info.light,\n color: theme.palette.info.dark,\n }),\n },\n },\n\n /**\n * Common state compositions\n * Used across multiple components\n */\n states: {\n /**\n * Focus state - applies consistent focus styling\n */\n focus: (theme: Theme): SxProps<Theme> => ({\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n }),\n\n /**\n * Hover state - applies consistent hover styling\n */\n hover: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.action.hover,\n transition: 'background-color 0.2s ease',\n }),\n\n /**\n * Active/selected state\n */\n active: (theme: Theme): SxProps<Theme> => ({\n backgroundColor: theme.palette.action.selected,\n fontWeight: typographyTokens.fontWeightSemiBold,\n }),\n\n /**\n * Disabled state - applies consistent disabled styling\n */\n disabled: (): SxProps<Theme> => ({\n opacity: 0.5,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n\n /**\n * Loading state - subtle opacity reduction\n */\n loading: (): SxProps<Theme> => ({\n position: 'relative',\n pointerEvents: 'none',\n opacity: 0.7,\n }),\n },\n\n /**\n * Typography weight shortcuts\n */\n typography: {\n bold: { fontWeight: typographyTokens.fontWeightBold },\n semiBold: { fontWeight: typographyTokens.fontWeightSemiBold },\n medium: { fontWeight: typographyTokens.fontWeightMedium },\n regular: { fontWeight: typographyTokens.fontWeightRegular },\n light: { fontWeight: typographyTokens.fontWeightLight },\n },\n\n /**\n * Spacing shortcuts\n * Note: Use MUI spacing() function for responsive values\n */\n spacing: {\n compact: { padding: '8px 12px', gap: '8px' },\n normal: { padding: '12px 16px', gap: '12px' },\n comfortable: { padding: '16px 20px', gap: '16px' },\n spacious: { padding: '20px 24px', gap: '20px' },\n },\n\n /**\n * Border radius shortcuts\n */\n borderRadius: {\n sharp: { borderRadius: 0 },\n small: { borderRadius: shapeTokens.sm },\n medium: { borderRadius: shapeTokens.md },\n large: { borderRadius: shapeTokens.lg },\n rounded: { borderRadius: shapeTokens.rounded },\n },\n\n /**\n * Flexbox and layout compositions\n */\n layout: {\n /**\n * Flex row with centered items\n */\n flexRowCenter: (): SxProps<Theme> => ({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n }),\n\n /**\n * Flex column with centered items\n */\n flexColumnCenter: (): SxProps<Theme> => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n }),\n\n /**\n * Full width container\n */\n fullWidth: (): SxProps<Theme> => ({\n width: '100%',\n }),\n\n /**\n * Responsive container\n */\n responsiveContainer: (): SxProps<Theme> => ({\n width: '100%',\n maxWidth: '100%',\n }),\n },\n};\n\n/**\n * Type export for style compositions\n */\nexport type StyleComposition = typeof styleCompositions;\n","/**\n * MRS Design System Theme Configuration\n * Material-UI v6.5.0 theme with centralized component overrides\n *\n * This theme uses:\n * 1. Design tokens generated by Style Dictionary (single source of truth)\n * 2. Component overrides for consistent styling across all components\n *\n * @version 0.12.0 - Migrated to 100% generated tokens (no theme.json dependency)\n * @see https://mui.com/material-ui/customization/theme-components/\n */\n\n/// <reference path=\"../types/theme.d.ts\" />\n\nimport type { Theme, ThemeOptions } from '@mui/material/styles';\nimport { createTheme } from '@mui/material/styles';\n\nimport { lightTokens, darkTokens, typographyTokens, shapeTokens } from './tokens-import';\nimport { styleCompositions } from './styleCompositions';\n\n/**\n * Spacing function for MUI\n * Multiplies the base unit (8px) by the given factor\n */\nconst spacing = (factor: number): number => {\n const baseUnit = 8;\n return baseUnit * factor;\n};\n\n/**\n * Shared component overrides\n * These apply consistent styling across all components using theme tokens\n *\n * Benefits:\n * - Single place to manage component styles\n * - No need for sx prop overrides in individual components\n * - Consistent with MUI best practices\n * - 100% generated tokens (v0.12.0+)\n */\nconst getComponentOverrides = (mode: 'light' | 'dark'): ThemeOptions['components'] => {\n const modeTokens = mode === 'light' ? lightTokens : darkTokens;\n const shape = shapeTokens;\n const typography = typographyTokens;\n\n return {\n // =========================================================================\n // GLOBAL BASELINE\n // =========================================================================\n MuiCssBaseline: {\n styleOverrides: {\n body: {},\n // Apply Nunito font globally\n '*': {\n fontFamily: 'inherit',\n },\n },\n },\n\n // =========================================================================\n // BUTTONS\n // =========================================================================\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n ...styleCompositions.button.base(),\n textTransform: 'none' as const,\n },\n sizeSmall: styleCompositions.button.sizes.small,\n sizeMedium: styleCompositions.button.sizes.medium,\n sizeLarge: styleCompositions.button.sizes.large,\n },\n },\n\n MuiIconButton: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiToggleButton: {\n styleOverrides: {\n root: {\n textTransform: 'none' as const,\n },\n },\n },\n\n MuiButtonGroup: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n borderRadius: shape.md,\n },\n },\n },\n\n MuiFab: {\n styleOverrides: {\n root: {\n borderRadius: shape.rounded,\n textTransform: 'none' as const,\n },\n },\n },\n\n // =========================================================================\n // INPUTS\n // =========================================================================\n MuiTextField: {\n defaultProps: {\n variant: 'outlined',\n },\n styleOverrides: {\n root: {},\n },\n },\n\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: shape.md,\n },\n notchedOutline: {\n borderColor: modeTokens.components.input.outlined.enabledBorder,\n },\n },\n },\n\n MuiFilledInput: {\n styleOverrides: {\n root: {\n backgroundColor: modeTokens.components.input.filled.enabledFill,\n borderRadius: `${shape.md}px ${shape.md}px 0 0`,\n },\n },\n },\n\n MuiInput: {\n styleOverrides: {\n root: {},\n underline: {\n '&:before': {\n borderBottomColor: modeTokens.components.input.standard.enabledBorder,\n },\n },\n },\n },\n\n MuiInputLabel: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiSelect: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiAutocomplete: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // SELECTION CONTROLS\n // =========================================================================\n MuiCheckbox: {\n styleOverrides: {\n root: {\n '&.Mui-checked': {\n color: modeTokens.colors.primary.main,\n },\n },\n },\n },\n\n MuiRadio: {\n styleOverrides: {\n root: {\n '&.Mui-checked': {\n color: modeTokens.colors.primary.main,\n },\n },\n },\n },\n\n MuiSwitch: {\n styleOverrides: {\n root: {\n '& .MuiSwitch-switchBase.Mui-checked': {\n color: modeTokens.colors.primary.main,\n },\n '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': {\n backgroundColor: modeTokens.colors.primary.main,\n },\n },\n },\n },\n\n // =========================================================================\n // CHIPS\n // =========================================================================\n MuiChip: {\n styleOverrides: {\n root: {\n ...styleCompositions.chip.base(),\n },\n outlined: {\n borderColor: modeTokens.components.chip.defaultEnabledBorder,\n },\n deleteIcon: {\n color: modeTokens.components.chip.defaultCloseFill,\n },\n },\n },\n\n // =========================================================================\n // ALERTS & FEEDBACK\n // =========================================================================\n MuiAlert: {\n styleOverrides: {\n root: {\n borderRadius: `${shape.md}px`,\n },\n // Filled variants\n filledError: {\n backgroundColor: modeTokens.components.alert.error.filled.background,\n color: modeTokens.components.alert.error.filled.foreground,\n },\n filledWarning: {\n backgroundColor: modeTokens.components.alert.warning.filled.background,\n color: modeTokens.components.alert.warning.filled.foreground,\n },\n filledInfo: {\n backgroundColor: modeTokens.components.alert.info.filled.background,\n color: modeTokens.components.alert.info.filled.foreground,\n },\n filledSuccess: {\n backgroundColor: modeTokens.components.alert.success.filled.background,\n color: modeTokens.components.alert.success.filled.foreground,\n },\n // Outlined variants\n outlinedError: {\n backgroundColor: modeTokens.components.alert.error.outlined.background,\n color: modeTokens.components.alert.error.outlined.foreground,\n borderColor: modeTokens.components.alert.error.outlined.border,\n },\n outlinedWarning: {\n backgroundColor: modeTokens.components.alert.warning.outlined.background,\n color: modeTokens.components.alert.warning.outlined.foreground,\n borderColor: modeTokens.components.alert.warning.outlined.border,\n },\n outlinedInfo: {\n backgroundColor: modeTokens.components.alert.info.outlined.background,\n color: modeTokens.components.alert.info.outlined.foreground,\n borderColor: modeTokens.components.alert.info.outlined.border,\n },\n outlinedSuccess: {\n backgroundColor: modeTokens.components.alert.success.outlined.background,\n color: modeTokens.components.alert.success.outlined.foreground,\n borderColor: modeTokens.components.alert.success.outlined.border,\n },\n // Standard variants\n standardError: {\n backgroundColor: modeTokens.components.alert.error.standard.background,\n color: modeTokens.components.alert.error.standard.foreground,\n },\n standardWarning: {\n backgroundColor: modeTokens.components.alert.warning.standard.background,\n color: modeTokens.components.alert.warning.standard.foreground,\n },\n standardInfo: {\n backgroundColor: modeTokens.components.alert.info.standard.background,\n color: modeTokens.components.alert.info.standard.foreground,\n },\n standardSuccess: {\n backgroundColor: modeTokens.components.alert.success.standard.background,\n color: modeTokens.components.alert.success.standard.foreground,\n },\n },\n },\n\n MuiSnackbar: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // SURFACES\n // =========================================================================\n MuiPaper: {\n styleOverrides: {\n root: {},\n rounded: {\n borderRadius: shape.md,\n },\n elevation0: {\n backgroundColor: modeTokens.components.paper.elevation0,\n },\n elevation1: {\n backgroundColor: modeTokens.components.paper.elevation1,\n },\n elevation2: {\n backgroundColor: modeTokens.components.paper.elevation2,\n },\n },\n },\n\n MuiCard: {\n styleOverrides: {\n root: {\n borderRadius: shape.lg,\n },\n },\n },\n\n MuiDialog: {\n styleOverrides: {\n paper: {\n borderRadius: shape.lg,\n },\n },\n },\n\n MuiDrawer: {\n styleOverrides: {\n paper: {},\n },\n },\n\n MuiAppBar: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // TABLES\n // =========================================================================\n MuiTable: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiTableCell: {\n styleOverrides: {\n root: {\n borderBottomColor: modeTokens.components.table.border,\n },\n head: {\n fontWeight: typography.fontWeightMedium,\n },\n },\n },\n\n // =========================================================================\n // LISTS & MENUS\n // =========================================================================\n MuiList: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiListItem: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiListItemButton: {\n styleOverrides: {\n root: {\n ...styleCompositions.listItem.base(),\n '&.Mui-selected': {\n backgroundColor: modeTokens.colors.action.selected,\n fontWeight: typography.fontWeightSemiBold,\n },\n '&.Mui-selected:hover': {\n backgroundColor: modeTokens.colors.action.hover,\n },\n '&:hover': {\n backgroundColor: modeTokens.colors.action.hover,\n },\n },\n },\n },\n\n MuiListItemText: {\n styleOverrides: {\n primary: {},\n secondary: {},\n },\n },\n\n MuiMenu: {\n styleOverrides: {\n paper: {\n borderRadius: shape.md,\n },\n },\n },\n\n MuiMenuItem: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // NAVIGATION\n // =========================================================================\n MuiTabs: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiTab: {\n styleOverrides: {\n root: {\n textTransform: 'none' as const,\n },\n },\n },\n\n MuiBreadcrumbs: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiPagination: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiStepper: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // TYPOGRAPHY\n // =========================================================================\n MuiTypography: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiLink: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // DATA DISPLAY\n // =========================================================================\n MuiAvatar: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiBadge: {\n styleOverrides: {\n badge: {},\n },\n },\n\n MuiTooltip: {\n styleOverrides: {\n tooltip: {},\n },\n },\n\n MuiDivider: {\n styleOverrides: {\n root: {\n borderColor: modeTokens.colors.divider,\n },\n },\n },\n\n // =========================================================================\n // FORMS\n // =========================================================================\n MuiFormControlLabel: {\n styleOverrides: {\n label: {},\n },\n },\n\n MuiFormHelperText: {\n styleOverrides: {\n root: {},\n },\n },\n\n MuiFormLabel: {\n styleOverrides: {\n root: {},\n },\n },\n\n // =========================================================================\n // PROGRESS\n // =========================================================================\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n borderRadius: shape.sm,\n },\n },\n },\n };\n};\n\n/**\n * Light theme configuration\n * Uses 100% generated tokens from Style Dictionary\n */\nexport const lightTheme: Theme = createTheme({\n palette: {\n mode: 'light',\n primary: lightTokens.colors.primary,\n secondary: lightTokens.colors.secondary,\n error: lightTokens.colors.error,\n warning: lightTokens.colors.warning,\n info: lightTokens.colors.info,\n success: lightTokens.colors.success,\n background: lightTokens.colors.background,\n text: lightTokens.colors.text,\n action: lightTokens.colors.action,\n divider: lightTokens.colors.divider,\n primitives: lightTokens.colors.primitives,\n semantic: lightTokens.colors.semantic,\n _components: lightTokens.components,\n },\n typography: {\n ...typographyTokens,\n },\n shape: {\n ...shapeTokens,\n },\n spacing,\n components: getComponentOverrides('light'),\n});\n\n/**\n * Dark theme configuration\n * Uses 100% generated tokens from Style Dictionary\n */\nexport const darkTheme: Theme = createTheme({\n palette: {\n mode: 'dark',\n primary: darkTokens.colors.primary,\n secondary: darkTokens.colors.secondary,\n error: darkTokens.colors.error,\n warning: darkTokens.colors.warning,\n info: darkTokens.colors.info,\n success: darkTokens.colors.success,\n background: darkTokens.colors.background,\n text: darkTokens.colors.text,\n action: darkTokens.colors.action,\n divider: darkTokens.colors.divider,\n _components: darkTokens.components,\n },\n typography: {\n ...typographyTokens,\n },\n shape: {\n ...shapeTokens,\n },\n spacing,\n components: getComponentOverrides('dark'),\n});\n\n/**\n * Default theme export (light mode)\n */\nexport const theme = lightTheme;\n\n/**\n * Export both themes for theme switching\n */\nexport default {\n light: lightTheme,\n dark: darkTheme,\n};\n","/**\n * Design tokens exports\n * Re-exports from generated tokens (Style Dictionary)\n *\n * @version 0.12.0 - Migrated to 100% generated tokens\n * @deprecated Direct theme.json dependency removed - use generated tokens\n */\n\nimport {\n lightTokens,\n darkTokens,\n typographyTokens,\n shapeTokens,\n spacingArray,\n} from './tokens-import';\n\n/**\n * Color tokens (organized by light/dark mode)\n */\nexport const colors = {\n light: lightTokens.colors,\n dark: darkTokens.colors,\n};\n\n/**\n * Typography tokens\n * Includes font family, sizes, weights, and variant definitions\n */\nexport const typography = typographyTokens;\n\n/**\n * Shape tokens (border radius values)\n */\nexport const shape = shapeTokens;\n\n/**\n * Spacing scale (8px base grid system)\n * Array format: [0, 4, 8, 12, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96]\n */\nexport const spacing = spacingArray;\n\n/**\n * Component-specific tokens\n */\nexport const components = {\n light: lightTokens.components,\n dark: darkTokens.components,\n};\n\n/**\n * Full tokens object (for backwards compatibility)\n * @deprecated Use named exports (colors, typography, shape, etc.) instead\n */\nexport const tokens = {\n colorSchemes: {\n light: {\n palette: lightTokens.colors,\n _components: lightTokens.components,\n },\n dark: {\n palette: darkTokens.colors,\n _components: darkTokens.components,\n },\n },\n typography: typographyTokens,\n shape: shapeTokens,\n spacing: spacingArray,\n};\n\n/**\n * Type definitions for tokens\n */\nexport type ColorScheme = typeof lightTokens.colors;\nexport type ComponentTokens = typeof lightTokens.components;\nexport type TypographyScale = typeof typographyTokens;\nexport type ShapeTokens = typeof shapeTokens;\nexport type SpacingScale = typeof spacingArray;\n","/**\n * Box component\n * Wraps Material-UI Box with design system theme\n */\n\nimport React from 'react';\nimport MuiBox from '@mui/material/Box';\nimport type { BoxProps } from './Box.types';\n\n/**\n * Box component - the most fundamental layout component\n * A utility component that serves as a wrapper with access to theme and sx prop\n *\n * @example\n * ```tsx\n * <Box sx={{ padding: 2, backgroundColor: 'primary.main' }}>\n * Content\n * </Box>\n * ```\n */\nexport const Box = React.forwardRef<HTMLDivElement, BoxProps>(({ children, ...props }, ref) => {\n return (\n <MuiBox ref={ref} {...props}>\n {children}\n </MuiBox>\n );\n});\n\nBox.displayName = 'Box';\n\nexport default Box;\n","/**\n * Stack component\n * Wraps Material-UI Stack with design system theme\n */\n\nimport React from 'react';\nimport MuiStack from '@mui/material/Stack';\nimport type { StackProps } from './Stack.types';\n\n/**\n * Stack component - manages layout of immediate children along vertical or horizontal axis\n * Provides spacing between children with optional dividers\n *\n * @example\n * ```tsx\n * <Stack spacing={2} direction=\"row\">\n * <Item>Item 1</Item>\n * <Item>Item 2</Item>\n * </Stack>\n * ```\n */\nexport const Stack = React.forwardRef<HTMLDivElement, StackProps>(\n ({ children, direction = 'column', spacing = 0, ...props }, ref) => {\n return (\n <MuiStack ref={ref} direction={direction} spacing={spacing} {...props}>\n {children}\n </MuiStack>\n );\n }\n);\n\nStack.displayName = 'Stack';\n\nexport default Stack;\n","/**\n * Avatar Component\n *\n * Avatar component for the MRS Design System.\n * Wraps Material-UI Avatar with custom theme tokens and sizing.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6587:47403\n * @see {@link https://mui.com/material-ui/react-avatar/}\n */\n\nimport React from 'react';\nimport MuiAvatar from '@mui/material/Avatar';\nimport { useTheme } from '@mui/material/styles';\nimport type { AvatarProps } from './Avatar.types';\nimport * as tokens from '../../../tokens/generated/ts/tokens';\n\n/**\n * Avatar component\n *\n * Avatars are found throughout material design with uses in everything from tables to dialog menus.\n *\n * @param props - Avatar component props\n * @returns Avatar component\n */\nexport const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ children, size = 40, variant = 'circular', sx, ...props }, ref) => {\n const theme = useTheme();\n\n // Map size to predefined token sizes\n const getSizeToken = (): string => {\n if (size === 24) return tokens.ComponentAvatarSmall;\n if (size === 40) return tokens.ComponentAvatarMedium;\n if (size === 56) return tokens.ComponentAvatarLarge;\n // Default for sizes not in predefined tokens\n return `${size}px`;\n };\n\n // Calculate font size based on avatar size\n const getFontSize = (): string => {\n if (size === 18) return tokens.PrimitivesTypographyFontSizeXs;\n if (size === 24 || size === 32) return tokens.PrimitivesTypographyFontSizeSm;\n return tokens.PrimitivesTypographyFontSizeLg;\n };\n\n const avatarSize = getSizeToken();\n\n return (\n <MuiAvatar\n ref={ref}\n variant={variant}\n {...props}\n sx={{\n width: avatarSize,\n height: avatarSize,\n fontSize: getFontSize(),\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightRegular,\n borderRadius:\n variant === 'circular' ? tokens.ComponentAvatarBorderRadius : tokens.PrimitivesRadiusSm,\n ...sx,\n }}\n >\n {children}\n </MuiAvatar>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n","/**\n * Badge Component\n *\n * Badge component for the MRS Design System.\n * Wraps Material-UI Badge with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6587:47500\n * @see {@link https://mui.com/material-ui/react-badge/}\n */\n\nimport React from 'react';\nimport MuiBadge from '@mui/material/Badge';\nimport { useTheme } from '@mui/material/styles';\nimport type { BadgeProps } from './Badge.types';\n\n/**\n * Badge component\n *\n * Generates a small badge to the top-right of its child(ren).\n * Typically used to display notification counts or status indicators.\n *\n * @param props - Badge component props\n * @returns Badge component\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ children, color = 'default', variant = 'standard', sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiBadge\n ref={ref}\n color={color}\n variant={variant}\n {...props}\n sx={{\n // Badge styling\n '& .MuiBadge-badge': {\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n },\n ...sx,\n }}\n >\n {children}\n </MuiBadge>\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","/**\n * Typography Component\n *\n * Text display component for the MRS Design System.\n * Wraps Material-UI Typography with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=11609:174872\n * @see {@link https://mui.com/material-ui/react-typography/}\n */\n\nimport React from 'react';\nimport MuiTypography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport type { TypographyProps } from './Typography.types';\n\n/**\n * Typography component\n *\n * Displays text content with predefined typography styles from the theme.\n * Supports all standard MUI typography variants (h1-h6, body1-body2, subtitle1-subtitle2, caption, overline).\n *\n * @param props - Typography component props\n * @returns Typography component\n */\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>(\n ({ children, variant = 'body1', gutterBottom = false, sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiTypography\n ref={ref}\n variant={variant}\n gutterBottom={gutterBottom}\n {...props}\n sx={{\n // Use theme typography tokens\n fontFamily: theme.typography.fontFamily,\n // Allow custom sx to override defaults\n ...sx,\n }}\n >\n {children}\n </MuiTypography>\n );\n }\n);\n\nTypography.displayName = 'Typography';\n","/**\n * AccountStack Component\n * Displays user account information with avatar, badge, and user details\n * Designed for use in AppBar/Toolbar components\n */\n\nimport React from 'react';\nimport { Box } from '../Box';\nimport { Stack } from '../Stack';\nimport { Avatar } from '../Avatar';\nimport { Badge } from '../Badge';\nimport { Typography } from '../Typography';\nimport type { AccountStackProps } from './AccountStack.types';\n\nexport const AccountStack = React.forwardRef<HTMLDivElement, AccountStackProps>(\n (\n {\n user = true,\n userAccountInfo = true,\n notifications = true,\n userName = 'John Doe',\n userEmail = 'john.doe@example.com',\n avatarSrc,\n avatarAlt = 'User avatar',\n notificationCount,\n avatarPosition = 'left',\n sx,\n ...props\n },\n ref\n ) => {\n const avatarElement = user && (\n <Badge\n overlap=\"circular\"\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n variant={notifications && !notificationCount ? 'dot' : 'standard'}\n invisible={!notifications}\n color=\"error\"\n badgeContent={notificationCount}\n >\n <Avatar src={avatarSrc} alt={avatarAlt} sx={{ width: 40, height: 40 }} />\n </Badge>\n );\n\n const userInfoElement = userAccountInfo && (\n <Stack direction=\"column\" spacing={0} sx={{ alignItems: 'flex-start' }}>\n <Typography variant=\"subtitle2\" sx={{ lineHeight: 1.2, fontWeight: 600 }}>\n {userName}\n </Typography>\n <Typography\n variant=\"subtitle2\"\n sx={{\n lineHeight: 1.2,\n fontWeight: 400,\n color: 'text.secondary',\n fontSize: '0.75rem',\n }}\n >\n {userEmail}\n </Typography>\n </Stack>\n );\n\n return (\n <Box\n ref={ref}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: 40, // spacing(5)\n gap: 2, // spacing(2) = 16px\n ...sx,\n }}\n {...props}\n >\n {avatarPosition === 'left' ? (\n <>\n {avatarElement}\n {userInfoElement}\n </>\n ) : (\n <>\n {userInfoElement}\n {avatarElement}\n </>\n )}\n </Box>\n );\n }\n);\n\nAccountStack.displayName = 'AccountStack';\n\nexport type { AccountStackProps };\nexport default AccountStack;\n","/**\n * Theme Helper Types\n *\n * Helper types and functions for working with the extended MUI theme.\n * Provides type-safe access to custom theme properties.\n */\n\nimport type { Theme } from '@mui/material/styles';\n\n/**\n * Extended Shape interface with custom border radius values\n */\nexport interface ExtendedShape {\n borderRadius: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n rounded: number;\n}\n\n/**\n * Get typed shape object from theme\n *\n * @param theme - MUI theme object\n * @returns Shape object with custom border radius values\n *\n * @example\n * ```tsx\n * const theme = useTheme();\n * const shape = getThemeShape(theme);\n * console.log(shape.rounded); // 9999\n * ```\n */\nexport const getThemeShape = (theme: Theme): ExtendedShape => {\n return theme.shape as unknown as ExtendedShape;\n};\n\n/**\n * Extended Palette Color interface with state tokens\n */\nexport interface ExtendedPaletteColor {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n _states?: {\n hover?: string;\n selected?: string;\n focus?: string;\n focusVisible?: string;\n };\n}\n\n/**\n * Get typed palette color with states\n *\n * @param color - Palette color object\n * @returns Color object with state tokens\n *\n * @example\n * ```tsx\n * const theme = useTheme();\n * const primaryColor = getExtendedColor(theme.palette.primary);\n * console.log(primaryColor._states?.hover); // hover color\n * ```\n */\nexport const getExtendedColor = (color: any): ExtendedPaletteColor => {\n return color as ExtendedPaletteColor;\n};\n","/**\n * Button Component\n *\n * Primary action component for the MRS Design System.\n * Wraps Material-UI Button with custom theme tokens.\n *\n * @figma https://figma.com/design/ESNP5KunFotGObfcuXZ9Op/MRS---Material-UI-v.7.2.0\n * @see {@link https://mui.com/material-ui/react-button/}\n */\n\nimport React from 'react';\nimport MuiButton from '@mui/material/Button';\nimport { useTheme } from '@mui/material/styles';\nimport type { ButtonProps } from './Button.types';\nimport { getThemeShape } from '../../../types/theme-helpers';\n\n/**\n * Button component\n *\n * @param props - Button component props\n * @returns Button component\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, sx, ...props }, ref) => {\n const theme = useTheme();\n const shape = getThemeShape(theme);\n\n return (\n <MuiButton\n ref={ref}\n {...props}\n sx={{\n // Use theme tokens for consistent styling\n textTransform: 'none', // Override MUI default uppercase\n borderRadius: shape.rounded, // Use rounded shape token (9999 for pill shape)\n fontWeight: theme.typography.fontWeightSemiBold,\n // Allow custom sx to override defaults\n ...sx,\n }}\n >\n {children}\n </MuiButton>\n );\n }\n);\n\nButton.displayName = 'Button';\n","/**\n * Checkbox Component\n *\n * Checkbox component for the MRS Design System.\n * Wraps Material-UI Checkbox with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6543-43052&m=dev\n * @see {@link https://mui.com/material-ui/react-checkbox/}\n */\n\nimport React from 'react';\nimport MuiCheckbox from '@mui/material/Checkbox';\nimport type { CheckboxProps } from './Checkbox.types';\n\n/**\n * Checkbox component\n *\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @param props - Checkbox component props\n * @returns Checkbox component\n */\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n checked,\n indeterminate = false,\n size = 'medium',\n color = 'primary',\n disabled = false,\n disableRipple = false,\n id,\n inputProps,\n inputRef,\n onChange,\n required = false,\n value,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiCheckbox\n ref={ref}\n checked={checked}\n indeterminate={indeterminate}\n size={size}\n color={color}\n disabled={disabled}\n disableRipple={disableRipple}\n id={id}\n inputProps={inputProps}\n inputRef={inputRef}\n onChange={onChange}\n required={required}\n value={value}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n","/**\n * Chip Component\n *\n * Chip component for the MRS Design System.\n * Wraps Material-UI Chip with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6588:47683\n * @see {@link https://mui.com/material-ui/react-chip/}\n */\n\nimport React from 'react';\nimport MuiChip from '@mui/material/Chip';\nimport type { ChipProps } from './Chip.types';\n\n/**\n * Chip component\n *\n * Chips are compact elements that represent an input, attribute, or action.\n *\n * @param props - Chip component props\n * @returns Chip component\n */\nexport const Chip = React.forwardRef<HTMLDivElement, ChipProps>(\n (\n {\n label,\n size = 'medium',\n color = 'default',\n variant = 'filled',\n disabled = false,\n clickable = false,\n avatar,\n icon,\n onDelete,\n deleteIcon,\n onClick,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiChip\n ref={ref}\n label={label}\n size={size}\n color={color}\n variant={variant}\n disabled={disabled}\n clickable={clickable || !!onClick}\n avatar={avatar}\n icon={icon}\n onDelete={onDelete}\n deleteIcon={deleteIcon}\n onClick={onClick}\n sx={sx}\n {...props}\n />\n );\n }\n);\n\nChip.displayName = 'Chip';\n","/**\n * CircularProgress Component\n *\n * CircularProgress component for the MRS Design System.\n * Wraps Material-UI CircularProgress with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6586:47016\n * @see {@link https://mui.com/material-ui/react-progress/#circular}\n */\n\nimport React from 'react';\nimport MuiCircularProgress from '@mui/material/CircularProgress';\nimport { Box, Typography } from '@mui/material';\nimport type { CircularProgressProps } from './CircularProgress.types';\n\n/**\n * CircularProgress component\n *\n * Progress indicators commonly known as spinners, express an unspecified wait time\n * or display the length of a process.\n *\n * @param props - CircularProgress component props\n * @returns CircularProgress component\n */\nexport const CircularProgress = React.forwardRef<HTMLSpanElement, CircularProgressProps>(\n (\n {\n size = 32,\n color = 'primary',\n showLabel = false,\n value = 0,\n variant = 'indeterminate',\n ...props\n },\n ref\n ) => {\n if (showLabel && variant === 'determinate') {\n return (\n <Box\n ref={ref}\n sx={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <MuiCircularProgress\n variant={variant}\n color={color}\n size={size}\n value={value}\n {...props}\n />\n <Box\n sx={{\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Typography\n variant=\"caption\"\n component=\"div\"\n sx={{\n fontSize: size === 16 ? '0.625rem' : '0.75rem',\n lineHeight: 1,\n }}\n >\n {`${Math.round(value)}%`}\n </Typography>\n </Box>\n </Box>\n );\n }\n\n return (\n <MuiCircularProgress\n ref={ref}\n variant={variant}\n color={color}\n size={size}\n value={value}\n {...props}\n />\n );\n }\n);\n\nCircularProgress.displayName = 'CircularProgress';\n","/**\n * Container component\n * Wraps Material-UI Container with design system theme\n */\n\nimport React from 'react';\nimport MuiContainer from '@mui/material/Container';\nimport type { ContainerProps } from './Container.types';\n\n/**\n * Container component - centers content horizontally with max-width constraints\n * The most basic layout element that provides responsive horizontal padding\n *\n * @example\n * ```tsx\n * <Container maxWidth=\"lg\">\n * <Typography>Content</Typography>\n * </Container>\n * ```\n */\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ children, maxWidth = 'lg', ...props }, ref) => {\n return (\n <MuiContainer ref={ref} maxWidth={maxWidth} {...props}>\n {children}\n </MuiContainer>\n );\n }\n);\n\nContainer.displayName = 'Container';\n\nexport default Container;\n","/**\n * Divider Component\n *\n * Separator component for the MRS Design System.\n * Wraps Material-UI Divider with custom theme tokens.\n *\n * @figma Horizontal: https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6645:53005\n * @figma Vertical: https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6645:53007\n * @see {@link https://mui.com/material-ui/react-divider/}\n */\n\nimport React from 'react';\nimport MuiDivider from '@mui/material/Divider';\nimport { useTheme } from '@mui/material/styles';\nimport type { DividerProps } from './Divider.types';\n\n/**\n * Divider component\n *\n * A thin line that groups content in lists and layouts.\n * Supports both horizontal and vertical orientations.\n *\n * @param props - Divider component props\n * @returns Divider component\n */\nexport const Divider = React.forwardRef<HTMLHRElement, DividerProps>(\n ({ orientation = 'horizontal', sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiDivider\n ref={ref}\n orientation={orientation}\n {...props}\n sx={{\n // Use theme divider color token\n borderColor: theme.palette.divider,\n ...sx,\n }}\n />\n );\n }\n);\n\nDivider.displayName = 'Divider';\n","/**\n * FormControlLabel component\n * Wraps Material-UI FormControlLabel with design system theme\n */\n\nimport React from 'react';\nimport MuiFormControlLabel from '@mui/material/FormControlLabel';\nimport type { Theme } from '@mui/material/styles';\nimport type { FormControlLabelProps } from './FormControlLabel.types';\n\n/**\n * FormControlLabel component - label wrapper for form controls\n * Drop-in replacement for checkboxes, radio buttons, and switches\n *\n * @example\n * ```tsx\n * <FormControlLabel\n * control={<Checkbox />}\n * label=\"Remember me\"\n * />\n * ```\n */\nexport const FormControlLabel = React.forwardRef<HTMLLabelElement, FormControlLabelProps>(\n ({ control, label, sx, ...props }, ref) => {\n return (\n <MuiFormControlLabel\n ref={ref}\n control={control}\n label={label}\n sx={{\n '& .MuiFormControlLabel-label': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontSize: (theme: Theme) => theme.typography.body1.fontSize,\n lineHeight: (theme: Theme) => theme.typography.body1.lineHeight,\n },\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nFormControlLabel.displayName = 'FormControlLabel';\n\nexport default FormControlLabel;\n","/**\n * FormGroup component\n * Wraps Material-UI FormGroup with design system theme\n */\n\nimport React from 'react';\nimport MuiFormGroup from '@mui/material/FormGroup';\nimport type { FormGroupProps } from './FormGroup.types';\n\n/**\n * FormGroup component - groups form controls\n * Provides a helpful wrapper used to group selection control components\n *\n * @example\n * ```tsx\n * <FormGroup>\n * <FormControlLabel control={<Checkbox />} label=\"Option 1\" />\n * <FormControlLabel control={<Checkbox />} label=\"Option 2\" />\n * </FormGroup>\n * ```\n */\nexport const FormGroup = React.forwardRef<HTMLDivElement, FormGroupProps>(\n ({ children, ...props }, ref) => {\n return (\n <MuiFormGroup ref={ref} {...props}>\n {children}\n </MuiFormGroup>\n );\n }\n);\n\nFormGroup.displayName = 'FormGroup';\n\nexport default FormGroup;\n","/**\n * Grid component\n * Wraps Material-UI Grid2 with design system theme\n */\n\nimport React from 'react';\nimport MuiGrid from '@mui/material/Grid2';\nimport type { GridProps } from './Grid.types';\n\n/**\n * Grid component - responsive grid layout using CSS Grid\n * Uses the new Grid2 component from MUI for improved performance and flexibility\n *\n * @example\n * ```tsx\n * <Grid container spacing={2}>\n * <Grid size={{ xs: 12, md: 6 }}>\n * <Item>1</Item>\n * </Grid>\n * <Grid size={{ xs: 12, md: 6 }}>\n * <Item>2</Item>\n * </Grid>\n * </Grid>\n * ```\n */\nexport const Grid = React.forwardRef<HTMLDivElement, GridProps>(({ children, ...props }, ref) => {\n return (\n <MuiGrid ref={ref} {...props}>\n {children}\n </MuiGrid>\n );\n});\n\nGrid.displayName = 'Grid';\n\nexport default Grid;\n","/**\n * Icon Component\n *\n * Icon display component for the MRS Design System.\n * Supports both SVG icons from @mui/icons-material and Font icons.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6594:47648\n * @see {@link https://mui.com/material-ui/icons/}\n */\n\nimport React from 'react';\nimport MuiIcon from '@mui/material/Icon';\nimport type { IconProps, IconSvgProps, IconFontProps } from './Icon.types';\n\n/**\n * Type guard to check if props are for SVG icon\n */\nfunction isSvgIcon(props: IconProps): props is IconSvgProps {\n return !props.type || props.type === 'svg';\n}\n\n/**\n * Type guard to check if props are for Font icon\n */\nfunction isFontIcon(props: IconProps): props is IconFontProps {\n return props.type === 'font';\n}\n\n/**\n * Icon component\n *\n * Displays icons with predefined sizes from the theme.\n * Supports both SVG icons from @mui/icons-material and Font icons from Material Icons.\n *\n * @param props - Icon component props\n * @returns Icon component\n */\nexport const Icon = React.forwardRef<HTMLElement, IconProps>((props, ref) => {\n const { size = 'medium' } = props;\n\n // Map size to MUI fontSize\n const fontSize = size === 'inherit' ? 'inherit' : size;\n\n // Render SVG Icon\n if (isSvgIcon(props)) {\n const { icon: IconComponent, sx, ...svgProps } = props;\n\n return (\n <IconComponent\n ref={ref as React.Ref<SVGSVGElement>}\n fontSize={fontSize}\n {...svgProps}\n sx={{\n // Use theme color tokens\n color: 'inherit',\n ...sx,\n }}\n />\n );\n }\n\n // Render Font Icon\n if (isFontIcon(props)) {\n const { iconName, sx, ...fontProps } = props;\n\n return (\n <MuiIcon\n ref={ref}\n fontSize={fontSize}\n {...fontProps}\n sx={{\n // Use theme color tokens\n color: 'inherit',\n ...sx,\n }}\n >\n {iconName}\n </MuiIcon>\n );\n }\n\n return null;\n});\n\nIcon.displayName = 'Icon';\n","/**\n * IconButton Component\n *\n * Icon button component for the MRS Design System.\n * Wraps Material-UI IconButton with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6557:38545\n * @see {@link https://mui.com/material-ui/react-button/#icon-button}\n */\n\nimport React from 'react';\nimport MuiIconButton from '@mui/material/IconButton';\nimport { useTheme } from '@mui/material/styles';\nimport type { IconButtonProps } from './IconButton.types';\n\n/**\n * IconButton component\n *\n * Icon buttons are commonly found in app bars and toolbars.\n * Icons are also appropriate for toggle buttons that allow a single choice to be selected or deselected.\n *\n * @param props - IconButton component props\n * @returns IconButton component\n */\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ children, color = 'default', size = 'medium', sx, ...props }, ref) => {\n const theme = useTheme();\n\n return (\n <MuiIconButton\n ref={ref}\n color={color}\n size={size}\n {...props}\n sx={{\n // Use theme tokens for consistency\n fontFamily: theme.typography.fontFamily,\n ...sx,\n }}\n >\n {children}\n </MuiIconButton>\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n","/**\n * LinearProgress Component\n *\n * LinearProgress component for the MRS Design System.\n * Wraps Material-UI LinearProgress with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6586:46855\n * @see {@link https://mui.com/material-ui/react-progress/#linear}\n */\n\nimport React from 'react';\nimport MuiLinearProgress from '@mui/material/LinearProgress';\nimport { Box, Typography } from '@mui/material';\nimport type { LinearProgressProps } from './LinearProgress.types';\n\n/**\n * LinearProgress component\n *\n * Progress indicators commonly known as spinners, express an unspecified wait time\n * or display the length of a process.\n *\n * @param props - LinearProgress component props\n * @returns LinearProgress component\n */\nexport const LinearProgress = React.forwardRef<HTMLSpanElement, LinearProgressProps>(\n (\n {\n color = 'primary',\n showLabel = false,\n value = 0,\n valueBuffer,\n variant = 'indeterminate',\n sx,\n ...props\n },\n ref\n ) => {\n if (showLabel && (variant === 'determinate' || variant === 'buffer')) {\n return (\n <Box\n ref={ref}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n minWidth: 200,\n ...sx,\n }}\n >\n <Box sx={{ flexGrow: 1 }}>\n <MuiLinearProgress\n variant={variant}\n color={color}\n value={value}\n valueBuffer={valueBuffer}\n {...props}\n />\n </Box>\n <Box sx={{ minWidth: 35 }}>\n <Typography variant=\"body2\" sx={{ color: 'text.primary' }}>\n {`${Math.round(value)}%`}\n </Typography>\n </Box>\n </Box>\n );\n }\n\n return (\n <MuiLinearProgress\n ref={ref}\n variant={variant}\n color={color}\n value={value}\n valueBuffer={valueBuffer}\n sx={{\n minWidth: 200,\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nLinearProgress.displayName = 'LinearProgress';\n","/**\n * Link component\n * Wraps Material-UI Link with design system theme\n */\n\nimport React from 'react';\nimport MuiLink from '@mui/material/Link';\nimport type { Theme } from '@mui/material/styles';\nimport type { LinkProps } from './Link.types';\n\n/**\n * Link component - accessible hyperlink\n * Wraps MUI Link with design system theme integration\n *\n * @example\n * ```tsx\n * <Link href=\"https://example.com\">Click here</Link>\n * <Link href=\"/about\" color=\"primary\" underline=\"hover\">About</Link>\n * ```\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ color = 'primary', underline = 'hover', variant = 'body1', children, sx, ...props }, ref) => {\n return (\n <MuiLink\n ref={ref}\n color={color}\n underline={underline}\n variant={variant}\n sx={{\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n cursor: 'pointer',\n '&:focus-visible': {\n outline: (theme: Theme) => `2px solid ${theme.palette.primary.main}`,\n outlineOffset: '2px',\n borderRadius: '2px',\n },\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiLink>\n );\n }\n);\n\nLink.displayName = 'Link';\n\nexport default Link;\n","import React from 'react';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport { Box } from '@mui/material';\nimport '../../../styles/material-symbols.css';\n\nexport interface MaterialSymbolProps {\n /**\n * Icon name from Material Symbols library\n * Use snake_case format (e.g., \"home\", \"check_circle\", \"arrow_forward\")\n * Browse icons: https://fonts.google.com/icons\n *\n * @example \"close\"\n * @example \"check\"\n * @example \"settings\"\n * @example \"account_circle\"\n */\n icon: string;\n\n /**\n * Icon size\n * - 'small': 20px\n * - 'medium': 24px (default)\n * - 'large': 36px\n * - number: Custom size in pixels\n *\n * @default \"medium\"\n */\n size?: 'small' | 'medium' | 'large' | 'inherit' | number;\n\n /**\n * Fill style - controls whether icon is outlined or filled\n * - 0: Outlined (default)\n * - 1: Filled\n *\n * @default 0\n */\n fill?: 0 | 1;\n\n /**\n * Weight - thickness of icon strokes\n * - 100: Thin\n * - 200: Extra Light\n * - 300: Light (MRS default)\n * - 400: Regular\n * - 500: Medium\n * - 600: Semi Bold\n * - 700: Bold\n *\n * @default 300\n */\n weight?: 100 | 200 | 300 | 400 | 500 | 600 | 700;\n\n /**\n * Grade - visual weight adjustment without changing physical size\n * Range: -50 to 200\n * - Negative values: Lighter appearance\n * - Positive values: Heavier appearance\n *\n * @default 100\n */\n grade?: number;\n\n /**\n * Color - can be any valid CSS color or MUI theme path\n *\n * @example \"red\"\n * @example \"#00686f\"\n * @example \"primary.main\"\n */\n color?: string;\n\n /**\n * Additional CSS classes\n */\n className?: string;\n\n /**\n * MUI sx prop for custom styling\n */\n sx?: SxProps<Theme>;\n\n /**\n * ARIA label for accessibility\n * Recommended for icon-only buttons or when icon conveys meaning\n */\n ariaLabel?: string;\n\n /**\n * ARIA hidden - hides icon from screen readers\n * Use when icon is purely decorative\n *\n * @default false\n */\n ariaHidden?: boolean;\n\n /**\n * Click handler - makes icon clickable\n */\n onClick?: (event: React.MouseEvent<HTMLSpanElement>) => void;\n}\n\n/**\n * MaterialSymbol Component\n *\n * Renders icons from Google's Material Symbols library using variable font technology.\n * Provides customizable weight, fill, grade, and size properties.\n *\n * **MRS Design System Defaults:**\n * - Variant: Rounded\n * - Weight: 300 (Light)\n * - Fill: 0 (Outlined)\n * - Grade: 100 (Lighter visual weight)\n *\n * @example\n * Basic usage\n * ```tsx\n * <MaterialSymbol icon=\"home\" />\n * ```\n *\n * @example\n * With size and fill\n * ```tsx\n * <MaterialSymbol icon=\"favorite\" size=\"large\" fill={1} />\n * ```\n *\n * @example\n * With custom color and weight\n * ```tsx\n * <MaterialSymbol\n * icon=\"settings\"\n * color=\"primary.main\"\n * weight={500}\n * />\n * ```\n *\n * @example\n * Clickable icon\n * ```tsx\n * <MaterialSymbol\n * icon=\"close\"\n * onClick={() => console.log('clicked')}\n * ariaLabel=\"Close\"\n * />\n * ```\n */\nexport const MaterialSymbol = React.forwardRef<HTMLSpanElement, MaterialSymbolProps>(\n (\n {\n icon,\n size = 'medium',\n fill = 0,\n weight = 300,\n grade = 100,\n color,\n className = '',\n sx,\n ariaLabel,\n ariaHidden = false,\n onClick,\n ...props\n },\n ref\n ) => {\n // Calculate font size and optical size based on size prop\n let fontSize: number | string;\n let opticalSize: number;\n\n if (size === 'inherit') {\n fontSize = 'inherit';\n opticalSize = 24; // Default optical size for inherit\n } else if (typeof size === 'number') {\n fontSize = size;\n opticalSize = size;\n } else {\n const sizeMap = {\n small: { fontSize: 20, opsz: 20 },\n medium: { fontSize: 24, opsz: 24 },\n large: { fontSize: 36, opsz: 40 },\n };\n fontSize = sizeMap[size].fontSize;\n opticalSize = sizeMap[size].opsz;\n }\n\n // Construct font-variation-settings string\n const fontVariationSettings = `'FILL' ${fill}, 'wght' ${weight}, 'GRAD' ${grade}, 'opsz' ${opticalSize}`;\n\n // Build class names\n const classNames = ['material-symbols-rounded', className].filter(Boolean).join(' ');\n\n // Determine if icon is clickable\n const isClickable = Boolean(onClick);\n\n return (\n <Box\n ref={ref}\n component=\"span\"\n className={classNames}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden}\n role={ariaLabel && !ariaHidden ? 'img' : undefined}\n onClick={onClick}\n style={{\n // Use inline style for fontVariationSettings to ensure it renders properly\n fontVariationSettings,\n }}\n sx={{\n fontSize: typeof fontSize === 'number' ? `${fontSize}px` : fontSize,\n color: color || 'inherit',\n userSelect: 'none',\n cursor: isClickable ? 'pointer' : 'inherit',\n ...(isClickable && {\n transition: 'opacity 0.2s ease-in-out',\n '&:hover': {\n opacity: 0.7,\n },\n '&:active': {\n opacity: 0.5,\n },\n }),\n ...sx,\n }}\n {...props}\n >\n {icon}\n </Box>\n );\n }\n);\n\nMaterialSymbol.displayName = 'MaterialSymbol';\n\nexport default MaterialSymbol;\n","/**\n * MenuItem Component\n *\n * Menu item component for the MRS Design System.\n * Wraps Material-UI MenuItem with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-menu/}\n */\n\nimport React from 'react';\nimport MuiMenuItem from '@mui/material/MenuItem';\nimport type { Theme } from '@mui/material/styles';\nimport type { MenuItemProps } from './MenuItem.types';\n\n/**\n * MenuItem component\n *\n * Menu items are used in menus, selects, and other components\n * to display selectable options.\n *\n * @param props - MenuItem component props\n * @returns MenuItem component\n *\n * @example\n * ```tsx\n * // In a Select\n * <Select>\n * <MenuItem value=\"option1\">Option 1</MenuItem>\n * <MenuItem value=\"option2\">Option 2</MenuItem>\n * </Select>\n *\n * // Disabled\n * <MenuItem value=\"disabled\" disabled>\n * Disabled Option\n * </MenuItem>\n *\n * // Selected\n * <MenuItem value=\"selected\" selected>\n * Selected Option\n * </MenuItem>\n * ```\n */\nexport const MenuItem = React.forwardRef<HTMLLIElement, MenuItemProps>(\n ({ children, sx, ...props }, ref) => {\n return (\n <MuiMenuItem\n ref={ref}\n sx={{\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontSize: (theme: Theme) => theme.typography.body1.fontSize,\n fontWeight: (theme: Theme) => theme.typography.fontWeightRegular,\n lineHeight: (theme: Theme) => theme.typography.body1.lineHeight,\n // Hover state\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n },\n // Selected state\n '&.Mui-selected': {\n backgroundColor: (theme: Theme) => theme.palette.action.selected,\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.selected,\n },\n },\n // Focus state\n '&.Mui-focusVisible': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n },\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiMenuItem>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n\nexport default MenuItem;\n","/**\n * Paper Component\n *\n * Paper component for the MRS Design System.\n * Wraps Material-UI Paper with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6584:46711\n * @see {@link https://mui.com/material-ui/react-paper/}\n */\n\nimport React from 'react';\nimport MuiPaper from '@mui/material/Paper';\nimport type { PaperProps } from './Paper.types';\n\n/**\n * Paper component\n *\n * The Paper component is a container that displays content with elevation and optional borders.\n * The elevation can be used to establish a hierarchy between other content.\n *\n * @param props - Paper component props\n * @returns Paper component\n */\nexport const Paper = React.forwardRef<HTMLDivElement, PaperProps>(\n ({ children, variant = 'elevation', elevation = 1, square = false, sx, ...props }, ref) => {\n return (\n <MuiPaper\n ref={ref}\n variant={variant}\n elevation={variant === 'elevation' ? elevation : 0}\n square={square}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiPaper>\n );\n }\n);\n\nPaper.displayName = 'Paper';\n","/**\n * Radio Component\n *\n * Radio component for the MRS Design System.\n * Wraps Material-UI Radio with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6558-39273&m=dev\n * @see {@link https://mui.com/material-ui/react-radio/}\n */\n\nimport React from 'react';\nimport MuiRadio from '@mui/material/Radio';\nimport type { RadioProps } from './Radio.types';\n\n/**\n * Radio component\n *\n * Radio buttons allow the user to select one option from a set.\n * Use radio buttons when the user needs to see all available options.\n * If available options can be collapsed, consider using a Select component because it uses less space.\n *\n * @param props - Radio component props\n * @returns Radio component\n */\nexport const Radio = React.forwardRef<HTMLButtonElement, RadioProps>(\n (\n {\n checked,\n size = 'medium',\n color = 'primary',\n disabled = false,\n disableRipple = false,\n required = false,\n onChange,\n value,\n id,\n inputProps,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiRadio\n ref={ref}\n checked={checked}\n size={size}\n color={color}\n disabled={disabled}\n disableRipple={disableRipple}\n required={required}\n onChange={onChange}\n value={value}\n id={id}\n inputProps={inputProps}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nRadio.displayName = 'Radio';\n","/**\n * RadioGroup component\n * Wraps Material-UI RadioGroup with design system theme\n */\n\nimport React from 'react';\nimport MuiRadioGroup from '@mui/material/RadioGroup';\nimport type { RadioGroupProps } from './RadioGroup.types';\n\n/**\n * RadioGroup component - groups Radio buttons together\n * Provides a wrapper around a set of Radio components\n *\n * @example\n * ```tsx\n * <RadioGroup value={value} onChange={handleChange}>\n * <FormControlLabel value=\"option1\" control={<Radio />} label=\"Option 1\" />\n * <FormControlLabel value=\"option2\" control={<Radio />} label=\"Option 2\" />\n * </RadioGroup>\n * ```\n */\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ children, ...props }, ref) => {\n return (\n <MuiRadioGroup ref={ref} {...props}>\n {children}\n </MuiRadioGroup>\n );\n }\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport default RadioGroup;\n","/**\n * Select Component\n *\n * Select component for the MRS Design System.\n * Wraps Material-UI Select with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-select/}\n */\n\nimport React from 'react';\nimport MuiSelect from '@mui/material/Select';\nimport type { Theme } from '@mui/material/styles';\nimport { shapeTokens } from '@theme/tokens-import';\nimport type { SelectProps } from './Select.types';\n\n/**\n * Select component\n *\n * Select components are used for collecting user provided information from a list of options.\n * Supports single and multiple selection, different variants, sizes, and states.\n *\n * @param props - Select component props\n * @returns Select component\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Select value={age} onChange={handleChange}>\n * <MenuItem value={10}>Ten</MenuItem>\n * <MenuItem value={20}>Twenty</MenuItem>\n * <MenuItem value={30}>Thirty</MenuItem>\n * </Select>\n *\n * // With label (use FormControl)\n * <FormControl>\n * <InputLabel>Age</InputLabel>\n * <Select value={age} onChange={handleChange}>\n * <MenuItem value={10}>Ten</MenuItem>\n * <MenuItem value={20}>Twenty</MenuItem>\n * </Select>\n * </FormControl>\n *\n * // Multiple selection\n * <Select multiple value={values} onChange={handleChange}>\n * <MenuItem value=\"option1\">Option 1</MenuItem>\n * <MenuItem value=\"option2\">Option 2</MenuItem>\n * </Select>\n * ```\n */\nexport const Select = React.forwardRef<any, SelectProps>(\n (\n { variant = 'outlined', color = 'primary', size = 'medium', fullWidth = false, sx, ...props },\n ref\n ) => {\n return (\n <MuiSelect\n ref={ref}\n variant={variant}\n color={color}\n size={size}\n fullWidth={fullWidth}\n sx={{\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n borderRadius: shapeTokens.lg,\n // Outlined variant specific styles\n ...(variant === 'outlined' && {\n '& .MuiOutlinedInput-root': {\n borderRadius: shapeTokens.lg,\n },\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: (theme: Theme) =>\n theme.palette._components?.input?.outlined?.enabledBorder || theme.palette.divider,\n },\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: (theme: Theme) => theme.palette.text.primary,\n },\n '&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n borderWidth: 2,\n },\n }),\n // Filled variant specific styles\n ...(variant === 'filled' && {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n '&:hover': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.09)',\n },\n '&.Mui-focused': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n },\n }),\n // Standard variant specific styles\n ...(variant === 'standard' && {\n '&:before': {\n borderBottomColor: (theme: Theme) =>\n theme.palette._components?.input?.standard?.enabledBorder || theme.palette.divider,\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottomColor: (theme: Theme) => theme.palette.text.primary,\n },\n }),\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","/**\n * Skeleton Component\n *\n * Skeleton component for the MRS Design System.\n * Wraps Material-UI Skeleton with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6596:49017\n * @see {@link https://mui.com/material-ui/react-skeleton/}\n */\n\nimport React from 'react';\nimport MuiSkeleton from '@mui/material/Skeleton';\nimport type { SkeletonProps } from './Skeleton.types';\n\n/**\n * Skeleton component\n *\n * Display a placeholder preview of your content before the data gets loaded\n * to reduce load-time frustration.\n *\n * @param props - Skeleton component props\n * @returns Skeleton component\n */\nexport const Skeleton = React.forwardRef<HTMLSpanElement, SkeletonProps>(\n ({ variant = 'text', width, height, animation = 'pulse', ...props }, ref) => {\n // Set default dimensions based on variant\n let defaultWidth = width;\n let defaultHeight = height;\n\n if (variant === 'text' && !width) {\n defaultWidth = 120;\n }\n if (variant === 'text' && !height) {\n defaultHeight = 12;\n }\n if (variant === 'circular' && !width && !height) {\n defaultWidth = 40;\n defaultHeight = 40;\n }\n if (variant === 'rectangular' && !width && !height) {\n defaultWidth = 120;\n defaultHeight = 120;\n }\n\n return (\n <MuiSkeleton\n ref={ref}\n variant={variant}\n width={defaultWidth}\n height={defaultHeight}\n animation={animation}\n {...props}\n />\n );\n }\n);\n\nSkeleton.displayName = 'Skeleton';\n","/**\n * Slider Component\n *\n * Slider component for the MRS Design System.\n * Wraps Material-UI Slider with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6562-39045&m=dev\n * @see {@link https://mui.com/material-ui/react-slider/}\n */\n\nimport React from 'react';\nimport MuiSlider from '@mui/material/Slider';\nimport type { SliderProps } from './Slider.types';\n\n/**\n * Slider component\n *\n * Sliders allow users to make selections from a range of values.\n * Sliders reflect a range of values along a bar, from which users may select a single value.\n * They are ideal for adjusting settings such as volume, brightness, or applying image filters.\n *\n * @param props - Slider component props\n * @returns Slider component\n */\nexport const Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n size = 'medium',\n color = 'primary',\n orientation = 'horizontal',\n disabled = false,\n marks = false,\n step = 1,\n min = 0,\n max = 100,\n valueLabelDisplay = 'off',\n track = 'normal',\n disableSwap = false,\n value,\n defaultValue,\n onChange,\n onChangeCommitted,\n valueLabelFormat,\n scale,\n getAriaValueText,\n name,\n id,\n component,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiSlider\n ref={ref}\n size={size}\n color={color}\n orientation={orientation}\n disabled={disabled}\n marks={marks}\n step={step}\n min={min}\n max={max}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n onChangeCommitted={onChangeCommitted}\n valueLabelDisplay={valueLabelDisplay}\n valueLabelFormat={valueLabelFormat}\n track={track}\n disableSwap={disableSwap}\n scale={scale}\n getAriaValueText={getAriaValueText}\n name={name}\n id={id}\n {...(component && { component })}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nSlider.displayName = 'Slider';\n","/**\n * Switch Component\n *\n * Switch component for the MRS Design System.\n * Wraps Material-UI Switch with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6564-39128&m=dev\n * @see {@link https://mui.com/material-ui/react-switch/}\n */\n\nimport React from 'react';\nimport MuiSwitch from '@mui/material/Switch';\nimport type { SwitchProps } from './Switch.types';\n\n/**\n * Switch component\n *\n * Switches toggle the state of a single setting on or off.\n *\n * @param props - Switch component props\n * @returns Switch component\n */\n// MUI Switch internally renders button element for accessibility\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n checked,\n color = 'primary',\n size = 'medium',\n disabled = false,\n disableRipple = false,\n id,\n inputProps,\n inputRef,\n onChange,\n required = false,\n value,\n sx,\n edge,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiSwitch\n ref={ref}\n checked={checked}\n color={color}\n size={size}\n disabled={disabled}\n disableRipple={disableRipple}\n id={id}\n inputProps={inputProps}\n inputRef={inputRef}\n onChange={onChange}\n required={required}\n value={value}\n sx={sx}\n edge={edge}\n {...restProps}\n />\n );\n }\n);\n\nSwitch.displayName = 'Switch';\n\nexport default Switch;\n","/**\n * TextField Component\n *\n * Text input component for the MRS Design System.\n * Wraps Material-UI TextField with custom theme tokens.\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=6570-48313&m=dev\n * @see {@link https://mui.com/material-ui/react-text-field/}\n */\n\nimport React from 'react';\nimport MuiTextField from '@mui/material/TextField';\nimport type { Theme } from '@mui/material/styles';\nimport type { TextFieldProps } from './TextField.types';\n\n/**\n * TextField component\n *\n * Text fields let users enter and edit text.\n * Supports multiple variants (outlined, filled, standard),\n * sizes (small, medium), and states (error, disabled, etc.).\n *\n * @param props - TextField component props\n * @returns TextField component\n *\n * @example\n * ```tsx\n * // Basic usage\n * <TextField label=\"Email\" placeholder=\"Enter your email\" />\n *\n * // With helper text and error\n * <TextField\n * label=\"Password\"\n * type=\"password\"\n * error\n * helperText=\"Password is required\"\n * />\n *\n * // Multiline\n * <TextField\n * label=\"Description\"\n * multiline\n * rows={4}\n * placeholder=\"Enter description\"\n * />\n * ```\n */\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\n (\n { variant = 'outlined', color = 'primary', size = 'medium', fullWidth = false, sx, ...props },\n ref\n ) => {\n return (\n <MuiTextField\n ref={ref}\n variant={variant}\n color={color}\n size={size}\n fullWidth={fullWidth}\n sx={{\n // Custom styling can be added here if needed\n // Font family is inherited from theme\n '& .MuiInputBase-root': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n },\n '& .MuiInputLabel-root': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontWeight: (theme: Theme) => theme.typography.fontWeightRegular,\n },\n '& .MuiFormHelperText-root': {\n fontFamily: (theme: Theme) => theme.typography.fontFamily,\n fontSize: (theme: Theme) => theme.typography.caption.fontSize,\n },\n // Outlined variant specific styles\n ...(variant === 'outlined' && {\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: (theme: Theme) =>\n theme.palette._components?.input?.outlined?.enabledBorder ||\n theme.palette.divider,\n },\n '&:hover fieldset': {\n borderColor: (theme: Theme) => theme.palette.text.primary,\n },\n '&.Mui-focused fieldset': {\n borderWidth: 2,\n },\n },\n }),\n // Filled variant specific styles\n ...(variant === 'filled' && {\n '& .MuiFilledInput-root': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n '&:hover': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.09)',\n },\n '&.Mui-focused': {\n backgroundColor: (theme: Theme) =>\n theme.palette._components?.input?.filled?.enabledFill || 'rgba(0, 0, 0, 0.06)',\n },\n },\n }),\n // Standard variant specific styles\n ...(variant === 'standard' && {\n '& .MuiInput-root': {\n '&:before': {\n borderBottomColor: (theme: Theme) =>\n theme.palette._components?.input?.standard?.enabledBorder ||\n theme.palette.divider,\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottomColor: (theme: Theme) => theme.palette.text.primary,\n },\n },\n }),\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nTextField.displayName = 'TextField';\n\nexport default TextField;\n","/**\n * Toolbar Component\n *\n * A container component that provides layout for AppBar content.\n * Wraps Material-UI Toolbar with MRS Design System theming.\n *\n * @example\n * ```tsx\n * import { AppBar, Toolbar, Typography, IconButton } from '@atipicus/mrs-ui';\n * import MenuIcon from '@mui/icons-material/Menu';\n *\n * function MyToolbar() {\n * return (\n * <AppBar>\n * <Toolbar>\n * <IconButton edge=\"start\" color=\"inherit\">\n * <MenuIcon />\n * </IconButton>\n * <Typography variant=\"h6\">\n * My App\n * </Typography>\n * </Toolbar>\n * </AppBar>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/api/toolbar/}\n */\n\nimport React from 'react';\nimport MuiToolbar from '@mui/material/Toolbar';\nimport type { ToolbarProps } from './Toolbar.types';\n\n/**\n * Toolbar component\n *\n * Container for AppBar content with flex layout and vertical centering.\n * Provides regular (56px) and dense (48px) height variants.\n *\n * @param props - Toolbar component props\n * @returns Toolbar component\n */\nexport const Toolbar = React.forwardRef<HTMLDivElement, ToolbarProps>(\n ({ children, variant = 'regular', disableGutters = false, sx, ...props }, ref) => {\n return (\n <MuiToolbar ref={ref} variant={variant} disableGutters={disableGutters} sx={sx} {...props}>\n {children}\n </MuiToolbar>\n );\n }\n);\n\nToolbar.displayName = 'Toolbar';\n\nexport default Toolbar;\n","/**\n * Tooltip Component\n *\n * Tooltip component for the MRS Design System.\n * Wraps Material-UI Tooltip with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6590:48770\n * @see {@link https://mui.com/material-ui/react-tooltip/}\n */\n\nimport React from 'react';\nimport MuiTooltip from '@mui/material/Tooltip';\nimport { styled } from '@mui/material/styles';\nimport type { TooltipProps } from './Tooltip.types';\n\nimport * as tokens from '../../../tokens/generated/ts/tokens';\n\n/**\n * Styled Tooltip with custom theme tokens\n */\nconst StyledTooltip = styled(\n React.forwardRef<HTMLDivElement, TooltipProps>(({ className, ...props }, ref) => (\n <MuiTooltip ref={ref} {...props} classes={{ popper: className }} />\n ))\n)(({ theme }) => {\n const mode = theme.palette.mode;\n const tooltipBackground =\n mode === 'light'\n ? tokens.ComponentTooltipLightBackground\n : tokens.ComponentTooltipDarkBackground;\n const tooltipForeground =\n mode === 'light'\n ? tokens.ComponentTooltipLightForeground\n : tokens.ComponentTooltipDarkForeground;\n const tooltipBorderRadius =\n mode === 'light'\n ? tokens.ComponentTooltipLightBorderRadius\n : tokens.ComponentTooltipDarkBorderRadius;\n\n return {\n '& .MuiTooltip-tooltip': {\n backgroundColor: tooltipBackground,\n color: tooltipForeground,\n fontSize: tokens.PrimitivesTypographyFontSizeXs,\n fontWeight: theme.typography.fontWeightMedium,\n lineHeight: '14px',\n padding: `${tokens.PrimitivesSpacing05} ${tokens.PrimitivesSpacing1}`,\n borderRadius: tooltipBorderRadius,\n fontFamily: theme.typography.fontFamily,\n },\n '& .MuiTooltip-arrow': {\n color: tooltipBackground,\n },\n };\n});\n\nStyledTooltip.displayName = 'StyledTooltip';\n\n/**\n * Tooltip component\n *\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n *\n * @param props - Tooltip component props\n * @returns Tooltip component\n */\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(\n ({ children, arrow = true, placement = 'bottom', ...props }, ref) => {\n return (\n <StyledTooltip ref={ref} arrow={arrow} placement={placement} {...props}>\n {children}\n </StyledTooltip>\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n","/**\n * Accordion Component\n *\n * Accordion component for the MRS Design System.\n * Wraps Material-UI Accordion with custom theme tokens.\n *\n * Accordions contain creation flows and allow lightweight editing of an element.\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=10025-115758&m=dev\n * @see {@link https://v6.mui.com/material-ui/react-accordion/}\n */\n\nimport React from 'react';\nimport MuiAccordion from '@mui/material/Accordion';\nimport type { AccordionProps } from './Accordion.types';\n\n/**\n * Accordion component\n *\n * Accordions are commonly used for FAQ sections, settings panels, or anywhere\n * you need to progressively disclose information.\n *\n * @param props - Accordion component props\n * @returns Accordion component\n */\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n children,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded,\n onChange,\n square = false,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiAccordion\n ref={ref}\n defaultExpanded={defaultExpanded}\n disabled={disabled}\n disableGutters={disableGutters}\n expanded={expanded}\n onChange={onChange}\n square={square}\n sx={{\n // Theme applies default styling\n // Custom overrides can be added here or via sx prop\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordion>\n );\n }\n);\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n","/**\n * AccordionSummary Component\n *\n * AccordionSummary component for the MRS Design System.\n * Wraps Material-UI AccordionSummary - provides the header/clickable area for Accordion.\n *\n * @see {@link https://v6.mui.com/material-ui/api/accordion-summary/}\n */\n\nimport React from 'react';\nimport MuiAccordionSummary from '@mui/material/AccordionSummary';\nimport type { AccordionSummaryProps } from './Accordion.types';\n\n/**\n * AccordionSummary component\n *\n * The summary acts as the header for the accordion and controls the expand/collapse behavior.\n * It typically contains a title and an expand icon.\n *\n * @param props - AccordionSummary component props\n * @returns AccordionSummary component\n */\nexport const AccordionSummary = React.forwardRef<HTMLDivElement, AccordionSummaryProps>(\n ({ children, expandIcon, focusVisibleClassName, sx, ...props }, ref) => {\n return (\n <MuiAccordionSummary\n ref={ref}\n expandIcon={expandIcon}\n focusVisibleClassName={focusVisibleClassName}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordionSummary>\n );\n }\n);\n\nAccordionSummary.displayName = 'AccordionSummary';\n\nexport default AccordionSummary;\n","/**\n * AccordionDetails Component\n *\n * AccordionDetails component for the MRS Design System.\n * Wraps Material-UI AccordionDetails - provides the content area that expands/collapses.\n *\n * @see {@link https://v6.mui.com/material-ui/api/accordion-details/}\n */\n\nimport React from 'react';\nimport MuiAccordionDetails from '@mui/material/AccordionDetails';\nimport type { AccordionDetailsProps } from './Accordion.types';\n\n/**\n * AccordionDetails component\n *\n * Contains the content that is revealed when the accordion is expanded.\n * This component is wrapped in a Collapse transition.\n *\n * @param props - AccordionDetails component props\n * @returns AccordionDetails component\n */\nexport const AccordionDetails = React.forwardRef<HTMLDivElement, AccordionDetailsProps>(\n ({ children, sx, ...props }, ref) => {\n return (\n <MuiAccordionDetails\n ref={ref}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordionDetails>\n );\n }\n);\n\nAccordionDetails.displayName = 'AccordionDetails';\n\nexport default AccordionDetails;\n","/**\n * AccordionActions Component\n *\n * AccordionActions component for the MRS Design System.\n * Wraps Material-UI AccordionActions - provides an action area for accordion buttons.\n *\n * @see {@link https://v6.mui.com/material-ui/api/accordion-actions/}\n */\n\nimport React from 'react';\nimport MuiAccordionActions from '@mui/material/AccordionActions';\nimport type { AccordionActionsProps } from './Accordion.types';\n\n/**\n * AccordionActions component\n *\n * Provides an area for action buttons within an accordion.\n * Typically placed at the bottom of AccordionDetails.\n *\n * @param props - AccordionActions component props\n * @returns AccordionActions component\n */\nexport const AccordionActions = React.forwardRef<HTMLDivElement, AccordionActionsProps>(\n ({ children, disableSpacing = false, sx, ...props }, ref) => {\n return (\n <MuiAccordionActions\n ref={ref}\n disableSpacing={disableSpacing}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAccordionActions>\n );\n }\n);\n\nAccordionActions.displayName = 'AccordionActions';\n\nexport default AccordionActions;\n","/**\n * Alert Component\n *\n * Implements the MRS Alert using design tokens from the theme.\n * Supports severity (error, warning, info, success) and variants (filled, outlined, standard),\n * optional title/description, optional leading icon, custom action, and close button.\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=6595-48211\n * @see https://mui.com/material-ui/react-alert/\n */\n\n/// <reference path=\"../../../types/theme.d.ts\" />\n\nimport React from 'react';\nimport MuiAlert from '@mui/material/Alert';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { useTheme } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { AlertProps, AlertSeverity, AlertVariant } from './Alert.types';\n\ntype AlertColorTokens = {\n background: string;\n foreground: string;\n border?: string;\n};\n\n/**\n * Material Symbols icon names for each severity level\n * Icons use the same name for filled/outlined variants - fill prop controls appearance\n */\nconst severityIcons: Record<AlertSeverity, string> = {\n error: 'error',\n warning: 'error', // Material Symbols uses 'error' for warnings too\n info: 'info',\n success: 'check_circle',\n};\n\n/**\n * Returns token-based colors for a given severity and variant.\n */\nfunction useAlertColors(severity: AlertSeverity, variant: AlertVariant): AlertColorTokens {\n const theme = useTheme();\n const tokens = theme.palette._components.alert[severity][variant];\n return tokens;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n severity = 'error',\n variant = 'filled',\n title,\n description,\n icon = true,\n close = false,\n onClose,\n action,\n sx,\n children,\n ...props\n },\n ref\n ) => {\n const theme = useTheme();\n const tokenColors = useAlertColors(severity, variant);\n\n // Use 16px for consistent border radius\n // Note: theme.shape has custom tokens - sm(4), md(8), lg(12), xl(24), rounded(9999)\n // IMPORTANT: Must use string with 'px' suffix - numbers are multiplied by spacing (8*8=64px)\n const shapeWithTokens = theme.shape as {\n borderRadius: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n rounded: number;\n };\n const alertBorderRadius = '16px'; // explicit units prevent spacing multiplication\n\n // Debug: Log border radius in development\n // eslint-disable-next-line no-undef\n if (process.env.NODE_ENV === 'development') {\n console.log('[Alert] Using border radius:', alertBorderRadius, '(theme.shape.lg)');\n console.log('[Alert] Available shape tokens (raw values):', {\n sm: shapeWithTokens.sm,\n md: shapeWithTokens.md,\n lg: shapeWithTokens.lg,\n xl: shapeWithTokens.xl,\n rounded: shapeWithTokens.rounded,\n });\n console.log(\n '[Alert] Note: Values converted to px strings to prevent MUI spacing multiplication'\n );\n }\n\n // Determine icon name and fill based on severity and variant\n const iconName = severityIcons[severity];\n const iconFill = variant === 'filled' ? 1 : 0;\n\n const startIcon =\n icon === false\n ? false\n : React.isValidElement(icon)\n ? icon\n : iconName && (\n <MaterialSymbol\n icon={iconName}\n fill={iconFill}\n size=\"medium\"\n color={tokenColors.foreground}\n />\n );\n\n const closeButton = close && (\n <IconButton\n size=\"medium\"\n aria-label=\"close\"\n onClick={onClose}\n sx={{ color: tokenColors.foreground }}\n >\n <MaterialSymbol icon=\"close\" size=\"medium\" color={tokenColors.foreground} />\n </IconButton>\n );\n\n const actionContent = action ? (\n closeButton ? (\n <Stack direction=\"row\" spacing={1} alignItems=\"center\">\n {action}\n {closeButton}\n </Stack>\n ) : (\n action\n )\n ) : (\n closeButton || undefined\n );\n\n return (\n <MuiAlert\n ref={ref}\n severity={severity}\n variant=\"standard\"\n icon={startIcon}\n action={actionContent}\n sx={{\n borderRadius: alertBorderRadius,\n backgroundColor: tokenColors.background,\n color: tokenColors.foreground,\n alignItems: 'top',\n py: 1.2,\n px: 2,\n ...(variant === 'outlined' && {\n border: `1px solid ${tokenColors.border}`,\n }),\n '& .MuiAlert-icon': {\n color: tokenColors.foreground,\n padding: 0.25,\n marginRight: theme.spacing(1),\n mt: 0.25,\n },\n '& .MuiAlert-message': {\n padding: 1,\n width: '100%',\n },\n '& .MuiAlert-action': {\n padding: 0,\n marginLeft: theme.spacing(2),\n alignItems: 'top',\n },\n ...sx,\n }}\n {...props}\n >\n <Stack spacing={0.25}>\n {title && (\n <Typography\n variant=\"h5\"\n fontWeight={theme.typography.fontWeightMedium}\n lineHeight={1.2}\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography variant=\"body1\" lineHeight={1.5}>\n {description}\n </Typography>\n )}\n {children}\n </Stack>\n </MuiAlert>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\nexport default Alert;\n","/**\n * AppBar Component\n *\n * Top navigation bar component for the MRS Design System.\n * Wraps Material-UI AppBar with MRS theme tokens.\n *\n * @example\n * ```tsx\n * import { AppBar, Toolbar, IconButton, Typography, Button } from '@atipicus/mrs-ui';\n * import MenuIcon from '@mui/icons-material/Menu';\n *\n * function MyAppBar() {\n * return (\n * <AppBar position=\"fixed\" color=\"primary\">\n * <Toolbar>\n * <IconButton edge=\"start\" color=\"inherit\" aria-label=\"menu\">\n * <MenuIcon />\n * </IconButton>\n * <Typography variant=\"h6\" component=\"div\" sx={{ flexGrow: 1 }}>\n * MRS Design System\n * </Typography>\n * <Button color=\"inherit\">Login</Button>\n * </Toolbar>\n * </AppBar>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/api/app-bar/}\n * @see {@link https://mui.com/material-ui/react-app-bar/}\n */\n\nimport React from 'react';\nimport MuiAppBar from '@mui/material/AppBar';\nimport { useTheme } from '@mui/material/styles';\nimport type { AppBarProps } from './AppBar.types';\n\n/**\n * AppBar component\n *\n * Primary navigation component that appears at the top of the application.\n * Supports multiple colors from the MRS palette, positioning options, and elevation levels.\n *\n * Features:\n * - MRS design tokens (Nunito font, MRS color palette)\n * - Multiple positioning options (fixed, static, sticky, absolute, relative)\n * - Elevation control (shadow depth 0-24)\n * - Light and dark mode support\n * - Responsive design ready\n *\n * @param props - AppBar component props\n * @returns AppBar component\n */\nexport const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n children,\n color = 'default',\n position = 'fixed',\n elevation = 4,\n enableColorOnDark = false,\n sx,\n ...props\n },\n ref\n ) => {\n const theme = useTheme();\n\n return (\n <MuiAppBar\n ref={ref}\n color={color}\n position={position}\n elevation={elevation}\n enableColorOnDark={enableColorOnDark}\n sx={{\n // Ensure Nunito font is applied\n fontFamily: theme.typography.fontFamily,\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiAppBar>\n );\n }\n);\n\nAppBar.displayName = 'AppBar';\n\nexport default AppBar;\n","/**\n * Autocomplete Component\n *\n * Autocomplete component for the MRS Design System.\n * Wraps Material-UI Autocomplete with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6570:49856\n * @see {@link https://mui.com/material-ui/react-autocomplete/}\n */\n\nimport React from 'react';\nimport MuiAutocomplete from '@mui/material/Autocomplete';\nimport TextField from '@mui/material/TextField';\nimport type { AutocompleteProps } from './Autocomplete.types';\nimport { Chip } from '../../atoms/Chip';\n\n/**\n * Autocomplete component\n *\n * The autocomplete is a normal text input enhanced by a panel of suggested options.\n * Supports both single and multiple selection modes.\n *\n * @param props - Autocomplete component props\n * @returns Autocomplete component\n */\nexport const Autocomplete = <\n T,\n Multiple extends boolean | undefined = undefined,\n DisableClearable extends boolean | undefined = undefined,\n FreeSolo extends boolean | undefined = undefined,\n>(\n props: AutocompleteProps<T, Multiple, DisableClearable, FreeSolo>\n): React.ReactElement => {\n const {\n options,\n label,\n placeholder = 'Select option',\n error = false,\n helperText,\n required = false,\n disabled = false,\n readOnly = false,\n size = 'medium',\n multiple = false as Multiple,\n disableClearable = false as DisableClearable,\n freeSolo = false as FreeSolo,\n fullWidth = false,\n sx,\n ...restProps\n } = props;\n\n return (\n <MuiAutocomplete\n {...(restProps as any)}\n options={options}\n multiple={multiple}\n disableClearable={disableClearable}\n freeSolo={freeSolo}\n disabled={disabled}\n readOnly={readOnly}\n fullWidth={fullWidth}\n size={size}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n placeholder={placeholder}\n error={error}\n helperText={helperText}\n required={required}\n variant=\"outlined\"\n />\n )}\n renderTags={(value: T[], getTagProps) =>\n value.map((option: T, index: number) => {\n const { key, ...tagProps } = getTagProps({ index });\n return <Chip key={key} label={String(option)} size=\"small\" {...tagProps} />;\n })\n }\n sx={{\n ...sx,\n }}\n />\n );\n};\n\nAutocomplete.displayName = 'Autocomplete';\n","/**\n * BottomNavigation Component\n *\n * BottomNavigation component for the MRS Design System.\n * Wraps Material-UI BottomNavigation with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-bottom-navigation/}\n */\n\nimport React from 'react';\nimport MuiBottomNavigation from '@mui/material/BottomNavigation';\nimport type { BottomNavigationProps } from './BottomNavigation.types';\n\n/**\n * BottomNavigation component\n *\n * Bottom navigation bars allow movement between primary destinations in an app.\n *\n * @param props - BottomNavigation component props\n * @returns BottomNavigation component\n */\nexport const BottomNavigation = React.forwardRef<HTMLDivElement, BottomNavigationProps>(\n (props, ref) => {\n return <MuiBottomNavigation ref={ref} {...props} />;\n }\n);\n\nBottomNavigation.displayName = 'BottomNavigation';\n","/**\n * BottomNavigationAction Component\n */\n\nimport React from 'react';\nimport MuiBottomNavigationAction from '@mui/material/BottomNavigationAction';\nimport type { BottomNavigationActionProps } from './BottomNavigation.types';\n\nexport const BottomNavigationAction = React.forwardRef<\n HTMLButtonElement,\n BottomNavigationActionProps\n>((props, ref) => {\n return <MuiBottomNavigationAction ref={ref} {...props} />;\n});\n\nBottomNavigationAction.displayName = 'BottomNavigationAction';\n","/**\n * ButtonGroup Component\n *\n * ButtonGroup component for the MRS Design System.\n * Wraps Material-UI ButtonGroup with custom theme tokens.\n *\n * @figma https://figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6543:39843\n * @see {@link https://mui.com/material-ui/react-button-group/}\n */\n\nimport React from 'react';\nimport MuiButtonGroup from '@mui/material/ButtonGroup';\nimport type { ButtonGroupProps } from './ButtonGroup.types';\n\n/**\n * ButtonGroup component\n *\n * The ButtonGroup component can be used to group related buttons.\n *\n * @param props - ButtonGroup component props\n * @returns ButtonGroup component\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n children,\n variant = 'contained',\n color = 'primary',\n orientation = 'horizontal',\n size = 'medium',\n disabled = false,\n disableElevation = true,\n disableRipple = false,\n fullWidth = false,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiButtonGroup\n ref={ref}\n variant={variant}\n color={color}\n orientation={orientation}\n size={size}\n disabled={disabled}\n disableElevation={disableElevation}\n disableRipple={disableRipple}\n fullWidth={fullWidth}\n sx={{\n ...sx,\n }}\n {...restProps}\n >\n {children}\n </MuiButtonGroup>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n","/**\n * Card Component\n *\n * Card component for the MRS Design System.\n * Wraps Material-UI Card which is built on Paper with elevation and rounded corners.\n *\n * According to Figma specs:\n * - Uses Paper component as base (with elevation=1 by default)\n * - Uses shape.borderRadius token (from theme)\n * - Supports responsive width (600px default, 444px on small screens)\n *\n * @figma https://www.figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=11479-243797&m=dev\n * @see {@link https://v6.mui.com/material-ui/api/card/}\n */\n\nimport React from 'react';\nimport MuiCard from '@mui/material/Card';\nimport type { CardProps } from './Card.types';\n\n/**\n * Card component\n *\n * Cards contain content and actions about a single subject.\n * They should be easy to scan for relevant and actionable information.\n * Elements, like text and images, should be placed on them in a way that clearly indicates hierarchy.\n *\n * @param props - Card component props\n * @returns Card component\n */\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n (\n {\n children,\n variant = 'elevation',\n elevation = 1,\n square = false,\n raised = false,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiCard\n ref={ref}\n variant={variant}\n elevation={variant === 'elevation' ? (raised ? 8 : elevation) : 0}\n square={square}\n sx={{\n // Theme will apply borderRadius from shape.borderRadius token\n // No need to override unless square=true\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCard>\n );\n }\n);\n\nCard.displayName = 'Card';\n\nexport default Card;\n","/**\n * CardActionArea Component\n *\n * CardActionArea component for the MRS Design System.\n * Wraps Material-UI CardActionArea - provides an actionable area within a Card.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-action-area/}\n */\n\nimport React from 'react';\nimport MuiCardActionArea from '@mui/material/CardActionArea';\nimport type { CardActionAreaProps } from './Card.types';\n\n/**\n * CardActionArea component\n *\n * Provides an actionable area within a Card. It's typically used to wrap\n * the main content of a Card to make the entire Card clickable.\n *\n * @param props - CardActionArea component props\n * @returns CardActionArea component\n */\nexport const CardActionArea = React.forwardRef<HTMLButtonElement, CardActionAreaProps>(\n ({ children, disabled = false, sx, ...props }, ref) => {\n return (\n <MuiCardActionArea\n ref={ref}\n disabled={disabled}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCardActionArea>\n );\n }\n);\n\nCardActionArea.displayName = 'CardActionArea';\n\nexport default CardActionArea;\n","/**\n * CardActions Component\n *\n * CardActions component for the MRS Design System.\n * Wraps Material-UI CardActions - provides an action area for Card buttons/actions.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-actions/}\n */\n\nimport React from 'react';\nimport MuiCardActions from '@mui/material/CardActions';\nimport type { CardActionsProps } from './Card.types';\n\n/**\n * CardActions component\n *\n * Provides an area for action buttons or other interactive elements within a Card.\n * Typically placed at the bottom of a Card.\n *\n * @param props - CardActions component props\n * @returns CardActions component\n */\nexport const CardActions = React.forwardRef<HTMLDivElement, CardActionsProps>(\n ({ children, disableSpacing = false, sx, ...props }, ref) => {\n return (\n <MuiCardActions\n ref={ref}\n disableSpacing={disableSpacing}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCardActions>\n );\n }\n);\n\nCardActions.displayName = 'CardActions';\n\nexport default CardActions;\n","/**\n * CardContent Component\n *\n * CardContent component for the MRS Design System.\n * Wraps Material-UI CardContent - provides the main content area for a Card.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-content/}\n */\n\nimport React from 'react';\nimport MuiCardContent from '@mui/material/CardContent';\nimport type { CardContentProps } from './Card.types';\n\n/**\n * CardContent component\n *\n * Provides the main content area within a Card. Adds padding and spacing\n * according to Material Design specifications.\n *\n * @param props - CardContent component props\n * @returns CardContent component\n */\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ children, component = 'div', sx, ...props }, ref) => {\n return (\n <MuiCardContent\n ref={ref}\n component={component}\n sx={{\n ...sx,\n }}\n {...props}\n >\n {children}\n </MuiCardContent>\n );\n }\n);\n\nCardContent.displayName = 'CardContent';\n\nexport default CardContent;\n","/**\n * CardHeader Component\n *\n * CardHeader component for the MRS Design System.\n * Wraps Material-UI CardHeader - provides a header area for a Card with avatar, title, subheader, and action.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-header/}\n */\n\nimport React from 'react';\nimport MuiCardHeader from '@mui/material/CardHeader';\nimport type { CardHeaderProps } from './Card.types';\n\n/**\n * CardHeader component\n *\n * Provides a header area within a Card. Supports an optional avatar,\n * title, subheader, and action elements.\n *\n * @param props - CardHeader component props\n * @returns CardHeader component\n */\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n (\n {\n action,\n avatar,\n component = 'div',\n disableTypography = false,\n subheader,\n subheaderTypographyProps,\n title,\n titleTypographyProps,\n sx,\n ...props\n },\n ref\n ) => {\n return (\n <MuiCardHeader\n ref={ref}\n action={action}\n avatar={avatar}\n component={component}\n disableTypography={disableTypography}\n subheader={subheader}\n subheaderTypographyProps={subheaderTypographyProps}\n title={title}\n titleTypographyProps={titleTypographyProps}\n sx={{\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nCardHeader.displayName = 'CardHeader';\n\nexport default CardHeader;\n","/**\n * CardMedia Component\n *\n * CardMedia component for the MRS Design System.\n * Wraps Material-UI CardMedia - displays media (images, video, etc.) within a Card.\n *\n * @see {@link https://v6.mui.com/material-ui/api/card-media/}\n */\n\nimport React from 'react';\nimport MuiCardMedia from '@mui/material/CardMedia';\nimport type { CardMediaProps } from './Card.types';\n\n/**\n * CardMedia component\n *\n * Displays media content within a Card. Can be used for images, videos,\n * or other media types. Supports both background images and direct media elements.\n *\n * @param props - CardMedia component props\n * @returns CardMedia component\n */\nexport const CardMedia = React.forwardRef<HTMLDivElement, CardMediaProps>(\n ({ component = 'div', image, src, sx, ...props }, ref) => {\n return (\n <MuiCardMedia\n ref={ref}\n component={component}\n image={image}\n src={src}\n sx={{\n ...sx,\n }}\n {...props}\n />\n );\n }\n);\n\nCardMedia.displayName = 'CardMedia';\n\nexport default CardMedia;\n","/**\n * ExpandableNavItem Component\n *\n * Collapsible navigation item component for the MRS Design System.\n * Supports nested child items with expand/collapse functionality.\n *\n * @example\n * ```tsx\n * import { ExpandableNavItem } from '@atipicus/mrs-ui';\n * import InboxIcon from '@mui/icons-material/Inbox';\n *\n * function MyNav() {\n * const [open, setOpen] = React.useState(false);\n *\n * return (\n * <List>\n * <ExpandableNavItem\n * label=\"Products\"\n * icon={<InboxIcon />}\n * isOpen={open}\n * onToggle={() => setOpen(!open)}\n * children={[\n * { label: 'All Products', onClick: () => console.log('All') },\n * { label: 'Categories', onClick: () => console.log('Categories') }\n * ]}\n * />\n * </List>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/api/list-item-button/}\n * @see {@link https://mui.com/material-ui/api/collapse/}\n */\n\nimport React from 'react';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Collapse from '@mui/material/Collapse';\nimport List from '@mui/material/List';\nimport { useTheme } from '@mui/material/styles';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { ExpandableNavItemProps, NavItem } from './ExpandableNavItem.types';\n\n/**\n * ExpandableNavItem component\n *\n * Collapsible navigation item with support for nested child items.\n * Features expand/collapse animation and selected state support.\n *\n * Features:\n * - Expandable/collapsible with smooth animation\n * - Supports nested child items\n * - Icon support for parent and child items\n * - Selected/active state highlighting\n * - MRS design tokens (Nunito font, MRS colors)\n * - Full accessibility support (ARIA attributes)\n *\n * @param props - ExpandableNavItem component props\n * @returns ExpandableNavItem component\n */\nexport const ExpandableNavItem = React.forwardRef<HTMLDivElement, ExpandableNavItemProps>(\n (\n {\n label,\n icon,\n isOpen = false,\n onToggle,\n children = [],\n selected = false,\n onClick,\n ListItemButtonProps,\n childListItemButtonProps,\n },\n ref\n ) => {\n const theme = useTheme();\n\n const handleParentClick = () => {\n if (onToggle) {\n onToggle();\n }\n if (onClick) {\n onClick();\n }\n };\n\n return (\n <div ref={ref}>\n {/* Parent Item */}\n <ListItemButton\n selected={selected}\n onClick={handleParentClick}\n sx={{\n fontFamily: theme.typography.fontFamily,\n ...ListItemButtonProps?.sx,\n }}\n {...ListItemButtonProps}\n >\n {icon && <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>}\n <ListItemText\n primary={label}\n primaryTypographyProps={{\n fontFamily: theme.typography.fontFamily,\n fontWeight: selected ? 600 : 400,\n }}\n />\n {children.length > 0 && (\n <MaterialSymbol icon={isOpen ? 'expand_less' : 'expand_more'} size=\"medium\" />\n )}\n </ListItemButton>\n\n {/* Collapsible Child Items */}\n {children.length > 0 && (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding>\n {children.map((child: NavItem, index: number) => (\n <ListItemButton\n key={index}\n selected={child.selected}\n onClick={child.onClick}\n sx={{\n pl: icon ? 9 : 4,\n fontFamily: theme.typography.fontFamily,\n ...childListItemButtonProps?.sx,\n }}\n {...childListItemButtonProps}\n >\n {child.icon && <ListItemIcon sx={{ minWidth: 40 }}>{child.icon}</ListItemIcon>}\n <ListItemText\n primary={child.label}\n primaryTypographyProps={{\n fontFamily: theme.typography.fontFamily,\n fontSize: '0.875rem',\n fontWeight: child.selected ? 600 : 400,\n }}\n />\n </ListItemButton>\n ))}\n </List>\n </Collapse>\n )}\n </div>\n );\n }\n);\n\nExpandableNavItem.displayName = 'ExpandableNavItem';\n\nexport type { ExpandableNavItemProps, NavItem };\nexport default ExpandableNavItem;\n","/**\n * DrawerNavigation Component\n *\n * Navigation component for Drawer with support for expandable items.\n * Built for the MRS Design System with Figma design specifications.\n *\n * @example\n * ```tsx\n * import { Drawer, DrawerNavigation } from '@atipicus/mrs-ui';\n * import HomeIcon from '@mui/icons-material/Home';\n * import InboxIcon from '@mui/icons-material/Inbox';\n * import SettingsIcon from '@mui/icons-material/Settings';\n *\n * function MyDrawer() {\n * const [open, setOpen] = React.useState(false);\n *\n * return (\n * <Drawer open={open} onClose={() => setOpen(false)}>\n * <DrawerNavigation\n * items={[\n * { label: 'Dashboard', icon: <HomeIcon />, path: '/' },\n * {\n * label: 'Products',\n * icon: <InboxIcon />,\n * expandable: true,\n * children: [\n * { label: 'All Products', path: '/products' },\n * { label: 'Categories', path: '/categories' }\n * ]\n * },\n * { label: 'Settings', icon: <SettingsIcon />, path: '/settings' }\n * ]}\n * />\n * </Drawer>\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/react-drawer/}\n */\n\nimport React, { useState } from 'react';\nimport Box from '@mui/material/Box';\nimport List from '@mui/material/List';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport Divider from '@mui/material/Divider';\nimport { useTheme } from '@mui/material/styles';\nimport { ExpandableNavItem } from '../ExpandableNavItem';\nimport type {\n DrawerNavigationProps,\n DrawerNavItem,\n ExpandableNavItem as ExpandableNavItemType,\n SimpleNavItem,\n} from './DrawerNavigation.types';\n\n/**\n * Type guard to check if an item is expandable\n */\nfunction isExpandableItem(item: DrawerNavItem): item is ExpandableNavItemType {\n return item.expandable === true;\n}\n\n/**\n * DrawerNavigation component\n *\n * Full-featured navigation component for use within Drawer.\n * Supports simple and expandable navigation items with icons.\n *\n * Features:\n * - Simple and expandable navigation items\n * - Icon support for all items\n * - Selected/active state highlighting\n * - Optional dividers between items\n * - Configurable width and padding (defaults from Figma)\n * - MRS design tokens (Nunito font, MRS colors)\n * - Full accessibility support\n *\n * @param props - DrawerNavigation component props\n * @returns DrawerNavigation component\n */\nexport const DrawerNavigation = React.forwardRef<HTMLDivElement, DrawerNavigationProps>(\n ({ items, width = 256, paddingTop = 32, paddingBottom = 32, sx, listSx, onItemClick }, ref) => {\n const theme = useTheme();\n\n // Track open state for expandable items\n const [openItems, setOpenItems] = useState<Record<string, boolean>>(() => {\n const initial: Record<string, boolean> = {};\n items.forEach((item, index) => {\n if (isExpandableItem(item)) {\n const key = item.id || `item-${index}`;\n initial[key] = item.defaultOpen || false;\n }\n });\n return initial;\n });\n\n const handleToggle = (itemId: string) => {\n setOpenItems((prev) => ({\n ...prev,\n [itemId]: !prev[itemId],\n }));\n };\n\n const handleItemClick = (item: DrawerNavItem) => {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item);\n }\n };\n\n return (\n <Box\n ref={ref}\n sx={{\n width,\n paddingTop: `${paddingTop}px`,\n paddingBottom: `${paddingBottom}px`,\n fontFamily: theme.typography.fontFamily,\n ...sx,\n }}\n >\n <List\n sx={{\n '& .MuiListItemButton-root': {\n fontFamily: theme.typography.fontFamily,\n },\n ...listSx,\n }}\n >\n {items.map((item, index) => {\n const itemId = item.id || `item-${index}`;\n const isLast = index === items.length - 1;\n\n if (isExpandableItem(item)) {\n return (\n <React.Fragment key={itemId}>\n <ExpandableNavItem\n label={item.label}\n icon={item.icon}\n isOpen={openItems[itemId]}\n onToggle={() => handleToggle(itemId)}\n selected={item.selected}\n onClick={() => handleItemClick(item)}\n children={item.children}\n />\n {(item.divider || (!isLast && items[index + 1]?.divider)) && (\n <Divider sx={{ my: 1 }} />\n )}\n </React.Fragment>\n );\n }\n\n // Simple nav item\n const simpleItem = item as SimpleNavItem;\n return (\n <React.Fragment key={itemId}>\n <ListItemButton\n selected={simpleItem.selected}\n onClick={() => handleItemClick(simpleItem)}\n sx={{\n fontFamily: theme.typography.fontFamily,\n }}\n >\n {simpleItem.icon && (\n <ListItemIcon sx={{ minWidth: 40 }}>{simpleItem.icon}</ListItemIcon>\n )}\n <ListItemText\n primary={simpleItem.label}\n primaryTypographyProps={{\n fontFamily: theme.typography.fontFamily,\n fontWeight: simpleItem.selected ? 600 : 400,\n }}\n />\n </ListItemButton>\n {(simpleItem.divider || (!isLast && items[index + 1]?.divider)) && (\n <Divider sx={{ my: 1 }} />\n )}\n </React.Fragment>\n );\n })}\n </List>\n </Box>\n );\n }\n);\n\nDrawerNavigation.displayName = 'DrawerNavigation';\n\nexport type { DrawerNavigationProps, DrawerNavItem };\nexport default DrawerNavigation;\n","/**\n * List Component\n *\n * List component for the MRS Design System.\n * Wraps Material-UI List with custom theme tokens.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=11566-157133&m=dev\n * @see {@link https://mui.com/material-ui/react-list/}\n */\n\nimport React from 'react';\nimport MuiList from '@mui/material/List';\nimport type { ListProps } from './List.types';\n\n/**\n * List component\n *\n * Lists are continuous, vertical indexes of text or images.\n * They are composed of items containing primary and supplemental actions.\n *\n * @param props - List component props\n * @returns List component\n */\nexport const List = React.forwardRef<HTMLUListElement, ListProps>(\n (\n {\n children,\n dense = false,\n disablePadding = false,\n subheader,\n component = 'ul',\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiList\n ref={ref}\n dense={dense}\n disablePadding={disablePadding}\n subheader={subheader}\n component={component}\n sx={sx}\n {...restProps}\n >\n {children}\n </MuiList>\n );\n }\n);\n\nList.displayName = 'List';\n","/**\n * ListItem Component\n *\n * ListItem component for the MRS Design System.\n * Wraps Material-UI ListItem and ListItemButton with custom theme tokens.\n *\n * Based on Figma design specifications with all variants and states.\n *\n * @figma https://www.figma.com/design/c4weC6RhdEd7c8B1GkCjTB/MRS---Material-UI-v.7.2.0?node-id=6591-48882&m=dev\n * @see {@link https://mui.com/material-ui/react-list/}\n */\n\nimport React from 'react';\nimport MuiListItem from '@mui/material/ListItem';\nimport MuiListItemButton from '@mui/material/ListItemButton';\nimport { alpha, useTheme } from '@mui/material/styles';\nimport type { ListItemProps } from './ListItem.types';\nimport { getThemeShape } from '../../../types/theme-helpers';\n\n/**\n * ListItem component\n *\n * ListItem is an interactive list item component by default.\n * When button prop is true (default), it wraps children with ListItemButton for interactivity.\n *\n * Key features:\n * - Interactive by default with hover, focus, and selected states\n * - Selected state uses SemiBold font and primary.dark color\n * - Dense mode for compact layouts\n * - Support for icons, secondary text, and actions\n *\n * @param props - ListItem component props\n * @returns ListItem component\n */\n// Use HTMLElement to remain compatible with polymorphic `component` prop.\nexport const ListItem = React.forwardRef<HTMLElement, ListItemProps>(\n (\n {\n children,\n button = true,\n dense = false,\n disableGutters = false,\n divider = false,\n disablePadding = false,\n secondaryAction,\n alignItems = 'center',\n selected = false,\n disabled = false,\n autoFocus = false,\n onClick,\n component,\n sx,\n ...restProps\n },\n ref\n ) => {\n const theme = useTheme();\n const shape = getThemeShape(theme);\n const hoverColor =\n theme.palette.primary._states?.hover ?? alpha(theme.palette.primary.main, 0.08);\n const focusColor =\n theme.palette.primary._states?.focus ?? alpha(theme.palette.primary.main, 0.12);\n const selectedColor =\n theme.palette.primary._states?.selected ?? alpha(theme.palette.primary.main, 0.12);\n\n // If button is true, use ListItemButton wrapper for interactivity\n if (button) {\n return (\n <MuiListItem\n ref={ref as React.Ref<HTMLLIElement>}\n dense={dense}\n disableGutters={disableGutters}\n divider={divider}\n disablePadding={disablePadding}\n secondaryAction={secondaryAction}\n {...(component && { component })}\n sx={sx}\n {...restProps}\n >\n <MuiListItemButton\n selected={selected}\n disabled={disabled}\n autoFocus={autoFocus}\n onClick={onClick}\n alignItems={alignItems}\n sx={{\n // Hover/press/focus styling aligned with tokens\n '&:hover': {\n backgroundColor: hoverColor,\n },\n '&:active': {\n backgroundColor: selectedColor,\n },\n '&.Mui-focusVisible': {\n outline: `3px solid ${focusColor}`,\n outlineOffset: 0,\n borderRadius: shape.sm, // Use type-safe helper (4px)\n },\n // Selected state: Apply SemiBold weight and primary.dark color to text\n '&.Mui-selected': {\n backgroundColor: selectedColor,\n '&:hover': {\n backgroundColor: hoverColor,\n },\n },\n ...(selected && {\n '& .MuiListItemText-primary': {\n fontFamily: theme.typography.subtitle1.fontFamily,\n fontWeight: theme.typography.subtitle1.fontWeight,\n color: theme.palette.primary.dark,\n },\n }),\n }}\n >\n {children}\n </MuiListItemButton>\n </MuiListItem>\n );\n }\n\n // Otherwise, use standard ListItem (static, non-interactive)\n return (\n <MuiListItem\n ref={ref as React.Ref<HTMLLIElement>}\n dense={dense}\n disableGutters={disableGutters}\n divider={divider}\n disablePadding={disablePadding}\n secondaryAction={secondaryAction}\n alignItems={alignItems}\n {...(component && { component })}\n sx={sx}\n {...restProps}\n >\n {children}\n </MuiListItem>\n );\n }\n);\n\nListItem.displayName = 'ListItem';\n","/**\n * Menu Component\n * @package @mrs/ui\n *\n * Displays a list of choices on temporary surfaces.\n * Menus appear when users interact with a button, action, or other control.\n *\n * @example\n * ```tsx\n * const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n *\n * <Button onClick={(e) => setAnchorEl(e.currentTarget)}>\n * Open Menu\n * </Button>\n * <Menu\n * open={Boolean(anchorEl)}\n * anchorEl={anchorEl}\n * onClose={() => setAnchorEl(null)}\n * >\n * <MenuItem onClick={() => setAnchorEl(null)}>Profile</MenuItem>\n * <MenuItem onClick={() => setAnchorEl(null)}>Settings</MenuItem>\n * </Menu>\n * ```\n */\n\nimport React from 'react';\nimport MuiMenu from '@mui/material/Menu';\nimport type { MenuProps } from './Menu.types';\n\nexport const Menu = React.forwardRef<HTMLDivElement, MenuProps>(\n (\n {\n open,\n anchorEl,\n onClose,\n children,\n anchorOrigin = { vertical: 'top', horizontal: 'left' },\n transformOrigin = { vertical: 'top', horizontal: 'left' },\n autoFocus = false,\n MenuListProps,\n variant = 'selectedMenu',\n ...props\n },\n ref\n ) => {\n return (\n <MuiMenu\n ref={ref}\n open={open}\n anchorEl={anchorEl}\n onClose={onClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n autoFocus={autoFocus}\n MenuListProps={MenuListProps}\n variant={variant}\n {...props}\n >\n {children}\n </MuiMenu>\n );\n }\n);\n\nMenu.displayName = 'Menu';\n\nexport default Menu;\n","/**\n * Pagination Component\n * @package @mrs/ui\n *\n * Enables navigation through paged content.\n * Pagination divides content into discrete pages with navigation controls.\n *\n * @example\n * ```tsx\n * const [page, setPage] = useState(1);\n *\n * <Pagination\n * count={10}\n * page={page}\n * onChange={(e, value) => setPage(value)}\n * />\n * ```\n */\n\nimport React from 'react';\nimport MuiPagination from '@mui/material/Pagination';\nimport type { PaginationProps } from './Pagination.types';\n\nexport const Pagination = React.forwardRef<HTMLElement, PaginationProps>(\n (\n {\n count,\n page = 1,\n onChange,\n variant = 'text',\n shape = 'circular',\n size = 'medium',\n color = 'standard',\n disabled = false,\n hideNextButton = false,\n hidePrevButton = false,\n showFirstButton = false,\n showLastButton = false,\n boundaryCount = 1,\n siblingCount = 1,\n ...props\n },\n ref\n ) => {\n return (\n <MuiPagination\n ref={ref}\n count={count}\n page={page}\n onChange={onChange}\n variant={variant}\n shape={shape}\n size={size}\n color={color}\n disabled={disabled}\n hideNextButton={hideNextButton}\n hidePrevButton={hidePrevButton}\n showFirstButton={showFirstButton}\n showLastButton={showLastButton}\n boundaryCount={boundaryCount}\n siblingCount={siblingCount}\n {...props}\n />\n );\n }\n);\n\nPagination.displayName = 'Pagination';\n\nexport default Pagination;\n","/**\n * Rating Component\n *\n * Rating component for the MRS Design System.\n * Wraps Material-UI Rating with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-rating/}\n */\n\nimport React from 'react';\nimport MuiRating from '@mui/material/Rating';\nimport type { RatingProps } from './Rating.types';\n\n/**\n * Rating component\n *\n * Ratings provide insight regarding others' opinions and experiences,\n * and can allow the user to submit a rating of their own.\n *\n * @param props - Rating component props\n * @returns Rating component\n */\nexport const Rating = React.forwardRef<HTMLSpanElement, RatingProps>(\n (\n {\n size = 'medium',\n max = 5,\n precision = 1,\n readOnly = false,\n disabled = false,\n highlightSelectedOnly = false,\n emptyIcon,\n icon,\n defaultValue,\n value,\n onChange,\n onChangeActive,\n name,\n id,\n sx,\n ...restProps\n },\n ref\n ) => {\n return (\n <MuiRating\n ref={ref}\n size={size}\n max={max}\n precision={precision}\n readOnly={readOnly}\n disabled={disabled}\n highlightSelectedOnly={highlightSelectedOnly}\n emptyIcon={emptyIcon}\n icon={icon}\n defaultValue={defaultValue}\n value={value}\n onChange={onChange}\n onChangeActive={onChangeActive}\n name={name}\n id={id}\n sx={sx}\n {...restProps}\n />\n );\n }\n);\n\nRating.displayName = 'Rating';\n","/**\n * Sidenav Component\n *\n * Side navigation component for the MRS Design System.\n * Supports two variants: 'default' (256px) with full labels and 'slim' (72px) with icons only.\n *\n * @figma https://figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=13099-16347\n *\n * @example\n * ```tsx\n * import { Sidenav } from '@atipicus/mrs-ui';\n *\n * function App() {\n * return (\n * <Sidenav\n * variant=\"default\"\n * items={[\n * { label: 'Inicio', icon: 'home', selected: true },\n * { label: 'Citas', icon: 'event' },\n * {\n * header: 'Mi salud',\n * items: [\n * { label: 'Órdenes', icon: 'order_approve' },\n * { label: 'Recetas', icon: 'medication' },\n * ]\n * }\n * ]}\n * actionButton={{\n * label: 'Agendar',\n * icon: 'add',\n * onClick: () => console.log('Add clicked')\n * }}\n * />\n * );\n * }\n * ```\n *\n * @see {@link https://mui.com/material-ui/react-drawer/}\n */\n\nimport React from 'react';\nimport Box from '@mui/material/Box';\nimport List from '@mui/material/List';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListSubheader from '@mui/material/ListSubheader';\nimport Paper from '@mui/material/Paper';\nimport Divider from '@mui/material/Divider';\nimport Tooltip from '@mui/material/Tooltip';\nimport { useTheme } from '@mui/material/styles';\nimport { Button } from '../../atoms/Button';\nimport { IconButton } from '../../atoms/IconButton';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { SidenavProps, SidenavItem, SidenavNavigationItem } from './Sidenav.types';\n// Note: Tokens are now accessed via useTheme() and theme overrides instead of direct import\n\n// MRS Logo SVG component\nconst MRSLogo = ({ variant = 'default' }: { variant?: 'default' | 'slim' }) => {\n if (variant === 'slim') {\n // Slim variant - only show the \"Mi\" icon part\n return (\n <Box\n component=\"svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n sx={{ display: 'block' }}\n >\n <path\n d=\"M4 10.5C4 9.6 4.7 8.9 5.6 8.9H6C6.7 8.9 7.2 9.3 7.5 9.8L11.4 16.1L15.3 9.8C15.6 9.2 16.1 8.9 16.7 8.9H17.1C18 8.9 18.7 9.6 18.7 10.5V22.1C18.7 23 18 23.7 17.1 23.7C16.2 23.7 15.5 23 15.5 22.1V14.8L12.7 19.2C12.4 19.7 11.9 20 11.4 20C10.8 20 10.4 19.7 10 19.2L7.2 14.9V22.2C7.2 23.1 6.5 23.7 5.6 23.7C4.7 23.7 4 23 4 22.2V10.5Z\"\n fill=\"#99CC00\"\n />\n <path\n d=\"M20.5 9.7C20.5 8.8 21.3 8.2 22.3 8.2C23.3 8.2 24.1 8.8 24.1 9.7V9.7C24.1 10.6 23.3 11.2 22.3 11.2C21.3 11.2 20.5 10.6 20.5 9.7V9.7ZM20.7 13.8C20.7 13 21.4 12.3 22.3 12.3C23.2 12.3 23.9 13 23.9 13.8V22.1C23.9 23 23.2 23.7 22.3 23.7C21.4 23.7 20.7 23 20.7 22.1V13.8Z\"\n fill=\"#99CC00\"\n />\n <circle cx=\"26\" cy=\"10\" r=\"3\" fill=\"#009999\" />\n </Box>\n );\n }\n\n // Default variant - full logo\n return (\n <Box\n component=\"svg\"\n width=\"140\"\n height=\"16\"\n viewBox=\"0 0 140 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n sx={{ display: 'block' }}\n >\n <path\n d=\"M99.3289 15.5655H107.522C108.077 15.5655 108.527 15.1155 108.527 14.5621C108.527 14.0072 108.076 13.558 107.522 13.558H100.445C100.383 13.558 100.331 13.5066 100.331 13.4449V1.70999C100.331 1.07776 99.816 0.563799 99.1822 0.563799C98.5476 0.563799 98.0337 1.07776 98.0337 1.70999V14.2728C98.0337 14.9868 98.6131 15.5655 99.3289 15.5655Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M116.242 15.8079C120.637 15.8079 122.913 12.8298 122.913 9.3659V1.70998C122.913 1.07626 122.399 0.56304 121.765 0.56304C121.13 0.56304 120.617 1.077 120.617 1.70998V9.18962C120.617 11.7706 119.224 13.6673 116.242 13.6673C113.303 13.6673 111.934 11.903 111.934 9.21119V1.70998C111.934 1.07626 111.42 0.56304 110.786 0.56304C110.151 0.56304 109.638 1.077 109.638 1.70998V9.3659C109.636 13.1161 111.889 15.8079 116.242 15.8079Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M126.704 15.6599H131.505C135.947 15.6599 139.26 12.9956 139.26 8.13342C139.26 3.22733 135.946 0.586098 131.505 0.56304H126.704C125.989 0.56304 125.408 1.14543 125.408 1.86394V14.3583C125.408 15.0775 125.989 15.6599 126.704 15.6599ZM127.821 2.5832H131.417C134.621 2.60477 136.897 4.53641 136.897 8.13268C136.897 11.6858 134.621 13.639 131.417 13.639H127.821C127.758 13.639 127.708 13.5877 127.708 13.5252V2.69774C127.708 2.63452 127.758 2.5832 127.821 2.5832Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M49.8801 0.56304H40.67C39.9543 0.56304 39.3748 1.14172 39.3748 1.85651V14.272C39.3748 14.9868 39.9543 15.5655 40.67 15.5655H49.8801C50.7411 15.5655 51.4367 14.8693 51.4367 14.0109V13.9001C51.4367 13.0403 50.7403 12.3441 49.8801 12.3441H43.0176C42.958 12.3441 42.9103 12.2965 42.9103 12.237V9.58383C42.9103 9.52433 42.958 9.47672 43.0176 9.47672H48.2676C49.1286 9.47672 49.8257 8.78053 49.8257 7.9207C49.8257 7.06235 49.1286 6.36467 48.2676 6.36467H43.0176C42.958 6.36467 42.9103 6.31707 42.9103 6.25756V3.89154C42.9103 3.83203 42.958 3.78443 43.0176 3.78443H49.8801C50.7411 3.78443 51.4367 3.08824 51.4367 2.22989V2.11832C51.4367 1.25924 50.7411 0.56304 49.8801 0.56304Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M59.9668 0.56304H54.5231C53.8073 0.56304 53.2279 1.14172 53.2279 1.85651V14.272C53.2279 14.9868 53.8073 15.5655 54.5231 15.5655H59.9668C64.4072 15.5655 67.7208 12.9183 67.7208 8.08582C67.7208 3.21022 64.4072 0.585354 59.9668 0.56304ZM59.8119 12.3441H57.0479C56.9876 12.3441 56.9392 12.295 56.9392 12.237V3.89154C56.9392 3.83129 56.9869 3.78443 57.0479 3.78443H59.8119C62.2421 3.78443 63.8993 5.30624 63.8993 8.08507C63.8985 10.823 62.2414 12.3441 59.8119 12.3441Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M96.0538 14.5844C96.0538 14.426 96.018 14.2765 95.957 14.1403H95.9585L90.7948 1.70551C90.5081 1.01378 89.7745 0.56304 89.0245 0.56304H88.9872C88.2387 0.56304 87.5051 1.01378 87.2168 1.70551L82.0539 14.1403C81.9921 14.2765 81.9571 14.426 81.9571 14.5844C81.9571 15.1794 82.4405 15.6607 83.0363 15.6607C83.507 15.6607 83.9144 15.3654 84.0604 14.9451C84.0775 14.9027 84.0887 14.8745 84.1036 14.8403L85.1404 12.3337C85.1612 12.2868 85.2066 12.2563 85.258 12.2563H92.7551C92.8065 12.2563 92.8512 12.2868 92.872 12.3337L93.9088 14.8403C93.9237 14.8745 93.9364 14.9102 93.9498 14.9451C94.0972 15.3639 94.5061 15.6607 94.9761 15.6607C95.5704 15.6607 96.0538 15.1794 96.0538 14.5844ZM92.1265 10.5128H85.8837C85.8286 10.5128 85.7936 10.4578 85.8137 10.408L88.8882 3.16113C88.9098 3.10832 88.9567 3.08229 89.0051 3.08005C89.0542 3.08229 89.1012 3.10832 89.1228 3.16113L92.1965 10.408C92.2181 10.4585 92.1816 10.5128 92.1265 10.5128Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M36.6464 12.5709H36.5548C35.1933 12.5709 33.8959 11.3035 32.5783 10.0926C32.5403 10.0569 32.5575 9.99814 32.6066 9.98624C34.8216 9.48939 36.4229 7.8084 36.4229 5.48924C36.4229 1.98074 33.5726 0.546697 30.6568 0.546697H24.8161C24.1004 0.546697 23.5209 1.12537 23.5209 1.84016V13.9328C23.5209 14.9556 24.3521 15.7856 25.3769 15.7856C26.4025 15.7856 27.233 14.9556 27.233 13.9321L27.2315 13.9254V10.2592C27.2315 10.1967 27.2829 10.1447 27.3462 10.1447H27.8027C27.8802 10.1462 28.0843 10.1744 28.3412 10.3812C30.259 11.929 32.6923 15.77 35.9582 15.77C36.3082 15.77 36.6404 15.7343 36.9562 15.68L36.9778 15.6763C37.6876 15.5246 38.2179 14.8946 38.2179 14.1411C38.2194 13.2731 37.5148 12.5709 36.6464 12.5709ZM30.5912 7.49006H27.3402C27.2806 7.49006 27.233 7.44097 27.233 7.38295V3.89156C27.233 3.83206 27.2806 3.78445 27.3402 3.78445H30.5912C31.806 3.78445 32.5791 4.48957 32.5791 5.638C32.5783 6.74031 31.806 7.49006 30.5912 7.49006Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M76.891 7.12038L73.9088 6.326C72.6062 5.99501 71.8755 5.57179 71.8755 4.55651C71.8755 3.43114 72.951 2.22247 75.3448 2.4828C76.4329 2.60032 77.603 2.90081 78.5839 3.34486C78.6271 3.36569 78.7291 3.40511 78.8445 3.44155C78.9682 3.47726 79.0866 3.50924 79.2184 3.50924C79.7845 3.50924 80.2425 3.0518 80.2425 2.48726C80.2425 2.26933 80.174 2.0685 80.0586 1.90264C79.9439 1.73454 79.7696 1.58206 79.5149 1.46528C78.4282 1.00413 76.8954 0.455204 75.4334 0.363717C71.3773 0.112313 69.5131 2.39429 69.5131 4.73204C69.5131 6.69642 70.7278 7.99806 72.916 8.54922L75.9428 9.32054C77.6216 9.7393 78.5719 10.3135 78.5719 11.3727C78.5719 12.7628 77.1799 13.6673 74.9932 13.6673C73.7725 13.6673 72.5965 13.3579 71.6387 12.9674L71.5858 12.9466C71.4838 12.9064 71.3951 12.8804 71.2953 12.864C71.2953 12.864 71.1568 12.8447 71.0853 12.8447C70.7896 12.8447 70.523 12.9637 70.3286 13.157C70.1342 13.3497 70.0143 13.6182 70.0143 13.9135C70.0143 14.2021 70.1312 14.4646 70.3182 14.6588L70.3167 14.6603C70.4358 14.7889 70.5888 14.8923 70.7695 14.9615C71.851 15.3892 73.3763 15.7841 74.9485 15.7841C78.5057 15.7841 80.9583 13.8094 80.9583 11.029C80.956 8.91368 79.5409 7.84856 76.891 7.12038Z\"\n fill=\"#009999\"\n />\n <path\n d=\"M0 2.25742C0 1.35892 0.711276 0.648588 1.61098 0.648588H1.96699C2.65742 0.648588 3.13855 1.00412 3.432 1.48462L7.32428 7.81657L11.2374 1.46379C11.5726 0.920818 12.0329 0.648588 12.6816 0.648588H13.0376C13.9373 0.648588 14.6486 1.35892 14.6486 2.25742V13.8763C14.6486 14.7748 13.9373 15.4851 13.0376 15.4851C12.1587 15.4851 11.4474 14.754 11.4474 13.8763V6.58261L8.62171 10.9301C8.28655 11.4314 7.86872 11.7453 7.28257 11.7453C6.69642 11.7453 6.27785 11.4322 5.94344 10.9301L3.16015 6.64583V13.918C3.16015 14.7956 2.44887 15.4851 1.57002 15.4851C0.691167 15.4851 0.000744809 14.7956 0.000744809 13.918L0 2.25742Z\"\n fill=\"#99CC00\"\n />\n <path\n d=\"M16.5315 1.48388C16.5315 0.564543 17.3061 0 18.3101 0C19.3148 0 20.0887 0.564543 20.0887 1.48388V1.52553C20.0887 2.44487 19.3141 3.03024 18.3101 3.03024C17.3054 3.03024 16.5315 2.44487 16.5315 1.52553V1.48388ZM16.72 5.62163C16.72 4.74395 17.4313 4.03362 18.3101 4.03362C19.189 4.03362 19.9002 4.74395 19.9002 5.62163V13.8971C19.9002 14.7748 19.189 15.4851 18.3101 15.4851C17.4313 15.4851 16.72 14.7748 16.72 13.8971V5.62163Z\"\n fill=\"#99CC00\"\n />\n </Box>\n );\n};\n\n/**\n * Check if item is a group with header\n */\nfunction isGroup(item: SidenavNavigationItem): item is { header: string; items: SidenavItem[] } {\n return 'header' in item && 'items' in item;\n}\n\n/**\n * Sidenav component\n *\n * Side navigation panel with support for default (256px) and slim (72px) variants.\n * Designed following MRS Design System specifications from Figma.\n *\n * Features:\n * - Two variants: default (with labels) and slim (icons only)\n * - Logo section with MRS branding\n * - Action button (Button in default, IconButton in slim)\n * - Navigation items with icons\n * - Group headers for organizing items\n * - Selected/active state highlighting\n * - Tooltips in slim mode for accessibility\n * - MRS design tokens (Nunito font, MRS colors)\n *\n * @param props - Sidenav component props\n * @returns Sidenav component\n */\nexport const Sidenav = React.forwardRef<HTMLDivElement, SidenavProps>(\n (\n {\n variant = 'default',\n logo = true,\n logoElement,\n items = [],\n actionButton,\n showActionButton = true,\n onItemClick,\n width,\n height = '100vh',\n sx,\n listSx,\n },\n ref\n ) => {\n const theme = useTheme();\n\n // Determine width based on variant\n // Note: Width is theme-aware and passed as prop\n const sidenavWidth = width ?? (variant === 'slim' ? 72 : 256);\n\n const handleItemClick = (item: SidenavItem) => {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item);\n }\n };\n\n // Render a navigation item\n const renderNavItem = (item: SidenavItem, index: number) => {\n const itemContent = (\n <ListItemButton\n key={item.id || `item-${index}`}\n selected={item.selected}\n onClick={() => handleItemClick(item)}\n sx={{\n // Note: borderRadius and colors are now defined in theme.ts\n // MuiListItemButton override via sidenavTokens\n mx: 1,\n px: variant === 'slim' ? 1.5 : 2,\n justifyContent: variant === 'slim' ? 'center' : 'flex-start',\n minHeight: 48,\n }}\n >\n {item.icon && (\n <ListItemIcon\n sx={{\n minWidth: variant === 'slim' ? 'auto' : 40,\n justifyContent: 'center',\n color: item.selected ? theme.palette.primary.dark : theme.palette.text.secondary,\n }}\n >\n <MaterialSymbol\n icon={item.icon}\n size=\"medium\"\n sx={{\n color: 'inherit',\n }}\n />\n </ListItemIcon>\n )}\n {variant === 'default' && (\n <ListItemText\n primary={item.label}\n primaryTypographyProps={{\n fontWeight: item.selected ? 600 : 400,\n color: item.selected ? theme.palette.primary.dark : theme.palette.text.primary,\n }}\n />\n )}\n </ListItemButton>\n );\n\n // Wrap in tooltip for slim variant\n if (variant === 'slim') {\n return (\n <Tooltip key={item.id || `item-${index}`} title={item.label} placement=\"right\" arrow>\n {itemContent}\n </Tooltip>\n );\n }\n\n return itemContent;\n };\n\n // Render a group with header\n const renderGroup = (group: { header: string; items: SidenavItem[] }, groupIndex: number) => {\n if (variant === 'slim') {\n // In slim mode, show divider instead of header\n return (\n <React.Fragment key={`group-${groupIndex}`}>\n <Divider sx={{ my: 1, mx: 1 }} />\n {group.items.map((item, index) => renderNavItem(item, groupIndex * 100 + index))}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group-${groupIndex}`}>\n <ListSubheader\n component=\"div\"\n sx={{\n backgroundColor: 'transparent',\n color: theme.palette.text.secondary,\n fontWeight: 600,\n fontSize: '1rem',\n lineHeight: '48px',\n letterSpacing: '0.1px',\n px: 2,\n }}\n >\n {group.header}\n </ListSubheader>\n {group.items.map((item, index) => renderNavItem(item, groupIndex * 100 + index))}\n </React.Fragment>\n );\n };\n\n return (\n <Paper\n ref={ref}\n elevation={1}\n sx={{\n width: sidenavWidth,\n height,\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 0,\n overflow: 'hidden',\n ...sx,\n }}\n >\n {/* Logo Section */}\n {logo && (\n <Box\n sx={{\n height: 64,\n display: 'flex',\n alignItems: 'center',\n justifyContent: variant === 'slim' ? 'center' : 'flex-start',\n px: 2,\n }}\n >\n {logoElement ?? <MRSLogo variant={variant} />}\n </Box>\n )}\n\n {/* Spacing */}\n <Box sx={{ height: 8 }} />\n\n {/* Action Button Section */}\n {showActionButton && actionButton && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: variant === 'slim' ? 'center' : 'flex-start',\n px: 2,\n }}\n >\n {variant === 'slim' ? (\n <Tooltip title={actionButton.label || 'Add'} placement=\"right\" arrow>\n <IconButton\n color=\"primary\"\n size=\"large\"\n onClick={actionButton.onClick}\n sx={{\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n },\n }}\n >\n <MaterialSymbol icon={actionButton.icon || 'add'} size=\"medium\" />\n </IconButton>\n </Tooltip>\n ) : (\n <Button\n variant=\"contained\"\n color=\"primary\"\n fullWidth\n startIcon={\n actionButton.icon && <MaterialSymbol icon={actionButton.icon} size=\"small\" />\n }\n onClick={actionButton.onClick}\n >\n {actionButton.label || 'Agendar'}\n </Button>\n )}\n </Box>\n )}\n\n {/* Spacing */}\n <Box sx={{ height: 8 }} />\n\n {/* Navigation List */}\n <List\n sx={{\n flex: 1,\n overflow: 'auto',\n py: 1,\n ...listSx,\n }}\n >\n {items.map((item, index) => {\n if (isGroup(item)) {\n return renderGroup(item, index);\n }\n return renderNavItem(item as SidenavItem, index);\n })}\n </List>\n </Paper>\n );\n }\n);\n\nSidenav.displayName = 'Sidenav';\n\nexport type { SidenavProps, SidenavItem, SidenavNavigationItem };\nexport default Sidenav;\n","/**\n * Sidenav Component Types\n *\n * Type definitions for the Sidenav component in the MRS Design System.\n *\n * @figma https://figma.com/design/pWR8HIewAt87ZioeOSMoWM/MRS---Material-UI?node-id=13099-16347\n */\n\nimport type { ReactNode } from 'react';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\n/**\n * Navigation item interface for sidenav items\n */\nexport interface SidenavItem {\n /** Unique identifier for the item */\n id?: string;\n /** Item label text */\n label: string;\n /** Icon name for MaterialSymbol */\n icon?: string;\n /** Whether this item is selected/active */\n selected?: boolean;\n /** Optional click handler */\n onClick?: () => void;\n /** Optional path for routing */\n path?: string;\n}\n\n/**\n * Navigation group interface for grouped items with subheaders\n */\nexport interface SidenavGroup {\n /** Unique identifier for the group */\n id?: string;\n /** Group header label */\n header: string;\n /** Items within this group */\n items: SidenavItem[];\n}\n\n/**\n * Combined navigation item type (can be simple item or group)\n */\nexport type SidenavNavigationItem = SidenavItem | SidenavGroup;\n\n/**\n * Type guard to check if navigation item is a group\n */\nexport function isSidenavGroup(item: SidenavNavigationItem): item is SidenavGroup {\n return 'header' in item && 'items' in item;\n}\n\n/**\n * Props for the Sidenav component\n */\nexport interface SidenavProps {\n /** Sidenav variant - 'default' (256px) or 'slim' (72px) */\n variant?: 'default' | 'slim';\n /** Whether to show the logo */\n logo?: boolean;\n /** Custom logo element (defaults to MRS logo) */\n logoElement?: ReactNode;\n /** Navigation items - can be simple items or groups with headers */\n items?: SidenavNavigationItem[];\n /** Action button configuration */\n actionButton?: {\n /** Button label (only shown in default variant) */\n label?: string;\n /** Icon name for the button */\n icon?: string;\n /** Click handler */\n onClick?: () => void;\n };\n /** Whether to show the action button */\n showActionButton?: boolean;\n /** Callback when a navigation item is clicked */\n onItemClick?: (item: SidenavItem) => void;\n /** Custom width (overrides variant width) */\n width?: number;\n /** Custom height */\n height?: number | string;\n /** Custom sx styles */\n sx?: SxProps<Theme>;\n /** Custom sx styles for the navigation list */\n listSx?: SxProps<Theme>;\n}\n","/**\n * Snackbar Component\n * @package @mrs/ui\n *\n * Temporary notification message shown at the bottom or top of the screen.\n * Provides brief feedback about an operation through a message at the bottom of the screen.\n *\n * @example\n * ```tsx\n * <Snackbar\n * open={open}\n * autoHideDuration={6000}\n * onClose={handleClose}\n * message=\"Item successfully saved\"\n * />\n * ```\n *\n * @example With severity\n * ```tsx\n * <Snackbar\n * open={open}\n * onClose={handleClose}\n * severity=\"success\"\n * >\n * Item successfully saved!\n * </Snackbar>\n * ```\n */\n\nimport React from 'react';\nimport MuiSnackbar from '@mui/material/Snackbar';\nimport Alert from '@mui/material/Alert';\nimport IconButton from '@mui/material/IconButton';\nimport { MaterialSymbol } from '../../atoms/MaterialSymbol';\nimport type { SnackbarProps } from './Snackbar.types';\n\nexport const Snackbar = React.forwardRef<HTMLDivElement, SnackbarProps>(\n (\n {\n open = false,\n autoHideDuration = 6000,\n onClose,\n message,\n anchorOrigin = { vertical: 'bottom', horizontal: 'left' },\n action,\n severity,\n variant = 'filled',\n showCloseButton = true,\n icon,\n children,\n ...props\n },\n ref\n ) => {\n const handleClose = (event: React.SyntheticEvent | Event, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n onClose?.(event, reason);\n };\n\n // Render as Alert if severity is provided\n if (severity) {\n return (\n <MuiSnackbar\n ref={ref}\n open={open}\n autoHideDuration={autoHideDuration}\n onClose={handleClose}\n anchorOrigin={anchorOrigin}\n {...props}\n >\n <Alert\n severity={severity}\n variant={variant}\n icon={icon}\n onClose={showCloseButton ? (e) => handleClose(e) : undefined}\n sx={{ width: '100%' }}\n >\n {children || message}\n </Alert>\n </MuiSnackbar>\n );\n }\n\n // Default action (close button) if no action provided\n const defaultAction =\n action !== undefined ? (\n action\n ) : (\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={(e) => handleClose(e)}>\n <MaterialSymbol icon=\"close\" size=\"small\" />\n </IconButton>\n );\n\n // Render as simple Snackbar\n return (\n <MuiSnackbar\n ref={ref}\n open={open}\n autoHideDuration={autoHideDuration}\n onClose={handleClose}\n message={children || message}\n action={defaultAction}\n anchorOrigin={anchorOrigin}\n {...props}\n />\n );\n }\n);\n\nSnackbar.displayName = 'Snackbar';\n\nexport default Snackbar;\n","/**\n * SpeedDial Component\n *\n * SpeedDial component for the MRS Design System.\n * Wraps Material-UI SpeedDial with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-speed-dial/}\n */\n\nimport React from 'react';\nimport MuiSpeedDial from '@mui/material/SpeedDial';\nimport type { SpeedDialProps } from './SpeedDial.types';\n\n/**\n * SpeedDial component\n *\n * When pressed, a floating action button can display three to six related actions in the form of a Speed Dial.\n *\n * @param props - SpeedDial component props\n * @returns SpeedDial component\n */\nexport const SpeedDial = React.forwardRef<HTMLDivElement, SpeedDialProps>((props, ref) => {\n return <MuiSpeedDial ref={ref} {...props} />;\n});\n\nSpeedDial.displayName = 'SpeedDial';\n","/**\n * SpeedDialAction Component\n *\n * SpeedDialAction component for the MRS Design System.\n * Wraps Material-UI SpeedDialAction with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-speed-dial/}\n */\n\nimport React from 'react';\nimport MuiSpeedDialAction from '@mui/material/SpeedDialAction';\nimport type { SpeedDialActionProps } from './SpeedDial.types';\n\n/**\n * SpeedDialAction component\n *\n * Individual action button for SpeedDial.\n *\n * @param props - SpeedDialAction component props\n * @returns SpeedDialAction component\n */\nexport const SpeedDialAction = React.forwardRef<HTMLDivElement, SpeedDialActionProps>(\n (props, ref) => {\n return <MuiSpeedDialAction ref={ref} {...props} />;\n }\n);\n\nSpeedDialAction.displayName = 'SpeedDialAction';\n","/**\n * SpeedDialIcon Component\n *\n * SpeedDialIcon component for the MRS Design System.\n * Wraps Material-UI SpeedDialIcon with custom theme tokens.\n *\n * @see {@link https://mui.com/material-ui/react-speed-dial/}\n */\n\nimport React from 'react';\nimport MuiSpeedDialIcon from '@mui/material/SpeedDialIcon';\nimport type { SpeedDialIconProps } from './SpeedDial.types';\n\n/**\n * SpeedDialIcon component\n *\n * Icon for the SpeedDial Floating Action Button that animates when opened/closed.\n *\n * @param props - SpeedDialIcon component props\n * @returns SpeedDialIcon component\n */\nexport const SpeedDialIcon = React.forwardRef<HTMLSpanElement, SpeedDialIconProps>((props, ref) => {\n return <MuiSpeedDialIcon ref={ref} {...props} />;\n});\n\nSpeedDialIcon.displayName = 'SpeedDialIcon';\n","/**\n * Stepper Component\n * @package @mrs/ui\n */\n\nimport React from 'react';\nimport MuiStepper from '@mui/material/Stepper';\nimport MuiStep from '@mui/material/Step';\nimport MuiStepLabel from '@mui/material/StepLabel';\nimport type { StepperProps, StepProps, StepLabelProps } from './Stepper.types';\n\nexport const Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n children,\n activeStep = 0,\n orientation = 'horizontal',\n alternativeLabel = false,\n nonLinear = false,\n ...props\n },\n ref\n ) => {\n return (\n <MuiStepper\n ref={ref}\n activeStep={activeStep}\n orientation={orientation}\n alternativeLabel={alternativeLabel}\n nonLinear={nonLinear}\n {...props}\n >\n {children}\n </MuiStepper>\n );\n }\n);\n\nStepper.displayName = 'Stepper';\n\nexport const Step = React.forwardRef<HTMLDivElement, StepProps>(\n ({ children, active, completed, disabled, ...props }, ref) => {\n return (\n <MuiStep ref={ref} active={active} completed={completed} disabled={disabled} {...props}>\n {children}\n </MuiStep>\n );\n }\n);\n\nStep.displayName = 'Step';\n\nexport const StepLabel = React.forwardRef<HTMLLabelElement, StepLabelProps>(\n ({ children, error, optional, icon, ...props }, ref) => {\n return (\n <MuiStepLabel ref={ref} error={error} optional={optional} icon={icon} {...props}>\n {children}\n </MuiStepLabel>\n );\n }\n);\n\nStepLabel.displayName = 'StepLabel';\n\nexport default Stepper;\n","/**\n * Tabs Component\n * @package @mrs/ui\n *\n * Navigation component that organizes content into separate views.\n * Only one view is visible at a time, with tabs allowing users to switch between them.\n *\n * @example\n * ```tsx\n * const [value, setValue] = useState(0);\n *\n * <Tabs value={value} onChange={(e, newValue) => setValue(newValue)}>\n * <Tab label=\"Tab 1\" />\n * <Tab label=\"Tab 2\" />\n * <Tab label=\"Tab 3\" />\n * </Tabs>\n * ```\n */\n\nimport React from 'react';\nimport MuiTabs from '@mui/material/Tabs';\nimport MuiTab from '@mui/material/Tab';\nimport type { TabsProps, TabProps } from './Tabs.types';\n\n/**\n * Tabs component for navigation between different views\n */\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n value,\n onChange,\n children,\n variant = 'standard',\n indicatorColor = 'primary',\n textColor = 'primary',\n centered = false,\n scrollButtons = 'auto',\n allowScrollButtonsMobile = false,\n orientation = 'horizontal',\n TabIndicatorProps,\n ScrollButtonComponent,\n ...props\n },\n ref\n ) => {\n return (\n <MuiTabs\n ref={ref}\n value={value}\n onChange={onChange}\n variant={variant}\n indicatorColor={indicatorColor}\n textColor={textColor}\n centered={centered}\n scrollButtons={scrollButtons}\n allowScrollButtonsMobile={allowScrollButtonsMobile}\n orientation={orientation}\n TabIndicatorProps={TabIndicatorProps}\n ScrollButtonComponent={ScrollButtonComponent}\n {...props}\n >\n {children}\n </MuiTabs>\n );\n }\n);\n\nTabs.displayName = 'Tabs';\n\n/**\n * Tab component for individual tab item\n */\nexport const Tab = React.forwardRef<HTMLDivElement, TabProps>(\n (\n { label, value, icon, disabled = false, wrapped = false, iconPosition = 'top', ...props },\n ref\n ) => {\n return (\n <MuiTab\n ref={ref}\n label={label}\n value={value}\n icon={icon}\n disabled={disabled}\n wrapped={wrapped}\n iconPosition={iconPosition}\n {...props}\n />\n );\n }\n);\n\nTab.displayName = 'Tab';\n\nexport default Tabs;\n","/**\n * LocalizationProvider Component\n *\n * Provides localization context for MUI X Date Pickers\n * Uses dayjs as the date library adapter\n */\n\nimport React from 'react';\nimport { LocalizationProvider as MuiLocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\n\nexport interface LocalizationProviderProps {\n /**\n * The content to wrap with localization context\n */\n children: React.ReactNode;\n\n /**\n * The locale string to use for date formatting\n * @default 'en'\n */\n locale?: string;\n}\n\n/**\n * LocalizationProvider wraps MUI X LocalizationProvider with dayjs adapter\n * Use this to wrap your app or component tree that uses date pickers\n */\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({\n children,\n locale = 'en',\n}) => {\n return (\n <MuiLocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={locale}>\n {children}\n </MuiLocalizationProvider>\n );\n};\n\nLocalizationProvider.displayName = 'LocalizationProvider';\n\nexport default LocalizationProvider;\n","import type { MouseEvent } from 'react';\nimport { useState, useCallback } from 'react';\nimport { PrimitivesMotionDurationFast } from '../../tokens/generated/ts/tokens';\n\ninterface Ripple {\n x: number;\n y: number;\n size: number;\n id: number;\n}\n\n/**\n * useRipple Hook\n *\n * Creates Material Design ripple effect on click\n *\n * @example\n * ```tsx\n * const { ripples, createRipple, clearRipples } = useRipple();\n *\n * <button onClick={createRipple}>\n * {ripples.map(ripple => (\n * <span key={ripple.id} className=\"ripple\" style={{...}} />\n * ))}\n * Click me\n * </button>\n * ```\n */\nexport const useRipple = () => {\n const [ripples, setRipples] = useState<Ripple[]>([]);\n\n const createRipple = useCallback((event: MouseEvent<HTMLElement>) => {\n const button = event.currentTarget;\n const rect = button.getBoundingClientRect();\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n const newRipple: Ripple = {\n x,\n y,\n size,\n id: Date.now(),\n };\n\n setRipples((prev) => [...prev, newRipple]);\n\n // Remove ripple after animation\n const duration = parseInt(PrimitivesMotionDurationFast) * 6; // 600ms\n setTimeout(() => {\n setRipples((prev) => prev.filter((ripple) => ripple.id !== newRipple.id));\n }, duration);\n }, []);\n\n const clearRipples = useCallback(() => {\n setRipples([]);\n }, []);\n\n return { ripples, createRipple, clearRipples };\n};\n","import { useEffect, useRef } from 'react';\n\ninterface UsePulseOptions {\n duration?: number;\n scale?: number;\n enabled?: boolean;\n}\n\n/**\n * usePulse Hook\n *\n * Creates a pulsing animation effect\n *\n * @param options - Configuration options\n * @param options.duration - Animation duration in ms (default: 1000)\n * @param options.scale - Scale factor (default: 1.05)\n * @param options.enabled - Whether animation is enabled (default: true)\n *\n * @example\n * ```tsx\n * const pulseRef = usePulse({ duration: 1000, scale: 1.1 });\n *\n * <div ref={pulseRef}>Pulsing element</div>\n * ```\n */\nexport const usePulse = <T extends HTMLElement>(\n options: UsePulseOptions = {}\n): React.RefObject<T> => {\n const { duration = 1000, scale = 1.05, enabled = true } = options;\n const ref = useRef<T>(null);\n\n useEffect(() => {\n if (!enabled || !ref.current) return;\n\n const element = ref.current;\n const keyframes = [\n { transform: 'scale(1)' },\n { transform: `scale(${scale})` },\n { transform: 'scale(1)' },\n ];\n\n const animation = element.animate(keyframes, {\n duration,\n iterations: Infinity,\n easing: 'ease-in-out',\n });\n\n return () => {\n animation.cancel();\n };\n }, [duration, scale, enabled]);\n\n return ref;\n};\n","import { useCallback, useRef } from 'react';\nimport { PrimitivesMotionDurationBase } from '../../tokens/generated/ts/tokens';\n\ninterface UseShakeOptions {\n duration?: number;\n distance?: number;\n}\n\n/**\n * useShake Hook\n *\n * Triggers a shake animation (useful for errors, invalid inputs)\n *\n * @param options - Configuration options\n * @param options.duration - Animation duration in ms (default: 200ms from tokens)\n * @param options.distance - Shake distance in pixels (default: 10)\n *\n * @example\n * ```tsx\n * const { ref, shake } = useShake<HTMLInputElement>();\n *\n * <input\n * ref={ref}\n * onError={() => shake()}\n * />\n * ```\n */\nexport const useShake = <T extends HTMLElement>(options: UseShakeOptions = {}) => {\n const { duration = parseInt(PrimitivesMotionDurationBase), distance = 10 } = options;\n const ref = useRef<T>(null);\n\n const shake = useCallback(() => {\n if (!ref.current) return;\n\n const element = ref.current;\n const keyframes = [\n { transform: 'translateX(0)' },\n { transform: `translateX(-${distance}px)` },\n { transform: `translateX(${distance}px)` },\n { transform: `translateX(-${distance}px)` },\n { transform: `translateX(${distance}px)` },\n { transform: 'translateX(0)' },\n ];\n\n element.animate(keyframes, {\n duration,\n easing: 'ease-in-out',\n });\n }, [duration, distance]);\n\n return { ref, shake };\n};\n","import { useCallback, useRef } from 'react';\nimport { PrimitivesMotionDurationModerate } from '../../tokens/generated/ts/tokens';\n\ninterface UseBounceOptions {\n duration?: number;\n scale?: number;\n}\n\n/**\n * useBounce Hook\n *\n * Triggers a bounce animation effect\n *\n * @param options - Configuration options\n * @param options.duration - Animation duration in ms (default: 300ms from tokens)\n * @param options.scale - Bounce scale factor (default: 1.2)\n *\n * @example\n * ```tsx\n * const { ref, bounce } = useBounce<HTMLButtonElement>();\n *\n * <button ref={ref} onClick={bounce}>\n * Bounce on click\n * </button>\n * ```\n */\nexport const useBounce = <T extends HTMLElement>(options: UseBounceOptions = {}) => {\n const { duration = parseInt(PrimitivesMotionDurationModerate), scale = 1.2 } = options;\n const ref = useRef<T>(null);\n\n const bounce = useCallback(() => {\n if (!ref.current) return;\n\n const element = ref.current;\n const keyframes = [\n { transform: 'scale(1)' },\n { transform: `scale(${scale})` },\n { transform: 'scale(0.9)' },\n { transform: `scale(${scale * 0.95})` },\n { transform: 'scale(1)' },\n ];\n\n element.animate(keyframes, {\n duration,\n easing: 'ease-out',\n });\n }, [duration, scale]);\n\n return { ref, bounce };\n};\n","import { useState, useCallback } from 'react';\nimport {\n PrimitivesMotionDurationFast,\n PrimitivesMotionEasingStandard,\n} from '../../tokens/generated/ts/tokens';\n\ninterface UseHoverScaleOptions {\n scale?: number;\n duration?: string;\n easing?: string;\n}\n\n/**\n * useHoverScale Hook\n *\n * Provides hover scale animation state and handlers\n *\n * @param options - Configuration options\n * @param options.scale - Scale factor on hover (default: 1.05)\n * @param options.duration - Transition duration (default: from tokens)\n * @param options.easing - Easing function (default: from tokens)\n *\n * @example\n * ```tsx\n * const { isHovered, onMouseEnter, onMouseLeave, style } = useHoverScale({\n * scale: 1.1\n * });\n *\n * <div\n * onMouseEnter={onMouseEnter}\n * onMouseLeave={onMouseLeave}\n * style={style}\n * >\n * Hover me\n * </div>\n * ```\n */\nexport const useHoverScale = (options: UseHoverScaleOptions = {}) => {\n const {\n scale = 1.05,\n duration = PrimitivesMotionDurationFast,\n easing = PrimitivesMotionEasingStandard,\n } = options;\n\n const [isHovered, setIsHovered] = useState(false);\n\n const onMouseEnter = useCallback(() => setIsHovered(true), []);\n const onMouseLeave = useCallback(() => setIsHovered(false), []);\n\n const style = {\n transform: isHovered ? `scale(${scale})` : 'scale(1)',\n transition: `transform ${duration} ${easing}`,\n cursor: 'pointer',\n };\n\n return {\n isHovered,\n onMouseEnter,\n onMouseLeave,\n style,\n };\n};\n","import React, { forwardRef } from 'react';\nimport type { ButtonProps } from '@mui/material/Button';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport { useRipple } from '../../../hooks/animations';\nimport { PrimitivesMotionDurationFast } from '../../../tokens/generated/ts/tokens';\n\nconst RippleContainer = styled('span')({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden',\n pointerEvents: 'none',\n borderRadius: 'inherit',\n});\n\nconst RippleSpan = styled('span')<{ x: number; y: number; size: number }>(({ x, y, size }) => ({\n position: 'absolute',\n left: x,\n top: y,\n width: size,\n height: size,\n borderRadius: '50%',\n backgroundColor: 'currentColor',\n opacity: 0.3,\n animation: `ripple ${parseInt(PrimitivesMotionDurationFast) * 6}ms ease-out`,\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.6,\n },\n '100%': {\n transform: 'scale(4)',\n opacity: 0,\n },\n },\n}));\n\nexport interface RippleButtonProps extends ButtonProps {\n /**\n * If true, ripple effect is disabled\n * @default false\n */\n disableRipple?: boolean;\n}\n\n/**\n * RippleButton Component\n *\n * Enhanced Material-UI Button with custom ripple effect\n *\n * @example\n * ```tsx\n * <RippleButton variant=\"contained\" color=\"primary\">\n * Click me for ripple effect\n * </RippleButton>\n * ```\n */\nexport const RippleButton = forwardRef<HTMLButtonElement, RippleButtonProps>(\n ({ children, disableRipple = false, onClick, ...props }, ref) => {\n const { ripples, createRipple } = useRipple();\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!disableRipple) {\n createRipple(event);\n }\n onClick?.(event);\n };\n\n return (\n <Button ref={ref} onClick={handleClick} sx={{ position: 'relative' }} {...props}>\n {!disableRipple && (\n <RippleContainer>\n {ripples.map((ripple) => (\n <RippleSpan key={ripple.id} x={ripple.x} y={ripple.y} size={ripple.size} />\n ))}\n </RippleContainer>\n )}\n {children}\n </Button>\n );\n }\n);\n\nRippleButton.displayName = 'RippleButton';\n","import React, { useEffect, useState } from 'react';\nimport type { BadgeProps } from '@mui/material/Badge';\nimport Badge from '@mui/material/Badge';\nimport { styled, keyframes } from '@mui/material/styles';\nimport { PrimitivesMotionDurationBase } from '../../../tokens/generated/ts/tokens';\n\nconst bounce = keyframes`\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.3);\n }\n`;\n\nconst pulse = keyframes`\n 0% {\n box-shadow: 0 0 0 0 rgba(244, 67, 54, 0.7);\n }\n 70% {\n box-shadow: 0 0 0 10px rgba(244, 67, 54, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(244, 67, 54, 0);\n }\n`;\n\nconst AnimatedBadgeRoot = styled(Badge)<{\n animate?: boolean;\n animationvariant?: 'bounce' | 'pulse';\n}>(({ animate, animationvariant }) => {\n if (!animate) return {};\n\n if (animationvariant === 'bounce') {\n return {\n '& .MuiBadge-badge': {\n animation: `${bounce} ${parseInt(PrimitivesMotionDurationBase) * 3}ms ease-in-out`,\n },\n };\n }\n\n if (animationvariant === 'pulse') {\n return {\n '& .MuiBadge-badge': {\n animation: `${pulse} 2s infinite`,\n },\n };\n }\n\n return {};\n});\n\nexport interface AnimatedBadgeProps extends BadgeProps {\n /**\n * Animation variant\n * @default 'bounce'\n */\n animationVariant?: 'bounce' | 'pulse' | 'none';\n /**\n * If true, animation plays once when badge appears\n * @default true\n */\n animateOnChange?: boolean;\n}\n\n/**\n * AnimatedBadge Component\n *\n * Badge component with entrance animations\n *\n * @example\n * ```tsx\n * <AnimatedBadge badgeContent={4} color=\"error\" animationVariant=\"bounce\">\n * <MailIcon />\n * </AnimatedBadge>\n * ```\n */\nexport const AnimatedBadge: React.FC<AnimatedBadgeProps> = ({\n animationVariant = 'bounce',\n animateOnChange = true,\n badgeContent,\n children,\n ...props\n}) => {\n const [shouldAnimate, setShouldAnimate] = useState(false);\n const [prevBadgeContent, setPrevBadgeContent] = useState(badgeContent);\n\n useEffect(() => {\n if (!animateOnChange || badgeContent === prevBadgeContent) {\n return;\n }\n\n setShouldAnimate(true);\n setPrevBadgeContent(badgeContent);\n\n const timer = setTimeout(\n () => {\n setShouldAnimate(false);\n },\n parseInt(PrimitivesMotionDurationBase) * 3\n );\n\n return () => clearTimeout(timer);\n }, [badgeContent, prevBadgeContent, animateOnChange]);\n\n const isPulse = animationVariant === 'pulse';\n const animate = isPulse || shouldAnimate;\n\n return (\n <AnimatedBadgeRoot\n badgeContent={badgeContent}\n animate={animate}\n animationvariant={animationVariant === 'none' ? undefined : animationVariant}\n {...props}\n >\n {children}\n </AnimatedBadgeRoot>\n );\n};\n","import React from 'react';\nimport Box from '@mui/material/Box';\nimport { styled, keyframes } from '@mui/material/styles';\nimport { PrimitivesMotionDurationBase } from '../../../tokens/generated/ts/tokens';\n\nconst bounce = keyframes`\n 0%, 80%, 100% {\n transform: scale(0);\n opacity: 0.5;\n }\n 40% {\n transform: scale(1);\n opacity: 1;\n }\n`;\n\nconst Dot = styled('span')<{ delay: number }>(({ theme, delay }) => ({\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n display: 'inline-block',\n margin: '0 4px',\n animation: `${bounce} ${parseInt(PrimitivesMotionDurationBase) * 7}ms infinite ease-in-out`,\n animationDelay: `${delay}ms`,\n}));\n\nexport interface LoadingDotsProps {\n /**\n * Color of the dots\n * @default 'primary'\n */\n color?: 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success';\n /**\n * Size of the dots\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n}\n\n/**\n * LoadingDots Component\n *\n * Three-dot loading animation\n *\n * @example\n * ```tsx\n * <LoadingDots color=\"primary\" size=\"medium\" />\n * ```\n */\nexport const LoadingDots: React.FC<LoadingDotsProps> = ({ color = 'primary', size = 'medium' }) => {\n const sizeMap = {\n small: 8,\n medium: 12,\n large: 16,\n };\n\n const dotSize = sizeMap[size];\n\n return (\n <Box\n sx={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 0.5,\n }}\n >\n <Dot\n delay={0}\n sx={{\n width: dotSize,\n height: dotSize,\n bgcolor: `${color}.main`,\n }}\n />\n <Dot\n delay={160}\n sx={{\n width: dotSize,\n height: dotSize,\n bgcolor: `${color}.main`,\n }}\n />\n <Dot\n delay={320}\n sx={{\n width: dotSize,\n height: dotSize,\n bgcolor: `${color}.main`,\n }}\n />\n </Box>\n );\n};\n"],"names":["tokens.PrimitivesTypographyFontFamilyStack","tokens.PrimitivesTypographyFontWeightLight","tokens.PrimitivesTypographyFontWeightRegular","tokens.PrimitivesTypographyFontWeightMedium","tokens.PrimitivesTypographyFontWeightSemibold","tokens.PrimitivesTypographyFontWeightBold","tokens.PrimitivesTypographyFontSize4xl","tokens.PrimitivesTypographyLineHeightTight","tokens.PrimitivesTypographyFontSize3xl","tokens.PrimitivesTypographyFontSize2xl","tokens.PrimitivesTypographyFontSizeXl","tokens.PrimitivesTypographyFontSizeLg","tokens.PrimitivesTypographyFontSizeMd","tokens.PrimitivesTypographyLineHeightNormal","tokens.PrimitivesTypographyFontSizeSm","tokens.PrimitivesTypographyLineHeightSnug","tokens.PrimitivesTypographyLineHeightLoose","tokens.PrimitivesTypographyFontSizeXs","tokens.PrimitivesTypographyLineHeightRelaxed","tokens.SemanticColorLightPrimaryMain","tokens.SemanticColorLightPrimaryDark","tokens.SemanticColorLightPrimaryLight","tokens.SemanticColorLightPrimaryContrastText","tokens.SemanticColorLightSecondaryMain","tokens.SemanticColorLightSecondaryDark","tokens.SemanticColorLightSecondaryLight","tokens.SemanticColorLightSecondaryContrastText","tokens.SemanticColorLightErrorMain","tokens.SemanticColorLightErrorDark","tokens.SemanticColorLightErrorLight","tokens.SemanticColorLightErrorContrastText","tokens.SemanticColorLightWarningMain","tokens.SemanticColorLightWarningDark","tokens.SemanticColorLightWarningLight","tokens.SemanticColorLightWarningContrastText","tokens.SemanticColorLightInfoMain","tokens.SemanticColorLightInfoDark","tokens.SemanticColorLightInfoLight","tokens.SemanticColorLightInfoContrastText","tokens.SemanticColorLightSuccessMain","tokens.SemanticColorLightSuccessDark","tokens.SemanticColorLightSuccessLight","tokens.SemanticColorLightSuccessContrastText","tokens.SemanticColorLightBackgroundDefault","tokens.SemanticColorLightBackgroundPaper","tokens.SemanticColorLightTextPrimary","tokens.SemanticColorLightTextSecondary","tokens.SemanticColorLightTextDisabled","tokens.SemanticColorLightActionActive","tokens.SemanticColorLightActionHover","tokens.SemanticColorLightActionSelected","tokens.SemanticColorLightActionDisabled","tokens.SemanticColorLightActionDisabledBackground","tokens.SemanticColorLightDivider","tokens.PrimitivesColorsBrandVerones","tokens.PrimitivesColorsBrandLima","tokens.PrimitivesColorsNeutralWhite","tokens.PrimitivesColorsNeutralBlack","tokens.PrimitivesColorsNeutralGray50","tokens.PrimitivesColorsNeutralGray100","tokens.PrimitivesColorsNeutralGray200","tokens.PrimitivesColorsNeutralGray300","tokens.PrimitivesColorsNeutralGray400","tokens.PrimitivesColorsNeutralGray500","tokens.PrimitivesColorsNeutralGray600","tokens.PrimitivesColorsNeutralGray700","tokens.PrimitivesColorsNeutralGray800","tokens.PrimitivesColorsNeutralGray900","tokens.PrimitivesColorsStatusError50","tokens.PrimitivesColorsStatusError100","tokens.PrimitivesColorsStatusError500","tokens.PrimitivesColorsStatusError600","tokens.PrimitivesColorsStatusError700","tokens.PrimitivesColorsStatusWarning50","tokens.PrimitivesColorsStatusWarning500","tokens.PrimitivesColorsStatusWarning600","tokens.PrimitivesColorsStatusWarning700","tokens.PrimitivesColorsStatusInfo50","tokens.PrimitivesColorsStatusInfo100","tokens.PrimitivesColorsStatusInfo500","tokens.PrimitivesColorsStatusInfo600","tokens.PrimitivesColorsStatusInfo700","tokens.PrimitivesColorsStatusInfo800","tokens.PrimitivesColorsStatusSuccess50","tokens.PrimitivesColorsStatusSuccess100","tokens.PrimitivesColorsStatusSuccess500","tokens.PrimitivesColorsStatusSuccess600","tokens.PrimitivesColorsStatusSuccess700","tokens.PrimitivesColorsStatusSuccess800","tokens.PrimitivesColorsAlphaBlack4","tokens.PrimitivesColorsAlphaBlack8","tokens.PrimitivesColorsAlphaBlack12","tokens.PrimitivesColorsAlphaBlack23","tokens.PrimitivesColorsAlphaBlack26","tokens.PrimitivesColorsAlphaBlack38","tokens.PrimitivesColorsAlphaBlack42","tokens.PrimitivesColorsAlphaBlack56","tokens.PrimitivesColorsAlphaBlack60","tokens.PrimitivesColorsAlphaBlack87","tokens.PrimitivesColorsAlphaWhite8","tokens.PrimitivesColorsAlphaWhite12","tokens.PrimitivesColorsAlphaWhite16","tokens.PrimitivesColorsAlphaWhite23","tokens.PrimitivesColorsAlphaWhite26","tokens.PrimitivesColorsAlphaWhite30","tokens.PrimitivesColorsAlphaWhite42","tokens.PrimitivesColorsAlphaWhite50","tokens.PrimitivesColorsAlphaWhite70","tokens.PrimitivesColorsAlphaWhite100","tokens.PrimitivesColorsAlphaPrimary8","tokens.PrimitivesColorsAlphaPrimary12","tokens.PrimitivesColorsAlphaPrimary16","tokens.PrimitivesColorsAlphaPrimary25","tokens.PrimitivesColorsAlphaPrimary24Dark","tokens.PrimitivesColorsAlphaPrimary32Dark","tokens.PrimitivesColorsAlphaPrimary40Dark","tokens.PrimitivesColorsSpecialRating","tokens.ComponentAlertLightBorderRadius","tokens.ComponentAlertLightErrorFilledBackground","tokens.ComponentAlertLightErrorFilledForeground","tokens.ComponentAlertLightErrorOutlinedBackground","tokens.ComponentAlertLightErrorOutlinedForeground","tokens.ComponentAlertLightErrorOutlinedBorder","tokens.ComponentAlertLightErrorStandardBackground","tokens.ComponentAlertLightErrorStandardForeground","tokens.ComponentAlertLightWarningFilledBackground","tokens.ComponentAlertLightWarningFilledForeground","tokens.ComponentAlertLightWarningOutlinedBackground","tokens.ComponentAlertLightWarningOutlinedForeground","tokens.ComponentAlertLightWarningOutlinedBorder","tokens.ComponentAlertLightWarningStandardBackground","tokens.ComponentAlertLightWarningStandardForeground","tokens.ComponentAlertLightInfoFilledBackground","tokens.ComponentAlertLightInfoFilledForeground","tokens.ComponentAlertLightInfoOutlinedBackground","tokens.ComponentAlertLightInfoOutlinedForeground","tokens.ComponentAlertLightInfoOutlinedBorder","tokens.ComponentAlertLightInfoStandardBackground","tokens.ComponentAlertLightInfoStandardForeground","tokens.ComponentAlertLightSuccessFilledBackground","tokens.ComponentAlertLightSuccessFilledForeground","tokens.ComponentAlertLightSuccessOutlinedBackground","tokens.ComponentAlertLightSuccessOutlinedForeground","tokens.ComponentAlertLightSuccessOutlinedBorder","tokens.ComponentAlertLightSuccessStandardBackground","tokens.ComponentAlertLightSuccessStandardForeground","tokens.ComponentInputLightBorderRadius","tokens.ComponentInputLightStandardEnabledBorder","tokens.ComponentInputLightFilledEnabledFill","tokens.ComponentInputLightOutlinedEnabledBorder","tokens.ComponentPaperLightElevation0","tokens.ComponentPaperLightElevation1","tokens.ComponentPaperLightElevation2","tokens.ComponentChipDefaultCloseFill","tokens.ComponentChipDefaultEnabledBorder","tokens.ComponentButtonBorderRadius","tokens.ComponentCardLightBorderRadius","tokens.ComponentDialogLightBorderRadius","tokens.ComponentTableLightBorder","tokens.ComponentTableLightHeaderBackground","tokens.ComponentRatingActiveFill","tokens.ComponentRatingEnabledBorder","tokens.SemanticColorDarkPrimaryMain","tokens.SemanticColorDarkPrimaryDark","tokens.SemanticColorDarkPrimaryLight","tokens.SemanticColorDarkPrimaryContrastText","tokens.SemanticColorDarkSecondaryMain","tokens.SemanticColorDarkSecondaryDark","tokens.SemanticColorDarkSecondaryLight","tokens.SemanticColorDarkSecondaryContrastText","tokens.SemanticColorDarkErrorMain","tokens.SemanticColorDarkErrorDark","tokens.SemanticColorDarkErrorLight","tokens.SemanticColorDarkErrorContrastText","tokens.SemanticColorDarkWarningMain","tokens.SemanticColorDarkWarningDark","tokens.SemanticColorDarkWarningLight","tokens.SemanticColorDarkWarningContrastText","tokens.SemanticColorDarkInfoMain","tokens.SemanticColorDarkInfoDark","tokens.SemanticColorDarkInfoLight","tokens.SemanticColorDarkInfoContrastText","tokens.SemanticColorDarkSuccessMain","tokens.SemanticColorDarkSuccessDark","tokens.SemanticColorDarkSuccessLight","tokens.SemanticColorDarkSuccessContrastText","tokens.SemanticColorDarkBackgroundDefault","tokens.SemanticColorDarkBackgroundPaper","tokens.SemanticColorDarkTextPrimary","tokens.SemanticColorDarkTextSecondary","tokens.SemanticColorDarkTextDisabled","tokens.SemanticColorDarkActionActive","tokens.SemanticColorDarkActionHover","tokens.SemanticColorDarkActionSelected","tokens.SemanticColorDarkActionDisabled","tokens.SemanticColorDarkActionDisabledBackground","tokens.SemanticColorDarkDivider","tokens.ComponentAlertDarkBorderRadius","tokens.ComponentAlertDarkErrorFilledBackground","tokens.ComponentAlertDarkErrorFilledForeground","tokens.ComponentAlertDarkErrorOutlinedBackground","tokens.ComponentAlertDarkErrorOutlinedForeground","tokens.ComponentAlertDarkErrorOutlinedBorder","tokens.ComponentAlertDarkErrorStandardBackground","tokens.ComponentAlertDarkErrorStandardForeground","tokens.ComponentAlertDarkWarningFilledBackground","tokens.ComponentAlertDarkWarningFilledForeground","tokens.ComponentAlertDarkWarningOutlinedBackground","tokens.ComponentAlertDarkWarningOutlinedForeground","tokens.ComponentAlertDarkWarningOutlinedBorder","tokens.ComponentAlertDarkWarningStandardBackground","tokens.ComponentAlertDarkWarningStandardForeground","tokens.ComponentAlertDarkInfoFilledBackground","tokens.ComponentAlertDarkInfoFilledForeground","tokens.ComponentAlertDarkInfoOutlinedBackground","tokens.ComponentAlertDarkInfoOutlinedForeground","tokens.ComponentAlertDarkInfoOutlinedBorder","tokens.ComponentAlertDarkInfoStandardBackground","tokens.ComponentAlertDarkInfoStandardForeground","tokens.ComponentAlertDarkSuccessFilledBackground","tokens.ComponentAlertDarkSuccessFilledForeground","tokens.ComponentAlertDarkSuccessOutlinedBackground","tokens.ComponentAlertDarkSuccessOutlinedForeground","tokens.ComponentAlertDarkSuccessOutlinedBorder","tokens.ComponentAlertDarkSuccessStandardBackground","tokens.ComponentAlertDarkSuccessStandardForeground","tokens.ComponentInputDarkBorderRadius","tokens.ComponentInputDarkStandardEnabledBorder","tokens.ComponentInputDarkFilledEnabledFill","tokens.ComponentInputDarkOutlinedEnabledBorder","tokens.ComponentPaperDarkElevation0","tokens.ComponentPaperDarkElevation1","tokens.ComponentPaperDarkElevation2","tokens.ComponentPaperDarkElevation4","tokens.ComponentPaperDarkElevation6","tokens.ComponentPaperDarkElevation8","tokens.ComponentPaperDarkElevation12","tokens.ComponentPaperDarkElevation16","tokens.ComponentPaperDarkElevation24","tokens.ComponentCardDarkBorderRadius","tokens.ComponentDialogDarkBorderRadius","tokens.ComponentTableDarkBorder","tokens.ComponentTableDarkHeaderBackground","theme","spacing","shape","typography","MuiBox","MuiStack","tokens.ComponentAvatarSmall","tokens.ComponentAvatarMedium","tokens.ComponentAvatarLarge","tokens.ComponentAvatarBorderRadius","tokens.PrimitivesRadiusSm","MuiTypography","Box","Typography","MuiDivider","MuiIconButton","MuiTooltip","tokens.ComponentTooltipLightBackground","tokens.ComponentTooltipDarkBackground","tokens.ComponentTooltipLightForeground","tokens.ComponentTooltipDarkForeground","tokens.ComponentTooltipLightBorderRadius","tokens.ComponentTooltipDarkBorderRadius","tokens.PrimitivesSpacing05","tokens.PrimitivesSpacing1","tokens","IconButton","Stack","TextField","List","Divider","MuiList","MuiListItemButton","Tooltip","Paper","Alert","e","MuiLocalizationProvider","keyframes","bounce","Button","Badge"],"mappings":"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"}
|