@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
@@ -42,14 +42,7 @@ var form_table_default = () => {
42
42
  return /* @__PURE__ */ import_react.default.createElement("div", { style: { padding: "24px" } }, /* @__PURE__ */ import_react.default.createElement("h2", null, "Form + Table Dynamic Form Example"), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Form, { form, onFinish, layout: "vertical" }, /* @__PURE__ */ import_react.default.createElement(
43
43
  import_yee_c.Form.List,
44
44
  {
45
- name: "users",
46
- initialValue: [
47
- {
48
- name: "",
49
- age: "",
50
- address: ""
51
- }
52
- ]
45
+ name: "users"
53
46
  },
54
47
  (fields, operations) => {
55
48
  const columns = [
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,84 @@
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/Form/demo/tooltip.tsx
30
+ var tooltip_exports = {};
31
+ __export(tooltip_exports, {
32
+ default: () => tooltip_default
33
+ });
34
+ module.exports = __toCommonJS(tooltip_exports);
35
+ var import_yee_c = require("../..");
36
+ var import_lucide_react = require("lucide-react");
37
+ var import_react = __toESM(require("react"));
38
+ var tooltip_default = () => {
39
+ const [form] = import_yee_c.Form.useForm();
40
+ const onFinish = (values) => {
41
+ console.log("Received values:", values);
42
+ };
43
+ return /* @__PURE__ */ import_react.default.createElement(
44
+ import_yee_c.Form,
45
+ {
46
+ form,
47
+ onFinish,
48
+ layout: "vertical",
49
+ "data-testid": "tooltip-form"
50
+ },
51
+ /* @__PURE__ */ import_react.default.createElement(import_yee_c.Grid, null, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Grid.Item, null, /* @__PURE__ */ import_react.default.createElement(
52
+ import_yee_c.Form.Field,
53
+ {
54
+ name: "username",
55
+ label: "Username",
56
+ tooltip: "Used for login. 4-20 characters.",
57
+ rules: [
58
+ { required: true, message: "Please input your username!" }
59
+ ]
60
+ },
61
+ /* @__PURE__ */ import_react.default.createElement(import_yee_c.Input, { placeholder: "Please input your username" })
62
+ )), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Grid.Item, null, /* @__PURE__ */ import_react.default.createElement(
63
+ import_yee_c.Form.Field,
64
+ {
65
+ name: "nickname",
66
+ label: "Nickname",
67
+ tooltip: {
68
+ title: "Shown publicly instead of your username.",
69
+ icon: /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Info, { size: 14 })
70
+ }
71
+ },
72
+ /* @__PURE__ */ import_react.default.createElement(import_yee_c.Input, { placeholder: "Please input your nickname" })
73
+ )), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Grid.Item, null, /* @__PURE__ */ import_react.default.createElement(
74
+ import_yee_c.Form.Field,
75
+ {
76
+ name: "bio",
77
+ label: "Bio",
78
+ tooltip: "A short introduction about yourself."
79
+ },
80
+ /* @__PURE__ */ import_react.default.createElement(import_yee_c.TextArea, null)
81
+ ))),
82
+ /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { style: { marginTop: 16 } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Button, { type: "primary", htmlType: "submit" }, "Submit"), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Button, { htmlType: "reset" }, "Reset"))
83
+ );
84
+ };
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import type { TooltipProps } from '../Tooltip';
2
3
  import type { DataAttributeProps } from '../utils/types';
3
4
  export type StoreValue = any;
4
5
  export type Store = Record<string, StoreValue>;
@@ -211,7 +212,7 @@ export type Rule = {
211
212
  /**
212
213
  * Error message
213
214
  */
214
- message: string;
215
+ message?: string;
215
216
  /**
216
217
  * Custom validation function, returns true for pass, false or throw for fail
217
218
  */
@@ -227,12 +228,44 @@ export type ValidateMessage = {
227
228
  value: unknown;
228
229
  status: 'error' | 'success' | 'warning' | 'info';
229
230
  };
231
+ export type FieldConfigurableTooltip = Omit<TooltipProps, 'children'> & {
232
+ /**
233
+ * Custom trigger icon (defaults to a built-in help icon)
234
+ */
235
+ icon?: React.ReactNode;
236
+ };
237
+ export type FieldTooltip = React.ReactNode | FieldConfigurableTooltip;
230
238
  export type FieldProps = {
239
+ /**
240
+ * Child nodes
241
+ * */
231
242
  children: React.ReactElement;
243
+ /**
244
+ * Field name
245
+ * */
232
246
  name: NamePath;
247
+ /**
248
+ * Validation rules
249
+ * */
233
250
  rules?: Rule[];
251
+ /***
252
+ * Field label
253
+ */
234
254
  label?: React.ReactNode;
255
+ /**
256
+ * Tooltip shown next to the label (a help icon).
257
+ * Pass a string/node to use the default icon, or an object to customize the icon.
258
+ * */
259
+ tooltip?: FieldTooltip;
260
+ /**
261
+ * Whether required (shows required mark)
262
+ * */
235
263
  required?: boolean;
264
+ /**
265
+ * Layout of label and control
266
+ * @default 'vertical'
267
+ * */
268
+ layout?: 'vertical' | 'horizontal';
236
269
  /**
237
270
  * Format value before passing to children
238
271
  * */
@@ -18,17 +18,32 @@
18
18
  // padding-bottom: var(--yee-form-item-padding-bottom);
19
19
 
20
20
  &-label {
21
- display: inline-block;
21
+ display: inline-flex;
22
+ align-items: center;
23
+ gap: 2px;
22
24
  margin-bottom: var(--yee-form-item-label-mb, 4px);
23
25
  line-height: var(--yee-form-item-label-line-height);
24
26
  }
25
27
 
26
- &-required {
27
- &::after {
28
- color: var(--yee-input-required-font-color);
29
- content: '*';
30
- margin-inline-start: var(--yee-form-item-required-margin-inline-start);
31
- }
28
+ // The required asterisk is rendered as a real node via &-required-mark so it
29
+ // stays glued to the label text regardless of what else sits inside the label.
30
+ // The `item-required` className is still applied to the label (see Field/Group)
31
+ // as an opt-in styling hook; the mark itself lives in &-required-mark below.
32
+ &-required-mark {
33
+ color: var(--yee-input-required-font-color);
34
+ margin-inline-start: var(--yee-form-item-required-margin-inline-start);
35
+ line-height: 1;
36
+ }
37
+
38
+ &-tooltip-icon {
39
+ display: inline-flex;
40
+ align-items: center;
41
+ margin-inline-start: 4px;
42
+ color: var(
43
+ --yee-form-item-tooltip-icon-color,
44
+ var(--yee-text-color-secondary, #999)
45
+ );
46
+ cursor: pointer;
32
47
  }
33
48
 
34
49
  &-control {
@@ -87,7 +87,7 @@ var Popconfirm = (baseprops) => {
87
87
  defaultOpen,
88
88
  title,
89
89
  description,
90
- arrow = true,
90
+ arrow = { className: `${prefixCls}-arrow` },
91
91
  placement = "top",
92
92
  confirmText = popconfirmLocale.okText,
93
93
  cancelText = popconfirmLocale.cancelText,
@@ -20,4 +20,10 @@
20
20
  &-footer {
21
21
  margin-top: var(--yee-popconfirm-footer-margin-top);
22
22
  }
23
+
24
+ &-arrow {
25
+ &::after {
26
+ background-color: var(--yee-popconfirm-bg-font-color);
27
+ }
28
+ }
23
29
  }
@@ -79,7 +79,7 @@ var Popover = (baseprops) => {
79
79
  children,
80
80
  title,
81
81
  content,
82
- arrow = true,
82
+ arrow = { className: `${prefixCls}-arrow` },
83
83
  placement = "top",
84
84
  trigger = "hover",
85
85
  style,
@@ -14,4 +14,10 @@
14
14
  line-height: var(--yee-popover-header-line-height);
15
15
  background-color: var(--yee-popover-header-bg-color);
16
16
  }
17
+
18
+ &-arrow {
19
+ &::after {
20
+ background-color: var(--yee-popover-bg-color);
21
+ }
22
+ }
17
23
  }
@@ -135,9 +135,9 @@ var Progress = import_react.default.forwardRef(
135
135
  const progressInfo = getProgressInfo();
136
136
  let progress;
137
137
  if (type === "line") {
138
- progress = /* @__PURE__ */ import_react.default.createElement(import_line.default, { prefixCls, percent }, progressInfo);
138
+ progress = /* @__PURE__ */ import_react.default.createElement(import_line.default, __spreadProps(__spreadValues({}, rest), { prefixCls, percent }), progressInfo);
139
139
  } else {
140
- progress = /* @__PURE__ */ import_react.default.createElement(import_circle.default, { prefixCls, percent }, progressInfo);
140
+ progress = /* @__PURE__ */ import_react.default.createElement(import_circle.default, __spreadProps(__spreadValues({}, rest), { prefixCls, percent }), progressInfo);
141
141
  }
142
142
  const cls = (0, import_clsx.default)(
143
143
  prefixCls,
@@ -9,15 +9,9 @@
9
9
  gap: var(--yee-radio-group-gap);
10
10
 
11
11
  &-small {
12
- @{pls} {
13
- padding: var(--yee-radio-small-padding, 2px 4px);
14
- }
15
12
  }
16
13
 
17
14
  &-large {
18
- @{pls} {
19
- padding: var(--yee-radio-large-padding, 6px 12px);
20
- }
21
15
  }
22
16
 
23
17
  &-solid {
@@ -67,6 +61,19 @@
67
61
  content: '';
68
62
  }
69
63
 
64
+ &::before {
65
+ position: absolute;
66
+ z-index: 1;
67
+ right: 5px;
68
+ top: 14px;
69
+ width: 4px;
70
+ height: 8px;
71
+ border: 2px solid #fff;
72
+ border-width: 0 2px 2px 0;
73
+ transform: rotate(45deg);
74
+ content: '';
75
+ }
76
+
70
77
  z-index: 1;
71
78
  }
72
79
 
@@ -36,7 +36,7 @@ var import_clsx = __toESM(require("clsx"));
36
36
  var import_react = __toESM(require("react"));
37
37
  var import_options = require("./options");
38
38
  var Option = (props) => {
39
- const { label, value, disabled, title } = props;
39
+ const { label, value, disabled, title, dataTestId } = props;
40
40
  const { prefixCls, selectedKeys, focusedKey, onSelect } = (0, import_react.useContext)(import_options.OptionsCtx);
41
41
  const handleClick = (e) => {
42
42
  if (!disabled) {
@@ -61,7 +61,8 @@ var Option = (props) => {
61
61
  },
62
62
  role: "option",
63
63
  tabIndex: disabled ? void 0 : 0,
64
- title: htmlTitle
64
+ title: htmlTitle,
65
+ "data-testid": dataTestId
65
66
  },
66
67
  label
67
68
  );
@@ -77,6 +77,7 @@ var Options = (0, import_react.forwardRef)((props, ref) => {
77
77
  popupStyle,
78
78
  selectedKeys,
79
79
  focusedKey,
80
+ dataTestId,
80
81
  onSelect
81
82
  } = _a, rest = __objRest(_a, [
82
83
  "prefixCls",
@@ -85,6 +86,7 @@ var Options = (0, import_react.forwardRef)((props, ref) => {
85
86
  "popupStyle",
86
87
  "selectedKeys",
87
88
  "focusedKey",
89
+ "dataTestId",
88
90
  "onSelect"
89
91
  ]);
90
92
  const componentRef = ref || (0, import_react.useRef)(null);
@@ -101,7 +103,13 @@ var Options = (0, import_react.forwardRef)((props, ref) => {
101
103
  {
102
104
  value: { prefixCls, selectedKeys, focusedKey, onSelect }
103
105
  },
104
- options.map((option) => /* @__PURE__ */ import_react.default.createElement(import_option.default, __spreadProps(__spreadValues({}, option), { key: option.value })))
106
+ options.map((option, index) => /* @__PURE__ */ import_react.default.createElement(
107
+ import_option.default,
108
+ __spreadProps(__spreadValues({}, option), {
109
+ key: option.value,
110
+ dataTestId: `${dataTestId}-${index}`
111
+ })
112
+ ))
105
113
  )
106
114
  );
107
115
  });
@@ -193,6 +193,7 @@ var Select = (baseprops) => {
193
193
  options: filteredOpts,
194
194
  focusedKey,
195
195
  selectedKeys: mergedValue,
196
+ dataTestId: rest["data-testid"],
196
197
  onSelect: handleSelect,
197
198
  onClose: () => setOpen(false),
198
199
  ref: popupRef
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(basic_exports);
35
35
  var import_yee_c = require("../..");
36
36
  var import_react = __toESM(require("react"));
37
37
  var basic_default = () => {
38
- return /* @__PURE__ */ import_react.default.createElement(import_yee_c.Space, { direction: "vertical", gap: 16, style: { width: "100%" } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Card, { title: "Basic Placeholder" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Skeleton, null)), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Card, { title: "With Avatar" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Skeleton, { avatar: true, title: true, paragraph: { rows: 2 } })), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Card, { title: "Title and Paragraph" }, /* @__PURE__ */ import_react.default.createElement(
38
+ return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Card, { title: "Basic Placeholder" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Skeleton, null)), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Card, { title: "With Avatar" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Skeleton, { avatar: true, title: true, paragraph: { rows: 2 } })), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Card, { title: "Title and Paragraph" }, /* @__PURE__ */ import_react.default.createElement(
39
39
  import_yee_c.Skeleton,
40
40
  {
41
41
  avatar: false,
@@ -26,6 +26,10 @@ export interface SpaceProps extends React.HTMLAttributes<HTMLDivElement> {
26
26
  * Alignment
27
27
  */
28
28
  align?: 'center' | 'start' | 'end' | 'baseline' | 'flex-start';
29
+ /***
30
+ * Justify content
31
+ * */
32
+ justify?: 'start' | 'end' | 'center' | 'space-around' | 'space-between';
29
33
  /**
30
34
  * Whether to take up the entire row
31
35
  */
@@ -75,6 +75,7 @@ var Space = (0, import_react.forwardRef)((baseprops, ref) => {
75
75
  gap = 16,
76
76
  direction = "horizontal",
77
77
  align = direction === "horizontal" ? "center" : void 0,
78
+ justify,
78
79
  wrap,
79
80
  className,
80
81
  style,
@@ -87,6 +88,7 @@ var Space = (0, import_react.forwardRef)((baseprops, ref) => {
87
88
  "gap",
88
89
  "direction",
89
90
  "align",
91
+ "justify",
90
92
  "wrap",
91
93
  "className",
92
94
  "style",
@@ -113,24 +115,41 @@ var Space = (0, import_react.forwardRef)((baseprops, ref) => {
113
115
  if (!children) {
114
116
  return null;
115
117
  }
118
+ const loop = (childs2) => {
119
+ let res = [];
120
+ childs2.forEach((child, index) => {
121
+ const isItem = import_react.default.isValidElement(child) && child.type.isSpaceItem;
122
+ const itemClassName = isItem ? child.props.className : void 0;
123
+ const itemStyle = isItem ? child.props.style : void 0;
124
+ const itemChildren = isItem ? child.props.children : child;
125
+ if (import_react.default.isValidElement(child) && child.type === import_react.default.Fragment) {
126
+ res = res.concat(
127
+ loop(import_react.default.Children.toArray(child.props.children))
128
+ );
129
+ } else {
130
+ res.push(
131
+ /* @__PURE__ */ import_react.default.createElement(
132
+ "div",
133
+ {
134
+ className: (0, import_clsx.default)(
135
+ `${prefixCls}-item`,
136
+ classNames == null ? void 0 : classNames.item,
137
+ itemClassName
138
+ ),
139
+ style: __spreadValues(__spreadValues({}, styles == null ? void 0 : styles.item), itemStyle),
140
+ key: index
141
+ },
142
+ itemChildren
143
+ )
144
+ );
145
+ }
146
+ });
147
+ return res;
148
+ };
116
149
  const childs = import_react.default.Children.toArray(children).filter(
117
150
  (child) => child !== null && child !== void 0
118
151
  );
119
- return childs.map((child, index) => {
120
- const isItem = import_react.default.isValidElement(child) && child.type.isSpaceItem;
121
- const itemClassName = isItem ? child.props.className : void 0;
122
- const itemStyle = isItem ? child.props.style : void 0;
123
- const itemChildren = isItem ? child.props.children : child;
124
- return /* @__PURE__ */ import_react.default.createElement(
125
- "div",
126
- {
127
- className: (0, import_clsx.default)(`${prefixCls}-item`, classNames == null ? void 0 : classNames.item, itemClassName),
128
- style: __spreadValues(__spreadValues({}, styles == null ? void 0 : styles.item), itemStyle),
129
- key: index
130
- },
131
- itemChildren
132
- );
133
- });
152
+ return loop(childs);
134
153
  };
135
154
  const packed = pack();
136
155
  return /* @__PURE__ */ import_react.default.createElement(
@@ -140,7 +159,8 @@ var Space = (0, import_react.forwardRef)((baseprops, ref) => {
140
159
  style: __spreadValues({
141
160
  width: block ? "100%" : void 0,
142
161
  gap: gap + "px",
143
- alignItems: getAlign()
162
+ alignItems: getAlign(),
163
+ justifyContent: justify
144
164
  }, style),
145
165
  ref: componentRef
146
166
  }),
@@ -35,5 +35,5 @@ module.exports = __toCommonJS(basic_exports);
35
35
  var import_yee_c = require("../..");
36
36
  var import_react = __toESM(require("react"));
37
37
  var basic_default = () => {
38
- return /* @__PURE__ */ import_react.default.createElement("div", { style: { height: 300 } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter, null, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { padding: 16, backgroundColor: "#f0f0f0" } }, "Left Panel")), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { padding: 16, backgroundColor: "#e0e0e0" } }, "Right Panel"))));
38
+ return /* @__PURE__ */ import_react.default.createElement("div", { style: { height: 300 } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter, null, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { margin: 8, padding: 16, backgroundColor: "#f0f0f0" } }, "Left Panel")), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { margin: 8, padding: 16, backgroundColor: "#e0e0e0" } }, "Right Panel"))));
39
39
  };
@@ -35,5 +35,27 @@ module.exports = __toCommonJS(vertical_exports);
35
35
  var import_yee_c = require("../..");
36
36
  var import_react = __toESM(require("react"));
37
37
  var vertical_default = () => {
38
- return /* @__PURE__ */ import_react.default.createElement("div", { style: { height: 300 } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter, { layout: "vertical" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { padding: 16, backgroundColor: "#f0f0f0" } }, "Top Panel")), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, null, /* @__PURE__ */ import_react.default.createElement("div", { style: { padding: 16, backgroundColor: "#e0e0e0" } }, "Bottom Panel"))));
38
+ return /* @__PURE__ */ import_react.default.createElement("div", { style: { height: 500 } }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter, { layout: "vertical" }, /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, { size: 250 }, /* @__PURE__ */ import_react.default.createElement(
39
+ "div",
40
+ {
41
+ style: {
42
+ marginBottom: 8,
43
+ padding: 16,
44
+ backgroundColor: "#f0f0f0",
45
+ height: "100%"
46
+ }
47
+ },
48
+ "Top Panel"
49
+ )), /* @__PURE__ */ import_react.default.createElement(import_yee_c.Splitter.Item, { size: 250 }, /* @__PURE__ */ import_react.default.createElement(
50
+ "div",
51
+ {
52
+ style: {
53
+ marginTop: 8,
54
+ padding: 16,
55
+ backgroundColor: "#e0e0e0",
56
+ height: "100%"
57
+ }
58
+ },
59
+ "Bottom Panel"
60
+ ))));
39
61
  };
@@ -1,6 +1,6 @@
1
1
  import InternalSplitter from './splitter';
2
2
  import Item from './splitter-item';
3
- export type { SplitterItemProps, SplitterProps } from './interface';
3
+ export type { SplitterItemProps, PanelRect as SplitterPanelRect, SplitterProps, } from './interface';
4
4
  type SplitterType = typeof InternalSplitter & {
5
5
  Item: typeof Item;
6
6
  };
@@ -1,5 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import type { DataAttributeProps } from '../utils/types';
3
+ export type PanelRect = {
4
+ type: 'default' | 'percent' | 'auto';
5
+ size: number;
6
+ currentSize: number;
7
+ min?: string | number;
8
+ max?: string | number;
9
+ };
3
10
  export interface SplitterItemProps {
4
11
  /**
5
12
  * custom item element class name prefix
@@ -67,14 +74,13 @@ export interface SplitterProps extends DataAttributeProps {
67
74
  /**
68
75
  * children
69
76
  */
70
- children?: React.ReactElement[];
77
+ children?: Array<React.ReactElement | null>;
71
78
  /**
72
79
  * display border or not
73
80
  * */
74
81
  bordered?: boolean;
75
- itemPadding?: number | string;
76
82
  /**
77
83
  * panel size change event
78
84
  * */
79
- onResize?: (sizes: number[]) => void;
85
+ onResize?: (sizes: PanelRect[]) => void;
80
86
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PanelRect } from './splitter';
2
+ import type { PanelRect } from './interface';
3
3
  interface SplitterHandlerProps {
4
4
  layout: 'horizontal' | 'vertical';
5
5
  resizable?: boolean;
@@ -67,7 +67,7 @@ var SplitterHandler = ({
67
67
  const cref = (0, import_react.useRef)(null);
68
68
  const handler = (0, import_react.useRef)(null);
69
69
  const { refs } = (0, import_react.useContext)(import_splitter.SplitterWrapperCtx);
70
- const { prefixCls } = (0, import_react.useContext)(import_splitter.SplitterCtx);
70
+ const { prefixCls, onResize } = (0, import_react.useContext)(import_splitter.SplitterCtx);
71
71
  const status = records[index - 1] || {};
72
72
  const next = records[index] || {};
73
73
  const onMove = (dis) => {
@@ -104,6 +104,7 @@ var SplitterHandler = ({
104
104
  currentSize: s
105
105
  });
106
106
  newState[index] = __spreadProps(__spreadValues({}, newState[index]), { size: e, currentSize: e });
107
+ onResize == null ? void 0 : onResize(newState);
107
108
  return newState;
108
109
  });
109
110
  };
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { SplitterProps } from './interface';
2
+ import type { PanelRect, SplitterProps } from './interface';
3
3
  import './style/index.less';
4
4
  type SplitterWrapperCtxType = {
5
5
  refs: {
@@ -8,16 +8,9 @@ type SplitterWrapperCtxType = {
8
8
  };
9
9
  type SplitterCtxType = {
10
10
  prefixCls: string;
11
- onResize?: (sizes: number[]) => void;
11
+ onResize?: (sizes: PanelRect[]) => void;
12
12
  };
13
13
  export declare const SplitterWrapperCtx: React.Context<SplitterWrapperCtxType>;
14
14
  export declare const SplitterCtx: React.Context<SplitterCtxType>;
15
- export type PanelRect = {
16
- type: 'default' | 'percent' | 'auto';
17
- size: number;
18
- currentSize: number;
19
- min?: string | number;
20
- max?: string | number;
21
- };
22
15
  declare const Splitter: React.ForwardRefExoticComponent<SplitterProps & React.RefAttributes<HTMLDivElement>>;
23
16
  export default Splitter;