{"version":3,"file":"ActionIcon.mjs","names":[],"sources":["../../src/ActionIcon/ActionIcon.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Loader2 } from 'lucide-react';\nimport { memo, type MouseEventHandler, useCallback, useMemo } from 'react';\n\nimport { Center } from '@/Flex';\nimport Icon from '@/Icon';\nimport Tooltip from '@/Tooltip';\n\nimport { calcSize } from './components/utils';\nimport { variants } from './style';\nimport { type ActionIconProps } from './type';\n\nconst ActionIcon = memo<ActionIconProps>(\n  ({\n    color,\n    fill,\n    className,\n    active,\n    icon,\n    size = 'middle',\n    variant = 'borderless',\n    style,\n    glass,\n    title,\n    onClick,\n    loading,\n    fillOpacity,\n    fillRule,\n    focusable,\n    shadow,\n    disabled,\n    spin: iconSpinning,\n    tooltipProps,\n    danger,\n    ref,\n    ...rest\n  }) => {\n    const { blockSize, borderRadius } = useMemo(() => calcSize(size), [size]);\n    const popupTriggerAria = rest as {\n      'aria-expanded'?: unknown;\n      'aria-haspopup'?: unknown;\n      'aria-label'?: string;\n    };\n    const isPopupTrigger =\n      popupTriggerAria['aria-haspopup'] !== undefined ||\n      popupTriggerAria['aria-expanded'] !== undefined;\n    const popupTriggerLabel =\n      popupTriggerAria['aria-label'] ??\n      (isPopupTrigger && typeof title === 'string' ? title : undefined);\n\n    const handleClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n      (event) => {\n        if (loading || disabled) return;\n        onClick?.(event);\n      },\n      [loading, disabled, onClick],\n    );\n\n    const node = (\n      <Center\n        horizontal\n        className={cx(variants({ active, danger, disabled, glass, shadow, variant }), className)}\n        flex={'none'}\n        ref={ref}\n        role=\"button\"\n        style={{ borderRadius, height: blockSize, width: blockSize, ...style }}\n        tabIndex={disabled ? -1 : 0}\n        onClick={handleClick}\n        {...rest}\n        aria-label={popupTriggerLabel}\n      >\n        {icon && (\n          <Icon\n            color={color}\n            fill={fill}\n            fillOpacity={fillOpacity}\n            fillRule={fillRule}\n            focusable={focusable}\n            icon={loading ? Loader2 : icon}\n            size={size}\n            spin={loading ? true : iconSpinning}\n            style={{\n              pointerEvents: 'none',\n            }}\n          />\n        )}\n      </Center>\n    );\n\n    if (!title) return node;\n\n    return (\n      <Tooltip\n        title={title}\n        {...tooltipProps}\n        styles={\n          typeof tooltipProps?.styles === 'function'\n            ? tooltipProps.styles\n            : {\n                ...tooltipProps?.styles,\n                container: { pointerEvents: 'none', ...tooltipProps?.styles?.container },\n              }\n        }\n      >\n        {node}\n      </Tooltip>\n    );\n  },\n);\n\nActionIcon.displayName = 'ActionIcon';\n\nexport default ActionIcon;\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,aAAa,MAChB,EACC,OACA,MACA,WACA,QACA,MACA,OAAO,UACP,UAAU,cACV,OACA,OACA,OACA,SACA,SACA,aACA,UACA,WACA,QACA,UACA,MAAM,cACN,cACA,QACA,KACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,iBAAiB,cAAc,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC;CACxE,MAAM,mBAAmB;CAKzB,MAAM,iBACJ,iBAAiB,qBAAqB,KAAA,KACtC,iBAAiB,qBAAqB,KAAA;CACxC,MAAM,oBACJ,iBAAiB,kBAChB,kBAAkB,OAAO,UAAU,WAAW,QAAQ,KAAA;CAEzD,MAAM,cAAc,aACjB,UAAU;EACT,IAAI,WAAW,UAAU;EACzB,UAAU,KAAK;CACjB,GACA;EAAC;EAAS;EAAU;CAAO,CAC7B;CAEA,MAAM,OACJ,oBAAC,QAAD;EACE,YAAA;EACA,WAAW,GAAG,SAAS;GAAE;GAAQ;GAAQ;GAAU;GAAO;GAAQ;EAAQ,CAAC,GAAG,SAAS;EACvF,MAAM;EACD;EACL,MAAK;EACL,OAAO;GAAE;GAAc,QAAQ;GAAW,OAAO;GAAW,GAAG;EAAM;EACrE,UAAU,WAAW,KAAK;EAC1B,SAAS;EACT,GAAI;EACJ,cAAY;YAEX,QACC,oBAAC,MAAD;GACS;GACD;GACO;GACH;GACC;GACX,MAAM,UAAU,UAAU;GACpB;GACN,MAAM,UAAU,OAAO;GACvB,OAAO,EACL,eAAe,OACjB;EACD,CAAA;CAEG,CAAA;CAGV,IAAI,CAAC,OAAO,OAAO;CAEnB,OACE,oBAAC,SAAD;EACS;EACP,GAAI;EACJ,QACE,OAAO,cAAc,WAAW,aAC5B,aAAa,SACb;GACE,GAAG,cAAc;GACjB,WAAW;IAAE,eAAe;IAAQ,GAAG,cAAc,QAAQ;GAAU;EACzE;YAGL;CACM,CAAA;AAEb,CACF;AAEA,WAAW,cAAc"}