shadimage
mui-treasury
itemapp-shopping-cartsource: ok · hit

App Shopping Cart

A app-shopping-cart item.

npx shadcn add "https://mui-treasury.com/r/app-shopping-cart.json"
free

Where it goes

checkout

Use cases

ecommerce

Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.

Dependencies

Bundle weight · light
@mui/icons-material@mui/material@emotion/react@emotion/styled

Registry dependencies

https://www.mui-treasury.com/r/layout-core.json

Files12 · source cached 10/14/2026, 11:26:45 AM

layout/app-shopping-cart/app-shopping-cart.tsx
'use client';
import React from 'react';

import CreditCard from '@mui/icons-material/CreditCard';
import Box from '@mui/material/Box';
import Container from '@mui/material/Container';
import CssBaseline from '@mui/material/CssBaseline';
import Fab from '@mui/material/Fab';
import { ThemeProvider, styled } from '@mui/material/styles';

import {
  Content,
  EdgeDrawerTriggerRight,
  EdgeSidebarContent,
  EdgeSidebarRight,
  Footer,
  Header,
  InsetAvoidingView,
  InsetContent,
  InsetSidebar,
  Root,
} from '../layout-core';
import {
  DailyCart,
  DailyCheckout,
  DailyHeader,
  DailySummary,
  dailyShoppingTheme,
} from './components';

const StyledHeader = styled(Header)(() => ({
  backgroundColor: '#ffffff',
}));

const InsetAvoidingViewFooter = styled(InsetAvoidingView)(
  ({ theme: { breakpoints } }) => ({
    border: 'unset',
    position: 'relative',
    backgroundColor: '#fff',
    paddingTop: '1rem',

    '&:before': {
      content: '" "',
      position: 'absolute',
      width: '100%',
      height: 24,
      top: -1,
      left: 0,
      transform: 'translateY(-100%)',
      background: 'linear-gradient(to top, #ffffff, rgba(255,255,255,0))',
    },

    [breakpoints.only('sm')]: {
      paddingRight: 64,
    },

    [breakpoints.up('md')]: {
      paddingBottom: 40,
    },
  }),
);

export function LayoutV6AppShoppingCart() {
  return (
    <ThemeProvider theme={dailyShoppingTheme}>
      <Root standalone>
        <CssBaseline />
        <EdgeDrawerTriggerRight
          render={
            <Fab
              color={'primary'}
              sx={(theme) => ({
                position: 'fixed',
                bottom: 16,
                right: 16,
                color: '#2E3B4D',
                '& svg': {
                  fontSize: 32,
                  color: '#fff',
                },
                zIndex: 1500,
                transition: '0.3s cubic-bezier(.47,1.64,.41,.8)',
                [theme.breakpoints.up('sm')]: {
                  bottom: 40,
                },
                [theme.breakpoints.up('lg')]: {
                  transform: 'scale(0)',
                },
              })}
            >
              <CreditCard />
            </Fab>
          }
        />
        <StyledHeader height="64px" sx={{ position: 'relative' }}>
          <Container maxWidth="xl">
            <DailyHeader />
          </Container>
        </StyledHeader>
        <EdgeSidebarRight
          variant={{
            xs: ['drawer', { width: 'min(400px, 100vw)' }],
          }}
        >
          <EdgeSidebarContent
            sx={{
              padding: 'calc(var(--jun-ES-drawerOpen) * 0.5rem)',
              bgcolor: 'initial',
            }}
          >
            <DailyCheckout />
          </EdgeSidebarContent>
        </EdgeSidebarRight>
        <Content>
          <Container maxWidth="xl">
            <DailyCart />
            <InsetSidebar
              position="absolute"
              width={{ lg: 'max(25cqw, 360px)' }}
              sx={{
                '& > div': {
                  border: 'none',
                  py: '1rem',
                },
              }}
            >
              <InsetContent>
                <DailyCheckout />
              </InsetContent>
            </InsetSidebar>
          </Container>
        </Content>
        <Footer>
          <Container maxWidth="xl">
            <InsetAvoidingViewFooter>
              <Box
                sx={{
                  pb: 3,
                }}
              >
                <DailySummary />
              </Box>
            </InsetAvoidingViewFooter>
          </Container>
        </Footer>
      </Root>
    </ThemeProvider>
  );
}
layout/app-shopping-cart/components/DailyCart.tsx
'use client';
import React from 'react';

import Close from '@mui/icons-material/Close';
import Box from '@mui/material/Box';
import IconButton from '@mui/material/IconButton';
import Table from '@mui/material/Table';
import TableBody from '@mui/material/TableBody';
import TableCell from '@mui/material/TableCell';
import TableContainer from '@mui/material/TableContainer';
import TableHead from '@mui/material/TableHead';
import TableRow from '@mui/material/TableRow';
import Typography from '@mui/material/Typography';
import { styled } from '@mui/material/styles';

import DailyInteger from './DailyInteger';
import DailySizeSelector from './DailySizeSelector';

const TypographyHeading = styled(Typography)(({ theme: { breakpoints } }) => ({
  fontWeight: 900,
  fontSize: '1.75rem',
  textAlign: 'center',

  [breakpoints.up('sm')]: {
    textAlign: 'left',
  },

  [breakpoints.up('md')]: {
    fontSize: '2.25rem',
  },
}));

const StyledTable = styled(Table)(() => ({
  minWidth: 650,
}));

const ImgImage = styled('img')(() => ({
  width: '100%',
  height: '100%',
  objectFit: 'contain',
}));

const PName = styled('p')(() => ({
  fontFamily:
    '-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif',
  fontWeight: 'bold',
  fontSize: 16,
  margin: '0 0 8px 0',
}));

const SpanDescr = styled('span')(({ theme: { palette } }) => ({
  fontSize: 14,
  color: palette.text.secondary,
}));

function createData(
  image: string,
  name: string,
  descr: string,
  size: string | number,
  quantity: number,
  totalPrice: string,
) {
  return { image, name, descr, size, quantity, totalPrice };
}

const rows = [
  createData(
    'https://dynamic.zacdn.com/TIqU0jk90hPxnuO44NnNXO4B1AU=/fit-in/346x500/filters:quality(95):fill(ffffff)/http://static.sg.zalora.net/p/fila-4662-609589-1.jpg',
    'Henry T-Shirt',
    'White, Screen',
    'S',
    2,
    '$39.98',
  ),
  createData(
    'https://www.hybridoutfitters.com/wp-content/uploads/2019/11/147.jpg',
    'Stripe Tee',
    'ocean, stripe',
    'M',
    3,
    '$100',
  ),
  createData(
    'https://gloimg.zafcdn.com/zaful/pdm-product-pic/Clothing/2019/09/18/goods-first-img/1568766431491927776.jpg',
    'Sweater Hood',
    'Light Brown, Wool',
    'S',
    1,
    '$39.99',
  ),
  createData(
    'https://l.lnwfile.com/_resize_images/600/600/w1/nh/5z.jpg',
    'Jackboot',
    'Brown, Leather',
    10.5,
    1,
    '$69.99',
  ),
];

const DailyCart = () => {
  return (
    <Box
      sx={{
        pt: { xs: 2, sm: 4, md: 6 },
      }}
    >
      <TypographyHeading variant={'h1'} gutterBottom>
        Shopping Cart.
      </TypographyHeading>
      <TableContainer>
        <StyledTable aria-label="simple table">
          <TableHead>
            <TableRow>
              <TableCell>Product</TableCell>
              <TableCell>Size</TableCell>
              <TableCell>Quantity</TableCell>
              <TableCell>Total Price</TableCell>
              <TableCell>&nbsp;</TableCell>
            </TableRow>
          </TableHead>
          <TableBody>
            {rows.map((row) => (
              <TableRow key={row.name}>
                <TableCell component="th" scope="row">
                  <Box
                    sx={{
                      display: 'flex',
                      alignItems: 'center',
                    }}
                  >
                    <Box
                      sx={{
                        width: 80,
                        height: 80,
                      }}
                    >
                      <ImgImage alt={row.name} src={row.image} />
                    </Box>
                    <Box
                      sx={{
                        ml: 2,
                      }}
                    >
                      <PName>{row.name}</PName>
                      <SpanDescr>{row.descr}</SpanDescr>
                    </Box>
                  </Box>
                </TableCell>
                <TableCell>
                  <DailySizeSelector>{row.size}</DailySizeSelector>
                </TableCell>
                <TableCell>
                  <DailyInteger>{row.quantity}</DailyInteger>
                </TableCell>
                <TableCell>{row.totalPrice}</TableCell>
                <TableCell>
                  <IconButton>
                    <Close />
                  </IconButton>
                </TableCell>
              </TableRow>
            ))}
          </TableBody>
        </StyledTable>
      </TableContainer>
    </Box>
  );
};

export default DailyCart;
layout/app-shopping-cart/components/DailyCheckout.tsx
'use client';
import React from 'react';

import CreditCard from '@mui/icons-material/CreditCard';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import MenuItem from '@mui/material/MenuItem';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import { styled } from '@mui/material/styles';

const BoxRoot = styled(Box)(() => ({
  display: 'flex',
  flexDirection: 'column',
  background: 'linear-gradient(45deg, #191D29, #3c5981)',
  borderRadius: 12,
  height: '100%',
  overflow: 'auto',

  '& *': {
    color: '#fff',
  },
}));

const TypographyHeading = styled(Typography)(() => ({
  fontWeight: 900,
  fontSize: '2.25rem',
}));

const StyledDivider = styled(Divider)(() => ({
  backgroundColor: '#fff',
  opacity: 0.12,
  margin: '24px 0',
}));

const TypographyLabel = styled(Typography)(() => ({
  fontSize: 12,
  fontWeight: 'bold',
  marginBottom: 16,
  opacity: 0.87,
}));

const StyledTextField = styled(TextField)(() => ({
  '& label': {
    color: '#fff',
    opacity: 0.87,
    fontWeight: 'bold',
  },
  '& .MuiInputBase-root': {
    color: '#fff',
  },
  '& .MuiOutlinedInput-notchedOutline': {
    borderColor: 'rgba(255, 255, 255, 0.12)',
  },
  '&:hover': {
    '& .MuiOutlinedInput-notchedOutline': {
      borderColor: 'rgba(255, 255, 255, 0.38)',
    },
  },
}));

const TextFieldSelect = styled(TextField)(() => ({
  '& label': {
    color: '#fff',
    opacity: 0.4,
  },
  '& .MuiInputBase-root': {
    color: '#fff',
  },
  '& .MuiOutlinedInput-notchedOutline': {
    borderColor: 'rgba(255, 255, 255, 0.12)',
  },
  '&:hover': {
    '& .MuiOutlinedInput-notchedOutline': {
      borderColor: 'rgba(255, 255, 255, 0.38)',
    },
  },
}));

const ButtonCheckoutBtn = styled(Button)(() => ({
  marginTop: 'auto',
  borderRadius: 40,
  width: '100%',
}));

const DailyCheckout = () => {
  const styles = {
    button: {
      textTransform: 'initial',
      minHeight: 48,
      borderRadius: 40,
      borderColor: 'rgba(255, 255, 255, 0.12)',
      borderStyle: 'solid',
      borderWidth: 1,
      width: '100%',
      color: '#fff',
      '&:hover': {
        backgroundColor: 'rgba(255, 255, 255, 0.12)',
      },
    },
    buttonActive: {
      borderColor: '#fff',
    },
  } as const;
  return (
    <BoxRoot sx={{ py: 3, px: 3.5 }}>
      <TypographyHeading variant={'h1'}>Payment Info.</TypographyHeading>
      <StyledDivider />
      <TypographyLabel>Payment Method:</TypographyLabel>
      <Grid container spacing={2}>
        <Grid size={6}>
          <Button
            startIcon={<CreditCard />}
            sx={{
              ...styles.button,
              ...styles.buttonActive,
            }}
          >
            Credit Card
          </Button>
        </Grid>
        <Grid size={6}>
          <Button
            sx={{
              ...styles.button,
              ...styles.buttonActive,
              fontSize: 20,
              textTransform: 'initial',
              fontStyle: 'italic',
              fontFamily:
                '-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif',
              fontWeight: 'bold',
              lineHeight: 1,
            }}
          >
            PayPal
          </Button>
        </Grid>
      </Grid>
      <StyledDivider />
      <StyledTextField
        fullWidth
        margin="dense"
        label={'Name On Card:'}
        value={'Siriwat Knp'}
      />
      <Box sx={{ height: 24, flex: 'none' }} />
      <StyledTextField
        fullWidth
        margin="dense"
        label={'Card Number:'}
        value={'••••  ••••  ••••  1829'}
      />
      <Box sx={{ height: 24, flex: 'none' }} />
      <Grid container spacing={3}>
        <Grid size={8}>
          <TypographyLabel>Expiration Date:</TypographyLabel>
          <Box>
            <Grid container spacing={2}>
              <Grid size={6}>
                <TextFieldSelect select fullWidth label={'MM'} defaultValue="">
                  {Array.from({ length: 12 }, (_, i) => {
                    const val = String(i + 1).padStart(2, '0');
                    return (
                      <MenuItem key={val} value={val}>
                        {val}
                      </MenuItem>
                    );
                  })}
                </TextFieldSelect>
              </Grid>
              <Grid size={6}>
                <TextFieldSelect
                  select
                  fullWidth
                  label={'YYYY'}
                  defaultValue=""
                >
                  {Array.from({ length: 10 }, (_, i) => {
                    const val = String(2025 + i);
                    return (
                      <MenuItem key={val} value={val}>
                        {val}
                      </MenuItem>
                    );
                  })}
                </TextFieldSelect>
              </Grid>
            </Grid>
          </Box>
        </Grid>
        <Grid size={4}>
          <TypographyLabel>CCV:</TypographyLabel>
          <StyledTextField
            fullWidth
            slotProps={{
              inputLabel: {
                shrink: true,
              },
            }}
            aria-label="CCV"
            placeholder={'XXX'}
          />
        </Grid>
      </Grid>
      <Box sx={{ height: 24, flex: 'none' }} />
      <ButtonCheckoutBtn color={'primary'} variant={'contained'}>
        Check Out.
      </ButtonCheckoutBtn>
    </BoxRoot>
  );
};

export default DailyCheckout;
layout/app-shopping-cart/components/DailyHeader.tsx
'use client';
import React from 'react';

import ClearAll from '@mui/icons-material/ClearAll';
import ShoppingBasket from '@mui/icons-material/ShoppingBasket';
import Box from '@mui/material/Box';
import IconButton from '@mui/material/IconButton';
import Toolbar from '@mui/material/Toolbar';

import DailyLogo from './DailyLogo';
import DailySearch from './DailySearch';

const DailyHeader = () => {
  return (
    <Toolbar disableGutters>
      <DailyLogo />
      <Box
        sx={{
          ml: 'auto',
        }}
      >
        <DailySearch />
      </Box>
      <Box
        sx={{
          ml: { xs: 2, md: 10, lg: 15 },
          justifyContent: 'flex-end',
          display: 'flex',
          alignItems: 'center',
        }}
      >
        <Box
          sx={{
            mr: 2,
            display: 'flex',
            alignItems: 'center',
          }}
        >
          <ShoppingBasket />
          <Box
            sx={{
              backgroundColor: '#F6F7F9',
              borderRadius: 40,
              minWidth: 24,
              minHeight: 24,
              lineHeight: '24px',
              textAlign: 'center',
              padding: '0 8px',
              marginLeft: 8,
            }}
          >
            4
          </Box>
        </Box>
        <IconButton>
          <ClearAll />
        </IconButton>
      </Box>
    </Toolbar>
  );
};

export default DailyHeader;
layout/app-shopping-cart/components/DailyInteger.tsx
'use client';
import React from 'react';

import Add from '@mui/icons-material/Add';
import Remove from '@mui/icons-material/Remove';
import Box from '@mui/material/Box';
import IconButton from '@mui/material/IconButton';

const DailyInteger = ({ children }: React.PropsWithChildren) => {
  return (
    <Box
      sx={{
        display: 'inline-flex',
        alignItems: 'center',
        padding: '4px',
        borderRadius: '40px',
        border: '1px solid',
        borderColor: 'grey.300',
      }}
    >
      <IconButton
        sx={{
          padding: '8px',
          '& svg': {
            fontSize: 16,
          },
        }}
      >
        <Remove />
      </IconButton>
      <Box component="span" sx={{ padding: '0px 8px' }}>
        {children}
      </Box>
      <IconButton
        sx={{
          padding: '8px',
          '& svg': {
            fontSize: 16,
          },
        }}
      >
        <Add />
      </IconButton>
    </Box>
  );
};

export default DailyInteger;
layout/app-shopping-cart/components/DailyLogo.tsx
'use client';
import React from 'react';

import Typography from '@mui/material/Typography';

const DailyLogo = () => {
  return (
    <Typography
      variant={'h5'}
      sx={{ fontWeight: 900, textTransform: 'uppercase', whiteSpace: 'nowrap' }}
    >
      <span>#</span> Daily.
    </Typography>
  );
};

export default DailyLogo;
layout/app-shopping-cart/components/DailySearch.tsx
'use client';
import React from 'react';

import Search from '@mui/icons-material/Search';
import IconButton from '@mui/material/IconButton';
import InputAdornment from '@mui/material/InputAdornment';
import InputBase from '@mui/material/InputBase';

const DailySearch = () => {
  return (
    <>
      <InputBase
        placeholder={'Search'}
        endAdornment={
          <InputAdornment position={'end'}>
            <Search />
          </InputAdornment>
        }
        sx={(theme) => ({
          backgroundColor: '#F6F7F9',
          padding: theme.spacing(1, 3),
          borderRadius: '40px',
          flexShrink: 0,
          display: 'none',
          [theme.breakpoints.up('sm')]: {
            display: 'inline-flex',
          },
          [theme.breakpoints.up('md')]: {
            minWidth: 300,
          },
        })}
      />
      <IconButton
        sx={(theme) => ({
          [theme.breakpoints.up('sm')]: {
            display: 'none',
          },
        })}
      >
        <Search />
      </IconButton>
    </>
  );
};

export default DailySearch;
layout/app-shopping-cart/components/DailySizeSelector.tsx
'use client';
import React from 'react';

import KeyboardArrowDown from '@mui/icons-material/KeyboardArrowDown';
import Box from '@mui/material/Box';
import ButtonBase from '@mui/material/ButtonBase';

const DailySizeSelector = ({ children }: React.PropsWithChildren) => {
  return (
    <ButtonBase sx={{ borderRadius: '40px' }}>
      <Box
        sx={{
          display: 'inline-flex',
          alignItems: 'center',
          padding: '8px 40px 8px 12px',
          position: 'relative',
          borderRadius: '40px',
          border: '1px solid',
          borderColor: 'grey.300',
          fontSize: 14,
          minHeight: 42,
        }}
      >
        {children}{' '}
        <KeyboardArrowDown
          sx={{
            position: 'absolute',
            right: 8,
            top: '50%',
            transform: 'translateY(-50%)',
            color: 'grey.700',
          }}
        />
      </Box>
    </ButtonBase>
  );
};

export default DailySizeSelector;
layout/app-shopping-cart/components/DailySummary.tsx
'use client';
import React from 'react';

import KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import { styled } from '@mui/material/styles';

const ButtonBtn = styled(Button)(({ theme: { palette, breakpoints } }) => ({
  width: '100%',
  paddingTop: 16,
  paddingBottom: 16,
  borderRadius: 40,
  border: '1px solid',
  borderColor: palette.grey[400],

  '& > *': {
    fontWeight: 'bold',
    textTransform: 'none',
  },

  marginRight: 72,

  [breakpoints.up('sm')]: {
    marginRight: 'unset',
  },
}));

const BBig = styled('b')(() => ({
  fontSize: 16,
}));

const BoxBig = styled(Box)(() => ({
  fontSize: 16,
}));

const BoxLarge = styled(Box)(() => ({
  fontSize: 24,
}));

const GridMainGrid = styled(Grid)(({ theme: { breakpoints } }) => ({
  [breakpoints.up('sm')]: {
    flexDirection: 'row-reverse',
  },
}));

const DailySummary = () => {
  return (
    <GridMainGrid
      container
      spacing={2}
      sx={{ justifyContent: 'space-between' }}
    >
      <Grid size={{ xs: 12, sm: 5, md: 4 }}>
        <Grid container spacing={1}>
          <Grid size={5}>
            <Box sx={{ textAlign: 'right' }}>
              <BBig>Subtotal:</BBig>
            </Box>
          </Grid>
          <Grid size={7}>
            <BoxBig sx={{ px: 2, textAlign: 'right' }}>
              <span>$149.96</span>
            </BoxBig>
          </Grid>
          <Grid size={5}>
            <Box sx={{ textAlign: 'right' }}>
              <BBig>Shipping:</BBig>
            </Box>
          </Grid>
          <Grid size={7}>
            <BoxBig sx={{ px: 2, textAlign: 'right' }}>
              <span>$0</span>
            </BoxBig>
          </Grid>
        </Grid>
        <br />
        <Divider />
        <br />
        <Grid container spacing={1}>
          <Grid size={5}>
            <Box sx={{ textAlign: 'right' }}>
              <BBig>Total:</BBig>
            </Box>
          </Grid>
          <Grid size={7}>
            <BoxLarge sx={{ px: 2, textAlign: 'right' }}>
              <span>$149.96</span>
            </BoxLarge>
          </Grid>
        </Grid>
      </Grid>
      <Grid
        size={{ xs: 12, sm: 5, md: 4 }}
        container
        sx={{
          alignItems: 'flex-end',
        }}
      >
        <ButtonBtn startIcon={<KeyboardArrowLeft />}>
          Continue Shopping
        </ButtonBtn>
      </Grid>
    </GridMainGrid>
  );
};

export default DailySummary;
layout/app-shopping-cart/components/dailyShoppingTheme.ts
'use client';
import { createTheme } from '@mui/material/styles';

export default createTheme({
  typography: {
    fontFamily: '"Fira Sans", "Roboto", "Helvetica", "Arial", sans-serif',
    h1: {
      fontFamily:
        '"Playfair Display", "Roboto", "Helvetica", "Arial", sans-serif',
    },
    h2: {
      fontFamily:
        '"Playfair Display", "Roboto", "Helvetica", "Arial", sans-serif',
    },
    h3: {
      fontFamily:
        '"Playfair Display", "Roboto", "Helvetica", "Arial", sans-serif',
    },
    h4: {
      fontFamily:
        '"Playfair Display", "Roboto", "Helvetica", "Arial", sans-serif',
    },
    h5: {
      fontFamily:
        '"Playfair Display", "Roboto", "Helvetica", "Arial", sans-serif',
    },
    h6: {
      fontFamily:
        '"Playfair Display", "Roboto", "Helvetica", "Arial", sans-serif',
    },
  },
  palette: {
    primary: {
      main: '#3E89EB',
    },
    background: {
      default: '#ffffff',
    },
  },
});
layout/app-shopping-cart/components/index.ts
export { default as DailyLogo } from './DailyLogo';
export { default as dailyShoppingTheme } from './dailyShoppingTheme';
export { default as DailySearch } from './DailySearch';
export { default as DailyHeader } from './DailyHeader';
export { default as DailyCart } from './DailyCart';
export { default as DailyCheckout } from './DailyCheckout';
export { default as DailySizeSelector } from './DailySizeSelector';
export { default as DailyInteger } from './DailyInteger';
export { default as DailySummary } from './DailySummary';
layout/app-shopping-cart/index.ts
export * from './app-shopping-cart';
export * from './DailyCart';
export { default as DailyCart } from './DailyCart';
export * from './DailyCheckout';
export { default as DailyCheckout } from './DailyCheckout';
export * from './DailyHeader';
export { default as DailyHeader } from './DailyHeader';
export * from './DailyInteger';
export { default as DailyInteger } from './DailyInteger';
export * from './DailyLogo';
export { default as DailyLogo } from './DailyLogo';
export * from './DailySearch';
export { default as DailySearch } from './DailySearch';
export * from './DailySizeSelector';
export { default as DailySizeSelector } from './DailySizeSelector';
export * from './DailySummary';
export { default as DailySummary } from './DailySummary';
export * from './dailyShoppingTheme';
export * from './index';

More from mui-treasury

Browse all components in this library →