@resulbeser1/air-command-ui-components
Version:
UI Components for Air Command System
176 lines (155 loc) • 4.87 kB
TypeScript
import * as React$1 from 'react';
import React__default, { ReactNode } from 'react';
type ButtonVariant = "default" | "outline" | "subtle" | "showHistory" | "danger" | "dangerIcon" | "icon" | "iconOutline" | "dangerOutline";
type ButtonSize = "default" | "sm";
interface ButtonProps {
children?: React.ReactNode;
onClick?: () => void;
variant?: ButtonVariant;
size?: ButtonSize;
style?: React.CSSProperties;
icon?: React.ReactNode;
forceWhite?: boolean;
theme?: "light" | "dark";
}
declare const Button: React__default.FC<ButtonProps>;
interface DialogProps {
isOpen: boolean;
onClose: () => void;
title?: string;
children: React.ReactNode;
theme?: "light" | "dark";
showCloseButton?: boolean;
blurBackground?: boolean;
maxWidth?: string;
}
declare const Dialog: React$1.FC<DialogProps>;
interface DeleteConfirmationDialogProps {
isOpen: boolean;
onClose: () => void;
onConfirm: () => void;
aircraftCallsign: string;
theme?: "light" | "dark";
labels?: {
deleteTitle?: string;
confirmQuestion?: string;
warningText?: string;
cancel?: string;
delete?: string;
};
}
declare const DeleteConfirmationDialog: React__default.FC<DeleteConfirmationDialogProps>;
interface Aircraft {
id: string;
callsign?: string;
callSign?: string;
type?: string;
classification?: string;
[key: string]: any;
}
interface UpdateAircraftDialogProps {
isOpen: boolean;
onClose: () => void;
onUpdate: (updates: {
type?: string;
classification?: string;
}) => Promise<void>;
aircraft: Aircraft | null;
theme?: "light" | "dark";
labels?: {
updateTitle?: string;
cancel?: string;
update?: string;
updating?: string;
close?: string;
type?: string;
classification?: string;
};
}
type AircraftType = "COMMERTIAL" | "MILITARY" | "DRONE" | "UNKNOWN";
type ClassificationType = "FRIENDLY" | "HOSTILE" | "NEUTRAL" | "UNKNOWN";
declare const UpdateAircraftDialog: React__default.FC<UpdateAircraftDialogProps>;
interface UserInfo {
name: string;
role: "Commander" | "Observer";
}
interface NavbarProps {
logo?: ReactNode;
user: UserInfo;
onLogout: () => void;
onThemeToggle: () => void;
onLanguageToggle: () => void;
}
declare const Navbar: React__default.FC<NavbarProps>;
interface TableRowData {
id: string;
callsign: string;
type: string;
classification: string;
latitude: string | number;
longitude: string | number;
}
interface TableColumn {
key: string;
label: string;
sortable?: boolean;
}
interface SortConfig {
column: string;
direction: "asc" | "desc";
priority: number;
}
interface TableProps {
columns: TableColumn[];
data: TableRowData[];
selectedRowId?: string;
selectedRowIds?: string[];
onRowClick?: (id: string, event?: React__default.MouseEvent) => void;
theme?: "light" | "dark";
sortConfigs?: SortConfig[];
onSortChange?: (column: string, isCtrlPressed: boolean) => void;
}
declare const Table: React__default.FC<TableProps>;
interface Option {
label: string;
value: string;
}
interface SelectProps {
label?: string;
options: Option[];
value?: string | string[];
onChange: (value: string | string[]) => void;
multiSelect?: boolean;
disabled?: boolean;
required?: boolean;
error?: string;
theme?: "light" | "dark";
placeholder?: string;
style?: React.CSSProperties;
dropdownBackgroundColor?: string;
inputBackgroundColor?: string;
}
declare const Select: React__default.FC<SelectProps>;
interface TextInputProps {
label?: string;
placeholder?: string;
value: string;
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
type?: "text" | "password" | "email";
disabled?: boolean;
required?: boolean;
error?: string;
theme?: "light" | "dark";
}
declare const TextInput: React__default.FC<TextInputProps>;
type IconName = "arrow_down" | "arrow_up" | "circle" | "close" | "commertial" | "dark" | "drone" | "edit" | "error" | "fighter_jet" | "invisible" | "light" | "polygon" | "rectangle" | "success" | "trash" | "trash_1" | "unknown_aircraft" | "visible";
interface IconProps {
name: IconName;
alt?: string;
className?: string;
theme?: "light" | "dark";
}
declare const Icon: React__default.FC<IconProps>;
declare const placeholder = "init";
export { Button, DeleteConfirmationDialog, Dialog, Icon, Navbar, Select, Table, TextInput, UpdateAircraftDialog, placeholder };
export type { AircraftType, ButtonProps, ButtonSize, ButtonVariant, ClassificationType, DeleteConfirmationDialogProps, IconName, IconProps, NavbarProps, SortConfig, TableRowData, UpdateAircraftDialogProps, UserInfo };