one-design-next 0.0.106 → 0.0.107

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.
@@ -1,4 +1,4 @@
1
- import type { DefaultOptionType } from 'rc-cascader';
1
+ import type { DefaultOptionType, ShowSearchType } from 'rc-cascader';
2
2
  import React from 'react';
3
3
  import { SHOW_CHILD, SHOW_PARENT } from './fork';
4
4
  import { type FieldNames } from './utils';
@@ -41,6 +41,22 @@ export interface BaseCascaderPanelProps {
41
41
  optionPopoverProps?: Record<string, unknown>;
42
42
  /** 跨层级选择(见 Cascader.crossLevelSelect) */
43
43
  crossLevelSelect?: boolean;
44
+ /**
45
+ * 搜索关键词。传入后默认启用路径扁平搜索(与 Cascader 搜索一致)。
46
+ * Panel 本身不渲染输入框,由外部 Input 受控传入。
47
+ */
48
+ searchValue?: string;
49
+ /**
50
+ * 搜索回调(受控文档完整性)。Panel 不内建输入时通常由外部 Input onChange 驱动 searchValue。
51
+ */
52
+ onSearch?: (value: string) => void;
53
+ /**
54
+ * 是否启用搜索 / 搜索配置。
55
+ * 默认:传入 searchValue 时自动启用(含默认 filter + 高亮 render)。
56
+ */
57
+ showSearch?: boolean | ShowSearchType;
58
+ /** 搜索路径分隔符,默认 `/` */
59
+ separator?: string;
44
60
  }
45
61
  export type CascaderPanelProps<V = (string | number)[] | null> = BaseCascaderPanelProps & {
46
62
  mode?: 'single' | 'multiple';
@@ -1,10 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
2
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- var _excluded = ["value", "defaultValue", "onChange", "mode", "checkable", "prefixCls", "expandIcon", "loadingIcon", "options", "style", "autoMaxWidth", "fieldNames", "optionPopoverProps", "crossLevelSelect", "changeOnSelect"];
5
+ var _excluded = ["value", "defaultValue", "onChange", "mode", "checkable", "prefixCls", "expandIcon", "loadingIcon", "options", "style", "autoMaxWidth", "fieldNames", "optionPopoverProps", "crossLevelSelect", "changeOnSelect", "searchValue", "onSearch", "showSearch", "separator"];
5
6
  import React from 'react';
6
7
  import Icon from "../icon";
7
8
  import RcCascader from "./fork";
9
+ import { getDefaultCascaderShowSearch } from "./search";
8
10
  import { calculateOptionsDepth, DEFAULT_FIELD_NAMES, generateCommonStyle, processOptions } from "./utils";
9
11
  function CascaderPanel(_ref) {
10
12
  var value = _ref.value,
@@ -29,6 +31,11 @@ function CascaderPanel(_ref) {
29
31
  _ref$crossLevelSelect = _ref.crossLevelSelect,
30
32
  crossLevelSelect = _ref$crossLevelSelect === void 0 ? false : _ref$crossLevelSelect,
31
33
  changeOnSelect = _ref.changeOnSelect,
34
+ searchValue = _ref.searchValue,
35
+ _onSearch = _ref.onSearch,
36
+ showSearch = _ref.showSearch,
37
+ _ref$separator = _ref.separator,
38
+ separator = _ref$separator === void 0 ? '/' : _ref$separator,
32
39
  restProps = _objectWithoutProperties(_ref, _excluded);
33
40
  // 默认 fieldNames.label 为 labelWithPopover,与 Cascader 一致
34
41
  var mergedFieldNames = React.useMemo(function () {
@@ -45,8 +52,8 @@ function CascaderPanel(_ref) {
45
52
  return calculateOptionsDepth(processedOptions, mergedFieldNames);
46
53
  }, [processedOptions, mergedFieldNames]);
47
54
 
48
- // 根据 mode 自动设置 checkable
49
- var isCheckable = checkable !== undefined ? checkable : mode === 'multiple';
55
+ // 根据 mode 自动设置 checkable(保留既有语义;实际 checkable 由下方渲染分支决定)
56
+ void (checkable !== undefined ? checkable : mode === 'multiple');
50
57
  var handleChange = function handleChange(rcValue, selectOptions) {
51
58
  // 如果 value 是 undefined,传递 null
52
59
  if (rcValue === undefined) {
@@ -90,11 +97,32 @@ function CascaderPanel(_ref) {
90
97
 
91
98
  // 转换 value 类型以兼容 rc-cascader
92
99
  var rcValue = value === null ? undefined : value;
93
- var rcDefaultValue = defaultValue === null ? undefined : value;
100
+ var rcDefaultValue = defaultValue === null ? undefined : defaultValue;
94
101
 
95
102
  // 生成公共样式
96
103
  var commonStyle = generateCommonStyle(depth, autoMaxWidth, style);
97
104
 
105
+ // 搜索:传入 searchValue 时默认启用;true 时补齐默认 filter/render
106
+ var mergedShowSearch = React.useMemo(function () {
107
+ var defaults = getDefaultCascaderShowSearch(separator);
108
+ if (showSearch === false) {
109
+ return false;
110
+ }
111
+ if (showSearch === true) {
112
+ return defaults;
113
+ }
114
+ if (showSearch && _typeof(showSearch) === 'object') {
115
+ return _objectSpread(_objectSpread({}, defaults), showSearch);
116
+ }
117
+ if (searchValue !== undefined) {
118
+ return defaults;
119
+ }
120
+ return false;
121
+ }, [showSearch, searchValue, separator]);
122
+
123
+ // onSearch 仅文档完整性;Panel 不内建输入
124
+ void _onSearch;
125
+
98
126
  // 提取共同的 props
99
127
  var commonProps = _objectSpread(_objectSpread({
100
128
  prefixCls: prefixCls,
@@ -105,7 +133,10 @@ function CascaderPanel(_ref) {
105
133
  style: commonStyle,
106
134
  fieldNames: mergedFieldNames,
107
135
  changeOnSelect: !!changeOnSelect || crossLevelSelect,
108
- checkStrictly: crossLevelSelect
136
+ checkStrictly: crossLevelSelect,
137
+ searchValue: searchValue,
138
+ showSearch: mergedShowSearch,
139
+ dropdownPrefixCls: prefixCls
109
140
  }, restProps), {}, {
110
141
  className: [restProps.className, crossLevelSelect && 'odn-cascader-panel-cross-level'].filter(Boolean).join(' ')
111
142
  });
@@ -4,6 +4,8 @@ import classNames from 'classnames';
4
4
  import CascaderContext from 'rc-cascader/es/context';
5
5
  import useMissingValues from 'rc-cascader/es/hooks/useMissingValues';
6
6
  import useOptions from 'rc-cascader/es/hooks/useOptions';
7
+ import useSearchConfig from 'rc-cascader/es/hooks/useSearchConfig';
8
+ import useSearchOptions from 'rc-cascader/es/hooks/useSearchOptions';
7
9
  import { fillFieldNames, toRawValues } from 'rc-cascader/es/utils/commonUtil';
8
10
  import { toPathOptions } from 'rc-cascader/es/utils/treeUtil';
9
11
  import { useEvent, useMergedState } from 'rc-util';
@@ -36,7 +38,10 @@ export default function Panel(props) {
36
38
  _ref$notFoundContent = _ref.notFoundContent,
37
39
  notFoundContent = _ref$notFoundContent === void 0 ? 'Not Found' : _ref$notFoundContent,
38
40
  disabled = _ref.disabled,
39
- checkStrictly = _ref.checkStrictly;
41
+ checkStrictly = _ref.checkStrictly,
42
+ searchValue = _ref.searchValue,
43
+ showSearch = _ref.showSearch,
44
+ dropdownPrefixCls = _ref.dropdownPrefixCls;
40
45
 
41
46
  // ======================== Multiple ========================
42
47
  var multiple = !!checkable;
@@ -64,6 +69,13 @@ export default function Panel(props) {
64
69
  getPathKeyEntities = _useOptions2[1],
65
70
  getValueByKeyPath = _useOptions2[2];
66
71
 
72
+ // =========================== Search ===========================
73
+ var mergedSearchValue = searchValue || '';
74
+ var _useSearchConfig = useSearchConfig(showSearch),
75
+ _useSearchConfig2 = _slicedToArray(_useSearchConfig, 2),
76
+ searchConfig = _useSearchConfig2[1];
77
+ var searchOptions = useSearchOptions(mergedSearchValue, mergedOptions, mergedFieldNames, dropdownPrefixCls || prefixCls, searchConfig, mergedChangeOnSelect || multiple);
78
+
67
79
  // ========================= Values =========================
68
80
  var getMissingValues = useMissingValues(mergedOptions, mergedFieldNames);
69
81
 
@@ -109,19 +121,19 @@ export default function Panel(props) {
109
121
  onSelect: onInternalSelect,
110
122
  checkable: checkable,
111
123
  checkStrictly: checkStrictly,
112
- searchOptions: [],
113
- dropdownPrefixCls: undefined,
124
+ searchOptions: searchOptions,
125
+ dropdownPrefixCls: dropdownPrefixCls || prefixCls,
114
126
  loadData: loadData,
115
127
  expandTrigger: expandTrigger,
116
128
  expandIcon: expandIcon,
117
129
  loadingIcon: loadingIcon,
118
130
  dropdownMenuColumnStyle: undefined
119
131
  };
120
- }, [mergedOptions, mergedFieldNames, checkedValues, halfCheckedValues, mergedChangeOnSelect, onInternalSelect, checkable, checkStrictly, loadData, expandTrigger, expandIcon, loadingIcon]);
132
+ }, [mergedOptions, mergedFieldNames, checkedValues, halfCheckedValues, mergedChangeOnSelect, onInternalSelect, checkable, checkStrictly, searchOptions, dropdownPrefixCls, prefixCls, loadData, expandTrigger, expandIcon, loadingIcon]);
121
133
 
122
134
  // ========================= Render =========================
123
135
  var panelPrefixCls = ''.concat(prefixCls, '-panel');
124
- var isEmpty = !mergedOptions.length;
136
+ var isEmpty = !(mergedSearchValue ? searchOptions : mergedOptions).length;
125
137
  return /*#__PURE__*/React.createElement(CascaderContext.Provider, {
126
138
  value: cascaderContext
127
139
  }, /*#__PURE__*/React.createElement('div', {
@@ -129,7 +141,7 @@ export default function Panel(props) {
129
141
  style: style
130
142
  }, isEmpty ? notFoundContent : /*#__PURE__*/React.createElement(RawOptionList, {
131
143
  prefixCls: prefixCls,
132
- searchValue: '',
144
+ searchValue: mergedSearchValue,
133
145
  multiple: multiple,
134
146
  toggleOpen: noop,
135
147
  open: true,
@@ -63,4 +63,5 @@ export interface CascaderComponent {
63
63
  Panel: typeof CascaderPanel;
64
64
  }
65
65
  declare const Cascader: CascaderComponent;
66
+ export { defaultCascaderSearchFilter, defaultCascaderSearchRender, getDefaultCascaderShowSearch, useCascaderSearchOptions, } from './search';
66
67
  export default Cascader;
@@ -1,5 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _typeof from "@babel/runtime/helpers/esm/typeof";
3
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
@@ -10,9 +9,9 @@ import React, { useEffect, useMemo, useRef, useState } from 'react';
10
9
  import Icon from "../icon";
11
10
  import "../select/style";
12
11
  import useIcons from "../select/useIcons";
13
- import { highlightKeyword } from "../select/utils";
14
12
  import RcCascader, { SHOW_CHILD, SHOW_PARENT } from "./fork";
15
13
  import CascaderPanel from "./Panel";
14
+ import { defaultCascaderSearchFilter, defaultCascaderSearchRender } from "./search";
16
15
  import SelectedSummary from "./SelectedSummary";
17
16
  import "./style";
18
17
  import { DEFAULT_FIELD_NAMES, processOptions } from "./utils";
@@ -230,22 +229,7 @@ function CascaderInner(_ref) {
230
229
  var rcValue = value === null ? undefined : value;
231
230
  var rcDefaultValue = defaultValue === null ? undefined : defaultValue;
232
231
  var defaultSearchRender = function defaultSearchRender(inputValue, path, prefixCls) {
233
- var optionList = [];
234
-
235
- // We do lower here to save perf
236
- var lower = inputValue.toLowerCase();
237
- path.forEach(function (node, index) {
238
- if (index !== 0) {
239
- optionList.push(" ".concat(separator, " "));
240
- }
241
- var label = node.labelForSearch;
242
- var type = _typeof(label);
243
- if (type === 'string' || type === 'number') {
244
- label = highlightKeyword(String(label), lower, prefixCls);
245
- }
246
- optionList.push(label);
247
- });
248
- return optionList;
232
+ return defaultCascaderSearchRender(inputValue, path, prefixCls, separator);
249
233
  };
250
234
  var mergedShowSearch = React.useMemo(function () {
251
235
  if (!showInnerSearch && !showSearch) {
@@ -256,9 +240,7 @@ function CascaderInner(_ref) {
256
240
  }
257
241
  var searchConfig = {
258
242
  filter: searchFilter || function (inputValue, path) {
259
- return path.some(function (option) {
260
- return option.labelForSearch.toLowerCase().indexOf(inputValue.toLowerCase()) > -1;
261
- });
243
+ return defaultCascaderSearchFilter(inputValue, path);
262
244
  },
263
245
  render: searchRender || defaultSearchRender,
264
246
  limit: searchLimit
@@ -391,4 +373,5 @@ var Cascader = CascaderInner;
391
373
 
392
374
  // 赋值 Panel 组件
393
375
  Cascader.Panel = CascaderPanel;
376
+ export { defaultCascaderSearchFilter, defaultCascaderSearchRender, getDefaultCascaderShowSearch, useCascaderSearchOptions } from "./search";
394
377
  export default Cascader;
@@ -0,0 +1,17 @@
1
+ import type { DefaultOptionType, ShowSearchType } from 'rc-cascader';
2
+ import useSearchOptions from 'rc-cascader/es/hooks/useSearchOptions';
3
+ import React from 'react';
4
+ export type CascaderSearchOption = DefaultOptionType & {
5
+ labelForSearch?: string;
6
+ };
7
+ /** 与 Cascader 主组件默认 filter 一致:优先 labelForSearch,回退 label */
8
+ export declare function defaultCascaderSearchFilter(inputValue: string, path: CascaderSearchOption[]): boolean;
9
+ /** 路径扁平搜索项高亮渲染(复用 select/utils highlightKeyword) */
10
+ export declare function defaultCascaderSearchRender(inputValue: string, path: CascaderSearchOption[], prefixCls: string, separator?: string): React.ReactNode;
11
+ /**
12
+ * 薄封装 rc-cascader useSearchOptions,便于外部复用。
13
+ * 参数顺序与 rc-cascader 一致。
14
+ */
15
+ export declare function useCascaderSearchOptions(search: string, options: DefaultOptionType[], fieldNames: Parameters<typeof useSearchOptions>[2], prefixCls: string, config: ShowSearchType, enableHalfPath?: boolean): DefaultOptionType[];
16
+ /** Panel / Cascader 共用的默认 showSearch 配置 */
17
+ export declare function getDefaultCascaderShowSearch(separator?: string, limit?: number | false): ShowSearchType;
@@ -0,0 +1,54 @@
1
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
2
+ import useSearchOptions from 'rc-cascader/es/hooks/useSearchOptions';
3
+ import { highlightKeyword } from "../select/utils";
4
+ /** 与 Cascader 主组件默认 filter 一致:优先 labelForSearch,回退 label */
5
+ export function defaultCascaderSearchFilter(inputValue, path) {
6
+ var lower = inputValue.toLowerCase();
7
+ return path.some(function (option) {
8
+ var _option$labelForSearc;
9
+ var raw = (_option$labelForSearc = option.labelForSearch) !== null && _option$labelForSearc !== void 0 ? _option$labelForSearc : typeof option.label === 'string' || typeof option.label === 'number' ? String(option.label) : '';
10
+ return String(raw).toLowerCase().indexOf(lower) > -1;
11
+ });
12
+ }
13
+
14
+ /** 路径扁平搜索项高亮渲染(复用 select/utils highlightKeyword) */
15
+ export function defaultCascaderSearchRender(inputValue, path, prefixCls) {
16
+ var separator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';
17
+ var optionList = [];
18
+ var lower = inputValue.toLowerCase();
19
+ path.forEach(function (node, index) {
20
+ if (index !== 0) {
21
+ optionList.push(" ".concat(separator, " "));
22
+ }
23
+ var label = node.labelForSearch;
24
+ var type = _typeof(label);
25
+ if (type === 'string' || type === 'number') {
26
+ label = highlightKeyword(String(label), lower, prefixCls);
27
+ }
28
+ optionList.push(label);
29
+ });
30
+ return optionList;
31
+ }
32
+
33
+ /**
34
+ * 薄封装 rc-cascader useSearchOptions,便于外部复用。
35
+ * 参数顺序与 rc-cascader 一致。
36
+ */
37
+ export function useCascaderSearchOptions(search, options, fieldNames, prefixCls, config, enableHalfPath) {
38
+ return useSearchOptions(search, options, fieldNames, prefixCls, config, enableHalfPath);
39
+ }
40
+
41
+ /** Panel / Cascader 共用的默认 showSearch 配置 */
42
+ export function getDefaultCascaderShowSearch() {
43
+ var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '/';
44
+ var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
45
+ return {
46
+ limit: limit,
47
+ filter: function filter(inputValue, path) {
48
+ return defaultCascaderSearchFilter(inputValue, path);
49
+ },
50
+ render: function render(inputValue, path, prefixCls) {
51
+ return defaultCascaderSearchRender(inputValue, path, prefixCls, separator);
52
+ }
53
+ };
54
+ }
@@ -554,11 +554,19 @@ html {
554
554
  align-items: stretch;
555
555
  }
556
556
 
557
+ /* Panel 列与下拉一致:固定高度 + 内部滚动(含搜索扁平列表) */
557
558
  .odn-cascader-panel .odn-cascader-menu {
558
- height: auto;
559
+ height: var(--odn-cascader-dropdown-height);
560
+ overflow: auto;
559
561
  }
560
562
 
561
563
  .odn-cascader-panel-empty {
564
+ display: flex;
565
+ box-sizing: border-box;
566
+ width: 100%;
567
+ min-height: var(--odn-cascader-dropdown-height);
568
+ align-items: center;
569
+ justify-content: center;
562
570
  padding: var(--odn-padding-xxs);
563
571
  }
564
572
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import './style';
3
- export type EmptyType = 'search' | 'data' | 'crowd' | 'address' | 'message' | 'image' | 'image-error';
3
+ export type EmptyType = 'search' | 'data' | 'crowd' | 'address' | 'message' | 'image' | 'image-error' | 'ruyi';
4
4
  export type EmptySize = 'large' | 'medium' | 'small';
5
5
  export interface EmptyProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
6
6
  /** 空状态类型 */
@@ -2341,6 +2341,138 @@ var EmptySvgImageError = function EmptySvgImageError() {
2341
2341
  stopColor: "#D2D4D9"
2342
2342
  }))));
2343
2343
  };
2344
+
2345
+ /** 如翼空态(摊手):来自 dmp-web `src/assets/img/nodata-ruyi.svg` */
2346
+ var EmptySvgRuyi = function EmptySvgRuyi() {
2347
+ return /*#__PURE__*/React.createElement("svg", {
2348
+ width: "100",
2349
+ height: "100",
2350
+ viewBox: "0 0 100 100",
2351
+ fill: "none",
2352
+ xmlns: "http://www.w3.org/2000/svg"
2353
+ }, /*#__PURE__*/React.createElement("rect", {
2354
+ x: "10",
2355
+ y: "63",
2356
+ width: "80",
2357
+ height: "24",
2358
+ rx: "12",
2359
+ fill: "#D4E1FC",
2360
+ stroke: "#D4E1FC",
2361
+ strokeWidth: "2",
2362
+ strokeLinecap: "round",
2363
+ strokeLinejoin: "round"
2364
+ }), /*#__PURE__*/React.createElement("mask", {
2365
+ id: "odnEmptyRuyiMask",
2366
+ style: {
2367
+ maskType: 'alpha'
2368
+ },
2369
+ maskUnits: "userSpaceOnUse",
2370
+ x: "0",
2371
+ y: "7",
2372
+ width: "100",
2373
+ height: "79"
2374
+ }, /*#__PURE__*/React.createElement("rect", {
2375
+ y: "7",
2376
+ width: "100",
2377
+ height: "79",
2378
+ fill: "#D9D9D9"
2379
+ })), /*#__PURE__*/React.createElement("g", {
2380
+ mask: "url(#odnEmptyRuyiMask)"
2381
+ }, /*#__PURE__*/React.createElement("path", {
2382
+ d: "M3.43527 42.8228L1.11523 39.1602",
2383
+ stroke: "#CFDCFB",
2384
+ strokeWidth: "2",
2385
+ strokeLinecap: "round",
2386
+ strokeLinejoin: "round"
2387
+ }), /*#__PURE__*/React.createElement("path", {
2388
+ d: "M7.33395 42.1765L6.81019 37.677",
2389
+ stroke: "#CFDCFB",
2390
+ strokeWidth: "2",
2391
+ strokeLinecap: "round",
2392
+ strokeLinejoin: "round"
2393
+ }), /*#__PURE__*/React.createElement("path", {
2394
+ d: "M11.5306 42.4242L11.9105 38.4582",
2395
+ stroke: "#CFDCFB",
2396
+ strokeWidth: "2",
2397
+ strokeLinecap: "round",
2398
+ strokeLinejoin: "round"
2399
+ }), /*#__PURE__*/React.createElement("g", {
2400
+ clipPath: "url(#odnEmptyRuyiClip)"
2401
+ }, /*#__PURE__*/React.createElement("path", {
2402
+ d: "M50.0573 106.13C34.4463 106.13 21.7959 93.5983 21.7959 78.1343V44.8567C21.7959 29.4014 34.4551 16.8701 50.0573 16.8701C65.6596 16.8701 78.3188 29.4014 78.3188 44.8654V78.143C78.3188 93.607 65.6683 106.138 50.0573 106.138V106.13Z",
2403
+ fill: "white",
2404
+ stroke: "#CFDCFB",
2405
+ strokeWidth: "2",
2406
+ strokeLinecap: "round",
2407
+ strokeLinejoin: "round"
2408
+ }), /*#__PURE__*/React.createElement("path", {
2409
+ d: "M78.1956 74.5666C80.5061 66.2646 85.8386 56.2656 96.6091 52.8369C99.798 51.8275 100.097 48.6946 96.6706 47.8592C91.5577 46.6148 81.8151 47.572 74.6641 53.916",
2410
+ fill: "white"
2411
+ }), /*#__PURE__*/React.createElement("path", {
2412
+ d: "M78.1956 74.5666C80.5061 66.2646 85.8386 56.2656 96.6091 52.8369C99.798 51.8275 100.097 48.6946 96.6706 47.8592C91.5577 46.6148 81.8151 47.572 74.6641 53.916",
2413
+ stroke: "#CFDCFB",
2414
+ strokeWidth: "2",
2415
+ strokeLinecap: "round",
2416
+ strokeLinejoin: "round"
2417
+ }), /*#__PURE__*/React.createElement("path", {
2418
+ d: "M21.8046 74.5666C19.4941 66.2646 14.1616 56.2656 3.39119 52.8369C0.202221 51.8275 -0.0964702 48.6946 3.32969 47.8592C8.44258 46.6148 18.1852 47.572 25.3362 53.916",
2419
+ fill: "white"
2420
+ }), /*#__PURE__*/React.createElement("path", {
2421
+ d: "M21.8046 74.5666C19.4941 66.2646 14.1616 56.2656 3.39119 52.8369C0.202221 51.8275 -0.0964703 48.6946 3.32969 47.8592C8.44258 46.6148 18.1852 47.572 25.3362 53.916",
2422
+ stroke: "#CFDCFB",
2423
+ strokeWidth: "2",
2424
+ strokeLinecap: "round",
2425
+ strokeLinejoin: "round"
2426
+ }), /*#__PURE__*/React.createElement("path", {
2427
+ opacity: "0.6",
2428
+ d: "M33.5766 45.335C36.0122 45.335 37.9867 44.4155 37.9867 43.2813C37.9867 42.147 36.0122 41.2275 33.5766 41.2275C31.141 41.2275 29.1665 42.147 29.1665 43.2813C29.1665 44.4155 31.141 45.335 33.5766 45.335Z",
2429
+ fill: "#D4E1FC"
2430
+ }), /*#__PURE__*/React.createElement("path", {
2431
+ opacity: "0.6",
2432
+ d: "M66.538 45.335C68.9736 45.335 70.9481 44.4155 70.9481 43.2813C70.9481 42.147 68.9736 41.2275 66.538 41.2275C64.1024 41.2275 62.1279 42.147 62.1279 43.2813C62.1279 44.4155 64.1024 45.335 66.538 45.335Z",
2433
+ fill: "#D4E1FC"
2434
+ }), /*#__PURE__*/React.createElement("path", {
2435
+ d: "M64.2536 48.6338C64.2536 50.5918 57.902 51.1227 50.057 51.1227C42.2119 51.1227 35.8604 50.5918 35.8604 48.6338C35.8604 46.6758 42.2119 44.0303 50.057 44.0303C57.902 44.0303 64.2536 46.6758 64.2536 48.6338Z",
2436
+ fill: "#D4E1FC"
2437
+ }), /*#__PURE__*/React.createElement("path", {
2438
+ d: "M75.2348 59.5029L79.5658 62.4008C79.5658 62.4008 79.5131 67.2654 78.8894 68.9275C78.1602 70.8768 77.475 73.1133 77.3783 75.6631C77.3081 77.6037 69.7793 72.9654 69.7793 72.9654L72.8013 62.6445L75.2348 59.5116V59.5029Z",
2439
+ fill: "white"
2440
+ }), /*#__PURE__*/React.createElement("path", {
2441
+ d: "M24.7739 59.5029L20.4429 62.4008C20.4429 62.4008 20.4956 67.2654 21.1193 68.9275C21.8485 70.8768 22.5337 73.1133 22.6303 75.6631C22.7006 77.6037 30.2294 72.9654 30.2294 72.9654L27.2073 62.6445L24.7739 59.5116V59.5029Z",
2442
+ fill: "white"
2443
+ }), /*#__PURE__*/React.createElement("path", {
2444
+ d: "M57.2169 34.04C56.6722 34.5796 56.2944 35.5629 56.2944 36.7029C56.2944 38.4173 57.1202 39.801 58.1305 39.801C59.1408 39.801 59.9666 38.4173 59.9666 36.7029C59.9666 36.0242 59.8348 35.3976 59.6064 34.8842C58.6137 34.7449 57.8142 34.4665 57.1993 34.04H57.2169Z",
2445
+ fill: "#8AAAF9"
2446
+ }), /*#__PURE__*/React.createElement("path", {
2447
+ d: "M42.906 34.04C43.4506 34.5796 43.8284 35.5629 43.8284 36.7029C43.8284 38.4173 43.0026 39.801 41.9923 39.801C40.982 39.801 40.1562 38.4173 40.1562 36.7029C40.1562 36.0242 40.288 35.3976 40.5164 34.8842C41.5004 34.7449 42.3174 34.4752 42.9235 34.04H42.906Z",
2448
+ fill: "#8AAAF9"
2449
+ }), /*#__PURE__*/React.createElement("path", {
2450
+ d: "M96.43 42.7994L98.75 39.1367",
2451
+ stroke: "#CFDCFB",
2452
+ strokeWidth: "2",
2453
+ strokeLinecap: "round",
2454
+ strokeLinejoin: "round"
2455
+ }), /*#__PURE__*/React.createElement("path", {
2456
+ d: "M92.5313 42.1511L93.055 37.6516",
2457
+ stroke: "#CFDCFB",
2458
+ strokeWidth: "2",
2459
+ strokeLinecap: "round",
2460
+ strokeLinejoin: "round"
2461
+ }), /*#__PURE__*/React.createElement("path", {
2462
+ d: "M88.3347 42.4007L87.9547 38.4347",
2463
+ stroke: "#CFDCFB",
2464
+ strokeWidth: "2",
2465
+ strokeLinecap: "round",
2466
+ strokeLinejoin: "round"
2467
+ }))), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
2468
+ id: "odnEmptyRuyiClip"
2469
+ }, /*#__PURE__*/React.createElement("rect", {
2470
+ width: "100",
2471
+ height: "91",
2472
+ fill: "white",
2473
+ transform: "translate(0 16)"
2474
+ }))));
2475
+ };
2344
2476
  var svgMap = {
2345
2477
  search: EmptySvgSearch,
2346
2478
  data: EmptySvgData,
@@ -2348,7 +2480,8 @@ var svgMap = {
2348
2480
  address: EmptySvgAddress,
2349
2481
  message: EmptySvgMessage,
2350
2482
  image: EmptySvgImage,
2351
- 'image-error': EmptySvgImageError
2483
+ 'image-error': EmptySvgImageError,
2484
+ ruyi: EmptySvgRuyi
2352
2485
  };
2353
2486
 
2354
2487
  // ─── 主组件 ──────────────────────────────────────────────────────────────────
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export { default as Avatar, type AvatarProps } from './avatar';
13
13
  export { default as Button, type ButtonProps } from './button';
14
14
  export { default as Calendar, type CalendarProps } from './calendar';
15
15
  export { default as Card, type CardElevation, type CardHeaderProps, type CardHeaderSize, type CardProps, } from './card';
16
- export { default as Cascader, type CascaderProps } from './cascader';
16
+ export { default as Cascader, defaultCascaderSearchFilter, defaultCascaderSearchRender, getDefaultCascaderShowSearch, useCascaderSearchOptions, type CascaderProps, } from './cascader';
17
17
  export { default as Chart, type ChartBarProps, type ChartBulletItem, type ChartBulletProps, type ChartButterflyProps, type ChartDualLineChange, type ChartDualLineDetailContext, type ChartDualLineMetric, type ChartDualLinePoint, type ChartDualLineProps, type ChartDualLineSegment, type ChartDualLineSnapshot, type ChartLineProps, type ChartNamedPoint, type ChartPieProps, type ChartProps, type ChartQuadrantItem, type ChartQuadrantProps, type ChartQuadrantVariant, type ChartRadarProps, type ChartRadarSeries, type ChartRippleItem, type ChartRippleProps, type ChartRippleSeed, type ChartSankeyHeightMode, type ChartSankeyProps, type ChartSankeyStatus, type ChartSeries, type ChartSymmetricBarProps, type ChartSymmetricItem, type ChartTreemapItem, type ChartTreemapProps, type ChartWord, type ChartWordCloudProps, } from './chart';
18
18
  export { default as Checkbox, type CheckboxGroupProps, type CheckboxProps, } from './checkbox';
19
19
  export { default as Collapse, type CollapseItem, type CollapseProps, } from './collapse';
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ export { default as Avatar } from "./avatar";
17
17
  export { default as Button } from "./button";
18
18
  export { default as Calendar } from "./calendar";
19
19
  export { default as Card } from "./card";
20
- export { default as Cascader } from "./cascader";
20
+ export { default as Cascader, defaultCascaderSearchFilter, defaultCascaderSearchRender, getDefaultCascaderShowSearch, useCascaderSearchOptions } from "./cascader";
21
21
  export { default as Chart } from "./chart";
22
22
  export { default as Checkbox } from "./checkbox";
23
23
  export { default as Collapse } from "./collapse";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one-design-next",
3
- "version": "0.0.106",
3
+ "version": "0.0.107",
4
4
  "description": "One Design Next from TAD@tencent.com",
5
5
  "license": "MIT",
6
6
  "type": "module",