@rainbow-oh/yee-c 0.1.0 → 0.2.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 (228) hide show
  1. package/dist/cjs/Alert/alert.js +10 -4
  2. package/dist/cjs/Alert/style/index.less +3 -0
  3. package/dist/cjs/Anchor/anchor-item.js +6 -4
  4. package/dist/cjs/Anchor/anchor.js +38 -22
  5. package/dist/cjs/Anchor/demo/auto.d.ts +11 -0
  6. package/dist/cjs/Anchor/demo/auto.js +85 -0
  7. package/dist/cjs/Anchor/demo/basic.js +7 -1
  8. package/dist/cjs/Anchor/demo/controlled.js +42 -30
  9. package/dist/cjs/Anchor/interface.d.ts +2 -0
  10. package/dist/cjs/Anchor/style/index.less +2 -2
  11. package/dist/cjs/Button/button.d.ts +1 -1
  12. package/dist/cjs/Checkbox/checkbox-group.js +4 -1
  13. package/dist/cjs/Checkbox/demo/group.js +1 -0
  14. package/dist/cjs/Checkbox/interface.d.ts +5 -0
  15. package/dist/cjs/Checkbox/style/index.less +21 -1
  16. package/dist/cjs/Dropdown/demo/placement.js +2 -1
  17. package/dist/cjs/Dropdown/dropdown.js +3 -0
  18. package/dist/cjs/Dropdown/style/index.less +6 -0
  19. package/dist/cjs/Form/Field.js +33 -3
  20. package/dist/cjs/Form/Group.js +3 -2
  21. package/dist/cjs/Form/demo/form-table.js +1 -8
  22. package/dist/cjs/Form/demo/tooltip.d.ts +3 -0
  23. package/dist/cjs/Form/demo/tooltip.js +84 -0
  24. package/dist/cjs/Form/interface.d.ts +34 -1
  25. package/dist/cjs/Form/style/index.less +22 -7
  26. package/dist/cjs/Popconfirm/popconfirm.js +1 -1
  27. package/dist/cjs/Popconfirm/style/index.less +6 -0
  28. package/dist/cjs/Popover/popover.js +1 -1
  29. package/dist/cjs/Popover/style/index.less +6 -0
  30. package/dist/cjs/Progress/progress.js +2 -2
  31. package/dist/cjs/Radio/style/index.less +13 -6
  32. package/dist/cjs/Select/option.js +3 -2
  33. package/dist/cjs/Select/options.js +9 -1
  34. package/dist/cjs/Select/select.js +1 -0
  35. package/dist/cjs/Skeleton/demo/basic.js +1 -1
  36. package/dist/cjs/Space/interface.d.ts +4 -0
  37. package/dist/cjs/Space/space.js +36 -16
  38. package/dist/cjs/Splitter/demo/basic.js +1 -1
  39. package/dist/cjs/Splitter/demo/vertical.js +23 -1
  40. package/dist/cjs/Splitter/index.d.ts +1 -1
  41. package/dist/cjs/Splitter/interface.d.ts +9 -3
  42. package/dist/cjs/Splitter/splitter-handler.d.ts +1 -1
  43. package/dist/cjs/Splitter/splitter-handler.js +2 -1
  44. package/dist/cjs/Splitter/splitter.d.ts +2 -9
  45. package/dist/cjs/Splitter/splitter.js +53 -50
  46. package/dist/cjs/Splitter/style/index.less +21 -0
  47. package/dist/cjs/Table/demo/size.js +1 -1
  48. package/dist/cjs/Tabs/hooks/useTabScroll.d.ts +1 -1
  49. package/dist/cjs/Tabs/interface.d.ts +1 -1
  50. package/dist/cjs/Tabs/style/index.less +4 -0
  51. package/dist/cjs/Tabs/tab-header/index.js +56 -25
  52. package/dist/cjs/Tooltip/interface.d.ts +4 -0
  53. package/dist/cjs/Tooltip/style/index.less +8 -8
  54. package/dist/cjs/Tooltip/tooltip.js +11 -3
  55. package/dist/cjs/Tree/demo/draggable.d.ts +3 -0
  56. package/dist/cjs/Tree/demo/draggable.js +88 -0
  57. package/dist/cjs/Tree/demo/expanded.js +6 -6
  58. package/dist/cjs/Tree/index.d.ts +1 -0
  59. package/dist/cjs/Tree/index.js +3 -1
  60. package/dist/cjs/Tree/interface.d.ts +26 -0
  61. package/dist/cjs/Tree/style/index.less +25 -0
  62. package/dist/cjs/Tree/tree-node.js +38 -4
  63. package/dist/cjs/Tree/tree.d.ts +12 -1
  64. package/dist/cjs/Tree/tree.js +174 -18
  65. package/dist/cjs/Tree/utils/tree-tools.d.ts +21 -0
  66. package/dist/cjs/Tree/utils/tree-tools.js +88 -0
  67. package/dist/cjs/Trigger/style/index.less +17 -0
  68. package/dist/cjs/Trigger/trigger.js +3 -1
  69. package/dist/cjs/hooks/useDebounceFunction.d.ts +1 -1
  70. package/dist/cjs/hooks/useLayoutEffect.d.ts +1 -1
  71. package/dist/cjs/style/size.css +13 -4
  72. package/dist/cjs/style/themes.css +1 -1
  73. package/dist/cjs/style/variables.css +14 -5
  74. package/dist/cjs/utils/debounce.d.ts +6 -1
  75. package/dist/cjs/utils/debounce.js +9 -1
  76. package/dist/cjs/version.d.ts +1 -1
  77. package/dist/cjs/version.js +1 -1
  78. package/dist/esm/Alert/alert.js +24 -8
  79. package/dist/esm/Alert/style/index.less +3 -0
  80. package/dist/esm/Anchor/anchor-item.js +6 -3
  81. package/dist/esm/Anchor/anchor.js +38 -19
  82. package/dist/esm/Anchor/demo/auto.d.ts +11 -0
  83. package/dist/esm/Anchor/demo/auto.js +62 -0
  84. package/dist/esm/Anchor/demo/basic.js +3 -1
  85. package/dist/esm/Anchor/demo/controlled.js +14 -9
  86. package/dist/esm/Anchor/interface.d.ts +2 -0
  87. package/dist/esm/Anchor/style/index.less +2 -2
  88. package/dist/esm/Button/button.d.ts +1 -1
  89. package/dist/esm/Checkbox/checkbox-group.js +4 -2
  90. package/dist/esm/Checkbox/demo/group.js +1 -0
  91. package/dist/esm/Checkbox/interface.d.ts +5 -0
  92. package/dist/esm/Checkbox/style/index.less +21 -1
  93. package/dist/esm/Dropdown/demo/placement.js +2 -1
  94. package/dist/esm/Dropdown/dropdown.js +6 -1
  95. package/dist/esm/Dropdown/style/index.less +6 -0
  96. package/dist/esm/Form/Field.js +43 -5
  97. package/dist/esm/Form/Group.js +4 -2
  98. package/dist/esm/Form/demo/form-table.js +8 -6
  99. package/dist/esm/Form/demo/tooltip.d.ts +3 -0
  100. package/dist/esm/Form/demo/tooltip.js +59 -0
  101. package/dist/esm/Form/interface.d.ts +34 -1
  102. package/dist/esm/Form/style/index.less +22 -7
  103. package/dist/esm/Popconfirm/popconfirm.js +3 -1
  104. package/dist/esm/Popconfirm/style/index.less +6 -0
  105. package/dist/esm/Popover/popover.js +3 -1
  106. package/dist/esm/Popover/style/index.less +6 -0
  107. package/dist/esm/Progress/progress.js +5 -5
  108. package/dist/esm/Radio/style/index.less +13 -6
  109. package/dist/esm/Select/option.js +4 -2
  110. package/dist/esm/Select/options.js +5 -3
  111. package/dist/esm/Select/select.js +1 -0
  112. package/dist/esm/Skeleton/demo/basic.js +2 -8
  113. package/dist/esm/Space/interface.d.ts +4 -0
  114. package/dist/esm/Space/space.js +24 -13
  115. package/dist/esm/Splitter/demo/basic.js +2 -0
  116. package/dist/esm/Splitter/demo/vertical.js +13 -5
  117. package/dist/esm/Splitter/index.d.ts +1 -1
  118. package/dist/esm/Splitter/interface.d.ts +9 -3
  119. package/dist/esm/Splitter/splitter-handler.d.ts +1 -1
  120. package/dist/esm/Splitter/splitter-handler.js +3 -1
  121. package/dist/esm/Splitter/splitter.d.ts +2 -9
  122. package/dist/esm/Splitter/splitter.js +59 -56
  123. package/dist/esm/Splitter/style/index.less +21 -0
  124. package/dist/esm/Table/demo/size.js +2 -7
  125. package/dist/esm/Tabs/hooks/useTabScroll.d.ts +1 -1
  126. package/dist/esm/Tabs/interface.d.ts +1 -1
  127. package/dist/esm/Tabs/style/index.less +4 -0
  128. package/dist/esm/Tabs/tab-header/index.js +11 -5
  129. package/dist/esm/Tooltip/interface.d.ts +4 -0
  130. package/dist/esm/Tooltip/style/index.less +8 -8
  131. package/dist/esm/Tooltip/tooltip.js +14 -2
  132. package/dist/esm/Tree/demo/draggable.d.ts +3 -0
  133. package/dist/esm/Tree/demo/draggable.js +61 -0
  134. package/dist/esm/Tree/demo/expanded.js +6 -6
  135. package/dist/esm/Tree/index.d.ts +1 -0
  136. package/dist/esm/Tree/index.js +1 -0
  137. package/dist/esm/Tree/interface.d.ts +26 -0
  138. package/dist/esm/Tree/style/index.less +25 -0
  139. package/dist/esm/Tree/tree-node.js +29 -4
  140. package/dist/esm/Tree/tree.d.ts +12 -1
  141. package/dist/esm/Tree/tree.js +135 -4
  142. package/dist/esm/Tree/utils/tree-tools.d.ts +21 -0
  143. package/dist/esm/Tree/utils/tree-tools.js +128 -1
  144. package/dist/esm/Trigger/style/index.less +17 -0
  145. package/dist/esm/Trigger/trigger.js +4 -3
  146. package/dist/esm/hooks/useDebounceFunction.d.ts +1 -1
  147. package/dist/esm/hooks/useLayoutEffect.d.ts +1 -1
  148. package/dist/esm/style/size.css +13 -4
  149. package/dist/esm/style/themes.css +1 -1
  150. package/dist/esm/style/variables.css +14 -5
  151. package/dist/esm/utils/debounce.d.ts +6 -1
  152. package/dist/esm/utils/debounce.js +9 -2
  153. package/dist/esm/version.d.ts +1 -1
  154. package/dist/esm/version.js +1 -1
  155. package/dist/umd/yee-c.min.css +2 -2
  156. package/dist/umd/yee-c.min.js +1 -1
  157. package/package.json +21 -23
  158. package/src/Alert/alert.tsx +10 -4
  159. package/src/Alert/style/index.less +3 -0
  160. package/src/Anchor/anchor-item.tsx +7 -2
  161. package/src/Anchor/anchor.tsx +49 -23
  162. package/src/Anchor/demo/auto.tsx +55 -0
  163. package/src/Anchor/demo/basic.tsx +7 -1
  164. package/src/Anchor/demo/controlled.tsx +18 -14
  165. package/src/Anchor/index.en-US.md +17 -0
  166. package/src/Anchor/index.zh-CN.md +17 -0
  167. package/src/Anchor/interface.ts +2 -0
  168. package/src/Anchor/style/index.less +2 -2
  169. package/src/Checkbox/checkbox-group.tsx +5 -1
  170. package/src/Checkbox/demo/group.tsx +1 -0
  171. package/src/Checkbox/interface.ts +5 -0
  172. package/src/Checkbox/style/index.less +21 -1
  173. package/src/Dropdown/demo/placement.tsx +1 -0
  174. package/src/Dropdown/dropdown.tsx +2 -0
  175. package/src/Dropdown/style/index.less +6 -0
  176. package/src/Form/Field.tsx +45 -3
  177. package/src/Form/Group.tsx +4 -1
  178. package/src/Form/demo/form-table.tsx +7 -7
  179. package/src/Form/demo/tooltip.tsx +72 -0
  180. package/src/Form/form-store.ts +1 -1
  181. package/src/Form/index.en-US.md +2 -0
  182. package/src/Form/index.zh-CN.md +83 -85
  183. package/src/Form/interface.ts +36 -1
  184. package/src/Form/style/index.less +22 -7
  185. package/src/Popconfirm/popconfirm.tsx +1 -1
  186. package/src/Popconfirm/style/index.less +6 -0
  187. package/src/Popover/popover.tsx +1 -1
  188. package/src/Popover/style/index.less +6 -0
  189. package/src/Progress/progress.tsx +2 -2
  190. package/src/Radio/style/index.less +13 -6
  191. package/src/Select/option.tsx +2 -1
  192. package/src/Select/options.tsx +7 -2
  193. package/src/Select/select.tsx +1 -0
  194. package/src/Skeleton/demo/basic.tsx +3 -3
  195. package/src/Space/interface.ts +4 -0
  196. package/src/Space/space.tsx +40 -16
  197. package/src/Splitter/demo/basic.tsx +2 -2
  198. package/src/Splitter/demo/vertical.tsx +19 -5
  199. package/src/Splitter/index.ts +5 -1
  200. package/src/Splitter/interface.ts +10 -3
  201. package/src/Splitter/splitter-handler.tsx +4 -2
  202. package/src/Splitter/splitter.tsx +55 -60
  203. package/src/Splitter/style/index.less +21 -0
  204. package/src/Table/demo/size.tsx +3 -3
  205. package/src/Table/index.zh-CN.md +50 -50
  206. package/src/Tabs/interface.ts +1 -1
  207. package/src/Tabs/style/index.less +4 -0
  208. package/src/Tabs/tab-header/index.tsx +26 -5
  209. package/src/Tooltip/index.en-US.md +1 -0
  210. package/src/Tooltip/index.zh-CN.md +1 -0
  211. package/src/Tooltip/interface.ts +4 -0
  212. package/src/Tooltip/style/index.less +8 -8
  213. package/src/Tooltip/tooltip.tsx +10 -1
  214. package/src/Tree/demo/draggable.tsx +58 -0
  215. package/src/Tree/demo/expanded.tsx +7 -7
  216. package/src/Tree/index.en-US.md +3 -0
  217. package/src/Tree/index.ts +1 -0
  218. package/src/Tree/index.zh-CN.md +3 -0
  219. package/src/Tree/interface.ts +28 -0
  220. package/src/Tree/style/index.less +25 -0
  221. package/src/Tree/tree-node.tsx +26 -0
  222. package/src/Tree/tree.tsx +183 -2
  223. package/src/Tree/utils/tree-tools.ts +107 -0
  224. package/src/Trigger/style/index.less +17 -0
  225. package/src/Trigger/trigger.tsx +3 -1
  226. package/src/style/size.css +13 -4
  227. package/src/utils/debounce.ts +22 -3
  228. package/src/version.ts +1 -1
@@ -165,58 +165,61 @@ var Wrapper = (_a) => {
165
165
  const refs = (0, import_react.useRef)({});
166
166
  const arr = import_react.default.Children.toArray(children);
167
167
  import_react.default.Children.forEach(children, (child, index) => {
168
- const n = index + 1;
169
- const { style } = child.props || {};
170
- let currentSize;
171
- let min = void 0;
172
- let max = void 0;
173
- if (itemsSize && itemsSize[index]) {
174
- ({ currentSize, min, max } = itemsSize[index]);
175
- }
176
- wrappered.push(
177
- import_react.default.cloneElement(child, {
178
- style: __spreadProps(__spreadValues({}, style), {
179
- // If there is a border or other size-related design, it may cause calculation issues
180
- flexBasis: currentSize
181
- }),
182
- min,
183
- max,
184
- index: n,
185
- key: n,
186
- ref: (el) => {
187
- refs.current[`item${n}`] = {
188
- el,
189
- props: child.props,
190
- size: { min, max }
191
- };
192
- }
193
- })
194
- );
195
- const next = arr[index + 1];
196
- if (!next || !import_react.default.isValidElement(next)) {
197
- return;
198
- }
199
- const { flexable, expandable } = child.props || {};
200
- const { expandable: nextExpandable } = next.props || {};
201
- const _expandable = { start: false, end: false };
202
- if (expandable) {
203
- _expandable.start = true;
204
- }
205
- if (nextExpandable) {
206
- _expandable.end = true;
207
- }
208
- wrappered.push(
209
- /* @__PURE__ */ import_react.default.createElement(
210
- import_splitter_handler.default,
211
- __spreadProps(__spreadValues({}, props), {
168
+ if (import_react.default.isValidElement(child)) {
169
+ const n = index + 1;
170
+ const { style } = child.props || {};
171
+ let currentSize;
172
+ let min = void 0;
173
+ let max = void 0;
174
+ if (itemsSize && itemsSize[index]) {
175
+ ({ currentSize, min, max } = itemsSize[index]);
176
+ }
177
+ wrappered.push(
178
+ import_react.default.cloneElement(child, {
179
+ // @ts-ignore
180
+ style: __spreadProps(__spreadValues({}, style), {
181
+ // If there is a border or other size-related design, it may cause calculation issues
182
+ flexBasis: currentSize
183
+ }),
184
+ min,
185
+ max,
212
186
  index: n,
213
- flexable,
214
- expandable: _expandable,
215
- onClick,
216
- key: `handler-${n}`
187
+ key: n,
188
+ ref: (el) => {
189
+ refs.current[`item${n}`] = {
190
+ el,
191
+ props: child.props,
192
+ size: { min, max }
193
+ };
194
+ }
217
195
  })
218
- )
219
- );
196
+ );
197
+ const next = arr[index + 1];
198
+ if (!next || !import_react.default.isValidElement(next)) {
199
+ return;
200
+ }
201
+ const { flexable, expandable } = child.props || {};
202
+ const { expandable: nextExpandable } = next.props || {};
203
+ const _expandable = { start: false, end: false };
204
+ if (expandable) {
205
+ _expandable.start = true;
206
+ }
207
+ if (nextExpandable) {
208
+ _expandable.end = true;
209
+ }
210
+ wrappered.push(
211
+ /* @__PURE__ */ import_react.default.createElement(
212
+ import_splitter_handler.default,
213
+ __spreadProps(__spreadValues({}, props), {
214
+ index: n,
215
+ flexable,
216
+ expandable: _expandable,
217
+ onClick,
218
+ key: `handler-${n}`
219
+ })
220
+ )
221
+ );
222
+ }
220
223
  });
221
224
  return /* @__PURE__ */ import_react.default.createElement(SplitterWrapperCtx.Provider, { value: { refs } }, wrappered);
222
225
  };
@@ -10,8 +10,18 @@
10
10
  var(--yee-splitter-border-color);
11
11
  }
12
12
 
13
+ &-horizontal {
14
+ @{pls}-handler {
15
+ cursor: e-resize;
16
+ }
17
+ }
18
+
13
19
  &-vertical {
14
20
  flex-direction: column;
21
+
22
+ @{pls}-handler {
23
+ cursor: n-resize;
24
+ }
15
25
  }
16
26
  }
17
27
 
@@ -77,8 +87,19 @@
77
87
  transition:
78
88
  background 0.2s ease-in-out,
79
89
  opacity 0.2s ease-in-out;
90
+ border-radius: 2px;
80
91
  content: '';
81
92
  }
93
+
94
+ &:hover {
95
+ &::after {
96
+ background-color: color-mix(
97
+ in srgb,
98
+ var(--yee-splitter-handler-color),
99
+ black 20%
100
+ );
101
+ }
102
+ }
82
103
  }
83
104
 
84
105
  &-flexable {
@@ -72,5 +72,5 @@ var size_default = () => {
72
72
  address: "Sidney No. 1 Lake Park"
73
73
  }
74
74
  ];
75
- return /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { direction: "vertical", style: { width: "100%" } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Table, { columns, dataSource, size: "small" }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Table, { columns, dataSource, size: "default" }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Table, { columns, dataSource, size: "large" }));
75
+ return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Table, { columns, dataSource, size: "small" }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Table, { columns, dataSource, size: "default" }), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Table, { columns, dataSource, size: "large" }));
76
76
  };
@@ -7,6 +7,6 @@ interface UseTabScrollOptions {
7
7
  }
8
8
  export declare function useTabScroll({ direction, navContainer, navList, enabled, }: UseTabScrollOptions): {
9
9
  refreshKey: number;
10
- updateShadow: () => void;
10
+ updateShadow: import("../../utils/debounce").Debounced<() => void>;
11
11
  };
12
12
  export {};
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { DataAttributeProps } from '../utils/types';
3
- type SemanticDOM = 'header' | 'content';
3
+ type SemanticDOM = 'header' | 'content' | 'track' | 'list' | 'activeBar';
4
4
  export type TabItemType = {
5
5
  /**
6
6
  * Unique key corresponding to activeKey
@@ -522,6 +522,10 @@
522
522
  // background-color: var(--yee-color-bg-container);
523
523
  }
524
524
 
525
+ @{pls}-tab-content {
526
+ height: 100%;
527
+ }
528
+
525
529
  @{pls}-active {
526
530
  z-index: 2;
527
531
 
@@ -63,7 +63,15 @@ var TabHeaderCtx = (0, import_react.createContext)(
63
63
  );
64
64
  var TabHeader = (props) => {
65
65
  const { items, activeKey } = (0, import_react.useContext)(import_tabs.TabsCtx);
66
- const { prefixCls, type, position = "top", headerExtra, onEdit } = props;
66
+ const {
67
+ prefixCls,
68
+ type,
69
+ position = "top",
70
+ headerExtra,
71
+ classNames,
72
+ styles,
73
+ onEdit
74
+ } = props;
67
75
  const direction = position === "top" || position === "bottom" ? "horizontal" : "vertical";
68
76
  const activebar = (0, import_react.useRef)(null);
69
77
  const activetab = (0, import_react.useRef)(null);
@@ -125,7 +133,8 @@ var TabHeader = (props) => {
125
133
  );
126
134
  const cls = (0, import_clsx.default)(
127
135
  `${prefixCls}-nav-wrapper`,
128
- `${prefixCls}-nav-wrapper-${position}`
136
+ `${prefixCls}-nav-wrapper-${position}`,
137
+ classNames == null ? void 0 : classNames.header
129
138
  );
130
139
  const contextValue = {
131
140
  activetab,
@@ -135,32 +144,54 @@ var TabHeader = (props) => {
135
144
  refreshDropdownTabs: refreshKey,
136
145
  setRange
137
146
  };
138
- return /* @__PURE__ */ import_react.default.createElement("div", { className: cls }, renderPrefixExtra(), /* @__PURE__ */ import_react.default.createElement(TabHeaderCtx.Provider, { value: contextValue }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-nav-wrap`, ref: navContainer }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-nav-list`, ref: navList }, items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ import_react.default.createElement(
139
- import_tab_header_title.default,
140
- __spreadProps(__spreadValues({}, item), {
141
- $key: item.key,
142
- key: item.key,
143
- index
144
- })
145
- )), !type && /* @__PURE__ */ import_react.default.createElement(
147
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: cls, style: styles == null ? void 0 : styles.header }, renderPrefixExtra(), /* @__PURE__ */ import_react.default.createElement(TabHeaderCtx.Provider, { value: contextValue }, /* @__PURE__ */ import_react.default.createElement(
146
148
  "div",
147
149
  {
148
- className: `${prefixCls}-active-bar`,
149
- ref: activebar,
150
- "aria-hidden": "true"
151
- }
152
- ), type === "editable-card" && /* @__PURE__ */ import_react.default.createElement(
153
- "span",
154
- {
155
- className: `${prefixCls}-nav-add`,
156
- onClick: handleAddTab,
157
- role: "button",
158
- tabIndex: 0,
159
- "aria-label": "Add tab",
160
- onKeyDown: handleAddKeyDown
150
+ className: (0, import_clsx.default)(`${prefixCls}-nav-wrap`, classNames == null ? void 0 : classNames.track),
151
+ style: styles == null ? void 0 : styles.track,
152
+ ref: navContainer
161
153
  },
162
- /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Plus, { size: 14, strokeWidth: 1.5 })
163
- ))), moreOpen && /* @__PURE__ */ import_react.default.createElement(import_dropdown_tabs.default, { visible: moreOpen, items: items || [], range }, /* @__PURE__ */ import_react.default.createElement(
154
+ /* @__PURE__ */ import_react.default.createElement(
155
+ "div",
156
+ {
157
+ className: (0, import_clsx.default)(`${prefixCls}-nav-list`, classNames == null ? void 0 : classNames.list),
158
+ style: styles == null ? void 0 : styles.list,
159
+ ref: navList
160
+ },
161
+ items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ import_react.default.createElement(
162
+ import_tab_header_title.default,
163
+ __spreadProps(__spreadValues({}, item), {
164
+ $key: item.key,
165
+ key: item.key,
166
+ index
167
+ })
168
+ )),
169
+ !type && /* @__PURE__ */ import_react.default.createElement(
170
+ "div",
171
+ {
172
+ className: (0, import_clsx.default)(
173
+ `${prefixCls}-active-bar`,
174
+ classNames == null ? void 0 : classNames.activeBar
175
+ ),
176
+ style: styles == null ? void 0 : styles.activeBar,
177
+ ref: activebar,
178
+ "aria-hidden": "true"
179
+ }
180
+ ),
181
+ type === "editable-card" && /* @__PURE__ */ import_react.default.createElement(
182
+ "span",
183
+ {
184
+ className: `${prefixCls}-nav-add`,
185
+ onClick: handleAddTab,
186
+ role: "button",
187
+ tabIndex: 0,
188
+ "aria-label": "Add tab",
189
+ onKeyDown: handleAddKeyDown
190
+ },
191
+ /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Plus, { size: 14, strokeWidth: 1.5 })
192
+ )
193
+ )
194
+ ), moreOpen && /* @__PURE__ */ import_react.default.createElement(import_dropdown_tabs.default, { visible: moreOpen, items: items || [], range }, /* @__PURE__ */ import_react.default.createElement(
164
195
  import_Button.default,
165
196
  {
166
197
  className: `${prefixCls}-nav-more`,
@@ -10,4 +10,8 @@ export interface TooltipProps extends Omit<TriggerProps, 'popup'> {
10
10
  * @default 0.1
11
11
  */
12
12
  mouseEnterDelay?: number;
13
+ /***
14
+ * Tooltip custom background color
15
+ * */
16
+ color?: string;
13
17
  }
@@ -8,19 +8,19 @@
8
8
 
9
9
  &-arrow {
10
10
  &::after {
11
- position: absolute;
12
- bottom: 0;
13
- z-index: 0;
14
- width: var(--yee-tooltip-arrow-width);
15
- height: var(--yee-tooltip-arrow-height);
16
- margin: auto;
11
+ // position: absolute;
12
+ // bottom: 0;
13
+ // z-index: 0;
14
+ // width: var(--yee-tooltip-arrow-width);
15
+ // height: var(--yee-tooltip-arrow-height);
16
+ // margin: auto;
17
17
  background-color: var(--yee-tooltip-bg-color);
18
18
  border-radius: var(--yee-tooltip-arrow-border-radius);
19
19
  box-shadow: var(--yee-box-shadow-popover-arrow);
20
20
  transform: translateY(var(--yee-tooltip-arrow-translate-y))
21
21
  rotate(var(--yee-tooltip-arrow-rotate));
22
- content: '';
23
- inset-inline: 0;
22
+ // content: '';
23
+ // inset-inline: 0;
24
24
  }
25
25
  }
26
26
  }
@@ -76,7 +76,10 @@ var Tooltip = (baseprops) => {
76
76
  children,
77
77
  placement = "top",
78
78
  trigger = ["hover", "focus"],
79
- mouseEnterDelay = 0.1
79
+ mouseEnterDelay = 0.1,
80
+ color,
81
+ popupStyle,
82
+ hideOnClick = false
80
83
  } = _a, rest = __objRest(_a, [
81
84
  "prefixCls",
82
85
  "title",
@@ -84,8 +87,12 @@ var Tooltip = (baseprops) => {
84
87
  "children",
85
88
  "placement",
86
89
  "trigger",
87
- "mouseEnterDelay"
90
+ "mouseEnterDelay",
91
+ "color",
92
+ "popupStyle",
93
+ "hideOnClick"
88
94
  ]);
95
+ const mergedPopupStyle = __spreadValues(__spreadValues({}, color ? { ["--yee-tooltip-bg-color"]: color } : null), popupStyle);
89
96
  const popup = /* @__PURE__ */ import_react.default.createElement("span", { className: `${prefixCls}-content`, role: "tooltip" }, typeof title === "function" ? title() : title);
90
97
  return /* @__PURE__ */ import_react.default.createElement(
91
98
  import_Trigger.default,
@@ -95,7 +102,8 @@ var Tooltip = (baseprops) => {
95
102
  popup,
96
103
  arrow,
97
104
  placement,
98
- hideOnClick: false,
105
+ hideOnClick,
106
+ popupStyle: mergedPopupStyle,
99
107
  mouseEnterDelay
100
108
  }),
101
109
  children
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,88 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/Tree/demo/draggable.tsx
30
+ var draggable_exports = {};
31
+ __export(draggable_exports, {
32
+ default: () => draggable_default
33
+ });
34
+ module.exports = __toCommonJS(draggable_exports);
35
+ var import_yee_c = require("../..");
36
+ var import_react = __toESM(require("react"));
37
+ var FIELD_NAMES = {
38
+ key: "key",
39
+ label: "label",
40
+ children: "children"
41
+ };
42
+ var draggable_default = () => {
43
+ const [data, setData] = (0, import_react.useState)([
44
+ {
45
+ label: "parent 1",
46
+ key: "0-0",
47
+ children: [
48
+ {
49
+ label: "parent 1-0",
50
+ key: "0-0-0",
51
+ children: [
52
+ { label: "leaf-1", key: "0-0-0-0" },
53
+ { label: "leaf-2", key: "0-0-0-1" }
54
+ ]
55
+ },
56
+ {
57
+ label: "parent 1-1",
58
+ key: "0-0-1",
59
+ children: [{ label: "leaf-3", key: "0-0-1-0" }]
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ label: "parent 2",
65
+ key: "0-1",
66
+ children: [{ label: "leaf-4", key: "0-1-0" }]
67
+ }
68
+ ]);
69
+ return /* @__PURE__ */ import_react.default.createElement(
70
+ import_yee_c.Tree,
71
+ {
72
+ draggable: true,
73
+ defaultExpandAll: true,
74
+ dataSource: data,
75
+ onDrop: (info) => setData(
76
+ (prev) => (0, import_yee_c.moveTreeNode)(
77
+ prev,
78
+ {
79
+ dragKey: info.dragKey,
80
+ dropKey: info.dropKey,
81
+ position: info.position
82
+ },
83
+ FIELD_NAMES
84
+ )
85
+ )
86
+ }
87
+ );
88
+ };
@@ -38,29 +38,29 @@ var expanded_default = () => {
38
38
  const [expandedKeys, setExpandedKeys] = (0, import_react.useState)(["0-0", "0-0-0"]);
39
39
  const treeData = [
40
40
  {
41
- title: "parent 1",
41
+ label: "parent 1",
42
42
  key: "0-0",
43
43
  children: [
44
44
  {
45
- title: "parent 1-0",
45
+ label: "parent 1-0",
46
46
  key: "0-0-0",
47
47
  children: [
48
48
  {
49
- title: "leaf",
49
+ label: "leaf",
50
50
  key: "0-0-0-0"
51
51
  },
52
52
  {
53
- title: "leaf",
53
+ label: "leaf",
54
54
  key: "0-0-0-1"
55
55
  }
56
56
  ]
57
57
  },
58
58
  {
59
- title: "parent 1-1",
59
+ label: "parent 1-1",
60
60
  key: "0-0-1",
61
61
  children: [
62
62
  {
63
- title: "leaf",
63
+ label: "leaf",
64
64
  key: "0-0-1-0"
65
65
  }
66
66
  ]
@@ -1,3 +1,4 @@
1
1
  import Tree from './tree';
2
2
  export type { TreeProps } from './interface';
3
+ export { moveTreeNode } from './utils/tree-tools';
3
4
  export default Tree;
@@ -29,8 +29,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/Tree/index.ts
30
30
  var Tree_exports = {};
31
31
  __export(Tree_exports, {
32
- default: () => Tree_default
32
+ default: () => Tree_default,
33
+ moveTreeNode: () => import_tree_tools.moveTreeNode
33
34
  });
34
35
  module.exports = __toCommonJS(Tree_exports);
35
36
  var import_tree = __toESM(require("./tree"));
37
+ var import_tree_tools = require("./utils/tree-tools");
36
38
  var Tree_default = import_tree.default;
@@ -1,5 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export type SemanticType = '';
3
+ export type DragPosition = 'before' | 'after' | 'inside';
4
+ export type { MoveInfo } from './utils/tree-tools';
3
5
  export type TreeNode<T> = {
4
6
  /**
5
7
  * uid
@@ -102,6 +104,30 @@ export interface TreeProps<T> {
102
104
  * Whether to allow dragging
103
105
  */
104
106
  draggable?: boolean;
107
+ /**
108
+ * Whether to allow dropping a dragged node at the given position.
109
+ * Return false to forbid the drop (cursor shows "no-drop").
110
+ */
111
+ allowDrop?: (info: {
112
+ dragNode: T;
113
+ dropNode: T;
114
+ position: DragPosition;
115
+ }) => boolean;
116
+ /**
117
+ * Callback after a node is dropped. Pure controlled: the Tree does not
118
+ * mutate dataSource — reorder it yourself (e.g. with `moveTreeNode`).
119
+ */
120
+ onDrop?: (info: {
121
+ /** Original data of the dragged node */
122
+ dragNode: T;
123
+ /** Original data of the target node */
124
+ dropNode: T;
125
+ dragKey: string | number;
126
+ dropKey: string | number;
127
+ position: DragPosition;
128
+ /** Convenience flag: true when position is 'before' or 'after' */
129
+ dropToGap: boolean;
130
+ }) => void;
105
131
  /**
106
132
  * Whether to show connecting lines
107
133
  */
@@ -2,11 +2,36 @@
2
2
 
3
3
  @{pls} {
4
4
  &-node {
5
+ position: relative;
5
6
  display: flex;
6
7
  align-items: center;
7
8
  justify-content: flex-start;
8
9
  height: var(--yee-tree-node-height);
9
10
 
11
+ &[draggable='true'] {
12
+ cursor: grab;
13
+ }
14
+
15
+ &-dragging {
16
+ opacity: 0.4;
17
+ }
18
+
19
+ &-drag-over-before {
20
+ box-shadow: inset 0 2px 0 0 var(--yee-primary-color);
21
+ }
22
+
23
+ &-drag-over-after {
24
+ box-shadow: inset 0 -2px 0 0 var(--yee-primary-color);
25
+ }
26
+
27
+ &-drag-over-inside {
28
+ background: color-mix(
29
+ in srgb,
30
+ var(--yee-primary-color) 12%,
31
+ transparent
32
+ );
33
+ }
34
+
10
35
  &-switcher {
11
36
  display: inline-flex;
12
37
  align-items: center;
@@ -2,8 +2,22 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
7
21
  var __export = (target, all) => {
8
22
  for (var name in all)
9
23
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -64,9 +78,16 @@ var Node = (props) => {
64
78
  checkedKeys,
65
79
  expandedKeys,
66
80
  switcherIcon,
81
+ draggable,
82
+ draggingKey,
83
+ dropState,
67
84
  onCheck,
68
85
  onSelect,
69
- onExpand
86
+ onExpand,
87
+ onNodeDragStart,
88
+ onNodeDragOver,
89
+ onNodeDragLeave,
90
+ onNodeDrop
70
91
  } = (0, import_react.useContext)(import_tree.TreeContext);
71
92
  const expanded = expandedKeys.includes(key);
72
93
  const checked = checkedKeys.includes(key);
@@ -143,15 +164,28 @@ var Node = (props) => {
143
164
  }
144
165
  ));
145
166
  };
167
+ const isDropTarget = (dropState == null ? void 0 : dropState.key) === key;
168
+ const dropPosition = isDropTarget ? dropState.position : null;
169
+ const dragProps = draggable && !disabled ? {
170
+ draggable: true,
171
+ onDragStart: (e) => onNodeDragStart(key, e),
172
+ onDragOver: (e) => onNodeDragOver(key, e),
173
+ onDragLeave: (e) => onNodeDragLeave(key, e),
174
+ onDrop: (e) => onNodeDrop(key, e)
175
+ } : {};
146
176
  return /* @__PURE__ */ import_react.default.createElement(
147
177
  "div",
148
- {
178
+ __spreadValues({
149
179
  className: (0, import_clsx.default)(`${prefixCls}-node`, {
150
180
  [`${prefixCls}-node-with-line`]: showLine,
151
181
  [`${prefixCls}-leaf-node`]: isLeaf,
152
- [`${prefixCls}-last-node`]: isLast
182
+ [`${prefixCls}-last-node`]: isLast,
183
+ [`${prefixCls}-node-dragging`]: draggingKey === key,
184
+ [`${prefixCls}-node-drag-over-before`]: dropPosition === "before",
185
+ [`${prefixCls}-node-drag-over-after`]: dropPosition === "after",
186
+ [`${prefixCls}-node-drag-over-inside`]: dropPosition === "inside"
153
187
  })
154
- },
188
+ }, dragProps),
155
189
  renderEmptyNodes(depth),
156
190
  renderExpandedIcon(),
157
191
  renderCheckbox(),