{"version":3,"file":"index.mjs","sources":["../../src/Button/Button.tsx","../../src/Button/index.ts"],"sourcesContent":["import { defineComponent, PropType } from \"vue\";\nimport \"uno.css\";\n\nexport type ISize = \"small\" | \"medium\" | \"large\";\nexport type IColor =\n  | \"black\"\n  | \"gray\"\n  | \"red\"\n  | \"yellow\"\n  | \"green\"\n  | \"blue\"\n  | \"indigo\"\n  | \"purple\"\n  | \"pink\";\n\nexport const props = {\n  // 新增\n  size: {\n    type: String as PropType<ISize>,\n    default: \"medium\",\n  },\n\n  color: {\n    type: String as PropType<IColor>,\n    default: \"blue\",\n  },\n\n  round: {\n    type: Boolean,\n    default: false,\n  },\n\n  plain: {\n    type: Boolean,\n    default: false,\n  },\n\n  icon: {\n    type: String,\n    default: \"\",\n  },\n} as const;\n\nexport default defineComponent({\n  name: \"SButton\",\n  props,\n  setup(props, { slots }) {\n    console.log(`html`, document.querySelector(`#app`)?.innerHTML);\n\n    const size = {\n      small: {\n        x: \"2\",\n        y: \"1\",\n        text: \"sm\",\n      },\n      medium: {\n        x: \"3\",\n        y: \"1.5\",\n        text: \"base\",\n      },\n      large: {\n        x: \"4\",\n        y: \"2\",\n        text: \"lg\",\n      },\n    };\n\n    return () => (\n      <button\n        class={`\n          py-${size[props.size].y}\n          px-${size[props.size].x}\n          ${props.round ? \"rounded-full\" : \"rounded-lg\"}\n          bg-${props.color}-${props.plain ? \"100\" : \"500\"}\n          hover:bg-${props.color}-400\n          border-${props.color}-${props.plain ? \"500\" : \"500\"}\n          cursor-pointer\n          border-solid\n          text-${props.plain ? props.color + \"-500\" : \"white\"}\n          text-${size[props.size].text}\n          hover:text-white\n          transition duration-300 ease-in-out transform hover:scale-105\n          mx-1\n          `}\n      >\n        {props.icon !== \"\" ? (\n          <i class={`i-ic-baseline-${props.icon} p-3`}></i>\n        ) : (\n          \"\"\n        )}\n        {slots.default ? slots.default() : \"\"}\n      </button>\n    );\n  },\n});\n","// import Button from \"./Button\";\n\n// // 导出Button组件\n// export default Button;\n\nimport Button from \"./Button\";\nimport { App } from \"vue\";\n\n// 导出Button组件\nexport { Button };\n\n// 导出Vue插件\nexport default {\n  install(app: App) {\n    app.component(Button.name, Button);\n  },\n};\n"],"names":["props","size","type","String","default","color","round","Boolean","plain","icon","defineComponent","name","setup","slots","console","log","document","querySelector","innerHTML","small","x","y","text","medium","large","_createVNode"],"mappings":";;AAeO,MAAMA,QAAQ;AAAA,EAEnBC,MAAM;AAAA,IACJC,MAAMC;AAAAA,IACNC,SAAS;AAAA,EAJQ;AAAA,EAOnBC,OAAO;AAAA,IACLH,MAAMC;AAAAA,IACNC,SAAS;AAAA,EATQ;AAAA,EAYnBE,OAAO;AAAA,IACLJ,MAAMK;AAAAA,IACNH,SAAS;AAAA,EAdQ;AAAA,EAiBnBI,OAAO;AAAA,IACLN,MAAMK;AAAAA,IACNH,SAAS;AAAA,EAnBQ;AAAA,EAsBnBK,MAAM;AAAA,IACJP,MAAMC;AAAAA,IACNC,SAAS;AAAA,EAFL;AAtBa;AA4BrB,MAAA,SAAeM,gBAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNX;AAAAA,EACAY,MAAMZ,QAAO;AAAA,IAAEa;AAAAA,EAAF,GAAW;;AACtBC,YAAQC,IAAR,SAAoBC,cAASC,cAAT,MAAAD,MAAAA,mBAAgCE,SAApDJ;AAEA,UAAMb,OAAO;AAAA,MACXkB,OAAO;AAAA,QACLC,GAAG;AAAA,QACHC,GAAG;AAAA,QACHC,MAAM;AAAA,MAJG;AAAA,MAMXC,QAAQ;AAAA,QACNH,GAAG;AAAA,QACHC,GAAG;AAAA,QACHC,MAAM;AAAA,MATG;AAAA,MAWXE,OAAO;AAAA,QACLJ,GAAG;AAAA,QACHC,GAAG;AAAA,QACHC,MAAM;AAAA,MAHD;AAAA;AAOT,WAAO,MAAAG,YAAA,UAAA;AAAA,MAAA,SAEK;AAAA,eACDxB,KAAKD,OAAMC,MAAMoB;AAAAA,eACjBpB,KAAKD,OAAMC,MAAMmB;AAAAA,YACpBpB,OAAMM,QAAQ,iBAAiB;AAAA,eAC5BN,OAAMK,SAASL,OAAMQ,QAAQ,QAAQ;AAAA,qBAC/BR,OAAMK;AAAAA,mBACRL,OAAMK,SAASL,OAAMQ,QAAQ,QAAQ;AAAA;AAAA;AAAA,iBAGvCR,OAAMQ,QAAQR,OAAMK,QAAQ,SAAS;AAAA,iBACrCJ,KAAKD,OAAMC,MAAMqB;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAZvB,GAAA,CAkBFtB,OAAMS,SAAS,KAAfgB,YAAA,KAAA;AAAA,MAAA,SACY,iBAAgBzB,OAAMS;AAAAA,IADlC,GAAA,IAAA,IAGC,IAEDI,MAAMT,UAAUS,MAAMT,QAANS,IAAkB,EAvBhC,CAAA;AAAA,EA0BR;AAlD4B,CAAD;AC/B9B,MAAe,QAAA;AAAA,EACb,QAAQ,KAAU;AACZ,QAAA,UAAU,OAAO,MAAM,MAAM;AAAA,EACnC;AACF;"}