@luokuiai/lumen-ui 1.0.0-alpha.0
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.
- package/dist/index.js +4572 -0
- package/dist/index.js.map +1 -0
- package/dist/lumen-ui.css +1 -0
- package/dist/theme-contract.js +74 -0
- package/dist/theme-contract.js.map +1 -0
- package/dist/types/components/Avatar.d.ts +14 -0
- package/dist/types/components/Avatar.d.ts.map +1 -0
- package/dist/types/components/Badge.d.ts +14 -0
- package/dist/types/components/Badge.d.ts.map +1 -0
- package/dist/types/components/Button.d.ts +11 -0
- package/dist/types/components/Button.d.ts.map +1 -0
- package/dist/types/components/Checkbox.d.ts +13 -0
- package/dist/types/components/Checkbox.d.ts.map +1 -0
- package/dist/types/components/ConfirmDialog.d.ts +19 -0
- package/dist/types/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/types/components/DatePicker.d.ts +35 -0
- package/dist/types/components/DatePicker.d.ts.map +1 -0
- package/dist/types/components/DateTimePicker.d.ts +16 -0
- package/dist/types/components/DateTimePicker.d.ts.map +1 -0
- package/dist/types/components/Drawer.d.ts +17 -0
- package/dist/types/components/Drawer.d.ts.map +1 -0
- package/dist/types/components/DropdownMenu.d.ts +24 -0
- package/dist/types/components/DropdownMenu.d.ts.map +1 -0
- package/dist/types/components/FileUpload.d.ts +27 -0
- package/dist/types/components/FileUpload.d.ts.map +1 -0
- package/dist/types/components/FormField.d.ts +23 -0
- package/dist/types/components/FormField.d.ts.map +1 -0
- package/dist/types/components/Input.d.ts +11 -0
- package/dist/types/components/Input.d.ts.map +1 -0
- package/dist/types/components/Modal.d.ts +15 -0
- package/dist/types/components/Modal.d.ts.map +1 -0
- package/dist/types/components/Pagination.d.ts +18 -0
- package/dist/types/components/Pagination.d.ts.map +1 -0
- package/dist/types/components/Radio.d.ts +12 -0
- package/dist/types/components/Radio.d.ts.map +1 -0
- package/dist/types/components/SegmentedControl.d.ts +16 -0
- package/dist/types/components/SegmentedControl.d.ts.map +1 -0
- package/dist/types/components/Select.d.ts +87 -0
- package/dist/types/components/Select.d.ts.map +1 -0
- package/dist/types/components/Switch.d.ts +12 -0
- package/dist/types/components/Switch.d.ts.map +1 -0
- package/dist/types/components/Tabs.d.ts +23 -0
- package/dist/types/components/Tabs.d.ts.map +1 -0
- package/dist/types/components/Textarea.d.ts +10 -0
- package/dist/types/components/Textarea.d.ts.map +1 -0
- package/dist/types/components/TimePicker.d.ts +14 -0
- package/dist/types/components/TimePicker.d.ts.map +1 -0
- package/dist/types/components/TimeSelector.d.ts +18 -0
- package/dist/types/components/TimeSelector.d.ts.map +1 -0
- package/dist/types/components/Timeline.d.ts +23 -0
- package/dist/types/components/Timeline.d.ts.map +1 -0
- package/dist/types/components/Toast.d.ts +14 -0
- package/dist/types/components/Toast.d.ts.map +1 -0
- package/dist/types/components/Tooltip.d.ts +31 -0
- package/dist/types/components/Tooltip.d.ts.map +1 -0
- package/dist/types/components/TreeSelect.d.ts +30 -0
- package/dist/types/components/TreeSelect.d.ts.map +1 -0
- package/dist/types/components/classNames.d.ts +2 -0
- package/dist/types/components/classNames.d.ts.map +1 -0
- package/dist/types/components/designTokens.d.ts +165 -0
- package/dist/types/components/designTokens.d.ts.map +1 -0
- package/dist/types/components/dropdownMotion.d.ts +2 -0
- package/dist/types/components/dropdownMotion.d.ts.map +1 -0
- package/dist/types/components/tooltip-positions.d.ts +33 -0
- package/dist/types/components/tooltip-positions.d.ts.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/theme-contract.d.ts +9 -0
- package/dist/types/theme-contract.d.ts.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/** 选项定义 */
|
|
3
|
+
export interface SelectOption<T extends string | number = string> {
|
|
4
|
+
/** 显示文本 */
|
|
5
|
+
label: string;
|
|
6
|
+
/** 选项值 */
|
|
7
|
+
value: T;
|
|
8
|
+
/** 分组标题 */
|
|
9
|
+
group?: string;
|
|
10
|
+
/** 是否禁用 */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** 选项图标 */
|
|
13
|
+
icon?: React.ReactNode;
|
|
14
|
+
/** 附加描述文本 */
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
/** 选择器模式 */
|
|
18
|
+
export type SelectMode = 'single' | 'multiple';
|
|
19
|
+
/** 选择器尺寸 */
|
|
20
|
+
export type SelectSize = 'sm' | 'md' | 'lg';
|
|
21
|
+
export interface SelectOptionRenderState {
|
|
22
|
+
/** 是否已选中 */
|
|
23
|
+
selected: boolean;
|
|
24
|
+
/** 是否键盘或鼠标高亮 */
|
|
25
|
+
highlighted: boolean;
|
|
26
|
+
/** 是否禁用 */
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
/** 选项索引 */
|
|
29
|
+
index: number;
|
|
30
|
+
}
|
|
31
|
+
/** 选择器 Props */
|
|
32
|
+
export interface SelectProps<T extends string | number = string> {
|
|
33
|
+
/** 选项列表 */
|
|
34
|
+
options: SelectOption<T>[];
|
|
35
|
+
/** 选择器模式: 单选 / 多选 */
|
|
36
|
+
mode?: SelectMode;
|
|
37
|
+
/** 是否启用搜索过滤 */
|
|
38
|
+
searchable?: boolean;
|
|
39
|
+
/** 占位提示文本 */
|
|
40
|
+
placeholder?: string;
|
|
41
|
+
/** 是否禁用整个组件 */
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
/** 当前选中值 (单选模式为 T | null, 多选模式为 T[]) */
|
|
44
|
+
value: T | null | T[];
|
|
45
|
+
/** 多选触发器展示方式 */
|
|
46
|
+
multipleTriggerDisplay?: 'chips' | 'count' | 'placeholder';
|
|
47
|
+
/** 多选计数文案 */
|
|
48
|
+
multipleCountLabel?: (count: number) => string;
|
|
49
|
+
/** 选中值变更回调 */
|
|
50
|
+
onChange: (value: T | null | T[]) => void;
|
|
51
|
+
/** 选择器尺寸 */
|
|
52
|
+
size?: SelectSize;
|
|
53
|
+
/** 额外 className */
|
|
54
|
+
className?: string;
|
|
55
|
+
/** 自定义触发器 className */
|
|
56
|
+
triggerClassName?: string;
|
|
57
|
+
/** 自定义触发器圆角,默认 rounded-[6px] */
|
|
58
|
+
radius?: string;
|
|
59
|
+
/** 打开前执行,可用于预加载选项 */
|
|
60
|
+
onBeforeOpen?: () => Promise<void> | void;
|
|
61
|
+
/** 搜索输入框占位文本 */
|
|
62
|
+
searchPlaceholder?: string;
|
|
63
|
+
/** 空状态文本 */
|
|
64
|
+
emptyText?: string;
|
|
65
|
+
/** 是否按搜索词本地过滤选项 */
|
|
66
|
+
filterOptions?: boolean;
|
|
67
|
+
/** 加载状态文本 */
|
|
68
|
+
loadingText?: string;
|
|
69
|
+
/** 是否正在加载选项 */
|
|
70
|
+
loading?: boolean;
|
|
71
|
+
/** 外部受控搜索值 */
|
|
72
|
+
searchValue?: string;
|
|
73
|
+
/** 搜索值变化回调 */
|
|
74
|
+
onSearchChange?: (value: string) => void;
|
|
75
|
+
/** 开合状态变化回调 */
|
|
76
|
+
onOpenChange?: (open: boolean) => void;
|
|
77
|
+
/** 自定义触发器内容 */
|
|
78
|
+
renderTrigger?: (selectedOptions: SelectOption<T>[]) => React.ReactNode;
|
|
79
|
+
/** 自定义选项内容 */
|
|
80
|
+
renderOption?: (option: SelectOption<T>, state: SelectOptionRenderState) => React.ReactNode;
|
|
81
|
+
/** 自定义选项按钮样式 */
|
|
82
|
+
optionClassName?: (option: SelectOption<T>, state: SelectOptionRenderState) => string | undefined;
|
|
83
|
+
/** 可访问名称 */
|
|
84
|
+
'aria-label'?: string;
|
|
85
|
+
}
|
|
86
|
+
export declare const Select: <T extends string | number = string>({ options, mode, searchable, placeholder, disabled, value, multipleTriggerDisplay, multipleCountLabel, onChange, size, className, triggerClassName, radius, onBeforeOpen, searchPlaceholder, emptyText, filterOptions, loadingText, loading, searchValue, onSearchChange, onOpenChange, renderTrigger, renderOption, optionClassName, "aria-label": ariaLabel, }: SelectProps<T>) => React.JSX.Element;
|
|
87
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,WAAW;AACX,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC9D,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,KAAK,EAAE,CAAC,CAAC;IACT,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,YAAY;AACZ,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE/C,YAAY;AACZ,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,YAAY;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,gBAAgB;AAChB,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAC7D,WAAW;IACX,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,qBAAqB;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,eAAe;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IACtB,gBAAgB;IAChB,sBAAsB,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC;IAC3D,aAAa;IACb,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,cAAc;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY;IACZ,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,gBAAgB;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc;IACd,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,eAAe;IACf,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACxE,cAAc;IACd,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,KAAK,EAAE,uBAAuB,KAC3B,KAAK,CAAC,SAAS,CAAC;IACrB,gBAAgB;IAChB,eAAe,CAAC,EAAE,CAChB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,KAAK,EAAE,uBAAuB,KAC3B,MAAM,GAAG,SAAS,CAAC;IACxB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,kWA2BxD,WAAW,CAAC,CAAC,CAAC,sBAynBhB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {
|
|
3
|
+
size?: 'sm' | 'md';
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
defaultChecked?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
label?: React.ReactNode;
|
|
8
|
+
description?: React.ReactNode;
|
|
9
|
+
onChange?: (checked: boolean) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const Switch: React.FC<SwitchProps>;
|
|
12
|
+
//# sourceMappingURL=Switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAG/C,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACvF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA8FxC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { tabVariantClassNames } from './designTokens';
|
|
3
|
+
import type { LucideIcon } from 'lucide-react';
|
|
4
|
+
export interface TabOption<T extends string> {
|
|
5
|
+
value: T;
|
|
6
|
+
label: string;
|
|
7
|
+
count?: number | string;
|
|
8
|
+
description?: string;
|
|
9
|
+
icon?: LucideIcon;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface TabsProps<T extends string> {
|
|
13
|
+
value: T;
|
|
14
|
+
options: TabOption<T>[];
|
|
15
|
+
onChange: (value: T) => void;
|
|
16
|
+
variant?: keyof typeof tabVariantClassNames;
|
|
17
|
+
className?: string;
|
|
18
|
+
gridClassName?: string;
|
|
19
|
+
itemClassName?: string;
|
|
20
|
+
aside?: React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare const Tabs: <T extends string>({ value, options, onChange, variant, className, gridClassName, itemClassName, aside, }: TabsProps<T>) => React.JSX.Element;
|
|
23
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM;IACzC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM;IACzC,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,OAAO,oBAAoB,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,MAAM,EAAE,wFASpC,SAAS,CAAC,CAAC,CAAC,sBAmEd,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TextareaSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export type TextareaResize = 'none' | 'vertical';
|
|
4
|
+
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
5
|
+
size?: TextareaSize;
|
|
6
|
+
resize?: TextareaResize;
|
|
7
|
+
invalid?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
10
|
+
//# sourceMappingURL=Textarea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;IACtF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,eAAO,MAAM,QAAQ,2FA2BpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimePickerProps {
|
|
3
|
+
value: string;
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
size?: 'md' | 'lg';
|
|
8
|
+
precision?: 'minute' | 'second';
|
|
9
|
+
minuteStep?: number;
|
|
10
|
+
minExclusiveTime?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const TimePicker: React.FC<TimePickerProps>;
|
|
14
|
+
//# sourceMappingURL=TimePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/TimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAQxE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2BD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwOhD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TimePrecision = 'minute' | 'second';
|
|
3
|
+
export interface TimeSelectorProps {
|
|
4
|
+
hour: string;
|
|
5
|
+
minute: string;
|
|
6
|
+
second?: string;
|
|
7
|
+
onHourChange: (value: string) => void;
|
|
8
|
+
onMinuteChange: (value: string) => void;
|
|
9
|
+
onSecondChange?: (value: string) => void;
|
|
10
|
+
precision?: TimePrecision;
|
|
11
|
+
minuteStep?: number;
|
|
12
|
+
isHourDisabled?: (value: string) => boolean;
|
|
13
|
+
isMinuteDisabled?: (value: string) => boolean;
|
|
14
|
+
isSecondDisabled?: (value: string) => boolean;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const TimeSelector: React.FC<TimeSelectorProps>;
|
|
18
|
+
//# sourceMappingURL=TimeSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeSelector.d.ts","sourceRoot":"","sources":["../../../src/components/TimeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgGpD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface TimelineItem {
|
|
3
|
+
id: string;
|
|
4
|
+
date: string;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
meta?: {
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}[];
|
|
11
|
+
type?: 'default' | 'success' | 'warning' | 'error';
|
|
12
|
+
beforeValue?: string;
|
|
13
|
+
afterValue?: string;
|
|
14
|
+
}
|
|
15
|
+
interface TimelineProps {
|
|
16
|
+
items: TimelineItem[];
|
|
17
|
+
onItemClick?: (id: string) => void;
|
|
18
|
+
emptyText?: string;
|
|
19
|
+
maxItems?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare const Timeline: React.FC<TimelineProps>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=Timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../src/components/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,UAAU,aAAa;IACrB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyBD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA0H5C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ToastType = 'success' | 'info' | 'warning' | 'error';
|
|
2
|
+
export interface ToastOptions {
|
|
3
|
+
duration?: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class Toast {
|
|
6
|
+
static show(message: string, type?: ToastType, options?: ToastOptions): void;
|
|
7
|
+
static success(message: string, options?: ToastOptions): void;
|
|
8
|
+
static info(message: string, options?: ToastOptions): void;
|
|
9
|
+
static warning(message: string, options?: ToastOptions): void;
|
|
10
|
+
static error(message: string, options?: ToastOptions): void;
|
|
11
|
+
static clear(): void;
|
|
12
|
+
static resetForTests(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/Toast.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmPD,qBAAa,KAAK;IAChB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAkB,EAAE,OAAO,GAAE,YAAiB;IAejF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAItD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAInD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAItD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAIpD,MAAM,CAAC,KAAK;IAMZ,MAAM,CAAC,aAAa;CAUrB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { TooltipPlacement } from './tooltip-positions';
|
|
3
|
+
export type { TooltipPlacement };
|
|
4
|
+
export interface TooltipProps {
|
|
5
|
+
/** 要显示的提示内容 */
|
|
6
|
+
content: React.ReactNode;
|
|
7
|
+
/** 触发元素(必须是单个 ReactElement) */
|
|
8
|
+
children: React.ReactElement;
|
|
9
|
+
/** 放置位置,默认 'top' */
|
|
10
|
+
placement?: TooltipPlacement;
|
|
11
|
+
/** 显示延迟 (ms),默认 300 */
|
|
12
|
+
showDelay?: number;
|
|
13
|
+
/** 隐藏延迟 (ms),默认 0 */
|
|
14
|
+
hideDelay?: number;
|
|
15
|
+
/** 是否禁用 tooltip */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** 自定义 className */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** 与触发元素的间距 (px),默认 8 */
|
|
20
|
+
offset?: number;
|
|
21
|
+
/** 是否显示小箭头,默认 true */
|
|
22
|
+
showArrow?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 通用 Tooltip 组件
|
|
26
|
+
*
|
|
27
|
+
* 支持延迟展示、多种放置方向、视口自动翻转、入场/退场动画和小三角箭头。
|
|
28
|
+
* 使用 Portal 渲染到 document.body,避免被父级 overflow 裁剪。
|
|
29
|
+
*/
|
|
30
|
+
export declare const Tooltip: React.FC<TooltipProps>;
|
|
31
|
+
//# sourceMappingURL=Tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAKjC,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,oBAAoB;IACpB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA+BD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAwK1C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type TreeSelectSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface TreeSelectProps<TNode> {
|
|
4
|
+
nodes: TNode[];
|
|
5
|
+
value: string | null;
|
|
6
|
+
onChange: (value: string | null, node: TNode | null) => void;
|
|
7
|
+
values?: string[];
|
|
8
|
+
lockedValues?: string[];
|
|
9
|
+
onMultiChange?: (values: string[], nodes: TNode[]) => void;
|
|
10
|
+
multiple?: boolean;
|
|
11
|
+
exclusiveHierarchySelection?: boolean;
|
|
12
|
+
searchable?: boolean;
|
|
13
|
+
expandSearchResults?: boolean;
|
|
14
|
+
searchPlaceholder?: string;
|
|
15
|
+
getValue: (node: TNode) => string;
|
|
16
|
+
getLabel: (node: TNode) => string;
|
|
17
|
+
getChildren?: (node: TNode) => TNode[] | undefined;
|
|
18
|
+
isNodeSelectable?: (node: TNode) => boolean;
|
|
19
|
+
renderPrefix?: (node: TNode) => React.ReactNode;
|
|
20
|
+
defaultExpandedDepth?: number;
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
loading?: boolean;
|
|
24
|
+
emptyText?: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
size?: TreeSelectSize;
|
|
27
|
+
}
|
|
28
|
+
export declare const TreeSelect: <TNode>({ nodes, value, onChange, values, lockedValues, onMultiChange, multiple, exclusiveHierarchySelection, searchable, expandSearchResults, searchPlaceholder, getValue, getLabel, getChildren, isNodeSelectable, renderPrefix, defaultExpandedDepth, placeholder, disabled, loading, emptyText, className, size, }: TreeSelectProps<TNode>) => React.JSX.Element;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=TreeSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeSelect.d.ts","sourceRoot":"","sources":["../../../src/components/TreeSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAgBf,KAAK,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,MAAM,WAAW,eAAe,CAAC,KAAK;IACpC,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,SAAS,CAAC;IACnD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AA6JD,eAAO,MAAM,UAAU,GAAI,KAAK,EAAG,gTAwBhC,eAAe,CAAC,KAAK,CAAC,sBAwexB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../src/components/classNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,GAAI,GAAG,SAAS,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,WACpC,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
export declare const radiusTokens: {
|
|
2
|
+
readonly tag: "rounded-[var(--lumen-radius-tag)]";
|
|
3
|
+
readonly control: "rounded-[var(--lumen-radius-control)]";
|
|
4
|
+
readonly button: "rounded-[var(--lumen-radius-control)]";
|
|
5
|
+
readonly icon: "rounded-[var(--lumen-radius-icon)]";
|
|
6
|
+
readonly card: "rounded-[var(--lumen-radius-card)]";
|
|
7
|
+
readonly modal: "rounded-[var(--lumen-radius-modal)]";
|
|
8
|
+
readonly pill: "rounded-[var(--lumen-radius-pill)]";
|
|
9
|
+
};
|
|
10
|
+
export declare const radiusNormalizationMap: {
|
|
11
|
+
readonly 'rounded-[2px]': "rounded-[var(--lumen-radius-tag)]";
|
|
12
|
+
readonly 'rounded-[3px]': "rounded-[var(--lumen-radius-tag)]";
|
|
13
|
+
readonly 'rounded-[10px]': "rounded-[var(--lumen-radius-card)]";
|
|
14
|
+
readonly 'rounded-[11px]': "rounded-[var(--lumen-radius-icon)]";
|
|
15
|
+
readonly 'rounded-[14px]': "rounded-[var(--lumen-radius-card)]";
|
|
16
|
+
readonly 'rounded-[16px]': "rounded-[var(--lumen-radius-card)]";
|
|
17
|
+
readonly 'rounded-[20px]': "rounded-[var(--lumen-radius-modal)]";
|
|
18
|
+
readonly 'rounded-[22px]': "rounded-[var(--lumen-radius-modal)]";
|
|
19
|
+
readonly 'rounded-[24px]': "rounded-[var(--lumen-radius-modal)]";
|
|
20
|
+
readonly 'rounded-xl': "rounded-[var(--lumen-radius-card)]";
|
|
21
|
+
readonly 'rounded-2xl': "rounded-[var(--lumen-radius-modal)]";
|
|
22
|
+
};
|
|
23
|
+
export declare const buttonSizeTokens: {
|
|
24
|
+
readonly sm: "h-[var(--lumen-control-height-sm)] px-3 text-[12px]";
|
|
25
|
+
readonly md: "h-[var(--lumen-control-height-md)] px-4 text-[13px]";
|
|
26
|
+
readonly lg: "h-[var(--lumen-control-height-lg)] px-5 text-[14px]";
|
|
27
|
+
};
|
|
28
|
+
export declare const buttonIconSizeTokens: {
|
|
29
|
+
readonly sm: "h-8 w-8";
|
|
30
|
+
readonly md: "h-9 w-9";
|
|
31
|
+
readonly lg: "h-10 w-10";
|
|
32
|
+
};
|
|
33
|
+
export declare const buttonVariantTokens: {
|
|
34
|
+
readonly primary: "border border-transparent bg-[var(--lumen-color-primary)] text-[var(--lumen-color-on-primary)] shadow-sm shadow-[var(--lumen-color-primary)]/20 hover:bg-[var(--lumen-color-primary-hover)]";
|
|
35
|
+
readonly secondary: "border border-transparent bg-[var(--lumen-color-primary-soft)] text-[var(--lumen-color-primary)] hover:bg-[var(--lumen-color-primary-soft-hover)]";
|
|
36
|
+
readonly accent: "border border-[var(--lumen-color-info-border)] bg-[var(--lumen-color-primary-soft)] text-[var(--lumen-color-primary-hover)] hover:border-[var(--lumen-color-info-border)] hover:bg-[var(--lumen-color-primary-soft-hover)]";
|
|
37
|
+
readonly outline: "border border-[var(--lumen-color-border-strong)] bg-[var(--lumen-color-surface)] text-[var(--lumen-color-text-secondary)] hover:border-[var(--lumen-color-info-border)] hover:bg-[var(--lumen-color-surface-hover)] hover:text-[var(--lumen-color-primary)]";
|
|
38
|
+
readonly ghost: "border border-transparent bg-transparent text-[var(--lumen-color-text-muted)] hover:bg-[var(--lumen-color-surface-muted)] hover:text-[var(--lumen-color-text)]";
|
|
39
|
+
readonly destructive: "border border-transparent bg-[var(--lumen-color-danger)] text-[var(--lumen-color-on-primary)] shadow-sm shadow-[var(--lumen-color-danger)]/20 hover:bg-[var(--lumen-color-danger-hover)]";
|
|
40
|
+
};
|
|
41
|
+
export type ButtonVariant = keyof typeof buttonVariantTokens;
|
|
42
|
+
export type ButtonSize = keyof typeof buttonSizeTokens;
|
|
43
|
+
export declare const getButtonClassNames: ({ variant, size, iconOnly, className, }: {
|
|
44
|
+
variant?: ButtonVariant;
|
|
45
|
+
size?: ButtonSize;
|
|
46
|
+
iconOnly?: boolean;
|
|
47
|
+
className?: string;
|
|
48
|
+
}) => string;
|
|
49
|
+
export declare const rawButtonPresets: {
|
|
50
|
+
readonly iconSm: string;
|
|
51
|
+
readonly iconMd: string;
|
|
52
|
+
readonly outlineSm: string;
|
|
53
|
+
readonly outlineMd: string;
|
|
54
|
+
readonly subtleSm: string;
|
|
55
|
+
readonly dangerSm: string;
|
|
56
|
+
readonly segment: "inline-flex items-center justify-center h-[32px] px-3 text-[12px] font-medium transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lumen-color-primary)]/20 disabled:cursor-not-allowed disabled:opacity-50 rounded-[6px] border border-transparent text-[var(--lumen-color-text-muted)] hover:bg-[var(--lumen-color-surface)] hover:text-[var(--lumen-color-text)]";
|
|
57
|
+
readonly pagination: "inline-flex items-center justify-center h-8 min-w-8 px-2 text-[12px] font-medium transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lumen-color-primary)]/20 disabled:cursor-not-allowed disabled:opacity-50 rounded-[6px] text-[var(--lumen-color-text-muted)] hover:bg-[var(--lumen-color-primary-soft)] hover:text-[var(--lumen-color-primary)]";
|
|
58
|
+
readonly dashedUpload: "inline-flex items-center justify-center gap-1.5 h-[36px] px-4 text-[12px] font-medium transition-all duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lumen-color-primary)]/20 disabled:cursor-not-allowed disabled:opacity-50 rounded-[6px] border border-dashed border-[var(--lumen-color-border-hover)] bg-[var(--lumen-color-surface)] text-[var(--lumen-color-text-muted)] hover:border-[var(--lumen-color-info-border)] hover:bg-[var(--lumen-color-surface-hover)] hover:text-[var(--lumen-color-primary)]";
|
|
59
|
+
};
|
|
60
|
+
export declare const headerActionButtonClassNames: {
|
|
61
|
+
readonly primary: "group relative isolate inline-flex h-[38px] items-center justify-center gap-1.5 overflow-hidden rounded-[8px] border border-[var(--lumen-color-primary-hover)] bg-[var(--lumen-color-primary)] px-4 text-[13px] font-medium tracking-[0.01em] text-[var(--lumen-color-on-primary)] shadow-[0_8px_18px_var(--lumen-color-focus-ring)] transition-all duration-200 hover:-translate-y-[1px] hover:border-[var(--lumen-color-primary-active)] hover:bg-[var(--lumen-color-primary-hover)] hover:shadow-[0_12px_24px_var(--lumen-color-focus-ring)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lumen-color-primary)]/20 disabled:cursor-not-allowed disabled:opacity-50";
|
|
62
|
+
readonly outline: "group relative isolate inline-flex h-[38px] items-center justify-center gap-1.5 overflow-hidden rounded-[8px] border border-[var(--lumen-color-border-strong)] bg-[var(--lumen-color-surface-glass)] px-4 text-[13px] font-medium tracking-[0.01em] text-[var(--lumen-color-text-secondary)] shadow-[0_6px_14px_var(--lumen-color-shadow)] transition-all duration-200 hover:-translate-y-[1px] hover:border-[var(--lumen-color-border-hover)] hover:bg-[var(--lumen-color-surface-glass)] hover:text-[var(--lumen-color-primary-active)] hover:shadow-[0_10px_20px_var(--lumen-color-shadow)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lumen-color-primary)]/20 disabled:cursor-not-allowed disabled:opacity-50";
|
|
63
|
+
};
|
|
64
|
+
export declare const headerActionButtonSurfaceClassNames: {
|
|
65
|
+
readonly primary: "pointer-events-none absolute inset-[1px] rounded-[7px] bg-[radial-gradient(circle_at_50%_0%,var(--lumen-color-surface-glass),transparent_52%),linear-gradient(180deg,var(--lumen-color-surface-glass),transparent_54%)]";
|
|
66
|
+
readonly outline: "pointer-events-none absolute inset-[1px] rounded-[7px] bg-[linear-gradient(180deg,var(--lumen-color-surface-glass),var(--lumen-color-surface-glass))]";
|
|
67
|
+
};
|
|
68
|
+
export declare const tabContainerClassNames = "rounded-[18px] border border-[var(--lumen-color-surface)]/70 bg-[var(--lumen-color-surface)]/92 p-4 shadow-[0_12px_36px_var(--lumen-color-shadow)]";
|
|
69
|
+
export declare const tabVariantClassNames: {
|
|
70
|
+
readonly default: {
|
|
71
|
+
readonly container: "bg-[var(--lumen-color-surface)] px-1";
|
|
72
|
+
readonly base: "group relative inline-flex min-h-[44px] items-center justify-center gap-2 whitespace-nowrap px-3 py-3 text-[13px] font-medium transition-colors duration-200 after:absolute after:bottom-[-1px] after:left-2 after:right-2 after:h-[2px] after:origin-center after:scale-x-0 after:rounded-full after:bg-[var(--lumen-color-primary)] after:opacity-0 after:transition-all after:duration-150 after:ease-out";
|
|
73
|
+
readonly active: "text-[var(--lumen-color-primary)] after:scale-x-100 after:opacity-100";
|
|
74
|
+
readonly inactive: "text-[var(--lumen-color-text-muted)] hover:text-[var(--lumen-color-primary)]";
|
|
75
|
+
readonly iconBase: "";
|
|
76
|
+
readonly iconActive: "text-[var(--lumen-color-primary)]";
|
|
77
|
+
readonly iconInactive: "text-[var(--lumen-color-text-placeholder)] group-hover:text-[var(--lumen-color-primary)]";
|
|
78
|
+
readonly badgeBase: "inline-flex min-w-[24px] items-center justify-center rounded-full px-1.5 py-0.5 text-[11px] font-semibold transition-all";
|
|
79
|
+
readonly badgeActive: "bg-[var(--lumen-color-primary-soft-hover)] text-[var(--lumen-color-primary)]";
|
|
80
|
+
readonly badgeInactive: "bg-[var(--lumen-color-surface-muted)] text-[var(--lumen-color-text-muted)]";
|
|
81
|
+
};
|
|
82
|
+
readonly pill: {
|
|
83
|
+
readonly container: "rounded-[16px] border border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface-subtle)] px-5 py-4 shadow-[0_6px_18px_var(--lumen-color-shadow)]";
|
|
84
|
+
readonly base: "group inline-flex items-center gap-2 rounded-full border px-4 py-2 text-[13px] transition-all";
|
|
85
|
+
readonly active: "border-[var(--lumen-color-primary)] bg-[var(--lumen-color-primary-soft)] text-[var(--lumen-color-primary)]";
|
|
86
|
+
readonly inactive: "border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface)] text-[var(--lumen-color-text-muted)] hover:border-[var(--lumen-color-border-hover)] hover:text-[var(--lumen-color-primary)]";
|
|
87
|
+
readonly iconBase: "";
|
|
88
|
+
readonly iconActive: "";
|
|
89
|
+
readonly iconInactive: "";
|
|
90
|
+
readonly badgeBase: "inline-flex min-w-[28px] items-center justify-center rounded-full px-2 py-0.5 text-[11px] font-semibold transition-all";
|
|
91
|
+
readonly badgeActive: "bg-[var(--lumen-color-surface)] text-[var(--lumen-color-primary)]";
|
|
92
|
+
readonly badgeInactive: "bg-[var(--lumen-color-surface-muted)] text-[var(--lumen-color-text-muted)]";
|
|
93
|
+
};
|
|
94
|
+
readonly card: {
|
|
95
|
+
readonly container: "rounded-[12px] border border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface)] px-4 py-4 shadow-sm";
|
|
96
|
+
readonly base: "group inline-flex min-h-[46px] items-center gap-2.5 rounded-[8px] border px-4 py-2 text-[14px] font-medium tracking-[0.01em] transition-all duration-200";
|
|
97
|
+
readonly active: "border-[var(--lumen-color-info-border)] bg-[linear-gradient(180deg,var(--lumen-color-info-soft)_0%,var(--lumen-color-surface)_100%)] text-[var(--lumen-color-primary-active)] shadow-[0_8px_18px_var(--lumen-color-focus-ring)]";
|
|
98
|
+
readonly inactive: "border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface-subtle)] text-[var(--lumen-color-text-muted)] hover:border-[var(--lumen-color-info-border)] hover:bg-[var(--lumen-color-surface)] hover:text-[var(--lumen-color-primary-active)]";
|
|
99
|
+
readonly iconBase: "inline-flex h-7 w-7 items-center justify-center rounded-[6px] border transition-colors duration-200";
|
|
100
|
+
readonly iconActive: "border-[var(--lumen-color-info-border)] bg-[var(--lumen-color-primary-soft-hover)] text-[var(--lumen-color-primary)]";
|
|
101
|
+
readonly iconInactive: "border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface)] text-[var(--lumen-color-text-placeholder)] group-hover:border-[var(--lumen-color-info-border)] group-hover:text-[var(--lumen-color-primary)]";
|
|
102
|
+
readonly badgeBase: "inline-flex min-w-[30px] items-center justify-center rounded-[6px] px-2 py-0.5 text-[12px] font-semibold transition-all duration-200";
|
|
103
|
+
readonly badgeActive: "bg-[var(--lumen-color-primary)] text-[var(--lumen-color-on-primary)] shadow-[0_6px_12px_var(--lumen-color-focus-ring)]";
|
|
104
|
+
readonly badgeInactive: "bg-[var(--lumen-color-surface-muted)] text-[var(--lumen-color-text-muted)]";
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
export declare const tabClassNames: {
|
|
108
|
+
readonly base: "inline-flex items-center justify-center gap-2 rounded-[10px] px-4 py-2.5 text-[13px] font-medium transition-all duration-200";
|
|
109
|
+
readonly active: "bg-[var(--lumen-color-primary)] text-[var(--lumen-color-on-primary)] shadow-[0_10px_20px_var(--lumen-color-focus-ring)]";
|
|
110
|
+
readonly inactive: "bg-[var(--lumen-color-surface-muted)] text-[var(--lumen-color-text-muted)] hover:bg-[var(--lumen-color-info-soft)] hover:text-[var(--lumen-color-primary)]";
|
|
111
|
+
};
|
|
112
|
+
export declare const tabBadgeClassNames: {
|
|
113
|
+
readonly base: "rounded-full px-2 py-0.5 text-[11px] font-semibold";
|
|
114
|
+
readonly active: "bg-[var(--lumen-color-surface)]/20 text-[var(--lumen-color-on-primary)]";
|
|
115
|
+
readonly inactive: "bg-[var(--lumen-color-surface)] text-[var(--lumen-color-primary)]";
|
|
116
|
+
};
|
|
117
|
+
export declare const statCardToneClassNames: {
|
|
118
|
+
readonly blue: "border-[var(--lumen-color-info-border)] bg-[linear-gradient(180deg,var(--lumen-color-surface)_0%,var(--lumen-color-info-soft)_100%)]";
|
|
119
|
+
readonly emerald: "border-[var(--lumen-color-success-border)] bg-[linear-gradient(180deg,var(--lumen-color-surface)_0%,var(--lumen-color-success-soft)_100%)]";
|
|
120
|
+
readonly amber: "border-[var(--lumen-color-warning-border)] bg-[linear-gradient(180deg,var(--lumen-color-surface)_0%,var(--lumen-color-warning-soft)_100%)]";
|
|
121
|
+
readonly slate: "border-[var(--lumen-color-border)] bg-[linear-gradient(180deg,var(--lumen-color-surface)_0%,var(--lumen-color-surface-muted)_100%)]";
|
|
122
|
+
};
|
|
123
|
+
export declare const semanticBadgeToneClassNames: {
|
|
124
|
+
readonly neutral: "bg-[var(--lumen-color-surface-muted)] text-[var(--lumen-color-text-secondary)]";
|
|
125
|
+
readonly info: "bg-[var(--lumen-color-primary-soft-hover)] text-[var(--lumen-color-primary-hover)]";
|
|
126
|
+
readonly success: "bg-[var(--lumen-color-success-soft)] text-[var(--lumen-color-success-text)]";
|
|
127
|
+
readonly warning: "bg-[var(--lumen-color-warning-soft)] text-[var(--lumen-color-warning-text)]";
|
|
128
|
+
readonly danger: "bg-[var(--lumen-color-danger-soft)] text-[var(--lumen-color-danger-text)]";
|
|
129
|
+
};
|
|
130
|
+
export declare const semanticSurfaceToneClassNames: {
|
|
131
|
+
readonly neutral: "border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface-muted)] text-[var(--lumen-color-text-secondary)]";
|
|
132
|
+
readonly info: "border-[var(--lumen-color-info-border)] bg-[var(--lumen-color-info-soft)] text-[var(--lumen-color-primary-hover)]";
|
|
133
|
+
readonly success: "border-[var(--lumen-color-success-border)] bg-[var(--lumen-color-success-soft)] text-[var(--lumen-color-success-text)]";
|
|
134
|
+
readonly warning: "border-[var(--lumen-color-warning-border)] bg-[var(--lumen-color-warning-soft)] text-[var(--lumen-color-warning-text)]";
|
|
135
|
+
readonly danger: "border-[var(--lumen-color-danger-border)] bg-[var(--lumen-color-danger-soft)] text-[var(--lumen-color-danger-text)]";
|
|
136
|
+
};
|
|
137
|
+
export declare const selectionPickerClassNames: {
|
|
138
|
+
readonly summary: "rounded-[8px] border border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface)] p-3";
|
|
139
|
+
readonly summaryTrail: "text-[12px] text-[var(--lumen-color-text-muted)]";
|
|
140
|
+
readonly summaryTitle: "text-[13px] font-medium leading-5 text-[var(--lumen-color-text)]";
|
|
141
|
+
readonly summaryHint: "text-[12px] text-[var(--lumen-color-text-placeholder)]";
|
|
142
|
+
readonly neutralBadge: "border-[var(--lumen-color-info-border)] bg-[var(--lumen-color-surface)] text-[var(--lumen-color-primary-hover)]";
|
|
143
|
+
readonly infoBadge: "border-[var(--lumen-color-info-border)] bg-[var(--lumen-color-primary-soft-hover)] text-[var(--lumen-color-primary-hover)]";
|
|
144
|
+
readonly modalPanel: "flex max-h-[calc(100dvh-1.5rem)] w-full max-w-[980px] flex-col overflow-hidden rounded-[12px] bg-[var(--lumen-color-surface)] shadow-[0_18px_60px_var(--lumen-color-shadow)] pad:max-h-[86vh] pad:rounded-[16px] l:rounded-[18px]";
|
|
145
|
+
readonly modalHeader: "border-[var(--lumen-color-border)]";
|
|
146
|
+
readonly modalTitle: "text-[16px] font-semibold text-[var(--lumen-color-text-strong)]";
|
|
147
|
+
readonly modalDescription: "text-[12px] text-[var(--lumen-color-text-muted)]";
|
|
148
|
+
readonly navigation: "border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface)]";
|
|
149
|
+
readonly navigationTitle: "text-[12px] font-semibold text-[var(--lumen-color-text-muted)]";
|
|
150
|
+
readonly categoryActive: "bg-[var(--lumen-color-primary-soft)] text-[var(--lumen-color-primary-hover)]";
|
|
151
|
+
readonly categoryInactive: "text-[var(--lumen-color-text-secondary)] hover:!bg-[var(--lumen-color-info-soft)]";
|
|
152
|
+
readonly subCategoryActive: "bg-[var(--lumen-color-primary-soft-hover)] text-[var(--lumen-color-primary-hover)]";
|
|
153
|
+
readonly subCategoryInactive: "text-[var(--lumen-color-text-muted)] hover:!bg-[var(--lumen-color-info-soft)] hover:text-[var(--lumen-color-primary-hover)]";
|
|
154
|
+
readonly mutedText: "text-[12px] text-[var(--lumen-color-text-placeholder)]";
|
|
155
|
+
readonly loadingIcon: "text-[var(--lumen-color-primary)]";
|
|
156
|
+
readonly contentTitle: "text-[14px] font-semibold text-[var(--lumen-color-text)]";
|
|
157
|
+
readonly emptyState: "rounded-[8px] border border-dashed border-[var(--lumen-color-info-border)] bg-[var(--lumen-color-surface)] px-4 py-12 text-center text-[13px] text-[var(--lumen-color-text-placeholder)]";
|
|
158
|
+
readonly itemBase: "!h-auto w-full items-start justify-start gap-3 rounded-[8px] px-3 py-3 text-left";
|
|
159
|
+
readonly itemActive: "border-[var(--lumen-color-primary)] bg-[var(--lumen-color-info-soft)] hover:bg-[var(--lumen-color-info-soft)]";
|
|
160
|
+
readonly itemInactive: "border-[var(--lumen-color-border)] bg-[var(--lumen-color-surface)] hover:border-[var(--lumen-color-info-border)] hover:bg-[var(--lumen-color-surface-hover)]";
|
|
161
|
+
readonly itemSequence: "bg-[var(--lumen-color-primary-soft)] text-[var(--lumen-color-primary-hover)]";
|
|
162
|
+
readonly itemText: "text-[13px] font-normal leading-5 text-[var(--lumen-color-text-secondary)]";
|
|
163
|
+
readonly selectedIcon: "text-[var(--lumen-color-primary)]";
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=designTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designTokens.d.ts","sourceRoot":"","sources":["../../../src/components/designTokens.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;CAYzB,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAKvD,eAAO,MAAM,mBAAmB,GAAI,yCAKjC;IACD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,WAOE,CAAC;AAEJ,eAAO,MAAM,gBAAgB;;;;;;;;;;CAanB,CAAC;AAEX,eAAO,MAAM,4BAA4B;;;CAK/B,CAAC;AAEX,eAAO,MAAM,mCAAmC;;;CAKtC,CAAC;AAEX,eAAO,MAAM,sBAAsB,uJACmH,CAAC;AAEvJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDvB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;CAOhB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;;CAM9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;CAMhC,CAAC;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdownMotion.d.ts","sourceRoot":"","sources":["../../../src/components/dropdownMotion.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,OAAO,EACrB,eAAe,GAAE,MAAM,GAAG,OAAgB,GACzC,MAAM,CAIR"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
/** 提示框放置方向 */
|
|
3
|
+
export type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
4
|
+
/** 位置计算结果 */
|
|
5
|
+
export interface PositionResult {
|
|
6
|
+
/** 提示框 left 坐标(相对视口) */
|
|
7
|
+
x: number;
|
|
8
|
+
/** 提示框 top 坐标(相对视口) */
|
|
9
|
+
y: number;
|
|
10
|
+
/** 实际放置方向(可能因视口翻转而改变) */
|
|
11
|
+
actualPlacement: TooltipPlacement;
|
|
12
|
+
/** 箭头内联样式 */
|
|
13
|
+
arrowStyle: React.CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
/** 视口尺寸 */
|
|
16
|
+
export interface ViewportSize {
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 计算提示框位置(纯函数,无副作用)
|
|
22
|
+
* @param triggerRect 触发元素的 getBoundingClientRect()
|
|
23
|
+
* @param tooltipSize 提示框的 { width, height }
|
|
24
|
+
* @param placement 期望的放置方向
|
|
25
|
+
* @param offset 与触发元素的间距
|
|
26
|
+
* @param viewportPadding 距视口边缘的安全边距,默认 8
|
|
27
|
+
* @param viewport 视口尺寸,默认使用 window.innerWidth/innerHeight
|
|
28
|
+
*/
|
|
29
|
+
export declare function computePosition(triggerRect: DOMRect, tooltipSize: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
}, placement: TooltipPlacement, offset: number, viewportPadding?: number, viewport?: ViewportSize): PositionResult;
|
|
33
|
+
//# sourceMappingURL=tooltip-positions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-positions.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip-positions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,cAAc;AACd,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,uBAAuB;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,yBAAyB;IACzB,eAAe,EAAE,gBAAgB,CAAC;IAClC,aAAa;IACb,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;CACjC;AAED,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA4GD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC9C,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,MAAU,EAC3B,QAAQ,GAAE,YAEsB,GAC/B,cAAc,CAqEhB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import './styles/base.css';
|
|
2
|
+
export * from './theme-contract';
|
|
3
|
+
export * from './components/Avatar';
|
|
4
|
+
export * from './components/Badge';
|
|
5
|
+
export * from './components/Button';
|
|
6
|
+
export * from './components/Checkbox';
|
|
7
|
+
export * from './components/ConfirmDialog';
|
|
8
|
+
export * from './components/DatePicker';
|
|
9
|
+
export * from './components/DateTimePicker';
|
|
10
|
+
export * from './components/Drawer';
|
|
11
|
+
export * from './components/DropdownMenu';
|
|
12
|
+
export * from './components/FileUpload';
|
|
13
|
+
export * from './components/FormField';
|
|
14
|
+
export * from './components/Input';
|
|
15
|
+
export * from './components/Modal';
|
|
16
|
+
export * from './components/Pagination';
|
|
17
|
+
export * from './components/Radio';
|
|
18
|
+
export * from './components/SegmentedControl';
|
|
19
|
+
export * from './components/Select';
|
|
20
|
+
export * from './components/Switch';
|
|
21
|
+
export * from './components/Tabs';
|
|
22
|
+
export * from './components/Textarea';
|
|
23
|
+
export * from './components/TimePicker';
|
|
24
|
+
export * from './components/Timeline';
|
|
25
|
+
export * from './components/Toast';
|
|
26
|
+
export * from './components/Tooltip';
|
|
27
|
+
export * from './components/TreeSelect';
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAE3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Lumen 主题必须实现的公共 CSS 变量。 */
|
|
2
|
+
export declare const lumenThemeVariables: readonly ["--lumen-font-family", "--lumen-font-weight-normal", "--lumen-font-weight-medium", "--lumen-font-weight-strong", "--lumen-color-primary", "--lumen-color-primary-hover", "--lumen-color-primary-active", "--lumen-color-primary-soft", "--lumen-color-primary-soft-hover", "--lumen-color-on-primary", "--lumen-color-text-strong", "--lumen-color-text", "--lumen-color-text-secondary", "--lumen-color-text-muted", "--lumen-color-text-placeholder", "--lumen-color-surface", "--lumen-color-surface-muted", "--lumen-color-surface-subtle", "--lumen-color-surface-hover", "--lumen-color-surface-glass", "--lumen-color-overlay", "--lumen-color-border", "--lumen-color-border-strong", "--lumen-color-border-hover", "--lumen-color-focus-ring", "--lumen-color-danger", "--lumen-color-danger-hover", "--lumen-color-danger-soft", "--lumen-color-danger-border", "--lumen-color-danger-text", "--lumen-color-success", "--lumen-color-success-soft", "--lumen-color-success-border", "--lumen-color-success-text", "--lumen-color-warning", "--lumen-color-warning-soft", "--lumen-color-warning-border", "--lumen-color-warning-text", "--lumen-color-info", "--lumen-color-info-soft", "--lumen-color-info-border", "--lumen-color-info-text", "--lumen-color-tooltip", "--lumen-color-tooltip-text", "--lumen-color-shadow", "--lumen-radius-tag", "--lumen-radius-control", "--lumen-radius-icon", "--lumen-radius-card", "--lumen-radius-modal", "--lumen-radius-pill", "--lumen-shadow-control", "--lumen-shadow-card", "--lumen-shadow-dropdown", "--lumen-shadow-modal", "--lumen-control-height-sm", "--lumen-control-height-md", "--lumen-control-height-lg", "--lumen-motion-duration-fast", "--lumen-motion-duration-normal", "--lumen-motion-ease-standard", "--lumen-motion-ease-enter", "--lumen-motion-ease-exit"];
|
|
3
|
+
export type LumenThemeVariable = (typeof lumenThemeVariables)[number];
|
|
4
|
+
export declare const lumenThemeAttributes: {
|
|
5
|
+
readonly theme: "data-lumen-theme";
|
|
6
|
+
readonly colorScheme: "data-color-scheme";
|
|
7
|
+
readonly density: "data-density";
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=theme-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-contract.d.ts","sourceRoot":"","sources":["../../src/theme-contract.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,uvDAgEtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC"}
|