feat(Select/SelectMenu): handle size prop (#133)

Co-authored-by: Benjamin Canac <canacb1@gmail.com>
This commit is contained in:
Sandro Circi
2024-07-02 12:03:10 +02:00
committed by GitHub
parent 57a49877ae
commit b61696cdca
42 changed files with 816 additions and 750 deletions

View File

@@ -15,7 +15,7 @@ export default (options: Required<ModuleOptions>) => ({
itemLeadingAvatar: 'shrink-0',
itemLeadingChip: 'shrink-0 mx-1.5',
itemTrailing: 'ms-auto inline-flex gap-1.5 items-center',
itemTrailingSelectedIcon: 'shrink-0 size-5',
itemTrailingIcon: 'shrink-0 size-5',
itemTrailingHighlightedIcon: 'shrink-0 size-5 text-gray-400 dark:text-gray-500 hidden group-data-highlighted:inline-flex',
itemTrailingKbds: 'hidden lg:inline-flex items-center shrink-0 gap-0.5',
itemLabel: 'truncate space-x-1',

View File

@@ -30,8 +30,8 @@ export default (options: Required<ModuleOptions>) => ({
},
size: {
xs: {
label: 'gap-1 p-1 text-xs',
item: 'gap-1 p-1 text-xs',
label: 'p-1 text-xs gap-1',
item: 'p-1 text-xs gap-1',
itemLeadingIcon: 'size-4',
itemLeadingAvatarSize: '3xs',
itemTrailingIcon: 'size-4',
@@ -39,8 +39,8 @@ export default (options: Required<ModuleOptions>) => ({
itemTrailingKbdsSize: 'sm'
},
sm: {
label: 'gap-1.5 p-1.5 text-xs',
item: 'gap-1.5 p-1.5 text-xs',
label: 'p-1.5 text-xs gap-1.5',
item: 'p-1.5 text-xs gap-1.5',
itemLeadingIcon: 'size-4',
itemLeadingAvatarSize: '3xs',
itemTrailingIcon: 'size-4',
@@ -48,8 +48,8 @@ export default (options: Required<ModuleOptions>) => ({
itemTrailingKbdsSize: 'sm'
},
md: {
label: 'gap-1.5 p-1.5 text-sm',
item: 'gap-1.5 p-1.5 text-sm',
label: 'p-1.5 text-sm gap-1.5',
item: 'p-1.5 text-sm gap-1.5',
itemLeadingIcon: 'size-5',
itemLeadingAvatarSize: '2xs',
itemTrailingIcon: 'size-5',
@@ -57,8 +57,8 @@ export default (options: Required<ModuleOptions>) => ({
itemTrailingKbdsSize: 'md'
},
lg: {
label: 'gap-2 p-2 text-sm',
item: 'gap-2 p-2 text-sm',
label: 'p-2 text-sm gap-2',
item: 'p-2 text-sm gap-2',
itemLeadingIcon: 'size-5',
itemLeadingAvatarSize: '2xs',
itemTrailingIcon: 'size-5',
@@ -66,8 +66,8 @@ export default (options: Required<ModuleOptions>) => ({
itemTrailingKbdsSize: 'md'
},
xl: {
label: 'gap-2 p-2 text-base',
item: 'gap-2 p-2 text-base',
label: 'p-2 text-base gap-2',
item: 'p-2 text-base gap-2',
itemLeadingIcon: 'size-6',
itemLeadingAvatarSize: 'xs',
itemTrailingIcon: 'size-6',

View File

@@ -31,8 +31,8 @@ export default (options: Required<ModuleOptions>) => ({
},
size: {
xs: {
label: 'gap-1 p-1 text-xs',
item: 'gap-1 p-1 text-xs',
label: 'p-1 text-xs gap-1',
item: 'p-1 text-xs gap-1',
itemLeadingIcon: 'size-4',
itemLeadingAvatarSize: '3xs',
itemTrailingIcon: 'size-4',
@@ -40,8 +40,8 @@ export default (options: Required<ModuleOptions>) => ({
itemTrailingKbdsSize: 'sm'
},
sm: {
label: 'gap-1.5 p-1.5 text-xs',
item: 'gap-1.5 p-1.5 text-xs',
label: 'p-1.5 text-xs gap-1.5',
item: 'p-1.5 text-xs gap-1.5',
itemLeadingIcon: 'size-4',
itemLeadingAvatarSize: '3xs',
itemTrailingIcon: 'size-4',
@@ -49,8 +49,8 @@ export default (options: Required<ModuleOptions>) => ({
itemTrailingKbdsSize: 'sm'
},
md: {
label: 'gap-1.5 p-1.5 text-sm',
item: 'gap-1.5 p-1.5 text-sm',
label: 'p-1.5 text-sm gap-1.5',
item: 'p-1.5 text-sm gap-1.5',
itemLeadingIcon: 'size-5',
itemLeadingAvatarSize: '2xs',
itemTrailingIcon: 'size-5',

View File

@@ -17,7 +17,7 @@ export default (options: Required<ModuleOptions>) => {
itemLeadingAvatar: 'shrink-0',
itemLeadingChip: 'shrink-0 mx-1.5',
itemTrailing: 'ms-auto inline-flex gap-1.5 items-center',
itemTrailingSelectedIcon: 'shrink-0 size-5',
itemTrailingIcon: 'shrink-0 size-5',
itemLabel: 'truncate',
tagsItem: 'px-1.5 py-0.5 rounded font-medium inline-flex items-center gap-0.5 ring ring-inset ring-gray-300 dark:ring-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-700 dark:text-gray-200 data-disabled:cursor-not-allowed data-disabled:opacity-75',
tagsItemText: 'truncate',

View File

@@ -11,15 +11,64 @@ export default (options: Required<ModuleOptions>) => {
viewport: 'divide-y divide-gray-200 dark:divide-gray-800 scroll-py-1',
group: 'p-1 isolate',
empty: 'py-2 text-center text-sm text-gray-500 dark:text-gray-400',
label: 'p-1.5 text-xs font-semibold text-gray-900 dark:text-white',
label: 'font-semibold text-gray-900 dark:text-white',
separator: '-mx-1 my-1 h-px bg-gray-200 dark:bg-gray-800',
item: ['group relative w-full flex items-center gap-1.5 p-1.5 text-sm select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-gray-700 dark:text-gray-200 data-highlighted:text-gray-900 dark:data-highlighted:text-white data-highlighted:before:bg-gray-50 dark:data-highlighted:before:bg-gray-800/50', options.transitions && 'transition-colors before:transition-colors'],
itemLeadingIcon: ['shrink-0 size-5 text-gray-400 dark:text-gray-500 group-data-highlighted:text-gray-700 dark:group-data-highlighted:text-gray-200', options.transitions && 'transition-colors'],
item: ['group relative w-full flex items-center select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-gray-700 dark:text-gray-200 data-highlighted:text-gray-900 dark:data-highlighted:text-white data-highlighted:before:bg-gray-50 dark:data-highlighted:before:bg-gray-800/50', options.transitions && 'transition-colors before:transition-colors'],
itemLeadingIcon: ['shrink-0 text-gray-400 dark:text-gray-500 group-data-highlighted:text-gray-700 dark:group-data-highlighted:text-gray-200', options.transitions && 'transition-colors'],
itemLeadingAvatar: 'shrink-0',
itemLeadingAvatarSize: '',
itemLeadingChip: 'shrink-0 mx-1.5',
itemLeadingChipSize: '',
itemTrailing: 'ms-auto inline-flex gap-1.5 items-center',
itemTrailingSelectedIcon: 'shrink-0 size-5',
itemTrailingIcon: 'shrink-0',
itemLabel: 'truncate'
},
variants: {
size: {
xs: {
label: 'p-1 text-[10px]/3 gap-1',
item: 'p-1 text-xs gap-1',
itemLeadingIcon: 'size-4',
itemLeadingAvatarSize: '3xs',
itemLeadingChipSize: 'sm',
itemTrailingIcon: 'size-4'
},
sm: {
label: 'p-1.5 text-[10px]/3 gap-1.5',
item: 'p-1.5 text-xs gap-1.5',
itemLeadingIcon: 'size-4',
itemLeadingAvatarSize: '3xs',
itemLeadingChipSize: 'sm',
itemTrailingIcon: 'size-4'
},
md: {
label: 'p-1.5 text-xs gap-1.5',
item: 'p-1.5 text-sm gap-1.5',
itemLeadingIcon: 'size-5',
itemLeadingAvatarSize: '2xs',
itemLeadingChipSize: 'md',
itemTrailingIcon: 'size-5'
},
lg: {
label: 'p-2 text-xs gap-2',
item: 'p-2 text-sm gap-2',
itemLeadingIcon: 'size-5',
itemLeadingAvatarSize: '2xs',
itemLeadingChipSize: 'md',
itemTrailingIcon: 'size-5'
},
xl: {
label: 'p-2 text-sm gap-2',
item: 'p-2 text-base gap-2',
itemLeadingIcon: 'size-6',
itemLeadingAvatarSize: 'xs',
itemLeadingChipSize: 'lg',
itemTrailingIcon: 'size-6'
}
}
},
defaultVariants: {
size: 'md'
}
}, {
slots: {