{"version":3,"sources":["../src/index.ts","../src/components/XPage/prod.tsx","../src/components/containers/XStack/prod.tsx","../src/components/containers/XGrid/prod.tsx","../src/components/containers/XCarousel/prod.tsx","../src/components/common/XFooter/prod.tsx","../src/components/common/XHeader/prod.tsx","../src/components/core/drawers/ActionsDrawer.tsx","../src/components/core/drawers/actions/CartList.tsx","../src/components/core/drawers/actions/WishList.tsx","../src/components/core/drawers/actions/Auth.tsx","../src/components/core/drawers/actions/Menu.tsx","../src/context/XoraiaProvider.tsx","../src/lib/RecoilDevTools.ts"],"names":["React","_","isEqual","Stack","compareProps","prevProps","nextProps","XStackProd","config","children","breakpoint","useBreakpoint","xElement","useXElement","value","valueAtBreakPoint","getValueOnBreakpoint","core_default","DynamicXElement","prod_default","index","hierachy","element","setXElement","XText_default","XButton_default","XImage_default","XRating_default","XIcon_default","XMap_default","XBreadcrumb_default","XForm_default","XCarousel","XGridProd","uniq","XFooter","initData","child","position","setParent","useXCommonUpdater","setFooter","old","elementsIndexes","CONTAINERS_NAME","XHeader","Divider","Drawer","Typography","useRecoilState","HighlightOffOutlined","Button","IconButton","List","ListItem","ListItemAvatar","ListItemSecondaryAction","ListItemText","useSetRecoilState","CartList","imageComponent","env","Link","useXoraiaValue","cart","setCart","useCart","setDrawer","USE_ACTION_DRAWER","removeArticle","article","carts","e","error","id","images","name","price","qty","prev","cur","CartList_default","WishList","wishlist","setWishlist","useWishlist","WishList_default","Tab","Tabs","TextField","useForm","Controller","Auth","apiFetcher","userId","tab","setTab","control","handleSubmit","errors","onSubmit","data","user","logOut","fields","v","label","field","_a","Auth_default","ListItemButton","MenuList","xPath","useXPathValue","MENU_LINKS","page","isActived","Menu_default","ActionsDrawer","drawer","ActionsDrawer_default","XPageProd","initPage","path","initFooter","initHeader","initCommon","xHeader","setXHeader","useXCommonChildren","xFooter","setXFooter","c","content","i","useXElementUpdater","XCategoryFilter_default","XProductDetails_default","createTheme","ThemeProvider","useMount","RecoilRoot","RecoilUndoRoot","useRecoilSnapshot","RecoilDevTools","snapshot","node","XGUI","XoraiaProvider","initConfig","props","Content","setConfig","useXoraiaUpdater","_config","devProps","objectFit","alt","bgColor","href","margin","padding","border","borderRadius","src","sx","image","generateSide","generateBorder","generateRadius","theme","MAIN_COLOR","SECONDARY_COLOR","XoraiaProvider_default","XPage","SaveButton","AddButton","ShowPreview","ToggleBreakPoints","Browser","SwitchPage","XArticleProvider","XArticle","XEditor"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport XPageProd from \"./components/XPage/prod\";\nimport XoraiaProvider from \"./context/XoraiaProvider\";\n\nconst XPage = React.lazy(() => import(\"./components/XPage\"));\nconst SaveButton = React.lazy(() => import(\"./components/SaveButton\"));\nconst AddButton = React.lazy(() => import(\"./components/AddBtn\"));\nconst ShowPreview = React.lazy(() => import(\"./components/ShowPreview\"));\nconst ToggleBreakPoints = React.lazy(\n  () => import(\"./components/ToggleBreakPoints\")\n);\nconst Browser = React.lazy(() => import(\"./components/Browser\"));\nconst SwitchPage = React.lazy(() => import(\"./components/SwitchPage\"));\nconst XArticleProvider = React.lazy(() => import(\"./context/XArticleProvider\"));\nconst XArticle = React.lazy(() => import(\"./components/common/XArticle\"));\nconst XEditor = React.lazy(() => import(\"./components/XEditor\"));\n\nexport {\n  XoraiaProvider,\n  XArticleProvider,\n  XPage,\n  SaveButton,\n  AddButton,\n  ShowPreview,\n  ToggleBreakPoints,\n  Browser,\n  SwitchPage,\n  XArticle,\n  // PROD COMPONENTS\n  XPageProd,\n  XEditor,\n};\n\nexport * from \"./hooks/useXoraia\";\nexport * from \"./hooks/useCart\";\nexport * from \"./hooks/useXPath\";\n\n// IMPORTANT TYPES\nexport * from \"./utils/types/common/components.types\";\n\nexport { TXFooterProps } from \"./utils/interfaces/common/XFooter.interfaces\";\nexport { TXHeaderProps } from \"./utils/interfaces/common/XHeader.interfaces\";\n","import _, { isEqual } from \"lodash\";\nimport * as React from \"react\";\nimport { Stack } from \"@mui/material\";\nimport { CONTAINERS_NAME } from \"../../utils/constants/common/componentName\";\nimport { TUseXElement, useXElementUpdater } from \"../../hooks/useXElement\";\nimport { useXCommonChildren } from \"../../hooks/useXCommon\";\nimport { XPageProps } from \"../../utils/interfaces/core/XPage\";\n\n// IMPORTING STATIC COMPONENTS\nimport XStack from \"../containers/XStack/prod\";\nimport XGrid from \"../containers/XGrid/prod\";\nimport XCarousel from \"../containers/XCarousel/prod\";\nimport XFooter from \"../common/XFooter/prod\";\nimport XHeader from \"../common/XHeader/prod\";\nimport XCategoryFilter from \"../containers/XCategoryFilter\";\nimport XProductDetails from \"../containers/XProductDetails\";\nimport ActionsDrawer from \"../core/drawers/ActionsDrawer\";\n\nconst XPageProd: React.FC<XPageProps> = ({\n  initPage = { \"/\": [] },\n  path = \"/\",\n  initFooter = {},\n  initHeader = {},\n  initCommon = [],\n  children,\n}) => {\n  const data = initPage[path] ?? [];\n\n  const { xChildren: xHeader, setXChildren: setXHeader } =\n    useXCommonChildren(\"HEADER\");\n\n  const { xChildren: xFooter, setXChildren: setXFooter } =\n    useXCommonChildren(\"FOOTER\");\n\n  React.useEffect(() => {\n    // SET THE GENERAL HEADER DATA\n    if (initCommon && (!xHeader || xHeader.length === 0)) {\n      setXHeader(\n        initCommon.filter((c) => {\n          if (!c.config) return false;\n\n          return c.config.index.startsWith(\"HEADER\");\n        })\n      );\n    }\n\n    // SET THE GENERAL FOOTER DATA\n    if (initCommon && (!xFooter || xFooter.length === 0)) {\n      setXFooter(\n        initCommon.filter((c) => {\n          if (!c.config) return false;\n\n          return c.config.index.startsWith(\"FOOTER\");\n        })\n      );\n    }\n  }, [initCommon]);\n\n  const content = (\n    <React.Fragment>\n      {data.map((child, i) => {\n        return (\n          <DynamicXElement\n            key={i}\n            child={child}\n            index={child.config?.index ?? \"\"}\n            position={i}\n          />\n        );\n      })}\n    </React.Fragment>\n  );\n\n  return (\n    <Stack\n      id=\"XPage\"\n      sx={{\n        width: \"100vw\",\n        minHeight: \"100vh\",\n        display: \"block\",\n      }}\n    >\n      <XHeader initData={initHeader} />\n      {children ?? content}\n      <XFooter initData={initFooter} />\n      <ActionsDrawer />\n    </Stack>\n  );\n};\n\nexport default XPageProd;\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst DynamicXElement: React.FC<{\n  child: any;\n  index: string;\n  position: number;\n  // elements: any[];\n}> = React.memo(({ child, index, position }) => {\n  const setXElement = useXElementUpdater<any>(index);\n\n  // WE ARE GETTING THE CURRENT ELEMENT FROM THE ATOM FAMILY\n  const setParent = useXElementUpdater<TUseXElement<any>>(\n    child.config.childOf ?? \"NO_PARENT\"\n  );\n\n  // const setFooter = useXFooterUpdater(index);\n\n  React.useEffect(() => {\n    setParent((old) => {\n      const elementsIndexes = old.elementsIndexes\n        ? [...old.elementsIndexes, index]\n        : [index];\n\n      return { ...old, elementsIndexes: _.uniq(elementsIndexes) };\n    });\n\n    setXElement({\n      name: child.name,\n\n      index: child.index ?? index,\n\n      hierachy: child.hierachy ?? \"XPage-\" + child.name,\n\n      value: child.value ?? child.props ?? { all: {} },\n\n      elementsIndexes: child.elementsIndexes ?? [],\n\n      hasChildren: child.hasChildren ?? CONTAINERS_NAME.includes(child.name),\n\n      childOf: child.childOf ?? child.config.childOf ?? null,\n\n      dataFetching: child.dataFetching,\n    });\n  }, [index, position]);\n\n  if (child.config.childOf) return null;\n\n  switch (child.name) {\n    case \"XStack\":\n      return <XStack {...child} />;\n\n    case \"XGrid\":\n      return <XGrid {...child} />;\n    case \"XCategoryFilter\":\n      return <XCategoryFilter {...child} />;\n\n    case \"XProductDetails\":\n      return <XProductDetails {...child} />;\n\n    case \"XCarousel\":\n      return <XCarousel {...child} />;\n\n    default:\n      return null;\n  }\n}, compareProps);\n","import * as React from \"react\";\nimport { isEqual } from \"lodash\";\nimport { XElementConfig } from \"../../../utils/interfaces/Elements/XElement.interfaces\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\nimport { TUseXElement, useXElement } from \"../../../hooks/useXElement\";\nimport { getValueOnBreakpoint } from \"../../../lib/getValueOnBreakpoint\";\nimport {\n  IXStackProps,\n  XStackProps,\n} from \"../../../utils/interfaces/containers/XStack.interfaces\";\nimport XStackCore from \"./core\";\nimport { TDynamicXElement } from \"../../../utils/types/core/DynamicXElement\";\n\nimport XText from \"../../elements/XText\";\nimport XButton from \"../../elements/XButton\";\nimport XRating from \"../../elements/XRating\";\nimport XMap from \"../../elements/XMap\";\nimport XBreadcrumb from \"../../elements/XBreadcrumb\";\nimport XForm from \"../../elements/XForm\";\nimport XIcon from \"../../elements/XIcon\";\nimport XImage from \"../../elements/XImage\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XStackProd: React.FC<XStackProps> = React.memo(\n  ({ config = {} as XElementConfig, children }) => {\n    // WE TRACK THE BREAK POINTS CHANGES\n    const breakpoint = useBreakpoint();\n\n    // WE ARE GETTING THE CURRENT ELEMENT FROM THE ATOM FAMILY\n    const { xElement } = useXElement<TUseXElement<IXStackProps>>(config.index);\n\n    // GARBING THE INDEX UPDATER FOR GENERAL USAGE\n\n    // IF WE DONT HAVE THIS ELEMENT CONFIGS ADDED WE DON'T SHOW IT\n    if ((!xElement || Object.keys(xElement).length === 0) && !children) {\n      return null;\n    }\n\n    // WE GET ALL DEVICES PROPS AS VALUE\n    const { value } = xElement;\n\n    // WE NOW USE THE CURRENT BREAKPOINT VALUE ON THIS ELEMENT\n    const valueAtBreakPoint = getValueOnBreakpoint<IXStackProps>(\n      value as any,\n      breakpoint\n    );\n\n    return (\n      <XStackCore\n        index={config.index}\n        props={valueAtBreakPoint}\n        DynamicXElement={DynamicXElement}\n        children={children}\n      />\n    );\n  },\n  compareProps\n);\n\nexport default XStackProd;\n\nconst DynamicXElement: TDynamicXElement = React.memo(({ index, hierachy }) => {\n  const { xElement: element, setXElement } =\n    useXElement<TUseXElement<any>>(index);\n\n  const xElement = element ?? {};\n\n  React.useEffect(() => {\n    setXElement({\n      ...xElement,\n\n      hierachy: hierachy + \"-\" + xElement.name,\n    });\n  }, [index]);\n\n  switch (xElement.name) {\n    case \"XText\":\n      return <XText config={{ index }} />;\n\n    case \"XButton\":\n      return <XButton config={{ index }} />;\n\n    case \"XImage\":\n      return <XImage config={{ index }} />;\n\n    case \"XRating\":\n      return <XRating config={{ index }} />;\n\n    case \"XIcon\":\n      return <XIcon config={{ index }} />;\n\n    case \"XMap\":\n      return <XMap config={{ index }} />;\n\n    case \"XBreadcrumb\":\n      return <XBreadcrumb config={{ index }} />;\n\n    case \"XForm\":\n      return <XForm config={{ index }} />;\n\n    case \"XStack\":\n      return <XStackProd config={{ index }} />;\n\n    default:\n      return null;\n  }\n}, compareProps);\n","import * as React from \"react\";\nimport { isEqual } from \"lodash\";\nimport { getValueOnBreakpoint } from \"../../../lib/getValueOnBreakpoint\";\nimport {\n  IXGridProps,\n  TXGridProps,\n  XGridProps,\n} from \"../../../utils/interfaces/containers/XGrid.interfaces\";\nimport { XElementConfig } from \"../../../utils/interfaces/Elements/XElement.interfaces\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\nimport { TUseXElement, useXElement } from \"../../../hooks/useXElement\";\nimport { TDynamicXElement } from \"../../../utils/types/core/DynamicXElement\";\n\nimport XGridCore from \"./core\";\nimport XStack from \"../XStack/prod\";\nimport XCarousel from \"../XCarousel/prod\";\nimport XImage from \"../../elements/XImage\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XGridProd: React.FC<XGridProps> = ({ config = {} as XElementConfig }) => {\n  // WE TRACK THE BREAK POINTS CHANGES\n  const breakpoint = useBreakpoint();\n\n  // WE ARE GETTING THE CURRENT ELEMENT FROM THE ATOM FAMILY\n  const { xElement } = useXElement<TUseXElement<TXGridProps>>(config.index);\n\n  // IF WE DONT HAVE THIS ELEMENT CONFIGS ADDED WE DON'T SHOW IT\n  if (!xElement || Object.keys(xElement).length === 0) return null;\n\n  // WE GET ALL DEVICES PROPS AS VALUE\n  const { value } = xElement;\n\n  // WE NOW USE THE CURRENT BREAKPOINT VALUE ON THIS ELEMENT\n  const valueAtBreakPoint = getValueOnBreakpoint<IXGridProps>(\n    value as any,\n    breakpoint\n  );\n\n  return (\n    <XStack config={config}>\n      <XGridCore\n        index={config.index}\n        props={valueAtBreakPoint}\n        DynamicXElement={DynamicXElement}\n      />\n    </XStack>\n  );\n};\n\nexport default React.memo(XGridProd, compareProps);\n\nconst DynamicXElement: TDynamicXElement = React.memo(({ index, hierachy }) => {\n  const { xElement: element, setXElement } =\n    useXElement<TUseXElement<any>>(index);\n\n  const xElement = element ?? {};\n\n  React.useEffect(() => {\n    setXElement({\n      ...xElement,\n\n      hierachy: hierachy + \"-\" + xElement.name,\n    });\n  }, [index]);\n\n  switch (xElement.name) {\n    case \"XStack\":\n      return <XStack config={{ index }} />;\n\n    case \"XCarousel\":\n      return <XCarousel config={{ index }} />;\n\n    case \"XImage\":\n      return <XImage config={{ index }} />;\n\n    case \"XGrid\":\n      return <XGridProd config={{ index }} />;\n\n    default:\n      return null;\n  }\n}, compareProps);\n","import * as React from \"react\";\nimport { isEqual } from \"lodash\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\nimport { TUseXElement, useXElement } from \"../../../hooks/useXElement\";\nimport { getValueOnBreakpoint } from \"../../../lib/getValueOnBreakpoint\";\nimport {\n  IXCarouselProps,\n  TXCarouselProps,\n  XCarouselProps,\n} from \"../../../utils/interfaces/containers/XCarousel.interfaces\";\nimport { XElementConfig } from \"../../../utils/interfaces/Elements/XElement.interfaces\";\nimport XCarouselCore from \"./core\";\nimport { TDynamicXElement } from \"../../../utils/types/core/DynamicXElement\";\n\nimport XStack from \"../XStack/prod\";\nimport XImage from \"../../elements/XImage\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XCarousel: React.FC<XCarouselProps> = React.memo(\n  ({ config = {} as XElementConfig }) => {\n    // WE TRACK THE BREAK POINTS CHANGES\n    const breakpoint = useBreakpoint();\n\n    // WE ARE GETTING THE CURRENT ELEMENT FROM THE ATOM FAMILY\n    const { xElement } = useXElement<TUseXElement<TXCarouselProps>>(\n      config.index\n    );\n\n    // IF WE DONT HAVE THIS ELEMENT CONFIGS ADDED WE DON'T SHOW IT\n    if (!xElement || Object.keys(xElement).length === 0) return null;\n\n    // WE GET ALL DEVICES PROPS AS VALUE\n    const { value } = xElement;\n\n    // WE NOW USE THE CURRENT BREAKPOINT VALUE ON THIS ELEMENT\n    const valueAtBreakPoint = getValueOnBreakpoint<IXCarouselProps>(\n      value as any,\n      breakpoint\n    );\n\n    return (\n      <XStack config={config}>\n        <XCarouselCore\n          index={config.index}\n          props={valueAtBreakPoint}\n          DynamicXElement={DynamicXElement}\n        />\n      </XStack>\n    );\n  },\n  compareProps\n);\n\nexport default XCarousel;\n\nconst DynamicXElement: TDynamicXElement = React.memo(({ index, hierachy }) => {\n  const { xElement: element, setXElement } =\n    useXElement<TUseXElement<any>>(index);\n\n  const xElement = element ?? {};\n\n  React.useEffect(() => {\n    setXElement({\n      ...xElement,\n\n      hierachy: hierachy + \"-\" + xElement.name,\n    });\n  }, [index]);\n\n  switch (xElement.name) {\n    case \"XStack\":\n      return <XStack config={{ index }} />;\n    case \"XImage\":\n      return <XImage config={{ index }} />;\n\n    default:\n      return null;\n  }\n}, compareProps);\n","import * as React from \"react\";\nimport { isEqual, uniq } from \"lodash\";\n\nimport {\n  IXFooterProps,\n  XFooterProps,\n} from \"../../../utils/interfaces/common/XFooter.interfaces\";\nimport { getValueOnBreakpoint } from \"../../../lib/getValueOnBreakpoint\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\nimport { CONTAINERS_NAME } from \"../../../utils/constants/common/componentName\";\nimport { useXCommonUpdater } from \"../../../hooks/useXCommon\";\nimport XFooterCore from \"./core\";\n\nimport XStack from \"../../containers/XStack/prod\";\nimport XGrid from \"../../containers/XGrid/prod\";\nimport { TDynamicXElement } from \"../../../utils/types/core/DynamicXElement\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XFooter: React.FC<XFooterProps> = React.memo(\n  ({ initData = { all: {} } }) => {\n    // WE TRACK THE BREAK POINTS CHANGES\n    const breakpoint = useBreakpoint();\n\n    // WE NOW USE THE CURRENT BREAKPOINT VALUE ON THIS ELEMENT\n    const valueAtBreakPoint = getValueOnBreakpoint<IXFooterProps>(\n      initData,\n      breakpoint\n    );\n\n    return (\n      <XFooterCore\n        index=\"FOOTER\"\n        props={valueAtBreakPoint}\n        DynamicXElement={DynamicXElement}\n      />\n    );\n  },\n  compareProps\n);\n\nexport default XFooter;\n\nconst DynamicXElement: TDynamicXElement = React.memo(\n  ({ child, index, position }) => {\n    const setParent = useXCommonUpdater(child.config.childOf ?? \"NO_PARENT\");\n\n    const setFooter = useXCommonUpdater(index);\n\n    React.useEffect(() => {\n      setParent((old) => {\n        if (!old) return null;\n\n        const elementsIndexes = old.elementsIndexes\n          ? [...old.elementsIndexes, index]\n          : [index];\n\n        return { ...old, elementsIndexes: uniq(elementsIndexes) };\n      });\n\n      setFooter({\n        name: child.name,\n\n        index: child.index ?? index,\n\n        hierachy: child.hierachy ?? \"XFooter-\" + child.name,\n\n        value: child.value ?? child.props ?? { all: {} },\n\n        elementsIndexes: child.elementsIndexes ?? [],\n\n        hasChildren: child.hasChildren ?? CONTAINERS_NAME.includes(child.name),\n\n        childOf: child.childOf ?? child.config.childOf ?? null,\n      });\n    }, [index, position]);\n\n    if (child.config.childOf !== \"FOOTER\") return null;\n\n    switch (child.name) {\n      case \"XStack\":\n        return <XStack {...child} />;\n      case \"XGrid\":\n        return <XGrid {...child} />;\n\n      default:\n        return null;\n    }\n  },\n  compareProps\n);\n","import * as React from \"react\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\nimport { getValueOnBreakpoint } from \"../../../lib/getValueOnBreakpoint\";\nimport { isEqual } from \"lodash\";\nimport {\n  IXHeaderProps,\n  XHeaderProps,\n} from \"../../../utils/interfaces/common/XHeader.interfaces\";\n\nimport XHeaderCore from \"./core\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XHeader: React.FC<XHeaderProps> = React.memo(\n  ({ initData = { all: {} } }) => {\n    // WE TRACK THE BREAK POINTS CHANGES\n    const breakpoint = useBreakpoint();\n\n    // WE NOW USE THE CURRENT BREAKPOINT VALUE ON THIS ELEMENT\n    const valueAtBreakPoint = getValueOnBreakpoint<IXHeaderProps>(\n      initData,\n      breakpoint\n    );\n\n    return <XHeaderCore index=\"HEADER\" props={valueAtBreakPoint} />;\n  },\n  compareProps\n);\n\nexport default XHeader;\n","import { Divider, Drawer, Typography } from \"@mui/material\";\nimport * as React from \"react\";\nimport { useRecoilState } from \"recoil\";\nimport { USE_ACTION_DRAWER } from \"../../../hooks/useActionDrawer\";\n\nimport CartList from \"./actions/CartList\";\nimport WishList from \"./actions/WishList\";\nimport Auth from \"./actions/Auth\";\nimport Menu from \"./actions/Menu\";\n\nconst ActionsDrawer: React.FC = () => {\n  const [drawer, setDrawer] = useRecoilState(USE_ACTION_DRAWER);\n\n  return (\n    <Drawer\n      variant=\"temporary\"\n      container={document.getElementById(\"XPage\")}\n      anchor={drawer === \"MENU\" ? \"left\" : \"right\"}\n      open={drawer !== null}\n      onClose={() => {\n        setDrawer(null);\n      }}\n      PaperProps={{\n        sx: { width: 300 },\n      }}\n    >\n      <Typography\n        variant=\"h4\"\n        component=\"p\"\n        px={2}\n        lineHeight=\"64px\"\n        fontWeight={800}\n        fontSize={24}\n      >\n        {drawer === \"CART\" && \"Mon Panier\"}\n\n        {drawer === \"WISHLIST\" && \"Mes Favoris\"}\n\n        {drawer === \"ACCOUNT\" && \"Mon Compte\"}\n\n        {drawer === \"MENU\" && \"Menu\"}\n      </Typography>\n\n      <Divider />\n\n      {drawer === \"MENU\" && <Menu />}\n\n      {drawer === \"CART\" && <CartList />}\n\n      {drawer === \"WISHLIST\" && <WishList />}\n\n      {drawer === \"ACCOUNT\" && <Auth />}\n    </Drawer>\n  );\n};\n\nexport default ActionsDrawer;\n","import { HighlightOffOutlined } from \"@mui/icons-material\";\nimport {\n  Button,\n  IconButton,\n  List,\n  ListItem,\n  ListItemAvatar,\n  ListItemSecondaryAction,\n  ListItemText,\n  Typography,\n} from \"@mui/material\";\nimport { Stack } from \"@mui/system\";\nimport * as React from \"react\";\nimport { useSetRecoilState } from \"recoil\";\nimport { USE_ACTION_DRAWER } from \"../../../../hooks/useActionDrawer\";\nimport { useCart } from \"../../../../hooks/useCart\";\nimport { useXoraiaValue } from \"../../../../hooks/useXoraia\";\nimport { IArticleData } from \"../../../../utils/interfaces/common/XArticle.interfaces\";\n\nconst CartList: React.FC = () => {\n  const { imageComponent, env, Link } = useXoraiaValue();\n  const { cart, setCart } = useCart();\n  const setDrawer = useSetRecoilState(USE_ACTION_DRAWER);\n\n  if (cart.carts.length === 0) {\n    return (\n      <Stack p={3} alignItems=\"center\" justifyContent=\"center\">\n        <Typography>Votre Panier est vide</Typography>\n      </Stack>\n    );\n  }\n\n  const removeArticle = async (article: IArticleData) => {\n    try {\n      setCart((old) => {\n        const carts = old.carts.filter((e) => e.id !== article.id);\n\n        return { ...old, carts };\n      });\n    } catch (error) {\n      console.error(\"REMOVE ARTICLE FROM CART =>\", error);\n    }\n  };\n\n  return (\n    <React.Fragment>\n      <List\n        disablePadding\n        sx={{\n          flex: 1,\n          fontFamily: \"inherit\",\n          \"& .MuiListItem-container:not(:last-of-type)\": {\n            borderBottom: 1,\n            borderBottomColor: \"rgba(0, 0, 0, 0.12)\",\n          },\n        }}\n      >\n        {cart.carts.map(({ id, images, name, price, qty }) => {\n          return (\n            <ListItem key={id} alignItems=\"flex-start\">\n              {imageComponent && (\n                <ListItemAvatar\n                  sx={{\n                    width: \"60px\",\n                    height: \"70px\",\n                    position: \"relative\",\n                  }}\n                >\n                  {imageComponent(\n                    {\n                      src: images[0],\n                      alt: name,\n                      width: \"60px\",\n                      height: \"70px\",\n                    },\n                    env ?? \"prod\",\n                    {},\n                    \"article id\"\n                  )}\n                </ListItemAvatar>\n              )}\n              <ListItemText\n                sx={{ mx: 1 }}\n                primary={name}\n                primaryTypographyProps={{\n                  sx: {\n                    fontFamily: \"inherit\",\n                    mb: 2,\n                    lineHeight: \"1em\",\n                    fontWeight: 600,\n                  },\n                }}\n                secondaryTypographyProps={{ component: \"div\" }}\n                secondary={\n                  <>\n                    <Typography\n                      sx={{\n                        lineHeight: \"1em\",\n                        fontFamily: \"inherit\",\n                        mb: 1.5,\n                        \"& span\": { color: \"#999999\", mr: 1 },\n                      }}\n                    >\n                      <span>{qty}</span>\n                      <span>X</span>\n                      <b>{price} F CFA</b>\n                    </Typography>\n                    {/* <Select\n                      native\n                      size=\"small\"\n                      defaultValue={qty}\n                      sx={{ \"& .MuiSelect-select\": { py: \"5px\" } }}\n                    >\n                      {Array(10)\n                        .fill(\"\")\n                        .map((_, i) => (\n                          <option key={i.toString()} value={i + 1}>\n                            {i + 1}\n                          </option>\n                        ))}\n                    </Select> */}\n                  </>\n                }\n              />\n              <ListItemSecondaryAction>\n                <IconButton\n                  size=\"small\"\n                  color=\"error\"\n                  onClick={async () =>\n                    await removeArticle({ images, id } as any)\n                  }\n                >\n                  <HighlightOffOutlined />\n                </IconButton>\n              </ListItemSecondaryAction>\n            </ListItem>\n          );\n        })}\n      </List>\n      <Typography\n        sx={{\n          fontFamily: \"inherit\",\n          display: \"flex\",\n          justifyContent: \"space-between\",\n          alignItems: \"baseline\",\n          py: 1.5,\n          px: 2,\n          borderTop: 1,\n          borderBottom: 1,\n          borderColor: \"#EEEEEE\",\n\n          \"& b\": {\n            fontSize: 24,\n          },\n        }}\n      >\n        <span>Sous Total</span>\n        <b>\n          {cart.carts.reduce((prev, cur) => {\n            return prev + cur.price * cur.qty;\n          }, 0)}{\" \"}\n          F CFA\n        </b>\n      </Typography>\n      <Button\n        disableElevation\n        sx={{ m: 2 }}\n        size=\"large\"\n        variant=\"contained\"\n        color=\"primary\"\n        href=\"/checkout\"\n        LinkComponent={Link}\n        onClick={() => setDrawer(null)}\n      >\n        COMMANDER\n      </Button>\n    </React.Fragment>\n  );\n};\n\nexport default CartList;\n","import { HighlightOffOutlined } from \"@mui/icons-material\";\nimport {\n  IconButton,\n  List,\n  ListItem,\n  ListItemAvatar,\n  ListItemSecondaryAction,\n  ListItemText,\n  Typography,\n} from \"@mui/material\";\nimport { Stack } from \"@mui/system\";\nimport * as React from \"react\";\nimport { useWishlist } from \"../../../../hooks/useWishlist\";\nimport { useXoraiaValue } from \"../../../../hooks/useXoraia\";\nimport { IArticleData } from \"../../../../utils/interfaces/common/XArticle.interfaces\";\n\nconst WishList: React.FC = () => {\n  const { imageComponent, env } = useXoraiaValue();\n\n  const { wishlist, setWishlist } = useWishlist();\n\n  if (wishlist.carts.length === 0) {\n    return (\n      <Stack p={3} alignItems=\"center\" justifyContent=\"center\">\n        <Typography>Votre Liste de Favoris est vide</Typography>\n      </Stack>\n    );\n  }\n\n  const removeArticle = async (article: IArticleData) => {\n    try {\n      setWishlist((old) => {\n        const carts = old.carts.filter((e) => e.id !== article.id);\n\n        return { ...old, carts };\n      });\n    } catch (error) {\n      console.error(\"REMOVE ARTICLE FROM CART =>\", error);\n    }\n  };\n\n  return (\n    <React.Fragment>\n      <List\n        disablePadding\n        sx={{\n          flex: 1,\n          fontFamily: \"inherit\",\n          \"& .MuiListItem-container:not(:last-of-type)\": {\n            borderBottom: 1,\n            borderBottomColor: \"rgba(0, 0, 0, 0.12)\",\n          },\n        }}\n      >\n        {wishlist.carts.map(({ id, images, name, price }) => {\n          return (\n            <ListItem key={id} alignItems=\"flex-start\">\n              {imageComponent && (\n                <ListItemAvatar\n                  sx={{\n                    width: \"60px\",\n                    height: \"70px\",\n                    position: \"relative\",\n                  }}\n                >\n                  {imageComponent(\n                    {\n                      src: images[0],\n                      alt: name,\n                      width: \"60px\",\n                      height: \"70px\",\n                    },\n                    env ?? \"prod\",\n                    {},\n                    \"article id\"\n                  )}\n                </ListItemAvatar>\n              )}\n              <ListItemText\n                sx={{ mx: 1 }}\n                primary={name}\n                primaryTypographyProps={{\n                  sx: {\n                    fontFamily: \"inherit\",\n                    mb: 2,\n                    lineHeight: \"1em\",\n                    fontWeight: 600,\n                  },\n                }}\n                secondaryTypographyProps={{ component: \"div\" }}\n                secondary={\n                  <>\n                    <Typography\n                      sx={{\n                        lineHeight: \"1em\",\n                        fontFamily: \"inherit\",\n                        mb: 1.5,\n                        \"& span\": { color: \"#999999\", mr: 1 },\n                      }}\n                    >\n                      <b>{price} F CFA</b>\n                    </Typography>\n                  </>\n                }\n              />\n              <ListItemSecondaryAction>\n                <IconButton\n                  size=\"small\"\n                  color=\"error\"\n                  onClick={async () =>\n                    await removeArticle({ images, id } as any)\n                  }\n                >\n                  <HighlightOffOutlined />\n                </IconButton>\n              </ListItemSecondaryAction>\n            </ListItem>\n          );\n        })}\n      </List>\n    </React.Fragment>\n  );\n};\n\nexport default WishList;\n","import { Button, Tab, Tabs, TextField } from \"@mui/material\";\nimport * as React from \"react\";\nimport { ViewShoppingCartBtnProps } from \"../../dynamic/ViewShoppingCartBtn\";\nimport { useForm, Controller, SubmitHandler } from \"react-hook-form\";\nimport { Stack } from \"@mui/system\";\nimport { IAuthUserFormInput } from \"../../../../utils/interfaces/core/AuthUser\";\nimport { useXoraiaValue } from \"../../../../hooks/useXoraia\";\n\ninterface IField {\n  name: \"email\" | \"password\" | \"fullname\" | \"phone\" | \"confirm\";\n  label: string;\n}\n\nconst Auth: React.FC<ViewShoppingCartBtnProps> = ({}) => {\n  const { apiFetcher, userId } = useXoraiaValue();\n  const [tab, setTab] = React.useState<\"login\" | \"signup\">(\"login\");\n\n  const {\n    control,\n    handleSubmit,\n    formState: { errors },\n  } = useForm<IAuthUserFormInput>({\n    defaultValues: {\n      fullname: \"\",\n      phone: \"\",\n      email: \"\",\n      password: \"\",\n      confirm: \"\",\n    },\n  });\n\n  const onSubmit: SubmitHandler<IAuthUserFormInput> = async (data) => {\n    if (!apiFetcher || !apiFetcher.setAuthUser) return;\n\n    try {\n      const user = await apiFetcher.setAuthUser(data);\n\n      console.log(\"USER =>\", user);\n    } catch (error) {\n      console.error(\"AUTH ERROR\", error);\n    }\n  };\n\n  const logOut = async () => {\n    if (!apiFetcher || !apiFetcher.setAuthUser) return;\n\n    try {\n      await apiFetcher.setAuthUser(null);\n\n      console.log(\"USER LOGGED OUT\");\n    } catch (error) {\n      console.error(\"AUTH ERROR\", error);\n    }\n  };\n\n  let fields: IField[] = [\n    { name: \"email\", label: \"Address Email\" },\n    { name: \"password\", label: \"Mot de Passe\" },\n  ];\n\n  if (tab === \"signup\") {\n    fields = [\n      { name: \"fullname\", label: \"Nom Complet\" },\n      { name: \"phone\", label: \"Numero de Telephone\" },\n      ...fields,\n      { name: \"confirm\", label: \"Mot de Passe\" },\n    ];\n  }\n\n  if (userId) {\n    return (\n      <React.Fragment>\n        <p>user {userId} Looged in</p>\n\n        <Button\n          disableElevation\n          sx={{ m: 2 }}\n          size=\"large\"\n          variant=\"contained\"\n          color=\"error\"\n          onClick={logOut}\n        >\n          DECONNECTION\n        </Button>\n      </React.Fragment>\n    );\n  }\n\n  return (\n    <React.Fragment>\n      <Tabs variant=\"fullWidth\" value={tab} onChange={(_, v) => setTab(v)}>\n        <Tab value={\"login\"} label=\"Connexion\" />\n        <Tab value={\"signup\"} label=\"Inscription\" />\n      </Tabs>\n      <form onSubmit={handleSubmit(onSubmit)}>\n        <Stack px={2} pt={2} spacing={2}>\n          {fields.map(({ name, label }) => (\n            <Controller\n              key={name}\n              name={name}\n              control={control}\n              rules={{\n                required: { message: `${label} requis`, value: true },\n              }}\n              render={({ field }) => (\n                <TextField\n                  required\n                  label={label}\n                  fullWidth\n                  variant=\"standard\"\n                  placeholder={`Entrez Votre ${label}`}\n                  type={\n                    [\"email\", \"password\"].includes(name)\n                      ? name\n                      : name === \"confirm\"\n                      ? \"password\"\n                      : name === \"phone\"\n                      ? \"tel\"\n                      : \"text\"\n                  }\n                  {...field}\n                  error={!!errors[name]}\n                  helperText={errors[name]?.message}\n                  InputLabelProps={{ shrink: true }}\n                />\n              )}\n            />\n          ))}\n        </Stack>\n        <Button\n          type=\"submit\"\n          disableElevation\n          sx={{ m: 2 }}\n          size=\"large\"\n          variant=\"contained\"\n          color=\"primary\"\n        >\n          ME CONNECTER\n        </Button>\n      </form>\n    </React.Fragment>\n  );\n};\n\nexport default Auth;\n","import { List, ListItemButton, ListItemText } from \"@mui/material\";\nimport * as React from \"react\";\nimport { useXoraiaValue } from \"../../../../hooks/useXoraia\";\nimport { useXPathValue } from \"../../../../hooks/useXPath\";\nimport { MENU_LINKS } from \"../../../../utils/constants/core/MENU_LINKS\";\n\nconst MenuList: React.FC<{}> = ({}) => {\n  const xPath = useXPathValue();\n\n  const { env, Link } = useXoraiaValue();\n\n  return (\n    <List\n      disablePadding\n      sx={{\n        flex: 1,\n        fontFamily: \"inherit\",\n        \"& .MuiListItem-container:not(:last-of-type)\": {\n          borderBottom: 1,\n          borderBottomColor: \"rgba(0, 0, 0, 0.12)\",\n        },\n      }}\n    >\n      {MENU_LINKS.map((page) => {\n        const isActived = xPath === page.path;\n\n        return (\n          <ListItemButton\n            href={env === \"prod\" ? page.path : \"#\"}\n            LinkComponent={Link}\n            key={page.path}\n            selected={isActived}\n          >\n            <ListItemText\n              primary={page.label}\n              primaryTypographyProps={{\n                sx: {\n                  fontFamily: \"inherit\",\n                  lineHeight: \"1em\",\n                  fontWeight: 600,\n                },\n              }}\n            />\n          </ListItemButton>\n        );\n      })}\n    </List>\n  );\n};\n\nexport default MenuList;\n","import { createTheme, ThemeProvider } from \"@mui/material\";\nimport * as React from \"react\";\nimport { useMount } from \"react-use\";\nimport { RecoilRoot } from \"recoil\";\nimport { RecoilUndoRoot } from \"recoil-undo\";\nimport { IXoraiaConfig, useXoraiaUpdater } from \"../hooks/useXoraia\";\nimport { generateBorder } from \"../lib/generateBorder\";\nimport { generateRadius } from \"../lib/generateRadius\";\nimport { generateSide } from \"../lib/generateSide\";\nimport { RecoilDevTools } from \"../lib/RecoilDevTools\";\nimport { MAIN_COLOR, SECONDARY_COLOR } from \"../utils/constants/common/utils\";\nimport { XGUIProps } from \"../utils/interfaces/gui/fields.interfaces\";\nconst XGUI = React.lazy(() => import(\"../components/gui/XGUI\"));\n\nconst XoraiaProvider: React.FC<{\n  children: React.ReactNode;\n  initConfig?: IXoraiaConfig;\n}> = ({\n  children,\n  initConfig = {\n    businessId: \"LOCALHOST\",\n    Link: (props) => <a {...props}>{props.children}</a>,\n  },\n}) => {\n  return (\n    <RecoilRoot override={false}>\n      <RecoilUndoRoot>\n        <RecoilDevTools />\n        <Content initConfig={initConfig}>{children}</Content>\n      </RecoilUndoRoot>\n    </RecoilRoot>\n  );\n};\n\nconst Content: React.FC<{\n  children: React.ReactNode;\n  initConfig: IXoraiaConfig;\n}> = ({ children, initConfig }) => {\n  const setConfig = useXoraiaUpdater();\n\n  useMount(() => {\n    const _config: IXoraiaConfig = {\n      env: \"dev\",\n      theme: {},\n      imageComponent: (props, env, devProps, index) => {\n        const objectFit = props.objectFit ?? \"cover\";\n        const {\n          alt,\n          bgColor,\n          href,\n          margin,\n          padding,\n          border,\n          borderRadius,\n          src,\n          ...sx\n        } = props;\n\n        let image = (\n          <img\n            key={index}\n            {...(env === \"dev\" && devProps)}\n            alt={alt}\n            src={src || \"IMAGE_PLACEHOLDER\"}\n            style={{\n              ...sx,\n              padding: generateSide(\"padding\", padding) as any,\n              margin: generateSide(\"margin\", margin) as any,\n              objectFit,\n              backgroundColor: bgColor,\n              border: generateBorder(border),\n              borderRadius: generateRadius(borderRadius),\n            }}\n            loading=\"lazy\"\n          />\n        );\n\n        // THIS WILL USE NEXT LINK IN PROD\n        if (href && env !== \"dev\") {\n          image = <a href={href}>{image}</a>;\n        }\n\n        return image;\n      },\n      ...initConfig,\n    };\n\n    if (_config.env === \"dev\") {\n      _config.XGUI = (props: XGUIProps) => (\n        <React.Suspense>\n          <XGUI {...props} />\n        </React.Suspense>\n      );\n    }\n\n    setConfig(_config);\n  });\n\n  // if (!config.env || !initConfig.env) return <p>loading...</p>;\n\n  const theme = createTheme({\n    palette: {\n      primary: { main: MAIN_COLOR },\n      secondary: { main: SECONDARY_COLOR },\n    },\n  });\n\n  return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n};\n\nexport default XoraiaProvider;\n","import * as React from \"react\";\nimport { useRecoilSnapshot } from \"recoil\";\n\nexport const RecoilDevTools: React.FC = () => {\n  const snapshot = useRecoilSnapshot();\n\n  React.useEffect(() => {\n    console.debug(\"The following atoms were modified:\");\n    for (const node of snapshot.getNodes_UNSTABLE({\n      isModified: true,\n    }) as any) {\n      console.debug(node.key, snapshot.getLoadable(node));\n    }\n  }, [snapshot]);\n\n  return null;\n};\n"]}