@rainbow-oh/yee-c 0.4.0 → 0.4.2

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 (113) hide show
  1. package/dist/cjs/Anchor/anchor.js +29 -14
  2. package/dist/cjs/Button/demo/basic.js +1 -1
  3. package/dist/cjs/Button/demo/variant.d.ts +3 -0
  4. package/dist/cjs/Button/demo/variant.js +59 -0
  5. package/dist/cjs/Button/style/index.less +49 -11
  6. package/dist/cjs/DatePicker/date-picker-mobile.js +1 -1
  7. package/dist/cjs/Ellipsis/ellipsis.js +4 -2
  8. package/dist/cjs/Form/Form.js +1 -1
  9. package/dist/cjs/Form/form-store.js +2 -2
  10. package/dist/cjs/Form/{useForm.d.ts → hooks/useForm.d.ts} +1 -1
  11. package/dist/cjs/Form/{useForm.js → hooks/useForm.js} +4 -7
  12. package/dist/cjs/Form/hooks/useFormInstance.d.ts +1 -0
  13. package/dist/cjs/Form/hooks/useFormInstance.js +43 -0
  14. package/dist/{esm/Form → cjs/Form/hooks}/useWatch.d.ts +1 -1
  15. package/dist/cjs/Form/{useWatch.js → hooks/useWatch.js} +2 -2
  16. package/dist/cjs/Form/index.d.ts +4 -2
  17. package/dist/cjs/Form/index.js +4 -2
  18. package/dist/cjs/Input/password.js +5 -2
  19. package/dist/cjs/Pagination/pagination.js +4 -1
  20. package/dist/cjs/RangePicker/range-picker-mobile.js +3 -3
  21. package/dist/cjs/Space/compact.js +1 -1
  22. package/dist/cjs/Space/demo/compact.js +1 -13
  23. package/dist/cjs/Space/space.js +3 -1
  24. package/dist/cjs/Space/style/index.less +29 -9
  25. package/dist/cjs/Table/tbody/index.js +4 -1
  26. package/dist/cjs/Table/theader/filter.js +10 -5
  27. package/dist/cjs/TextArea/textarea.js +2 -1
  28. package/dist/cjs/Transfer/transfer-list.js +4 -1
  29. package/dist/cjs/locale/interface.d.ts +15 -0
  30. package/dist/cjs/locale/lang/en_US.js +12 -0
  31. package/dist/cjs/locale/lang/ja_JP.js +12 -0
  32. package/dist/cjs/locale/lang/zh_CN.js +12 -0
  33. package/dist/cjs/locale/lang/zh_TW.js +12 -0
  34. package/dist/cjs/style/size.css +1 -1
  35. package/dist/cjs/style/themes.css +1 -1
  36. package/dist/cjs/style/variables.css +2 -2
  37. package/dist/cjs/version.d.ts +1 -1
  38. package/dist/cjs/version.js +1 -1
  39. package/dist/esm/Anchor/anchor.js +37 -15
  40. package/dist/esm/Button/demo/basic.js +1 -0
  41. package/dist/esm/Button/demo/variant.d.ts +3 -0
  42. package/dist/esm/Button/demo/variant.js +49 -0
  43. package/dist/esm/Button/style/index.less +49 -11
  44. package/dist/esm/DatePicker/date-picker-mobile.js +1 -1
  45. package/dist/esm/Ellipsis/ellipsis.js +5 -2
  46. package/dist/esm/Form/Form.js +1 -1
  47. package/dist/esm/Form/form-store.js +2 -2
  48. package/dist/esm/Form/{useForm.d.ts → hooks/useForm.d.ts} +1 -1
  49. package/dist/esm/Form/{useForm.js → hooks/useForm.js} +3 -4
  50. package/dist/esm/Form/hooks/useFormInstance.d.ts +1 -0
  51. package/dist/esm/Form/hooks/useFormInstance.js +9 -0
  52. package/dist/{cjs/Form → esm/Form/hooks}/useWatch.d.ts +1 -1
  53. package/dist/esm/Form/{useWatch.js → hooks/useWatch.js} +1 -1
  54. package/dist/esm/Form/index.d.ts +4 -2
  55. package/dist/esm/Form/index.js +4 -2
  56. package/dist/esm/Input/password.js +6 -2
  57. package/dist/esm/Pagination/pagination.js +5 -1
  58. package/dist/esm/RangePicker/range-picker-mobile.js +3 -3
  59. package/dist/esm/Space/compact.js +1 -1
  60. package/dist/esm/Space/demo/compact.js +5 -14
  61. package/dist/esm/Space/space.js +3 -1
  62. package/dist/esm/Space/style/index.less +29 -9
  63. package/dist/esm/Table/tbody/index.js +5 -1
  64. package/dist/esm/Table/theader/filter.js +18 -13
  65. package/dist/esm/TextArea/textarea.js +2 -1
  66. package/dist/esm/Transfer/transfer-list.js +5 -1
  67. package/dist/esm/locale/interface.d.ts +15 -0
  68. package/dist/esm/locale/lang/en_US.js +12 -0
  69. package/dist/esm/locale/lang/ja_JP.js +12 -0
  70. package/dist/esm/locale/lang/zh_CN.js +12 -0
  71. package/dist/esm/locale/lang/zh_TW.js +12 -0
  72. package/dist/esm/style/size.css +1 -1
  73. package/dist/esm/style/themes.css +1 -1
  74. package/dist/esm/style/variables.css +2 -2
  75. package/dist/esm/version.d.ts +1 -1
  76. package/dist/esm/version.js +1 -1
  77. package/dist/umd/yee-c.min.css +2 -2
  78. package/dist/umd/yee-c.min.js +1 -1
  79. package/package.json +1 -1
  80. package/src/Anchor/anchor.tsx +35 -16
  81. package/src/Button/demo/basic.tsx +3 -1
  82. package/src/Button/demo/variant.tsx +55 -0
  83. package/src/Button/index.en-US.md +1 -0
  84. package/src/Button/index.zh-CN.md +1 -0
  85. package/src/Button/style/index.less +49 -11
  86. package/src/DatePicker/date-picker-mobile.tsx +1 -1
  87. package/src/Ellipsis/ellipsis.tsx +6 -6
  88. package/src/Form/Form.tsx +1 -1
  89. package/src/Form/form-store.ts +2 -2
  90. package/src/Form/{useForm.ts → hooks/useForm.ts} +4 -6
  91. package/src/Form/hooks/useFormInstance.ts +12 -0
  92. package/src/Form/{useWatch.ts → hooks/useWatch.ts} +2 -2
  93. package/src/Form/index.en-US.md +2 -0
  94. package/src/Form/index.ts +5 -2
  95. package/src/Form/index.zh-CN.md +2 -0
  96. package/src/Input/password.tsx +5 -2
  97. package/src/Pagination/pagination.tsx +4 -1
  98. package/src/RangePicker/range-picker-mobile.tsx +4 -4
  99. package/src/Space/compact.tsx +1 -1
  100. package/src/Space/demo/compact.tsx +3 -13
  101. package/src/Space/space.tsx +4 -1
  102. package/src/Space/style/index.less +29 -9
  103. package/src/Table/tbody/index.tsx +4 -1
  104. package/src/Table/theader/filter.tsx +14 -11
  105. package/src/TextArea/textarea.tsx +3 -1
  106. package/src/Transfer/transfer-list.tsx +4 -1
  107. package/src/locale/interface.ts +21 -0
  108. package/src/locale/lang/en_US.ts +15 -0
  109. package/src/locale/lang/ja_JP.ts +15 -0
  110. package/src/locale/lang/zh_CN.ts +15 -0
  111. package/src/locale/lang/zh_TW.ts +15 -0
  112. package/src/style/size.css +1 -1
  113. package/src/version.ts +1 -1
@@ -18,12 +18,22 @@
18
18
  }
19
19
 
20
20
  &-compact {
21
+ display: inline-flex;
21
22
  align-items: flex-end;
22
23
 
23
24
  &-first-item {
24
25
  margin-inline-end: -1px;
26
+ border-top-right-radius: 0;
27
+ border-bottom-right-radius: 0;
28
+
29
+ &:hover,
30
+ &:active {
31
+ position: relative;
32
+ z-index: 1;
33
+ }
25
34
 
26
35
  .yee-input-wrapper,
36
+ .yee-input,
27
37
  .yee-tags,
28
38
  &.yee-btn {
29
39
  border-top-right-radius: 0;
@@ -39,6 +49,13 @@
39
49
 
40
50
  &-middle-item {
41
51
  margin-inline-end: -1px;
52
+ border-radius: 0;
53
+
54
+ &:hover,
55
+ &:active {
56
+ position: relative;
57
+ z-index: 1;
58
+ }
42
59
 
43
60
  .yee-input-wrapper,
44
61
  .yee-tags,
@@ -52,19 +69,22 @@
52
69
  z-index: 1;
53
70
  }
54
71
  }
72
+
73
+ &-last-item {
74
+ border-top-left-radius: 0;
75
+ border-bottom-left-radius: 0;
76
+
77
+ .yee-input-wrapper,
78
+ .yee-tags,
79
+ &.yee-btn {
80
+ border-top-left-radius: 0;
81
+ border-bottom-left-radius: 0;
82
+ }
83
+ }
55
84
  }
56
85
 
57
86
  &-item {
58
87
  // flex: 1 1 auto;
59
88
  display: inline-flex;
60
89
  }
61
-
62
- &-last-item {
63
- .yee-input-wrapper,
64
- .yee-tags,
65
- &.yee-btn {
66
- border-top-left-radius: 0;
67
- border-bottom-left-radius: 0;
68
- }
69
- }
70
90
  }
@@ -62,13 +62,16 @@ __export(tbody_exports, {
62
62
  });
63
63
  module.exports = __toCommonJS(tbody_exports);
64
64
  var import_react = __toESM(require("react"));
65
+ var import_locale = require("../../locale");
65
66
  var import_table = require("../table");
66
67
  var import_lazy_row = __toESM(require("./lazy-row"));
67
68
  var import_row = __toESM(require("./row"));
68
69
  var TableBody = (props) => {
69
70
  const _a = props, { columns, pageData, lazyLoad } = _a, rest = __objRest(_a, ["columns", "pageData", "lazyLoad"]);
70
71
  const { prefixCls } = import_react.default.useContext(import_table.TableCtx);
71
- const empty = /* @__PURE__ */ import_react.default.createElement("tbody", { className: `${prefixCls}-tbody` }, /* @__PURE__ */ import_react.default.createElement("tr", { className: `${prefixCls}-no-record` }, /* @__PURE__ */ import_react.default.createElement("td", { colSpan: 999 }, "There is no record.")));
72
+ const { locale } = (0, import_locale.useLocale)();
73
+ const { table: tableLocale } = locale;
74
+ const empty = /* @__PURE__ */ import_react.default.createElement("tbody", { className: `${prefixCls}-tbody` }, /* @__PURE__ */ import_react.default.createElement("tr", { className: `${prefixCls}-no-record` }, /* @__PURE__ */ import_react.default.createElement("td", { colSpan: 999 }, tableLocale.emptyText)));
72
75
  const dataLength = pageData.length;
73
76
  if (dataLength === 0)
74
77
  return empty;
@@ -41,6 +41,7 @@ var import_Input = __toESM(require("../../Input"));
41
41
  var import_Popover = __toESM(require("../../Popover"));
42
42
  var import_Space = __toESM(require("../../Space"));
43
43
  var import_Tree = __toESM(require("../../Tree"));
44
+ var import_locale = require("../../locale");
44
45
  var import_table = require("../table");
45
46
  var getStrLower = (str) => {
46
47
  if (typeof str === "string") {
@@ -51,6 +52,8 @@ var getStrLower = (str) => {
51
52
  var HeaderFilter = import_react.default.memo((props) => {
52
53
  const { filter, column, getContainer, onInternalFilter } = props;
53
54
  const { prefixCls } = (0, import_react.useContext)(import_table.TableCtx);
55
+ const { locale } = (0, import_locale.useLocale)();
56
+ const { table: tableLocale } = locale;
54
57
  const { dataIndex } = column;
55
58
  const inputRef = (0, import_react.useRef)(null);
56
59
  const [open, setOpen] = (0, import_react.useState)(false);
@@ -102,6 +105,7 @@ var HeaderFilter = import_react.default.memo((props) => {
102
105
  ok("search");
103
106
  }
104
107
  },
108
+ size: "small",
105
109
  ref: inputRef
106
110
  }
107
111
  ) : null;
@@ -120,7 +124,7 @@ var HeaderFilter = import_react.default.memo((props) => {
120
124
  dataSource = [
121
125
  {
122
126
  key: "all",
123
- label: "All",
127
+ label: tableLocale.filterAll,
124
128
  children: filteredItems
125
129
  }
126
130
  ];
@@ -134,15 +138,15 @@ var HeaderFilter = import_react.default.memo((props) => {
134
138
  checkedKeys: selectNodes,
135
139
  onCheck: (keys) => setSelectNodes(keys)
136
140
  }
137
- ), /* @__PURE__ */ import_react.default.createElement(import_Divider.default, { style: { margin: "8px 0" } }), /* @__PURE__ */ import_react.default.createElement(import_Space.default, { block: true, style: { justifyContent: "flex-end" } }, /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: reset }, "Reset"), /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: () => ok("filter"), type: "primary" }, "Confirm")));
141
+ ), /* @__PURE__ */ import_react.default.createElement(import_Divider.default, { style: { margin: "8px 0" } }), /* @__PURE__ */ import_react.default.createElement(import_Space.default, { block: true, style: { justifyContent: "flex-end" } }, /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: reset }, tableLocale.filterReset), /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: () => ok("filter"), type: "primary" }, tableLocale.filterConfirm)));
138
142
  } else if (searchable) {
139
143
  popup = /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_clsx.default)(`${prefixCls}-filter-content`) }, searchInputNode, /* @__PURE__ */ import_react.default.createElement(
140
144
  import_Space.default,
141
145
  {
142
146
  style: { marginTop: 12, justifyContent: "flex-end", width: "100%" }
143
147
  },
144
- /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: reset }, "Reset"),
145
- /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: () => ok("search"), type: "primary" }, "Confirm")
148
+ /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: reset }, tableLocale.filterReset),
149
+ /* @__PURE__ */ import_react.default.createElement(import_Button.default, { size: "small", onClick: () => ok("search"), type: "primary" }, tableLocale.filterConfirm)
146
150
  ));
147
151
  } else {
148
152
  return null;
@@ -154,7 +158,8 @@ var HeaderFilter = import_react.default.memo((props) => {
154
158
  const trigger = typeof icon === "function" ? icon() : /* @__PURE__ */ import_react.default.createElement(
155
159
  import_Button.default,
156
160
  {
157
- icon: items ? /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Filter, { size: 16, strokeWidth: 1.5 }) : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Search, { size: 16, strokeWidth: 1.5 }),
161
+ icon: items ? /* @__PURE__ */ import_react.default.createElement(import_lucide_react.ListFilter, { size: 14, strokeWidth: 1.5 }) : /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Search, { size: 14, strokeWidth: 1.5 }),
162
+ color: "info",
158
163
  type: "text",
159
164
  size: "small"
160
165
  }
@@ -106,6 +106,7 @@ var TextArea = (0, import_react.forwardRef)(
106
106
  value,
107
107
  defaultValue
108
108
  });
109
+ console.log("mergedValue: ", mergedValue, value);
109
110
  (0, import_react.useEffect)(() => {
110
111
  const ele = componentRef.current;
111
112
  if (ele && autoSize) {
@@ -170,7 +171,7 @@ var TextArea = (0, import_react.forwardRef)(
170
171
  return /* @__PURE__ */ import_react.default.createElement(
171
172
  "textarea",
172
173
  __spreadProps(__spreadValues(__spreadValues({}, rest), props2), {
173
- value: mergedValue,
174
+ value: mergedValue || "",
174
175
  onChange: handleChange,
175
176
  ref: componentRef
176
177
  })
@@ -55,6 +55,7 @@ var import_react = __toESM(require("react"));
55
55
  var import_Button = __toESM(require("../Button"));
56
56
  var import_Checkbox = __toESM(require("../Checkbox"));
57
57
  var import_Input = __toESM(require("../Input"));
58
+ var import_locale = require("../locale");
58
59
  var import_Pagination = __toESM(require("../Pagination"));
59
60
  var import_transfer = require("./transfer");
60
61
  var TransferList = (props) => {
@@ -71,6 +72,8 @@ var TransferList = (props) => {
71
72
  onItemSelectAll
72
73
  } = props;
73
74
  const { rowKey, rowLabel, disabled, prefixCls } = (0, import_react.useContext)(import_transfer.TransferContext);
75
+ const { locale } = (0, import_locale.useLocale)();
76
+ const { transfer: transferLocale } = locale;
74
77
  const [searchValue, setSearchValue] = (0, import_react.useState)("");
75
78
  const [current, setCurrent] = (0, import_react.useState)(1);
76
79
  const [pageSize, setPageSize] = (0, import_react.useState)((_a = pagination == null ? void 0 : pagination.pageSize) != null ? _a : 5);
@@ -149,7 +152,7 @@ var TransferList = (props) => {
149
152
  import_Input.default,
150
153
  {
151
154
  prefix: /* @__PURE__ */ import_react.default.createElement(import_lucide_react.Search, { size: 16 }),
152
- placeholder: "Search",
155
+ placeholder: transferLocale.searchPlaceholder,
153
156
  onChange: handleSearch
154
157
  }
155
158
  ));
@@ -26,6 +26,17 @@ export interface LocaleRangePicker {
26
26
  export interface LocaleSelect {
27
27
  noData: string;
28
28
  }
29
+ export interface LocaleInput {
30
+ showPassword: string;
31
+ hidePassword: string;
32
+ }
33
+ export interface LocaleEllipsis {
34
+ expand: string;
35
+ collapse: string;
36
+ }
37
+ export interface LocaleTransfer {
38
+ searchPlaceholder: string;
39
+ }
29
40
  export interface LocaleWeekPicker {
30
41
  weekHeader: string[];
31
42
  }
@@ -34,6 +45,7 @@ export interface LocaleTable {
34
45
  filterConfirm: string;
35
46
  filterReset: string;
36
47
  filterEmptyText: string;
48
+ filterAll: string;
37
49
  selectAll?: string;
38
50
  selectInvert?: string;
39
51
  selectNone?: string;
@@ -92,6 +104,9 @@ export interface Locale {
92
104
  datepicker: LocaleDatePicker;
93
105
  rangepicker: LocaleRangePicker;
94
106
  select: LocaleSelect;
107
+ input: LocaleInput;
108
+ ellipsis: LocaleEllipsis;
109
+ transfer: LocaleTransfer;
95
110
  weekpicker: LocaleWeekPicker;
96
111
  table: LocaleTable;
97
112
  pagination: LocalePagination;
@@ -87,6 +87,17 @@ var locale = {
87
87
  select: {
88
88
  noData: "No Data"
89
89
  },
90
+ input: {
91
+ showPassword: "Show password",
92
+ hidePassword: "Hide password"
93
+ },
94
+ ellipsis: {
95
+ expand: "Expand",
96
+ collapse: "Collapse"
97
+ },
98
+ transfer: {
99
+ searchPlaceholder: "Search"
100
+ },
90
101
  weekpicker: {
91
102
  weekHeader: ["", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
92
103
  },
@@ -95,6 +106,7 @@ var locale = {
95
106
  filterConfirm: "Confirm",
96
107
  filterReset: "Reset",
97
108
  filterEmptyText: "No filters",
109
+ filterAll: "All",
98
110
  selectAll: "Select All",
99
111
  selectInvert: "Invert Selection",
100
112
  selectNone: "Clear Selection",
@@ -87,6 +87,17 @@ var locale = {
87
87
  select: {
88
88
  noData: "データなし"
89
89
  },
90
+ input: {
91
+ showPassword: "パスワードを表示",
92
+ hidePassword: "パスワードを非表示"
93
+ },
94
+ ellipsis: {
95
+ expand: "展開",
96
+ collapse: "折りたたむ"
97
+ },
98
+ transfer: {
99
+ searchPlaceholder: "検索"
100
+ },
90
101
  weekpicker: {
91
102
  weekHeader: ["", "日", "月", "火", "水", "木", "金", "土"]
92
103
  },
@@ -95,6 +106,7 @@ var locale = {
95
106
  filterConfirm: "確認",
96
107
  filterReset: "リセット",
97
108
  filterEmptyText: "フィルターなし",
109
+ filterAll: "すべて",
98
110
  selectAll: "すべて選択",
99
111
  selectInvert: "選択を反転",
100
112
  selectNone: "選択をクリア",
@@ -78,6 +78,17 @@ var locale = {
78
78
  select: {
79
79
  noData: "暂无数据"
80
80
  },
81
+ input: {
82
+ showPassword: "显示密码",
83
+ hidePassword: "隐藏密码"
84
+ },
85
+ ellipsis: {
86
+ expand: "展开",
87
+ collapse: "收起"
88
+ },
89
+ transfer: {
90
+ searchPlaceholder: "搜索"
91
+ },
81
92
  weekpicker: {
82
93
  weekHeader: ["", "日", "一", "二", "三", "四", "五", "六"]
83
94
  },
@@ -86,6 +97,7 @@ var locale = {
86
97
  filterConfirm: "确定",
87
98
  filterReset: "重置",
88
99
  filterEmptyText: "无筛选条件",
100
+ filterAll: "全部",
89
101
  selectAll: "全选",
90
102
  selectInvert: "反选",
91
103
  selectNone: "清空选择",
@@ -78,6 +78,17 @@ var locale = {
78
78
  select: {
79
79
  noData: "暫無資料"
80
80
  },
81
+ input: {
82
+ showPassword: "顯示密碼",
83
+ hidePassword: "隱藏密碼"
84
+ },
85
+ ellipsis: {
86
+ expand: "展開",
87
+ collapse: "收合"
88
+ },
89
+ transfer: {
90
+ searchPlaceholder: "搜尋"
91
+ },
81
92
  weekpicker: {
82
93
  weekHeader: ["", "日", "一", "二", "三", "四", "五", "六"]
83
94
  },
@@ -86,6 +97,7 @@ var locale = {
86
97
  filterConfirm: "確定",
87
98
  filterReset: "重置",
88
99
  filterEmptyText: "無篩選條件",
100
+ filterAll: "全部",
89
101
  selectAll: "全選",
90
102
  selectInvert: "反選",
91
103
  selectNone: "清空選擇",
@@ -96,7 +96,7 @@
96
96
  --yee-btn-border-radius: 4px;
97
97
  --yee-btn-loading-margin-inline-end: 6px;
98
98
  --yee-btn-border-width: 1px;
99
- --yee-btn-solid-active-box-shadow: 0 0 2px 2px rgba(64, 169, 255, 30%);
99
+ --yee-btn-solid-active-box-shadow: 0 0 4px 0;
100
100
  --yee-btn-circle-min-width: 32px;
101
101
  --yee-btn-icon-gap: 4px;
102
102
  --yee-btn-disabled-opacity: 0.5;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * @rainbow-oh/yee-c CSS Variables
3
3
  * Auto-generated, do not edit manually
4
- * Generated on 2026-06-26T09:17:49.742Z
4
+ * Generated on 2026-07-01T03:21:30.989Z
5
5
  */
6
6
 
7
7
  /* ========== color.blue.css ========== */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * @rainbow-oh/yee-c CSS Variables
3
3
  * Auto-generated, do not edit manually
4
- * Generated on 2026-06-26T09:17:49.742Z
4
+ * Generated on 2026-07-01T03:21:30.989Z
5
5
  */
6
6
 
7
7
  /* ========== color.css ========== */
@@ -1214,7 +1214,7 @@
1214
1214
  --yee-btn-border-radius: 4px;
1215
1215
  --yee-btn-loading-margin-inline-end: 6px;
1216
1216
  --yee-btn-border-width: 1px;
1217
- --yee-btn-solid-active-box-shadow: 0 0 2px 2px rgba(64, 169, 255, 30%);
1217
+ --yee-btn-solid-active-box-shadow: 0 0 4px 0;
1218
1218
  --yee-btn-circle-min-width: 32px;
1219
1219
  --yee-btn-icon-gap: 4px;
1220
1220
  --yee-btn-disabled-opacity: 0.5;
@@ -3,4 +3,4 @@ declare global {
3
3
  __yee_c_version__: string;
4
4
  }
5
5
  }
6
- export declare const version = "0.4.0";
6
+ export declare const version = "0.4.2";
@@ -22,7 +22,7 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- var version = "0.4.0";
25
+ var version = "0.4.2";
26
26
  if (typeof window !== "undefined") {
27
27
  window.__yee_c_version__ = version;
28
28
  }
@@ -14,10 +14,9 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
14
14
  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; }
15
15
  import clsx from 'clsx';
16
16
  import { ChevronLeft } from 'lucide-react';
17
- import React, { createContext, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';
17
+ import React, { createContext, forwardRef, useCallback, useContext, useEffect, useRef, useState } from 'react';
18
18
  import { GlobalContext } from "../Config-Provider";
19
19
  import useMergedState from "../hooks/useMergedState";
20
- import debounce from "../utils/debounce";
21
20
  import mergeContextToProps from "../utils/mergeContextToProps";
22
21
  import AnchorItem from "./anchor-item";
23
22
  import "./style/index.less";
@@ -109,30 +108,56 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
109
108
 
110
109
  // Empty array guard
111
110
  if (!currentItems || currentItems.length === 0) return;
111
+
112
+ // Pick the last anchor whose top has crossed the activation line.
113
+ var nextActiveKey;
112
114
  for (var i = currentItems.length - 1; i >= 0; i--) {
113
115
  var item = currentItems[i];
114
116
  var target = document.getElementById(item.key);
115
117
  if (target) {
116
118
  var targetTop = getTargetOffsetTop(target);
117
119
  if (scrollTop + offsetTop >= targetTop) {
118
- if (activeKeyRef.current !== item.key) {
119
- setMergedActiveKey(item.key);
120
- onChange === null || onChange === void 0 || onChange(item.key);
121
- }
120
+ nextActiveKey = item.key;
122
121
  break;
123
122
  }
124
123
  }
125
124
  }
125
+
126
+ // Scrolled above the first anchor — reset to the top item.
127
+ if (nextActiveKey === undefined) {
128
+ var first = currentItems.find(function (item) {
129
+ return document.getElementById(item.key);
130
+ });
131
+ nextActiveKey = first === null || first === void 0 ? void 0 : first.key;
132
+ }
133
+ if (nextActiveKey && activeKeyRef.current !== nextActiveKey) {
134
+ setMergedActiveKey(nextActiveKey);
135
+ onChange === null || onChange === void 0 || onChange(nextActiveKey);
136
+ }
126
137
  }, [auto, anchorList, items, offsetTop, onChange, getTargetOffsetTop]);
127
138
  useEffect(function () {
128
- var container = containerRef.current;
139
+ // Resolve in a passive effect: parent-owned refs passed via `getContainer`
140
+ // aren't attached until after child layout effects run.
141
+ var container = getContainer ? getContainer() : window;
142
+ containerRef.current = container;
129
143
  if (!container) return;
130
- var debouncedScroll = debounce(handleScroll, 100);
131
- container.addEventListener('scroll', debouncedScroll);
144
+
145
+ // rAF throttle so the active key tracks scroll live.
146
+ var rafId = null;
147
+ var onScroll = function onScroll() {
148
+ if (rafId !== null) return;
149
+ rafId = requestAnimationFrame(function () {
150
+ rafId = null;
151
+ handleScroll();
152
+ });
153
+ };
154
+ container.addEventListener('scroll', onScroll);
132
155
  handleScroll();
133
156
  return function () {
134
- container.removeEventListener('scroll', debouncedScroll);
135
- debouncedScroll.cancel();
157
+ container.removeEventListener('scroll', onScroll);
158
+ if (rafId !== null) {
159
+ cancelAnimationFrame(rafId);
160
+ }
136
161
  };
137
162
  }, [getContainer, handleScroll]);
138
163
 
@@ -155,10 +180,7 @@ var Anchor = /*#__PURE__*/forwardRef(function (baseprops, ref) {
155
180
  });
156
181
  }
157
182
  }, [offsetTop, getTargetOffsetTop]);
158
- useLayoutEffect(function () {
159
- containerRef.current = getContainer ? getContainer() : window;
160
- }, [getContainer]);
161
- useLayoutEffect(function () {
183
+ useEffect(function () {
162
184
  if (defaultActiveKey) {
163
185
  scrollToAnchor(defaultActiveKey);
164
186
  }
@@ -8,6 +8,7 @@ export default (function () {
8
8
  }, "Primary Button"), /*#__PURE__*/React.createElement(Button, null, "Children Button"), /*#__PURE__*/React.createElement(Button, null, "Default Button"), /*#__PURE__*/React.createElement(Button, {
9
9
  type: "dashed"
10
10
  }, "Dashed Button"), /*#__PURE__*/React.createElement(Button, {
11
+ variant: "filled",
11
12
  type: "text"
12
13
  }, "Text Button"), /*#__PURE__*/React.createElement(Button, {
13
14
  type: "link"
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: () => React.JSX.Element;
3
+ export default _default;
@@ -0,0 +1,49 @@
1
+ import { Button, Space } from "../..";
2
+ import React from 'react';
3
+ var types = ['primary', 'default', 'dashed', 'text', 'link'];
4
+ var colors = ['default', 'primary', 'success', 'danger', 'warning'];
5
+ var variants = ['solid', 'outlined', 'dashed', 'filled', 'text', 'link'];
6
+ var labelStyle = {
7
+ flex: '0 0 80px',
8
+ color: '#969696',
9
+ fontSize: 14
10
+ };
11
+ var rowStyle = {
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ gap: 12
15
+ };
16
+ export default (function () {
17
+ return /*#__PURE__*/React.createElement(Space, {
18
+ direction: "horizontal",
19
+ block: true,
20
+ gap: 12,
21
+ wrap: true
22
+ }, /*#__PURE__*/React.createElement("div", {
23
+ style: rowStyle
24
+ }, /*#__PURE__*/React.createElement("span", {
25
+ style: labelStyle
26
+ }, "type"), /*#__PURE__*/React.createElement(Space, {
27
+ wrap: true
28
+ }, types.map(function (t) {
29
+ return /*#__PURE__*/React.createElement(Button, {
30
+ key: t,
31
+ type: t
32
+ }, t);
33
+ }))), variants.map(function (variant) {
34
+ return /*#__PURE__*/React.createElement("div", {
35
+ key: variant,
36
+ style: rowStyle
37
+ }, /*#__PURE__*/React.createElement("span", {
38
+ style: labelStyle
39
+ }, variant), /*#__PURE__*/React.createElement(Space, {
40
+ wrap: true
41
+ }, colors.map(function (color) {
42
+ return /*#__PURE__*/React.createElement(Button, {
43
+ key: color,
44
+ color: color,
45
+ variant: variant
46
+ }, color);
47
+ })));
48
+ }));
49
+ });
@@ -66,19 +66,28 @@
66
66
  background-color: var(--m-btn-color);
67
67
 
68
68
  &:not(@{pls}-disabled):hover {
69
- background-color: var(--m-btn-hover-color);
69
+ background-color: color-mix(in srgb, var(--m-btn-color), black 12%);
70
70
  }
71
71
 
72
72
  &:not(@{pls}-disabled):active {
73
- background-color: var(--m-btn-active-color);
74
- box-shadow: var(--yee-btn-solid-active-box-shadow);
73
+ background-color: color-mix(in srgb, var(--m-btn-color), black 20%);
74
+ box-shadow: var(--yee-btn-solid-active-box-shadow)
75
+ var(--m-btn-active-shadow-color);
75
76
  }
76
77
  }
77
78
 
78
79
  // 字体颜色,背景是字体颜色的浅色
79
80
  &-filled {
80
- color: var(--yee-btn-primary-color);
81
- background-color: var(--m-btn-color);
81
+ color: var(--m-btn-color);
82
+ background-color: color-mix(in srgb, var(--m-btn-color) 10%, transparent);
83
+
84
+ &:not(@{pls}-disabled):hover {
85
+ background-color: color-mix(in srgb, var(--m-btn-color) 16%, transparent);
86
+ }
87
+
88
+ &:not(@{pls}-disabled):active {
89
+ background-color: color-mix(in srgb, var(--m-btn-color) 22%, transparent);
90
+ }
82
91
  }
83
92
 
84
93
  &-outlined {
@@ -154,27 +163,56 @@
154
163
  --m-btn-border-active-color: var(--yee-primary-color-active);
155
164
  --m-btn-active-color: var(--yee-primary-color-active);
156
165
  --m-btn-active-bg-color: var(--yee-text-color-auxiliary);
166
+ --m-btn-active-shadow-color: var(--yee-primary-color-active);
157
167
  }
158
168
 
159
169
  &-primary {
160
170
  --m-btn-color: var(--yee-primary-color);
161
171
  --m-btn-hover-color: var(--yee-primary-color-hover);
162
172
  --m-btn-active-color: var(--yee-primary-color-active);
163
- --m-btn-bg-color: var(--yee-btn-success-bg-color);
164
- --m-btn-hover-bg-color: var(--yee-btn-success-bg-color);
165
- --m-btn-active-bg-color: var(--yee-btn-success-bg-color);
173
+ --m-btn-bg-color: var(--yee-btn-primary-bg-color);
174
+ --m-btn-hover-bg-color: var(--yee-primary-color-hover);
175
+ --m-btn-active-bg-color: var(--yee-primary-color-active);
176
+ --m-btn-border-color: var(--yee-primary-color);
177
+ --m-btn-border-hover-color: var(--yee-primary-color-hover);
178
+ --m-btn-border-active-color: var(--yee-primary-color-active);
179
+ --m-btn-active-shadow-color: var(--yee-primary-color-active);
166
180
  }
167
181
 
168
182
  &-success {
169
- --m-btn-color: var(--yee-btn-success-color);
183
+ --m-btn-color: var(--yee-success-color);
184
+ --m-btn-hover-color: var(--yee-success-color-hover);
185
+ --m-btn-active-color: var(--yee-success-color-active);
186
+ --m-btn-border-color: var(--yee-success-color);
187
+ --m-btn-border-hover-color: var(--yee-success-color-hover);
188
+ --m-btn-border-active-color: var(--yee-success-color-active);
189
+ --m-btn-hover-bg-color: var(--yee-success-color-hover);
190
+ --m-btn-active-bg-color: var(--yee-success-color-active);
191
+ --m-btn-active-shadow-color: var(--yee-success-color-active);
170
192
  }
171
193
 
172
194
  &-danger {
173
- --m-btn-color: var(--yee-btn-danger-color);
195
+ --m-btn-color: var(--yee-error-color);
196
+ --m-btn-hover-color: var(--yee-error-color-hover);
197
+ --m-btn-active-color: var(--yee-error-color-active);
198
+ --m-btn-border-color: var(--yee-error-color);
199
+ --m-btn-border-hover-color: var(--yee-error-color-hover);
200
+ --m-btn-border-active-color: var(--yee-error-color-active);
201
+ --m-btn-hover-bg-color: var(--yee-error-color-hover);
202
+ --m-btn-active-bg-color: var(--yee-error-color-active);
203
+ --m-btn-active-shadow-color: var(--yee-error-color-active);
174
204
  }
175
205
 
176
206
  &-warning {
177
- --m-btn-color: var(--yee-btn-warning-color);
207
+ --m-btn-color: var(--yee-warning-color);
208
+ --m-btn-hover-color: var(--yee-warning-color-hover);
209
+ --m-btn-active-color: var(--yee-warning-color-active);
210
+ --m-btn-border-color: var(--yee-warning-color);
211
+ --m-btn-border-hover-color: var(--yee-warning-color-hover);
212
+ --m-btn-border-active-color: var(--yee-warning-color-active);
213
+ --m-btn-hover-bg-color: var(--yee-warning-color-hover);
214
+ --m-btn-active-bg-color: var(--yee-warning-color-active);
215
+ --m-btn-active-shadow-color: var(--yee-warning-color-active);
178
216
  }
179
217
 
180
218
  &-disabled {
@@ -141,7 +141,7 @@ var DatePickerMobile = function DatePickerMobile(props) {
141
141
  block: true,
142
142
  type: "primary",
143
143
  onClick: handleConfirm
144
- }, (datepicker === null || datepicker === void 0 ? void 0 : datepicker.confirm) || 'Confirm')
144
+ }, datepicker.confirm)
145
145
  }, /*#__PURE__*/React.createElement(WheelPicker, {
146
146
  columns: columns,
147
147
  value: wheelValue,