{"version":3,"file":"Drawer.js","names":[],"sources":["esm/layouts/Drawer.js"],"sourcesContent":["\"use client\";\nimport { createNavigatorFactory, useNavigationBuilder } from \"@react-navigation/core\";\nimport {\n  DrawerRouter\n} from \"@react-navigation/routers\";\nimport { Children, forwardRef } from \"react\";\nimport { getCustomNavigatorChildren, isNavigatorConfigChild } from \"../headless/children\";\nimport { renderKeptMountedScreens, useVisitedScreens } from \"../headless/keepMounted\";\nimport {\n  DrawerStateProvider,\n  useDrawer\n} from \"../headless/useDrawer\";\nimport { withLayoutContext } from \"./withLayoutContext\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nfunction WebDrawerNavigator({\n  children,\n  headlessChildren,\n  initialRouteName,\n  defaultStatus,\n  backBehavior,\n  screenOptions,\n  ...rest\n}) {\n  const { state, descriptors, navigation, render } = useNavigationBuilder(DrawerRouter, {\n    ...rest,\n    children,\n    initialRouteName,\n    defaultStatus,\n    backBehavior,\n    screenOptions\n  });\n  return render(\n    /* @__PURE__ */ jsx(\n      DrawerStateProvider,\n      {\n        state,\n        descriptors,\n        navigation,\n        children: /* @__PURE__ */ jsx(HeadlessDrawerView, { customChildren: headlessChildren })\n      }\n    )\n  );\n}\nfunction HeadlessDrawerView({ customChildren }) {\n  const { screens, focused } = useDrawer();\n  const visited = useVisitedScreens(focused.key);\n  if (customChildren?.length) {\n    return /* @__PURE__ */ jsx(Fragment, { children: customChildren });\n  }\n  return renderKeptMountedScreens(screens, visited);\n}\nconst DrawerNavigator = createNavigatorFactory(WebDrawerNavigator)().Navigator;\nconst RNDrawer = withLayoutContext(DrawerNavigator);\nconst DrawerWithHeadless = forwardRef(\n  (props, ref) => {\n    const { children, ...rest } = props;\n    const customChildren = getCustomNavigatorChildren(children);\n    return /* @__PURE__ */ jsx(\n      RNDrawer,\n      {\n        ...rest,\n        ref,\n        headlessChildren: customChildren.length ? customChildren : void 0,\n        children: Children.toArray(children).filter(isNavigatorConfigChild)\n      }\n    );\n  }\n);\nconst Drawer = Object.assign(DrawerWithHeadless, {\n  Screen: RNDrawer.Screen\n});\nvar Drawer_web_default = Drawer;\nexport {\n  Drawer,\n  Drawer_web_default as default\n};\n//# sourceMappingURL=Drawer.web.js.map\n"],"mappings":";;;;;;;;;;;;AAcA,SAAS,mBAAmB,EAC1B,UACA,kBACA,kBACA,eACA,cACA,eACA,GAAG,QACF;CACD,MAAM,EAAE,OAAO,aAAa,YAAY,WAAW,qBAAqB,cAAc;EACpF,GAAG;EACH;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,OAAO,OACW,oBACd,qBACA;EACE;EACA;EACA;EACA,UAA0B,oBAAI,oBAAoB,EAAE,gBAAgB,iBAAiB,CAAC;CACxF,CACF,CACF;AACF;AACA,SAAS,mBAAmB,EAAE,kBAAkB;CAC9C,MAAM,EAAE,SAAS,YAAY,UAAU;CACvC,MAAM,UAAU,kBAAkB,QAAQ,GAAG;CAC7C,IAAI,gBAAgB,QAAQ;EAC1B,OAAuB,oBAAI,UAAU,EAAE,UAAU,eAAe,CAAC;CACnE;CACA,OAAO,yBAAyB,SAAS,OAAO;AAClD;AACA,MAAM,kBAAkB,uBAAuB,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,WAAW,kBAAkB,eAAe;AAClD,MAAM,qBAAqB,YACxB,OAAO,QAAQ;CACd,MAAM,EAAE,UAAU,GAAG,SAAS;CAC9B,MAAM,iBAAiB,2BAA2B,QAAQ;CAC1D,OAAuB,oBACrB,UACA;EACE,GAAG;EACH;EACA,kBAAkB,eAAe,SAAS,iBAAiB,KAAK;EAChE,UAAU,SAAS,QAAQ,QAAQ,CAAC,CAAC,OAAO,sBAAsB;CACpE,CACF;AACF,CACF;AACA,MAAM,SAAS,OAAO,OAAO,oBAAoB,EAC/C,QAAQ,SAAS,OACnB,CAAC;AACD,IAAI,qBAAqB"}