{"version":3,"file":"Panel.cjs","sources":["../../../../src/components/overlay/panel/Panel.tsx"],"sourcesContent":["import { Dialog as BaseDialog } from '@base-ui/react/dialog'\r\nimport { memo, useId, useMemo, useState } from 'react'\r\n\r\nimport { PanelContext } from '@components/overlay/panel/context/Panel.context.ts'\r\nimport DialogBody from '@components/overlay/dialog/components/dialog-body/DialogBody.tsx'\r\nimport DialogClose from '@components/overlay/dialog/components/dialog-close/DialogClose.tsx'\r\nimport DialogDescription from '@components/overlay/dialog/components/dialog-description/DialogDescription.tsx'\r\nimport DialogFooter from '@components/overlay/dialog/components/dialog-footer/DialogFooter.tsx'\r\nimport DialogTitle from '@components/overlay/dialog/components/dialog-title/DialogTitle.tsx'\r\nimport DialogTrigger from '@components/overlay/dialog/components/dialog-trigger/DialogTrigger.tsx'\r\nimport PanelContent from '@components/overlay/panel/components/panel-content/PanelContent.tsx'\r\nimport PanelHeader from '@components/overlay/panel/components/panel-header/PanelHeader.tsx'\r\nimport type {\r\n    PanelCompound,\r\n    PanelProps,\r\n} from '@components/overlay/panel/types'\r\n\r\n/**\r\n * Slide-in side panel backed by Base UI Dialog. Manages an auto-generated\r\n * `titleId` and tracks whether `Panel.Header` has rendered a title for\r\n * automatic `aria-labelledby`.\r\n *\r\n * Compound slots: `Panel.Trigger`, `.Content`, `.Header`, `.Body`,\r\n * `.Footer`, `.Title`, `.Description`, `.Close`.\r\n */\r\nconst Panel = memo<PanelProps>(({ withBackdrop = true, ...props }) => {\r\n    const titleId = useId()\r\n    const [hasTitle, setHasTitle] = useState(false)\r\n    const contextValue = useMemo(\r\n        () => ({ titleId, hasTitle, withBackdrop, setHasTitle }),\r\n        [hasTitle, titleId, withBackdrop],\r\n    )\r\n\r\n    return (\r\n        <PanelContext.Provider value={contextValue}>\r\n            <BaseDialog.Root {...props} />\r\n        </PanelContext.Provider>\r\n    )\r\n}) as unknown as PanelCompound\r\n\r\nPanel.displayName = 'Panel'\r\nPanel.Trigger = DialogTrigger\r\nPanel.Content = PanelContent\r\nPanel.Header = PanelHeader\r\nPanel.Body = DialogBody\r\nPanel.Footer = DialogFooter\r\nPanel.Title = DialogTitle\r\nPanel.Description = DialogDescription\r\nPanel.Close = DialogClose\r\n\r\nexport { Panel }\r\n"],"names":["Panel","memo","withBackdrop","props","titleId","useId","hasTitle","setHasTitle","useState","contextValue","useMemo","jsx","PanelContext","BaseDialog","DialogTrigger","PanelContent","PanelHeader","DialogBody","DialogFooter","DialogTitle","DialogDescription","DialogClose"],"mappings":"8sBAyBMA,EAAQC,EAAAA,KAAiB,CAAC,CAAE,aAAAC,EAAe,GAAM,GAAGC,KAAY,CAClE,MAAMC,EAAUC,EAAAA,MAAA,EACV,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAS,EAAK,EACxCC,EAAeC,EAAAA,QACjB,KAAO,CAAE,QAAAN,EAAS,SAAAE,EAAU,aAAAJ,EAAc,YAAAK,CAAA,GAC1C,CAACD,EAAUF,EAASF,CAAY,CAAA,EAGpC,OACIS,EAAAA,IAACC,EAAAA,aAAa,SAAb,CAAsB,MAAOH,EAC1B,SAAAE,EAAAA,IAACE,EAAAA,OAAW,KAAX,CAAiB,GAAGV,CAAA,CAAO,CAAA,CAChC,CAER,CAAC,EAEDH,EAAM,YAAc,QACpBA,EAAM,QAAUc,EAChBd,EAAM,QAAUe,EAChBf,EAAM,OAASgB,EACfhB,EAAM,KAAOiB,EACbjB,EAAM,OAASkB,EACflB,EAAM,MAAQmB,EACdnB,EAAM,YAAcoB,EACpBpB,EAAM,MAAQqB"}