{"version":3,"file":"ToastRegion.cjs","sources":["../../../../src/components/toast/ToastRegion.tsx"],"sourcesContent":["import { type AriaToastRegionProps, useToastRegion } from \"@react-aria/toast\";\nimport {\n    type ToastQueue,\n    type ToastState,\n    useToastQueue,\n} from \"@react-stately/toast\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Toast } from \"./Toast.js\";\nimport type { ToastContent } from \"./types.js\";\n\ninterface ToastRegionProps<T extends ToastContent = ToastContent>\n    extends AriaToastRegionProps {\n    placement: \"center\" | \"left\";\n    state: ToastState<T>;\n}\n\nfunction Region<T extends ToastContent>({\n    placement,\n    state,\n    ...props\n}: ToastRegionProps<T>) {\n    const ref = React.useRef(null);\n    const { regionProps } = useToastRegion(props, state, ref);\n\n    return (\n        <div\n            className={clsx(\"jkl\", \"jkl-toast-region\", {\n                \"jkl-toast-region--left\": placement === \"left\",\n            })}\n        >\n            <div\n                {...regionProps}\n                ref={ref}\n                className=\"jkl-toast-region__toasts\"\n            >\n                {[...state.visibleToasts].reverse().map((toast) => (\n                    <Toast key={toast.key} toast={toast} state={state} />\n                ))}\n            </div>\n        </div>\n    );\n}\n\nexport function ToastRegion({\n    queue,\n    placement,\n}: {\n    queue: ToastQueue<ToastContent>;\n    placement: \"center\" | \"left\";\n}) {\n    const state = useToastQueue<ToastContent>(queue);\n    return state.visibleToasts.length > 0\n        ? ReactDOM.createPortal(\n              <Region state={state} placement={placement} />,\n              document.body,\n          )\n        : null;\n}\n"],"names":["Region","placement","state","props","ref","React","useRef","regionProps","useToastRegion","jsx","className","clsx","children","visibleToasts","reverse","map","toast","Toast","key","queue","useToastQueue","length","ReactDOM","createPortal","document","body"],"mappings":"iSAkBA,SAASA,GACLC,UAAAA,EACAC,MAAAA,KACGC,IAEH,MAAMC,EAAMC,EAAMC,OAAO,OACjBC,YAAAA,GAAgBC,EAAAA,eAAeL,EAAOD,EAAOE,GAErD,OACIK,EAAAA,IAAC,MAAA,CACGC,UAAWC,EAAAA,KAAK,MAAO,mBAAoB,CACvC,yBAAwC,SAAdV,IAG9BW,SAAAH,EAAAA,IAAC,MAAA,IACOF,EACJH,IAAAA,EACAM,UAAU,2BAETE,aAAIV,EAAMW,eAAeC,UAAUC,IAAKC,SACpCC,EAAAA,MAAA,CAAsBD,MAAAA,EAAcd,MAAAA,GAAzBc,EAAME,SAKtC,qBAEO,UACHC,MAAAA,EACAlB,UAAAA,IAKA,MAAMC,EAAQkB,EAAAA,cAA4BD,GAC1C,OAAOjB,EAAMW,cAAcQ,OAAS,EAC9BC,EAASC,aACLd,EAAAA,IAACT,EAAA,CAAOE,MAAAA,EAAcD,UAAAA,IACtBuB,SAASC,MAEb,IACV"}