@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
@@ -26,14 +26,17 @@ var AnchorItem = function AnchorItem(props) {
26
26
  var _useContext = useContext(AnchorContext),
27
27
  prefixCls = _useContext.prefixCls,
28
28
  activeKey = _useContext.activeKey,
29
- onClick = _useContext.onClick;
29
+ onClick = _useContext.onClick,
30
+ classNames = _useContext.classNames,
31
+ styles = _useContext.styles;
32
+ var isActive = targetKey === activeKey;
30
33
  var handleClick = function handleClick(e) {
31
34
  e.preventDefault();
32
35
  e.stopPropagation();
33
36
  onClick === null || onClick === void 0 || onClick(targetKey);
34
37
  };
35
- var cls = clsx("".concat(prefixCls, "-item"), _defineProperty(_defineProperty({}, "".concat(prefixCls, "-item-active"), targetKey === activeKey), "".concat(prefixCls, "-item-").concat(status), status), className);
36
- var itemStyle = _objectSpread(_objectSpread({}, style), {}, {
38
+ var cls = clsx("".concat(prefixCls, "-item"), _defineProperty(_defineProperty({}, "".concat(prefixCls, "-item-active"), isActive), "".concat(prefixCls, "-item-").concat(status), status), className, isActive && (classNames === null || classNames === void 0 ? void 0 : classNames.active));
39
+ var itemStyle = _objectSpread(_objectSpread(_objectSpread({}, style), isActive ? styles === null || styles === void 0 ? void 0 : styles.active : undefined), {}, {
37
40
  paddingLeft: "".concat(level * INDENT_WIDTH, "px")
38
41
  });
39
42
  var renderItem = /*#__PURE__*/React.createElement("li", _extends({
@@ -61,12 +61,19 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
61
61
  anchorList = _useState2[0],
62
62
  setAnchorList = _useState2[1];
63
63
  var containerRef = useRef(null);
64
+ var activeKeyRef = useRef(mergedActiveKey);
65
+ useEffect(function () {
66
+ activeKeyRef.current = mergedActiveKey;
67
+ }, [mergedActiveKey]);
64
68
 
65
69
  // Auto-generate anchor list from DOM
66
70
  var generateAnchorList = useCallback(function () {
67
71
  if (!auto || !name) return;
68
72
  var list = [];
69
- var elements = document.querySelectorAll("[data-anchor-group=\"".concat(name, "\"]"));
73
+ // Escape `name` before interpolating into the attribute selector: a raw
74
+ // value containing quotes / brackets / backslashes would either break the
75
+ // selector (throwing) or open an injection vector.
76
+ var elements = document.querySelectorAll("[data-anchor-group=\"".concat(CSS.escape(name), "\"]"));
70
77
  elements.forEach(function (element) {
71
78
  var key = element.getAttribute('id') || '';
72
79
  var title = element.getAttribute('data-anchor-title') || '';
@@ -86,6 +93,12 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
86
93
  generateAnchorList();
87
94
  }
88
95
  }, [auto, generateAnchorList]);
96
+ var getTargetOffsetTop = useCallback(function (target) {
97
+ var container = containerRef.current;
98
+ var containerTop = container === window ? 0 : container.getBoundingClientRect().top;
99
+ var currentScroll = container === window ? window.scrollY : container.scrollTop;
100
+ return currentScroll + (target.getBoundingClientRect().top - containerTop);
101
+ }, []);
89
102
 
90
103
  // Handle scroll to update active key
91
104
  var handleScroll = useCallback(function () {
@@ -100,27 +113,28 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
100
113
  var item = currentItems[i];
101
114
  var target = document.getElementById(item.key);
102
115
  if (target) {
103
- var targetTop = target.offsetTop;
116
+ var targetTop = getTargetOffsetTop(target);
104
117
  if (scrollTop + offsetTop >= targetTop) {
105
- setMergedActiveKey(item.key);
106
- onChange === null || onChange === void 0 || onChange(item.key);
118
+ if (activeKeyRef.current !== item.key) {
119
+ setMergedActiveKey(item.key);
120
+ onChange === null || onChange === void 0 || onChange(item.key);
121
+ }
107
122
  break;
108
123
  }
109
124
  }
110
125
  }
111
- }, [auto, anchorList, items, offsetTop, onChange]);
126
+ }, [auto, anchorList, items, offsetTop, onChange, getTargetOffsetTop]);
112
127
  useEffect(function () {
113
- var container = getContainer ? getContainer() : window;
114
- containerRef.current = container;
115
- if (container && typeof activeKey === 'undefined') {
116
- var debouncedScroll = debounce(handleScroll, 100);
117
- container.addEventListener('scroll', debouncedScroll);
118
- handleScroll();
119
- return function () {
120
- container.removeEventListener('scroll', debouncedScroll);
121
- };
122
- }
123
- }, [getContainer, handleScroll, activeKey]);
128
+ var container = containerRef.current;
129
+ if (!container) return;
130
+ var debouncedScroll = debounce(handleScroll, 100);
131
+ container.addEventListener('scroll', debouncedScroll);
132
+ handleScroll();
133
+ return function () {
134
+ container.removeEventListener('scroll', debouncedScroll);
135
+ debouncedScroll.cancel();
136
+ };
137
+ }, [getContainer, handleScroll]);
124
138
 
125
139
  // Scroll to target when activeKey changes
126
140
  var scrollToAnchor = useCallback(function (key) {
@@ -128,7 +142,7 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
128
142
  if (!target) return;
129
143
  var container = containerRef.current;
130
144
  if (!container) return;
131
- var targetTop = target.offsetTop - offsetTop;
145
+ var targetTop = getTargetOffsetTop(target) - offsetTop;
132
146
  if (container === window) {
133
147
  window.scrollTo({
134
148
  top: targetTop,
@@ -140,7 +154,10 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
140
154
  behavior: 'smooth'
141
155
  });
142
156
  }
143
- }, [offsetTop]);
157
+ }, [offsetTop, getTargetOffsetTop]);
158
+ useLayoutEffect(function () {
159
+ containerRef.current = getContainer ? getContainer() : window;
160
+ }, [getContainer]);
144
161
  useLayoutEffect(function () {
145
162
  if (defaultActiveKey) {
146
163
  scrollToAnchor(defaultActiveKey);
@@ -158,7 +175,9 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
158
175
  var contextValue = {
159
176
  prefixCls: prefixCls,
160
177
  activeKey: mergedActiveKey,
161
- onClick: handleItemClick
178
+ onClick: handleItemClick,
179
+ classNames: classNames,
180
+ styles: styles
162
181
  };
163
182
  var renderNavArrow = function renderNavArrow() {
164
183
  if (!affix || direction !== 'vertical') return null;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * `auto` mode: the anchor list is generated from the DOM. Decorate each target
4
+ * section with the following attributes:
5
+ * - data-anchor-group="<name>" must match the Anchor's `name` prop
6
+ * - id="<key>" used as the anchor key and scroll target
7
+ * - data-anchor-title="<title>" the nav label (required; a section without it is skipped)
8
+ * - data-anchor-status="success | error | warning" optional status badge color
9
+ */
10
+ declare const _default: () => React.JSX.Element;
11
+ export default _default;
@@ -0,0 +1,62 @@
1
+ import { Anchor } from "../..";
2
+ import React from 'react';
3
+
4
+ /**
5
+ * `auto` mode: the anchor list is generated from the DOM. Decorate each target
6
+ * section with the following attributes:
7
+ * - data-anchor-group="<name>" must match the Anchor's `name` prop
8
+ * - id="<key>" used as the anchor key and scroll target
9
+ * - data-anchor-title="<title>" the nav label (required; a section without it is skipped)
10
+ * - data-anchor-status="success | error | warning" optional status badge color
11
+ */
12
+ export default (function () {
13
+ return /*#__PURE__*/React.createElement("div", {
14
+ id: "auto-container",
15
+ style: {
16
+ display: 'flex',
17
+ height: 300,
18
+ overflow: 'auto'
19
+ }
20
+ }, /*#__PURE__*/React.createElement(Anchor, {
21
+ auto: true,
22
+ name: "article",
23
+ affix: false,
24
+ defaultActiveKey: "auto-intro",
25
+ getContainer: function getContainer() {
26
+ return document.getElementById('auto-container');
27
+ }
28
+ }), /*#__PURE__*/React.createElement("div", {
29
+ style: {
30
+ flex: 1,
31
+ padding: 20
32
+ }
33
+ }, /*#__PURE__*/React.createElement("section", {
34
+ id: "auto-intro",
35
+ "data-anchor-group": "article",
36
+ "data-anchor-title": "Introduction",
37
+ style: {
38
+ height: 300,
39
+ background: '#f0f0f0',
40
+ marginBottom: 20
41
+ }
42
+ }, "Introduction"), /*#__PURE__*/React.createElement("section", {
43
+ id: "auto-usage",
44
+ "data-anchor-group": "article",
45
+ "data-anchor-title": "Usage",
46
+ "data-anchor-status": "success",
47
+ style: {
48
+ height: 300,
49
+ background: '#e0e0e0',
50
+ marginBottom: 20
51
+ }
52
+ }, "Usage"), /*#__PURE__*/React.createElement("section", {
53
+ id: "auto-caveats",
54
+ "data-anchor-group": "article",
55
+ "data-anchor-title": "Caveats",
56
+ "data-anchor-status": "warning",
57
+ style: {
58
+ height: 300,
59
+ background: '#d0d0d0'
60
+ }
61
+ }, "Caveats")));
62
+ });
@@ -14,9 +14,11 @@ export default (function () {
14
14
  return /*#__PURE__*/React.createElement("div", {
15
15
  id: "basic-container",
16
16
  style: {
17
+ position: 'relative',
17
18
  display: 'flex',
18
19
  height: '100vh',
19
- overflow: 'auto'
20
+ overflow: 'auto',
21
+ transform: 'scale(1)'
20
22
  }
21
23
  }, /*#__PURE__*/React.createElement(Anchor, {
22
24
  items: items,
@@ -5,24 +5,24 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
5
5
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
7
  import { Anchor } from "../..";
8
- import React, { useState } from 'react';
8
+ import React, { useRef, useState } from 'react';
9
9
  export default (function () {
10
10
  var _useState = useState('part1'),
11
11
  _useState2 = _slicedToArray(_useState, 2),
12
12
  activeKey = _useState2[0],
13
13
  setActiveKey = _useState2[1];
14
+ var containerRef = useRef(null);
14
15
  var onChange = function onChange(key) {
15
16
  console.log('Anchor changed to:', key);
16
17
  setActiveKey(key);
17
18
  };
18
19
  return /*#__PURE__*/React.createElement("div", {
19
20
  style: {
20
- display: 'flex'
21
- }
22
- }, /*#__PURE__*/React.createElement("div", {
23
- style: {
24
- width: '200px'
25
- }
21
+ display: 'flex',
22
+ height: '200px',
23
+ overflow: 'auto'
24
+ },
25
+ ref: containerRef
26
26
  }, /*#__PURE__*/React.createElement(Anchor, {
27
27
  items: [{
28
28
  key: 'part1',
@@ -34,9 +34,14 @@ export default (function () {
34
34
  key: 'part3',
35
35
  title: 'Part 3'
36
36
  }],
37
+ direction: "vertical",
38
+ affix: false,
37
39
  activeKey: activeKey,
38
- onChange: onChange
39
- })), /*#__PURE__*/React.createElement("div", {
40
+ onChange: onChange,
41
+ getContainer: function getContainer() {
42
+ return containerRef.current;
43
+ }
44
+ }), /*#__PURE__*/React.createElement("div", {
40
45
  style: {
41
46
  flex: 1,
42
47
  padding: '20px'
@@ -119,4 +119,6 @@ export interface AnchorContextType {
119
119
  prefixCls: string;
120
120
  activeKey?: string;
121
121
  onClick?: (key: string) => void;
122
+ classNames?: Partial<Record<AnchorSemanticDOM, string>>;
123
+ styles?: Partial<Record<AnchorSemanticDOM, React.CSSProperties>>;
122
124
  }
@@ -53,7 +53,7 @@
53
53
  width: var(--yee-anchor-static-item-active-width);
54
54
  height: var(--yee-anchor-static-item-active-height);
55
55
  border: none;
56
- border-radius: 0;
56
+ border-radius: var(--yee-anchor-static-item-active-width);
57
57
  background-color: var(--yee-anchor-item-active-font-color);
58
58
  }
59
59
  }
@@ -165,7 +165,7 @@
165
165
 
166
166
  &-item {
167
167
  position: relative;
168
- padding: var(--yee-anchor-item-padding);
168
+ margin: var(--yee-anchor-item-padding);
169
169
  white-space: nowrap;
170
170
  color: var(--yee-anchor-item-font-color);
171
171
  cursor: pointer;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { ButtonProps } from './interface';
3
3
  import './style/index.less';
4
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
4
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
5
5
  export default Button;
@@ -39,6 +39,8 @@ var CheckboxGroup = function CheckboxGroup(baseprops) {
39
39
  options = props.options,
40
40
  buttonStyle = props.buttonStyle,
41
41
  disabled = props.disabled,
42
+ _props$layout = props.layout,
43
+ layout = _props$layout === void 0 ? 'horizontal' : _props$layout,
42
44
  onChange = props.onChange;
43
45
  var _useMergedState = useMergedState([], {
44
46
  value: value,
@@ -47,7 +49,7 @@ var CheckboxGroup = function CheckboxGroup(baseprops) {
47
49
  _useMergedState2 = _slicedToArray(_useMergedState, 2),
48
50
  mergedValue = _useMergedState2[0],
49
51
  setMergedValue = _useMergedState2[1];
50
- var cls = clsx(prefixCls, _defineProperty(_defineProperty({}, "".concat(prefixCls, "-").concat(buttonStyle), buttonStyle), "".concat(prefixCls, "-disabled"), disabled), className);
52
+ var cls = clsx(prefixCls, ["".concat(prefixCls, "-").concat(layout)], _defineProperty(_defineProperty({}, "".concat(prefixCls, "-").concat(buttonStyle), buttonStyle), "".concat(prefixCls, "-disabled"), disabled), className);
51
53
  var handleChange = function handleChange(event) {
52
54
  var value = event.target.value;
53
55
  var newValue = mergedValue.includes(value) ? mergedValue.filter(function (i) {
@@ -71,7 +73,7 @@ var CheckboxGroup = function CheckboxGroup(baseprops) {
71
73
  }, option, {
72
74
  checked: mergedValue.includes(option.value),
73
75
  key: option.value || index
74
- }));
76
+ }), option.label);
75
77
  })));
76
78
  };
77
79
  CheckboxGroup.displayName = 'CheckboxGroup';
@@ -36,6 +36,7 @@ export default (function () {
36
36
  }), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(Checkbox.Group, {
37
37
  value: value,
38
38
  onChange: onChange,
39
+ layout: "vertical",
39
40
  options: [{
40
41
  value: 'A',
41
42
  label: 'Option A'
@@ -93,6 +93,11 @@ export interface CheckboxGroupProps {
93
93
  * Options
94
94
  */
95
95
  options?: Array<CheckboxOption>;
96
+ /**
97
+ * group layout
98
+ * @default horizontal
99
+ */
100
+ layout?: 'horizontal' | 'vertical';
96
101
  /**
97
102
  * Callback when value changes
98
103
  */
@@ -33,6 +33,10 @@
33
33
  background-color: var(--yee-checkbox-checked-bg-color);
34
34
  border-color: var(--yee-checkbox-checked-border-color);
35
35
 
36
+ --ye-checkbox-checked-border-color: var(
37
+ --yee-checkbox-checked-after-border-color
38
+ );
39
+
36
40
  &::after {
37
41
  position: absolute;
38
42
  top: 50%;
@@ -41,7 +45,7 @@
41
45
  width: var(--yee-checkbox-checked-after-width);
42
46
  height: var(--yee-checkbox-checked-after-height);
43
47
  border: var(--yee-checkbox-checked-after-border-width) solid
44
- var(--yee-checkbox-checked-after-border-color);
48
+ var(--ye-checkbox-checked-border-color);
45
49
  border-top: 0;
46
50
  transform: rotate(45deg) scale(1) translate(-50%, -50%);
47
51
  content: '';
@@ -59,6 +63,14 @@
59
63
  border-color: var(--yee-checkbox-border-color);
60
64
  }
61
65
 
66
+ &&-checked {
67
+ @{pls}-inner {
68
+ --ye-checkbox-checked-border-color: var(
69
+ --yee-checkbox-disabled-checked-border-color
70
+ );
71
+ }
72
+ }
73
+
62
74
  @{pls}-input {
63
75
  display: none;
64
76
  }
@@ -100,4 +112,12 @@
100
112
  }
101
113
  }
102
114
  }
115
+
116
+ &-group {
117
+ &-vertical {
118
+ display: flex;
119
+ flex-direction: column;
120
+ gap: 8px;
121
+ }
122
+ }
103
123
  }
@@ -11,7 +11,8 @@ export default (function () {
11
11
  }, {
12
12
  key: '3',
13
13
  label: 'Option 3'
14
- }]
14
+ }],
15
+ keyboard: true
15
16
  });
16
17
  return /*#__PURE__*/React.createElement(Space, {
17
18
  wrap: true
@@ -1,4 +1,4 @@
1
- var _excluded = ["children", "placement", "prefixCls", "popup", "menu", "open", "defaultOpen", "onOpenChange"];
1
+ var _excluded = ["children", "placement", "prefixCls", "popup", "menu", "open", "defaultOpen", "arrow", "onOpenChange"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -29,6 +29,10 @@ var Dropdown = function Dropdown(baseprops) {
29
29
  menu = props.menu,
30
30
  open = props.open,
31
31
  defaultOpen = props.defaultOpen,
32
+ _props$arrow = props.arrow,
33
+ arrow = _props$arrow === void 0 ? {
34
+ className: "".concat(prefixCls, "-arrow")
35
+ } : _props$arrow,
32
36
  onOpenChange = props.onOpenChange,
33
37
  rest = _objectWithoutProperties(props, _excluded);
34
38
  var _useMergedState = useMergedState(false, {
@@ -60,6 +64,7 @@ var Dropdown = function Dropdown(baseprops) {
60
64
  return null;
61
65
  };
62
66
  return /*#__PURE__*/React.createElement(Trigger, _extends({}, rest, {
67
+ arrow: arrow,
63
68
  popup: renderPopup(),
64
69
  placement: placement,
65
70
  popupClassName: "".concat(prefixCls, "-popup"),
@@ -4,4 +4,10 @@
4
4
  &-popup {
5
5
  background-color: var(--yee-dropdown-bg-color);
6
6
  }
7
+
8
+ &-arrow {
9
+ &::after {
10
+ background-color: var(--yee-dropdown-bg-color);
11
+ }
12
+ }
7
13
  }
@@ -1,3 +1,6 @@
1
+ var _excluded = ["icon"];
2
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
3
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1
4
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -15,8 +18,10 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
15
18
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
19
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
20
  import clsx from 'clsx';
21
+ import { HelpCircle } from 'lucide-react';
18
22
  import { AnimatePresence, motion } from 'motion/react';
19
23
  import React, { useContext, useLayoutEffect, useMemo, useReducer } from 'react';
24
+ import Tooltip from "../Tooltip";
20
25
  import FieldContext from "./FieldContext";
21
26
  import FormContext from "./FormContext";
22
27
  import { ListNameContext } from "./List";
@@ -36,10 +41,13 @@ var Field = function Field(props) {
36
41
  name = props.name,
37
42
  rules = props.rules,
38
43
  label = props.label,
44
+ tooltip = props.tooltip,
39
45
  required = props.required,
40
46
  disabled = props.disabled,
41
47
  _props$valuePropName = props.valuePropName,
42
48
  valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,
49
+ _props$layout = props.layout,
50
+ layout = _props$layout === void 0 ? 'vertical' : _props$layout,
43
51
  formatter = props.formatter;
44
52
  var _useContext = useContext(FieldContext),
45
53
  getCallbacks = _useContext.getCallbacks,
@@ -87,8 +95,34 @@ var Field = function Field(props) {
87
95
  }) || required;
88
96
  };
89
97
  var validate = getFieldValidate === null || getFieldValidate === void 0 ? void 0 : getFieldValidate(normalizedName);
98
+
99
+ // Normalize tooltip into { icon, ...tooltipProps }, or null when not provided.
100
+ // Everything except `icon` is forwarded to <Tooltip>, so any Tooltip prop
101
+ // (title, color, placement, ...) is supported automatically.
102
+ var tooltipConfig = useMemo(function () {
103
+ if (tooltip === undefined || tooltip === null || tooltip === false) return null;
104
+ if (_typeof(tooltip) === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip) && 'title' in tooltip) {
105
+ var _ref = tooltip,
106
+ icon = _ref.icon,
107
+ rest = _objectWithoutProperties(_ref, _excluded);
108
+ return {
109
+ icon: icon !== null && icon !== void 0 ? icon : /*#__PURE__*/React.createElement(HelpCircle, {
110
+ size: 14
111
+ }),
112
+ tooltipProps: rest
113
+ };
114
+ }
115
+ return {
116
+ icon: /*#__PURE__*/React.createElement(HelpCircle, {
117
+ size: 14
118
+ }),
119
+ tooltipProps: {
120
+ title: tooltip
121
+ }
122
+ };
123
+ }, [tooltip]);
90
124
  var getControlled = function getControlled(children) {
91
- var _getFieldValue, _props$dataTestid, _ref2;
125
+ var _getFieldValue, _props$dataTestid, _ref3;
92
126
  var props = children.props;
93
127
  var _value = (_getFieldValue = getFieldValue === null || getFieldValue === void 0 ? void 0 : getFieldValue(normalizedName)) !== null && _getFieldValue !== void 0 ? _getFieldValue : undefined;
94
128
  var value = formatter ? formatter(_value) : _value;
@@ -99,7 +133,7 @@ var Field = function Field(props) {
99
133
  formName: formName,
100
134
  id: normalizedName,
101
135
  'data-testid': (_props$dataTestid = props['data-testid']) !== null && _props$dataTestid !== void 0 ? _props$dataTestid : normalizedName,
102
- disabled: (_ref2 = disabled !== null && disabled !== void 0 ? disabled : formDisabled) !== null && _ref2 !== void 0 ? _ref2 : props.disabled,
136
+ disabled: (_ref3 = disabled !== null && disabled !== void 0 ? disabled : formDisabled) !== null && _ref3 !== void 0 ? _ref3 : props.disabled,
103
137
  onChange: function onChange(value) {
104
138
  var _callbacks$onValuesBe, _props$onChange;
105
139
  var callbacks = getCallbacks === null || getCallbacks === void 0 ? void 0 : getCallbacks();
@@ -126,13 +160,17 @@ var Field = function Field(props) {
126
160
  });
127
161
  };
128
162
  return /*#__PURE__*/React.createElement("div", {
129
- className: clsx("".concat(prefixCls, "-item"), _defineProperty({}, "".concat(prefixCls, "-item-").concat(validate === null || validate === void 0 ? void 0 : validate.status), validate && validate.status))
163
+ className: clsx("".concat(prefixCls, "-item"), "".concat(prefixCls, "-item-").concat(layout), _defineProperty({}, "".concat(prefixCls, "-item-").concat(validate === null || validate === void 0 ? void 0 : validate.status), validate && validate.status))
130
164
  }, /*#__PURE__*/React.createElement("div", {
131
165
  className: clsx("".concat(prefixCls, "-item-row"))
132
- }, label ? /*#__PURE__*/React.createElement("label", {
166
+ }, label || tooltipConfig ? /*#__PURE__*/React.createElement("label", {
133
167
  htmlFor: normalizedName,
134
168
  className: clsx("".concat(prefixCls, "-item-label"), _defineProperty({}, "".concat(prefixCls, "-item-required"), isRequired()))
135
- }, label) : null, /*#__PURE__*/React.createElement("div", {
169
+ }, label, isRequired() ? /*#__PURE__*/React.createElement("span", {
170
+ className: "".concat(prefixCls, "-item-required-mark")
171
+ }, "*") : null, tooltipConfig ? /*#__PURE__*/React.createElement(Tooltip, tooltipConfig.tooltipProps, /*#__PURE__*/React.createElement("span", {
172
+ className: "".concat(prefixCls, "-item-tooltip-icon")
173
+ }, tooltipConfig.icon)) : null) : null, /*#__PURE__*/React.createElement("div", {
136
174
  className: "".concat(prefixCls, "-item-control")
137
175
  }, /*#__PURE__*/React.isValidElement(children) ? ( /*#__PURE__*/React.cloneElement(children, getControlled(children))) : /*#__PURE__*/React.createElement("span", null, children))), /*#__PURE__*/React.createElement(AnimatePresence, null, validate && /*#__PURE__*/React.createElement(motion.small, {
138
176
  initial: {
@@ -88,7 +88,7 @@ var Group = function Group(props) {
88
88
  name: childNames,
89
89
  status: 'error',
90
90
  value: values,
91
- message: rule.message
91
+ message: rule.message || ''
92
92
  });
93
93
  }
94
94
  }
@@ -152,7 +152,9 @@ var Group = function Group(props) {
152
152
  className: "".concat(itemCls, "-row")
153
153
  }, label && /*#__PURE__*/React.createElement("label", {
154
154
  className: clsx("".concat(itemCls, "-label"), _defineProperty({}, "".concat(itemCls, "-required"), required))
155
- }, label), /*#__PURE__*/React.createElement("div", {
155
+ }, label, required ? /*#__PURE__*/React.createElement("span", {
156
+ className: "".concat(itemCls, "-required-mark")
157
+ }, "*") : null), /*#__PURE__*/React.createElement("div", {
156
158
  className: "".concat(itemCls, "-control")
157
159
  }, content)), /*#__PURE__*/React.createElement(AnimatePresence, null, hasError && /*#__PURE__*/React.createElement(motion.small, {
158
160
  initial: {
@@ -22,12 +22,14 @@ export default (function () {
22
22
  onFinish: onFinish,
23
23
  layout: "vertical"
24
24
  }, /*#__PURE__*/React.createElement(Form.List, {
25
- name: "users",
26
- initialValue: [{
27
- name: '',
28
- age: '',
29
- address: ''
30
- }]
25
+ name: "users"
26
+ // initialValue={[
27
+ // {
28
+ // name: '',
29
+ // age: '',
30
+ // address: '',
31
+ // },
32
+ // ]}
31
33
  }, function (fields, operations) {
32
34
  // Define column config - operations are accessible here
33
35
  var columns = [{
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;