{"version":3,"file":"ModalStack.cjs","sources":["../../../src/components/Modal/ModalStack.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { createOptionalContext, getDefaultZIndex } from '../../core';\n\ninterface ModalStackContext {\n  stack: string[];\n  addModal: (id: string, zIndex: number | string) => void;\n  removeModal: (id: string) => void;\n  getZIndex: (id: string) => string;\n  currentId: string;\n  maxZIndex: string | number;\n}\n\nconst [ModalStackProvider, useModalStackContext] = createOptionalContext<ModalStackContext>();\n\nexport { useModalStackContext };\n\nexport interface ModalStackProps {\n  children: React.ReactNode;\n}\n\nexport function ModalStack({ children }: ModalStackProps) {\n  const [stack, setStack] = useState<string[]>([]);\n  const [maxZIndex, setMaxZIndex] = useState<number | string>(getDefaultZIndex('modal'));\n\n  return (\n    <ModalStackProvider\n      value={{\n        stack,\n        addModal: (id, zIndex) => {\n          setStack((current) => [...new Set([...current, id])]);\n          setMaxZIndex((current) =>\n            typeof zIndex === 'number' && typeof current === 'number'\n              ? Math.max(current, zIndex)\n              : current\n          );\n        },\n        removeModal: (id) => setStack((current) => current.filter((currentId) => currentId !== id)),\n        getZIndex: (id) => `calc(${maxZIndex} + ${stack.indexOf(id)} + 1)`,\n        currentId: stack[stack.length - 1],\n        maxZIndex,\n      }}\n    >\n      {children}\n    </ModalStackProvider>\n  );\n}\n\nModalStack.displayName = '@raikou/core/ModalStack';\n"],"names":["createOptionalContext","useState","getDefaultZIndex","jsx"],"mappings":";;;;;;;;;;;;AAYA,MAAM,CAAC,kBAAA,EAAoB,oBAAoB,CAAA,GAAIA,2CAAyC;AAQ5E,SAAA,UAAA,CAAW,EAAE,QAAA,EAA6B,EAAA;AACxD,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAAC,cAAA,CAAmB,EAAE,CAAA;AAC/C,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,IAAIA,cAA0B,CAAAC,iCAAA,CAAiB,OAAO,CAAC,CAAA;AAErF,EACE,uBAAAC,cAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,KAAA;AAAA,QACA,QAAA,EAAU,CAAC,EAAA,EAAI,MAAW,KAAA;AACxB,UAAA,QAAA,CAAS,CAAC,OAAA,KAAY,CAAC,mBAAO,IAAA,GAAA,CAAI,CAAC,GAAG,OAAS,EAAA,EAAE,CAAC,CAAC,CAAC,CAAA;AACpD,UAAA,YAAA;AAAA,YAAa,CAAC,OAAA,KACZ,OAAO,MAAA,KAAW,QAAY,IAAA,OAAO,OAAY,KAAA,QAAA,GAC7C,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,MAAM,CACxB,GAAA;AAAA,WACN;AAAA,SACF;AAAA,QACA,WAAa,EAAA,CAAC,EAAO,KAAA,QAAA,CAAS,CAAC,OAAA,KAAY,OAAQ,CAAA,MAAA,CAAO,CAAC,SAAA,KAAc,SAAc,KAAA,EAAE,CAAC,CAAA;AAAA,QAC1F,SAAA,EAAW,CAAC,EAAO,KAAA,CAAA,KAAA,EAAQ,SAAS,CAAM,GAAA,EAAA,KAAA,CAAM,OAAQ,CAAA,EAAE,CAAC,CAAA,KAAA,CAAA;AAAA,QAC3D,SAAW,EAAA,KAAA,CAAM,KAAM,CAAA,MAAA,GAAS,CAAC,CAAA;AAAA,QACjC;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEA,UAAA,CAAW,WAAc,GAAA,yBAAA;;;;;"}