diff --git a/packages/omi-templates/src/components/omiu/table.tsx b/packages/omi-templates/src/components/omiu/table.tsx index 8b9f498577..8d4fe9c2b5 100644 --- a/packages/omi-templates/src/components/omiu/table.tsx +++ b/packages/omi-templates/src/components/omiu/table.tsx @@ -1,4 +1,5 @@ import { Component, tag } from 'omi' +import './tag.tsx' @tag('o-table') export class Table extends Component { @@ -72,7 +73,9 @@ export class Table extends Component { 银色 Laptop - 是 + + 带有 + 是 ¥12999 3.0kg diff --git a/packages/omi-templates/src/components/omiu/tag.tsx b/packages/omi-templates/src/components/omiu/tag.tsx index e69de29bb2..915ed97075 100644 --- a/packages/omi-templates/src/components/omiu/tag.tsx +++ b/packages/omi-templates/src/components/omiu/tag.tsx @@ -0,0 +1,61 @@ +import { Component, tag } from 'omi' + +@tag('o-tag') +export class Tag extends Component { + static defaultProps = { + closable: false, + default: null, + disabled: false, + icon: undefined, + maxWidth: null, + shape: 'square', + size: 'medium', // small, medium, large + theme: 'default', + variant: 'dark', + } + + onClose = (e: MouseEvent) => { + e.stopPropagation() + this.fire('close') + } + + render() { + // @ts-ignore + const { closable, disabled, icon, maxWidth, shape, size, theme, variant } = this.props + + const baseClasses = + 'inline-flex items-center justify-center border border-transparent text-base font-medium rounded-sm focus:outline-none transition duration-150 ease-in-out whitespace-nowrap' + const sizeClasses = + size === 'small' ? 'px-1 text-xs h-5' : size === 'medium' ? 'px-3 text-xs h-6' : 'px-4 text-sm h-8' + const shapeClasses = shape === 'square' ? '' : shape === 'round' ? 'rounded' : 'rounded-full' + const themeClasses = + theme === 'default' + ? 'bg-zinc-200' + : theme === 'primary' + ? 'bg-blue-600' + : theme === 'warning' + ? 'bg-yellow-400' + : theme === 'danger' + ? 'bg-red-600' + : 'bg-green-500' + const variantClasses = + variant === 'dark' + ? 'text-zinc-700' + : variant === 'light' + ? 'text-zinc-700' + : variant === 'outline' + ? `border ${themeClasses}` + : `border ${themeClasses} bg-white` + const disabledClasses = disabled ? 'cursor-not-allowed' : 'cursor-pointer' + + const cls = `${baseClasses} ${sizeClasses} ${shapeClasses} ${themeClasses} ${variantClasses} ${disabledClasses}` + + return ( +
+ {icon && {typeof icon === 'function' ? icon() : icon}} + + {closable && } +
+ ) + } +} diff --git a/packages/omi-templates/src/components/sidebar.tsx b/packages/omi-templates/src/components/sidebar.tsx index 57088422ec..a6646ab6ae 100644 --- a/packages/omi-templates/src/components/sidebar.tsx +++ b/packages/omi-templates/src/components/sidebar.tsx @@ -129,9 +129,7 @@ export class Sidebar extends Component { })} >
-
+
diff --git a/packages/omi-templates/tailwind.config.js b/packages/omi-templates/tailwind.config.js index 9da9cda9b6..78c1e5474b 100644 --- a/packages/omi-templates/tailwind.config.js +++ b/packages/omi-templates/tailwind.config.js @@ -6,6 +6,10 @@ export default { "./src/**/*.{js,ts,jsx,tsx}", ], theme: { + fontFamily: { + // https://tailwindcss.com/docs/font-family#customizing-the-default-font + sans: '-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol' + }, extend: { typography: { DEFAULT: {