@zlooks.cn/password-auth-server 1.1.7 → 1.1.8

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 (20) hide show
  1. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-browser/chunks/chunk-3XS5CUKE.js +252 -0
  2. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-browser/src-plugin-page-frame-07c4de56a6-GLDPP7WQ.css +1 -0
  3. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-browser/src-plugin-page-frame-07c4de56a6-NNLB6KOI.js +16 -0
  4. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-browser/src-plugin-password-form-3bd63d69e5-HJ5W2OPR.js +6 -0
  5. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-browser/src-plugin-password-form-3bd63d69e5-XRKUN4RP.css +1 -0
  6. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-ssr/chunks/chunk-PN3C7DWD.js +123 -0
  7. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-ssr/src-plugin-page-frame-07c4de56a6-VK2OTNLD.js +146 -0
  8. package/.hile-rsc/build-mvatymx1-25d8b6c0/client-ssr/src-plugin-password-form-3bd63d69e5-K3D6TQTX.js +352 -0
  9. package/.hile-rsc/{build-mv634mou-8e8c1ca3 → build-mvatymx1-25d8b6c0}/plugin.json +35 -35
  10. package/.hile-rsc/{build-mv634mou-8e8c1ca3 → build-mvatymx1-25d8b6c0}/server-rsc/index.js +4 -4
  11. package/package.json +5 -5
  12. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-browser/chunks/chunk-UYTFSLNG.js +0 -42775
  13. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-browser/src-plugin-page-frame-07c4de56a6-25BOCBWI.js +0 -2304
  14. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-browser/src-plugin-page-frame-07c4de56a6-3F24AYCH.css +0 -170
  15. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-browser/src-plugin-password-form-3bd63d69e5-GJ25JW7M.js +0 -4768
  16. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-browser/src-plugin-password-form-3bd63d69e5-TRYMJX4F.css +0 -195
  17. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-ssr/chunks/chunk-A2AYEE2Z.js +0 -36628
  18. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-ssr/src-plugin-page-frame-07c4de56a6-WXFM6XOG.js +0 -15601
  19. package/.hile-rsc/build-mv634mou-8e8c1ca3/client-ssr/src-plugin-password-form-3bd63d69e5-ZZ55VGCF.js +0 -120668
  20. /package/.hile-rsc/{build-mv634mou-8e8c1ca3 → build-mvatymx1-25d8b6c0}/styles/4b3193c4f2b317ffed425ccf401342a4bdd6ccfd5f9c42def3315e776f166975.css +0 -0
@@ -1,2304 +0,0 @@
1
- "use client";
2
- import {
3
- AntdIconLight_default,
4
- App_default,
5
- Button_default,
6
- Fragment,
7
- KeyCode_default,
8
- LoadingOutlined_default,
9
- Modal_default,
10
- RscLink,
11
- TextArea_default,
12
- __commonJS,
13
- __toESM,
14
- _toConsumableArray,
15
- cloneElement,
16
- clsx,
17
- composeRef,
18
- config_provider_default,
19
- createContext,
20
- createElement,
21
- deepFreeze,
22
- devUseWarning,
23
- divider_default,
24
- empty_default,
25
- es_default2 as es_default,
26
- flex_default,
27
- forwardRef,
28
- genStyleHooks,
29
- gold,
30
- isFunction,
31
- isNonNullable,
32
- isNumber,
33
- isPlainObject,
34
- isReactRenderable,
35
- isRequestError,
36
- isStyleSupport,
37
- isValidElement,
38
- jsx,
39
- jsxs,
40
- merge,
41
- moduleDefault,
42
- omit,
43
- operationUnit,
44
- popover_default,
45
- resetComponent,
46
- responsiveArray,
47
- space_default,
48
- textEllipsis,
49
- theme_default,
50
- toArray,
51
- tooltip_default,
52
- unit,
53
- useBreakpoint_default,
54
- useCSSVarCls_default,
55
- useCallback,
56
- useComponentConfig,
57
- useContext,
58
- useControlledState,
59
- useDelayState,
60
- useEffect,
61
- useEvent_default,
62
- useImperativeHandle,
63
- useLayoutEffect_default,
64
- useLocale_default,
65
- useMemo,
66
- useMergeSemantic,
67
- useRef,
68
- useRequest,
69
- useRscNavigation,
70
- useSemanticRootStyle,
71
- useSize_default,
72
- useState,
73
- useSyncExternalStore,
74
- useZlooksApp,
75
- warning_default
76
- } from "./chunks/chunk-UYTFSLNG.js";
77
-
78
- // ../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/EditOutlined.js
79
- var require_EditOutlined = __commonJS({
80
- "../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/EditOutlined.js"(exports) {
81
- "use strict";
82
- Object.defineProperty(exports, "__esModule", { value: true });
83
- var EditOutlined2 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z" } }] }, "name": "edit", "theme": "outlined" };
84
- exports.default = EditOutlined2;
85
- }
86
- });
87
-
88
- // ../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/EnterOutlined.js
89
- var require_EnterOutlined = __commonJS({
90
- "../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/EnterOutlined.js"(exports) {
91
- "use strict";
92
- Object.defineProperty(exports, "__esModule", { value: true });
93
- var EnterOutlined2 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z" } }] }, "name": "enter", "theme": "outlined" };
94
- exports.default = EnterOutlined2;
95
- }
96
- });
97
-
98
- // ../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/CheckOutlined.js
99
- var require_CheckOutlined = __commonJS({
100
- "../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/CheckOutlined.js"(exports) {
101
- "use strict";
102
- Object.defineProperty(exports, "__esModule", { value: true });
103
- var CheckOutlined2 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" } }] }, "name": "check", "theme": "outlined" };
104
- exports.default = CheckOutlined2;
105
- }
106
- });
107
-
108
- // ../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/CopyOutlined.js
109
- var require_CopyOutlined = __commonJS({
110
- "../../node_modules/.pnpm/@ant-design+icons-svg@4.5.0/node_modules/@ant-design/icons-svg/lib/asn/CopyOutlined.js"(exports) {
111
- "use strict";
112
- Object.defineProperty(exports, "__esModule", { value: true });
113
- var CopyOutlined2 = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" } }] }, "name": "copy", "theme": "outlined" };
114
- exports.default = CopyOutlined2;
115
- }
116
- });
117
-
118
- // ../ui/dist/theme.js
119
- var theme = {
120
- token: {
121
- colorPrimary: "#1677ff",
122
- borderRadius: 10,
123
- motion: true,
124
- fontFamily: [
125
- "-apple-system",
126
- "BlinkMacSystemFont",
127
- "'Segoe UI'",
128
- "Roboto",
129
- "'Helvetica Neue'",
130
- "Arial",
131
- "'Noto Sans'",
132
- "sans-serif"
133
- ].join(", ")
134
- }
135
- };
136
- var zlooksTheme = deepFreeze(theme);
137
-
138
- // ../ui/dist/theme-preference.js
139
- var THEME_STORAGE_KEY = "zlooks.theme";
140
- var THEME_CHANGE_EVENT = "zlooks:theme-change";
141
- var memoryMode = "default";
142
- function useZlooksTheme() {
143
- const mode = useSyncExternalStore(subscribeThemePreference, readClientThemeMode, readServerThemeMode);
144
- return { mode, setMode: setThemeMode };
145
- }
146
- function parseStoredZlooksThemeMode(value) {
147
- return value === "dark" || value === "light" || value === "default" ? value : "default";
148
- }
149
- function readClientThemeMode() {
150
- if (typeof window === "undefined")
151
- return memoryMode;
152
- try {
153
- const stored = window.localStorage.getItem(THEME_STORAGE_KEY);
154
- if (stored !== null)
155
- memoryMode = parseStoredZlooksThemeMode(stored);
156
- } catch {
157
- }
158
- return memoryMode;
159
- }
160
- function readServerThemeMode() {
161
- return "default";
162
- }
163
- function setThemeMode(mode) {
164
- if (parseStoredZlooksThemeMode(mode) !== mode) {
165
- throw new TypeError(`Unsupported Zlooks theme mode: ${String(mode)}`);
166
- }
167
- memoryMode = mode;
168
- if (typeof window === "undefined")
169
- return;
170
- try {
171
- window.localStorage.setItem(THEME_STORAGE_KEY, mode);
172
- } catch {
173
- }
174
- window.dispatchEvent(new CustomEvent(THEME_CHANGE_EVENT, { detail: mode }));
175
- }
176
- function subscribeThemePreference(notify) {
177
- if (typeof window === "undefined")
178
- return () => void 0;
179
- const handleThemeChange = (event) => {
180
- memoryMode = parseStoredZlooksThemeMode(event.detail);
181
- notify();
182
- };
183
- const handleStorage = (event) => {
184
- if (event.key !== THEME_STORAGE_KEY)
185
- return;
186
- memoryMode = parseStoredZlooksThemeMode(event.newValue);
187
- notify();
188
- };
189
- window.addEventListener(THEME_CHANGE_EVENT, handleThemeChange);
190
- window.addEventListener("storage", handleStorage);
191
- return () => {
192
- window.removeEventListener(THEME_CHANGE_EVENT, handleThemeChange);
193
- window.removeEventListener("storage", handleStorage);
194
- };
195
- }
196
-
197
- // ../ui/dist/provider.js
198
- var App = moduleDefault(App_default);
199
- var ConfigProvider = moduleDefault(config_provider_default);
200
- var antdTheme = moduleDefault(theme_default);
201
- function ZlooksUiProvider({ children, theme: theme2 }) {
202
- const preference = useZlooksTheme();
203
- const { resolvedMode, resolvedTheme } = useZlooksThemeRuntime(theme2 ?? preference.mode);
204
- return jsx(ConfigProvider, { button: { autoInsertSpace: false }, theme: resolvedTheme, children: jsx(App, { children: jsx("div", { className: "zlooks-ui-theme", "data-zlooks-theme": resolvedMode, children }) }) });
205
- }
206
- function useZlooksThemeRuntime(theme2) {
207
- const systemDark = useSystemDarkTheme(theme2 === "default");
208
- const resolvedMode = theme2 === "default" ? systemDark ? "dark" : "light" : theme2;
209
- const resolvedTheme = useMemo(() => ({
210
- ...zlooksTheme,
211
- algorithm: resolvedMode === "dark" ? antdTheme.darkAlgorithm : antdTheme.defaultAlgorithm,
212
- cssVar: { key: `zlooks-${resolvedMode}` },
213
- hashed: false,
214
- zeroRuntime: true
215
- }), [resolvedMode]);
216
- return { resolvedMode, resolvedTheme };
217
- }
218
- function useSystemDarkTheme(enabled) {
219
- const [dark, setDark] = useState(false);
220
- useEffect(() => {
221
- if (!enabled)
222
- return;
223
- const media = window.matchMedia("(prefers-color-scheme: dark)");
224
- const update = () => setDark(media.matches);
225
- update();
226
- media.addEventListener("change", update);
227
- return () => media.removeEventListener("change", update);
228
- }, [enabled]);
229
- return dark;
230
- }
231
-
232
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/avatar/AvatarContext.js
233
- var AvatarContext = /* @__PURE__ */ createContext({});
234
- var AvatarContext_default = AvatarContext;
235
-
236
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/avatar/style/index.js
237
- var genBaseStyle = (token) => {
238
- const {
239
- antCls,
240
- componentCls,
241
- iconCls,
242
- avatarBg,
243
- avatarColor,
244
- containerSize,
245
- containerSizeLG,
246
- containerSizeSM,
247
- textFontSize,
248
- textFontSizeLG,
249
- textFontSizeSM,
250
- iconFontSize,
251
- iconFontSizeLG,
252
- iconFontSizeSM,
253
- borderRadius,
254
- borderRadiusLG,
255
- borderRadiusSM,
256
- lineWidth,
257
- lineType
258
- } = token;
259
- const avatarSizeStyle = (size, fontSize, iconFontSize2, radius) => ({
260
- width: size,
261
- height: size,
262
- borderRadius: "50%",
263
- fontSize,
264
- [`&${componentCls}-square`]: {
265
- borderRadius: radius
266
- },
267
- [`&${componentCls}-icon`]: {
268
- fontSize: iconFontSize2,
269
- [`> ${iconCls}`]: {
270
- margin: 0
271
- }
272
- }
273
- });
274
- return {
275
- [componentCls]: {
276
- ...resetComponent(token),
277
- position: "relative",
278
- display: "inline-flex",
279
- justifyContent: "center",
280
- alignItems: "center",
281
- overflow: "hidden",
282
- color: avatarColor,
283
- whiteSpace: "nowrap",
284
- textAlign: "center",
285
- verticalAlign: "middle",
286
- background: avatarBg,
287
- border: `${unit(lineWidth)} ${lineType} transparent`,
288
- "&-image": {
289
- background: "transparent"
290
- },
291
- [`${antCls}-image-img`]: {
292
- display: "block"
293
- },
294
- ...avatarSizeStyle(containerSize, textFontSize, iconFontSize, borderRadius),
295
- "&-lg": {
296
- ...avatarSizeStyle(containerSizeLG, textFontSizeLG, iconFontSizeLG, borderRadiusLG)
297
- },
298
- "&-sm": {
299
- ...avatarSizeStyle(containerSizeSM, textFontSizeSM, iconFontSizeSM, borderRadiusSM)
300
- },
301
- "> img": {
302
- display: "block",
303
- width: "100%",
304
- height: "100%",
305
- objectFit: "cover"
306
- }
307
- }
308
- };
309
- };
310
- var genGroupStyle = (token) => {
311
- const {
312
- componentCls,
313
- groupBorderColor,
314
- groupOverlapping,
315
- groupSpace
316
- } = token;
317
- return {
318
- [`${componentCls}-group`]: {
319
- display: "inline-flex",
320
- [componentCls]: {
321
- borderColor: groupBorderColor
322
- },
323
- "> *:not(:first-child)": {
324
- marginInlineStart: groupOverlapping
325
- }
326
- },
327
- [`${componentCls}-group-popover`]: {
328
- [`${componentCls} + ${componentCls}`]: {
329
- marginInlineStart: groupSpace
330
- }
331
- }
332
- };
333
- };
334
- var prepareComponentToken = (token) => {
335
- const {
336
- controlHeight,
337
- controlHeightLG,
338
- controlHeightSM,
339
- fontSize,
340
- fontSizeLG,
341
- fontSizeXL,
342
- fontSizeHeading3,
343
- marginXS,
344
- marginXXS,
345
- colorBorderBg
346
- } = token;
347
- return {
348
- containerSize: controlHeight,
349
- containerSizeLG: controlHeightLG,
350
- containerSizeSM: controlHeightSM,
351
- textFontSize: fontSize,
352
- textFontSizeLG: fontSize,
353
- textFontSizeSM: fontSize,
354
- iconFontSize: Math.round((fontSizeLG + fontSizeXL) / 2),
355
- iconFontSizeLG: fontSizeHeading3,
356
- iconFontSizeSM: fontSize,
357
- groupSpace: marginXXS,
358
- groupOverlapping: -marginXS,
359
- groupBorderColor: colorBorderBg
360
- };
361
- };
362
- var style_default = genStyleHooks("Avatar", (token) => {
363
- const {
364
- colorTextLightSolid,
365
- colorTextPlaceholder
366
- } = token;
367
- const avatarToken = merge(token, {
368
- avatarBg: colorTextPlaceholder,
369
- avatarColor: colorTextLightSolid
370
- });
371
- return [genBaseStyle(avatarToken), genGroupStyle(avatarToken)];
372
- }, prepareComponentToken);
373
-
374
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/avatar/Avatar.js
375
- var Avatar = /* @__PURE__ */ forwardRef((props, ref) => {
376
- const {
377
- prefixCls: customizePrefixCls,
378
- shape,
379
- size: customSize,
380
- src,
381
- srcSet,
382
- icon,
383
- className,
384
- rootClassName,
385
- style,
386
- alt,
387
- draggable,
388
- children,
389
- crossOrigin,
390
- gap = 4,
391
- onError,
392
- ...others
393
- } = props;
394
- const [scale, setScale] = useState(1);
395
- const [mounted, setMounted] = useState(false);
396
- const [isImgExist, setIsImgExist] = useState(true);
397
- const avatarNodeRef = useRef(null);
398
- const avatarChildrenRef = useRef(null);
399
- const avatarNodeMergedRef = composeRef(ref, avatarNodeRef);
400
- const {
401
- getPrefixCls,
402
- className: contextClassName,
403
- style: contextStyle
404
- } = useComponentConfig("avatar");
405
- const avatarCtx = useContext(AvatarContext_default);
406
- const setScaleParam = () => {
407
- if (!avatarChildrenRef.current || !avatarNodeRef.current) {
408
- return;
409
- }
410
- const childrenWidth = avatarChildrenRef.current.offsetWidth;
411
- const nodeWidth = avatarNodeRef.current.offsetWidth;
412
- if (childrenWidth !== 0 && nodeWidth !== 0) {
413
- if (gap * 2 < nodeWidth) {
414
- setScale(nodeWidth - gap * 2 < childrenWidth ? (nodeWidth - gap * 2) / childrenWidth : 1);
415
- }
416
- }
417
- };
418
- useEffect(() => {
419
- setMounted(true);
420
- }, []);
421
- useEffect(() => {
422
- setIsImgExist(true);
423
- setScale(1);
424
- }, [src]);
425
- useEffect(setScaleParam, [gap]);
426
- const handleImgLoadError = () => {
427
- const errorFlag = onError?.();
428
- if (errorFlag !== false) {
429
- setIsImgExist(false);
430
- }
431
- };
432
- const size = useSize_default((ctxSize) => customSize ?? avatarCtx?.size ?? ctxSize ?? "medium");
433
- const needResponsive = Object.keys(isPlainObject(size) ? size || {} : {}).some((key) => responsiveArray.includes(key));
434
- const screens = useBreakpoint_default(needResponsive);
435
- const responsiveSizeStyle = useMemo(() => {
436
- if (!isPlainObject(size)) {
437
- return {};
438
- }
439
- const currentBreakpoint = responsiveArray.find((screen) => screens[screen]);
440
- const currentSize = size[currentBreakpoint];
441
- return currentSize ? {
442
- width: currentSize,
443
- height: currentSize,
444
- fontSize: currentSize && (icon || children) ? currentSize / 2 : 18
445
- } : {};
446
- }, [screens, size, icon, children]);
447
- if (true) {
448
- const warning = devUseWarning("Avatar");
449
- true ? warning(!(typeof icon === "string" && icon.length > 2), "breaking", `\`icon\` is using ReactNode instead of string naming in v4. Please check \`${icon}\` at https://ant.design/components/icon`) : void 0;
450
- }
451
- const prefixCls = getPrefixCls("avatar", customizePrefixCls);
452
- const rootCls = useCSSVarCls_default(prefixCls);
453
- const [hashId, cssVarCls] = style_default(prefixCls, rootCls);
454
- const sizeCls = clsx({
455
- [`${prefixCls}-lg`]: size === "large",
456
- [`${prefixCls}-sm`]: size === "small"
457
- });
458
- const hasImageElement = /* @__PURE__ */ isValidElement(src);
459
- const mergedShape = shape || avatarCtx?.shape || "circle";
460
- const classString = clsx(prefixCls, sizeCls, contextClassName, `${prefixCls}-${mergedShape}`, {
461
- [`${prefixCls}-image`]: hasImageElement || src && isImgExist,
462
- [`${prefixCls}-icon`]: !!icon
463
- }, cssVarCls, rootCls, className, rootClassName, hashId);
464
- const sizeStyle = isNumber(size) ? {
465
- width: size,
466
- height: size,
467
- fontSize: icon ? size / 2 : 18
468
- } : {};
469
- let childrenToRender;
470
- if (typeof src === "string" && isImgExist) {
471
- childrenToRender = /* @__PURE__ */ createElement("img", {
472
- src,
473
- draggable,
474
- srcSet,
475
- onError: handleImgLoadError,
476
- alt,
477
- crossOrigin
478
- });
479
- } else if (hasImageElement) {
480
- childrenToRender = src;
481
- } else if (icon) {
482
- childrenToRender = icon;
483
- } else if (mounted || scale !== 1) {
484
- const transformString = `scale(${scale})`;
485
- const childrenStyle = {
486
- msTransform: transformString,
487
- WebkitTransform: transformString,
488
- transform: transformString
489
- };
490
- childrenToRender = /* @__PURE__ */ createElement(es_default, {
491
- onResize: setScaleParam
492
- }, /* @__PURE__ */ createElement("span", {
493
- className: `${prefixCls}-string`,
494
- ref: avatarChildrenRef,
495
- style: childrenStyle
496
- }, children));
497
- } else {
498
- childrenToRender = /* @__PURE__ */ createElement("span", {
499
- className: `${prefixCls}-string`,
500
- style: {
501
- opacity: 0
502
- },
503
- ref: avatarChildrenRef
504
- }, children);
505
- }
506
- return /* @__PURE__ */ createElement("span", {
507
- ...others,
508
- style: {
509
- ...sizeStyle,
510
- ...responsiveSizeStyle,
511
- ...contextStyle,
512
- ...style
513
- },
514
- className: classString,
515
- ref: avatarNodeMergedRef
516
- }, childrenToRender);
517
- });
518
- if (true) {
519
- Avatar.displayName = "Avatar";
520
- }
521
- var Avatar_default = Avatar;
522
-
523
- // ../../node_modules/.pnpm/@ant-design+icons@6.3.2_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@ant-design/icons/es/icons/EditOutlined.js
524
- var import_EditOutlined = __toESM(require_EditOutlined());
525
- function _extends() {
526
- _extends = Object.assign ? Object.assign.bind() : function(target) {
527
- for (var i = 1; i < arguments.length; i++) {
528
- var source = arguments[i];
529
- for (var key in source) {
530
- if (Object.prototype.hasOwnProperty.call(source, key)) {
531
- target[key] = source[key];
532
- }
533
- }
534
- }
535
- return target;
536
- };
537
- return _extends.apply(this, arguments);
538
- }
539
- var EditOutlined = (props, ref) => /* @__PURE__ */ createElement(AntdIconLight_default, _extends({}, props, {
540
- ref,
541
- icon: import_EditOutlined.default
542
- }));
543
- var RefIcon = /* @__PURE__ */ forwardRef(EditOutlined);
544
- if (true) {
545
- RefIcon.displayName = "EditOutlined";
546
- }
547
- var EditOutlined_default = RefIcon;
548
-
549
- // ../../node_modules/.pnpm/@ant-design+icons@6.3.2_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@ant-design/icons/es/icons/EnterOutlined.js
550
- var import_EnterOutlined = __toESM(require_EnterOutlined());
551
- function _extends2() {
552
- _extends2 = Object.assign ? Object.assign.bind() : function(target) {
553
- for (var i = 1; i < arguments.length; i++) {
554
- var source = arguments[i];
555
- for (var key in source) {
556
- if (Object.prototype.hasOwnProperty.call(source, key)) {
557
- target[key] = source[key];
558
- }
559
- }
560
- }
561
- return target;
562
- };
563
- return _extends2.apply(this, arguments);
564
- }
565
- var EnterOutlined = (props, ref) => /* @__PURE__ */ createElement(AntdIconLight_default, _extends2({}, props, {
566
- ref,
567
- icon: import_EnterOutlined.default
568
- }));
569
- var RefIcon2 = /* @__PURE__ */ forwardRef(EnterOutlined);
570
- if (true) {
571
- RefIcon2.displayName = "EnterOutlined";
572
- }
573
- var EnterOutlined_default = RefIcon2;
574
-
575
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/style/mixins.js
576
- var getTitleStyle = (fontSize, lineHeight, color, token) => {
577
- const {
578
- titleMarginBottom,
579
- fontWeightStrong
580
- } = token;
581
- return {
582
- marginBottom: titleMarginBottom,
583
- color,
584
- fontWeight: fontWeightStrong,
585
- fontSize,
586
- lineHeight
587
- };
588
- };
589
- var getTitleStyles = (token) => {
590
- const headings = [1, 2, 3, 4, 5];
591
- const styles = {};
592
- headings.forEach((headingLevel) => {
593
- styles[`
594
- h${headingLevel}&,
595
- div&-h${headingLevel},
596
- div&-h${headingLevel} > textarea,
597
- h${headingLevel}
598
- `] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);
599
- });
600
- return styles;
601
- };
602
- var getLinkStyles = (token) => {
603
- const {
604
- componentCls
605
- } = token;
606
- const linkCls = `${componentCls}-link`;
607
- return {
608
- [`&${linkCls}`]: {
609
- ...operationUnit(token),
610
- userSelect: "text",
611
- [`&[disabled], &${componentCls}-disabled`]: {
612
- color: token.colorTextDisabled,
613
- cursor: "not-allowed",
614
- "&:active, &:hover": {
615
- color: token.colorTextDisabled
616
- },
617
- "&:active": {
618
- pointerEvents: "none",
619
- // Action buttons (copy, edit, expand) must remain interactive even when
620
- // the disabled link is being clicked, otherwise their click events get
621
- // swallowed by the parent's pointer-events: none during :active.
622
- [`${componentCls}-actions`]: {
623
- pointerEvents: "auto"
624
- }
625
- }
626
- }
627
- }
628
- };
629
- };
630
- var getResetStyles = (token) => ({
631
- code: {
632
- margin: "0 0.2em",
633
- paddingInline: "0.4em",
634
- paddingBlock: "0.2em 0.1em",
635
- fontSize: "85%",
636
- fontFamily: token.fontFamilyCode,
637
- background: "rgba(150, 150, 150, 0.1)",
638
- border: `${unit(token.lineWidth)} ${token.lineType} rgba(100, 100, 100, 0.2)`,
639
- borderRadius: 3
640
- },
641
- kbd: {
642
- margin: "0 0.2em",
643
- paddingInline: "0.4em",
644
- paddingBlock: "0.15em 0.1em",
645
- fontSize: "90%",
646
- fontFamily: token.fontFamilyCode,
647
- background: "rgba(150, 150, 150, 0.06)",
648
- border: `${unit(token.lineWidth)} ${token.lineType} rgba(100, 100, 100, 0.2)`,
649
- borderBottomWidth: 2,
650
- borderRadius: 3
651
- },
652
- mark: {
653
- padding: 0,
654
- // FIXME hardcode in v4
655
- backgroundColor: gold[2]
656
- },
657
- "u, ins": {
658
- textDecoration: "underline",
659
- textDecorationSkipInk: "auto"
660
- },
661
- "s, del": {
662
- textDecoration: "line-through"
663
- },
664
- strong: {
665
- fontWeight: token.fontWeightStrong
666
- },
667
- // list
668
- "ul, ol": {
669
- marginInline: 0,
670
- marginBlock: "0 1em",
671
- padding: 0,
672
- li: {
673
- marginInline: "20px 0",
674
- marginBlock: 0,
675
- paddingInline: "4px 0",
676
- paddingBlock: 0
677
- }
678
- },
679
- ul: {
680
- listStyleType: "circle",
681
- ul: {
682
- listStyleType: "disc"
683
- }
684
- },
685
- ol: {
686
- listStyleType: "decimal"
687
- },
688
- // pre & block
689
- "pre, blockquote": {
690
- margin: "1em 0"
691
- },
692
- pre: {
693
- padding: "0.4em 0.6em",
694
- whiteSpace: "pre-wrap",
695
- wordWrap: "break-word",
696
- background: "rgba(150, 150, 150, 0.1)",
697
- border: `${unit(token.lineWidth)} ${token.lineType} rgba(100, 100, 100, 0.2)`,
698
- borderRadius: 3,
699
- fontFamily: token.fontFamilyCode,
700
- // Compatible for marked
701
- code: {
702
- display: "inline",
703
- margin: 0,
704
- padding: 0,
705
- fontSize: "inherit",
706
- fontFamily: "inherit",
707
- background: "transparent",
708
- border: 0
709
- }
710
- },
711
- blockquote: {
712
- paddingInline: "0.6em 0",
713
- paddingBlock: 0,
714
- borderInlineStart: "4px solid rgba(100, 100, 100, 0.2)",
715
- opacity: 0.85
716
- },
717
- // table - Follow Table component default style
718
- table: {
719
- width: "100%",
720
- textAlign: "start",
721
- borderCollapse: "separate",
722
- borderSpacing: 0,
723
- marginBlock: "1em",
724
- "th, td": {
725
- padding: unit(token.padding),
726
- overflowWrap: "break-word",
727
- borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`
728
- },
729
- "thead > tr:first-child > th:first-child": {
730
- borderStartStartRadius: token.borderRadiusLG
731
- },
732
- "thead > tr:first-child > th:last-child": {
733
- borderStartEndRadius: token.borderRadiusLG
734
- },
735
- "thead > tr > th": {
736
- textAlign: "start",
737
- position: "relative",
738
- color: token.colorTextHeading,
739
- fontWeight: token.fontWeightStrong,
740
- backgroundColor: token.colorFillAlter,
741
- transition: `background-color ${token.motionDurationMid} ease`,
742
- "&:not(:last-child)::before": {
743
- position: "absolute",
744
- top: "50%",
745
- insetInlineEnd: 0,
746
- width: 1,
747
- height: "1.6em",
748
- backgroundColor: token.colorSplit,
749
- transform: "translateY(-50%)",
750
- content: '""'
751
- }
752
- },
753
- "tbody > tr": {
754
- "> th, > td": {
755
- transition: `background-color ${token.motionDurationMid} ease`
756
- },
757
- "&:hover > th, &:hover > td": {
758
- backgroundColor: token.colorFillAlter
759
- }
760
- }
761
- }
762
- });
763
- var getEditableStyles = (token) => {
764
- const {
765
- componentCls,
766
- paddingSM
767
- } = token;
768
- const inputShift = paddingSM;
769
- return {
770
- "&-edit-content": {
771
- position: "relative",
772
- "div&": {
773
- insetInlineStart: token.calc(token.paddingSM).mul(-1).equal(),
774
- insetBlockStart: token.calc(inputShift).div(-2).add(1).equal(),
775
- marginBottom: token.calc(inputShift).div(2).sub(2).equal()
776
- },
777
- [`${componentCls}-edit-content-confirm`]: {
778
- position: "absolute",
779
- insetInlineEnd: token.calc(token.marginXS).add(2).equal(),
780
- insetBlockEnd: token.marginXS,
781
- color: token.colorIcon,
782
- // default style
783
- fontWeight: "normal",
784
- fontSize: token.fontSize,
785
- fontStyle: "normal",
786
- pointerEvents: "none"
787
- },
788
- // Double the `-edit-content` class to raise this selector's specificity
789
- // above Input's own `textarea.ant-input { line-height: token.lineHeight }`
790
- // rule. Both otherwise share the same (0,1,1) specificity and Input is
791
- // injected after Typography, so on the raw TextArea path the Input rule
792
- // would win the cascade and the inherited font props below (notably
793
- // `line-height`) would not apply.
794
- [`&${componentCls}-edit-content textarea`]: {
795
- margin: "0!important",
796
- // Inherit the edited element's typography so the editing textarea
797
- // matches the rendered text (including customized heading tokens such
798
- // as `fontSizeHeading1` and the strong heading weight), keeping editing
799
- // WYSIWYG. Browsers do not inherit font properties for form controls by
800
- // default, so they are set explicitly here.
801
- fontSize: "inherit",
802
- lineHeight: "inherit",
803
- fontFamily: "inherit",
804
- fontWeight: "inherit",
805
- // Fix Editable Textarea flash in Firefox
806
- MozTransition: "none",
807
- height: "1em"
808
- }
809
- }
810
- };
811
- };
812
- var getCopyableStyles = (token) => ({
813
- [`${token.componentCls}-copy-success`]: {
814
- "&, &:hover, &:focus": {
815
- color: token.colorSuccess
816
- }
817
- },
818
- [`${token.componentCls}-copy-icon-only`]: {
819
- marginInlineStart: 0
820
- }
821
- });
822
- var getEllipsisStyles = () => ({
823
- "a&-ellipsis, span&-ellipsis": {
824
- display: "inline-block",
825
- maxWidth: "100%"
826
- },
827
- "&-ellipsis-single-line": {
828
- ...textEllipsis,
829
- // https://blog.csdn.net/iefreer/article/details/50421025
830
- "a&, span&": {
831
- verticalAlign: "bottom"
832
- },
833
- "> code": {
834
- paddingBlock: 0,
835
- maxWidth: "calc(100% - 1.2em)",
836
- display: "inline-block",
837
- overflow: "hidden",
838
- textOverflow: "ellipsis",
839
- verticalAlign: "bottom",
840
- // https://github.com/ant-design/ant-design/issues/45953
841
- boxSizing: "content-box"
842
- }
843
- },
844
- "&-ellipsis-multiple-line": {
845
- display: "-webkit-box",
846
- overflow: "hidden",
847
- WebkitLineClamp: 3,
848
- WebkitBoxOrient: "vertical"
849
- }
850
- });
851
-
852
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/style/index.js
853
- var genTypographyStyle = (token) => {
854
- const {
855
- componentCls,
856
- titleMarginTop
857
- } = token;
858
- return {
859
- [componentCls]: {
860
- color: token.colorText,
861
- wordBreak: "break-word",
862
- lineHeight: token.lineHeight,
863
- [`&${componentCls}-secondary, &${componentCls}-link${componentCls}-secondary`]: {
864
- color: token.colorTextDescription
865
- },
866
- [`&${componentCls}-success, &${componentCls}-link${componentCls}-success`]: {
867
- color: token.colorSuccessText
868
- },
869
- [`&${componentCls}-warning, &${componentCls}-link${componentCls}-warning`]: {
870
- color: token.colorWarningText
871
- },
872
- [`&${componentCls}-danger, &${componentCls}-link${componentCls}-danger`]: {
873
- color: token.colorErrorText,
874
- [`&${componentCls}-link:active, &${componentCls}-link:focus`]: {
875
- color: token.colorErrorTextActive
876
- },
877
- [`&${componentCls}-link:hover`]: {
878
- color: token.colorErrorTextHover
879
- }
880
- },
881
- [`&${componentCls}-disabled`]: {
882
- color: token.colorTextDisabled,
883
- cursor: "not-allowed",
884
- userSelect: "none"
885
- },
886
- "div&, p": {
887
- marginBottom: "1em"
888
- },
889
- ...getTitleStyles(token),
890
- [`& + h1${componentCls}, & + h2${componentCls}, & + h3${componentCls}, & + h4${componentCls}, & + h5${componentCls}`]: {
891
- marginTop: titleMarginTop
892
- },
893
- "div, ul, li, p, h1, h2, h3, h4, h5": {
894
- "+ h1, + h2, + h3, + h4, + h5": {
895
- marginTop: titleMarginTop
896
- }
897
- },
898
- ...getResetStyles(token),
899
- ...getLinkStyles(token),
900
- // Operation
901
- [`${componentCls}-actions`]: {
902
- display: "inline"
903
- },
904
- [`
905
- ${componentCls}-expand,
906
- ${componentCls}-collapse,
907
- ${componentCls}-edit,
908
- ${componentCls}-copy
909
- `]: {
910
- ...operationUnit(token),
911
- marginInlineStart: token.marginXXS
912
- },
913
- [`${componentCls}-actions-start`]: {
914
- [`
915
- ${componentCls}-expand,
916
- ${componentCls}-collapse,
917
- ${componentCls}-edit,
918
- ${componentCls}-copy:not(${componentCls}-copy-icon-only)
919
- `]: {
920
- marginInlineStart: 0,
921
- marginInlineEnd: token.marginXXS
922
- }
923
- },
924
- ...getEditableStyles(token),
925
- ...getCopyableStyles(token),
926
- ...getEllipsisStyles(),
927
- "&-rtl": {
928
- direction: "rtl"
929
- }
930
- }
931
- };
932
- };
933
- var prepareComponentToken2 = () => ({
934
- titleMarginTop: "1.2em",
935
- titleMarginBottom: "0.5em"
936
- });
937
- var style_default2 = genStyleHooks("Typography", genTypographyStyle, prepareComponentToken2);
938
-
939
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Editable.js
940
- var Editable = (props) => {
941
- const {
942
- prefixCls,
943
- "aria-label": ariaLabel,
944
- className,
945
- style,
946
- classNames,
947
- styles,
948
- direction,
949
- maxLength,
950
- autoSize = true,
951
- value,
952
- onSave,
953
- onCancel,
954
- onEnd,
955
- component,
956
- enterIcon = /* @__PURE__ */ createElement(EnterOutlined_default, null)
957
- } = props;
958
- const ref = useRef(null);
959
- const inCompositionRef = useRef(false);
960
- const lastKeyCodeRef = useRef(null);
961
- const [current, setCurrent] = useState(value);
962
- useEffect(() => {
963
- setCurrent(value);
964
- }, [value]);
965
- useEffect(() => {
966
- if (ref.current?.resizableTextArea) {
967
- const {
968
- textArea
969
- } = ref.current.resizableTextArea;
970
- textArea.focus();
971
- const {
972
- length
973
- } = textArea.value;
974
- textArea.setSelectionRange(length, length);
975
- }
976
- }, []);
977
- const onChange = ({
978
- target
979
- }) => {
980
- setCurrent(target.value.replace(/[\n\r]/g, ""));
981
- };
982
- const onCompositionStart = () => {
983
- inCompositionRef.current = true;
984
- };
985
- const onCompositionEnd = () => {
986
- inCompositionRef.current = false;
987
- };
988
- const onKeyDown = ({
989
- keyCode
990
- }) => {
991
- if (inCompositionRef.current) {
992
- return;
993
- }
994
- lastKeyCodeRef.current = keyCode;
995
- };
996
- const confirmChange = () => {
997
- onSave(current.trim());
998
- };
999
- const onKeyUp = ({
1000
- keyCode,
1001
- ctrlKey,
1002
- altKey,
1003
- metaKey,
1004
- shiftKey
1005
- }) => {
1006
- if (lastKeyCodeRef.current !== keyCode || inCompositionRef.current || ctrlKey || altKey || metaKey || shiftKey) {
1007
- return;
1008
- }
1009
- if (keyCode === KeyCode_default.ENTER) {
1010
- confirmChange();
1011
- onEnd?.();
1012
- } else if (keyCode === KeyCode_default.ESC) {
1013
- onCancel();
1014
- }
1015
- };
1016
- const onBlur = () => {
1017
- confirmChange();
1018
- };
1019
- const [hashId, cssVarCls] = style_default2(prefixCls);
1020
- const textAreaClassName = clsx(prefixCls, `${prefixCls}-edit-content`, {
1021
- [`${prefixCls}-rtl`]: direction === "rtl",
1022
- [`${prefixCls}-${component}`]: !!component
1023
- }, className, classNames.root, hashId, cssVarCls);
1024
- return /* @__PURE__ */ createElement("div", {
1025
- className: textAreaClassName,
1026
- style: {
1027
- ...styles.root,
1028
- ...style
1029
- }
1030
- }, /* @__PURE__ */ createElement(TextArea_default, {
1031
- ref,
1032
- maxLength,
1033
- value: current,
1034
- onChange,
1035
- onKeyDown,
1036
- onKeyUp,
1037
- onCompositionStart,
1038
- onCompositionEnd,
1039
- onBlur,
1040
- "aria-label": ariaLabel,
1041
- rows: 1,
1042
- autoSize,
1043
- className: classNames.textarea,
1044
- style: styles.textarea
1045
- }), enterIcon !== null ? cloneElement(enterIcon, {
1046
- className: `${prefixCls}-edit-content-confirm`
1047
- }) : null);
1048
- };
1049
- var Editable_default = Editable;
1050
-
1051
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/_util/copy.js
1052
- var execCopy = (text, isHtmlFormat) => {
1053
- let copySuccess = false;
1054
- const onCopy = (event) => {
1055
- event.stopPropagation();
1056
- event.preventDefault();
1057
- event.clipboardData?.clearData();
1058
- event.clipboardData?.setData("text/plain", text);
1059
- if (isHtmlFormat) {
1060
- event.clipboardData?.setData("text/html", text);
1061
- }
1062
- copySuccess = true;
1063
- };
1064
- try {
1065
- document.addEventListener("copy", onCopy, {
1066
- capture: true
1067
- });
1068
- document.execCommand("copy");
1069
- return copySuccess;
1070
- } catch {
1071
- return false;
1072
- } finally {
1073
- document.removeEventListener("copy", onCopy, {
1074
- capture: true
1075
- });
1076
- }
1077
- };
1078
- var asyncCopy = async (text, isHtmlFormat) => {
1079
- try {
1080
- if (isHtmlFormat) {
1081
- await navigator.clipboard.write([new ClipboardItem({
1082
- "text/html": new Blob([text], {
1083
- type: "text/html"
1084
- }),
1085
- "text/plain": new Blob([text], {
1086
- type: "text/plain"
1087
- })
1088
- })]);
1089
- } else {
1090
- await navigator.clipboard.writeText(text);
1091
- }
1092
- return true;
1093
- } catch {
1094
- return false;
1095
- }
1096
- };
1097
- async function copy(text, config) {
1098
- if (typeof text !== "string") {
1099
- true ? warning_default(false, "The clipboard content must be of string type", "") : void 0;
1100
- return false;
1101
- }
1102
- const isHtmlFormat = config?.format === "text/html";
1103
- if (await asyncCopy(text, isHtmlFormat)) {
1104
- return true;
1105
- }
1106
- if (execCopy(text, isHtmlFormat)) {
1107
- return true;
1108
- }
1109
- return false;
1110
- }
1111
- var copy_default = copy;
1112
-
1113
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/_util/toList.js
1114
- var toList = (val, config = {}) => {
1115
- if (!isNonNullable(val) && config?.skipEmpty) {
1116
- return [];
1117
- }
1118
- return Array.isArray(val) ? val : [val];
1119
- };
1120
- var toList_default = toList;
1121
-
1122
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/hooks/useCopyClick.js
1123
- var useCopyClick = ({
1124
- copyConfig,
1125
- children
1126
- }) => {
1127
- const [copied, setCopied] = useDelayState(false);
1128
- const [copyLoading, setCopyLoading] = useState(false);
1129
- const copyOptions = {};
1130
- if (copyConfig.format) {
1131
- copyOptions.format = copyConfig.format;
1132
- }
1133
- const onClick = useEvent_default(async (e) => {
1134
- e?.preventDefault();
1135
- e?.stopPropagation();
1136
- setCopyLoading(true);
1137
- try {
1138
- const text = isFunction(copyConfig.text) ? await copyConfig.text() : copyConfig.text;
1139
- await copy_default(text || toList_default(children, {
1140
- skipEmpty: true
1141
- }).join("") || "", copyOptions);
1142
- setCopyLoading(false);
1143
- setCopied(true, true);
1144
- setCopied(false, {
1145
- ms: 3e3
1146
- });
1147
- copyConfig.onCopy?.(e);
1148
- } catch (error) {
1149
- setCopyLoading(false);
1150
- throw error;
1151
- }
1152
- });
1153
- return {
1154
- copied,
1155
- copyLoading,
1156
- onClick
1157
- };
1158
- };
1159
- var useCopyClick_default = useCopyClick;
1160
-
1161
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/hooks/useMergedConfig.js
1162
- var useMergedConfig = (propConfig, templateConfig) => {
1163
- const support = Boolean(propConfig);
1164
- return useMemo(() => {
1165
- const config = {
1166
- ...templateConfig,
1167
- ...support && isPlainObject(propConfig) ? propConfig : null
1168
- };
1169
- return [support, config];
1170
- }, [support, propConfig, templateConfig]);
1171
- };
1172
- var useMergedConfig_default = useMergedConfig;
1173
-
1174
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/hooks/usePrevious.js
1175
- var usePrevious = (value) => {
1176
- const ref = useRef(void 0);
1177
- useEffect(() => {
1178
- ref.current = value;
1179
- });
1180
- return ref.current;
1181
- };
1182
- var usePrevious_default = usePrevious;
1183
-
1184
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/hooks/useTooltipProps.js
1185
- var useTooltipProps = (tooltip, editConfigText, children) => useMemo(() => {
1186
- if (tooltip === true) {
1187
- return {
1188
- title: editConfigText ?? children
1189
- };
1190
- }
1191
- if (/* @__PURE__ */ isValidElement(tooltip)) {
1192
- return {
1193
- title: tooltip
1194
- };
1195
- }
1196
- if (isPlainObject(tooltip)) {
1197
- return {
1198
- title: editConfigText ?? children,
1199
- ...tooltip
1200
- };
1201
- }
1202
- return {
1203
- title: tooltip
1204
- };
1205
- }, [tooltip, editConfigText, children]);
1206
- var useTooltipProps_default = useTooltipProps;
1207
-
1208
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/hooks/useTypographySemantic.js
1209
- var useTypographySemantic = (customizePrefixCls, classNames, styles, typographyDirection, props) => {
1210
- const {
1211
- getPrefixCls,
1212
- direction: contextDirection,
1213
- className: contextClassName,
1214
- style: contextStyle,
1215
- classNames: contextClassNames,
1216
- styles: contextStyles
1217
- } = useComponentConfig("typography");
1218
- const direction = typographyDirection ?? contextDirection;
1219
- const prefixCls = getPrefixCls("typography", customizePrefixCls);
1220
- const mergedProps = {
1221
- ...props,
1222
- prefixCls,
1223
- direction
1224
- };
1225
- const contextClassNamesObject = useMemo(() => ({
1226
- root: contextClassName
1227
- }), [contextClassName]);
1228
- const contextStyleRoot = useSemanticRootStyle(contextStyle);
1229
- const [mergedClassNames, mergedStyles] = useMergeSemantic([contextClassNamesObject, contextClassNames, classNames], [contextStyles, contextStyleRoot, styles], {
1230
- props: mergedProps
1231
- });
1232
- return [mergedClassNames, mergedStyles, prefixCls, direction];
1233
- };
1234
-
1235
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Typography.js
1236
- var InternalTypography = /* @__PURE__ */ forwardRef((props, ref) => {
1237
- const {
1238
- component: Component = "article",
1239
- className,
1240
- rootClassName,
1241
- children,
1242
- direction,
1243
- style,
1244
- classNames,
1245
- styles,
1246
- prefixCls,
1247
- ...restProps
1248
- } = props;
1249
- const [hashId, cssVarCls] = style_default2(prefixCls);
1250
- const componentClassName = clsx(prefixCls, {
1251
- [`${prefixCls}-rtl`]: direction === "rtl"
1252
- }, className, rootClassName, hashId, cssVarCls, classNames?.root);
1253
- const mergedStyle = {
1254
- ...styles?.root,
1255
- ...style
1256
- };
1257
- return /* @__PURE__ */ createElement(Component, {
1258
- ...restProps,
1259
- className: componentClassName,
1260
- style: mergedStyle,
1261
- ref
1262
- }, children);
1263
- });
1264
- if (true) {
1265
- InternalTypography.displayName = "InternalTypography";
1266
- }
1267
- var Typography = /* @__PURE__ */ forwardRef((props, ref) => {
1268
- const {
1269
- prefixCls: customizePrefixCls,
1270
- className,
1271
- rootClassName,
1272
- direction: typographyDirection,
1273
- classNames,
1274
- styles,
1275
- ...restProps
1276
- } = props;
1277
- const [mergedClassNames, mergedStyles, mergedPrefixCls, mergedDirection] = useTypographySemantic(customizePrefixCls, classNames, styles, typographyDirection, props);
1278
- return /* @__PURE__ */ createElement(InternalTypography, {
1279
- ref,
1280
- className: clsx(className, rootClassName),
1281
- direction: mergedDirection,
1282
- classNames: mergedClassNames,
1283
- styles: mergedStyles,
1284
- prefixCls: mergedPrefixCls,
1285
- ...restProps
1286
- });
1287
- });
1288
- if (true) {
1289
- Typography.displayName = "Typography";
1290
- }
1291
-
1292
- // ../../node_modules/.pnpm/@ant-design+icons@6.3.2_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@ant-design/icons/es/icons/CheckOutlined.js
1293
- var import_CheckOutlined = __toESM(require_CheckOutlined());
1294
- function _extends3() {
1295
- _extends3 = Object.assign ? Object.assign.bind() : function(target) {
1296
- for (var i = 1; i < arguments.length; i++) {
1297
- var source = arguments[i];
1298
- for (var key in source) {
1299
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1300
- target[key] = source[key];
1301
- }
1302
- }
1303
- }
1304
- return target;
1305
- };
1306
- return _extends3.apply(this, arguments);
1307
- }
1308
- var CheckOutlined = (props, ref) => /* @__PURE__ */ createElement(AntdIconLight_default, _extends3({}, props, {
1309
- ref,
1310
- icon: import_CheckOutlined.default
1311
- }));
1312
- var RefIcon3 = /* @__PURE__ */ forwardRef(CheckOutlined);
1313
- if (true) {
1314
- RefIcon3.displayName = "CheckOutlined";
1315
- }
1316
- var CheckOutlined_default = RefIcon3;
1317
-
1318
- // ../../node_modules/.pnpm/@ant-design+icons@6.3.2_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@ant-design/icons/es/icons/CopyOutlined.js
1319
- var import_CopyOutlined = __toESM(require_CopyOutlined());
1320
- function _extends4() {
1321
- _extends4 = Object.assign ? Object.assign.bind() : function(target) {
1322
- for (var i = 1; i < arguments.length; i++) {
1323
- var source = arguments[i];
1324
- for (var key in source) {
1325
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1326
- target[key] = source[key];
1327
- }
1328
- }
1329
- }
1330
- return target;
1331
- };
1332
- return _extends4.apply(this, arguments);
1333
- }
1334
- var CopyOutlined = (props, ref) => /* @__PURE__ */ createElement(AntdIconLight_default, _extends4({}, props, {
1335
- ref,
1336
- icon: import_CopyOutlined.default
1337
- }));
1338
- var RefIcon4 = /* @__PURE__ */ forwardRef(CopyOutlined);
1339
- if (true) {
1340
- RefIcon4.displayName = "CopyOutlined";
1341
- }
1342
- var CopyOutlined_default = RefIcon4;
1343
-
1344
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Base/util.js
1345
- var toCopyConfigList = (val) => {
1346
- if (val === false) {
1347
- return [false, false];
1348
- }
1349
- return toList_default(val);
1350
- };
1351
- function getNode(dom, defaultNode, needDom) {
1352
- if (dom === true || dom === void 0) {
1353
- return defaultNode;
1354
- }
1355
- return dom || needDom && defaultNode;
1356
- }
1357
- function isEleEllipsis(ele) {
1358
- const childDiv = document.createElement("em");
1359
- ele.appendChild(childDiv);
1360
- if (true) {
1361
- childDiv.className = "ant-typography-css-ellipsis-content-measure";
1362
- }
1363
- const rect = ele.getBoundingClientRect();
1364
- const childRect = childDiv.getBoundingClientRect();
1365
- ele.removeChild(childDiv);
1366
- return (
1367
- // Horizontal out of range
1368
- rect.left > childRect.left || childRect.right > rect.right || // Vertical out of range
1369
- rect.top > childRect.top || childRect.bottom > rect.bottom
1370
- );
1371
- }
1372
- var isValidText = (val) => ["string", "number"].includes(typeof val);
1373
-
1374
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Base/CopyBtn.js
1375
- var CopyBtn = (props) => {
1376
- const {
1377
- prefixCls,
1378
- copied,
1379
- locale,
1380
- iconOnly,
1381
- tooltips,
1382
- icon,
1383
- tabIndex,
1384
- onCopy,
1385
- loading: btnLoading,
1386
- className,
1387
- style
1388
- } = props;
1389
- const tooltipNodes = toCopyConfigList(tooltips);
1390
- const iconNodes = toCopyConfigList(icon);
1391
- const {
1392
- copied: copiedText,
1393
- copy: copyText
1394
- } = locale ?? {};
1395
- const systemStr = copied ? copiedText : copyText;
1396
- const copyTitle = getNode(tooltipNodes[copied ? 1 : 0], systemStr);
1397
- const ariaLabel = typeof copyTitle === "string" ? copyTitle : systemStr;
1398
- return /* @__PURE__ */ createElement(tooltip_default, {
1399
- title: copyTitle
1400
- }, /* @__PURE__ */ createElement("button", {
1401
- type: "button",
1402
- className: clsx(`${prefixCls}-copy`, className, {
1403
- [`${prefixCls}-copy-success`]: copied,
1404
- [`${prefixCls}-copy-icon-only`]: iconOnly
1405
- }),
1406
- style,
1407
- onClick: onCopy,
1408
- "aria-label": ariaLabel,
1409
- tabIndex
1410
- }, copied ? getNode(iconNodes[1], /* @__PURE__ */ createElement(CheckOutlined_default, null), true) : getNode(iconNodes[0], btnLoading ? /* @__PURE__ */ createElement(LoadingOutlined_default, null) : /* @__PURE__ */ createElement(CopyOutlined_default, null), true)));
1411
- };
1412
- var CopyBtn_default = CopyBtn;
1413
-
1414
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Base/Ellipsis.js
1415
- var MeasureText = /* @__PURE__ */ forwardRef(({
1416
- style,
1417
- children
1418
- }, ref) => {
1419
- const spanRef = useRef(null);
1420
- useImperativeHandle(ref, () => ({
1421
- isExceed: () => {
1422
- const span = spanRef.current;
1423
- return span.scrollHeight > span.clientHeight;
1424
- },
1425
- getHeight: () => spanRef.current.clientHeight
1426
- }));
1427
- return /* @__PURE__ */ createElement("span", {
1428
- "aria-hidden": true,
1429
- ref: spanRef,
1430
- style: {
1431
- position: "fixed",
1432
- display: "block",
1433
- left: 0,
1434
- top: 0,
1435
- pointerEvents: "none",
1436
- backgroundColor: "rgba(255, 0, 0, 0.65)",
1437
- ...style
1438
- }
1439
- }, children);
1440
- });
1441
- var getNodesLen = (nodeList) => nodeList.reduce((totalLen, node) => totalLen + (isValidText(node) ? String(node).length : 1), 0);
1442
- function sliceNodes(nodeList, len) {
1443
- let currLen = 0;
1444
- const currentNodeList = [];
1445
- for (let i = 0; i < nodeList.length; i += 1) {
1446
- if (currLen === len) {
1447
- return currentNodeList;
1448
- }
1449
- const node = nodeList[i];
1450
- const canCut = isValidText(node);
1451
- const nodeLen = canCut ? String(node).length : 1;
1452
- const nextLen = currLen + nodeLen;
1453
- if (nextLen > len) {
1454
- const restLen = len - currLen;
1455
- currentNodeList.push(String(node).slice(0, restLen));
1456
- return currentNodeList;
1457
- }
1458
- currentNodeList.push(node);
1459
- currLen = nextLen;
1460
- }
1461
- return nodeList;
1462
- }
1463
- var STATUS_MEASURE_NONE = 0;
1464
- var STATUS_MEASURE_PREPARE = 1;
1465
- var STATUS_MEASURE_START = 2;
1466
- var STATUS_MEASURE_NEED_ELLIPSIS = 3;
1467
- var STATUS_MEASURE_NO_NEED_ELLIPSIS = 4;
1468
- var lineClipStyle = {
1469
- display: "-webkit-box",
1470
- overflow: "hidden",
1471
- WebkitBoxOrient: "vertical"
1472
- };
1473
- function EllipsisMeasure(props) {
1474
- const {
1475
- enableMeasure,
1476
- width,
1477
- text,
1478
- children,
1479
- rows,
1480
- expanded,
1481
- measureDeps,
1482
- miscDeps,
1483
- onEllipsis
1484
- } = props;
1485
- const nodeList = useMemo(() => toArray(text), [text]);
1486
- const nodeLen = useMemo(() => getNodesLen(nodeList), [text]);
1487
- const fullContent = useMemo(() => children(nodeList, false), [text].concat(_toConsumableArray(measureDeps)));
1488
- const [ellipsisCutIndex, setEllipsisCutIndex] = useState(null);
1489
- const cutMidRef = useRef(null);
1490
- const measureWhiteSpaceRef = useRef(null);
1491
- const needEllipsisRef = useRef(null);
1492
- const descRowsEllipsisRef = useRef(null);
1493
- const symbolRowEllipsisRef = useRef(null);
1494
- const [canEllipsis, setCanEllipsis] = useState(false);
1495
- const [needEllipsis, setNeedEllipsis] = useState(STATUS_MEASURE_NONE);
1496
- const [ellipsisHeight, setEllipsisHeight] = useState(0);
1497
- const [parentWhiteSpace, setParentWhiteSpace] = useState(null);
1498
- useLayoutEffect_default(() => {
1499
- if (enableMeasure && width && nodeLen) {
1500
- setNeedEllipsis(STATUS_MEASURE_PREPARE);
1501
- } else {
1502
- setNeedEllipsis(STATUS_MEASURE_NONE);
1503
- }
1504
- }, [width, text, rows, enableMeasure, nodeList].concat(_toConsumableArray(measureDeps)));
1505
- useLayoutEffect_default(() => {
1506
- if (needEllipsis === STATUS_MEASURE_PREPARE) {
1507
- setNeedEllipsis(STATUS_MEASURE_START);
1508
- const nextWhiteSpace = measureWhiteSpaceRef.current && getComputedStyle(measureWhiteSpaceRef.current).whiteSpace;
1509
- setParentWhiteSpace(nextWhiteSpace);
1510
- } else if (needEllipsis === STATUS_MEASURE_START) {
1511
- const isOverflow = !!needEllipsisRef.current?.isExceed();
1512
- setNeedEllipsis(isOverflow ? STATUS_MEASURE_NEED_ELLIPSIS : STATUS_MEASURE_NO_NEED_ELLIPSIS);
1513
- setEllipsisCutIndex(isOverflow ? [0, nodeLen] : null);
1514
- setCanEllipsis(isOverflow);
1515
- const baseRowsEllipsisHeight = needEllipsisRef.current?.getHeight() || 0;
1516
- const descRowsEllipsisHeight = rows === 1 ? 0 : descRowsEllipsisRef.current?.getHeight() || 0;
1517
- const symbolRowEllipsisHeight = symbolRowEllipsisRef.current?.getHeight() || 0;
1518
- const maxRowsHeight = Math.max(
1519
- baseRowsEllipsisHeight,
1520
- // height of rows with ellipsis
1521
- descRowsEllipsisHeight + symbolRowEllipsisHeight
1522
- );
1523
- setEllipsisHeight(maxRowsHeight + 1);
1524
- onEllipsis(isOverflow);
1525
- }
1526
- }, [needEllipsis]);
1527
- const cutMidIndex = ellipsisCutIndex ? Math.ceil((ellipsisCutIndex[0] + ellipsisCutIndex[1]) / 2) : 0;
1528
- useLayoutEffect_default(() => {
1529
- const [minIndex, maxIndex] = ellipsisCutIndex || [0, 0];
1530
- if (minIndex !== maxIndex) {
1531
- const midHeight = cutMidRef.current?.getHeight() || 0;
1532
- const isOverflow = midHeight > ellipsisHeight;
1533
- let targetMidIndex = cutMidIndex;
1534
- if (maxIndex - minIndex === 1) {
1535
- targetMidIndex = isOverflow ? minIndex : maxIndex;
1536
- }
1537
- setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);
1538
- }
1539
- }, [ellipsisCutIndex, cutMidIndex]);
1540
- const finalContent = useMemo(() => {
1541
- if (!enableMeasure) {
1542
- return children(nodeList, false);
1543
- }
1544
- if (needEllipsis !== STATUS_MEASURE_NEED_ELLIPSIS || !ellipsisCutIndex || ellipsisCutIndex[0] !== ellipsisCutIndex[1]) {
1545
- const content = children(nodeList, false);
1546
- if ([STATUS_MEASURE_NO_NEED_ELLIPSIS, STATUS_MEASURE_NONE].includes(needEllipsis)) {
1547
- return content;
1548
- }
1549
- return /* @__PURE__ */ createElement("span", {
1550
- style: {
1551
- ...lineClipStyle,
1552
- WebkitLineClamp: rows
1553
- }
1554
- }, content);
1555
- }
1556
- return children(expanded ? nodeList : sliceNodes(nodeList, ellipsisCutIndex[0]), canEllipsis);
1557
- }, [expanded, needEllipsis, ellipsisCutIndex, nodeList].concat(_toConsumableArray(miscDeps)));
1558
- const measureStyle = {
1559
- width,
1560
- margin: 0,
1561
- padding: 0,
1562
- whiteSpace: parentWhiteSpace === "nowrap" ? "normal" : "inherit"
1563
- };
1564
- return /* @__PURE__ */ createElement(Fragment, null, finalContent, needEllipsis === STATUS_MEASURE_START && /* @__PURE__ */ createElement(Fragment, null, /* @__PURE__ */ createElement(MeasureText, {
1565
- style: {
1566
- ...measureStyle,
1567
- ...lineClipStyle,
1568
- WebkitLineClamp: rows
1569
- },
1570
- ref: needEllipsisRef
1571
- }, fullContent), /* @__PURE__ */ createElement(MeasureText, {
1572
- style: {
1573
- ...measureStyle,
1574
- ...lineClipStyle,
1575
- WebkitLineClamp: rows - 1
1576
- },
1577
- ref: descRowsEllipsisRef
1578
- }, fullContent), /* @__PURE__ */ createElement(MeasureText, {
1579
- style: {
1580
- ...measureStyle,
1581
- ...lineClipStyle,
1582
- WebkitLineClamp: 1
1583
- },
1584
- ref: symbolRowEllipsisRef
1585
- }, children([], true))), needEllipsis === STATUS_MEASURE_NEED_ELLIPSIS && ellipsisCutIndex && ellipsisCutIndex[0] !== ellipsisCutIndex[1] && /* @__PURE__ */ createElement(MeasureText, {
1586
- style: {
1587
- ...measureStyle,
1588
- top: 400
1589
- },
1590
- ref: cutMidRef
1591
- }, children(sliceNodes(nodeList, cutMidIndex), true)), needEllipsis === STATUS_MEASURE_PREPARE && /* @__PURE__ */ createElement("span", {
1592
- style: {
1593
- whiteSpace: "inherit"
1594
- },
1595
- ref: measureWhiteSpaceRef
1596
- }));
1597
- }
1598
-
1599
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Base/EllipsisTooltip.js
1600
- var EllipsisTooltip = ({
1601
- enableEllipsis,
1602
- isEllipsis,
1603
- disabled,
1604
- children,
1605
- tooltipProps
1606
- }) => {
1607
- if (!tooltipProps?.title || !enableEllipsis) {
1608
- return children;
1609
- }
1610
- return /* @__PURE__ */ createElement(tooltip_default, {
1611
- ...tooltipProps,
1612
- disabled: !isEllipsis || disabled
1613
- }, children);
1614
- };
1615
- if (true) {
1616
- EllipsisTooltip.displayName = "EllipsisTooltip";
1617
- }
1618
- var EllipsisTooltip_default = EllipsisTooltip;
1619
-
1620
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Base/index.js
1621
- function wrapperDecorations({
1622
- mark,
1623
- code,
1624
- underline,
1625
- delete: del,
1626
- strong,
1627
- keyboard,
1628
- italic
1629
- }, content) {
1630
- let currentContent = content;
1631
- function wrap(tag, needed) {
1632
- if (!needed) {
1633
- return;
1634
- }
1635
- currentContent = /* @__PURE__ */ createElement(tag, {}, currentContent);
1636
- }
1637
- wrap("strong", strong);
1638
- wrap("u", underline);
1639
- wrap("del", del);
1640
- wrap("code", code);
1641
- wrap("mark", mark);
1642
- wrap("kbd", keyboard);
1643
- wrap("i", italic);
1644
- return currentContent;
1645
- }
1646
- var ELLIPSIS_STR = "...";
1647
- var DECORATION_PROPS = ["delete", "mark", "code", "underline", "strong", "keyboard", "italic"];
1648
- var Base = /* @__PURE__ */ forwardRef((props, ref) => {
1649
- const {
1650
- prefixCls: customizePrefixCls,
1651
- className,
1652
- style,
1653
- classNames,
1654
- styles,
1655
- direction: typographyDirection,
1656
- type,
1657
- disabled,
1658
- children,
1659
- ellipsis,
1660
- editable,
1661
- copyable,
1662
- actions,
1663
- component,
1664
- title,
1665
- onMouseEnter,
1666
- onMouseLeave,
1667
- ...restProps
1668
- } = props;
1669
- const [textLocale] = useLocale_default("Text");
1670
- const typographyRef = useRef(null);
1671
- const editIconRef = useRef(null);
1672
- const [mergedClassNames, mergedStyles, prefixCls, direction] = useTypographySemantic(customizePrefixCls, classNames, styles, typographyDirection, props);
1673
- const textProps = omit(restProps, DECORATION_PROPS);
1674
- const [enableEdit, editConfig] = useMergedConfig_default(editable);
1675
- const [editing, setEditing] = useControlledState(false, editConfig.editing);
1676
- const {
1677
- triggerType = ["icon"]
1678
- } = editConfig;
1679
- const triggerEdit = (edit) => {
1680
- if (edit) {
1681
- editConfig.onStart?.();
1682
- }
1683
- setEditing(edit);
1684
- };
1685
- const prevEditing = usePrevious_default(editing);
1686
- useLayoutEffect_default(() => {
1687
- if (!editing && prevEditing) {
1688
- editIconRef.current?.focus();
1689
- }
1690
- }, [editing]);
1691
- const onEditClick = (e) => {
1692
- e?.preventDefault();
1693
- triggerEdit(true);
1694
- };
1695
- const onEditChange = (value) => {
1696
- editConfig.onChange?.(value);
1697
- triggerEdit(false);
1698
- };
1699
- const onEditCancel = () => {
1700
- editConfig.onCancel?.();
1701
- triggerEdit(false);
1702
- };
1703
- const [enableCopy, copyConfig] = useMergedConfig_default(copyable);
1704
- const {
1705
- placement = "end"
1706
- } = actions ?? {};
1707
- const {
1708
- copied,
1709
- copyLoading,
1710
- onClick: onCopyClick
1711
- } = useCopyClick_default({
1712
- copyConfig,
1713
- children
1714
- });
1715
- const [isLineClampSupport, setIsLineClampSupport] = useState(false);
1716
- const [isTextOverflowSupport, setIsTextOverflowSupport] = useState(false);
1717
- const [isJsEllipsis, setIsJsEllipsis] = useState(false);
1718
- const [isNativeEllipsis, setIsNativeEllipsis] = useState(false);
1719
- const [isNativeVisible, setIsNativeVisible] = useState(true);
1720
- const [enableEllipsis, ellipsisConfig] = useMergedConfig_default(ellipsis, {
1721
- expandable: false,
1722
- symbol: (isExpanded) => isExpanded ? textLocale?.collapse : textLocale?.expand
1723
- });
1724
- const [expanded, setExpanded] = useControlledState(ellipsisConfig.defaultExpanded || false, ellipsisConfig.expanded);
1725
- const mergedEnableEllipsis = enableEllipsis && (!expanded || ellipsisConfig.expandable === "collapsible");
1726
- const {
1727
- rows = 1
1728
- } = ellipsisConfig;
1729
- const needMeasureEllipsis = useMemo(() => (
1730
- // Disable ellipsis
1731
- mergedEnableEllipsis && // Provide suffix
1732
- (ellipsisConfig.suffix !== void 0 || ellipsisConfig.onEllipsis || // Can't use css ellipsis since we need to provide the place for button
1733
- ellipsisConfig.expandable || enableEdit || enableCopy)
1734
- ), [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);
1735
- useLayoutEffect_default(() => {
1736
- if (enableEllipsis && !needMeasureEllipsis) {
1737
- setIsLineClampSupport(isStyleSupport("webkitLineClamp"));
1738
- setIsTextOverflowSupport(isStyleSupport("textOverflow"));
1739
- }
1740
- }, [needMeasureEllipsis, enableEllipsis]);
1741
- const [cssEllipsis, setCssEllipsis] = useState(mergedEnableEllipsis);
1742
- const canUseCssEllipsis = useMemo(() => {
1743
- if (needMeasureEllipsis) {
1744
- return false;
1745
- }
1746
- if (rows === 1) {
1747
- return isTextOverflowSupport;
1748
- }
1749
- return isLineClampSupport;
1750
- }, [needMeasureEllipsis, rows, isLineClampSupport, isTextOverflowSupport]);
1751
- useLayoutEffect_default(() => {
1752
- setCssEllipsis(canUseCssEllipsis && mergedEnableEllipsis);
1753
- }, [canUseCssEllipsis, mergedEnableEllipsis]);
1754
- const tooltipProps = useTooltipProps_default(ellipsisConfig.tooltip, editConfig.text, children);
1755
- const needNativeEllipsisMeasure = cssEllipsis && !!tooltipProps.title;
1756
- const isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? needNativeEllipsisMeasure && isNativeEllipsis : isJsEllipsis);
1757
- const cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;
1758
- const cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;
1759
- const onExpandClick = (e, info) => {
1760
- setExpanded(info.expanded);
1761
- ellipsisConfig.onExpand?.(e, info);
1762
- };
1763
- const [ellipsisWidth, setEllipsisWidth] = useState(0);
1764
- const [isHoveringOperations, setIsHoveringOperations] = useDelayState(false);
1765
- const isHoveringTypographyRef = useRef(false);
1766
- const onResize = ({
1767
- offsetWidth
1768
- }) => {
1769
- setEllipsisWidth(offsetWidth);
1770
- };
1771
- const onJsEllipsis = (jsEllipsis) => {
1772
- setIsJsEllipsis(jsEllipsis);
1773
- if (isJsEllipsis !== jsEllipsis) {
1774
- ellipsisConfig.onEllipsis?.(jsEllipsis);
1775
- }
1776
- };
1777
- const measureNativeEllipsis = useCallback(() => {
1778
- const textEle = typographyRef.current;
1779
- if (enableEllipsis && needNativeEllipsisMeasure && textEle) {
1780
- const currentEllipsis = isEleEllipsis(textEle);
1781
- setIsNativeEllipsis((prev) => prev === currentEllipsis ? prev : currentEllipsis);
1782
- }
1783
- }, [enableEllipsis, needNativeEllipsisMeasure]);
1784
- useEffect(() => {
1785
- if (isHoveringTypographyRef.current) {
1786
- measureNativeEllipsis();
1787
- }
1788
- }, [measureNativeEllipsis, children, cssLineClamp, isNativeVisible, ellipsisWidth]);
1789
- useEffect(() => {
1790
- const textEle = typographyRef.current;
1791
- if (typeof IntersectionObserver === "undefined" || !textEle || !needNativeEllipsisMeasure || !mergedEnableEllipsis) {
1792
- return;
1793
- }
1794
- const observer = new IntersectionObserver(() => {
1795
- setIsNativeVisible(!!textEle.offsetParent);
1796
- });
1797
- observer.observe(textEle);
1798
- return () => {
1799
- observer.disconnect();
1800
- };
1801
- }, [needNativeEllipsisMeasure, mergedEnableEllipsis]);
1802
- const topAriaLabel = useMemo(() => {
1803
- if (!enableEllipsis || cssEllipsis) {
1804
- return void 0;
1805
- }
1806
- return [editConfig.text, children, title, tooltipProps.title].find(isValidText);
1807
- }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis, editConfig.text]);
1808
- if (editing) {
1809
- return /* @__PURE__ */ createElement(Editable_default, {
1810
- value: editConfig.text ?? (typeof children === "string" ? children : ""),
1811
- onSave: onEditChange,
1812
- onCancel: onEditCancel,
1813
- onEnd: editConfig.onEnd,
1814
- prefixCls,
1815
- className,
1816
- style,
1817
- direction,
1818
- component,
1819
- maxLength: editConfig.maxLength,
1820
- autoSize: editConfig.autoSize,
1821
- enterIcon: editConfig.enterIcon,
1822
- classNames: mergedClassNames,
1823
- styles: mergedStyles
1824
- });
1825
- }
1826
- const renderExpand = () => {
1827
- const {
1828
- expandable,
1829
- symbol
1830
- } = ellipsisConfig;
1831
- return expandable ? /* @__PURE__ */ createElement("button", {
1832
- type: "button",
1833
- key: "expand",
1834
- className: clsx(`${prefixCls}-${expanded ? "collapse" : "expand"}`, mergedClassNames.action),
1835
- style: mergedStyles.action,
1836
- onClick: (e) => onExpandClick(e, {
1837
- expanded: !expanded
1838
- }),
1839
- "aria-label": expanded ? textLocale.collapse : textLocale?.expand
1840
- }, isFunction(symbol) ? symbol(expanded) : symbol) : null;
1841
- };
1842
- const renderEdit = () => {
1843
- if (!enableEdit) {
1844
- return;
1845
- }
1846
- const {
1847
- icon,
1848
- tooltip,
1849
- tabIndex
1850
- } = editConfig;
1851
- const editTitle = toArray(tooltip)[0] || textLocale?.edit;
1852
- const ariaLabel = typeof editTitle === "string" ? editTitle : "";
1853
- return triggerType.includes("icon") ? /* @__PURE__ */ createElement(tooltip_default, {
1854
- key: "edit",
1855
- title: tooltip === false ? "" : editTitle
1856
- }, /* @__PURE__ */ createElement("button", {
1857
- type: "button",
1858
- ref: editIconRef,
1859
- className: clsx(`${prefixCls}-edit`, mergedClassNames.action),
1860
- style: mergedStyles.action,
1861
- onClick: onEditClick,
1862
- "aria-label": ariaLabel,
1863
- tabIndex
1864
- }, icon || /* @__PURE__ */ createElement(EditOutlined_default, {
1865
- role: "button"
1866
- }))) : null;
1867
- };
1868
- const renderCopy = () => {
1869
- if (!enableCopy) {
1870
- return null;
1871
- }
1872
- return /* @__PURE__ */ createElement(CopyBtn_default, {
1873
- key: "copy",
1874
- ...copyConfig,
1875
- prefixCls,
1876
- copied,
1877
- locale: textLocale,
1878
- onCopy: onCopyClick,
1879
- loading: copyLoading,
1880
- iconOnly: !isReactRenderable(children),
1881
- className: mergedClassNames.action,
1882
- style: mergedStyles.action
1883
- });
1884
- };
1885
- const renderOperations = (canEllipsis) => {
1886
- const expandNode = canEllipsis && renderExpand();
1887
- const editNode = renderEdit();
1888
- const copyNode = renderCopy();
1889
- if (!expandNode && !editNode && !copyNode) {
1890
- return null;
1891
- }
1892
- return /* @__PURE__ */ createElement("span", {
1893
- key: "operations",
1894
- className: clsx(`${prefixCls}-actions`, mergedClassNames.actions, {
1895
- [`${prefixCls}-actions-start`]: placement === "start"
1896
- }),
1897
- style: mergedStyles.actions,
1898
- onMouseEnter: () => setIsHoveringOperations(true, true),
1899
- onMouseLeave: () => setIsHoveringOperations(false, {
1900
- // Delay 500ms for better user experience
1901
- ms: 500
1902
- })
1903
- }, expandNode, editNode, copyNode);
1904
- };
1905
- const renderEllipsis = (canEllipsis) => [canEllipsis && !expanded && /* @__PURE__ */ createElement("span", {
1906
- "aria-hidden": true,
1907
- key: "ellipsis"
1908
- }, ELLIPSIS_STR), ellipsisConfig.suffix];
1909
- return /* @__PURE__ */ createElement(es_default, {
1910
- onResize,
1911
- disabled: !mergedEnableEllipsis
1912
- }, (resizeRef) => /* @__PURE__ */ createElement(EllipsisTooltip_default, {
1913
- tooltipProps,
1914
- enableEllipsis: mergedEnableEllipsis,
1915
- isEllipsis: isMergedEllipsis,
1916
- disabled: isHoveringOperations
1917
- }, /* @__PURE__ */ createElement(InternalTypography, {
1918
- onMouseEnter: (e) => {
1919
- isHoveringTypographyRef.current = true;
1920
- measureNativeEllipsis();
1921
- onMouseEnter?.(e);
1922
- },
1923
- onMouseLeave: (e) => {
1924
- isHoveringTypographyRef.current = false;
1925
- onMouseLeave?.(e);
1926
- },
1927
- className: clsx({
1928
- [`${prefixCls}-${type}`]: type,
1929
- [`${prefixCls}-disabled`]: disabled,
1930
- [`${prefixCls}-ellipsis`]: enableEllipsis,
1931
- [`${prefixCls}-ellipsis-single-line`]: cssTextOverflow,
1932
- [`${prefixCls}-ellipsis-multiple-line`]: cssLineClamp,
1933
- [`${prefixCls}-link`]: component === "a"
1934
- }, className),
1935
- classNames: mergedClassNames,
1936
- styles: mergedStyles,
1937
- prefixCls,
1938
- style: {
1939
- ...style,
1940
- WebkitLineClamp: cssLineClamp ? rows : void 0
1941
- },
1942
- component,
1943
- ref: composeRef(resizeRef, typographyRef, ref),
1944
- direction,
1945
- onClick: triggerType.includes("text") ? onEditClick : void 0,
1946
- "aria-label": topAriaLabel?.toString(),
1947
- title,
1948
- ...textProps
1949
- }, /* @__PURE__ */ createElement(EllipsisMeasure, {
1950
- enableMeasure: mergedEnableEllipsis && !cssEllipsis,
1951
- text: children,
1952
- rows,
1953
- width: ellipsisWidth,
1954
- onEllipsis: onJsEllipsis,
1955
- expanded,
1956
- measureDeps: [placement],
1957
- miscDeps: [copied, expanded, copyLoading, enableEdit, enableCopy, placement, textLocale].concat(_toConsumableArray(DECORATION_PROPS.map((key) => props[key])))
1958
- }, (node, canEllipsis) => wrapperDecorations(props, /* @__PURE__ */ createElement(Fragment, null, placement === "start" ? renderOperations(canEllipsis) : null, node.length > 0 && canEllipsis && !expanded && topAriaLabel ? /* @__PURE__ */ createElement("span", {
1959
- key: "show-content",
1960
- "aria-hidden": true
1961
- }, node) : node, renderEllipsis(canEllipsis), placement === "start" ? null : renderOperations(canEllipsis)))))));
1962
- });
1963
- var Base_default = Base;
1964
-
1965
- // ../../node_modules/.pnpm/antd@6.6.1_luxon@3.7.2_moment@2.30.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/antd/es/typography/Text.js
1966
- var Text = /* @__PURE__ */ forwardRef((props, ref) => {
1967
- const {
1968
- ellipsis,
1969
- children,
1970
- ...restProps
1971
- } = props;
1972
- const mergedEllipsis = useMemo(() => {
1973
- if (isPlainObject(ellipsis)) {
1974
- return omit(ellipsis, ["expandable", "rows"]);
1975
- }
1976
- return ellipsis;
1977
- }, [ellipsis]);
1978
- if (true) {
1979
- const warning = devUseWarning("Typography.Text");
1980
- true ? warning(!isPlainObject(ellipsis) || !("expandable" in ellipsis) && !("rows" in ellipsis), "usage", "`ellipsis` do not support `expandable` or `rows` props.") : void 0;
1981
- }
1982
- return /* @__PURE__ */ createElement(Base_default, {
1983
- ref,
1984
- ...restProps,
1985
- ellipsis: mergedEllipsis,
1986
- component: "span"
1987
- }, children);
1988
- });
1989
- var Text_default = Text;
1990
-
1991
- // ../ui/dist/client-navigation.js
1992
- function shouldUseClientNavigation(event) {
1993
- return !event.defaultPrevented && event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
1994
- }
1995
-
1996
- // ../ui/dist/button.js
1997
- var ZlooksButton = moduleDefault(Button_default);
1998
-
1999
- // ../ui/dist/navigation.js
2000
- function selectZlooksNavigation(input) {
2001
- return [
2002
- { key: "gateway:home", label: "\u9996\u9875", href: "/", order: -1 },
2003
- ...input.navigation
2004
- ].map((item) => ({
2005
- ...item,
2006
- active: item.href === "/" ? input.pathname === "/" : input.pathname === item.href || input.pathname.startsWith(`${item.href}/`)
2007
- }));
2008
- }
2009
-
2010
- // ../ui/dist/shell-provider.js
2011
- var ShellContext = createContext(void 0);
2012
- function ZlooksShellProvider({ children, initialContext }) {
2013
- return jsx(ShellContext, { value: initialContext, children });
2014
- }
2015
- function useZlooksNavigation() {
2016
- const context = useZlooksShellContext();
2017
- return useMemo(() => selectZlooksNavigation(context), [context]);
2018
- }
2019
- function useZlooksShellContext() {
2020
- const context = useContext(ShellContext);
2021
- if (!context)
2022
- throw new Error("ZlooksShellProvider is required");
2023
- return context;
2024
- }
2025
-
2026
- // ../ui/dist/theme-internal.js
2027
- var zlooksUserAccessComponents = deepFreeze({
2028
- Button: {
2029
- textActiveBg: "transparent",
2030
- textHoverBg: "transparent"
2031
- }
2032
- });
2033
-
2034
- // ../ui/dist/shell.js
2035
- var Avatar2 = moduleDefault(Avatar_default);
2036
- var ConfigProvider2 = moduleDefault(config_provider_default);
2037
- var Divider = moduleDefault(divider_default);
2038
- var Empty = moduleDefault(empty_default);
2039
- var Flex = moduleDefault(flex_default);
2040
- var Modal = moduleDefault(Modal_default);
2041
- var Popover = moduleDefault(popover_default);
2042
- var Space = moduleDefault(space_default);
2043
- var Text2 = moduleDefault(Text_default);
2044
- function ZlooksUserAccess({ className, classNames = {}, style, size = "middle", shape = "round", variant = "compact", onNavigate, onLogout }) {
2045
- const view = useZlooksShellContext().user;
2046
- const [accountOpen, setAccountOpen] = useState(false);
2047
- const [loginOpen, setLoginOpen] = useState(false);
2048
- const { message, modal } = useZlooksApp();
2049
- const triggerClassName = mergeClassNames("zlooks-user-access-trigger", className, classNames.trigger);
2050
- const avatarClassName = mergeClassNames("zlooks-user-access-avatar", classNames.avatar);
2051
- const labelClassName = mergeClassNames("zlooks-user-access-label", classNames.label);
2052
- const avatarOnly = variant === "avatar";
2053
- const triggerAvatarSize = resolveTriggerAvatarSize(size, avatarOnly);
2054
- const triggerShape = avatarOnly ? "circle" : shape;
2055
- const triggerAvatarShape = avatarOnly ? "circle" : "square";
2056
- const triggerStyle = avatarOnly ? {
2057
- height: triggerAvatarSize,
2058
- minWidth: triggerAvatarSize,
2059
- padding: 0,
2060
- width: triggerAvatarSize,
2061
- ...style
2062
- } : style;
2063
- async function logout(logoutHref, close) {
2064
- try {
2065
- await onLogout(logoutHref);
2066
- close();
2067
- setAccountOpen(false);
2068
- } catch (cause) {
2069
- if (!isRequestError(cause))
2070
- void message.error("\u9000\u51FA\u767B\u5F55\u5931\u8D25");
2071
- }
2072
- }
2073
- function confirmLogout(logoutHref) {
2074
- modal.confirm({
2075
- title: "\u786E\u8BA4\u9000\u51FA\u767B\u5F55\uFF1F",
2076
- content: "\u9000\u51FA\u540E\uFF0C\u9700\u8981\u91CD\u65B0\u767B\u5F55\u624D\u80FD\u8BBF\u95EE\u4E2A\u4EBA\u8D26\u6237\u3002",
2077
- okText: "\u9000\u51FA\u767B\u5F55",
2078
- okButtonProps: { danger: true },
2079
- cancelText: "\u53D6\u6D88",
2080
- onOk(close) {
2081
- void logout(logoutHref, close);
2082
- }
2083
- });
2084
- }
2085
- function navigate(event, href, close) {
2086
- if (!onNavigate || !shouldUseClientNavigation(event))
2087
- return;
2088
- event.preventDefault();
2089
- close();
2090
- onNavigate(href);
2091
- }
2092
- if (view.status === "unavailable") {
2093
- return jsx(UserAccessTheme, { children: jsx(ZlooksButton, { "aria-label": "\u8D26\u6237\u670D\u52A1\u6682\u4E0D\u53EF\u7528", className: triggerClassName, disabled: true, shape: triggerShape, size, style: triggerStyle, type: "text", children: jsxs(Space, { align: "center", size: 6, children: [jsx(Avatar2, { className: avatarClassName, shape: triggerAvatarShape, size: triggerAvatarSize, style: {
2094
- background: "var(--ant-color-fill-secondary)",
2095
- border: avatarOnly ? "none" : void 0,
2096
- borderRadius: avatarOnly ? "50%" : 9,
2097
- boxShadow: avatarOnly ? "none" : void 0,
2098
- color: "var(--ant-color-text-tertiary)",
2099
- fontSize: 12,
2100
- fontWeight: 750
2101
- }, children: "Z" }), variant === "compact" ? jsx(Text2, { type: "secondary", children: "\u6682\u4E0D\u53EF\u7528" }) : null] }) }) });
2102
- }
2103
- if (view.status === "authenticated") {
2104
- return jsx(UserAccessTheme, { children: jsx(Popover, { arrow: false, destroyOnHidden: true, onOpenChange: setAccountOpen, open: accountOpen, placement: "bottomRight", styles: {
2105
- container: {
2106
- border: "1px solid var(--ant-color-border-secondary)",
2107
- borderRadius: 16,
2108
- boxShadow: "0 18px 48px rgb(15 23 42 / 14%)",
2109
- overflow: "hidden",
2110
- padding: 0
2111
- },
2112
- content: {
2113
- maxWidth: "calc(100vw - 32px)",
2114
- width: 280
2115
- }
2116
- }, trigger: "click", content: jsxs(Flex, { "aria-label": "\u8D26\u6237\u4FE1\u606F", className: classNames.popup, role: "dialog", style: {
2117
- background: "var(--ant-color-bg-elevated)"
2118
- }, vertical: true, children: [jsxs(Flex, { align: "center", gap: 12, style: {
2119
- background: [
2120
- "linear-gradient(color-mix(in srgb, var(--ant-color-fill-quaternary) 48%, transparent) 1px, transparent 1px)",
2121
- "linear-gradient(90deg, color-mix(in srgb, var(--ant-color-fill-quaternary) 48%, transparent) 1px, transparent 1px)",
2122
- "var(--ant-color-bg-elevated)"
2123
- ].join(", "),
2124
- backgroundSize: "28px 28px",
2125
- padding: 16
2126
- }, children: [jsx(Avatar2, { className: avatarClassName, shape: "square", size: 44, src: view.user.avatarUrl, style: {
2127
- background: "var(--ant-color-text)",
2128
- borderRadius: 12,
2129
- color: "var(--ant-color-bg-container)",
2130
- fontSize: 16,
2131
- fontWeight: 700
2132
- }, children: view.user.avatarText }), jsxs(Flex, { style: { flex: 1, minWidth: 0 }, vertical: true, children: [jsx(Text2, { strong: true, ellipsis: true, style: { fontSize: 15, lineHeight: 1.4 }, children: view.user.label }), view.user.secondary ? jsx(Text2, { ellipsis: { tooltip: view.user.secondary }, style: { display: "block" }, type: "secondary", children: view.user.secondary }) : null] }), jsx("span", { "aria-label": "\u5DF2\u767B\u5F55", role: "status", style: {
2133
- background: "var(--ant-color-success)",
2134
- borderRadius: 999,
2135
- boxShadow: "0 0 0 3px var(--ant-color-success-bg)",
2136
- flex: "0 0 auto",
2137
- height: 7,
2138
- width: 7
2139
- } })] }), jsx(Divider, { style: { margin: 0 } }), jsxs(Flex, { gap: 2, style: { padding: 8 }, vertical: true, children: [jsx(ZlooksButton, { block: true, href: view.accountHref, size: "large", style: {
2140
- fontWeight: 600,
2141
- height: 44,
2142
- paddingInline: 12
2143
- }, type: "text", onClick: (event) => navigate(event, view.accountHref, () => setAccountOpen(false)), children: jsxs(Flex, { justify: "space-between", style: { width: "100%" }, children: [jsx("span", { children: "\u4E2A\u4EBA\u8D44\u6599" }), jsx(Text2, { "aria-hidden": "true", type: "secondary", children: "\u2192" })] }) }), jsx(ZlooksButton, { block: true, danger: true, size: "large", style: { height: 44, justifyContent: "flex-start", paddingInline: 12 }, type: "text", onClick: () => confirmLogout(view.logoutHref), children: "\u9000\u51FA\u767B\u5F55" })] })] }), children: jsx(ZlooksButton, { "aria-expanded": accountOpen, "aria-haspopup": "dialog", "aria-label": `\u6253\u5F00${view.user.label}\u7684\u8D26\u6237\u4FE1\u606F`, className: triggerClassName, shape: triggerShape, size, style: triggerStyle, type: "text", children: jsxs(Space, { align: "center", size: 6, children: [jsx(Avatar2, { className: avatarClassName, shape: triggerAvatarShape, size: triggerAvatarSize, src: view.user.avatarUrl, style: {
2144
- background: avatarOnly ? "var(--ant-color-fill-secondary)" : "var(--ant-color-text)",
2145
- border: avatarOnly ? "none" : void 0,
2146
- borderRadius: avatarOnly ? "50%" : 9,
2147
- boxShadow: avatarOnly ? "none" : void 0,
2148
- color: avatarOnly ? "var(--ant-color-text)" : "var(--ant-color-bg-container)",
2149
- fontSize: 12,
2150
- fontWeight: 700
2151
- }, children: view.user.avatarText }), variant === "compact" ? jsx(Text2, { className: labelClassName, ellipsis: true, style: { fontSize: 13, fontWeight: 650, maxWidth: 120 }, children: view.user.label }) : null] }) }) }) });
2152
- }
2153
- return jsxs(UserAccessTheme, { children: [jsx(ZlooksButton, { "aria-expanded": loginOpen, "aria-haspopup": "dialog", "aria-label": "\u767B\u5F55", className: triggerClassName, shape: triggerShape, size, style: triggerStyle, type: "text", onClick: () => setLoginOpen(true), children: jsxs(Space, { align: "center", size: 6, children: [jsx(Avatar2, { className: avatarClassName, shape: triggerAvatarShape, size: triggerAvatarSize, style: {
2154
- background: "var(--ant-color-primary-bg)",
2155
- border: avatarOnly ? "none" : "1px solid var(--ant-color-primary-border)",
2156
- borderRadius: avatarOnly ? "50%" : 9,
2157
- boxShadow: avatarOnly ? "none" : void 0,
2158
- color: "var(--ant-color-primary)",
2159
- fontSize: 12,
2160
- fontWeight: 750
2161
- }, children: "Z" }), variant === "compact" ? jsx(Text2, { className: labelClassName, style: { fontSize: 13, fontWeight: 650 }, children: "\u767B\u5F55" }) : null] }) }), jsx(Modal, { centered: true, destroyOnHidden: true, footer: null, open: loginOpen, rootClassName: mergeClassNames("zlooks-user-access-modal", classNames.popup), styles: {
2162
- body: { paddingTop: 4 },
2163
- container: {
2164
- border: "1px solid var(--ant-color-border-secondary)",
2165
- borderRadius: 22,
2166
- boxShadow: "0 28px 80px rgb(15 23 42 / 18%)",
2167
- overflow: "hidden",
2168
- padding: 24
2169
- },
2170
- header: { marginBottom: 22 }
2171
- }, title: jsxs(Space, { align: "center", size: "middle", children: [jsx(Avatar2, { shape: "square", size: 44, style: {
2172
- background: "var(--ant-color-text)",
2173
- borderRadius: 12,
2174
- color: "var(--ant-color-bg-container)",
2175
- fontWeight: 750
2176
- }, children: "Z" }), jsxs(Flex, { vertical: true, children: [jsx(Text2, { strong: true, style: { fontSize: 17 }, children: "\u6B22\u8FCE\u56DE\u6765" }), jsx(Text2, { type: "secondary", children: "\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u7EE7\u7EED" })] })] }), width: 480, onCancel: () => setLoginOpen(false), children: jsxs(Flex, { gap: 12, vertical: true, children: [view.loginMethods.length === 0 ? jsx(Empty, { description: "\u6682\u65F6\u65E0\u6CD5\u767B\u5F55\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5", image: Empty.PRESENTED_IMAGE_SIMPLE, style: { paddingBlock: 24 } }) : view.loginMethods.map((method, index) => jsx(ZlooksButton, { block: true, href: method.href, onClick: (event) => navigate(event, method.href, () => setLoginOpen(false)), style: {
2177
- height: "auto",
2178
- minHeight: 72,
2179
- padding: "10px 14px",
2180
- textAlign: "left"
2181
- }, children: jsxs(Flex, { align: "center", gap: 14, justify: "space-between", style: { width: "100%" }, children: [jsxs(Flex, { align: "center", gap: 12, style: { minWidth: 0 }, children: [jsx(Avatar2, { shape: "square", size: 40, style: {
2182
- background: "var(--ant-color-primary-bg)",
2183
- borderRadius: 11,
2184
- color: "var(--ant-color-primary)",
2185
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
2186
- fontSize: 11,
2187
- fontWeight: 700
2188
- }, children: String(index + 1).padStart(2, "0") }), jsxs(Flex, { style: { minWidth: 0 }, vertical: true, children: [jsx(Text2, { strong: true, children: method.label }), jsx(Text2, { ellipsis: true, type: "secondary", children: "\u7EE7\u7EED\u8BBF\u95EE\u4F60\u7684\u4E2A\u4EBA\u7A7A\u95F4" })] })] }), jsx(Text2, { "aria-hidden": "true", style: { color: "var(--ant-color-primary)" }, children: "\u2192" })] }) }, method.id)), jsx(Text2, { style: { fontSize: 12, marginTop: 6, textAlign: "center" }, type: "secondary", children: "\u767B\u5F55\u4FE1\u606F\u4EC5\u7528\u4E8E\u8BC6\u522B\u4F60\u7684\u8D26\u6237" })] }) })] });
2189
- }
2190
- function UserAccessTheme({ children }) {
2191
- const { mode } = useZlooksTheme();
2192
- const { resolvedMode, resolvedTheme } = useZlooksThemeRuntime(mode);
2193
- const userAccessTheme = useMemo(() => ({
2194
- ...resolvedTheme,
2195
- cssVar: { key: `zlooks-user-access-${resolvedMode}` },
2196
- components: {
2197
- ...resolvedTheme.components,
2198
- Button: {
2199
- ...resolvedTheme.components?.Button,
2200
- ...zlooksUserAccessComponents.Button
2201
- }
2202
- }
2203
- }), [resolvedMode, resolvedTheme]);
2204
- return jsx(ConfigProvider2, { theme: userAccessTheme, children });
2205
- }
2206
- function mergeClassNames(...values) {
2207
- return values.filter(Boolean).join(" ");
2208
- }
2209
- function resolveTriggerAvatarSize(size, avatarOnly) {
2210
- if (avatarOnly && size === "small")
2211
- return 28;
2212
- if (avatarOnly && size === "large")
2213
- return 48;
2214
- if (avatarOnly)
2215
- return 40;
2216
- if (size === "small")
2217
- return 20;
2218
- if (size === "large")
2219
- return 28;
2220
- return 24;
2221
- }
2222
-
2223
- // ../ui/dist/site-config.js
2224
- var SitePresentationContext = createContext(void 0);
2225
- function ZlooksSiteConfigProvider({ children, initialConfig }) {
2226
- return jsx(SitePresentationContext, { value: initialConfig, children });
2227
- }
2228
- function useSitePresentation() {
2229
- return useSitePresentationSnapshot().value;
2230
- }
2231
- function useSitePresentationSnapshot() {
2232
- const snapshot = useContext(SitePresentationContext);
2233
- if (!snapshot)
2234
- throw new Error("ZlooksSiteConfigProvider is required");
2235
- return snapshot;
2236
- }
2237
-
2238
- // src/plugin/page-frame.module.css
2239
- var page_frame_default = {
2240
- page: "page_frame_page",
2241
- headerWrap: "page_frame_headerWrap",
2242
- header: "page_frame_header",
2243
- brand: "page_frame_brand",
2244
- brandMark: "page_frame_brandMark",
2245
- brandLogo: "page_frame_brandLogo",
2246
- navigation: "page_frame_navigation",
2247
- actions: "page_frame_actions",
2248
- content: "page_frame_content",
2249
- footer: "page_frame_footer"
2250
- };
2251
-
2252
- // src/plugin/page-frame.tsx
2253
- function PasswordPageFrame({
2254
- children,
2255
- shell,
2256
- site
2257
- }) {
2258
- return /* @__PURE__ */ jsx(ZlooksUiProvider, { children: /* @__PURE__ */ jsx(ZlooksShellProvider, { initialContext: shell, children: /* @__PURE__ */ jsx(ZlooksSiteConfigProvider, { initialConfig: site, children: /* @__PURE__ */ jsx(FrameContent, { children }) }) }) });
2259
- }
2260
- function FrameContent({ children }) {
2261
- const navigation = useZlooksNavigation();
2262
- const site = useSitePresentation();
2263
- const request = useRequest();
2264
- const rscNavigation = useRscNavigation();
2265
- async function logout(href) {
2266
- await request(href, { method: "POST", credentials: "same-origin" }, {
2267
- errorMessage: "\u9000\u51FA\u767B\u5F55\u5931\u8D25"
2268
- });
2269
- rscNavigation.refresh();
2270
- }
2271
- return /* @__PURE__ */ jsxs("div", { className: page_frame_default.page, "data-shared-page-frame": true, children: [
2272
- /* @__PURE__ */ jsx("div", { className: page_frame_default.headerWrap, children: /* @__PURE__ */ jsxs("header", { className: page_frame_default.header, children: [
2273
- /* @__PURE__ */ jsxs(RscLink, { className: page_frame_default.brand, href: site.identity.homeHref, children: [
2274
- site.identity.logoUrl ? /* @__PURE__ */ jsx("img", { alt: "", className: page_frame_default.brandLogo, src: site.identity.logoUrl }) : /* @__PURE__ */ jsx("span", { className: page_frame_default.brandMark, "aria-hidden": "true", children: "Z" }),
2275
- /* @__PURE__ */ jsx("span", { children: site.identity.name })
2276
- ] }),
2277
- /* @__PURE__ */ jsx("nav", { "aria-label": "\u4E3B\u5BFC\u822A", className: page_frame_default.navigation, children: navigation.map((item) => /* @__PURE__ */ jsx(RscLink, { "aria-current": item.active ? "page" : void 0, href: item.href, children: item.label }, item.key)) }),
2278
- /* @__PURE__ */ jsx("div", { className: page_frame_default.actions, children: /* @__PURE__ */ jsx(
2279
- ZlooksUserAccess,
2280
- {
2281
- size: "middle",
2282
- shape: "round",
2283
- variant: "avatar",
2284
- onLogout: logout,
2285
- onNavigate: rscNavigation.push
2286
- }
2287
- ) })
2288
- ] }) }),
2289
- /* @__PURE__ */ jsx("main", { className: page_frame_default.content, children }),
2290
- /* @__PURE__ */ jsxs("footer", { className: page_frame_default.footer, children: [
2291
- /* @__PURE__ */ jsxs("div", { children: [
2292
- /* @__PURE__ */ jsx("strong", { children: site.identity.name }),
2293
- /* @__PURE__ */ jsx("span", { children: "\u4FDD\u6301\u597D\u5947\uFF0C\u8BA4\u771F\u751F\u6D3B\u3002" })
2294
- ] }),
2295
- /* @__PURE__ */ jsxs("div", { children: [
2296
- site.legal.registrations.map((registration) => registration.verificationUrl ? /* @__PURE__ */ jsx(RscLink, { href: registration.verificationUrl, children: registration.number }, registration.id) : /* @__PURE__ */ jsx("span", { children: registration.number }, registration.id)),
2297
- site.legal.copyright ? /* @__PURE__ */ jsx("small", { children: site.legal.copyright }) : null
2298
- ] })
2299
- ] })
2300
- ] });
2301
- }
2302
- export {
2303
- PasswordPageFrame as default
2304
- };