{"version":3,"file":"Alert.mjs","names":["Alert","AntdAlert","Flexbox"],"sources":["../../src/Alert/Alert.tsx"],"sourcesContent":["'use client';\n\nimport { Alert as AntdAlert } from 'antd';\nimport { cssVar, cx, useTheme } from 'antd-style';\nimport { camelCase } from 'es-toolkit/compat';\nimport { AlertTriangle, CheckCircle, Info, X, XCircle } from 'lucide-react';\nimport { memo } from 'react';\n\nimport { Accordion, AccordionItem } from '@/Accordion';\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { extraHeaderVariants, extraVariants, rootVariants } from './style';\nimport type { AlertProps } from './type';\n\nconst typeIcons = {\n  error: XCircle,\n  info: Info,\n  secondary: AlertTriangle,\n  success: CheckCircle,\n  warning: AlertTriangle,\n};\n\nconst colors = (theme: any, type: string = 'info', ...keys: string[]) => {\n  if (type === 'secondary') return theme[camelCase(['color', ...keys].join('-'))] as string;\n  return theme[camelCase(['color', type, ...keys].join('-'))] as string;\n};\n\nconst Alert = memo<AlertProps>(\n  ({\n    closable = false,\n    description,\n    showIcon = true,\n    type = 'info',\n    glass,\n    icon,\n    colorfulText = true,\n    iconProps,\n    style,\n    extra,\n    classNames,\n    styles: customStyles,\n    text,\n    extraDefaultExpand = false,\n    extraIsolate,\n    banner,\n    variant = 'filled',\n    ref,\n    ...rest\n  }) => {\n    const theme = useTheme();\n    const hasTitle = !!description;\n    const isClosable = !!closable;\n    const isShowIcon = !!showIcon;\n\n    const isInsideExtra = Boolean(!extraIsolate && !!extra);\n\n    const alert = (\n      <AntdAlert\n        banner={banner}\n        description={description}\n        ref={ref}\n        showIcon={showIcon}\n        type={type === 'secondary' ? 'info' : type}\n        className={cx(\n          rootVariants({\n            closable: isClosable,\n            colorfulText,\n            glass,\n            hasExtra: isInsideExtra,\n            hasTitle,\n            showIcon: isShowIcon,\n            variant,\n          }),\n          classNames?.alert,\n        )}\n        closable={\n          typeof closable === 'boolean'\n            ? closable\n            : {\n                closeIcon: <ActionIcon color={colors(theme, type)} icon={X} size={'small'} />,\n                ...closable,\n              }\n        }\n        icon={\n          <Icon\n            color={type === 'secondary' ? cssVar.colorTextSecondary : undefined}\n            icon={icon || typeIcons[type]}\n            size={description ? 24 : 18}\n            {...iconProps}\n          />\n        }\n        style={{\n          background: colors(theme, type, 'fillTertiary'),\n          borderColor: colors(theme, type, 'fillSecondary'),\n          color: colorfulText ? colors(theme, type) : undefined,\n          ...style,\n          ...customStyles?.alert,\n        }}\n        {...rest}\n      />\n    );\n\n    if (!extra) return alert;\n\n    if (extraIsolate)\n      return (\n        <Flexbox className={classNames?.container} gap={8}>\n          {alert}\n          {extra}\n        </Flexbox>\n      );\n\n    return (\n      <Flexbox className={classNames?.container} style={customStyles?.container}>\n        {alert}\n        <Flexbox\n          className={extraVariants({ banner, variant })}\n          style={{\n            background: colors(theme, type, 'fillTertiary'),\n            borderColor: colors(theme, type, 'fillSecondary'),\n            color: colors(theme, type),\n            fontSize: description ? 14 : 12,\n          }}\n        >\n          <Accordion defaultExpandedKeys={extraDefaultExpand ? ['extra'] : []}>\n            <AccordionItem\n              itemKey={'extra'}\n              title={text?.detail || 'Show Details'}\n              classNames={{\n                content: classNames?.extraContent,\n                header: extraHeaderVariants({ hasTitle, variant }),\n              }}\n              styles={{\n                content: {\n                  fontSize: 12,\n                  ...customStyles?.extraContent,\n                },\n                header: {\n                  borderColor: colors(theme, type, 'fillSecondary'),\n                },\n                indicator: {\n                  color: colors(theme, type),\n                },\n                title: {\n                  color: colors(theme, type),\n                  fontSize: 12,\n                },\n              }}\n            >\n              {extra}\n            </AccordionItem>\n          </Accordion>\n        </Flexbox>\n      </Flexbox>\n    );\n  },\n);\n\nAlert.displayName = 'Alert';\n\nexport default Alert;\n"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,YAAY;CAChB,OAAO;CACP,MAAM;CACN,WAAW;CACX,SAAS;CACT,SAAS;CACV;AAED,MAAM,UAAU,OAAY,OAAe,QAAQ,GAAG,SAAmB;AACvE,KAAI,SAAS,YAAa,QAAO,MAAM,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;AAC9E,QAAO,MAAM,UAAU;EAAC;EAAS;EAAM,GAAG;EAAK,CAAC,KAAK,IAAI,CAAC;;AAG5D,MAAMA,UAAQ,MACX,EACC,WAAW,OACX,aACA,WAAW,MACX,OAAO,QACP,OACA,MACA,eAAe,MACf,WACA,OACA,OACA,YACA,QAAQ,cACR,MACA,qBAAqB,OACrB,cACA,QACA,UAAU,UACV,KACA,GAAG,WACC;CACJ,MAAM,QAAQ,UAAU;CACxB,MAAM,WAAW,CAAC,CAAC;CAMnB,MAAM,QACJ,oBAACC,OAAD;EACU;EACK;EACR;EACK;EACV,MAAM,SAAS,cAAc,SAAS;EACtC,WAAW,GACT,aAAa;GACX,UAdW,CAAC,CAAC;GAeb;GACA;GACA,UAdc,QAAQ,CAAC,gBAAgB,CAAC,CAAC,MAAM;GAe/C;GACA,UAlBW,CAAC,CAAC;GAmBb;GACD,CAAC,EACF,YAAY,MACb;EACD,UACE,OAAO,aAAa,YAChB,WACA;GACE,WAAW,oBAAC,YAAD;IAAY,OAAO,OAAO,OAAO,KAAK;IAAE,MAAM;IAAG,MAAM;IAAW,CAAA;GAC7E,GAAG;GACJ;EAEP,MACE,oBAAC,MAAD;GACE,OAAO,SAAS,cAAc,OAAO,qBAAqB,KAAA;GAC1D,MAAM,QAAQ,UAAU;GACxB,MAAM,cAAc,KAAK;GACzB,GAAI;GACJ,CAAA;EAEJ,OAAO;GACL,YAAY,OAAO,OAAO,MAAM,eAAe;GAC/C,aAAa,OAAO,OAAO,MAAM,gBAAgB;GACjD,OAAO,eAAe,OAAO,OAAO,KAAK,GAAG,KAAA;GAC5C,GAAG;GACH,GAAG,cAAc;GAClB;EACD,GAAI;EACJ,CAAA;AAGJ,KAAI,CAAC,MAAO,QAAO;AAEnB,KAAI,aACF,QACE,qBAACC,mBAAD;EAAS,WAAW,YAAY;EAAW,KAAK;YAAhD,CACG,OACA,MACO;;AAGd,QACE,qBAACA,mBAAD;EAAS,WAAW,YAAY;EAAW,OAAO,cAAc;YAAhE,CACG,OACD,oBAACA,mBAAD;GACE,WAAW,cAAc;IAAE;IAAQ;IAAS,CAAC;GAC7C,OAAO;IACL,YAAY,OAAO,OAAO,MAAM,eAAe;IAC/C,aAAa,OAAO,OAAO,MAAM,gBAAgB;IACjD,OAAO,OAAO,OAAO,KAAK;IAC1B,UAAU,cAAc,KAAK;IAC9B;aAED,oBAAC,WAAD;IAAW,qBAAqB,qBAAqB,CAAC,QAAQ,GAAG,EAAE;cACjE,oBAAC,eAAD;KACE,SAAS;KACT,OAAO,MAAM,UAAU;KACvB,YAAY;MACV,SAAS,YAAY;MACrB,QAAQ,oBAAoB;OAAE;OAAU;OAAS,CAAC;MACnD;KACD,QAAQ;MACN,SAAS;OACP,UAAU;OACV,GAAG,cAAc;OAClB;MACD,QAAQ,EACN,aAAa,OAAO,OAAO,MAAM,gBAAgB,EAClD;MACD,WAAW,EACT,OAAO,OAAO,OAAO,KAAK,EAC3B;MACD,OAAO;OACL,OAAO,OAAO,OAAO,KAAK;OAC1B,UAAU;OACX;MACF;eAEA;KACa,CAAA;IACN,CAAA;GACJ,CAAA,CACF;;EAGf;AAED,QAAM,cAAc"}