rsuite 5.55.1 → 5.57.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.
Files changed (223) hide show
  1. package/AutoComplete/styles/index.css +3 -3
  2. package/CHANGELOG.md +33 -0
  3. package/CascadeTree/package.json +7 -0
  4. package/CascadeTree/styles/index.css +273 -0
  5. package/CascadeTree/styles/index.less +77 -0
  6. package/CascadeTree/styles/search.less +45 -0
  7. package/Cascader/styles/index.css +190 -195
  8. package/Cascader/styles/index.less +1 -122
  9. package/CheckPicker/styles/index.css +142 -40
  10. package/CheckPicker/styles/index.less +1 -1
  11. package/CheckTree/styles/index.css +143 -41
  12. package/CheckTreePicker/styles/index.css +143 -41
  13. package/CheckTreePicker/styles/index.less +2 -2
  14. package/Checkbox/styles/index.css +159 -36
  15. package/Checkbox/styles/index.less +32 -13
  16. package/DatePicker/styles/index.css +3 -3
  17. package/DateRangePicker/styles/index.css +3 -3
  18. package/InputPicker/styles/index.css +3 -3
  19. package/MultiCascadeTree/package.json +7 -0
  20. package/MultiCascadeTree/styles/index.css +3701 -0
  21. package/MultiCascadeTree/styles/index.less +37 -0
  22. package/MultiCascader/styles/index.css +213 -108
  23. package/MultiCascader/styles/index.less +11 -31
  24. package/Pagination/styles/index.css +3 -3
  25. package/Radio/styles/index.css +133 -19
  26. package/Radio/styles/index.less +28 -12
  27. package/RadioGroup/styles/index.css +1 -1
  28. package/RadioGroup/styles/index.less +1 -1
  29. package/SelectPicker/styles/index.css +3 -3
  30. package/TagGroup/styles/index.css +1 -1
  31. package/TagGroup/styles/index.less +1 -1
  32. package/TagInput/styles/index.css +141 -39
  33. package/TagPicker/styles/index.css +141 -39
  34. package/cjs/@types/common.d.ts +12 -14
  35. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  36. package/cjs/CascadeTree/CascadeTree.js +174 -0
  37. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  38. package/cjs/CascadeTree/SearchView.js +106 -0
  39. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  40. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  41. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  42. package/cjs/CascadeTree/hooks/index.js +12 -0
  43. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  44. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  45. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  46. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  47. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  48. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  49. package/cjs/CascadeTree/index.d.ts +4 -0
  50. package/cjs/CascadeTree/index.js +9 -0
  51. package/cjs/CascadeTree/types.d.ts +66 -0
  52. package/cjs/CascadeTree/types.js +2 -0
  53. package/cjs/CascadeTree/utils.d.ts +32 -0
  54. package/cjs/CascadeTree/utils.js +66 -0
  55. package/cjs/Cascader/Cascader.d.ts +57 -26
  56. package/cjs/Cascader/Cascader.js +180 -247
  57. package/cjs/Cascader/useActive.d.ts +15 -0
  58. package/cjs/Cascader/useActive.js +43 -0
  59. package/cjs/Checkbox/Checkbox.d.ts +67 -25
  60. package/cjs/Checkbox/Checkbox.js +36 -26
  61. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  62. package/cjs/InputPicker/InputPicker.js +2 -2
  63. package/cjs/InputPicker/InputPickerContext.d.ts +1 -1
  64. package/cjs/Loader/Loader.js +5 -4
  65. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  66. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  67. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  68. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  69. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  70. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +22 -21
  71. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  72. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  73. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  74. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  75. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  76. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  77. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  78. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  79. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  80. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  81. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  82. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  83. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  84. package/cjs/MultiCascadeTree/index.js +9 -0
  85. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  86. package/cjs/MultiCascadeTree/types.js +2 -0
  87. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  88. package/cjs/MultiCascadeTree/utils.js +140 -0
  89. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  90. package/cjs/MultiCascader/MultiCascader.js +175 -287
  91. package/cjs/Radio/Radio.d.ts +42 -16
  92. package/cjs/Radio/Radio.js +42 -37
  93. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  94. package/cjs/RadioGroup/RadioGroup.js +3 -3
  95. package/cjs/TagPicker/index.js +1 -1
  96. package/cjs/Tree/Tree.d.ts +4 -4
  97. package/cjs/index.d.ts +6 -1
  98. package/cjs/index.js +8 -3
  99. package/cjs/internals/Picker/ListCheckItem.d.ts +2 -11
  100. package/cjs/internals/Picker/ListCheckItem.js +8 -6
  101. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  102. package/cjs/toaster/ToastContainer.d.ts +9 -2
  103. package/cjs/toaster/index.d.ts +0 -1
  104. package/cjs/toaster/index.js +1 -3
  105. package/cjs/useToaster/index.d.ts +2 -0
  106. package/cjs/useToaster/index.js +9 -0
  107. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  108. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  109. package/cjs/utils/index.d.ts +1 -0
  110. package/cjs/utils/index.js +5 -2
  111. package/dist/rsuite-no-reset-rtl.css +322 -124
  112. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  113. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  114. package/dist/rsuite-no-reset.css +322 -124
  115. package/dist/rsuite-no-reset.min.css +1 -1
  116. package/dist/rsuite-no-reset.min.css.map +1 -1
  117. package/dist/rsuite-rtl.css +322 -124
  118. package/dist/rsuite-rtl.min.css +1 -1
  119. package/dist/rsuite-rtl.min.css.map +1 -1
  120. package/dist/rsuite.css +322 -124
  121. package/dist/rsuite.js +248 -50
  122. package/dist/rsuite.js.map +1 -1
  123. package/dist/rsuite.min.css +1 -1
  124. package/dist/rsuite.min.css.map +1 -1
  125. package/dist/rsuite.min.js +1 -1
  126. package/dist/rsuite.min.js.map +1 -1
  127. package/esm/@types/common.d.ts +12 -14
  128. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  129. package/esm/CascadeTree/CascadeTree.js +167 -0
  130. package/esm/CascadeTree/SearchView.d.ts +17 -0
  131. package/esm/CascadeTree/SearchView.js +100 -0
  132. package/esm/CascadeTree/TreeView.d.ts +20 -0
  133. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  134. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  135. package/esm/CascadeTree/hooks/index.js +4 -0
  136. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  137. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  138. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  139. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  140. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  141. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  142. package/esm/CascadeTree/index.d.ts +4 -0
  143. package/esm/CascadeTree/index.js +3 -0
  144. package/esm/CascadeTree/types.d.ts +66 -0
  145. package/esm/CascadeTree/types.js +1 -0
  146. package/esm/CascadeTree/utils.d.ts +32 -0
  147. package/esm/CascadeTree/utils.js +61 -0
  148. package/esm/Cascader/Cascader.d.ts +57 -26
  149. package/esm/Cascader/Cascader.js +167 -233
  150. package/esm/Cascader/useActive.d.ts +15 -0
  151. package/esm/Cascader/useActive.js +37 -0
  152. package/esm/Checkbox/Checkbox.d.ts +67 -25
  153. package/esm/Checkbox/Checkbox.js +38 -28
  154. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  155. package/esm/InputPicker/InputPicker.js +2 -2
  156. package/esm/InputPicker/InputPickerContext.d.ts +1 -1
  157. package/esm/Loader/Loader.js +6 -5
  158. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  159. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  160. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  161. package/esm/MultiCascadeTree/SearchView.js +111 -0
  162. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  163. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +22 -21
  164. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  165. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  166. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  167. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  168. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  169. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  170. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  171. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  172. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  173. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  174. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  175. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  176. package/esm/MultiCascadeTree/index.d.ts +4 -0
  177. package/esm/MultiCascadeTree/index.js +3 -0
  178. package/esm/MultiCascadeTree/types.d.ts +26 -0
  179. package/esm/MultiCascadeTree/types.js +1 -0
  180. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  181. package/esm/MultiCascadeTree/utils.js +130 -0
  182. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  183. package/esm/MultiCascader/MultiCascader.js +168 -279
  184. package/esm/Radio/Radio.d.ts +42 -16
  185. package/esm/Radio/Radio.js +43 -38
  186. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  187. package/esm/RadioGroup/RadioGroup.js +5 -5
  188. package/esm/TagPicker/index.js +1 -1
  189. package/esm/Tree/Tree.d.ts +4 -4
  190. package/esm/index.d.ts +6 -1
  191. package/esm/index.js +5 -1
  192. package/esm/internals/Picker/ListCheckItem.d.ts +2 -11
  193. package/esm/internals/Picker/ListCheckItem.js +8 -6
  194. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  195. package/esm/toaster/ToastContainer.d.ts +9 -2
  196. package/esm/toaster/index.d.ts +0 -1
  197. package/esm/toaster/index.js +0 -1
  198. package/esm/useToaster/index.d.ts +2 -0
  199. package/esm/useToaster/index.js +3 -0
  200. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  201. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  202. package/esm/utils/index.d.ts +1 -0
  203. package/esm/utils/index.js +2 -1
  204. package/internals/Picker/styles/index.less +1 -1
  205. package/package.json +1 -1
  206. package/styles/index.less +2 -0
  207. package/useToaster/package.json +7 -0
  208. package/useToaster/styles/index.css +239 -0
  209. package/useToaster/styles/index.less +1 -0
  210. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  211. package/cjs/Cascader/DropdownMenu.js +0 -175
  212. package/cjs/Cascader/TreeView.d.ts +0 -24
  213. package/cjs/Cascader/utils.js +0 -79
  214. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  215. package/cjs/MultiCascader/utils.d.ts +0 -71
  216. package/cjs/MultiCascader/utils.js +0 -382
  217. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  218. package/esm/Cascader/DropdownMenu.js +0 -168
  219. package/esm/Cascader/TreeView.d.ts +0 -24
  220. package/esm/Cascader/utils.js +0 -74
  221. package/esm/MultiCascader/TreeView.d.ts +0 -25
  222. package/esm/MultiCascader/utils.d.ts +0 -71
  223. package/esm/MultiCascader/utils.js +0 -369
@@ -406,17 +406,16 @@
406
406
  position: relative;
407
407
  }
408
408
  /* rtl:begin:ignore */
409
- .rs-checkbox-wrapper::before,
410
- .rs-checkbox-wrapper::after,
411
- .rs-checkbox-wrapper .rs-checkbox-inner::before,
412
- .rs-checkbox-wrapper .rs-checkbox-inner::after {
409
+ .rs-checkbox-control::before,
410
+ .rs-checkbox-control .rs-checkbox-inner::before,
411
+ .rs-checkbox-control .rs-checkbox-inner::after {
413
412
  content: '';
414
413
  position: absolute;
415
414
  left: 0;
416
415
  top: 0;
417
416
  display: block;
418
417
  }
419
- .rs-checkbox-wrapper .rs-checkbox-inner::after {
418
+ .rs-checkbox-control .rs-checkbox-inner::after {
420
419
  opacity: 0;
421
420
  -webkit-transform: rotate(45deg) scale(0);
422
421
  transform: rotate(45deg) scale(0);
@@ -425,12 +424,12 @@
425
424
  transition: opacity 0.2s ease-in, transform 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46);
426
425
  transition: opacity 0.2s ease-in, transform 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46), -webkit-transform 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46);
427
426
  }
428
- .rs-theme-high-contrast .rs-checkbox-wrapper .rs-checkbox-inner::after {
427
+ .rs-theme-high-contrast .rs-checkbox-control .rs-checkbox-inner::after {
429
428
  -webkit-transition: none;
430
429
  transition: none;
431
430
  }
432
- .rs-checkbox-checked .rs-checkbox-wrapper .rs-checkbox-inner::after,
433
- .rs-checkbox-indeterminate .rs-checkbox-wrapper .rs-checkbox-inner::after {
431
+ .rs-checkbox-checked .rs-checkbox-control .rs-checkbox-inner::after,
432
+ .rs-checkbox-indeterminate .rs-checkbox-control .rs-checkbox-inner::after {
434
433
  border: solid #fff;
435
434
  border: solid var(--rs-checkbox-icon);
436
435
  width: 6px;
@@ -439,12 +438,12 @@
439
438
  margin-left: 5px;
440
439
  opacity: 1;
441
440
  }
442
- .rs-checkbox-checked .rs-checkbox-wrapper .rs-checkbox-inner::after {
441
+ .rs-checkbox-checked .rs-checkbox-control .rs-checkbox-inner::after {
443
442
  border-width: 0 2px 2px 0;
444
443
  -webkit-transform: rotate(45deg) scale(1);
445
444
  transform: rotate(45deg) scale(1);
446
445
  }
447
- .rs-checkbox-indeterminate .rs-checkbox-wrapper .rs-checkbox-inner::after {
446
+ .rs-checkbox-indeterminate .rs-checkbox-control .rs-checkbox-inner::after {
448
447
  border-width: 0 0 2px;
449
448
  -webkit-transform: rotate(0deg) scale(1);
450
449
  transform: rotate(0deg) scale(1);
@@ -454,7 +453,7 @@
454
453
  }
455
454
  /* rtl:end:ignore */
456
455
  /* stylelint-disable-next-line */
457
- .rs-checkbox-wrapper {
456
+ .rs-checkbox-control {
458
457
  position: absolute;
459
458
  width: 16px;
460
459
  height: 16px;
@@ -462,18 +461,22 @@
462
461
  left: 10px;
463
462
  top: 10px;
464
463
  }
465
- .rs-checkbox-wrapper [type='checkbox'] {
466
- width: 0;
467
- height: 0;
464
+ .rs-checkbox-control [type='checkbox'] {
465
+ position: absolute;
468
466
  opacity: 0;
467
+ z-index: 1;
468
+ top: -10px;
469
+ right: -10px;
470
+ bottom: -10px;
471
+ left: -10px;
469
472
  }
470
- .rs-checkbox-wrapper::before,
471
- .rs-checkbox-wrapper .rs-checkbox-inner::before,
472
- .rs-checkbox-wrapper .rs-checkbox-inner::after {
473
+ .rs-checkbox-control::before,
474
+ .rs-checkbox-control .rs-checkbox-inner::before,
475
+ .rs-checkbox-control .rs-checkbox-inner::after {
473
476
  width: 16px;
474
477
  height: 16px;
475
478
  }
476
- .rs-checkbox-wrapper::before {
479
+ .rs-checkbox-control::before {
477
480
  border: 1px solid #3498ff;
478
481
  border: 1px solid var(--rs-checkbox-checked-bg);
479
482
  background-color: transparent;
@@ -487,23 +490,17 @@
487
490
  transition: transform 0.2s linear, opacity 0.2s linear;
488
491
  transition: transform 0.2s linear, opacity 0.2s linear, -webkit-transform 0.2s linear;
489
492
  }
490
- .rs-theme-high-contrast .rs-checkbox-wrapper::before {
493
+ .rs-theme-high-contrast .rs-checkbox-control::before {
491
494
  -webkit-transition: none;
492
495
  transition: none;
493
496
  }
494
- .rs-checkbox-checked .rs-checkbox-wrapper::before {
497
+ .rs-checkbox-checked .rs-checkbox-control::before {
495
498
  -webkit-transform: scale(1.5);
496
499
  transform: scale(1.5);
497
500
  opacity: 0;
498
501
  visibility: visible;
499
502
  }
500
- .rs-checkbox-wrapper::after {
501
- top: -10px;
502
- right: -10px;
503
- bottom: -10px;
504
- left: -10px;
505
- }
506
- .rs-checkbox-wrapper .rs-checkbox-inner::before {
503
+ .rs-checkbox-control .rs-checkbox-inner::before {
507
504
  border: 1px solid #d9d9d9;
508
505
  border: 1px solid var(--rs-checkbox-border);
509
506
  background-color: transparent;
@@ -513,35 +510,140 @@
513
510
  transition: background 0.2s linear, border 0.2s linear, box-shadow 0.2s linear;
514
511
  transition: background 0.2s linear, border 0.2s linear, box-shadow 0.2s linear, -webkit-box-shadow 0.2s linear;
515
512
  }
516
- .rs-theme-high-contrast .rs-checkbox-wrapper .rs-checkbox-inner::before {
513
+ .rs-theme-high-contrast .rs-checkbox-control .rs-checkbox-inner::before {
517
514
  -webkit-transition: none;
518
515
  transition: none;
519
516
  }
520
- label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
517
+ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
521
518
  border-color: #3498ff;
522
519
  border-color: var(--rs-checkbox-checked-bg);
523
520
  }
524
- .rs-checkbox-disabled:not(.rs-checkbox-checked):not(.rs-checkbox-indeterminate) .rs-checkbox-wrapper .rs-checkbox-inner::before {
521
+ .rs-checkbox-disabled:not(.rs-checkbox-checked):not(.rs-checkbox-indeterminate) .rs-checkbox-control .rs-checkbox-inner::before {
525
522
  border-color: #f7f7fa;
526
523
  border-color: var(--rs-checkbox-disabled-bg);
527
524
  background-color: #f7f7fa;
528
525
  background-color: var(--rs-checkbox-disabled-bg);
529
526
  }
530
- .rs-checkbox-checked .rs-checkbox-wrapper .rs-checkbox-inner::before,
531
- .rs-checkbox-indeterminate .rs-checkbox-wrapper .rs-checkbox-inner::before {
527
+ .rs-checkbox-checked .rs-checkbox-control .rs-checkbox-inner::before,
528
+ .rs-checkbox-indeterminate .rs-checkbox-control .rs-checkbox-inner::before {
532
529
  border-color: #3498ff;
533
530
  border-color: var(--rs-checkbox-checked-bg);
534
531
  background-color: #3498ff;
535
532
  background-color: var(--rs-checkbox-checked-bg);
536
533
  }
537
- .rs-checkbox-disabled.rs-checkbox-checked .rs-checkbox-wrapper .rs-checkbox-inner::before,
538
- .rs-checkbox-disabled.rs-checkbox-indeterminate .rs-checkbox-wrapper .rs-checkbox-inner::before {
534
+ .rs-checkbox-disabled.rs-checkbox-checked .rs-checkbox-control .rs-checkbox-inner::before,
535
+ .rs-checkbox-disabled.rs-checkbox-indeterminate .rs-checkbox-control .rs-checkbox-inner::before {
539
536
  opacity: 0.3;
540
537
  }
541
- .rs-theme-high-contrast .rs-checkbox-disabled.rs-checkbox-checked .rs-checkbox-wrapper .rs-checkbox-inner::before,
542
- .rs-theme-high-contrast .rs-checkbox-disabled.rs-checkbox-indeterminate .rs-checkbox-wrapper .rs-checkbox-inner::before {
538
+ .rs-theme-high-contrast .rs-checkbox-disabled.rs-checkbox-checked .rs-checkbox-control .rs-checkbox-inner::before,
539
+ .rs-theme-high-contrast .rs-checkbox-disabled.rs-checkbox-indeterminate .rs-checkbox-control .rs-checkbox-inner::before {
543
540
  opacity: 0.5;
544
541
  }
542
+ .rs-checkbox-red .rs-checkbox-control::before {
543
+ border-color: #f44336;
544
+ border-color: var(--rs-red-500);
545
+ }
546
+ .rs-checkbox-red label:hover .rs-checkbox-inner::before {
547
+ border-color: #f44336;
548
+ border-color: var(--rs-red-500);
549
+ }
550
+ .rs-checkbox-red.rs-checkbox-checked .rs-checkbox-inner::before,
551
+ .rs-checkbox-red.rs-checkbox-indeterminate .rs-checkbox-inner::before {
552
+ border-color: #f44336;
553
+ border-color: var(--rs-red-500);
554
+ background-color: #f44336;
555
+ background-color: var(--rs-red-500);
556
+ }
557
+ .rs-checkbox-orange .rs-checkbox-control::before {
558
+ border-color: #fa8900;
559
+ border-color: var(--rs-orange-500);
560
+ }
561
+ .rs-checkbox-orange label:hover .rs-checkbox-inner::before {
562
+ border-color: #fa8900;
563
+ border-color: var(--rs-orange-500);
564
+ }
565
+ .rs-checkbox-orange.rs-checkbox-checked .rs-checkbox-inner::before,
566
+ .rs-checkbox-orange.rs-checkbox-indeterminate .rs-checkbox-inner::before {
567
+ border-color: #fa8900;
568
+ border-color: var(--rs-orange-500);
569
+ background-color: #fa8900;
570
+ background-color: var(--rs-orange-500);
571
+ }
572
+ .rs-checkbox-yellow .rs-checkbox-control::before {
573
+ border-color: #ffb300;
574
+ border-color: var(--rs-yellow-500);
575
+ }
576
+ .rs-checkbox-yellow label:hover .rs-checkbox-inner::before {
577
+ border-color: #ffb300;
578
+ border-color: var(--rs-yellow-500);
579
+ }
580
+ .rs-checkbox-yellow.rs-checkbox-checked .rs-checkbox-inner::before,
581
+ .rs-checkbox-yellow.rs-checkbox-indeterminate .rs-checkbox-inner::before {
582
+ border-color: #ffb300;
583
+ border-color: var(--rs-yellow-500);
584
+ background-color: #ffb300;
585
+ background-color: var(--rs-yellow-500);
586
+ }
587
+ .rs-checkbox-green .rs-checkbox-control::before {
588
+ border-color: #4caf50;
589
+ border-color: var(--rs-green-500);
590
+ }
591
+ .rs-checkbox-green label:hover .rs-checkbox-inner::before {
592
+ border-color: #4caf50;
593
+ border-color: var(--rs-green-500);
594
+ }
595
+ .rs-checkbox-green.rs-checkbox-checked .rs-checkbox-inner::before,
596
+ .rs-checkbox-green.rs-checkbox-indeterminate .rs-checkbox-inner::before {
597
+ border-color: #4caf50;
598
+ border-color: var(--rs-green-500);
599
+ background-color: #4caf50;
600
+ background-color: var(--rs-green-500);
601
+ }
602
+ .rs-checkbox-cyan .rs-checkbox-control::before {
603
+ border-color: #00bcd4;
604
+ border-color: var(--rs-cyan-500);
605
+ }
606
+ .rs-checkbox-cyan label:hover .rs-checkbox-inner::before {
607
+ border-color: #00bcd4;
608
+ border-color: var(--rs-cyan-500);
609
+ }
610
+ .rs-checkbox-cyan.rs-checkbox-checked .rs-checkbox-inner::before,
611
+ .rs-checkbox-cyan.rs-checkbox-indeterminate .rs-checkbox-inner::before {
612
+ border-color: #00bcd4;
613
+ border-color: var(--rs-cyan-500);
614
+ background-color: #00bcd4;
615
+ background-color: var(--rs-cyan-500);
616
+ }
617
+ .rs-checkbox-blue .rs-checkbox-control::before {
618
+ border-color: #2196f3;
619
+ border-color: var(--rs-blue-500);
620
+ }
621
+ .rs-checkbox-blue label:hover .rs-checkbox-inner::before {
622
+ border-color: #2196f3;
623
+ border-color: var(--rs-blue-500);
624
+ }
625
+ .rs-checkbox-blue.rs-checkbox-checked .rs-checkbox-inner::before,
626
+ .rs-checkbox-blue.rs-checkbox-indeterminate .rs-checkbox-inner::before {
627
+ border-color: #2196f3;
628
+ border-color: var(--rs-blue-500);
629
+ background-color: #2196f3;
630
+ background-color: var(--rs-blue-500);
631
+ }
632
+ .rs-checkbox-violet .rs-checkbox-control::before {
633
+ border-color: #673ab7;
634
+ border-color: var(--rs-violet-500);
635
+ }
636
+ .rs-checkbox-violet label:hover .rs-checkbox-inner::before {
637
+ border-color: #673ab7;
638
+ border-color: var(--rs-violet-500);
639
+ }
640
+ .rs-checkbox-violet.rs-checkbox-checked .rs-checkbox-inner::before,
641
+ .rs-checkbox-violet.rs-checkbox-indeterminate .rs-checkbox-inner::before {
642
+ border-color: #673ab7;
643
+ border-color: var(--rs-violet-500);
644
+ background-color: #673ab7;
645
+ background-color: var(--rs-violet-500);
646
+ }
545
647
  .rs-picker-subtle .picker-subtle-toggle {
546
648
  position: relative;
547
649
  z-index: 5;
@@ -3478,11 +3580,11 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
3478
3580
  .rs-picker-check-menu-group-children .rs-check-item .rs-checkbox-checker > label {
3479
3581
  padding-left: 52px;
3480
3582
  }
3481
- .rs-check-item .rs-checkbox-checker .rs-checkbox-wrapper {
3583
+ .rs-check-item .rs-checkbox-checker .rs-checkbox-control {
3482
3584
  left: 12px;
3483
3585
  }
3484
- .grouped .rs-check-item .rs-checkbox-checker .rs-checkbox-wrapper,
3485
- .rs-picker-check-menu-group-children .rs-check-item .rs-checkbox-checker .rs-checkbox-wrapper {
3586
+ .grouped .rs-check-item .rs-checkbox-checker .rs-checkbox-control,
3587
+ .rs-picker-check-menu-group-children .rs-check-item .rs-checkbox-checker .rs-checkbox-control {
3486
3588
  left: 26px;
3487
3589
  }
3488
3590
  .rs-picker-input {
@@ -35,10 +35,10 @@ export interface AnimationEventProps {
35
35
  onExited?: (node: HTMLElement) => void;
36
36
  }
37
37
  export declare type PickerAppearance = 'default' | 'subtle';
38
- export interface PickerBaseProps<LocaleType = any> extends WithAsProps, AnimationEventProps {
38
+ export interface PickerBaseProps<L = any> extends WithAsProps, AnimationEventProps {
39
39
  id?: string;
40
40
  /** Custom locale */
41
- locale?: Partial<LocaleType>;
41
+ locale?: Partial<L>;
42
42
  /** A picker can have different appearances. */
43
43
  appearance?: PickerAppearance;
44
44
  /** Format picker to appear inside a content block */
@@ -108,24 +108,22 @@ export interface FormControlBaseProps<ValueType = React.InputHTMLAttributes<HTML
108
108
  /** Make the control readonly */
109
109
  readOnly?: boolean;
110
110
  }
111
- declare type ToArray<V> = V extends any[] ? V : V[];
112
- export interface FormControlPickerProps<ValueType = any, LocaleType = any, DataType = Record<string, any>> extends PickerBaseProps<LocaleType>, FormControlBaseProps<ValueType> {
111
+ export declare type ToArray<V> = V extends any[] ? V : V[];
112
+ export interface DataProps<TData> {
113
113
  /** The data of component */
114
- data: DataType[];
114
+ data: TData[];
115
115
  /** Set option value 'key' in 'data' */
116
116
  valueKey?: string;
117
117
  /** Set options to display the 'key' in 'data' */
118
118
  labelKey?: string;
119
119
  /** Set children key in data */
120
120
  childrenKey?: string;
121
- /** Disabled items */
122
- disabledItemValues?: ToArray<NonNullable<ValueType>>;
123
- /** Initial value */
124
- defaultValue?: ValueType;
125
- /** Current value of the component. Creates a controlled component */
126
- value?: ValueType;
127
- /** Called after the value has been changed */
128
- onChange?: (value: ValueType, event: React.SyntheticEvent) => void;
121
+ }
122
+ export interface FormControlPickerProps<T = any, L = any, D = Record<string, any>, I = T> extends PickerBaseProps<L>, FormControlBaseProps<T>, DataProps<D> {
123
+ /**
124
+ * Disabled items
125
+ */
126
+ disabledItemValues?: ToArray<NonNullable<I>>;
129
127
  }
130
128
  export declare namespace TypeAttributes {
131
129
  type Size = 'lg' | 'md' | 'sm' | 'xs';
@@ -150,6 +148,7 @@ export interface ItemDataType<T = number | string> extends Record<string, any> {
150
148
  children?: ItemDataType<T>[];
151
149
  loading?: boolean;
152
150
  }
151
+ export declare type DataItemValue = number | string | null;
153
152
  export interface Offset {
154
153
  top: number;
155
154
  left: number;
@@ -163,4 +162,3 @@ export declare type CursorPosition = {
163
162
  clientTop: number;
164
163
  clientLeft: number;
165
164
  };
166
- export {};
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { CascadeTreeProps } from './types';
3
+ export interface CascadeTreeComponent {
4
+ <T>(props: CascadeTreeProps<T> & {
5
+ ref?: React.Ref<HTMLDivElement>;
6
+ }): JSX.Element | null;
7
+ displayName?: string;
8
+ propTypes?: React.WeakValidationMap<CascadeTreeProps<any>>;
9
+ }
10
+ /**
11
+ * CascadeTree is a component that displays tree-structured data in columns.
12
+ *
13
+ * @see https://rsuitejs.com/components/cascade-tree
14
+ */
15
+ declare const CascadeTree: CascadeTreeComponent;
16
+ export default CascadeTree;
@@ -0,0 +1,174 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ exports.__esModule = true;
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _treeUtils = require("../utils/treeUtils");
12
+ var _utils = require("../utils");
13
+ var _useMap = require("../utils/useMap");
14
+ var _TreeView = _interopRequireDefault(require("./TreeView"));
15
+ var _SearchView = _interopRequireDefault(require("./SearchView"));
16
+ var _hooks = require("./hooks");
17
+ /**
18
+ * CascadeTree is a component that displays tree-structured data in columns.
19
+ *
20
+ * @see https://rsuitejs.com/components/cascade-tree
21
+ */
22
+ var CascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
23
+ var _props$as = props.as,
24
+ Component = _props$as === void 0 ? 'div' : _props$as,
25
+ _props$data = props.data,
26
+ data = _props$data === void 0 ? [] : _props$data,
27
+ defaultValue = props.defaultValue,
28
+ className = props.className,
29
+ _props$classPrefix = props.classPrefix,
30
+ classPrefix = _props$classPrefix === void 0 ? 'cascade-tree' : _props$classPrefix,
31
+ _props$childrenKey = props.childrenKey,
32
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
33
+ _props$valueKey = props.valueKey,
34
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
35
+ _props$labelKey = props.labelKey,
36
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
37
+ valueProp = props.value,
38
+ _props$disabledItemVa = props.disabledItemValues,
39
+ disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,
40
+ columnWidth = props.columnWidth,
41
+ columnHeight = props.columnHeight,
42
+ searchable = props.searchable,
43
+ renderTreeNode = props.renderTreeNode,
44
+ renderColumn = props.renderColumn,
45
+ onSelect = props.onSelect,
46
+ onSearch = props.onSearch,
47
+ onChange = props.onChange,
48
+ getChildren = props.getChildren,
49
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "defaultValue", "className", "classPrefix", "childrenKey", "valueKey", "labelKey", "value", "disabledItemValues", "columnWidth", "columnHeight", "searchable", "renderTreeNode", "renderColumn", "onSelect", "onSearch", "onChange", "getChildren"]);
50
+ var _ref = (0, _utils.useControlled)(valueProp, defaultValue),
51
+ value = _ref[0],
52
+ setValue = _ref[1]; // Store the children of each node
53
+ var childrenMap = (0, _useMap.useMap)();
54
+
55
+ // Store the parent of each node
56
+ var parentMap = (0, _react.useMemo)(function () {
57
+ return (0, _treeUtils.getParentMap)(data, function (item) {
58
+ var _childrenMap$get;
59
+ return (_childrenMap$get = childrenMap.get(item)) !== null && _childrenMap$get !== void 0 ? _childrenMap$get : item[childrenKey];
60
+ });
61
+ }, [childrenMap, childrenKey, data]);
62
+
63
+ // Flatten the tree data
64
+ var flattenedData = (0, _react.useMemo)(function () {
65
+ return (0, _treeUtils.flattenTree)(data, function (item) {
66
+ var _childrenMap$get2;
67
+ return (_childrenMap$get2 = childrenMap.get(item)) !== null && _childrenMap$get2 !== void 0 ? _childrenMap$get2 : item[childrenKey];
68
+ });
69
+ }, [childrenMap, childrenKey, data]);
70
+
71
+ // The selected item
72
+ var selectedItem = flattenedData.find(function (item) {
73
+ return item[valueKey] === value;
74
+ });
75
+
76
+ // Callback function after selecting the node
77
+ var onSelectCallback = function onSelectCallback(node, event) {
78
+ var isLeafNode = node.isLeafNode,
79
+ cascadePaths = node.cascadePaths,
80
+ itemData = node.itemData;
81
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(itemData, cascadePaths, event);
82
+ if (isLeafNode) {
83
+ var nextValue = itemData[valueKey];
84
+ setValue(nextValue);
85
+ }
86
+ };
87
+ var _useSelect = (0, _hooks.useSelect)({
88
+ value: value,
89
+ valueKey: valueKey,
90
+ childrenKey: childrenKey,
91
+ childrenMap: childrenMap,
92
+ selectedItem: selectedItem,
93
+ getChildren: getChildren,
94
+ onChange: onChange,
95
+ onSelect: onSelectCallback
96
+ }),
97
+ activeItem = _useSelect.activeItem,
98
+ loadingItemsSet = _useSelect.loadingItemsSet,
99
+ handleSelect = _useSelect.handleSelect;
100
+ var _usePaths = (0, _hooks.usePaths)({
101
+ data: data,
102
+ activeItem: activeItem,
103
+ selectedItem: selectedItem,
104
+ getParent: function getParent(item) {
105
+ return parentMap.get(item);
106
+ },
107
+ getChildren: function getChildren(item) {
108
+ var _childrenMap$get3;
109
+ return (_childrenMap$get3 = childrenMap.get(item)) !== null && _childrenMap$get3 !== void 0 ? _childrenMap$get3 : item[childrenKey];
110
+ }
111
+ }),
112
+ columns = _usePaths.columns,
113
+ pathTowardsActiveItem = _usePaths.pathTowardsActiveItem;
114
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
115
+ withClassPrefix = _useClassNames.withClassPrefix,
116
+ merge = _useClassNames.merge;
117
+ var classes = merge(className, withClassPrefix());
118
+ var onSearchCallback = (0, _react.useCallback)(function (value, _items, event) {
119
+ return onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
120
+ }, [onSearch]);
121
+ var _useSearch = (0, _hooks.useSearch)({
122
+ labelKey: labelKey,
123
+ childrenKey: childrenKey,
124
+ parentMap: parentMap,
125
+ flattenedData: flattenedData,
126
+ onSearch: onSearchCallback
127
+ }),
128
+ items = _useSearch.items,
129
+ searchKeyword = _useSearch.searchKeyword,
130
+ setSearchKeyword = _useSearch.setSearchKeyword,
131
+ handleSearch = _useSearch.handleSearch;
132
+ var handleSearchRowSelect = (0, _utils.useEventCallback)(function (item, items, event) {
133
+ var _item$childrenKey;
134
+ var node = {
135
+ itemData: item,
136
+ cascadePaths: items,
137
+ isLeafNode: !((_item$childrenKey = item[childrenKey]) !== null && _item$childrenKey !== void 0 && _item$childrenKey.length)
138
+ };
139
+ handleSelect(node, event);
140
+ setSearchKeyword('');
141
+ });
142
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
143
+ className: classes
144
+ }, rest, {
145
+ ref: ref
146
+ }), searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {
147
+ data: items,
148
+ searchKeyword: searchKeyword,
149
+ valueKey: valueKey,
150
+ labelKey: labelKey,
151
+ parentMap: parentMap,
152
+ disabledItemValues: disabledItemValues,
153
+ onSelect: handleSearchRowSelect,
154
+ onSearch: handleSearch
155
+ }), !searchKeyword && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
156
+ columnWidth: columnWidth,
157
+ columnHeight: columnHeight,
158
+ disabledItemValues: disabledItemValues,
159
+ loadingItemsSet: loadingItemsSet,
160
+ valueKey: valueKey,
161
+ labelKey: labelKey,
162
+ childrenKey: childrenKey,
163
+ classPrefix: classPrefix,
164
+ data: columns,
165
+ cascadePaths: pathTowardsActiveItem,
166
+ activeItemValue: value,
167
+ onSelect: handleSelect,
168
+ renderColumn: renderColumn,
169
+ renderTreeNode: renderTreeNode
170
+ }));
171
+ });
172
+ CascadeTree.displayName = 'CascadeTree';
173
+ var _default = CascadeTree;
174
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps } from '../@types/common';
3
+ interface SearchViewProps<T> extends WithAsProps {
4
+ searchKeyword: string;
5
+ labelKey: string;
6
+ valueKey: string;
7
+ parentMap: WeakMap<ItemDataType<T>, ItemDataType<T>>;
8
+ data: ItemDataType<T>[];
9
+ focusItemValue?: T | null;
10
+ disabledItemValues: any[];
11
+ renderSearchItem?: (label: React.ReactNode, items: ItemDataType<T>[]) => React.ReactNode;
12
+ onSelect: (item: ItemDataType<T>, items: ItemDataType<T>[], event: React.MouseEvent) => void;
13
+ onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
14
+ inputRef?: React.RefObject<HTMLInputElement>;
15
+ }
16
+ declare function SearchView<T>(props: SearchViewProps<T>): JSX.Element;
17
+ export default SearchView;
@@ -0,0 +1,106 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _utils = require("../utils");
11
+ var _treeUtils = require("../utils/treeUtils");
12
+ var _utils2 = require("./utils");
13
+ var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
14
+ function SearchView(props) {
15
+ var _props$as = props.as,
16
+ Component = _props$as === void 0 ? 'div' : _props$as,
17
+ _props$classPrefix = props.classPrefix,
18
+ classPrefix = _props$classPrefix === void 0 ? 'cascade-search-view' : _props$classPrefix,
19
+ className = props.className,
20
+ searchKeyword = props.searchKeyword,
21
+ labelKey = props.labelKey,
22
+ valueKey = props.valueKey,
23
+ parentMap = props.parentMap,
24
+ data = props.data,
25
+ focusItemValue = props.focusItemValue,
26
+ disabledItemValues = props.disabledItemValues,
27
+ inputRef = props.inputRef,
28
+ renderSearchItem = props.renderSearchItem,
29
+ onSearch = props.onSearch,
30
+ onSelect = props.onSelect,
31
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "searchKeyword", "labelKey", "valueKey", "parentMap", "data", "focusItemValue", "disabledItemValues", "inputRef", "renderSearchItem", "onSearch", "onSelect"]);
32
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
33
+ merge = _useClassNames.merge,
34
+ prefix = _useClassNames.prefix,
35
+ withClassPrefix = _useClassNames.withClassPrefix,
36
+ rootPrefix = _useClassNames.rootPrefix;
37
+ var classes = merge(className, withClassPrefix());
38
+ var _useCustom = (0, _utils.useCustom)('Picker'),
39
+ locale = _useCustom.locale;
40
+ var renderSearchRow = function renderSearchRow(item, key) {
41
+ var items = (0, _treeUtils.getPathTowardsItem)(item, function (item) {
42
+ return parentMap.get(item);
43
+ });
44
+ var formattedNodes = items.map(function (itemData) {
45
+ var _extends2;
46
+ var label = (0, _utils2.highlightLabel)({
47
+ item: itemData,
48
+ labelKey: labelKey,
49
+ searchKeyword: searchKeyword,
50
+ render: function render(patch, index) {
51
+ return /*#__PURE__*/_react.default.createElement("span", {
52
+ key: index,
53
+ className: prefix('match')
54
+ }, patch);
55
+ }
56
+ });
57
+ return (0, _extends3.default)({}, itemData, (_extends2 = {}, _extends2[labelKey] = label, _extends2));
58
+ });
59
+ var disabled = disabledItemValues.some(function (value) {
60
+ return formattedNodes.some(function (itemData) {
61
+ return itemData[valueKey] === value;
62
+ });
63
+ });
64
+ var itemClasses = prefix('row', {
65
+ 'row-disabled': disabled,
66
+ 'row-focus': item[valueKey] === focusItemValue
67
+ });
68
+ var label = formattedNodes.map(function (itemData, index) {
69
+ return /*#__PURE__*/_react.default.createElement("span", {
70
+ key: "col-" + index,
71
+ className: prefix('col')
72
+ }, itemData[labelKey]);
73
+ });
74
+ var handleCheck = function handleCheck(event) {
75
+ if (!disabled) {
76
+ onSelect(item, items, event);
77
+ }
78
+ };
79
+ return /*#__PURE__*/_react.default.createElement("div", {
80
+ role: "treeitem",
81
+ "aria-disabled": disabled,
82
+ "aria-label": item[labelKey],
83
+ key: key,
84
+ "data-key": item[valueKey],
85
+ className: itemClasses,
86
+ tabIndex: -1,
87
+ onClick: handleCheck
88
+ }, renderSearchItem ? renderSearchItem(label, items) : label);
89
+ };
90
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({
91
+ className: classes
92
+ }, rest), /*#__PURE__*/_react.default.createElement(_SearchBox.default, {
93
+ placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
94
+ onChange: onSearch,
95
+ value: searchKeyword,
96
+ inputRef: inputRef
97
+ }), searchKeyword !== '' && /*#__PURE__*/_react.default.createElement("div", {
98
+ className: prefix('panel'),
99
+ "data-layer": 0,
100
+ role: "tree"
101
+ }, data.length ? data.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
102
+ className: merge(prefix('none'), rootPrefix('picker-none'))
103
+ }, locale.noResultsText)));
104
+ }
105
+ var _default = SearchView;
106
+ exports.default = _default;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps, RsRefForwardingComponent, DataProps, ToArray } from '../@types/common';
3
+ import { SelectNode, CascadeColumn } from './types';
4
+ declare type SetLike<T = unknown> = {
5
+ has(value: T): boolean;
6
+ };
7
+ export interface TreeViewProps<T = any> extends WithAsProps, Omit<DataProps<ItemDataType<T>>, 'data'> {
8
+ data?: (readonly ItemDataType<T>[])[];
9
+ disabledItemValues?: ToArray<NonNullable<T>>;
10
+ activeItemValue?: T | null;
11
+ loadingItemsSet?: SetLike<ItemDataType<T>>;
12
+ cascadePaths?: ItemDataType<T>[];
13
+ columnWidth?: number;
14
+ columnHeight?: number | string;
15
+ renderTreeNode?: (node: React.ReactNode, itemData: ItemDataType<T>) => React.ReactNode;
16
+ renderColumn?: (childNodes: React.ReactNode, column: CascadeColumn<T>) => React.ReactNode;
17
+ onSelect?: (node: SelectNode<T>, event: React.MouseEvent) => void;
18
+ }
19
+ declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
20
+ export default TreeView;