{"version":3,"file":"Balloon.cjs","sources":["../../../src/components/Balloon/Balloon.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, type PropsWithChildren, memo, useMemo } from 'react'\nimport { type VariantProps, tv } from 'tailwind-variants'\n\n// HINT: trianble部分はRetinaディスプレイなどで途切れてしまう場合があるので\n// 1pxほど大きめに描画してbody部分と被るようにしています。\nconst classNameGenerator = tv({\n  base: [\n    'smarthr-ui-Balloon',\n    'shr-relative',\n    'shr-z-1',\n    'shr-inline-block',\n    'shr-text-sm',\n    'shr-rounded-s',\n    /* drop-shadow は spread-radius を受け付けないので shadow.LAYER2 に近い値をハードコーディングしている */\n    'shr-drop-shadow-[0_2px_2.5px_theme(colors.transparency.30)]',\n    // Safariでdrop-shadowが残り続けてしまうバグの対応\n    'shr-will-change-[filter]',\n    'shr-whitespace-nowrap',\n    'shr-bg-white',\n    'shr-text-black',\n    'after:shr-block',\n    'after:shr-absolute',\n    'after:shr-content-[\"\"]',\n    'after:shr-bg-white',\n    'contrast-more:shr-border-shorthand',\n    'contrast-more:shr-border-high-contrast',\n    'contrast-more:before:shr-block',\n    'contrast-more:before:shr-absolute',\n    'contrast-more:before:shr-content-[\"\"]',\n    'contrast-more:before:shr-bg-black',\n  ],\n  variants: {\n    horizontal: {\n      center: [\n        'before:shr-left-1/2',\n        'before:-shr-translate-x-[5px]',\n        'after:shr-left-1/2',\n        'after:-shr-translate-x-[5px]',\n      ],\n      right: '',\n      left: '',\n    },\n    vertical: {\n      top: [\n        'before:-shr-top-[5px]',\n        'before:shr-w-[10px]',\n        'before:shr-h-[5px]',\n        'before:[clip-path:polygon(50%_0,100%_100%,0_100%)]',\n        'after:-shr-top-0.25',\n        'after:shr-w-[10px]',\n        'after:shr-h-[5px]',\n        'after:[clip-path:polygon(50%_0,100%_100%,0_100%)]',\n      ],\n      bottom: [\n        'before:-shr-bottom-[5px]',\n        'before:shr-w-[10px]',\n        'before:shr-h-[5px]',\n        'before:[clip-path:polygon(0_0,100%_0,50%_100%)]',\n        'after:-shr-bottom-0.25',\n        'after:shr-w-[10px]',\n        'after:shr-h-[5px]',\n        'after:[clip-path:polygon(0_0,100%_0,50%_100%)]',\n      ],\n      middle: [\n        'before:shr-top-1/2',\n        'before:-shr-translate-y-[5px]',\n        'after:shr-top-1/2',\n        'after:-shr-translate-y-[5px]',\n      ],\n    },\n    triggerIcon: {\n      true: '',\n    },\n  },\n  compoundVariants: [\n    {\n      vertical: ['top', 'bottom'],\n      horizontal: 'left',\n      className: ['before:shr-left-1.5', 'after:shr-left-1.5'],\n    },\n    {\n      vertical: ['top', 'bottom'],\n      horizontal: 'left',\n      triggerIcon: true,\n      className: ['before:shr-left-0.5', 'after:shr-left-0.5'],\n    },\n    {\n      vertical: ['top', 'bottom'],\n      horizontal: 'right',\n      className: ['before:shr-right-1.5', 'after:shr-right-1.5'],\n    },\n    {\n      vertical: ['top', 'bottom'],\n      horizontal: 'right',\n      triggerIcon: true,\n      className: ['before:shr-right-0.5', 'after:shr-right-0.5'],\n    },\n    {\n      vertical: 'middle',\n      horizontal: 'left',\n      className: [\n        'before:-shr-left-[5px]',\n        'before:shr-w-[5px]',\n        'before:shr-h-[10px]',\n        'before:[clip-path:polygon(100%_0,100%_100%,0_50%)]',\n        'after:-shr-left-0.25',\n        'after:shr-w-[5px]',\n        'after:shr-h-[10px]',\n        'after:[clip-path:polygon(100%_0,100%_100%,0_50%)]',\n      ],\n    },\n    {\n      vertical: 'middle',\n      horizontal: 'right',\n      className: [\n        'before:-shr-right-[5px]',\n        'before:shr-w-[5px]',\n        'before:shr-h-[10px]',\n        'before:[clip-path:polygon(0_0,100%_50%,0_100%)]',\n        'after:-shr-right-0.25',\n        'after:shr-w-[5px]',\n        'after:shr-h-[10px]',\n        'after:[clip-path:polygon(0_0,100%_50%,0_100%)]',\n      ],\n    },\n  ],\n})\n\ntype AbstractProps = PropsWithChildren<\n  VariantProps<typeof classNameGenerator> & {\n    /** レンダリングするタグ */\n    as?: 'div' | 'span'\n  }\n>\ntype Props = AbstractProps & Omit<ComponentPropsWithoutRef<'div'>, keyof AbstractProps>\n\nexport const Balloon = memo<Props>(\n  ({ horizontal, vertical, triggerIcon, className, as: Component = 'div', ...rest }) => {\n    const actualClassName = useMemo(\n      () => classNameGenerator({ horizontal, vertical, triggerIcon, className }),\n      [horizontal, vertical, className, triggerIcon],\n    )\n\n    return <Component {...rest} className={actualClassName} />\n  },\n)\n"],"names":["tv","memo","useMemo","_jsx"],"mappings":"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"}