UNPKG

@sixbell-telco/sdk

Version:

A collection of reusable components designed for use in Sixbell Telco Angular projects

187 lines (186 loc) 7.51 kB
import * as i0 from "@angular/core"; /** * @internal * Generates base dropdown button classes with style variants */ export declare const dropdownButton: (props?: ({ variant?: "primary" | "secondary" | "tertiary" | "accent" | "info" | "success" | "warning" | "error" | "icon" | null | undefined; size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined; iconPosition?: "left" | "right" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** Possible dropdown button style variants */ export type DropdownButtonVariantProps = 'primary' | 'secondary' | 'tertiary' | 'accent' | 'info' | 'success' | 'warning' | 'error' | 'icon' | null | undefined; /** Possible dropdown button alignment options */ export type DropdownButtonAlignmentProps = 'center' | 'left' | 'right' | null | undefined; /** Possible dropdown button icon positions */ export type DropdownButtonPositionProps = 'left' | 'right' | null | undefined; /** Possible dropdown button size variants */ export type DropdownButtonSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined; /** * @internal * Generates base dropdown menu classes with positioning variants */ export declare const dropdownMenu: (props?: ({ menuPosition?: "left" | "right" | "top" | "bottom" | null | undefined; menuAlignment?: "start" | "end" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** Possible dropdown menu position variants */ export type DropdownMenuPositionProps = 'top' | 'bottom' | 'right' | 'left' | null | undefined; /** Possible dropdown menu alignment variants */ export type DropdownMenuAlignmentProps = 'start' | 'end' | null | undefined; /** Configuration object for dropdown styling variants */ export type DropdownProps = { variant?: DropdownButtonVariantProps; alignment?: DropdownButtonAlignmentProps; menuAlignment?: DropdownMenuAlignmentProps; menuPosition?: DropdownMenuPositionProps; iconPosition?: DropdownButtonPositionProps; }; /** * @internal * Combines dropdown button and menu classes */ export declare const dropdownComponent: ({ variant, menuAlignment, menuPosition, iconPosition }?: DropdownProps) => string; /** * A customizable dropdown component with menu positioning and various styling options * * @remarks * Built with Tailwind CSS and class-variance-authority for style management. * Supports multiple button variants, menu positioning, and responsive behavior. * * @example * ```html * <st-dropdown * variant="primary" * menuPosition="bottom" * menuAlignment="end" * icon="chevron-down" * > * <button>Actions</button> * <div slot="menu"> * <button class="menu-item">Edit</button> * <button class="menu-item">Delete</button> * </div> * </st-dropdown> * ``` * * @example * ```html * <st-dropdown * variant="icon" * menuPosition="right" * icon="more-vertical" * > * <div slot="menu">...</div> * </st-dropdown> * ``` */ export declare class DropdownComponent { /** * Button style variant * @defaultValue 'secondary' */ variant: import("@angular/core").InputSignal<DropdownButtonVariantProps>; /** * Ghost button style (transparent background) * @defaultValue false */ ghost: import("@angular/core").InputSignal<boolean>; /** * Outline button style (border with transparent fill) * @defaultValue false */ outline: import("@angular/core").InputSignal<boolean>; /** * Soft button style (muted/subdued color variant) * @defaultValue false */ soft: import("@angular/core").InputSignal<boolean>; /** * Dash button style (dashed border) * @defaultValue false */ dash: import("@angular/core").InputSignal<boolean>; /** * Circular button shape * @defaultValue false */ circle: import("@angular/core").InputSignal<boolean>; /** * Square button shape * @defaultValue false */ square: import("@angular/core").InputSignal<boolean>; /** * Glass effect styling * @defaultValue false */ glass: import("@angular/core").InputSignal<boolean>; /** * Button size variant * @defaultValue 'md' */ size: import("@angular/core").InputSignal<DropdownButtonSizeProps>; /** * Add drop shadow * @defaultValue false */ shadow: import("@angular/core").InputSignal<boolean>; /** * Icon name (from icon library) */ icon: import("@angular/core").InputSignal<string | undefined>; /** * Position of icon relative to text */ iconPosition: import("@angular/core").InputSignal<DropdownButtonPositionProps>; /** * Position of dropdown menu relative to button * @defaultValue 'bottom' */ menuPosition: import("@angular/core").InputSignal<DropdownMenuPositionProps>; /** * Alignment of dropdown menu content */ menuAlignment: import("@angular/core").InputSignal<DropdownMenuAlignmentProps>; /** * Button label text */ label: import("@angular/core").InputSignal<string | undefined>; /** * Controls dropdown open/close state * @defaultValue false */ isOpened: import("@angular/core").ModelSignal<boolean>; /** * Event emitted when dropdown toggle state changes */ toggled: import("@angular/core").OutputEmitterRef<boolean>; /** * @internal * Computed class string for the dropdown button */ buttonClass: import("@angular/core").Signal<string>; /** * @internal * Computed class string for the dropdown menu container */ menuClass: import("@angular/core").Signal<string>; /** * @internal * Computed class string for the dropdown content */ dropdownContentClass: import("@angular/core").Signal<string>; /** * @internal * Toggles dropdown visibility state */ handleToggle(): void; /** * @internal * Handles click outside to close dropdown */ handleClickOuside(): void; static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "st-dropdown", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ghost": { "alias": "ghost"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; "soft": { "alias": "soft"; "required": false; "isSignal": true; }; "dash": { "alias": "dash"; "required": false; "isSignal": true; }; "circle": { "alias": "circle"; "required": false; "isSignal": true; }; "square": { "alias": "square"; "required": false; "isSignal": true; }; "glass": { "alias": "glass"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "menuPosition": { "alias": "menuPosition"; "required": false; "isSignal": true; }; "menuAlignment": { "alias": "menuAlignment"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "isOpened": { "alias": "isOpened"; "required": false; "isSignal": true; }; }, { "isOpened": "isOpenedChange"; "toggled": "toggled"; }, never, ["*"], true, never>; }