@fjyueke/bify-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +248 -0
  5. package/metaData/components/action-sheet/api.md +74 -0
  6. package/metaData/components/action-sheet/doc.md +243 -0
  7. package/metaData/components/action-sheet/example/index.tsx +116 -0
  8. package/metaData/components/area-picker/api.md +25 -0
  9. package/metaData/components/area-picker/doc.md +132 -0
  10. package/metaData/components/area-picker/example/index.tsx +60 -0
  11. package/metaData/components/avatar/api.md +19 -0
  12. package/metaData/components/avatar/doc.md +170 -0
  13. package/metaData/components/avatar/example/index.tsx +76 -0
  14. package/metaData/components/back-top/api.md +21 -0
  15. package/metaData/components/back-top/doc.md +142 -0
  16. package/metaData/components/back-top/example/index.tsx +96 -0
  17. package/metaData/components/backdrop/api.md +20 -0
  18. package/metaData/components/backdrop/doc.md +98 -0
  19. package/metaData/components/backdrop/example/index.tsx +33 -0
  20. package/metaData/components/badge/api.md +10 -0
  21. package/metaData/components/badge/doc.md +169 -0
  22. package/metaData/components/badge/example/index.tsx +81 -0
  23. package/metaData/components/button/api.md +31 -0
  24. package/metaData/components/button/doc.md +235 -0
  25. package/metaData/components/button/example/index.tsx +235 -0
  26. package/metaData/components/calendar/api.md +62 -0
  27. package/metaData/components/calendar/doc.md +516 -0
  28. package/metaData/components/calendar/example/index.tsx +501 -0
  29. package/metaData/components/cascader/api.md +55 -0
  30. package/metaData/components/cascader/doc.md +358 -0
  31. package/metaData/components/cascader/example/index.tsx +159 -0
  32. package/metaData/components/cell/api.md +37 -0
  33. package/metaData/components/cell/doc.md +158 -0
  34. package/metaData/components/cell/example/index.tsx +44 -0
  35. package/metaData/components/checkbox/api.md +35 -0
  36. package/metaData/components/checkbox/doc.md +203 -0
  37. package/metaData/components/checkbox/example/index.tsx +94 -0
  38. package/metaData/components/circle/api.md +17 -0
  39. package/metaData/components/circle/doc.md +123 -0
  40. package/metaData/components/circle/example/index.tsx +81 -0
  41. package/metaData/components/collapse/api.md +31 -0
  42. package/metaData/components/collapse/doc.md +142 -0
  43. package/metaData/components/collapse/example/index.tsx +81 -0
  44. package/metaData/components/config-provider/api.md +7 -0
  45. package/metaData/components/config-provider/doc.md +193 -0
  46. package/metaData/components/config-provider/example/index.tsx +54 -0
  47. package/metaData/components/countdown/api.md +46 -0
  48. package/metaData/components/countdown/doc.md +167 -0
  49. package/metaData/components/countdown/example/index.tsx +70 -0
  50. package/metaData/components/datetime-picker/api.md +25 -0
  51. package/metaData/components/datetime-picker/doc.md +317 -0
  52. package/metaData/components/datetime-picker/example/index.tsx +265 -0
  53. package/metaData/components/dialog/api.md +66 -0
  54. package/metaData/components/dialog/doc.md +292 -0
  55. package/metaData/components/dialog/example/index.tsx +138 -0
  56. package/metaData/components/divider/api.md +15 -0
  57. package/metaData/components/divider/doc.md +108 -0
  58. package/metaData/components/divider/example/index.tsx +45 -0
  59. package/metaData/components/dropdown-menu/api.md +37 -0
  60. package/metaData/components/dropdown-menu/doc.md +279 -0
  61. package/metaData/components/dropdown-menu/example/index.tsx +182 -0
  62. package/metaData/components/empty/api.md +20 -0
  63. package/metaData/components/empty/doc.md +126 -0
  64. package/metaData/components/empty/example/index.tsx +66 -0
  65. package/metaData/components/field/api.md +10 -0
  66. package/metaData/components/field/doc.md +274 -0
  67. package/metaData/components/field/example/index.tsx +203 -0
  68. package/metaData/components/fixed-nav/api.md +21 -0
  69. package/metaData/components/fixed-nav/doc.md +196 -0
  70. package/metaData/components/fixed-nav/example/index.tsx +80 -0
  71. package/metaData/components/fixed-view/api.md +10 -0
  72. package/metaData/components/fixed-view/doc.md +25 -0
  73. package/metaData/components/fixed-view/example/index.tsx +12 -0
  74. package/metaData/components/flex/api.md +18 -0
  75. package/metaData/components/flex/doc.md +103 -0
  76. package/metaData/components/flex/example/index.tsx +58 -0
  77. package/metaData/components/floating-bubble/api.md +18 -0
  78. package/metaData/components/floating-bubble/doc.md +94 -0
  79. package/metaData/components/floating-bubble/example/index.tsx +55 -0
  80. package/metaData/components/floating-panel/api.md +19 -0
  81. package/metaData/components/floating-panel/doc.md +174 -0
  82. package/metaData/components/floating-panel/example/index.tsx +131 -0
  83. package/metaData/components/form/api.md +124 -0
  84. package/metaData/components/form/doc.md +759 -0
  85. package/metaData/components/form/example/index.tsx +222 -0
  86. package/metaData/components/grid/api.md +28 -0
  87. package/metaData/components/grid/doc.md +167 -0
  88. package/metaData/components/grid/example/index.tsx +80 -0
  89. package/metaData/components/image/api.md +42 -0
  90. package/metaData/components/image/doc.md +117 -0
  91. package/metaData/components/image/example/index.tsx +76 -0
  92. package/metaData/components/index-list/api.md +39 -0
  93. package/metaData/components/index-list/doc.md +176 -0
  94. package/metaData/components/index-list/example/index.tsx +110 -0
  95. package/metaData/components/list/api.md +30 -0
  96. package/metaData/components/list/doc.md +317 -0
  97. package/metaData/components/list/example/index.tsx +218 -0
  98. package/metaData/components/loading/api.md +10 -0
  99. package/metaData/components/loading/doc.md +113 -0
  100. package/metaData/components/loading/example/index.tsx +47 -0
  101. package/metaData/components/navbar/api.md +26 -0
  102. package/metaData/components/navbar/doc.md +85 -0
  103. package/metaData/components/navbar/example/index.tsx +28 -0
  104. package/metaData/components/notice-bar/api.md +28 -0
  105. package/metaData/components/notice-bar/doc.md +154 -0
  106. package/metaData/components/notice-bar/example/index.tsx +107 -0
  107. package/metaData/components/notify/api.md +28 -0
  108. package/metaData/components/notify/doc.md +140 -0
  109. package/metaData/components/notify/example/index.tsx +89 -0
  110. package/metaData/components/number-keyboard/api.md +21 -0
  111. package/metaData/components/number-keyboard/doc.md +247 -0
  112. package/metaData/components/number-keyboard/example/index.tsx +201 -0
  113. package/metaData/components/pagination/api.md +18 -0
  114. package/metaData/components/pagination/doc.md +113 -0
  115. package/metaData/components/pagination/example/index.tsx +73 -0
  116. package/metaData/components/password-input/api.md +25 -0
  117. package/metaData/components/password-input/doc.md +126 -0
  118. package/metaData/components/password-input/example/index.tsx +124 -0
  119. package/metaData/components/picker/api.md +61 -0
  120. package/metaData/components/picker/doc.md +336 -0
  121. package/metaData/components/picker/example/index.tsx +232 -0
  122. package/metaData/components/popup/api.md +48 -0
  123. package/metaData/components/popup/doc.md +150 -0
  124. package/metaData/components/popup/example/index.tsx +214 -0
  125. package/metaData/components/progress/api.md +11 -0
  126. package/metaData/components/progress/doc.md +105 -0
  127. package/metaData/components/progress/example/index.tsx +58 -0
  128. package/metaData/components/pull-refresh/api.md +18 -0
  129. package/metaData/components/pull-refresh/doc.md +198 -0
  130. package/metaData/components/pull-refresh/example/index.tsx +153 -0
  131. package/metaData/components/radio/api.md +26 -0
  132. package/metaData/components/radio/doc.md +201 -0
  133. package/metaData/components/radio/example/index.tsx +103 -0
  134. package/metaData/components/rate/api.md +23 -0
  135. package/metaData/components/rate/doc.md +122 -0
  136. package/metaData/components/rate/example/index.tsx +36 -0
  137. package/metaData/components/rolling-text/api.md +23 -0
  138. package/metaData/components/rolling-text/doc.md +153 -0
  139. package/metaData/components/rolling-text/example/index.tsx +150 -0
  140. package/metaData/components/safe-area/api.md +8 -0
  141. package/metaData/components/safe-area/doc.md +30 -0
  142. package/metaData/components/safe-area/example/index.tsx +16 -0
  143. package/metaData/components/search/api.md +35 -0
  144. package/metaData/components/search/doc.md +185 -0
  145. package/metaData/components/search/example/index.tsx +101 -0
  146. package/metaData/components/share-sheet/api.md +48 -0
  147. package/metaData/components/share-sheet/doc.md +215 -0
  148. package/metaData/components/share-sheet/example/index.tsx +143 -0
  149. package/metaData/components/sidebar/api.md +28 -0
  150. package/metaData/components/sidebar/doc.md +122 -0
  151. package/metaData/components/sidebar/example/index.tsx +58 -0
  152. package/metaData/components/signature/api.md +19 -0
  153. package/metaData/components/signature/doc.md +115 -0
  154. package/metaData/components/signature/example/index.tsx +56 -0
  155. package/metaData/components/skeleton/api.md +45 -0
  156. package/metaData/components/skeleton/doc.md +131 -0
  157. package/metaData/components/skeleton/example/index.tsx +80 -0
  158. package/metaData/components/slider/api.md +28 -0
  159. package/metaData/components/slider/doc.md +151 -0
  160. package/metaData/components/slider/example/index.tsx +54 -0
  161. package/metaData/components/space/api.md +12 -0
  162. package/metaData/components/space/doc.md +125 -0
  163. package/metaData/components/space/example/index.tsx +75 -0
  164. package/metaData/components/stepper/api.md +37 -0
  165. package/metaData/components/stepper/doc.md +152 -0
  166. package/metaData/components/stepper/example/index.tsx +45 -0
  167. package/metaData/components/steps/api.md +9 -0
  168. package/metaData/components/steps/doc.md +143 -0
  169. package/metaData/components/steps/example/index.tsx +93 -0
  170. package/metaData/components/sticky/api.md +16 -0
  171. package/metaData/components/sticky/doc.md +87 -0
  172. package/metaData/components/sticky/example/index.tsx +62 -0
  173. package/metaData/components/swipe-cell/api.md +19 -0
  174. package/metaData/components/swipe-cell/doc.md +105 -0
  175. package/metaData/components/swipe-cell/example/index.tsx +62 -0
  176. package/metaData/components/swiper/api.md +22 -0
  177. package/metaData/components/swiper/doc.md +228 -0
  178. package/metaData/components/swiper/example/index.tsx +118 -0
  179. package/metaData/components/switch/api.md +17 -0
  180. package/metaData/components/switch/doc.md +110 -0
  181. package/metaData/components/switch/example/index.tsx +57 -0
  182. package/metaData/components/tabbar/api.md +27 -0
  183. package/metaData/components/tabbar/doc.md +160 -0
  184. package/metaData/components/tabbar/example/index.tsx +99 -0
  185. package/metaData/components/tabs/api.md +36 -0
  186. package/metaData/components/tabs/doc.md +307 -0
  187. package/metaData/components/tabs/example/index.tsx +231 -0
  188. package/metaData/components/tag/api.md +17 -0
  189. package/metaData/components/tag/doc.md +162 -0
  190. package/metaData/components/tag/example/index.tsx +84 -0
  191. package/metaData/components/text-ellipsis/api.md +26 -0
  192. package/metaData/components/text-ellipsis/doc.md +135 -0
  193. package/metaData/components/text-ellipsis/example/index.tsx +44 -0
  194. package/metaData/components/timeline/api.md +20 -0
  195. package/metaData/components/timeline/doc.md +210 -0
  196. package/metaData/components/timeline/example/index.tsx +145 -0
  197. package/metaData/components/toast/api.md +39 -0
  198. package/metaData/components/toast/doc.md +256 -0
  199. package/metaData/components/toast/example/index.tsx +136 -0
  200. package/metaData/components/tree-select/api.md +19 -0
  201. package/metaData/components/tree-select/doc.md +185 -0
  202. package/metaData/components/tree-select/example/index.tsx +112 -0
  203. package/metaData/components/uploader/api.md +32 -0
  204. package/metaData/components/uploader/doc.md +340 -0
  205. package/metaData/components/uploader/example/index.tsx +222 -0
  206. package/metaData/components/watermark/api.md +18 -0
  207. package/metaData/components/watermark/doc.md +97 -0
  208. package/metaData/components/watermark/example/index.tsx +62 -0
  209. package/metaData/components-index.json +274 -0
  210. package/package.json +56 -0
@@ -0,0 +1,501 @@
1
+ import { Calendar, Cell } from "@fjyueke/bify-core"
2
+ import { useState } from "react"
3
+ import Block from "../../../components/block"
4
+ import CustomWrapper from "../../../components/custom-wrapper"
5
+ import Page from "../../../components/page"
6
+ import "./index.scss"
7
+
8
+ const formatDate = (date: Date) => {
9
+ if (date) {
10
+ return `${date.getMonth() + 1}/${date.getDate()}`
11
+ }
12
+ }
13
+
14
+ const formatFullDate = (date: Date) => {
15
+ if (date) {
16
+ return `${date.getFullYear()}/${formatDate(date)}`
17
+ }
18
+ }
19
+
20
+ const formatMultiple = (dates: Date[]) => {
21
+ if (dates.length) {
22
+ return `选择了 ${dates.length} 个日期`
23
+ }
24
+ }
25
+
26
+ const formatRange = (dateRange: Date[]) => {
27
+ if (dateRange.length) {
28
+ const [start, end] = dateRange
29
+ return `${formatDate(start)} - ${formatDate(end)}`
30
+ }
31
+ }
32
+
33
+ const dayFormatter = (day: Calendar.DayObject) => {
34
+ if (!day.value) {
35
+ return day
36
+ }
37
+
38
+ const month = day.value.getMonth() + 1
39
+ const date = day.value.getDate()
40
+
41
+ if (month === 5) {
42
+ if (date === 1) {
43
+ day.top = "劳动节"
44
+ } else if (date === 4) {
45
+ day.top = "青年节"
46
+ } else if (date === 11) {
47
+ day.children = "今天"
48
+ }
49
+ }
50
+
51
+ if (day.type === "start") {
52
+ day.bottom = "入店"
53
+ } else if (day.type === "end") {
54
+ day.bottom = "离店"
55
+ } else if (day.type === "active") {
56
+ day.bottom = "入店/离店"
57
+ }
58
+
59
+ return day
60
+ }
61
+
62
+ function SingleCalendar() {
63
+ const [open, setOpen] = useState(false)
64
+ const [value, setValue] = useState<Date>()
65
+ const [formatValue, setFormatValue] = useState<string>()
66
+
67
+ return (
68
+ <>
69
+ <Cell
70
+ title="选择单个日期"
71
+ isLink
72
+ children={formatValue}
73
+ onClick={() => setOpen(true)}
74
+ />
75
+ <Calendar
76
+ type="single"
77
+ value={value}
78
+ poppable
79
+ showPopup={open}
80
+ onClose={setOpen}
81
+ onChange={setValue}
82
+ onConfirm={(newValue) => {
83
+ setOpen(false)
84
+ setFormatValue(formatFullDate(newValue))
85
+ }}
86
+ >
87
+ </Calendar>
88
+ </>
89
+ )
90
+ }
91
+
92
+ function MultipleCalendar() {
93
+ const [open, setOpen] = useState(false)
94
+ const [value, setValue] = useState<Date[]>()
95
+ const [formatValue, setFormatValue] = useState<string>()
96
+
97
+ return (
98
+ <>
99
+ <Cell
100
+ title="选择多个日期"
101
+ isLink
102
+ children={formatValue}
103
+ onClick={() => setOpen(true)}
104
+ />
105
+ <Calendar
106
+ type="multiple"
107
+ value={value}
108
+ poppable
109
+ showPopup={open}
110
+ onClose={setOpen}
111
+ onChange={setValue}
112
+ onConfirm={(newValue) => {
113
+ setFormatValue(formatMultiple(newValue))
114
+ setOpen(false)
115
+ }}
116
+ >
117
+ </Calendar>
118
+ </>
119
+ )
120
+ }
121
+
122
+ function RangeCalendar() {
123
+ const [open, setOpen] = useState(false)
124
+ const [value, setValue] = useState<Date[]>()
125
+ const [formatValue, setFormatValue] = useState<string>()
126
+
127
+ return (
128
+ <>
129
+ <Cell
130
+ title="选择日期区间"
131
+ isLink
132
+ children={formatValue}
133
+ onClick={() => setOpen(true)}
134
+ />
135
+ <Calendar
136
+ type="range"
137
+ value={value}
138
+ onChange={setValue}
139
+ poppable
140
+ showPopup={open}
141
+ onClose={setOpen}
142
+ onConfirm={(newValue) => {
143
+ setFormatValue(formatRange(newValue))
144
+ setOpen(false)
145
+ }}
146
+ >
147
+ </Calendar>
148
+ </>
149
+ )
150
+ }
151
+
152
+ function SingleQuicklyCalendar() {
153
+ const [open, setOpen] = useState(false)
154
+ const [value, setValue] = useState<Date>()
155
+ const [formatValue, setFormatValue] = useState<string>()
156
+
157
+ return (
158
+ <>
159
+ <Cell
160
+ title="选择单个日期"
161
+ isLink
162
+ children={formatValue}
163
+ onClick={() => setOpen(true)}
164
+ />
165
+ <Calendar
166
+ type="single"
167
+ value={value}
168
+ onChange={setValue}
169
+ poppable
170
+ showPopup={open}
171
+ showConfirm={false}
172
+ onClose={setOpen}
173
+ onConfirm={(newValue) => {
174
+ setFormatValue(formatFullDate(newValue))
175
+ setOpen(false)
176
+ }}
177
+ />
178
+ </>
179
+ )
180
+ }
181
+
182
+ function RangeQuicklyCalendar() {
183
+ const [open, setOpen] = useState(false)
184
+ const [value, setValue] = useState<[]>()
185
+ const [formatValue, setFormatValue] = useState<string>()
186
+
187
+ return (
188
+ <>
189
+ <Cell
190
+ title="选择日期区间"
191
+ isLink
192
+ children={formatValue}
193
+ onClick={() => setOpen(true)}
194
+ />
195
+ <Calendar
196
+ type="range"
197
+ value={value}
198
+ onChange={setValue}
199
+ poppable
200
+ showPopup={open}
201
+ onClose={setOpen}
202
+ showConfirm={false}
203
+ onConfirm={(newValue) => {
204
+ setFormatValue(formatRange(newValue))
205
+ setOpen(false)
206
+ }}
207
+ />
208
+ </>
209
+ )
210
+ }
211
+
212
+ function CustomColorCalendar() {
213
+ const [open, setOpen] = useState(false)
214
+ const [value, setValue] = useState<[]>()
215
+ const [formatValue, setFormatValue] = useState<string>()
216
+
217
+ return (
218
+ <>
219
+ <Cell
220
+ title="自定义颜色"
221
+ isLink
222
+ children={formatValue}
223
+ onClick={() => setOpen(true)}
224
+ />
225
+ <Calendar
226
+ style={{
227
+ // @ts-ignore
228
+ "--calendar-active-color": "red",
229
+ }}
230
+ type="single"
231
+ value={value}
232
+ onChange={setValue}
233
+ poppable
234
+ showPopup={open}
235
+ onClose={setOpen}
236
+ onConfirm={(newValue) => {
237
+ setFormatValue(formatFullDate(newValue))
238
+ setOpen(false)
239
+ }}
240
+ />
241
+ </>
242
+ )
243
+ }
244
+
245
+ function CustomRangeCalendar() {
246
+ const [minDate] = useState(new Date(2010, 0, 1))
247
+ const [maxDate] = useState(new Date(2010, 0, 31))
248
+ const [open, setOpen] = useState(false)
249
+ const [value, setValue] = useState<Date[]>()
250
+ const [formatValue, setFormatValue] = useState<string>()
251
+
252
+ return (
253
+ <>
254
+ <Cell
255
+ title="自定义日期范围"
256
+ isLink
257
+ children={formatValue}
258
+ onClick={() => setOpen(true)}
259
+ />
260
+ <Calendar
261
+ type="range"
262
+ min={minDate}
263
+ max={maxDate}
264
+ value={value}
265
+ onChange={setValue}
266
+ poppable
267
+ showPopup={open}
268
+ onClose={setOpen}
269
+ onConfirm={(newValue) => {
270
+ setFormatValue(formatRange(newValue))
271
+ setOpen(false)
272
+ }}
273
+ >
274
+ </Calendar>
275
+ </>
276
+ )
277
+ }
278
+
279
+ function CustomConfirmCalendar() {
280
+ const [open, setOpen] = useState(false)
281
+ const [value, setValue] = useState<Date[]>()
282
+ const [formatValue, setFormatValue] = useState<string>()
283
+
284
+ return (
285
+ <>
286
+ <Cell
287
+ title="自定义按钮"
288
+ isLink
289
+ children={formatValue}
290
+ onClick={() => setOpen(true)}
291
+ />
292
+ <Calendar
293
+ type="range"
294
+ value={value}
295
+ onChange={(newValue) => {
296
+ setValue(newValue)
297
+ }}
298
+ poppable
299
+ showPopup={open}
300
+ confirmDisabledText="请选择结束时间"
301
+ onClose={setOpen}
302
+ onConfirm={(newValue) => {
303
+ setFormatValue(formatRange(newValue))
304
+ setOpen(false)
305
+ }}
306
+ >
307
+ </Calendar>
308
+ </>
309
+ )
310
+ }
311
+
312
+ function CustomDayCalendar() {
313
+ const [open, setOpen] = useState(false)
314
+ const [minDate] = useState(new Date(2010, 4, 1))
315
+ const [maxDate] = useState(new Date(2010, 4, 31))
316
+ const [value, setValue] = useState<Date[]>()
317
+ const [formatValue, setFormatValue] = useState<string>()
318
+
319
+ return (
320
+ <>
321
+ <Cell
322
+ title="自定义日期文案"
323
+ isLink
324
+ children={formatValue}
325
+ onClick={() => setOpen(true)}
326
+ />
327
+ <Calendar
328
+ type="range"
329
+ min={minDate}
330
+ max={maxDate}
331
+ formatter={dayFormatter}
332
+ value={value}
333
+ onChange={setValue}
334
+ poppable
335
+ showPopup={open}
336
+ onClose={setOpen}
337
+ onConfirm={(newValue) => {
338
+ setFormatValue(formatRange(newValue))
339
+ setOpen(false)
340
+ }}
341
+ >
342
+ </Calendar>
343
+ </>
344
+ )
345
+ }
346
+
347
+ function CustomPositionCalendar() {
348
+ const [open, setOpen] = useState(false)
349
+ const [value, setValue] = useState<Date>()
350
+ const [formatValue, setFormatValue] = useState<string>()
351
+
352
+ return (
353
+ <>
354
+ <Cell
355
+ title="自定义弹出位置"
356
+ isLink
357
+ children={formatValue}
358
+ onClick={() => setOpen(true)}
359
+ />
360
+ <Calendar
361
+ popupPlacement="right"
362
+ type="single"
363
+ value={value}
364
+ onChange={setValue}
365
+ poppable
366
+ showPopup={open}
367
+ onClose={setOpen}
368
+ onConfirm={(newValue) => {
369
+ setFormatValue(formatFullDate(newValue))
370
+ setOpen(false)
371
+ }}
372
+ >
373
+ </Calendar>
374
+ </>
375
+ )
376
+ }
377
+
378
+ function CustomFirstDayOfWeekCalendar() {
379
+ const [open, setOpen] = useState(false)
380
+ const [value, setValue] = useState<Date>()
381
+ const [formatValue, setFormatValue] = useState<string>()
382
+
383
+ return (
384
+ <>
385
+ <Cell
386
+ title="自定义周起始日"
387
+ isLink
388
+ children={formatValue}
389
+ onClick={() => setOpen(true)}
390
+ />
391
+ <Calendar
392
+ popupCloseIcon={false}
393
+ popupRounded={false}
394
+ type="single"
395
+ value={value}
396
+ onChange={setValue}
397
+ poppable
398
+ showPopup={open}
399
+ onClose={setOpen}
400
+ firstDayOfWeek={1}
401
+ onConfirm={(newValue) => {
402
+ setFormatValue(formatFullDate(newValue))
403
+ setOpen(false)
404
+ }}
405
+ >
406
+ </Calendar>
407
+ </>
408
+ )
409
+ }
410
+
411
+
412
+ function CustomWithoutTitleCalendar() {
413
+ const [minDate] = useState(new Date(2025, 6, 1))
414
+ const [maxDate] = useState(new Date(2025, 6, 30))
415
+ const [value, setValue] = useState<Date>()
416
+ return (
417
+ <Calendar
418
+ style={{ height: "500px" }}
419
+ showTitle={false}
420
+ showSubtitle={false}
421
+ min={minDate}
422
+ max={maxDate}
423
+ value={value}
424
+ onChange={setValue}
425
+ />
426
+ )
427
+ }
428
+
429
+ function TiledCalendar() {
430
+ const [minDate] = useState(new Date(2012, 1, 10))
431
+ const [maxDate] = useState(new Date(2012, 10, 20))
432
+ const [value, setValue] = useState<Date>()
433
+ return (
434
+ <Calendar
435
+ style={{ height: "500px" }}
436
+ title="日历"
437
+ min={minDate}
438
+ max={maxDate}
439
+ value={value}
440
+ onChange={setValue}
441
+ />
442
+ )
443
+ }
444
+
445
+ export default function CalendarDemo() {
446
+ return (
447
+ <Page title="Calendar 日历" className="calendar-demo">
448
+ <Block title="基础用法">
449
+ <Cell.Group clickable inset>
450
+ <CustomWrapper>
451
+ <SingleCalendar />
452
+ </CustomWrapper>
453
+ <CustomWrapper>
454
+ <MultipleCalendar />
455
+ </CustomWrapper>
456
+ <CustomWrapper>
457
+ <RangeCalendar />
458
+ </CustomWrapper>
459
+ </Cell.Group>
460
+ </Block>
461
+ <Block title="快捷选择">
462
+ <Cell.Group clickable inset>
463
+ <CustomWrapper>
464
+ <SingleQuicklyCalendar />
465
+ </CustomWrapper>
466
+ <CustomWrapper>
467
+ <RangeQuicklyCalendar />
468
+ </CustomWrapper>
469
+ </Cell.Group>
470
+ </Block>
471
+ <Block title="自定义日历">
472
+ <Cell.Group clickable inset>
473
+ <CustomWrapper>
474
+ <CustomColorCalendar />
475
+ </CustomWrapper>
476
+ <CustomWrapper>
477
+ <CustomRangeCalendar />
478
+ </CustomWrapper>
479
+ <CustomWrapper>
480
+ <CustomConfirmCalendar />
481
+ </CustomWrapper>
482
+ <CustomWrapper>
483
+ <CustomDayCalendar />
484
+ </CustomWrapper>
485
+ <CustomWrapper>
486
+ <CustomPositionCalendar />
487
+ </CustomWrapper>
488
+ <CustomWrapper>
489
+ <CustomFirstDayOfWeekCalendar />
490
+ </CustomWrapper>
491
+ </Cell.Group>
492
+ </Block>
493
+ <Block variant="card" title="平铺展示">
494
+ <TiledCalendar />
495
+ </Block>
496
+ <Block variant="card" title="隐藏标题">
497
+ <CustomWithoutTitleCalendar />
498
+ </Block>
499
+ </Page>
500
+ )
501
+ }
@@ -0,0 +1,55 @@
1
+ ## API
2
+
3
+ ### Cascader Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ | ----------------------------- | --------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------- |
7
+ | value | 选中项的值 | _string[]_ | - |
8
+ | placeholder | 未选中时的提示文案 | _ReactNode_ | `请选择` |
9
+ | title | 顶部标题 | _ReactNode_ | - |
10
+ | swipeable | 是否开启手势左右滑动切换 | _boolean_ | `false` |
11
+ | animated | 是否开启动过渡动画 | _boolean_ | `true` |
12
+ | options <br>`v0.1.1-alpha.4` | 可选项数据源 | _CascaderDataOption_ | `[]` |
13
+ | loadData <br>`v0.1.1-alpha.4` | 动态加载数据 | _(values: string[], options: CascaderEventOption[]) => Promise<any[]>_ | `_` |
14
+ | fieldNames `v0.1.1-alpha.4` | 自定义 options 结构中的字段 | _CascaderFieldNames_ | `{ label: 'label', value: 'value', children: 'children' }` |
15
+ | ellipsis <br>`v0.5.0-alpha.0` | 是否省略过长的标题文字 | _boolean_ | `true` |
16
+
17
+ ### Cascader Events
18
+
19
+ | 事件 | 说明 | 回调参数 |
20
+ | ---------- | ---------------------- | ----------------------------------------------- |
21
+ | onSelect | 选中项变化时触发 | _values: any[], options: CascaderEventOption[]_ |
22
+ | onChange | 全部选项选择完成后触发 | _values: any[], options: CascaderEventOption[]_ |
23
+ | onTabClick | 点击标签时触发 | _event: Tabs.TabEvent_ |
24
+
25
+ ### Cascader.Header Props
26
+
27
+ | 参数 | 说明 | 类型 | 默认值 |
28
+ | -------- | -------- | ---------- | ------ |
29
+ | children | 头部内容 | _ReactNoe_ | - |
30
+
31
+ ### Cascader.Tab Props
32
+
33
+ | 参数 | 说明 | 类型 | 默认值 |
34
+ | -------- | ---------- | ---------- | ------ |
35
+ | children | 子选项列表 | _ReactNoe_ | - |
36
+
37
+ ### Cascader.Option Props
38
+
39
+ | 参数 | 说明 | 类型 | 默认值 |
40
+ | -------- | -------------------- | ------------------ | ------- |
41
+ | children | 选项内容(必填) | _ReactNoe_ | - |
42
+ | value | 选项对应的值(必填) | _string \| number_ | - |
43
+ | disabled | 是否禁用选项 | _boolean_ | `false` |
44
+
45
+ ### 类型定义
46
+
47
+ 通过`@fjyueke/bify-core/cascader`导入类型
48
+
49
+ ```tsx
50
+ import type {
51
+ CascaderDataOption,
52
+ CascaderEventOption,
53
+ CascaderFieldNames,
54
+ } from "@fjyueke/bify-core/cascader"
55
+ ```