@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,150 @@
1
+ import { useRef } from "react";
2
+ import { View } from "@tarojs/components"
3
+ import { RollingText, Button } from "@fjyueke/bify-core"
4
+ import type { RollingTextRef } from "@fjyueke/bify-core/rolling-text"
5
+ import Page from "../../../components/page"
6
+ import Block from "../../../components/block"
7
+ import "./index.scss"
8
+
9
+
10
+ function BasicRollingText() {
11
+ const ref = useRef<RollingTextRef>()
12
+
13
+ const onClick = () => {
14
+ ref.current?.start();
15
+ }
16
+
17
+ return (
18
+ <View>
19
+ <RollingText ref={ref} targetNum={123} autoStart={false} />
20
+ <View className="rolling-text-btn">
21
+ <Button color="primary" onClick={onClick}>向下翻滚</Button>
22
+ </View>
23
+ </View>
24
+ )
25
+ }
26
+
27
+ function SetDirectionRollingText() {
28
+ const ref = useRef<RollingTextRef>()
29
+
30
+ const onClick = () => {
31
+ ref.current?.start();
32
+ }
33
+
34
+ return (
35
+ <View>
36
+ <RollingText ref={ref} targetNum={432} autoStart={false} direction="up" />
37
+ <View className="rolling-text-btn">
38
+ <Button color="primary" onClick={onClick}>向上翻滚</Button>
39
+ </View>
40
+ </View>
41
+ )
42
+ }
43
+
44
+ function StopOrderRollingText() {
45
+ const ref = useRef<RollingTextRef>()
46
+
47
+ const onClick = () => {
48
+ ref.current?.start();
49
+ }
50
+
51
+ return (
52
+ <View>
53
+ <RollingText ref={ref} targetNum={54321} autoStart={false} stopOrder="rtl" />
54
+ <View className="rolling-text-btn">
55
+ <Button color="primary" onClick={onClick}>从个位停止</Button>
56
+ </View>
57
+ </View>
58
+ )
59
+ }
60
+
61
+ const textList = [
62
+ "aaaaa",
63
+ "bbbbb",
64
+ "ccccc",
65
+ "ddddd",
66
+ "eeeee",
67
+ "fffff",
68
+ "ggggg",
69
+ ]
70
+
71
+ function TextListRollingText() {
72
+ const ref = useRef<RollingTextRef>()
73
+
74
+ const onClick = () => {
75
+ ref.current?.start();
76
+ }
77
+
78
+ return (
79
+ <View>
80
+ <RollingText ref={ref} textList={textList} duration={1} autoStart={false} />
81
+ <View className="rolling-text-btn">
82
+ <Button color="primary" onClick={onClick}>开始</Button>
83
+ </View>
84
+ </View>
85
+ )
86
+ }
87
+
88
+ function CustomerRollingText() {
89
+ const ref = useRef<RollingTextRef>()
90
+
91
+ const onClick = () => {
92
+ ref.current?.start();
93
+ }
94
+
95
+ return (
96
+ <View>
97
+ <RollingText ref={ref} className="my-rolling-text" height={54} startNum={12345} targetNum={54321} autoStart={false} />
98
+ <View className="rolling-text-btn">
99
+ <Button color="primary" onClick={onClick}>开始</Button>
100
+ </View>
101
+ </View>
102
+ )
103
+ }
104
+
105
+ function HandRollingText() {
106
+ const ref = useRef<RollingTextRef>()
107
+
108
+ const start = () => {
109
+ ref.current?.start();
110
+ }
111
+
112
+ const reset = () => {
113
+ ref.current?.reset();
114
+ }
115
+
116
+ return (
117
+ <View>
118
+ <RollingText ref={ref} className="my-rolling-text" height={54} startNum={0} targetNum={54321} autoStart={false} />
119
+ <View className="rolling-text-btn">
120
+ <Button color="primary" onClick={start}>开始</Button>
121
+ <Button color="primary" className="rolling-text-right" onClick={reset}>重置</Button>
122
+ </View>
123
+ </View>
124
+ )
125
+ }
126
+
127
+ export default function RollingTextDemo() {
128
+ return (
129
+ <Page title="RollingText 翻滚文本动效" className="rolling-text">
130
+ <Block title="基础用法">
131
+ <BasicRollingText />
132
+ </Block>
133
+ <Block title="设置翻滚方向">
134
+ <SetDirectionRollingText />
135
+ </Block>
136
+ <Block title="设置各数位停止顺序">
137
+ <StopOrderRollingText />
138
+ </Block>
139
+ <Block title="翻转非数字内容">
140
+ <TextListRollingText />
141
+ </Block>
142
+ <Block title="自定义样式">
143
+ <CustomerRollingText />
144
+ </Block>
145
+ <Block title="手动控制">
146
+ <HandRollingText />
147
+ </Block>
148
+ </Page>
149
+ )
150
+ }
@@ -0,0 +1,8 @@
1
+ ## API
2
+
3
+ ### SafeArea Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ | ------------- | ------------------------------------- | --------- | ------- |
7
+ | position | 安全区的位置,可选值为 `top` `bottom` | _string_ | - |
8
+ | nativeSafeTop <br>`v0.5.1-alpha.0` | 是否启用顶部安全区域原生属性 | _boolean_ | `false` |
@@ -0,0 +1,30 @@
1
+ # SafeArea 安全区
2
+
3
+ ### 介绍
4
+
5
+ 用于将其内容放置在视口的安全区域中。
6
+
7
+ ### 引入
8
+
9
+ ```tsx
10
+ import { SafeArea } from "@fjyueke/bify-core"
11
+ ```
12
+
13
+ ## 代码演示
14
+
15
+ ### 基础用法
16
+
17
+ ```tsx
18
+ <SafeArea position="top" />
19
+ <View>{lorem.generateParagraphs(10)}</View>
20
+ <SafeArea position="bottom" />
21
+ ```
22
+
23
+ ## API
24
+
25
+ ### SafeArea Props
26
+
27
+ | 参数 | 说明 | 类型 | 默认值 |
28
+ | ------------- | ------------------------------------- | --------- | ------- |
29
+ | position | 安全区的位置,可选值为 `top` `bottom` | _string_ | - |
30
+ | nativeSafeTop <br>`v0.5.1-alpha.0` | 是否启用顶部安全区域原生属性 | _boolean_ | `false` |
@@ -0,0 +1,16 @@
1
+ import { SafeArea } from "@fjyueke/bify-core"
2
+ import { View } from "@tarojs/components"
3
+ import Page from "../../../components/page"
4
+ import lorem from "../../../utils/lorem"
5
+
6
+ import "./index.scss"
7
+
8
+ export default function SafeAreaDemo() {
9
+ return (
10
+ <Page title="SafeArea 安全区域" className="safe-area-demo">
11
+ <SafeArea position="top" />
12
+ <View>{lorem.generateParagraphs(10)}</View>
13
+ <SafeArea position="bottom" />
14
+ </Page>
15
+ )
16
+ }
@@ -0,0 +1,35 @@
1
+ ## API
2
+
3
+ ### Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ | --------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ |
7
+ | label | 搜索框左侧文本 | _string_ | - |
8
+ | shape | 搜索框形状,可选值为 `square` `rounded` | _string_ | - |
9
+ | maxlength | 输入的最大字符数 | _number \| string_ | - |
10
+ | placeholder | 占位提示文字 | _string_ | - |
11
+ | autoFocus | 自动聚焦,iOS 系统不支持该属性 | _boolean_ | `false` |
12
+ | focus | 获取焦点 | _boolean_ | `false` |
13
+ | disabled | 是否禁用输入框 | _boolean_ | `false` |
14
+ | readonly | 是否将输入框设为只读状态,只读状态下无法输入内容 | _boolean_ | `false` |
15
+ | icon | 输入框左侧图标 | _ReactNode_ | `<Search />` |
16
+ | rightIcon | 输入框右侧图标 | _ReactNode_ | - |
17
+ | action | 是否在搜索框右侧显示取消按钮 | _boolean \| ReactNode_ | `false` |
18
+ | inputAlign | 输入框内容对齐方式,可选值为 `center` `right` | _string_ | `left` |
19
+ | inputColor | 输入框内容颜色,可选值为 `primary` `info` `success` `warning` `danger` | _string_ | - |
20
+ | clearable | 是否启用清除图标,点击清除图标后会清空输入框 | _boolean_ | `true` |
21
+ | clearIcon | 清除图标 | _string_ | `<Clear />` |
22
+ | clearTrigger | 显示清除图标的时机,`always` 表示输入框不为空时展示,<br>`focus` 表示输入框聚焦且不为空时展示 | _string_ | `focus` |
23
+ | feedback | 提示文案,为空时不展示 | _string \| [FormFeedbackProps](/components/form/#formfeedback-props) \| ReactElement_ | - |
24
+ | enableNative <br>`v0.4.0-alpha.0` | 使用原生键盘(仅支付宝小程序) | _boolean_ | `true` |
25
+
26
+ ### Events
27
+
28
+ | 事件名 | 说明 | 回调参数 |
29
+ | -------- | -------------------- | -------------------------------------------------------- |
30
+ | onSearch | 确定搜索时触发 | _event: BaseEventOrig<InputProps.inputValueEventDetail>_ |
31
+ | onChange | 输入框内容变化时触发 | _event: BaseEventOrig<InputProps.inputEventDetail>_ |
32
+ | onFocus | 输入框获得焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
33
+ | onBlur | 输入框失去焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
34
+ | onClear | 点击清除按钮后触发 | _event: event: ITouchEvent_ |
35
+ | onCancel | 点击取消按钮时触发 | _event: event: ITouchEvent_ |
@@ -0,0 +1,185 @@
1
+ # Search 搜索
2
+
3
+ ### 介绍
4
+
5
+ 用于搜索场景的输入框组件。
6
+
7
+ ### 引入
8
+
9
+ ```tsx
10
+ import { Search } from "@fjyueke/bify-core"
11
+ ```
12
+
13
+ ## 代码演示
14
+
15
+ ### 基础用法
16
+
17
+ `value` 用于控制搜索框中的文字,`onChange` 可以获得改变的值。
18
+
19
+ ```tsx
20
+ function BasicSearch() {
21
+ const [value, setValue] = useState("")
22
+ return (
23
+ <Search
24
+ value={value}
25
+ placeholder="请输入搜索关键词"
26
+ onChange={(e) => setValue(e.detail.value)}
27
+ />
28
+ )
29
+ }
30
+ ```
31
+
32
+ ### 事件监听
33
+
34
+ Search 组件提供了 `onSearch` 和 `onCancel` 事件,`onSearch` 事件在点击键盘上的搜索/回车按钮后触发,`onCancel` 事件在点击搜索框右侧取消按钮时触发。
35
+
36
+ ```tsx
37
+ function SearchWithEvents() {
38
+ const [value, setValue] = useState("")
39
+ const [open, setOpen] = useState(false)
40
+
41
+ return (
42
+ <>
43
+ <Toast open={open} onClose={() => setOpen(false)}>
44
+ 取消
45
+ </Toast>
46
+ <Search
47
+ value={value}
48
+ placeholder="请输入搜索关键词"
49
+ action
50
+ onChange={(e) => setValue(e.detail.value)}
51
+ onCancel={() => setOpen(true)}
52
+ />
53
+ </>
54
+ )
55
+ }
56
+ ```
57
+
58
+ ### 搜索框内容对齐
59
+
60
+ 通过 `inputAlign` 属性设置搜索框内容的对齐方式,可选值为 `center`、`right`。
61
+
62
+ ```tsx
63
+ function InputCenterSearch() {
64
+ const [value, setValue] = useState("")
65
+ return (
66
+ <Search
67
+ value={value}
68
+ placeholder="请输入搜索关键词"
69
+ inputAlign="center"
70
+ onChange={(e) => setValue(e.detail.value)}
71
+ />
72
+ )
73
+ }
74
+ ```
75
+
76
+ ### 禁用搜索框
77
+
78
+ 通过 `disabled` 属性禁用搜索框。
79
+
80
+ ```tsx
81
+ <Search disabled placeholder="请输入搜索关键词" />
82
+ ```
83
+
84
+ ### 自定义背景色
85
+
86
+ 通过 `className` 属性可以设置搜索框外部的背景色,通过 `shape="rounded"` 属性设置搜索框的形状。
87
+
88
+ ```tsx
89
+ <Search className="background" shape="rounded" disabled placeholder="请输入搜索关键词" />
90
+ ```
91
+
92
+ ```scss
93
+ .background {
94
+ --search-background-color: #4fc08d;
95
+ }
96
+ ```
97
+
98
+ ### 自定义按钮
99
+
100
+ 使用 `action` 插槽可以自定义右侧按钮的内容。使用插槽后,`cancel` 事件将不再触发。
101
+
102
+ ```tsx
103
+ function CustomSearch() {
104
+ const [value, setValue] = useState("")
105
+ const [open, setOpen] = useState(false)
106
+ return (
107
+ <>
108
+ <Toast open={open} onClose={() => setOpen(false)}>
109
+ 搜索
110
+ </Toast>
111
+ <Search
112
+ value={value}
113
+ label="地址"
114
+ placeholder="请输入搜索关键词"
115
+ action={<View onClick={() => setOpen(true)}>搜索</View>}
116
+ onChange={(e) => setValue(e.detail.value)}
117
+ />
118
+ </>
119
+ )
120
+ }
121
+ ```
122
+
123
+ ## API
124
+
125
+ ### Props
126
+
127
+ | 参数 | 说明 | 类型 | 默认值 |
128
+ | --------------------------------- | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ |
129
+ | label | 搜索框左侧文本 | _string_ | - |
130
+ | shape | 搜索框形状,可选值为 `square` `rounded` | _string_ | - |
131
+ | maxlength | 输入的最大字符数 | _number \| string_ | - |
132
+ | placeholder | 占位提示文字 | _string_ | - |
133
+ | autoFocus | 自动聚焦,iOS 系统不支持该属性 | _boolean_ | `false` |
134
+ | focus | 获取焦点 | _boolean_ | `false` |
135
+ | disabled | 是否禁用输入框 | _boolean_ | `false` |
136
+ | readonly | 是否将输入框设为只读状态,只读状态下无法输入内容 | _boolean_ | `false` |
137
+ | icon | 输入框左侧图标 | _ReactNode_ | `<Search />` |
138
+ | rightIcon | 输入框右侧图标 | _ReactNode_ | - |
139
+ | action | 是否在搜索框右侧显示取消按钮 | _boolean \| ReactNode_ | `false` |
140
+ | inputAlign | 输入框内容对齐方式,可选值为 `center` `right` | _string_ | `left` |
141
+ | inputColor | 输入框内容颜色,可选值为 `primary` `info` `success` `warning` `danger` | _string_ | - |
142
+ | clearable | 是否启用清除图标,点击清除图标后会清空输入框 | _boolean_ | `true` |
143
+ | clearIcon | 清除图标 | _string_ | `<Clear />` |
144
+ | clearTrigger | 显示清除图标的时机,`always` 表示输入框不为空时展示,<br>`focus` 表示输入框聚焦且不为空时展示 | _string_ | `focus` |
145
+ | feedback | 提示文案,为空时不展示 | _string \| [FormFeedbackProps](/components/form/#formfeedback-props) \| ReactElement_ | - |
146
+ | enableNative <br>`v0.4.0-alpha.0` | 使用原生键盘(仅支付宝小程序) | _boolean_ | `true` |
147
+
148
+ ### Events
149
+
150
+ | 事件名 | 说明 | 回调参数 |
151
+ | -------- | -------------------- | -------------------------------------------------------- |
152
+ | onSearch | 确定搜索时触发 | _event: BaseEventOrig<InputProps.inputValueEventDetail>_ |
153
+ | onChange | 输入框内容变化时触发 | _event: BaseEventOrig<InputProps.inputEventDetail>_ |
154
+ | onFocus | 输入框获得焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
155
+ | onBlur | 输入框失去焦点时触发 | _event: BaseEventOrig<InputProps.inputForceEventDetail>_ |
156
+ | onClear | 点击清除按钮后触发 | _event: event: ITouchEvent_ |
157
+ | onCancel | 点击取消按钮时触发 | _event: event: ITouchEvent_ |
158
+
159
+ ## 主题定制
160
+
161
+ ### 样式变量
162
+
163
+ 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider](/components/config-provider/) 组件。
164
+
165
+ | 名称 | 默认值 | 描述 |
166
+ | --------------------------------------- | ----------------------------------------- | ---- |
167
+ | --search-padding | _10px \* $hd var(--padding-sm)_ | - |
168
+ | --search-background-color | _var(--white)_ | - |
169
+ | --search-content-padding-left | _var(--padding-sm)_ | - |
170
+ | --search-content-background-color | _var(--gray-1)_ | - |
171
+ | --search-content-border-radius | _var(--border-radius-sm)_ | - |
172
+ | --search-content-square-border-radius | _0_ | - |
173
+ | --search-content-rounded-border-radius | _var(--border-radius-max)_ | - |
174
+ | --search-input-height | _34px \* $hd_ | - |
175
+ | --search-label-padding | _0 5px \* $hd_ | - |
176
+ | --search-label-color | _var(--text-color)_ | - |
177
+ | --search-label-font-size | _var(--font-size-md)_ | - |
178
+ | --search-label-line-height | _var(--search-input-height)_ | - |
179
+ | --search-field-padding | _5px * $hd var(--padding-xs) 5px * $hd 0_ | - |
180
+ | --search-left-icon-color | _var(--gray-6)_ | - |
181
+ | --search-action-padding | _0 var(--padding-xs)_ | - |
182
+ | --search-action-color | _var(--text-color)_ | - |
183
+ | --search-action-line-height | _var(--search-input-height)_ | - |
184
+ | --search-action-font-size | _var(--font-size-md)_ | - |
185
+ | --search-action-active-background-color | _var(--active-color)_ | - |
@@ -0,0 +1,101 @@
1
+ import { Search, Toast } from "@fjyueke/bify-core"
2
+ import { View } from "@tarojs/components"
3
+ import { useState } from "react"
4
+ import Block from "../../../components/block"
5
+ import Page from "../../../components/page"
6
+ import "./index.scss"
7
+
8
+ function BasicSearch() {
9
+ const [value, setValue] = useState("")
10
+ return (
11
+ <Search
12
+ value={value}
13
+ placeholder="请输入搜索关键词"
14
+ onChange={(e) => setValue(e.detail.value)}
15
+ />
16
+ )
17
+ }
18
+
19
+ function SearchWithEvents() {
20
+ const [value, setValue] = useState("")
21
+ const [open, setOpen] = useState(false)
22
+
23
+ return (
24
+ <>
25
+ <Toast open={open} onClose={() => setOpen(false)}>
26
+ 取消
27
+ </Toast>
28
+ <Search
29
+ value={value}
30
+ placeholder="请输入搜索关键词"
31
+ action
32
+ onChange={(e) => setValue(e.detail.value)}
33
+ onCancel={() => setOpen(true)}
34
+ />
35
+ </>
36
+ )
37
+ }
38
+
39
+ function InputCenterSearch() {
40
+ const [value, setValue] = useState("")
41
+ return (
42
+ <Search
43
+ value={value}
44
+ placeholder="请输入搜索关键词"
45
+ inputAlign="center"
46
+ onChange={(e) => setValue(e.detail.value)}
47
+ />
48
+ )
49
+ }
50
+
51
+ function DisabledSearch() {
52
+ return <Search disabled placeholder="请输入搜索关键词" />
53
+ }
54
+
55
+ function BackgroundSearch() {
56
+ return <Search className="background" shape="rounded" placeholder="请输入搜索关键词" />
57
+ }
58
+
59
+ function CustomSearch() {
60
+ const [value, setValue] = useState("")
61
+ const [open, setOpen] = useState(false)
62
+ return (
63
+ <>
64
+ <Toast open={open} onClose={() => setOpen(false)}>
65
+ 搜索
66
+ </Toast>
67
+ <Search
68
+ value={value}
69
+ label="地址"
70
+ placeholder="请输入搜索关键词"
71
+ action={<View onClick={() => setOpen(true)}>搜索</View>}
72
+ onChange={(e) => setValue(e.detail.value)}
73
+ />
74
+ </>
75
+ )
76
+ }
77
+
78
+ export default function SearchDemo() {
79
+ return (
80
+ <Page title="Search 搜索" className="search-demo">
81
+ <Block title="基础用法">
82
+ <BasicSearch />
83
+ </Block>
84
+ <Block title="事件监听">
85
+ <SearchWithEvents />
86
+ </Block>
87
+ <Block title="搜索框内容对齐">
88
+ <InputCenterSearch />
89
+ </Block>
90
+ <Block title="禁用搜索框">
91
+ <DisabledSearch />
92
+ </Block>
93
+ <Block title="自定义背景色">
94
+ <BackgroundSearch />
95
+ </Block>
96
+ <Block title="自定义按钮">
97
+ <CustomSearch />
98
+ </Block>
99
+ </Page>
100
+ )
101
+ }
@@ -0,0 +1,48 @@
1
+ ## API
2
+
3
+ ### ShareSheet Props
4
+
5
+ | 参数 | 说明 | 类型 | 默认值 |
6
+ |-------------|------------|-----------------|---------|
7
+ | defaultOpen | 默认是否显示动作面板 | _boolean_ | `false` |
8
+ | open | 是否显示动作面板 | _boolean_ | `false` |
9
+ | className | 样式类名 | _string_ | - |
10
+ | style | 样式对象 | _CSSProperties_ | - |
11
+ | rounded | 是否为圆角 | _string_ | - |
12
+
13
+ ### ShareSheet.Backdrop Props
14
+
15
+ | 参数 | 说明 | 类型 | 默认值 |
16
+ | --- | --- | --- | --- |
17
+ | className | 样式类名 | _string_ | - |
18
+ | style | 样式对象 | _CSSProperties_ | - |
19
+ | duration | 动画时长,单位毫秒 | _number \| string_ | `300` |
20
+ | closeable | 点击是否可以关闭 | _boolean_ | `true` |
21
+
22
+ ### ShareSheet.Header Props
23
+
24
+ | 参数 | 说明 | 类型 | 默认值 |
25
+ |-----------|------|-----------------|-----|
26
+ | className | 样式类名 | _string_ | - |
27
+ | style | 样式对象 | _CSSProperties_ | - |
28
+ | title | 标题 | _string_ | - |
29
+ | children | 描述信息 | _string_ | - |
30
+
31
+ ### ShareSheet.Option Props
32
+
33
+ | 参数 | 说明 | 类型 | 默认值 |
34
+ | ----------- | --- | --- | --- |
35
+ | className | 分享选项类名 | _string_ | - |
36
+ | name | 分享渠道名称 | _string_ | - |
37
+ | value | 选项值 | _string_ | - |
38
+ | description | 分享选项描述 | _string_ | - |
39
+ | icon | 图标,可选值为 `wechat` `weibo` `qq` `link` `qrcode` `poster`<br/>`weapp-qrcode` `wechat-moments`,支持传入 Image 组件 | _string_ | - |
40
+ | openType | 微信开放能力,可选值为 `contact` `contactShare` `share`<br/>`getRealnameAuthInfo` `getAuthorize` `getPhoneNumber`<br/>`getUserInfo` `lifestyle` `launchApp` `openSetting` `feedback` | _string_ | - |
41
+
42
+ ### Events
43
+
44
+ | 事件名 | 说明 | 回调参数 |
45
+ |----------|-----------|---------------------------------|
46
+ | onSelect | 点击分享选项时触发 | _event: ShareSheet.OptionEvent_ |
47
+ | onCancel | 点击取消按钮时触发 | - |
48
+ | onClose | 关闭面板时触发 | - |