{"version":3,"file":"Dialog.cjs","sources":["../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import {\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getSize,\n  RaikouSize,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { Affix, AffixBaseProps } from '../Affix';\nimport { CloseButton } from '../CloseButton';\nimport { Paper, PaperBaseProps } from '../Paper';\nimport { Transition, TransitionOverride } from '../Transition';\nimport { DialogCloseButtonStyle, DialogRootStyle } from './Dialog.css';\n\nexport type DialogStylesNames = 'root' | 'closeButton';\nexport type DialogCssVariables = {\n  root: '--dialog-size';\n};\n\nexport interface DialogProps\n  extends BoxProps,\n    AffixBaseProps,\n    PaperBaseProps,\n    StylesApiProps<DialogFactory>,\n    ElementProps<'div'> {\n  /** If set dialog will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n  keepMounted?: boolean;\n\n  /** Determines whether the close button should be displayed, `true` by default */\n  withCloseButton?: boolean;\n\n  /** Called when the close button is clicked */\n  onClose?: () => void;\n\n  /** Dialog content */\n  children?: React.ReactNode;\n\n  /** Opened state */\n  opened: boolean;\n\n  /** Overrides default transition, `{ transition: 'pop-top-right', duration: 200 }` by default */\n  transitionProps?: TransitionOverride;\n\n  /** Controls `width` of the dialog, `'md'` by default */\n  size?: RaikouSize | (string & {}) | number;\n}\n\nexport type DialogFactory = Factory<{\n  props: DialogProps;\n  ref: HTMLDivElement;\n  stylesNames: DialogStylesNames;\n  vars: DialogCssVariables;\n}>;\n\nconst defaultProps: Partial<DialogProps> = {\n  shadow: 'md',\n  p: 'md',\n  withBorder: false,\n  transitionProps: { transition: 'pop-top-right', duration: 200 },\n  position: {\n    bottom: 30,\n    right: 30,\n  },\n};\n\nconst varsResolver = createVarsResolver<DialogFactory>((_, { size }) => ({\n  root: {\n    '--dialog-size': getSize(size, 'dialog-size'),\n  },\n}));\n\nexport const Dialog = factory<DialogFactory>((_props, ref) => {\n  const props = useProps('Dialog', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    zIndex,\n    position,\n    keepMounted,\n    opened,\n    transitionProps,\n    withCloseButton,\n    withinPortal,\n    children,\n    onClose,\n    portalProps,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<DialogFactory>({\n    name: 'Dialog',\n    classes: {\n      root: DialogRootStyle,\n      closeButton: DialogCloseButtonStyle,\n    },\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <Affix\n      zIndex={zIndex}\n      position={position}\n      ref={ref}\n      withinPortal={withinPortal}\n      portalProps={portalProps}\n      unstyled={unstyled}\n    >\n      <Transition keepMounted={keepMounted} mounted={opened} {...transitionProps}>\n        {(transitionStyles) => (\n          <Paper\n            unstyled={unstyled}\n            {...getStyles('root', { style: transitionStyles })}\n            {...others}\n          >\n            {withCloseButton && (\n              <CloseButton onClick={onClose} unstyled={unstyled} {...getStyles('closeButton')} />\n            )}\n            {children}\n          </Paper>\n        )}\n      </Transition>\n    </Affix>\n  );\n});\n\nDialog.displayName = '@raikou/core/Dialog';\n"],"names":["createVarsResolver","getSize","factory","useProps","useStyles","DialogRootStyle","DialogCloseButtonStyle","jsx","Affix","Transition","jsxs","Paper","CloseButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0DA,MAAM,YAAqC,GAAA;AAAA,EACzC,MAAQ,EAAA,IAAA;AAAA,EACR,CAAG,EAAA,IAAA;AAAA,EACH,UAAY,EAAA,KAAA;AAAA,EACZ,eAAiB,EAAA,EAAE,UAAY,EAAA,eAAA,EAAiB,UAAU,GAAI,EAAA;AAAA,EAC9D,QAAU,EAAA;AAAA,IACR,MAAQ,EAAA,EAAA;AAAA,IACR,KAAO,EAAA;AAAA;AAEX,CAAA;AAEA,MAAM,eAAeA,qCAAkC,CAAA,CAAC,CAAG,EAAA,EAAE,MAAY,MAAA;AAAA,EACvE,IAAM,EAAA;AAAA,IACJ,eAAA,EAAiBC,eAAQ,CAAA,IAAA,EAAM,aAAa;AAAA;AAEhD,CAAE,CAAA,CAAA;AAEK,MAAM,MAAS,GAAAC,eAAA,CAAuB,CAAC,MAAA,EAAQ,GAAQ,KAAA;AAC5D,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,QAAU,EAAA,YAAA,EAAc,MAAM,CAAA;AACrD,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAAyB,CAAA;AAAA,IACzC,IAAM,EAAA,QAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,IAAM,EAAAC,0BAAA;AAAA,MACN,WAAa,EAAAC;AAAA,KACf;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EACE,uBAAAC,cAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MAEA,QAAA,kBAAAD,cAAA,CAACE,yBAAW,WAA0B,EAAA,OAAA,EAAS,QAAS,GAAG,eAAA,EACxD,WAAC,gBACA,qBAAAC,eAAA;AAAA,QAACC,WAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACC,GAAG,SAAU,CAAA,MAAA,EAAQ,EAAE,KAAA,EAAO,kBAAkB,CAAA;AAAA,UAChD,GAAG,MAAA;AAAA,UAEH,QAAA,EAAA;AAAA,YACC,eAAA,oBAAAJ,cAAA,CAACK,2BAAY,OAAS,EAAA,OAAA,EAAS,UAAqB,GAAG,SAAA,CAAU,aAAa,CAAG,EAAA,CAAA;AAAA,YAElF;AAAA;AAAA;AAAA,OAGP,EAAA;AAAA;AAAA,GACF;AAEJ,CAAC;AAED,MAAA,CAAO,WAAc,GAAA,qBAAA;;;;"}