@nutui/nutui-react-taro 3.0.19-cpp.26-beta.5 → 3.0.19-cpp.28-beta.1

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 (93) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/locales/base.d.ts +6 -0
  3. package/dist/cjs/locales/en-US.js +17 -1
  4. package/dist/cjs/locales/id-ID.js +17 -1
  5. package/dist/cjs/locales/ja-JP.js +16 -2
  6. package/dist/cjs/locales/tr-TR.js +17 -1
  7. package/dist/cjs/locales/zh-CN.js +15 -1
  8. package/dist/cjs/locales/zh-TW.js +15 -1
  9. package/dist/cjs/locales/zh-UG.js +17 -1
  10. package/dist/cjs/packages/address/address.d.ts +1 -1
  11. package/dist/cjs/packages/animatingnumbers/countup.js +3 -1
  12. package/dist/cjs/packages/avatar/avatar.js +32 -6
  13. package/dist/cjs/packages/badge/badge.js +16 -3
  14. package/dist/cjs/packages/button/button.d.ts +2 -21
  15. package/dist/cjs/packages/button/button.js +2 -3
  16. package/dist/cjs/packages/button/index.d.ts +0 -1
  17. package/dist/cjs/packages/calendarcard/calendarcard.js +30 -8
  18. package/dist/cjs/packages/dialog/dialog.js +6 -2
  19. package/dist/cjs/packages/divider/divider.js +2 -2
  20. package/dist/cjs/packages/empty/empty.d.ts +4 -4
  21. package/dist/cjs/packages/image/image.js +11 -3
  22. package/dist/cjs/packages/input/input.js +10 -3
  23. package/dist/cjs/packages/progress/progress.js +2 -4
  24. package/dist/cjs/packages/quickenter/quickenter.js +21 -15
  25. package/dist/cjs/packages/quickenter/style/quickenter.scss +10 -2
  26. package/dist/cjs/packages/quickenter/style/style.css +7 -1
  27. package/dist/cjs/packages/quickenter/style/style.harmony.css +6 -1
  28. package/dist/cjs/packages/quickenter/style-jmapp/quickenter.scss +10 -2
  29. package/dist/cjs/packages/quickenter/style-jmapp/style.css +7 -1
  30. package/dist/cjs/packages/quickenter/style-jrkf/quickenter.scss +10 -2
  31. package/dist/cjs/packages/quickenter/style-jrkf/style.css +7 -1
  32. package/dist/cjs/packages/resultpage/resultpage.js +2 -1
  33. package/dist/cjs/packages/searchbar/searchbar.js +23 -9
  34. package/dist/cjs/packages/swipe/swipe.d.ts +1 -1
  35. package/dist/cjs/packages/tabs/tabs.js +12 -5
  36. package/dist/cjs/types/spec/button/base.d.ts +2 -1
  37. package/dist/cjs/types/spec/button/taro.d.ts +5 -1
  38. package/dist/cjs/types/spec/calendarcard/base.d.ts +2 -0
  39. package/dist/cjs/types/spec/quickenter/base.d.ts +1 -0
  40. package/dist/cjs/utils/taro/get-rect.js +4 -2
  41. package/dist/es/locales/base.d.ts +6 -0
  42. package/dist/es/locales/en-US.js +17 -1
  43. package/dist/es/locales/id-ID.js +17 -1
  44. package/dist/es/locales/ja-JP.js +16 -2
  45. package/dist/es/locales/tr-TR.js +17 -1
  46. package/dist/es/locales/zh-CN.js +15 -1
  47. package/dist/es/locales/zh-TW.js +15 -1
  48. package/dist/es/locales/zh-UG.js +17 -1
  49. package/dist/es/packages/address/address.d.ts +1 -1
  50. package/dist/es/packages/animatingnumbers/countup.js +3 -1
  51. package/dist/es/packages/avatar/avatar.js +32 -6
  52. package/dist/es/packages/badge/badge.js +16 -3
  53. package/dist/es/packages/button/button.d.ts +2 -21
  54. package/dist/es/packages/button/button.js +2 -4
  55. package/dist/es/packages/button/index.d.ts +0 -1
  56. package/dist/es/packages/calendarcard/calendarcard.js +31 -9
  57. package/dist/es/packages/dialog/dialog.js +6 -2
  58. package/dist/es/packages/divider/divider.js +1 -1
  59. package/dist/es/packages/empty/empty.d.ts +4 -4
  60. package/dist/es/packages/image/image.js +11 -3
  61. package/dist/es/packages/input/input.js +10 -3
  62. package/dist/es/packages/popup/popup.js +1 -2
  63. package/dist/es/packages/progress/progress.js +2 -4
  64. package/dist/es/packages/quickenter/quickenter.js +19 -13
  65. package/dist/es/packages/quickenter/style/quickenter.scss +10 -2
  66. package/dist/es/packages/quickenter/style/style.css +7 -1
  67. package/dist/es/packages/quickenter/style/style.harmony.css +6 -1
  68. package/dist/es/packages/quickenter/style-jmapp/quickenter.scss +10 -2
  69. package/dist/es/packages/quickenter/style-jmapp/style.css +7 -1
  70. package/dist/es/packages/quickenter/style-jrkf/quickenter.scss +10 -2
  71. package/dist/es/packages/quickenter/style-jrkf/style.css +7 -1
  72. package/dist/es/packages/resultpage/resultpage.js +2 -1
  73. package/dist/es/packages/searchbar/searchbar.js +23 -9
  74. package/dist/es/packages/swipe/swipe.d.ts +1 -1
  75. package/dist/es/packages/tabs/tabs.js +12 -5
  76. package/dist/es/types/spec/button/base.d.ts +2 -1
  77. package/dist/es/types/spec/button/taro.d.ts +5 -1
  78. package/dist/es/types/spec/calendarcard/base.d.ts +2 -0
  79. package/dist/es/types/spec/quickenter/base.d.ts +1 -0
  80. package/dist/es/utils/taro/get-rect.js +4 -2
  81. package/dist/nutui.react.umd.js +1166 -111
  82. package/dist/style-jmapp.css +1 -1
  83. package/dist/style-jmapp.scss +24 -24
  84. package/dist/style-jrkf.css +1 -1
  85. package/dist/style-jrkf.scss +32 -32
  86. package/dist/style.css +1 -1
  87. package/dist/style.scss +40 -40
  88. package/dist/styles/jd-font.scss +2 -2
  89. package/dist/styles/themes/daojia.css +1 -1
  90. package/dist/styles/themes/dark-daojia.css +1 -1
  91. package/dist/styles/themes/dark.css +1 -1
  92. package/dist/styles/themes/default.css +1 -1
  93. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # v3.0.19-cpp.27
2
+
3
+ `2026-04-24`
4
+
5
+ - 🏡 chore: 升级京东正黑字体到 2.3 (#3435)
6
+ - 🏡 chore: 升级 icon 库版本
7
+ - 🚀 feat: 针对小程序环境进行性能优化与 SelectorQuery 作用域适配 (Tabs, CountUp, getRect)
8
+ - ♿️ feat: 全面适配无障碍 (A11y),涉及组件:Image, Dialog, Button, SearchBar, Popup, Tabs, Progress, Avatar, NavBar, ResultPage
9
+ - 📖 docs: 新增组件标准白皮书与 AI 助手相关文档
10
+ - 🐛 fix(avatar): 修复 onClick 条件判断逻辑并支持 Taro 端 alt 属性
11
+ - 🐛 fix(tabs): 修复 useRtl 引用路径并优化无障碍属性
12
+ - 🐛 fix(quickenter): 修复顶部安全区域适配问题
13
+ - 🐛 fix(type): 修复类型导出与 lint 问题
14
+
1
15
  # v3.0.18
2
16
 
3
17
  `2025-08-15`
@@ -9,6 +9,11 @@ export interface BaseLang {
9
9
  edit: string;
10
10
  reset: string;
11
11
  close: string;
12
+ back: string;
13
+ clear: string;
14
+ image: {
15
+ errorTip: string;
16
+ };
12
17
  video: {
13
18
  errorTip: string;
14
19
  clickRetry: string;
@@ -39,6 +44,7 @@ export interface BaseLang {
39
44
  today: string;
40
45
  loadPreviousMonth: string;
41
46
  noEarlierMonth: string;
47
+ dayAriaLabel?: Function;
42
48
  };
43
49
  shortpassword: {
44
50
  title: string;
@@ -19,6 +19,11 @@ var enUS = {
19
19
  edit: 'Edit',
20
20
  reset: 'Reset',
21
21
  close: 'Close',
22
+ back: 'Back',
23
+ clear: 'Clear',
24
+ image: {
25
+ errorTip: 'Image failed to load'
26
+ },
22
27
  video: {
23
28
  errorTip: 'Error Tip',
24
29
  clickRetry: 'Click Retry'
@@ -58,7 +63,18 @@ var enUS = {
58
63
  },
59
64
  today: 'Today',
60
65
  loadPreviousMonth: 'Load Previous Month',
61
- noEarlierMonth: 'No Earlier Month'
66
+ noEarlierMonth: 'No Earlier Month',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ var dateStr = "".concat(year, "-").concat(month, "-").concat(day);
69
+ var label = today ? "Today, ".concat(dateStr) : dateStr;
70
+ if (isActive) {
71
+ label = "Selected ".concat(label);
72
+ }
73
+ if (isDisable) {
74
+ label = "".concat(label, " disabled");
75
+ }
76
+ return label;
77
+ }
62
78
  },
63
79
  shortpassword: {
64
80
  title: 'Please input a password',
@@ -19,6 +19,11 @@ var idID = {
19
19
  edit: 'Sunting',
20
20
  reset: 'Mengatur Ulang',
21
21
  close: 'Tutup',
22
+ back: 'Kembali',
23
+ clear: 'Bersihkan',
24
+ image: {
25
+ errorTip: 'Gambar gagal dimuat'
26
+ },
22
27
  video: {
23
28
  errorTip: 'Terjadi Kesalahan',
24
29
  clickRetry: 'Coba Lagi'
@@ -58,7 +63,18 @@ var idID = {
58
63
  },
59
64
  today: 'Hari ini',
60
65
  loadPreviousMonth: 'Muat Bulan Sebelumnya',
61
- noEarlierMonth: 'Tidak Ada Bulan Sebelumnya'
66
+ noEarlierMonth: 'Tidak Ada Bulan Sebelumnya',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ var dateStr = "".concat(year, "-").concat(month, "-").concat(day);
69
+ var label = today ? "Hari ini, ".concat(dateStr) : dateStr;
70
+ if (isActive) {
71
+ label = "Dipilih ".concat(label);
72
+ }
73
+ if (isDisable) {
74
+ label = "".concat(label, " dinonaktifkan");
75
+ }
76
+ return label;
77
+ }
62
78
  },
63
79
  shortpassword: {
64
80
  title: 'SIlakan masukan kata sandi',
@@ -18,6 +18,12 @@ var jaJP = {
18
18
  select: '選択してください',
19
19
  edit: '編集',
20
20
  reset: 'リセット',
21
+ close: '閉じる',
22
+ back: '戻る',
23
+ clear: 'クリア',
24
+ image: {
25
+ errorTip: '画像の読み込みに失敗しました'
26
+ },
21
27
  video: {
22
28
  errorTip: '動画の読み込みに失敗しました',
23
29
  clickRetry: 'クリックして再試行'
@@ -57,7 +63,16 @@ var jaJP = {
57
63
  },
58
64
  today: '今日',
59
65
  loadPreviousMonth: '前の月を読み込む',
60
- noEarlierMonth: 'これより前の月はありません'
66
+ noEarlierMonth: 'これより前の月はありません',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ if (isActive) {
69
+ return today ? "今日".concat(month, "月").concat(day, "日を選択しました") : "".concat(month, "月").concat(day, "日を選択しました");
70
+ }
71
+ if (isDisable) {
72
+ return today ? "今日".concat(month, "月").concat(day, "日は無効です") : "".concat(month, "月").concat(day, "日は無効です");
73
+ }
74
+ return today ? "今日".concat(month, "月").concat(day, "日") : "".concat(month, "月").concat(day, "日");
75
+ }
61
76
  },
62
77
  shortpassword: {
63
78
  title: 'パスワードを入力してください',
@@ -165,7 +180,6 @@ var jaJP = {
165
180
  errorCanvasTips: '現在の環境はCanvasをサポートしていません'
166
181
  },
167
182
  mask: 'マスク',
168
- close: '閉じる',
169
183
  quickenter: {
170
184
  title: 'クイックアクセス'
171
185
  }
@@ -19,6 +19,11 @@ var trTR = {
19
19
  edit: 'düzenlemek',
20
20
  reset: 'sıfırlama',
21
21
  close: 'Kapat',
22
+ back: 'Geri',
23
+ clear: 'Temizle',
24
+ image: {
25
+ errorTip: 'Resim yüklenemedi'
26
+ },
22
27
  video: {
23
28
  errorTip: 'Video yüklenemedi',
24
29
  clickRetry: 'Yeniden Tıklayın'
@@ -58,7 +63,18 @@ var trTR = {
58
63
  },
59
64
  today: 'Bugün',
60
65
  loadPreviousMonth: 'Önceki ayı yükle',
61
- noEarlierMonth: 'Önceki ay yok'
66
+ noEarlierMonth: 'Önceki ay yok',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ var dateStr = "".concat(year, "-").concat(month, "-").concat(day);
69
+ var label = today ? "Bug\xfcn, ".concat(dateStr) : dateStr;
70
+ if (isActive) {
71
+ label = "Se\xe7ili ".concat(label);
72
+ }
73
+ if (isDisable) {
74
+ label = "".concat(label, " devre dışı");
75
+ }
76
+ return label;
77
+ }
62
78
  },
63
79
  shortpassword: {
64
80
  title: 'Lütfen şifrenizi girin',
@@ -19,6 +19,11 @@ var zhCN = {
19
19
  edit: '编辑',
20
20
  reset: '重置',
21
21
  close: '关闭',
22
+ back: '返回',
23
+ clear: '清除',
24
+ image: {
25
+ errorTip: '图片加载失败'
26
+ },
22
27
  video: {
23
28
  errorTip: '视频加载失败',
24
29
  clickRetry: '点击重试'
@@ -58,7 +63,16 @@ var zhCN = {
58
63
  },
59
64
  today: '今天',
60
65
  loadPreviousMonth: '加载上一个月',
61
- noEarlierMonth: '没有更早月份'
66
+ noEarlierMonth: '没有更早月份',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ if (isActive) {
69
+ return today ? "已选定今日".concat(month, "月").concat(day, "号") : "已选定".concat(month, "月").concat(day, "号");
70
+ }
71
+ if (isDisable) {
72
+ return today ? "".concat(month, "月").concat(day, "号今日按钮变暗") : "".concat(month, "月").concat(day, "号按钮变暗");
73
+ }
74
+ return today ? "".concat(month, "月").concat(day, "号今日") : "".concat(month, "月").concat(day, "号");
75
+ }
62
76
  },
63
77
  shortpassword: {
64
78
  title: '请输入密码',
@@ -19,6 +19,11 @@ var zhCN = {
19
19
  edit: '編輯',
20
20
  reset: '重置',
21
21
  close: '關閉',
22
+ back: '返回',
23
+ clear: '清除',
24
+ image: {
25
+ errorTip: '圖片加載失敗'
26
+ },
22
27
  video: {
23
28
  errorTip: '視頻加載失敗',
24
29
  clickRetry: '點擊重試'
@@ -58,7 +63,16 @@ var zhCN = {
58
63
  },
59
64
  today: '今天',
60
65
  loadPreviousMonth: '加載上一個月',
61
- noEarlierMonth: '沒有更早月份'
66
+ noEarlierMonth: '沒有更早月份',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ if (isActive) {
69
+ return today ? "已選定今日".concat(month, "月").concat(day, "號") : "已選定".concat(month, "月").concat(day, "號");
70
+ }
71
+ if (isDisable) {
72
+ return today ? "".concat(month, "月").concat(day, "號今日按鈕變暗") : "".concat(month, "月").concat(day, "號按鈕變暗");
73
+ }
74
+ return today ? "".concat(month, "月").concat(day, "號今日") : "".concat(month, "月").concat(day, "號");
75
+ }
62
76
  },
63
77
  shortpassword: {
64
78
  title: '請輸入密碼',
@@ -19,6 +19,11 @@ var zhUG = {
19
19
  edit: 'يحرر',
20
20
  reset: 'إعادة ضبط',
21
21
  close: 'تاقاش',
22
+ back: 'قايتىش',
23
+ clear: 'تاقاش',
24
+ image: {
25
+ errorTip: 'رەسىم يۈكلەش مەغلۇپ بولدى'
26
+ },
22
27
  video: {
23
28
  errorTip: 'فىلىمنى قويۇش مەغلۇپ بولدى',
24
29
  clickRetry: 'قايتا سىناش'
@@ -58,7 +63,18 @@ var zhUG = {
58
63
  },
59
64
  today: 'بۈگۈن',
60
65
  loadPreviousMonth: 'ئالدىنقى ئاي',
61
- noEarlierMonth: 'تۈگىدى'
66
+ noEarlierMonth: 'تۈگىدى',
67
+ dayAriaLabel: function dayAriaLabel(year, month, day, today, isActive, isDisable) {
68
+ var dateStr = "".concat(year, "-").concat(month, "-").concat(day);
69
+ var label = today ? "بۈگۈن, ".concat(dateStr) : dateStr;
70
+ if (isActive) {
71
+ label = "تاللانغان ".concat(label);
72
+ }
73
+ if (isDisable) {
74
+ label = "".concat(label, " چەكلەنگەن");
75
+ }
76
+ return label;
77
+ }
62
78
  },
63
79
  shortpassword: {
64
80
  title: 'مەخپى نومۇرنى كىرگۈزۈڭ',
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import { AddressRef, TaroAddressProps } from "../../types";
3
- export declare const Address: React.ForwardRefExoticComponent<Partial<TaroAddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange" | "onClick" | "title" | "onLoad"> & React.RefAttributes<AddressRef>>;
3
+ export declare const Address: React.ForwardRefExoticComponent<Partial<TaroAddressProps> & Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange" | "title" | "onClick" | "onLoad"> & React.RefAttributes<AddressRef>>;
@@ -59,7 +59,9 @@ var CountUp = function CountUp(props) {
59
59
  var isLoaded = (0, _react.useRef)(false);
60
60
  var setNumberTransform = (0, _react.useCallback)(function() {
61
61
  if (countupRef.current && numberArr.length) {
62
- (0, _taro.createSelectorQuery)().selectAll('.nut-countup-listitem').node(function(numberItems) {
62
+ var _countupRef_current;
63
+ (0, _taro.createSelectorQuery)() // @ts-ignore
64
+ .in(((_countupRef_current = countupRef.current) === null || _countupRef_current === void 0 ? void 0 : _countupRef_current._scope) || countupRef.current).selectAll('.nut-countup-listitem').node(function(numberItems) {
63
65
  var transformArrCache = [];
64
66
  Object.keys(numberItems).forEach(function(key) {
65
67
  var elem = numberItems[Number(key)];
@@ -13,6 +13,7 @@ var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcar
13
13
  var _define_property = require("@swc/helpers/_/_define_property");
14
14
  var _object_spread = require("@swc/helpers/_/_object_spread");
15
15
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
16
+ var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
16
17
  var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
17
18
  var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
18
19
  var _components = require("@tarojs/components");
@@ -37,7 +38,23 @@ var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typing
37
38
  });
38
39
  var classPrefix = "nut-avatar";
39
40
  var Avatar = function Avatar(props) {
40
- var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), children = _$_object_spread.children, size = _$_object_spread.size, shape = _$_object_spread.shape, background = _$_object_spread.background, color = _$_object_spread.color, src = _$_object_spread.src, icon = _$_object_spread.icon, mode = _$_object_spread.mode, fit = _$_object_spread.fit, avatarIndex = _$_object_spread.avatarIndex, className = _$_object_spread.className, style = _$_object_spread.style, onClick = _$_object_spread.onClick, onError = _$_object_spread.onError;
41
+ var _ref = (0, _object_spread._)({}, defaultProps, props), children = _ref.children, size = _ref.size, shape = _ref.shape, background = _ref.background, color = _ref.color, src = _ref.src, alt = _ref.alt, icon = _ref.icon, mode = _ref.mode, fit = _ref.fit, avatarIndex = _ref.avatarIndex, className = _ref.className, style = _ref.style, onClick = _ref.onClick, onError = _ref.onError, rest = (0, _object_without_properties._)(_ref, [
42
+ "children",
43
+ "size",
44
+ "shape",
45
+ "background",
46
+ "color",
47
+ "src",
48
+ "alt",
49
+ "icon",
50
+ "mode",
51
+ "fit",
52
+ "avatarIndex",
53
+ "className",
54
+ "style",
55
+ "onClick",
56
+ "onError"
57
+ ]);
41
58
  var _useState // 是否显示的最大头像个数
42
59
  = (0, _sliced_to_array._)((0, _react.useState)(false), 2), showMax = _useState[0], setShowMax = _useState[1];
43
60
  var avatarRef = (0, _react.useRef)(null);
@@ -74,7 +91,8 @@ var Avatar = function Avatar(props) {
74
91
  }
75
92
  }, [
76
93
  avatarIndex,
77
- groupCount
94
+ groupCount,
95
+ groupMax
78
96
  ]);
79
97
  var errorEvent = function errorEvent() {
80
98
  onError && onError();
@@ -82,19 +100,26 @@ var Avatar = function Avatar(props) {
82
100
  var clickAvatar = function clickAvatar(e) {
83
101
  onClick && onClick(e);
84
102
  };
85
- return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, (showMax || !groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_components.View, {
103
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, (showMax || !groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_components.View, (0, _object_spread._)({
86
104
  className: cls,
87
105
  style: !showMax ? styles : maxStyles,
88
106
  onClick: clickAvatar,
89
- ref: avatarRef
90
- }, (!groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, src && /*#__PURE__*/ _react.default.createElement(_components.Image, {
107
+ ref: avatarRef,
108
+ // @ts-ignore
109
+ ariaRole: onClick ? 'button' : undefined
110
+ }, rest), (!groupMax || avatarIndex <= groupMax) && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, src && /*#__PURE__*/ _react.default.createElement(_components.Image, {
91
111
  className: "nut-avatar-img nut-avatar-".concat(groupSize || size || 'normal', "-img"),
92
112
  src: src,
113
+ nativeProps: {
114
+ alt: alt
115
+ },
93
116
  style: {
94
117
  objectFit: fit
95
118
  },
96
119
  mode: mode,
97
- onError: errorEvent
120
+ onError: errorEvent,
121
+ // @ts-ignore
122
+ ariaHidden: true
98
123
  }), /*#__PURE__*/ _react.default.isValidElement(icon) ? /*#__PURE__*/ _react.default.createElement(_components.View, {
99
124
  className: "nut-avatar-text"
100
125
  }, /*#__PURE__*/ _react.default.cloneElement(icon, (0, _object_spread_props._)((0, _object_spread._)({}, icon.props), {
@@ -108,6 +133,7 @@ var Avatar = function Avatar(props) {
108
133
  }, children), !src && !icon && !children && /*#__PURE__*/ _react.default.createElement(_components.View, {
109
134
  className: "nut-avatar-text"
110
135
  }, /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.User, {
136
+ ariaHidden: true,
111
137
  style: {
112
138
  color: color
113
139
  },
@@ -14,6 +14,7 @@ var _async_to_generator = require("@swc/helpers/_/_async_to_generator");
14
14
  var _define_property = require("@swc/helpers/_/_define_property");
15
15
  var _object_spread = require("@swc/helpers/_/_object_spread");
16
16
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
17
+ var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
17
18
  var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
18
19
  var _type_of = require("@swc/helpers/_/_type_of");
19
20
  var _ts_generator = require("@swc/helpers/_/_ts_generator");
@@ -53,7 +54,19 @@ var Badge = function Badge(props) {
53
54
  };
54
55
  var _this;
55
56
  var rtl = (0, _index.useRtl)();
56
- var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), className = _$_object_spread.className, style = _$_object_spread.style, value = _$_object_spread.value, max = _$_object_spread.max, children = _$_object_spread.children, dot = _$_object_spread.dot, top = _$_object_spread.top, right = _$_object_spread.right, fill = _$_object_spread.fill, size = _$_object_spread.size, disabled = _$_object_spread.disabled;
57
+ var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, style = _ref.style, value = _ref.value, max = _ref.max, children = _ref.children, dot = _ref.dot, top = _ref.top, right = _ref.right, fill = _ref.fill, size = _ref.size, disabled = _ref.disabled, rest = (0, _object_without_properties._)(_ref, [
58
+ "className",
59
+ "style",
60
+ "value",
61
+ "max",
62
+ "children",
63
+ "dot",
64
+ "top",
65
+ "right",
66
+ "fill",
67
+ "size",
68
+ "disabled"
69
+ ]);
57
70
  var classPrefix = 'nut-badge';
58
71
  var isHarmony = (0, _platform.harmony)();
59
72
  var classes = (0, _classnames.default)(classPrefix, className);
@@ -81,11 +94,11 @@ var Badge = function Badge(props) {
81
94
  })();
82
95
  };
83
96
  var _obj1;
84
- return /*#__PURE__*/ _react.default.createElement(_components.View, {
97
+ return /*#__PURE__*/ _react.default.createElement(_components.View, (0, _object_spread._)({
85
98
  className: classes,
86
99
  style: style,
87
100
  ref: badgeRef
88
- }, isIcon() && /*#__PURE__*/ _react.default.createElement(_components.View, {
101
+ }, rest), isIcon() && /*#__PURE__*/ _react.default.createElement(_components.View, {
89
102
  className: (0, _classnames.default)("".concat(classPrefix, "-content"), (_obj1 = {}, (0, _define_property._)(_obj1, "".concat(classPrefix, "-icon"), true), (0, _define_property._)(_obj1, "".concat(classPrefix, "-icon-rtl"), rtl), _obj1)),
90
103
  style: contentStyle
91
104
  }, value), children, !isIcon() && (getContent() || dot) && /*#__PURE__*/ _react.default.createElement(_components.View, {
@@ -1,22 +1,3 @@
1
1
  import React from 'react';
2
- import type { MouseEvent } from 'react';
3
- import { BasicComponent } from "../../utils/typings";
4
- export type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
5
- export type ButtonSize = 'xlarge' | 'large' | 'normal' | 'small' | 'mini';
6
- export type ButtonShape = 'square' | 'round';
7
- export type ButtonFill = 'solid' | 'outline' | 'dashed' | 'none';
8
- export interface ButtonProps extends BasicComponent {
9
- color: string;
10
- shape: ButtonShape;
11
- type: ButtonType;
12
- size: ButtonSize;
13
- fill: ButtonFill;
14
- block: boolean;
15
- loading: boolean;
16
- disabled: boolean;
17
- icon: React.ReactNode;
18
- rightIcon: React.ReactNode;
19
- nativeType: 'submit' | 'reset';
20
- onClick: (e: MouseEvent<HTMLButtonElement>) => void;
21
- }
22
- export declare const Button: React.ForwardRefExoticComponent<Partial<ButtonProps> & React.RefAttributes<HTMLButtonElement>>;
2
+ import { TaroButtonProps } from "../../types";
3
+ export declare const Button: React.ForwardRefExoticComponent<Omit<Partial<TaroButtonProps>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
@@ -105,9 +105,7 @@ var Button = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
105
105
  // if (getEnv() === 'WEB') {
106
106
  // ;(rest as any).type = formType
107
107
  // }
108
- return(// eslint-disable-next-line @typescript-eslint/ban-ts-comment
109
- // @ts-ignore
110
- // eslint-disable-next-line react/button-has-type
108
+ return(// @ts-ignore
111
109
  // <TaroButton
112
110
  /*#__PURE__*/ /*#__PURE__*/ _react.default.createElement(_components.View, (0, _object_spread_props._)((0, _object_spread._)({}, rest), {
113
111
  ref: ref,
@@ -120,6 +118,7 @@ var Button = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
120
118
  }), /*#__PURE__*/ _react.default.createElement(_components.View, {
121
119
  className: "nut-button-wrap"
122
120
  }, loading && /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Loading, {
121
+ ariaHidden: true,
123
122
  className: "nut-icon-loading"
124
123
  }), !loading && icon, children && /*#__PURE__*/ _react.default.createElement(_components.View, {
125
124
  className: "nut-button-children nut-button-".concat(size, "-children nut-button-").concat(type, "-children ").concat(!(props.fill || disabled || loading) ? '' : "nut-button-".concat(type).concat(props.fill ? "-".concat(fill) : '').concat(disabled || loading ? '-disabled' : '')).concat(icon || loading ? " nut-button-text" : '').concat(rightIcon ? ' nut-button-text-right' : ''),
@@ -1,3 +1,2 @@
1
1
  import { Button } from "./button";
2
- export type { ButtonType, ButtonProps, ButtonSize, ButtonShape, ButtonFill, } from "./button";
3
2
  export default Button;
@@ -24,12 +24,13 @@ var _index = require("../configprovider/index");
24
24
  var _usepropsvalue = require("../../hooks/use-props-value");
25
25
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
26
26
  type: 'single',
27
- firstDayOfWeek: 0
27
+ firstDayOfWeek: 0,
28
+ weekdays: []
28
29
  });
29
30
  var prefixCls = 'nut-calendarcard';
30
31
  var CalendarCard = /*#__PURE__*/ _react.default.forwardRef(function(props, ref) {
31
32
  var locale = (0, _index.useConfig)().locale;
32
- var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), style = _$_object_spread.style, className = _$_object_spread.className, type = _$_object_spread.type, title = _$_object_spread.title, value = _$_object_spread.value, defaultValue = _$_object_spread.defaultValue, firstDayOfWeek = _$_object_spread.firstDayOfWeek, startDate = _$_object_spread.startDate, endDate = _$_object_spread.endDate, disableDay = _$_object_spread.disableDay, renderDay = _$_object_spread.renderDay, renderDayTop = _$_object_spread.renderDayTop, renderDayBottom = _$_object_spread.renderDayBottom, onDayClick = _$_object_spread.onDayClick, onPageChange = _$_object_spread.onPageChange, onChange = _$_object_spread.onChange;
33
+ var _$_object_spread = (0, _object_spread._)({}, defaultProps, props), style = _$_object_spread.style, className = _$_object_spread.className, type = _$_object_spread.type, title = _$_object_spread.title, value = _$_object_spread.value, defaultValue = _$_object_spread.defaultValue, firstDayOfWeek = _$_object_spread.firstDayOfWeek, startDate = _$_object_spread.startDate, endDate = _$_object_spread.endDate, disableDay = _$_object_spread.disableDay, renderDay = _$_object_spread.renderDay, renderDayTop = _$_object_spread.renderDayTop, renderDayBottom = _$_object_spread.renderDayBottom, renderDayAriaLabel = _$_object_spread.renderDayAriaLabel, weekdays = _$_object_spread.weekdays, onDayClick = _$_object_spread.onDayClick, onPageChange = _$_object_spread.onPageChange, onChange = _$_object_spread.onChange;
33
34
  var onPageChangeRef = (0, _react.useRef)(onPageChange);
34
35
  // 当前月份信息
35
36
  var _useState = (0, _sliced_to_array._)((0, _react.useState)(function() {
@@ -179,6 +180,19 @@ var CalendarCard = /*#__PURE__*/ _react.default.forwardRef(function(props, ref)
179
180
  var d = new Date(day.year, day.month - 1, day.date).getDay();
180
181
  return d === 0 || d === 6;
181
182
  };
183
+ var isToday = function isToday(day) {
184
+ var today = new Date();
185
+ return day.year === today.getFullYear() && day.month === today.getMonth() + 1 && day.date === today.getDate();
186
+ };
187
+ // 日期无障碍朗读
188
+ var getAriaLabel = function getAriaLabel(day) {
189
+ var _locale_calendaritem_dayAriaLabel, _locale_calendaritem;
190
+ if (renderDayAriaLabel) {
191
+ return renderDayAriaLabel(day);
192
+ }
193
+ var today = isToday(day);
194
+ return (_locale_calendaritem_dayAriaLabel = (_locale_calendaritem = locale.calendaritem).dayAriaLabel) === null || _locale_calendaritem_dayAriaLabel === void 0 ? void 0 : _locale_calendaritem_dayAriaLabel.call(_locale_calendaritem, day.year, day.month, day.date, today, isActive(day), isDisable(day));
195
+ };
182
196
  var getClasses = function getClasses(day) {
183
197
  /**
184
198
  * active: single、multiple 激活日期
@@ -363,15 +377,20 @@ var CalendarCard = /*#__PURE__*/ _react.default.forwardRef(function(props, ref)
363
377
  }
364
378
  }, /*#__PURE__*/ _react.default.createElement(_icon.DoubleRight, null))));
365
379
  };
366
- var _useState2 = (0, _sliced_to_array._)((0, _react.useState)(function() {
367
- var weekdays = locale.calendaritem.weekdays.map(function(day, index) {
380
+ var weekHeader = (0, _react.useMemo)(function() {
381
+ var weekdaysList = weekdays.length > 0 ? weekdays : locale.calendaritem.weekdays;
382
+ var weekdaysData = weekdaysList.map(function(day, index) {
368
383
  return {
369
384
  name: day,
370
385
  key: index
371
386
  };
372
387
  });
373
- return (0, _to_consumable_array._)(weekdays.slice(firstDayOfWeek, 7)).concat((0, _to_consumable_array._)(weekdays.slice(0, firstDayOfWeek)));
374
- }), 1), weekHeader = _useState2[0];
388
+ return (0, _to_consumable_array._)(weekdaysData.slice(firstDayOfWeek, 7)).concat((0, _to_consumable_array._)(weekdaysData.slice(0, firstDayOfWeek)));
389
+ }, [
390
+ weekdays,
391
+ firstDayOfWeek,
392
+ locale.calendaritem.weekdays
393
+ ]);
375
394
  var renderContent = function renderContent() {
376
395
  return /*#__PURE__*/ _react.default.createElement(_components.View, {
377
396
  className: "".concat(prefixCls, "-content")
@@ -392,11 +411,14 @@ var CalendarCard = /*#__PURE__*/ _react.default.forwardRef(function(props, ref)
392
411
  key: "".concat(day.year, "-").concat(day.month, "-").concat(day.date),
393
412
  onClick: function onClick() {
394
413
  return handleDayClick(day);
395
- }
414
+ },
415
+ ariaLabel: getAriaLabel(day),
416
+ ariaRole: "button"
396
417
  }, /*#__PURE__*/ _react.default.createElement(_components.View, {
397
418
  className: "".concat(prefixCls, "-day-top")
398
419
  }, renderDayTop ? renderDayTop(day) : ''), /*#__PURE__*/ _react.default.createElement(_components.View, {
399
- className: "".concat(prefixCls, "-day-inner")
420
+ className: "".concat(prefixCls, "-day-inner"),
421
+ ariaHidden: true
400
422
  }, renderDay ? renderDay(day) : day.date), /*#__PURE__*/ _react.default.createElement(_components.View, {
401
423
  className: "".concat(prefixCls, "-day-bottom")
402
424
  }, renderDayBottom ? renderDayBottom(day) : ''));
@@ -203,7 +203,11 @@ var BaseDialog = function BaseDialog(props) {
203
203
  };
204
204
  var _obj;
205
205
  var closeClasses = (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-close"), true), (0, _define_property._)(_obj, "".concat(classPrefix, "-close-").concat(closeIconPosition), true), _obj));
206
- var systomIcon = closeIconPosition !== 'bottom' ? /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Close, null) : /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Failure, null);
206
+ var systemIcon = closeIconPosition !== 'bottom' ? /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Close, {
207
+ ariaHidden: true
208
+ }) : /*#__PURE__*/ _react.default.createElement(_iconsreacttaro.Failure, {
209
+ ariaHidden: true
210
+ });
207
211
  return /*#__PURE__*/ _react.default.createElement(_components.View, {
208
212
  className: closeClasses,
209
213
  onClick: handleClose,
@@ -211,7 +215,7 @@ var BaseDialog = function BaseDialog(props) {
211
215
  ariaLabel: locale.close,
212
216
  // @ts-ignore
213
217
  tabIndex: 0
214
- }, /*#__PURE__*/ _react.default.isValidElement(closeIcon) ? closeIcon : systomIcon);
218
+ }, /*#__PURE__*/ _react.default.isValidElement(closeIcon) ? closeIcon : systemIcon);
215
219
  };
216
220
  var onHandleClickOverlay = function onHandleClickOverlay(e) {
217
221
  if (closeOnOverlayClick && visible && e.target === e.currentTarget) {
@@ -17,7 +17,7 @@ var _react = /*#__PURE__*/ _interop_require_default._(require("react"));
17
17
  var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
18
18
  var _components = require("@tarojs/components");
19
19
  var _typings = require("../../utils/typings");
20
- var _configprovider = require("../configprovider/configprovider");
20
+ var _index = require("../configprovider/index");
21
21
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
22
22
  contentPosition: 'center',
23
23
  direction: 'horizontal'
@@ -31,7 +31,7 @@ var Divider = function Divider(props) {
31
31
  "className",
32
32
  "direction"
33
33
  ]);
34
- var rtl = (0, _configprovider.useRtl)();
34
+ var rtl = (0, _index.useRtl)();
35
35
  var _obj, _obj1;
36
36
  var classes = direction === 'horizontal' ? (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix), true), (0, _define_property._)(_obj, "".concat(classPrefix, "-center"), children), (0, _define_property._)(_obj, "".concat(classPrefix, "-left"), contentPosition === 'left'), (0, _define_property._)(_obj, "".concat(classPrefix, "-right"), contentPosition === 'right'), (0, _define_property._)(_obj, "".concat(classPrefix, "-rtl"), ([
37
37
  'left',
@@ -1,11 +1,11 @@
1
1
  import React, { FunctionComponent, ReactNode } from 'react';
2
2
  import { BasicComponent } from "../../utils/typings";
3
- import { ButtonFill, ButtonSize, ButtonType } from "../button/button";
3
+ import { UIFill, UISize, UIType } from "../../types/base/atoms";
4
4
  export interface EmptyAction {
5
5
  text: React.ReactNode;
6
- type?: ButtonType;
7
- size?: ButtonSize;
8
- fill?: ButtonFill;
6
+ type?: UIType;
7
+ size?: UISize;
8
+ fill?: UIFill;
9
9
  disabled?: boolean;
10
10
  onClick?: () => () => void;
11
11
  }