{"ast":null,"code":"import _objectSpread from\"/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import _objectWithoutProperties from\"/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";import _taggedTemplateLiteral from\"/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\";const _excluded=[\"children\",\"onClick\",\"secondary\",\"disabled\",\"fullWidth\",\"inline\",\"size\",\"noMargin\",\"type\"];var _templateObject;// src/components/common/Button.js - 改良版(タッチデバイス最適化)\nimport React from'react';import styled from'styled-components';import{jsx as _jsx}from\"react/jsx-runtime\";const StyledButton=styled.button(_templateObject||(_templateObject=_taggedTemplateLiteral([\"\\n display: \",\";\\n width: \",\";\\n padding: \",\";\\n background-color: \",\";\\n color: var(--white);\\n font-size: \",\";\\n font-weight: 700;\\n border: none;\\n border-radius: var(--border-radius);\\n cursor: pointer;\\n transition: background-color 0.3s, transform 0.3s;\\n box-shadow: var(--box-shadow);\\n margin: \",\";\\n \\n /* \\u30BF\\u30C3\\u30C1\\u30C7\\u30D0\\u30A4\\u30B9\\u7528\\u306E\\u6700\\u5C0F\\u30B5\\u30A4\\u30BA\\u78BA\\u4FDD */\\n min-height: 44px;\\n min-width: \",\";\\n \\n /* \\u30BF\\u30C3\\u30D7\\u3057\\u3084\\u3059\\u304F\\u3059\\u308B */\\n -webkit-tap-highlight-color: transparent;\\n touch-action: manipulation;\\n\\n &:hover {\\n background-color: \",\";\\n transform: translateY(-2px);\\n }\\n\\n &:active {\\n transform: translateY(0);\\n }\\n\\n &:disabled {\\n background-color: var(--border-color);\\n cursor: not-allowed;\\n transform: none;\\n opacity: 0.6;\\n }\\n\\n /* \\u30BF\\u30D6\\u30EC\\u30C3\\u30C8\\u5BFE\\u5FDC */\\n @media (min-width: 768px) and (max-width: 1023px) {\\n padding: \",\";\\n font-size: \",\";\\n }\\n\\n /* \\u30E2\\u30D0\\u30A4\\u30EB\\u5BFE\\u5FDC */\\n @media (max-width: 767px) {\\n width: \",\";\\n min-height: 48px;\\n }\\n\"])),props=>props.$inline?'inline-block':'block',props=>props.$fullWidth?'100%':'auto',props=>{if(props.$size==='small')return'12px 20px';if(props.$size==='large')return'20px 32px';return'16px 24px';// default\n},props=>props.$secondary?'var(--accent-color)':'var(--primary-color)',props=>{if(props.$size==='small')return'16px';if(props.$size==='large')return'22px';return'20px';// default\n},props=>props.$noMargin?'0':'16px 0',props=>props.$fullWidth?'auto':'120px',props=>props.$secondary?'#e3a800':'var(--secondary-color)',props=>{if(props.$size==='small')return'14px 22px';if(props.$size==='large')return'18px 30px';return'16px 26px';},props=>{if(props.$size==='small')return'17px';if(props.$size==='large')return'21px';return'19px';},props=>props.$inline?'auto':'100%');const Button=_ref=>{let{children,onClick,secondary,disabled,fullWidth,inline,size,noMargin,type='button'}=_ref,props=_objectWithoutProperties(_ref,_excluded);return/*#__PURE__*/_jsx(StyledButton,_objectSpread(_objectSpread({onClick:onClick,$secondary:secondary,disabled:disabled,$fullWidth:fullWidth,$inline:inline,$size:size,$noMargin:noMargin,type:type},props),{},{children:children}));};export default Button;","map":{"version":3,"names":["React","styled","jsx","_jsx","StyledButton","button","_templateObject","_taggedTemplateLiteral","props","$inline","$fullWidth","$size","$secondary","$noMargin","Button","_ref","children","onClick","secondary","disabled","fullWidth","inline","size","noMargin","type","_objectWithoutProperties","_excluded","_objectSpread"],"sources":["/home/fanfarm/FanFarm/system/V3fanfarm-ubuntu-local/V3fanfarm-frontend/src/components/common/Button.js"],"sourcesContent":["// src/components/common/Button.js - 改良版(タッチデバイス最適化)\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst StyledButton = styled.button`\n display: ${props => props.$inline ? 'inline-block' : 'block'};\n width: ${props => props.$fullWidth ? '100%' : 'auto'};\n padding: ${props => {\n if (props.$size === 'small') return '12px 20px';\n if (props.$size === 'large') return '20px 32px';\n return '16px 24px'; // default\n }};\n background-color: ${props => props.$secondary ? 'var(--accent-color)' : 'var(--primary-color)'};\n color: var(--white);\n font-size: ${props => {\n if (props.$size === 'small') return '16px';\n if (props.$size === 'large') return '22px';\n return '20px'; // default\n }};\n font-weight: 700;\n border: none;\n border-radius: var(--border-radius);\n cursor: pointer;\n transition: background-color 0.3s, transform 0.3s;\n box-shadow: var(--box-shadow);\n margin: ${props => props.$noMargin ? '0' : '16px 0'};\n \n /* タッチデバイス用の最小サイズ確保 */\n min-height: 44px;\n min-width: ${props => props.$fullWidth ? 'auto' : '120px'};\n \n /* タップしやすくする */\n -webkit-tap-highlight-color: transparent;\n touch-action: manipulation;\n\n &:hover {\n background-color: ${props => props.$secondary ? '#e3a800' : 'var(--secondary-color)'};\n transform: translateY(-2px);\n }\n\n &:active {\n transform: translateY(0);\n }\n\n &:disabled {\n background-color: var(--border-color);\n cursor: not-allowed;\n transform: none;\n opacity: 0.6;\n }\n\n /* タブレット対応 */\n @media (min-width: 768px) and (max-width: 1023px) {\n padding: ${props => {\n if (props.$size === 'small') return '14px 22px';\n if (props.$size === 'large') return '18px 30px';\n return '16px 26px';\n }};\n font-size: ${props => {\n if (props.$size === 'small') return '17px';\n if (props.$size === 'large') return '21px';\n return '19px';\n }};\n }\n\n /* モバイル対応 */\n @media (max-width: 767px) {\n width: ${props => props.$inline ? 'auto' : '100%'};\n min-height: 48px;\n }\n`;\n\nconst Button = ({ \n children, \n onClick, \n secondary, \n disabled, \n fullWidth, \n inline,\n size,\n noMargin,\n type = 'button', \n ...props \n}) => {\n return (\n <StyledButton \n onClick={onClick} \n $secondary={secondary} \n disabled={disabled}\n $fullWidth={fullWidth}\n $inline={inline}\n $size={size}\n $noMargin={noMargin}\n type={type}\n {...props}\n >\n {children}\n </StyledButton>\n );\n};\n\nexport default Button;\n"],"mappings":"unBAAA;AACA,MAAO,CAAAA,KAAK,KAAM,OAAO,CACzB,MAAO,CAAAC,MAAM,KAAM,mBAAmB,CAAC,OAAAC,GAAA,IAAAC,IAAA,yBAEvC,KAAM,CAAAC,YAAY,CAAGH,MAAM,CAACI,MAAM,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,kpCACrBC,KAAK,EAAIA,KAAK,CAACC,OAAO,CAAG,cAAc,CAAG,OAAO,CACnDD,KAAK,EAAIA,KAAK,CAACE,UAAU,CAAG,MAAM,CAAG,MAAM,CACzCF,KAAK,EAAI,CAClB,GAAIA,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,WAAW,CAC/C,GAAIH,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,WAAW,CAC/C,MAAO,WAAW,CAAE;AACtB,CAAC,CACmBH,KAAK,EAAIA,KAAK,CAACI,UAAU,CAAG,qBAAqB,CAAG,sBAAsB,CAEjFJ,KAAK,EAAI,CACpB,GAAIA,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,MAAM,CAC1C,GAAIH,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,MAAM,CAC1C,MAAO,MAAM,CAAE;AACjB,CAAC,CAOSH,KAAK,EAAIA,KAAK,CAACK,SAAS,CAAG,GAAG,CAAG,QAAQ,CAItCL,KAAK,EAAIA,KAAK,CAACE,UAAU,CAAG,MAAM,CAAG,OAAO,CAOnCF,KAAK,EAAIA,KAAK,CAACI,UAAU,CAAG,SAAS,CAAG,wBAAwB,CAiBzEJ,KAAK,EAAI,CAClB,GAAIA,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,WAAW,CAC/C,GAAIH,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,WAAW,CAC/C,MAAO,WAAW,CACpB,CAAC,CACYH,KAAK,EAAI,CACpB,GAAIA,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,MAAM,CAC1C,GAAIH,KAAK,CAACG,KAAK,GAAK,OAAO,CAAE,MAAO,MAAM,CAC1C,MAAO,MAAM,CACf,CAAC,CAKQH,KAAK,EAAIA,KAAK,CAACC,OAAO,CAAG,MAAM,CAAG,MAAM,CAGpD,CAED,KAAM,CAAAK,MAAM,CAAGC,IAAA,EAWT,IAXU,CACdC,QAAQ,CACRC,OAAO,CACPC,SAAS,CACTC,QAAQ,CACRC,SAAS,CACTC,MAAM,CACNC,IAAI,CACJC,QAAQ,CACRC,IAAI,CAAG,QAET,CAAC,CAAAT,IAAA,CADIP,KAAK,CAAAiB,wBAAA,CAAAV,IAAA,CAAAW,SAAA,EAER,mBACEvB,IAAA,CAACC,YAAY,CAAAuB,aAAA,CAAAA,aAAA,EACXV,OAAO,CAAEA,OAAQ,CACjBL,UAAU,CAAEM,SAAU,CACtBC,QAAQ,CAAEA,QAAS,CACnBT,UAAU,CAAEU,SAAU,CACtBX,OAAO,CAAEY,MAAO,CAChBV,KAAK,CAAEW,IAAK,CACZT,SAAS,CAAEU,QAAS,CACpBC,IAAI,CAAEA,IAAK,EACPhB,KAAK,MAAAQ,QAAA,CAERA,QAAQ,EACG,CAAC,CAEnB,CAAC,CAED,cAAe,CAAAF,MAAM","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}