import { ThemeSize } from "../../theme/types.js"; import { TableVariant } from "../../styles/table.js"; import { TableBaseData, TableColumn, TableColumnFilter, TableColumnFilterOption, TableColumnFilterValue, TableColumnType, TableCompactEmits, TableCompactProps, TableCompactSlots, TableHeaderFilterSlotProps, TableSortOrder, TableUiSlot, TableUnifiedKey } from "@soybeanjs/headless/table"; import { ClassValue, UiClass } from "@soybeanjs/headless/types"; //#region src/components/table/types.d.ts /** * Additional UI slots for the table component. */ type TableExtraUiSlot = 'selection' | 'filterTrigger' | 'filterPopup' | 'filterSearch' | 'filterOptions' | 'filterOption' | 'filterOptionLabel' | 'filterFooter' | 'filterCount' | 'filterAction' | 'filterEmpty'; /** * Extended UI class overrides for the Table component. */ type TableExtendedUi = UiClass; /** * Properties for the Table component. */ interface TableProps extends TableCompactProps { /** * Additional class names to apply to the table. */ class?: ClassValue; /** * Visual size of the component. */ size?: ThemeSize; /** * Per-slot class overrides for the component. */ ui?: Partial; /** * Visual variant of the component. */ variant?: TableVariant; /** * Whether bordered. */ bordered?: boolean; /** * Whether rounded. */ rounded?: boolean; /** * Whether striped. */ striped?: boolean; } /** * Events for the Table component. */ type TableEmits = TableCompactEmits; /** * Slots for the Table component. */ type TableSlots = TableCompactSlots; /** * Properties for the TableRadio component. */ interface TableRadioProps { /** * Visual size of the component. */ size?: ThemeSize; /** * Whether the item is checked. */ checked?: boolean; } /** * Type information for TableFilterPopoverColumnMeta. */ interface TableFilterPopoverColumnMeta { /** * Title text rendered by the component. */ title?: string; /** * Key. */ key?: string; /** * Data index. */ dataIndex?: string; } /** * Type information for TableFilterPopoverOption. */ interface TableFilterPopoverOption { /** * Label text rendered by the component. */ label: string; /** * Value associated with the current item. */ value: string; /** * Whether the component is disabled. */ disabled?: boolean; } /** * Properties for the TableFilterPopover component. */ interface TableFilterPopoverProps extends TableHeaderFilterSlotProps { /** * Visual size of the component. */ size?: ThemeSize; /** * Per-slot class overrides for the component. */ ui: TableExtendedUi; } //#endregion export { type TableBaseData, type TableColumn, type TableColumnFilter, type TableColumnFilterOption, type TableColumnFilterValue, type TableColumnType, TableEmits, TableExtendedUi, TableExtraUiSlot, TableFilterPopoverColumnMeta, TableFilterPopoverOption, TableFilterPopoverProps, TableProps, TableRadioProps, TableSlots, type TableSortOrder };