@lax-wp/design-system
Version:
A comprehensive React + TypeScript design system built with Vite, providing reusable UI components for the LAX web portal applications. Features a complete set of form components, data display elements, and interactive controls with full TypeScript suppor
67 lines (66 loc) • 2.13 kB
TypeScript
export type JsonValue = string | number | boolean | null | JsonObject | JsonArray;
export type JsonObject = {
[key: string]: JsonValue;
};
export type JsonArray = JsonValue[];
export interface Tab<T extends string> {
name: T;
is_default: boolean;
is_hidden: boolean;
is_pinned: boolean;
}
export interface CodeEditorProps {
value: string;
onChange?: (value: string) => void;
withFullScreen?: boolean;
withTheme?: boolean;
isEditMode?: boolean;
height?: string;
language?: 'json' | 'python';
monacoEditor?: any;
setIsDisableSave?: (flag: boolean) => void;
isShowCopy?: boolean;
isShowDownload?: boolean;
withJsonGrid?: boolean;
}
export interface ThemeContextType {
theme: 'light' | 'dark';
editorTheme: 'vs' | 'vs-dark';
setEditorTheme: (theme: 'vs' | 'vs-dark') => void;
}
export interface UsePythonSyntaxProps {
monacoEditor: any;
currentEditorModel: any;
code: string;
setCode: (code: string) => void;
enable: boolean;
}
export interface PythonError {
message: string;
line?: number;
column?: number;
}
export interface JsonGridContextType {
allExpanded: boolean;
toggleAll: () => void;
isEditMode: boolean;
isDarkMode: boolean;
selectedPaths: string[];
setSelectedPaths: (paths: string[]) => void;
selectedTopLevelPaths: string[];
setSelectedTopLevelPaths: (paths: string[]) => void;
selectedPathModification: string | null;
setSelectedPathModification: (path: string | null) => void;
selectedPathForEdit: string | null;
setSelectedPathForEdit: (path: string | null) => void;
jsonData: JsonObject | JsonArray;
setJsonData: (data: JsonObject | JsonArray) => void;
error: string | null;
setError: (error: string | null) => void;
handleDelete: (paths: string[]) => void;
handleDuplicate: (paths: string[]) => void;
handleCopy: (paths: string[]) => Promise<boolean>;
handleAddKey: (path: string, key: string, value: JsonValue | undefined) => Promise<void>;
setIsAddKeyModalOpen: (open: boolean) => void;
isAddKeyModalOpen: boolean;
}