dishui 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/dishui.es.js +97 -97
  2. package/dist/dishui.umd.js +3 -3
  3. package/dist/types/src/App.d.ts +3 -0
  4. package/dist/types/src/components/Badge/index.d.ts +10 -0
  5. package/dist/types/src/components/Button/index.d.ts +42 -0
  6. package/dist/types/src/components/Card/index.d.ts +38 -0
  7. package/dist/types/src/components/DataTable/DataTable.d.ts +78 -0
  8. package/dist/types/src/components/DataTable/Filters.d.ts +59 -0
  9. package/dist/types/src/components/DataTable/index.d.ts +16 -0
  10. package/dist/types/src/components/DataTable/utils.d.ts +56 -0
  11. package/dist/types/src/components/Demo/index.d.ts +10 -0
  12. package/dist/types/src/components/Input/index.d.ts +24 -0
  13. package/dist/types/src/components/Label/index.d.ts +36 -0
  14. package/dist/types/src/components/List/index.d.ts +38 -0
  15. package/dist/types/src/components/Select/index.d.ts +17 -0
  16. package/dist/types/src/components/Table/index.d.ts +56 -0
  17. package/dist/types/src/contexts/AppContext.d.ts +14 -0
  18. package/dist/types/src/index.d.ts +9 -0
  19. package/dist/types/src/index.routes.d.ts +7 -0
  20. package/dist/types/src/layouts/MainLayout.d.ts +6 -0
  21. package/dist/types/src/layouts/Navbar.d.ts +6 -0
  22. package/dist/types/src/layouts/Sidebar.d.ts +10 -0
  23. package/dist/types/src/main.d.ts +1 -0
  24. package/dist/types/src/pages/Home.d.ts +3 -0
  25. package/dist/types/src/pages/Home.en.d.ts +3 -0
  26. package/dist/types/src/pages/Home.zh.d.ts +3 -0
  27. package/dist/types/src/pages/components/Badge/index.d.ts +3 -0
  28. package/dist/types/src/pages/components/Badge/index.en.d.ts +3 -0
  29. package/dist/types/src/pages/components/Badge/index.zh.d.ts +3 -0
  30. package/dist/types/src/pages/components/Button/index.d.ts +3 -0
  31. package/dist/types/src/pages/components/Button/index.en.d.ts +3 -0
  32. package/dist/types/src/pages/components/Button/index.zh.d.ts +3 -0
  33. package/dist/types/src/pages/components/Card/index.d.ts +3 -0
  34. package/dist/types/src/pages/components/Card/index.en.d.ts +3 -0
  35. package/dist/types/src/pages/components/Card/index.zh.d.ts +3 -0
  36. package/dist/types/src/pages/components/DataTable/advanced.d.ts +3 -0
  37. package/dist/types/src/pages/components/DataTable/advanced.en.d.ts +3 -0
  38. package/dist/types/src/pages/components/DataTable/advanced.zh.d.ts +3 -0
  39. package/dist/types/src/pages/components/DataTable/advancedTreeTable.d.ts +3 -0
  40. package/dist/types/src/pages/components/DataTable/advancedTreeTable.en.d.ts +3 -0
  41. package/dist/types/src/pages/components/DataTable/advancedTreeTable.zh.d.ts +3 -0
  42. package/dist/types/src/pages/components/DataTable/index.d.ts +3 -0
  43. package/dist/types/src/pages/components/DataTable/index.en.d.ts +3 -0
  44. package/dist/types/src/pages/components/DataTable/index.zh.d.ts +3 -0
  45. package/dist/types/src/pages/components/Input/index.d.ts +3 -0
  46. package/dist/types/src/pages/components/Input/index.en.d.ts +3 -0
  47. package/dist/types/src/pages/components/Input/index.zh.d.ts +3 -0
  48. package/dist/types/src/pages/components/Label/index.d.ts +3 -0
  49. package/dist/types/src/pages/components/Label/index.en.d.ts +3 -0
  50. package/dist/types/src/pages/components/Label/index.zh.d.ts +3 -0
  51. package/dist/types/src/pages/components/List/index.d.ts +3 -0
  52. package/dist/types/src/pages/components/List/index.en.d.ts +3 -0
  53. package/dist/types/src/pages/components/List/index.zh.d.ts +3 -0
  54. package/dist/types/src/pages/components/Select/SelectExampleContent.d.ts +3 -0
  55. package/dist/types/src/pages/components/Select/index.d.ts +2 -0
  56. package/dist/types/src/pages/components/Select/index.en.d.ts +3 -0
  57. package/dist/types/src/pages/components/Select/index.zh.d.ts +3 -0
  58. package/dist/types/src/pages/components/Table/en.d.ts +3 -0
  59. package/dist/types/src/pages/components/Table/index.d.ts +3 -0
  60. package/dist/types/src/pages/components/Table/zh.d.ts +3 -0
  61. package/dist/types/src/pages/layouts/Sidebar/index.d.ts +3 -0
  62. package/dist/types/src/types/menu.d.ts +8 -0
  63. package/dist/types/src/utils/i18n.d.ts +25 -0
  64. package/dist/types/vite.config.d.mts +2 -0
  65. package/package.json +7 -3
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ export type CardProps = {
3
+ children: React.ReactNode;
4
+ variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
5
+ bordered?: boolean;
6
+ dash?: boolean;
7
+ side?: boolean;
8
+ imageFull?: boolean;
9
+ compact?: boolean;
10
+ hover?: boolean;
11
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
+ className?: string;
13
+ };
14
+ export type CardTitleProps = {
15
+ children: React.ReactNode;
16
+ className?: string;
17
+ };
18
+ export type CardBodyProps = {
19
+ children: React.ReactNode;
20
+ className?: string;
21
+ };
22
+ export type CardActionsProps = {
23
+ children: React.ReactNode;
24
+ className?: string;
25
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
26
+ };
27
+ export type CardFigureProps = {
28
+ children: React.ReactNode;
29
+ className?: string;
30
+ };
31
+ interface CardCompound extends React.FC<CardProps> {
32
+ Title: React.FC<CardTitleProps>;
33
+ Body: React.FC<CardBodyProps>;
34
+ Actions: React.FC<CardActionsProps>;
35
+ Figure: React.FC<CardFigureProps>;
36
+ }
37
+ declare const CardWithCompounds: CardCompound;
38
+ export default CardWithCompounds;
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ import { ColumnDef, ColumnFiltersState, SortingState, VisibilityState, RowSelectionState, Column } from '@tanstack/react-table';
3
+ export type CellEventHandler = (row: any, column: any, event: React.MouseEvent) => void;
4
+ export type RowEventHandler = (row: any, event: React.MouseEvent) => void;
5
+ export type ColumnEventHandler = (column: any, event: React.MouseEvent) => void;
6
+ export type TableEventHandler = (event: React.MouseEvent) => void;
7
+ export type ExpandRowHandler = (row: any, isExpanded: boolean) => void;
8
+ export interface BulkAction {
9
+ label: string;
10
+ action: string;
11
+ onClick: (selectedRows: Record<string, boolean>, selectedRowData?: any[]) => void;
12
+ className?: string;
13
+ }
14
+ export interface CustomFilterPanelProps {
15
+ column: Column<any, unknown>;
16
+ onClose: () => void;
17
+ }
18
+ export interface ToolbarOptions {
19
+ enabled?: boolean;
20
+ enableColumnSelector?: boolean;
21
+ enableFiltering?: boolean;
22
+ enableBulkActions?: boolean;
23
+ bulkActions?: BulkAction[];
24
+ customComponents?: React.ReactNode;
25
+ }
26
+ export interface DataTableProps<T extends object> {
27
+ data: T[];
28
+ columns: ColumnDef<T, any>[];
29
+ className?: string;
30
+ enableSorting?: boolean;
31
+ enableFiltering?: boolean;
32
+ enablePagination?: boolean;
33
+ enableSelection?: boolean;
34
+ enableColumnReordering?: boolean;
35
+ enableColumnResizing?: boolean;
36
+ enableExpanding?: boolean;
37
+ subDataKey?: string;
38
+ onRowExpand?: ExpandRowHandler;
39
+ expandedRows?: Record<string, boolean>;
40
+ onExpandedRowsChange?: (expandedRows: Record<string, boolean>) => void;
41
+ getRowId?: (row: T, index: number) => string;
42
+ indentSize?: number;
43
+ enableTreeSort?: boolean;
44
+ toolbar?: ToolbarOptions;
45
+ customFilterPanel?: React.ComponentType<CustomFilterPanelProps>;
46
+ onRowClick?: RowEventHandler;
47
+ onRowDoubleClick?: RowEventHandler;
48
+ onRowMouseEnter?: RowEventHandler;
49
+ onRowMouseLeave?: RowEventHandler;
50
+ onCellClick?: CellEventHandler;
51
+ onCellDoubleClick?: CellEventHandler;
52
+ onCellMouseEnter?: CellEventHandler;
53
+ onCellMouseLeave?: CellEventHandler;
54
+ onColumnClick?: ColumnEventHandler;
55
+ onColumnMouseEnter?: ColumnEventHandler;
56
+ onColumnMouseLeave?: ColumnEventHandler;
57
+ onTableClick?: TableEventHandler;
58
+ onTableMouseEnter?: TableEventHandler;
59
+ onTableMouseLeave?: TableEventHandler;
60
+ pageSize?: number;
61
+ pageIndex?: number;
62
+ onPageChange?: (page: number) => void;
63
+ onPageSizeChange?: (pageSize: number) => void;
64
+ selectedRows?: RowSelectionState;
65
+ onRowSelectionChange?: (selectedRows: RowSelectionState) => void;
66
+ sortingState?: SortingState;
67
+ onSortingChange?: (sortingState: SortingState) => void;
68
+ columnFilters?: ColumnFiltersState;
69
+ onColumnFiltersChange?: (columnFilters: ColumnFiltersState) => void;
70
+ columnVisibility?: VisibilityState;
71
+ onColumnVisibilityChange?: (columnVisibility: VisibilityState) => void;
72
+ columnOrder?: string[];
73
+ onColumnOrderChange?: (columnOrder: string[]) => void;
74
+ }
75
+ interface DataTableCompoundComponent extends React.FC<DataTableProps<any>> {
76
+ }
77
+ declare const DataTableExport: DataTableCompoundComponent;
78
+ export default DataTableExport;
@@ -0,0 +1,59 @@
1
+ import React from 'react';
2
+ import { Column } from '@tanstack/react-table';
3
+ declare module '@tanstack/react-table' {
4
+ interface ColumnMeta<TData extends unknown, TValue> {
5
+ filterType?: 'text' | 'number' | 'select' | 'boolean' | 'date' | 'multiSelect';
6
+ filterOptions?: {
7
+ value: any;
8
+ label: string;
9
+ }[];
10
+ }
11
+ }
12
+ export interface TextFilterProps {
13
+ column: Column<any, unknown>;
14
+ placeholder?: string;
15
+ }
16
+ export declare const TextFilter: React.FC<TextFilterProps>;
17
+ export interface NumberFilterProps {
18
+ column: Column<any, unknown>;
19
+ min?: number;
20
+ max?: number;
21
+ step?: number;
22
+ }
23
+ export declare const NumberRangeFilter: React.FC<NumberFilterProps>;
24
+ export interface SelectFilterProps {
25
+ column: Column<any, unknown>;
26
+ options: {
27
+ value: any;
28
+ label: string;
29
+ }[];
30
+ placeholder?: string;
31
+ }
32
+ export declare const SelectFilter: React.FC<SelectFilterProps>;
33
+ export interface BooleanFilterProps {
34
+ column: Column<any, unknown>;
35
+ trueLabel?: string;
36
+ falseLabel?: string;
37
+ allLabel?: string;
38
+ }
39
+ export declare const BooleanFilter: React.FC<BooleanFilterProps>;
40
+ export interface DateRangeFilterProps {
41
+ column: Column<any, unknown>;
42
+ }
43
+ export declare const DateRangeFilter: React.FC<DateRangeFilterProps>;
44
+ export declare const MultiSelectFilter: React.FC<SelectFilterProps>;
45
+ export interface FilterPanelProps {
46
+ column: Column<any, unknown>;
47
+ onClose: () => void;
48
+ }
49
+ export declare const FilterPanel: React.FC<FilterPanelProps>;
50
+ declare const _default: {
51
+ TextFilter: React.FC<TextFilterProps>;
52
+ NumberRangeFilter: React.FC<NumberFilterProps>;
53
+ SelectFilter: React.FC<SelectFilterProps>;
54
+ BooleanFilter: React.FC<BooleanFilterProps>;
55
+ DateRangeFilter: React.FC<DateRangeFilterProps>;
56
+ MultiSelectFilter: React.FC<SelectFilterProps>;
57
+ FilterPanel: React.FC<FilterPanelProps>;
58
+ };
59
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import DataTableComponent from './DataTable';
2
+ import * as Filters from './Filters';
3
+ import * as Utils from './utils';
4
+ export declare const TextFilter: import("react").FC<Filters.TextFilterProps>, NumberRangeFilter: import("react").FC<Filters.NumberFilterProps>, SelectFilter: import("react").FC<Filters.SelectFilterProps>, BooleanFilter: import("react").FC<Filters.BooleanFilterProps>, DateRangeFilter: import("react").FC<Filters.DateRangeFilterProps>, MultiSelectFilter: import("react").FC<Filters.SelectFilterProps>, FilterPanel: import("react").FC<Filters.FilterPanelProps>;
5
+ export declare const createColumn: typeof Utils.createColumn, createComputedColumn: typeof Utils.createComputedColumn, createActionColumn: typeof Utils.createActionColumn, createSelectionColumn: typeof Utils.createSelectionColumn, numericSort: import("@tanstack/react-table").SortingFn<any>, dateSort: import("@tanstack/react-table").SortingFn<any>, stringSort: import("@tanstack/react-table").SortingFn<any>, treeSort: <T extends Utils.TreeDataRow>(sortFn: import("@tanstack/react-table").SortingFn<T>, subDataKey: string) => import("@tanstack/react-table").SortingFn<T>, createSelectOptions: typeof Utils.createSelectOptions, extractUniqueOptions: typeof Utils.extractUniqueOptions, defaultFilterFunctions: {
6
+ text: (row: any, columnId: string, filterValue: string) => boolean;
7
+ range: (row: any, columnId: string, filterValue: [number | undefined, number | undefined]) => boolean;
8
+ dateRange: (row: any, columnId: string, filterValue: [string | undefined, string | undefined]) => boolean;
9
+ boolean: (row: any, columnId: string, filterValue: boolean) => boolean;
10
+ multiSelect: (row: any, columnId: string, filterValue: string[]) => boolean;
11
+ };
12
+ export type { DataTableProps, CellEventHandler, RowEventHandler, ColumnEventHandler, TableEventHandler } from './DataTable';
13
+ export type { FilterPanelProps, TextFilterProps, NumberFilterProps, SelectFilterProps, BooleanFilterProps, DateRangeFilterProps } from './Filters';
14
+ export type { TreeDataRow } from './utils';
15
+ export type { ColumnDef, ColumnFiltersState, SortingState, VisibilityState, RowSelectionState, PaginationState } from '@tanstack/react-table';
16
+ export default DataTableComponent;
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ import { ColumnDef, Row, SortingFn } from '@tanstack/react-table';
3
+ export declare function createColumn<T extends object>(accessorKeyOrOptions: keyof T | string | Partial<ColumnDef<T>>, headerOrNone?: string, options?: Partial<ColumnDef<T>>): ColumnDef<T>;
4
+ export declare function createComputedColumn<T extends object>(idOrOptions: string | Partial<ColumnDef<T>>, headerOrNone?: string, accessorFnOrNone?: (row: T) => any, options?: Partial<ColumnDef<T>>): ColumnDef<T>;
5
+ export declare function createActionColumn<T extends object>(idOrOptions: string | Partial<ColumnDef<T>>, headerOrNone?: string, cellOrNone?: (props: {
6
+ row: Row<T>;
7
+ }) => React.ReactNode, options?: Partial<ColumnDef<T>>): ColumnDef<T>;
8
+ export declare function createSelectionColumn<T extends object>(options?: Partial<ColumnDef<T>>): ColumnDef<T>;
9
+ export declare const numericSort: SortingFn<any>;
10
+ export declare const dateSort: SortingFn<any>;
11
+ export declare const stringSort: SortingFn<any>;
12
+ export interface TreeDataRow {
13
+ __depth?: number;
14
+ __id?: string;
15
+ __parentId?: string;
16
+ __hasChildren?: boolean;
17
+ __isExpanded?: boolean;
18
+ __childCount?: number;
19
+ [key: string]: any;
20
+ }
21
+ export declare const treeSort: <T extends TreeDataRow>(sortFn: SortingFn<T>, subDataKey: string) => SortingFn<T>;
22
+ export declare function createSelectOptions<T>(items: T[], labelField: keyof T, valueField?: keyof T): {
23
+ label: string;
24
+ value: string;
25
+ }[];
26
+ export declare function extractUniqueOptions<T>(data: T[], field: keyof T): {
27
+ label: string;
28
+ value: string;
29
+ }[];
30
+ export declare const defaultFilterFunctions: {
31
+ text: (row: any, columnId: string, filterValue: string) => boolean;
32
+ range: (row: any, columnId: string, filterValue: [number | undefined, number | undefined]) => boolean;
33
+ dateRange: (row: any, columnId: string, filterValue: [string | undefined, string | undefined]) => boolean;
34
+ boolean: (row: any, columnId: string, filterValue: boolean) => boolean;
35
+ multiSelect: (row: any, columnId: string, filterValue: string[]) => boolean;
36
+ };
37
+ declare const _default: {
38
+ createColumn: typeof createColumn;
39
+ createComputedColumn: typeof createComputedColumn;
40
+ createActionColumn: typeof createActionColumn;
41
+ createSelectionColumn: typeof createSelectionColumn;
42
+ numericSort: SortingFn<any>;
43
+ dateSort: SortingFn<any>;
44
+ stringSort: SortingFn<any>;
45
+ treeSort: <T extends TreeDataRow>(sortFn: SortingFn<T>, subDataKey: string) => SortingFn<T>;
46
+ createSelectOptions: typeof createSelectOptions;
47
+ extractUniqueOptions: typeof extractUniqueOptions;
48
+ defaultFilterFunctions: {
49
+ text: (row: any, columnId: string, filterValue: string) => boolean;
50
+ range: (row: any, columnId: string, filterValue: [number | undefined, number | undefined]) => boolean;
51
+ dateRange: (row: any, columnId: string, filterValue: [string | undefined, string | undefined]) => boolean;
52
+ boolean: (row: any, columnId: string, filterValue: boolean) => boolean;
53
+ multiSelect: (row: any, columnId: string, filterValue: string[]) => boolean;
54
+ };
55
+ };
56
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface DemoProps {
3
+ title: string;
4
+ description?: string;
5
+ children: React.ReactNode;
6
+ code: string;
7
+ language?: string;
8
+ }
9
+ declare const Demo: React.FC<DemoProps>;
10
+ export default Demo;
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ export type InputProps = {
3
+ placeholder?: string;
4
+ value?: string;
5
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
6
+ type?: string;
7
+ variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error' | 'ghost';
8
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
9
+ disabled?: boolean;
10
+ required?: boolean;
11
+ label?: string;
12
+ leftSection?: React.ReactNode;
13
+ rightSection?: React.ReactNode;
14
+ pattern?: string;
15
+ className?: string;
16
+ validator?: boolean;
17
+ validatorHint?: string;
18
+ validationRules?: {
19
+ pattern: RegExp;
20
+ message: string;
21
+ }[];
22
+ };
23
+ declare const Input: ({ placeholder, value, onChange, type, variant, size, disabled, required, label, leftSection, rightSection, pattern, className, validator, validatorHint, validationRules, }: InputProps) => import("react/jsx-runtime").JSX.Element;
24
+ export default Input;
@@ -0,0 +1,36 @@
1
+ import React, { DragEvent } from 'react';
2
+ export type LabelState = string;
3
+ export type LabelStyleConfig = {
4
+ [key: string]: {
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ };
8
+ };
9
+ export type LabelProps = {
10
+ children: React.ReactNode;
11
+ variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
12
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
13
+ outline?: boolean;
14
+ dash?: boolean;
15
+ soft?: boolean;
16
+ bold?: boolean;
17
+ italic?: boolean;
18
+ underline?: boolean;
19
+ ellipsis?: boolean;
20
+ maxWidth?: string;
21
+ stateTimeout?: number;
22
+ styleConfig?: LabelStyleConfig;
23
+ state?: LabelState;
24
+ onStateChange?: (newState: LabelState) => void;
25
+ onClick?: (e: React.MouseEvent) => void;
26
+ onDoubleClick?: (e: React.MouseEvent) => void;
27
+ onMouseEnter?: (e: React.MouseEvent) => void;
28
+ onMouseLeave?: (e: React.MouseEvent) => void;
29
+ onDragStart?: (e: DragEvent<HTMLSpanElement>) => void;
30
+ onDragEnd?: (e: DragEvent<HTMLSpanElement>) => void;
31
+ draggable?: boolean;
32
+ className?: string;
33
+ style?: React.CSSProperties;
34
+ };
35
+ declare const Label: ({ children, variant, size, outline, dash, soft, bold, italic, underline, ellipsis, maxWidth, stateTimeout, styleConfig, state: userState, onStateChange, onClick, onDoubleClick, onMouseEnter, onMouseLeave, onDragStart, onDragEnd, draggable, className, style, }: LabelProps) => import("react/jsx-runtime").JSX.Element;
36
+ export default Label;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ export type ListProps = {
3
+ children: React.ReactNode;
4
+ className?: string;
5
+ onClick?: (e: React.MouseEvent) => void;
6
+ onMouseEnter?: (e: React.MouseEvent) => void;
7
+ onMouseLeave?: (e: React.MouseEvent) => void;
8
+ };
9
+ export type ListRowProps = {
10
+ children: React.ReactNode;
11
+ className?: string;
12
+ selected?: boolean;
13
+ onClick?: (e: React.MouseEvent) => void;
14
+ onDoubleClick?: (e: React.MouseEvent) => void;
15
+ onMouseEnter?: (e: React.MouseEvent) => void;
16
+ onMouseLeave?: (e: React.MouseEvent) => void;
17
+ onContextMenu?: (e: React.MouseEvent) => void;
18
+ };
19
+ export type ListColWrapProps = {
20
+ children: React.ReactNode;
21
+ className?: string;
22
+ };
23
+ export type ListColGrowProps = {
24
+ children: React.ReactNode;
25
+ className?: string;
26
+ };
27
+ export type ListHeaderProps = {
28
+ children: React.ReactNode;
29
+ className?: string;
30
+ };
31
+ interface ListCompound extends React.FC<ListProps> {
32
+ Row: React.FC<ListRowProps>;
33
+ ColWrap: React.FC<ListColWrapProps>;
34
+ ColGrow: React.FC<ListColGrowProps>;
35
+ Header: React.FC<ListHeaderProps>;
36
+ }
37
+ declare const ListWithCompounds: ListCompound;
38
+ export default ListWithCompounds;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface Option {
3
+ value: string | number;
4
+ label: string;
5
+ }
6
+ interface SelectProps {
7
+ options: Option[];
8
+ value?: string | number | (string | number)[];
9
+ onChange: (value: string | number | (string | number)[]) => void;
10
+ placeholder?: string;
11
+ multiple?: boolean;
12
+ fixedHeight?: boolean;
13
+ style?: React.CSSProperties;
14
+ className?: string;
15
+ }
16
+ declare const Select: React.FC<SelectProps>;
17
+ export default Select;
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ export type TableProps = {
3
+ children: React.ReactNode;
4
+ className?: string;
5
+ onClick?: (e: React.MouseEvent) => void;
6
+ onMouseEnter?: (e: React.MouseEvent) => void;
7
+ onMouseLeave?: (e: React.MouseEvent) => void;
8
+ };
9
+ export type TableHeadProps = {
10
+ children: React.ReactNode;
11
+ className?: string;
12
+ };
13
+ export type TableBodyProps = {
14
+ children: React.ReactNode;
15
+ className?: string;
16
+ };
17
+ export type TableRowProps = {
18
+ children: React.ReactNode;
19
+ className?: string;
20
+ selected?: boolean;
21
+ onClick?: (e: React.MouseEvent) => void;
22
+ onDoubleClick?: (e: React.MouseEvent) => void;
23
+ onMouseEnter?: (e: React.MouseEvent) => void;
24
+ onMouseLeave?: (e: React.MouseEvent) => void;
25
+ };
26
+ export type TableCellProps = {
27
+ children: React.ReactNode;
28
+ className?: string;
29
+ onClick?: (e: React.MouseEvent) => void;
30
+ colSpan?: number;
31
+ onDoubleClick?: (e: React.MouseEvent) => void;
32
+ onMouseEnter?: (e: React.MouseEvent) => void;
33
+ onMouseLeave?: (e: React.MouseEvent) => void;
34
+ };
35
+ export type TableHeaderCellProps = {
36
+ children: React.ReactNode;
37
+ className?: string;
38
+ onClick?: (e: React.MouseEvent) => void;
39
+ sortable?: boolean;
40
+ sortDirection?: 'asc' | 'desc' | null;
41
+ draggable?: boolean;
42
+ onDragStart?: (e: React.DragEvent) => void;
43
+ onDragOver?: (e: React.DragEvent) => void;
44
+ onDrop?: (e: React.DragEvent) => void;
45
+ onMouseEnter?: (e: React.MouseEvent) => void;
46
+ onMouseLeave?: (e: React.MouseEvent) => void;
47
+ };
48
+ interface TableCompound extends React.FC<TableProps> {
49
+ Head: React.FC<TableHeadProps>;
50
+ Body: React.FC<TableBodyProps>;
51
+ Row: React.FC<TableRowProps>;
52
+ Cell: React.FC<TableCellProps>;
53
+ HeaderCell: React.FC<TableHeaderCellProps>;
54
+ }
55
+ declare const TableWithCompounds: TableCompound;
56
+ export default TableWithCompounds;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export type ThemeType = 'light' | 'dark' | 'retro' | 'cyberpunk' | 'customblue' | 'ghibli';
3
+ type AppContextType = {
4
+ language: 'zh' | 'en';
5
+ theme: ThemeType;
6
+ setLanguage: (lang: 'zh' | 'en') => void;
7
+ setTheme: (theme: ThemeType) => void;
8
+ };
9
+ export declare const useAppContext: () => AppContextType;
10
+ type AppProviderProps = {
11
+ children: React.ReactNode;
12
+ };
13
+ export declare const AppProvider: React.FC<AppProviderProps>;
14
+ export default AppProvider;
@@ -0,0 +1,9 @@
1
+ import './styles/index.css';
2
+ export { default as Button } from './components/Button';
3
+ export type { ButtonProps, ButtonGroupProps, ButtonGroupSectionProps } from './components/Button';
4
+ export { default as Badge } from './components/Badge';
5
+ export type { BadgeProps } from './components/Badge';
6
+ export { default as Input } from './components/Input';
7
+ export type { InputProps } from './components/Input';
8
+ export { default as Label } from './components/Label';
9
+ export type { LabelProps, LabelState, LabelStyleConfig } from './components/Label';
@@ -0,0 +1,7 @@
1
+ declare const router: import("@tanstack/router-core").RouterCore<import("@tanstack/router-core").Route<any, "/", "/", string, "__root__", undefined, {}, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, readonly [import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/", "/", string, "/", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/button", "/components/button", string, "/components/button", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/badge", "/components/badge", string, "/components/badge", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/input", "/components/input", string, "/components/input", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/label", "/components/label", string, "/components/label", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/select", "/components/select", string, "/components/select", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/card", "/components/card", string, "/components/card", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/list", "/components/list", string, "/components/list", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/table", "/components/table", string, "/components/table", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/datatable", "/components/datatable", string, "/components/datatable", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/datatable/advanced", "/components/datatable/advanced", string, "/components/datatable/advanced", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/components/datatable/advancedTreeTable", "/components/datatable/advancedTreeTable", string, "/components/datatable/advancedTreeTable", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/layouts/sidebar", "/layouts/sidebar", string, "/layouts/sidebar", undefined, Record<never, string>, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, import("@tanstack/react-router").Route<import("@tanstack/react-router").RootRoute<undefined, {}, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>, "/layouts/sidebar/$", "/layouts/sidebar/$", string, "/layouts/sidebar/$", undefined, Record<never, string> & import("@tanstack/react-router").SplatParams, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, import("@tanstack/react-router").AnyContext, {}, undefined, unknown, unknown>], unknown>, "never", false, import("@tanstack/history").RouterHistory, Record<string, any>>;
2
+ declare module '@tanstack/react-router' {
3
+ interface Register {
4
+ router: typeof router;
5
+ }
6
+ }
7
+ export default router;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface MainLayoutProps {
3
+ children?: React.ReactNode;
4
+ }
5
+ declare const MainLayout: React.FC<MainLayoutProps>;
6
+ export default MainLayout;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type NavbarProps = {
3
+ onToggleSidebar: () => void;
4
+ };
5
+ declare const Navbar: React.FC<NavbarProps>;
6
+ export default Navbar;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { MenuItem } from '../types/menu';
3
+ type SidebarProps = {
4
+ isCollapsed: boolean;
5
+ language: 'zh' | 'en';
6
+ items?: MenuItem[];
7
+ onWidthChange?: (width: number) => void;
8
+ };
9
+ declare const Sidebar: React.FC<SidebarProps>;
10
+ export default Sidebar;
@@ -0,0 +1 @@
1
+ import './styles/index.css';
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const HomePage: React.FC;
3
+ export default HomePage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const HomePageEn: React.FC;
3
+ export default HomePageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const HomePageZh: React.FC;
3
+ export default HomePageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const BadgePage: React.FC;
3
+ export default BadgePage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const BadgePageEn: React.FC;
3
+ export default BadgePageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const BadgePageZh: React.FC;
3
+ export default BadgePageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ButtonPage: React.FC;
3
+ export default ButtonPage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ButtonPageEn: React.FC;
3
+ export default ButtonPageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ButtonPageZh: React.FC;
3
+ export default ButtonPageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const CardPage: React.FC;
3
+ export default CardPage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const CardPageEn: React.FC;
3
+ export default CardPageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const CardPageZh: React.FC;
3
+ export default CardPageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AdvancedDataTablePage: React.FC;
3
+ export default AdvancedDataTablePage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AdvancedDataTablePageEn: React.FC;
3
+ export default AdvancedDataTablePageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AdvancedDataTablePageZh: React.FC;
3
+ export default AdvancedDataTablePageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AdvancedTreeTablePage: React.FC;
3
+ export default AdvancedTreeTablePage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AdvancedTreeTablePageEn: React.FC;
3
+ export default AdvancedTreeTablePageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const AdvancedTreeTablePageZh: React.FC;
3
+ export default AdvancedTreeTablePageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const DataTablePage: React.FC;
3
+ export default DataTablePage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const DataTablePageEn: React.FC;
3
+ export default DataTablePageEn;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const DataTablePageZh: React.FC;
3
+ export default DataTablePageZh;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const InputPage: React.FC;
3
+ export default InputPage;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const InputPageEn: React.FC;
3
+ export default InputPageEn;