@bifrostui/react 1.4.7-beta.0 → 1.4.7

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 (199) hide show
  1. package/dist/Calendar/Calendar.js +1 -5
  2. package/dist/Calendar/Calendar.types.d.ts +0 -5
  3. package/dist/Collapse/Collapse.css +1 -0
  4. package/dist/Collapse/Collapse.d.ts +1 -1
  5. package/dist/Collapse/Collapse.js +8 -11
  6. package/dist/CollapsePanel/CollapsePanel.css +2 -4
  7. package/dist/Dialog/FunctionalDialog.js +1 -1
  8. package/dist/Modal/Modal.miniapp.d.ts +1 -1
  9. package/dist/Picker/Picker.css +0 -5
  10. package/dist/Picker/Picker.js +5 -27
  11. package/dist/Picker/Picker.types.d.ts +2 -15
  12. package/dist/Picker/PickerPanel.css +0 -4
  13. package/dist/Picker/PickerPanel.js +6 -7
  14. package/dist/Popover/Popover.js +27 -70
  15. package/dist/Portal/Portal.miniapp.js +4 -7
  16. package/dist/ScrollView/ScrollView.js +11 -24
  17. package/dist/ScrollView/ScrollView.types.d.ts +1 -0
  18. package/dist/Select/Select.css +4 -1
  19. package/dist/Select/Select.js +40 -63
  20. package/dist/Slider/Slider.js +5 -13
  21. package/dist/Tabs/Tab.js +4 -13
  22. package/dist/Tabs/Tabs.js +15 -30
  23. package/dist/Tabs/utils/bound.d.ts +1 -0
  24. package/dist/{DesktopPicker/utils/calcAfterMounted.js → Tabs/utils/bound.js} +14 -7
  25. package/dist/Toast/FunctionalToast.js +1 -1
  26. package/dist/Toast/Toast.css +1 -0
  27. package/dist/Tooltip/Tooltip.js +27 -70
  28. package/dist/index.d.ts +0 -6
  29. package/dist/index.js +1 -13
  30. package/dist/locales/base.d.ts +0 -11
  31. package/dist/locales/en-US.js +0 -24
  32. package/dist/locales/zh-CN.js +0 -24
  33. package/dist/locales/zh-TW.js +0 -24
  34. package/es/Calendar/Calendar.js +1 -5
  35. package/es/Calendar/Calendar.types.d.ts +0 -5
  36. package/es/Collapse/Collapse.css +1 -0
  37. package/es/Collapse/Collapse.d.ts +1 -1
  38. package/es/Collapse/Collapse.js +8 -11
  39. package/es/CollapsePanel/CollapsePanel.css +2 -4
  40. package/es/Dialog/FunctionalDialog.js +2 -2
  41. package/es/Picker/Picker.css +0 -5
  42. package/es/Picker/Picker.js +5 -27
  43. package/es/Picker/Picker.types.d.ts +2 -15
  44. package/es/Picker/PickerPanel.css +0 -4
  45. package/es/Picker/PickerPanel.js +6 -7
  46. package/es/Popover/Popover.js +29 -73
  47. package/es/Portal/Portal.miniapp.js +5 -8
  48. package/es/ScrollView/ScrollView.js +11 -24
  49. package/es/ScrollView/ScrollView.types.d.ts +1 -0
  50. package/es/Select/Select.css +4 -1
  51. package/es/Select/Select.js +41 -63
  52. package/es/Slider/Slider.js +6 -16
  53. package/es/Tabs/Tab.js +4 -13
  54. package/es/Tabs/Tabs.js +15 -30
  55. package/es/Tabs/utils/bound.d.ts +1 -0
  56. package/es/Tabs/utils/bound.js +13 -0
  57. package/es/Toast/FunctionalToast.js +2 -2
  58. package/es/Toast/Toast.css +1 -0
  59. package/es/Tooltip/Tooltip.js +29 -73
  60. package/es/index.d.ts +0 -6
  61. package/es/index.js +0 -6
  62. package/es/locales/base.d.ts +0 -11
  63. package/es/locales/en-US.js +0 -24
  64. package/es/locales/zh-CN.js +0 -24
  65. package/es/locales/zh-TW.js +0 -24
  66. package/package.json +5 -5
  67. package/dist/Collapse/Collapse.miniapp.d.ts +0 -5
  68. package/dist/Collapse/Collapse.miniapp.js +0 -177
  69. package/dist/DatePicker/DatePicker.d.ts +0 -4
  70. package/dist/DatePicker/DatePicker.js +0 -335
  71. package/dist/DatePicker/DatePicker.types.d.ts +0 -43
  72. package/dist/DatePicker/DatePicker.types.js +0 -35
  73. package/dist/DatePicker/index.d.ts +0 -2
  74. package/dist/DatePicker/index.js +0 -41
  75. package/dist/DesktopDatePicker/DesktopDatePicker.d.ts +0 -5
  76. package/dist/DesktopDatePicker/DesktopDatePicker.js +0 -280
  77. package/dist/DesktopDatePicker/DesktopDatePicker.types.d.ts +0 -163
  78. package/dist/DesktopDatePicker/DesktopDatePicker.types.js +0 -15
  79. package/dist/DesktopDatePicker/deskTopPickerContainer.css +0 -100
  80. package/dist/DesktopDatePicker/index.css +0 -61
  81. package/dist/DesktopDatePicker/index.d.ts +0 -2
  82. package/dist/DesktopDatePicker/index.js +0 -41
  83. package/dist/DesktopDatePicker/useGetDatePickerContent.d.ts +0 -6
  84. package/dist/DesktopDatePicker/useGetDatePickerContent.js +0 -343
  85. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +0 -5
  86. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -322
  87. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +0 -163
  88. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.js +0 -15
  89. package/dist/DesktopDateTimePicker/index.css +0 -66
  90. package/dist/DesktopDateTimePicker/index.d.ts +0 -2
  91. package/dist/DesktopDateTimePicker/index.js +0 -41
  92. package/dist/DesktopPicker/DesktopPicker.d.ts +0 -5
  93. package/dist/DesktopPicker/DesktopPicker.js +0 -238
  94. package/dist/DesktopPicker/DesktopPicker.types.d.ts +0 -57
  95. package/dist/DesktopPicker/DesktopPicker.types.js +0 -15
  96. package/dist/DesktopPicker/index.css +0 -37
  97. package/dist/DesktopPicker/index.d.ts +0 -2
  98. package/dist/DesktopPicker/index.js +0 -41
  99. package/dist/DesktopPicker/utils/calcAfterMounted.d.ts +0 -2
  100. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +0 -2
  101. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.js +0 -38
  102. package/dist/DesktopTimePicker/DesktopTimePicker.d.ts +0 -5
  103. package/dist/DesktopTimePicker/DesktopTimePicker.js +0 -288
  104. package/dist/DesktopTimePicker/DesktopTimePicker.types.d.ts +0 -182
  105. package/dist/DesktopTimePicker/DesktopTimePicker.types.js +0 -15
  106. package/dist/DesktopTimePicker/DesktopTimePickerList.d.ts +0 -4
  107. package/dist/DesktopTimePicker/DesktopTimePickerList.js +0 -111
  108. package/dist/DesktopTimePicker/index.css +0 -170
  109. package/dist/DesktopTimePicker/index.d.ts +0 -2
  110. package/dist/DesktopTimePicker/index.js +0 -41
  111. package/dist/DesktopTimePicker/useGetTimePickerContent.d.ts +0 -6
  112. package/dist/DesktopTimePicker/useGetTimePickerContent.js +0 -246
  113. package/dist/DesktopTimePicker/utils/scrollUtil.d.ts +0 -2
  114. package/dist/DesktopTimePicker/utils/scrollUtil.js +0 -27
  115. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +0 -2
  116. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.js +0 -51
  117. package/dist/DesktopTimePicker/utils/utils.d.ts +0 -28
  118. package/dist/DesktopTimePicker/utils/utils.js +0 -408
  119. package/dist/SwipeAction/SwipeAction.css +0 -79
  120. package/dist/SwipeAction/SwipeAction.d.ts +0 -5
  121. package/dist/SwipeAction/SwipeAction.js +0 -349
  122. package/dist/SwipeAction/SwipeAction.types.d.ts +0 -83
  123. package/dist/SwipeAction/SwipeAction.types.js +0 -39
  124. package/dist/SwipeAction/SwipeActionContext.d.ts +0 -4
  125. package/dist/SwipeAction/SwipeActionContext.js +0 -30
  126. package/dist/SwipeAction/SwipeActionItem.css +0 -31
  127. package/dist/SwipeAction/SwipeActionItem.d.ts +0 -5
  128. package/dist/SwipeAction/SwipeActionItem.js +0 -105
  129. package/dist/SwipeAction/index.d.ts +0 -4
  130. package/dist/SwipeAction/index.js +0 -45
  131. package/dist/Tabs/utils/scroll.d.ts +0 -2
  132. package/dist/Tabs/utils/scroll.js +0 -55
  133. package/es/Collapse/Collapse.miniapp.d.ts +0 -5
  134. package/es/Collapse/Collapse.miniapp.js +0 -157
  135. package/es/DatePicker/DatePicker.d.ts +0 -4
  136. package/es/DatePicker/DatePicker.js +0 -310
  137. package/es/DatePicker/DatePicker.types.d.ts +0 -43
  138. package/es/DatePicker/DatePicker.types.js +0 -1
  139. package/es/DatePicker/index.d.ts +0 -2
  140. package/es/DatePicker/index.js +0 -6
  141. package/es/DesktopDatePicker/DesktopDatePicker.d.ts +0 -5
  142. package/es/DesktopDatePicker/DesktopDatePicker.js +0 -253
  143. package/es/DesktopDatePicker/DesktopDatePicker.types.d.ts +0 -163
  144. package/es/DesktopDatePicker/DesktopDatePicker.types.js +0 -1
  145. package/es/DesktopDatePicker/deskTopPickerContainer.css +0 -100
  146. package/es/DesktopDatePicker/index.css +0 -61
  147. package/es/DesktopDatePicker/index.d.ts +0 -2
  148. package/es/DesktopDatePicker/index.js +0 -6
  149. package/es/DesktopDatePicker/useGetDatePickerContent.d.ts +0 -6
  150. package/es/DesktopDatePicker/useGetDatePickerContent.js +0 -316
  151. package/es/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +0 -5
  152. package/es/DesktopDateTimePicker/DesktopDateTimePicker.js +0 -295
  153. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +0 -163
  154. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.js +0 -1
  155. package/es/DesktopDateTimePicker/index.css +0 -66
  156. package/es/DesktopDateTimePicker/index.d.ts +0 -2
  157. package/es/DesktopDateTimePicker/index.js +0 -9
  158. package/es/DesktopPicker/DesktopPicker.d.ts +0 -5
  159. package/es/DesktopPicker/DesktopPicker.js +0 -221
  160. package/es/DesktopPicker/DesktopPicker.types.d.ts +0 -57
  161. package/es/DesktopPicker/DesktopPicker.types.js +0 -1
  162. package/es/DesktopPicker/index.css +0 -37
  163. package/es/DesktopPicker/index.d.ts +0 -2
  164. package/es/DesktopPicker/index.js +0 -6
  165. package/es/DesktopPicker/utils/calcAfterMounted.d.ts +0 -2
  166. package/es/DesktopPicker/utils/calcAfterMounted.js +0 -6
  167. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +0 -2
  168. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.js +0 -9
  169. package/es/DesktopTimePicker/DesktopTimePicker.d.ts +0 -5
  170. package/es/DesktopTimePicker/DesktopTimePicker.js +0 -261
  171. package/es/DesktopTimePicker/DesktopTimePicker.types.d.ts +0 -182
  172. package/es/DesktopTimePicker/DesktopTimePicker.types.js +0 -1
  173. package/es/DesktopTimePicker/DesktopTimePickerList.d.ts +0 -4
  174. package/es/DesktopTimePicker/DesktopTimePickerList.js +0 -84
  175. package/es/DesktopTimePicker/index.css +0 -170
  176. package/es/DesktopTimePicker/index.d.ts +0 -2
  177. package/es/DesktopTimePicker/index.js +0 -6
  178. package/es/DesktopTimePicker/useGetTimePickerContent.d.ts +0 -6
  179. package/es/DesktopTimePicker/useGetTimePickerContent.js +0 -223
  180. package/es/DesktopTimePicker/utils/scrollUtil.d.ts +0 -2
  181. package/es/DesktopTimePicker/utils/scrollUtil.js +0 -8
  182. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +0 -2
  183. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.js +0 -22
  184. package/es/DesktopTimePicker/utils/utils.d.ts +0 -28
  185. package/es/DesktopTimePicker/utils/utils.js +0 -365
  186. package/es/SwipeAction/SwipeAction.css +0 -79
  187. package/es/SwipeAction/SwipeAction.d.ts +0 -5
  188. package/es/SwipeAction/SwipeAction.js +0 -337
  189. package/es/SwipeAction/SwipeAction.types.d.ts +0 -83
  190. package/es/SwipeAction/SwipeAction.types.js +0 -1
  191. package/es/SwipeAction/SwipeActionContext.d.ts +0 -4
  192. package/es/SwipeAction/SwipeActionContext.js +0 -11
  193. package/es/SwipeAction/SwipeActionItem.css +0 -31
  194. package/es/SwipeAction/SwipeActionItem.d.ts +0 -5
  195. package/es/SwipeAction/SwipeActionItem.js +0 -78
  196. package/es/SwipeAction/index.d.ts +0 -4
  197. package/es/SwipeAction/index.js +0 -9
  198. package/es/Tabs/utils/scroll.d.ts +0 -2
  199. package/es/Tabs/utils/scroll.js +0 -36
@@ -138,6 +138,7 @@ export type ScrollViewProps<D extends React.ElementType = 'div', P = {}> = Overr
138
138
  */
139
139
  fastDeceleration?: boolean;
140
140
  /** 当 scroll-with-animation设置为 true 时,可以设置 scroll-animation-duration 来控制动画的执行时间,单位 ms。
141
+ * 仅小程序可用
141
142
  */
142
143
  scrollAnimationDuration?: number;
143
144
  /** 纵向滚动时,当滚动到顶部或底部时,强制禁止触发页面滚动,仍然只触发 scroll-view 自身的滚动。
@@ -48,9 +48,13 @@
48
48
  .bui-select-option-container {
49
49
  position: absolute;
50
50
  box-sizing: border-box;
51
+ top: 100%;
52
+ left: 0;
53
+ width: 100%;
51
54
  font-size: var(--bui-select-font-size, var(--bui-title-size-3));
52
55
  z-index: var(--bui-z-index-tooltip);
53
56
  border-radius: 3px;
57
+ background-color: var(--bui-color-bg-view);
54
58
  padding: 2px;
55
59
  overflow: hidden;
56
60
  }
@@ -67,7 +71,6 @@
67
71
  border-radius: 3px;
68
72
  padding: var(--bui-select-option-container-padding, 3px 0);
69
73
  box-shadow: 0 0 0 2px var(--bui-color-bg-default);
70
- background-color: var(--bui-color-bg-view);
71
74
  overflow: hidden;
72
75
  }
73
76
  .bui-select-option {
@@ -54,26 +54,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
54
54
  mod
55
55
  ));
56
56
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
57
- var __async = (__this, __arguments, generator) => {
58
- return new Promise((resolve, reject) => {
59
- var fulfilled = (value) => {
60
- try {
61
- step(generator.next(value));
62
- } catch (e) {
63
- reject(e);
64
- }
65
- };
66
- var rejected = (value) => {
67
- try {
68
- step(generator.throw(value));
69
- } catch (e) {
70
- reject(e);
71
- }
72
- };
73
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
74
- step((generator = generator.apply(__this, __arguments)).next());
75
- });
76
- };
77
57
  var Select_exports = {};
78
58
  __export(Select_exports, {
79
59
  default: () => Select_default
@@ -141,36 +121,38 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
141
121
  const isOpen = open !== void 0 ? open : internalOpen;
142
122
  const locatorRef = (0, import_react.useRef)(null);
143
123
  const rootRef = (0, import_utils.useForkRef)(ref, locatorRef);
144
- const optionContainerRef = (0, import_react.useRef)(null);
145
- const optionMainRef = (0, import_react.useRef)(null);
146
- const updateOptionStyle = () => __async(void 0, null, function* () {
124
+ const ttId = (0, import_utils.useUniqueId)();
125
+ const dataId = `${prefixCls}-tt-${ttId}`;
126
+ const updateOptionStyle = (0, import_utils.throttle)(() => {
147
127
  const curScrollRoot = scrollContainer();
148
- const result = yield (0, import_utils.getStylesAndLocation)({
149
- scrollRoot: curScrollRoot,
150
- childrenRef: locatorRef,
151
- tipRef: optionContainerRef,
152
- arrowDirection: defaultPlacement,
153
- arrowLocation: "none",
154
- offsetSpacing: 0
155
- });
156
- if (!result)
157
- return;
158
- const { styles, childrenStyle, newArrowDirection } = result;
159
- optionMainRef.current.style.transition = "none";
160
- optionMainRef.current.style.transform = `translateY(${newArrowDirection === "bottom" ? "-100%" : "100%"})`;
161
- setPlacement(newArrowDirection);
162
- setOptionStyle(__spreadProps(__spreadValues({}, styles), { width: childrenStyle == null ? void 0 : childrenStyle.width }));
163
- });
164
- const changeOpen = (newOpen) => __async(void 0, null, function* () {
128
+ if (!import_utils.isMini && curScrollRoot) {
129
+ const result = (0, import_utils.getStylesAndLocation)({
130
+ scrollRoot: curScrollRoot,
131
+ childrenRef: locatorRef,
132
+ arrowDirection: defaultPlacement,
133
+ arrowLocation: "none",
134
+ selector: `[data-id="${dataId}"]`,
135
+ offsetSpacing: 0
136
+ });
137
+ if (!result)
138
+ return;
139
+ const { styles, childrenStyle, newArrowDirection } = result;
140
+ setPlacement(newArrowDirection);
141
+ setOptionStyle(__spreadProps(__spreadValues({}, styles), { width: childrenStyle.width }));
142
+ }
143
+ }, 100);
144
+ const changeOpen = (newOpen) => {
165
145
  if (newOpen) {
166
- yield updateOptionStyle();
167
- setInternalOpen(newOpen);
168
- onOpen == null ? void 0 : onOpen();
146
+ updateOptionStyle();
147
+ setTimeout(() => {
148
+ setInternalOpen(newOpen);
149
+ onOpen == null ? void 0 : onOpen();
150
+ }, 100);
169
151
  } else {
170
152
  onClose == null ? void 0 : onClose();
171
153
  setInternalOpen(newOpen);
172
154
  }
173
- });
155
+ };
174
156
  const handleSelectClick = (e) => {
175
157
  if (disabled)
176
158
  return;
@@ -195,11 +177,10 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
195
177
  [selectValue, onChange, setRenderValue]
196
178
  );
197
179
  (0, import_react.useEffect)(() => {
198
- const resizeCb = (0, import_utils.throttle)(updateOptionStyle, 100);
199
180
  if (!import_utils.isMini) {
200
- window.addEventListener("resize", resizeCb);
181
+ window.addEventListener("resize", updateOptionStyle);
201
182
  return () => {
202
- window.removeEventListener("resize", resizeCb);
183
+ window.removeEventListener("resize", updateOptionStyle);
203
184
  };
204
185
  }
205
186
  }, []);
@@ -217,8 +198,8 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
217
198
  {
218
199
  in: isOpen,
219
200
  timeout: {
220
- enter: 167,
221
- exit: 167
201
+ enter: 150,
202
+ exit: 150
222
203
  }
223
204
  },
224
205
  /* @__PURE__ */ import_react.default.createElement(
@@ -232,7 +213,7 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
232
213
  [`${prefixCls}-option-container-hide`]: !isOpen
233
214
  }
234
215
  ),
235
- ref: optionContainerRef,
216
+ "data-id": dataId,
236
217
  style: optionStyle
237
218
  },
238
219
  /* @__PURE__ */ import_react.default.createElement(
@@ -241,18 +222,11 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
241
222
  in: isOpen,
242
223
  direction: placement === "bottom" ? "down" : "up",
243
224
  timeout: {
244
- enter: 167,
245
- exit: 167
225
+ enter: 150,
226
+ exit: 150
246
227
  }
247
228
  },
248
- /* @__PURE__ */ import_react.default.createElement(
249
- "div",
250
- {
251
- className: (0, import_clsx.default)(`${prefixCls}-option-main`),
252
- ref: optionMainRef
253
- },
254
- children
255
- )
229
+ /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_clsx.default)(`${prefixCls}-option-main`) }, children)
256
230
  )
257
231
  )
258
232
  );
@@ -280,8 +254,9 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
280
254
  [inputProps == null ? void 0 : inputProps.className]: inputProps == null ? void 0 : inputProps.className
281
255
  })
282
256
  })
283
- ), icon || defaultIcon)
284
- ), /* @__PURE__ */ import_react.default.createElement(import_Portal.default, { onRootElementMouted: updateOptionStyle }, renderOptions()), /* @__PURE__ */ import_react.default.createElement(
257
+ ), icon || defaultIcon),
258
+ import_utils.isMini && renderOptions()
259
+ ), !import_utils.isMini && /* @__PURE__ */ import_react.default.createElement(import_Portal.default, { onRootElementMouted: updateOptionStyle }, renderOptions()), /* @__PURE__ */ import_react.default.createElement(
285
260
  import_Backdrop.default,
286
261
  __spreadProps(__spreadValues({
287
262
  open: isOpen,
@@ -298,6 +273,8 @@ const Select = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
298
273
  Select.displayName = "BuiSelect";
299
274
  Select.defaultProps = {
300
275
  defaultValue: "",
301
- scrollContainer: () => null
276
+ scrollContainer: () => {
277
+ return import_utils.isMini ? null : document.body;
278
+ }
302
279
  };
303
280
  var Select_default = Select;
@@ -128,6 +128,7 @@ const Slider = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
128
128
  const value = shouldProtection ? latestVal.current : valueProp;
129
129
  const [rootRef, setRootRef] = (0, import_react.useState)(null);
130
130
  const handleRef = (0, import_utils.useForkRef)(ref, setRootRef);
131
+ (0, import_utils.useTouchEmulator)(rootRef);
131
132
  const sliderRect = (0, import_react.useRef)();
132
133
  const touchStartPageX = (0, import_react.useRef)();
133
134
  const touchStartLeft = (0, import_react.useRef)();
@@ -198,7 +199,9 @@ const Slider = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
198
199
  return;
199
200
  beforeMoveValue.current = internalValue;
200
201
  tooltipRef.current = internalValue;
201
- getLineWidth();
202
+ if (!sliderRect.current.width) {
203
+ getLineWidth();
204
+ }
202
205
  const currentTarget = import_utils.isMini ? e.mpEvent.currentTarget : e.currentTarget;
203
206
  touchStartPageX.current = e.touches[0].pageX;
204
207
  touchStartLeft.current = currentTarget == null ? void 0 : currentTarget.offsetLeft;
@@ -257,16 +260,6 @@ const Slider = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
257
260
  setFrontTooltipVisible(false);
258
261
  setEndTooltipVisible(false);
259
262
  };
260
- const onMouseUp = (e) => {
261
- (0, import_utils.emulateTouchEnd)(e);
262
- document.removeEventListener("mousemove", import_utils.emulateTouchMove);
263
- document.removeEventListener("mouseup", onMouseUp);
264
- };
265
- const onMouseDown = (e) => {
266
- (0, import_utils.emulateTouchStart)(e);
267
- document.addEventListener("mousemove", import_utils.emulateTouchMove);
268
- document.addEventListener("mouseup", onMouseUp);
269
- };
270
263
  const renderButton = (index) => {
271
264
  const valuenow = internalValue[index];
272
265
  return /* @__PURE__ */ import_react.default.createElement(
@@ -289,8 +282,7 @@ const Slider = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
289
282
  },
290
283
  onTouchMove,
291
284
  onTouchEnd,
292
- onTouchCancel: onTouchEnd,
293
- onMouseDown
285
+ onTouchCancel: onTouchEnd
294
286
  },
295
287
  index === SLIDER_BUTTON.FRONT ? startIcon || defaultIcon : endIcon || defaultIcon
296
288
  );
package/dist/Tabs/Tab.js CHANGED
@@ -66,19 +66,7 @@ var import_TabsContext = __toESM(require("./TabsContext"));
66
66
  var import_Tab2 = require("./Tab.css");
67
67
  const prefixCls = "bui-tab";
68
68
  const Tab = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
69
- const _a = props, {
70
- className,
71
- children,
72
- index,
73
- disabled = false,
74
- onClick
75
- } = _a, others = __objRest(_a, [
76
- "className",
77
- "children",
78
- "index",
79
- "disabled",
80
- "onClick"
81
- ]);
69
+ const _a = props, { className, children, index, disabled, onClick } = _a, others = __objRest(_a, ["className", "children", "index", "disabled", "onClick"]);
82
70
  const tabsContext = import_react.default.useContext(import_TabsContext.default);
83
71
  const { value, align, triggerChange } = tabsContext;
84
72
  return /* @__PURE__ */ import_react.default.createElement(
@@ -116,4 +104,7 @@ const Tab = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
116
104
  );
117
105
  });
118
106
  Tab.displayName = "BuiTab";
107
+ Tab.defaultProps = {
108
+ disabled: false
109
+ };
119
110
  var Tab_default = Tab;
package/dist/Tabs/Tabs.js CHANGED
@@ -61,10 +61,9 @@ var import_clsx = __toESM(require("clsx"));
61
61
  var import_react = __toESM(require("react"));
62
62
  var import_Tab = __toESM(require("./Tab"));
63
63
  var import_TabsContext = require("./TabsContext");
64
- var import_scroll = __toESM(require("./utils/scroll"));
64
+ var import_bound = __toESM(require("./utils/bound"));
65
65
  var import_Tabs2 = require("./Tabs.css");
66
66
  const prefixCls = "bui-tabs";
67
- const duration = 300;
68
67
  const Tabs = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
69
68
  const _a = props, { children, className, value, tabs, align, onChange } = _a, others = __objRest(_a, ["children", "className", "value", "tabs", "align", "onChange"]);
70
69
  const [active, setActive] = (0, import_react.useState)("");
@@ -79,11 +78,14 @@ const Tabs = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
79
78
  leftMaskOpacity: 0,
80
79
  rightMaskOpacity: 0
81
80
  });
82
- const getActiveTabElement = () => {
81
+ const animate = ({ transitionInUse }) => {
83
82
  const container = tabsRef.current;
84
83
  if (!container)
85
- return void 0;
84
+ return;
86
85
  const activeIndex = !!tabs.length && tabs.findIndex((item) => item.index === active);
86
+ const activeLine = activeLineRef.current;
87
+ if (!activeLine)
88
+ return;
87
89
  let activeTab;
88
90
  if (tabs.length) {
89
91
  activeTab = activeIndex > -1 ? container.childNodes[activeIndex + 1] : void 0;
@@ -97,25 +99,6 @@ const Tabs = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
97
99
  return [...child.classList].includes("bui-tab-active");
98
100
  });
99
101
  }
100
- return activeTab;
101
- };
102
- const scrollIntoView = () => {
103
- const tabsContainer = tabsRef.current;
104
- const activeTab = getActiveTabElement();
105
- if (!tabsContainer || !activeTab) {
106
- return;
107
- }
108
- const to = activeTab.offsetLeft - (tabsContainer.offsetWidth - activeTab.offsetWidth) / 2;
109
- (0, import_scroll.default)(tabsContainer, to, duration);
110
- };
111
- const animate = ({ transitionInUse }) => {
112
- const container = tabsRef.current;
113
- if (!container)
114
- return;
115
- const activeLine = activeLineRef.current;
116
- if (!activeLine)
117
- return;
118
- const activeTab = getActiveTabElement();
119
102
  let activeTabLeft = 0;
120
103
  let activeTabWidth = 0;
121
104
  let containerWidth = 0;
@@ -138,8 +121,13 @@ const Tabs = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
138
121
  const maxScrollDistance = containerScrollWidth - containerWidth;
139
122
  if (maxScrollDistance <= 0 || !activeTab)
140
123
  return;
141
- if (!import_utils.isMini) {
142
- scrollIntoView();
124
+ const nextScrollLeft = (0, import_bound.default)(
125
+ activeTabLeft - (containerWidth - activeTabWidth) / 2,
126
+ 0,
127
+ containerScrollWidth - containerWidth
128
+ );
129
+ if (tabsRef.current) {
130
+ tabsRef.current.scrollLeft = nextScrollLeft;
143
131
  }
144
132
  };
145
133
  (0, import_react.useEffect)(() => {
@@ -169,10 +157,7 @@ const Tabs = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
169
157
  return;
170
158
  const scrollLeft = container == null ? void 0 : container.scrollLeft;
171
159
  const showLeftMask = scrollLeft > 0;
172
- const rightRange = Math.abs(
173
- container.scrollWidth - (scrollLeft + container.offsetWidth)
174
- );
175
- const showRightMask = rightRange > 1;
160
+ const showRightMask = scrollLeft + container.offsetWidth < container.scrollWidth;
176
161
  setMaskData({
177
162
  leftMaskOpacity: showLeftMask ? 1 : 0,
178
163
  rightMaskOpacity: showRightMask ? 1 : 0
@@ -230,7 +215,7 @@ const Tabs = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
230
215
  "bui-tabline-invisible": import_utils.isMini || !lineData.hasActiveTab
231
216
  }),
232
217
  style: {
233
- transition: lineData.transitionInUse ? `transform ${duration / 1e3}s ease` : void 0,
218
+ transition: lineData.transitionInUse ? "transform 0.25s ease-in-out" : void 0,
234
219
  transform: `translate3d(${lineData.x}px, 0px, 0px)`
235
220
  }
236
221
  }
@@ -0,0 +1 @@
1
+ export default function bound(position: number, min: number | undefined, max: number | undefined): number;
@@ -15,11 +15,18 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var calcAfterMounted_exports = {};
19
- __export(calcAfterMounted_exports, {
20
- default: () => calcAfterMounted_default
18
+ var bound_exports = {};
19
+ __export(bound_exports, {
20
+ default: () => bound
21
21
  });
22
- module.exports = __toCommonJS(calcAfterMounted_exports);
23
- var calcAfterMounted_default = (fn) => {
24
- fn();
25
- };
22
+ module.exports = __toCommonJS(bound_exports);
23
+ function bound(position, min, max) {
24
+ let ret = position;
25
+ if (min !== void 0) {
26
+ ret = Math.max(position, min);
27
+ }
28
+ if (max !== void 0) {
29
+ ret = Math.min(ret, max);
30
+ }
31
+ return ret;
32
+ }
@@ -100,7 +100,7 @@ const functionalToast = (props) => {
100
100
  rootWrapper.style[property] = styles[property];
101
101
  });
102
102
  }
103
- const rootElement = (0, import_utils.getRootContainer)();
103
+ const rootElement = (0, import_utils.getRootElement)();
104
104
  rootElement.appendChild(rootWrapper);
105
105
  const ToastComponent = () => {
106
106
  const _a = options, { duration, allowMultiple, onClose } = _a, others = __objRest(_a, ["duration", "allowMultiple", "onClose"]);
@@ -13,6 +13,7 @@
13
13
  position: fixed;
14
14
  left: 50%;
15
15
  z-index: var(--bui-z-index-toast);
16
+ width: fit-content;
16
17
  min-width: var(--min-width);
17
18
  max-width: var(--max-width);
18
19
  padding: var(--padding);
@@ -51,26 +51,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
51
51
  mod
52
52
  ));
53
53
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
54
- var __async = (__this, __arguments, generator) => {
55
- return new Promise((resolve, reject) => {
56
- var fulfilled = (value) => {
57
- try {
58
- step(generator.next(value));
59
- } catch (e) {
60
- reject(e);
61
- }
62
- };
63
- var rejected = (value) => {
64
- try {
65
- step(generator.throw(value));
66
- } catch (e) {
67
- reject(e);
68
- }
69
- };
70
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
71
- step((generator = generator.apply(__this, __arguments)).next());
72
- });
73
- };
74
54
  var Tooltip_exports = {};
75
55
  __export(Tooltip_exports, {
76
56
  default: () => Tooltip_default
@@ -92,8 +72,8 @@ const Tooltip = /* @__PURE__ */ import_react.default.forwardRef((props, ref) =>
92
72
  offsetSpacing = 0,
93
73
  placement = "top",
94
74
  trigger = "click",
95
- open,
96
- onOpenChange
75
+ onOpenChange,
76
+ open
97
77
  } = _a, others = __objRest(_a, [
98
78
  "className",
99
79
  "style",
@@ -103,8 +83,8 @@ const Tooltip = /* @__PURE__ */ import_react.default.forwardRef((props, ref) =>
103
83
  "offsetSpacing",
104
84
  "placement",
105
85
  "trigger",
106
- "open",
107
- "onOpenChange"
86
+ "onOpenChange",
87
+ "open"
108
88
  ]);
109
89
  const controlByUser = typeof open !== "undefined";
110
90
  const { direction, location = "center" } = (0, import_utils.parsePlacement)(placement);
@@ -112,18 +92,11 @@ const Tooltip = /* @__PURE__ */ import_react.default.forwardRef((props, ref) =>
112
92
  const [openStatus, setOpenStatus] = (0, import_react.useState)(defaultOpen);
113
93
  const [arrowDirection, setArrowDirection] = (0, import_react.useState)(direction);
114
94
  const [arrowLocation, setArrowLocation] = (0, import_react.useState)(location);
115
- const [toolStyles, setToolStyles] = (0, import_react.useState)({});
116
- const tipRef = (0, import_react.useRef)(null);
117
- const nodeRef = (0, import_utils.useForkRef)(ref, tipRef);
118
- const clearRef = (status) => {
119
- if (status === false) {
120
- tipRef.current = null;
121
- }
122
- };
95
+ const [tooltyles, setTooltyles] = (0, import_react.useState)({});
96
+ const ttId = (0, import_utils.useUniqueId)();
123
97
  const changeOpenStatus = (event, status) => {
124
98
  if (controlByUser)
125
99
  return;
126
- clearRef(status);
127
100
  setOpenStatus(status);
128
101
  onOpenChange == null ? void 0 : onOpenChange(event, { open: status });
129
102
  };
@@ -142,33 +115,23 @@ const Tooltip = /* @__PURE__ */ import_react.default.forwardRef((props, ref) =>
142
115
  if (!controlByUser)
143
116
  return;
144
117
  setOpenStatus(open);
145
- clearRef(open);
146
118
  }, [open]);
147
- (0, import_react.useEffect)(() => {
148
- if (!openStatus) {
149
- setToolStyles({
150
- visibility: "hidden"
151
- });
152
- }
153
- }, [openStatus]);
154
119
  const clickEventHandler = (event) => {
155
120
  if (trigger === "hover" || (trigger == null ? void 0 : trigger.length) === 1 && (trigger == null ? void 0 : trigger[0]) === "hover")
156
121
  return;
157
122
  hideTooltip(event);
158
123
  };
159
- const onRootElementMouted = (0, import_utils.throttle)(() => __async(void 0, null, function* () {
160
- if (!tipRef.current)
161
- return;
124
+ const onRootElementMouted = (0, import_utils.throttle)(() => {
162
125
  const {
163
126
  direction: newParsedDirection,
164
127
  location: newParsedLocation = "center"
165
128
  } = (0, import_utils.parsePlacement)(placement);
166
- const result = yield (0, import_utils.getStylesAndLocation)({
129
+ const result = (0, import_utils.getStylesAndLocation)({
167
130
  childrenRef,
168
131
  arrowDirection: newParsedDirection,
169
132
  arrowLocation: newParsedLocation,
170
133
  offsetSpacing,
171
- tipRef
134
+ selector: `[data-id="tt_${ttId}"]`
172
135
  });
173
136
  if (!result)
174
137
  return;
@@ -179,32 +142,26 @@ const Tooltip = /* @__PURE__ */ import_react.default.forwardRef((props, ref) =>
179
142
  if (newArrowLocation !== arrowLocation) {
180
143
  setArrowLocation(newArrowLocation);
181
144
  }
182
- setToolStyles(styles);
183
- }), 100);
145
+ setTooltyles(styles);
146
+ }, 100);
147
+ const bindEvent = () => {
148
+ if (!controlByUser) {
149
+ document.addEventListener("click", clickEventHandler);
150
+ }
151
+ window.addEventListener("resize", onRootElementMouted);
152
+ };
153
+ const unbindEvent = () => {
154
+ if (!controlByUser) {
155
+ document.removeEventListener("click", clickEventHandler);
156
+ }
157
+ window.removeEventListener("resize", onRootElementMouted);
158
+ };
184
159
  (0, import_react.useEffect)(() => {
185
- const bindEvent = () => {
186
- if (!openStatus)
187
- return;
188
- if (!controlByUser) {
189
- document.addEventListener("click", clickEventHandler);
190
- }
191
- if (!import_utils.isMini) {
192
- window.addEventListener("resize", onRootElementMouted);
193
- }
194
- };
195
- const unbindEvent = () => {
196
- if (!controlByUser) {
197
- document.removeEventListener("click", clickEventHandler);
198
- }
199
- if (!import_utils.isMini) {
200
- window.removeEventListener("resize", onRootElementMouted);
201
- }
202
- };
203
160
  bindEvent();
204
161
  return () => {
205
162
  unbindEvent();
206
163
  };
207
- }, [openStatus]);
164
+ }, []);
208
165
  let triggerEventOption;
209
166
  if (!controlByUser) {
210
167
  triggerEventOption = (0, import_utils.triggerEventTransform)({
@@ -217,12 +174,12 @@ const Tooltip = /* @__PURE__ */ import_react.default.forwardRef((props, ref) =>
217
174
  const childrenOptions = __spreadValues({
218
175
  ref: childrenRef
219
176
  }, triggerEventOption);
220
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, (open || openStatus) && title ? /* @__PURE__ */ import_react.default.createElement(import_Portal.default, { onRootElementMouted }, /* @__PURE__ */ import_react.default.createElement(
177
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, (open || openStatus) && title ? /* @__PURE__ */ import_react.default.createElement(import_Portal.default, { onRootElementMouted, ref }, /* @__PURE__ */ import_react.default.createElement(
221
178
  "div",
222
179
  __spreadValues({
223
180
  className: (0, import_clsx.default)(prefixCls, className, `tooltip-${arrowDirection}`),
224
- style: __spreadValues(__spreadValues({}, style), toolStyles),
225
- ref: nodeRef
181
+ style: __spreadValues(__spreadValues({}, style), tooltyles),
182
+ "data-id": `tt_${ttId}`
226
183
  }, others),
227
184
  /* @__PURE__ */ import_react.default.createElement(
228
185
  "div",
package/dist/index.d.ts CHANGED
@@ -8,11 +8,6 @@ export * from './Calendar';
8
8
  export * from './Card';
9
9
  export * from './Checkbox';
10
10
  export * from './Collapse';
11
- export * from './DatePicker';
12
- export * from './DesktopDatePicker';
13
- export * from './DesktopTimePicker';
14
- export * from './DesktopDateTimePicker';
15
- export * from './DesktopPicker';
16
11
  export * from './Divider';
17
12
  export * from './Drawer';
18
13
  export * from './Fade';
@@ -53,4 +48,3 @@ export * from './Toast';
53
48
  export * from './Dialog';
54
49
  export * from './ThemeProvider';
55
50
  export * from './locales';
56
- export * from './SwipeAction';
package/dist/index.js CHANGED
@@ -24,11 +24,6 @@ __reExport(src_exports, require("./Calendar"), module.exports);
24
24
  __reExport(src_exports, require("./Card"), module.exports);
25
25
  __reExport(src_exports, require("./Checkbox"), module.exports);
26
26
  __reExport(src_exports, require("./Collapse"), module.exports);
27
- __reExport(src_exports, require("./DatePicker"), module.exports);
28
- __reExport(src_exports, require("./DesktopDatePicker"), module.exports);
29
- __reExport(src_exports, require("./DesktopTimePicker"), module.exports);
30
- __reExport(src_exports, require("./DesktopDateTimePicker"), module.exports);
31
- __reExport(src_exports, require("./DesktopPicker"), module.exports);
32
27
  __reExport(src_exports, require("./Divider"), module.exports);
33
28
  __reExport(src_exports, require("./Drawer"), module.exports);
34
29
  __reExport(src_exports, require("./Fade"), module.exports);
@@ -69,7 +64,6 @@ __reExport(src_exports, require("./Toast"), module.exports);
69
64
  __reExport(src_exports, require("./Dialog"), module.exports);
70
65
  __reExport(src_exports, require("./ThemeProvider"), module.exports);
71
66
  __reExport(src_exports, require("./locales"), module.exports);
72
- __reExport(src_exports, require("./SwipeAction"), module.exports);
73
67
  // Annotate the CommonJS export names for ESM import in node:
74
68
  0 && (module.exports = {
75
69
  ...require("./ActionSheet"),
@@ -82,11 +76,6 @@ __reExport(src_exports, require("./SwipeAction"), module.exports);
82
76
  ...require("./Card"),
83
77
  ...require("./Checkbox"),
84
78
  ...require("./Collapse"),
85
- ...require("./DatePicker"),
86
- ...require("./DesktopDatePicker"),
87
- ...require("./DesktopTimePicker"),
88
- ...require("./DesktopDateTimePicker"),
89
- ...require("./DesktopPicker"),
90
79
  ...require("./Divider"),
91
80
  ...require("./Drawer"),
92
81
  ...require("./Fade"),
@@ -126,6 +115,5 @@ __reExport(src_exports, require("./SwipeAction"), module.exports);
126
115
  ...require("./Toast"),
127
116
  ...require("./Dialog"),
128
117
  ...require("./ThemeProvider"),
129
- ...require("./locales"),
130
- ...require("./SwipeAction")
118
+ ...require("./locales")
131
119
  });
@@ -37,15 +37,4 @@ export interface BaseLang {
37
37
  currentType?: Record<string, string>;
38
38
  hotCityType?: Record<string, string>;
39
39
  };
40
- desktopDatePicker?: {
41
- month?: Record<number, string>;
42
- };
43
- datePicker?: {
44
- year: string;
45
- month: string;
46
- day: string;
47
- hour: string;
48
- minute: string;
49
- second: string;
50
- };
51
40
  }