{"version":3,"file":"ActionIconGroup.mjs","names":[],"sources":["../../src/ActionIconGroup/ActionIconGroup.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { MoreHorizontal } from 'lucide-react';\nimport { type FC, useMemo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport DropdownMenu from '@/DropdownMenu';\nimport { Center } from '@/Flex';\nimport { TooltipGroup } from '@/Tooltip';\n\nimport { variants } from './style';\nimport type { ActionIconGroupProps } from './type';\n\nconst ActionIconGroup: FC<ActionIconGroupProps> = ({\n  variant = 'filled',\n  disabled,\n  shadow,\n  glass,\n  actionIconProps,\n  items = [],\n  horizontal = true,\n  menu,\n  onActionClick,\n  className,\n  size = 'small',\n  ref,\n  ...rest\n}) => {\n  const tooltipPlacement = useMemo(\n    () => (actionIconProps?.tooltipProps?.placement || horizontal ? 'top' : 'right'),\n    [actionIconProps, horizontal],\n  );\n\n  const menuItems = useMemo(() => {\n    const rawItems = typeof menu === 'function' ? menu() : menu;\n    if (!rawItems) return [];\n    return rawItems.map((item) => ({\n      ...(item as any),\n      onClick: (info: any) => {\n        (item as any)?.onClick?.(info);\n        onActionClick?.(info);\n      },\n    }));\n  }, [menu, onActionClick]);\n\n  return (\n    <TooltipGroup>\n      <Center\n        className={cx(variants({ disabled, glass, shadow, variant }), className)}\n        horizontal={horizontal}\n        padding={2}\n        ref={ref}\n        {...rest}\n      >\n        {items?.length > 0 &&\n          items.map((item) => {\n            const { icon, key, label, onClick, danger, loading, ...itemRest } = item;\n            return (\n              <ActionIcon\n                danger={danger}\n                icon={icon}\n                key={key}\n                loading={loading}\n                size={size}\n                title={label}\n                tooltipProps={{\n                  placement: tooltipPlacement,\n                }}\n                onClick={(e) => {\n                  onActionClick?.({\n                    domEvent: e,\n                    key: String(key),\n                    keyPath: [String(key)],\n                  });\n                  onClick?.(e as any);\n                }}\n                {...actionIconProps}\n                disabled={disabled || loading || itemRest?.disabled}\n              />\n            );\n          })}\n        {menu && (\n          <DropdownMenu items={menuItems} nativeButton={false}>\n            <ActionIcon\n              disabled={disabled}\n              icon={MoreHorizontal}\n              key=\"more\"\n              size={size}\n              {...actionIconProps}\n              tooltipProps={{\n                placement: tooltipPlacement,\n                ...actionIconProps?.tooltipProps,\n              }}\n            />\n          </DropdownMenu>\n        )}\n      </Center>\n    </TooltipGroup>\n  );\n};\n\nActionIconGroup.displayName = 'ActionIconGroup';\n\nexport default ActionIconGroup;\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,mBAA6C,EACjD,UAAU,UACV,UACA,QACA,OACA,iBACA,QAAQ,EAAE,EACV,aAAa,MACb,MACA,eACA,WACA,OAAO,SACP,KACA,GAAG,WACC;CACJ,MAAM,mBAAmB,cAChB,iBAAiB,cAAc,aAAa,aAAa,QAAQ,SACxE,CAAC,iBAAiB,WAAW,CAC9B;CAED,MAAM,YAAY,cAAc;EAC9B,MAAM,WAAW,OAAO,SAAS,aAAa,MAAM,GAAG;AACvD,MAAI,CAAC,SAAU,QAAO,EAAE;AACxB,SAAO,SAAS,KAAK,UAAU;GAC7B,GAAI;GACJ,UAAU,SAAc;AACrB,UAAc,UAAU,KAAK;AAC9B,oBAAgB,KAAK;;GAExB,EAAE;IACF,CAAC,MAAM,cAAc,CAAC;AAEzB,QACE,oBAAC,cAAD,EAAA,UACE,qBAAC,QAAD;EACE,WAAW,GAAG,SAAS;GAAE;GAAU;GAAO;GAAQ;GAAS,CAAC,EAAE,UAAU;EAC5D;EACZ,SAAS;EACJ;EACL,GAAI;YALN,CAOG,OAAO,SAAS,KACf,MAAM,KAAK,SAAS;GAClB,MAAM,EAAE,MAAM,KAAK,OAAO,SAAS,QAAQ,SAAS,GAAG,aAAa;AACpE,UACE,oBAAC,YAAD;IACU;IACF;IAEG;IACH;IACN,OAAO;IACP,cAAc,EACZ,WAAW,kBACZ;IACD,UAAU,MAAM;AACd,qBAAgB;MACd,UAAU;MACV,KAAK,OAAO,IAAI;MAChB,SAAS,CAAC,OAAO,IAAI,CAAC;MACvB,CAAC;AACF,eAAU,EAAS;;IAErB,GAAI;IACJ,UAAU,YAAY,WAAW,UAAU;IAC3C,EAjBK,IAiBL;IAEJ,EACH,QACC,oBAAC,cAAD;GAAc,OAAO;GAAW,cAAc;aAC5C,oBAAC,YAAD;IACY;IACV,MAAM;IAEA;IACN,GAAI;IACJ,cAAc;KACZ,WAAW;KACX,GAAG,iBAAiB;KACrB;IACD,EAPI,OAOJ;GACW,CAAA,CAEV;KACI,CAAA;;AAInB,gBAAgB,cAAc"}