UNPKG

@dvcol/neo-svelte

Version:

Neomorphic ui library for svelte 5

34 lines (33 loc) 1.59 kB
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; }