@dvcol/neo-svelte
Version:
Neomorphic ui library for svelte 5
34 lines (33 loc) • 1.59 kB
TypeScript
import type { Snippet } from 'svelte';
import type { NeoButtonGroupContext, NeoButtonGroupProps } from './neo-button-group.model.js';
import type { NeoButtonProps } from './neo-button.model.js';
import type { NeoDividerProps } from '../divider/neo-divider.model.js';
import type { NeoMenuItem } from '../floating/menu/neo-menu-list-item.model.js';
import type { NeoMenuProps } from '../floating/menu/neo-menu.model.js';
import type { NeoIconBouncingDotsProps } from '../icons/neo-icon.model.js';
export interface NeoButtonRowItemButton extends NeoButtonProps {
menuProps?: Partial<NeoMenuItem>;
label?: string | undefined;
icon?: Snippet<[unknown]>;
}
export interface NeoButtonRowItemDivider extends NeoDividerProps {
divider: true;
}
export type NeoButtonRowItem = NeoButtonRowItemButton | NeoButtonRowItemDivider;
export declare const isButtonRowDivider: (item: NeoButtonRowItem) => item is NeoButtonRowItemDivider;
export interface NeoButtonRowContext {
items?: NeoMenuItem[];
threshold?: number;
menuProps?: Partial<NeoMenuProps>;
iconProps?: NeoIconBouncingDotsProps;
collapseProps?: NeoButtonProps;
}
export interface NeoButtonRowProps extends Omit<NeoButtonRowContext, 'items'>, Omit<NeoButtonGroupProps, 'children'> {
children?: Snippet<[NeoButtonGroupContext, NeoButtonRowContext]>;
collapsed?: Snippet<[NeoButtonGroupContext, NeoButtonRowContext]>;
ref?: NeoButtonGroupProps['ref'];
items: NeoButtonRowItem[];
hovered?: NeoButtonProps['hovered'];
focused?: NeoButtonProps['focused'];
buttonProps?: NeoButtonProps;
}