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,216 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useState, useRef, useMemo } from "react";
3
+ import { createRoot } from "react-dom/client";
4
+ function getDefaultExportFromCjs(x) {
5
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
6
+ }
7
+ var classnames = { exports: {} };
8
+ /*!
9
+ Copyright (c) 2018 Jed Watson.
10
+ Licensed under the MIT License (MIT), see
11
+ http://jedwatson.github.io/classnames
12
+ */
13
+ (function(module) {
14
+ (function() {
15
+ var hasOwn = {}.hasOwnProperty;
16
+ function classNames2() {
17
+ var classes = [];
18
+ for (var i = 0; i < arguments.length; i++) {
19
+ var arg = arguments[i];
20
+ if (!arg) continue;
21
+ var argType = typeof arg;
22
+ if (argType === "string" || argType === "number") {
23
+ classes.push(arg);
24
+ } else if (Array.isArray(arg)) {
25
+ if (arg.length) {
26
+ var inner = classNames2.apply(null, arg);
27
+ if (inner) {
28
+ classes.push(inner);
29
+ }
30
+ }
31
+ } else if (argType === "object") {
32
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
33
+ classes.push(arg.toString());
34
+ continue;
35
+ }
36
+ for (var key in arg) {
37
+ if (hasOwn.call(arg, key) && arg[key]) {
38
+ classes.push(key);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ return classes.join(" ");
44
+ }
45
+ if (module.exports) {
46
+ classNames2.default = classNames2;
47
+ module.exports = classNames2;
48
+ } else {
49
+ window.classNames = classNames2;
50
+ }
51
+ })();
52
+ })(classnames);
53
+ var classnamesExports = classnames.exports;
54
+ const classNames = /* @__PURE__ */ getDefaultExportFromCjs(classnamesExports);
55
+ const Button = forwardRef(({
56
+ type = "primary",
57
+ size = "medium",
58
+ block = false,
59
+ disabled = false,
60
+ color = "",
61
+ textColor = "",
62
+ borderColor = "",
63
+ className = "",
64
+ style = {},
65
+ children,
66
+ onClick
67
+ }, ref) => {
68
+ const [isActive, setIsActive] = useState(false);
69
+ const timerRef = useRef(null);
70
+ const buttonStyle = useMemo(() => {
71
+ if (type === "cancel") return style;
72
+ if (type === "outline") {
73
+ return {
74
+ color: textColor || "var(--wz-primary-color)",
75
+ borderColor: borderColor || "var(--wz-primary-color)",
76
+ background: "transparent",
77
+ ...style
78
+ };
79
+ }
80
+ if (type === "text") {
81
+ return {
82
+ color: textColor || style.color || "var(--wz-primary-color, #22C94D)",
83
+ background: "transparent",
84
+ border: "none",
85
+ boxShadow: "none",
86
+ ...style
87
+ };
88
+ }
89
+ if (type === "primary") {
90
+ let s = { ...style };
91
+ s.background = color || "var(--wz-primary-gradient, var(--wz-primary-color))";
92
+ s.color = textColor || "#fff";
93
+ return s;
94
+ }
95
+ return style;
96
+ }, [type, color, textColor, borderColor, style]);
97
+ const handleClick = (e) => {
98
+ if (disabled) return;
99
+ setIsActive(true);
100
+ if (timerRef.current) window.clearTimeout(timerRef.current);
101
+ timerRef.current = window.setTimeout(() => setIsActive(false), 100);
102
+ onClick == null ? void 0 : onClick(e);
103
+ };
104
+ const btnClass = [
105
+ "wz-button",
106
+ `wz-button--${type}`,
107
+ `wz-button--${size}`,
108
+ block ? "wz-button--block" : "",
109
+ disabled ? "wz-button--disabled" : "",
110
+ isActive && !disabled ? "wz-button--active" : "",
111
+ className
112
+ ].filter(Boolean).join(" ");
113
+ return /* @__PURE__ */ jsxs(
114
+ "button",
115
+ {
116
+ ref,
117
+ type: "button",
118
+ className: btnClass,
119
+ style: buttonStyle,
120
+ disabled,
121
+ onClick: handleClick,
122
+ children: [
123
+ children,
124
+ type === "primary" && isActive && /* @__PURE__ */ jsx("span", { className: "wz-button__mask" }),
125
+ type === "outline" && isActive && /* @__PURE__ */ jsx("span", { className: "wz-button__mask" }),
126
+ type === "outline" && disabled && /* @__PURE__ */ jsx("span", { className: "wz-button__mask--disabled" }),
127
+ type === "cancel" && isActive && /* @__PURE__ */ jsx("span", { className: "wz-button__mask--cancel" })
128
+ ]
129
+ }
130
+ );
131
+ });
132
+ Button.displayName = "Button";
133
+ const Dialog$1 = ({
134
+ visible,
135
+ title,
136
+ content,
137
+ onClose,
138
+ actions,
139
+ closeOnAction,
140
+ closeOnMaskClick
141
+ }) => {
142
+ const onMaskClick = () => {
143
+ if (closeOnMaskClick) {
144
+ onClose == null ? void 0 : onClose();
145
+ }
146
+ };
147
+ const onActionClick = (onClick) => {
148
+ onClick == null ? void 0 : onClick();
149
+ if (closeOnAction) {
150
+ onClose == null ? void 0 : onClose();
151
+ }
152
+ };
153
+ return /* @__PURE__ */ jsxs("div", { className: classNames("wz-dialog-root", { visible }), children: [
154
+ /* @__PURE__ */ jsx("div", { className: "wz-dialog-mask", onClick: onMaskClick }),
155
+ /* @__PURE__ */ jsxs("div", { className: "wz-dialog-wrap", children: [
156
+ title && /* @__PURE__ */ jsx("div", { className: "wz-dialog-header", children: /* @__PURE__ */ jsx("div", { className: "wz-dialog-title", children: title }) }),
157
+ /* @__PURE__ */ jsx("div", { className: "wz-dialog-content", children: content }),
158
+ /* @__PURE__ */ jsx("div", { className: "wz-dialog-footer", children: actions == null ? void 0 : actions.map((action) => /* @__PURE__ */ jsx(
159
+ Button,
160
+ {
161
+ className: "wz-dialog-button",
162
+ onClick: () => onActionClick(action.onClick),
163
+ children: action.text
164
+ },
165
+ action.key
166
+ )) })
167
+ ] })
168
+ ] });
169
+ };
170
+ const renderDialog = (props) => {
171
+ const container = document.createElement("div");
172
+ document.body.appendChild(container);
173
+ const root = createRoot(container);
174
+ const unmount = () => {
175
+ root.unmount();
176
+ document.body.removeChild(container);
177
+ };
178
+ root.render(/* @__PURE__ */ jsx(Dialog$1, { ...props, visible: true, onClose: unmount }));
179
+ };
180
+ const alert = (props) => {
181
+ renderDialog({
182
+ ...props,
183
+ closeOnAction: true,
184
+ actions: [
185
+ {
186
+ key: "confirm",
187
+ text: "确定",
188
+ onClick: props.onConfirm
189
+ }
190
+ ]
191
+ });
192
+ };
193
+ const confirm = (props) => {
194
+ renderDialog({
195
+ ...props,
196
+ closeOnAction: true,
197
+ actions: [
198
+ {
199
+ key: "cancel",
200
+ text: "取消",
201
+ onClick: props.onCancel
202
+ },
203
+ {
204
+ key: "confirm",
205
+ text: "确定",
206
+ onClick: props.onConfirm
207
+ }
208
+ ]
209
+ });
210
+ };
211
+ const Dialog = Object.assign(Dialog$1, { alert, confirm });
212
+ export {
213
+ Dialog,
214
+ alert,
215
+ confirm
216
+ };
@@ -0,0 +1,6 @@
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("react/jsx-runtime"),require("react"),require("react-dom/client")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","react","react-dom/client"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).Dialog={},e.jsxRuntime,e.React,e.client)}(this,(function(e,o,t,n){"use strict";function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i,l={exports:{}};
2
+ /*!
3
+ Copyright (c) 2018 Jed Watson.
4
+ Licensed under the MIT License (MIT), see
5
+ http://jedwatson.github.io/classnames
6
+ */i=l,function(){var e={}.hasOwnProperty;function o(){for(var t=[],n=0;n<arguments.length;n++){var r=arguments[n];if(r){var i=typeof r;if("string"===i||"number"===i)t.push(r);else if(Array.isArray(r)){if(r.length){var l=o.apply(null,r);l&&t.push(l)}}else if("object"===i){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){t.push(r.toString());continue}for(var a in r)e.call(r,a)&&r[a]&&t.push(a)}}}return t.join(" ")}i.exports?(o.default=o,i.exports=o):window.classNames=o}();const a=r(l.exports),s=t.forwardRef((({type:e="primary",size:n="medium",block:r=!1,disabled:i=!1,color:l="",textColor:a="",borderColor:s="",className:c="",style:u={},children:d,onClick:m},f)=>{const[p,b]=t.useState(!1),w=t.useRef(null),y=t.useMemo((()=>{if("cancel"===e)return u;if("outline"===e)return{color:a||"var(--wz-primary-color)",borderColor:s||"var(--wz-primary-color)",background:"transparent",...u};if("text"===e)return{color:a||u.color||"var(--wz-primary-color, #22C94D)",background:"transparent",border:"none",boxShadow:"none",...u};if("primary"===e){let e={...u};return e.background=l||"var(--wz-primary-gradient, var(--wz-primary-color))",e.color=a||"#fff",e}return u}),[e,l,a,s,u]),x=["wz-button",`wz-button--${e}`,`wz-button--${n}`,r?"wz-button--block":"",i?"wz-button--disabled":"",p&&!i?"wz-button--active":"",c].filter(Boolean).join(" ");return o.jsxs("button",{ref:f,type:"button",className:x,style:y,disabled:i,onClick:e=>{i||(b(!0),w.current&&window.clearTimeout(w.current),w.current=window.setTimeout((()=>b(!1)),100),null==m||m(e))},children:[d,"primary"===e&&p&&o.jsx("span",{className:"wz-button__mask"}),"outline"===e&&p&&o.jsx("span",{className:"wz-button__mask"}),"outline"===e&&i&&o.jsx("span",{className:"wz-button__mask--disabled"}),"cancel"===e&&p&&o.jsx("span",{className:"wz-button__mask--cancel"})]})}));s.displayName="Button";const c=({visible:e,title:t,content:n,onClose:r,actions:i,closeOnAction:l,closeOnMaskClick:c})=>o.jsxs("div",{className:a("wz-dialog-root",{visible:e}),children:[o.jsx("div",{className:"wz-dialog-mask",onClick:()=>{c&&(null==r||r())}}),o.jsxs("div",{className:"wz-dialog-wrap",children:[t&&o.jsx("div",{className:"wz-dialog-header",children:o.jsx("div",{className:"wz-dialog-title",children:t})}),o.jsx("div",{className:"wz-dialog-content",children:n}),o.jsx("div",{className:"wz-dialog-footer",children:null==i?void 0:i.map((e=>o.jsx(s,{className:"wz-dialog-button",onClick:()=>{return null==(o=e.onClick)||o(),void(l&&(null==r||r()));var o},children:e.text},e.key)))})]})]}),u=e=>{const t=document.createElement("div");document.body.appendChild(t);const r=n.createRoot(t);r.render(o.jsx(c,{...e,visible:!0,onClose:()=>{r.unmount(),document.body.removeChild(t)}}))},d=e=>{u({...e,closeOnAction:!0,actions:[{key:"confirm",text:"确定",onClick:e.onConfirm}]})},m=e=>{u({...e,closeOnAction:!0,actions:[{key:"cancel",text:"取消",onClick:e.onCancel},{key:"confirm",text:"确定",onClick:e.onConfirm}]})},f=Object.assign(c,{alert:d,confirm:m});e.Dialog=f,e.alert=d,e.confirm=m,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ .wz-dialog-root{z-index:1000;visibility:hidden;opacity:0;justify-content:center;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0}.wz-dialog-root.visible{visibility:visible;opacity:1}.wz-dialog-mask{background-color:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.wz-dialog-wrap{background-color:#fff;border-radius:8px;width:85%;max-width:300px;padding-top:24px;position:relative;overflow:hidden}.wz-dialog-header{text-align:center;padding:0 24px 8px}.wz-dialog-title{font-size:18px;font-weight:500}.wz-dialog-content{text-align:center;color:#666;padding:8px 24px 24px;font-size:14px}.wz-dialog-footer{padding:0 24px 24px;display:flex}.wz-dialog-footer .wz-dialog-button{color:#fff;background-color:#00b578;border-radius:100px;flex:1}.wz-dialog-footer .wz-dialog-button:not(:last-child){margin-right:12px}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-dialog-root{z-index:1000;visibility:hidden;opacity:0;justify-content:center;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0}.wz-dialog-root.visible{visibility:visible;opacity:1}.wz-dialog-mask{background-color:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.wz-dialog-wrap{background-color:#fff;border-radius:8px;width:85%;max-width:300px;padding-top:24px;position:relative;overflow:hidden}.wz-dialog-header{text-align:center;padding:0 24px 8px}.wz-dialog-title{font-size:18px;font-weight:500}.wz-dialog-content{text-align:center;color:#666;padding:8px 24px 24px;font-size:14px}.wz-dialog-footer{padding:0 24px 24px;display:flex}.wz-dialog-footer .wz-dialog-button{color:#fff;background-color:#00b578;border-radius:100px;flex:1}.wz-dialog-footer .wz-dialog-button:not(:last-child){margin-right:12px}.wz-button{box-sizing:border-box;text-align:center;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:23px;outline:none;justify-content:center;align-items:center;height:40px;padding:0 15px;font-family:"Alibaba PuHuiTi 2.0",Alibaba-PuHuiTi-Regular,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-size:18px;font-weight:600;line-height:23px;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.wz-button--primary{color:#fff;background:var(--wz-primary-gradient,linear-gradient(90deg,#0ac0f7 0%,#0596f7 100%));border:none;border-radius:23px}.wz-button--primary.wz-button--disabled{background:#c0c4cc}.wz-button--outline{color:var(--wz-primary-color,#22c94d);border:1px solid var(--wz-primary-color,#22c94d);background:0 0;border-radius:26px}.wz-button--cancel{color:#fff;background:#c0c4cc;border:none;border-radius:26px}.wz-button--block{width:100%;display:flex}.wz-button--large{height:45px;padding:0 20px;font-size:18px}.wz-button--medium{height:30px;padding:0 16px;font-size:14px}.wz-button--small{height:25px;padding:0 12px;font-size:13px}.wz-button--disabled{cursor:not-allowed;opacity:.6}.wz-button--active{opacity:.9}.wz-button__mask{pointer-events:none;border-radius:inherit;z-index:1;background:#00000014;width:100%;height:100%;position:absolute;top:0;left:0}.wz-button__mask--disabled{pointer-events:none;border-radius:inherit;z-index:10;background:#ffffff80;width:100%;height:100%;position:absolute;top:0;left:0}.wz-button__mask--cancel{pointer-events:none;border-radius:inherit;z-index:10;background:#0000000f;width:100%;height:100%;position:absolute;top:0;left:0}@media screen and (max-width:767px){.wz-button--small{height:30px;font-size:14px}.wz-button--medium{height:40px;font-size:15px}.wz-button--large{height:50px;font-size:16px}}.wz-button--text{color:var(--wz-primary-color,#22c94d);box-shadow:none;background:0 0;border:none;min-width:0;height:auto;padding:0 8px;font-size:16px;font-weight:600;transition:color .2s}.wz-button--text:active{color:#179a38;background:#f5f7f9}.wz-button--disabled.wz-button--text{color:#c0c4cc;background:0 0}
@@ -0,0 +1,27 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const Divider = ({
3
+ direction = "horizontal",
4
+ color = "#eee",
5
+ length,
6
+ margin,
7
+ style,
8
+ className = ""
9
+ }) => {
10
+ const isVertical = direction === "vertical";
11
+ return /* @__PURE__ */ jsx(
12
+ "div",
13
+ {
14
+ className: `wz-divider wz-divider--${direction} ${className}`,
15
+ style: {
16
+ background: color,
17
+ width: isVertical ? 1 : length || "100%",
18
+ height: isVertical ? length || 24 : 1,
19
+ margin,
20
+ ...style
21
+ }
22
+ }
23
+ );
24
+ };
25
+ export {
26
+ Divider as default
27
+ };
@@ -0,0 +1 @@
1
+ !function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i(require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["react/jsx-runtime"],i):(e="undefined"!=typeof globalThis?globalThis:e||self).Divider=i(e.jsxRuntime)}(this,(function(e){"use strict";return({direction:i="horizontal",color:t="#eee",length:n,margin:r,style:o,className:d=""})=>{const s="vertical"===i;return e.jsx("div",{className:`wz-divider wz-divider--${i} ${d}`,style:{background:t,width:s?1:n||"100%",height:s?n||24:1,margin:r,...o}})}}));
@@ -0,0 +1 @@
1
+ .wz-divider{background:#eee;border:none;display:block}.wz-divider--vertical{width:1px;min-height:16px}.wz-divider--horizontal{width:100%;height:1px}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-divider{background:#eee;border:none;display:block}.wz-divider--vertical{width:1px;min-height:16px}.wz-divider--horizontal{width:100%;height:1px}
@@ -0,0 +1,111 @@
1
+ import { jsx, jsxs, Fragment } 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 DropdownMenu = ({
31
+ items,
32
+ extension,
33
+ onChange,
34
+ value,
35
+ defaultValue = {}
36
+ }) => {
37
+ const [activeItem, setActiveItem] = useState(null);
38
+ const [selectedValues, setSelectedValues] = useState(defaultValue);
39
+ useEffect(() => {
40
+ if (value !== void 0) {
41
+ setSelectedValues(value);
42
+ }
43
+ }, [value]);
44
+ const isControlled = value !== void 0;
45
+ const getCurrentValues = () => isControlled ? value : selectedValues;
46
+ const handleItemClick = (index) => {
47
+ setActiveItem(activeItem === index ? null : index);
48
+ };
49
+ const handleOptionClick = (itemIndex, optionValue) => {
50
+ const newValues = { ...getCurrentValues(), [itemIndex]: optionValue };
51
+ if (!isControlled) {
52
+ setSelectedValues(newValues);
53
+ }
54
+ setActiveItem(null);
55
+ if (onChange) {
56
+ onChange(itemIndex, optionValue, newValues);
57
+ }
58
+ };
59
+ const handleMaskClick = () => {
60
+ setActiveItem(null);
61
+ };
62
+ const getSelectedItemText = (itemIndex) => {
63
+ const currentValues = getCurrentValues();
64
+ const selectedValue = currentValues[itemIndex];
65
+ if (selectedValue === void 0) {
66
+ return items[itemIndex].title;
67
+ }
68
+ const selectedOption = items[itemIndex].options.find(
69
+ (option) => option.value === selectedValue
70
+ );
71
+ return selectedOption ? selectedOption.text : items[itemIndex].title;
72
+ };
73
+ return /* @__PURE__ */ jsxs("div", { className: "wz-dropdown-menu-wrapper", children: [
74
+ /* @__PURE__ */ jsxs("div", { className: "wz-dropdown-menu", children: [
75
+ items.map((item, index) => /* @__PURE__ */ jsxs(
76
+ "div",
77
+ {
78
+ className: `wz-dropdown-item ${activeItem === index ? "active" : ""}`,
79
+ onClick: () => handleItemClick(index),
80
+ children: [
81
+ /* @__PURE__ */ jsx("span", { children: getSelectedItemText(index) }),
82
+ item.icon || /* @__PURE__ */ jsx(
83
+ Icon,
84
+ {
85
+ name: "dropdown",
86
+ size: 12
87
+ }
88
+ )
89
+ ]
90
+ },
91
+ index
92
+ )),
93
+ extension && /* @__PURE__ */ jsx("div", { className: "wz-dropdown-extension", children: extension })
94
+ ] }),
95
+ activeItem !== null && /* @__PURE__ */ jsxs(Fragment, { children: [
96
+ /* @__PURE__ */ jsx("div", { className: "wz-dropdown-mask", onClick: handleMaskClick }),
97
+ /* @__PURE__ */ jsx("div", { className: "wz-dropdown-popup", children: items[activeItem].options.map((option) => /* @__PURE__ */ jsx(
98
+ "div",
99
+ {
100
+ className: `wz-dropdown-option ${getCurrentValues()[activeItem] === option.value ? "selected" : ""}`,
101
+ onClick: () => handleOptionClick(activeItem, option.value),
102
+ children: option.text
103
+ },
104
+ option.value
105
+ )) })
106
+ ] })
107
+ ] });
108
+ };
109
+ export {
110
+ DropdownMenu
111
+ };
@@ -0,0 +1 @@
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react/jsx-runtime"),require("react")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","react"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).DropDownMenu={},e.jsxRuntime,e.React)}(this,(function(e,n,o){"use strict";const t=({name:e,size:o=24,color:t="currentColor",className:s="",style:i,onClick:l,type:r="yunying"})=>{const c={fontSize:"number"==typeof o?`${o}px`:o,color:t,...i},d=`iconfont-${r}`,a=`icon-${e}`;return n.jsx("i",{className:`wz-icon ${d} ${a} ${s}`,style:c,onClick:l})};e.DropdownMenu=({items:e,extension:s,onChange:i,value:l,defaultValue:r={}})=>{const[c,d]=o.useState(null),[a,u]=o.useState(r);o.useEffect((()=>{void 0!==l&&u(l)}),[l]);const p=void 0!==l,m=()=>p?l:a,f=n=>{const o=m()[n];if(void 0===o)return e[n].title;const t=e[n].options.find((e=>e.value===o));return t?t.text:e[n].title};return n.jsxs("div",{className:"wz-dropdown-menu-wrapper",children:[n.jsxs("div",{className:"wz-dropdown-menu",children:[e.map(((e,o)=>n.jsxs("div",{className:"wz-dropdown-item "+(c===o?"active":""),onClick:()=>(e=>{d(c===e?null:e)})(o),children:[n.jsx("span",{children:f(o)}),e.icon||n.jsx(t,{name:"dropdown",size:12})]},o))),s&&n.jsx("div",{className:"wz-dropdown-extension",children:s})]}),null!==c&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"wz-dropdown-mask",onClick:()=>{d(null)}}),n.jsx("div",{className:"wz-dropdown-popup",children:e[c].options.map((e=>n.jsx("div",{className:"wz-dropdown-option "+(m()[c]===e.value?"selected":""),onClick:()=>((e,n)=>{const o={...m(),[e]:n};p||u(o),d(null),i&&i(e,n,o)})(c,e.value),children:e.text},e.value)))})]})]})},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ :root{--wz-z-index-base:1;--wz-z-index-dropdown:100;--wz-z-index-navbar:999;--wz-z-index-tabbar:999;--wz-z-index-popup:1000;--wz-z-index-dialog:1000;--wz-z-index-toast:9999}.wz-dropdown-menu-wrapper{position:relative}.wz-dropdown-menu{z-index:var(--wz-z-index-dropdown,100);background-color:#fff;align-items:center;gap:4px;height:48px;padding:0 4px;display:flex;position:relative;box-shadow:0 2px 12px #6465661f}.wz-dropdown-item{color:#333;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;min-width:60px;padding:0 14px;font-size:13px;font-weight:400;line-height:20px;transition:color .3s;display:flex}.wz-dropdown-item:nth-child(2){padding:0 10px}.wz-dropdown-item:nth-child(n+3){padding:0 18px}.wz-dropdown-item.active{color:#1677ff}.wz-dropdown-item .wz-icon{margin-left:4px}.wz-dropdown-extension{align-items:center;gap:8px;margin-left:auto;padding:0 4px;display:flex}.wz-dropdown-extension .wz-dropdown-btn-icon{align-items:center;margin-right:4px;display:inline-flex}.wz-dropdown-mask{z-index:calc(var(--wz-z-index-dropdown,100) - 1);background-color:#0000;position:fixed;top:0;bottom:0;left:0;right:0}.wz-dropdown-popup{z-index:var(--wz-z-index-dropdown,100);background-color:#fff;border-radius:0 0 8px 8px;max-height:240px;position:absolute;top:48px;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.wz-dropdown-option{color:#333;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;padding:12px 18px;font-size:14px;transition:background-color .3s}.wz-dropdown-option:hover{background-color:#f5f5f5}.wz-dropdown-option.selected{color:#1677ff;font-weight:500}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ :root{--wz-z-index-base:1;--wz-z-index-dropdown:100;--wz-z-index-navbar:999;--wz-z-index-tabbar:999;--wz-z-index-popup:1000;--wz-z-index-dialog:1000;--wz-z-index-toast:9999}.wz-dropdown-menu-wrapper{position:relative}.wz-dropdown-menu{z-index:var(--wz-z-index-dropdown,100);background-color:#fff;align-items:center;gap:4px;height:48px;padding:0 4px;display:flex;position:relative;box-shadow:0 2px 12px #6465661f}.wz-dropdown-item{color:#333;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;min-width:60px;padding:0 14px;font-size:13px;font-weight:400;line-height:20px;transition:color .3s;display:flex}.wz-dropdown-item:nth-child(2){padding:0 10px}.wz-dropdown-item:nth-child(n+3){padding:0 18px}.wz-dropdown-item.active{color:#1677ff}.wz-dropdown-item .wz-icon{margin-left:4px}.wz-dropdown-extension{align-items:center;gap:8px;margin-left:auto;padding:0 4px;display:flex}.wz-dropdown-extension .wz-dropdown-btn-icon{align-items:center;margin-right:4px;display:inline-flex}.wz-dropdown-mask{z-index:calc(var(--wz-z-index-dropdown,100) - 1);background-color:#0000;position:fixed;top:0;bottom:0;left:0;right:0}.wz-dropdown-popup{z-index:var(--wz-z-index-dropdown,100);background-color:#fff;border-radius:0 0 8px 8px;max-height:240px;position:absolute;top:48px;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.wz-dropdown-option{color:#333;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;padding:12px 18px;font-size:14px;transition:background-color .3s}.wz-dropdown-option:hover{background-color:#f5f5f5}.wz-dropdown-option.selected{color:#1677ff;font-weight:500}.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,85 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const alignMap = {
3
+ start: "flex-start",
4
+ center: "center",
5
+ end: "flex-end",
6
+ stretch: "stretch",
7
+ baseline: "baseline"
8
+ };
9
+ const justifyMap = {
10
+ start: "flex-start",
11
+ center: "center",
12
+ end: "flex-end",
13
+ between: "space-between",
14
+ around: "space-around",
15
+ evenly: "space-evenly"
16
+ };
17
+ const FlexItem = ({
18
+ span,
19
+ order,
20
+ offset,
21
+ className = "",
22
+ style = {},
23
+ children
24
+ }) => {
25
+ if (process.env.NODE_ENV !== "production") {
26
+ if (span !== void 0 && (span < 0 || span > 1)) {
27
+ console.warn(
28
+ `[Flex.Item] span 应该在 0-1 之间,当前值为 ${span}。例如:0.5 表示 50%`
29
+ );
30
+ }
31
+ if (offset !== void 0 && (offset < 0 || offset > 1)) {
32
+ console.warn(
33
+ `[Flex.Item] offset 应该在 0-1 之间,当前值为 ${offset}。例如:0.25 表示 25%`
34
+ );
35
+ }
36
+ }
37
+ const itemStyle = {
38
+ flexBasis: span !== void 0 ? `${span * 100}%` : void 0,
39
+ flexGrow: span !== void 0 ? 0 : void 0,
40
+ flexShrink: span !== void 0 ? 0 : void 0,
41
+ order,
42
+ marginLeft: offset !== void 0 ? `${offset * 100}%` : void 0,
43
+ ...style
44
+ };
45
+ return /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ className: `wz-flex-item${className ? " " + className : ""}`,
49
+ style: itemStyle,
50
+ children
51
+ }
52
+ );
53
+ };
54
+ const Flex = ({
55
+ direction = "row",
56
+ align = "stretch",
57
+ justify = "start",
58
+ wrap = "nowrap",
59
+ gap = 0,
60
+ className = "",
61
+ style = {},
62
+ children
63
+ }) => {
64
+ const flexStyle = {
65
+ display: "flex",
66
+ flexDirection: direction,
67
+ alignItems: alignMap[align],
68
+ justifyContent: justifyMap[justify],
69
+ flexWrap: wrap,
70
+ gap: typeof gap === "number" ? `${gap}px` : gap,
71
+ ...style
72
+ };
73
+ return /* @__PURE__ */ jsx(
74
+ "div",
75
+ {
76
+ className: `wz-flex${className ? " " + className : ""}`,
77
+ style: flexStyle,
78
+ children
79
+ }
80
+ );
81
+ };
82
+ Flex.Item = FlexItem;
83
+ export {
84
+ Flex
85
+ };
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Flex={},e.jsxRuntime)}(this,(function(e,t){"use strict";const n={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},s={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"},r=({direction:e="row",align:r="stretch",justify:i="start",wrap:l="nowrap",gap:o=0,className:a="",style:d={},children:c})=>{const f={display:"flex",flexDirection:e,alignItems:n[r],justifyContent:s[i],flexWrap:l,gap:"number"==typeof o?`${o}px`:o,...d};return t.jsx("div",{className:"wz-flex"+(a?" "+a:""),style:f,children:c})};r.Item=({span:e,order:n,offset:s,className:r="",style:i={},children:l})=>{process.env.NODE_ENV;const o={flexBasis:void 0!==e?100*e+"%":void 0,flexGrow:void 0!==e?0:void 0,flexShrink:void 0!==e?0:void 0,order:n,marginLeft:void 0!==s?100*s+"%":void 0,...i};return t.jsx("div",{className:"wz-flex-item"+(r?" "+r:""),style:o,children:l})},e.Flex=r,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -0,0 +1 @@
1
+ .wz-flex{box-sizing:border-box;display:flex}.wz-flex-item{box-sizing:border-box}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-flex{box-sizing:border-box;display:flex}.wz-flex-item{box-sizing:border-box}
@@ -0,0 +1,54 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from "react";
3
+ const GridContext = createContext(24);
4
+ const GridItem = ({
5
+ span = 1,
6
+ offset = 0,
7
+ order,
8
+ className = "",
9
+ style = {},
10
+ children
11
+ }) => {
12
+ const cols = useContext(GridContext);
13
+ if (process.env.NODE_ENV !== "production") {
14
+ if (span < 1 || span > cols) {
15
+ console.warn(
16
+ `[Grid.Item] span 应该在 1-${cols} 之间,当前值为 ${span}`
17
+ );
18
+ }
19
+ if (offset < 0 || offset > cols) {
20
+ console.warn(
21
+ `[Grid.Item] offset 应该在 0-${cols} 之间,当前值为 ${offset}`
22
+ );
23
+ }
24
+ }
25
+ const width = `${span / cols * 100}%`;
26
+ const marginLeft = offset ? `${offset / cols * 100}%` : void 0;
27
+ return /* @__PURE__ */ jsx(
28
+ "div",
29
+ {
30
+ className: `wz-grid-item${className ? " " + className : ""}`,
31
+ style: { width, marginLeft, order, ...style },
32
+ children
33
+ }
34
+ );
35
+ };
36
+ const Grid = ({
37
+ cols = 24,
38
+ gap = 0,
39
+ className = "",
40
+ style = {},
41
+ children
42
+ }) => {
43
+ const gridStyle = {
44
+ display: "flex",
45
+ flexWrap: "wrap",
46
+ gap: typeof gap === "number" ? `${gap}px` : gap,
47
+ ...style
48
+ };
49
+ return /* @__PURE__ */ jsx(GridContext.Provider, { value: cols, children: /* @__PURE__ */ jsx("div", { className: `wz-grid${className ? " " + className : ""}`, style: gridStyle, children }) });
50
+ };
51
+ Grid.Item = GridItem;
52
+ export {
53
+ Grid as default
54
+ };
@@ -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).Grid=t(e.jsxRuntime,e.React)}(this,(function(e,t){"use strict";const r=t.createContext(24),s=({cols:t=24,gap:s=0,className:n="",style:i={},children:o})=>{const c={display:"flex",flexWrap:"wrap",gap:"number"==typeof s?`${s}px`:s,...i};return e.jsx(r.Provider,{value:t,children:e.jsx("div",{className:"wz-grid"+(n?" "+n:""),style:c,children:o})})};return s.Item=({span:s=1,offset:n=0,order:i,className:o="",style:c={},children:d})=>{const a=t.useContext(r);process.env.NODE_ENV;const l=s/a*100+"%",f=n?n/a*100+"%":void 0;return e.jsx("div",{className:"wz-grid-item"+(o?" "+o:""),style:{width:l,marginLeft:f,order:i,...c},children:d})},s}));
@@ -0,0 +1 @@
1
+ .wz-grid{box-sizing:border-box;flex-wrap:wrap;display:flex}.wz-grid-item{box-sizing:border-box}
@@ -0,0 +1 @@
1
+ import './index.css';
@@ -0,0 +1 @@
1
+ .wz-grid{box-sizing:border-box;flex-wrap:wrap;display:flex}.wz-grid-item{box-sizing:border-box}