{"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  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-500\"}\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\";\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,EACnBC,MAAM;AAAA,IACJC,MAAMC;AAAAA,IACNC,SAAS;AAAA,EACV;AAAA,EAEDC,OAAO;AAAA,IACLH,MAAMC;AAAAA,IACNC,SAAS;AAAA,EACV;AAAA,EAEDE,OAAO;AAAA,IACLJ,MAAMK;AAAAA,IACNH,SAAS;AAAA,EACV;AAAA,EAEDI,OAAO;AAAA,IACLN,MAAMK;AAAAA,IACNH,SAAS;AAAA,EACV;AAAA,EAEDK,MAAM;AAAA,IACJP,MAAMC;AAAAA,IACNC,SAAS;AAAA,EACX;AACF;AAEA,MAAA,SAAeM,gBAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNX;AAAAA,EACAY,MAAMZ,QAAO;AAAA,IAAEa;AAAAA,EAAM,GAAG;;AACtBC,YAAQC,IAAK,SAAOC,cAASC,cAAe,MAAK,MAA7BD,mBAAgCE,SAAS;AAE7D,UAAMjB,OAAO;AAAA,MACXkB,OAAO;AAAA,QACLC,GAAG;AAAA,QACHC,GAAG;AAAA,QACHC,MAAM;AAAA,MACP;AAAA,MACDC,QAAQ;AAAA,QACNH,GAAG;AAAA,QACHC,GAAG;AAAA,QACHC,MAAM;AAAA,MACP;AAAA,MACDE,OAAO;AAAA,QACLJ,GAAG;AAAA,QACHC,GAAG;AAAA,QACHC,MAAM;AAAA,MACR;AAAA;AAGF,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,IAIvB,GAAA,CAEFtB,OAAMS,SAAS,KAAEgB,YAAA,KAAA;AAAA,MAAA,SACL,iBAAgBzB,OAAMS;AAAAA,IAAU,GAAA,IAAA,IAE3C,IAEDI,MAAMT,UAAUS,MAAMT,QAAO,IAAK,EAAE,CAExC;AAAA,EACH;AACF,CAAC;ACtFD,MAAe,QAAA;AAAA,EACb,QAAQ,KAAU;AACZ,QAAA,UAAU,OAAO,MAAM,MAAM;AAAA,EACnC;AACF;"}