wz-h5-design 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 (241) hide show
  1. package/README.md +51 -0
  2. package/dist/Button/index.js +84 -0
  3. package/dist/Button/index.umd.cjs +1 -0
  4. package/dist/Button/style/index.css +1 -0
  5. package/dist/Button/style/index.js +1 -0
  6. package/dist/Button/style.css +1 -0
  7. package/dist/Card/index.js +32 -0
  8. package/dist/Card/index.umd.cjs +1 -0
  9. package/dist/Card/style/index.css +1 -0
  10. package/dist/Card/style/index.js +1 -0
  11. package/dist/Card/style.css +1 -0
  12. package/dist/Cascader/index.js +94 -0
  13. package/dist/Cascader/index.umd.cjs +1 -0
  14. package/dist/Cascader/style/index.css +1 -0
  15. package/dist/Cascader/style/index.js +1 -0
  16. package/dist/Cascader/style.css +1 -0
  17. package/dist/Cell/index.js +135 -0
  18. package/dist/Cell/index.umd.cjs +6 -0
  19. package/dist/Cell/style/index.css +1 -0
  20. package/dist/Cell/style/index.js +1 -0
  21. package/dist/Cell/style.css +1 -0
  22. package/dist/CheckList/index.js +34 -0
  23. package/dist/CheckList/index.umd.cjs +1 -0
  24. package/dist/CheckList/style/index.css +1 -0
  25. package/dist/CheckList/style/index.js +1 -0
  26. package/dist/CheckList/style.css +1 -0
  27. package/dist/Checkbox/index.js +84 -0
  28. package/dist/Checkbox/index.umd.cjs +1 -0
  29. package/dist/Checkbox/style/index.css +1 -0
  30. package/dist/Checkbox/style/index.js +1 -0
  31. package/dist/Checkbox/style.css +1 -0
  32. package/dist/Collapse/index.js +72 -0
  33. package/dist/Collapse/index.umd.cjs +1 -0
  34. package/dist/Collapse/style/index.css +1 -0
  35. package/dist/Collapse/style/index.js +1 -0
  36. package/dist/Collapse/style.css +1 -0
  37. package/dist/DatePicker/index.js +154 -0
  38. package/dist/DatePicker/index.umd.cjs +1 -0
  39. package/dist/DatePicker/style/index.css +1 -0
  40. package/dist/DatePicker/style/index.js +1 -0
  41. package/dist/DatePicker/style.css +1 -0
  42. package/dist/DateRangePicker/index.js +220 -0
  43. package/dist/DateRangePicker/index.umd.cjs +1 -0
  44. package/dist/DateRangePicker/style/index.css +1 -0
  45. package/dist/DateRangePicker/style/index.js +1 -0
  46. package/dist/DateRangePicker/style.css +1 -0
  47. package/dist/Dialog/index.js +216 -0
  48. package/dist/Dialog/index.umd.cjs +6 -0
  49. package/dist/Dialog/style/index.css +1 -0
  50. package/dist/Dialog/style/index.js +1 -0
  51. package/dist/Dialog/style.css +1 -0
  52. package/dist/Divider/index.js +27 -0
  53. package/dist/Divider/index.umd.cjs +1 -0
  54. package/dist/Divider/style/index.css +1 -0
  55. package/dist/Divider/style/index.js +1 -0
  56. package/dist/Divider/style.css +1 -0
  57. package/dist/DropDownMenu/index.js +111 -0
  58. package/dist/DropDownMenu/index.umd.cjs +1 -0
  59. package/dist/DropDownMenu/style/index.css +1 -0
  60. package/dist/DropDownMenu/style/index.js +1 -0
  61. package/dist/DropDownMenu/style.css +1 -0
  62. package/dist/Flex/index.js +85 -0
  63. package/dist/Flex/index.umd.cjs +1 -0
  64. package/dist/Flex/style/index.css +1 -0
  65. package/dist/Flex/style/index.js +1 -0
  66. package/dist/Flex/style.css +1 -0
  67. package/dist/Grid/index.js +54 -0
  68. package/dist/Grid/index.umd.cjs +1 -0
  69. package/dist/Grid/style/index.css +1 -0
  70. package/dist/Grid/style/index.js +1 -0
  71. package/dist/Grid/style.css +1 -0
  72. package/dist/GridView/index.js +90 -0
  73. package/dist/GridView/index.umd.cjs +1 -0
  74. package/dist/GridView/style/index.css +1 -0
  75. package/dist/GridView/style/index.js +1 -0
  76. package/dist/GridView/style.css +1 -0
  77. package/dist/Icon/index.js +31 -0
  78. package/dist/Icon/index.umd.cjs +1 -0
  79. package/dist/Icon/style/index.css +1 -0
  80. package/dist/Icon/style/index.js +1 -0
  81. package/dist/Icon/style.css +1 -0
  82. package/dist/Input/index.js +148 -0
  83. package/dist/Input/index.umd.cjs +1 -0
  84. package/dist/Input/style/index.css +1 -0
  85. package/dist/Input/style/index.js +1 -0
  86. package/dist/Input/style.css +1 -0
  87. package/dist/NavBar/index.js +175 -0
  88. package/dist/NavBar/index.umd.cjs +6 -0
  89. package/dist/NavBar/style/index.css +1 -0
  90. package/dist/NavBar/style/index.js +1 -0
  91. package/dist/NavBar/style.css +1 -0
  92. package/dist/Popup/index.js +124 -0
  93. package/dist/Popup/index.umd.cjs +1 -0
  94. package/dist/Popup/style/index.css +1 -0
  95. package/dist/Popup/style/index.js +1 -0
  96. package/dist/Popup/style.css +1 -0
  97. package/dist/Radio/index.js +82 -0
  98. package/dist/Radio/index.umd.cjs +1 -0
  99. package/dist/Radio/style/index.css +1 -0
  100. package/dist/Radio/style/index.js +1 -0
  101. package/dist/Radio/style.css +1 -0
  102. package/dist/Search/index.js +158 -0
  103. package/dist/Search/index.umd.cjs +1 -0
  104. package/dist/Search/style/index.css +1 -0
  105. package/dist/Search/style/index.js +1 -0
  106. package/dist/Search/style.css +1 -0
  107. package/dist/Stepper/index.js +140 -0
  108. package/dist/Stepper/index.umd.cjs +1 -0
  109. package/dist/Stepper/style/index.css +1 -0
  110. package/dist/Stepper/style/index.js +1 -0
  111. package/dist/Stepper/style.css +1 -0
  112. package/dist/Switch/index.js +53 -0
  113. package/dist/Switch/index.umd.cjs +1 -0
  114. package/dist/Switch/style/index.css +1 -0
  115. package/dist/Switch/style/index.js +1 -0
  116. package/dist/Switch/style.css +1 -0
  117. package/dist/Tabbar/index.js +159 -0
  118. package/dist/Tabbar/index.umd.cjs +6 -0
  119. package/dist/Tabbar/style/index.css +1 -0
  120. package/dist/Tabbar/style/index.js +1 -0
  121. package/dist/Tabbar/style.css +1 -0
  122. package/dist/Tabs/index.js +50 -0
  123. package/dist/Tabs/index.umd.cjs +1 -0
  124. package/dist/Tabs/style/index.css +1 -0
  125. package/dist/Tabs/style/index.js +1 -0
  126. package/dist/Tabs/style.css +1 -0
  127. package/dist/Tag/index.js +96 -0
  128. package/dist/Tag/index.umd.cjs +6 -0
  129. package/dist/Tag/style/index.css +1 -0
  130. package/dist/Tag/style/index.js +1 -0
  131. package/dist/Tag/style.css +1 -0
  132. package/dist/TimePicker/index.js +201 -0
  133. package/dist/TimePicker/index.umd.cjs +1 -0
  134. package/dist/TimePicker/style/index.css +1 -0
  135. package/dist/TimePicker/style/index.js +1 -0
  136. package/dist/TimePicker/style.css +1 -0
  137. package/dist/Tip/index.js +104 -0
  138. package/dist/Tip/index.umd.cjs +6 -0
  139. package/dist/Tip/style/index.css +1 -0
  140. package/dist/Tip/style/index.js +1 -0
  141. package/dist/Tip/style.css +1 -0
  142. package/dist/Toast/index.js +183 -0
  143. package/dist/Toast/index.umd.cjs +6 -0
  144. package/dist/Toast/style/index.css +1 -0
  145. package/dist/Toast/style/index.js +1 -0
  146. package/dist/Toast/style.css +1 -0
  147. package/dist/Tooltip/index.js +172 -0
  148. package/dist/Tooltip/index.umd.cjs +6 -0
  149. package/dist/Tooltip/style/index.css +1 -0
  150. package/dist/Tooltip/style/index.js +1 -0
  151. package/dist/Tooltip/style.css +1 -0
  152. package/dist/assets/fonts/qitu/iconfont.css +140 -0
  153. package/dist/assets/fonts/qitu/iconfont.ttf +0 -0
  154. package/dist/assets/fonts/qitu/iconfont.woff +0 -0
  155. package/dist/assets/fonts/qitu/iconfont.woff2 +0 -0
  156. package/dist/assets/fonts/qituyonghu/iconfont.css +64 -0
  157. package/dist/assets/fonts/qituyonghu/iconfont.ttf +0 -0
  158. package/dist/assets/fonts/qituyonghu/iconfont.woff +0 -0
  159. package/dist/assets/fonts/qituyonghu/iconfont.woff2 +0 -0
  160. package/dist/assets/fonts/wzdaili/iconfont.css +71 -0
  161. package/dist/assets/fonts/wzdaili/iconfont.ttf +0 -0
  162. package/dist/assets/fonts/wzdaili/iconfont.woff +0 -0
  163. package/dist/assets/fonts/wzdaili/iconfont.woff2 +0 -0
  164. package/dist/assets/fonts/wzyonghu/iconfont.css +97 -0
  165. package/dist/assets/fonts/wzyonghu/iconfont.ttf +0 -0
  166. package/dist/assets/fonts/wzyonghu/iconfont.woff +0 -0
  167. package/dist/assets/fonts/wzyonghu/iconfont.woff2 +0 -0
  168. package/dist/assets/fonts/yunying/iconfont.css +303 -0
  169. package/dist/assets/fonts/yunying/iconfont.ttf +0 -0
  170. package/dist/assets/fonts/yunying/iconfont.woff +0 -0
  171. package/dist/assets/fonts/yunying/iconfont.woff2 +0 -0
  172. package/dist/style.css +1 -0
  173. package/dist/types/components/Button/Button.d.ts +16 -0
  174. package/dist/types/components/Button/index.d.ts +5 -0
  175. package/dist/types/components/Card/Card.d.ts +15 -0
  176. package/dist/types/components/Card/index.d.ts +3 -0
  177. package/dist/types/components/Cascader/Cascader.d.ts +14 -0
  178. package/dist/types/components/Cascader/index.d.ts +3 -0
  179. package/dist/types/components/Cell/Cell.d.ts +24 -0
  180. package/dist/types/components/Cell/CellGroup.d.ts +8 -0
  181. package/dist/types/components/Cell/index.d.ts +8 -0
  182. package/dist/types/components/CheckList/CheckList.d.ts +11 -0
  183. package/dist/types/components/CheckList/index.d.ts +3 -0
  184. package/dist/types/components/Checkbox/Checkbox.d.ts +62 -0
  185. package/dist/types/components/Checkbox/index.d.ts +3 -0
  186. package/dist/types/components/Collapse/Collapse.d.ts +17 -0
  187. package/dist/types/components/Collapse/index.d.ts +3 -0
  188. package/dist/types/components/DatePicker/DatePicker.d.ts +13 -0
  189. package/dist/types/components/DatePicker/index.d.ts +3 -0
  190. package/dist/types/components/DateRangePicker/DateRangePicker.d.ts +13 -0
  191. package/dist/types/components/DateRangePicker/index.d.ts +3 -0
  192. package/dist/types/components/Dialog/Dialog.d.ts +16 -0
  193. package/dist/types/components/Dialog/imperative.d.ts +8 -0
  194. package/dist/types/components/Dialog/index.d.ts +8 -0
  195. package/dist/types/components/Divider/Divider.d.ts +11 -0
  196. package/dist/types/components/Divider/index.d.ts +3 -0
  197. package/dist/types/components/DropDownMenu/DropdownMenu.d.ts +19 -0
  198. package/dist/types/components/DropDownMenu/index.d.ts +2 -0
  199. package/dist/types/components/Flex/Flex.d.ts +25 -0
  200. package/dist/types/components/Flex/index.d.ts +3 -0
  201. package/dist/types/components/Grid/Grid.d.ts +22 -0
  202. package/dist/types/components/Grid/index.d.ts +3 -0
  203. package/dist/types/components/GridView/GridView.d.ts +59 -0
  204. package/dist/types/components/GridView/index.d.ts +2 -0
  205. package/dist/types/components/Icon/Icon.d.ts +12 -0
  206. package/dist/types/components/Icon/icon-data.d.ts +42 -0
  207. package/dist/types/components/Icon/index.d.ts +3 -0
  208. package/dist/types/components/Input/Input.d.ts +17 -0
  209. package/dist/types/components/Input/index.d.ts +3 -0
  210. package/dist/types/components/NavBar/NavBar.d.ts +20 -0
  211. package/dist/types/components/NavBar/index.d.ts +3 -0
  212. package/dist/types/components/Popup/Popup.d.ts +23 -0
  213. package/dist/types/components/Popup/index.d.ts +3 -0
  214. package/dist/types/components/Radio/Radio.d.ts +62 -0
  215. package/dist/types/components/Radio/index.d.ts +3 -0
  216. package/dist/types/components/Search/Search.d.ts +26 -0
  217. package/dist/types/components/Search/index.d.ts +3 -0
  218. package/dist/types/components/Stepper/Stepper.d.ts +22 -0
  219. package/dist/types/components/Stepper/index.d.ts +3 -0
  220. package/dist/types/components/Switch/Switch.d.ts +16 -0
  221. package/dist/types/components/Switch/index.d.ts +3 -0
  222. package/dist/types/components/Tabbar/Tabbar.d.ts +39 -0
  223. package/dist/types/components/Tabbar/index.d.ts +3 -0
  224. package/dist/types/components/Tabs/Tabs.d.ts +25 -0
  225. package/dist/types/components/Tabs/index.d.ts +3 -0
  226. package/dist/types/components/Tag/Tag.d.ts +39 -0
  227. package/dist/types/components/Tag/index.d.ts +3 -0
  228. package/dist/types/components/TimePicker/TimePicker.d.ts +12 -0
  229. package/dist/types/components/TimePicker/index.d.ts +3 -0
  230. package/dist/types/components/Tip/Tip.d.ts +32 -0
  231. package/dist/types/components/Tip/index.d.ts +3 -0
  232. package/dist/types/components/Toast/Toast.d.ts +11 -0
  233. package/dist/types/components/Toast/index.d.ts +15 -0
  234. package/dist/types/components/Tooltip/Tooltip.d.ts +17 -0
  235. package/dist/types/components/Tooltip/index.d.ts +3 -0
  236. package/dist/types/components/index.d.ts +31 -0
  237. package/dist/types/index.d.ts +7 -0
  238. package/dist/types/utils/color.d.ts +1 -0
  239. package/dist/wz-h5-design.es.js +2449 -0
  240. package/dist/wz-h5-design.umd.js +6 -0
  241. package/package.json +84 -0
@@ -0,0 +1,124 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ const Popup = ({
4
+ visible = false,
5
+ position = "bottom",
6
+ mask = true,
7
+ maskClosable = true,
8
+ round = false,
9
+ duration = 300,
10
+ zIndex = 1e3,
11
+ destroyOnClose = false,
12
+ className = "",
13
+ style = {},
14
+ maskStyle = {},
15
+ children,
16
+ onClose,
17
+ onClosed,
18
+ afterShow,
19
+ closeable = false,
20
+ title
21
+ }) => {
22
+ const [display, setDisplay] = useState(visible);
23
+ const [animating, setAnimating] = useState(false);
24
+ const [active, setActive] = useState(visible);
25
+ useEffect(() => {
26
+ if (visible) {
27
+ open();
28
+ } else {
29
+ close();
30
+ }
31
+ }, [visible]);
32
+ const open = () => {
33
+ if (display) return;
34
+ setDisplay(true);
35
+ setAnimating(true);
36
+ requestAnimationFrame(() => {
37
+ requestAnimationFrame(() => {
38
+ setActive(true);
39
+ setTimeout(() => {
40
+ setAnimating(false);
41
+ afterShow == null ? void 0 : afterShow();
42
+ }, duration);
43
+ });
44
+ });
45
+ };
46
+ const close = () => {
47
+ if (!display) return;
48
+ setActive(false);
49
+ setAnimating(true);
50
+ setTimeout(() => {
51
+ setAnimating(false);
52
+ setDisplay(false);
53
+ onClosed == null ? void 0 : onClosed();
54
+ }, duration);
55
+ };
56
+ const handleMaskClick = () => {
57
+ if (maskClosable && !animating) {
58
+ onClose == null ? void 0 : onClose();
59
+ }
60
+ };
61
+ const handleCloseClick = () => {
62
+ if (!animating) {
63
+ onClose == null ? void 0 : onClose();
64
+ }
65
+ };
66
+ const popupStyle = {
67
+ ...style,
68
+ zIndex,
69
+ transitionDuration: `${duration}ms`
70
+ };
71
+ const maskBaseStyle = {
72
+ ...maskStyle,
73
+ zIndex,
74
+ transitionDuration: `${duration}ms`
75
+ };
76
+ if (!display && destroyOnClose) {
77
+ return null;
78
+ }
79
+ return /* @__PURE__ */ jsxs(
80
+ "div",
81
+ {
82
+ className: `wz-popup-container ${display ? "wz-popup--display" : ""}`,
83
+ style: { zIndex },
84
+ children: [
85
+ mask && /* @__PURE__ */ jsx(
86
+ "div",
87
+ {
88
+ className: `wz-popup-mask ${active ? "wz-popup-mask--active" : ""}`,
89
+ style: maskBaseStyle,
90
+ onClick: handleMaskClick
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsxs(
94
+ "div",
95
+ {
96
+ className: `
97
+ wz-popup
98
+ wz-popup--${position}
99
+ ${active ? "wz-popup--active" : ""}
100
+ ${round ? "wz-popup--round" : ""}
101
+ ${className}
102
+ `,
103
+ style: popupStyle,
104
+ children: [
105
+ closeable && /* @__PURE__ */ jsx(
106
+ "div",
107
+ {
108
+ className: "wz-popup-close",
109
+ onClick: handleCloseClick,
110
+ children: /* @__PURE__ */ jsx("span", { className: "wz-popup-close-icon", children: "×" })
111
+ }
112
+ ),
113
+ title && /* @__PURE__ */ jsx("div", { className: "wz-popup-title", children: title }),
114
+ children
115
+ ]
116
+ }
117
+ )
118
+ ]
119
+ }
120
+ );
121
+ };
122
+ export {
123
+ Popup as default
124
+ };
@@ -0,0 +1 @@
1
+ !function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["react/jsx-runtime","react"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).Popup=s(e.jsxRuntime,e.React)}(this,(function(e,s){"use strict";return({visible:n=!1,position:t="bottom",mask:o=!0,maskClosable:i=!0,round:l=!1,duration:a=300,zIndex:u=1e3,destroyOnClose:p=!1,className:r="",style:c={},maskStyle:d={},children:m,onClose:f,onClosed:x,afterShow:z,closeable:w=!1,title:y})=>{const[h,j]=s.useState(n),[v,b]=s.useState(!1),[k,N]=s.useState(n);s.useEffect((()=>{n?C():$()}),[n]);const C=()=>{h||(j(!0),b(!0),requestAnimationFrame((()=>{requestAnimationFrame((()=>{N(!0),setTimeout((()=>{b(!1),null==z||z()}),a)}))})))},$=()=>{h&&(N(!1),b(!0),setTimeout((()=>{b(!1),j(!1),null==x||x()}),a))},S={...c,zIndex:u,transitionDuration:`${a}ms`},q={...d,zIndex:u,transitionDuration:`${a}ms`};return!h&&p?null:e.jsxs("div",{className:"wz-popup-container "+(h?"wz-popup--display":""),style:{zIndex:u},children:[o&&e.jsx("div",{className:"wz-popup-mask "+(k?"wz-popup-mask--active":""),style:q,onClick:()=>{i&&!v&&(null==f||f())}}),e.jsxs("div",{className:`\n wz-popup \n wz-popup--${t} \n ${k?"wz-popup--active":""} \n ${l?"wz-popup--round":""}\n ${r}\n `,style:S,children:[w&&e.jsx("div",{className:"wz-popup-close",onClick:()=>{v||null==f||f()},children:e.jsx("span",{className:"wz-popup-close-icon",children:"×"})}),y&&e.jsx("div",{className:"wz-popup-title",children:y}),m]})]})}}));
@@ -0,0 +1 @@
1
+ .wz-popup-container{pointer-events:none;z-index:var(--wz-popup-z-index,1000);width:100%;height:100%;display:none;position:fixed;top:0;left:0}.wz-popup--display{display:block}.wz-popup-mask{background-color:var(--wz-popup-mask-color,#0009);opacity:0;transition:opacity var(--wz-popup-transition-duration,.3s)ease;pointer-events:auto;width:100%;height:100%;position:absolute;top:0;left:0}.wz-popup-mask--active{opacity:1}.wz-popup{background-color:var(--wz-popup-background,#fff);transition:all var(--wz-popup-transition-duration,.3s)ease;pointer-events:auto;-webkit-overflow-scrolling:touch;max-height:100%;padding:10px;position:absolute;overflow:auto}.wz-popup-title{text-align:center;color:var(--wz-popup-title-color,#323233);padding:5px;font-size:16px;font-weight:600;line-height:24px;position:relative}.wz-popup-close{z-index:1;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:absolute;top:10px;right:16px}.wz-popup-close-icon{text-align:center;color:var(--wz-popup-close-icon-color,#969799);width:24px;height:24px;font-size:24px;font-weight:300;line-height:24px;display:block}.wz-popup--round{border-radius:var(--wz-popup-round-radius,16px)}.wz-popup--top{width:100%;top:0;left:0;transform:translateY(-100%)}.wz-popup--top.wz-popup--active{transform:translateY(0)}.wz-popup--right{height:100%;top:0;right:0;transform:translate(100%)}.wz-popup--right.wz-popup--active{transform:translate(0)}.wz-popup--bottom{width:100%;bottom:0;left:0;transform:translateY(100%)}.wz-popup--bottom.wz-popup--active{transform:translateY(0)}.wz-popup--left{height:100%;top:0;left:0;transform:translate(-100%)}.wz-popup--left.wz-popup--active{transform:translate(0)}.wz-popup--bottom.wz-popup--round{border-radius:var(--wz-popup-round-radius,16px)var(--wz-popup-round-radius,16px)0 0}.wz-popup--top.wz-popup--round{border-radius:0 0 var(--wz-popup-round-radius,16px)var(--wz-popup-round-radius,16px)}.wz-popup--right.wz-popup--round{border-radius:var(--wz-popup-round-radius,16px)0 0 var(--wz-popup-round-radius,16px)}.wz-popup--left.wz-popup--round{border-radius:0 var(--wz-popup-round-radius,16px)var(--wz-popup-round-radius,16px)0}@media (max-width:767px){.wz-popup--bottom,.wz-popup--top{max-height:80%}.wz-popup--left,.wz-popup--right{max-width:80%}}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-popup-container{pointer-events:none;z-index:var(--wz-popup-z-index,1000);width:100%;height:100%;display:none;position:fixed;top:0;left:0}.wz-popup--display{display:block}.wz-popup-mask{background-color:var(--wz-popup-mask-color,#0009);opacity:0;transition:opacity var(--wz-popup-transition-duration,.3s)ease;pointer-events:auto;width:100%;height:100%;position:absolute;top:0;left:0}.wz-popup-mask--active{opacity:1}.wz-popup{background-color:var(--wz-popup-background,#fff);transition:all var(--wz-popup-transition-duration,.3s)ease;pointer-events:auto;-webkit-overflow-scrolling:touch;max-height:100%;padding:10px;position:absolute;overflow:auto}.wz-popup-title{text-align:center;color:var(--wz-popup-title-color,#323233);padding:5px;font-size:16px;font-weight:600;line-height:24px;position:relative}.wz-popup-close{z-index:1;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:absolute;top:10px;right:16px}.wz-popup-close-icon{text-align:center;color:var(--wz-popup-close-icon-color,#969799);width:24px;height:24px;font-size:24px;font-weight:300;line-height:24px;display:block}.wz-popup--round{border-radius:var(--wz-popup-round-radius,16px)}.wz-popup--top{width:100%;top:0;left:0;transform:translateY(-100%)}.wz-popup--top.wz-popup--active{transform:translateY(0)}.wz-popup--right{height:100%;top:0;right:0;transform:translate(100%)}.wz-popup--right.wz-popup--active{transform:translate(0)}.wz-popup--bottom{width:100%;bottom:0;left:0;transform:translateY(100%)}.wz-popup--bottom.wz-popup--active{transform:translateY(0)}.wz-popup--left{height:100%;top:0;left:0;transform:translate(-100%)}.wz-popup--left.wz-popup--active{transform:translate(0)}.wz-popup--bottom.wz-popup--round{border-radius:var(--wz-popup-round-radius,16px)var(--wz-popup-round-radius,16px)0 0}.wz-popup--top.wz-popup--round{border-radius:0 0 var(--wz-popup-round-radius,16px)var(--wz-popup-round-radius,16px)}.wz-popup--right.wz-popup--round{border-radius:var(--wz-popup-round-radius,16px)0 0 var(--wz-popup-round-radius,16px)}.wz-popup--left.wz-popup--round{border-radius:0 var(--wz-popup-round-radius,16px)var(--wz-popup-round-radius,16px)0}@media (max-width:767px){.wz-popup--bottom,.wz-popup--top{max-height:80%}.wz-popup--left,.wz-popup--right{max-width:80%}}
@@ -0,0 +1,82 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import React, { useContext, createContext } from "react";
3
+ const RadioGroupContext = createContext({});
4
+ const Radio = ({
5
+ size,
6
+ checked,
7
+ disabled,
8
+ onChange,
9
+ children,
10
+ value,
11
+ className = "",
12
+ style,
13
+ ...rest
14
+ }) => {
15
+ const groupContext = useContext(RadioGroupContext);
16
+ const isInGroup = !!groupContext.value;
17
+ const handleChange = (e) => {
18
+ var _a;
19
+ if (!disabled && !groupContext.disabled) {
20
+ if (isInGroup) {
21
+ (_a = groupContext.onChange) == null ? void 0 : _a.call(groupContext, value);
22
+ } else {
23
+ onChange == null ? void 0 : onChange(e.target.checked);
24
+ }
25
+ }
26
+ };
27
+ const isChecked = isInGroup ? groupContext.value === value : checked;
28
+ const isDisabled = disabled || groupContext.disabled;
29
+ const radioSize = size || groupContext.size || "medium";
30
+ return /* @__PURE__ */ jsxs(
31
+ "label",
32
+ {
33
+ className: `wz-radio-wrapper ${isDisabled ? "wz-radio--disabled" : ""} wz-radio--${radioSize} ${className}`,
34
+ style,
35
+ children: [
36
+ /* @__PURE__ */ jsx(
37
+ "input",
38
+ {
39
+ type: "radio",
40
+ className: "wz-radio-input",
41
+ checked: isChecked,
42
+ disabled: isDisabled,
43
+ onChange: handleChange,
44
+ value,
45
+ ...rest
46
+ }
47
+ ),
48
+ /* @__PURE__ */ jsx("span", { className: "wz-radio-inner" }),
49
+ children && /* @__PURE__ */ jsx("span", { className: "wz-radio-label", children })
50
+ ]
51
+ }
52
+ );
53
+ };
54
+ const RadioGroup = ({
55
+ value,
56
+ defaultValue,
57
+ onChange,
58
+ disabled,
59
+ size,
60
+ children,
61
+ className = "",
62
+ style
63
+ }) => {
64
+ const [innerValue, setInnerValue] = React.useState(defaultValue);
65
+ const handleChange = (newValue) => {
66
+ setInnerValue(newValue);
67
+ onChange == null ? void 0 : onChange(newValue);
68
+ };
69
+ const contextValue = {
70
+ value: value !== void 0 ? value : innerValue,
71
+ onChange: handleChange,
72
+ disabled,
73
+ size
74
+ };
75
+ return /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { className: `wz-radio-group ${className}`, style, children }) });
76
+ };
77
+ Radio.Group = RadioGroup;
78
+ Radio.displayName = "Radio";
79
+ RadioGroup.displayName = "Radio.Group";
80
+ export {
81
+ Radio as default
82
+ };
@@ -0,0 +1 @@
1
+ !function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a(require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["react/jsx-runtime","react"],a):(e="undefined"!=typeof globalThis?globalThis:e||self).Radio=a(e.jsxRuntime,e.React)}(this,(function(e,a){"use strict";const s=a.createContext({}),i=({size:i,checked:l,disabled:d,onChange:n,children:r,value:t,className:o="",style:u,...c})=>{const p=a.useContext(s),h=!!p.value,m=h?p.value===t:l,f=d||p.disabled,x=i||p.size||"medium";return e.jsxs("label",{className:`wz-radio-wrapper ${f?"wz-radio--disabled":""} wz-radio--${x} ${o}`,style:u,children:[e.jsx("input",{type:"radio",className:"wz-radio-input",checked:m,disabled:f,onChange:e=>{var a;d||p.disabled||(h?null==(a=p.onChange)||a.call(p,t):null==n||n(e.target.checked))},value:t,...c}),e.jsx("span",{className:"wz-radio-inner"}),r&&e.jsx("span",{className:"wz-radio-label",children:r})]})},l=({value:i,defaultValue:l,onChange:d,disabled:n,size:r,children:t,className:o="",style:u})=>{const[c,p]=a.useState(l),h={value:void 0!==i?i:c,onChange:e=>{p(e),null==d||d(e)},disabled:n,size:r};return e.jsx(s.Provider,{value:h,children:e.jsx("div",{className:`wz-radio-group ${o}`,style:u,children:t})})};return i.Group=l,i.displayName="Radio",l.displayName="Radio.Group",i}));
@@ -0,0 +1 @@
1
+ .wz-radio-group{flex-direction:column;gap:12px;display:inline-flex}.wz-radio-group.wz-radio-group--horizontal{flex-direction:row;align-items:center}.wz-radio-wrapper{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;outline:none;align-items:center;padding:8px 0;font-family:"Alibaba PuHuiTi 2.0",Alibaba-PuHuiTi-Regular,PingFang SC,Microsoft YaHei,Arial,sans-serif;transition:all .2s ease-in-out;display:inline-flex;position:relative}.wz-radio-wrapper.wz-radio--small .wz-radio-inner{width:16px;height:16px}.wz-radio-wrapper.wz-radio--small .wz-radio-label{margin-left:8px;font-size:13px}.wz-radio-wrapper.wz-radio--medium .wz-radio-inner{width:18px;height:18px}.wz-radio-wrapper.wz-radio--medium .wz-radio-label{margin-left:12px;font-size:14px}.wz-radio-wrapper.wz-radio--large .wz-radio-inner{width:20px;height:20px}.wz-radio-wrapper.wz-radio--large .wz-radio-label{margin-left:16px;font-size:16px}.wz-radio-wrapper.wz-radio--disabled{cursor:not-allowed;opacity:.6}.wz-radio-wrapper.wz-radio--disabled .wz-radio-inner{background-color:#f5f7fa;border-color:#e4e7ed}.wz-radio-wrapper.wz-radio--disabled .wz-radio-label{color:#c0c4cc}.wz-radio-input{opacity:0;z-index:-1;width:0;height:0;margin:0;padding:0;position:absolute}.wz-radio-inner{background-color:#fff;border:1px solid #dcdfe6;border-radius:50%;transition:all .2s ease-in-out;display:inline-block;position:relative}.wz-radio-inner:after{content:"";background-color:var(--wz-primary-color,#22c94d);border-radius:50%;width:10px;height:10px;transition:all .2s ease-in-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.wz-radio-input:checked+.wz-radio-inner{border-color:var(--wz-primary-color,#22c94d)}.wz-radio-input:checked+.wz-radio-inner:after{transform:translate(-50%,-50%)scale(1)}.wz-radio-input:focus+.wz-radio-inner{border-color:var(--wz-primary-color,#22c94d);box-shadow:0 0 0 2px #22c94d26}.wz-radio-wrapper:hover .wz-radio-inner{border-color:var(--wz-primary-color,#22c94d)}.wz-radio-label{color:#333;font-family:"Alibaba PuHuiTi 2.0",Alibaba-PuHuiTi-Regular,PingFang SC,Microsoft YaHei,Arial,sans-serif;line-height:1.5}@media screen and (max-width:767px){.wz-radio-group{gap:8px}.wz-radio-wrapper.wz-radio--small .wz-radio-label{font-size:14px}.wz-radio-wrapper.wz-radio--medium .wz-radio-label{font-size:15px}.wz-radio-wrapper.wz-radio--large .wz-radio-label{font-size:16px}}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-radio-group{flex-direction:column;gap:12px;display:inline-flex}.wz-radio-group.wz-radio-group--horizontal{flex-direction:row;align-items:center}.wz-radio-wrapper{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;outline:none;align-items:center;padding:8px 0;font-family:"Alibaba PuHuiTi 2.0",Alibaba-PuHuiTi-Regular,PingFang SC,Microsoft YaHei,Arial,sans-serif;transition:all .2s ease-in-out;display:inline-flex;position:relative}.wz-radio-wrapper.wz-radio--small .wz-radio-inner{width:16px;height:16px}.wz-radio-wrapper.wz-radio--small .wz-radio-label{margin-left:8px;font-size:13px}.wz-radio-wrapper.wz-radio--medium .wz-radio-inner{width:18px;height:18px}.wz-radio-wrapper.wz-radio--medium .wz-radio-label{margin-left:12px;font-size:14px}.wz-radio-wrapper.wz-radio--large .wz-radio-inner{width:20px;height:20px}.wz-radio-wrapper.wz-radio--large .wz-radio-label{margin-left:16px;font-size:16px}.wz-radio-wrapper.wz-radio--disabled{cursor:not-allowed;opacity:.6}.wz-radio-wrapper.wz-radio--disabled .wz-radio-inner{background-color:#f5f7fa;border-color:#e4e7ed}.wz-radio-wrapper.wz-radio--disabled .wz-radio-label{color:#c0c4cc}.wz-radio-input{opacity:0;z-index:-1;width:0;height:0;margin:0;padding:0;position:absolute}.wz-radio-inner{background-color:#fff;border:1px solid #dcdfe6;border-radius:50%;transition:all .2s ease-in-out;display:inline-block;position:relative}.wz-radio-inner:after{content:"";background-color:var(--wz-primary-color,#22c94d);border-radius:50%;width:10px;height:10px;transition:all .2s ease-in-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.wz-radio-input:checked+.wz-radio-inner{border-color:var(--wz-primary-color,#22c94d)}.wz-radio-input:checked+.wz-radio-inner:after{transform:translate(-50%,-50%)scale(1)}.wz-radio-input:focus+.wz-radio-inner{border-color:var(--wz-primary-color,#22c94d);box-shadow:0 0 0 2px #22c94d26}.wz-radio-wrapper:hover .wz-radio-inner{border-color:var(--wz-primary-color,#22c94d)}.wz-radio-label{color:#333;font-family:"Alibaba PuHuiTi 2.0",Alibaba-PuHuiTi-Regular,PingFang SC,Microsoft YaHei,Arial,sans-serif;line-height:1.5}@media screen and (max-width:767px){.wz-radio-group{gap:8px}.wz-radio-wrapper.wz-radio--small .wz-radio-label{font-size:14px}.wz-radio-wrapper.wz-radio--medium .wz-radio-label{font-size:15px}.wz-radio-wrapper.wz-radio--large .wz-radio-label{font-size:16px}}
@@ -0,0 +1,158 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { forwardRef, useState, useRef, useImperativeHandle } from "react";
3
+ const Icon = ({
4
+ name,
5
+ size = 24,
6
+ color = "currentColor",
7
+ className = "",
8
+ style,
9
+ onClick,
10
+ type = "yunying"
11
+ // 默认使用yunying图标库
12
+ }) => {
13
+ const iconStyle = {
14
+ fontSize: typeof size === "number" ? `${size}px` : size,
15
+ color,
16
+ ...style
17
+ };
18
+ const iconFontClass = `iconfont-${type}`;
19
+ const iconPrefix = "icon-";
20
+ const iconClass = `${iconPrefix}${name}`;
21
+ return /* @__PURE__ */ jsx(
22
+ "i",
23
+ {
24
+ className: `wz-icon ${iconFontClass} ${iconClass} ${className}`,
25
+ style: iconStyle,
26
+ onClick
27
+ }
28
+ );
29
+ };
30
+ const Search = forwardRef(
31
+ ({
32
+ value,
33
+ defaultValue,
34
+ placeholder = "输入关键词搜索",
35
+ shape = "round",
36
+ clearable = true,
37
+ disabled = false,
38
+ prefix,
39
+ suffix,
40
+ leftIcon = /* @__PURE__ */ jsx(Icon, { name: "search", size: 16 }),
41
+ actionText = "搜索",
42
+ showCancel = false,
43
+ cancelText = "返回",
44
+ background,
45
+ style,
46
+ className = "",
47
+ onSearch,
48
+ onClear,
49
+ onChange,
50
+ onFocus,
51
+ onBlur,
52
+ onCancel,
53
+ ...props
54
+ }, ref) => {
55
+ const isControlled = value !== void 0;
56
+ const [innerValue, setInnerValue] = useState(defaultValue || "");
57
+ const [isFocused, setIsFocused] = useState(false);
58
+ const inputRef = useRef(null);
59
+ useImperativeHandle(ref, () => inputRef.current);
60
+ const inputValue = isControlled ? value : innerValue;
61
+ const showClear = clearable && inputValue && isFocused && !disabled;
62
+ const handleChange = (e) => {
63
+ const newValue = e.target.value;
64
+ if (!isControlled) setInnerValue(newValue);
65
+ onChange == null ? void 0 : onChange(newValue);
66
+ };
67
+ const handleFocus = (e) => {
68
+ setIsFocused(true);
69
+ onFocus == null ? void 0 : onFocus(e);
70
+ };
71
+ const handleBlur = (e) => {
72
+ setIsFocused(false);
73
+ onBlur == null ? void 0 : onBlur(e);
74
+ };
75
+ const handleSearch = () => {
76
+ var _a;
77
+ if (disabled) return;
78
+ (_a = inputRef.current) == null ? void 0 : _a.blur();
79
+ onSearch == null ? void 0 : onSearch(inputValue);
80
+ };
81
+ const handleClear = (e) => {
82
+ var _a;
83
+ e.preventDefault();
84
+ if (!isControlled) setInnerValue("");
85
+ onChange == null ? void 0 : onChange("");
86
+ onClear == null ? void 0 : onClear();
87
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
88
+ };
89
+ const handleKeyDown = (e) => {
90
+ if (e.key === "Enter" && !disabled) handleSearch();
91
+ };
92
+ const handleCancel = () => {
93
+ setIsFocused(false);
94
+ onCancel == null ? void 0 : onCancel();
95
+ };
96
+ const renderCancel = () => {
97
+ if (prefix || !showCancel || !isFocused) return null;
98
+ return /* @__PURE__ */ jsx("div", { className: "wz-search-cancel", onClick: handleCancel, children: cancelText });
99
+ };
100
+ const combinedStyle = {
101
+ ...style,
102
+ backgroundColor: background
103
+ };
104
+ return /* @__PURE__ */ jsxs(
105
+ "div",
106
+ {
107
+ className: `wz-search ${isFocused ? "wz-search-focused" : ""} ${className}`,
108
+ style: combinedStyle,
109
+ children: [
110
+ prefix && /* @__PURE__ */ jsx("div", { className: "wz-search-prefix", children: prefix }),
111
+ renderCancel(),
112
+ /* @__PURE__ */ jsxs(
113
+ "div",
114
+ {
115
+ className: `wz-search-content wz-search-shape-${shape} ${disabled ? "wz-search-disabled" : ""}`,
116
+ children: [
117
+ /* @__PURE__ */ jsxs(
118
+ "div",
119
+ {
120
+ className: `wz-search-input-wrapper ${showClear ? "wz-search-input-wrapper--with-clear" : ""}`,
121
+ children: [
122
+ leftIcon && /* @__PURE__ */ jsx("div", { className: "wz-search-left-icon", children: leftIcon }),
123
+ /* @__PURE__ */ jsx(
124
+ "input",
125
+ {
126
+ ref: inputRef,
127
+ className: "wz-search-input",
128
+ value: inputValue,
129
+ onChange: handleChange,
130
+ onFocus: handleFocus,
131
+ onBlur: handleBlur,
132
+ onKeyDown: handleKeyDown,
133
+ placeholder,
134
+ disabled,
135
+ ...props
136
+ }
137
+ ),
138
+ showClear && /* @__PURE__ */ jsx("div", { className: "wz-search-clear", onMouseDown: handleClear, children: /* @__PURE__ */ jsx(Icon, { name: "close", size: 16, color: "#BDBDBD" }) })
139
+ ]
140
+ }
141
+ ),
142
+ actionText && /* @__PURE__ */ jsxs("div", { className: "wz-search-action", onClick: handleSearch, children: [
143
+ /* @__PURE__ */ jsx("div", { className: "wz-search-divider" }),
144
+ /* @__PURE__ */ jsx("div", { className: "wz-search-action-text", children: actionText })
145
+ ] })
146
+ ]
147
+ }
148
+ ),
149
+ suffix && /* @__PURE__ */ jsx("div", { className: "wz-search-suffix", children: suffix })
150
+ ]
151
+ }
152
+ );
153
+ }
154
+ );
155
+ Search.displayName = "Search";
156
+ export {
157
+ Search as default
158
+ };
@@ -0,0 +1 @@
1
+ !function(e,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s(require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["react/jsx-runtime","react"],s):(e="undefined"!=typeof globalThis?globalThis:e||self).Search=s(e.jsxRuntime,e.React)}(this,(function(e,s){"use strict";const a=({name:s,size:a=24,color:n="currentColor",className:c="",style:l,onClick:r,type:i="yunying"})=>{const o={fontSize:"number"==typeof a?`${a}px`:a,color:n,...l},t=`iconfont-${i}`,u=`icon-${s}`;return e.jsx("i",{className:`wz-icon ${t} ${u} ${c}`,style:o,onClick:r})},n=s.forwardRef((({value:n,defaultValue:c,placeholder:l="输入关键词搜索",shape:r="round",clearable:i=!0,disabled:o=!1,prefix:t,suffix:u,leftIcon:d=e.jsx(a,{name:"search",size:16}),actionText:h="搜索",showCancel:f=!1,cancelText:x="返回",background:m,style:p,className:w="",onSearch:z,onClear:v,onChange:j,onFocus:N,onBlur:y,onCancel:b,...C},$)=>{const g=void 0!==n,[k,D]=s.useState(c||""),[S,B]=s.useState(!1),R=s.useRef(null);s.useImperativeHandle($,(()=>R.current));const T=g?n:k,q=i&&T&&S&&!o,F=()=>{var e;o||(null==(e=R.current)||e.blur(),null==z||z(T))},I=()=>{B(!1),null==b||b()},E={...p,backgroundColor:m};return e.jsxs("div",{className:`wz-search ${S?"wz-search-focused":""} ${w}`,style:E,children:[t&&e.jsx("div",{className:"wz-search-prefix",children:t}),!t&&f&&S?e.jsx("div",{className:"wz-search-cancel",onClick:I,children:x}):null,e.jsxs("div",{className:`wz-search-content wz-search-shape-${r} ${o?"wz-search-disabled":""}`,children:[e.jsxs("div",{className:"wz-search-input-wrapper "+(q?"wz-search-input-wrapper--with-clear":""),children:[d&&e.jsx("div",{className:"wz-search-left-icon",children:d}),e.jsx("input",{ref:R,className:"wz-search-input",value:T,onChange:e=>{const s=e.target.value;g||D(s),null==j||j(s)},onFocus:e=>{B(!0),null==N||N(e)},onBlur:e=>{B(!1),null==y||y(e)},onKeyDown:e=>{"Enter"!==e.key||o||F()},placeholder:l,disabled:o,...C}),q&&e.jsx("div",{className:"wz-search-clear",onMouseDown:e=>{var s;e.preventDefault(),g||D(""),null==j||j(""),null==v||v(),null==(s=R.current)||s.focus()},children:e.jsx(a,{name:"close",size:16,color:"#BDBDBD"})})]}),h&&e.jsxs("div",{className:"wz-search-action",onClick:F,children:[e.jsx("div",{className:"wz-search-divider"}),e.jsx("div",{className:"wz-search-action-text",children:h})]})]}),u&&e.jsx("div",{className:"wz-search-suffix",children:u})]})}));return n.displayName="Search",n}));
@@ -0,0 +1 @@
1
+ :root{--wz-search-height:48px;--wz-search-radius:8px;--wz-search-bg:#f5f5f5;--wz-search-active-bg:#f0f0f0;--wz-search-border:#ebebeb;--wz-search-shadow:0 2px 8px #00000008;--wz-search-font-size:16px;--wz-search-placeholder-color:#c0c4cc;--wz-search-text-color:#333;--wz-search-divider-color:#ebebeb;--wz-search-btn-color:#1890ff;--wz-search-btn-active-color:#096dd9;--wz-search-btn-text:"搜索";--wz-search-padding:12px;--wz-search-inner-padding:0 16px;--wz-search-disabled-opacity:.5}.wz-search{box-sizing:border-box;background-color:#f7f8fa;align-items:center;width:100%;padding:8px 12px;display:flex}.wz-search-cancel{color:var(--wz-primary-color,#22c94d);cursor:pointer;white-space:nowrap;padding-right:12px;font-size:14px}.wz-search-prefix{flex-shrink:0;align-items:center;padding-right:12px;display:flex}.wz-search-content{background-color:#fff;flex:1;align-items:center;min-width:0;padding:6px 12px;transition:all .2s;display:flex}.wz-search-content.wz-search-shape-round{border-radius:100px}.wz-search-content.wz-search-shape-square{border-radius:4px}.wz-search-content.wz-search-disabled{opacity:.6;cursor:not-allowed;background-color:#f2f3f5}.wz-search-focused .wz-search.wz-search-content{border:1px solid var(--wz-primary-color,#22c94d);padding:5px 11px}.wz-search-input-wrapper{flex:1;align-items:center;min-width:0;display:flex;position:relative}.wz-search-left-icon{color:#999;align-items:center;margin-right:6px;display:flex}.wz-search-input{color:#333;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;outline:none;flex:1;padding:0;font-size:14px;line-height:1.5;overflow:hidden}.wz-search-input-wrapper--with-clear .wz-search-input{padding-right:22px}.wz-search-input::placeholder{color:#b3b3b3}.wz-search-clear{cursor:pointer;align-items:center;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.wz-search-action{cursor:pointer;align-items:center;display:flex}.wz-search-divider{background-color:#e0e0e0;width:1px;height:16px;margin:0 12px}.wz-search-action-text{color:var(--wz-primary-color,#22c94d);white-space:nowrap;font-size:14px}.wz-search-suffix{cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;padding-left:12px;display:flex}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-icon{justify-content:center;align-items:center;transition:color .2s ease-in-out;display:inline-flex}.wz-icon-home:before{content:""}.wz-icon-search:before{content:""}.wz-icon-person:before{content:""}.wz-icon-settings:before{content:""}.wz-icon-notifications:before{content:""}.wz-icon-message:before{content:""}.wz-icon-favorite:before{content:""}.wz-icon-star:before{content:""}.wz-icon-close:before{content:""}.wz-icon-check:before{content:""}.wz-icon-arrow-back:before{content:""}.wz-icon-arrow-forward:before{content:""}.wz-icon-menu:before{content:""}.wz-icon-more:before{content:""}.wz-icon-add:before{content:""}.wz-icon-edit:before{content:""}.wz-icon-delete:before{content:""}.wz-icon-share:before{content:""}.wz-icon-download:before{content:""}.wz-icon-upload:before{content:""}.wz-icon-refresh:before{content:""}.wz-icon-help:before{content:""}.wz-icon-info:before{content:""}.wz-icon-warning:before{content:""}.wz-icon-error:before{content:""}.wz-icon-success:before{content:""}:root{--wz-search-height:48px;--wz-search-radius:8px;--wz-search-bg:#f5f5f5;--wz-search-active-bg:#f0f0f0;--wz-search-border:#ebebeb;--wz-search-shadow:0 2px 8px #00000008;--wz-search-font-size:16px;--wz-search-placeholder-color:#c0c4cc;--wz-search-text-color:#333;--wz-search-divider-color:#ebebeb;--wz-search-btn-color:#1890ff;--wz-search-btn-active-color:#096dd9;--wz-search-btn-text:"搜索";--wz-search-padding:12px;--wz-search-inner-padding:0 16px;--wz-search-disabled-opacity:.5}.wz-search{box-sizing:border-box;background-color:#f7f8fa;align-items:center;width:100%;padding:8px 12px;display:flex}.wz-search-cancel{color:var(--wz-primary-color,#22c94d);cursor:pointer;white-space:nowrap;padding-right:12px;font-size:14px}.wz-search-prefix{flex-shrink:0;align-items:center;padding-right:12px;display:flex}.wz-search-content{background-color:#fff;flex:1;align-items:center;min-width:0;padding:6px 12px;transition:all .2s;display:flex}.wz-search-content.wz-search-shape-round{border-radius:100px}.wz-search-content.wz-search-shape-square{border-radius:4px}.wz-search-content.wz-search-disabled{opacity:.6;cursor:not-allowed;background-color:#f2f3f5}.wz-search-focused .wz-search.wz-search-content{border:1px solid var(--wz-primary-color,#22c94d);padding:5px 11px}.wz-search-input-wrapper{flex:1;align-items:center;min-width:0;display:flex;position:relative}.wz-search-left-icon{color:#999;align-items:center;margin-right:6px;display:flex}.wz-search-input{color:#333;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;outline:none;flex:1;padding:0;font-size:14px;line-height:1.5;overflow:hidden}.wz-search-input-wrapper--with-clear .wz-search-input{padding-right:22px}.wz-search-input::placeholder{color:#b3b3b3}.wz-search-clear{cursor:pointer;align-items:center;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.wz-search-action{cursor:pointer;align-items:center;display:flex}.wz-search-divider{background-color:#e0e0e0;width:1px;height:16px;margin:0 12px}.wz-search-action-text{color:var(--wz-primary-color,#22c94d);white-space:nowrap;font-size:14px}.wz-search-suffix{cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;padding-left:12px;display:flex}
@@ -0,0 +1,140 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ const Icon = ({
4
+ name,
5
+ size = 24,
6
+ color = "currentColor",
7
+ className = "",
8
+ style,
9
+ onClick,
10
+ type = "yunying"
11
+ // 默认使用yunying图标库
12
+ }) => {
13
+ const iconStyle = {
14
+ fontSize: typeof size === "number" ? `${size}px` : size,
15
+ color,
16
+ ...style
17
+ };
18
+ const iconFontClass = `iconfont-${type}`;
19
+ const iconPrefix = "icon-";
20
+ const iconClass = `${iconPrefix}${name}`;
21
+ return /* @__PURE__ */ jsx(
22
+ "i",
23
+ {
24
+ className: `wz-icon ${iconFontClass} ${iconClass} ${className}`,
25
+ style: iconStyle,
26
+ onClick
27
+ }
28
+ );
29
+ };
30
+ const Stepper = ({
31
+ value,
32
+ min = -Infinity,
33
+ max = Infinity,
34
+ step = 1,
35
+ onChange,
36
+ disabled = false,
37
+ prefix,
38
+ suffix,
39
+ showMinus = true,
40
+ // 默认显示减号按钮
41
+ showPlus = true,
42
+ // 默认显示加号按钮
43
+ precision,
44
+ className = "",
45
+ style,
46
+ inputStyle,
47
+ inputClassName = "",
48
+ buttonStyle,
49
+ buttonClassName = ""
50
+ }) => {
51
+ const [inputValue, setInputValue] = useState(String(value));
52
+ const [isFocused, setIsFocused] = useState(false);
53
+ useEffect(() => {
54
+ if (!isFocused) {
55
+ setInputValue(String(value));
56
+ }
57
+ }, [value, isFocused]);
58
+ const handleAdd = () => {
59
+ if (disabled) return;
60
+ let num = Number(value) + step;
61
+ if (num > max) num = max;
62
+ num = precision !== void 0 ? parseFloat(num.toFixed(precision)) : num;
63
+ onChange(num);
64
+ setInputValue(String(num));
65
+ };
66
+ const handleMinus = () => {
67
+ if (disabled) return;
68
+ let num = Number(value) - step;
69
+ if (num < min) num = min;
70
+ num = precision !== void 0 ? parseFloat(num.toFixed(precision)) : num;
71
+ onChange(num);
72
+ setInputValue(String(num));
73
+ };
74
+ const handleInputFocus = (e) => {
75
+ setIsFocused(true);
76
+ e.target.select();
77
+ };
78
+ const handleInputChange = (e) => {
79
+ setInputValue(e.target.value);
80
+ };
81
+ const handleInputBlur = () => {
82
+ setIsFocused(false);
83
+ let num = Number(inputValue);
84
+ if (isNaN(num)) {
85
+ setInputValue(String(value));
86
+ return;
87
+ }
88
+ if (num > max) num = max;
89
+ if (num < min) num = min;
90
+ num = precision !== void 0 ? parseFloat(num.toFixed(precision)) : num;
91
+ onChange(num);
92
+ setInputValue(String(num));
93
+ };
94
+ const minusDisabled = disabled || Number(value) <= min;
95
+ const addDisabled = disabled || Number(value) >= max;
96
+ return /* @__PURE__ */ jsxs("div", { className: `wz-stepper ${className}`, style, children: [
97
+ showMinus && /* @__PURE__ */ jsx(
98
+ "button",
99
+ {
100
+ className: `wz-stepper-btn wz-stepper-btn-minus ${buttonClassName}`,
101
+ onClick: handleMinus,
102
+ disabled: minusDisabled,
103
+ type: "button",
104
+ style: buttonStyle,
105
+ children: /* @__PURE__ */ jsx(Icon, { name: "jian", type: "yunying", size: 21 })
106
+ }
107
+ ),
108
+ /* @__PURE__ */ jsxs("div", { className: "wz-stepper-input-wrapper", children: [
109
+ prefix && /* @__PURE__ */ jsx("span", { className: "wz-stepper-prefix", children: prefix }),
110
+ /* @__PURE__ */ jsx(
111
+ "input",
112
+ {
113
+ className: `wz-stepper-input ${inputClassName}`,
114
+ type: "text",
115
+ value: inputValue,
116
+ onChange: handleInputChange,
117
+ onFocus: handleInputFocus,
118
+ onBlur: handleInputBlur,
119
+ disabled,
120
+ style: inputStyle
121
+ }
122
+ ),
123
+ suffix && /* @__PURE__ */ jsx("span", { className: "wz-stepper-suffix", children: suffix })
124
+ ] }),
125
+ showPlus && /* @__PURE__ */ jsx(
126
+ "button",
127
+ {
128
+ className: `wz-stepper-btn wz-stepper-btn-plus ${buttonClassName}`,
129
+ onClick: handleAdd,
130
+ disabled: addDisabled,
131
+ type: "button",
132
+ style: buttonStyle,
133
+ children: /* @__PURE__ */ jsx(Icon, { name: "jia", type: "yunying", size: 21 })
134
+ }
135
+ )
136
+ ] });
137
+ };
138
+ export {
139
+ Stepper as default
140
+ };
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["react/jsx-runtime","react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).Stepper=t(e.jsxRuntime,e.React)}(this,(function(e,t){"use strict";const s=({name:t,size:s=24,color:n="currentColor",className:i="",style:r,onClick:a,type:l="yunying"})=>{const o={fontSize:"number"==typeof s?`${s}px`:s,color:n,...r},u=`iconfont-${l}`,p=`icon-${t}`;return e.jsx("i",{className:`wz-icon ${u} ${p} ${i}`,style:o,onClick:a})};return({value:n,min:i=-1/0,max:r=1/0,step:a=1,onChange:l,disabled:o=!1,prefix:u,suffix:p,showMinus:c=!0,showPlus:d=!0,precision:m,className:f="",style:y,inputStyle:x,inputClassName:b="",buttonStyle:N,buttonClassName:j=""})=>{const[g,z]=t.useState(String(n)),[h,w]=t.useState(!1);t.useEffect((()=>{h||z(String(n))}),[n,h]);const S=o||Number(n)<=i,$=o||Number(n)>=r;return e.jsxs("div",{className:`wz-stepper ${f}`,style:y,children:[c&&e.jsx("button",{className:`wz-stepper-btn wz-stepper-btn-minus ${j}`,onClick:()=>{if(o)return;let e=Number(n)-a;e<i&&(e=i),e=void 0!==m?parseFloat(e.toFixed(m)):e,l(e),z(String(e))},disabled:S,type:"button",style:N,children:e.jsx(s,{name:"jian",type:"yunying",size:21})}),e.jsxs("div",{className:"wz-stepper-input-wrapper",children:[u&&e.jsx("span",{className:"wz-stepper-prefix",children:u}),e.jsx("input",{className:`wz-stepper-input ${b}`,type:"text",value:g,onChange:e=>{z(e.target.value)},onFocus:e=>{w(!0),e.target.select()},onBlur:()=>{w(!1);let e=Number(g);isNaN(e)?z(String(n)):(e>r&&(e=r),e<i&&(e=i),e=void 0!==m?parseFloat(e.toFixed(m)):e,l(e),z(String(e)))},disabled:o,style:x}),p&&e.jsx("span",{className:"wz-stepper-suffix",children:p})]}),d&&e.jsx("button",{className:`wz-stepper-btn wz-stepper-btn-plus ${j}`,onClick:()=>{if(o)return;let e=Number(n)+a;e>r&&(e=r),e=void 0!==m?parseFloat(e.toFixed(m)):e,l(e),z(String(e))},disabled:$,type:"button",style:N,children:e.jsx(s,{name:"jia",type:"yunying",size:21})})]})}}));
@@ -0,0 +1 @@
1
+ .wz-stepper{box-sizing:border-box;color:#333;background:0 0;border-radius:8px;align-items:center;width:-moz-fit-content;width:fit-content;min-width:0;font-size:15px;display:flex}.wz-stepper .wz-stepper-btn{color:var(--wz-primary-color-b,#22c94d);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#fff;border:none;border-radius:50%;outline:none;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:24px;transition:border-color .2s,color .2s,background .2s;display:flex}.wz-stepper .wz-stepper-btn:hover:not(:disabled){border-color:var(--wz-primary-color-b,#22c94d);color:var(--wz-primary-color-b,#22c94d);background:#f8f8f8}.wz-stepper .wz-stepper-btn:active:not(:disabled){background:#f7f7f7}.wz-stepper .wz-stepper-btn:disabled{color:#c0c4cc;cursor:not-allowed;background:#f8f8f8;border-color:#dcdfe6}.wz-stepper .wz-stepper-input-wrapper{box-sizing:border-box;background:#f8f8f8;border:1.5px solid #f7f7f7;border-radius:8px;align-items:center;width:-moz-fit-content;width:fit-content;min-width:0;height:40px;margin:0 8px;padding:0;transition:border-color .2s;display:flex}.wz-stepper .wz-stepper-input-wrapper:focus-within{border-color:var(--wz-primary-color-b,#22c94d)}.wz-stepper .wz-stepper-input-wrapper:disabled{background:#f8f8f8;border-color:#dcdfe6}.wz-stepper .wz-stepper-prefix,.wz-stepper .wz-stepper-suffix{color:#999;pointer-events:none;white-space:nowrap;flex-shrink:0;align-items:center;height:100%;padding:0 8px;font-size:15px;display:flex}.wz-stepper .wz-stepper-input{text-align:center;color:#333;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:textfield;caret-color:var(--wz-primary-color-b,#22c94d);background:0 0;border:none;outline:none;flex-shrink:0;width:100px;height:100%;margin:0;padding:0;font-family:inherit;font-size:15px;font-weight:600;transition:color .2s}.wz-stepper .wz-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.wz-stepper .wz-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.wz-stepper .wz-stepper-input:disabled{color:#c0c4cc;cursor:not-allowed;background:0 0}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-stepper{box-sizing:border-box;color:#333;background:0 0;border-radius:8px;align-items:center;width:-moz-fit-content;width:fit-content;min-width:0;font-size:15px;display:flex}.wz-stepper .wz-stepper-btn{color:var(--wz-primary-color-b,#22c94d);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#fff;border:none;border-radius:50%;outline:none;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:24px;transition:border-color .2s,color .2s,background .2s;display:flex}.wz-stepper .wz-stepper-btn:hover:not(:disabled){border-color:var(--wz-primary-color-b,#22c94d);color:var(--wz-primary-color-b,#22c94d);background:#f8f8f8}.wz-stepper .wz-stepper-btn:active:not(:disabled){background:#f7f7f7}.wz-stepper .wz-stepper-btn:disabled{color:#c0c4cc;cursor:not-allowed;background:#f8f8f8;border-color:#dcdfe6}.wz-stepper .wz-stepper-input-wrapper{box-sizing:border-box;background:#f8f8f8;border:1.5px solid #f7f7f7;border-radius:8px;align-items:center;width:-moz-fit-content;width:fit-content;min-width:0;height:40px;margin:0 8px;padding:0;transition:border-color .2s;display:flex}.wz-stepper .wz-stepper-input-wrapper:focus-within{border-color:var(--wz-primary-color-b,#22c94d)}.wz-stepper .wz-stepper-input-wrapper:disabled{background:#f8f8f8;border-color:#dcdfe6}.wz-stepper .wz-stepper-prefix,.wz-stepper .wz-stepper-suffix{color:#999;pointer-events:none;white-space:nowrap;flex-shrink:0;align-items:center;height:100%;padding:0 8px;font-size:15px;display:flex}.wz-stepper .wz-stepper-input{text-align:center;color:#333;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:textfield;caret-color:var(--wz-primary-color-b,#22c94d);background:0 0;border:none;outline:none;flex-shrink:0;width:100px;height:100%;margin:0;padding:0;font-family:inherit;font-size:15px;font-weight:600;transition:color .2s}.wz-stepper .wz-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.wz-stepper .wz-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.wz-stepper .wz-stepper-input:disabled{color:#c0c4cc;cursor:not-allowed;background:0 0}.wz-icon{justify-content:center;align-items:center;transition:color .2s ease-in-out;display:inline-flex}.wz-icon-home:before{content:""}.wz-icon-search:before{content:""}.wz-icon-person:before{content:""}.wz-icon-settings:before{content:""}.wz-icon-notifications:before{content:""}.wz-icon-message:before{content:""}.wz-icon-favorite:before{content:""}.wz-icon-star:before{content:""}.wz-icon-close:before{content:""}.wz-icon-check:before{content:""}.wz-icon-arrow-back:before{content:""}.wz-icon-arrow-forward:before{content:""}.wz-icon-menu:before{content:""}.wz-icon-more:before{content:""}.wz-icon-add:before{content:""}.wz-icon-edit:before{content:""}.wz-icon-delete:before{content:""}.wz-icon-share:before{content:""}.wz-icon-download:before{content:""}.wz-icon-upload:before{content:""}.wz-icon-refresh:before{content:""}.wz-icon-help:before{content:""}.wz-icon-info:before{content:""}.wz-icon-warning:before{content:""}.wz-icon-error:before{content:""}.wz-icon-success:before{content:""}
@@ -0,0 +1,53 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ const DEFAULT_ACTIVE_TEXT = "开启";
4
+ const DEFAULT_INACTIVE_TEXT = "关闭";
5
+ const Switch = ({
6
+ value,
7
+ defaultValue = false,
8
+ onChange,
9
+ disabled = false,
10
+ showText = true,
11
+ activeText = "",
12
+ inactiveText = "",
13
+ style,
14
+ className = "",
15
+ size = "default",
16
+ activeColor
17
+ }) => {
18
+ const [innerValue, setInnerValue] = useState(defaultValue);
19
+ const isControlled = value !== void 0;
20
+ const checked = isControlled ? value : innerValue;
21
+ const text = checked ? activeText || DEFAULT_ACTIVE_TEXT : inactiveText || DEFAULT_INACTIVE_TEXT;
22
+ const textWidth = showText ? `${text.length * 12 + 8}px` : "0px";
23
+ const baseWidth = size === "large" ? 62 : 60;
24
+ const switchWidthNum = showText ? text.length * 12 + 40 : baseWidth;
25
+ const switchWidth = `${switchWidthNum}px`;
26
+ const onBg = activeColor ? activeColor.includes("gradient") ? activeColor : activeColor : void 0;
27
+ const handleClick = () => {
28
+ if (disabled) return;
29
+ if (!isControlled) setInnerValue(!checked);
30
+ onChange == null ? void 0 : onChange(!checked);
31
+ };
32
+ const bgStyle = checked ? activeColor ? { background: onBg } : {} : {};
33
+ return /* @__PURE__ */ jsxs(
34
+ "div",
35
+ {
36
+ className: `wz-switch-bg ${checked ? "wz-switch-on" : "wz-switch-off"}${disabled ? " wz-switch-disabled" : ""}${className ? " " + className : ""} wz-switch-${size}`,
37
+ style: { width: switchWidth, minWidth: `${baseWidth}px`, ...style, ...bgStyle },
38
+ onClick: handleClick,
39
+ children: [
40
+ showText && /* @__PURE__ */ jsx("span", { className: "wz-switch-text", style: { width: textWidth }, children: text }),
41
+ /* @__PURE__ */ jsx(
42
+ "div",
43
+ {
44
+ className: `wz-switch-slider ${checked ? "wz-switch-slider-on" : "wz-switch-slider-off"}`
45
+ }
46
+ )
47
+ ]
48
+ }
49
+ );
50
+ };
51
+ export {
52
+ Switch as default
53
+ };