excited-ui
Version:
1 lines • 9.46 kB
Source Map (JSON)
{"version":3,"file":"excited-ui.umd.cjs","sources":["../src/components/Button/tools.ts","../src/components/Button/Button.tsx","../src/presets/theme-default/index.ts","../src/componentResolver.ts","../src/index.ts"],"sourcesContent":["import { ExButton } from \"./index\";\n\nexport function getButtonClass(\n props: InstanceType<typeof ExButton>[\"$props\"]\n): string | undefined {\n const { color, type, outline, text } = props;\n let className = \"\";\n if (text) {\n className += `text `;\n }\n if (color) {\n className += `ex-button--colored `;\n } else {\n if (type) {\n className += `ex-button--${type} `;\n }\n }\n\n if (!outline) {\n className += `border-none `;\n } else {\n className += `outline`;\n }\n\n return `${className} ${getButtonSize(props)} ${getShadow(\n props\n )}${getButtonRound(props)} ${getDisabled(props)}`;\n}\n\nfunction getButtonSize(props: InstanceType<typeof ExButton>[\"$props\"]): string {\n const { size } = props;\n let className = \"\";\n if (size) {\n if (size === \"default\") {\n className += \"text-base\";\n }\n if (size === \"small\") {\n className += \"text-sm\";\n }\n if (size === \"medium\") {\n className += \"text-xl\";\n }\n if (size === \"large\") {\n className += \"text-2xl\";\n }\n }\n return className;\n}\n\nfunction getButtonRound(\n props: InstanceType<typeof ExButton>[\"$props\"]\n): string {\n let className = \"\";\n const { square } = props;\n if (square) {\n className += \"rounded-md\";\n } else {\n className += \"rounded-xl\";\n }\n return className;\n}\n\nfunction getDisabled(props: InstanceType<typeof ExButton>[\"$props\"]): string {\n let className = \"\";\n const { disabled } = props;\n if (disabled) {\n className += \" opacity-50 cursor-not-allowed \";\n } else {\n className += \" hover:opacity-80 focus:opacity-80 \";\n }\n return className;\n}\n\nfunction getShadow(props: InstanceType<typeof ExButton>[\"$props\"]): string {\n let className = \"\";\n const { text } = props;\n if (!text) {\n className += \" shadow-md \";\n }\n return className;\n}\n","import { defineComponent } from \"vue\";\nimport { getButtonClass } from \"./tools\";\n\nexport const buttonTypes = [\n \"default\",\n \"primary\",\n \"success\",\n \"warning\",\n \"info\",\n \"danger\",\n] as const;\n\nexport const buttonSizes = [\"default\", \"mini\", \"medium\", \"large\"] as const;\n\nexport const props = {\n color: {\n type: String,\n },\n icon: {\n type: String,\n required: false,\n },\n type: {\n type: String,\n values: buttonTypes,\n default: () => \"default\",\n },\n size: {\n type: String,\n values: buttonSizes,\n },\n square: {\n type: Boolean,\n default: false,\n },\n outline: {\n type: Boolean,\n default: false,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n text: {\n type: Boolean,\n default: false,\n },\n};\n\nexport const ExButton = defineComponent({\n name: \"ExButton\",\n props,\n setup(props, { slots }) {\n return () => (\n <button\n class={`\n ex-button\n py-2\n px-4\n font-semibold \n text-white \n cursor-pointer \n m-1\n ${getButtonClass(props)}\n `}\n style={{ \"--ex-button-color\": props.color }}\n >\n {props.icon && !props.text && (\n <i class={`i-ic-baseline-${String(props.icon)} p-3`}></i>\n )}\n {slots.default ? slots.default() : \"\"}\n </button>\n );\n },\n});\n\nexport type ExButton = InstanceType<typeof ExButton>;\n","import type { Preset } from \"@unocss/core\";\n\nexport const eColors = [\"primary\", \"success\", \"info\", \"warning\", \"danger\"];\n\nexport function presetThemeDefault(): Preset {\n return {\n name: \"excited-ui/preset-theme-default\",\n theme: {\n colors: {\n default: \"hsl(var(--ex-default))\",\n primary: \"hsl(var(--ex-primary))\",\n success: \"hsl(var(--ex-success))\",\n info: \"hsl(var(--ex-info))\",\n warning: \"hsl(var(--ex-warning))\",\n danger: \"hsl(var(--ex-danger))\",\n a: { border: \"hsla(var(--ex-base-color),var(--ex-border-opacity))\" },\n },\n },\n safelist: [\n ...eColors.map((c) => `bg-${c}`),\n ...eColors.map((c) => `hover:bg-${c}`),\n\n ...eColors.map((c) => `border-${c}`),\n ...eColors.map((c) => `text-${c}`),\n ...eColors.map((c) => `shadow-${c}`),\n ...eColors.map((c) => `after:bg-${c}`),\n ...eColors.map((c) => `next:checked:bg-${c}`),\n ...eColors.map((c) => `next:checked:border-${c}`),\n ],\n rules: [\n [\n \"overlay\",\n {\n position: \"absolute\",\n inset: 0,\n content: \"''\",\n background: \"currentColor\",\n opacity: 0,\n },\n ],\n ],\n };\n}\n","import type { ComponentResolver } from \"unplugin-vue-components\";\n\nexport function ExComponentResolver(): ComponentResolver {\n return {\n type: \"component\",\n resolve: (componentName: string) => {\n if (componentName.match(/^Ex[A-Z]/))\n return { name: componentName, from: \"excited-ui\" };\n },\n };\n}\n","import { App } from \"vue\";\nimport * as components from \"./components\";\nimport \"./presets/theme-default/scss/index.scss\";\n\nexport const ExcitedUI = {\n install(app: App) {\n for (const prop in components) {\n // @ts-expect-error: I want to index import using string\n const component = components[prop];\n app.component(component.name, component);\n }\n },\n};\n\nexport {\n eColors as defaultThemeColors,\n presetThemeDefault,\n} from \"./presets/theme-default\";\n\nexport * from \"./components\";\nexport { ExComponentResolver } from \"./componentResolver\";\n"],"names":["props","buttonTypes","buttonSizes","color","type","String","icon","required","values","default","size","square","Boolean","outline","disabled","text","ExButton","defineComponent","name","setup","slots","_createVNode","getButtonClass"],"mappings":"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"}