@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,210 @@
1
+ # Timeline 时间轴
2
+
3
+ ### 介绍
4
+
5
+ 按时间顺序来展示了一系列的事件。
6
+
7
+ ### 引入
8
+
9
+ ```ts
10
+ import { Timeline } from "@fjyueke/bify-core"
11
+ ```
12
+
13
+ ## 代码演示
14
+
15
+ ### 基础用法
16
+
17
+ 一个基本的时间轴,显示事件列表。
18
+
19
+ ```tsx
20
+ function RightTimeline() {
21
+ return (
22
+ <Timeline position="right">
23
+ <Timeline.Item>Eat</Timeline.Item>
24
+ <Timeline.Item>Code</Timeline.Item>
25
+ <Timeline.Item>Sleep</Timeline.Item>
26
+ </Timeline>
27
+ )
28
+ }
29
+ ```
30
+
31
+ ### 左侧用法
32
+
33
+ 时间轴的主要内容可以被放置在相对时间轴的左侧。
34
+
35
+ ```tsx
36
+ function LeftTimeline() {
37
+ return (
38
+ <Timeline position="left">
39
+ <Timeline.Item>Eat</Timeline.Item>
40
+ <Timeline.Item>Code</Timeline.Item>
41
+ <Timeline.Item>Sleep</Timeline.Item>
42
+ </Timeline>
43
+ )
44
+ }
45
+ ```
46
+
47
+ ### 交替用法
48
+
49
+ 时间轴可以显示在事件的两侧。
50
+
51
+ ```tsx
52
+ function AlternateTimeline() {
53
+ return (
54
+ <Timeline position="alternate">
55
+ <Timeline.Item>Eat</Timeline.Item>
56
+ <Timeline.Item>Code</Timeline.Item>
57
+ <Timeline.Item>Sleep</Timeline.Item>
58
+ <Timeline.Item>Repeat</Timeline.Item>
59
+ </Timeline>
60
+ )
61
+ }
62
+ ```
63
+
64
+ ### 描边用法
65
+
66
+ 可以自定义圆点的变种和颜色。
67
+
68
+ ```tsx
69
+ function OutlinedTimeline() {
70
+ return (
71
+ <Timeline position="alternate">
72
+ <Timeline.Item dot={{ variant: "outlined" }}>Eat</Timeline.Item>
73
+ <Timeline.Item dot={{ variant: "outlined", color: "primary" }}>Code</Timeline.Item>
74
+ <Timeline.Item dot={{ variant: "outlined", color: "danger" }}>Sleep</Timeline.Item>
75
+ <Timeline.Item dot={{ variant: "outlined" }}>Repeat</Timeline.Item>
76
+ </Timeline>
77
+ )
78
+ }
79
+ ```
80
+
81
+ ### 自定义用法
82
+
83
+ 可以自定义整个时间轴。
84
+
85
+ ```tsx
86
+ function CustomTimeline() {
87
+ return (
88
+ <Timeline>
89
+ <Timeline.Item>
90
+ <Timeline.Content align="center">9:30 am</Timeline.Content>
91
+ <Timeline.Separator>
92
+ <Timeline.Connector />
93
+ <Timeline.Dot>
94
+ <FireOutlined size="24" />
95
+ </Timeline.Dot>
96
+ <Timeline.Connector />
97
+ </Timeline.Separator>
98
+ <Timeline.Content direction="column" align="start">
99
+ <View className="timeline-title">Eat</View>
100
+ <View>Because you need strength</View>
101
+ </Timeline.Content>
102
+ </Timeline.Item>
103
+ <Timeline.Item>
104
+ <Timeline.Content direction="column" align="end">
105
+ <View className="timeline-title">Code</View>
106
+ <View>awesome</View>
107
+ </Timeline.Content>
108
+ <Timeline.Separator>
109
+ <Timeline.Connector />
110
+ <Timeline.Dot color="primary">
111
+ <StarOutlined size="24" />
112
+ </Timeline.Dot>
113
+ <Timeline.Connector />
114
+ </Timeline.Separator>
115
+ <Timeline.Content align="center">10:00 am</Timeline.Content>
116
+ </Timeline.Item>
117
+ <Timeline.Item>
118
+ <Timeline.Content />
119
+ <Timeline.Separator>
120
+ <Timeline.Connector />
121
+ <Timeline.Dot variant="outlined" color="primary">
122
+ <GemOutlined size="24" />
123
+ </Timeline.Dot>
124
+ <Timeline.Connector />
125
+ </Timeline.Separator>
126
+ <Timeline.Content direction="column" align="start">
127
+ <View className="timeline-title">Sleep</View>
128
+ <View>Because you need rest</View>
129
+ </Timeline.Content>
130
+ </Timeline.Item>
131
+ <Timeline.Item>
132
+ <Timeline.Content direction="column" align="end">
133
+ <View className="timeline-title">Repeat</View>
134
+ <View>you love!</View>
135
+ </Timeline.Content>
136
+ <Timeline.Separator>
137
+ <Timeline.Connector />
138
+ <Timeline.Dot color="danger">
139
+ <SmileOutlined size="24" />
140
+ </Timeline.Dot>
141
+ <Timeline.Connector />
142
+ </Timeline.Separator>
143
+ </Timeline.Item>
144
+ </Timeline>
145
+ )
146
+ }
147
+ ```
148
+
149
+ ```scss
150
+ .timeline-title {
151
+ font-size: 24px * 2;
152
+ }
153
+ ```
154
+
155
+ ## API
156
+
157
+ ### Timeline Props
158
+
159
+ | 参数 | 说明 | 类型 | 默认值 |
160
+ | --- | --- | --- | --- |
161
+ | position | 位置布局,可选值为 `left` `right` `alternate` `alternate-reverse` | _string_ | - |
162
+
163
+ ### Timeline.Item Props
164
+
165
+ | 参数 | 说明 | 类型 | 默认值 |
166
+ | --- | --- | --- | --- |
167
+ | dot | 圆点 | _ReactNode \| TimelineDotProps_ | - |
168
+
169
+ ### Timeline.Dot Props
170
+
171
+ | 参数 | 说明 | 类型 | 默认值 |
172
+ | --- | --- | --- | --- |
173
+ | variant | 圆点变体,可选值为 `outlined` | _string_ | `filled` |
174
+ | color | 圆点颜色,可选值为 `primary` `info` `success` `warning` `danger` | _string_ | `default` |
175
+
176
+ ## 主题定制
177
+
178
+ ### 样式变量
179
+
180
+ 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
181
+
182
+ | 名称 | 默认值 | 描述 |
183
+ |------------------------------------------|------------------------------------------|-----|
184
+ | --timeline-color | _var(--white)_ | - |
185
+ | --timeline-background-color | _var(--gray-5)_ | - |
186
+ | --timeline-border-color | _var(--white)_ | - |
187
+ | --timeline-border-width | _2px * $hd_ | - |
188
+ | --timeline-font-weight | _var(--font-weight-bold)_ | - |
189
+ | --timeline-font-size | _var(--font-size-md)_ | - |
190
+ | --timeline-min-height | _70px * $hd_ | - |
191
+ | --timeline-content-padding | _0 16px * $hd_ | - |
192
+ | --timeline-connector-border-color | _var(--gray-5)_ | - |
193
+ | --timeline-connector-border-width | _2PX_ | - |
194
+ | --timeline-connector-border-style | _solid_ | - |
195
+ | --timeline-top-connector-border-color | _var(--timeline-connector-border-color)_ | - |
196
+ | --timeline-top-connector-border-width | _var(--timeline-connector-border-width)_ | - |
197
+ | --timeline-top-connector-border-style | _var(--timeline-connector-border-style)_ | - |
198
+ | --timeline-bottom-connector-border-color | _var(--timeline-connector-border-color)_ | - |
199
+ | --timeline-bottom-connector-border-width | _var(--timeline-connector-border-width)_ | - |
200
+ | --timeline-bottom-connector-border-style | _var(--timeline-connector-border-style)_ | - |
201
+ | --timeline-dot-size | _12px * $hd_ | - |
202
+ | --timeline-dot-margin | _6px * $hd 0_ | - |
203
+ | --timeline-dot-padding | _4PX_ | - |
204
+ | --timeline-dot-border-width | _2PX_ | - |
205
+ | --timeline-dot-default-color | _var(--gray-5)_ | - |
206
+ | --timeline-dot-primary-color | _var(--primary-color)_ | - |
207
+ | --timeline-dot-info-color | _var(--info-color)_ | - |
208
+ | --timeline-dot-success-color | _var(--success-color)_ | - |
209
+ | --timeline-dot-warning-color | _var(--warning-color)_ | - |
210
+ | --timeline-dot-danger-color | _var(--danger-color)_ | - |
@@ -0,0 +1,145 @@
1
+ import { Timeline } from "@fjyueke/bify-core"
2
+ import { FireOutlined, GemOutlined, SmileOutlined, StarOutlined } from "@fjyueke/bify-icons"
3
+ import { View } from "@tarojs/components"
4
+ import Block from "../../../components/block"
5
+ import Page from "../../../components/page"
6
+ import { demoPrefixClassname } from "../../../styles/prefix"
7
+ import "./index.scss"
8
+
9
+ function RightTimeline() {
10
+ return (
11
+ <Timeline position="right">
12
+ <Timeline.Item>Eat</Timeline.Item>
13
+ <Timeline.Item>Code</Timeline.Item>
14
+ <Timeline.Item>Sleep</Timeline.Item>
15
+ </Timeline>
16
+ )
17
+ }
18
+
19
+ function LeftTimeline() {
20
+ return (
21
+ <Timeline position="left">
22
+ <Timeline.Item>Eat</Timeline.Item>
23
+ <Timeline.Item>Code</Timeline.Item>
24
+ <Timeline.Item>Sleep</Timeline.Item>
25
+ </Timeline>
26
+ )
27
+ }
28
+
29
+ function AlternateTimeline() {
30
+ return (
31
+ <Timeline position="alternate">
32
+ <Timeline.Item>Eat</Timeline.Item>
33
+ <Timeline.Item>Code</Timeline.Item>
34
+ <Timeline.Item>Sleep</Timeline.Item>
35
+ <Timeline.Item>Repeat</Timeline.Item>
36
+ </Timeline>
37
+ )
38
+ }
39
+
40
+ function OutlinedTimeline() {
41
+ return (
42
+ <Timeline position="alternate">
43
+ <Timeline.Item dot={{ variant: "outlined" }}>Eat</Timeline.Item>
44
+ <Timeline.Item dot={{ variant: "outlined", color: "primary" }}>Code</Timeline.Item>
45
+ <Timeline.Item dot={{ variant: "outlined", color: "danger" }}>Sleep</Timeline.Item>
46
+ <Timeline.Item dot={{ variant: "outlined" }}>Repeat</Timeline.Item>
47
+ </Timeline>
48
+ )
49
+ }
50
+
51
+ function CustomTimeline() {
52
+ return (
53
+ <Timeline>
54
+ <Timeline.Item>
55
+ <Timeline.Content align="center">9:30 am</Timeline.Content>
56
+ <Timeline.Separator>
57
+ <Timeline.Connector />
58
+ <Timeline.Dot>
59
+ <FireOutlined size="24" />
60
+ </Timeline.Dot>
61
+ <Timeline.Connector />
62
+ </Timeline.Separator>
63
+ <Timeline.Content direction="column" align="start">
64
+ <View className="timeline-title">Eat</View>
65
+ <View>Because you need strength</View>
66
+ </Timeline.Content>
67
+ </Timeline.Item>
68
+ <Timeline.Item>
69
+ <Timeline.Content direction="column" align="end">
70
+ <View className="timeline-title">Code</View>
71
+ <View>awesome</View>
72
+ </Timeline.Content>
73
+ <Timeline.Separator>
74
+ <Timeline.Connector />
75
+ <Timeline.Dot color="primary">
76
+ <StarOutlined size="24" />
77
+ </Timeline.Dot>
78
+ <Timeline.Connector />
79
+ </Timeline.Separator>
80
+ <Timeline.Content align="center">10:00 am</Timeline.Content>
81
+ </Timeline.Item>
82
+ <Timeline.Item>
83
+ <Timeline.Content />
84
+ <Timeline.Separator>
85
+ <Timeline.Connector />
86
+ <Timeline.Dot variant="outlined" color="primary">
87
+ <GemOutlined size="24" />
88
+ </Timeline.Dot>
89
+ <Timeline.Connector />
90
+ </Timeline.Separator>
91
+ <Timeline.Content direction="column" align="start">
92
+ <View className="timeline-title">Sleep</View>
93
+ <View>Because you need rest</View>
94
+ </Timeline.Content>
95
+ </Timeline.Item>
96
+ <Timeline.Item>
97
+ <Timeline.Content direction="column" align="end">
98
+ <View className="timeline-title">Repeat</View>
99
+ <View>you love!</View>
100
+ </Timeline.Content>
101
+ <Timeline.Separator>
102
+ <Timeline.Connector />
103
+ <Timeline.Dot color="danger">
104
+ <SmileOutlined size="24" />
105
+ </Timeline.Dot>
106
+ <Timeline.Connector />
107
+ </Timeline.Separator>
108
+ </Timeline.Item>
109
+ </Timeline>
110
+ )
111
+ }
112
+
113
+ export default function TimelineDemo() {
114
+ return (
115
+ <Page title="Timeline 时间轴" className="timeline-demo">
116
+ <Block title="基础用法">
117
+ <View style={{ width: "calc(50% - 12px)" }} />
118
+ <View className={demoPrefixClassname("timeline-block")}>
119
+ <RightTimeline />
120
+ </View>
121
+ </Block>
122
+ <Block title="左边用法">
123
+ <View className={demoPrefixClassname("timeline-block")}>
124
+ <LeftTimeline />
125
+ </View>
126
+ <View className={demoPrefixClassname("timeline-block")} />
127
+ </Block>
128
+ <Block title="交替用法">
129
+ <View style={{ width: "calc(100% - 12px)" }}>
130
+ <AlternateTimeline />
131
+ </View>
132
+ </Block>
133
+ <Block title="描边用法">
134
+ <View style={{ width: "calc(100% - 12px)" }}>
135
+ <OutlinedTimeline />
136
+ </View>
137
+ </Block>
138
+ <Block title="自定义用法">
139
+ <View style={{ width: "calc(100% - 12px)" }}>
140
+ <CustomTimeline />
141
+ </View>
142
+ </Block>
143
+ </Page>
144
+ )
145
+ }
@@ -0,0 +1,39 @@
1
+ ## API
2
+
3
+ ### Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ | ----------------------------- | ---------------------------------------------------------- | -------------------------- | -------- |
7
+ | defaultOpen | 默认是否显示弹出层 | _boolean_ | `false` |
8
+ | open | 是否显示弹出层 | _boolean_ | `false` |
9
+ | type | 提示类型,可选值为 `loading` `success`<br>`fail` `html` | _string_ | `text` |
10
+ | icon | 自定义图标,支持传入[图标名称](/components/icon)或图片链接 | _ReactNode_ | - |
11
+ | position | 弹出位置,可选值为 `top` `bottom` | _string_ | `center` |
12
+ | duration <br>`v0.4.0-alpha.0` | 动画时长,单位毫秒,值为 0 时,toast 不会消失 | _number \| string_ | `3000` |
13
+ | backdrop | 是否显示遮罩层 | _boolean_ | `false` |
14
+ | children | 文本内容 | _ReactNode_ | - |
15
+ | onClose | 关闭时的回调函数 | _(open : boolean) => void_ | - |
16
+
17
+ ### Options
18
+
19
+ | 参数 | 说明 | 类型 | 默认值 |
20
+ | ----------------------------- | ----------------------------------------------------------------------- | -------------------------- | -------- |
21
+ | selector | 自定义节点选择器 | _string_ | `toast` |
22
+ | type | 提示类型,可选值为 `loading` `success`<br>`fail` `html` | _string_ | `text` |
23
+ | icon | 自定义图标,支持传入[图标](/components/icon)或[图片](/components/image) | _ReactNode_ | - |
24
+ | position | 弹出位置,可选值为 `top` `bottom` | _string_ | `center` |
25
+ | duration <br>`v0.4.0-alpha.0` | 动画时长,单位毫秒,值为 0 时,toast 不会消失 | _number \| string_ | `3000` |
26
+ | backdrop | 是否显示遮罩层 | _boolean_ | `false` |
27
+ | message | 文本内容 | _ReactNode_ | - |
28
+ | onClose | 关闭时的回调函数 | _(open : boolean) => void_ | - |
29
+
30
+ ### 方法
31
+
32
+ | 方法名 | 参数 | 返回值 | 介绍 |
33
+ | ----------------- | -------------------- | ------ | ---------------------------------------------- |
34
+ | Toast.open | _options \| message_ | _string \| undefined_ | 展示提示,返回 Toast 实例标识符 |
35
+ | Toast.loading | _options \| message_ | _string \| undefined_ | 展示加载提示,返回 Toast 实例标识符 |
36
+ | Toast.success | _options \| message_ | _string \| undefined_ | 展示成功提示,返回 Toast 实例标识符 |
37
+ | Toast.fail | _options \| message_ | _string \| undefined_ | 展示失败提示,返回 Toast 实例标识符 |
38
+ | Toast.close | _selector? \| id?_ | - | 关闭提示,不传参时关闭所有提示,传入实例标识符时关闭指定提示 |
39
+ | Toast.allowMultiple `v0.7.0` | _boolean_ | - | 允许同时存在多个 Toast 提示,默认为 `false` |
@@ -0,0 +1,256 @@
1
+ # Toast 轻提示
2
+
3
+ ### 介绍
4
+
5
+ 在页面中间弹出黑色半透明提示,用于消息通知、加载提示、操作结果提示等场景。
6
+
7
+ ### 函数调用
8
+
9
+ 版本 >= `v0.6.0-alpha.0`可以直接调用。低版本需要手动在页面(page)里挂载一个 Toast 组件并指定 id 为 `toast`。
10
+
11
+ ```tsx
12
+ import { Cell, Toast } from "@fjyueke/bify-core"
13
+
14
+ function ImperativeToast() {
15
+ return (
16
+ <>
17
+ {/* <Toast id="toast" /> */}
18
+ <Cell title="函数调用" clickable isLink onClick={() => Toast.open("文字提示")} />
19
+ </>
20
+ )
21
+ }
22
+ ```
23
+
24
+ ### 组件调用
25
+
26
+ ```tsx
27
+ import { Cell, Toast } from "@fjyueke/bify-core"
28
+
29
+ function BasicToast() {
30
+ const [open, setOpen] = useState(false)
31
+
32
+ return (
33
+ <>
34
+ <Toast open={open} onClose={setOpen}>
35
+ 文字提示
36
+ </Toast>
37
+ <Cell title="基础用法" clickable onClick={() => setOpen(true)} />
38
+ </>
39
+ )
40
+ }
41
+ ```
42
+
43
+ ## 代码演示
44
+
45
+ ### 加载提示
46
+
47
+ 使用 `type="loading"` 方法展示加载提示。
48
+
49
+ ```ts
50
+ Toast.open({ type: "loading", message: "加载中..." })}
51
+ ```
52
+
53
+ ```tsx
54
+ <Toast open type="loading">
55
+ 加载中...
56
+ </Toast>
57
+ ```
58
+
59
+ ### 成功/失败提示
60
+
61
+ 使用 `type="success"` 展示成功提示,使用 `type="fail"` 展示失败提示。
62
+
63
+ ```ts
64
+ Toast.open({ type: "success", message: "成功文案" })
65
+ Toast.open({ type: "fail", message: "失败文案" })
66
+ ```
67
+
68
+ ```tsx
69
+ <Toast open type="success">成功文案</Toast>
70
+ <Toast open type="fail">失败文案</Toast>
71
+ ```
72
+
73
+ ### 自定义图标
74
+
75
+ 通过 `icon` 选项可以自定义图标,支持传入[图标名称](/components/icon)或图片链接。
76
+
77
+ ```ts
78
+ Toast.open({ message: "自定义图标", icon: <LikeOutlined /> })
79
+ Toast.open({
80
+ message: "自定义图片",
81
+ icon: (
82
+ <Image
83
+ style={{
84
+ width: "40px",
85
+ height: "40px",
86
+ }}
87
+ src="https://img01.yzcdn.cn/vant/logo.png"
88
+ />
89
+ ),
90
+ })
91
+ ```
92
+
93
+ ```tsx
94
+ <Toast open icon={<LikeOutlined />}>自定义图标</Toast>
95
+ <Toast
96
+ open
97
+ icon={<Image style={{ width: "1em", height: "1em" }}
98
+ src="https://img01.yzcdn.cn/vant/logo.png" />}
99
+ >
100
+ 自定义图片
101
+ </Toast>
102
+ <Toast open icon={<Loading />}>加载中...</Toast>
103
+ ```
104
+
105
+ ### 自定义位置
106
+
107
+ Toast 默认渲染在屏幕正中位置,通过 `position` 属性可以控制 Toast 展示的位置。
108
+
109
+ ```ts
110
+ Toast.open({
111
+ position: "top",
112
+ message: "顶部展示",
113
+ })
114
+ Toast.open({
115
+ position: "bottom",
116
+ message: "顶部展示",
117
+ })
118
+ ```
119
+
120
+ ```tsx
121
+ <Toast open position="top">顶部展示</Toast>
122
+ <Toast open position="bottom">底部展示</Toast>
123
+ ```
124
+
125
+ ### 多例模式
126
+
127
+ Toast 默认采用单例模式,即同一时间只会存在一个 Toast。通过调用 `Toast.allowMultiple(true)` 可以在页面中同时存在多个 Toast 实例。
128
+
129
+ ```tsx
130
+ import { Cell, Toast } from "@fjyueke/bify-core"
131
+
132
+ function MultipleToast() {
133
+ return (
134
+ <>
135
+ <Cell
136
+ title="允许多个实例"
137
+ clickable
138
+ isLink
139
+ onClick={() => {
140
+ Toast.allowMultiple(true)
141
+ // 同时展示多个 Toast
142
+ Toast.success("成功提示")
143
+ setTimeout(() => {
144
+ Toast.fail("失败提示")
145
+ }, 1000)
146
+ }}
147
+ />
148
+ </>
149
+ )
150
+ }
151
+ ```
152
+
153
+ ### 关闭特定 Toast 实例
154
+
155
+ 在多例模式下,`Toast.open()`、`Toast.success()`、`Toast.fail()` 和 `Toast.loading()` 方法会返回一个唯一标识符,可以使用该标识符来关闭特定的 Toast 实例。
156
+
157
+ ```tsx
158
+ import { Cell, Toast } from "@fjyueke/bify-core"
159
+
160
+ function MultipleToastClose() {
161
+ return (
162
+ <>
163
+ <Cell
164
+ title="关闭特定 Toast 实例"
165
+ clickable
166
+ isLink
167
+ onClick={() => {
168
+ // 启用多例模式
169
+ Toast.allowMultiple(true)
170
+
171
+ // 创建并保存 Toast 实例标识符
172
+ const toast1 = Toast.success("成功提示")
173
+ const toast2 = Toast.loading("加载中...")
174
+
175
+ // 3秒后只关闭成功提示,保留加载提示
176
+ setTimeout(() => {
177
+ // 直接使用 close 方法关闭特定的 Toast
178
+ if (toast1) {
179
+ Toast.close(toast1)
180
+ }
181
+ }, 3000)
182
+ }}
183
+ />
184
+ </>
185
+ )
186
+ }
187
+ ```
188
+
189
+ ## API
190
+
191
+ ### Props
192
+
193
+ | 参数 | 说明 | 类型 | 默认值 |
194
+ | ----------------------------- | ---------------------------------------------------------- | -------------------------- | -------- |
195
+ | defaultOpen | 默认是否显示弹出层 | _boolean_ | `false` |
196
+ | open | 是否显示弹出层 | _boolean_ | `false` |
197
+ | type | 提示类型,可选值为 `loading` `success`<br>`fail` `html` | _string_ | `text` |
198
+ | icon | 自定义图标,支持传入[图标名称](/components/icon)或图片链接 | _ReactNode_ | - |
199
+ | position | 弹出位置,可选值为 `top` `bottom` | _string_ | `center` |
200
+ | duration <br>`v0.4.0-alpha.0` | 动画时长,单位毫秒,值为 0 时,toast 不会消失 | _number \| string_ | `3000` |
201
+ | backdrop | 是否显示遮罩层 | _boolean_ | `false` |
202
+ | children | 文本内容 | _ReactNode_ | - |
203
+ | onClose | 关闭时的回调函数 | _(open : boolean) => void_ | - |
204
+
205
+ ### Options
206
+
207
+ | 参数 | 说明 | 类型 | 默认值 |
208
+ | ----------------------------- | ----------------------------------------------------------------------- | -------------------------- | -------- |
209
+ | selector | 自定义节点选择器 | _string_ | `toast` |
210
+ | type | 提示类型,可选值为 `loading` `success`<br>`fail` `html` | _string_ | `text` |
211
+ | icon | 自定义图标,支持传入[图标](/components/icon)或[图片](/components/image) | _ReactNode_ | - |
212
+ | position | 弹出位置,可选值为 `top` `bottom` | _string_ | `center` |
213
+ | duration <br>`v0.4.0-alpha.0` | 动画时长,单位毫秒,值为 0 时,toast 不会消失 | _number \| string_ | `3000` |
214
+ | backdrop | 是否显示遮罩层 | _boolean_ | `false` |
215
+ | message | 文本内容 | _ReactNode_ | - |
216
+ | onClose | 关闭时的回调函数 | _(open : boolean) => void_ | - |
217
+
218
+ ### 方法
219
+
220
+ | 方法名 | 参数 | 返回值 | 介绍 |
221
+ | ----------------- | -------------------- | ------ | ---------------------------------------------- |
222
+ | Toast.open | _options \| message_ | _string \| undefined_ | 展示提示,返回 Toast 实例标识符 |
223
+ | Toast.loading | _options \| message_ | _string \| undefined_ | 展示加载提示,返回 Toast 实例标识符 |
224
+ | Toast.success | _options \| message_ | _string \| undefined_ | 展示成功提示,返回 Toast 实例标识符 |
225
+ | Toast.fail | _options \| message_ | _string \| undefined_ | 展示失败提示,返回 Toast 实例标识符 |
226
+ | Toast.close | _selector? \| id?_ | - | 关闭提示,不传参时关闭所有提示,传入实例标识符时关闭指定提示 |
227
+ | Toast.allowMultiple `v0.7.0` | _boolean_ | - | 允许同时存在多个 Toast 提示,默认为 `false` |
228
+
229
+ ## 主题定制
230
+
231
+ ### 样式变量
232
+
233
+ 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
234
+
235
+ | 名称 | 默认值 | 描述 |
236
+ | -------------------------------- | ------------------------------------- | ---- |
237
+ | --toast-width | _88px \* $hd_ | - |
238
+ | --toast-width | _88px \* $hd_ | - |
239
+ | --toast-min-height | _88px \* $hd_ | - |
240
+ | --toast-max-width | _70%_ | - |
241
+ | --toast-padding | _var(--padding-md)_ | - |
242
+ | --toast-font-size | _var(--font-size-md)_ | - |
243
+ | --toast-line-height | _var(--line-height-md)_ | - |
244
+ | --toast-color | _var(--white)_ | - |
245
+ | --toast-background-color | _rgba(var(--black-rgb), $alpha: 0.7)_ | - |
246
+ | --toast-border-radius | _var(--border-radius-lg)_ | - |
247
+ | --toast-transition-duration | _var(--animation-duration-fast)_ | - |
248
+ | --toast-icon-font-size | _36px \* $hd_ | - |
249
+ | --toast-icon-color | _var(--white)_ | - |
250
+ | --toast-loading-padding | _3px \* $hd_ | - |
251
+ | --toast-loading-color | _var(--white)_ | - |
252
+ | --toast-text-min-width | _96px \* $hd_ | - |
253
+ | --toast-text-padding | _var(--padding-xs) var(--padding-sm)_ | - |
254
+ | --toast-position-distance | _20%_ | - |
255
+ | --toast-position-top-distance | _var(--toast-position-distance)_ | - |
256
+ | --toast-position-bottom-distance | _var(--toast-position-distance)_ | - |