rsuite 5.56.0 → 5.58.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 (272) hide show
  1. package/Accordion/styles/index.css +30 -0
  2. package/AutoComplete/styles/index.css +0 -137
  3. package/CHANGELOG.md +32 -0
  4. package/CascadeTree/package.json +7 -0
  5. package/CascadeTree/styles/index.css +273 -0
  6. package/CascadeTree/styles/index.less +77 -0
  7. package/CascadeTree/styles/search.less +45 -0
  8. package/Cascader/styles/index.css +187 -329
  9. package/Cascader/styles/index.less +1 -122
  10. package/CheckPicker/styles/index.css +0 -137
  11. package/CheckTree/styles/index.css +0 -137
  12. package/CheckTreePicker/styles/index.css +0 -137
  13. package/DatePicker/styles/index.css +0 -137
  14. package/DateRangePicker/styles/index.css +0 -137
  15. package/Dropdown/styles/index.css +35 -8
  16. package/Dropdown/styles/index.less +24 -13
  17. package/Heading/package.json +7 -0
  18. package/Heading/styles/index.css +42 -0
  19. package/Heading/styles/index.less +41 -0
  20. package/HeadingGroup/package.json +7 -0
  21. package/HeadingGroup/styles/index.css +5 -0
  22. package/HeadingGroup/styles/index.less +3 -0
  23. package/InputPicker/styles/index.css +29 -146
  24. package/InputPicker/styles/index.less +28 -12
  25. package/InputPicker/styles/mixin.less +7 -0
  26. package/MultiCascadeTree/package.json +7 -0
  27. package/MultiCascadeTree/styles/index.css +3564 -0
  28. package/MultiCascadeTree/styles/index.less +37 -0
  29. package/MultiCascader/styles/index.css +72 -206
  30. package/MultiCascader/styles/index.less +11 -31
  31. package/Nav/styles/index.css +35 -8
  32. package/Navbar/styles/index.css +35 -8
  33. package/Pagination/styles/index.css +0 -137
  34. package/Panel/styles/index.css +30 -0
  35. package/Panel/styles/index.less +1 -0
  36. package/Popover/styles/index.css +30 -0
  37. package/Popover/styles/index.less +3 -2
  38. package/SelectPicker/styles/index.css +0 -137
  39. package/Tabs/styles/index.css +35 -8
  40. package/TagInput/styles/index.css +132 -150
  41. package/TagPicker/styles/index.css +132 -150
  42. package/TagPicker/styles/index.less +57 -5
  43. package/TagPicker/styles/mixin.less +21 -0
  44. package/Text/package.json +7 -0
  45. package/Text/styles/index.css +192 -0
  46. package/Text/styles/index.less +117 -0
  47. package/cjs/@types/common.d.ts +12 -14
  48. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  49. package/cjs/CascadeTree/CascadeTree.js +174 -0
  50. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  51. package/cjs/CascadeTree/SearchView.js +106 -0
  52. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  53. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  54. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  55. package/cjs/CascadeTree/hooks/index.js +12 -0
  56. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  57. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  58. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  59. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  60. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  61. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  62. package/cjs/CascadeTree/index.d.ts +4 -0
  63. package/cjs/CascadeTree/index.js +9 -0
  64. package/cjs/CascadeTree/types.d.ts +66 -0
  65. package/cjs/CascadeTree/types.js +2 -0
  66. package/cjs/CascadeTree/utils.d.ts +32 -0
  67. package/cjs/CascadeTree/utils.js +66 -0
  68. package/cjs/Cascader/Cascader.d.ts +57 -26
  69. package/cjs/Cascader/Cascader.js +178 -249
  70. package/cjs/Cascader/useActive.d.ts +15 -0
  71. package/cjs/Cascader/useActive.js +43 -0
  72. package/cjs/CheckPicker/CheckPicker.js +2 -9
  73. package/cjs/CheckTreePicker/CheckTreePicker.js +2 -10
  74. package/cjs/DatePicker/DatePicker.js +5 -5
  75. package/cjs/DateRangePicker/DateRangePicker.js +3 -5
  76. package/cjs/Dropdown/DropdownItem.d.ts +10 -2
  77. package/cjs/Dropdown/DropdownItem.js +12 -3
  78. package/cjs/Heading/Heading.d.ts +16 -0
  79. package/cjs/Heading/Heading.js +44 -0
  80. package/cjs/Heading/index.d.ts +3 -0
  81. package/cjs/Heading/index.js +10 -0
  82. package/cjs/HeadingGroup/HeadingGroup.d.ts +8 -0
  83. package/cjs/HeadingGroup/HeadingGroup.js +17 -0
  84. package/cjs/HeadingGroup/index.d.ts +3 -0
  85. package/cjs/HeadingGroup/index.js +9 -0
  86. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  87. package/cjs/InputPicker/InputPicker.js +7 -8
  88. package/cjs/Loader/Loader.js +5 -4
  89. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  90. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  91. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  92. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  93. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  94. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  95. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  96. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  97. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  98. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  99. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  100. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  101. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  102. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  103. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  104. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  105. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  106. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  107. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  108. package/cjs/MultiCascadeTree/index.js +9 -0
  109. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  110. package/cjs/MultiCascadeTree/types.js +2 -0
  111. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  112. package/cjs/MultiCascadeTree/utils.js +140 -0
  113. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  114. package/cjs/MultiCascader/MultiCascader.js +173 -289
  115. package/cjs/Panel/Panel.js +3 -1
  116. package/cjs/Popover/Popover.js +3 -1
  117. package/cjs/SelectPicker/SelectPicker.js +3 -9
  118. package/cjs/Text/Text.d.ts +47 -0
  119. package/cjs/Text/Text.js +72 -0
  120. package/cjs/Text/index.d.ts +3 -0
  121. package/cjs/Text/index.js +10 -0
  122. package/cjs/Tree/Tree.d.ts +4 -4
  123. package/cjs/TreePicker/TreePicker.js +3 -10
  124. package/cjs/index.d.ts +27 -16
  125. package/cjs/index.js +30 -19
  126. package/cjs/internals/Overlay/OverlayTrigger.js +24 -17
  127. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  128. package/cjs/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  129. package/cjs/internals/Picker/PickerToggleTrigger.js +1 -1
  130. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  131. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  132. package/cjs/toaster/ToastContainer.d.ts +9 -2
  133. package/cjs/toaster/index.d.ts +0 -1
  134. package/cjs/toaster/index.js +1 -3
  135. package/cjs/useToaster/index.d.ts +2 -0
  136. package/cjs/useToaster/index.js +9 -0
  137. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  138. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  139. package/cjs/utils/index.d.ts +1 -0
  140. package/cjs/utils/index.js +5 -2
  141. package/dist/rsuite-no-reset-rtl.css +393 -219
  142. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  143. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  144. package/dist/rsuite-no-reset.css +393 -219
  145. package/dist/rsuite-no-reset.min.css +1 -1
  146. package/dist/rsuite-no-reset.min.css.map +1 -1
  147. package/dist/rsuite-rtl.css +393 -219
  148. package/dist/rsuite-rtl.min.css +1 -1
  149. package/dist/rsuite-rtl.min.css.map +1 -1
  150. package/dist/rsuite.css +393 -219
  151. package/dist/rsuite.js +321 -57
  152. package/dist/rsuite.js.map +1 -1
  153. package/dist/rsuite.min.css +1 -1
  154. package/dist/rsuite.min.css.map +1 -1
  155. package/dist/rsuite.min.js +1 -1
  156. package/dist/rsuite.min.js.map +1 -1
  157. package/esm/@types/common.d.ts +12 -14
  158. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  159. package/esm/CascadeTree/CascadeTree.js +167 -0
  160. package/esm/CascadeTree/SearchView.d.ts +17 -0
  161. package/esm/CascadeTree/SearchView.js +100 -0
  162. package/esm/CascadeTree/TreeView.d.ts +20 -0
  163. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  164. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  165. package/esm/CascadeTree/hooks/index.js +4 -0
  166. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  167. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  168. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  169. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  170. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  171. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  172. package/esm/CascadeTree/index.d.ts +4 -0
  173. package/esm/CascadeTree/index.js +3 -0
  174. package/esm/CascadeTree/types.d.ts +66 -0
  175. package/esm/CascadeTree/types.js +1 -0
  176. package/esm/CascadeTree/utils.d.ts +32 -0
  177. package/esm/CascadeTree/utils.js +61 -0
  178. package/esm/Cascader/Cascader.d.ts +57 -26
  179. package/esm/Cascader/Cascader.js +165 -235
  180. package/esm/Cascader/useActive.d.ts +15 -0
  181. package/esm/Cascader/useActive.js +37 -0
  182. package/esm/CheckPicker/CheckPicker.js +2 -9
  183. package/esm/CheckTreePicker/CheckTreePicker.js +2 -10
  184. package/esm/DatePicker/DatePicker.js +6 -6
  185. package/esm/DateRangePicker/DateRangePicker.js +3 -5
  186. package/esm/Dropdown/DropdownItem.d.ts +10 -2
  187. package/esm/Dropdown/DropdownItem.js +12 -3
  188. package/esm/Heading/Heading.d.ts +16 -0
  189. package/esm/Heading/Heading.js +38 -0
  190. package/esm/Heading/index.d.ts +3 -0
  191. package/esm/Heading/index.js +4 -0
  192. package/esm/HeadingGroup/HeadingGroup.d.ts +8 -0
  193. package/esm/HeadingGroup/HeadingGroup.js +11 -0
  194. package/esm/HeadingGroup/index.d.ts +3 -0
  195. package/esm/HeadingGroup/index.js +3 -0
  196. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  197. package/esm/InputPicker/InputPicker.js +7 -8
  198. package/esm/Loader/Loader.js +6 -5
  199. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  200. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  201. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  202. package/esm/MultiCascadeTree/SearchView.js +111 -0
  203. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  204. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  205. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  206. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  207. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  208. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  209. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  210. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  211. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  212. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  213. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  214. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  215. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  216. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  217. package/esm/MultiCascadeTree/index.d.ts +4 -0
  218. package/esm/MultiCascadeTree/index.js +3 -0
  219. package/esm/MultiCascadeTree/types.d.ts +26 -0
  220. package/esm/MultiCascadeTree/types.js +1 -0
  221. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  222. package/esm/MultiCascadeTree/utils.js +130 -0
  223. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  224. package/esm/MultiCascader/MultiCascader.js +166 -281
  225. package/esm/Panel/Panel.js +3 -1
  226. package/esm/Popover/Popover.js +3 -1
  227. package/esm/SelectPicker/SelectPicker.js +3 -9
  228. package/esm/Text/Text.d.ts +47 -0
  229. package/esm/Text/Text.js +66 -0
  230. package/esm/Text/index.d.ts +3 -0
  231. package/esm/Text/index.js +4 -0
  232. package/esm/Tree/Tree.d.ts +4 -4
  233. package/esm/TreePicker/TreePicker.js +3 -10
  234. package/esm/index.d.ts +27 -16
  235. package/esm/index.js +38 -15
  236. package/esm/internals/Overlay/OverlayTrigger.js +24 -17
  237. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  238. package/esm/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  239. package/esm/internals/Picker/PickerToggleTrigger.js +1 -1
  240. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  241. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  242. package/esm/toaster/ToastContainer.d.ts +9 -2
  243. package/esm/toaster/index.d.ts +0 -1
  244. package/esm/toaster/index.js +0 -1
  245. package/esm/useToaster/index.d.ts +2 -0
  246. package/esm/useToaster/index.js +3 -0
  247. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  248. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  249. package/esm/utils/index.d.ts +1 -0
  250. package/esm/utils/index.js +2 -1
  251. package/internals/Picker/styles/index.less +0 -5
  252. package/internals/Picker/styles/mixin.less +0 -73
  253. package/package.json +1 -1
  254. package/styles/color-modes/light.less +7 -0
  255. package/styles/index.less +5 -0
  256. package/useToaster/package.json +7 -0
  257. package/useToaster/styles/index.css +239 -0
  258. package/useToaster/styles/index.less +1 -0
  259. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  260. package/cjs/Cascader/DropdownMenu.js +0 -175
  261. package/cjs/Cascader/TreeView.d.ts +0 -24
  262. package/cjs/Cascader/utils.js +0 -79
  263. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  264. package/cjs/MultiCascader/utils.d.ts +0 -71
  265. package/cjs/MultiCascader/utils.js +0 -382
  266. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  267. package/esm/Cascader/DropdownMenu.js +0 -168
  268. package/esm/Cascader/TreeView.d.ts +0 -24
  269. package/esm/Cascader/utils.js +0 -74
  270. package/esm/MultiCascader/TreeView.d.ts +0 -25
  271. package/esm/MultiCascader/utils.d.ts +0 -71
  272. package/esm/MultiCascader/utils.js +0 -369
@@ -3,6 +3,7 @@
3
3
  @import '../../Checkbox/styles/index.less';
4
4
  @import '../../internals/Picker/styles/mixin.less';
5
5
  @import '../../InputPicker/styles/index.less';
6
+ @import './mixin.less';
6
7
 
7
8
  .rs-picker-tag {
8
9
  .rs-picker-toggle {
@@ -34,11 +35,6 @@
34
35
  padding-left: @tag-picker-content-padding-horizontal;
35
36
  }
36
37
 
37
- .rs-tag,
38
- .rs-tag + .rs-tag {
39
- margin-left: @tag-picker-content-padding-horizontal;
40
- }
41
-
42
38
  .rs-picker-search {
43
39
  &,
44
40
  &-input,
@@ -68,3 +64,59 @@
68
64
  .rs-plaintext .rs-tag {
69
65
  margin: 0;
70
66
  }
67
+
68
+ // Tag Picker Size
69
+ // --------------------------------------------------
70
+ .rs-picker-tag-lg {
71
+ .rs-tag-picker-size(@padding-y-lg - 1; @padding-x-lg; @font-size-large; @line-height-large);
72
+ .rs-picker-textbox {
73
+ min-height: 40px;
74
+ }
75
+ .rs-picker-tag-list .rs-tag-lg {
76
+ margin-top: 6px;
77
+ margin-left: 6px;
78
+ }
79
+ }
80
+
81
+ // Default size
82
+ .rs-picker-tag,
83
+ .rs-picker-tag-md {
84
+ .rs-tag-picker-size(@padding-y; @padding-x; @font-size-base; @line-height-base);
85
+ .rs-picker-tag-list .rs-tag-md {
86
+ margin-top: 5px;
87
+ margin-left: 5px;
88
+ }
89
+ }
90
+
91
+ .rs-picker-tag-sm {
92
+ .rs-tag-picker-size(@padding-y-sm; @padding-x-sm; @font-size-base; @line-height-base);
93
+ .rs-picker-textbox {
94
+ min-height: 28px;
95
+ }
96
+ .rs-picker-tag-list .rs-tag-sm {
97
+ margin-top: 4px;
98
+ margin-left: 4px;
99
+ }
100
+ }
101
+
102
+ .rs-picker-tag-xs {
103
+ .rs-tag-picker-size(@padding-y-xs; @padding-x-xs; @font-size-extra-small; @line-height-extra-small);
104
+
105
+ .rs-picker-textbox {
106
+ min-height: 22px;
107
+ padding-bottom: @padding-y-xs - 1px;
108
+
109
+ // Adjust search-input size the same with button
110
+ .rs-picker-search-input {
111
+ .padding-vertical(1px);
112
+ }
113
+ }
114
+
115
+ .rs-picker-tag-list {
116
+ // Tag does not have `xs` size, and the size needs to be determined through the superior element.
117
+ .rs-tag-sm {
118
+ margin-top: 1px;
119
+ margin-left: 2px;
120
+ }
121
+ }
122
+ }
@@ -0,0 +1,21 @@
1
+ .rs-tag-picker-size(@padding-vertical; @padding-horizontal; @font-size; @line-height;) {
2
+ .rs-picker-textbox {
3
+ padding-bottom: @padding-vertical - 3px;
4
+
5
+ .rs-picker-search-input {
6
+ padding-left: @padding-horizontal;
7
+ margin-top: @padding-vertical - 3px;
8
+ font-size: @font-size;
9
+ }
10
+
11
+ input {
12
+ height: @line-height * @font-size - 2px;
13
+ }
14
+ }
15
+
16
+ .rs-picker-toggle {
17
+ padding-top: @padding-vertical - 1px;
18
+ padding-bottom: @padding-vertical - 1px;
19
+ box-shadow: none;
20
+ }
21
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "rsuite/Text",
3
+ "private": true,
4
+ "main": "../cjs/Text/index.js",
5
+ "module": "../esm/Text/index.js",
6
+ "types": "../esm/Text/index.d.ts"
7
+ }
@@ -0,0 +1,192 @@
1
+ :root,
2
+ .rs-theme-light {
3
+ --rs-gray-50: #f7f7fa;
4
+ --rs-gray-200: #e5e5ea;
5
+ --rs-gray-600: #8e8e93;
6
+ --rs-gray-800: #575757;
7
+ --rs-gray-900: #272c36;
8
+ --rs-red-500: #f44336;
9
+ --rs-orange-500: #fa8900;
10
+ --rs-yellow-500: #ffb300;
11
+ --rs-green-500: #4caf50;
12
+ --rs-cyan-500: #00bcd4;
13
+ --rs-blue-500: #2196f3;
14
+ --rs-violet-500: #673ab7;
15
+ --rs-text-primary: var(--rs-gray-800);
16
+ --rs-text-secondary: var(--rs-gray-600);
17
+ --rs-text-weight-thin: 100;
18
+ --rs-text-weight-light: 300;
19
+ --rs-text-weight-medium: 500;
20
+ --rs-text-weight-semibold: 600;
21
+ --rs-text-weight-bold: 700;
22
+ --rs-text-weight-extrabold: 800;
23
+ --rs-bg-well: var(--rs-gray-50);
24
+ }
25
+ .rs-theme-dark {
26
+ --rs-gray-50: #e9ebf0;
27
+ --rs-gray-200: #a4a9b3;
28
+ --rs-gray-600: #3c3f43;
29
+ --rs-gray-800: #1a1d24;
30
+ --rs-gray-900: #0f131a;
31
+ --rs-red-500: #f04f43;
32
+ --rs-orange-500: #ff9800;
33
+ --rs-yellow-500: #ffc757;
34
+ --rs-green-500: #58b15b;
35
+ --rs-cyan-500: #00bcd4;
36
+ --rs-blue-500: #1499ef;
37
+ --rs-violet-500: #673ab7;
38
+ --rs-text-primary: var(--rs-gray-50);
39
+ --rs-text-secondary: var(--rs-gray-200);
40
+ --rs-bg-well: var(--rs-gray-900);
41
+ }
42
+ .rs-theme-high-contrast {
43
+ --rs-gray-50: #e9ebf0;
44
+ --rs-gray-200: #a4a9b3;
45
+ --rs-gray-600: #3c3f43;
46
+ --rs-gray-800: #1a1d24;
47
+ --rs-gray-900: #0f131a;
48
+ --rs-red-500: #bd1732;
49
+ --rs-orange-500: #ff9800;
50
+ --rs-yellow-500: #ffc757;
51
+ --rs-green-500: #0d822c;
52
+ --rs-cyan-500: #00bcd4;
53
+ --rs-blue-500: #1499ef;
54
+ --rs-violet-500: #673ab7;
55
+ --rs-text-primary: var(--rs-gray-50);
56
+ --rs-text-secondary: var(--rs-gray-200);
57
+ --rs-bg-well: var(--rs-gray-900);
58
+ }
59
+ /* stylelint-disable */
60
+ *[class*='rs-'] {
61
+ -webkit-box-sizing: border-box;
62
+ box-sizing: border-box;
63
+ }
64
+ *[class*='rs-']::before,
65
+ *[class*='rs-']::after {
66
+ -webkit-box-sizing: border-box;
67
+ box-sizing: border-box;
68
+ }
69
+ .rs-text {
70
+ font-family: Apple-System, Arial, Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', STXihei, sans-serif;
71
+ line-height: 1.42857143;
72
+ color: #575757;
73
+ color: var(--rs-text-primary);
74
+ margin: 0;
75
+ }
76
+ blockquote.rs-text {
77
+ font-style: italic;
78
+ padding-left: 1.5rem;
79
+ border-left: 2px solid #e5e5ea;
80
+ border-left: 2px solid var(--rs-gray-200);
81
+ }
82
+ kbd.rs-text {
83
+ background-color: #f7f7fa;
84
+ background-color: var(--rs-bg-well);
85
+ border: solid #c8c8c8;
86
+ -o-border-image: initial;
87
+ border-image: initial;
88
+ border-radius: 0.25em;
89
+ border-width: 1px 1px 2px;
90
+ -webkit-box-sizing: border-box;
91
+ box-sizing: border-box;
92
+ font-size: 0.875em;
93
+ padding: 0.2em 0.3em;
94
+ }
95
+ .rs-text.rs-text-muted {
96
+ color: #8e8e93;
97
+ color: var(--rs-text-secondary);
98
+ }
99
+ .rs-text-left {
100
+ text-align: left;
101
+ }
102
+ .rs-text-center {
103
+ text-align: center;
104
+ }
105
+ .rs-text-right {
106
+ text-align: right;
107
+ }
108
+ .rs-text-justify {
109
+ text-align: justify;
110
+ }
111
+ .rs-text-uppercase {
112
+ text-transform: uppercase;
113
+ }
114
+ .rs-text-lowercase {
115
+ text-transform: lowercase;
116
+ }
117
+ .rs-text-capitalize {
118
+ text-transform: capitalize;
119
+ }
120
+ .rs-text-thin {
121
+ font-weight: 100;
122
+ font-weight: var(--rs-text-weight-thin);
123
+ }
124
+ .rs-text-light {
125
+ font-weight: 300;
126
+ font-weight: var(--rs-text-weight-light);
127
+ }
128
+ .rs-text-medium {
129
+ font-weight: 500;
130
+ font-weight: var(--rs-text-weight-medium);
131
+ }
132
+ .rs-text-semibold {
133
+ font-weight: 600;
134
+ font-weight: var(--rs-text-weight-semibold);
135
+ }
136
+ .rs-text-bold {
137
+ font-weight: 700;
138
+ font-weight: var(--rs-text-weight-bold);
139
+ }
140
+ .rs-text-extrabold {
141
+ font-weight: 800;
142
+ font-weight: var(--rs-text-weight-extrabold);
143
+ }
144
+ .rs-text-pre-line {
145
+ white-space: pre-line;
146
+ }
147
+ .rs-text-ellipsis {
148
+ overflow: hidden;
149
+ }
150
+ @supports (-webkit-line-clamp: 1) {
151
+ .rs-text-ellipsis {
152
+ display: -webkit-box;
153
+ -webkit-box-orient: vertical;
154
+ }
155
+ }
156
+ @supports not (-webkit-line-clamp: 1) {
157
+ .rs-text-ellipsis {
158
+ text-overflow: ellipsis;
159
+ white-space: nowrap;
160
+ word-wrap: break-word;
161
+ }
162
+ }
163
+ .rs-text-red {
164
+ color: #f44336;
165
+ color: var(--rs-red-500);
166
+ }
167
+ .rs-text-orange {
168
+ color: #fa8900;
169
+ color: var(--rs-orange-500);
170
+ }
171
+ .rs-text-yellow {
172
+ color: #ffb300;
173
+ color: var(--rs-yellow-500);
174
+ }
175
+ .rs-text-green {
176
+ color: #4caf50;
177
+ color: var(--rs-green-500);
178
+ }
179
+ .rs-text-cyan {
180
+ color: #00bcd4;
181
+ color: var(--rs-cyan-500);
182
+ }
183
+ .rs-text-blue {
184
+ color: #2196f3;
185
+ color: var(--rs-blue-500);
186
+ }
187
+ .rs-text-violet {
188
+ color: #673ab7;
189
+ color: var(--rs-violet-500);
190
+ }
191
+
192
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1,117 @@
1
+ @import '../../styles/common';
2
+
3
+ // Heading
4
+ // -------------------------
5
+
6
+ .rs-text {
7
+ font-family: @font-family-base;
8
+ line-height: @line-height-base;
9
+ color: var(--rs-text-primary);
10
+ margin: 0;
11
+
12
+ blockquote& {
13
+ font-style: italic;
14
+ padding-left: 1.5rem;
15
+ border-left: 2px solid var(--rs-gray-200);
16
+ }
17
+
18
+ kbd& {
19
+ background-color: var(--rs-bg-well);
20
+ border: solid #c8c8c8;
21
+ border-image: initial;
22
+ border-radius: 0.25em;
23
+ border-width: 1px 1px 2px;
24
+ box-sizing: border-box;
25
+ font-size: 0.875em;
26
+ padding: 0.2em 0.3em;
27
+ }
28
+
29
+ &.rs-text-muted {
30
+ color: var(--rs-text-secondary);
31
+ }
32
+
33
+ // Text Align: left | center | right | justify
34
+ &-left {
35
+ text-align: left;
36
+ }
37
+
38
+ &-center {
39
+ text-align: center;
40
+ }
41
+
42
+ &-right {
43
+ text-align: right;
44
+ }
45
+
46
+ &-justify {
47
+ text-align: justify;
48
+ }
49
+
50
+ // Text Transform: none | uppercase | lowercase | capitalize
51
+ &-uppercase {
52
+ text-transform: uppercase;
53
+ }
54
+
55
+ &-lowercase {
56
+ text-transform: lowercase;
57
+ }
58
+
59
+ &-capitalize {
60
+ text-transform: capitalize;
61
+ }
62
+
63
+ // Text Weight: thin | light | regular | medium | semibold | bold | extrabold
64
+ &-thin {
65
+ font-weight: var(--rs-text-weight-thin);
66
+ }
67
+
68
+ &-light {
69
+ font-weight: var(--rs-text-weight-light);
70
+ }
71
+
72
+ &-medium {
73
+ font-weight: var(--rs-text-weight-medium);
74
+ }
75
+
76
+ &-semibold {
77
+ font-weight: var(--rs-text-weight-semibold);
78
+ }
79
+
80
+ &-bold {
81
+ font-weight: var(--rs-text-weight-bold);
82
+ }
83
+
84
+ &-extrabold {
85
+ font-weight: var(--rs-text-weight-extrabold);
86
+ }
87
+
88
+ &-pre-line {
89
+ white-space: pre-line;
90
+ }
91
+
92
+ &-ellipsis {
93
+ overflow: hidden;
94
+
95
+ @supports (-webkit-line-clamp: 1) {
96
+ & {
97
+ display: -webkit-box;
98
+ -webkit-box-orient: vertical;
99
+ }
100
+ }
101
+
102
+ @supports not (-webkit-line-clamp: 1) {
103
+ & {
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ word-wrap: break-word;
107
+ }
108
+ }
109
+ }
110
+ }
111
+
112
+ // Colorful tags
113
+ each(@spectrum, .(@color) {
114
+ .rs-text-@{color} {
115
+ color: var(~'--rs-@{color}-500');
116
+ }
117
+ });
@@ -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;