{"version":3,"file":"RawModalStackItem.mjs","names":[],"sources":["../../src/Modal/RawModalStackItem.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentType } from 'react';\nimport { memo, useMemo } from 'react';\n\nimport { useEventCallback } from '@/hooks/useEventCallback';\n\nimport { ModalProvider } from './ModalProvider';\nimport type { ModalContextValue, RawModalOptions } from './type';\n\nexport type RawModalStackItemProps = {\n  component: ComponentType<any>;\n  id: string;\n  onClose: (id: string) => void;\n  onUpdate: (id: string, nextProps: Record<string, unknown>) => void;\n  open: boolean;\n  options?: RawModalOptions<PropertyKey, PropertyKey>;\n  props: Record<string, unknown>;\n};\n\nexport const RawModalStackItem = memo(\n  ({\n    component: Component,\n    id,\n    onClose,\n    onUpdate,\n    open,\n    options,\n    props,\n  }: RawModalStackItemProps) => {\n    const stableOnClose = useEventCallback(onClose);\n    const close = useEventCallback(() => stableOnClose(id));\n\n    const setCanDismissByClickOutside = useEventCallback((value: boolean) => {\n      onUpdate(id, { mask: { closable: value } });\n    });\n    const contextValue: ModalContextValue = useMemo(\n      () => ({ close, setCanDismissByClickOutside }),\n      [close, setCanDismissByClickOutside],\n    );\n    const openKey = options?.openKey ?? 'open';\n    const onCloseKey = options?.onCloseKey ?? 'onClose';\n    const injectedProps = {\n      ...props,\n      [onCloseKey]: close,\n      [openKey]: open,\n    };\n\n    return (\n      <ModalProvider value={contextValue}>\n        <Component {...injectedProps} />\n      </ModalProvider>\n    );\n  },\n);\n\nRawModalStackItem.displayName = 'RawModalStackItem';\n"],"mappings":";;;;;;AAoBA,MAAa,oBAAoB,MAC9B,EACC,WAAW,WACX,IACA,SACA,UACA,MACA,SACA,YAC4B;CAC5B,MAAM,gBAAgB,iBAAiB,QAAQ;CAC/C,MAAM,QAAQ,uBAAuB,cAAc,GAAG,CAAC;CAEvD,MAAM,8BAA8B,kBAAkB,UAAmB;AACvE,WAAS,IAAI,EAAE,MAAM,EAAE,UAAU,OAAO,EAAE,CAAC;GAC3C;CACF,MAAM,eAAkC,eAC/B;EAAE;EAAO;EAA6B,GAC7C,CAAC,OAAO,4BAA4B,CACrC;CACD,MAAM,UAAU,SAAS,WAAW;CACpC,MAAM,aAAa,SAAS,cAAc;AAO1C,QACE,oBAAC,eAAD;EAAe,OAAO;YACpB,oBAAC,WAAD;GAPF,GAAG;IACF,aAAa;IACb,UAAU;GAKuB,CAAA;EAClB,CAAA;EAGrB;AAED,kBAAkB,cAAc"}