@bifrostui/react 2.0.0-beta.10 → 2.0.0-beta.11

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 (211) hide show
  1. package/dist/Calendar/Calendar.js +5 -1
  2. package/dist/Calendar/Calendar.types.d.ts +5 -0
  3. package/dist/Collapse/Collapse.css +0 -1
  4. package/dist/Collapse/Collapse.d.ts +1 -1
  5. package/dist/Collapse/Collapse.js +11 -8
  6. package/dist/Collapse/Collapse.miniapp.d.ts +5 -0
  7. package/dist/Collapse/Collapse.miniapp.js +177 -0
  8. package/dist/CollapsePanel/CollapsePanel.css +4 -2
  9. package/dist/DatePicker/DatePicker.d.ts +4 -0
  10. package/dist/DatePicker/DatePicker.js +335 -0
  11. package/dist/DatePicker/DatePicker.types.d.ts +36 -0
  12. package/dist/DatePicker/DatePicker.types.js +15 -0
  13. package/dist/DatePicker/constants.d.ts +9 -0
  14. package/dist/DatePicker/constants.js +37 -0
  15. package/dist/DatePicker/index.d.ts +3 -0
  16. package/dist/DatePicker/index.js +44 -0
  17. package/dist/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
  18. package/dist/DesktopDatePicker/DesktopDatePicker.js +280 -0
  19. package/dist/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
  20. package/dist/DesktopDatePicker/DesktopDatePicker.types.js +15 -0
  21. package/dist/DesktopDatePicker/deskTopPickerContainer.css +100 -0
  22. package/dist/DesktopDatePicker/index.css +61 -0
  23. package/dist/DesktopDatePicker/index.d.ts +2 -0
  24. package/dist/DesktopDatePicker/index.js +41 -0
  25. package/dist/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
  26. package/dist/DesktopDatePicker/useGetDatePickerContent.js +343 -0
  27. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
  28. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.js +322 -0
  29. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
  30. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.js +15 -0
  31. package/dist/DesktopDateTimePicker/index.css +66 -0
  32. package/dist/DesktopDateTimePicker/index.d.ts +2 -0
  33. package/dist/DesktopDateTimePicker/index.js +41 -0
  34. package/dist/DesktopPicker/DesktopPicker.d.ts +5 -0
  35. package/dist/DesktopPicker/DesktopPicker.js +243 -0
  36. package/dist/DesktopPicker/DesktopPicker.types.d.ts +61 -0
  37. package/dist/DesktopPicker/DesktopPicker.types.js +15 -0
  38. package/dist/DesktopPicker/index.css +39 -0
  39. package/dist/DesktopPicker/index.d.ts +2 -0
  40. package/dist/DesktopPicker/index.js +41 -0
  41. package/dist/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
  42. package/dist/{Tabs/utils/bound.js → DesktopPicker/utils/calcAfterMounted.js} +7 -14
  43. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
  44. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.js +38 -0
  45. package/dist/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
  46. package/dist/DesktopTimePicker/DesktopTimePicker.js +288 -0
  47. package/dist/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
  48. package/dist/DesktopTimePicker/DesktopTimePicker.types.js +15 -0
  49. package/dist/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
  50. package/dist/DesktopTimePicker/DesktopTimePickerList.js +111 -0
  51. package/dist/DesktopTimePicker/index.css +170 -0
  52. package/dist/DesktopTimePicker/index.d.ts +2 -0
  53. package/dist/DesktopTimePicker/index.js +41 -0
  54. package/dist/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
  55. package/dist/DesktopTimePicker/useGetTimePickerContent.js +249 -0
  56. package/dist/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
  57. package/dist/DesktopTimePicker/utils/scrollUtil.js +27 -0
  58. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
  59. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.js +51 -0
  60. package/dist/DesktopTimePicker/utils/utils.d.ts +28 -0
  61. package/dist/DesktopTimePicker/utils/utils.js +408 -0
  62. package/dist/Dialog/Dialog.types.d.ts +5 -0
  63. package/dist/Dialog/FunctionalDialog.js +13 -2
  64. package/dist/Input/Input.css +0 -2
  65. package/dist/Modal/Modal.miniapp.d.ts +1 -1
  66. package/dist/Picker/Picker.css +5 -0
  67. package/dist/Picker/Picker.js +27 -5
  68. package/dist/Picker/Picker.types.d.ts +15 -2
  69. package/dist/Picker/PickerPanel.css +4 -0
  70. package/dist/Picker/PickerPanel.js +7 -6
  71. package/dist/Popover/Popover.js +70 -27
  72. package/dist/Portal/Portal.miniapp.js +7 -4
  73. package/dist/ScrollView/ScrollView.js +24 -11
  74. package/dist/ScrollView/ScrollView.types.d.ts +0 -1
  75. package/dist/Select/Select.css +1 -4
  76. package/dist/Select/Select.js +62 -37
  77. package/dist/Slider/Slider.js +13 -5
  78. package/dist/SwipeAction/SwipeAction.css +79 -0
  79. package/dist/SwipeAction/SwipeAction.d.ts +5 -0
  80. package/dist/SwipeAction/SwipeAction.js +349 -0
  81. package/dist/SwipeAction/SwipeAction.types.d.ts +75 -0
  82. package/dist/SwipeAction/SwipeAction.types.js +15 -0
  83. package/dist/SwipeAction/SwipeActionContext.d.ts +4 -0
  84. package/dist/SwipeAction/SwipeActionContext.js +30 -0
  85. package/dist/SwipeAction/SwipeActionItem.css +31 -0
  86. package/dist/SwipeAction/SwipeActionItem.d.ts +5 -0
  87. package/dist/SwipeAction/SwipeActionItem.js +105 -0
  88. package/dist/SwipeAction/constants.d.ts +9 -0
  89. package/dist/SwipeAction/constants.js +39 -0
  90. package/dist/SwipeAction/index.d.ts +5 -0
  91. package/dist/SwipeAction/index.js +50 -0
  92. package/dist/Tabs/Tabs.js +29 -14
  93. package/dist/Tabs/utils/scroll.d.ts +2 -0
  94. package/dist/Tabs/utils/scroll.js +55 -0
  95. package/dist/Toast/FunctionalToast.js +13 -2
  96. package/dist/Toast/Toast.css +0 -1
  97. package/dist/Toast/Toast.types.d.ts +5 -0
  98. package/dist/Tooltip/Tooltip.js +70 -27
  99. package/dist/index.d.ts +6 -0
  100. package/dist/index.js +13 -1
  101. package/dist/locales/base.d.ts +11 -0
  102. package/dist/locales/en-US.js +24 -0
  103. package/dist/locales/zh-CN.js +24 -0
  104. package/dist/locales/zh-TW.js +24 -0
  105. package/es/Calendar/Calendar.js +5 -1
  106. package/es/Calendar/Calendar.types.d.ts +5 -0
  107. package/es/Collapse/Collapse.css +0 -1
  108. package/es/Collapse/Collapse.d.ts +1 -1
  109. package/es/Collapse/Collapse.js +11 -8
  110. package/es/Collapse/Collapse.miniapp.d.ts +5 -0
  111. package/es/Collapse/Collapse.miniapp.js +157 -0
  112. package/es/CollapsePanel/CollapsePanel.css +4 -2
  113. package/es/DatePicker/DatePicker.d.ts +4 -0
  114. package/es/DatePicker/DatePicker.js +308 -0
  115. package/es/DatePicker/DatePicker.types.d.ts +36 -0
  116. package/es/DatePicker/DatePicker.types.js +1 -0
  117. package/es/DatePicker/constants.d.ts +9 -0
  118. package/es/DatePicker/constants.js +14 -0
  119. package/es/DatePicker/index.d.ts +3 -0
  120. package/es/DatePicker/index.js +8 -0
  121. package/es/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
  122. package/es/DesktopDatePicker/DesktopDatePicker.js +253 -0
  123. package/es/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
  124. package/es/DesktopDatePicker/DesktopDatePicker.types.js +1 -0
  125. package/es/DesktopDatePicker/deskTopPickerContainer.css +100 -0
  126. package/es/DesktopDatePicker/index.css +61 -0
  127. package/es/DesktopDatePicker/index.d.ts +2 -0
  128. package/es/DesktopDatePicker/index.js +6 -0
  129. package/es/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
  130. package/es/DesktopDatePicker/useGetDatePickerContent.js +316 -0
  131. package/es/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
  132. package/es/DesktopDateTimePicker/DesktopDateTimePicker.js +295 -0
  133. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
  134. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.js +1 -0
  135. package/es/DesktopDateTimePicker/index.css +66 -0
  136. package/es/DesktopDateTimePicker/index.d.ts +2 -0
  137. package/es/DesktopDateTimePicker/index.js +9 -0
  138. package/es/DesktopPicker/DesktopPicker.d.ts +5 -0
  139. package/es/DesktopPicker/DesktopPicker.js +226 -0
  140. package/es/DesktopPicker/DesktopPicker.types.d.ts +61 -0
  141. package/es/DesktopPicker/DesktopPicker.types.js +1 -0
  142. package/es/DesktopPicker/index.css +39 -0
  143. package/es/DesktopPicker/index.d.ts +2 -0
  144. package/es/DesktopPicker/index.js +6 -0
  145. package/es/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
  146. package/es/DesktopPicker/utils/calcAfterMounted.js +6 -0
  147. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
  148. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.js +9 -0
  149. package/es/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
  150. package/es/DesktopTimePicker/DesktopTimePicker.js +261 -0
  151. package/es/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
  152. package/es/DesktopTimePicker/DesktopTimePicker.types.js +1 -0
  153. package/es/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
  154. package/es/DesktopTimePicker/DesktopTimePickerList.js +84 -0
  155. package/es/DesktopTimePicker/index.css +170 -0
  156. package/es/DesktopTimePicker/index.d.ts +2 -0
  157. package/es/DesktopTimePicker/index.js +6 -0
  158. package/es/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
  159. package/es/DesktopTimePicker/useGetTimePickerContent.js +226 -0
  160. package/es/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
  161. package/es/DesktopTimePicker/utils/scrollUtil.js +8 -0
  162. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
  163. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.js +22 -0
  164. package/es/DesktopTimePicker/utils/utils.d.ts +28 -0
  165. package/es/DesktopTimePicker/utils/utils.js +365 -0
  166. package/es/Dialog/Dialog.types.d.ts +5 -0
  167. package/es/Dialog/FunctionalDialog.js +14 -3
  168. package/es/Input/Input.css +0 -2
  169. package/es/Picker/Picker.css +5 -0
  170. package/es/Picker/Picker.js +27 -5
  171. package/es/Picker/Picker.types.d.ts +15 -2
  172. package/es/Picker/PickerPanel.css +4 -0
  173. package/es/Picker/PickerPanel.js +7 -6
  174. package/es/Popover/Popover.js +73 -29
  175. package/es/Portal/Portal.miniapp.js +8 -5
  176. package/es/ScrollView/ScrollView.js +24 -11
  177. package/es/ScrollView/ScrollView.types.d.ts +0 -1
  178. package/es/Select/Select.css +1 -4
  179. package/es/Select/Select.js +62 -38
  180. package/es/Slider/Slider.js +16 -6
  181. package/es/SwipeAction/SwipeAction.css +79 -0
  182. package/es/SwipeAction/SwipeAction.d.ts +5 -0
  183. package/es/SwipeAction/SwipeAction.js +334 -0
  184. package/es/SwipeAction/SwipeAction.types.d.ts +75 -0
  185. package/es/SwipeAction/SwipeAction.types.js +1 -0
  186. package/es/SwipeAction/SwipeActionContext.d.ts +4 -0
  187. package/es/SwipeAction/SwipeActionContext.js +11 -0
  188. package/es/SwipeAction/SwipeActionItem.css +31 -0
  189. package/es/SwipeAction/SwipeActionItem.d.ts +5 -0
  190. package/es/SwipeAction/SwipeActionItem.js +78 -0
  191. package/es/SwipeAction/constants.d.ts +9 -0
  192. package/es/SwipeAction/constants.js +15 -0
  193. package/es/SwipeAction/index.d.ts +5 -0
  194. package/es/SwipeAction/index.js +12 -0
  195. package/es/Tabs/Tabs.js +29 -14
  196. package/es/Tabs/utils/scroll.d.ts +2 -0
  197. package/es/Tabs/utils/scroll.js +36 -0
  198. package/es/Toast/FunctionalToast.js +14 -3
  199. package/es/Toast/Toast.css +0 -1
  200. package/es/Toast/Toast.types.d.ts +5 -0
  201. package/es/Tooltip/Tooltip.js +73 -29
  202. package/es/index.d.ts +6 -0
  203. package/es/index.js +6 -0
  204. package/es/locales/base.d.ts +11 -0
  205. package/es/locales/en-US.js +24 -0
  206. package/es/locales/zh-CN.js +24 -0
  207. package/es/locales/zh-TW.js +24 -0
  208. package/package.json +5 -5
  209. package/dist/Tabs/utils/bound.d.ts +0 -1
  210. package/es/Tabs/utils/bound.d.ts +0 -1
  211. package/es/Tabs/utils/bound.js +0 -13
@@ -0,0 +1,253 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { DateOutlinedIcon } from "@bifrostui/icons";
33
+ import dayjs from "dayjs";
34
+ import clsx from "clsx";
35
+ import React, { useMemo, useState, useEffect } from "react";
36
+ import { useValue } from "@bifrostui/utils";
37
+ import DesktopPicker from "../DesktopPicker";
38
+ import useGetDatePickerContent from "./useGetDatePickerContent";
39
+ import "./index.css";
40
+ const prefixCls = "bui-d-date-picker";
41
+ const DesktopDatePicker = /* @__PURE__ */ React.forwardRef((props, ref) => {
42
+ const _a = props, {
43
+ className,
44
+ inputRef,
45
+ inputProps,
46
+ value,
47
+ defaultValue,
48
+ disabled = false,
49
+ disableOpenPicker = false,
50
+ placeholder,
51
+ format = "YYYY/MM/DD",
52
+ open,
53
+ disabledDate,
54
+ picker = "day",
55
+ minDate = dayjs(dayjs().format("YYYYMMDD")).subtract(10, "year").toDate(),
56
+ maxDate = dayjs(dayjs().format("YYYYMMDD")).add(10, "year").toDate(),
57
+ icon,
58
+ headerBarLeftIcon,
59
+ headerBarRightIcon,
60
+ closeOnSelect = true,
61
+ onChange,
62
+ onClose,
63
+ onOpen,
64
+ monthRender,
65
+ yearRender,
66
+ onMonthChange,
67
+ onYearChange,
68
+ DesktopPickerProps,
69
+ CalendarProps
70
+ } = _a, others = __objRest(_a, [
71
+ "className",
72
+ "inputRef",
73
+ "inputProps",
74
+ "value",
75
+ "defaultValue",
76
+ "disabled",
77
+ "disableOpenPicker",
78
+ "placeholder",
79
+ "format",
80
+ "open",
81
+ "disabledDate",
82
+ "picker",
83
+ "minDate",
84
+ "maxDate",
85
+ "icon",
86
+ "headerBarLeftIcon",
87
+ "headerBarRightIcon",
88
+ "closeOnSelect",
89
+ "onChange",
90
+ "onClose",
91
+ "onOpen",
92
+ "monthRender",
93
+ "yearRender",
94
+ "onMonthChange",
95
+ "onYearChange",
96
+ "DesktopPickerProps",
97
+ "CalendarProps"
98
+ ]);
99
+ const [isOpen, setIsOpen] = useState(false);
100
+ const [selectType, setSelectType] = useState(
101
+ picker
102
+ );
103
+ const [inputStr, setInputStr] = useState("");
104
+ const [useUserStr, setUseUserStr] = useState(false);
105
+ const [calendarValue, triggerChange] = useValue({
106
+ value,
107
+ defaultValue,
108
+ onChange
109
+ });
110
+ const handleDatePickerIconClick = (e) => {
111
+ if (disabled || disableOpenPicker || open !== void 0)
112
+ return;
113
+ setIsOpen(!isOpen);
114
+ };
115
+ const handleDatePickerInputClick = (e) => {
116
+ e.stopPropagation();
117
+ if (inputProps == null ? void 0 : inputProps.readOnly) {
118
+ if (disabled || disableOpenPicker || open !== void 0)
119
+ return;
120
+ setIsOpen(!isOpen);
121
+ return;
122
+ }
123
+ setIsOpen(false);
124
+ };
125
+ const { desktopDatePicker } = useGetDatePickerContent({
126
+ format,
127
+ minDate,
128
+ maxDate,
129
+ setIsOpen,
130
+ triggerChange,
131
+ disabledDate,
132
+ calendarValue,
133
+ setSelectType,
134
+ picker,
135
+ selectType,
136
+ headerBarLeftIcon,
137
+ headerBarRightIcon,
138
+ CalendarProps,
139
+ onClose,
140
+ monthRender,
141
+ yearRender,
142
+ onMonthChange,
143
+ onYearChange,
144
+ closeOnSelect
145
+ });
146
+ const onInputChange = (e) => {
147
+ e.stopPropagation();
148
+ const newValue = e.target.value;
149
+ if (newValue.length === 0) {
150
+ setInputStr("");
151
+ setUseUserStr(true);
152
+ triggerChange(e, null);
153
+ return;
154
+ }
155
+ if (dayjs(newValue, format, true).isValid()) {
156
+ setInputStr("");
157
+ setUseUserStr(false);
158
+ if (disabledDate == null ? void 0 : disabledDate(dayjs(newValue).toDate())) {
159
+ return;
160
+ }
161
+ if (dayjs(newValue).isAfter(maxDate)) {
162
+ triggerChange(e, maxDate);
163
+ return;
164
+ }
165
+ if (dayjs(newValue).isBefore(minDate)) {
166
+ triggerChange(e, minDate);
167
+ return;
168
+ }
169
+ triggerChange(e, dayjs(e.target.value).toDate());
170
+ } else {
171
+ setUseUserStr(true);
172
+ setInputStr(e.target.value);
173
+ }
174
+ };
175
+ const onMount = () => {
176
+ onOpen == null ? void 0 : onOpen();
177
+ };
178
+ const unMounted = () => {
179
+ onClose == null ? void 0 : onClose();
180
+ setSelectType(picker);
181
+ };
182
+ const showPlaceholder = useMemo(() => {
183
+ if (placeholder) {
184
+ return placeholder;
185
+ }
186
+ return format;
187
+ }, [placeholder, format]);
188
+ const renderValue = useMemo(() => {
189
+ if (useUserStr) {
190
+ return inputStr;
191
+ }
192
+ if (calendarValue) {
193
+ return dayjs(calendarValue).format(format);
194
+ }
195
+ return "";
196
+ }, [calendarValue, inputStr, useUserStr, format]);
197
+ useEffect(() => {
198
+ setUseUserStr(false);
199
+ }, [calendarValue]);
200
+ return /* @__PURE__ */ React.createElement(
201
+ "div",
202
+ __spreadProps(__spreadValues({}, others), {
203
+ className: clsx(prefixCls, className, {
204
+ [`${prefixCls}-disabled`]: disabled,
205
+ [`${prefixCls}-active`]: isOpen
206
+ }),
207
+ ref
208
+ }),
209
+ /* @__PURE__ */ React.createElement(
210
+ DesktopPicker,
211
+ __spreadValues({
212
+ open: open != null ? open : isOpen,
213
+ miniBackdropInvisible: open !== void 0,
214
+ onClose: (e, data) => {
215
+ setIsOpen(data == null ? void 0 : data.value);
216
+ },
217
+ onMount,
218
+ onUnmounted: unMounted,
219
+ content: desktopDatePicker()
220
+ }, DesktopPickerProps),
221
+ /* @__PURE__ */ React.createElement("div", { className: `${prefixCls}-container` }, /* @__PURE__ */ React.createElement(
222
+ "input",
223
+ __spreadProps(__spreadValues({}, inputProps), {
224
+ "aria-invalid": true,
225
+ autoComplete: "off",
226
+ placeholder: showPlaceholder,
227
+ type: "text",
228
+ inputMode: "text",
229
+ ref: inputRef,
230
+ className: clsx(`${prefixCls}-input`, {
231
+ [inputProps == null ? void 0 : inputProps.className]: inputProps == null ? void 0 : inputProps.className
232
+ }),
233
+ onBlur: () => setUseUserStr(false),
234
+ onClick: handleDatePickerInputClick,
235
+ onChange: onInputChange,
236
+ value: renderValue
237
+ })
238
+ ), /* @__PURE__ */ React.createElement(
239
+ "div",
240
+ {
241
+ onClick: handleDatePickerIconClick,
242
+ className: `${prefixCls}-icon`
243
+ },
244
+ icon || /* @__PURE__ */ React.createElement(DateOutlinedIcon, { htmlColor: "var(--bui-color-neutral-3)" })
245
+ ))
246
+ )
247
+ );
248
+ });
249
+ DesktopDatePicker.displayName = "BUIDatePicker";
250
+ var DesktopDatePicker_default = DesktopDatePicker;
251
+ export {
252
+ DesktopDatePicker_default as default
253
+ };
@@ -0,0 +1,163 @@
1
+ import React, { Ref } from 'react';
2
+ import { OverrideProps } from '@bifrostui/types';
3
+ import { DesktopPickerProps } from '../DesktopPicker';
4
+ import { CalendarProps } from '../Calendar';
5
+ export type IDatePickerValue = Date | null;
6
+ export interface IDatePickerInstance {
7
+ /** 日期对象 */
8
+ day: Date;
9
+ /** 是否禁用 */
10
+ disabled: boolean;
11
+ }
12
+ export interface IDatePickerCustomIconProps {
13
+ /**
14
+ * 是否是最小时间
15
+ */
16
+ isMinMonth?: boolean;
17
+ /**
18
+ * 是否是最大时间
19
+ */
20
+ isMaxMonth?: boolean;
21
+ }
22
+ export interface IDatePickerCalendarProps {
23
+ /**
24
+ * 是否隐藏当前月之外的日期,默认为false
25
+ */
26
+ hideDaysOutsideCurrentMonth?: boolean;
27
+ /**
28
+ * 高亮的日期,默认为today
29
+ * today 若选中的非当天,则当天高亮显示,若选中的是当天,则当天展示选中态
30
+ * weekend 可选的周末高亮显示
31
+ */
32
+ highlightDate?: 'today' | 'weekend';
33
+ /**
34
+ * 自定义日期单元格的内容
35
+ */
36
+ dateRender?: (currentDate: IDatePickerInstance) => React.ReactNode;
37
+ /**
38
+ * 自定义周单元格的内容
39
+ */
40
+ weekRender?: (week: string) => React.ReactNode;
41
+ }
42
+ export type DesktopDatePickerProps<D extends React.ElementType = 'div', P = {}> = OverrideProps<{
43
+ props: P & {
44
+ /**
45
+ * 默认选中的值,当组件非受控时使用
46
+ */
47
+ defaultValue?: IDatePickerValue;
48
+ /**
49
+ * 选中的值,当组件受控时使用
50
+ */
51
+ value?: IDatePickerValue;
52
+ /**
53
+ * 输入框占位内容
54
+ */
55
+ placeholder?: string;
56
+ /**
57
+ * 可选择的最小日期,默认为当前日期
58
+ * 渲染指定月时:value=null并指定minDate
59
+ */
60
+ minDate?: Date;
61
+ /**
62
+ * 可选择的最大日期,默认为当前日期的一年后
63
+ */
64
+ maxDate?: Date;
65
+ /**
66
+ * 弹层是否打开
67
+ */
68
+ open?: boolean;
69
+ /**
70
+ * 输入框icon
71
+ */
72
+ icon?: React.ReactNode;
73
+ /**
74
+ * inputRef
75
+ */
76
+ inputRef?: Ref<HTMLInputElement>;
77
+ /**
78
+ * inputProp
79
+ */
80
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
81
+ /**
82
+ * 日期选择器类型
83
+ */
84
+ picker?: 'year' | 'month' | 'day';
85
+ /**
86
+ * 头部操作栏左边图标
87
+ */
88
+ headerBarLeftIcon?: (options: IDatePickerCustomIconProps) => React.ReactNode;
89
+ /**
90
+ * 头部操作栏右边图标
91
+ */
92
+ headerBarRightIcon?: (options: IDatePickerCustomIconProps) => React.ReactNode;
93
+ /**
94
+ * 是否禁用日期选择器
95
+ */
96
+ disabled?: boolean;
97
+ /**
98
+ * 不可选择的日期
99
+ */
100
+ disabledDate?: (currentDate: Date) => boolean;
101
+ /**
102
+ * 自定义月份单元格的内容
103
+ */
104
+ monthRender?: ({ month, currentDate, }: {
105
+ month: string | number;
106
+ currentDate: IDatePickerInstance;
107
+ }) => React.ReactNode;
108
+ /**
109
+ * 自定义年份单元格的内容
110
+ */
111
+ yearRender?: ({ year, currentDate, }: {
112
+ year: string | number;
113
+ currentDate: IDatePickerInstance;
114
+ }) => React.ReactNode;
115
+ /**
116
+ * 日期发生变化的回调
117
+ */
118
+ onChange?: (e: React.SyntheticEvent, data: {
119
+ value: IDatePickerValue;
120
+ }) => void;
121
+ /**
122
+ * 选择日期后是否立刻关闭
123
+ */
124
+ closeOnSelect?: boolean;
125
+ /**
126
+ * 禁用弹层选择功能
127
+ */
128
+ disableOpenPicker?: boolean;
129
+ /**
130
+ * 日期格式化
131
+ */
132
+ format?: string;
133
+ /**
134
+ * 弹层关闭的回调
135
+ */
136
+ onClose?: () => void;
137
+ /**
138
+ * 弹层打开的回调
139
+ */
140
+ onOpen?: () => void;
141
+ /**
142
+ * 月份切换的回调
143
+ */
144
+ onMonthChange?: (e: React.SyntheticEvent, data: {
145
+ value: Date;
146
+ }) => void;
147
+ /**
148
+ * 年份切换的回调
149
+ */
150
+ onYearChange?: (e: React.SyntheticEvent, data: {
151
+ value: Date;
152
+ }) => void;
153
+ /**
154
+ * DesktopPickerProps
155
+ */
156
+ DesktopPickerProps?: Omit<DesktopPickerProps, 'open'>;
157
+ /**
158
+ * CalendarProps
159
+ */
160
+ CalendarProps?: CalendarProps;
161
+ };
162
+ defaultComponent: D;
163
+ }, D>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,100 @@
1
+ :root,
2
+ page,
3
+ xhs-page {
4
+ --bui-calendar-padding: 6px 12px 7px;
5
+ --bui-d-date-picker-lay-font-family: var(--bui-font-family);
6
+ --bui-d-date-picker-lay-main-radius: 3px;
7
+ --bui-d-date-picker-lay-content-padding: 10px 16px;
8
+ --bui-d-date-picker-lay-content-height: 30px;
9
+ --bui-d-date-picker-lay-content-line-height: 30px;
10
+ --bui-d-date-picker-lay-content-width: 60px;
11
+ --bui-d-date-picker-lay-calendar-padding: 6px 12px 7px;
12
+ --bui-d-date-picker-lay-shadow: 0 0 0 2px var(--bui-color-bg-default);
13
+ --bui-d-date-picker-title-size: var(--bui-title-size-3);
14
+ --bui-d-date-picker-list-padding: 6px 12px 7px;
15
+ --bui-d-date-picker-col-bg: var(--bui-color-bg-view);
16
+ --bui-d-date-picker-content-radius: var(--bui-shape-radius-default, 6px);
17
+ --bui-d-date-picker-col-font-size: var(--bui-title-size-4);
18
+ }
19
+ .bui-d-date-picker-lay-main {
20
+ height: 308px;
21
+ font-family: var(--bui-d-date-picker-lay-font-family);
22
+ border-radius: var(--bui-d-date-picker-lay-main-radius);
23
+ padding: 3px 0;
24
+ box-shadow: var(--bui-d-date-picker-lay-shadow);
25
+ overflow: hidden;
26
+ flex: 1;
27
+ }
28
+ .bui-d-date-picker-lay-handler {
29
+ height: 28px;
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ margin-bottom: 7px;
34
+ margin-top: 8px;
35
+ }
36
+ .bui-d-date-picker-lay-handler-btn {
37
+ font-size: 16px;
38
+ height: 100%;
39
+ width: 46px;
40
+ cursor: pointer;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ }
45
+ .bui-d-date-picker-lay-handler-icon {
46
+ font-size: 28px;
47
+ }
48
+ .bui-d-date-picker-lay-title {
49
+ display: flex;
50
+ align-items: center;
51
+ }
52
+ .bui-d-date-picker-lay-title-text {
53
+ white-space: nowrap;
54
+ font-size: var(--bui-d-date-picker-title-size);
55
+ font-weight: var(--bui-font-weight-medium);
56
+ text-align: center;
57
+ }
58
+ .bui-d-date-picker-lay-title-text:hover {
59
+ cursor: pointer;
60
+ color: var(--bui-color-blue);
61
+ }
62
+ .bui-d-date-picker-lay-list {
63
+ max-height: 262px;
64
+ overflow: auto;
65
+ padding: var(--bui-d-date-picker-list-padding);
66
+ }
67
+ .bui-d-date-picker-lay-row {
68
+ display: grid;
69
+ grid-template-columns: repeat(3, 1fr);
70
+ }
71
+ .bui-d-date-picker-lay-col {
72
+ display: flex;
73
+ align-items: center;
74
+ justify-content: center;
75
+ background-color: var(--bui-d-date-picker-col-bg);
76
+ cursor: pointer;
77
+ }
78
+ .bui-d-date-picker-lay-col-content {
79
+ margin: 12px 8px;
80
+ padding: 4px 6px;
81
+ border-radius: var(--bui-d-date-picker-content-radius);
82
+ display: inline-block;
83
+ text-align: center;
84
+ font-weight: var(--bui-font-weight-medium);
85
+ color: var(--bui-color-fg-default);
86
+ font-family: var(--bui-d-date-picker-lay-font-family);
87
+ }
88
+ .bui-d-date-picker-lay-col-text {
89
+ display: inline-block;
90
+ width: 36px;
91
+ font-size: var(--bui-d-date-picker-col-font-size);
92
+ line-height: 1;
93
+ }
94
+ .bui-d-date-picker-lay-col-active .bui-d-date-picker-lay-col-content {
95
+ color: #000;
96
+ background-color: #ffc7da;
97
+ }
98
+ .bui-d-date-picker-lay-col-disabled .bui-d-date-picker-lay-col-content {
99
+ color: #ccc;
100
+ }
@@ -0,0 +1,61 @@
1
+ :root,
2
+ page,
3
+ xhs-page {
4
+ --bui-d-date-picker-height: var(--bui-input-height, 32px);
5
+ --bui-d-date-picker-min-width: var(--bui-input-min-width, 100px);
6
+ --bui-d-date-picker-font-size: var(--bui-title-size-3, 16px);
7
+ --bui-d-date-picker-icon-size: var(--bui-title-size-3, 16px);
8
+ --bui-d-date-picker-container-padding: var(--bui-spacing-md, 9px);
9
+ --bui-d-date-picker-bg: var(--bui-color-bg-view);
10
+ --bui-d-date-picker-font-family: var(--bui-font-family);
11
+ --bui-d-date-picker-border: 1px solid var(--bui-color-border-default);
12
+ --bui-d-date-picker-shadow: 0 0 0 2px var(--bui-color-bg-default);
13
+ --bui-d-date-picker-disabled-color: var(--bui-color-fg-subtle);
14
+ }
15
+ .bui-d-date-picker {
16
+ position: relative;
17
+ cursor: pointer;
18
+ vertical-align: middle;
19
+ height: var(--bui-d-date-picker-height);
20
+ min-width: var(--bui-d-date-picker-min-width);
21
+ font-size: var(--bui-d-date-picker-font-size);
22
+ border-radius: 5px;
23
+ background-color: var(--bui-d-date-picker-bg);
24
+ font-family: var(--bui-d-date-picker-font-family);
25
+ border: var(--bui-d-date-picker-border);
26
+ }
27
+ .bui-d-date-picker:active,
28
+ .bui-d-date-picker-active {
29
+ box-shadow: var(--bui-d-date-picker-shadow);
30
+ }
31
+ .bui-d-date-picker-icon {
32
+ display: flex;
33
+ align-items: center;
34
+ font-size: var(--bui-d-date-picker-icon-size);
35
+ height: 100%;
36
+ padding-left: 6px;
37
+ }
38
+ .bui-d-date-picker-container {
39
+ display: flex;
40
+ align-items: center;
41
+ padding: 0 var(--bui-d-date-picker-container-padding);
42
+ height: 100%;
43
+ }
44
+ .bui-d-date-picker-input {
45
+ display: flex;
46
+ justify-content: space-between;
47
+ align-items: center;
48
+ flex: 1;
49
+ height: 100%;
50
+ background-color: transparent;
51
+ outline: none;
52
+ border: 0;
53
+ }
54
+ .bui-d-date-picker.bui-d-date-picker-disabled {
55
+ pointer-events: none;
56
+ box-shadow: none;
57
+ background-color: rgba(188, 188, 188, 0.2);
58
+ }
59
+ .bui-d-date-picker.bui-d-date-picker-disabled input {
60
+ color: var(--bui-d-date-picker-disabled-color);
61
+ }
@@ -0,0 +1,2 @@
1
+ export { default, default as DesktopDatePicker } from './DesktopDatePicker';
2
+ export * from './DesktopDatePicker.types';
@@ -0,0 +1,6 @@
1
+ import { default as default2, default as default3 } from "./DesktopDatePicker";
2
+ export * from "./DesktopDatePicker.types";
3
+ export {
4
+ default3 as DesktopDatePicker,
5
+ default2 as default
6
+ };
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './deskTopPickerContainer.less';
3
+ declare const useGetDatePickerContent: (props: any) => {
4
+ desktopDatePicker: () => React.JSX.Element;
5
+ };
6
+ export default useGetDatePickerContent;