From fc3d42d5eaba9491ae21f05025899219346f5ca4 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Wed, 17 Apr 2024 16:14:47 +0200 Subject: [PATCH] feat(Accordion): add `trailingIcon` prop --- src/runtime/components/Accordion.vue | 4 +- test/components/Accordion.spec.ts | 2 + .../__snapshots__/Accordion.spec.ts.snap | 357 +++++++++++------- 3 files changed, 216 insertions(+), 147 deletions(-) diff --git a/src/runtime/components/Accordion.vue b/src/runtime/components/Accordion.vue index 85bc9ba8..9681c950 100644 --- a/src/runtime/components/Accordion.vue +++ b/src/runtime/components/Accordion.vue @@ -13,6 +13,7 @@ const accordion = tv({ extend: tv(theme), ...(appConfig.ui?.accordion || {}) }) export interface AccordionItem { label?: string icon?: IconProps['name'] + trailingIcon?: IconProps['name'] slot?: string value?: string content?: string @@ -21,6 +22,7 @@ export interface AccordionItem { export interface AccordionProps extends Omit { items?: T[] + trailingIcon?: IconProps['name'] content?: Omit class?: any ui?: Partial @@ -75,7 +77,7 @@ const ui = computed(() => tv({ extend: accordion, slots: props.ui })({ disabled: - + diff --git a/test/components/Accordion.spec.ts b/test/components/Accordion.spec.ts index a3020355..001ba04d 100644 --- a/test/components/Accordion.spec.ts +++ b/test/components/Accordion.spec.ts @@ -27,6 +27,7 @@ describe('Accordion', () => { }, { label: 'Utilities', icon: 'i-heroicons-wrench-screwdriver', + trailingIcon: 'i-heroicons-sun', content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed neque elit, tristique placerat feugiat ac, facilisis vitae arcu. Proin eget egestas augue. Praesent ut sem nec arcu pellentesque aliquet. Duis dapibus diam vel metus tempus vulputate.', slot: 'custom' }] @@ -42,6 +43,7 @@ describe('Accordion', () => { ['with type', { props: { ...props, type: 'multiple' as const } }], ['with disabled', { props: { ...props, disabled: true } }], ['with collapsible', { props: { ...props, collapsible: false } }], + ['with trailingIcon', { props: { ...props, trailingIcon: 'i-heroicons-plus' } }], ['with class', { props: { ...props, class: 'w-96' } }], ['with ui', { props: { ui: { ...props, item: 'border-gray-300 dark:border-gray-700' } } }], // Slots diff --git a/test/components/__snapshots__/Accordion.spec.ts.snap b/test/components/__snapshots__/Accordion.spec.ts.snap index 9904e5a5..514d5e3a 100644 --- a/test/components/__snapshots__/Accordion.spec.ts.snap +++ b/test/components/__snapshots__/Accordion.spec.ts.snap @@ -55,8 +55,8 @@ exports[`Accordion > renders with as correctly 1`] = `