{"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useEffect","useId","useMemo","useState","useRelatedCollections","useEditDepth","useTranslation","Drawer","DrawerToggler","DocumentDrawerContent","documentDrawerBaseClass","formatDocumentDrawerSlug","id","collectionSlug","depth","uuid","DocumentDrawerToggler","t0","$","children","className","disabled","drawerSlug","onClick","operation","rest","t","collectionConfig","t1","label","labels","singular","t2","filter","Boolean","_jsx","join","slug","DocumentDrawer","props","gutter","Header","useDocumentDrawer","overrideEntityVisibility","editDepth","closeModal","modalState","openModal","toggleModal","isOpen","setIsOpen","t3","t4","toggleDrawer","t5","closeDrawer","t6","openDrawer","t7","_createElement","key","MemoizedDrawer","t8","props_0","MemoizedDrawerToggler","t9","drawerDepth","isDrawerOpen","MemoizedDrawerState","t10"],"sources":["../../../src/elements/DocumentDrawer/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useId, useMemo, useState } from 'react'\n\nimport type {\n DocumentDrawerProps,\n DocumentTogglerProps,\n UseDocumentDrawer,\n UseDocumentDrawerContext,\n} from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { DocumentDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const documentDrawerBaseClass = 'doc-drawer'\n\nconst formatDocumentDrawerSlug = ({\n id,\n collectionSlug,\n depth,\n uuid,\n}: {\n collectionSlug: string\n depth: number\n id?: number | string\n uuid: string\n}) => `doc-drawer_${collectionSlug}_${depth}${id ? `_${id}` : ''}_${uuid}`\n\nexport const DocumentDrawerToggler: React.FC = ({\n children,\n className,\n collectionSlug,\n disabled,\n drawerSlug,\n onClick,\n operation,\n ...rest\n}) => {\n const { t } = useTranslation()\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n return (\n \n {children}\n \n )\n}\n\nexport const DocumentDrawer: React.FC = (props) => {\n const { drawerSlug } = props\n\n return (\n \n \n \n )\n}\n\n/**\n * A hook to manage documents from a drawer modal.\n * It provides the components and methods needed to open, close, and interact with the drawer.\n * @example\n * const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({\n * collectionSlug: 'posts',\n * id: postId, // optional, if not provided, it will render the \"create new\" view\n * })\n *\n * // ...\n *\n * return (\n *
\n * \n * Edit Post\n * \n * \n *
\n */\nexport const useDocumentDrawer: UseDocumentDrawer = ({\n id,\n collectionSlug,\n overrideEntityVisibility,\n}) => {\n const editDepth = useEditDepth()\n const uuid = useId()\n const { closeModal, modalState, openModal, toggleModal } = useModal()\n const [isOpen, setIsOpen] = useState(false)\n\n const drawerSlug = formatDocumentDrawerSlug({\n id,\n collectionSlug,\n depth: editDepth,\n uuid,\n })\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const toggleDrawer = useCallback(() => {\n toggleModal(drawerSlug)\n }, [toggleModal, drawerSlug])\n\n const closeDrawer = useCallback(() => {\n closeModal(drawerSlug)\n }, [closeModal, drawerSlug])\n\n const openDrawer = useCallback(() => {\n openModal(drawerSlug)\n }, [openModal, drawerSlug])\n\n const MemoizedDrawer = useMemo>(() => {\n return (props) => (\n \n )\n }, [id, drawerSlug, collectionSlug, overrideEntityVisibility])\n\n const MemoizedDrawerToggler = useMemo>(() => {\n return (props) => (\n \n )\n }, [id, drawerSlug, collectionSlug])\n\n const MemoizedDrawerState = useMemo(\n () => ({\n closeDrawer,\n drawerDepth: editDepth,\n drawerSlug,\n isDrawerOpen: isOpen,\n openDrawer,\n toggleDrawer,\n }),\n [editDepth, drawerSlug, isOpen, toggleDrawer, closeDrawer, openDrawer],\n )\n\n return [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState]\n}\n"],"mappings":"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","ignoreList":[]}