From 55565d7079606e1daa9f3a7bc703222f3debade4 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Fri, 25 Feb 2022 17:57:55 +0100 Subject: [PATCH] chore(Avatar): use preset system --- docs/pages/migration.vue | 4 +- src/module.ts | 3 + src/runtime/components/elements/Avatar.vue | 225 ++++++++------------- src/runtime/presets/default.ts | 46 ++++- 4 files changed, 138 insertions(+), 140 deletions(-) diff --git a/docs/pages/migration.vue b/docs/pages/migration.vue index b5db93fc..34d00154 100644 --- a/docs/pages/migration.vue +++ b/docs/pages/migration.vue @@ -68,7 +68,9 @@ const components = [ { label: 'Avatar', to: '/components/Avatar', - nuxt3: true + nuxt3: true, + preset: true, + capi: true }, { label: 'AvatarGroup', diff --git a/src/module.ts b/src/module.ts index 7f23f7c8..39226bd1 100644 --- a/src/module.ts +++ b/src/module.ts @@ -93,6 +93,9 @@ export default defineNuxtModule({ // Safelist dynamic colors used in preset safelist: [ 'dark', + { + pattern: new RegExp(`bg-(${safeColorsAsRegex})-400`) + }, { pattern: new RegExp(`bg-(${safeColorsAsRegex})-(100|600|700)`), variants: ['hover', 'disabled', 'dark'] diff --git a/src/runtime/components/elements/Avatar.vue b/src/runtime/components/elements/Avatar.vue index 21d5de5b..6dfeed6e 100644 --- a/src/runtime/components/elements/Avatar.vue +++ b/src/runtime/components/elements/Avatar.vue @@ -1,151 +1,100 @@ - diff --git a/src/runtime/presets/default.ts b/src/runtime/presets/default.ts index 811a6871..b1b299c0 100644 --- a/src/runtime/presets/default.ts +++ b/src/runtime/presets/default.ts @@ -307,6 +307,49 @@ const pills = { inactive: 'u-text-gray-500 hover:u-text-gray-700' } +const avatar = { + wrapper: 'relative inline-flex items-center justify-center', + background: 'u-bg-gray-100', + placeholder: 'text-xs font-medium leading-none u-text-black', + size: { + xxxs: 'h-4 w-4 text-xs', + xxs: 'h-5 w-5 text-xs', + xs: 'h-6 w-6 text-xs', + sm: 'h-8 w-8 text-sm', + md: 'h-10 w-10 text-md', + lg: 'h-12 w-12 text-lg', + xl: 'h-14 w-14 text-xl', + '2xl': 'h-16 w-16 text-2xl', + '3xl': 'h-20 w-20 text-3xl' + }, + chip: { + base: 'absolute block rounded-full ring-2 u-ring-white', + position: { + 'top-right': 'top-0 right-0', + 'bottom-right': 'bottom-0 right-0', + 'top-left': 'top-0 left-0', + 'bottom-left': 'bottom-0 left-0' + }, + variant: { + ...safeColors.reduce((acc: any, color) => { + acc[color] = `bg-${color}-400` + return acc + }, {}) + }, + size: { + xxxs: 'h-1 w-1', + xxs: 'h-1 w-1', + xs: 'h-1.5 w-1.5', + sm: 'h-2 w-2', + md: 'h-2.5 w-2.5', + lg: 'h-3 w-3', + xl: 'h-3.5 w-3.5', + '2xl': 'h-3.5 w-3.5', + '3xl': 'h-4 w-4' + } + } +} + export default { card, button, @@ -324,5 +367,6 @@ export default { alertDialog, dropdown, tabs, - pills + pills, + avatar }