| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <script setup lang="ts">
- import type { PageTabProps } from '../../types';
- import style from './index.module.css';
- defineOptions({
- name: 'ButtonTab'
- });
- defineProps<PageTabProps>();
- type SlotFn = (props?: Record<string, unknown>) => any;
- type Slots = {
- /**
- * Slot
- *
- * The center content of the tab
- */
- default?: SlotFn;
- /**
- * Slot
- *
- * The left content of the tab
- */
- prefix?: SlotFn;
- /**
- * Slot
- *
- * The right content of the tab
- */
- suffix?: SlotFn;
- };
- defineSlots<Slots>();
- </script>
- <template>
- <div
- class=":soy: relative inline-flex cursor-pointer items-center justify-center gap-12px whitespace-nowrap border-(1px solid) rounded-4px px-12px py-4px"
- :class="[
- style['button-tab'],
- { [style['button-tab_dark']]: darkMode },
- { [style['button-tab_active']]: active },
- { [style['button-tab_active_dark']]: active && darkMode }
- ]"
- >
- <slot name="prefix"></slot>
- <slot></slot>
- <slot name="suffix"></slot>
- </div>
- </template>
- <style scoped></style>
|