@sia.soul/sia-react-ui 0.1.20 → 0.1.21

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 (38) hide show
  1. package/dist/Select-4hGJt3RJ.d.cts +142 -0
  2. package/dist/Select-BNSE67xn.d.ts +142 -0
  3. package/dist/chart.d.cts +2498 -0
  4. package/dist/chart.d.ts +2498 -0
  5. package/dist/{chunk-4HB6GC24.js → chunk-3TRRBMXY.js} +37 -8
  6. package/dist/{chunk-3RWL67CK.js → chunk-7RNS52YG.js} +38 -5
  7. package/dist/{chunk-SUMXP2SF.js → chunk-KLI65JVD.js} +12 -4
  8. package/dist/{chunk-I3EF5SF2.js → chunk-RWGSZW32.js} +1 -1
  9. package/dist/{chunk-LO3BUBWU.js → chunk-VN6PIPP7.js} +2 -2
  10. package/dist/{core-CdoVqv0o.d.ts → core-C5OnrCi4.d.cts} +1207 -3
  11. package/dist/{core-CM79w-7A.d.cts → core-DeZknKwc.d.ts} +1207 -3
  12. package/dist/core.cjs +77 -13
  13. package/dist/core.css +18 -1
  14. package/dist/core.d.cts +3 -3
  15. package/dist/core.d.ts +3 -3
  16. package/dist/core.js +3 -3
  17. package/dist/index.cjs +128 -21
  18. package/dist/index.css +18 -1
  19. package/dist/index.d.cts +1696 -7
  20. package/dist/index.d.ts +1696 -7
  21. package/dist/index.js +50 -13
  22. package/dist/markdown-editor.d.cts +41 -1
  23. package/dist/markdown-editor.d.ts +41 -1
  24. package/dist/rich-text-editor.cjs +11 -3
  25. package/dist/rich-text-editor.d.cts +46 -1
  26. package/dist/rich-text-editor.d.ts +46 -1
  27. package/dist/rich-text-editor.js +2 -2
  28. package/dist/{select-date-range-4tEYkA5O.d.cts → select-date-range-CGRb3-W8.d.ts} +116 -2
  29. package/dist/{select-date-range-D-ynrB5k.d.ts → select-date-range-DDmYGDD4.d.cts} +116 -2
  30. package/dist/select-date-range.cjs +36 -7
  31. package/dist/select-date-range.d.cts +3 -3
  32. package/dist/select-date-range.d.ts +3 -3
  33. package/dist/select-date-range.js +3 -3
  34. package/dist/{shared-DAYZvZVu.d.cts → shared-Bx4B28Wh.d.cts} +3 -0
  35. package/dist/{shared-DAYZvZVu.d.ts → shared-Bx4B28Wh.d.ts} +3 -0
  36. package/package.json +1 -1
  37. package/dist/Select-Cz3hzQl_.d.ts +0 -57
  38. package/dist/Select-Da9CLN0X.d.cts +0 -57
@@ -1,94 +1,208 @@
1
1
  import * as react from 'react';
2
2
  import { InputHTMLAttributes, ReactNode, HTMLAttributes, CSSProperties } from 'react';
3
- import { I as InputPlaceholderMode, C as ControlSize, a as ControlStatus } from './shared-DAYZvZVu.cjs';
4
- import { S as SelectOption, e as SelectValue } from './Select-Da9CLN0X.cjs';
3
+ import { I as InputPlaceholderMode, C as ControlSize, a as ControlStatus } from './shared-Bx4B28Wh.js';
4
+ import { S as SelectOption, e as SelectValue } from './Select-BNSE67xn.js';
5
5
 
6
+ /** 日期选择附带的时间选择配置。 */
6
7
  type DatePickerShowTime = boolean | {
8
+ /** 是否显示秒选择。 */
7
9
  showSecond?: boolean;
10
+ /** 非受控模式的初始值,仅在初始化时使用。 */
8
11
  defaultValue?: string | readonly [string, string];
9
12
  };
10
13
 
14
+ /** 日期选择的类型标识。 */
11
15
  type DatePickerType = "date" | "week" | "month" | "year" | "quarter";
16
+ /** 日期选择的值类型。 */
12
17
  type DatePickerValue = string | readonly string[];
18
+ /** 日期选择面板中的快捷日期选项。 */
13
19
  type DatePickerPreset = {
20
+ /** 展示给用户的名称,可传入文本或 React 节点。 */
14
21
  label: ReactNode;
22
+ /** 该项目对应的数据值,用于标识、选择或计算。 */
15
23
  value: string | (() => string);
16
24
  };
25
+ /** 日期区间面板中的快捷范围选项。 */
17
26
  type DateRangePickerPreset = {
27
+ /** 展示给用户的名称,可传入文本或 React 节点。 */
18
28
  label: ReactNode;
29
+ /** 该项目对应的数据值,用于标识、选择或计算。 */
19
30
  value: readonly [string, string] | (() => readonly [string, string]);
20
31
  };
32
+ /** 日期禁用判断函数收到的面板和范围上下文。 */
21
33
  type DatePickerDisabledInfo = {
34
+ /** 范围、渐变或转换的起始值。 */
22
35
  from?: string;
36
+ /** 类型标识,用于选择对应的表现形式。 */
23
37
  type: "date";
24
38
  };
39
+ /** SharedDatePicker的属性配置。 */
25
40
  type SharedDatePickerProps = Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "size" | "value" | "defaultValue" | "onChange" | "multiple">;
41
+ /** 日期选择的属性配置。 */
26
42
  interface DatePickerProps extends SharedDatePickerProps {
43
+ /** 占位提示的显示模式;floating 为浮动标签。 */
27
44
  placeholderMode?: InputPlaceholderMode;
45
+ /** 当前值;作为受控属性时,需要在变更回调中同步更新。 */
28
46
  value?: DatePickerValue;
47
+ /** 非受控模式的初始值,仅在初始化时使用。 */
29
48
  defaultValue?: DatePickerValue;
49
+ /**
50
+ * 日期粒度
51
+ * @defaultValue "date"
52
+ */
30
53
  picker?: DatePickerType;
54
+ /** 组件尺寸;用于调整控件高度、字号和间距。 */
31
55
  size?: ControlSize;
56
+ /**
57
+ * 当前状态,用于选择对应的状态样式。
58
+ * @defaultValue "default"
59
+ */
32
60
  status?: ControlStatus;
61
+ /**
62
+ 是否允许清空当前选择或输入值。
63
+ * @defaultValue true
64
+ */
33
65
  allowClear?: boolean;
66
+ /**
67
+ 是否允许在同一面板选择多个日期。
68
+ * @defaultValue false
69
+ */
34
70
  multiple?: boolean;
71
+ /** 选择后需要点击确定才提交 */
35
72
  needConfirm?: boolean;
73
+ /**
74
+ * 组合时间面板,可显示秒;范围选择会在宽屏并排显示起止面板,在窄屏分步选择
75
+ * @defaultValue false
76
+ */
36
77
  showTime?: DatePickerShowTime;
78
+ /**
79
+ * 是否显示返回今天的入口。
80
+ * @defaultValue true
81
+ */
37
82
  showToday?: boolean;
83
+ /** 是否打开;传入后由外部控制显示状态。 */
38
84
  open?: boolean;
85
+ /**
86
+ * 非受控模式下的初始打开状态。
87
+ * @defaultValue false
88
+ */
39
89
  defaultOpen?: boolean;
90
+ /** 显示在控件末尾的图标。 */
40
91
  suffixIcon?: ReactNode;
92
+ /** 允许选择的最早日期。 */
41
93
  minDate?: string;
94
+ /** 允许选择的最晚日期。 */
42
95
  maxDate?: string;
96
+ /** 预设候选值或快捷选项集合。 */
43
97
  presets?: readonly DatePickerPreset[];
98
+ /** 判断某个日期是否不可选的函数。 */
44
99
  disabledDate?: (value: string, info: DatePickerDisabledInfo) => boolean;
100
+ /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
45
101
  onChange?: (value: DatePickerValue) => void;
102
+ /** 打开状态改变时触发,参数为新的打开状态。 */
46
103
  onOpenChange?: (open: boolean) => void;
47
104
  /** 只格式化显示文字,不改变传入和回调的标准日期值。 */
48
105
  formatValue?: (value: string) => string;
106
+ /** 渲染面板底部的自定义扩展区域。 */
49
107
  renderExtraFooter?: () => ReactNode;
50
108
  }
109
+ /** 日期区间选择的属性配置。 */
51
110
  interface DateRangePickerProps extends Omit<DatePickerProps, "value" | "defaultValue" | "onChange" | "placeholder" | "multiple" | "presets"> {
111
+ /** 当前值;作为受控属性时,需要在变更回调中同步更新。 */
52
112
  value?: readonly [string, string];
113
+ /**
114
+ * 非受控模式的初始值,仅在初始化时使用。
115
+ * @defaultValue ["", ""]
116
+ */
53
117
  defaultValue?: readonly [string, string];
118
+ /**
119
+ * 未填写或未选择时的提示内容。
120
+ * @defaultValue ["开始日期", "结束日期"]
121
+ */
54
122
  placeholder?: readonly [string, string];
123
+ /**
124
+ * 全局分隔符,可传入图标或文字
125
+ * @defaultValue "→"
126
+ */
55
127
  separator?: ReactNode;
128
+ /** 预设候选值或快捷选项集合。 */
56
129
  presets?: readonly DateRangePickerPreset[];
130
+ /** 日期区间允许的最大天数。 */
57
131
  maxRangeDays?: number;
58
132
  /** 允许单独保留起点或终点;需要点击确定提交未完整的范围。 */
59
133
  allowEmpty?: readonly [boolean, boolean];
60
134
  /** 锁定指定端点,编辑和清空时保留其值。 */
61
135
  endpointDisabled?: readonly [boolean, boolean];
136
+ /** 日期区间选择过程中的暂存值变化时调用。 */
62
137
  onCalendarChange?: (value: readonly [string, string]) => void;
138
+ /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
63
139
  onChange?: (value: readonly [string, string]) => void;
64
140
  }
65
141
  declare function DateRangePicker({ value, defaultValue, placeholder, placeholderMode, separator, presets, maxRangeDays, allowEmpty, endpointDisabled, size: sizeProp, status, allowClear, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, disabledDate, disabled, className, onCalendarChange, onChange, onOpenChange, formatValue, renderExtraFooter, ...props }: DateRangePickerProps): react.JSX.Element;
142
+ /** 日期选择组件。 */
66
143
  declare function DatePicker({ value, defaultValue, picker, size: sizeProp, status, allowClear, multiple, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, presets, disabledDate, disabled, className, onChange, onOpenChange, placeholder, placeholderMode, formatValue, renderExtraFooter, ...props }: DatePickerProps): react.JSX.Element;
67
144
  declare namespace DatePicker {
145
+ /** 日期区间选择器。 */
68
146
  const RangePicker: typeof DateRangePicker;
69
147
  }
70
148
 
149
+ /** 类型与日期区间组合选择的值类型。 */
71
150
  interface SelectDateRangeValue {
151
+ /** 选择指定项,或日期类型选择器的配置。 */
72
152
  select: SelectValue;
153
+ /** 是否启用范围选择,或指定选择范围。 */
73
154
  range: readonly [string, string];
74
155
  }
156
+ /** 类型与日期区间组合选择的属性配置。 */
75
157
  interface SelectDateRangeProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
158
+ /** 可供用户选择的候选项列表。 */
76
159
  options: readonly SelectOption[];
160
+ /** 当前值;作为受控属性时,需要在变更回调中同步更新。 */
77
161
  value?: SelectDateRangeValue;
162
+ /** 非受控模式的初始值,仅在初始化时使用。 */
78
163
  defaultValue?: SelectDateRangeValue;
164
+ /**
165
+ * 选择器占位内容
166
+ * @defaultValue "请选择类型"
167
+ */
79
168
  selectPlaceholder?: ReactNode;
169
+ /** 占位提示的显示模式;floating 为浮动标签。 */
80
170
  placeholderMode?: InputPlaceholderMode;
81
171
  /** 左侧选择器宽度,数字单位为 px;右侧日期范围自动填充剩余宽度。 */
82
172
  selectWidth?: CSSProperties["width"];
173
+ /**
174
+ * 开始和结束日期占位内容
175
+ * @defaultValue ["开始日期", "结束日期"]
176
+ */
83
177
  rangePlaceholder?: readonly [string, string];
178
+ /**
179
+ * 日期类型选择器的无障碍名称。
180
+ * @defaultValue "选择类型"
181
+ */
84
182
  selectAriaLabel?: string;
183
+ /**
184
+ * 日期区间控件的无障碍名称。
185
+ * @defaultValue "日期范围"
186
+ */
85
187
  rangeAriaLabel?: string;
188
+ /** 预设候选值或快捷选项集合。 */
86
189
  presets?: readonly DateRangePickerPreset[];
190
+ /** 组件尺寸;用于调整控件高度、字号和间距。 */
87
191
  size?: ControlSize;
192
+ /**
193
+ * 当前状态,用于选择对应的状态样式。
194
+ * @defaultValue "default"
195
+ */
88
196
  status?: ControlStatus;
197
+ /**
198
+ * 是否禁用交互。
199
+ * @defaultValue false
200
+ */
89
201
  disabled?: boolean;
202
+ /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
90
203
  onChange?: (value: SelectDateRangeValue) => void;
91
204
  }
205
+ /** 类型与日期区间组合选择组件。 */
92
206
  declare function SelectDateRange({ options, value, defaultValue, selectPlaceholder, placeholderMode, selectWidth, rangePlaceholder, selectAriaLabel, rangeAriaLabel, presets, size: sizeProp, status, disabled, onChange, className, style, ...props }: SelectDateRangeProps): react.JSX.Element;
93
207
 
94
208
  export { DatePicker as D, SelectDateRange as S, type DatePickerDisabledInfo as a, type DatePickerPreset as b, type DatePickerProps as c, type DatePickerShowTime as d, type DatePickerType as e, type DatePickerValue as f, type DateRangePickerPreset as g, type DateRangePickerProps as h, type SelectDateRangeProps as i, type SelectDateRangeValue as j };
@@ -1,94 +1,208 @@
1
1
  import * as react from 'react';
2
2
  import { InputHTMLAttributes, ReactNode, HTMLAttributes, CSSProperties } from 'react';
3
- import { I as InputPlaceholderMode, C as ControlSize, a as ControlStatus } from './shared-DAYZvZVu.js';
4
- import { S as SelectOption, e as SelectValue } from './Select-Cz3hzQl_.js';
3
+ import { I as InputPlaceholderMode, C as ControlSize, a as ControlStatus } from './shared-Bx4B28Wh.cjs';
4
+ import { S as SelectOption, e as SelectValue } from './Select-4hGJt3RJ.cjs';
5
5
 
6
+ /** 日期选择附带的时间选择配置。 */
6
7
  type DatePickerShowTime = boolean | {
8
+ /** 是否显示秒选择。 */
7
9
  showSecond?: boolean;
10
+ /** 非受控模式的初始值,仅在初始化时使用。 */
8
11
  defaultValue?: string | readonly [string, string];
9
12
  };
10
13
 
14
+ /** 日期选择的类型标识。 */
11
15
  type DatePickerType = "date" | "week" | "month" | "year" | "quarter";
16
+ /** 日期选择的值类型。 */
12
17
  type DatePickerValue = string | readonly string[];
18
+ /** 日期选择面板中的快捷日期选项。 */
13
19
  type DatePickerPreset = {
20
+ /** 展示给用户的名称,可传入文本或 React 节点。 */
14
21
  label: ReactNode;
22
+ /** 该项目对应的数据值,用于标识、选择或计算。 */
15
23
  value: string | (() => string);
16
24
  };
25
+ /** 日期区间面板中的快捷范围选项。 */
17
26
  type DateRangePickerPreset = {
27
+ /** 展示给用户的名称,可传入文本或 React 节点。 */
18
28
  label: ReactNode;
29
+ /** 该项目对应的数据值,用于标识、选择或计算。 */
19
30
  value: readonly [string, string] | (() => readonly [string, string]);
20
31
  };
32
+ /** 日期禁用判断函数收到的面板和范围上下文。 */
21
33
  type DatePickerDisabledInfo = {
34
+ /** 范围、渐变或转换的起始值。 */
22
35
  from?: string;
36
+ /** 类型标识,用于选择对应的表现形式。 */
23
37
  type: "date";
24
38
  };
39
+ /** SharedDatePicker的属性配置。 */
25
40
  type SharedDatePickerProps = Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "size" | "value" | "defaultValue" | "onChange" | "multiple">;
41
+ /** 日期选择的属性配置。 */
26
42
  interface DatePickerProps extends SharedDatePickerProps {
43
+ /** 占位提示的显示模式;floating 为浮动标签。 */
27
44
  placeholderMode?: InputPlaceholderMode;
45
+ /** 当前值;作为受控属性时,需要在变更回调中同步更新。 */
28
46
  value?: DatePickerValue;
47
+ /** 非受控模式的初始值,仅在初始化时使用。 */
29
48
  defaultValue?: DatePickerValue;
49
+ /**
50
+ * 日期粒度
51
+ * @defaultValue "date"
52
+ */
30
53
  picker?: DatePickerType;
54
+ /** 组件尺寸;用于调整控件高度、字号和间距。 */
31
55
  size?: ControlSize;
56
+ /**
57
+ * 当前状态,用于选择对应的状态样式。
58
+ * @defaultValue "default"
59
+ */
32
60
  status?: ControlStatus;
61
+ /**
62
+ 是否允许清空当前选择或输入值。
63
+ * @defaultValue true
64
+ */
33
65
  allowClear?: boolean;
66
+ /**
67
+ 是否允许在同一面板选择多个日期。
68
+ * @defaultValue false
69
+ */
34
70
  multiple?: boolean;
71
+ /** 选择后需要点击确定才提交 */
35
72
  needConfirm?: boolean;
73
+ /**
74
+ * 组合时间面板,可显示秒;范围选择会在宽屏并排显示起止面板,在窄屏分步选择
75
+ * @defaultValue false
76
+ */
36
77
  showTime?: DatePickerShowTime;
78
+ /**
79
+ * 是否显示返回今天的入口。
80
+ * @defaultValue true
81
+ */
37
82
  showToday?: boolean;
83
+ /** 是否打开;传入后由外部控制显示状态。 */
38
84
  open?: boolean;
85
+ /**
86
+ * 非受控模式下的初始打开状态。
87
+ * @defaultValue false
88
+ */
39
89
  defaultOpen?: boolean;
90
+ /** 显示在控件末尾的图标。 */
40
91
  suffixIcon?: ReactNode;
92
+ /** 允许选择的最早日期。 */
41
93
  minDate?: string;
94
+ /** 允许选择的最晚日期。 */
42
95
  maxDate?: string;
96
+ /** 预设候选值或快捷选项集合。 */
43
97
  presets?: readonly DatePickerPreset[];
98
+ /** 判断某个日期是否不可选的函数。 */
44
99
  disabledDate?: (value: string, info: DatePickerDisabledInfo) => boolean;
100
+ /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
45
101
  onChange?: (value: DatePickerValue) => void;
102
+ /** 打开状态改变时触发,参数为新的打开状态。 */
46
103
  onOpenChange?: (open: boolean) => void;
47
104
  /** 只格式化显示文字,不改变传入和回调的标准日期值。 */
48
105
  formatValue?: (value: string) => string;
106
+ /** 渲染面板底部的自定义扩展区域。 */
49
107
  renderExtraFooter?: () => ReactNode;
50
108
  }
109
+ /** 日期区间选择的属性配置。 */
51
110
  interface DateRangePickerProps extends Omit<DatePickerProps, "value" | "defaultValue" | "onChange" | "placeholder" | "multiple" | "presets"> {
111
+ /** 当前值;作为受控属性时,需要在变更回调中同步更新。 */
52
112
  value?: readonly [string, string];
113
+ /**
114
+ * 非受控模式的初始值,仅在初始化时使用。
115
+ * @defaultValue ["", ""]
116
+ */
53
117
  defaultValue?: readonly [string, string];
118
+ /**
119
+ * 未填写或未选择时的提示内容。
120
+ * @defaultValue ["开始日期", "结束日期"]
121
+ */
54
122
  placeholder?: readonly [string, string];
123
+ /**
124
+ * 全局分隔符,可传入图标或文字
125
+ * @defaultValue "→"
126
+ */
55
127
  separator?: ReactNode;
128
+ /** 预设候选值或快捷选项集合。 */
56
129
  presets?: readonly DateRangePickerPreset[];
130
+ /** 日期区间允许的最大天数。 */
57
131
  maxRangeDays?: number;
58
132
  /** 允许单独保留起点或终点;需要点击确定提交未完整的范围。 */
59
133
  allowEmpty?: readonly [boolean, boolean];
60
134
  /** 锁定指定端点,编辑和清空时保留其值。 */
61
135
  endpointDisabled?: readonly [boolean, boolean];
136
+ /** 日期区间选择过程中的暂存值变化时调用。 */
62
137
  onCalendarChange?: (value: readonly [string, string]) => void;
138
+ /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
63
139
  onChange?: (value: readonly [string, string]) => void;
64
140
  }
65
141
  declare function DateRangePicker({ value, defaultValue, placeholder, placeholderMode, separator, presets, maxRangeDays, allowEmpty, endpointDisabled, size: sizeProp, status, allowClear, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, disabledDate, disabled, className, onCalendarChange, onChange, onOpenChange, formatValue, renderExtraFooter, ...props }: DateRangePickerProps): react.JSX.Element;
142
+ /** 日期选择组件。 */
66
143
  declare function DatePicker({ value, defaultValue, picker, size: sizeProp, status, allowClear, multiple, needConfirm, showTime, showToday, open, defaultOpen, suffixIcon, minDate, maxDate, presets, disabledDate, disabled, className, onChange, onOpenChange, placeholder, placeholderMode, formatValue, renderExtraFooter, ...props }: DatePickerProps): react.JSX.Element;
67
144
  declare namespace DatePicker {
145
+ /** 日期区间选择器。 */
68
146
  const RangePicker: typeof DateRangePicker;
69
147
  }
70
148
 
149
+ /** 类型与日期区间组合选择的值类型。 */
71
150
  interface SelectDateRangeValue {
151
+ /** 选择指定项,或日期类型选择器的配置。 */
72
152
  select: SelectValue;
153
+ /** 是否启用范围选择,或指定选择范围。 */
73
154
  range: readonly [string, string];
74
155
  }
156
+ /** 类型与日期区间组合选择的属性配置。 */
75
157
  interface SelectDateRangeProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
158
+ /** 可供用户选择的候选项列表。 */
76
159
  options: readonly SelectOption[];
160
+ /** 当前值;作为受控属性时,需要在变更回调中同步更新。 */
77
161
  value?: SelectDateRangeValue;
162
+ /** 非受控模式的初始值,仅在初始化时使用。 */
78
163
  defaultValue?: SelectDateRangeValue;
164
+ /**
165
+ * 选择器占位内容
166
+ * @defaultValue "请选择类型"
167
+ */
79
168
  selectPlaceholder?: ReactNode;
169
+ /** 占位提示的显示模式;floating 为浮动标签。 */
80
170
  placeholderMode?: InputPlaceholderMode;
81
171
  /** 左侧选择器宽度,数字单位为 px;右侧日期范围自动填充剩余宽度。 */
82
172
  selectWidth?: CSSProperties["width"];
173
+ /**
174
+ * 开始和结束日期占位内容
175
+ * @defaultValue ["开始日期", "结束日期"]
176
+ */
83
177
  rangePlaceholder?: readonly [string, string];
178
+ /**
179
+ * 日期类型选择器的无障碍名称。
180
+ * @defaultValue "选择类型"
181
+ */
84
182
  selectAriaLabel?: string;
183
+ /**
184
+ * 日期区间控件的无障碍名称。
185
+ * @defaultValue "日期范围"
186
+ */
85
187
  rangeAriaLabel?: string;
188
+ /** 预设候选值或快捷选项集合。 */
86
189
  presets?: readonly DateRangePickerPreset[];
190
+ /** 组件尺寸;用于调整控件高度、字号和间距。 */
87
191
  size?: ControlSize;
192
+ /**
193
+ * 当前状态,用于选择对应的状态样式。
194
+ * @defaultValue "default"
195
+ */
88
196
  status?: ControlStatus;
197
+ /**
198
+ * 是否禁用交互。
199
+ * @defaultValue false
200
+ */
89
201
  disabled?: boolean;
202
+ /** 值发生变化时调用;参数为新值及类型声明中列出的关联信息。 */
90
203
  onChange?: (value: SelectDateRangeValue) => void;
91
204
  }
205
+ /** 类型与日期区间组合选择组件。 */
92
206
  declare function SelectDateRange({ options, value, defaultValue, selectPlaceholder, placeholderMode, selectWidth, rangePlaceholder, selectAriaLabel, rangeAriaLabel, presets, size: sizeProp, status, disabled, onChange, className, style, ...props }: SelectDateRangeProps): react.JSX.Element;
93
207
 
94
208
  export { DatePicker as D, SelectDateRange as S, type DatePickerDisabledInfo as a, type DatePickerPreset as b, type DatePickerProps as c, type DatePickerShowTime as d, type DatePickerType as e, type DatePickerValue as f, type DateRangePickerPreset as g, type DateRangePickerProps as h, type SelectDateRangeProps as i, type SelectDateRangeValue as j };
@@ -2138,12 +2138,19 @@ function preset(type, defaults = {}) {
2138
2138
  });
2139
2139
  }
2140
2140
  var Modal2 = Object.assign(ModalRoot, {
2141
+ /** 直接打开实例,返回可用于更新或关闭的操作句柄。 */
2141
2142
  open: openModal,
2143
+ /** 显示普通信息提示。 */
2142
2144
  info: preset("info", { title: "\u63D0\u793A" }),
2145
+ /** 显示成功提示。 */
2143
2146
  success: preset("success", { title: "\u64CD\u4F5C\u6210\u529F" }),
2147
+ /** 显示警告提示。 */
2144
2148
  warning: preset("warning", { title: "\u8BF7\u6CE8\u610F" }),
2149
+ /** 显示错误提示。 */
2145
2150
  error: preset("error", { title: "\u64CD\u4F5C\u5931\u8D25" }),
2151
+ /** 打开确认弹框,支持异步确认;返回 false 可阻止关闭。 */
2146
2152
  confirm: preset("confirm", { title: "\u786E\u8BA4\u64CD\u4F5C" }),
2153
+ /** 关闭由此 API 打开的所有弹层。 */
2147
2154
  destroyAll() {
2148
2155
  [...modalHandles].forEach((handle) => handle.destroy());
2149
2156
  }
@@ -2326,7 +2333,10 @@ function CheckboxGroup({
2326
2333
  children
2327
2334
  ] }) }) });
2328
2335
  }
2329
- var Checkbox2 = Object.assign(CheckboxRoot, { Group: CheckboxGroup });
2336
+ var Checkbox2 = Object.assign(CheckboxRoot, {
2337
+ /** 组合多个子项并统一管理布局或选择状态。 */
2338
+ Group: CheckboxGroup
2339
+ });
2330
2340
 
2331
2341
  // src/components/SelectionPanel.tsx
2332
2342
  var import_react12 = require("react");
@@ -2546,6 +2556,8 @@ function SelectionPanel({
2546
2556
  const search = searchValue ?? localSearch;
2547
2557
  const [scrollTop, setScrollTop] = (0, import_react12.useState)(0);
2548
2558
  const [active, setActive] = (0, import_react12.useState)();
2559
+ const [keyboardActive, setKeyboardActive] = (0, import_react12.useState)(false);
2560
+ const [deselectedHover, setDeselectedHover] = (0, import_react12.useState)();
2549
2561
  const listRef = (0, import_react12.useRef)(null);
2550
2562
  const id = (0, import_react12.useId)();
2551
2563
  const selected = (0, import_react12.useMemo)(() => new Set(value), [value]);
@@ -2590,9 +2602,11 @@ function SelectionPanel({
2590
2602
  if (listRef.current) listRef.current.scrollTop = 0;
2591
2603
  setActive(void 0);
2592
2604
  }, [search, selectedOnly, count]);
2593
- function toggle(option) {
2605
+ function toggle(option, keyboard = false) {
2594
2606
  if (disabled || loading || option.disabled || option.optionType === "divider") return;
2595
2607
  setActive(option.value);
2608
+ setKeyboardActive(keyboard);
2609
+ setDeselectedHover(!keyboard && !multiple && allowDeselect && selected.has(option.value) ? option.value : void 0);
2596
2610
  onChange(multiple ? selected.has(option.value) ? value.filter((item) => item !== option.value) : [...value, option.value] : allowDeselect && selected.has(option.value) ? [] : [option.value]);
2597
2611
  }
2598
2612
  function batch(operation) {
@@ -2642,6 +2656,10 @@ function SelectionPanel({
2642
2656
  className: "sia-selection-panel__list",
2643
2657
  style: { maxHeight },
2644
2658
  onScroll: (event) => setScrollTop(event.currentTarget.scrollTop),
2659
+ onPointerDown: () => setKeyboardActive(false),
2660
+ onBlur: (event) => {
2661
+ if (!event.currentTarget.contains(event.relatedTarget)) setKeyboardActive(false);
2662
+ },
2645
2663
  "aria-activedescendant": active !== void 0 ? `${id}-${typeof active}-${active}` : void 0,
2646
2664
  onKeyDown: (event) => {
2647
2665
  if (event.target instanceof HTMLInputElement) return;
@@ -2649,6 +2667,8 @@ function SelectionPanel({
2649
2667
  const index = enabled.findIndex((option) => option.value === active);
2650
2668
  if (["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key)) {
2651
2669
  event.preventDefault();
2670
+ setKeyboardActive(true);
2671
+ setDeselectedHover(void 0);
2652
2672
  const next = event.key === "Home" ? 0 : event.key === "End" ? enabled.length - 1 : Math.max(0, Math.min(enabled.length - 1, index + (event.key === "ArrowDown" ? 1 : -1)));
2653
2673
  const option = enabled[next];
2654
2674
  setActive(option.value);
@@ -2659,7 +2679,7 @@ function SelectionPanel({
2659
2679
  }
2660
2680
  } else if ((event.key === "Enter" || event.key === " ") && index >= 0) {
2661
2681
  event.preventDefault();
2662
- toggle(enabled[index]);
2682
+ toggle(enabled[index], true);
2663
2683
  }
2664
2684
  },
2665
2685
  children: loading ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { role: "status", children: "\u52A0\u8F7D\u4E2D\u2026" }) : !rows.length ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "sia-selection-panel__empty", children: "\u6682\u65E0\u5339\u914D\u9009\u9879" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { style: { height: totalHeight, position: "relative" }, children: renderedRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
@@ -2675,7 +2695,11 @@ function SelectionPanel({
2675
2695
  tabIndex: -1,
2676
2696
  "aria-selected": selected.has(option.value),
2677
2697
  "aria-disabled": disabled || option.disabled || void 0,
2678
- className: `sia-selection-panel__option${active === option.value ? " is-active" : ""}`,
2698
+ className: `sia-selection-panel__option${keyboardActive && active === option.value ? " is-active" : ""}`,
2699
+ "data-deselected-hover": deselectedHover === option.value || void 0,
2700
+ onPointerLeave: () => {
2701
+ if (deselectedHover === option.value) setDeselectedHover(void 0);
2702
+ },
2679
2703
  onClick: (event) => {
2680
2704
  if (!event.target.closest(".sia-checkbox")) toggle(option);
2681
2705
  },
@@ -3127,7 +3151,8 @@ function defaultFilterOption(query, option) {
3127
3151
  var Select = (0, import_react16.forwardRef)(function Select2({
3128
3152
  options,
3129
3153
  mode = "single",
3130
- popupMode = "dropdown",
3154
+ popupMode: popupModeProp,
3155
+ modalThreshold = 15,
3131
3156
  modalConfig,
3132
3157
  value,
3133
3158
  defaultValue,
@@ -3136,7 +3161,7 @@ var Select = (0, import_react16.forwardRef)(function Select2({
3136
3161
  placeholderMode,
3137
3162
  size: sizeProp,
3138
3163
  status = "default",
3139
- allowClear = false,
3164
+ allowClear = true,
3140
3165
  loading = false,
3141
3166
  showSearch = false,
3142
3167
  showValue = false,
@@ -3169,6 +3194,9 @@ var Select = (0, import_react16.forwardRef)(function Select2({
3169
3194
  const searchRef = (0, import_react16.useRef)(null);
3170
3195
  const listRef = (0, import_react16.useRef)(null);
3171
3196
  const [open, setOpen] = (0, import_react16.useState)(false);
3197
+ const automaticMode = popupModeProp ?? (options.length > modalThreshold ? "modal" : "dropdown");
3198
+ const [openedMode, setOpenedMode] = (0, import_react16.useState)(automaticMode);
3199
+ const popupMode = open ? openedMode : automaticMode;
3172
3200
  const [modalValues, setModalValues] = (0, import_react16.useState)([]);
3173
3201
  const [selectedOnly, setSelectedOnly] = (0, import_react16.useState)(false);
3174
3202
  const [query, setQuery] = (0, import_react16.useState)("");
@@ -3240,9 +3268,10 @@ var Select = (0, import_react16.forwardRef)(function Select2({
3240
3268
  }
3241
3269
  function openDropdown() {
3242
3270
  if (disabled || loading) return;
3271
+ setOpenedMode(automaticMode);
3243
3272
  const selectedIndex = filteredOptions.findIndex((option) => selectedValueSet.has(option.value) && !option.disabled);
3244
3273
  setActiveIndex(selectedIndex >= 0 ? selectedIndex : firstEnabledIndex());
3245
- if (popupMode === "modal") {
3274
+ if (automaticMode === "modal") {
3246
3275
  setModalValues([...selectedValues]);
3247
3276
  setSelectedOnly(false);
3248
3277
  }
@@ -1,4 +1,4 @@
1
- export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-4tEYkA5O.cjs';
1
+ export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-DDmYGDD4.cjs';
2
2
  import 'react';
3
- import './shared-DAYZvZVu.cjs';
4
- import './Select-Da9CLN0X.cjs';
3
+ import './shared-Bx4B28Wh.cjs';
4
+ import './Select-4hGJt3RJ.cjs';
@@ -1,4 +1,4 @@
1
- export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-D-ynrB5k.js';
1
+ export { S as SelectDateRange, i as SelectDateRangeProps, j as SelectDateRangeValue } from './select-date-range-CGRb3-W8.js';
2
2
  import 'react';
3
- import './shared-DAYZvZVu.js';
4
- import './Select-Cz3hzQl_.js';
3
+ import './shared-Bx4B28Wh.js';
4
+ import './Select-BNSE67xn.js';
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  SelectDateRange
3
- } from "./chunk-LO3BUBWU.js";
4
- import "./chunk-4HB6GC24.js";
5
- import "./chunk-SUMXP2SF.js";
3
+ } from "./chunk-VN6PIPP7.js";
4
+ import "./chunk-3TRRBMXY.js";
5
+ import "./chunk-KLI65JVD.js";
6
6
  import "./chunk-TZGUBGA4.js";
7
7
  import "./chunk-3VJ4CZDQ.js";
8
8
  export {
@@ -1,5 +1,8 @@
1
+ /** 表单控件统一使用的尺寸等级。 */
1
2
  type ControlSize = "small" | "medium" | "large";
3
+ /** Control的状态类型。 */
2
4
  type ControlStatus = "default" | "warning" | "error";
5
+ /** InputPlaceholder的模式类型。 */
3
6
  type InputPlaceholderMode = "default" | "floating";
4
7
 
5
8
  export type { ControlSize as C, InputPlaceholderMode as I, ControlStatus as a };
@@ -1,5 +1,8 @@
1
+ /** 表单控件统一使用的尺寸等级。 */
1
2
  type ControlSize = "small" | "medium" | "large";
3
+ /** Control的状态类型。 */
2
4
  type ControlStatus = "default" | "warning" | "error";
5
+ /** InputPlaceholder的模式类型。 */
3
6
  type InputPlaceholderMode = "default" | "floating";
4
7
 
5
8
  export type { ControlSize as C, InputPlaceholderMode as I, ControlStatus as a };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sia.soul/sia-react-ui",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "Sia Design components and tokens for React",
5
5
  "publishConfig": {
6
6
  "access": "public",