UNPKG

excited-ui

Version:
1 lines 9.4 kB
{"version":3,"file":"excited-ui.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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"}